diff options
2275 files changed, 74307 insertions, 5469 deletions
diff --git a/.gitignore b/.gitignore index 69ea1937a19a..f2501400e1f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /distfiles /packages /security/vuxml/vuln-flat.xml +/.vscode Makefile.local Mk/bsd.local.mk Mk/bsd.overlay.mk @@ -4406,3 +4406,4 @@ databases/puppetdb7||2025-05-10|Has expired: Reached EOL devel/leatherman||2025-05-10|Has expired: Project got archived databases/puppetdb-terminus7||2025-05-10|Has expired: Reached EOL games/exult-devel||2025-05-12|exult-devel has been removed, encouraging users to use exult instead +sysutils/slst||2025-05-16|Has expired: No source. Source went missing in 2018 diff --git a/Mk/Uses/ruby.mk b/Mk/Uses/ruby.mk index 1f9f55e27b52..620fff71f832 100644 --- a/Mk/Uses/ruby.mk +++ b/Mk/Uses/ruby.mk @@ -162,7 +162,7 @@ RUBY_PORTREVISION= 0 # # Ruby 3.4 # -RUBY_DISTVERSION= 3.4.3 +RUBY_DISTVERSION= 3.4.4 RUBY_PORTREVISION= 0 diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk index 35b021a71e36..772d28798aa0 100644 --- a/Mk/bsd.default-versions.mk +++ b/Mk/bsd.default-versions.mk @@ -118,7 +118,7 @@ OPENLDAP_DEFAULT?= 26 defined(PACKAGE_BUILDING)) # When changing the default here, make sure the DEPRECATED/EXPIRATION lines in # the older Perl 5 ports are uncommented at the same time. -PERL5_DEFAULT?= 5.36 +PERL5_DEFAULT?= 5.40 . elif !defined(PERL5_DEFAULT) # There's no need to replace development versions, like "5.23" with "devel" # because 1) nobody is supposed to use it outside of poudriere, and 2) it must @@ -5,6 +5,14 @@ they are unavoidable. You should get into the habit of checking this file for changes each time you update your ports collection, before attempting any port upgrades. +20250514: + AFFECTS: users of lang/perl5.* + AUTHOR: mat@FreeBSD.org + + The default Perl version has been switched to 5.40. + + See entry 20231017 for updating instructions. + 20250511: AFFECTS: users of www/tt-rss AUTHOR: dereks@lifeofadishwasher.com diff --git a/archivers/unadf/Makefile b/archivers/unadf/Makefile index bc8a1abc7edc..9e732a9870c4 100644 --- a/archivers/unadf/Makefile +++ b/archivers/unadf/Makefile @@ -1,6 +1,6 @@ PORTNAME= unadf DISTVERSIONPREFIX= v -DISTVERSION= 0.10.1 +DISTVERSION= 0.10.2 CATEGORIES= archivers MAINTAINER= eduardo@FreeBSD.org diff --git a/archivers/unadf/distinfo b/archivers/unadf/distinfo index 0ea6446a269e..70201bdbc584 100644 --- a/archivers/unadf/distinfo +++ b/archivers/unadf/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745931552 -SHA256 (adflib-ADFlib-v0.10.1_GH0.tar.gz) = e5a0a57ab9db6b4e14c519bfb2c35223b3ed2fb948ffeda03dd93070aaba4e57 -SIZE (adflib-ADFlib-v0.10.1_GH0.tar.gz) = 2593952 +TIMESTAMP = 1747421468 +SHA256 (adflib-ADFlib-v0.10.2_GH0.tar.gz) = 1181cda574fcc87ba6564d519ecf58f63fbc468e0bd408485471ffa2e9745c5c +SIZE (adflib-ADFlib-v0.10.2_GH0.tar.gz) = 2594669 diff --git a/archivers/unadf/pkg-plist b/archivers/unadf/pkg-plist index 9963783f2fc3..83af735cb0f9 100644 --- a/archivers/unadf/pkg-plist +++ b/archivers/unadf/pkg-plist @@ -37,7 +37,7 @@ include/adf/adflib.h lib/libadf.a lib/libadf.so lib/libadf.so.3 -lib/libadf.so.3.0.1 +lib/libadf.so.3.0.2 libdata/pkgconfig/adflib.pc %%PORTDOCS%%%%DOCSDIR%%/API/API.txt %%PORTDOCS%%%%DOCSDIR%%/API/api_device.html diff --git a/archivers/zstd/Makefile b/archivers/zstd/Makefile index 3afd053611fa..08c117e9fe55 100644 --- a/archivers/zstd/Makefile +++ b/archivers/zstd/Makefile @@ -15,7 +15,7 @@ LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING LIB_DEPENDS= liblz4.so:archivers/liblz4 -USES= gmake localbase:ldflags tar:zst +USES= cpe gmake localbase:ldflags tar:zst ALL_TARGET= default BINARY_ALIAS= gmd5sum=md5sum @@ -28,6 +28,9 @@ MAKE_ENV= INSTALL_DATA="${INSTALL_DATA}" \ TEST_TARGET= check USE_LDCONFIG= yes +CPE_VENDOR= facebook +CPE_PRODUCT= zstandard + PLIST_SUB= BUILD_TYPE=${BUILD_TYPE:tl} PORTVERSION=${PORTVERSION} SUB_FILES= zstdConfigVersion.cmake zstdTargets-BUILD_TYPE.cmake SUB_LIST= BUILD_TYPE_CAPS=${BUILD_TYPE:tu} BUILD_TYPE_MIXED=${BUILD_TYPE} PORTVERSION=${PORTVERSION} diff --git a/astro/py-astropy/Makefile b/astro/py-astropy/Makefile index ebcf0705b801..ee16b26b3ba7 100644 --- a/astro/py-astropy/Makefile +++ b/astro/py-astropy/Makefile @@ -1,6 +1,5 @@ PORTNAME= astropy -DISTVERSION= 7.0.1 -PORTREVISION= 1 +DISTVERSION= 7.0.2 PORTEPOCH= 2 CATEGORIES= astro MASTER_SITES= PYPI diff --git a/astro/py-astropy/distinfo b/astro/py-astropy/distinfo index 263244470f4e..b3fdb0717a40 100644 --- a/astro/py-astropy/distinfo +++ b/astro/py-astropy/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1739002877 -SHA256 (astropy-7.0.1.tar.gz) = 392feeb443b2437cd4c2e0641a65e0f15ba791e148e9b1e5ed7de7dfcb38e460 -SIZE (astropy-7.0.1.tar.gz) = 7139539 +TIMESTAMP = 1747183609 +SHA256 (astropy-7.0.2.tar.gz) = 11cd23037cfb3de460472078b88c8e942b0838ef6e79fca2ca24d9ccc434e969 +SIZE (astropy-7.0.2.tar.gz) = 7149131 diff --git a/audio/audiowmark/Makefile b/audio/audiowmark/Makefile index d474990bb2da..21a108dba27c 100644 --- a/audio/audiowmark/Makefile +++ b/audio/audiowmark/Makefile @@ -1,6 +1,8 @@ PORTNAME= audiowmark -PORTVERSION= 0.6.4 +DISTVERSION= 0.6.5 +PORTREVISION= 1 CATEGORIES= audio +MASTER_SITES= https://github.com/swesterfeld/${PORTNAME}/releases/download/${DISTVERSION}/ MAINTAINER= ehaupt@FreeBSD.org COMMENT= Audio and video watermarking tool @@ -9,10 +11,7 @@ WWW= https://github.com/swesterfeld/audiowmark LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING -BROKEN_FreeBSD_13= compilation fails: error: static declaration of '__builtin_bswap32' follows non-static declaration - -BUILD_DEPENDS= ${LOCALBASE}/include/fftw3.h:math/fftw3 \ - autoconf-archive>=0:devel/autoconf-archive +BUILD_DEPENDS= ${LOCALBASE}/include/fftw3.h:math/fftw3 LIB_DEPENDS= libfftw3f.so:math/fftw3-float \ libgcrypt.so:security/libgcrypt \ libgpg-error.so:security/libgpg-error \ @@ -20,11 +19,8 @@ LIB_DEPENDS= libfftw3f.so:math/fftw3-float \ libsndfile.so:audio/libsndfile \ libzita-resampler.so:audio/zita-resampler -USES= autoreconf gettext-tools libtool localbase:ldflags pkgconfig \ - shebangfix -USE_GITHUB= yes -GH_ACCOUNT= swesterfeld - +USES= compiler:c++14-lang gettext-tools libtool localbase:ldflags \ + pkgconfig shebangfix tar:zst SHEBANG_FILES= src/videowmark GNU_CONFIGURE= yes diff --git a/audio/audiowmark/distinfo b/audio/audiowmark/distinfo index 4745cef3aea1..4aed083ee3db 100644 --- a/audio/audiowmark/distinfo +++ b/audio/audiowmark/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1740767108 -SHA256 (swesterfeld-audiowmark-0.6.4_GH0.tar.gz) = 52896f1b2940fe487454ced272e843805a378f03c2d974a60101b5163abd3507 -SIZE (swesterfeld-audiowmark-0.6.4_GH0.tar.gz) = 146898 +TIMESTAMP = 1747424391 +SHA256 (audiowmark-0.6.5.tar.zst) = 12dd0232e47f29521c91d9d642183b3ca4145be61d353c4dc6d1c6cd7c388a4b +SIZE (audiowmark-0.6.5.tar.zst) = 377079 diff --git a/audio/fluidsynth/Makefile b/audio/fluidsynth/Makefile index 39df62bf53f6..81d5ee96cec9 100644 --- a/audio/fluidsynth/Makefile +++ b/audio/fluidsynth/Makefile @@ -1,6 +1,6 @@ PORTNAME= fluidsynth DISTVERSIONPREFIX= v -DISTVERSION= 2.4.4 +DISTVERSION= 2.4.6 CATEGORIES= audio MAINTAINER= multimedia@FreeBSD.org @@ -11,24 +11,22 @@ LICENSE= LGPL21 LICENSE_FILE= ${WRKSRC}/LICENSE USES= cmake cpe gnome pathfix pkgconfig -USE_GITHUB= yes -GH_ACCOUNT= FluidSynth USE_GNOME= glib20 USE_LDCONFIG= yes +USE_GITHUB= yes +GH_ACCOUNT= FluidSynth + CMAKE_ON= CMAKE_DISABLE_FIND_PACKAGE_Doxygen \ CMAKE_DISABLE_FIND_PACKAGE_Git OPTIONS_DEFINE= ALSA DBUS INSTPATCH JACK LADSPA PIPEWIRE PORTAUDIO \ - PULSEAUDIO READLINE SNDFILE + PULSEAUDIO READLINE SDL SNDFILE OPTIONS_DEFAULT= JACK READLINE -OPTIONS_RADIO= SDL -OPTIONS_RADIO_SDL= SDL2 SDL3 INSTPATCH_DESC= Digital sample-based MIDI instrument files support -SDL2_DESC= Simple Direct Media Layer 2 support SDL3_DESC= Simple Direct Media Layer 3 support -SNDFILE_DESC= Support for SF3 files via libsndfil1e +SNDFILE_DESC= Support for SF3 files via libsndfile ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CMAKE_BOOL= enable-alsa @@ -59,13 +57,9 @@ PULSEAUDIO_CMAKE_BOOL= enable-pulseaudio READLINE_USES= readline READLINE_CMAKE_BOOL= enable-readline -SDL2_USES= sdl -SDL2_USE= SDL=sdl2 -SDL2_CMAKE_BOOL= enable-sdl2 - -SDL3_USES= sdl -SDL3_USE= SDL=sdl3 -SDL3_CMAKE_BOOL= enable-sdl3 +SDL_USES= sdl +SDL_USE= SDL=sdl3 +SDL_CMAKE_BOOL= enable-sdl3 SNDFILE_LIB_DEPENDS= libsndfile.so:audio/libsndfile SNDFILE_CMAKE_BOOL= enable-libsndfile diff --git a/audio/fluidsynth/distinfo b/audio/fluidsynth/distinfo index b934935e3073..3454675ddc76 100644 --- a/audio/fluidsynth/distinfo +++ b/audio/fluidsynth/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742534363 -SHA256 (FluidSynth-fluidsynth-v2.4.4_GH0.tar.gz) = fc492a255f453e65ac5b99a25e6ffbe0fbd64d6a4fe824bacd68de16fe8af7ba -SIZE (FluidSynth-fluidsynth-v2.4.4_GH0.tar.gz) = 1792908 +TIMESTAMP = 1747000262 +SHA256 (FluidSynth-fluidsynth-v2.4.6_GH0.tar.gz) = a6be90fd4842b9e7246500597180af5cf213c11bfa3998a3236dd8ff47961ea8 +SIZE (FluidSynth-fluidsynth-v2.4.6_GH0.tar.gz) = 1793331 diff --git a/audio/fluidsynth/pkg-plist b/audio/fluidsynth/pkg-plist index 1c0ef40108a3..2073f9b3f9ea 100644 --- a/audio/fluidsynth/pkg-plist +++ b/audio/fluidsynth/pkg-plist @@ -23,6 +23,6 @@ lib/cmake/fluidsynth/FluidSynthTargets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/fluidsynth/FluidSynthTargets.cmake lib/libfluidsynth.so lib/libfluidsynth.so.3 -lib/libfluidsynth.so.3.3.4 +lib/libfluidsynth.so.3.3.6 libdata/pkgconfig/fluidsynth.pc share/man/man1/fluidsynth.1.gz diff --git a/audio/libsidplayfp/Makefile b/audio/libsidplayfp/Makefile index 097ce8592e58..6aab7c481080 100644 --- a/audio/libsidplayfp/Makefile +++ b/audio/libsidplayfp/Makefile @@ -1,6 +1,5 @@ PORTNAME= libsidplayfp -DISTVERSION= 2.11.0 -PORTREVISION= 1 +DISTVERSION= 2.13.0 CATEGORIES= audio MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/v${DISTVERSION}/ @@ -14,7 +13,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= libgcrypt-config:security/libgcrypt LIB_DEPENDS= libgcrypt.so:security/libgcrypt -USES= compiler:c++20-lang libtool pathfix pkgconfig +USES= compiler:c++23-lang libtool pathfix pkgconfig USE_LDCONFIG= yes GNU_CONFIGURE= yes @@ -26,7 +25,7 @@ LDFLAGS+= -lpthread INSTALL_TARGET= install-strip -SIDPLAYFP_SHLIB_VERSION= 6.5.36 +SIDPLAYFP_SHLIB_VERSION= 6.5.38 STILVIEW_SHLIB_VERSION= 0.0.6 PLIST_SUB+= SIDPLAYFP_SHLIB_VER=${SIDPLAYFP_SHLIB_VERSION:C/\.[[:digit:].]+//} \ diff --git a/audio/libsidplayfp/distinfo b/audio/libsidplayfp/distinfo index 95b906af7e3e..54d682fba93b 100644 --- a/audio/libsidplayfp/distinfo +++ b/audio/libsidplayfp/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1730834572 -SHA256 (libsidplayfp-2.11.0.tar.gz) = 46af5bdc36649dca8cda8631428c91946ba131824ca3b3eca37dc67e2530bc5c -SIZE (libsidplayfp-2.11.0.tar.gz) = 813488 +TIMESTAMP = 1744662557 +SHA256 (libsidplayfp-2.13.0.tar.gz) = 1c09e3182dd53fc9ee37800f194f0d68e1fe06a8b5aee9abb5ab35d7bf6274b7 +SIZE (libsidplayfp-2.13.0.tar.gz) = 842564 diff --git a/audio/noson-app/Makefile b/audio/noson-app/Makefile index c14938f63ec5..cbdad24b269f 100644 --- a/audio/noson-app/Makefile +++ b/audio/noson-app/Makefile @@ -1,6 +1,5 @@ PORTNAME= noson-app -DISTVERSION= 5.6.8 -PORTREVISION= 1 +DISTVERSION= 5.6.10 CATEGORIES= audio net MAINTAINER= arved@FreeBSD.org diff --git a/audio/noson-app/distinfo b/audio/noson-app/distinfo index 7dfeeb245e69..677641097831 100644 --- a/audio/noson-app/distinfo +++ b/audio/noson-app/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1732390951 -SHA256 (janbar-noson-app-5.6.8_GH0.tar.gz) = 767afea1d24be192fa83942906201662c8618d63dd2872d3fae4100b3ba68bd8 -SIZE (janbar-noson-app-5.6.8_GH0.tar.gz) = 3294933 +TIMESTAMP = 1747473366 +SHA256 (janbar-noson-app-5.6.10_GH0.tar.gz) = 140505339cf64c98bcc6b620bab35e027844ee97d74a041c1f283254560ec17f +SIZE (janbar-noson-app-5.6.10_GH0.tar.gz) = 3238180 diff --git a/benchmarks/hipercontracer/Makefile b/benchmarks/hipercontracer/Makefile index 7c96058b3e69..0f7bb2b39f96 100644 --- a/benchmarks/hipercontracer/Makefile +++ b/benchmarks/hipercontracer/Makefile @@ -1,5 +1,5 @@ PORTNAME= hipercontracer -DISTVERSION= 2.0.15 +DISTVERSION= 2.0.16 CATEGORIES= benchmarks MASTER_SITES= https://www.nntb.no/~dreibh/hipercontracer/download/ diff --git a/benchmarks/hipercontracer/distinfo b/benchmarks/hipercontracer/distinfo index 40414060e7c2..9d3869144516 100644 --- a/benchmarks/hipercontracer/distinfo +++ b/benchmarks/hipercontracer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747124760 -SHA256 (hipercontracer-2.0.15.tar.xz) = 53a1df24c2a381af708c7c4ec34f7d59f1a5b735e3ce313cdade1a0bc7279d81 -SIZE (hipercontracer-2.0.15.tar.xz) = 2525020 +TIMESTAMP = 1747259531 +SHA256 (hipercontracer-2.0.16.tar.xz) = a4d69402af1e88f9501806b70cf53bf99fe7bfdd57b7a65a82a9ee26f21d24fa +SIZE (hipercontracer-2.0.16.tar.xz) = 2527692 diff --git a/benchmarks/hipercontracer/pkg-plist b/benchmarks/hipercontracer/pkg-plist index a6dfd27c5abc..503725e70e3b 100644 --- a/benchmarks/hipercontracer/pkg-plist +++ b/benchmarks/hipercontracer/pkg-plist @@ -75,14 +75,20 @@ share/bash-completion/completions/udp-echo-server %%DATADIR%%/SQL/README-PostgreSQL.md %%DATADIR%%/SQL/mariadb-database.sql %%DATADIR%%/SQL/mariadb-delete-all-rows.sql +%%DATADIR%%/SQL/mariadb-functions.sql +%%DATADIR%%/SQL/mariadb-procedures.sql %%DATADIR%%/SQL/mariadb-schema.sql %%DATADIR%%/SQL/mariadb-test.sql %%DATADIR%%/SQL/mariadb-users.sql +%%DATADIR%%/SQL/mariadb-views.sql %%DATADIR%%/SQL/postgresql-database.sql %%DATADIR%%/SQL/postgresql-delete-all-rows.sql +%%DATADIR%%/SQL/postgresql-functions.sql +%%DATADIR%%/SQL/postgresql-procedures.sql %%DATADIR%%/SQL/postgresql-schema.sql %%DATADIR%%/SQL/postgresql-test.sql %%DATADIR%%/SQL/postgresql-users.sql +%%DATADIR%%/SQL/postgresql-views.sql %%DATADIR%%/TestDB/0-make-configurations %%DATADIR%%/TestDB/1-install-database %%DATADIR%%/TestDB/2-initialise-database diff --git a/benchmarks/iperf3/Makefile b/benchmarks/iperf3/Makefile index 6d04ba21cc79..b38c8e65aa75 100644 --- a/benchmarks/iperf3/Makefile +++ b/benchmarks/iperf3/Makefile @@ -1,5 +1,5 @@ PORTNAME= iperf -DISTVERSION= 3.18 +DISTVERSION= 3.19 CATEGORIES= benchmarks MASTER_SITES= https://github.com/esnet/${PORTNAME}/releases/download/${DISTVERSION}/ \ https://downloads.es.net/pub/${PORTNAME}/ diff --git a/benchmarks/iperf3/distinfo b/benchmarks/iperf3/distinfo index f0309d5edd9e..4eedbb31519b 100644 --- a/benchmarks/iperf3/distinfo +++ b/benchmarks/iperf3/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1734136688 -SHA256 (iperf-3.18.tar.gz) = c0618175514331e766522500e20c94bfb293b4424eb27d7207fb427b88d20bab -SIZE (iperf-3.18.tar.gz) = 688037 +TIMESTAMP = 1747435695 +SHA256 (iperf-3.19.tar.gz) = 040161da1555ec7411a9d81191049830ef37717d429a94ee6cf0842618e0e29c +SIZE (iperf-3.19.tar.gz) = 692569 diff --git a/benchmarks/lzbench/Makefile b/benchmarks/lzbench/Makefile index 7ba7e581ae85..effaa5f3d436 100644 --- a/benchmarks/lzbench/Makefile +++ b/benchmarks/lzbench/Makefile @@ -22,6 +22,8 @@ post-patch: ${WRKSRC}/_lzbench/lzbench.h @${REINPLACE_CMD} -e 's,shell echo|$$(CC),& 2>/dev/null,' \ ${WRKSRC}/Makefile + @${REINPLACE_CMD} -e '/^#if defined(__FreeBSD__)/,+1s,machine,sys,' \ + ${WRKSRC}/kanzi-cpp/src/Memory.hpp @${REINPLACE_CMD} -e '/pithy_Load64/s,vld1_u64(,&(uint64_t *),' \ ${WRKSRC}/pithy/pithy.cpp @${REINPLACE_CMD} -e '/^#if/s,defined(__aarch64__),& ||\ diff --git a/biology/bifrost/Makefile b/biology/bifrost/Makefile index 8820ddfa0631..082d27df32e6 100644 --- a/biology/bifrost/Makefile +++ b/biology/bifrost/Makefile @@ -18,6 +18,17 @@ USE_GITHUB= yes CMAKE_ARGS= -DCOMPILATION_ARCH=${CPUTYPE:UOFF} +CXXFLAGS+= -Wno-unqualified-std-cast-call + GH_ACCOUNT= pmelsted -.include <bsd.port.mk> +.include <bsd.port.pre.mk> + +# Build fails with clang19, but succeeds with gcc13 +# Have not figured out where this sz_link member is even supposed to come from +# DataStorage.tcc:81:69: error: no member named 'sz_link' in 'DataStorage<Unitig_data_t>' +.if ${OSVERSION} > 1500000 +USE_GCC= yes +.endif + +.include <bsd.port.post.mk> diff --git a/biology/bifrost/files/patch-CMakeLists.txt b/biology/bifrost/files/patch-CMakeLists.txt index 27893b9ec44d..4d49c5a270cc 100644 --- a/biology/bifrost/files/patch-CMakeLists.txt +++ b/biology/bifrost/files/patch-CMakeLists.txt @@ -1,6 +1,6 @@ ---- CMakeLists.txt.orig 2023-08-12 14:26:29 UTC +--- CMakeLists.txt.orig 2024-03-15 15:20:17 UTC +++ CMakeLists.txt -@@ -46,7 +46,6 @@ else(CMAKE_BUILD_TYPE MATCHES Debug) +@@ -56,7 +56,6 @@ else(CMAKE_BUILD_TYPE MATCHES Debug) set(CMAKE_EXE_LINKER_FLAGS "-pg") else(CMAKE_BUILD_TYPE MATCHES Profile) message("Build type: Release") diff --git a/biology/hyphy/Makefile b/biology/hyphy/Makefile index 55476ed67c9b..f281649f9c47 100644 --- a/biology/hyphy/Makefile +++ b/biology/hyphy/Makefile @@ -1,5 +1,5 @@ PORTNAME= hyphy -DISTVERSION= 2.5.70 +DISTVERSION= 2.5.73 CATEGORIES= biology MAINTAINER= jrm@FreeBSD.org diff --git a/biology/hyphy/distinfo b/biology/hyphy/distinfo index 7b906e8bb328..ae85017d004d 100644 --- a/biology/hyphy/distinfo +++ b/biology/hyphy/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742777609 -SHA256 (veg-hyphy-2.5.70_GH0.tar.gz) = 38c2549dcaec9f7df63b5e3aab965794484edc11a221fa0c0d909f7c68614de3 -SIZE (veg-hyphy-2.5.70_GH0.tar.gz) = 5617978 +TIMESTAMP = 1747240205 +SHA256 (veg-hyphy-2.5.73_GH0.tar.gz) = efc64adb9f270aa6c284dbee22a16132f4e59126e9df071c5267cd79e2883969 +SIZE (veg-hyphy-2.5.73_GH0.tar.gz) = 4161304 diff --git a/biology/hyphy/pkg-plist b/biology/hyphy/pkg-plist index 2f58e0cb50d2..cea5332c2742 100644 --- a/biology/hyphy/pkg-plist +++ b/biology/hyphy/pkg-plist @@ -11,6 +11,7 @@ bin/hyphy %%DATADIR%%/GeneticCodes/Thraustochytrium_mtDNA.cod %%DATADIR%%/GeneticCodes/Vertebratemtdna.cod %%DATADIR%%/GeneticCodes/Yeast_mtDNA.cod +%%DATADIR%%/README.md %%DATADIR%%/SubstitutionClasses/AAEFV/Equal %%DATADIR%%/SubstitutionClasses/AAEFV/Estimated %%DATADIR%%/SubstitutionClasses/AAEFV/Observed In Data Set @@ -177,6 +178,7 @@ bin/hyphy %%DATADIR%%/TemplateBatchFiles/Samplers/srs-ErrorEst.ibf %%DATADIR%%/TemplateBatchFiles/Samplers/srs.ibf %%DATADIR%%/TemplateBatchFiles/SandNSAmbigs.bf +%%DATADIR%%/TemplateBatchFiles/SelectionAnalyses/BUSTED-PH.bf %%DATADIR%%/TemplateBatchFiles/SelectionAnalyses/BUSTED.bf %%DATADIR%%/TemplateBatchFiles/SelectionAnalyses/BranchSiteREL.bf %%DATADIR%%/TemplateBatchFiles/SelectionAnalyses/FADE.bf @@ -333,7 +335,6 @@ bin/hyphy %%DATADIR%%/TemplateBatchFiles/Utility/BranchLengthFitters.bf %%DATADIR%%/TemplateBatchFiles/Utility/CoalescentPostProcessor.bf %%DATADIR%%/TemplateBatchFiles/Utility/CodonTools.bf -%%DATADIR%%/TemplateBatchFiles/Utility/DBTools.ibf %%DATADIR%%/TemplateBatchFiles/Utility/DescriptiveStatistics.bf %%DATADIR%%/TemplateBatchFiles/Utility/GrabBag.bf %%DATADIR%%/TemplateBatchFiles/Utility/HXB2Mapper.bf @@ -371,6 +372,10 @@ bin/hyphy %%DATADIR%%/TemplateBatchFiles/globalChecker.ibf %%DATADIR%%/TemplateBatchFiles/heuristicMethodNPBootstrap.bf %%DATADIR%%/TemplateBatchFiles/last.date +%%DATADIR%%/TemplateBatchFiles/lib/label-tree.bf +%%DATADIR%%/TemplateBatchFiles/lib/remove-duplicates.bf +%%DATADIR%%/TemplateBatchFiles/lib/trim-label-tree.bf +%%DATADIR%%/TemplateBatchFiles/lib/trim-tree.bf %%DATADIR%%/TemplateBatchFiles/libv3/IOFunctions.bf %%DATADIR%%/TemplateBatchFiles/libv3/UtilityFunctions.bf %%DATADIR%%/TemplateBatchFiles/libv3/all-terms.bf @@ -393,6 +398,7 @@ bin/hyphy %%DATADIR%%/TemplateBatchFiles/libv3/models/codon/MG_REV.bf %%DATADIR%%/TemplateBatchFiles/libv3/models/codon/MG_REV_MH.bf %%DATADIR%%/TemplateBatchFiles/libv3/models/codon/MG_REV_PROPERTIES.bf +%%DATADIR%%/TemplateBatchFiles/libv3/models/codon/MG_REV_PROPERTIES_BSREL.bf %%DATADIR%%/TemplateBatchFiles/libv3/models/codon/MG_REV_TRIP.bf %%DATADIR%%/TemplateBatchFiles/libv3/models/codon/MSS.bf %%DATADIR%%/TemplateBatchFiles/libv3/models/frequencies.bf @@ -421,6 +427,7 @@ bin/hyphy %%DATADIR%%/TemplateBatchFiles/libv3/tasks/mpi.bf %%DATADIR%%/TemplateBatchFiles/libv3/tasks/trees.bf %%DATADIR%%/TemplateBatchFiles/molclockBootstrap.bf +%%DATADIR%%/TemplateBatchFiles/molerate.bf %%DATADIR%%/TemplateBatchFiles/pairwiseDistanceEstimator.ibf %%DATADIR%%/TemplateBatchFiles/pairwiseDistanceEstimatorCounter.ibf %%DATADIR%%/TemplateBatchFiles/partitionSequences.ibf diff --git a/biology/kallisto/Makefile b/biology/kallisto/Makefile index 91193aa7facc..c2d33ef3ce82 100644 --- a/biology/kallisto/Makefile +++ b/biology/kallisto/Makefile @@ -37,12 +37,22 @@ CMAKE_ARGS+= -DUSE_HDF5:BOOL=ON -DUSE_BAM:BOOL=ON # WIP: Remove before committing CMAKE_ARGS+= -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON MAKE_JOBS_UNSAFE= yes +CXXFLAGS+= -Wno-unqualified-std-cast-call LDFLAGS+= -lhts -lz OPTIONS_DEFINE= EXAMPLES +.include <bsd.port.pre.mk> + +# Build fails with clang19, but succeeds with gcc13 +# Have not figured out where this sz_link member is even supposed to come from +# DataStorage.tcc:81:69: error: no member named 'sz_link' in 'DataStorage<Unitig_data_t>' +.if ${OSVERSION} > 1500000 +USE_GCC= yes +.endif + post-install-EXAMPLES-on: ${INSTALL_SCRIPT} ${WRKDIR}/kallisto-test ${STAGEDIR}${PREFIX}/bin cd ${WRKSRC}/test && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} -.include <bsd.port.mk> +.include <bsd.port.post.mk> diff --git a/biology/kallisto/files/patch-ext_bifrost_CMakeLists.txt b/biology/kallisto/files/patch-ext_bifrost_CMakeLists.txt index d25cf028cfdd..c662b37881c9 100644 --- a/biology/kallisto/files/patch-ext_bifrost_CMakeLists.txt +++ b/biology/kallisto/files/patch-ext_bifrost_CMakeLists.txt @@ -1,8 +1,8 @@ ---- ext/bifrost/CMakeLists.txt.orig 2023-06-27 10:45:00 UTC +--- ext/bifrost/CMakeLists.txt.orig 2024-09-17 05:40:08 UTC +++ ext/bifrost/CMakeLists.txt -@@ -7,18 +7,12 @@ find_package(Threads REQUIRED) +@@ -6,18 +6,12 @@ SET(MAX_GMER_SIZE "${MAX_KMER_SIZE}" CACHE STRING "MAX + # To enable a larger default k-mer size, replace MAX_KMER_SIZE with a larger multiple of 32: actual maximum k-mer size will be MAX_KMER_SIZE-1. - SET(MAX_KMER_SIZE "32" CACHE STRING "MAX_KMER_SIZE") SET(MAX_GMER_SIZE "${MAX_KMER_SIZE}" CACHE STRING "MAX_GMER_SIZE") -# Enable architecture optimizations -SET(COMPILATION_ARCH "native" CACHE STRING "COMPILATION_ARCH") @@ -12,7 +12,8 @@ # Set some default compile flags set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-unqualified-std-cast-call") -set_property(SOURCE BlockedBloomFilter.cpp APPEND_STRING PROPERTY COMPILE_FLAGS " -funroll-loops") - @@ -20,7 +21,7 @@ #check if we are on arm64 and apple, if so, disable AVX2 if(APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "arm") message("Disabling AVX2 instructions on arm64") -@@ -30,8 +24,6 @@ if(COMPILATION_ARCH MATCHES "OFF") +@@ -29,8 +23,6 @@ else(COMPILATION_ARCH MATCHES "OFF") message("Disabling native architecture compilation (including AVX2)") else(COMPILATION_ARCH MATCHES "OFF") message("Compilation architecture: ${COMPILATION_ARCH}") @@ -29,7 +30,7 @@ endif(COMPILATION_ARCH MATCHES "OFF") if(ENABLE_AVX2 MATCHES "OFF") -@@ -56,7 +48,7 @@ else(CMAKE_BUILD_TYPE MATCHES Debug) +@@ -55,7 +47,7 @@ else(CMAKE_BUILD_TYPE MATCHES Debug) set(CMAKE_EXE_LINKER_FLAGS "-pg") else(CMAKE_BUILD_TYPE MATCHES Profile) message("Build type: Release") diff --git a/biology/paml/Makefile b/biology/paml/Makefile index 7ba18e506f72..4a6375689d5e 100644 --- a/biology/paml/Makefile +++ b/biology/paml/Makefile @@ -1,5 +1,6 @@ PORTNAME= paml -DISTVERSION= 4.10.7 +DISTVERSIONPREFIX= v +DISTVERSION= 4.10.9 CATEGORIES= biology MAINTAINER= jrm@FreeBSD.org diff --git a/biology/paml/distinfo b/biology/paml/distinfo index cd64f0e34127..7dd47591a370 100644 --- a/biology/paml/distinfo +++ b/biology/paml/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1688759942 -SHA256 (abacus-gene-paml-4.10.7_GH0.tar.gz) = 0f29e768b3797b69eadc6332c3d046d8727702052d56c3b729883626c0a5a4e3 -SIZE (abacus-gene-paml-4.10.7_GH0.tar.gz) = 5250841 +TIMESTAMP = 1747232666 +SHA256 (abacus-gene-paml-v4.10.9_GH0.tar.gz) = 19ca9d484d729324748b9c86453e4c8f4a1fa79ad6fa3ac7cdbfaa7d0bfb8c22 +SIZE (abacus-gene-paml-v4.10.9_GH0.tar.gz) = 3920159 diff --git a/biology/paml/files/patch-src_Makefile b/biology/paml/files/patch-src_Makefile index 4a9bd7ed2da6..1fd048a0594b 100644 --- a/biology/paml/files/patch-src_Makefile +++ b/biology/paml/files/patch-src_Makefile @@ -1,10 +1,11 @@ ---- src/Makefile.orig 2023-07-08 03:40:50 UTC +--- src/Makefile.orig 2025-05-14 14:29:51 UTC +++ src/Makefile -@@ -1,6 +1,6 @@ CC = cc # cc, gcc, cl +@@ -1,6 +1,6 @@ PRGS = baseml codeml basemlg mcmctree pamp evolver yn PRGS = baseml codeml basemlg mcmctree pamp evolver yn00 chi2 - CC = cc # cc, gcc, cl --CFLAGS = -O3 -Wall -Wno-unused-result -Wmemset-elt-size -+CFLAGS = -O3 -Wall -Wno-unused-result - #CC = icc - #CFLAGS = -fast -Wall +-CC = gcc +-CFLAGS = -O3 -Wall -Wno-unused-variable -Wno-unused-result ++#CC = gcc ++#CFLAGS = -O3 -Wall -Wno-unused-variable -Wno-unused-result + + LIBS = -lm diff --git a/biology/paml/pkg-plist b/biology/paml/pkg-plist index 544b761367c3..02f053d2563e 100644 --- a/biology/paml/pkg-plist +++ b/biology/paml/pkg-plist @@ -199,8 +199,6 @@ bin/yn00 %%PORTEXAMPLES%%%%EXAMPLESDIR%%/nhomo/data-MCU0.95-rep1.txt %%PORTEXAMPLES%%%%EXAMPLESDIR%%/nhomo/mlb-nhomo4.txt %%PORTEXAMPLES%%%%EXAMPLESDIR%%/nhomo/mlb-nhomo5.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nhomo/rst-nhomo4.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nhomo/rst-nhomo5.txt %%PORTEXAMPLES%%%%EXAMPLESDIR%%/nhomo/tree-nhomo4.txt %%PORTEXAMPLES%%%%EXAMPLESDIR%%/nhomo/tree-nhomo5.txt %%PORTEXAMPLES%%%%EXAMPLESDIR%%/pamp.ctl diff --git a/biology/vcftools/Makefile b/biology/vcftools/Makefile index e7d8ab338312..5c3b2d72c47b 100644 --- a/biology/vcftools/Makefile +++ b/biology/vcftools/Makefile @@ -1,7 +1,6 @@ PORTNAME= vcftools -PORTVERSION= 0.1.16 +PORTVERSION= 0.1.17 DISTVERSIONPREFIX= v -PORTREVISION= 2 CATEGORIES= biology MAINTAINER= jwb@FreeBSD.org @@ -11,11 +10,10 @@ WWW= https://github.com/vcftools/vcftools LICENSE= LGPL3 USES= autoreconf cpe gmake perl5 pkgconfig - -GNU_CONFIGURE= yes -GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share USE_GITHUB= yes +GNU_CONFIGURE= yes +GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share CXXFLAGS+= -std=c++14 CPE_VENDOR= vcftools_project diff --git a/biology/vcftools/distinfo b/biology/vcftools/distinfo index 14a425bfc4c0..5a5c2ff84384 100644 --- a/biology/vcftools/distinfo +++ b/biology/vcftools/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1533330712 -SHA256 (vcftools-vcftools-v0.1.16_GH0.tar.gz) = 575c13073efe65cbff6e2ab99eef12fe04536f5dc1f98de6674c848ca83cf302 -SIZE (vcftools-vcftools-v0.1.16_GH0.tar.gz) = 246933 +TIMESTAMP = 1747310968 +SHA256 (vcftools-vcftools-v0.1.17_GH0.tar.gz) = 00b54fc7349179c2efbdab0e4dcb65a69e7b0ab0d0d29b59cc823140d0b40bff +SIZE (vcftools-vcftools-v0.1.17_GH0.tar.gz) = 247685 diff --git a/cad/freecad/Makefile b/cad/freecad/Makefile index 9daab05f2cfc..8fd5de1ec75c 100644 --- a/cad/freecad/Makefile +++ b/cad/freecad/Makefile @@ -1,6 +1,5 @@ PORTNAME= FreeCAD -DISTVERSION= 1.0.0 -PORTREVISION= 6 +DISTVERSION= 1.0.1 CATEGORIES= cad MAINTAINER= cmt@FreeBSD.org @@ -40,7 +39,8 @@ LIB_DEPENDS= libexpat.so:textproc/expat2 \ libavformat.so.58:multimedia/ffmpeg4 \ libmed.so:french/med \ libshiboken6.abi3.so:devel/shiboken6@${PY_FLAVOR} \ - libhdf5.so:science/hdf5 + libhdf5.so:science/hdf5 \ + libspnav.so:misc/libspnav RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pivy>0:graphics/py-pivy@${PY_FLAVOR} \ ${PYTHON_SITELIBDIR}/matplotlib/__init__.py:math/py-matplotlib@${PY_FLAVOR} @@ -102,13 +102,10 @@ CMAKE_ARGS+= -DOCC_INCLUDE_DIR="${LOCALBASE}/include/OpenCASCADE" \ CMAKE_INSTALL_PREFIX= ${PREFIX}/${PORTNAME} -OPTIONS_DEFINE= COLLADA SPNAV +OPTIONS_DEFINE= COLLADA COLLADA_DESC= Install pycollada for Collada files import COLLADA_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycollada>0:graphics/py-pycollada@${PY_FLAVOR} -SPNAV_DESC= Enable libspnav (SpaceMouse) support -SPNAV_CMAKE_BOOL= FREECAD_SPNAV_SUPPORT -SPNAV_LIB_DEPENDS= libspnav.so:misc/libspnav .include <bsd.port.options.mk> diff --git a/cad/freecad/distinfo b/cad/freecad/distinfo index a9ec8fc266a5..657cfb894275 100644 --- a/cad/freecad/distinfo +++ b/cad/freecad/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1731962480 -SHA256 (FreeCAD-FreeCAD-1.0.0_GH0.tar.gz) = 51115afd8e3b89f4bac343b986b0800d8e1c68fc1e322c3cd179cfe1033ef937 -SIZE (FreeCAD-FreeCAD-1.0.0_GH0.tar.gz) = 91599325 +TIMESTAMP = 1747340459 +SHA256 (FreeCAD-FreeCAD-1.0.1_GH0.tar.gz) = f62bc07c477544eff62b6ab0fc3bb63fa7f1e6f94763c51b0049507842d444f3 +SIZE (FreeCAD-FreeCAD-1.0.1_GH0.tar.gz) = 91625067 SHA256 (Ondsel-Development-OndselSolver-91f70382beeb58b32432b5a82da3802e4c19199c_GH0.tar.gz) = 061f651f503f1ec5a9814e174cdb8a9ba84d511a3b8be3d94852e84976c6b158 SIZE (Ondsel-Development-OndselSolver-91f70382beeb58b32432b5a82da3802e4c19199c_GH0.tar.gz) = 4667938 diff --git a/cad/freecad/files/patch-spnav-support b/cad/freecad/files/patch-spnav-support deleted file mode 100644 index e9b364d61f60..000000000000 --- a/cad/freecad/files/patch-spnav-support +++ /dev/null @@ -1,94 +0,0 @@ -commit f2b872ba4dc509622bda2d86ce42e2464d40832b -Author: Christoph Moench-Tegeder <cmt@burggraben.net> -Date: Mon Mar 24 01:03:53 2025 +0100 - - attempt to fix building with libspnav - -diff --git cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake -index e9aa47fd6e..826c510ef0 100644 ---- cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake -+++ cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake -@@ -142,6 +142,7 @@ macro(InitializeFreeCADBuildOptions) - option(BUILD_CLOUD "Build the FreeCAD cloud module" OFF) - option(ENABLE_DEVELOPER_TESTS "Build the FreeCAD unit tests suit" ON) - -+ option(FREECAD_SPNAV_SUPPORT "Enable libspnav support" OFF) - if(MSVC) - set(FREECAD_3DCONNEXION_SUPPORT "NavLib" CACHE STRING "Select version of the 3Dconnexion device integration") - set_property(CACHE FREECAD_3DCONNEXION_SUPPORT PROPERTY STRINGS "NavLib" "Raw input") -diff --git src/Gui/CMakeLists.txt src/Gui/CMakeLists.txt -index 642f58568f..52cc393875 100644 ---- src/Gui/CMakeLists.txt -+++ src/Gui/CMakeLists.txt -@@ -133,7 +133,8 @@ if(${Qt5WinExtras_FOUND}) - ) - endif() - --IF(SPNAV_FOUND) -+IF(FREECAD_SPNAV_SUPPORT AND SPNAV_FOUND) -+ add_definitions(-D_USE_3DCONNEXION_SDK) - if(SPNAV_USE_X11) - add_definitions(-DSPNAV_USE_X11) - if (FREECAD_QT_MAJOR_VERSION EQUAL 5 AND UNIX AND NOT APPLE) -@@ -175,7 +176,11 @@ IF(SPNAV_FOUND) - list(APPEND FreeCADGui_LIBS - ${SPNAV_LIBRARIES} - ) --ENDIF(SPNAV_FOUND) -+ENDIF(FREECAD_SPNAV_SUPPORT AND SPNAV_FOUND) -+ -+IF(FREECAD_SPNAV_SUPPORT AND NOT SPNAV_FOUND) -+ MESSAGE(FATAL_ERROR "libspnav support requested but libspnav not found") -+ENDIF(FREECAD_SPNAV_SUPPORT AND NOT SPNAV_FOUND) - - IF(OCULUS_FOUND) - add_definitions(-DOCULUS_FOUND) -diff --git src/Gui/GuiApplicationNativeEventAware.cpp src/Gui/GuiApplicationNativeEventAware.cpp -index ba41901472..c0cf3c7666 100644 ---- src/Gui/GuiApplicationNativeEventAware.cpp -+++ src/Gui/GuiApplicationNativeEventAware.cpp -@@ -33,7 +33,7 @@ - - - #if defined(_USE_3DCONNEXION_SDK) || defined(SPNAV_FOUND) --#if defined(Q_OS_LINUX) -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - #if defined(SPNAV_USE_X11) - #include "3Dconnexion/GuiNativeEventLinuxX11.h" - #else -@@ -59,7 +59,15 @@ Gui::GUIApplicationNativeEventAware::~GUIApplicationNativeEventAware() = default - void Gui::GUIApplicationNativeEventAware::initSpaceball(QMainWindow *window) - { - #if defined(_USE_3DCONNEXION_SDK) || defined(SPNAV_FOUND) -+# if defined(USE_3DCONNEXION_NAVLIB) -+ ParameterGrp::handle hViewGrp = App::GetApplication().GetParameterGroupByPath( -+ "User parameter:BaseApp/Preferences/View"); -+ if (nativeEvent && hViewGrp->GetBool("LegacySpaceMouseDevices", false)) { -+ nativeEvent->initSpaceball(window); -+ } -+# else - nativeEvent->initSpaceball(window); -+# endif - #else - Q_UNUSED(window); - #endif -diff --git src/Gui/View3DInventorViewer.cpp src/Gui/View3DInventorViewer.cpp -index 694f834583..d32c2486b5 100644 ---- src/Gui/View3DInventorViewer.cpp -+++ src/Gui/View3DInventorViewer.cpp -@@ -555,7 +555,15 @@ void View3DInventorViewer::init() - //filter a few qt events - viewerEventFilter = new ViewerEventFilter; - installEventFilter(viewerEventFilter); -+#if defined(USE_3DCONNEXION_NAVLIB) -+ ParameterGrp::handle hViewGrp = App::GetApplication().GetParameterGroupByPath( -+ "User parameter:BaseApp/Preferences/View"); -+ if (hViewGrp->GetBool("LegacySpaceMouseDevices", false)) { -+ getEventFilter()->registerInputDevice(new SpaceNavigatorDevice); -+ } -+#else - getEventFilter()->registerInputDevice(new SpaceNavigatorDevice); -+#endif - getEventFilter()->registerInputDevice(new GesturesDevice(this)); - - try{ diff --git a/cad/freecad/files/patch-src_Gui_GuiApplicationNativeEventAware.cpp b/cad/freecad/files/patch-src_Gui_GuiApplicationNativeEventAware.cpp new file mode 100644 index 000000000000..a46ce349429f --- /dev/null +++ b/cad/freecad/files/patch-src_Gui_GuiApplicationNativeEventAware.cpp @@ -0,0 +1,18 @@ +commit 8ae0abfd1d044c295c939c032790a7c4e3e960c0 +Author: Christoph Moench-Tegeder <cmt@FreeBSD.org> + + enable spnav on FreeBSD, too + +diff --git src/Gui/GuiApplicationNativeEventAware.cpp src/Gui/GuiApplicationNativeEventAware.cpp +index 622f38ea47..9e02558875 100644 +--- src/Gui/GuiApplicationNativeEventAware.cpp ++++ src/Gui/GuiApplicationNativeEventAware.cpp +@@ -33,7 +33,7 @@ + + + #if defined(_USE_3DCONNEXION_SDK) || defined(SPNAV_FOUND) +-#if defined(Q_OS_LINUX) ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + #if defined(SPNAV_USE_X11) + #include "3Dconnexion/GuiNativeEventLinuxX11.h" + #else diff --git a/cad/freecad/pkg-plist b/cad/freecad/pkg-plist index 9d9738115aae..89d6c49b078e 100644 --- a/cad/freecad/pkg-plist +++ b/cad/freecad/pkg-plist @@ -1596,6 +1596,7 @@ FreeCAD/Mod/TechDraw/TDTest/DrawViewSymbolTest.py FreeCAD/Mod/TechDraw/TDTest/TechDrawTestUtilities.py FreeCAD/Mod/TechDraw/TDTest/TestHatch.svg FreeCAD/Mod/TechDraw/TDTest/TestImage.png +FreeCAD/Mod/TechDraw/TDTest/TestNonAsciiSymbol.svg FreeCAD/Mod/TechDraw/TDTest/TestSymbol.svg FreeCAD/Mod/TechDraw/TDTest/TestTemplate.svg FreeCAD/Mod/TechDraw/TDTest/__init__.py @@ -2023,98 +2024,103 @@ FreeCAD/share/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg FreeCAD/share/Gui/PreferencePacks/package.xml FreeCAD/share/Gui/Stylesheets/FreeCAD Dark.qss FreeCAD/share/Gui/Stylesheets/FreeCAD Light.qss -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-UpDown-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-UpDown-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-UpDown-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-UpDown-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-double-UpDown-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-down-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-down-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-down-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-down-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-down-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-left-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-left-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-left-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-left-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-left-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-leftDown-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-leftDown-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-leftDown-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-leftDown-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-leftDown-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-right-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-right-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-right-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-right-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-right-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-rightDown-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-rightDown-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-rightDown-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-rightDown-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-rightDown-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-up-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-up-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-up-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-up-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Arrow-up-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Close-DarkRed.png -FreeCAD/share/Gui/Stylesheets/images_classic/Close-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hmovetoolbar-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hmovetoolbar-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hmovetoolbar-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hmovetoolbar-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hmovetoolbar-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hsepartoolbar-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hsepartoolbar-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hsepartoolbar-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hsepartoolbar-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Hsepartoolbar-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-Blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-dark.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-light.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-Blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-dark.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-light.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_UnFoldOver_Blue-Blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_UnfoldOver_Blue-dark.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_UnfoldOver_Blue-light.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-Blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-dark.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-light.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_fold_black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_fold_darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_fold_lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_fold_white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_unfold_black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_unfold_darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_unfold_lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Qsint_header_unfold_white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-checked-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-checked-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-checked-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-checked-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-checked-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-unchecked-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-unchecked-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-unchecked-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-unchecked-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Radio-unchecked-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vmovetoolbar-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vmovetoolbar-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vmovetoolbar-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vmovetoolbar-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vmovetoolbar-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vsepartoolbar-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vsepartoolbar-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vsepartoolbar-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vsepartoolbar-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/Vsepartoolbar-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-leftright-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-leftright-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-leftright-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-leftright-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-leftright-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-updown-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-updown-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-updown-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-updown-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-double-updown-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-down-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-down-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-down-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-down-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-down-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-left-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-left-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-left-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-left-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-left-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-leftdown-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-leftdown-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-leftdown-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-leftdown-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-leftdown-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-right-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-right-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-right-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-right-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-right-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-rightdown-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-rightdown-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-rightdown-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-rightdown-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-rightdown-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-up-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-up-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-up-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-up-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/arrow-up-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-empty-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-empty-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-empty-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-empty-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-empty-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/close-darkred.png +FreeCAD/share/Gui/Stylesheets/images_classic/close-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/hmovetoolbar-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/hmovetoolbar-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/hmovetoolbar-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/hmovetoolbar-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/hmovetoolbar-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/hsepartoolbar-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/hsepartoolbar-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/hsepartoolbar-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/hsepartoolbar-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/hsepartoolbar-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_foldover_blue-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_foldover_blue-dark.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_foldover_blue-light.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_fold_blue-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_fold_blue-dark.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_fold_blue-light.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfoldover_blue-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfoldover_blue-dark.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfoldover_blue-light.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfold_blue-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfold_blue-dark.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfold_blue-light.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_fold_black.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_fold_darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_fold_lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_fold_white.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfold_black.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfold_darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfold_lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/qsint_header_unfold_white.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-checked-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-checked-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-checked-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-checked-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-checked-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-unchecked-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-unchecked-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-unchecked-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-unchecked-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/radio-unchecked-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/vmovetoolbar-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/vmovetoolbar-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/vmovetoolbar-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/vmovetoolbar-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/vmovetoolbar-white.png +FreeCAD/share/Gui/Stylesheets/images_classic/vsepartoolbar-black.png +FreeCAD/share/Gui/Stylesheets/images_classic/vsepartoolbar-blue.png +FreeCAD/share/Gui/Stylesheets/images_classic/vsepartoolbar-darkgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/vsepartoolbar-lightgray.png +FreeCAD/share/Gui/Stylesheets/images_classic/vsepartoolbar-white.png FreeCAD/share/Gui/Stylesheets/images_classic/autohide-black.png FreeCAD/share/Gui/Stylesheets/images_classic/autohide-blue.png FreeCAD/share/Gui/Stylesheets/images_classic/autohide-darkgray.png @@ -2128,11 +2134,6 @@ FreeCAD/share/Gui/Stylesheets/images_classic/check-mark-blue.png FreeCAD/share/Gui/Stylesheets/images_classic/check-mark-darkgray.png FreeCAD/share/Gui/Stylesheets/images_classic/check-mark-lightgray.png FreeCAD/share/Gui/Stylesheets/images_classic/check-mark-white.png -FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-Empty-black.png -FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-Empty-blue.png -FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-Empty-darkgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-Empty-lightgray.png -FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-Empty-white.png FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-checked-black.png FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-checked-blue.png FreeCAD/share/Gui/Stylesheets/images_classic/checkbox-checked-darkgray.png @@ -2974,6 +2975,7 @@ bin/freecad-thumbnailer %%PYTHON_SITELIBDIR%%/freecad/project_utility.py %%PYTHON_SITELIBDIR%%/freecad/sketcher.py %%PYTHON_SITELIBDIR%%/freecad/utils.py +%%PYTHON_SITELIBDIR%%/freecad/utils_zip.py %%QT_PLUGINDIR%%/designer/libFreeCAD_widgets.so share/applications/org.freecad.FreeCAD.desktop share/icons/hicolor/16x16/apps/org.freecad.FreeCAD.png diff --git a/cad/hs-verismith/Makefile b/cad/hs-verismith/Makefile index a9db03e9cc9e..717dbe8c2985 100644 --- a/cad/hs-verismith/Makefile +++ b/cad/hs-verismith/Makefile @@ -1,7 +1,6 @@ PORTNAME= verismith DISTVERSIONPREFIX= v -DISTVERSION= 1.0.0.2-40 -DISTVERSIONSUFFIX= -g866707b +DISTVERSION= 1.1.0 CATEGORIES= cad haskell MAINTAINER= yuri@FreeBSD.org @@ -11,103 +10,106 @@ WWW= https://github.com/ymherklotz/verismith/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ghc-9.6.7:lang/ghc96 +xBUILD_DEPENDS= ghc-9.6.7:lang/ghc96 USES= cabal USE_GITHUB= yes GH_ACCOUNT= ymherklotz -USE_CABAL= OneTuple-0.4.2 \ +USE_CABAL= OneTuple-0.4.2_1 \ StateVar-1.2.2 \ - adjunctions-4.4.2_2 \ - alex-3.5.1.0 \ - ansi-terminal-1.1.1 \ + adjunctions-4.4.3 \ + alex-3.5.3.0 \ + ansi-terminal-1.1.2 \ ansi-terminal-types-1.1 \ - assoc-1.1.1 \ - async-2.2.5_2 \ + assoc-1.1.1_1 \ + async-2.2.5_3 \ barbies-2.1.1.0 \ - base-compat-0.14.0 \ - base-orphans-0.9.2 \ + base-compat-0.14.1 \ + base-orphans-0.9.3 \ basement-0.0.16 \ - bifunctors-5.6.2 \ - blaze-builder-0.4.2.3 \ + bifunctors-5.6.2_2 \ + blaze-builder-0.4.3 \ blaze-html-0.9.2.0_1 \ blaze-markup-0.8.3.0_2 \ - boring-0.2.2 \ + boring-0.2.2_1 \ call-stack-0.4.0 \ case-insensitive-1.2.1.0 \ colour-2.3.6 \ - comonad-5.0.8_2 \ + comonad-5.0.9_1 \ concurrent-output-1.10.21 \ constraints-0.14.2_1 \ contravariant-1.5.5 \ cryptonite-0.30 \ - data-default-class-0.1.2.0 \ - data-fix-0.3.4 \ + data-default-0.8.0.1 \ + data-default-class-0.2.0.0 \ + data-fix-0.3.4_1 \ distributive-0.6.2.1_1 \ dotgen-0.4.3 \ enclosed-exceptions-1.0.3 \ erf-2.0.0.0 \ - fgl-5.8.2.0 \ + fgl-5.8.3.0 \ fgl-visualize-0.1.0.1 \ - free-5.2_5 \ + free-5.2_7 \ gitrev-1.3.1 \ - happy-1.20.1.1 \ - hashable-1.4.7.0 \ - haskell-lexer-1.1.1 \ - hedgehog-1.4_8 \ - hsc2hs-0.68.10_2 \ - indexed-traversable-0.1.4 \ - indexed-traversable-instances-0.1.2 \ - integer-logarithms-1.0.3.1_6 \ - invariant-0.6.3 \ - kan-extensions-5.2.6 \ - lens-5.2.3_5 \ - lifted-async-0.10.2.5_1 \ + happy-2.1.5 \ + happy-lib-2.1.5 \ + hashable-1.5.0.0_1 \ + haskell-lexer-1.2.1 \ + hedgehog-1.5_2 \ + hsc2hs-0.68.10_4 \ + indexed-traversable-0.1.4_1 \ + indexed-traversable-instances-0.1.2_1 \ + integer-logarithms-1.0.4 \ + invariant-0.6.4_1 \ + kan-extensions-5.2.6_1 \ + lens-5.3.4 \ + lifted-async-0.10.2.7 \ lifted-base-0.2.3.12 \ math-functions-0.3.4.4 \ - megaparsec-9.6.1 \ - memory-0.18.0 \ + megaparsec-9.7.0 \ + memory-0.18.0_1 \ mmorph-1.2.0_3 \ monad-control-1.0.3.1 \ mwc-probability-2.3.1 \ - mwc-random-0.15.1.0 \ - optparse-applicative-0.18.1.0 \ - os-string-2.0.6 \ - parallel-3.2.2.0_8 \ + mwc-random-0.15.2.0 \ + optparse-applicative-0.18.1.0_1 \ + os-string-2.0.7 \ + parallel-3.2.2.0_9 \ parser-combinators-1.3.0_1 \ pretty-show-1.10 \ prettyprinter-1.7.1 \ prettyprinter-ansi-terminal-1.1.3 \ - primitive-0.9.0.0_1 \ + primitive-0.9.1.0 \ profunctors-5.6.2_3 \ - random-1.2.1.2 \ - recursion-schemes-5.2.3 \ - reflection-2.1.8 \ + random-1.2.1.3 \ + recursion-schemes-5.2.3_1 \ + reflection-2.1.9_1 \ resourcet-1.3.0 \ safe-exceptions-0.1.7.4_1 \ - scientific-0.3.8.0_1 \ + scientific-0.3.8.0_2 \ selective-0.7.0.1 \ - semigroupoids-6.0.1_1 \ + semigroupoids-6.0.1_2 \ semigroups-0.20 \ shelly-1.12.1_1 \ - splitmix-0.1.0.5_1 \ + splitmix-0.1.1 \ strict-0.5.1_1 \ - tagged-0.8.8_1 \ + tagged-0.8.9 \ + tasty-1.5.3_1 \ terminal-size-0.3.4_1 \ - th-abstraction-0.7.0.0 \ - these-1.2.1_1 \ - tomland-1.3.3.3 \ + th-abstraction-0.7.1.0_1 \ + these-1.2.1_2 \ + tomland-1.3.3.3_2 \ transformers-base-0.4.6 \ transformers-compat-0.7.2 \ - unix-compat-0.7.2 \ + unix-compat-0.7.4 \ unliftio-core-0.2.1.0_4 \ - unordered-containers-0.2.20_3 \ - validation-selective-0.2.0.0_4 \ - vector-0.13.1.0_1 \ - vector-stream-0.1.0.1_1 \ + unordered-containers-0.2.20_4 \ + validation-selective-0.2.0.0_5 \ + vector-0.13.2.0_1 \ + vector-stream-0.1.0.1_3 \ void-0.7.3 \ - wl-pprint-annotated-0.1.0.1_3 + wl-pprint-annotated-0.1.0.1_4 PORTSCOUT= limit:^.*[0-9]\.[0-9] # prevent fpga20 diff --git a/cad/hs-verismith/distinfo b/cad/hs-verismith/distinfo index a9b109e85afb..acf388a745af 100644 --- a/cad/hs-verismith/distinfo +++ b/cad/hs-verismith/distinfo @@ -1,36 +1,40 @@ -TIMESTAMP = 1725194649 +TIMESTAMP = 1747327230 SHA256 (cabal/OneTuple-0.4.2/OneTuple-0.4.2.tar.gz) = 174da8a0f4004d17b08182cb25b0e045fce5de1fdeae84e9d75fdea2867aab55 SIZE (cabal/OneTuple-0.4.2/OneTuple-0.4.2.tar.gz) = 5207 +SHA256 (cabal/OneTuple-0.4.2/revision/1.cabal) = dd7266f983da2970e5662168add810dabadabb3a4bb9b137181eafc0ac7ea4d4 +SIZE (cabal/OneTuple-0.4.2/revision/1.cabal) = 2013 SHA256 (cabal/StateVar-1.2.2/StateVar-1.2.2.tar.gz) = 5e4b39da395656a59827b0280508aafdc70335798b50e5d6fd52596026251825 SIZE (cabal/StateVar-1.2.2/StateVar-1.2.2.tar.gz) = 5048 -SHA256 (cabal/adjunctions-4.4.2/adjunctions-4.4.2.tar.gz) = 147b5f8db810bca0ea8952ef974982ffc447cecd21f01e1ea1121df77e276518 -SIZE (cabal/adjunctions-4.4.2/adjunctions-4.4.2.tar.gz) = 17201 -SHA256 (cabal/adjunctions-4.4.2/revision/2.cabal) = 30206ae6b78d3d523c2ff73640f84b51fa204ac3f05267a5f0c77c486b96781d -SIZE (cabal/adjunctions-4.4.2/revision/2.cabal) = 3379 -SHA256 (cabal/alex-3.5.1.0/alex-3.5.1.0.tar.gz) = c92efe86f8eb959ee03be6c04ee57ebc7e4abc75a6c4b26551215d7443e92a07 -SIZE (cabal/alex-3.5.1.0/alex-3.5.1.0.tar.gz) = 85982 -SHA256 (cabal/ansi-terminal-1.1.1/ansi-terminal-1.1.1.tar.gz) = 7e448fcdf8a5a97f3d30e5168f834641df9945fafa65f2e87d73ff9556a1bc4c -SIZE (cabal/ansi-terminal-1.1.1/ansi-terminal-1.1.1.tar.gz) = 35398 +SHA256 (cabal/adjunctions-4.4.3/adjunctions-4.4.3.tar.gz) = 8beb121cee2bf913dac3188ed1e0e05cf1a0d0f12d4cb4a27c0da58450eb189a +SIZE (cabal/adjunctions-4.4.3/adjunctions-4.4.3.tar.gz) = 16788 +SHA256 (cabal/alex-3.5.3.0/alex-3.5.3.0.tar.gz) = a5cd52e2dd2837138523e2e24ec3435b8cf2624afd50725105e644226e0b9ec6 +SIZE (cabal/alex-3.5.3.0/alex-3.5.3.0.tar.gz) = 92759 +SHA256 (cabal/ansi-terminal-1.1.2/ansi-terminal-1.1.2.tar.gz) = a8d04a3e0451e22a6499a92311f0df1196dc65b687df7d10e3f30d92420156b0 +SIZE (cabal/ansi-terminal-1.1.2/ansi-terminal-1.1.2.tar.gz) = 36259 SHA256 (cabal/ansi-terminal-types-1.1/ansi-terminal-types-1.1.tar.gz) = f2e5333eb78da5f4dd330fca0c81a59276cc150c625647cd20f57b7f297a5d25 SIZE (cabal/ansi-terminal-types-1.1/ansi-terminal-types-1.1.tar.gz) = 4746 SHA256 (cabal/assoc-1.1.1/assoc-1.1.1.tar.gz) = 231149b7fef09f5dd95af51228615e3b296dbd0faadeca053e0644a4b13b0ff6 SIZE (cabal/assoc-1.1.1/assoc-1.1.1.tar.gz) = 3158 +SHA256 (cabal/assoc-1.1.1/revision/1.cabal) = 0ab39b4d1feb4caca95ac6e314f48782b27a86a6b8d1f5e8dc4be9fbed11185f +SIZE (cabal/assoc-1.1.1/revision/1.cabal) = 1420 SHA256 (cabal/async-2.2.5/async-2.2.5.tar.gz) = 1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7 SIZE (cabal/async-2.2.5/async-2.2.5.tar.gz) = 15742 -SHA256 (cabal/async-2.2.5/revision/2.cabal) = cf9e6afba8e01830ca0d32a12b98d481cf389688762c80d1870a1db2061ebf35 -SIZE (cabal/async-2.2.5/revision/2.cabal) = 3257 +SHA256 (cabal/async-2.2.5/revision/3.cabal) = b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b +SIZE (cabal/async-2.2.5/revision/3.cabal) = 3366 SHA256 (cabal/barbies-2.1.1.0/barbies-2.1.1.0.tar.gz) = 73972093f6a5f8e8daaeb5f1058abbd0944d3fcb9f073f2ad3cdb94095d4d2b7 SIZE (cabal/barbies-2.1.1.0/barbies-2.1.1.0.tar.gz) = 41687 -SHA256 (cabal/base-compat-0.14.0/base-compat-0.14.0.tar.gz) = f146de664ac838ebe18ec9360df82da3660149dc7d51fd29bcb61d653b799c50 -SIZE (cabal/base-compat-0.14.0/base-compat-0.14.0.tar.gz) = 42744 -SHA256 (cabal/base-orphans-0.9.2/base-orphans-0.9.2.tar.gz) = 6211900916955b84687c61b5e4fa98ce110e511a96086b7a93f06dd63c97ba93 -SIZE (cabal/base-orphans-0.9.2/base-orphans-0.9.2.tar.gz) = 26705 +SHA256 (cabal/base-compat-0.14.1/base-compat-0.14.1.tar.gz) = 74e655541e645e8fc7aade1e6a1b6973561be0bca9369bc1623aa345019a35e9 +SIZE (cabal/base-compat-0.14.1/base-compat-0.14.1.tar.gz) = 32244 +SHA256 (cabal/base-orphans-0.9.3/base-orphans-0.9.3.tar.gz) = 17a35079c8719014560c028d9805ec1301b900972adf212e00af23fe3ebfabd8 +SIZE (cabal/base-orphans-0.9.3/base-orphans-0.9.3.tar.gz) = 19923 SHA256 (cabal/basement-0.0.16/basement-0.0.16.tar.gz) = 7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300 SIZE (cabal/basement-0.0.16/basement-0.0.16.tar.gz) = 134837 SHA256 (cabal/bifunctors-5.6.2/bifunctors-5.6.2.tar.gz) = 1086a9285061eed0c2c5d3cb65aa223defd52fca6d0515bb69ddf2dbc3d9697a SIZE (cabal/bifunctors-5.6.2/bifunctors-5.6.2.tar.gz) = 38193 -SHA256 (cabal/blaze-builder-0.4.2.3/blaze-builder-0.4.2.3.tar.gz) = 66291874236b7342adab033e3cddae414a23a2865dfb44095dfc4e0b9d46703b -SIZE (cabal/blaze-builder-0.4.2.3/blaze-builder-0.4.2.3.tar.gz) = 60777 +SHA256 (cabal/bifunctors-5.6.2/revision/2.cabal) = 115a621c4eaaabb07834f9e4dd3371e21f39d034305062f4bd5cd72c2f8880d2 +SIZE (cabal/bifunctors-5.6.2/revision/2.cabal) = 3332 +SHA256 (cabal/blaze-builder-0.4.3/blaze-builder-0.4.3.tar.gz) = 02646abf6f3d3a5a73ff5aef589fa5b889601ffb9765b03bdf9df98648bc7fee +SIZE (cabal/blaze-builder-0.4.3/blaze-builder-0.4.3.tar.gz) = 60686 SHA256 (cabal/blaze-html-0.9.2.0/blaze-html-0.9.2.0.tar.gz) = 65542ef39f7644a3d76afcadeb976d3e334c6947516b7313fcb59165cea1608f SIZE (cabal/blaze-html-0.9.2.0/blaze-html-0.9.2.0.tar.gz) = 81915 SHA256 (cabal/blaze-html-0.9.2.0/revision/1.cabal) = 85c42f84f4ead2c48844fbe0865069add3bb3bb3322d38607e93d5515a4c9c58 @@ -41,16 +45,18 @@ SHA256 (cabal/blaze-markup-0.8.3.0/revision/2.cabal) = 027f218b81d28a7c0a33b93d4 SIZE (cabal/blaze-markup-0.8.3.0/revision/2.cabal) = 2360 SHA256 (cabal/boring-0.2.2/boring-0.2.2.tar.gz) = 928baf1fff69b17658fb7014a1cc3e220b3b69b52271ae9c0452f82d67b3ef86 SIZE (cabal/boring-0.2.2/boring-0.2.2.tar.gz) = 5474 +SHA256 (cabal/boring-0.2.2/revision/1.cabal) = f6d705c30830a337862210f12c4ce38d5ab4d3660631e0214b504f10815a2e8d +SIZE (cabal/boring-0.2.2/revision/1.cabal) = 1779 SHA256 (cabal/call-stack-0.4.0/call-stack-0.4.0.tar.gz) = 430bcf8a3404f7e55319573c0b807b1356946f0c8f289bb3d9afb279c636b87b SIZE (cabal/call-stack-0.4.0/call-stack-0.4.0.tar.gz) = 2757 SHA256 (cabal/case-insensitive-1.2.1.0/case-insensitive-1.2.1.0.tar.gz) = 296dc17e0c5f3dfb3d82ced83e4c9c44c338ecde749b278b6eae512f1d04e406 SIZE (cabal/case-insensitive-1.2.1.0/case-insensitive-1.2.1.0.tar.gz) = 53609 SHA256 (cabal/colour-2.3.6/colour-2.3.6.tar.gz) = 2cd35dcd6944a5abc9f108a5eb5ee564b6b1fa98a9ec79cefcc20b588991f871 SIZE (cabal/colour-2.3.6/colour-2.3.6.tar.gz) = 20675 -SHA256 (cabal/comonad-5.0.8/comonad-5.0.8.tar.gz) = ef6cdf2cc292cc43ee6aa96c581b235fdea8ab44a0bffb24dc79ae2b2ef33d13 -SIZE (cabal/comonad-5.0.8/comonad-5.0.8.tar.gz) = 15227 -SHA256 (cabal/comonad-5.0.8/revision/2.cabal) = 4a4dbfbd03fb4963987710fca994e8b5624bd05a33e5f95b7581b26f8229c5e3 -SIZE (cabal/comonad-5.0.8/revision/2.cabal) = 3631 +SHA256 (cabal/comonad-5.0.9/comonad-5.0.9.tar.gz) = 69fb0eb49a80055a9b76d31d0a5648777c4050ac8dbf56a9344b862ed878a789 +SIZE (cabal/comonad-5.0.9/comonad-5.0.9.tar.gz) = 14455 +SHA256 (cabal/comonad-5.0.9/revision/1.cabal) = 75aded79bf583c908e4e4687c0ae067f256e2507536b75f58ffba7748767c353 +SIZE (cabal/comonad-5.0.9/revision/1.cabal) = 3587 SHA256 (cabal/concurrent-output-1.10.21/concurrent-output-1.10.21.tar.gz) = 4a20f3af43a1023539fd35e6d94a13c3c55e296eb233149f2371c2aa9ea3b512 SIZE (cabal/concurrent-output-1.10.21/concurrent-output-1.10.21.tar.gz) = 23875 SHA256 (cabal/constraints-0.14.2/constraints-0.14.2.tar.gz) = 4f249f805d1807ecd86e36e2aa9c9ad8206d2b70d50ff7f11b79721e08fd19f8 @@ -61,10 +67,14 @@ SHA256 (cabal/contravariant-1.5.5/contravariant-1.5.5.tar.gz) = 062fd66580d7aad0 SIZE (cabal/contravariant-1.5.5/contravariant-1.5.5.tar.gz) = 13815 SHA256 (cabal/cryptonite-0.30/cryptonite-0.30.tar.gz) = 56099c8a8aa01d2ee914b670c97c1f818186dbb886e2025b73d9c2afe3496b1d SIZE (cabal/cryptonite-0.30/cryptonite-0.30.tar.gz) = 621062 -SHA256 (cabal/data-default-class-0.1.2.0/data-default-class-0.1.2.0.tar.gz) = 4f01b423f000c3e069aaf52a348564a6536797f31498bb85c3db4bd2d0973e56 -SIZE (cabal/data-default-class-0.1.2.0/data-default-class-0.1.2.0.tar.gz) = 2522 +SHA256 (cabal/data-default-0.8.0.1/data-default-0.8.0.1.tar.gz) = ce085de8ec2196f0c1d30af0ad8a517d5737c9edfd4ebfbb49e8687dfc40b6ca +SIZE (cabal/data-default-0.8.0.1/data-default-0.8.0.1.tar.gz) = 5821 +SHA256 (cabal/data-default-class-0.2.0.0/data-default-class-0.2.0.0.tar.gz) = 0ae530c4fb0bd6c8a8ba399429ccd9c75f9c7696049117178f4ceeb2bd08d5b4 +SIZE (cabal/data-default-class-0.2.0.0/data-default-class-0.2.0.0.tar.gz) = 1589 SHA256 (cabal/data-fix-0.3.4/data-fix-0.3.4.tar.gz) = 8df052d18c047ab9e9200536a8799b5af3997ebecbbb091a7384b6be8416ab37 SIZE (cabal/data-fix-0.3.4/data-fix-0.3.4.tar.gz) = 5992 +SHA256 (cabal/data-fix-0.3.4/revision/1.cabal) = ee78be6168ca0878d670fede957195d3debf4a37a806d13d72182b274901261b +SIZE (cabal/data-fix-0.3.4/revision/1.cabal) = 1406 SHA256 (cabal/distributive-0.6.2.1/distributive-0.6.2.1.tar.gz) = d7351392e078f58caa46630a4b9c643e1e2e9dddee45848c5c8358e7b1316b91 SIZE (cabal/distributive-0.6.2.1/distributive-0.6.2.1.tar.gz) = 8140 SHA256 (cabal/distributive-0.6.2.1/revision/1.cabal) = 0f99f5541cca04acf89b64432b03422b6408e830a8dff30e6c4334ef1a48680c @@ -75,58 +85,66 @@ SHA256 (cabal/enclosed-exceptions-1.0.3/enclosed-exceptions-1.0.3.tar.gz) = af6d SIZE (cabal/enclosed-exceptions-1.0.3/enclosed-exceptions-1.0.3.tar.gz) = 5748 SHA256 (cabal/erf-2.0.0.0/erf-2.0.0.0.tar.gz) = 24f0b79c7e1d25cb2cd44c2258d7a464bf6db8079775b50b60b54a254616b337 SIZE (cabal/erf-2.0.0.0/erf-2.0.0.0.tar.gz) = 1918 -SHA256 (cabal/fgl-5.8.2.0/fgl-5.8.2.0.tar.gz) = 44cf0cf720f1d3fb31689cab219adf9b1a5367b3fbf4bd6678f4d156f3e8c3b6 -SIZE (cabal/fgl-5.8.2.0/fgl-5.8.2.0.tar.gz) = 57401 +SHA256 (cabal/fgl-5.8.3.0/fgl-5.8.3.0.tar.gz) = a4ca15b162068a6cd8fd8685e2c1231ace4a24d56b2424b8e3f8988ff1ab63c1 +SIZE (cabal/fgl-5.8.3.0/fgl-5.8.3.0.tar.gz) = 57723 SHA256 (cabal/fgl-visualize-0.1.0.1/fgl-visualize-0.1.0.1.tar.gz) = b8e7f7b6a123ff22488f77a771cbd2cc285ef41299747662797abe9741778a6f SIZE (cabal/fgl-visualize-0.1.0.1/fgl-visualize-0.1.0.1.tar.gz) = 2172 SHA256 (cabal/free-5.2/free-5.2.tar.gz) = 72867f7c89173263765736e8d395e94291f1aaea626ecb1d673d72ce90b94f89 SIZE (cabal/free-5.2/free-5.2.tar.gz) = 58781 -SHA256 (cabal/free-5.2/revision/5.cabal) = 31e49c0d27e9a9493bf3196449501cf2c546e5e988574d64380518fed0ccc46e -SIZE (cabal/free-5.2/revision/5.cabal) = 4176 +SHA256 (cabal/free-5.2/revision/7.cabal) = 7f3992a66987bbba5a6546420f6129fb9b66b80cdd005d34ec77a1e1c8ed8340 +SIZE (cabal/free-5.2/revision/7.cabal) = 4178 SHA256 (cabal/gitrev-1.3.1/gitrev-1.3.1.tar.gz) = a89964db24f56727b0e7b10c98fe7c116d721d8c46f52d6e77088669aaa38332 SIZE (cabal/gitrev-1.3.1/gitrev-1.3.1.tar.gz) = 3756 -SHA256 (cabal/happy-1.20.1.1/happy-1.20.1.1.tar.gz) = 8b4e7dc5a6c5fd666f8f7163232931ab28746d0d17da8fa1cbd68be9e878881b -SIZE (cabal/happy-1.20.1.1/happy-1.20.1.1.tar.gz) = 183409 -SHA256 (cabal/hashable-1.4.7.0/hashable-1.4.7.0.tar.gz) = 3baee4c9027a08830d148ec524cbc0471de645e1e8426d46780ef2758df0e8da -SIZE (cabal/hashable-1.4.7.0/hashable-1.4.7.0.tar.gz) = 89467 -SHA256 (cabal/haskell-lexer-1.1.1/haskell-lexer-1.1.1.tar.gz) = c8eeda569a30f115244c17920247ba2c45d11b3e30805f648a878f7855d8f349 -SIZE (cabal/haskell-lexer-1.1.1/haskell-lexer-1.1.1.tar.gz) = 14499 -SHA256 (cabal/hedgehog-1.4/hedgehog-1.4.tar.gz) = f54afb31552e0f809030becad349cbfe19a65753a778771dc7314b2a6c41e6eb -SIZE (cabal/hedgehog-1.4/hedgehog-1.4.tar.gz) = 77762 -SHA256 (cabal/hedgehog-1.4/revision/8.cabal) = 9860ab34ab3951d9515c71b777d8c9c47610aae7339933e17d26ad9a4afa5618 -SIZE (cabal/hedgehog-1.4/revision/8.cabal) = 4754 +SHA256 (cabal/happy-2.1.5/happy-2.1.5.tar.gz) = 7af82f24f65bf951b24000b9e16ee01c750ed40edc0b256881d29daee85c41c4 +SIZE (cabal/happy-2.1.5/happy-2.1.5.tar.gz) = 61293 +SHA256 (cabal/happy-lib-2.1.5/happy-lib-2.1.5.tar.gz) = a25a6c5a2db150caf4b8c91e048e302f776372034b84b8f9461fea0483da94eb +SIZE (cabal/happy-lib-2.1.5/happy-lib-2.1.5.tar.gz) = 93792 +SHA256 (cabal/hashable-1.5.0.0/hashable-1.5.0.0.tar.gz) = e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a +SIZE (cabal/hashable-1.5.0.0/hashable-1.5.0.0.tar.gz) = 89062 +SHA256 (cabal/hashable-1.5.0.0/revision/1.cabal) = 2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef +SIZE (cabal/hashable-1.5.0.0/revision/1.cabal) = 5914 +SHA256 (cabal/haskell-lexer-1.2.1/haskell-lexer-1.2.1.tar.gz) = 9d76e1528106b1b32e6e465264e39381ca4b450b72a4b5331e7e5127640a1a41 +SIZE (cabal/haskell-lexer-1.2.1/haskell-lexer-1.2.1.tar.gz) = 14602 +SHA256 (cabal/hedgehog-1.5/hedgehog-1.5.tar.gz) = e941609fb3deb9acb0caf161405bff1c84da92b2891753c6d937fb9970ea866a +SIZE (cabal/hedgehog-1.5/hedgehog-1.5.tar.gz) = 79621 +SHA256 (cabal/hedgehog-1.5/revision/2.cabal) = c904dc9d8ae7b47a58771a0fbfb7a77882059a2b77c9c0c722dc16de504d0bd4 +SIZE (cabal/hedgehog-1.5/revision/2.cabal) = 4817 SHA256 (cabal/hsc2hs-0.68.10/hsc2hs-0.68.10.tar.gz) = 6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76 SIZE (cabal/hsc2hs-0.68.10/hsc2hs-0.68.10.tar.gz) = 40517 -SHA256 (cabal/hsc2hs-0.68.10/revision/2.cabal) = 60e78b6c60dc32a77ce6c37ed5ca4e838fc5f76f02836ef64d93cd21cc002325 -SIZE (cabal/hsc2hs-0.68.10/revision/2.cabal) = 3032 +SHA256 (cabal/hsc2hs-0.68.10/revision/4.cabal) = 725ef6da03d3d6e332db4de0a35bee45d72e4d31decc5ec7f153e6837af5f03e +SIZE (cabal/hsc2hs-0.68.10/revision/4.cabal) = 3114 SHA256 (cabal/indexed-traversable-0.1.4/indexed-traversable-0.1.4.tar.gz) = 58be09afdf3ad5a25c2aa0d2a7df80d602df09f4e76d3abf2b7cdb0e75d03b22 SIZE (cabal/indexed-traversable-0.1.4/indexed-traversable-0.1.4.tar.gz) = 9465 +SHA256 (cabal/indexed-traversable-0.1.4/revision/1.cabal) = 42d9e84a65a0c17c248233cab98ada872ff6140dfa24d109d6eb285204d07e7d +SIZE (cabal/indexed-traversable-0.1.4/revision/1.cabal) = 2098 SHA256 (cabal/indexed-traversable-instances-0.1.2/indexed-traversable-instances-0.1.2.tar.gz) = 3c2bb62fba141d6696177070d63b88bc56b194bc60f6b73d2263b0244e2fc7c1 SIZE (cabal/indexed-traversable-instances-0.1.2/indexed-traversable-instances-0.1.2.tar.gz) = 3673 -SHA256 (cabal/integer-logarithms-1.0.3.1/integer-logarithms-1.0.3.1.tar.gz) = 9b0a9f9fab609b15cd015865721fb05f744a1bc77ae92fd133872de528bbea7f -SIZE (cabal/integer-logarithms-1.0.3.1/integer-logarithms-1.0.3.1.tar.gz) = 9023 -SHA256 (cabal/integer-logarithms-1.0.3.1/revision/6.cabal) = 0595a16d458c9c5caa425dc8ebbeb5d9adffb0c8daf4720c1d93dfcfc31dd690 -SIZE (cabal/integer-logarithms-1.0.3.1/revision/6.cabal) = 3295 -SHA256 (cabal/invariant-0.6.3/invariant-0.6.3.tar.gz) = 8d2019e4a1060b88f2594df5256b086b07c09fff0f0dc5adf6163facee552fbf -SIZE (cabal/invariant-0.6.3/invariant-0.6.3.tar.gz) = 28239 +SHA256 (cabal/indexed-traversable-instances-0.1.2/revision/1.cabal) = 68df0fc8070ae2c15f9e6febf1449fee364c131a6d1e93cac45e7895ba86dd89 +SIZE (cabal/indexed-traversable-instances-0.1.2/revision/1.cabal) = 2401 +SHA256 (cabal/integer-logarithms-1.0.4/integer-logarithms-1.0.4.tar.gz) = 6a93c76c2518cbe2d72ab17da6ae46d8cae93cbfb7c5a5ad5783f903c1448f45 +SIZE (cabal/integer-logarithms-1.0.4/integer-logarithms-1.0.4.tar.gz) = 8948 +SHA256 (cabal/invariant-0.6.4/invariant-0.6.4.tar.gz) = a9e2ab4ee3e0d4613beb7bda36a8ebc4f72318450514f4832d2fa43b74f0aeb3 +SIZE (cabal/invariant-0.6.4/invariant-0.6.4.tar.gz) = 27079 +SHA256 (cabal/invariant-0.6.4/revision/1.cabal) = 4a9a609f4e93ffed158b3b4f5a80822c6da30aa71a5370307c0c00c2d658d1c6 +SIZE (cabal/invariant-0.6.4/revision/1.cabal) = 3513 SHA256 (cabal/kan-extensions-5.2.6/kan-extensions-5.2.6.tar.gz) = fa82283c1c9ac3dc0951b7ca9f5b2e6f13d8331c20154ebb222b509824eeeccc SIZE (cabal/kan-extensions-5.2.6/kan-extensions-5.2.6.tar.gz) = 21718 -SHA256 (cabal/lens-5.2.3/lens-5.2.3.tar.gz) = df1e8ca8dd89d884994e0c80761a972088326fa43ed5d47c01b14abb710b994d -SIZE (cabal/lens-5.2.3/lens-5.2.3.tar.gz) = 703220 -SHA256 (cabal/lens-5.2.3/revision/5.cabal) = 08f4e81aa3fa3f175f6932089d6bb8b17669e3d00aa2968b853287e5e8d7f024 -SIZE (cabal/lens-5.2.3/revision/5.cabal) = 15237 -SHA256 (cabal/lifted-async-0.10.2.5/lifted-async-0.10.2.5.tar.gz) = 16a0d603a220724c013270cad78f56b8fc23ca428a9df844061ad32bc6961ed2 -SIZE (cabal/lifted-async-0.10.2.5/lifted-async-0.10.2.5.tar.gz) = 10796 -SHA256 (cabal/lifted-async-0.10.2.5/revision/1.cabal) = a04b215b289cdbe93a872a7d990cbff0da0f798f5675782e0601d9b18d15e1a3 -SIZE (cabal/lifted-async-0.10.2.5/revision/1.cabal) = 2877 +SHA256 (cabal/kan-extensions-5.2.6/revision/1.cabal) = e0b972f900a3c04c0f36d7e221e6b04343a5a1f00ce3aababff7932e173f0833 +SIZE (cabal/kan-extensions-5.2.6/revision/1.cabal) = 2581 +SHA256 (cabal/lens-5.3.4/lens-5.3.4.tar.gz) = f1b6ed14b8d8ccafb5724929fb3d0d3b5866b923ca88e8c565b4a84b7993c88a +SIZE (cabal/lens-5.3.4/lens-5.3.4.tar.gz) = 707015 +SHA256 (cabal/lifted-async-0.10.2.7/lifted-async-0.10.2.7.tar.gz) = c281bfb5761c7998cf663da529f2adc6d011ea6e524ca589047a659824fd3d55 +SIZE (cabal/lifted-async-0.10.2.7/lifted-async-0.10.2.7.tar.gz) = 10853 SHA256 (cabal/lifted-base-0.2.3.12/lifted-base-0.2.3.12.tar.gz) = c134a95f56750aae806e38957bb03c59627cda16034af9e00a02b699474317c5 SIZE (cabal/lifted-base-0.2.3.12/lifted-base-0.2.3.12.tar.gz) = 11700 SHA256 (cabal/math-functions-0.3.4.4/math-functions-0.3.4.4.tar.gz) = 2441d8dd50eff445356048b2a0cdf88c4a7ba0f56614293d4975e1b081faf8fa SIZE (cabal/math-functions-0.3.4.4/math-functions-0.3.4.4.tar.gz) = 429048 -SHA256 (cabal/megaparsec-9.6.1/megaparsec-9.6.1.tar.gz) = a32257be847dbe71ac22d512ab115f9ce26fa08bcdbea7ca8b5256a1700dcbff -SIZE (cabal/megaparsec-9.6.1/megaparsec-9.6.1.tar.gz) = 64913 +SHA256 (cabal/megaparsec-9.7.0/megaparsec-9.7.0.tar.gz) = b9ed423625bf20ae7a72480d40d2dd16018a67e2ec45afb840a3607aa931ec97 +SIZE (cabal/megaparsec-9.7.0/megaparsec-9.7.0.tar.gz) = 67078 SHA256 (cabal/memory-0.18.0/memory-0.18.0.tar.gz) = fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e SIZE (cabal/memory-0.18.0/memory-0.18.0.tar.gz) = 41957 +SHA256 (cabal/memory-0.18.0/revision/1.cabal) = 9f4de967352f80b6f174c9a166f315393dde80b77d7b67e41268ae7dec0319f9 +SIZE (cabal/memory-0.18.0/revision/1.cabal) = 4581 SHA256 (cabal/mmorph-1.2.0/mmorph-1.2.0.tar.gz) = 61338058eb676b466a462ca45d59f436a77a3bd6b816e4268c6d88522b6a4280 SIZE (cabal/mmorph-1.2.0/mmorph-1.2.0.tar.gz) = 6861 SHA256 (cabal/mmorph-1.2.0/revision/3.cabal) = df9b213ec18f811cb3137b478d148f3f1680ee43f841cb775835fa282fdb0295 @@ -135,16 +153,18 @@ SHA256 (cabal/monad-control-1.0.3.1/monad-control-1.0.3.1.tar.gz) = ae0baea04d99 SIZE (cabal/monad-control-1.0.3.1/monad-control-1.0.3.1.tar.gz) = 13985 SHA256 (cabal/mwc-probability-2.3.1/mwc-probability-2.3.1.tar.gz) = 3f8d997c6552786a87bfe4d7cc4af50fda2d5ef2feb96be4fe44649843dff795 SIZE (cabal/mwc-probability-2.3.1/mwc-probability-2.3.1.tar.gz) = 7737 -SHA256 (cabal/mwc-random-0.15.1.0/mwc-random-0.15.1.0.tar.gz) = 032bf9bd65054dc0def9bf037ea6a8f91a5cefe77ada18bee98598b045c3e2c8 -SIZE (cabal/mwc-random-0.15.1.0/mwc-random-0.15.1.0.tar.gz) = 42553 +SHA256 (cabal/mwc-random-0.15.2.0/mwc-random-0.15.2.0.tar.gz) = 5843ab06e7c9109326aa4eb5e26486400d6e3bce25944f6671ce989499174133 +SIZE (cabal/mwc-random-0.15.2.0/mwc-random-0.15.2.0.tar.gz) = 43086 SHA256 (cabal/optparse-applicative-0.18.1.0/optparse-applicative-0.18.1.0.tar.gz) = 63811ab4fd26e829b8868364325a88be3acc79819f5bb5005b2dd3b961ecc491 SIZE (cabal/optparse-applicative-0.18.1.0/optparse-applicative-0.18.1.0.tar.gz) = 60682 -SHA256 (cabal/os-string-2.0.6/os-string-2.0.6.tar.gz) = 22fcc7d5fc66676b5dfc57b714d2caf93cce2d5a79d242168352f9eb0fe2f18a -SIZE (cabal/os-string-2.0.6/os-string-2.0.6.tar.gz) = 44363 +SHA256 (cabal/optparse-applicative-0.18.1.0/revision/1.cabal) = f30973861ac7e7ebff05ff8c7c3d1e4d283a1f3850e1cc14106b0693ec1b6d82 +SIZE (cabal/optparse-applicative-0.18.1.0/revision/1.cabal) = 5289 +SHA256 (cabal/os-string-2.0.7/os-string-2.0.7.tar.gz) = 339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0 +SIZE (cabal/os-string-2.0.7/os-string-2.0.7.tar.gz) = 44683 SHA256 (cabal/parallel-3.2.2.0/parallel-3.2.2.0.tar.gz) = 170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6 SIZE (cabal/parallel-3.2.2.0/parallel-3.2.2.0.tar.gz) = 14681 -SHA256 (cabal/parallel-3.2.2.0/revision/8.cabal) = b9cf0b07fdff16f503487a4daa1e40a1f1f6c10974b4f15d6dfd5f243a643e31 -SIZE (cabal/parallel-3.2.2.0/revision/8.cabal) = 1942 +SHA256 (cabal/parallel-3.2.2.0/revision/9.cabal) = 9d7b34ac537940f67732eca31d48a43bd78fb65a91baebddf63bee4fc3813d81 +SIZE (cabal/parallel-3.2.2.0/revision/9.cabal) = 1961 SHA256 (cabal/parser-combinators-1.3.0/parser-combinators-1.3.0.tar.gz) = 9310ef0d49f8a8922acda10b1cded9854cbee04dea717effc6ee5983072e4447 SIZE (cabal/parser-combinators-1.3.0/parser-combinators-1.3.0.tar.gz) = 11699 SHA256 (cabal/parser-combinators-1.3.0/revision/1.cabal) = 8659573e0d443d573f5b53f81b81dafbdc988d282b90c11e3da73562b4ea7876 @@ -155,20 +175,22 @@ SHA256 (cabal/prettyprinter-1.7.1/prettyprinter-1.7.1.tar.gz) = 5e6ea6903114fa11 SIZE (cabal/prettyprinter-1.7.1/prettyprinter-1.7.1.tar.gz) = 56907 SHA256 (cabal/prettyprinter-ansi-terminal-1.1.3/prettyprinter-ansi-terminal-1.1.3.tar.gz) = 813739308ad6050620578994effe21058a170a341716acf52573fae42b5b1db3 SIZE (cabal/prettyprinter-ansi-terminal-1.1.3/prettyprinter-ansi-terminal-1.1.3.tar.gz) = 8879 -SHA256 (cabal/primitive-0.9.0.0/primitive-0.9.0.0.tar.gz) = 696d4bd291c94d736142d6182117dca4258d3ef28bfefdb649ac8b5ecd0999c7 -SIZE (cabal/primitive-0.9.0.0/primitive-0.9.0.0.tar.gz) = 60580 -SHA256 (cabal/primitive-0.9.0.0/revision/1.cabal) = 2e08c5409e3559c7f1669ef50e9a0d9a397e68ecf51110d5e2cedf05cdd7d93c -SIZE (cabal/primitive-0.9.0.0/revision/1.cabal) = 3171 +SHA256 (cabal/primitive-0.9.1.0/primitive-0.9.1.0.tar.gz) = 44b4de41813c7bc5db8a57f87c3612a069b65086946268ba165097252ebd3d76 +SIZE (cabal/primitive-0.9.1.0/primitive-0.9.1.0.tar.gz) = 61724 SHA256 (cabal/profunctors-5.6.2/profunctors-5.6.2.tar.gz) = 65955d7b50525a4a3bccdab1d982d2ae342897fd38140d5a94b5ef3800d8c92a SIZE (cabal/profunctors-5.6.2/profunctors-5.6.2.tar.gz) = 28522 SHA256 (cabal/profunctors-5.6.2/revision/3.cabal) = e178ba4468982326656626e2089e296f64485e68fdddc9f4476dcd5d612b4f78 SIZE (cabal/profunctors-5.6.2/revision/3.cabal) = 2484 -SHA256 (cabal/random-1.2.1.2/random-1.2.1.2.tar.gz) = 790f4dc2d2327c453ff6aac7bf15399fd123d55e927935f68f84b5df42d9a4b4 -SIZE (cabal/random-1.2.1.2/random-1.2.1.2.tar.gz) = 47229 +SHA256 (cabal/random-1.2.1.3/random-1.2.1.3.tar.gz) = e9c81926a7d1e40328f645f73592b31efc9c631589669a7f130687b9cc3051dc +SIZE (cabal/random-1.2.1.3/random-1.2.1.3.tar.gz) = 47117 SHA256 (cabal/recursion-schemes-5.2.3/recursion-schemes-5.2.3.tar.gz) = 3b4e84bcec8d6ea5583388a9fc8b98255d39623d8420784a1a35fe46f4990e08 SIZE (cabal/recursion-schemes-5.2.3/recursion-schemes-5.2.3.tar.gz) = 39351 -SHA256 (cabal/reflection-2.1.8/reflection-2.1.8.tar.gz) = 922e9ff67958ed1bca19000a9d59153ed3152ef775e9018d5853488e4f4189cd -SIZE (cabal/reflection-2.1.8/reflection-2.1.8.tar.gz) = 18331 +SHA256 (cabal/recursion-schemes-5.2.3/revision/1.cabal) = 918e804084122e022d3784a4ca9add536fe9fcc2150ceef5865ca14d4fab4851 +SIZE (cabal/recursion-schemes-5.2.3/revision/1.cabal) = 3106 +SHA256 (cabal/reflection-2.1.9/reflection-2.1.9.tar.gz) = c6a7d5e41ad0ee1a05c660acf4fd34b21f38330eec165d246b7fffb398e59fb3 +SIZE (cabal/reflection-2.1.9/reflection-2.1.9.tar.gz) = 17560 +SHA256 (cabal/reflection-2.1.9/revision/1.cabal) = eaf28dc9884718a306ed1e0c215a24b36c68b8aa3be425617f66d886d43fe1e0 +SIZE (cabal/reflection-2.1.9/revision/1.cabal) = 4171 SHA256 (cabal/resourcet-1.3.0/resourcet-1.3.0.tar.gz) = ec601785ee42a201f32adb205b8685c983f18757b1bd33d2e806d571e0f9996b SIZE (cabal/resourcet-1.3.0/resourcet-1.3.0.tar.gz) = 17620 SHA256 (cabal/safe-exceptions-0.1.7.4/safe-exceptions-0.1.7.4.tar.gz) = 3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6 @@ -177,75 +199,79 @@ SHA256 (cabal/safe-exceptions-0.1.7.4/revision/1.cabal) = 8bb7261bd54bd58acfcb15 SIZE (cabal/safe-exceptions-0.1.7.4/revision/1.cabal) = 1412 SHA256 (cabal/scientific-0.3.8.0/scientific-0.3.8.0.tar.gz) = 13b343bca8aa26d7718e52e622e5a118056653edafcbc7ccc5333be7217218cf SIZE (cabal/scientific-0.3.8.0/scientific-0.3.8.0.tar.gz) = 24314 -SHA256 (cabal/scientific-0.3.8.0/revision/1.cabal) = 2148e2e6ab1f1fd2ecee25067e0ee60da886be89736e8a54d49556407d7113ce -SIZE (cabal/scientific-0.3.8.0/revision/1.cabal) = 4380 +SHA256 (cabal/scientific-0.3.8.0/revision/2.cabal) = ba83a6701dd0110138443757aca4a42786afa94272b73045ef878fd860d1732e +SIZE (cabal/scientific-0.3.8.0/revision/2.cabal) = 4397 SHA256 (cabal/selective-0.7.0.1/selective-0.7.0.1.tar.gz) = dbfb4be71c7956f54e099c34ffe538dfaa99ed3911208df5828563da22b6aee3 SIZE (cabal/selective-0.7.0.1/selective-0.7.0.1.tar.gz) = 36061 SHA256 (cabal/semigroupoids-6.0.1/semigroupoids-6.0.1.tar.gz) = 1d532030862414f5d4f2f6f001783f77aa14e5f05ee8e3c4a2d2129fca29cc1f SIZE (cabal/semigroupoids-6.0.1/semigroupoids-6.0.1.tar.gz) = 36372 -SHA256 (cabal/semigroupoids-6.0.1/revision/1.cabal) = f65892f65f941c7368334bdfdcdb9db2ad3952502e94e88785a5a428fa2f3f4e -SIZE (cabal/semigroupoids-6.0.1/revision/1.cabal) = 7539 +SHA256 (cabal/semigroupoids-6.0.1/revision/2.cabal) = bfee06a6d88038a88ddd10fc21c230bf5ee3a14d0584dc6ab7ad54a9252c2c21 +SIZE (cabal/semigroupoids-6.0.1/revision/2.cabal) = 7539 SHA256 (cabal/semigroups-0.20/semigroups-0.20.tar.gz) = 902d2e33c96b40a89de5957f2a9e097197afcc35e257e45b32ebe770993673e1 SIZE (cabal/semigroups-0.20/semigroups-0.20.tar.gz) = 18788 SHA256 (cabal/shelly-1.12.1/shelly-1.12.1.tar.gz) = 135a264422228c9b13232c28206ee9fb0498dd15767d6a9f857bb30202f80c77 SIZE (cabal/shelly-1.12.1/shelly-1.12.1.tar.gz) = 75543 SHA256 (cabal/shelly-1.12.1/revision/1.cabal) = 15de3321dbe61a4d8b0e3b723422c9a25e0d192fe9a353bc40ab0f05e06ae138 SIZE (cabal/shelly-1.12.1/revision/1.cabal) = 5499 -SHA256 (cabal/splitmix-0.1.0.5/splitmix-0.1.0.5.tar.gz) = 9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002 -SIZE (cabal/splitmix-0.1.0.5/splitmix-0.1.0.5.tar.gz) = 22399 -SHA256 (cabal/splitmix-0.1.0.5/revision/1.cabal) = caa9b4a92abf1496c7f6a3c0f4e357426a54880077cb9f04e260a8bfa034b77b -SIZE (cabal/splitmix-0.1.0.5/revision/1.cabal) = 6596 +SHA256 (cabal/splitmix-0.1.1/splitmix-0.1.1.tar.gz) = d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7 +SIZE (cabal/splitmix-0.1.1/splitmix-0.1.1.tar.gz) = 21981 SHA256 (cabal/strict-0.5.1/strict-0.5.1.tar.gz) = 77719280c2a86312e748227bfa732eeaae0e7df48d57acc3c2e5b7b07afe2f8b SIZE (cabal/strict-0.5.1/strict-0.5.1.tar.gz) = 11798 SHA256 (cabal/strict-0.5.1/revision/1.cabal) = 58c373b7c7748cbb4a5a6c8c15073f99a1c10a9a9bb6894ac33f43a5cdb901f2 SIZE (cabal/strict-0.5.1/revision/1.cabal) = 3557 -SHA256 (cabal/tagged-0.8.8/tagged-0.8.8.tar.gz) = a083fa7835516203c168433a1c8dfc0290a94b05fedab566ad0640fc9137a6a7 -SIZE (cabal/tagged-0.8.8/tagged-0.8.8.tar.gz) = 10094 -SHA256 (cabal/tagged-0.8.8/revision/1.cabal) = 9193defbde3dda997236ccc11a1db3e073cc531fe523e13e9659df776feb0b32 -SIZE (cabal/tagged-0.8.8/revision/1.cabal) = 2732 +SHA256 (cabal/tagged-0.8.9/tagged-0.8.9.tar.gz) = 6daad88ebb414ba6a556d2898d2cbe7650e4276010e3a6eed939daf54b956784 +SIZE (cabal/tagged-0.8.9/tagged-0.8.9.tar.gz) = 8151 +SHA256 (cabal/tasty-1.5.3/tasty-1.5.3.tar.gz) = 54a0c7b644813af871a3726ac8771b5e17b5158c792a7acf8f9e2d3ae9360780 +SIZE (cabal/tasty-1.5.3/tasty-1.5.3.tar.gz) = 66548 +SHA256 (cabal/tasty-1.5.3/revision/1.cabal) = 9d56ea9dbc274fc853fc531373b2c91bfe360e21460c2c6a5838897d86e3f6d0 +SIZE (cabal/tasty-1.5.3/revision/1.cabal) = 2923 SHA256 (cabal/terminal-size-0.3.4/terminal-size-0.3.4.tar.gz) = b0f070d6926cdaacf3a412c5518e5c23afca1e0ed00808a5328c96e468b67f49 SIZE (cabal/terminal-size-0.3.4/terminal-size-0.3.4.tar.gz) = 4457 SHA256 (cabal/terminal-size-0.3.4/revision/1.cabal) = 21d7f1320eeb86177e860ec07a3d8e7510977b1b415a96ebb62ee4ad72955770 SIZE (cabal/terminal-size-0.3.4/revision/1.cabal) = 1364 -SHA256 (cabal/th-abstraction-0.7.0.0/th-abstraction-0.7.0.0.tar.gz) = b2854c612f2fa4adfa1ecbb4089a2211fd9cb3210aec17ba4a455ae486b22721 -SIZE (cabal/th-abstraction-0.7.0.0/th-abstraction-0.7.0.0.tar.gz) = 49904 +SHA256 (cabal/th-abstraction-0.7.1.0/th-abstraction-0.7.1.0.tar.gz) = f9b6184aba4c6b61dd0d96f7dad41a4c9db0a01d3cdbf993a7d860488f1c04c5 +SIZE (cabal/th-abstraction-0.7.1.0/th-abstraction-0.7.1.0.tar.gz) = 45428 +SHA256 (cabal/th-abstraction-0.7.1.0/revision/1.cabal) = 3011403d85b0070630e33d66b9370535ccd1e0e672ae58f847550b2b15bb4fd8 +SIZE (cabal/th-abstraction-0.7.1.0/revision/1.cabal) = 2268 SHA256 (cabal/these-1.2.1/these-1.2.1.tar.gz) = 17d6d933365edabf801a16842c1403bdd37cc5300faa2fcca980decdab22e4de SIZE (cabal/these-1.2.1/these-1.2.1.tar.gz) = 9906 -SHA256 (cabal/these-1.2.1/revision/1.cabal) = c04f573531b37864506b071046e010a7a6aad11650cf895467f9f279d0130b8b -SIZE (cabal/these-1.2.1/revision/1.cabal) = 2279 +SHA256 (cabal/these-1.2.1/revision/2.cabal) = 35c57aede96c15ea1fed559ac287b1168eb2b2869d79e62ed8c845780b7ea136 +SIZE (cabal/these-1.2.1/revision/2.cabal) = 2294 SHA256 (cabal/tomland-1.3.3.3/tomland-1.3.3.3.tar.gz) = a0992bea52a636e2aa2597b0ab25c54f0fb389e0052fe5a6436fe53acef956ab SIZE (cabal/tomland-1.3.3.3/tomland-1.3.3.3.tar.gz) = 90749 +SHA256 (cabal/tomland-1.3.3.3/revision/2.cabal) = fcfa4231de9b4a32c61a18462c5925c4203dbcbeb22c7228d79a463d72491d1c +SIZE (cabal/tomland-1.3.3.3/revision/2.cabal) = 9404 SHA256 (cabal/transformers-base-0.4.6/transformers-base-0.4.6.tar.gz) = 323bf8689eb691b122661cffa41a25e00fea7a768433fe2dde35d3da7d32cf90 SIZE (cabal/transformers-base-0.4.6/transformers-base-0.4.6.tar.gz) = 2902 SHA256 (cabal/transformers-compat-0.7.2/transformers-compat-0.7.2.tar.gz) = b62c7304c9f3cbc9463d0739aa85cb9489f217ea092b9d625d417514fbcc9d6a SIZE (cabal/transformers-compat-0.7.2/transformers-compat-0.7.2.tar.gz) = 46485 -SHA256 (cabal/unix-compat-0.7.2/unix-compat-0.7.2.tar.gz) = 58382c354e9b16a05b427a62f52b60fbc4406ad357bcc951cb76d4134fa6690b -SIZE (cabal/unix-compat-0.7.2/unix-compat-0.7.2.tar.gz) = 15470 +SHA256 (cabal/unix-compat-0.7.4/unix-compat-0.7.4.tar.gz) = 689b3a960c8fe12910554aa5b739d5c4769c1d180ade20402fde2ed49db7eff4 +SIZE (cabal/unix-compat-0.7.4/unix-compat-0.7.4.tar.gz) = 15586 SHA256 (cabal/unliftio-core-0.2.1.0/unliftio-core-0.2.1.0.tar.gz) = 99384cba8d56d9d61b85e38a313a93ebcdb78be6566367f0930ef580597fe3e3 SIZE (cabal/unliftio-core-0.2.1.0/unliftio-core-0.2.1.0.tar.gz) = 3865 SHA256 (cabal/unliftio-core-0.2.1.0/revision/4.cabal) = f6a2736f858b5390d9384dca43d3ea4d96e9ca17217791791ca4951ba6e8072a SIZE (cabal/unliftio-core-0.2.1.0/revision/4.cabal) = 996 SHA256 (cabal/unordered-containers-0.2.20/unordered-containers-0.2.20.tar.gz) = d9cfb287cf00592d39dc9c3cac8b99627ea08f2c01798e70130fc39f7c90f11d SIZE (cabal/unordered-containers-0.2.20/unordered-containers-0.2.20.tar.gz) = 59823 -SHA256 (cabal/unordered-containers-0.2.20/revision/3.cabal) = c7fe9cba405ed9905e12d89c7add3b3eb9868dfba7975e70ba0cdd64b7b11abc -SIZE (cabal/unordered-containers-0.2.20/revision/3.cabal) = 3921 +SHA256 (cabal/unordered-containers-0.2.20/revision/4.cabal) = 233cbcdda6c2698932bb391ce0935fb44f80c115621ee815a21ed33ac8ede422 +SIZE (cabal/unordered-containers-0.2.20/revision/4.cabal) = 3921 SHA256 (cabal/validation-selective-0.2.0.0/validation-selective-0.2.0.0.tar.gz) = 9a884e97e6a64f2cacadec8d5ea7e8ba7562d0c8fa9ab7cd5c34055eaec64987 SIZE (cabal/validation-selective-0.2.0.0/validation-selective-0.2.0.0.tar.gz) = 22397 -SHA256 (cabal/validation-selective-0.2.0.0/revision/4.cabal) = cc847f1a110e3b1bd437a5356f115881b61cafcb11781b570b180efd88bf0907 -SIZE (cabal/validation-selective-0.2.0.0/revision/4.cabal) = 3917 -SHA256 (cabal/vector-0.13.1.0/vector-0.13.1.0.tar.gz) = 63f272279eab8ab9411a0fffb1252ac309b297313f8e33be9ebbc2f981edecee -SIZE (cabal/vector-0.13.1.0/vector-0.13.1.0.tar.gz) = 156855 -SHA256 (cabal/vector-0.13.1.0/revision/1.cabal) = bc032ccfb51d775eb6f4082c5fc02f5416b0ea0d6644a60d87677a6937f2d70d -SIZE (cabal/vector-0.13.1.0/revision/1.cabal) = 9015 +SHA256 (cabal/validation-selective-0.2.0.0/revision/5.cabal) = 3fb7836ae5c8be1b41a69f31944c3a8dcf1b8d934ceb68b4989bc55aaad39316 +SIZE (cabal/validation-selective-0.2.0.0/revision/5.cabal) = 3917 +SHA256 (cabal/vector-0.13.2.0/vector-0.13.2.0.tar.gz) = 28f203c786cbf8ac6dc3fea3378ec36f34173d505fb4a1dd60fc8418ad91c423 +SIZE (cabal/vector-0.13.2.0/vector-0.13.2.0.tar.gz) = 185739 +SHA256 (cabal/vector-0.13.2.0/revision/1.cabal) = b736a57b73520d2acf4865e3e2b40030d69782f35f870e376dc717ee2508d81f +SIZE (cabal/vector-0.13.2.0/revision/1.cabal) = 8804 SHA256 (cabal/vector-stream-0.1.0.1/vector-stream-0.1.0.1.tar.gz) = d0f507334bdea5431a2f07f525a97f29e76522c32210f5de6d5a2b4f1d42bf7c SIZE (cabal/vector-stream-0.1.0.1/vector-stream-0.1.0.1.tar.gz) = 12577 -SHA256 (cabal/vector-stream-0.1.0.1/revision/1.cabal) = 16a69e2ed71d7b35e16860fac520f94fa4da120eb973d9f8fbf0aa3a703d4a9f -SIZE (cabal/vector-stream-0.1.0.1/revision/1.cabal) = 1583 +SHA256 (cabal/vector-stream-0.1.0.1/revision/3.cabal) = 5ac96695212a45ae7dc16d8031dbf5311da53e052c35f7ad4a8e2db7fafb651e +SIZE (cabal/vector-stream-0.1.0.1/revision/3.cabal) = 1642 SHA256 (cabal/void-0.7.3/void-0.7.3.tar.gz) = 53af758ddc37dc63981671e503438d02c6f64a2d8744e9bec557a894431f7317 SIZE (cabal/void-0.7.3/void-0.7.3.tar.gz) = 6741 SHA256 (cabal/wl-pprint-annotated-0.1.0.1/wl-pprint-annotated-0.1.0.1.tar.gz) = 6b662b244b2e318a2923dc7057d707369a29ea4a0e721b4710eac7239cc727af SIZE (cabal/wl-pprint-annotated-0.1.0.1/wl-pprint-annotated-0.1.0.1.tar.gz) = 15458 -SHA256 (cabal/wl-pprint-annotated-0.1.0.1/revision/3.cabal) = 79d12e6d7302c8bea0986cb713fcbfc33225cca3ee158ac741cf1a468f5ed8bc -SIZE (cabal/wl-pprint-annotated-0.1.0.1/revision/3.cabal) = 2296 -SHA256 (cabal/ymherklotz-verismith-v1.0.0.2-40-g866707b_GH0.tar.gz) = ec9a814b706df602fc7bd000089736c498441d27c1b5fa00de47e329dbef63d0 -SIZE (cabal/ymherklotz-verismith-v1.0.0.2-40-g866707b_GH0.tar.gz) = 208481 +SHA256 (cabal/wl-pprint-annotated-0.1.0.1/revision/4.cabal) = fefa8c901a324bd221d3fd1e3fef2df755a8528c27c7c2df140d207d82332a6e +SIZE (cabal/wl-pprint-annotated-0.1.0.1/revision/4.cabal) = 2296 +SHA256 (cabal/ymherklotz-verismith-v1.1.0_GH0.tar.gz) = 32aa24fee37f456cb0f1b8ddb30c980d7e0491d5610c0f2b9c808a55f853c807 +SIZE (cabal/ymherklotz-verismith-v1.1.0_GH0.tar.gz) = 211466 diff --git a/cad/py-amaranth/Makefile b/cad/py-amaranth/Makefile index 703aea899d4f..9e20173ed8bd 100644 --- a/cad/py-amaranth/Makefile +++ b/cad/py-amaranth/Makefile @@ -1,6 +1,6 @@ PORTNAME= amaranth DISTVERSIONPREFIX= v -DISTVERSION= 0.5.5 +DISTVERSION= 0.5.6 CATEGORIES= cad python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -50,6 +50,6 @@ do-install: # workaround for https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=2 ${_PYTHONPKGLIST} @cd ${STAGEDIR}${PREFIX} && ${FIND} lib -name '*.pyc' >> ${_PYTHONPKGLIST} -# tests as of 0.5.4: 1187 passed, 1 warning in 44.70s +# tests as of 0.5.6: 1187 passed, 3 warnings in 47.87s .include <bsd.port.mk> diff --git a/cad/py-amaranth/distinfo b/cad/py-amaranth/distinfo index 620e98bbb575..3471b022c85c 100644 --- a/cad/py-amaranth/distinfo +++ b/cad/py-amaranth/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747122809 -SHA256 (amaranth-lang-amaranth-v0.5.5_GH0.tar.gz) = 8a2927274fd49c47382dac33e6ab2fb3a6305c112a9b84ae0fe88200015fa3b8 -SIZE (amaranth-lang-amaranth-v0.5.5_GH0.tar.gz) = 748763 +TIMESTAMP = 1747368204 +SHA256 (amaranth-lang-amaranth-v0.5.6_GH0.tar.gz) = 2b4471223e2354414c99183309d09efd03512b7c31446067c62e1564b0747580 +SIZE (amaranth-lang-amaranth-v0.5.6_GH0.tar.gz) = 748902 diff --git a/comms/klog/Makefile b/comms/klog/Makefile index 885bded8875b..cb83dad41e0c 100644 --- a/comms/klog/Makefile +++ b/comms/klog/Makefile @@ -1,5 +1,5 @@ PORTNAME= klog -PORTVERSION= 2.3.4 +PORTVERSION= 2.4.1 #PORTREVISION= 1 CATEGORIES= comms hamradio @@ -11,12 +11,10 @@ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libhamlib.so:comms/hamlib -USES= compiler:c++11-lang gl qmake qt:5 xorg +USES= compiler:c++11-lang gl qmake qt:6 xorg USE_GITHUB= yes USE_GL= gl -USE_QT= buildtools:build charts core declarative gui \ - linguisttools:build location multimedia network \ - printsupport sql sql-sqlite3:run serialport testlib:build widgets +USE_QT= base declarative charts location positioning serialport sqldriver-sqlite tools GH_ACCOUNT= ea4k GH_PROJECT= klog @@ -36,7 +34,9 @@ PLIST_FILES= bin/klog \ ${DATADIR}/translations/klog_it.qm \ ${DATADIR}/translations/klog_lv.qm \ ${DATADIR}/translations/klog_ja.qm \ + ${DATADIR}/translations/klog_nl.qm \ ${DATADIR}/translations/klog_pl.qm \ + ${DATADIR}/translations/klog_ru.qm \ ${DATADIR}/translations/klog_uk.qm \ share/man/man1/klog.1.gz diff --git a/comms/klog/distinfo b/comms/klog/distinfo index dd6699d91e72..3a0f75e1a722 100644 --- a/comms/klog/distinfo +++ b/comms/klog/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1709550325 -SHA256 (ea4k-klog-2.3.4_GH0.tar.gz) = c7ccbdcd2c11314c4ddda911a65be6f7430fbf58145d62e0604cefe7644f63f2 -SIZE (ea4k-klog-2.3.4_GH0.tar.gz) = 4837249 +TIMESTAMP = 1747383065 +SHA256 (ea4k-klog-2.4.1_GH0.tar.gz) = 9f0fcd984d8c640f6c55c7b3036ba2e310e4371ca5d21ee42997505b69c2410c +SIZE (ea4k-klog-2.4.1_GH0.tar.gz) = 4916023 diff --git a/comms/klog/files/patch-src_main.cpp b/comms/klog/files/patch-src_main.cpp index 88e0f3adcefa..a39c8ffe6d2c 100644 --- a/comms/klog/files/patch-src_main.cpp +++ b/comms/klog/files/patch-src_main.cpp @@ -1,13 +1,11 @@ ---- src/main.cpp.orig 2023-12-26 00:00:15 UTC +--- src/main.cpp.orig 2025-05-16 09:03:24 UTC +++ src/main.cpp -@@ -151,6 +151,10 @@ int main(int argc, char *argv[]) - myappTranslator.load(QCoreApplication::applicationDirPath() + "/translations/klog_" + (QLocale::system().name())); /* Flawfinder: ignore */ - } - -+ else if (((QLocale::system().name()).left(1)) == "C") /* Flawfinder: ignore */ -+ { // If language is C, it will execute without showing message -+ -+ } - else if (((QLocale::system().name()).left(2)) == "en") /* Flawfinder: ignore */ - { // If language is English, it will execute without showing message +@@ -96,7 +96,7 @@ void loadTranslations(QApplication &app, QTranslator & + missingTranslation = false; + } +- if (missingTranslation && language != "en") ++ if (missingTranslation && language != "en" && language != "C" ) + { + QMessageBox::warning(nullptr, "KLog", + QString("No translation files for your language were found. KLog will be shown in English.\n") diff --git a/comms/trustedqsl/Makefile b/comms/trustedqsl/Makefile index 648fdacdab3f..c0cfa1204f0d 100644 --- a/comms/trustedqsl/Makefile +++ b/comms/trustedqsl/Makefile @@ -1,6 +1,6 @@ PORTNAME= trustedqsl -DISTVERSION= 2.7.2 -PORTREVISION= 2 +DISTVERSION= 2.8.1 +#PORTREVISION= 1 CATEGORIES= comms hamradio MASTER_SITES= http://www.arrl.org/files/file/LoTW%20Instructions/ \ LOCAL/shurd diff --git a/comms/trustedqsl/distinfo b/comms/trustedqsl/distinfo index 425e4d6fc64a..56b663a5c68e 100644 --- a/comms/trustedqsl/distinfo +++ b/comms/trustedqsl/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1709559475 -SHA256 (tqsl-2.7.2.tar.gz) = 4f83410944d81d3eae8128358127e34013819ddab04b0c962ebfea9433d018a2 -SIZE (tqsl-2.7.2.tar.gz) = 3905567 +TIMESTAMP = 1747387423 +SHA256 (tqsl-2.8.1.tar.gz) = fed1ccb7b4cdf22ece32aa6e9b58c2245af1ad0b77483e3466b693af2c57e7a6 +SIZE (tqsl-2.8.1.tar.gz) = 4125568 diff --git a/comms/trustedqsl/pkg-plist b/comms/trustedqsl/pkg-plist index deb283f95236..0136c5c40592 100644 --- a/comms/trustedqsl/pkg-plist +++ b/comms/trustedqsl/pkg-plist @@ -1,8 +1,4 @@ bin/tqsl -%%CONVERTER%%bin/converter -%%GEN_CRQ%%bin/gen_crq -%%LOAD_CERT%%bin/load_cert -%%STATION_LOC%%bin/station_loc include/adif.h include/cabrillo.h include/tqslconvert.h @@ -30,6 +26,7 @@ share/TrustedQSL/help/tqslapp/addcert2.bmp share/TrustedQSL/help/tqslapp/addcert3.bmp share/TrustedQSL/help/tqslapp/addcertaccept.htm share/TrustedQSL/help/tqslapp/addcertreq.htm +share/TrustedQSL/help/tqslapp/addctype.bmp share/TrustedQSL/help/tqslapp/additional-info.htm share/TrustedQSL/help/tqslapp/addstnl0.bmp share/TrustedQSL/help/tqslapp/backuprestore.htm @@ -123,6 +120,7 @@ share/TrustedQSL/help/tqslapp/stnloc3.bmp share/TrustedQSL/help/tqslapp/stnloc4.bmp share/TrustedQSL/help/tqslapp/stnloc5.bmp share/TrustedQSL/help/tqslapp/stnprop.bmp +share/TrustedQSL/help/tqslapp/sync.htm share/TrustedQSL/help/tqslapp/tqslapp.hhp share/TrustedQSL/help/tqslapp/tqslstyle.css share/TrustedQSL/help/tqslapp/unlock.bmp @@ -131,6 +129,8 @@ share/TrustedQSL/help/tqslapp/update.htm share/TrustedQSL/help/tqslapp/update1.bmp share/TrustedQSL/help/tqslapp/update2.bmp share/TrustedQSL/languages.dat +share/TrustedQSL/prefixes.dat +share/TrustedQSL/vuccgrids.dat share/applications/org.arrl.trustedqsl.desktop share/icons/hicolor/128x128/apps/org.arrl.trustedqsl.png share/icons/hicolor/16x16/apps/org.arrl.trustedqsl.png diff --git a/databases/gnats4/Makefile b/databases/gnats4/Makefile index 787752413377..e0bb5804ba52 100644 --- a/databases/gnats4/Makefile +++ b/databases/gnats4/Makefile @@ -14,6 +14,8 @@ LICENSE_FILE= ${WRKSRC}/COPYING BROKEN_mips= Does not build: error: conflicting types for yy_scan_string BROKEN_mips64= Does not build: error: conflicting types for yy_scan_string +DEPRECATED= Abandoned upstream, last release in 2015 and last activity about 9 years ago +EXPIRATION_DATE=2025-06-30 USES= cpe gettext-runtime gmake CPE_VENDOR= gnu diff --git a/databases/gnatsweb4/Makefile b/databases/gnatsweb4/Makefile index ff476e0dc4c0..34b183c027f8 100644 --- a/databases/gnatsweb4/Makefile +++ b/databases/gnatsweb4/Makefile @@ -11,6 +11,9 @@ WWW= https://www.gnu.org/software/gnats/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING +DEPRECATED= Abandoned upstream, last release in 2015 and no active development in the last 10 years +EXPIRATION_DATE=2025-06-30 + USES= apache:run perl5 shebangfix SHEBANG_FILES= gnatsweb.pl USE_PERL5= run diff --git a/databases/mongodb60/Makefile b/databases/mongodb60/Makefile index 9d4a89a3b75d..dd2d6b2e3a10 100644 --- a/databases/mongodb60/Makefile +++ b/databases/mongodb60/Makefile @@ -1,7 +1,6 @@ PORTNAME= mongodb DISTVERSIONPREFIX= r -DISTVERSION= 6.0.22 -PORTREVISION= 1 +DISTVERSION= 6.0.23 CATEGORIES= databases net MASTER_SITES= https://hg.mozilla.org/mozilla-central/raw-rev/:patches PKGNAMESUFFIX= ${DISTVERSION:R:S/.//} diff --git a/databases/mongodb60/distinfo b/databases/mongodb60/distinfo index 20ebad72e229..2a4a6a0821a7 100644 --- a/databases/mongodb60/distinfo +++ b/databases/mongodb60/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1745467631 +TIMESTAMP = 1747236989 SHA256 (223087fdc29f18678f6174e9807b8780e439acf6) = f234371584e2b2bc9953ae4fd145da19c99a6f04087f53d59616aecf29df039c SIZE (223087fdc29f18678f6174e9807b8780e439acf6) = 1597 -SHA256 (mongodb-mongo-r6.0.22_GH0.tar.gz) = 273280e02ad62293874b89bfc7d8b5fff9e004d5a09067c4fdb9c4699beda336 -SIZE (mongodb-mongo-r6.0.22_GH0.tar.gz) = 87688277 +SHA256 (mongodb-mongo-r6.0.23_GH0.tar.gz) = 0461c38e85bcd7fc6f84de6f14e4aec06751794b9820abde9c1f36e1772c70f4 +SIZE (mongodb-mongo-r6.0.23_GH0.tar.gz) = 87680718 SHA256 (mongodb-forks-spidermonkey-82aac6af18abcd5bf188afbc821779ccb0ca0902_GH0.tar.gz) = a365bf54ef4e4fd6a136cf6afa9c620ba0c8982402473b9bfac38928a688a9e0 SIZE (mongodb-forks-spidermonkey-82aac6af18abcd5bf188afbc821779ccb0ca0902_GH0.tar.gz) = 141291901 diff --git a/databases/mongodb70/Makefile b/databases/mongodb70/Makefile index b91c6b368457..27b11b7c096c 100644 --- a/databases/mongodb70/Makefile +++ b/databases/mongodb70/Makefile @@ -1,13 +1,8 @@ PORTNAME= mongodb DISTVERSIONPREFIX= r -DISTVERSION= 7.0.19 -PORTREVISION= 1 +DISTVERSION= 7.0.20 CATEGORIES= databases net -MASTER_SITES= https://hg.mozilla.org/mozilla-central/raw-rev/:patches PKGNAMESUFFIX= ${DISTVERSION:R:S/.//} -DISTFILES= 223087fdc29f18678f6174e9807b8780e439acf6:patches # https://bugzilla.mozilla.org/1894423 -EXTRACT_ONLY= ${GH_ACCOUNT}-${GH_PROJECT}-${DISTVERSIONPREFIX}${DISTVERSION}_GH0.tar.gz \ - ${GH_ACCOUNT}-forks-spidermonkey-${MOZJS_TAG}_GH0.tar.gz MAINTAINER= ronald@FreeBSD.org COMMENT= MongoDB Community Edition (7.0.x Branch) @@ -27,7 +22,8 @@ BUILD_DEPENDS= ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pymongo>0:databases/py-pymongo@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pyyaml>=3.11:devel/py-pyyaml@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}pyyaml>=3.11:devel/py-pyyaml@${PY_FLAVOR} \ + rust-cbindgen>0:devel/rust-cbindgen # build depends used while running ${WRKSRC}/src/third_party/mozjs/gen-config.sh BUILD_DEPENDS+= gm4:devel/m4 \ gsed:textproc/gsed @@ -39,14 +35,16 @@ LIB_DEPENDS= libcurl.so:ftp/curl \ libzstd.so:archivers/zstd FLAVORS= default armv80a + armv80a_PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}-armv80a USES= compiler:c++20-lang cpe python:build scons shebangfix ssl # gmake is used while running ${WRKSRC}/src/third_party/mozjs/gen-config.sh USES+= gmake pkgconfig +CPE_PRODUCT= mongodb # mozjs tag comes from ${WRKSRC}/src/third_party/mozjs/get-sources.sh -MOZJS_TAG= 4c197344dfc48dfbbd242333878f17f0379e6205 +MOZJS_TAG= ee5eabe03bfae1cba9d97eb380fbc9408707b9ee USE_GITHUB= yes GH_ACCOUNT= mongodb mongodb-forks:mozjs @@ -57,7 +55,12 @@ USE_RC_SUBR= mongod SHEBANG_FILES= buildscripts/scons.py python_OLD_CMD= @python_interpreter@ -CONFIGURE_ENV+= M4=${LOCALBASE}/bin/gm4 +HAS_CONFIGURE= yes +CONFIGURE_SCRIPT= gen-config.sh +CONFIGURE_ARGS+= ${MOZJS_ARCH} \ + freebsd +CONFIGURE_ENV+= PYTHON3="${PYTHON_CMD}" + MAKE_ARGS= --allocator=system \ --cxx-std=20 \ --disable-warnings-as-errors \ @@ -74,6 +77,7 @@ MAKE_ARGS= --allocator=system \ AR=llvm-ar \ MONGO_VERSION=${DISTVERSION} \ VERBOSE=on +ALL_TARGET= install-core CFLAGS+= -DBOOST_NO_CXX98_FUNCTION_BASE @@ -87,15 +91,18 @@ EXTRACT_AFTER_ARGS= --exclude src/third_party/snappy-* \ --exclude src/third_party/zstandard \ --no-same-owner --no-same-permissions +# This ports is only following the Major Release. +# https://docs.mongodb.com/manual/reference/versioning/ +PORTSCOUT= limit:^7\.0\. + +CONFIGURE_WRKSRC= ${MOZJS_WRKSRC} + USERS= mongodb GROUPS= mongodb OPTIONS_DEFINE= LTO NOAVX SASL OPTIONS_DEFINE_aarch64= ARMV80A OPTIONS_DEFAULT= NOAVX SASL -.if ${FLAVOR:U} == armv80a -OPTIONS_SET+= ARMV80A -.endif # MongoDB on non-LSE ARM cpu like Raspberry Pi can work but is unsupported upstream. # Can give corruption on high concurrency. @@ -114,20 +121,18 @@ NOAVX_EXTRA_PATCHES= ${FILESDIR}/extrapatch-src_third__party_mozjs_SConscript \ SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 SASL_MAKE_ARGS= --use-sasl-client +MOZJS_WRKSRC= ${WRKSRC}/src/third_party/mozjs + +.if ${FLAVOR:U} == armv80a +OPTIONS_SET+= ARMV80A +.endif + .include <bsd.port.pre.mk> .if ${FLAVOR:U} == armv80a && ${ARCH} != aarch64 IGNORE= flavor armv80a is only valid on aarch64 .endif -ALL_TARGET= install-core - -# This ports is only following the Major Release. -# https://docs.mongodb.com/manual/reference/versioning/ -PORTSCOUT= limit:^7\.0\. - -CPE_PRODUCT= mongodb - .if ${ARCH} == amd64 MOZJS_ARCH= x86_64 .elif ${ARCH} == powerpc64le @@ -138,7 +143,7 @@ MOZJS_ARCH= ${ARCH} post-extract: # Verify we downloaded the proper mozjs git tag. - ${SH} -xc "test \"X`grep -E '^LIB_GIT_REVISION=' ${WRKSRC}/src/third_party/mozjs/get-sources.sh`\" = \"XLIB_GIT_REVISION=${MOZJS_TAG}\"" + ${SH} -xc "test \"X`grep -E '^LIB_GIT_REVISION=' ${MOZJS_WRKSRC}/get-sources.sh`\" = \"XLIB_GIT_REVISION=${MOZJS_TAG}\"" post-patch: # fix build with python-3.11 @@ -146,12 +151,10 @@ post-patch: ${REINPLACE_CMD} -e 's#rU#r#g' ${WRKDIR}/spidermonkey-${MOZJS_TAG}/python/mozbuild/mozbuild/preprocessor.py ${REINPLACE_CMD} -e 's#rU#r#g' ${WRKDIR}/spidermonkey-${MOZJS_TAG}/python/mozbuild/mozbuild/backend/base.py ${REINPLACE_CMD} -e 's#rU#r#g' ${WRKDIR}/spidermonkey-${MOZJS_TAG}/python/mozbuild/mozbuild/action/process_define_files.py - ${PATCH} -d ${WRKSRC}/src/third_party/mozjs/extract --quiet -p1 -V none < ${DISTDIR}/223087fdc29f18678f6174e9807b8780e439acf6 -do-configure: +pre-configure: # Replacement of ${WRKSRC}/src/third_party/mozjs/get-sources.sh - ${LN} -sF ${WRKDIR}/spidermonkey-${MOZJS_TAG} ${WRKSRC}/src/third_party/mozjs/mozilla-release - cd ${WRKSRC}/src/third_party/mozjs && PYTHON3="${PYTHON_CMD}" ${SH} ./gen-config.sh ${MOZJS_ARCH} freebsd + ${LN} -sF ${WRKDIR}/spidermonkey-${MOZJS_TAG} ${MOZJS_WRKSRC}/mozilla-release do-build: ${WRKSRC}/buildscripts/scons.py -C ${WRKSRC} ${MAKE_ARGS} diff --git a/databases/mongodb70/distinfo b/databases/mongodb70/distinfo index 708ec6ec0ead..600357fd9541 100644 --- a/databases/mongodb70/distinfo +++ b/databases/mongodb70/distinfo @@ -1,7 +1,5 @@ -TIMESTAMP = 1745704517 -SHA256 (223087fdc29f18678f6174e9807b8780e439acf6) = f234371584e2b2bc9953ae4fd145da19c99a6f04087f53d59616aecf29df039c -SIZE (223087fdc29f18678f6174e9807b8780e439acf6) = 1597 -SHA256 (mongodb-mongo-r7.0.19_GH0.tar.gz) = 552358bf46936f2ebe53b414d8e15b9932baf38a191ef2d50eef5dabba663396 -SIZE (mongodb-mongo-r7.0.19_GH0.tar.gz) = 87222348 -SHA256 (mongodb-forks-spidermonkey-4c197344dfc48dfbbd242333878f17f0379e6205_GH0.tar.gz) = 25ddc30c800d44231798793f788765e0ae8060b9f9f2f09d7f23955b2f63f034 -SIZE (mongodb-forks-spidermonkey-4c197344dfc48dfbbd242333878f17f0379e6205_GH0.tar.gz) = 164661704 +TIMESTAMP = 1747294177 +SHA256 (mongodb-mongo-r7.0.20_GH0.tar.gz) = 5946b2ec223f156b1eb67226d074f14a6f218d0a43920c266bafc431b936e124 +SIZE (mongodb-mongo-r7.0.20_GH0.tar.gz) = 88002907 +SHA256 (mongodb-forks-spidermonkey-ee5eabe03bfae1cba9d97eb380fbc9408707b9ee_GH0.tar.gz) = ff2f5ed45ae507d64022e3af17d11dc984b66f9b99931d8da34ce92fe5b6d816 +SIZE (mongodb-forks-spidermonkey-ee5eabe03bfae1cba9d97eb380fbc9408707b9ee_GH0.tar.gz) = 280291333 diff --git a/databases/mongodb70/files/patch-SConstruct b/databases/mongodb70/files/patch-SConstruct index 4ccd299adcaf..ec60029c937c 100644 --- a/databases/mongodb70/files/patch-SConstruct +++ b/databases/mongodb70/files/patch-SConstruct @@ -1,4 +1,4 @@ ---- SConstruct.orig 2024-06-19 03:26:19 UTC +--- SConstruct.orig 2025-05-13 16:37:03 UTC +++ SConstruct @@ -23,7 +23,6 @@ import SCons.Script @@ -25,9 +25,7 @@ if get_option('build-metrics'): env['BUILD_METRICS_ARTIFACTS_DIR'] = '$BUILD_ROOT/$VARIANT_DIR' env.Tool('build_metrics') -@@ -1799,9 +1788,9 @@ if has_option('variables-help'): - print(env_vars.GenerateHelpText(env)) - Exit(0) +@@ -1801,7 +1790,7 @@ if unknown_vars: unknown_vars = env_vars.UnknownVariables() if unknown_vars: @@ -36,7 +34,7 @@ install_actions.setup(env, get_option('install-action')) -@@ -3024,7 +3013,7 @@ if env.TargetOSIs('posix'): +@@ -3013,7 +3002,7 @@ if env.TargetOSIs('posix'): # If runtime hardening is requested, then build anything # destined for an executable with the necessary flags for PIE. env.AppendUnique( @@ -45,7 +43,7 @@ PROGLINKFLAGS=['-pie'], ) -@@ -3032,7 +3021,6 @@ if env.TargetOSIs('posix'): +@@ -3021,7 +3010,6 @@ if env.TargetOSIs('posix'): env.Append( CCFLAGS=[ "-fasynchronous-unwind-tables", diff --git a/databases/mongodb70/files/patch-src_third__party_mozjs_gen-config.sh b/databases/mongodb70/files/patch-src_third__party_mozjs_gen-config.sh index 58daab4bc056..4260904915e4 100644 --- a/databases/mongodb70/files/patch-src_third__party_mozjs_gen-config.sh +++ b/databases/mongodb70/files/patch-src_third__party_mozjs_gen-config.sh @@ -1,5 +1,11 @@ ---- src/third_party/mozjs/gen-config.sh.orig 2022-08-05 16:21:29 UTC +--- src/third_party/mozjs/gen-config.sh.orig 2025-05-13 16:37:03 UTC +++ src/third_party/mozjs/gen-config.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + set -e + set -v @@ -29,6 +29,9 @@ case "$_Path" in } @@ -10,16 +16,16 @@ "platform/aarch64/linux") _CONFIG_OPTS="--host=aarch64-linux" ;; -@@ -108,7 +111,7 @@ CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS" \ - --disable-js-shell \ - --disable-tests "$_CONFIG_OPTS" +@@ -111,7 +114,7 @@ CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS" \ + --disable-wasm-moz-intgemm \ + "$_CONFIG_OPTS" -make recurse_export +gmake recurse_export cd ../../../.. -@@ -159,7 +162,7 @@ find "$_Path/build" -name '*.cpp' | +@@ -166,7 +169,7 @@ find "$_Path/build" -name '*.cpp' | find "$_Path/build" -name '*.cpp' | while read unified_file ; do echo "Processing $unified_file" diff --git a/databases/postgis33/Makefile b/databases/postgis33/Makefile index fef4912e6920..e736ff74b858 100644 --- a/databases/postgis33/Makefile +++ b/databases/postgis33/Makefile @@ -1,5 +1,6 @@ PORTNAME= postgis DISTVERSION= 3.3.8 +PORTREVISION= 1 CATEGORIES= databases geography MASTER_SITES= https://download.osgeo.org/postgis/source/ PKGNAMESUFFIX= 33 diff --git a/databases/postgis34/Makefile b/databases/postgis34/Makefile index 5cb6d1e6f92e..179bc45734fa 100644 --- a/databases/postgis34/Makefile +++ b/databases/postgis34/Makefile @@ -1,5 +1,6 @@ PORTNAME= postgis DISTVERSION= 3.4.4 +PORTREVISION= 1 CATEGORIES= databases geography MASTER_SITES= https://download.osgeo.org/postgis/source/ PKGNAMESUFFIX= 34 diff --git a/databases/postgis35/Makefile b/databases/postgis35/Makefile index 6a72558e0dcc..8f087664e7dc 100644 --- a/databases/postgis35/Makefile +++ b/databases/postgis35/Makefile @@ -1,6 +1,6 @@ PORTNAME= postgis DISTVERSION= 3.5.2 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= databases geography MASTER_SITES= https://download.osgeo.org/postgis/source/ PKGNAMESUFFIX= 35 diff --git a/databases/pspg/Makefile b/databases/pspg/Makefile index a5249e59d37f..3816690fa7cd 100644 --- a/databases/pspg/Makefile +++ b/databases/pspg/Makefile @@ -1,5 +1,5 @@ PORTNAME= pspg -DISTVERSION= 5.8.9 +DISTVERSION= 5.8.10 CATEGORIES= databases MAINTAINER= bofh@FreeBSD.org diff --git a/databases/pspg/distinfo b/databases/pspg/distinfo index 8207da5cc632..b475c917d275 100644 --- a/databases/pspg/distinfo +++ b/databases/pspg/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747045170 -SHA256 (okbob-pspg-5.8.9_GH0.tar.gz) = c84c4d2cc14bdc3780494b77cf31946549e59e501555e0b0b88747181d4ec087 -SIZE (okbob-pspg-5.8.9_GH0.tar.gz) = 2445330 +TIMESTAMP = 1747216936 +SHA256 (okbob-pspg-5.8.10_GH0.tar.gz) = 806d6b3c3f53144487368caff851d3373735129db68908b9eb45efa58e3d0a8e +SIZE (okbob-pspg-5.8.10_GH0.tar.gz) = 2445610 diff --git a/databases/redis/Makefile b/databases/redis/Makefile index 18a76b09e4cb..0da204027df4 100644 --- a/databases/redis/Makefile +++ b/databases/redis/Makefile @@ -1,5 +1,5 @@ PORTNAME= redis -DISTVERSION= 8.0.0 +DISTVERSION= 8.0.1 CATEGORIES= databases MASTER_SITES= https://download.redis.io/releases/ diff --git a/databases/redis/distinfo b/databases/redis/distinfo index ba097311a171..b89fae42e185 100644 --- a/databases/redis/distinfo +++ b/databases/redis/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746189281 -SHA256 (redis-8.0.0.tar.gz) = cf395665ba5fcecc4ef7aed1d8ab19c268619d98595827565c82344160171262 -SIZE (redis-8.0.0.tar.gz) = 3824488 +TIMESTAMP = 1747217171 +SHA256 (redis-8.0.1.tar.gz) = d3a11d6ababf44cb98d23f23cee39ae75d17867dcd64aac4add808e21ed36e0c +SIZE (redis-8.0.1.tar.gz) = 3811847 diff --git a/databases/sfcgal/Makefile b/databases/sfcgal/Makefile index 8beae9a3e55c..130824fe0c52 100644 --- a/databases/sfcgal/Makefile +++ b/databases/sfcgal/Makefile @@ -1,7 +1,6 @@ PORTNAME= sfcgal DISTVERSIONPREFIX= v -DISTVERSION= 2.0.0 -PORTREVISION= 2 +DISTVERSION= 2.1.0 CATEGORIES= databases math graphics MASTER_SITES= https://github.com/CGAL/cgal/releases/download/v${CGAL_VERSION}/:source1 @@ -25,7 +24,7 @@ GL_PROJECT= SFCGAL USE_LDCONFIG= yes PLIST_SUB= SHL3=${PORTVERSION} SHL1=${PORTVERSION:R:R} DEBUG_SUFFIX=${WITH_DEBUG:Dd} -CGAL_VERSION= 6.0 +CGAL_VERSION= 6.0.1 CMAKE_ARGS+= -DCGAL_DIR=${WRKDIR}/CGAL-${CGAL_VERSION} diff --git a/databases/sfcgal/distinfo b/databases/sfcgal/distinfo index 9fe544ab9a65..c6613cc28613 100644 --- a/databases/sfcgal/distinfo +++ b/databases/sfcgal/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1728574335 -SHA256 (CGAL-6.0.tar.xz) = 6b0c9b47c7735a2462ff34a6c3c749d1ff4addc1454924b76263dc60ab119268 -SIZE (CGAL-6.0.tar.xz) = 25979696 -SHA256 (SFCGAL-v2.0.0.tar.bz2) = 6a78dca7b481e253a4f9dff4388f8b1778ff027ab331d919f630120ddd9abdb2 -SIZE (SFCGAL-v2.0.0.tar.bz2) = 2662718 +TIMESTAMP = 1747206059 +SHA256 (CGAL-6.0.1.tar.xz) = 0acdfbf317c556630dd526f3253780f29b6ec9713ee92903e81b5c93c0f59b7f +SIZE (CGAL-6.0.1.tar.xz) = 25659212 +SHA256 (SFCGAL-v2.1.0.tar.bz2) = 6f57a0b5fd879bec5a570ffa13cbd64f34957c479992cf3e6bda35e5e5d988cd +SIZE (SFCGAL-v2.1.0.tar.bz2) = 2719674 diff --git a/databases/sfcgal/pkg-plist b/databases/sfcgal/pkg-plist index 12587bf8805a..aedccb50265a 100644 --- a/databases/sfcgal/pkg-plist +++ b/databases/sfcgal/pkg-plist @@ -16,6 +16,8 @@ include/SFCGAL/Point.h include/SFCGAL/Polygon.h include/SFCGAL/PolyhedralSurface.h include/SFCGAL/PreparedGeometry.h +include/SFCGAL/Segment.h +include/SFCGAL/Simplicity.h include/SFCGAL/Solid.h include/SFCGAL/Sphere.h include/SFCGAL/Surface.h @@ -26,8 +28,10 @@ include/SFCGAL/Validity.h include/SFCGAL/algorithm/BoundaryVisitor.h include/SFCGAL/algorithm/ConsistentOrientationBuilder.h include/SFCGAL/algorithm/alphaShapes.h +include/SFCGAL/algorithm/alphaWrapping3D.h include/SFCGAL/algorithm/area.h include/SFCGAL/algorithm/buffer3D.h +include/SFCGAL/algorithm/centroid.h include/SFCGAL/algorithm/collect.h include/SFCGAL/algorithm/collectionExtract.h include/SFCGAL/algorithm/collectionHomogenize.h @@ -42,8 +46,10 @@ include/SFCGAL/algorithm/distance3d.h include/SFCGAL/algorithm/extrude.h include/SFCGAL/algorithm/force2D.h include/SFCGAL/algorithm/force3D.h +include/SFCGAL/algorithm/forceMeasured.h include/SFCGAL/algorithm/intersection.h include/SFCGAL/algorithm/intersects.h +include/SFCGAL/algorithm/isSimple.h include/SFCGAL/algorithm/isValid.h include/SFCGAL/algorithm/length.h include/SFCGAL/algorithm/lineSubstring.h @@ -56,6 +62,7 @@ include/SFCGAL/algorithm/partition_2.h include/SFCGAL/algorithm/plane.h include/SFCGAL/algorithm/rotate.h include/SFCGAL/algorithm/scale.h +include/SFCGAL/algorithm/simplification.h include/SFCGAL/algorithm/straightSkeleton.h include/SFCGAL/algorithm/tesselate.h include/SFCGAL/algorithm/translate.h @@ -65,14 +72,17 @@ include/SFCGAL/algorithm/volume.h include/SFCGAL/capi/sfcgal_c.h include/SFCGAL/config.h include/SFCGAL/detail/ComplexComparator.h +include/SFCGAL/detail/ConstraintInfo.h include/SFCGAL/detail/EnvelopeVisitor.h include/SFCGAL/detail/ForceValidityVisitor.h include/SFCGAL/detail/GeometrySet.h include/SFCGAL/detail/GetPointsVisitor.h include/SFCGAL/detail/Interval.h +include/SFCGAL/detail/SegmentStore.h include/SFCGAL/detail/TestGeometry.h include/SFCGAL/detail/TypeForDimension.h include/SFCGAL/detail/algorithm/coversPoints.h +include/SFCGAL/detail/algorithm/simplification.h include/SFCGAL/detail/generator/building.h include/SFCGAL/detail/generator/disc.h include/SFCGAL/detail/generator/hoch.h @@ -97,6 +107,7 @@ include/SFCGAL/detail/tools/Registry.h include/SFCGAL/detail/transform/AffineTransform2.h include/SFCGAL/detail/transform/AffineTransform3.h include/SFCGAL/detail/transform/Force2D.h +include/SFCGAL/detail/transform/ForceM.h include/SFCGAL/detail/transform/ForceOrderPoints.h include/SFCGAL/detail/transform/ForceZ.h include/SFCGAL/detail/transform/ForceZOrderPoints.h @@ -113,10 +124,15 @@ include/SFCGAL/io/osg.h include/SFCGAL/io/vtk.h include/SFCGAL/io/wkb.h include/SFCGAL/io/wkt.h +include/SFCGAL/namespace.h include/SFCGAL/numeric.h include/SFCGAL/triangulate/triangulate2DZ.h include/SFCGAL/triangulate/triangulatePolygon.h include/SFCGAL/version.h +lib/cmake/SFCGAL/SFCGALConfig.cmake +lib/cmake/SFCGAL/SFCGALConfigVersion.cmake +lib/cmake/SFCGAL/SFCGALTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/SFCGAL/SFCGALTargets.cmake lib/libSFCGAL%%DEBUG_SUFFIX%%.so lib/libSFCGAL%%DEBUG_SUFFIX%%.so.%%SHL1%% lib/libSFCGAL%%DEBUG_SUFFIX%%.so.%%SHL3%% diff --git a/databases/spatialite_gui/Makefile b/databases/spatialite_gui/Makefile index 525205dfc25a..6399298ca38b 100644 --- a/databases/spatialite_gui/Makefile +++ b/databases/spatialite_gui/Makefile @@ -1,6 +1,6 @@ PORTNAME= spatialite_gui DISTVERSION= 2.1.0 -PORTREVISION= 15 +PORTREVISION= 16 DISTVERSIONSUFFIX= -beta1 CATEGORIES= databases geography MASTER_SITES= http://www.gaia-gis.it/gaia-sins/spatialite-gui-sources/ diff --git a/databases/timescaledb/Makefile b/databases/timescaledb/Makefile index 634fb628d117..005871ec1f39 100644 --- a/databases/timescaledb/Makefile +++ b/databases/timescaledb/Makefile @@ -1,13 +1,13 @@ PORTNAME= timescaledb -PORTVERSION= 2.19.3 +PORTVERSION= 2.20.0 CATEGORIES= databases MAINTAINER= kbowling@FreeBSD.org COMMENT= Time-series database built on PostgreSQL WWW= https://www.timescale.com/ -LICENSE= APACHE20 TSL -LICENSE_COMB= multi +LICENSE= APACHE20 TSL +LICENSE_COMB= multi LICENSE_NAME_TSL= Timescale License Agreement LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-APACHE LICENSE_FILE_TSL= ${WRKSRC}/tsl/LICENSE-TIMESCALE @@ -15,29 +15,29 @@ LICENSE_PERMS_TSL= dist-mirror pkg-mirror auto-accept BROKEN_i386= compilation fails: undeclared type '__uint128_t' -USES= compiler:c11 cmake gettext-runtime cpe pgsql:14-17 +USES= cmake compiler:c11 cpe pgsql:15-17 +CPE_VENDOR= timescale +WANT_PGSQL= lib server USE_GITHUB= YES GH_ACCOUNT= timescale -CPE_VENDOR= timescale +CMAKE_OFF= REGRESS_CHECKS TAP_CHECKS WARNINGS_AS_ERRORS -PLIST_SUB= PORTVERSION=${PORTVERSION} SUB_FILES= pkg-message SUB_LIST= PORTVERSION=${PORTVERSION} +PLIST_SUB= PORTVERSION=${PORTVERSION} + OPTIONS_DEFINE= SSL TSL OPTIONS_DEFAULT= SSL TSL OPTIONS_SUB= yes -SSL_DESC= Build with OpenSSL support -TSL_DESC= Enables TSL licensed code in additon to Apache license code +SSL_DESC= Build with OpenSSL support +TSL_DESC= Enables TSL licensed code in additon to Apache license code -SSL_CMAKE_BOOL= USE_OPENSSL SSL_USES= ssl +SSL_CMAKE_BOOL= USE_OPENSSL TSL_CMAKE_BOOL_OFF= APACHE_ONLY -CMAKE_OFF= REGRESS_CHECKS TAP_CHECKS WARNINGS_AS_ERRORS -WANT_PGSQL= lib server - .include <bsd.port.mk> diff --git a/databases/timescaledb/distinfo b/databases/timescaledb/distinfo index f828d2831671..dd39311a2482 100644 --- a/databases/timescaledb/distinfo +++ b/databases/timescaledb/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744776840 -SHA256 (timescale-timescaledb-2.19.3_GH0.tar.gz) = ef2c9019f3e292f77e274a95386e550cb8c358ec0e053f6b7097565f61381e01 -SIZE (timescale-timescaledb-2.19.3_GH0.tar.gz) = 8010948 +TIMESTAMP = 1747370173 +SHA256 (timescale-timescaledb-2.20.0_GH0.tar.gz) = b6ac4c29ef29e93249fcc25bf193dab2637422797360b12e00fd73067138a953 +SIZE (timescale-timescaledb-2.20.0_GH0.tar.gz) = 7784597 diff --git a/databases/timescaledb/pkg-plist b/databases/timescaledb/pkg-plist index 57660c330c9a..14bc5543ffc8 100644 --- a/databases/timescaledb/pkg-plist +++ b/databases/timescaledb/pkg-plist @@ -1,16 +1,6 @@ lib/postgresql/timescaledb-%%PORTVERSION%%.so %%TSL%%lib/postgresql/timescaledb-tsl-%%PORTVERSION%%.so lib/postgresql/timescaledb.so -share/postgresql/extension/timescaledb--2.5.0--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.5.1--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.5.2--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.6.0--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.6.1--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.7.0--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.7.1--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.7.2--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.8.0--%%PORTVERSION%%.sql -share/postgresql/extension/timescaledb--2.8.1--%%PORTVERSION%%.sql share/postgresql/extension/timescaledb--2.9.0--%%PORTVERSION%%.sql share/postgresql/extension/timescaledb--2.9.1--%%PORTVERSION%%.sql share/postgresql/extension/timescaledb--2.9.2--%%PORTVERSION%%.sql @@ -45,5 +35,6 @@ share/postgresql/extension/timescaledb--2.18.2--%%PORTVERSION%%.sql share/postgresql/extension/timescaledb--2.19.0--%%PORTVERSION%%.sql share/postgresql/extension/timescaledb--2.19.1--%%PORTVERSION%%.sql share/postgresql/extension/timescaledb--2.19.2--%%PORTVERSION%%.sql +share/postgresql/extension/timescaledb--2.19.3--%%PORTVERSION%%.sql share/postgresql/extension/timescaledb--%%PORTVERSION%%.sql share/postgresql/extension/timescaledb.control diff --git a/devel/Makefile b/devel/Makefile index 338329c1cd63..4c683dd9bddd 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -660,6 +660,7 @@ SUBDIR += electron33 SUBDIR += electron34 SUBDIR += electron35 + SUBDIR += electron36 SUBDIR += elf SUBDIR += elf-dissector SUBDIR += elfcat @@ -4831,6 +4832,7 @@ SUBDIR += py-dunamai SUBDIR += py-durus SUBDIR += py-dynrules + SUBDIR += py-e3-core SUBDIR += py-easydict SUBDIR += py-easyprocess SUBDIR += py-editables @@ -6057,6 +6059,7 @@ SUBDIR += py-twisted SUBDIR += py-txaio SUBDIR += py-txi2p-tahoe + SUBDIR += py-ty SUBDIR += py-typechecks SUBDIR += py-typeguard SUBDIR += py-typer diff --git a/devel/R-cran-data.table/Makefile b/devel/R-cran-data.table/Makefile index ba348b7fb3d0..478c5efdde36 100644 --- a/devel/R-cran-data.table/Makefile +++ b/devel/R-cran-data.table/Makefile @@ -1,11 +1,11 @@ PORTNAME= data.table -DISTVERSION= 1.17.0 +DISTVERSION= 1.17.2 CATEGORIES= devel DISTNAME= ${PORTNAME}_${DISTVERSION} MAINTAINER= eduardo@FreeBSD.org COMMENT= Extension of Data.frame -WWW= https://cran.r-project.org/web/packages/data.table/ +WWW= https://cran.r-project.org/package=data.table LICENSE= MPL20 LICENSE_FILE= ${WRKSRC}/LICENSE diff --git a/devel/R-cran-data.table/distinfo b/devel/R-cran-data.table/distinfo index 8e23eaab9e3c..8d27085e4224 100644 --- a/devel/R-cran-data.table/distinfo +++ b/devel/R-cran-data.table/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1740489786 -SHA256 (data.table_1.17.0.tar.gz) = 82a7dd54fa583c20895b2d28fe07922f8f8aeb0ffbd94d1c143e79983bb9bcea -SIZE (data.table_1.17.0.tar.gz) = 5833671 +TIMESTAMP = 1747185972 +SHA256 (data.table_1.17.2.tar.gz) = 014037d829c9bebf1ef91f73fcffdb7349196893d1c3eef5bfc71a3e679f1c5b +SIZE (data.table_1.17.2.tar.gz) = 5839559 diff --git a/devel/R-cran-generics/Makefile b/devel/R-cran-generics/Makefile index c1b243e0fa7e..39ec4488dd71 100644 --- a/devel/R-cran-generics/Makefile +++ b/devel/R-cran-generics/Makefile @@ -1,6 +1,5 @@ PORTNAME= generics -PORTVERSION= 0.1.3 -PORTREVISION= 1 +PORTVERSION= 0.1.4 CATEGORIES= devel DISTNAME= ${PORTNAME}_${DISTVERSION} diff --git a/devel/R-cran-generics/distinfo b/devel/R-cran-generics/distinfo index 2110d5453bdf..c9b174f5ca72 100644 --- a/devel/R-cran-generics/distinfo +++ b/devel/R-cran-generics/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1657874360 -SHA256 (generics_0.1.3.tar.gz) = 75046163bfa8b8a4f4214c1b689e796207f6447182f2e5062cf570302387d053 -SIZE (generics_0.1.3.tar.gz) = 172201 +TIMESTAMP = 1747139489 +SHA256 (generics_0.1.4.tar.gz) = bbe95a097792d38fc3b7e677738af1b95b66ea5e5017e33b8beac6a6088d0801 +SIZE (generics_0.1.4.tar.gz) = 47224 diff --git a/devel/aws-c-s3/Makefile b/devel/aws-c-s3/Makefile index 456116c4e17e..4c7a5782a2bc 100644 --- a/devel/aws-c-s3/Makefile +++ b/devel/aws-c-s3/Makefile @@ -1,6 +1,6 @@ PORTNAME= aws-c-s3 DISTVERSIONPREFIX= v -DISTVERSION= 0.7.17 +DISTVERSION= 0.7.18 CATEGORIES= devel MAINTAINER= eduardo@FreeBSD.org diff --git a/devel/aws-c-s3/distinfo b/devel/aws-c-s3/distinfo index 3c2011876fc7..eff471b6aaa9 100644 --- a/devel/aws-c-s3/distinfo +++ b/devel/aws-c-s3/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746648163 -SHA256 (awslabs-aws-c-s3-v0.7.17_GH0.tar.gz) = cad16b82f628ae05a2bf072de19cad12f69dddcf7817b55eb00037628011fa92 -SIZE (awslabs-aws-c-s3-v0.7.17_GH0.tar.gz) = 363821 +TIMESTAMP = 1747423338 +SHA256 (awslabs-aws-c-s3-v0.7.18_GH0.tar.gz) = 89cf4a4906ebfd761c85acd161664c5cc640606a90daf8f06f681d4d939454fc +SIZE (awslabs-aws-c-s3-v0.7.18_GH0.tar.gz) = 363749 diff --git a/devel/aws-c-sdkutils/Makefile b/devel/aws-c-sdkutils/Makefile index e9b9c88cbbdf..bbc69b8d6a24 100644 --- a/devel/aws-c-sdkutils/Makefile +++ b/devel/aws-c-sdkutils/Makefile @@ -1,6 +1,6 @@ PORTNAME= aws-c-sdkutils DISTVERSIONPREFIX= v -DISTVERSION= 0.2.3 +DISTVERSION= 0.2.4 CATEGORIES= devel MAINTAINER= eduardo@FreeBSD.org diff --git a/devel/aws-c-sdkutils/distinfo b/devel/aws-c-sdkutils/distinfo index e08d7214b4ce..05f2aafa701b 100644 --- a/devel/aws-c-sdkutils/distinfo +++ b/devel/aws-c-sdkutils/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738181381 -SHA256 (awslabs-aws-c-sdkutils-v0.2.3_GH0.tar.gz) = 5a0489d508341b84eea556e351717bc33524d3dfd6207ee3aba6068994ea6018 -SIZE (awslabs-aws-c-sdkutils-v0.2.3_GH0.tar.gz) = 79833 +TIMESTAMP = 1747310619 +SHA256 (awslabs-aws-c-sdkutils-v0.2.4_GH0.tar.gz) = 493cbed4fa57e0d4622fcff044e11305eb4fc12445f32c8861025597939175fc +SIZE (awslabs-aws-c-sdkutils-v0.2.4_GH0.tar.gz) = 80333 diff --git a/devel/cargo-c/Makefile b/devel/cargo-c/Makefile index b16ce9cc6d71..b3a45ee816f2 100644 --- a/devel/cargo-c/Makefile +++ b/devel/cargo-c/Makefile @@ -1,7 +1,6 @@ PORTNAME= cargo-c -DISTVERSION= 0.10.12 -DISTVERSIONSUFFIX= +cargo-0.87.0 -PORTREVISION= 2 +DISTVERSION= 0.10.13 +DISTVERSIONSUFFIX= +cargo-0.88.0 CATEGORIES= devel MASTER_SITES= CRATESIO # XXX Teach USES=cargo to have proper default diff --git a/devel/cargo-c/Makefile.crates b/devel/cargo-c/Makefile.crates index eec4ec0202a2..211d3e61aa34 100644 --- a/devel/cargo-c/Makefile.crates +++ b/devel/cargo-c/Makefile.crates @@ -1,5 +1,5 @@ CARGO_CRATES= adler2-2.0.0 \ - ahash-0.8.11 \ + ahash-0.8.12 \ aho-corasick-1.1.3 \ allocator-api2-0.2.21 \ annotate-snippets-0.11.5 \ @@ -8,7 +8,7 @@ CARGO_CRATES= adler2-2.0.0 \ anstyle-parse-0.2.6 \ anstyle-query-1.1.2 \ anstyle-wincon-3.0.7 \ - anyhow-1.0.97 \ + anyhow-1.0.98 \ arc-swap-1.7.1 \ arrayref-0.3.9 \ arrayvec-0.7.6 \ @@ -16,28 +16,27 @@ CARGO_CRATES= adler2-2.0.0 \ base16ct-0.2.0 \ base64-0.22.1 \ base64ct-1.7.3 \ - bitflags-2.9.0 \ + bitflags-2.9.1 \ bitmaps-2.1.0 \ - blake3-1.8.1 \ + blake3-1.8.2 \ block-buffer-0.10.4 \ - bstr-1.11.3 \ + bstr-1.12.0 \ bumpalo-3.17.0 \ bytes-1.10.1 \ - bytesize-1.3.3 \ - cargo-0.87.0 \ + cargo-0.88.0 \ cargo-credential-0.4.8 \ - cargo-credential-libsecret-0.4.12 \ - cargo-credential-macos-keychain-0.4.12 \ - cargo-credential-wincred-0.4.12 \ + cargo-credential-libsecret-0.4.13 \ + cargo-credential-macos-keychain-0.4.13 \ + cargo-credential-wincred-0.4.13 \ cargo-platform-0.2.0 \ - cargo-util-0.2.19 \ - cargo-util-schemas-0.7.3 \ + cargo-util-0.2.20 \ + cargo-util-schemas-0.8.1 \ cbindgen-0.28.0 \ - cc-1.2.18 \ + cc-1.2.22 \ cfg-if-1.0.0 \ - clap-4.5.35 \ - clap_builder-4.5.35 \ - clap_complete-4.5.47 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ + clap_complete-4.5.50 \ clap_derive-4.5.32 \ clap_lex-0.7.4 \ clru-0.6.2 \ @@ -49,20 +48,20 @@ CARGO_CRATES= adler2-2.0.0 \ core-foundation-0.10.0 \ core-foundation-sys-0.8.7 \ cpufeatures-0.2.17 \ - crates-io-0.40.9 \ + crates-io-0.40.10 \ crc32fast-1.4.2 \ - crossbeam-channel-0.5.14 \ + crossbeam-channel-0.5.15 \ crossbeam-deque-0.8.6 \ crossbeam-epoch-0.9.18 \ crossbeam-utils-0.8.21 \ crypto-bigint-0.5.5 \ crypto-common-0.1.6 \ - ct-codecs-1.1.3 \ + ct-codecs-1.1.5 \ curl-0.4.47 \ curl-sys-0.4.80+curl-8.12.1 \ dbus-0.9.7 \ - der-0.7.9 \ - deranged-0.4.1 \ + der-0.7.10 \ + deranged-0.4.0 \ digest-0.10.7 \ displaydoc-0.2.5 \ dunce-1.0.5 \ @@ -73,7 +72,7 @@ CARGO_CRATES= adler2-2.0.0 \ encoding_rs-0.8.35 \ equivalent-1.0.2 \ erased-serde-0.4.6 \ - errno-0.3.11 \ + errno-0.3.12 \ fallible-iterator-0.3.0 \ fallible-streaming-iterator-0.1.9 \ faster-hex-0.9.0 \ @@ -88,9 +87,9 @@ CARGO_CRATES= adler2-2.0.0 \ foreign-types-shared-0.1.1 \ form_urlencoded-1.2.1 \ generic-array-0.14.7 \ - getrandom-0.2.15 \ - getrandom-0.3.2 \ - git2-0.20.1 \ + getrandom-0.2.16 \ + getrandom-0.3.3 \ + git2-0.20.2 \ git2-curl-0.21.0 \ gix-0.70.0 \ gix-actor-0.33.2 \ @@ -121,7 +120,7 @@ CARGO_CRATES= adler2-2.0.0 \ gix-pack-0.57.0 \ gix-packetline-0.18.4 \ gix-packetline-blocking-0.18.3 \ - gix-path-0.10.15 \ + gix-path-0.10.18 \ gix-pathspec-0.9.0 \ gix-prompt-0.9.1 \ gix-protocol-0.48.0 \ @@ -140,12 +139,13 @@ CARGO_CRATES= adler2-2.0.0 \ gix-url-0.29.0 \ gix-utils-0.1.14 \ gix-validate-0.9.4 \ + gix-validate-0.10.0 \ gix-worktree-0.39.0 \ glob-0.3.2 \ globset-0.4.16 \ group-0.13.0 \ hashbrown-0.14.5 \ - hashbrown-0.15.2 \ + hashbrown-0.15.3 \ hashlink-0.10.0 \ heck-0.4.1 \ heck-0.5.0 \ @@ -154,19 +154,15 @@ CARGO_CRATES= adler2-2.0.0 \ hmac-0.12.1 \ home-0.5.11 \ http-auth-0.1.10 \ - humantime-2.2.0 \ - icu_collections-1.5.0 \ - icu_locid-1.5.0 \ - icu_locid_transform-1.5.0 \ - icu_locid_transform_data-1.5.1 \ - icu_normalizer-1.5.0 \ - icu_normalizer_data-1.5.1 \ - icu_properties-1.5.1 \ - icu_properties_data-1.5.1 \ - icu_provider-1.5.0 \ - icu_provider_macros-1.5.0 \ + icu_collections-2.0.0 \ + icu_locale_core-2.0.0 \ + icu_normalizer-2.0.0 \ + icu_normalizer_data-2.0.0 \ + icu_properties-2.0.0 \ + icu_properties_data-2.0.0 \ + icu_provider-2.0.0 \ idna-1.0.3 \ - idna_adapter-1.2.0 \ + idna_adapter-1.2.1 \ ignore-0.4.23 \ im-rc-15.1.0 \ implib-0.3.5 \ @@ -175,8 +171,8 @@ CARGO_CRATES= adler2-2.0.0 \ is_terminal_polyfill-1.70.1 \ itertools-0.14.0 \ itoa-1.0.15 \ - jiff-0.2.5 \ - jiff-static-0.2.5 \ + jiff-0.2.13 \ + jiff-static-0.2.13 \ jiff-tzdb-0.1.4 \ jiff-tzdb-platform-0.1.3 \ jobserver-0.1.33 \ @@ -184,18 +180,18 @@ CARGO_CRATES= adler2-2.0.0 \ kstring-2.0.2 \ lazy_static-1.5.0 \ lazycell-1.3.0 \ - libc-0.2.171 \ + libc-0.2.172 \ libdbus-sys-0.2.5 \ libgit2-sys-0.18.1+1.9.0 \ - libloading-0.8.6 \ + libloading-0.8.7 \ libnghttp2-sys-0.1.11+1.64.0 \ libredox-0.1.3 \ libsqlite3-sys-0.31.0 \ libssh2-sys-0.3.1 \ libz-sys-1.1.22 \ linux-raw-sys-0.4.15 \ - linux-raw-sys-0.9.3 \ - litemap-0.7.5 \ + linux-raw-sys-0.9.4 \ + litemap-0.8.0 \ lock_api-0.4.12 \ log-0.4.27 \ matchers-0.1.0 \ @@ -204,7 +200,7 @@ CARGO_CRATES= adler2-2.0.0 \ memmap2-0.9.5 \ memoffset-0.9.1 \ minimal-lexical-0.2.1 \ - miniz_oxide-0.8.7 \ + miniz_oxide-0.8.8 \ miow-0.6.0 \ nom-7.1.3 \ normpath-1.3.0 \ @@ -217,16 +213,16 @@ CARGO_CRATES= adler2-2.0.0 \ openssl-0.10.57 \ openssl-macros-0.1.1 \ openssl-probe-0.1.6 \ - openssl-src-300.4.2+3.4.1 \ - openssl-sys-0.9.107 \ + openssl-src-300.5.0+3.5.0 \ + openssl-sys-0.9.108 \ ordered-float-2.10.1 \ - orion-0.17.9 \ - os_info-3.10.0 \ + orion-0.17.10 \ + os_info-3.11.0 \ overload-0.1.1 \ p384-0.13.1 \ parking_lot-0.12.3 \ parking_lot_core-0.9.10 \ - pasetors-0.7.2 \ + pasetors-0.7.4 \ pathdiff-0.2.3 \ pem-rfc7468-0.7.0 \ percent-encoding-2.3.1 \ @@ -235,19 +231,20 @@ CARGO_CRATES= adler2-2.0.0 \ pkg-config-0.3.32 \ portable-atomic-1.11.0 \ portable-atomic-util-0.2.4 \ + potential_utf-0.1.2 \ powerfmt-0.2.0 \ ppv-lite86-0.2.21 \ primeorder-0.13.6 \ - proc-macro2-1.0.94 \ - prodash-29.0.1 \ + proc-macro2-1.0.95 \ + prodash-29.0.2 \ quote-1.0.40 \ r-efi-5.2.0 \ - rand-0.9.0 \ + rand-0.9.1 \ rand_chacha-0.9.0 \ rand_core-0.6.4 \ rand_core-0.9.3 \ rand_xoshiro-0.6.0 \ - redox_syscall-0.5.10 \ + redox_syscall-0.5.12 \ regex-1.11.1 \ regex-automata-0.1.10 \ regex-automata-0.4.9 \ @@ -259,7 +256,7 @@ CARGO_CRATES= adler2-2.0.0 \ rustc-stable-hash-0.1.2 \ rustfix-0.9.0 \ rustix-0.38.44 \ - rustix-1.0.5 \ + rustix-1.0.7 \ ryu-1.0.20 \ same-file-1.0.6 \ schannel-0.1.27 \ @@ -272,12 +269,12 @@ CARGO_CRATES= adler2-2.0.0 \ serde-untagged-0.1.7 \ serde-value-0.7.0 \ serde_derive-1.0.219 \ - serde_ignored-0.1.11 \ + serde_ignored-0.1.12 \ serde_json-1.0.140 \ serde_spanned-0.6.8 \ sha1-0.10.6 \ sha1_smol-1.0.1 \ - sha2-0.10.8 \ + sha2-0.10.9 \ sharded-slab-0.1.7 \ shell-escape-0.1.5 \ shell-words-1.1.0 \ @@ -293,10 +290,10 @@ CARGO_CRATES= adler2-2.0.0 \ subtle-2.6.1 \ supports-hyperlinks-3.1.0 \ supports-unicode-3.0.0 \ - syn-2.0.100 \ - synstructure-0.13.1 \ + syn-2.0.101 \ + synstructure-0.13.2 \ tar-0.4.44 \ - tempfile-3.19.1 \ + tempfile-3.20.0 \ terminal_size-0.4.2 \ thiserror-1.0.69 \ thiserror-2.0.12 \ @@ -306,12 +303,13 @@ CARGO_CRATES= adler2-2.0.0 \ time-0.3.41 \ time-core-0.1.4 \ time-macros-0.2.22 \ - tinystr-0.7.6 \ + tinystr-0.8.1 \ tinyvec-1.9.0 \ tinyvec_macros-0.1.1 \ - toml-0.8.20 \ - toml_datetime-0.6.8 \ - toml_edit-0.22.24 \ + toml-0.8.22 \ + toml_datetime-0.6.9 \ + toml_edit-0.22.26 \ + toml_write-0.1.1 \ tracing-0.1.41 \ tracing-attributes-0.1.28 \ tracing-chrome-0.7.2 \ @@ -327,7 +325,6 @@ CARGO_CRATES= adler2-2.0.0 \ unicode-width-0.2.0 \ unicode-xid-0.2.6 \ url-2.5.4 \ - utf16_iter-1.0.5 \ utf8_iter-1.0.4 \ utf8parse-0.2.2 \ valuable-0.1.1 \ @@ -350,34 +347,41 @@ CARGO_CRATES= adler2-2.0.0 \ windows-sys-0.59.0 \ windows-targets-0.48.5 \ windows-targets-0.52.6 \ + windows-targets-0.53.0 \ windows_aarch64_gnullvm-0.48.5 \ windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_gnullvm-0.53.0 \ windows_aarch64_msvc-0.48.5 \ windows_aarch64_msvc-0.52.6 \ + windows_aarch64_msvc-0.53.0 \ windows_i686_gnu-0.48.5 \ windows_i686_gnu-0.52.6 \ + windows_i686_gnu-0.53.0 \ windows_i686_gnullvm-0.52.6 \ + windows_i686_gnullvm-0.53.0 \ windows_i686_msvc-0.48.5 \ windows_i686_msvc-0.52.6 \ + windows_i686_msvc-0.53.0 \ windows_x86_64_gnu-0.48.5 \ windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnu-0.53.0 \ windows_x86_64_gnullvm-0.48.5 \ windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_gnullvm-0.53.0 \ windows_x86_64_msvc-0.48.5 \ windows_x86_64_msvc-0.52.6 \ + windows_x86_64_msvc-0.53.0 \ winnow-0.6.26 \ - winnow-0.7.4 \ + winnow-0.7.10 \ wit-bindgen-rt-0.39.0 \ - write16-1.0.0 \ - writeable-0.5.5 \ - yoke-0.7.5 \ - yoke-derive-0.7.5 \ - zerocopy-0.7.35 \ - zerocopy-0.8.24 \ - zerocopy-derive-0.7.35 \ - zerocopy-derive-0.8.24 \ + writeable-0.6.1 \ + yoke-0.8.0 \ + yoke-derive-0.8.0 \ + zerocopy-0.8.25 \ + zerocopy-derive-0.8.25 \ zerofrom-0.1.6 \ zerofrom-derive-0.1.6 \ zeroize-1.8.1 \ - zerovec-0.10.4 \ - zerovec-derive-0.10.3 + zerotrie-0.2.2 \ + zerovec-0.11.2 \ + zerovec-derive-0.11.1 diff --git a/devel/cargo-c/distinfo b/devel/cargo-c/distinfo index 40e482c19144..47b07531a554 100644 --- a/devel/cargo-c/distinfo +++ b/devel/cargo-c/distinfo @@ -1,10 +1,10 @@ TIMESTAMP = 1153704088 -SHA256 (rust/crates/cargo-c-0.10.12+cargo-0.87.0.crate) = 3c49cf7d25ae135d955c0731d783293d638b0be5dd6ef26e400980e6f1643479 -SIZE (rust/crates/cargo-c-0.10.12+cargo-0.87.0.crate) = 57525 +SHA256 (rust/crates/cargo-c-0.10.13+cargo-0.88.0.crate) = bd11efb38aee5930cabfe8d41465f22859b2af9071fa04d3642814cf1cc2bc75 +SIZE (rust/crates/cargo-c-0.10.13+cargo-0.88.0.crate) = 57727 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 SIZE (rust/crates/adler2-2.0.0.crate) = 13529 -SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011 -SIZE (rust/crates/ahash-0.8.11.crate) = 43607 +SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75 +SIZE (rust/crates/ahash-0.8.12.crate) = 43413 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311 SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923 @@ -21,8 +21,8 @@ SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d6789 SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969 SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400 -SHA256 (rust/crates/anyhow-1.0.97.crate) = dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f -SIZE (rust/crates/anyhow-1.0.97.crate) = 52221 +SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487 +SIZE (rust/crates/anyhow-1.0.98.crate) = 53334 SHA256 (rust/crates/arc-swap-1.7.1.crate) = 69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457 SIZE (rust/crates/arc-swap-1.7.1.crate) = 68512 SHA256 (rust/crates/arrayref-0.3.9.crate) = 76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb @@ -37,50 +37,48 @@ SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f SIZE (rust/crates/base64-0.22.1.crate) = 81597 SHA256 (rust/crates/base64ct-1.7.3.crate) = 89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3 SIZE (rust/crates/base64ct-1.7.3.crate) = 31175 -SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd -SIZE (rust/crates/bitflags-2.9.0.crate) = 47654 +SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967 +SIZE (rust/crates/bitflags-2.9.1.crate) = 47913 SHA256 (rust/crates/bitmaps-2.1.0.crate) = 031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2 SIZE (rust/crates/bitmaps-2.1.0.crate) = 16717 -SHA256 (rust/crates/blake3-1.8.1.crate) = 389a099b34312839e16420d499a9cad9650541715937ffbdd40d36f49e77eeb3 -SIZE (rust/crates/blake3-1.8.1.crate) = 205653 +SHA256 (rust/crates/blake3-1.8.2.crate) = 3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0 +SIZE (rust/crates/blake3-1.8.2.crate) = 205967 SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71 SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 -SHA256 (rust/crates/bstr-1.11.3.crate) = 531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0 -SIZE (rust/crates/bstr-1.11.3.crate) = 351536 +SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4 +SIZE (rust/crates/bstr-1.12.0.crate) = 351557 SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a SIZE (rust/crates/bytes-1.10.1.crate) = 76779 -SHA256 (rust/crates/bytesize-1.3.3.crate) = 2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659 -SIZE (rust/crates/bytesize-1.3.3.crate) = 11594 -SHA256 (rust/crates/cargo-0.87.0.crate) = cc9ec675923420ee62d9ab7aca09ef5c45b0c901df4a84963e979f9cc668a4f2 -SIZE (rust/crates/cargo-0.87.0.crate) = 2730532 +SHA256 (rust/crates/cargo-0.88.0.crate) = e3266d7f10870d970f22fd244b5d4bb017f723247e6743f2283f6fe63a4f6084 +SIZE (rust/crates/cargo-0.88.0.crate) = 2764211 SHA256 (rust/crates/cargo-credential-0.4.8.crate) = ac1ef5080adde1db190e901884d2c400990856c2a23201c5a181b910a6dbdf2a SIZE (rust/crates/cargo-credential-0.4.8.crate) = 19781 -SHA256 (rust/crates/cargo-credential-libsecret-0.4.12.crate) = e8d8dbc26ce815b430803e756f6ad5f70a67d47bfcde9ca6f4276732c39551b8 -SIZE (rust/crates/cargo-credential-libsecret-0.4.12.crate) = 9751 -SHA256 (rust/crates/cargo-credential-macos-keychain-0.4.12.crate) = b489cbdae63be32c040b5fe81b0f7725e563bcd805bb828e746971a4967aaf28 -SIZE (rust/crates/cargo-credential-macos-keychain-0.4.12.crate) = 9217 -SHA256 (rust/crates/cargo-credential-wincred-0.4.12.crate) = 49c6cb2255a5267a4d18077bc436db5a2c261d97a3dcbc84ccd9747b473b2f4b -SIZE (rust/crates/cargo-credential-wincred-0.4.12.crate) = 9392 +SHA256 (rust/crates/cargo-credential-libsecret-0.4.13.crate) = 02d4e8e593dd3967cf90d6ae8e0e820abbb9ba168c4015dc04d90abc80477b8b +SIZE (rust/crates/cargo-credential-libsecret-0.4.13.crate) = 9749 +SHA256 (rust/crates/cargo-credential-macos-keychain-0.4.13.crate) = 4037e5af4bd682580c82143a0a22d9fd2ae6e57ee8b9ea7110dabcf1160828cc +SIZE (rust/crates/cargo-credential-macos-keychain-0.4.13.crate) = 9214 +SHA256 (rust/crates/cargo-credential-wincred-0.4.13.crate) = 320491fd2d43703fe8685cc844af75eba650d32f51a26a9f37ec8fd0d426a738 +SIZE (rust/crates/cargo-credential-wincred-0.4.13.crate) = 9390 SHA256 (rust/crates/cargo-platform-0.2.0.crate) = 84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4 SIZE (rust/crates/cargo-platform-0.2.0.crate) = 13373 -SHA256 (rust/crates/cargo-util-0.2.19.crate) = 527f6e2a4e80492e90628052be879a5996c2453ad5ec745bfa310a80b7eca20a -SIZE (rust/crates/cargo-util-0.2.19.crate) = 32247 -SHA256 (rust/crates/cargo-util-schemas-0.7.3.crate) = 4d2af4d048b76b1144c58ad66a27b05973a574cefe4999cfd2ebf5cd50213bfd -SIZE (rust/crates/cargo-util-schemas-0.7.3.crate) = 36522 +SHA256 (rust/crates/cargo-util-0.2.20.crate) = d767bc85f367f6483a6072430b56f5c0d6ee7636751a21a800526d0711753d76 +SIZE (rust/crates/cargo-util-0.2.20.crate) = 32306 +SHA256 (rust/crates/cargo-util-schemas-0.8.1.crate) = ea8b01266e95c3cf839fe626e651fa36a9171033caa917a773d7a0ba1d5ce6be +SIZE (rust/crates/cargo-util-schemas-0.8.1.crate) = 36913 SHA256 (rust/crates/cbindgen-0.28.0.crate) = eadd868a2ce9ca38de7eeafdcec9c7065ef89b42b32f0839278d55f35c54d1ff SIZE (rust/crates/cbindgen-0.28.0.crate) = 223401 -SHA256 (rust/crates/cc-1.2.18.crate) = 525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c -SIZE (rust/crates/cc-1.2.18.crate) = 105851 +SHA256 (rust/crates/cc-1.2.22.crate) = 32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1 +SIZE (rust/crates/cc-1.2.22.crate) = 106294 SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 -SHA256 (rust/crates/clap-4.5.35.crate) = d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944 -SIZE (rust/crates/clap-4.5.35.crate) = 56970 -SHA256 (rust/crates/clap_builder-4.5.35.crate) = 2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9 -SIZE (rust/crates/clap_builder-4.5.35.crate) = 168525 -SHA256 (rust/crates/clap_complete-4.5.47.crate) = c06f5378ea264ad4f82bbc826628b5aad714a75abf6ece087e923010eb937fb6 -SIZE (rust/crates/clap_complete-4.5.47.crate) = 48038 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 +SHA256 (rust/crates/clap_complete-4.5.50.crate) = c91d3baa3bcd889d60e6ef28874126a0b384fd225ab83aa6d8a801c519194ce1 +SIZE (rust/crates/clap_complete-4.5.50.crate) = 48292 SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 @@ -103,12 +101,12 @@ SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f2807 SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712 SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280 SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466 -SHA256 (rust/crates/crates-io-0.40.9.crate) = 6967b9fa81bc485cf87748fdc2f8c79b922f5c59fe4f7c160329cee7fae4a314 -SIZE (rust/crates/crates-io-0.40.9.crate) = 15077 +SHA256 (rust/crates/crates-io-0.40.10.crate) = 9c15b946f2bbd53f5be858ed02fcacfeb3646f3ca67b24defc276a01edd10de6 +SIZE (rust/crates/crates-io-0.40.10.crate) = 15087 SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 -SHA256 (rust/crates/crossbeam-channel-0.5.14.crate) = 06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471 -SIZE (rust/crates/crossbeam-channel-0.5.14.crate) = 92728 +SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2 +SIZE (rust/crates/crossbeam-channel-0.5.15.crate) = 92716 SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51 SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471 SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e @@ -119,18 +117,18 @@ SHA256 (rust/crates/crypto-bigint-0.5.5.crate) = 0dc92fb57ca44df6db8059111ab3af9 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/ct-codecs-1.1.3.crate) = b916ba8ce9e4182696896f015e8a5ae6081b305f74690baa8465e35f5a142ea4 -SIZE (rust/crates/ct-codecs-1.1.3.crate) = 5497 +SHA256 (rust/crates/ct-codecs-1.1.5.crate) = dd0d274c65cbc1c34703d2fc2ce0fb892ff68f4516b677671a2f238a30b9b2b2 +SIZE (rust/crates/ct-codecs-1.1.5.crate) = 8162 SHA256 (rust/crates/curl-0.4.47.crate) = d9fb4d13a1be2b58f14d60adba57c9834b78c62fd86c3e76a148f732686e9265 SIZE (rust/crates/curl-0.4.47.crate) = 97185 SHA256 (rust/crates/curl-sys-0.4.80+curl-8.12.1.crate) = 55f7df2eac63200c3ab25bde3b2268ef2ee56af3d238e76d61f01c3c49bff734 SIZE (rust/crates/curl-sys-0.4.80+curl-8.12.1.crate) = 1817567 SHA256 (rust/crates/dbus-0.9.7.crate) = 1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b SIZE (rust/crates/dbus-0.9.7.crate) = 104206 -SHA256 (rust/crates/der-0.7.9.crate) = f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0 -SIZE (rust/crates/der-0.7.9.crate) = 85173 -SHA256 (rust/crates/deranged-0.4.1.crate) = 28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058 -SIZE (rust/crates/deranged-0.4.1.crate) = 23541 +SHA256 (rust/crates/der-0.7.10.crate) = e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb +SIZE (rust/crates/der-0.7.10.crate) = 90111 +SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e +SIZE (rust/crates/deranged-0.4.0.crate) = 23235 SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 SIZE (rust/crates/digest-0.10.7.crate) = 19557 SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0 @@ -151,8 +149,8 @@ SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029 SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 SHA256 (rust/crates/erased-serde-0.4.6.crate) = e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7 SIZE (rust/crates/erased-serde-0.4.6.crate) = 28352 -SHA256 (rust/crates/errno-0.3.11.crate) = 976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e -SIZE (rust/crates/errno-0.3.11.crate) = 12048 +SHA256 (rust/crates/errno-0.3.12.crate) = cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18 +SIZE (rust/crates/errno-0.3.12.crate) = 12423 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 @@ -181,12 +179,12 @@ 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.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 -SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 -SHA256 (rust/crates/getrandom-0.3.2.crate) = 73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0 -SIZE (rust/crates/getrandom-0.3.2.crate) = 49140 -SHA256 (rust/crates/git2-0.20.1.crate) = 5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9 -SIZE (rust/crates/git2-0.20.1.crate) = 223275 +SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592 +SIZE (rust/crates/getrandom-0.2.16.crate) = 40163 +SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4 +SIZE (rust/crates/getrandom-0.3.3.crate) = 49493 +SHA256 (rust/crates/git2-0.20.2.crate) = 2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110 +SIZE (rust/crates/git2-0.20.2.crate) = 223479 SHA256 (rust/crates/git2-curl-0.21.0.crate) = be8dcabbc09ece4d30a9aa983d5804203b7e2f8054a171f792deff59b56d31fa SIZE (rust/crates/git2-curl-0.21.0.crate) = 9654 SHA256 (rust/crates/gix-0.70.0.crate) = 736f14636705f3a56ea52b553e67282519418d9a35bb1e90b3a9637a00296b68 @@ -247,8 +245,8 @@ SHA256 (rust/crates/gix-packetline-0.18.4.crate) = 123844a70cf4d5352441dc06bab0d SIZE (rust/crates/gix-packetline-0.18.4.crate) = 26579 SHA256 (rust/crates/gix-packetline-blocking-0.18.3.crate) = 1ecf3ea2e105c7e45587bac04099824301262a6c43357fad5205da36dbb233b3 SIZE (rust/crates/gix-packetline-blocking-0.18.3.crate) = 22138 -SHA256 (rust/crates/gix-path-0.10.15.crate) = f910668e2f6b2a55ff35a1f04df88a1a049f7b868507f4cbeeaa220eaba7be87 -SIZE (rust/crates/gix-path-0.10.15.crate) = 29687 +SHA256 (rust/crates/gix-path-0.10.18.crate) = 567f65fec4ef10dfab97ae71f26a27fd4d7fe7b8e3f90c8a58551c41ff3fb65b +SIZE (rust/crates/gix-path-0.10.18.crate) = 30214 SHA256 (rust/crates/gix-pathspec-0.9.0.crate) = 6430d3a686c08e9d59019806faa78c17315fe22ae73151a452195857ca02f86c SIZE (rust/crates/gix-pathspec-0.9.0.crate) = 18875 SHA256 (rust/crates/gix-prompt-0.9.1.crate) = 79f2185958e1512b989a007509df8d61dca014aa759a22bee80cfa6c594c3b6d @@ -285,6 +283,8 @@ SHA256 (rust/crates/gix-utils-0.1.14.crate) = ff08f24e03ac8916c478c8419d7d3c3339 SIZE (rust/crates/gix-utils-0.1.14.crate) = 10203 SHA256 (rust/crates/gix-validate-0.9.4.crate) = 34b5f1253109da6c79ed7cf6e1e38437080bb6d704c76af14c93e2f255234084 SIZE (rust/crates/gix-validate-0.9.4.crate) = 12768 +SHA256 (rust/crates/gix-validate-0.10.0.crate) = 77b9e00cacde5b51388d28ed746c493b18a6add1f19b5e01d686b3b9ece66d4d +SIZE (rust/crates/gix-validate-0.10.0.crate) = 12688 SHA256 (rust/crates/gix-worktree-0.39.0.crate) = 6673512f7eaa57a6876adceca6978a501d6c6569a4f177767dc405f8b9778958 SIZE (rust/crates/gix-worktree-0.39.0.crate) = 17560 SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2 @@ -295,8 +295,8 @@ SHA256 (rust/crates/group-0.13.0.crate) = f0f9ef7462f7c099f518d754361858f86d8a07 SIZE (rust/crates/group-0.13.0.crate) = 16526 SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 -SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289 -SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478 +SHA256 (rust/crates/hashbrown-0.15.3.crate) = 84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3 +SIZE (rust/crates/hashbrown-0.15.3.crate) = 140413 SHA256 (rust/crates/hashlink-0.10.0.crate) = 7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1 SIZE (rust/crates/hashlink-0.10.0.crate) = 29402 SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8 @@ -313,32 +313,24 @@ SHA256 (rust/crates/home-0.5.11.crate) = 589533453244b0995c858700322199b2becb13b SIZE (rust/crates/home-0.5.11.crate) = 9926 SHA256 (rust/crates/http-auth-0.1.10.crate) = 150fa4a9462ef926824cf4519c84ed652ca8f4fbae34cb8af045b5cbcaf98822 SIZE (rust/crates/http-auth-0.1.10.crate) = 41282 -SHA256 (rust/crates/humantime-2.2.0.crate) = 9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f -SIZE (rust/crates/humantime-2.2.0.crate) = 20646 -SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526 -SIZE (rust/crates/icu_collections-1.5.0.crate) = 82762 -SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637 -SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131 -SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e -SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094 -SHA256 (rust/crates/icu_locid_transform_data-1.5.1.crate) = 7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d -SIZE (rust/crates/icu_locid_transform_data-1.5.1.crate) = 42937 -SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f -SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113 -SHA256 (rust/crates/icu_normalizer_data-1.5.1.crate) = c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7 -SIZE (rust/crates/icu_normalizer_data-1.5.1.crate) = 50737 -SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5 -SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479 -SHA256 (rust/crates/icu_properties_data-1.5.1.crate) = 85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2 -SIZE (rust/crates/icu_properties_data-1.5.1.crate) = 229231 -SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9 -SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722 -SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6 -SIZE (rust/crates/icu_provider_macros-1.5.0.crate) = 6436 +SHA256 (rust/crates/icu_collections-2.0.0.crate) = 200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47 +SIZE (rust/crates/icu_collections-2.0.0.crate) = 83033 +SHA256 (rust/crates/icu_locale_core-2.0.0.crate) = 0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a +SIZE (rust/crates/icu_locale_core-2.0.0.crate) = 74430 +SHA256 (rust/crates/icu_normalizer-2.0.0.crate) = 436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979 +SIZE (rust/crates/icu_normalizer-2.0.0.crate) = 61543 +SHA256 (rust/crates/icu_normalizer_data-2.0.0.crate) = 00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3 +SIZE (rust/crates/icu_normalizer_data-2.0.0.crate) = 68101 +SHA256 (rust/crates/icu_properties-2.0.0.crate) = 2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a +SIZE (rust/crates/icu_properties-2.0.0.crate) = 58065 +SHA256 (rust/crates/icu_properties_data-2.0.0.crate) = 8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04 +SIZE (rust/crates/icu_properties_data-2.0.0.crate) = 159069 +SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af +SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966 SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e SIZE (rust/crates/idna-1.0.3.crate) = 142515 -SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 -SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 +SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344 +SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389 SHA256 (rust/crates/ignore-0.4.23.crate) = 6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b SIZE (rust/crates/ignore-0.4.23.crate) = 55901 SHA256 (rust/crates/im-rc-15.1.0.crate) = af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe @@ -355,10 +347,10 @@ SHA256 (rust/crates/itertools-0.14.0.crate) = 2b192c782037fadd9cfa75548310488aab SIZE (rust/crates/itertools-0.14.0.crate) = 152715 SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c SIZE (rust/crates/itoa-1.0.15.crate) = 11231 -SHA256 (rust/crates/jiff-0.2.5.crate) = c102670231191d07d37a35af3eb77f1f0dbf7a71be51a962dcd57ea607be7260 -SIZE (rust/crates/jiff-0.2.5.crate) = 698600 -SHA256 (rust/crates/jiff-static-0.2.5.crate) = 4cdde31a9d349f1b1f51a0b3714a5940ac022976f4b49485fc04be052b183b4c -SIZE (rust/crates/jiff-static-0.2.5.crate) = 75874 +SHA256 (rust/crates/jiff-0.2.13.crate) = f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806 +SIZE (rust/crates/jiff-0.2.13.crate) = 707842 +SHA256 (rust/crates/jiff-static-0.2.13.crate) = f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48 +SIZE (rust/crates/jiff-static-0.2.13.crate) = 76123 SHA256 (rust/crates/jiff-tzdb-0.1.4.crate) = c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524 SIZE (rust/crates/jiff-tzdb-0.1.4.crate) = 62435 SHA256 (rust/crates/jiff-tzdb-platform-0.1.3.crate) = 875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8 @@ -373,14 +365,14 @@ SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591 SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55 SIZE (rust/crates/lazycell-1.3.0.crate) = 12502 -SHA256 (rust/crates/libc-0.2.171.crate) = c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6 -SIZE (rust/crates/libc-0.2.171.crate) = 785246 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 SHA256 (rust/crates/libdbus-sys-0.2.5.crate) = 06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72 SIZE (rust/crates/libdbus-sys-0.2.5.crate) = 1557017 SHA256 (rust/crates/libgit2-sys-0.18.1+1.9.0.crate) = e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e SIZE (rust/crates/libgit2-sys-0.18.1+1.9.0.crate) = 1855262 -SHA256 (rust/crates/libloading-0.8.6.crate) = fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34 -SIZE (rust/crates/libloading-0.8.6.crate) = 28922 +SHA256 (rust/crates/libloading-0.8.7.crate) = 6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c +SIZE (rust/crates/libloading-0.8.7.crate) = 30374 SHA256 (rust/crates/libnghttp2-sys-0.1.11+1.64.0.crate) = 1b6c24e48a7167cffa7119da39d577fa482e66c688a4aac016bee862e1a713c4 SIZE (rust/crates/libnghttp2-sys-0.1.11+1.64.0.crate) = 1968997 SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d @@ -393,10 +385,10 @@ SHA256 (rust/crates/libz-sys-1.1.22.crate) = 8b70e7a7df205e92a1a4cd9aaae7898dac0 SIZE (rust/crates/libz-sys-1.1.22.crate) = 841053 SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898 -SHA256 (rust/crates/linux-raw-sys-0.9.3.crate) = fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413 -SIZE (rust/crates/linux-raw-sys-0.9.3.crate) = 2311047 -SHA256 (rust/crates/litemap-0.7.5.crate) = 23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856 -SIZE (rust/crates/litemap-0.7.5.crate) = 29962 +SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12 +SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088 +SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956 +SIZE (rust/crates/litemap-0.8.0.crate) = 34344 SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17 SIZE (rust/crates/lock_api-0.4.12.crate) = 27591 SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 @@ -413,8 +405,8 @@ SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb4486776 SIZE (rust/crates/memoffset-0.9.1.crate) = 9032 SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841 -SHA256 (rust/crates/miniz_oxide-0.8.7.crate) = ff70ce3e48ae43fa075863cef62e8b43b71a4f2382229920e0df362592919430 -SIZE (rust/crates/miniz_oxide-0.8.7.crate) = 66905 +SHA256 (rust/crates/miniz_oxide-0.8.8.crate) = 3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a +SIZE (rust/crates/miniz_oxide-0.8.8.crate) = 67065 SHA256 (rust/crates/miow-0.6.0.crate) = 359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044 SIZE (rust/crates/miow-0.6.0.crate) = 27801 SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a @@ -439,16 +431,16 @@ 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.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128 -SHA256 (rust/crates/openssl-src-300.4.2+3.4.1.crate) = 168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2 -SIZE (rust/crates/openssl-src-300.4.2+3.4.1.crate) = 9956732 -SHA256 (rust/crates/openssl-sys-0.9.107.crate) = 8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07 -SIZE (rust/crates/openssl-sys-0.9.107.crate) = 78156 +SHA256 (rust/crates/openssl-src-300.5.0+3.5.0.crate) = e8ce546f549326b0e6052b649198487d91320875da901e7bd11a06d1ee3f9c2f +SIZE (rust/crates/openssl-src-300.5.0+3.5.0.crate) = 10488436 +SHA256 (rust/crates/openssl-sys-0.9.108.crate) = e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847 +SIZE (rust/crates/openssl-sys-0.9.108.crate) = 78190 SHA256 (rust/crates/ordered-float-2.10.1.crate) = 68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c SIZE (rust/crates/ordered-float-2.10.1.crate) = 16029 -SHA256 (rust/crates/orion-0.17.9.crate) = bf2e0b749a7c5fb3d43f06f19eff59b253b5480fa146533676cea27c3606530b -SIZE (rust/crates/orion-0.17.9.crate) = 220234 -SHA256 (rust/crates/os_info-3.10.0.crate) = 2a604e53c24761286860eba4e2c8b23a0161526476b1de520139d69cdb85a6b5 -SIZE (rust/crates/os_info-3.10.0.crate) = 22971 +SHA256 (rust/crates/orion-0.17.10.crate) = ccc95d369bc6b5cf404c562cd33de439ae9ca6dc4b044cd2625b2072ca0b81e4 +SIZE (rust/crates/orion-0.17.10.crate) = 236710 +SHA256 (rust/crates/os_info-3.11.0.crate) = 41fc863e2ca13dc2d5c34fb22ea4a588248ac14db929616ba65c45f21744b1e9 +SIZE (rust/crates/os_info-3.11.0.crate) = 23226 SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39 SIZE (rust/crates/overload-0.1.1.crate) = 24439 SHA256 (rust/crates/p384-0.13.1.crate) = fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6 @@ -457,8 +449,8 @@ SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646 SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860 SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8 SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406 -SHA256 (rust/crates/pasetors-0.7.2.crate) = c54944fa25a6e7c9c5b3315f118d360cc00d555cf53bb2b2fdf32dd31c71b729 -SIZE (rust/crates/pasetors-0.7.2.crate) = 145919 +SHA256 (rust/crates/pasetors-0.7.4.crate) = cb798c661c80718af935bea17997928937822e7369cd087667ff4179f9146551 +SIZE (rust/crates/pasetors-0.7.4.crate) = 147376 SHA256 (rust/crates/pathdiff-0.2.3.crate) = df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3 SIZE (rust/crates/pathdiff-0.2.3.crate) = 7495 SHA256 (rust/crates/pem-rfc7468-0.7.0.crate) = 88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412 @@ -475,22 +467,24 @@ SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b1144 SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 SHA256 (rust/crates/portable-atomic-util-0.2.4.crate) = d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507 SIZE (rust/crates/portable-atomic-util-0.2.4.crate) = 47043 +SHA256 (rust/crates/potential_utf-0.1.2.crate) = e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585 +SIZE (rust/crates/potential_utf-0.1.2.crate) = 9613 SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391 SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165 SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9 SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522 SHA256 (rust/crates/primeorder-0.13.6.crate) = 353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6 SIZE (rust/crates/primeorder-0.13.6.crate) = 21296 -SHA256 (rust/crates/proc-macro2-1.0.94.crate) = a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84 -SIZE (rust/crates/proc-macro2-1.0.94.crate) = 52391 -SHA256 (rust/crates/prodash-29.0.1.crate) = 9ee7ce24c980b976607e2d6ae4aae92827994d23fed71659c3ede3f92528b58b -SIZE (rust/crates/prodash-29.0.1.crate) = 91000 +SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 +SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 +SHA256 (rust/crates/prodash-29.0.2.crate) = f04bb108f648884c23b98a0e940ebc2c93c0c3b89f04dbaf7eb8256ce617d1bc +SIZE (rust/crates/prodash-29.0.2.crate) = 91338 SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d SIZE (rust/crates/quote-1.0.40.crate) = 31063 SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5 SIZE (rust/crates/r-efi-5.2.0.crate) = 64764 -SHA256 (rust/crates/rand-0.9.0.crate) = 3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94 -SIZE (rust/crates/rand-0.9.0.crate) = 97798 +SHA256 (rust/crates/rand-0.9.1.crate) = 9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97 +SIZE (rust/crates/rand-0.9.1.crate) = 97986 SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258 SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c @@ -499,8 +493,8 @@ SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b66 SIZE (rust/crates/rand_core-0.9.3.crate) = 24543 SHA256 (rust/crates/rand_xoshiro-0.6.0.crate) = 6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa SIZE (rust/crates/rand_xoshiro-0.6.0.crate) = 17125 -SHA256 (rust/crates/redox_syscall-0.5.10.crate) = 0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1 -SIZE (rust/crates/redox_syscall-0.5.10.crate) = 30226 +SHA256 (rust/crates/redox_syscall-0.5.12.crate) = 928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af +SIZE (rust/crates/redox_syscall-0.5.12.crate) = 29544 SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 SIZE (rust/crates/regex-1.11.1.crate) = 254170 SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132 @@ -523,8 +517,8 @@ SHA256 (rust/crates/rustfix-0.9.0.crate) = 7f66156d7471ff4f12253cd7fd76dfe637a59 SIZE (rust/crates/rustfix-0.9.0.crate) = 19517 SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154 SIZE (rust/crates/rustix-0.38.44.crate) = 379347 -SHA256 (rust/crates/rustix-1.0.5.crate) = d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf -SIZE (rust/crates/rustix-1.0.5.crate) = 414160 +SHA256 (rust/crates/rustix-1.0.7.crate) = c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266 +SIZE (rust/crates/rustix-1.0.7.crate) = 414500 SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f SIZE (rust/crates/ryu-1.0.20.crate) = 48738 SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 @@ -549,8 +543,8 @@ SHA256 (rust/crates/serde-value-0.7.0.crate) = f3a1a3341211875ef120e117ea7fd5228 SIZE (rust/crates/serde-value-0.7.0.crate) = 10249 SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 -SHA256 (rust/crates/serde_ignored-0.1.11.crate) = 566da67d80e92e009728b3731ff0e5360cb181432b8ca73ea30bb1d170700d76 -SIZE (rust/crates/serde_ignored-0.1.11.crate) = 12799 +SHA256 (rust/crates/serde_ignored-0.1.12.crate) = b516445dac1e3535b6d658a7b528d771153dfb272ed4180ca4617a20550365ff +SIZE (rust/crates/serde_ignored-0.1.12.crate) = 13050 SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1 @@ -559,8 +553,8 @@ SHA256 (rust/crates/sha1-0.10.6.crate) = e3bf829a2d51ab4a5ddf1352d8470c140cadc83 SIZE (rust/crates/sha1-0.10.6.crate) = 13517 SHA256 (rust/crates/sha1_smol-1.0.1.crate) = bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d SIZE (rust/crates/sha1_smol-1.0.1.crate) = 9809 -SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8 -SIZE (rust/crates/sha2-0.10.8.crate) = 26357 +SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283 +SIZE (rust/crates/sha2-0.10.9.crate) = 29271 SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6 SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227 SHA256 (rust/crates/shell-escape-0.1.5.crate) = 45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f @@ -591,14 +585,14 @@ SHA256 (rust/crates/supports-hyperlinks-3.1.0.crate) = 804f44ed3c63152de6a9f90ac SIZE (rust/crates/supports-hyperlinks-3.1.0.crate) = 8235 SHA256 (rust/crates/supports-unicode-3.0.0.crate) = b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2 SIZE (rust/crates/supports-unicode-3.0.0.crate) = 7825 -SHA256 (rust/crates/syn-2.0.100.crate) = b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0 -SIZE (rust/crates/syn-2.0.100.crate) = 297947 -SHA256 (rust/crates/synstructure-0.13.1.crate) = c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971 -SIZE (rust/crates/synstructure-0.13.1.crate) = 18327 +SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf +SIZE (rust/crates/syn-2.0.101.crate) = 299250 +SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2 +SIZE (rust/crates/synstructure-0.13.2.crate) = 18950 SHA256 (rust/crates/tar-0.4.44.crate) = 1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a SIZE (rust/crates/tar-0.4.44.crate) = 61020 -SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf -SIZE (rust/crates/tempfile-3.19.1.crate) = 39634 +SHA256 (rust/crates/tempfile-3.20.0.crate) = e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1 +SIZE (rust/crates/tempfile-3.20.0.crate) = 42306 SHA256 (rust/crates/terminal_size-0.4.2.crate) = 45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed SIZE (rust/crates/terminal_size-0.4.2.crate) = 9976 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 @@ -617,18 +611,20 @@ SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea SIZE (rust/crates/time-core-0.1.4.crate) = 8422 SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49 SIZE (rust/crates/time-macros-0.2.22.crate) = 24604 -SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f -SIZE (rust/crates/tinystr-0.7.6.crate) = 16971 +SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b +SIZE (rust/crates/tinystr-0.8.1.crate) = 23333 SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71 SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137 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.8.20.crate) = cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148 -SIZE (rust/crates/toml-0.8.20.crate) = 51095 -SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41 -SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028 -SHA256 (rust/crates/toml_edit-0.22.24.crate) = 17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474 -SIZE (rust/crates/toml_edit-0.22.24.crate) = 106399 +SHA256 (rust/crates/toml-0.8.22.crate) = 05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae +SIZE (rust/crates/toml-0.8.22.crate) = 76224 +SHA256 (rust/crates/toml_datetime-0.6.9.crate) = 3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3 +SIZE (rust/crates/toml_datetime-0.6.9.crate) = 12622 +SHA256 (rust/crates/toml_edit-0.22.26.crate) = 310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e +SIZE (rust/crates/toml_edit-0.22.26.crate) = 121714 +SHA256 (rust/crates/toml_write-0.1.1.crate) = bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076 +SIZE (rust/crates/toml_write-0.1.1.crate) = 17467 SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0 SIZE (rust/crates/tracing-0.1.41.crate) = 82448 SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d @@ -659,8 +655,6 @@ SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9 SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744 SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60 SIZE (rust/crates/url-2.5.4.crate) = 81097 -SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246 -SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736 SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437 SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 @@ -705,65 +699,79 @@ SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c0964560 SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904 SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows-targets-0.53.0.crate) = b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b +SIZE (rust/crates/windows-targets-0.53.0.crate) = 7020 SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8 SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492 SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764 +SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443 SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483 SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c +SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446 SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891 SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3 +SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973 SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11 +SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056 SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406 SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300 SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d +SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450 SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619 SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba +SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585 SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486 SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57 +SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434 SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538 SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412 SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 +SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486 +SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400 SHA256 (rust/crates/winnow-0.6.26.crate) = 1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28 SIZE (rust/crates/winnow-0.6.26.crate) = 167349 -SHA256 (rust/crates/winnow-0.7.4.crate) = 0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36 -SIZE (rust/crates/winnow-0.7.4.crate) = 173588 +SHA256 (rust/crates/winnow-0.7.10.crate) = c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec +SIZE (rust/crates/winnow-0.7.10.crate) = 176073 SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 -SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 -SIZE (rust/crates/write16-1.0.0.crate) = 7218 -SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 -SIZE (rust/crates/writeable-0.5.5.crate) = 22354 -SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40 -SIZE (rust/crates/yoke-0.7.5.crate) = 29673 -SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154 -SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525 -SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 -SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645 -SHA256 (rust/crates/zerocopy-0.8.24.crate) = 2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879 -SIZE (rust/crates/zerocopy-0.8.24.crate) = 243777 -SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e -SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829 -SHA256 (rust/crates/zerocopy-derive-0.8.24.crate) = a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be -SIZE (rust/crates/zerocopy-derive-0.8.24.crate) = 86487 +SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb +SIZE (rust/crates/writeable-0.6.1.crate) = 24068 +SHA256 (rust/crates/yoke-0.8.0.crate) = 5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc +SIZE (rust/crates/yoke-0.8.0.crate) = 28726 +SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6 +SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521 +SHA256 (rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb +SIZE (rust/crates/zerocopy-0.8.25.crate) = 252714 +SHA256 (rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef +SIZE (rust/crates/zerocopy-derive-0.8.25.crate) = 87671 SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5 SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669 SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502 SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305 SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde SIZE (rust/crates/zeroize-1.8.1.crate) = 20029 -SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079 -SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 -SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 -SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 +SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595 +SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423 +SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428 +SIZE (rust/crates/zerovec-0.11.2.crate) = 124500 +SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f +SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294 diff --git a/devel/cargo-edit/Makefile b/devel/cargo-edit/Makefile index 72b460ee658c..56d9fcaabbe8 100644 --- a/devel/cargo-edit/Makefile +++ b/devel/cargo-edit/Makefile @@ -1,7 +1,6 @@ PORTNAME= cargo-edit DISTVERSIONPREFIX= v -DISTVERSION= 0.13.2 -PORTREVISION= 1 +DISTVERSION= 0.13.4 CATEGORIES= devel MAINTAINER= yuri@FreeBSD.org @@ -59,6 +58,7 @@ CARGO_CRATES= addr2line-0.24.2 \ cfg_aliases-0.2.1 \ clap-4.5.27 \ clap-cargo-0.15.2 \ + clap-verbosity-flag-3.0.2 \ clap_builder-4.5.27 \ clap_derive-4.5.24 \ clap_lex-0.7.4 \ @@ -90,6 +90,8 @@ CARGO_CRATES= addr2line-0.24.2 \ ed25519-compact-2.1.1 \ either-1.13.0 \ elliptic-curve-0.13.8 \ + env_filter-0.1.3 \ + env_logger-0.11.8 \ equivalent-1.0.1 \ errno-0.3.10 \ fastrand-2.3.0 \ @@ -148,6 +150,8 @@ CARGO_CRATES= addr2line-0.24.2 \ is_terminal_polyfill-1.70.1 \ itertools-0.13.0 \ itoa-1.0.14 \ + jiff-0.2.13 \ + jiff-static-0.2.13 \ jobserver-0.1.32 \ js-sys-0.3.76 \ libc-0.2.169 \ @@ -157,7 +161,7 @@ CARGO_CRATES= addr2line-0.24.2 \ libz-sys-1.1.20 \ linux-raw-sys-0.4.15 \ litemap-0.7.4 \ - log-0.4.25 \ + log-0.4.27 \ memchr-2.7.4 \ mime-0.3.17 \ miniz_oxide-0.8.3 \ @@ -180,6 +184,8 @@ CARGO_CRATES= addr2line-0.24.2 \ pin-utils-0.1.0 \ pkcs8-0.10.2 \ pkg-config-0.3.31 \ + portable-atomic-1.11.0 \ + portable-atomic-util-0.2.4 \ powerfmt-0.2.0 \ ppv-lite86-0.2.20 \ primeorder-0.13.6 \ @@ -236,7 +242,7 @@ CARGO_CRATES= addr2line-0.24.2 \ stable_deref_trait-1.2.0 \ strsim-0.11.1 \ subtle-2.6.1 \ - syn-2.0.96 \ + syn-2.0.101 \ sync_wrapper-1.0.1 \ synstructure-0.13.1 \ tame-index-0.17.0 \ diff --git a/devel/cargo-edit/distinfo b/devel/cargo-edit/distinfo index cba7e5269948..54bf9f118071 100644 --- a/devel/cargo-edit/distinfo +++ b/devel/cargo-edit/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1742270783 +TIMESTAMP = 1747201339 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -77,6 +77,8 @@ SHA256 (rust/crates/clap-4.5.27.crate) = 769b0145982b4b48713e01ec42d61614425f27b SIZE (rust/crates/clap-4.5.27.crate) = 55737 SHA256 (rust/crates/clap-cargo-0.15.2.crate) = d546f0e84ff2bfa4da1ce9b54be42285767ba39c688572ca32412a09a73851e5 SIZE (rust/crates/clap-cargo-0.15.2.crate) = 12241 +SHA256 (rust/crates/clap-verbosity-flag-3.0.2.crate) = 2678fade3b77aa3a8ff3aae87e9c008d3fb00473a41c71fbf74e91c8c7b37e84 +SIZE (rust/crates/clap-verbosity-flag-3.0.2.crate) = 14866 SHA256 (rust/crates/clap_builder-4.5.27.crate) = 1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7 SIZE (rust/crates/clap_builder-4.5.27.crate) = 168024 SHA256 (rust/crates/clap_derive-4.5.24.crate) = 54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c @@ -139,6 +141,10 @@ SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c48 SIZE (rust/crates/either-1.13.0.crate) = 19169 SHA256 (rust/crates/elliptic-curve-0.13.8.crate) = b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47 SIZE (rust/crates/elliptic-curve-0.13.8.crate) = 63198 +SHA256 (rust/crates/env_filter-0.1.3.crate) = 186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0 +SIZE (rust/crates/env_filter-0.1.3.crate) = 15191 +SHA256 (rust/crates/env_logger-0.11.8.crate) = 13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f +SIZE (rust/crates/env_logger-0.11.8.crate) = 32538 SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 SIZE (rust/crates/equivalent-1.0.1.crate) = 6615 SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d @@ -255,6 +261,10 @@ SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d SIZE (rust/crates/itertools-0.13.0.crate) = 146261 SHA256 (rust/crates/itoa-1.0.14.crate) = d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674 SIZE (rust/crates/itoa-1.0.14.crate) = 11210 +SHA256 (rust/crates/jiff-0.2.13.crate) = f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806 +SIZE (rust/crates/jiff-0.2.13.crate) = 707842 +SHA256 (rust/crates/jiff-static-0.2.13.crate) = f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48 +SIZE (rust/crates/jiff-static-0.2.13.crate) = 76123 SHA256 (rust/crates/jobserver-0.1.32.crate) = 48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0 SIZE (rust/crates/jobserver-0.1.32.crate) = 27549 SHA256 (rust/crates/js-sys-0.3.76.crate) = 6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7 @@ -273,8 +283,8 @@ SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8ea SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898 SHA256 (rust/crates/litemap-0.7.4.crate) = 4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104 SIZE (rust/crates/litemap-0.7.4.crate) = 28257 -SHA256 (rust/crates/log-0.4.25.crate) = 04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f -SIZE (rust/crates/log-0.4.25.crate) = 44876 +SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 +SIZE (rust/crates/log-0.4.27.crate) = 48120 SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 SIZE (rust/crates/memchr-2.7.4.crate) = 96670 SHA256 (rust/crates/mime-0.3.17.crate) = 6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a @@ -319,6 +329,10 @@ SHA256 (rust/crates/pkcs8-0.10.2.crate) = f950b2377845cebe5cf8b5165cb3cc1a5e0fa5 SIZE (rust/crates/pkcs8-0.10.2.crate) = 26360 SHA256 (rust/crates/pkg-config-0.3.31.crate) = 953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2 SIZE (rust/crates/pkg-config-0.3.31.crate) = 20880 +SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e +SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 +SHA256 (rust/crates/portable-atomic-util-0.2.4.crate) = d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507 +SIZE (rust/crates/portable-atomic-util-0.2.4.crate) = 47043 SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391 SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165 SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04 @@ -431,8 +445,8 @@ SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3 SIZE (rust/crates/strsim-0.11.1.crate) = 14266 SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292 SIZE (rust/crates/subtle-2.6.1.crate) = 14562 -SHA256 (rust/crates/syn-2.0.96.crate) = d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80 -SIZE (rust/crates/syn-2.0.96.crate) = 297497 +SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf +SIZE (rust/crates/syn-2.0.101.crate) = 299250 SHA256 (rust/crates/sync_wrapper-1.0.1.crate) = a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394 SIZE (rust/crates/sync_wrapper-1.0.1.crate) = 6939 SHA256 (rust/crates/synstructure-0.13.1.crate) = c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971 @@ -619,5 +633,5 @@ SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19d SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 -SHA256 (killercup-cargo-edit-v0.13.2_GH0.tar.gz) = 8f94d5fd27ec8297728a12172c9ec14ecb55c8b1331049ecc04de3c101f4485f -SIZE (killercup-cargo-edit-v0.13.2_GH0.tar.gz) = 97217 +SHA256 (killercup-cargo-edit-v0.13.4_GH0.tar.gz) = afcf319c43bc1ca025c7607e7a2ddd429ff8fd65026acc4e1864c7853ccefb5b +SIZE (killercup-cargo-edit-v0.13.4_GH0.tar.gz) = 98031 diff --git a/devel/cirrus-cli/Makefile b/devel/cirrus-cli/Makefile index 47c412b5cb3e..8db5f3d20a07 100644 --- a/devel/cirrus-cli/Makefile +++ b/devel/cirrus-cli/Makefile @@ -1,6 +1,6 @@ PORTNAME= cirrus-cli DISTVERSIONPREFIX= v -DISTVERSION= 0.131.1 +DISTVERSION= 0.131.2 CATEGORIES= devel MAINTAINER= bofh@FreeBSD.org diff --git a/devel/cirrus-cli/distinfo b/devel/cirrus-cli/distinfo index 0e48911d6246..a026f8b1d0e5 100644 --- a/devel/cirrus-cli/distinfo +++ b/devel/cirrus-cli/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1747045271 -SHA256 (go/devel_cirrus-cli/cirrus-cli-v0.131.1/v0.131.1.mod) = 4c57cb388bf0476e369fbf2c9cf5cb4ad0485ab9c6d1dfc029c9f54c49acc0c2 -SIZE (go/devel_cirrus-cli/cirrus-cli-v0.131.1/v0.131.1.mod) = 10858 -SHA256 (go/devel_cirrus-cli/cirrus-cli-v0.131.1/v0.131.1.zip) = c78e28a31148cf0fa8bf75c6670b574181c9376da13dbde388cbb0b65073c608 -SIZE (go/devel_cirrus-cli/cirrus-cli-v0.131.1/v0.131.1.zip) = 1315805 +TIMESTAMP = 1747217072 +SHA256 (go/devel_cirrus-cli/cirrus-cli-v0.131.2/v0.131.2.mod) = 4c57cb388bf0476e369fbf2c9cf5cb4ad0485ab9c6d1dfc029c9f54c49acc0c2 +SIZE (go/devel_cirrus-cli/cirrus-cli-v0.131.2/v0.131.2.mod) = 10858 +SHA256 (go/devel_cirrus-cli/cirrus-cli-v0.131.2/v0.131.2.zip) = 058f4bef8dbcda9bb71648690ca6400715b44ef178954af49a6d96d8f2b644a5 +SIZE (go/devel_cirrus-cli/cirrus-cli-v0.131.2/v0.131.2.zip) = 1315773 diff --git a/devel/csmith/Makefile b/devel/csmith/Makefile index 07c0d1a586a0..15e8a896c2a1 100644 --- a/devel/csmith/Makefile +++ b/devel/csmith/Makefile @@ -11,7 +11,7 @@ LICENSE= BSD2CLAUSE BROKEN= Unfetchable DEPRECATED= Unmaintained for years -EXPIRATION_DATE=2024-06-30 +EXPIRATION_DATE=2025-06-30 USES= gmake libtool localbase perl5 shebangfix USE_CXXSTD= c++11 diff --git a/devel/dbus/Makefile b/devel/dbus/Makefile index b1b182a97bca..1ecf854e8588 100644 --- a/devel/dbus/Makefile +++ b/devel/dbus/Makefile @@ -1,6 +1,6 @@ PORTNAME= dbus DISTVERSION= 1.16.2 -PORTREVISION= 2 +PORTREVISION= 3 PORTEPOCH= 1 CATEGORIES= devel gnome MASTER_SITES= https://dbus.freedesktop.org/releases/dbus/ diff --git a/devel/dbus/files/patch-dbus_dbus-connection.c b/devel/dbus/files/patch-dbus_dbus-connection.c index 58b587c84140..05bd0cd15fd4 100644 --- a/devel/dbus/files/patch-dbus_dbus-connection.c +++ b/devel/dbus/files/patch-dbus_dbus-connection.c @@ -1,69 +1,20 @@ ---- dbus/dbus-connection.c.orig 2018-02-08 14:07:21 UTC +--- dbus/dbus-connection.c.orig 2025-02-27 16:29:06 UTC +++ dbus/dbus-connection.c -@@ -2385,7 +2385,7 @@ _dbus_connection_block_pending_call (DBusPendingCall * - DBusConnection *connection; - dbus_uint32_t client_serial; - DBusTimeout *timeout; -- int timeout_milliseconds, elapsed_milliseconds; -+ int timeout_milliseconds, elapsed_milliseconds, remain_milliseconds; - - _dbus_assert (pending != NULL); - -@@ -2466,7 +2466,11 @@ _dbus_connection_block_pending_call (DBusPendingCall * - _dbus_get_monotonic_time (&tv_sec, &tv_usec); - elapsed_milliseconds = (tv_sec - start_tv_sec) * 1000 + - (tv_usec - start_tv_usec) / 1000; -- -+ if (timeout_milliseconds != -1) -+ remain_milliseconds = timeout_milliseconds - elapsed_milliseconds; -+ else -+ remain_milliseconds = -1; -+ - if (!_dbus_connection_get_is_connected_unlocked (connection)) - { - DBusMessage *error_msg; -@@ -2494,7 +2498,7 @@ _dbus_connection_block_pending_call (DBusPendingCall * - */ - _dbus_verbose ("dbus_connection_send_with_reply_and_block() waiting for more memory\n"); - -- _dbus_memory_pause_based_on_timeout (timeout_milliseconds - elapsed_milliseconds); -+ _dbus_memory_pause_based_on_timeout (remain_milliseconds); - } - else - { -@@ -2503,7 +2507,7 @@ _dbus_connection_block_pending_call (DBusPendingCall * - pending, - DBUS_ITERATION_DO_READING | - DBUS_ITERATION_BLOCK, -- timeout_milliseconds - elapsed_milliseconds); -+ remain_milliseconds); - } - - goto recheck_status; -@@ -2512,7 +2516,7 @@ _dbus_connection_block_pending_call (DBusPendingCall * - _dbus_verbose ("dbus_connection_send_with_reply_and_block(): clock set backward\n"); - else if (elapsed_milliseconds < timeout_milliseconds) - { -- _dbus_verbose ("dbus_connection_send_with_reply_and_block(): %d milliseconds remain\n", timeout_milliseconds - elapsed_milliseconds); -+ _dbus_verbose ("dbus_connection_send_with_reply_and_block(): %d milliseconds remain\n", remain_milliseconds); - - if (status == DBUS_DISPATCH_NEED_MEMORY) - { -@@ -2522,7 +2526,7 @@ _dbus_connection_block_pending_call (DBusPendingCall * +@@ -2510,7 +2510,7 @@ _dbus_connection_block_pending_call (DBusPendingCall * */ _dbus_verbose ("dbus_connection_send_with_reply_and_block() waiting for more memory\n"); - _dbus_memory_pause_based_on_timeout (timeout_milliseconds - elapsed_milliseconds); -+ _dbus_memory_pause_based_on_timeout (remain_milliseconds); ++ _dbus_memory_pause_based_on_timeout (-1); } else { -@@ -2531,7 +2535,7 @@ _dbus_connection_block_pending_call (DBusPendingCall * +@@ -2519,7 +2519,7 @@ _dbus_connection_block_pending_call (DBusPendingCall * pending, DBUS_ITERATION_DO_READING | DBUS_ITERATION_BLOCK, - timeout_milliseconds - elapsed_milliseconds); -+ remain_milliseconds); ++ -1); } goto recheck_status; diff --git a/devel/electron34/Makefile.version b/devel/electron34/Makefile.version index aeb88d4d3be0..1130ceda9f91 100644 --- a/devel/electron34/Makefile.version +++ b/devel/electron34/Makefile.version @@ -1,2 +1,2 @@ -ELECTRON_VER= 34.5.5 +ELECTRON_VER= 34.5.6 ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron34/distinfo b/devel/electron34/distinfo index 78ef095ac7fc..60dea671da6c 100644 --- a/devel/electron34/distinfo +++ b/devel/electron34/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746710420 +TIMESTAMP = 1747307398 SHA256 (electron/chromium-132.0.6834.210.tar.xz.0) = ede58a1501f175aaa6c92e47793b773ed10b31a43d600375cb40727c4ae677d5 SIZE (electron/chromium-132.0.6834.210.tar.xz.0) = 2000000000 SHA256 (electron/chromium-132.0.6834.210.tar.xz.1) = 6d080b3948ef1d63d08b8cc1390662a439e635b881561434787b8b67ea99b08d @@ -7,10 +7,10 @@ SHA256 (electron/chromium-132.0.6834.210.tar.xz.2) = 989e234492cf50454303ec6f490 SIZE (electron/chromium-132.0.6834.210.tar.xz.2) = 484148560 SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111 -SHA256 (electron/electron-yarn-cache-34.5.5.tar.xz) = f0fa33e22a0b00e5440fbc57517f7b303d43ca07c25e43f35e28f97c2ce12c83 -SIZE (electron/electron-yarn-cache-34.5.5.tar.xz) = 29062184 -SHA256 (electron/electron-electron-v34.5.5_GH0.tar.gz) = afcd0268d91eb2c26758e3e550f6824e50f83e39fd4135f3138fe83959b0cc98 -SIZE (electron/electron-electron-v34.5.5_GH0.tar.gz) = 14851351 +SHA256 (electron/electron-yarn-cache-34.5.6.tar.xz) = f0fa33e22a0b00e5440fbc57517f7b303d43ca07c25e43f35e28f97c2ce12c83 +SIZE (electron/electron-yarn-cache-34.5.6.tar.xz) = 29062184 +SHA256 (electron/electron-electron-v34.5.6_GH0.tar.gz) = 0146f0dc63db919ebbbfa760c89b235fcf5cf25e97dd21c01e57127ebc143558 +SIZE (electron/electron-electron-v34.5.6_GH0.tar.gz) = 14851352 SHA256 (electron/nodejs-node-v20.19.1_GH0.tar.gz) = babcd5b9e3216510b89305e6774bcdb2905ca98ff60028b67f163eb8296b6665 SIZE (electron/nodejs-node-v20.19.1_GH0.tar.gz) = 116091586 SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb diff --git a/devel/electron34/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron34/files/patch-electron_spec_api-browser-window-spec.ts index 4d6d79ed4d10..bedaec40873b 100644 --- a/devel/electron34/files/patch-electron_spec_api-browser-window-spec.ts +++ b/devel/electron34/files/patch-electron_spec_api-browser-window-spec.ts @@ -1,4 +1,4 @@ ---- electron/spec/api-browser-window-spec.ts.orig 2025-05-01 14:56:40 UTC +--- electron/spec/api-browser-window-spec.ts.orig 2025-05-09 16:52:15 UTC +++ electron/spec/api-browser-window-spec.ts @@ -69,7 +69,7 @@ describe('BrowserWindow module', () => { }).not.to.throw(); @@ -162,7 +162,7 @@ const w = new BrowserWindow({ show: false }); expect(w.resizable).to.be.true('resizable'); -@@ -5429,7 +5429,7 @@ describe('BrowserWindow module', () => { +@@ -5480,7 +5480,7 @@ describe('BrowserWindow module', () => { }); }); diff --git a/devel/electron35/Makefile b/devel/electron35/Makefile index 9f74b17be003..053d88c03818 100644 --- a/devel/electron35/Makefile +++ b/devel/electron35/Makefile @@ -223,7 +223,7 @@ SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false # See ${WRKSRC}/electron/DEPS for CHROMIUM_VER CHROMIUM_VER= 134.0.6998.205 # See ${WRKSRC}/electron/DEPS for NODE_VER -NODE_VER= 22.14.0 +NODE_VER= 22.15.0 # See ${WRKSRC}/electron/DEPS for NAN_VER NAN_VER= e14bdcd1f72d62bca1d541b66da43130384ec213 # See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER diff --git a/devel/electron35/Makefile.version b/devel/electron35/Makefile.version index adea8a03d784..3ad9406cbbc9 100644 --- a/devel/electron35/Makefile.version +++ b/devel/electron35/Makefile.version @@ -1,2 +1,2 @@ -ELECTRON_VER= 35.3.0 +ELECTRON_VER= 35.4.0 ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron35/distinfo b/devel/electron35/distinfo index 0c73074fd4dc..8f325f983d00 100644 --- a/devel/electron35/distinfo +++ b/devel/electron35/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746917507 +TIMESTAMP = 1747311508 SHA256 (electron/chromium-134.0.6998.205.tar.xz.0) = 2de727120892e92fa40fed6c76104ed66dace4fe66ae3be0e055c51b913009e8 SIZE (electron/chromium-134.0.6998.205.tar.xz.0) = 2000000000 SHA256 (electron/chromium-134.0.6998.205.tar.xz.1) = 58024b9e01977a769576b4c2b3056c9d894a2c13b4f0729f0b8060b3984243c9 @@ -7,12 +7,12 @@ SHA256 (electron/chromium-134.0.6998.205.tar.xz.2) = 9631efe75d07b1f36799506e59b SIZE (electron/chromium-134.0.6998.205.tar.xz.2) = 171552128 SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111 -SHA256 (electron/electron-yarn-cache-35.3.0.tar.xz) = 74a26f89b93b0b1756c6ff7e961b278235f109dab500a252c60f4d4a82637e7f -SIZE (electron/electron-yarn-cache-35.3.0.tar.xz) = 29892244 -SHA256 (electron/electron-electron-v35.3.0_GH0.tar.gz) = d00d5368fb2783592eb1beb39281bf147f35da9c921fc5a21d884803a6a9b770 -SIZE (electron/electron-electron-v35.3.0_GH0.tar.gz) = 14762701 -SHA256 (electron/nodejs-node-v22.14.0_GH0.tar.gz) = ca1a2b5c0c7bc8343ccf1b4b6347a3cab093ed7ac642397189a15098105809c3 -SIZE (electron/nodejs-node-v22.14.0_GH0.tar.gz) = 121559746 +SHA256 (electron/electron-yarn-cache-35.4.0.tar.xz) = 74a26f89b93b0b1756c6ff7e961b278235f109dab500a252c60f4d4a82637e7f +SIZE (electron/electron-yarn-cache-35.4.0.tar.xz) = 29892244 +SHA256 (electron/electron-electron-v35.4.0_GH0.tar.gz) = 746f6d1c5fa917313e32cb3dcba5d5011c523fd6bb55319edb3df979715c82f2 +SIZE (electron/electron-electron-v35.4.0_GH0.tar.gz) = 14768269 +SHA256 (electron/nodejs-node-v22.15.0_GH0.tar.gz) = 4f2515e143ffd73f069916ecc5daf503e7a05166c0ae4f1c1f8afdc8ab2f8a82 +SIZE (electron/nodejs-node-v22.15.0_GH0.tar.gz) = 122833296 SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb SIZE (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 180646 SHA256 (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = f4ebb40a8d85dbb7ef02aa0571b2f8e22182c6d73b6992484a53c90047779d01 diff --git a/devel/electron35/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron35/files/patch-electron_shell_browser_native__window__views.cc index c0d887591946..c5d4c6cf8088 100644 --- a/devel/electron35/files/patch-electron_shell_browser_native__window__views.cc +++ b/devel/electron35/files/patch-electron_shell_browser_native__window__views.cc @@ -1,6 +1,6 @@ ---- electron/shell/browser/native_window_views.cc.orig 2025-05-06 23:52:46 UTC +--- electron/shell/browser/native_window_views.cc.orig 2025-05-13 12:56:52 UTC +++ electron/shell/browser/native_window_views.cc -@@ -50,7 +50,7 @@ +@@ -51,7 +51,7 @@ #include "ui/wm/core/shadow_types.h" #include "ui/wm/core/window_util.h" @@ -9,7 +9,7 @@ #include "base/strings/string_util.h" #include "shell/browser/browser.h" #include "shell/browser/linux/unity_service.h" -@@ -295,7 +295,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: +@@ -296,7 +296,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: params.parent = parent->GetNativeWindow(); params.native_widget = new ElectronDesktopNativeWidgetAura(this); @@ -18,7 +18,7 @@ std::string name = Browser::Get()->GetName(); // Set WM_WINDOW_ROLE. params.wm_role_name = "browser-window"; -@@ -321,7 +321,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: +@@ -322,7 +322,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: std::string window_type; options.Get(options::kType, &window_type); @@ -27,7 +27,7 @@ // Set _GTK_THEME_VARIANT to dark if we have "dark-theme" option set. bool use_dark_theme = false; if (options.Get(options::kDarkTheme, &use_dark_theme) && use_dark_theme) { -@@ -430,7 +430,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: +@@ -431,7 +431,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: if (window) window->AddPreTargetHandler(this); @@ -36,7 +36,7 @@ // On linux after the widget is initialized we might have to force set the // bounds if the bounds are smaller than the current display SetBounds(gfx::Rect(GetPosition(), bounds.size()), false); -@@ -466,7 +466,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us +@@ -467,7 +467,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us } void NativeWindowViews::SetGTKDarkThemeEnabled(bool use_dark_theme) { @@ -45,7 +45,7 @@ if (IsX11()) { const std::string color = use_dark_theme ? "dark" : "light"; auto* connection = x11::Connection::Get(); -@@ -528,7 +528,7 @@ void NativeWindowViews::Show() { +@@ -529,7 +529,7 @@ void NativeWindowViews::Show() { NotifyWindowShow(); @@ -54,7 +54,7 @@ if (global_menu_bar_) global_menu_bar_->OnWindowMapped(); -@@ -544,7 +544,7 @@ void NativeWindowViews::ShowInactive() { +@@ -545,7 +545,7 @@ void NativeWindowViews::ShowInactive() { NotifyWindowShow(); @@ -63,7 +63,7 @@ if (global_menu_bar_) global_menu_bar_->OnWindowMapped(); -@@ -563,7 +563,7 @@ void NativeWindowViews::Hide() { +@@ -564,7 +564,7 @@ void NativeWindowViews::Hide() { NotifyWindowHide(); @@ -72,7 +72,7 @@ if (global_menu_bar_) global_menu_bar_->OnWindowUnmapped(); #endif -@@ -594,7 +594,7 @@ bool NativeWindowViews::IsEnabled() const { +@@ -595,7 +595,7 @@ bool NativeWindowViews::IsEnabled() const { bool NativeWindowViews::IsEnabled() const { #if BUILDFLAG(IS_WIN) return ::IsWindowEnabled(GetAcceleratedWidget()); @@ -81,7 +81,7 @@ if (IsX11()) return !event_disabler_.get(); NOTIMPLEMENTED(); -@@ -844,7 +844,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou +@@ -845,7 +845,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou } #endif @@ -90,7 +90,7 @@ // On Linux and Windows the minimum and maximum size should be updated with // window size when window is not resizable. if (!resizable_) { -@@ -1102,7 +1102,7 @@ bool NativeWindowViews::IsClosable() const { +@@ -1103,7 +1103,7 @@ bool NativeWindowViews::IsClosable() const { return false; } return !(info.fState & MFS_DISABLED); @@ -99,7 +99,7 @@ return true; #endif } -@@ -1142,7 +1142,7 @@ void NativeWindowViews::Center() { +@@ -1143,7 +1143,7 @@ void NativeWindowViews::Center() { // for now to avoid breaking API contract, but should consider the long // term plan for this aligning with upstream. void NativeWindowViews::Center() { @@ -108,7 +108,7 @@ auto display = display::Screen::GetScreen()->GetDisplayNearestWindow(GetNativeWindow()); gfx::Rect window_bounds_in_screen = display.work_area(); -@@ -1365,7 +1365,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men +@@ -1367,7 +1367,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men } void NativeWindowViews::SetMenu(ElectronMenuModel* menu_model) { @@ -117,7 +117,7 @@ // Remove global menu bar. if (global_menu_bar_ && menu_model == nullptr) { global_menu_bar_.reset(); -@@ -1420,7 +1420,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow* +@@ -1422,7 +1422,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow* void NativeWindowViews::SetParentWindow(NativeWindow* parent) { NativeWindow::SetParentWindow(parent); @@ -126,7 +126,7 @@ if (IsX11()) { auto* connection = x11::Connection::Get(); connection->SetProperty( -@@ -1466,7 +1466,7 @@ void NativeWindowViews::SetProgressBar(double progress +@@ -1468,7 +1468,7 @@ void NativeWindowViews::SetProgressBar(double progress NativeWindow::ProgressState state) { #if BUILDFLAG(IS_WIN) taskbar_host_.SetProgressBar(GetAcceleratedWidget(), progress, state); @@ -135,7 +135,7 @@ if (unity::IsRunning()) { unity::SetProgressFraction(progress); } -@@ -1544,7 +1544,7 @@ bool NativeWindowViews::IsVisibleOnAllWorkspaces() con +@@ -1546,7 +1546,7 @@ bool NativeWindowViews::IsVisibleOnAllWorkspaces() con if (const auto* view_native_widget = widget()->native_widget_private()) return view_native_widget->IsVisibleOnAllWorkspaces(); @@ -144,7 +144,7 @@ if (IsX11()) { // Use the presence/absence of _NET_WM_STATE_STICKY in _NET_WM_STATE to // determine whether the current window is visible on all workspaces. -@@ -1567,7 +1567,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM +@@ -1569,7 +1569,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM #if BUILDFLAG(IS_WIN) window_handle = reinterpret_cast<content::DesktopMediaID::Id>(accelerated_widget); @@ -153,7 +153,7 @@ window_handle = static_cast<uint32_t>(accelerated_widget); #endif aura::WindowTreeHost* const host = -@@ -1665,7 +1665,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC +@@ -1667,7 +1667,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC SendMessage(hwnd, WM_SETICON, ICON_BIG, reinterpret_cast<LPARAM>(app_icon_.get())); } @@ -162,7 +162,7 @@ void NativeWindowViews::SetIcon(const gfx::ImageSkia& icon) { auto* tree_host = views::DesktopWindowTreeHostLinux::GetHostForWidget( GetAcceleratedWidget()); -@@ -1761,7 +1761,7 @@ bool NativeWindowViews::CanMinimize() const { +@@ -1763,7 +1763,7 @@ bool NativeWindowViews::CanMinimize() const { bool NativeWindowViews::CanMinimize() const { #if BUILDFLAG(IS_WIN) return minimizable_; @@ -171,7 +171,7 @@ return true; #endif } -@@ -1817,7 +1817,7 @@ void NativeWindowViews::HandleKeyboardEvent( +@@ -1819,7 +1819,7 @@ void NativeWindowViews::HandleKeyboardEvent( if (widget_destroyed_) return; @@ -180,7 +180,7 @@ if (event.windows_key_code == ui::VKEY_BROWSER_BACK) NotifyWindowExecuteAppCommand(kBrowserBackward); else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD) -@@ -1836,7 +1836,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e +@@ -1838,7 +1838,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e // Alt+Click should not toggle menu bar. root_view_.ResetAltState(); diff --git a/devel/electron35/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron35/files/patch-electron_spec_api-browser-window-spec.ts index 35a58fabd5cf..5de2e6e8c6d7 100644 --- a/devel/electron35/files/patch-electron_spec_api-browser-window-spec.ts +++ b/devel/electron35/files/patch-electron_spec_api-browser-window-spec.ts @@ -1,4 +1,4 @@ ---- electron/spec/api-browser-window-spec.ts.orig 2025-05-06 23:52:46 UTC +--- electron/spec/api-browser-window-spec.ts.orig 2025-05-13 12:56:52 UTC +++ electron/spec/api-browser-window-spec.ts @@ -69,7 +69,7 @@ describe('BrowserWindow module', () => { }).not.to.throw(); @@ -162,7 +162,7 @@ const w = new BrowserWindow({ show: false }); expect(w.resizable).to.be.true('resizable'); -@@ -5429,7 +5429,7 @@ describe('BrowserWindow module', () => { +@@ -5480,7 +5480,7 @@ describe('BrowserWindow module', () => { }); }); diff --git a/devel/electron35/files/patch-ui_gfx_x_atom__cache.cc b/devel/electron35/files/patch-ui_gfx_x_atom__cache.cc index 63790e9c9a27..4e8b2af8ab90 100644 --- a/devel/electron35/files/patch-ui_gfx_x_atom__cache.cc +++ b/devel/electron35/files/patch-ui_gfx_x_atom__cache.cc @@ -1,6 +1,6 @@ ---- ui/gfx/x/atom_cache.cc.orig 2025-01-27 17:37:37 UTC +--- ui/gfx/x/atom_cache.cc.orig 2025-05-15 12:22:59 UTC +++ ui/gfx/x/atom_cache.cc -@@ -155,6 +155,7 @@ constexpr auto kAtomsToCache = std::to_array<const cha +@@ -156,6 +156,7 @@ constexpr auto kAtomsToCache = std::to_array<const cha "application/octet-stream", "application/vnd.chromium.test", "chromium/filename", diff --git a/devel/electron35/files/patch-ui_ozone_platform_x11_x11__window.cc b/devel/electron35/files/patch-ui_ozone_platform_x11_x11__window.cc index 9899581d8db2..d0d4846780cb 100644 --- a/devel/electron35/files/patch-ui_ozone_platform_x11_x11__window.cc +++ b/devel/electron35/files/patch-ui_ozone_platform_x11_x11__window.cc @@ -1,6 +1,6 @@ ---- ui/ozone/platform/x11/x11_window.cc.orig 2025-01-27 17:37:37 UTC +--- ui/ozone/platform/x11/x11_window.cc.orig 2025-05-15 12:22:59 UTC +++ ui/ozone/platform/x11/x11_window.cc -@@ -1502,7 +1502,7 @@ void X11Window::OnXWindowStateChanged() { +@@ -1509,7 +1509,7 @@ void X11Window::OnXWindowStateChanged() { WindowTiledEdges tiled_state = GetTiledState(); if (tiled_state != tiled_state_) { tiled_state_ = tiled_state; diff --git a/devel/electron35/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc b/devel/electron35/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc index 69891b8bc56a..2b89e9b60d12 100644 --- a/devel/electron35/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc +++ b/devel/electron35/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc @@ -1,4 +1,4 @@ ---- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2025-03-24 20:50:14 UTC +--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2025-05-15 12:22:59 UTC +++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc @@ -50,7 +50,7 @@ #include "ui/wm/core/window_util.h" @@ -18,7 +18,7 @@ std::make_unique<DesktopDragDropClientOzoneLinux>(window(), drag_handler); #else std::make_unique<DesktopDragDropClientOzone>(window(), drag_handler); -@@ -1174,7 +1174,7 @@ bool DesktopWindowTreeHostPlatform::RotateFocusForWidg +@@ -1179,7 +1179,7 @@ bool DesktopWindowTreeHostPlatform::RotateFocusForWidg // DesktopWindowTreeHost: // Linux subclasses this host and adds some Linux specific bits. diff --git a/devel/electron35/files/patch-ui_views_widget_widget.cc b/devel/electron35/files/patch-ui_views_widget_widget.cc index bda30113f082..a7ef80a3b525 100644 --- a/devel/electron35/files/patch-ui_views_widget_widget.cc +++ b/devel/electron35/files/patch-ui_views_widget_widget.cc @@ -1,4 +1,4 @@ ---- ui/views/widget/widget.cc.orig 2025-03-24 20:50:14 UTC +--- ui/views/widget/widget.cc.orig 2025-05-15 12:22:59 UTC +++ ui/views/widget/widget.cc @@ -63,7 +63,7 @@ #include "ui/views/window/custom_frame_view.h" @@ -9,7 +9,7 @@ #include "ui/linux/linux_ui.h" #endif -@@ -2444,7 +2444,7 @@ const ui::NativeTheme* Widget::GetNativeTheme() const +@@ -2450,7 +2450,7 @@ const ui::NativeTheme* Widget::GetNativeTheme() const return parent_->GetNativeTheme(); } diff --git a/devel/electron36/Makefile b/devel/electron36/Makefile new file mode 100644 index 000000000000..6c2448fa713b --- /dev/null +++ b/devel/electron36/Makefile @@ -0,0 +1,449 @@ +PORTNAME= electron +DISTVERSIONPREFIX= v +DISTVERSION= ${ELECTRON_VER} +PULSEMV= 16 +PULSEV= ${PULSEMV}.1 +CATEGORIES= devel +MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/:chromium \ + https://freedesktop.org/software/pulseaudio/releases/:pulseaudio +PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR} +DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \ + pulseaudio-${PULSEV}.tar.gz:pulseaudio \ + electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch +DIST_SUBDIR= ${PORTNAME} + +MAINTAINER= tagattie@FreeBSD.org +COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS +WWW= https://electronjs.org/ + +LICENSE= BSD3CLAUSE LGPL21 MPL11 MIT +LICENSE_COMB= multi +LICENSE_FILE= ${WRKSRC}/electron/LICENSE + +ONLY_FOR_ARCHS= aarch64 amd64 i386 + +FETCH_DEPENDS= yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} +EXTRACT_DEPENDS=yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} +PATCH_DEPENDS= git:devel/git \ + jq:textproc/jq +BUILD_DEPENDS= gperf:devel/gperf \ + bindgen:devel/rust-bindgen-cli \ + yasm:devel/yasm \ + ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \ + rustc:lang/rust \ + ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ + node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \ + npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} +LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ + libatspi.so:accessibility/at-spi2-core \ + libFLAC.so:audio/flac \ + libopus.so:audio/opus \ + libdbus-1.so:devel/dbus \ + libicuuc.so:devel/icu \ + libepoll-shim.so:devel/libepoll-shim \ + libevent.so:devel/libevent \ + libffi.so:devel/libffi \ + libnotify.so:devel/libnotify \ + libpci.so:devel/libpci \ + libnspr4.so:devel/nspr \ + libre2.so:devel/re2 \ + libdrm.so:graphics/libdrm \ + libpng.so:graphics/png \ + libwayland-client.so:graphics/wayland \ + libwebp.so:graphics/webp \ + libdav1d.so:multimedia/dav1d \ + libva.so:multimedia/libva \ + libopenh264.so:multimedia/openh264 \ + libfreetype.so:print/freetype2 \ + libharfbuzz.so:print/harfbuzz \ + libsecret-1.so:security/libsecret \ + libnss3.so:security/nss \ + libexpat.so:textproc/expat2 \ + libxkbcommon.so:x11/libxkbcommon \ + libxshmfence.so:x11/libxshmfence \ + libfontconfig.so:x11-fonts/fontconfig +RUN_DEPENDS= xdg-open:devel/xdg-utils +TEST_DEPENDS= git:devel/git \ + ${PYTHON_PKGNAMEPREFIX}python-dbusmock>0:devel/py-python-dbusmock@${PY_FLAVOR} \ + npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} + +USES= bison compiler:c++17-lang cpe gettext-tools gl gmake gnome \ + iconv:wchar_t jpeg localbase:ldflags ninja nodejs:22,build \ + pkgconfig python:build,test shebangfix tar:xz xorg + +CPE_VENDOR= electronjs +USE_GITHUB= yes +GH_TUPLE= nodejs:node:v${NODE_VER}:node \ + nodejs:nan:${NAN_VER}:nan \ + Squirrel:Squirrel.Mac:${SQUIRREL_MAC_VER}:squirrel_mac \ + ReactiveCocoa:ReactiveObjC:${REACTIVEOBJC_VER}:reactiveobjc \ + Mantle:Mantle:${MANTLE_VER}:mantle \ + EngFlow:reclient-configs:${ENGFLOW_RECLIENT_CONFIGS_VER}:reclient_configs +USE_GL= gbm gl glesv2 +USE_GNOME= atk cairo gdkpixbuf gtk30 libxml2 libxslt pango +USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \ + xrender xscrnsaver xtst + +SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format + +MAKE_ARGS= -C out/${BUILDTYPE} +MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ + CPLUS_INCLUDE_PATH=${LOCALBASE}/include +ALL_TARGET= electron electron:node_headers +POST_BUILD_TARGETS= licenses version +POST_BUILD_DIST_TARGETS=electron_dist_zip electron_chromedriver_zip \ + electron_mksnapshot_zip + +DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} +BINARY_ALIAS= python3=${PYTHON_CMD} +BUNDLE_LIBS= yes + +NO_WRKSUBDIR= yes +WRKSRC_SUBDIR= src + +GN_ARGS+= clang_use_chrome_plugins=false \ + enable_backup_ref_ptr_support=false \ + enable_hangout_services_extension=true \ + enable_nacl=false \ + enable_remoting=false \ + fatal_linker_warnings=false \ + icu_use_data_file=false \ + is_clang=true \ + optimize_webui=true \ + toolkit_views=true \ + treat_warnings_as_errors=false \ + use_allocator_shim=false \ + use_aura=true \ + use_custom_libcxx=true \ + use_custom_libunwind=true \ + use_lld=true \ + use_partition_alloc=true \ + use_partition_alloc_as_malloc=false \ + use_sysroot=false \ + use_system_freetype=false \ + use_system_harfbuzz=true \ + use_system_libffi=true \ + use_system_libjpeg=true \ + use_udev=false \ + chrome_pgo_phase=0 \ + extra_cflags="${CFLAGS}" \ + extra_cxxflags="${CXXFLAGS} -I${LOCALBASE}/include/libepoll-shim ${PINCLUDES}" \ + extra_ldflags="${LDFLAGS}" \ + ffmpeg_branding="${FFMPEG_BRAND}" \ + override_electron_version="${ELECTRON_VER}" + +# TODO: investigate building with these options: +# use_system_minigbm +GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles + +PLIST_SUB= ELECTRON_VER=${ELECTRON_VER} \ + ELECTRON_VER_MAJOR=${ELECTRON_VER_MAJOR} + +OPTIONS_DEFINE= CODECS CUPS DEBUG DIST DRIVER KERBEROS LTO PIPEWIRE +OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS PIPEWIRE ALSA PULSEAUDIO SNDIO +OPTIONS_EXCLUDE_aarch64=LTO +OPTIONS_GROUP= AUDIO +OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO +OPTIONS_RADIO= KERBEROS +OPTIONS_RADIO_KERBEROS= HEIMDAL HEIMDAL_BASE MIT +OPTIONS_SUB= yes +CODECS_DESC= Compile and enable patented codecs like H.264 +DIST_DESC= Build distribution zip files +DRIVER_DESC= Install chromedriver +HEIMDAL_BASE_DESC= Heimdal Kerberos (base) +HEIMDAL_DESC= Heimdal Kerberos (security/heimdal) +MIT_DESC= MIT Kerberos (security/krb5) +PIPEWIRE_DESC= Screen capture via PipeWire + +ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib +ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \ + alsa-lib>=1.1.1_1:audio/alsa-lib +ALSA_VARS= GN_ARGS+=use_alsa=true +ALSA_VARS_OFF= GN_ARGS+=use_alsa=false + +CODECS_VARS= GN_ARGS+=proprietary_codecs=true \ + FFMPEG_BRAND="Chrome" +CODECS_VARS_OFF= GN_ARGS+=proprietary_codecs=false \ + FFMPEG_BRAND="Chromium" + +CUPS_LIB_DEPENDS= libcups.so:print/cups +CUPS_VARS= GN_ARGS+=use_cups=true +CUPS_VARS_OFF= GN_ARGS+=use_cups=false + +DEBUG_BUILD_DEPENDS= esbuild:devel/esbuild +DEBUG_MAKE_ENV= ELECTRON_OUT_DIR=Debug +DEBUG_MAKE_ENV_OFF= ELECTRON_OUT_DIR=Release +DEBUG_VARS= BUILDTYPE=Debug \ + GN_FILE=testing.gn \ + GN_ARGS+=is_debug=true \ + GN_ARGS+=is_component_build=false \ + GN_ARGS+=symbol_level=1 \ + GN_BOOTSTRAP_FLAGS+=--debug \ + WANTSPACE="21 GB" +DEBUG_VARS_OFF= BUILDTYPE=Release \ + GN_FILE=release.gn \ + GN_ARGS+=blink_symbol_level=0 \ + GN_ARGS+=is_debug=false \ + GN_ARGS+=is_official_build=true \ + GN_ARGS+=symbol_level=0 \ + WANTSPACE="14 GB" + +DIST_IMPLIES= DRIVER +DRIVER_MAKE_ARGS= chromedriver + +HEIMDAL_LIB_DEPENDS= libkrb5.so.26:security/heimdal +KERBEROS_VARS= GN_ARGS+=use_kerberos=true +KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false + +LTO_VARS= GN_ARGS+=use_thin_lto=true \ + GN_ARGS+=thin_lto_enable_optimizations=true \ + WANTSPACE="14 GB" +LTO_VARS_OFF= GN_ARGS+=use_thin_lto=false + +MIT_LIB_DEPENDS= libkrb5.so.3:security/krb5 + +PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire +PIPEWIRE_VARS= GN_ARGS+=rtc_use_pipewire=true \ + GN_ARGS+=rtc_link_pipewire=true +PIPEWIRE_VARS_OFF= GN_ARGS+=rtc_use_pipewire=false \ + GN_ARGS+=rtc_link_pipewire=false + +PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true \ + PINCLUDES="-I${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/pulseaudio-${PULSEV}/src -DPA_MAJOR=${PULSEMV}" +PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false + +SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio +SNDIO_VARS= GN_ARGS+=use_sndio=true +SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false + +# See ${WRKSRC}/electron/DEPS for CHROMIUM_VER +CHROMIUM_VER= 136.0.7103.93 +# See ${WRKSRC}/electron/DEPS for NODE_VER +NODE_VER= 22.15.0 +# See ${WRKSRC}/electron/DEPS for NAN_VER +NAN_VER= e14bdcd1f72d62bca1d541b66da43130384ec213 +# See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER +SQUIRREL_MAC_VER= 0e5d146ba13101a1302d59ea6e6e0b3cace4ae38 +# See ${WRKSRC}/electron/DEPS for REACTIVEOBJC_VER +REACTIVEOBJC_VER= 74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76 +# See ${WRKSRC}/electron/DEPS for MANTLE_VER +MANTLE_VER= 78d3966b3c331292ea29ec38661b25df0a245948 +# See ${WRKSRC}/electron/DEPS for ENGFLOW_RECLIENT_CONFIGS_VER +ENGFLOW_RECLIENT_CONFIGS_VER= 955335c30a752e9ef7bff375baab5e0819b6c00d + +YARN_TIMESTAMP= 61171200 + +.include "Makefile.version" +.include <bsd.port.pre.mk> + +.if ${PORT_OPTIONS:MHEIMDAL_BASE} && !exists(/usr/lib/libkrb5.so) +IGNORE= you have selected HEIMDAL_BASE but do not have Heimdal installed in base +.endif + +LLVM_DEFAULT= 19 +BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} +BINARY_ALIAS+= cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \ + cc=${LOCALBASE}/bin/clang${LLVM_DEFAULT} \ + c++=${LOCALBASE}/bin/clang++${LLVM_DEFAULT} \ + ar=${LOCALBASE}/bin/llvm-ar${LLVM_DEFAULT} \ + nm=${LOCALBASE}/bin/llvm-nm${LLVM_DEFAULT} \ + ld=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} +CFLAGS+= -Wno-error=implicit-function-declaration + +.if ${ARCH} == "aarch64" +PLIST_SUB+= AARCH64="" \ + AMD64="@comment " \ + I386="@comment " \ + NOT_AARCH64="@comment " +FFMPEG_TARGET= arm64 +.elif ${ARCH} == "amd64" +BUILD_DEPENDS+= nasm:devel/nasm +PLIST_SUB+= AARCH64="@comment " \ + AMD64="" \ + I386="@comment " \ + NOT_AARCH64="" +FFMPEG_TARGET= x64 +.elif ${ARCH} == "i386" +BUILD_DEPENDS+= nasm:devel/nasm +PLIST_SUB+= AARCH64="@comment " \ + AMD64="@comment " \ + I386="" \ + NOT_AARCH64="" +FFMPEG_TARGET= ia32 +.endif + +FFMPEG_BDIR= ${WRKSRC}/third_party/ffmpeg/build.${FFMPEG_TARGET}.freebsd/${FFMPEG_BRAND} +FFMPEG_CDIR= ${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/freebsd/${FFMPEG_TARGET} + +# Allow relocations against read-only segments (override lld default) +LDFLAGS_i386= -Wl,-znotext + +# TODO: -isystem, would be just as ugly as this approach, but more reliably +# build would fail without C_INCLUDE_PATH/CPLUS_INCLUDE_PATH env var set. +MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ + CPLUS_INCLUDE_PATH=${LOCALBASE}/include + +# rust +RUSTC_VERSION!= rustc -V 2>/dev/null || true +MAKE_ENV+= RUSTC_BOOTSTRAP=1 +GN_ARGS+= enable_rust=true \ + rust_sysroot_absolute="${LOCALBASE}" \ + rustc_version="${RUSTC_VERSION}" + +pre-everything:: + @${ECHO_MSG} + @${ECHO_MSG} "To build electron, you should have around 2GB of memory" + @${ECHO_MSG} "and around ${WANTSPACE} of free disk space." + @${ECHO_MSG} + +pre-fetch: + @${MKDIR} ${DISTDIR}/${DIST_SUBDIR} + if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} ]; \ + then ${MKDIR} ${WRKDIR}; \ + ${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \ + ${WRKDIR}/.yarnrc; \ + ${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \ + cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \ + yarn --frozen-lockfile --ignore-scripts; \ + ${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \ + -e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \ + -e 's:\([gu]id\)=[0-9]*:\1=0:g' \ + -e 's:mode=\([0-9]\)7[0-9][0-9]:mode=\1755:' \ + -e 's:mode=\([0-9]\)6[0-9][0-9]:mode=\1644:' \ + -e 's:flags=.*:flags=none:' \ + -e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \ + ${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} \ + @yarn-offline-cache.mtree; \ + ${RM} -r ${WRKDIR}; \ + fi + +post-extract: +# Move extracted sources to appropriate locations + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_VER} ${WRKSRC} + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${PORTNAME}-${ELECTRON_VER} ${WRKSRC}/electron + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_nan}-${NAN_VER} \ + ${WRKSRC}/third_party/nan + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_node}-${NODE_VER} \ + ${WRKSRC}/third_party/electron_node + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_squirrel_mac}-${SQUIRREL_MAC_VER} \ + ${WRKSRC}/third_party/squirrel.mac + ${MKDIR} ${WRKSRC}/third_party/squirrel.mac/vendor + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reactiveobjc}-${REACTIVEOBJC_VER} \ + ${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_mantle}-${MANTLE_VER} \ + ${WRKSRC}/third_party/squirrel.mac/vendor/Mantle + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reclient_configs}-${ENGFLOW_RECLIENT_CONFIGS_VER} \ + ${WRKSRC}/third_party/engflow-reclient-configs +# Install node modules for electron + ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/yarn-offline-cache ${WRKDIR} + ${ECHO_CMD} 'yarn-offline-mirror "../../../yarn-offline-cache"' >> ${WRKSRC}/electron/.yarnrc + ${MV} ${WRKSRC}/electron/package.json ${WRKSRC}/electron/package.json.bak + ${CP} ${FILESDIR}/package.json ${WRKSRC}/electron + cd ${WRKSRC}/electron && \ + ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache yarn --frozen-lockfile --offline + +pre-patch: + ${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC} + # ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete + # ${FIND} ${WRKSRC} -type f -name '*~' -print -delete + +pre-configure: + # We used to remove bundled libraries to be sure that chromium uses + # system libraries and not shipped ones. + # cd ${WRKSRC} && ${PYTHON_CMD} \ + #./build/linux/unbundle/remove_bundled_libraries.py [list of preserved] + cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \ + ./build/linux/unbundle/replace_gn_files.py --system-libraries \ + dav1d flac fontconfig harfbuzz-ng libdrm libpng \ + libusb libwebp libxml libxslt openh264 opus || ${FALSE} + # Chromium uses an unreleased version of FFmpeg, so configure it + cd ${WRKSRC}/media/ffmpeg && \ + ${PYTHON_CMD} scripts/build_ffmpeg.py freebsd ${FFMPEG_TARGET} \ + --config-only --branding=${FFMPEG_BRAND} + cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h + ${MKDIR} ${FFMPEG_CDIR} +.for _e in config.h config.asm config_components.h libavcodec libavformat libavutil + -${CP} -pR ${FFMPEG_BDIR}/${_e} ${FFMPEG_CDIR} +.endfor + touch ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/pulseaudio-${PULSEV}/src/pulse/version.h + @${REINPLACE_CMD} -e 's|$${LOCALBASE}|${LOCALBASE}|;s|$${MODCLANG_VERSION}|${LLVM_DEFAULT}|' \ + ${WRKSRC}/build/rust/rust_bindgen.gni \ + ${WRKSRC}/build/rust/rust_bindgen_generator.gni + +do-configure: + # GN generator bootstrapping and generating ninja files + cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \ + READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \ + ./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS} + cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn gen out/${BUILDTYPE} \ + --args='import("//electron/build/args/${GN_FILE}") ${GN_ARGS}' + + # Make GN available to python scripts called during build + ${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKDIR}/.bin + + # Setup nodejs dependency + @${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin + ${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin/node + + # Setup buildtools/freebsd + @${MKDIR} ${WRKSRC}/buildtools/freebsd + ${LN} -sf ${WRKSRC}/buildtools/linux64/clang-format ${WRKSRC}/buildtools/freebsd + ${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKSRC}/buildtools/freebsd + ${LN} -sf /usr/bin/strip ${WRKSRC}/buildtools/freebsd/strip + +post-build: + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ + ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_TARGETS} + +post-build-DIST-on: + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ + ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_DIST_TARGETS} + cd ${WRKSRC}/out/${BUILDTYPE} && \ + ${CP} chromedriver.zip chromedriver-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ + ${CP} dist.zip electron-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ + ${CP} mksnapshot.zip mksnapshot-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ + ${SHA256} -r *-v${ELECTRON_VER}-freebsd-*.zip | ${SED} -e 's/ / */' > SHASUMS256.txt + +do-install: + ${MKDIR} ${STAGEDIR}${DATADIR} +.for f in electron mksnapshot v8_context_snapshot_generator + ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} +.endfor +.for f in libEGL.so libGLESv2.so libffmpeg.so libvk_swiftshader.so + ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} +.endfor + ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvulkan.so.1 ${STAGEDIR}${DATADIR}/libvulkan.so +.for f in LICENSE LICENSES.chromium.html snapshot_blob.bin v8_context_snapshot.bin version vk_swiftshader_icd.json + ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} +.endfor +.for f in chrome_100_percent.pak chrome_200_percent.pak resources.pak + ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} +.endfor + ${MKDIR} ${STAGEDIR}${DATADIR}/locales + ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/locales/*.pak ${STAGEDIR}${DATADIR}/locales + ${MKDIR} ${STAGEDIR}${DATADIR}/resources +.for f in default_app.asar + ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/resources/${f} ${STAGEDIR}${DATADIR}/resources +.endfor + cd ${WRKSRC}/out/${BUILDTYPE}/gen && ${COPYTREE_SHARE} node_headers ${STAGEDIR}${DATADIR} + cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/electron/buildflags ${STAGEDIR}${DATADIR} + cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/v8/embedded.S ${STAGEDIR}${DATADIR} + ${RLN} ${STAGEDIR}${DATADIR}/electron ${STAGEDIR}${PREFIX}/bin/electron${PKGNAMESUFFIX} + +post-install-DIST-on: + ${MKDIR} ${STAGEDIR}${DATADIR}/releases + ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/SHASUMS256.txt ${STAGEDIR}${DATADIR}/releases + ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*-v${ELECTRON_VER}-freebsd-*.zip ${STAGEDIR}${DATADIR}/releases + +post-install-DRIVER-on: + ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver.unstripped \ + ${STAGEDIR}${DATADIR}/chromedriver + +do-test: +# Note 1: "npm install" will run before actual tests are executed +# Note 2: Xvfb or something similar is necessary for headless testing + cd ${WRKSRC}/electron && \ + ${SETENV} ${TEST_ENV} ELECTRON_OUT_DIR=${BUILDTYPE} LOCAL_GIT_DIRECTORY=${LOCALBASE} \ + npm run test -- --ci + +.include <bsd.port.post.mk> diff --git a/devel/electron36/Makefile.version b/devel/electron36/Makefile.version new file mode 100644 index 000000000000..75b5187e0b95 --- /dev/null +++ b/devel/electron36/Makefile.version @@ -0,0 +1,2 @@ +ELECTRON_VER= 36.2.1 +ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron36/distinfo b/devel/electron36/distinfo new file mode 100644 index 000000000000..c0927717143b --- /dev/null +++ b/devel/electron36/distinfo @@ -0,0 +1,21 @@ +TIMESTAMP = 1747316807 +SHA256 (electron/chromium-136.0.7103.93.tar.xz) = db98c44d9e47325b79b0aa24885d41e42ed6254973c34ee85f197a510a42f54b +SIZE (electron/chromium-136.0.7103.93.tar.xz) = 7189003340 +SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 +SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111 +SHA256 (electron/electron-yarn-cache-36.2.1.tar.xz) = 95bd287084ffb970f023ff11d8700b543db04a4fb7ccc4692420d2e7ac46f7f5 +SIZE (electron/electron-yarn-cache-36.2.1.tar.xz) = 29892300 +SHA256 (electron/electron-electron-v36.2.1_GH0.tar.gz) = 1336a88dd5fbc49c34939de5eb95000bf4e36400274d59e48d7ee38b45b07090 +SIZE (electron/electron-electron-v36.2.1_GH0.tar.gz) = 15777294 +SHA256 (electron/nodejs-node-v22.15.0_GH0.tar.gz) = 4f2515e143ffd73f069916ecc5daf503e7a05166c0ae4f1c1f8afdc8ab2f8a82 +SIZE (electron/nodejs-node-v22.15.0_GH0.tar.gz) = 122833296 +SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb +SIZE (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 180646 +SHA256 (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = f4ebb40a8d85dbb7ef02aa0571b2f8e22182c6d73b6992484a53c90047779d01 +SIZE (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = 2112918 +SHA256 (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 88e65f116c7a06fccedb43970fba63080a57a4e5dc29147d2cdfe1ee58dd0546 +SIZE (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 1136238 +SHA256 (electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz) = a365df6d83e0be3cc000b70bd39734d80c28f0d9983ebe44698337a2ca464bb1 +SIZE (electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz) = 62962 +SHA256 (electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz) = c148f76220fc41a89ffeaf370c2cc175577be184688b12aa6fec5f8ac6c714c4 +SIZE (electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz) = 13014 diff --git a/devel/electron36/files/apply-electron-patches.sh b/devel/electron36/files/apply-electron-patches.sh new file mode 100644 index 000000000000..367de24e9a71 --- /dev/null +++ b/devel/electron36/files/apply-electron-patches.sh @@ -0,0 +1,26 @@ +#! /bin/sh + +PATH=/bin:/usr/bin:/usr/local/bin + +GIT_CMD="git" +PATCH_CMD="${GIT_CMD} apply" +#PATCH_FLAGS="--numstat --check" # for debugging +PATCH_FLAGS="--verbose --reject" + +WRKSRC=$1 +PATCH_CONF=${WRKSRC}/electron/patches/config.json + +${GIT_CMD} status "${WRKSRC}" > /dev/null 2>&1 && IS_GIT_REPO=1 + +PATCHD_REPOD_PAIRS=$(jq -r '.[] | .patch_dir + ":" + .repo' "${PATCH_CONF}") +for prp in ${PATCHD_REPOD_PAIRS}; do + pd=$(echo "${prp}" | awk -F: '{print $1}' | sed -e 's/src/./') + rd=$(echo "${prp}" | awk -F: '{print $2}' | sed -e 's/src/./') + (cd "${WRKSRC}/${rd}" && \ + if [ -n "${IS_GIT_REPO}" ]; then + PATCH_FLAGS="${PATCH_FLAGS} --directory=$(${GIT_CMD} rev-parse --show-prefix)" + fi && \ + while read -r p; do + ${PATCH_CMD} ${PATCH_FLAGS} "${WRKSRC}/${pd}/${p}" + done < "${WRKSRC}/${pd}/.patches") +done diff --git a/devel/electron36/files/package.json b/devel/electron36/files/package.json new file mode 100644 index 000000000000..3891c1f11d86 --- /dev/null +++ b/devel/electron36/files/package.json @@ -0,0 +1,141 @@ +{ + "name": "electron", + "version": "0.0.0-development", + "repository": "https://github.com/electron/electron", + "description": "Build cross platform desktop apps with JavaScript, HTML, and CSS", + "devDependencies": { + "@azure/storage-blob": "^12.25.0", + "@electron/asar": "^3.2.13", + "@electron/docs-parser": "^2.0.0", + "@electron/fiddle-core": "^1.3.4", + "@electron/github-app-auth": "^2.2.1", + "@electron/lint-roller": "^2.4.0", + "@electron/typescript-definitions": "^9.1.2", + "@octokit/rest": "^20.0.2", + "@primer/octicons": "^10.0.0", + "@types/minimist": "^1.2.5", + "@types/node": "^22.7.7", + "@types/semver": "^7.5.8", + "@types/stream-json": "^1.7.7", + "@types/temp": "^0.9.4", + "@types/webpack": "^5.28.5", + "@types/webpack-env": "^1.18.5", + "@typescript-eslint/eslint-plugin": "^8.7.0", + "@typescript-eslint/parser": "^8.7.0", + "buffer": "^6.0.3", + "chalk": "^4.1.0", + "check-for-leaks": "^1.2.1", + "dugite": "^2.7.1", + "eslint": "^8.57.1", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-mocha": "^10.5.0", + "eslint-plugin-n": "^16.6.2", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^6.6.0", + "eslint-plugin-standard": "^5.0.0", + "eslint-plugin-unicorn": "^55.0.0", + "events": "^3.2.0", + "folder-hash": "^2.1.1", + "got": "^11.8.5", + "husky": "^8.0.1", + "lint-staged": "^10.2.11", + "markdownlint-cli2": "^0.13.0", + "minimist": "^1.2.8", + "null-loader": "^4.0.1", + "pre-flight": "^2.0.0", + "process": "^0.11.10", + "remark-cli": "^12.0.1", + "remark-preset-lint-markdown-style-guide": "^4.0.0", + "semver": "^7.6.3", + "shx": "^0.3.4", + "stream-json": "^1.8.0", + "tap-xunit": "^2.4.1", + "temp": "^0.9.4", + "timers-browserify": "1.4.2", + "ts-loader": "^8.0.2", + "ts-node": "6.2.0", + "typescript": "^5.6.2", + "url": "^0.11.4", + "webpack": "^5.95.0", + "webpack-cli": "^5.1.4", + "wrapper-webpack-plugin": "^2.2.0" + }, + "private": true, + "scripts": { + "asar": "asar", + "generate-version-json": "node script/generate-version-json.js", + "lint": "node ./script/lint.js && npm run lint:docs", + "lint:js": "node ./script/lint.js --js", + "lint:clang-format": "python3 script/run-clang-format.py -r -c shell/ || (echo \"\\nCode not formatted correctly.\" && exit 1)", + "lint:clang-tidy": "ts-node ./script/run-clang-tidy.ts", + "lint:cpp": "node ./script/lint.js --cc", + "lint:objc": "node ./script/lint.js --objc", + "lint:py": "node ./script/lint.js --py", + "lint:gn": "node ./script/lint.js --gn", + "lint:docs": "remark docs -qf && npm run lint:js-in-markdown && npm run create-typescript-definitions && npm run lint:ts-check-js-in-markdown && npm run lint:docs-fiddles && npm run lint:docs-relative-links && npm run lint:markdown && npm run lint:api-history", + "lint:docs-fiddles": "standard \"docs/fiddles/**/*.js\"", + "lint:docs-relative-links": "lint-roller-markdown-links --root docs \"**/*.md\"", + "lint:markdown": "node ./script/lint.js --md", + "lint:ts-check-js-in-markdown": "lint-roller-markdown-ts-check --root docs \"**/*.md\" --ignore \"breaking-changes.md\"", + "lint:js-in-markdown": "lint-roller-markdown-standard --root docs \"**/*.md\"", + "lint:api-history": "lint-roller-markdown-api-history --root \"./docs/api/\" --schema \"./docs/api-history.schema.json\" --breaking-changes-file \"./docs/breaking-changes.md\" --check-placement --check-strings \"*.md\"", + "create-api-json": "node script/create-api-json.mjs", + "create-typescript-definitions": "npm run create-api-json && electron-typescript-definitions --api=electron-api.json && node spec/ts-smoke/runner.js", + "gn-typescript-definitions": "npm run create-typescript-definitions && shx cp electron.d.ts", + "pre-flight": "pre-flight", + "gn-check": "node ./script/gn-check.js", + "gn-format": "python3 script/run-gn-format.py", + "precommit": "lint-staged", + "preinstall": "node -e 'process.exit(0)'", + "pretest": "npm run create-typescript-definitions", + "prepack": "check-for-leaks", + "repl": "node ./script/start.js --interactive", + "start": "node ./script/start.js", + "test": "node ./script/spec-runner.js", + "tsc": "tsc", + "webpack": "webpack" + }, + "license": "MIT", + "author": "Electron Community", + "keywords": [ + "electron" + ], + "lint-staged": { + "*.{js,ts}": [ + "node script/lint.js --js --fix --only --" + ], + "*.{js,ts,d.ts}": [ + "ts-node script/gen-filenames.ts" + ], + "*.{cc,mm,c,h}": [ + "python3 script/run-clang-format.py -r -c --fix" + ], + "*.md": [ + "npm run lint:docs" + ], + "*.{gn,gni}": [ + "npm run gn-check", + "npm run gn-format" + ], + "*.py": [ + "node script/lint.js --py --fix --only --" + ], + "docs/api/**/*.md": [ + "ts-node script/gen-filenames.ts", + "markdownlint-cli2 --config .autofix.markdownlint-cli2.jsonc --fix", + "git add filenames.auto.gni" + ], + "{*.patch,.patches}": [ + "node script/lint.js --patches --only --", + "ts-node script/check-patch-diff.ts" + ], + "DEPS": [ + "node script/gen-hunspell-filenames.js", + "node script/gen-libc++-filenames.js" + ] + }, + "resolutions": { + "nan": "nodejs/nan#e14bdcd1f72d62bca1d541b66da43130384ec213" + } +} diff --git a/devel/electron36/files/patch-BUILD.gn b/devel/electron36/files/patch-BUILD.gn new file mode 100644 index 000000000000..6d04ab4589b7 --- /dev/null +++ b/devel/electron36/files/patch-BUILD.gn @@ -0,0 +1,98 @@ +--- BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ BUILD.gn +@@ -71,7 +71,7 @@ declare_args() { + root_extra_deps = [] + } + +-if (is_official_build) { ++if (is_official_build && !is_bsd) { + # An official (maximally optimized!) component (optimized for build times) + # build doesn't make sense and usually doesn't work. + assert(!is_component_build) +@@ -103,7 +103,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", +@@ -449,7 +448,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", +@@ -636,6 +635,15 @@ group("gn_all") { + } + } + ++ if (is_bsd) { ++ deps -= [ ++ "//third_party/breakpad:dump_syms($host_system_allocator_toolchain)", ++ "//third_party/breakpad:microdump_stackwalk($host_system_allocator_toolchain)", ++ "//third_party/breakpad:minidump_dump($host_system_allocator_toolchain)", ++ "//third_party/breakpad:minidump_stackwalk($host_system_allocator_toolchain)", ++ ] ++ } ++ + if (is_mac) { + deps += [ + "//third_party/breakpad:dump_syms($host_system_allocator_toolchain)", +@@ -684,7 +692,7 @@ group("gn_all") { + } + } + +- if (!is_fuchsia) { ++ if (!is_fuchsia && !is_bsd) { + # The official builders use this binary from the default toolchain's + # output directory after building in order to upload the symbols of that + # binary. They build the binary like `ninja symupload` which requires the +@@ -719,7 +727,7 @@ group("gn_all") { + ] + } + +- if (is_mac || is_win || is_android || is_linux || is_chromeos) { ++ if (!is_bsd && (is_mac || is_win || is_android || is_linux || is_chromeos)) { + deps += [ + "//third_party/crashpad/crashpad:crashpad_tests", + "//third_party/crashpad/crashpad/handler:crashpad_handler", +@@ -1128,7 +1136,7 @@ if (use_blink && !is_cronet_build) { + "//third_party/blink/public:all_blink", + ] + +- if (!is_chromeos && !is_ios && !is_fuchsia && !is_android && !is_castos) { ++ if (!is_chromeos && !is_ios && !is_fuchsia && !is_android && !is_castos && !is_bsd) { + deps += [ + ":chrome_wpt_tests", + ":headless_shell_wpt", +@@ -1275,7 +1283,7 @@ if (use_blink && !is_cronet_build) { + data_deps += [ "//content/web_test:web_test_common_mojom_js_data_deps" ] + } + +- if (!is_win && !is_android) { ++ if (!is_win && !is_android && !is_bsd) { + # Using the default toolchain for this tool, as it's run during tests not + # during the build. This places a symlink in the root_build_dir for scrips + # to use. +@@ -1289,7 +1297,7 @@ if (use_blink && !is_cronet_build) { + data_deps += [ "//third_party/breakpad:dump_syms" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux && !is_bsd) || is_chromeos) { + # Using the default toolchain for this tool, as it's run during tests not + # during the build. This places a symlink in the root_build_dir for scrips + # to use. +@@ -1760,7 +1768,7 @@ group("chromium_builder_perf") { + data_deps += [ "//chrome/test:performance_browser_tests" ] + } + +- if (!is_win) { ++ if (!is_win && !is_bsd) { + data_deps += [ "//third_party/breakpad:minidump_stackwalk($host_system_allocator_toolchain)" ] + } + } diff --git a/devel/electron36/files/patch-apps_ui_views_app__window__frame__view.cc b/devel/electron36/files/patch-apps_ui_views_app__window__frame__view.cc new file mode 100644 index 000000000000..5358e1681ba1 --- /dev/null +++ b/devel/electron36/files/patch-apps_ui_views_app__window__frame__view.cc @@ -0,0 +1,11 @@ +--- apps/ui/views/app_window_frame_view.cc.orig 2025-04-22 20:15:27 UTC ++++ apps/ui/views/app_window_frame_view.cc +@@ -146,7 +146,7 @@ gfx::Rect AppWindowFrameView::GetWindowBoundsForClient + gfx::Rect AppWindowFrameView::GetWindowBoundsForClientBounds( + const gfx::Rect& client_bounds) const { + gfx::Rect window_bounds = client_bounds; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Get the difference between the widget's client area bounds and window + // bounds, and grow |window_bounds| by that amount. + gfx::Insets native_frame_insets = diff --git a/devel/electron36/files/patch-ash_display_mirror__window__controller.cc b/devel/electron36/files/patch-ash_display_mirror__window__controller.cc new file mode 100644 index 000000000000..6eae7ace3785 --- /dev/null +++ b/devel/electron36/files/patch-ash_display_mirror__window__controller.cc @@ -0,0 +1,14 @@ +--- ash/display/mirror_window_controller.cc.orig 2025-01-27 17:37:37 UTC ++++ ash/display/mirror_window_controller.cc +@@ -295,7 +295,11 @@ void MirrorWindowController::UpdateWindow( + if (!base::Contains(display_info_list, iter->first, + &display::ManagedDisplayInfo::id)) { + CloseAndDeleteHost(iter->second, true); ++#if defined(__llvm__) ++ mirroring_host_info_map_.erase(iter++); ++#else + iter = mirroring_host_info_map_.erase(iter); ++#endif + } else { + ++iter; + } diff --git a/devel/electron36/files/patch-base_BUILD.gn b/devel/electron36/files/patch-base_BUILD.gn new file mode 100644 index 000000000000..c2387530ff05 --- /dev/null +++ b/devel/electron36/files/patch-base_BUILD.gn @@ -0,0 +1,151 @@ +--- base/BUILD.gn.orig 2025-05-11 11:50:45 UTC ++++ base/BUILD.gn +@@ -1105,11 +1105,27 @@ 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" ] + } + ++ # *BSD needs libkvm ++ if (is_bsd) { ++ libs += [ ++ "kvm", ++ "epoll-shim", ++ ] ++ } ++ ++ if (is_freebsd) { ++ libs += [ ++ "execinfo", ++ "util", ++ "z", ++ ] ++ } ++ + if (use_allocator_shim) { + if (is_apple) { + sources += [ "allocator/early_zone_registration_apple.h" ] +@@ -1129,7 +1145,7 @@ component("base") { + + # Allow more direct string conversions on platforms with native utf8 + # strings +- if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) { ++ if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia || is_bsd) { + defines += [ "SYSTEM_NATIVE_UTF8" ] + } + +@@ -2153,6 +2169,22 @@ 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 += [ +@@ -2313,6 +2345,33 @@ component("base") { + } + } + ++ if (is_bsd) { ++ sources -= [ ++ "files/file_path_watcher_inotify.cc", ++ "files/scoped_file_linux.cc", ++ "process/set_process_title_linux.cc", ++ "process/set_process_title_linux.h", ++ "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", ++ "stack_canary_linux.cc", ++ "stack_canary_linux.h", ++ ] ++ 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 (use_blink) { + sources += [ + "files/file_path_watcher.cc", +@@ -2691,7 +2750,7 @@ buildflag_header("protected_memory_buildflags") { + header = "protected_memory_buildflags.h" + header_dir = "base/memory" + +- protected_memory_enabled = !is_component_build && is_clang && ++ protected_memory_enabled = !is_openbsd && !is_component_build && is_clang && + (is_win || is_linux || is_android || is_mac) + + flags = [ "PROTECTED_MEMORY_ENABLED=$protected_memory_enabled" ] +@@ -3164,7 +3223,7 @@ if (is_apple) { + } + } + +-if (!is_nacl && (is_linux || is_chromeos)) { ++if (!is_nacl && !is_bsd && (is_linux || is_chromeos)) { + # This test must compile with -fstack-protector-all + source_set("stack_canary_linux_unittests") { + testonly = true +@@ -3852,7 +3911,7 @@ test("base_unittests") { + ] + } + +- if (is_linux || is_chromeos) { ++ if (!is_bsd && (is_linux || is_chromeos)) { + sources += [ + "debug/proc_maps_linux_unittest.cc", + "files/scoped_file_linux_unittest.cc", +@@ -3880,7 +3939,7 @@ test("base_unittests") { + "posix/file_descriptor_shuffle_unittest.cc", + "posix/unix_domain_socket_unittest.cc", + ] +- if (!is_nacl && !is_apple) { ++ if (!is_nacl && !is_apple && !is_bsd) { + sources += [ + "profiler/stack_base_address_posix_unittest.cc", + "profiler/stack_copier_signal_unittest.cc", +@@ -3891,7 +3950,7 @@ test("base_unittests") { + + # Allow more direct string conversions on platforms with native utf8 + # strings +- if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) { ++ if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia || is_bsd) { + defines += [ "SYSTEM_NATIVE_UTF8" ] + } + +@@ -4081,7 +4140,7 @@ test("base_unittests") { + deps += [ ":base_profiler_test_support_library" ] + } + +- if (is_fuchsia || is_linux || is_chromeos) { ++ if ((is_fuchsia || is_linux || is_chromeos) && !is_bsd) { + sources += [ + "debug/elf_reader_unittest.cc", + "debug/test_elf_image_builder.cc", diff --git a/devel/electron36/files/patch-base_allocator_dispatcher_tls.h b/devel/electron36/files/patch-base_allocator_dispatcher_tls.h new file mode 100644 index 000000000000..470fc736cb45 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_dispatcher_tls.h @@ -0,0 +1,11 @@ +--- base/allocator/dispatcher/tls.h.orig 2025-03-24 20:50:14 UTC ++++ base/allocator/dispatcher/tls.h +@@ -81,7 +81,7 @@ struct BASE_EXPORT MMapAllocator { + constexpr static size_t AllocationChunkSize = 16384; + #elif BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS) + constexpr static size_t AllocationChunkSize = 16384; +-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64) ++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64) + constexpr static size_t AllocationChunkSize = 16384; + #else + constexpr static size_t AllocationChunkSize = 4096; diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_partition__alloc.gni b/devel/electron36/files/patch-base_allocator_partition__allocator_partition__alloc.gni new file mode 100644 index 000000000000..c9bbd8df3049 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_partition__alloc.gni @@ -0,0 +1,29 @@ +--- base/allocator/partition_allocator/partition_alloc.gni.orig 2025-04-22 20:15:27 UTC ++++ base/allocator/partition_allocator/partition_alloc.gni +@@ -89,7 +89,7 @@ use_large_empty_slot_span_ring = true + # TODO(crbug.com/329199197): Clean this up when experiments are complete. + use_large_empty_slot_span_ring = true + +-has_memory_tagging = current_cpu == "arm64" && is_clang && !is_asan && ++has_memory_tagging = current_cpu == "arm64" && is_clang && !is_asan && !is_bsd && + !is_hwasan && (is_linux || is_android) + + declare_args() { +@@ -348,7 +348,7 @@ declare_args() { + declare_args() { + # Shadow metadata is still under development and only supports Linux + # for now. +- enable_shadow_metadata = is_linux && has_64_bit_pointers ++ enable_shadow_metadata = !is_bsd && is_linux && has_64_bit_pointers + } + + declare_args() { +@@ -491,7 +491,7 @@ is_pkeys_available = + # dependencies that use partition_allocator are compiled in AOSP against a + # version of glibc that does not include pkeys syscall numbers. + is_pkeys_available = +- (is_linux || is_chromeos) && current_cpu == "x64" && !is_cronet_build ++ !is_bsd && (is_linux || is_chromeos) && current_cpu == "x64" && !is_cronet_build + declare_args() { + enable_pkeys = is_pkeys_available + } diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn new file mode 100644 index 000000000000..3198a93aa3ca --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/BUILD.gn +@@ -886,7 +886,7 @@ if (is_clang_or_gcc) { + configs -= [ partition_alloc_enable_arc_config ] + } + } +- if (is_chromeos || is_linux) { ++ if ((is_chromeos || is_linux) && !is_bsd) { + shim_headers += [ + "shim/allocator_shim_override_cpp_symbols.h", + "shim/allocator_shim_override_glibc_weak_symbols.h", diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h new file mode 100644 index 000000000000..fe95045ee83f --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h @@ -0,0 +1,20 @@ +--- base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h +@@ -38,7 +38,7 @@ AslrMask(uintptr_t bits) { + + #if PA_BUILDFLAG(PA_ARCH_CPU_64_BITS) + +- #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) ++ #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) && !PA_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 +@@ -125,7 +125,7 @@ AslrMask(uintptr_t bits) { + return AslrAddress(0x20000000ULL); + } + #elif PA_BUILDFLAG(PA_ARCH_CPU_ARM64) +- #if PA_BUILDFLAG(IS_LINUX) ++ #if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD) + + // Linux on arm64 can use 39, 42, 48, or 52-bit user space, depending on + // page size and number of levels of translation pages used. We use diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h new file mode 100644 index 000000000000..e6b5cc238ebb --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/src/partition_alloc/page_allocator.h.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator.h +@@ -269,7 +269,7 @@ constexpr PA_COMPONENT_EXPORT( + // recommitted. Do not assume that this will not change over time. + constexpr PA_COMPONENT_EXPORT( + PARTITION_ALLOC) bool DecommittedMemoryIsAlwaysZeroed() { +-#if PA_BUILDFLAG(IS_APPLE) ++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD) + return false; + #else + return true; diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h new file mode 100644 index 000000000000..06696482ce8b --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h @@ -0,0 +1,13 @@ +--- base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h.orig 2025-03-24 20:50:14 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h +@@ -26,8 +26,8 @@ + #define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const)) + + #elif (PA_BUILDFLAG(IS_ANDROID) && PA_BUILDFLAG(PA_ARCH_CPU_64_BITS)) || \ +- (PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)) || \ +- (PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_PPC64)) ++ ((PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)) || \ ++ ((PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_PPC64)) + // 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 diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.cc new file mode 100644 index 000000000000..af8918c1b6f1 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.cc @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.cc.orig 2025-01-27 17:37:37 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.cc +@@ -39,7 +39,7 @@ uint32_t SecTaskGetCodeSignStatus(SecTaskRef task) API + + #if PA_BUILDFLAG(HAS_MEMORY_TAGGING) || \ + (defined(__ARM_FEATURE_BTI_DEFAULT) && (__ARM_FEATURE_BTI_DEFAULT == 1) && \ +- __has_include(<sys/ifunc.h>)) ++ __has_include(<sys/ifunc.h>) && !PA_BUILDFLAG(IS_BSD)) + struct __ifunc_arg_t; + + #include "partition_alloc/aarch64_support.h" diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h new file mode 100644 index 000000000000..6442e9a516ae --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h @@ -0,0 +1,16 @@ +--- base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h.orig 2025-04-22 20:15:27 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h +@@ -309,8 +309,12 @@ void DiscardSystemPagesInternal(uintptr_t address, siz + + void DiscardSystemPagesInternal(uintptr_t address, size_t length) { + void* ptr = reinterpret_cast<void*>(address); +-#if PA_BUILDFLAG(IS_APPLE) ++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD) ++#if PA_BUILDFLAG(IS_BSD) ++ int ret = madvise(ptr, length, MADV_FREE); ++#else + int ret = madvise(ptr, length, MADV_FREE_REUSABLE); ++#endif + if (ret) { + // MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED. + ret = madvise(ptr, length, MADV_DONTNEED); diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_proc__maps__linux.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_proc__maps__linux.cc new file mode 100644 index 000000000000..62c6e3a9f113 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_proc__maps__linux.cc @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/proc_maps_linux.cc.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/proc_maps_linux.cc +@@ -19,7 +19,7 @@ + #include "partition_alloc/partition_alloc_check.h" + + #if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || \ +- PA_BUILDFLAG(IS_ANDROID) ++ PA_BUILDFLAG(IS_ANDROID) || PA_BUILDFLAG(IS_BSD) + #include <inttypes.h> + #endif + diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc new file mode 100644 index 000000000000..549ff192f0cb --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc @@ -0,0 +1,34 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc +@@ -13,11 +13,11 @@ + #include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h" + #include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h" + +-#if !PA_BUILDFLAG(IS_ANDROID) && !PA_BUILDFLAG(IS_APPLE) ++#if !PA_BUILDFLAG(IS_ANDROID) && !PA_BUILDFLAG(IS_APPLE) && !PA_BUILDFLAG(IS_BSD) + #include <link.h> // For ElfW() macro. + #endif + +-#if PA_BUILDFLAG(IS_APPLE) ++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD) + #include <dlfcn.h> + #endif + +@@ -25,7 +25,7 @@ namespace { + + namespace { + +-#if !PA_BUILDFLAG(IS_APPLE) ++#if !PA_BUILDFLAG(IS_APPLE) && !PA_BUILDFLAG(IS_BSD) + + // On Android the 'open' function has two versions: + // int open(const char *pathname, int flags); +@@ -369,7 +369,7 @@ void PrintStackTraceInternal(const void** trace, size_ + } + #endif // !PA_BUILDFLAG(IS_APPLE) + +-#if PA_BUILDFLAG(IS_APPLE) ++#if PA_BUILDFLAG(IS_APPLE) || PA_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(const void* const* trace, size_t size) { diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc new file mode 100644 index 000000000000..d14f3414a2ee --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc @@ -0,0 +1,13 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc +@@ -102,6 +102,10 @@ void RandBytes(void* output, size_t output_length) { + if (getentropy(output, output_length) == 0) { + return; + } ++#elif PA_BUILDFLAG(IS_BSD) ++ if (getentropy(output, output_length) == 0) { ++ return; ++ } + #endif + // 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/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h new file mode 100644 index 000000000000..a8024bde3b2e --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h +@@ -37,6 +37,8 @@ typedef mach_port_t PlatformThreadId; + typedef zx_handle_t PlatformThreadId; + #elif PA_BUILDFLAG(IS_APPLE) + typedef mach_port_t PlatformThreadId; ++#elif PA_BUILDFLAG(IS_BSD) ++typedef uint64_t PlatformThreadId; + #elif PA_BUILDFLAG(IS_POSIX) + typedef pid_t PlatformThreadId; + #endif diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h new file mode 100644 index 000000000000..d94cacc3e49b --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h +@@ -10,7 +10,7 @@ namespace partition_alloc::internal::base::internal { + + namespace partition_alloc::internal::base::internal { + +-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) ++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD) + // Current thread id is cached in thread local storage for performance reasons. + // In some rare cases it's important to invalidate that cache explicitly (e.g. + // after going through clone() syscall which does not call pthread_atfork() diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc new file mode 100644 index 000000000000..e3db196acc6f --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc +@@ -18,7 +18,7 @@ + #include "partition_alloc/partition_alloc_base/logging.h" + #include "partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h" + +-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) ++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD) + #include <sys/syscall.h> + #include <atomic> + #endif diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h new file mode 100644 index 000000000000..996b8b027852 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h @@ -0,0 +1,20 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h.orig 2025-01-27 17:37:37 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h +@@ -170,7 +170,7 @@ constexpr bool kUseLazyCommit = false; + // This may be required on more platforms in the future. + #define PA_CONFIG_HAS_ATFORK_HANDLER() \ + (PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_LINUX) || \ +- PA_BUILDFLAG(IS_CHROMEOS)) ++ PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)) + + // Enable shadow metadata. + // +@@ -233,7 +233,7 @@ constexpr bool kUseLazyCommit = false; + // Also enabled on ARM64 macOS and iOS, as the 16kiB pages on this platform lead + // to larger slot spans. + #if PA_BUILDFLAG(IS_LINUX) || \ +- (PA_BUILDFLAG(IS_APPLE) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)) ++ (PA_BUILDFLAG(IS_APPLE) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)) || PA_BUILDFLAG(IS_BSD) + #define PA_CONFIG_PREFER_SMALLER_SLOT_SPANS() 1 + #else + #define PA_CONFIG_PREFER_SMALLER_SLOT_SPANS() 0 diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h new file mode 100644 index 000000000000..67ee4ae1b4c9 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h @@ -0,0 +1,20 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h.orig 2025-03-24 20:50:14 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h +@@ -327,7 +327,7 @@ PA_DEFINE_OPERATORS_FOR_FLAGS(PoolHandleMask); + // 8GB for each of the glued pools). + #if PA_BUILDFLAG(HAS_64_BIT_POINTERS) + #if PA_BUILDFLAG(IS_ANDROID) || PA_BUILDFLAG(IS_IOS) || \ +- PA_BUILDFLAG(ENABLE_POINTER_COMPRESSION) ++ PA_BUILDFLAG(ENABLE_POINTER_COMPRESSION) || PA_BUILDFLAG(IS_BSD) + constexpr size_t kPoolMaxSize = 8 * kGiB; + #else + constexpr size_t kPoolMaxSize = 16 * kGiB; +@@ -444,7 +444,7 @@ PA_ALWAYS_INLINE constexpr size_t MaxDirectMapped() { + // TODO(casey.smalley@arm.com): under 64k pages we can end up in a situation + // where a normal slot span will be large enough to contain multiple items, + // but the address will go over the final partition page after being aligned. +-#if PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64) ++#if (PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64) + constexpr size_t kMaxSupportedAlignment = kSuperPageSize / 4; + #else + constexpr size_t kMaxSupportedAlignment = kSuperPageSize / 2; diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h new file mode 100644 index 000000000000..03cf424478d2 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h @@ -0,0 +1,16 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h.orig 2023-11-29 21:39:39 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h +@@ -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. ++#if defined(__i386__) && defined(OS_FREEBSD) ++constexpr size_t kAlignment = 8; ++#else + constexpr size_t kAlignment = + std::max(alignof(max_align_t), + static_cast<size_t>(__STDCPP_DEFAULT_NEW_ALIGNMENT__)); ++#endif + static_assert(kAlignment <= 16, + "PartitionAlloc doesn't support a fundamental alignment larger " + "than 16 bytes."); diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc new file mode 100644 index 000000000000..98dae8b706ec --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc @@ -0,0 +1,29 @@ +--- base/allocator/partition_allocator/src/partition_alloc/partition_root.cc.orig 2025-03-24 20:50:14 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/partition_root.cc +@@ -44,7 +44,7 @@ + #include "wow64apiset.h" + #endif + +-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) ++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD) + #include <pthread.h> + #if PA_CONFIG(ENABLE_SHADOW_METADATA) + #include <sys/mman.h> +@@ -297,7 +297,7 @@ void PartitionAllocMallocInitOnce() { + return; + } + +-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) ++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD) + // 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. +@@ -1117,7 +1117,7 @@ void PartitionRoot::Init(PartitionOptions opts) { + // apple OSes. + PA_CHECK((internal::SystemPageSize() == (size_t{1} << 12)) || + (internal::SystemPageSize() == (size_t{1} << 14))); +-#elif PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64) ++#elif (PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64) + // Check runtime pagesize. Though the code is currently the same, it is + // not merged with the IS_APPLE case above as a 1 << 16 case is only + // supported on Linux on AArch64. diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc new file mode 100644 index 000000000000..c248fb716c73 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc @@ -0,0 +1,53 @@ +--- base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc +@@ -17,7 +17,16 @@ + #endif + + #if PA_CONFIG(HAS_LINUX_KERNEL) ++#if defined(OS_OPENBSD) ++#include <sys/time.h> ++#include <sys/futex.h> ++#elif defined(OS_FREEBSD) ++#include <sys/types.h> ++#include <sys/thr.h> ++#include <sys/umtx.h> ++#else + #include <linux/futex.h> ++#endif + #include <sys/syscall.h> + #include <unistd.h> + +@@ -106,8 +115,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. ++#if defined(OS_FREEBSD) ++ int err = _umtx_op(&state_, UMTX_OP_WAIT_UINT_PRIVATE, ++ kLockedContended, nullptr, nullptr); ++#elif defined(OS_OPENBSD) ++ int err = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG, ++ kLockedContended, nullptr, nullptr); ++#else + int err = syscall(SYS_futex, &state_, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, + kLockedContended, nullptr, nullptr, 0); ++#endif + + if (err) { + // These are programming error, check them. +@@ -119,8 +136,16 @@ void SpinningMutex::FutexWake() { + + void SpinningMutex::FutexWake() { + int saved_errno = errno; ++#if defined(OS_FREEBSD) ++ long retval = _umtx_op(&state_, UMTX_OP_WAKE_PRIVATE, ++ 1 /* wake up a single waiter */, nullptr, nullptr); ++#elif defined(OS_OPENBSD) ++ long retval = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG, ++ 1 /* wake up a single waiter */, nullptr, nullptr); ++#else + long retval = syscall(SYS_futex, &state_, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, + 1 /* wake up a single waiter */, nullptr, nullptr, 0); ++#endif + PA_CHECK(retval != -1); + errno = saved_errno; + } diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc new file mode 100644 index 000000000000..98f031037d56 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc @@ -0,0 +1,50 @@ +--- base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc +@@ -18,6 +18,10 @@ + #include <pthread.h> + #endif + ++#if PA_BUILDFLAG(IS_BSD) ++#include <pthread_np.h> ++#endif ++ + #if PA_BUILDFLAG(PA_LIBC_GLIBC) + extern "C" void* __libc_stack_end; + #endif +@@ -48,6 +52,36 @@ void* GetStackTop() { + + void* GetStackTop() { + return pthread_get_stackaddr_np(pthread_self()); ++} ++ ++#elif PA_BUILDFLAG(IS_OPENBSD) ++ ++void* GetStackTop() { ++ stack_t ss; ++ if (pthread_stackseg_np(pthread_self(), &ss) != 0) ++ return nullptr; ++ return reinterpret_cast<uint8_t*>(ss.ss_sp); ++} ++ ++#elif PA_BUILDFLAG(IS_FREEBSD) ++ ++void* GetStackTop() { ++ pthread_attr_t attr; ++ int error = pthread_attr_init(&attr); ++ if (error) { ++ return nullptr; ++ } ++ error = pthread_attr_get_np(pthread_self(), &attr); ++ if (!error) { ++ void* base; ++ size_t size; ++ error = pthread_attr_getstack(&attr, &base, &size); ++ PA_CHECK(!error); ++ pthread_attr_destroy(&attr); ++ return reinterpret_cast<uint8_t*>(base) + size; ++ } ++ pthread_attr_destroy(&attr); ++ return nullptr; + } + + #elif PA_BUILDFLAG(IS_POSIX) || PA_BUILDFLAG(IS_FUCHSIA) diff --git a/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc new file mode 100644 index 000000000000..7fce3422e882 --- /dev/null +++ b/devel/electron36/files/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc.orig 2024-08-14 20:54:22 UTC ++++ base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc +@@ -16,7 +16,7 @@ + #include "partition_alloc/partition_alloc_check.h" + #include "partition_alloc/thread_isolation/thread_isolation.h" + +-#if !PA_BUILDFLAG(IS_LINUX) && !PA_BUILDFLAG(IS_CHROMEOS) ++#if !PA_BUILDFLAG(IS_LINUX) && !PA_BUILDFLAG(IS_CHROMEOS) && !PA_BUILDFLAG(IS_BSD) + #error "This pkey code is currently only supported on Linux and ChromeOS" + #endif + diff --git a/devel/electron36/files/patch-base_atomicops.h b/devel/electron36/files/patch-base_atomicops.h new file mode 100644 index 000000000000..9472cd0d7ae8 --- /dev/null +++ b/devel/electron36/files/patch-base_atomicops.h @@ -0,0 +1,14 @@ +--- base/atomicops.h.orig 2025-03-24 20:50:14 UTC ++++ base/atomicops.h +@@ -74,7 +74,11 @@ typedef intptr_t Atomic64; + + // Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or + // Atomic64 routines below, depending on your architecture. ++#if !defined(OS_OPENBSD) && defined(__i386__) ++typedef Atomic32 AtomicWord; ++#else + typedef intptr_t AtomicWord; ++#endif + + // Atomically execute: + // result = *ptr; diff --git a/devel/electron36/files/patch-base_base__paths__posix.cc b/devel/electron36/files/patch-base_base__paths__posix.cc new file mode 100644 index 000000000000..e1eeae038bb9 --- /dev/null +++ b/devel/electron36/files/patch-base_base__paths__posix.cc @@ -0,0 +1,108 @@ +--- base/base_paths_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/base_paths_posix.cc +@@ -15,6 +15,7 @@ + #include <ostream> + #include <string> + ++#include "base/command_line.h" + #include "base/environment.h" + #include "base/files/file_path.h" + #include "base/files/file_util.h" +@@ -26,9 +27,13 @@ + #include "base/process/process_metrics.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_FREEBSD) ++#if BUILDFLAG(IS_BSD) + #include <sys/param.h> + #include <sys/sysctl.h> ++#if BUILDFLAG(IS_OPENBSD) ++#include <kvm.h> ++#define MAXTOKENS 2 ++#endif + #elif BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_AIX) + #include <stdlib.h> + #endif +@@ -47,8 +52,7 @@ bool PathProviderPosix(int key, FilePath* result) { + *result = bin_dir; + return true; + #elif BUILDFLAG(IS_FREEBSD) +- int name[] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1}; +- std::optional<std::string> bin_dir = StringSysctl(name, std::size(name)); ++ std::optional<std::string> bin_dir = StringSysctl({ CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }); + if (!bin_dir.has_value() || bin_dir.value().length() <= 1) { + NOTREACHED() << "Unable to resolve path."; + } +@@ -62,14 +66,65 @@ bool PathProviderPosix(int key, FilePath* result) { + *result = FilePath(bin_dir); + return true; + #elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_AIX) +- // There is currently no way to get the executable path on OpenBSD +- char* cpath; +- if ((cpath = getenv("CHROME_EXE_PATH")) != NULL) { +- *result = FilePath(cpath); +- } else { +- *result = FilePath("/usr/local/chrome/chrome"); ++ char *cpath; ++#if !BUILDFLAG(IS_AIX) ++ struct kinfo_file *files; ++ kvm_t *kd = NULL; ++ char errbuf[_POSIX2_LINE_MAX]; ++ static char retval[PATH_MAX]; ++ int cnt; ++ struct stat sb; ++ pid_t cpid = getpid(); ++ bool ret = false; ++ ++ const base::CommandLine* command_line = ++ base::CommandLine::ForCurrentProcess(); ++ ++ VLOG(1) << "PathProviderPosix argv: " << command_line->argv()[0]; ++ ++ if (realpath(command_line->argv()[0].c_str(), retval) == NULL) ++ goto out; ++ ++ if (stat(command_line->argv()[0].c_str(), &sb) < 0) ++ goto out; ++ ++ if (!command_line->HasSwitch("no-sandbox")) { ++ ret = true; ++ *result = FilePath(retval); ++ VLOG(1) << "PathProviderPosix (sandbox) result: " << retval; ++ goto out; + } +- return true; ++ ++ if ((kd = kvm_openfiles(NULL, NULL, NULL, (int)KVM_NO_FILES, errbuf)) == NULL) ++ goto out; ++ ++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid, ++ sizeof(struct kinfo_file), &cnt)) == NULL) ++ goto out; ++ ++ for (int i = 0; i < cnt; i++) { ++ if (files[i].fd_fd == KERN_FILE_TEXT && ++ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) && ++ files[i].va_fileid == sb.st_ino) { ++ ret = true; ++ *result = FilePath(retval); ++ VLOG(1) << "PathProviderPosix result: " << retval; ++ } ++ } ++out: ++ if (kd) ++ kvm_close(kd); ++ if (!ret) { ++#endif ++ if ((cpath = getenv("CHROME_EXE_PATH")) != NULL) ++ *result = FilePath(cpath); ++ else ++ *result = FilePath("/usr/local/chrome/chrome"); ++ return true; ++#if !BUILDFLAG(IS_AIX) ++ } ++ return ret; ++#endif + #endif + } + case DIR_SRC_TEST_DATA_ROOT: { diff --git a/devel/electron36/files/patch-base_compiler__specific.h b/devel/electron36/files/patch-base_compiler__specific.h new file mode 100644 index 000000000000..8c367a61e245 --- /dev/null +++ b/devel/electron36/files/patch-base_compiler__specific.h @@ -0,0 +1,10 @@ +--- base/compiler_specific.h.orig 2025-03-24 20:50:14 UTC ++++ base/compiler_specific.h +@@ -729,6 +729,7 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) { + #if __has_cpp_attribute(clang::preserve_most) && \ + (defined(ARCH_CPU_ARM64) || defined(ARCH_CPU_X86_64)) && \ + !defined(COMPONENT_BUILD) && \ ++ !BUILDFLAG(IS_OPENBSD) && \ + !(BUILDFLAG(IS_WIN) && defined(ARCH_CPU_ARM64)) + #define PRESERVE_MOST [[clang::preserve_most]] + #else diff --git a/devel/electron36/files/patch-base_debug_debugger__posix.cc b/devel/electron36/files/patch-base_debug_debugger__posix.cc new file mode 100644 index 000000000000..e7bc7256d454 --- /dev/null +++ b/devel/electron36/files/patch-base_debug_debugger__posix.cc @@ -0,0 +1,70 @@ +--- base/debug/debugger_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/debug/debugger_posix.cc +@@ -41,6 +41,10 @@ + #include <sys/sysctl.h> + #endif + ++#if BUILDFLAG(IS_OPENBSD) ++#include <sys/proc.h> ++#endif ++ + #if BUILDFLAG(IS_FREEBSD) + #include <sys/user.h> + #endif +@@ -99,33 +103,52 @@ bool BeingDebugged() { + + // Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE. The source and + // binary interfaces may change. ++#if BUILDFLAG(IS_OPENBSD) ++ struct kinfo_proc *info; ++ size_t info_size; ++#else + struct kinfo_proc info; + size_t info_size = sizeof(info); ++#endif + + #if BUILDFLAG(IS_OPENBSD) + if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0) { + return -1; + } + +- mib[5] = (info_size / sizeof(struct kinfo_proc)); ++ mib[5] = static_cast<int>((info_size / sizeof(struct kinfo_proc))); ++ if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL) { ++ is_set = true; ++ being_debugged = false; ++ return being_debugged; ++ } ++ ++ int sysctl_result = sysctl(mib, std::size(mib), info, &info_size, NULL, 0); + #endif + ++#if !BUILDFLAG(IS_OPENBSD) + int sysctl_result = sysctl(mib, std::size(mib), &info, &info_size, NULL, 0); ++#endif + DCHECK_EQ(sysctl_result, 0); + if (sysctl_result != 0) { + is_set = true; + being_debugged = false; +- return being_debugged; ++ goto out; + } + + // This process is being debugged if the P_TRACED flag is set. + is_set = true; + #if BUILDFLAG(IS_FREEBSD) + being_debugged = (info.ki_flag & P_TRACED) != 0; +-#elif BUILDFLAG(IS_BSD) +- being_debugged = (info.p_flag & P_TRACED) != 0; ++#elif BUILDFLAG(IS_OPENBSD) ++ being_debugged = (info->p_psflags & PS_TRACED) != 0; + #else + being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0; ++#endif ++ ++out: ++#if BUILDFLAG(IS_OPENBSD) ++ free(info); + #endif + return being_debugged; + } diff --git a/devel/electron36/files/patch-base_debug_elf__reader.cc b/devel/electron36/files/patch-base_debug_elf__reader.cc new file mode 100644 index 000000000000..594dab032392 --- /dev/null +++ b/devel/electron36/files/patch-base_debug_elf__reader.cc @@ -0,0 +1,13 @@ +--- base/debug/elf_reader.cc.orig 2025-03-24 20:50:14 UTC ++++ base/debug/elf_reader.cc +@@ -49,6 +49,10 @@ constexpr char kGnuNoteName[] = "GNU"; + + constexpr char kGnuNoteName[] = "GNU"; + ++#ifndef NT_GNU_BUILD_ID ++#define NT_GNU_BUILD_ID 3 ++#endif ++ + // Returns a pointer to the header of the ELF binary mapped into memory, or a + // null pointer if the header is invalid. Here and below |elf_mapped_base| is a + // pointer to the start of the ELF image. diff --git a/devel/electron36/files/patch-base_debug_proc__maps__linux.cc b/devel/electron36/files/patch-base_debug_proc__maps__linux.cc new file mode 100644 index 000000000000..9d33de7c41c7 --- /dev/null +++ b/devel/electron36/files/patch-base_debug_proc__maps__linux.cc @@ -0,0 +1,11 @@ +--- base/debug/proc_maps_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ base/debug/proc_maps_linux.cc +@@ -22,7 +22,7 @@ + #include "base/strings/string_split.h" + #include "build/build_config.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 <inttypes.h> + #endif + diff --git a/devel/electron36/files/patch-base_debug_stack__trace.cc b/devel/electron36/files/patch-base_debug_stack__trace.cc new file mode 100644 index 000000000000..67e40d24f974 --- /dev/null +++ b/devel/electron36/files/patch-base_debug_stack__trace.cc @@ -0,0 +1,39 @@ +--- base/debug/stack_trace.cc.orig 2025-04-22 20:15:27 UTC ++++ base/debug/stack_trace.cc +@@ -268,7 +268,7 @@ bool StackTrace::WillSymbolizeToStreamForTesting() { + // Symbols are not expected to be reliable when gn args specifies + // symbol_level=0. + return false; +-#elif defined(__UCLIBC__) || defined(_AIX) ++#elif defined(__UCLIBC__) || defined(_AIX) || BUILDFLAG(IS_BSD) + // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX. + // See https://crbug.com/706728 + return false; +@@ -321,7 +321,9 @@ void StackTrace::OutputToStreamWithPrefix(std::ostream + } + return; + } ++#if !BUILDFLAG(IS_BSD) + OutputToStreamWithPrefixImpl(os, prefix_string); ++#endif + } + + std::string StackTrace::ToString() const { +@@ -330,7 +332,7 @@ std::string StackTrace::ToStringWithPrefix(cstring_vie + + std::string StackTrace::ToStringWithPrefix(cstring_view prefix_string) const { + std::stringstream stream; +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if !defined(__UCLIBC__) && !defined(_AIX) && !BUILDFLAG(IS_BSD) + OutputToStreamWithPrefix(&stream, prefix_string); + #endif + return stream.str(); +@@ -354,7 +356,7 @@ std::ostream& operator<<(std::ostream& os, const Stack + } + + std::ostream& operator<<(std::ostream& os, const StackTrace& s) { +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if !defined(__UCLIBC__) && !defined(_AIX) && !BUILDFLAG(IS_BSD) + s.OutputToStream(&os); + #else + os << "StackTrace::OutputToStream not implemented."; diff --git a/devel/electron36/files/patch-base_debug_stack__trace__posix.cc b/devel/electron36/files/patch-base_debug_stack__trace__posix.cc new file mode 100644 index 000000000000..29f44661e2a1 --- /dev/null +++ b/devel/electron36/files/patch-base_debug_stack__trace__posix.cc @@ -0,0 +1,101 @@ +--- base/debug/stack_trace_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/debug/stack_trace_posix.cc +@@ -51,7 +51,7 @@ + // execinfo.h and backtrace(3) are really only present in glibc and in macOS + // libc. + #if BUILDFLAG(IS_APPLE) || \ +- (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX)) ++ (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX) && !BUILDFLAG(IS_BSD)) + #define HAVE_BACKTRACE + #include <execinfo.h> + #endif +@@ -69,8 +69,10 @@ + #include <AvailabilityMacros.h> + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) ++#if !BUILDFLAG(IS_BSD) + #include <sys/prctl.h> ++#endif + + #include "base/debug/proc_maps_linux.h" + #endif +@@ -329,7 +331,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 +@@ -346,7 +348,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) +@@ -552,7 +558,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; +@@ -577,6 +583,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) { +@@ -591,6 +598,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) + +@@ -783,6 +791,7 @@ class SandboxSymbolizeHelper { + return -1; + } + ++#if !BUILDFLAG(IS_BSD) + // This class is copied from + // third_party/crashpad/crashpad/util/linux/scoped_pr_set_dumpable.h. + // It aims at ensuring the process is dumpable before opening /proc/self/mem. +@@ -875,11 +884,15 @@ class SandboxSymbolizeHelper { + r.base = cur_base; + } + } ++#endif + + // Parses /proc/self/maps in order to compile a list of all object file names + // for the modules that are loaded in the current process. + // Returns true on success. + bool CacheMemoryRegions() { ++#if BUILDFLAG(IS_BSD) ++ return false; ++#else + // Reads /proc/self/maps. + std::string contents; + if (!ReadProcMaps(&contents)) { +@@ -897,6 +910,7 @@ class SandboxSymbolizeHelper { + + is_initialized_ = true; + return true; ++#endif + } + + // Opens all object files and caches their file descriptors. diff --git a/devel/electron36/files/patch-base_files_dir__reader__linux.h b/devel/electron36/files/patch-base_files_dir__reader__linux.h new file mode 100644 index 000000000000..79633108cfdb --- /dev/null +++ b/devel/electron36/files/patch-base_files_dir__reader__linux.h @@ -0,0 +1,39 @@ +--- base/files/dir_reader_linux.h.orig 2025-03-24 20:50:14 UTC ++++ base/files/dir_reader_linux.h +@@ -21,10 +21,16 @@ + #include "base/logging.h" + #include "base/posix/eintr_wrapper.h" + ++#include "build/build_config.h" ++ + // See the comments in dir_reader_posix.h about this. + + namespace base { + ++#if BUILDFLAG(IS_BSD) ++#include <dirent.h> ++typedef struct dirent linux_dirent; ++#else + struct linux_dirent { + uint64_t d_ino; + int64_t d_off; +@@ -32,6 +38,7 @@ struct linux_dirent { + unsigned char d_type; + char d_name[0]; + }; ++#endif + + class DirReaderLinux { + public: +@@ -66,7 +73,11 @@ class DirReaderLinux { + return true; + } + ++#if BUILDFLAG(IS_BSD) ++ const int r = getdents(fd_, reinterpret_cast<char *>(buf_), sizeof(buf_)); ++#else + const long r = syscall(__NR_getdents64, fd_, buf_, sizeof(buf_)); ++#endif + if (r == 0) { + return false; + } diff --git a/devel/electron36/files/patch-base_files_dir__reader__posix.h b/devel/electron36/files/patch-base_files_dir__reader__posix.h new file mode 100644 index 000000000000..2285fb726f8e --- /dev/null +++ b/devel/electron36/files/patch-base_files_dir__reader__posix.h @@ -0,0 +1,20 @@ +--- base/files/dir_reader_posix.h.orig 2022-06-17 14:20:10 UTC ++++ base/files/dir_reader_posix.h +@@ -17,7 +17,7 @@ + // seems worse than falling back to enumerating all file descriptors so we will + // probably never implement this on the Mac. + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include "base/files/dir_reader_linux.h" + #else + #include "base/files/dir_reader_fallback.h" +@@ -25,7 +25,7 @@ + + namespace base { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + typedef DirReaderLinux DirReaderPosix; + #else + typedef DirReaderFallback DirReaderPosix; diff --git a/devel/electron36/files/patch-base_files_drive__info.h b/devel/electron36/files/patch-base_files_drive__info.h new file mode 100644 index 000000000000..dabfb40d9e51 --- /dev/null +++ b/devel/electron36/files/patch-base_files_drive__info.h @@ -0,0 +1,11 @@ +--- base/files/drive_info.h.orig 2025-03-24 20:50:14 UTC ++++ base/files/drive_info.h +@@ -48,7 +48,7 @@ struct BASE_EXPORT DriveInfo { + std::optional<bool> has_seek_penalty; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Whether the drive is a removable drive. + // + // Note on macOS: that SSDs that are connected over USB that you can eject diff --git a/devel/electron36/files/patch-base_files_drive__info__posix.cc b/devel/electron36/files/patch-base_files_drive__info__posix.cc new file mode 100644 index 000000000000..8c50fee8089e --- /dev/null +++ b/devel/electron36/files/patch-base_files_drive__info__posix.cc @@ -0,0 +1,11 @@ +--- base/files/drive_info_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/files/drive_info_posix.cc +@@ -24,7 +24,7 @@ std::optional<DriveInfo> GetFileDriveInfo(const FilePa + + std::optional<DriveInfo> GetFileDriveInfo(const FilePath& file_path) { + DriveInfo drive_info; +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + drive_info.has_seek_penalty = false; + return drive_info; + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-base_files_file__path__watcher.h b/devel/electron36/files/patch-base_files_file__path__watcher.h new file mode 100644 index 000000000000..463c96aaf79a --- /dev/null +++ b/devel/electron36/files/patch-base_files_file__path__watcher.h @@ -0,0 +1,11 @@ +--- base/files/file_path_watcher.h.orig 2024-02-21 00:20:30 UTC ++++ base/files/file_path_watcher.h +@@ -105,7 +105,7 @@ class BASE_EXPORT FilePathWatcher { + Type type = Type::kNonRecursive; + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // The callback will return the full path to a changed file instead of + // the watched path supplied as |path| when Watch is called. + // So the full path can be different from the watched path when a folder is diff --git a/devel/electron36/files/patch-base_files_file__path__watcher__bsd.cc b/devel/electron36/files/patch-base_files_file__path__watcher__bsd.cc new file mode 100644 index 000000000000..5bac3095f9f0 --- /dev/null +++ b/devel/electron36/files/patch-base_files_file__path__watcher__bsd.cc @@ -0,0 +1,57 @@ +--- base/files/file_path_watcher_bsd.cc.orig 2022-10-24 13:33:33 UTC ++++ base/files/file_path_watcher_bsd.cc +@@ -0,0 +1,54 @@ ++// Copyright 2021 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. ++ ++#include <memory> ++ ++#include "base/files/file_path_watcher.h" ++#include "base/files/file_path_watcher_kqueue.h" ++#include "base/memory/ptr_util.h" ++#include "build/build_config.h" ++ ++namespace base { ++ ++namespace { ++ ++class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { ++ public: ++ FilePathWatcherImpl() = default; ++ FilePathWatcherImpl(const FilePathWatcherImpl&) = delete; ++ FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete; ++ ~FilePathWatcherImpl() override = default; ++ ++ bool Watch(const FilePath& path, ++ Type type, ++ const FilePathWatcher::Callback& callback) override { ++ DCHECK(!impl_.get()); ++ if (type == Type::kRecursive) { ++ if (!FilePathWatcher::RecursiveWatchAvailable()) ++ return false; ++ } else { ++ impl_ = std::make_unique<FilePathWatcherKQueue>(); ++ } ++ DCHECK(impl_.get()); ++ return impl_->Watch(path, type, callback); ++ } ++ ++ void Cancel() override { ++ if (impl_.get()) ++ impl_->Cancel(); ++ set_cancelled(); ++ } ++ ++ private: ++ std::unique_ptr<PlatformDelegate> impl_; ++}; ++ ++} // namespace ++ ++FilePathWatcher::FilePathWatcher() { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ impl_ = std::make_unique<FilePathWatcherImpl>(); ++} ++ ++} // namespace base diff --git a/devel/electron36/files/patch-base_files_file__path__watcher__kqueue.h b/devel/electron36/files/patch-base_files_file__path__watcher__kqueue.h new file mode 100644 index 000000000000..821858b75711 --- /dev/null +++ b/devel/electron36/files/patch-base_files_file__path__watcher__kqueue.h @@ -0,0 +1,10 @@ +--- base/files/file_path_watcher_kqueue.h.orig 2022-02-07 13:39:41 UTC ++++ base/files/file_path_watcher_kqueue.h +@@ -5,6 +5,7 @@ + #ifndef BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_ + #define BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_ + ++#include <sys/time.h> + #include <sys/event.h> + + #include <memory> diff --git a/devel/electron36/files/patch-base_files_file__path__watcher__unittest.cc b/devel/electron36/files/patch-base_files_file__path__watcher__unittest.cc new file mode 100644 index 000000000000..dbaf2a8a80e0 --- /dev/null +++ b/devel/electron36/files/patch-base_files_file__path__watcher__unittest.cc @@ -0,0 +1,29 @@ +--- base/files/file_path_watcher_unittest.cc.orig 2024-08-14 20:54:23 UTC ++++ base/files/file_path_watcher_unittest.cc +@@ -902,7 +902,7 @@ TEST_F(FilePathWatcherTest, WatchDirectory) { + } + delegate.RunUntilEventsMatch(event_expecter); + +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && BUILDFLAG(IS_BSD) + ASSERT_TRUE(WriteFile(file1, "content v2")); + // Mac implementation does not detect files modified in a directory. + // TODO(crbug.com/40263777): Expect that no events are fired on Mac. +@@ -1848,7 +1848,7 @@ enum Permission { Read, Write, Execute }; + + enum Permission { Read, Write, Execute }; + +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + bool ChangeFilePermissions(const FilePath& path, Permission perm, bool allow) { + struct stat stat_buf; + +@@ -1882,7 +1882,7 @@ bool ChangeFilePermissions(const FilePath& path, Permi + + } // namespace + +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) && BUILDFLAG(IS_BSD) + // Linux implementation of FilePathWatcher doesn't catch attribute changes. + // http://crbug.com/78043 + // Windows implementation of FilePathWatcher catches attribute changes that diff --git a/devel/electron36/files/patch-base_files_file__util__posix.cc b/devel/electron36/files/patch-base_files_file__util__posix.cc new file mode 100644 index 000000000000..12936809212a --- /dev/null +++ b/devel/electron36/files/patch-base_files_file__util__posix.cc @@ -0,0 +1,48 @@ +--- base/files/file_util_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ base/files/file_util_posix.cc +@@ -934,6 +934,7 @@ bool CreateDirectoryAndGetError(const FilePath& full_p + bool CreateDirectoryAndGetError(const FilePath& full_path, File::Error* error) { + ScopedBlockingCall scoped_blocking_call( + FROM_HERE, BlockingType::MAY_BLOCK); // For call to mkdir(). ++ const FilePath kFileSystemRoot("/"); + + // Avoid checking subdirs if directory already exists. + if (DirectoryExists(full_path)) { +@@ -943,8 +944,8 @@ bool CreateDirectoryAndGetError(const FilePath& full_p + // Collect a list of all missing directories. + std::vector<FilePath> missing_subpaths({full_path}); + FilePath last_path = full_path; +- for (FilePath path = full_path.DirName(); path.value() != last_path.value(); +- path = path.DirName()) { ++ for (FilePath path = full_path.DirName(); (path.value() != last_path.value() && ++ (path != kFileSystemRoot)); path = path.DirName()) { + if (DirectoryExists(path)) { + break; + } +@@ -962,21 +963,14 @@ bool CreateDirectoryAndGetError(const FilePath& full_p + } + #endif // BUILDFLAG(IS_CHROMEOS) + +- if (mkdir(subpath.value().c_str(), mode) == 0) { +- continue; +- } +- // Mkdir failed, but it might have failed with EEXIST, or some other error +- // due to the directory appearing out of thin air. This can occur if +- // two processes are trying to create the same file system tree at the same +- // time. Check to see if it exists and make sure it is a directory. +- int saved_errno = errno; +- if (!DirectoryExists(subpath)) { +- if (error) { ++ if ((mkdir(subpath.value().c_str(), mode) == -1) && ++ ((full_path != subpath) ? (errno != ENOENT) : (-1))) { ++ int saved_errno = errno; ++ if (error) + *error = File::OSErrorToFileError(saved_errno); +- } +- errno = saved_errno; + return false; + } ++ errno = 0; + } + return true; + } diff --git a/devel/electron36/files/patch-base_files_file__util__unittest.cc b/devel/electron36/files/patch-base_files_file__util__unittest.cc new file mode 100644 index 000000000000..5ec3b9de49f1 --- /dev/null +++ b/devel/electron36/files/patch-base_files_file__util__unittest.cc @@ -0,0 +1,40 @@ +--- base/files/file_util_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ base/files/file_util_unittest.cc +@@ -3920,7 +3920,7 @@ TEST_F(FileUtilTest, ReadFileToStringWithNamedPipe) { + } + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + TEST_F(FileUtilTest, ReadFileToStringWithProcFileSystem) { + FilePath file_path("/proc/cpuinfo"); + std::string data = "temp"; +@@ -4505,6 +4505,19 @@ TEST_F(FileUtilTest, CreateDirectoryOnlyCheckMissingSu + + #endif // BUILDFLAG(IS_ANDROID) + ++#if BUILDFLAG(IS_OPENBSD) ++TEST_F(FileUtilTest, CreateDirectoryInUnveiledPath) { ++ FilePath dir = PathService::CheckedGet(DIR_GEN_TEST_DATA_ROOT); ++ dir = dir.Append(FILE_PATH_LITERAL("base")); ++ dir = dir.Append(FILE_PATH_LITERAL("test")); ++ dir = dir.Append(FILE_PATH_LITERAL("unveil")); ++ unveil(dir.value().c_str(), "rwc"); ++ EXPECT_TRUE(CreateDirectory(dir)); ++ dir = dir.Append(FILE_PATH_LITERAL("test")); ++ EXPECT_FALSE(CreateDirectory(dir)); ++} ++#endif ++ + #if BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING) && \ + defined(ARCH_CPU_32_BITS) + // TODO(crbug.com/327582285): Re-enable these tests. They may be failing due to +@@ -4671,7 +4684,7 @@ TEST(FileUtilMultiThreadedTest, MultiThreadedTempFiles + NULL); + #else + size_t bytes_written = +- ::write(::fileno(output_file.get()), content.c_str(), content.length()); ++ ::write(fileno(output_file.get()), content.c_str(), content.length()); + #endif + EXPECT_EQ(content.length(), bytes_written); + ::fflush(output_file.get()); diff --git a/devel/electron36/files/patch-base_files_important__file__writer__cleaner.cc b/devel/electron36/files/patch-base_files_important__file__writer__cleaner.cc new file mode 100644 index 000000000000..80f08d51a819 --- /dev/null +++ b/devel/electron36/files/patch-base_files_important__file__writer__cleaner.cc @@ -0,0 +1,12 @@ +--- base/files/important_file_writer_cleaner.cc.orig 2022-02-28 16:54:41 UTC ++++ base/files/important_file_writer_cleaner.cc +@@ -25,7 +25,8 @@ namespace base { + namespace { + + base::Time GetUpperBoundTime() { +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) ++// needed because of .CreationTime() pledge ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // If process creation time is not available then use instance creation + // time as the upper-bound for old files. Modification times may be + // rounded-down to coarse-grained increments, e.g. FAT has 2s granularity, diff --git a/devel/electron36/files/patch-base_files_scoped__file.cc b/devel/electron36/files/patch-base_files_scoped__file.cc new file mode 100644 index 000000000000..116fe3355776 --- /dev/null +++ b/devel/electron36/files/patch-base_files_scoped__file.cc @@ -0,0 +1,11 @@ +--- base/files/scoped_file.cc.orig 2024-08-14 20:54:23 UTC ++++ base/files/scoped_file.cc +@@ -32,7 +32,7 @@ void ScopedFDCloseTraits::Free(int fd) { + int ret = IGNORE_EINTR(close(fd)); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \ +- BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // NB: Some file descriptors can return errors from close() e.g. network + // filesystems such as NFS and Linux input devices. On Linux, macOS, and + // Fuchsia's POSIX layer, errors from close other than EBADF do not indicate diff --git a/devel/electron36/files/patch-base_functional_unretained__traits.h b/devel/electron36/files/patch-base_functional_unretained__traits.h new file mode 100644 index 000000000000..96a7227653f7 --- /dev/null +++ b/devel/electron36/files/patch-base_functional_unretained__traits.h @@ -0,0 +1,11 @@ +--- base/functional/unretained_traits.h.orig 2025-03-24 20:50:14 UTC ++++ base/functional/unretained_traits.h +@@ -90,7 +90,7 @@ struct SupportsUnretainedImpl { + // official builds, and then in non-test code as well. + #if defined(FORCE_UNRETAINED_COMPLETENESS_CHECKS_FOR_TESTS) || \ + (!defined(UNIT_TEST) && !defined(OFFICIAL_BUILD) && \ +- (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN))) ++ (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD))) + static_assert(v, + "Argument requires unretained storage, but type is not " + "fully defined. This prevents determining whether " diff --git a/devel/electron36/files/patch-base_i18n_icu__util.cc b/devel/electron36/files/patch-base_i18n_icu__util.cc new file mode 100644 index 000000000000..05bc4b7fccc8 --- /dev/null +++ b/devel/electron36/files/patch-base_i18n_icu__util.cc @@ -0,0 +1,20 @@ +--- base/i18n/icu_util.cc.orig 2025-04-22 20:15:27 UTC ++++ base/i18n/icu_util.cc +@@ -53,7 +53,7 @@ + #include "third_party/icu/source/common/unicode/unistr.h" + #endif + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \ + BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) + #include "third_party/icu/source/i18n/unicode/timezone.h" + #endif +@@ -329,7 +329,7 @@ void InitializeIcuTimeZone() { + FuchsiaIntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization(); + icu::TimeZone::adoptDefault( + icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(zone_id))); +-#elif BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) ++#elif BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD) + // To respond to the time zone change properly, the default time zone + // cache in ICU has to be populated on starting up. + // See TimeZoneMonitorLinux::NotifyClientsFromImpl(). diff --git a/devel/electron36/files/patch-base_linux__util.cc b/devel/electron36/files/patch-base_linux__util.cc new file mode 100644 index 000000000000..3e05f9677301 --- /dev/null +++ b/devel/electron36/files/patch-base_linux__util.cc @@ -0,0 +1,17 @@ +--- base/linux_util.cc.orig 2025-04-22 20:15:27 UTC ++++ base/linux_util.cc +@@ -163,10 +163,14 @@ bool GetThreadsForProcess(pid_t pid, std::vector<pid_t + } + + bool GetThreadsForProcess(pid_t pid, std::vector<pid_t>* tids) { ++#if BUILDFLAG(IS_BSD) ++ return false; ++#else + // 25 > strlen("/proc//task") + strlen(base::NumberToString(INT_MAX)) + 1 = 22 + char buf[25]; + strings::SafeSPrintf(buf, "/proc/%d/task", pid); + return GetThreadsFromProcessDir(buf, tids); ++#endif + } + + bool GetThreadsForCurrentProcess(std::vector<pid_t>* tids) { diff --git a/devel/electron36/files/patch-base_logging__unittest.cc b/devel/electron36/files/patch-base_logging__unittest.cc new file mode 100644 index 000000000000..81bd12c29167 --- /dev/null +++ b/devel/electron36/files/patch-base_logging__unittest.cc @@ -0,0 +1,31 @@ +--- base/logging_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ base/logging_unittest.cc +@@ -40,7 +40,7 @@ + #include "base/posix/eintr_wrapper.h" + #endif // BUILDFLAG(IS_POSIX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) + #include <ucontext.h> + #endif + +@@ -586,14 +586,18 @@ void CheckCrashTestSighandler(int, siginfo_t* info, vo + // need the arch-specific boilerplate below, which is inspired by breakpad. + // At the same time, on OSX, ucontext.h is deprecated but si_addr works fine. + uintptr_t crash_addr = 0; +-#if BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD) + crash_addr = reinterpret_cast<uintptr_t>(info->si_addr); + #else // OS_* + ucontext_t* context = reinterpret_cast<ucontext_t*>(context_ptr); + #if defined(ARCH_CPU_X86) + crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_EIP]); + #elif defined(ARCH_CPU_X86_64) ++#if BUILDFLAG(IS_OPENBSD) ++ crash_addr = static_cast<uintptr_t>(context->sc_rip); ++#else + crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_RIP]); ++#endif + #elif defined(ARCH_CPU_ARMEL) + crash_addr = static_cast<uintptr_t>(context->uc_mcontext.arm_pc); + #elif defined(ARCH_CPU_ARM64) diff --git a/devel/electron36/files/patch-base_memory_discardable__memory.cc b/devel/electron36/files/patch-base_memory_discardable__memory.cc new file mode 100644 index 000000000000..d1987087b410 --- /dev/null +++ b/devel/electron36/files/patch-base_memory_discardable__memory.cc @@ -0,0 +1,38 @@ +--- base/memory/discardable_memory.cc.orig 2025-03-24 20:50:14 UTC ++++ base/memory/discardable_memory.cc +@@ -26,7 +26,7 @@ BASE_FEATURE(kMadvFreeDiscardableMemory, + base::FEATURE_DISABLED_BY_DEFAULT); + #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) + BASE_FEATURE(kDiscardableMemoryBackingTrial, + "DiscardableMemoryBackingTrial", + base::FEATURE_DISABLED_BY_DEFAULT); +@@ -44,7 +44,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + DiscardableMemoryBacking GetBackingForFieldTrial() { + DiscardableMemoryTrialGroup trial_group = +@@ -63,7 +63,7 @@ DiscardableMemoryBacking GetBackingForFieldTrial() { + + } // namespace + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + // Probe capabilities of this device to determine whether we should participate + // in the discardable memory backing trial. +@@ -95,7 +95,7 @@ DiscardableMemoryBacking GetDiscardableMemoryBacking() + DiscardableMemory::~DiscardableMemory() = default; + + DiscardableMemoryBacking GetDiscardableMemoryBacking() { +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (DiscardableMemoryBackingFieldTrialIsEnabled()) { + return GetBackingForFieldTrial(); + } diff --git a/devel/electron36/files/patch-base_memory_discardable__memory__internal.h b/devel/electron36/files/patch-base_memory_discardable__memory__internal.h new file mode 100644 index 000000000000..debc3f9a15af --- /dev/null +++ b/devel/electron36/files/patch-base_memory_discardable__memory__internal.h @@ -0,0 +1,11 @@ +--- base/memory/discardable_memory_internal.h.orig 2024-10-16 21:30:44 UTC ++++ base/memory/discardable_memory_internal.h +@@ -12,7 +12,7 @@ + #include "base/metrics/field_trial_params.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + namespace base { + diff --git a/devel/electron36/files/patch-base_memory_madv__free__discardable__memory__posix.cc b/devel/electron36/files/patch-base_memory_madv__free__discardable__memory__posix.cc new file mode 100644 index 000000000000..53f73c90e500 --- /dev/null +++ b/devel/electron36/files/patch-base_memory_madv__free__discardable__memory__posix.cc @@ -0,0 +1,21 @@ +--- base/memory/madv_free_discardable_memory_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/memory/madv_free_discardable_memory_posix.cc +@@ -305,6 +305,10 @@ bool MadvFreeDiscardableMemoryPosix::IsResident() cons + + bool MadvFreeDiscardableMemoryPosix::IsResident() const { + DFAKE_SCOPED_RECURSIVE_LOCK(thread_collision_warner_); ++// XXX mincore ++#if BUILDFLAG(IS_BSD) ++ return false; ++#else + #if BUILDFLAG(IS_APPLE) + std::vector<char> vec(allocated_pages_); + #else +@@ -321,6 +325,7 @@ bool MadvFreeDiscardableMemoryPosix::IsResident() cons + } + } + return true; ++#endif + } + + bool MadvFreeDiscardableMemoryPosix::IsDiscarded() const { diff --git a/devel/electron36/files/patch-base_memory_platform__shared__memory__region.h b/devel/electron36/files/patch-base_memory_platform__shared__memory__region.h new file mode 100644 index 000000000000..8af4d9601b67 --- /dev/null +++ b/devel/electron36/files/patch-base_memory_platform__shared__memory__region.h @@ -0,0 +1,29 @@ +--- base/memory/platform_shared_memory_region.h.orig 2025-01-27 17:37:37 UTC ++++ base/memory/platform_shared_memory_region.h +@@ -18,7 +18,7 @@ + #include "base/unguessable_token.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + namespace content { + class SandboxIPCHandler; + } +@@ -85,7 +85,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion { + kMaxValue = GET_SHMEM_TEMP_DIR_FAILURE + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Structure to limit access to executable region creation. + struct ExecutableRegion { + private: +@@ -217,7 +217,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion { + CheckPlatformHandlePermissionsCorrespondToMode); + static PlatformSharedMemoryRegion Create(Mode mode, + size_t size +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + bool executable = false + #endif diff --git a/devel/electron36/files/patch-base_memory_platform__shared__memory__region__posix.cc b/devel/electron36/files/patch-base_memory_platform__shared__memory__region__posix.cc new file mode 100644 index 000000000000..ca2be093f7b3 --- /dev/null +++ b/devel/electron36/files/patch-base_memory_platform__shared__memory__region__posix.cc @@ -0,0 +1,29 @@ +--- base/memory/platform_shared_memory_region_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/memory/platform_shared_memory_region_posix.cc +@@ -55,7 +55,7 @@ bool CheckFDAccessMode(int fd, int expected_mode) { + + } // namespace + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // static + ScopedFD PlatformSharedMemoryRegion::ExecutableRegion::CreateFD(size_t size) { + PlatformSharedMemoryRegion region = +@@ -175,7 +175,7 @@ PlatformSharedMemoryRegion PlatformSharedMemoryRegion: + // static + PlatformSharedMemoryRegion PlatformSharedMemoryRegion::Create(Mode mode, + size_t size +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + bool executable + #endif +@@ -204,7 +204,7 @@ PlatformSharedMemoryRegion PlatformSharedMemoryRegion: + // flag. + FilePath directory; + if (!GetShmemTempDir( +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + executable, + #else + false /* executable */, diff --git a/devel/electron36/files/patch-base_memory_protected__memory.h b/devel/electron36/files/patch-base_memory_protected__memory.h new file mode 100644 index 000000000000..fe1efc22b7f2 --- /dev/null +++ b/devel/electron36/files/patch-base_memory_protected__memory.h @@ -0,0 +1,44 @@ +--- base/memory/protected_memory.h.orig 2025-01-27 17:37:37 UTC ++++ base/memory/protected_memory.h +@@ -120,12 +120,12 @@ __declspec(selectany) char __stop_protected_memory; + + #define DECLARE_PROTECTED_DATA constinit + #define DEFINE_PROTECTED_DATA constinit __declspec(allocate("prot$mem")) +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // This value is used to align the writers variable. That variable needs to be + // aligned to ensure that the protected memory section starts on a page + // boundary. + #if (PA_BUILDFLAG(IS_ANDROID) && PA_BUILDFLAG(PA_ARCH_CPU_64_BITS)) || \ +- (PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)) ++ ((PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)) + // arm64 supports 4kb, 16kb, and 64kb pages. Set to the largest of 64kb as that + // will guarantee the section is page aligned regardless of the choice. + inline constexpr int kProtectedMemoryAlignment = 65536; +@@ -340,7 +340,7 @@ class BASE_EXPORT AutoWritableMemoryBase { + // where an attacker could overwrite it with a large value and invoke code + // that constructs and destructs an AutoWritableMemory. After such a call + // protected memory would still be set writable because writers > 0. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // On Linux, the protected memory section is not automatically page aligned. + // This means that attempts to reset the protected memory region to readonly + // will set some of the preceding section that is on the same page readonly +@@ -354,7 +354,7 @@ class BASE_EXPORT AutoWritableMemoryBase { + #endif + static inline size_t writers GUARDED_BY(writers_lock()) = 0; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // On Linux, there is no guarantee the section following the protected + // memory section is page aligned. This can result in attempts to change + // the access permissions of the end of the protected memory section +@@ -412,7 +412,7 @@ class BASE_EXPORT AutoWritableMemoryInitializer + // the variable to something large before the section was read-only. + WriterData::writers = 0; + CHECK(SetProtectedSectionReadOnly()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Set the protected_memory_section_buffer to true to ensure the buffer + // section is created. If a variable is declared but not used the memory + // section won't be created. diff --git a/devel/electron36/files/patch-base_memory_protected__memory__posix.cc b/devel/electron36/files/patch-base_memory_protected__memory__posix.cc new file mode 100644 index 000000000000..17c05890aeb2 --- /dev/null +++ b/devel/electron36/files/patch-base_memory_protected__memory__posix.cc @@ -0,0 +1,20 @@ +--- base/memory/protected_memory_posix.cc.orig 2024-10-16 21:30:44 UTC ++++ base/memory/protected_memory_posix.cc +@@ -6,7 +6,7 @@ + + #include <sys/mman.h> + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include <sys/resource.h> + #endif // BUILDFLAG(IS_LINUX) + +@@ -34,7 +34,7 @@ namespace internal { + } // namespace + + namespace internal { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + void CheckMemoryReadOnly(const void* ptr) { + const uintptr_t page_start = + bits::AlignDown(reinterpret_cast<uintptr_t>(ptr), GetPageSize()); diff --git a/devel/electron36/files/patch-base_message__loop_message__pump__epoll.cc b/devel/electron36/files/patch-base_message__loop_message__pump__epoll.cc new file mode 100644 index 000000000000..288b7fd6d7e1 --- /dev/null +++ b/devel/electron36/files/patch-base_message__loop_message__pump__epoll.cc @@ -0,0 +1,11 @@ +--- base/message_loop/message_pump_epoll.cc.orig 2025-03-24 20:50:14 UTC ++++ base/message_loop/message_pump_epoll.cc +@@ -47,7 +47,7 @@ constexpr std::pair<uint32_t, short int> kEpollToPollE + std::atomic_bool g_use_poll = false; + + constexpr std::pair<uint32_t, short int> kEpollToPollEvents[] = { +- {EPOLLIN, POLLIN}, {EPOLLOUT, POLLOUT}, {EPOLLRDHUP, POLLRDHUP}, ++ {EPOLLIN, POLLIN}, {EPOLLOUT, POLLOUT}, + {EPOLLPRI, POLLPRI}, {EPOLLERR, POLLERR}, {EPOLLHUP, POLLHUP}}; + + void SetEventsForPoll(const uint32_t epoll_events, struct pollfd* poll_entry) { diff --git a/devel/electron36/files/patch-base_message__loop_message__pump__epoll.h b/devel/electron36/files/patch-base_message__loop_message__pump__epoll.h new file mode 100644 index 000000000000..35523e181339 --- /dev/null +++ b/devel/electron36/files/patch-base_message__loop_message__pump__epoll.h @@ -0,0 +1,14 @@ +--- base/message_loop/message_pump_epoll.h.orig 2024-10-16 21:30:44 UTC ++++ base/message_loop/message_pump_epoll.h +@@ -51,7 +51,11 @@ BASE_FEATURE(kUsePollForMessagePumpEpoll, + // every call, don't do it when we have too many FDs. + BASE_FEATURE(kUsePollForMessagePumpEpoll, + "UsePollForMessagePumpEpoll", ++#if BUILDFLAG(IS_BSD) ++ base::FEATURE_ENABLED_BY_DEFAULT); ++#else + base::FEATURE_DISABLED_BY_DEFAULT); ++#endif + + // A MessagePump implementation suitable for I/O message loops on Linux-based + // systems with epoll API support. diff --git a/devel/electron36/files/patch-base_message__loop_message__pump__glib.cc b/devel/electron36/files/patch-base_message__loop_message__pump__glib.cc new file mode 100644 index 000000000000..6a430c96efe4 --- /dev/null +++ b/devel/electron36/files/patch-base_message__loop_message__pump__glib.cc @@ -0,0 +1,28 @@ +--- base/message_loop/message_pump_glib.cc.orig 2025-04-22 20:15:27 UTC ++++ base/message_loop/message_pump_glib.cc +@@ -8,6 +8,11 @@ + #include <glib.h> + #include <math.h> + ++#if BUILDFLAG(IS_BSD) ++#include <pthread.h> ++#include <pthread_np.h> ++#endif ++ + #include "base/logging.h" + #include "base/memory/raw_ptr.h" + #include "base/notreached.h" +@@ -52,9 +57,13 @@ bool RunningOnMainThread() { + } + + bool RunningOnMainThread() { ++#if BUILDFLAG(IS_BSD) ++ return pthread_main_np(); ++#else + auto pid = getpid(); + auto tid = PlatformThread::CurrentId().raw(); + return pid > 0 && tid > 0 && pid == tid; ++#endif + } + + // A brief refresher on GLib: diff --git a/devel/electron36/files/patch-base_native__library__posix.cc b/devel/electron36/files/patch-base_native__library__posix.cc new file mode 100644 index 000000000000..c2799ae4ec64 --- /dev/null +++ b/devel/electron36/files/patch-base_native__library__posix.cc @@ -0,0 +1,11 @@ +--- base/native_library_posix.cc.orig 2024-08-14 20:54:23 UTC ++++ base/native_library_posix.cc +@@ -34,7 +34,7 @@ NativeLibrary LoadNativeLibraryWithOptions(const FileP + // http://crbug.com/17943, http://crbug.com/17557, http://crbug.com/36892, + // and http://crbug.com/40794. + int flags = RTLD_LAZY; +-#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND) ++#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND) || BUILDFLAG(IS_BSD) + // Certain platforms don't define RTLD_DEEPBIND. Android dlopen() requires + // further investigation, as it might vary across versions. Crash here to + // warn developers that they're trying to rely on uncertain behavior. diff --git a/devel/electron36/files/patch-base_native__library__unittest.cc b/devel/electron36/files/patch-base_native__library__unittest.cc new file mode 100644 index 000000000000..8d710fec4649 --- /dev/null +++ b/devel/electron36/files/patch-base_native__library__unittest.cc @@ -0,0 +1,11 @@ +--- base/native_library_unittest.cc.orig 2024-10-16 21:30:44 UTC ++++ base/native_library_unittest.cc +@@ -135,7 +135,7 @@ TEST(NativeLibraryTest, LoadLibrary) { + // versions with respect to symbol resolution scope. + // TSan and MSan error out on RTLD_DEEPBIND, https://crbug.com/705255 + #if !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \ +- !defined(MEMORY_SANITIZER) ++ !defined(MEMORY_SANITIZER) && !BUILDFLAG(IS_BSD) + + // Verifies that the |prefer_own_symbols| option satisfies its guarantee that + // a loaded library will always prefer local symbol resolution before diff --git a/devel/electron36/files/patch-base_posix_can__lower__nice__to.cc b/devel/electron36/files/patch-base_posix_can__lower__nice__to.cc new file mode 100644 index 000000000000..67a5d35808ae --- /dev/null +++ b/devel/electron36/files/patch-base_posix_can__lower__nice__to.cc @@ -0,0 +1,16 @@ +--- base/posix/can_lower_nice_to.cc.orig 2022-02-28 16:54:41 UTC ++++ base/posix/can_lower_nice_to.cc +@@ -11,8 +11,12 @@ + + #include "build/build_config.h" + ++#if BUILDFLAG(IS_FREEBSD) ++#include <sys/param.h> ++#endif ++ + // Not defined on AIX by default. +-#if BUILDFLAG(IS_AIX) ++#if BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + #if defined(RLIMIT_NICE) + #error Assumption about OS_AIX is incorrect + #endif diff --git a/devel/electron36/files/patch-base_posix_file__descriptor__shuffle.h b/devel/electron36/files/patch-base_posix_file__descriptor__shuffle.h new file mode 100644 index 000000000000..165dd73720dd --- /dev/null +++ b/devel/electron36/files/patch-base_posix_file__descriptor__shuffle.h @@ -0,0 +1,11 @@ +--- base/posix/file_descriptor_shuffle.h.orig 2024-10-16 21:30:44 UTC ++++ base/posix/file_descriptor_shuffle.h +@@ -26,6 +26,8 @@ + #include "base/base_export.h" + #include "base/compiler_specific.h" + ++#undef close ++ + namespace base { + + // A Delegate which performs the actions required to perform an injective diff --git a/devel/electron36/files/patch-base_posix_sysctl.cc b/devel/electron36/files/patch-base_posix_sysctl.cc new file mode 100644 index 000000000000..7599323d6f5b --- /dev/null +++ b/devel/electron36/files/patch-base_posix_sysctl.cc @@ -0,0 +1,10 @@ +--- base/posix/sysctl.cc.orig 2023-11-29 21:39:40 UTC ++++ base/posix/sysctl.cc +@@ -4,6 +4,7 @@ + + #include "base/posix/sysctl.h" + ++#include <sys/types.h> + #include <sys/sysctl.h> + + #include <initializer_list> diff --git a/devel/electron36/files/patch-base_posix_unix__domain__socket.cc b/devel/electron36/files/patch-base_posix_unix__domain__socket.cc new file mode 100644 index 000000000000..bbeec9a890a7 --- /dev/null +++ b/devel/electron36/files/patch-base_posix_unix__domain__socket.cc @@ -0,0 +1,57 @@ +--- base/posix/unix_domain_socket.cc.orig 2025-03-24 20:50:14 UTC ++++ base/posix/unix_domain_socket.cc +@@ -47,7 +47,7 @@ bool UnixDomainSocket::EnableReceiveProcessId(int fd) + + // static + bool UnixDomainSocket::EnableReceiveProcessId(int fd) { +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + const int enable = 1; + return setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable)) == 0; + #else +@@ -73,7 +73,7 @@ bool UnixDomainSocket::SendMsg(int fd, + + struct cmsghdr* cmsg; + msg.msg_control = control_buffer; +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + msg.msg_controllen = checked_cast<socklen_t>(control_len); + #else + msg.msg_controllen = control_len; +@@ -81,7 +81,7 @@ bool UnixDomainSocket::SendMsg(int fd, + cmsg = CMSG_FIRSTHDR(&msg); + cmsg->cmsg_level = SOL_SOCKET; + cmsg->cmsg_type = SCM_RIGHTS; +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + cmsg->cmsg_len = checked_cast<u_int>(CMSG_LEN(sizeof(int) * fds.size())); + #else + cmsg->cmsg_len = CMSG_LEN(sizeof(int) * fds.size()); +@@ -133,7 +133,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd, + + const size_t kControlBufferSize = + CMSG_SPACE(sizeof(int) * kMaxFileDescriptors) +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + // macOS does not support ucred. + // macOS supports xucred, but this structure is insufficient. + + CMSG_SPACE(sizeof(struct ucred)) +@@ -162,7 +162,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd, + wire_fds = reinterpret_cast<int*>(CMSG_DATA(cmsg)); + wire_fds_len = payload_len / sizeof(int); + } +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + // macOS does not support SCM_CREDENTIALS. + if (cmsg->cmsg_level == SOL_SOCKET && + cmsg->cmsg_type == SCM_CREDENTIALS) { +@@ -199,6 +199,9 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd, + if (getsockopt(fd, SOL_LOCAL, LOCAL_PEERPID, &pid, &pid_size) != 0) { + pid = -1; + } ++#elif BUILDFLAG(IS_BSD) ++ NOTIMPLEMENTED(); ++ pid = -1; + #else + // |pid| will legitimately be -1 if we read EOF, so only DCHECK if we + // actually received a message. Unfortunately, Linux allows sending zero diff --git a/devel/electron36/files/patch-base_posix_unix__domain__socket__unittest.cc b/devel/electron36/files/patch-base_posix_unix__domain__socket__unittest.cc new file mode 100644 index 000000000000..432387473491 --- /dev/null +++ b/devel/electron36/files/patch-base_posix_unix__domain__socket__unittest.cc @@ -0,0 +1,11 @@ +--- base/posix/unix_domain_socket_unittest.cc.orig 2024-06-18 21:43:17 UTC ++++ base/posix/unix_domain_socket_unittest.cc +@@ -15,6 +15,8 @@ + #include <sys/types.h> + #include <unistd.h> + ++#include <signal.h> ++ + #include "base/files/file_util.h" + #include "base/files/scoped_file.h" + #include "base/functional/bind.h" diff --git a/devel/electron36/files/patch-base_process_internal__linux.h b/devel/electron36/files/patch-base_process_internal__linux.h new file mode 100644 index 000000000000..b7c50ad568de --- /dev/null +++ b/devel/electron36/files/patch-base_process_internal__linux.h @@ -0,0 +1,20 @@ +--- base/process/internal_linux.h.orig 2025-04-22 20:15:27 UTC ++++ base/process/internal_linux.h +@@ -144,6 +144,9 @@ void ForEachProcessTask(base::ProcessHandle process, L + // arguments to the lambda. + template <typename Lambda> + void ForEachProcessTask(base::ProcessHandle process, Lambda&& lambda) { ++#if BUILDFLAG(IS_BSD) ++ return; ++#else + // Iterate through the different threads tracked in /proc/<pid>/task. + FilePath fd_path = GetProcPidDir(process).Append("task"); + +@@ -167,6 +170,7 @@ void ForEachProcessTask(base::ProcessHandle process, L + FilePath task_path = fd_path.Append(tid_str); + lambda(tid, task_path); + } ++#endif + } + + } // namespace internal diff --git a/devel/electron36/files/patch-base_process_kill.h b/devel/electron36/files/patch-base_process_kill.h new file mode 100644 index 000000000000..0b3cda06b1f8 --- /dev/null +++ b/devel/electron36/files/patch-base_process_kill.h @@ -0,0 +1,11 @@ +--- base/process/kill.h.orig 2025-03-24 20:50:14 UTC ++++ base/process/kill.h +@@ -123,7 +123,7 @@ GetKnownDeadTerminationStatus(ProcessHandle handle, in + BASE_EXPORT TerminationStatus + GetKnownDeadTerminationStatus(ProcessHandle handle, int* exit_code); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Spawns a thread to wait asynchronously for the child |process| to exit + // and then reaps it. + BASE_EXPORT void EnsureProcessGetsReaped(Process process); diff --git a/devel/electron36/files/patch-base_process_kill__posix.cc b/devel/electron36/files/patch-base_process_kill__posix.cc new file mode 100644 index 000000000000..09bdcf9f7afb --- /dev/null +++ b/devel/electron36/files/patch-base_process_kill__posix.cc @@ -0,0 +1,11 @@ +--- base/process/kill_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/kill_posix.cc +@@ -161,7 +161,7 @@ void EnsureProcessTerminated(Process process) { + 0, new BackgroundReaper(std::move(process), Seconds(2))); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void EnsureProcessGetsReaped(Process process) { + DCHECK(!process.is_current()); + diff --git a/devel/electron36/files/patch-base_process_launch.h b/devel/electron36/files/patch-base_process_launch.h new file mode 100644 index 000000000000..7bb91256fc17 --- /dev/null +++ b/devel/electron36/files/patch-base_process_launch.h @@ -0,0 +1,11 @@ +--- base/process/launch.h.orig 2025-01-27 17:37:37 UTC ++++ base/process/launch.h +@@ -241,7 +241,7 @@ struct BASE_EXPORT LaunchOptions { + bool clear_environment = false; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // If non-zero, start the process using clone(), using flags as provided. + // Unlike in clone, clone_flags may not contain a custom termination signal + // that is sent to the parent when the child dies. The termination signal will diff --git a/devel/electron36/files/patch-base_process_launch__posix.cc b/devel/electron36/files/patch-base_process_launch__posix.cc new file mode 100644 index 000000000000..483b2bd11b03 --- /dev/null +++ b/devel/electron36/files/patch-base_process_launch__posix.cc @@ -0,0 +1,12 @@ +--- base/process/launch_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ base/process/launch_posix.cc +@@ -62,6 +62,9 @@ + #error "macOS should use launch_mac.cc" + #endif + ++#if defined(OS_FREEBSD) ++#pragma weak environ ++#endif + extern char** environ; + + namespace base { diff --git a/devel/electron36/files/patch-base_process_memory__linux.cc b/devel/electron36/files/patch-base_process_memory__linux.cc new file mode 100644 index 000000000000..70836d7d210e --- /dev/null +++ b/devel/electron36/files/patch-base_process_memory__linux.cc @@ -0,0 +1,44 @@ +--- base/process/memory_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/memory_linux.cc +@@ -28,6 +28,7 @@ namespace base { + + namespace base { + ++#if !BUILDFLAG(IS_BSD) + namespace { + + void ReleaseReservationOrTerminate() { +@@ -38,12 +39,14 @@ void ReleaseReservationOrTerminate() { + } + + } // namespace ++#endif + + void EnableTerminationOnHeapCorruption() { + // On Linux, there nothing to do AFAIK. + } + + void EnableTerminationOnOutOfMemory() { ++#if !BUILDFLAG(IS_BSD) + // Set the new-out of memory handler. + std::set_new_handler(&ReleaseReservationOrTerminate); + // If we're using glibc's allocator, the above functions will override +@@ -52,8 +55,10 @@ void EnableTerminationOnOutOfMemory() { + #if PA_BUILDFLAG(USE_ALLOCATOR_SHIM) + allocator_shim::SetCallNewHandlerOnMallocFailure(true); + #endif ++#endif + } + ++#if !BUILDFLAG(IS_BSD) + // ScopedAllowBlocking() has private constructor and it can only be used in + // friend classes/functions. Declaring a class is easier in this situation to + // avoid adding more dependency to thread_restrictions.h because of the +@@ -111,6 +116,7 @@ bool AdjustOOMScore(ProcessId process, int score) { + bool AdjustOOMScore(ProcessId process, int score) { + return AdjustOOMScoreHelper::AdjustOOMScore(process, score); + } ++#endif + + bool UncheckedMalloc(size_t size, void** result) { + #if PA_BUILDFLAG(USE_ALLOCATOR_SHIM) diff --git a/devel/electron36/files/patch-base_process_process__handle.cc b/devel/electron36/files/patch-base_process_process__handle.cc new file mode 100644 index 000000000000..efb95e7c3b54 --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__handle.cc @@ -0,0 +1,11 @@ +--- base/process/process_handle.cc.orig 2022-02-28 16:54:41 UTC ++++ base/process/process_handle.cc +@@ -30,7 +30,7 @@ UniqueProcId GetUniqueIdForProcess() { + : UniqueProcId(GetCurrentProcId()); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + + void InitUniqueIdForProcessInPidNamespace(ProcessId pid_outside_of_namespace) { + DCHECK(pid_outside_of_namespace != kNullProcessId); diff --git a/devel/electron36/files/patch-base_process_process__handle.h b/devel/electron36/files/patch-base_process_process__handle.h new file mode 100644 index 000000000000..43885dd9eb96 --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__handle.h @@ -0,0 +1,11 @@ +--- base/process/process_handle.h.orig 2024-02-21 00:20:30 UTC ++++ base/process/process_handle.h +@@ -86,7 +86,7 @@ BASE_EXPORT UniqueProcId GetUniqueIdForProcess(); + // processes may be reused. + BASE_EXPORT UniqueProcId GetUniqueIdForProcess(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // When a process is started in a different PID namespace from the browser + // process, this function must be called with the process's PID in the browser's + // PID namespace in order to initialize its unique ID. Not thread safe. diff --git a/devel/electron36/files/patch-base_process_process__handle__freebsd.cc b/devel/electron36/files/patch-base_process_process__handle__freebsd.cc new file mode 100644 index 000000000000..ae98b5669b75 --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__handle__freebsd.cc @@ -0,0 +1,25 @@ +--- base/process/process_handle_freebsd.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_handle_freebsd.cc +@@ -3,6 +3,7 @@ + // found in the LICENSE file. + + #include "base/process/process_handle.h" ++#include "base/files/file_util.h" + + #include <limits.h> + #include <stddef.h> +@@ -20,10 +21,13 @@ ProcessId GetParentProcessId(ProcessHandle process) { + + ProcessId GetParentProcessId(ProcessHandle process) { + struct kinfo_proc info; +- size_t length; ++ size_t length = sizeof(struct kinfo_proc); + int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, process}; + + if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) { ++ return -1; ++ ++ if (length < sizeof(struct kinfo_proc)) + return -1; + } + diff --git a/devel/electron36/files/patch-base_process_process__handle__openbsd.cc b/devel/electron36/files/patch-base_process_process__handle__openbsd.cc new file mode 100644 index 000000000000..4dfafb34d672 --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__handle__openbsd.cc @@ -0,0 +1,138 @@ +--- base/process/process_handle_openbsd.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_handle_openbsd.cc +@@ -3,17 +3,25 @@ + // found in the LICENSE file. + + #include "base/process/process_handle.h" ++#include "base/files/file_util.h" + + #include <stddef.h> ++#include <stdlib.h> ++#include <sys/param.h> ++#include <sys/proc.h> ++#include <sys/stat.h> + #include <sys/sysctl.h> + #include <sys/types.h> + #include <unistd.h> + ++#include <kvm.h> ++ + namespace base { + + ProcessId GetParentProcessId(ProcessHandle process) { +- struct kinfo_proc info; ++ struct kinfo_proc *info; + size_t length; ++ pid_t ppid; + int mib[] = { + CTL_KERN, KERN_PROC, KERN_PROC_PID, process, sizeof(struct kinfo_proc), + 0}; +@@ -22,37 +30,87 @@ ProcessId GetParentProcessId(ProcessHandle process) { + return -1; + } + +- mib[5] = (length / sizeof(struct kinfo_proc)); ++ info = (struct kinfo_proc *)malloc(length); + +- if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) { +- return -1; ++ mib[5] = static_cast<int>((length / sizeof(struct kinfo_proc))); ++ ++ if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) { ++ ppid = -1; ++ goto out; + } + +- return info.p_ppid; ++ ppid = info->p_ppid; ++ ++out: ++ free(info); ++ return ppid; + } + + FilePath GetProcessExecutablePath(ProcessHandle process) { +- struct kinfo_proc kp; ++ struct kinfo_file *files; ++ kvm_t *kd = NULL; ++ char errbuf[_POSIX2_LINE_MAX]; ++ char **retvalargs, *cpath, retval[PATH_MAX]; ++ int cnt; + size_t len; +- int mib[] = { +- CTL_KERN, KERN_PROC, KERN_PROC_PID, process, sizeof(struct kinfo_proc), +- 0}; ++ char *tokens[2]; ++ struct stat sb; ++ FilePath result; + +- if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) == -1) { +- return FilePath(); ++ int mib[] = { CTL_KERN, KERN_PROC_ARGS, process, KERN_PROC_ARGV }; ++ ++ if ((cpath = getenv("CHROME_EXE_PATH")) != NULL) ++ result = FilePath(cpath); ++ else ++ result = FilePath("/usr/local/chrome/chrome"); ++ ++ if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) != -1) { ++ retvalargs = static_cast<char**>(malloc(len)); ++ if (!retvalargs) ++ return result; ++ ++ if (sysctl(mib, std::size(mib), retvalargs, &len, NULL, 0) < 0) { ++ free(retvalargs); ++ return result; ++ } ++ ++ if ((*tokens = strtok(retvalargs[0], ":")) == NULL) { ++ free(retvalargs); ++ return result; ++ } ++ ++ free(retvalargs); ++ ++ if (tokens[0] == NULL) ++ return result; ++ ++ if (realpath(tokens[0], retval) == NULL) ++ return result; ++ ++ if (stat(retval, &sb) < 0) ++ return result; ++ ++ if ((kd = kvm_openfiles(NULL, NULL, NULL, (int)KVM_NO_FILES, ++ errbuf)) == NULL) ++ return result; ++ ++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, process, ++ sizeof(struct kinfo_file), &cnt)) == NULL) { ++ kvm_close(kd); ++ return result; ++ } ++ ++ for (int i = 0; i < cnt; i++) { ++ if (files[i].fd_fd == KERN_FILE_TEXT && ++ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) && ++ files[i].va_fileid == sb.st_ino) { ++ kvm_close(kd); ++ result = FilePath(retval); ++ } ++ } + } +- mib[5] = (len / sizeof(struct kinfo_proc)); +- if (sysctl(mib, std::size(mib), &kp, &len, NULL, 0) < 0) { +- return FilePath(); +- } +- if ((kp.p_flag & P_SYSTEM) != 0) { +- return FilePath(); +- } +- if (strcmp(kp.p_comm, "chrome") == 0) { +- return FilePath(kp.p_comm); +- } + +- return FilePath(); ++ return result; + } + + } // namespace base diff --git a/devel/electron36/files/patch-base_process_process__iterator__freebsd.cc b/devel/electron36/files/patch-base_process_process__iterator__freebsd.cc new file mode 100644 index 000000000000..842c1a5ab32d --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__iterator__freebsd.cc @@ -0,0 +1,52 @@ +--- base/process/process_iterator_freebsd.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_iterator_freebsd.cc +@@ -18,7 +18,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + + ProcessIterator::ProcessIterator(const ProcessFilter* filter) + : filter_(filter) { +- int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_UID, getuid()}; ++ int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_UID, (int) getuid()}; + + bool done = false; + int try_num = 1; +@@ -37,7 +37,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + num_of_kinfo_proc += 16; + kinfo_procs_.resize(num_of_kinfo_proc); + len = num_of_kinfo_proc * sizeof(struct kinfo_proc); +- if (sysctl(mib, std::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) { ++ if (sysctl(mib, std::size(mib), kinfo_procs_.data(), &len, NULL, 0) < 0) { + // If we get a mem error, it just means we need a bigger buffer, so + // loop around again. Anything else is a real error and give up. + if (errno != ENOMEM) { +@@ -47,7 +47,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + } + } else { + // Got the list, just make sure we're sized exactly right +- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc); ++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc); + kinfo_procs_.resize(num_of_kinfo_proc); + done = true; + } +@@ -68,19 +68,14 @@ bool ProcessIterator::CheckForNextProcess() { + for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) { + size_t length; + struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_]; +- int mib[] = {CTL_KERN, KERN_PROC_ARGS, kinfo.ki_pid}; ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ARGS, kinfo.ki_pid }; + + if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB)) { + continue; + } + +- length = 0; +- if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0) { +- LOG(ERROR) << "failed to figure out the buffer size for a command line"; +- continue; +- } +- +- data.resize(length); ++ data.resize(ARG_MAX); ++ length = ARG_MAX; + + if (sysctl(mib, std::size(mib), &data[0], &length, NULL, 0) < 0) { + LOG(ERROR) << "failed to fetch a commandline"; diff --git a/devel/electron36/files/patch-base_process_process__iterator__openbsd.cc b/devel/electron36/files/patch-base_process_process__iterator__openbsd.cc new file mode 100644 index 000000000000..ea17e1335c70 --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__iterator__openbsd.cc @@ -0,0 +1,46 @@ +--- base/process/process_iterator_openbsd.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_iterator_openbsd.cc +@@ -6,6 +6,9 @@ + + #include <errno.h> + #include <stddef.h> ++#include <unistd.h> ++#include <sys/param.h> ++#include <sys/proc.h> + #include <sys/sysctl.h> + + #include "base/logging.h" +@@ -17,12 +20,13 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + ProcessIterator::ProcessIterator(const ProcessFilter* filter) + : filter_(filter) { + int mib[] = { +- CTL_KERN, KERN_PROC, KERN_PROC_UID, getuid(), sizeof(struct kinfo_proc), +- 0}; ++ CTL_KERN, KERN_PROC, KERN_PROC_UID, static_cast<int>(getuid()), ++ sizeof(struct kinfo_proc), 0 }; + + bool done = false; + int try_num = 1; + const int max_tries = 10; ++ size_t num_of_kinfo_proc; + + do { + size_t len = 0; +@@ -31,7 +35,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + kinfo_procs_.resize(0); + done = true; + } else { +- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc); ++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc); + // Leave some spare room for process table growth (more could show up + // between when we check and now) + num_of_kinfo_proc += 16; +@@ -47,7 +51,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + } + } else { + // Got the list, just make sure we're sized exactly right +- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc); ++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc); + kinfo_procs_.resize(num_of_kinfo_proc); + done = true; + } diff --git a/devel/electron36/files/patch-base_process_process__metrics.cc b/devel/electron36/files/patch-base_process_process__metrics.cc new file mode 100644 index 000000000000..4fff9489330f --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__metrics.cc @@ -0,0 +1,49 @@ +--- base/process/process_metrics.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_metrics.cc +@@ -17,7 +17,7 @@ namespace { + namespace { + + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + int CalculateEventsPerSecond(uint64_t event_count, + uint64_t* last_event_count, + base::TimeTicks* last_calculated) { +@@ -54,7 +54,7 @@ SystemMetrics SystemMetrics::Sample() { + SystemMetrics system_metrics; + + system_metrics.committed_memory_ = GetSystemCommitCharge(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + GetSystemMemoryInfo(&system_metrics.memory_info_); + GetVmStatInfo(&system_metrics.vmstat_info_); + GetSystemDiskInfo(&system_metrics.disk_info_); +@@ -73,7 +73,7 @@ Value::Dict SystemMetrics::ToDict() const { + Value::Dict res; + + res.Set("committed_memory", static_cast<int>(committed_memory_)); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + Value::Dict meminfo = memory_info_.ToDict(); + meminfo.Merge(vmstat_info_.ToDict()); + res.Set("meminfo", std::move(meminfo)); +@@ -100,7 +100,6 @@ std::unique_ptr<ProcessMetrics> ProcessMetrics::Create + #endif // !BUILDFLAG(IS_MAC) + } + +-#if !BUILDFLAG(IS_FREEBSD) || !BUILDFLAG(IS_POSIX) + double ProcessMetrics::GetPlatformIndependentCPUUsage( + TimeDelta cumulative_cpu) { + TimeTicks time = TimeTicks::Now(); +@@ -130,10 +129,9 @@ ProcessMetrics::GetPlatformIndependentCPUUsage() { + return GetPlatformIndependentCPUUsage(cpu_usage); + }); + } +-#endif + + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + int ProcessMetrics::CalculateIdleWakeupsPerSecond( + uint64_t absolute_idle_wakeups) { + return CalculateEventsPerSecond(absolute_idle_wakeups, diff --git a/devel/electron36/files/patch-base_process_process__metrics.h b/devel/electron36/files/patch-base_process_process__metrics.h new file mode 100644 index 000000000000..1be5ba2ec04f --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__metrics.h @@ -0,0 +1,106 @@ +--- base/process/process_metrics.h.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_metrics.h +@@ -39,7 +39,7 @@ + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + #include <string> + #include <utility> + #include <vector> +@@ -49,7 +49,7 @@ namespace base { + + namespace base { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Minor and major page fault counts since the process creation. + // Both counts are process-wide, and exclude child processes. + // +@@ -179,7 +179,7 @@ class BASE_EXPORT ProcessMetrics { + base::expected<TimeDelta, ProcessCPUUsageError> GetCumulativeCPUUsage(); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // Emits the cumulative CPU usage for all currently active threads since they + // were started into the output parameter (replacing its current contents). + // Threads that have already terminated will not be reported. Thus, the sum of +@@ -224,7 +224,7 @@ class BASE_EXPORT ProcessMetrics { + int GetOpenFdSoftLimit() const; + #endif // BUILDFLAG(IS_POSIX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Minor and major page fault count as reported by /proc/[pid]/stat. + // Returns true for success. + bool GetPageFaultCounts(PageFaultCounts* counts) const; +@@ -242,7 +242,7 @@ class BASE_EXPORT ProcessMetrics { + #endif // !BUILDFLAG(IS_MAC) + + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + int CalculateIdleWakeupsPerSecond(uint64_t absolute_idle_wakeups); + #endif + #if BUILDFLAG(IS_APPLE) +@@ -264,12 +264,10 @@ 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_; +-#if !BUILDFLAG(IS_FREEBSD) || !BUILDFLAG(IS_POSIX) + TimeDelta last_cumulative_cpu_; +-#endif + + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // Same thing for idle wakeups. + TimeTicks last_idle_wakeups_time_; + uint64_t last_absolute_idle_wakeups_; +@@ -310,7 +308,7 @@ BASE_EXPORT void IncreaseFdLimitTo(unsigned int max_de + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_AIX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Data about system-wide memory consumption. Values are in KB. Available on + // Windows, Mac, Linux, Android and Chrome OS. + // +@@ -345,7 +343,7 @@ struct BASE_EXPORT SystemMemoryInfoKB { + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // This provides an estimate of available memory as described here: + // https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773 + // NOTE: this is ONLY valid in kernels 3.14 and up. Its value will always +@@ -360,7 +358,7 @@ struct BASE_EXPORT SystemMemoryInfoKB { + #endif + + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + int buffers = 0; + int cached = 0; + int active_anon = 0; +@@ -397,7 +395,7 @@ BASE_EXPORT bool GetSystemMemoryInfo(SystemMemoryInfoK + // BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // Parse the data found in /proc/<pid>/stat and return the sum of the + // CPU-related ticks. Returns -1 on parse error. + // Exposed for testing. +@@ -591,7 +589,7 @@ class BASE_EXPORT SystemMetrics { + FRIEND_TEST_ALL_PREFIXES(SystemMetricsTest, SystemMetrics); + + size_t committed_memory_; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + SystemMemoryInfoKB memory_info_; + VmStatInfo vmstat_info_; + SystemDiskInfo disk_info_; diff --git a/devel/electron36/files/patch-base_process_process__metrics__freebsd.cc b/devel/electron36/files/patch-base_process_process__metrics__freebsd.cc new file mode 100644 index 000000000000..3505afec7278 --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__metrics__freebsd.cc @@ -0,0 +1,283 @@ +--- base/process/process_metrics_freebsd.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_metrics_freebsd.cc +@@ -3,41 +3,92 @@ + // found in the LICENSE file. + + #include "base/process/process_metrics.h" ++#include "base/notreached.h" + + #include <stddef.h> ++#include <sys/types.h> + #include <sys/sysctl.h> + #include <sys/user.h> + #include <unistd.h> + ++#include <fcntl.h> /* O_RDONLY */ ++#include <kvm.h> ++#include <libutil.h> ++ + #include "base/memory/ptr_util.h" ++#include "base/values.h" + + namespace base { ++namespace { ++int GetPageShift() { ++ int pagesize = getpagesize(); ++ int pageshift = 0; + +-ProcessMetrics::ProcessMetrics(ProcessHandle process) +- : process_(process), last_cpu_(0) {} ++ while (pagesize > 1) { ++ pageshift++; ++ pagesize >>= 1; ++ } + ++ return pageshift; ++} ++} ++ ++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {} ++ + // static + std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics( + ProcessHandle process) { + return WrapUnique(new ProcessMetrics(process)); + } + +-base::expected<double, ProcessCPUUsageError> +-ProcessMetrics::GetPlatformIndependentCPUUsage() { +- struct kinfo_proc info; +- int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, process_}; +- size_t length = sizeof(info); ++base::expected<ProcessMemoryInfo, ProcessUsageError> ++ProcessMetrics::GetMemoryInfo() const { ++ ProcessMemoryInfo memory_info; ++ kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open"); ++ struct kinfo_proc *pp; ++ int nproc; + +- if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) { +- return base::unexpected(ProcessCPUUsageError::kSystemError); ++ if (kd == nullptr) { ++ return base::unexpected(ProcessUsageError::kSystemError); + } + +- return base::ok(double{info.ki_pctcpu} / FSCALE * 100.0); ++ if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) { ++ kvm_close(kd); ++ return base::unexpected(ProcessUsageError::kProcessNotFound); ++ } ++ ++ if (nproc > 0) { ++ memory_info.resident_set_bytes = pp->ki_rssize << GetPageShift(); ++ } else { ++ kvm_close(kd); ++ return base::unexpected(ProcessUsageError::kProcessNotFound); ++ } ++ ++ kvm_close(kd); ++ return memory_info; + } + + base::expected<TimeDelta, ProcessCPUUsageError> + ProcessMetrics::GetCumulativeCPUUsage() { +- NOTREACHED(); ++ struct kinfo_proc info; ++ size_t length = sizeof(struct kinfo_proc); ++ struct timeval tv; ++ ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ }; ++ ++ if (process_ == 0) { ++ return base::unexpected(ProcessCPUUsageError::kSystemError); ++ } ++ ++ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) { ++ return base::unexpected(ProcessCPUUsageError::kSystemError); ++ } ++ ++ if (length == 0) { ++ return base::unexpected(ProcessCPUUsageError::kProcessNotFound); ++ } ++ ++ return base::ok(Microseconds(info.ki_runtime)); + } + + size_t GetSystemCommitCharge() { +@@ -64,6 +115,176 @@ size_t GetSystemCommitCharge() { + pagesize = getpagesize(); + + return mem_total - (mem_free * pagesize) - (mem_inactive * pagesize); ++} ++ ++int64_t GetNumberOfThreads(ProcessHandle process) { ++ // Taken from FreeBSD top (usr.bin/top/machine.c) ++ ++ kvm_t* kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open"); ++ if (kd == NULL) ++ return 0; ++ ++ struct kinfo_proc* pbase; ++ int nproc; ++ pbase = kvm_getprocs(kd, KERN_PROC_PID, process, &nproc); ++ if (pbase == NULL) ++ return 0; ++ ++ if (kvm_close(kd) == -1) ++ return 0; ++ ++ return nproc; ++} ++ ++bool GetSystemMemoryInfo(SystemMemoryInfoKB *meminfo) { ++ unsigned int mem_total, mem_free, swap_total, swap_used; ++ size_t length; ++ int pagesizeKB; ++ ++ pagesizeKB = getpagesize() / 1024; ++ ++ length = sizeof(mem_total); ++ if (sysctlbyname("vm.stats.vm.v_page_count", &mem_total, ++ &length, NULL, 0) != 0 || length != sizeof(mem_total)) ++ return false; ++ ++ length = sizeof(mem_free); ++ if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &length, NULL, 0) ++ != 0 || length != sizeof(mem_free)) ++ return false; ++ ++ length = sizeof(swap_total); ++ if (sysctlbyname("vm.swap_size", &swap_total, &length, NULL, 0) ++ != 0 || length != sizeof(swap_total)) ++ return false; ++ ++ length = sizeof(swap_used); ++ if (sysctlbyname("vm.swap_anon_use", &swap_used, &length, NULL, 0) ++ != 0 || length != sizeof(swap_used)) ++ return false; ++ ++ meminfo->total = mem_total * pagesizeKB; ++ meminfo->free = mem_free * pagesizeKB; ++ meminfo->swap_total = swap_total * pagesizeKB; ++ meminfo->swap_free = (swap_total - swap_used) * pagesizeKB; ++ ++ return true; ++} ++ ++int ProcessMetrics::GetOpenFdCount() const { ++ struct kinfo_file * kif; ++ int cnt; ++ ++ if ((kif = kinfo_getfile(process_, &cnt)) == NULL) ++ return -1; ++ ++ free(kif); ++ ++ return cnt; ++} ++ ++int ProcessMetrics::GetOpenFdSoftLimit() const { ++ size_t length; ++ int total_count = 0; ++ int mib[] = { CTL_KERN, KERN_MAXFILESPERPROC }; ++ ++ length = sizeof(total_count); ++ ++ if (sysctl(mib, std::size(mib), &total_count, &length, NULL, 0) < 0) { ++ total_count = -1; ++ } ++ ++ return total_count; ++} ++ ++int ProcessMetrics::GetIdleWakeupsPerSecond() { ++ NOTIMPLEMENTED(); ++ return 0; ++} ++ ++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++bool GetVmStatInfo(VmStatInfo* vmstat) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++SystemDiskInfo::SystemDiskInfo() { ++ reads = 0; ++ reads_merged = 0; ++ sectors_read = 0; ++ read_time = 0; ++ writes = 0; ++ writes_merged = 0; ++ sectors_written = 0; ++ write_time = 0; ++ io = 0; ++ io_time = 0; ++ weighted_io_time = 0; ++} ++ ++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo& other) = default; ++ ++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default; ++ ++Value::Dict SystemDiskInfo::ToDict() const { ++ Value::Dict res; ++ ++ // Write out uint64_t variables as doubles. ++ // Note: this may discard some precision, but for JS there's no other option. ++ res.Set("reads", static_cast<double>(reads)); ++ res.Set("reads_merged", static_cast<double>(reads_merged)); ++ res.Set("sectors_read", static_cast<double>(sectors_read)); ++ res.Set("read_time", static_cast<double>(read_time)); ++ res.Set("writes", static_cast<double>(writes)); ++ res.Set("writes_merged", static_cast<double>(writes_merged)); ++ res.Set("sectors_written", static_cast<double>(sectors_written)); ++ res.Set("write_time", static_cast<double>(write_time)); ++ res.Set("io", static_cast<double>(io)); ++ res.Set("io_time", static_cast<double>(io_time)); ++ res.Set("weighted_io_time", static_cast<double>(weighted_io_time)); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; ++} ++ ++Value::Dict SystemMemoryInfoKB::ToDict() const { ++ Value::Dict res; ++ res.Set("total", total); ++ res.Set("free", free); ++ res.Set("available", available); ++ res.Set("buffers", buffers); ++ res.Set("cached", cached); ++ res.Set("active_anon", active_anon); ++ res.Set("inactive_anon", inactive_anon); ++ res.Set("active_file", active_file); ++ res.Set("inactive_file", inactive_file); ++ res.Set("swap_total", swap_total); ++ res.Set("swap_free", swap_free); ++ res.Set("swap_used", swap_total - swap_free); ++ res.Set("dirty", dirty); ++ res.Set("reclaimable", reclaimable); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; ++} ++ ++Value::Dict VmStatInfo::ToDict() const { ++ Value::Dict res; ++ // TODO(crbug.com/1334256): Make base::Value able to hold uint64_t and remove ++ // casts below. ++ res.Set("pswpin", static_cast<int>(pswpin)); ++ res.Set("pswpout", static_cast<int>(pswpout)); ++ res.Set("pgmajfault", static_cast<int>(pgmajfault)); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; + } + + } // namespace base diff --git a/devel/electron36/files/patch-base_process_process__metrics__openbsd.cc b/devel/electron36/files/patch-base_process_process__metrics__openbsd.cc new file mode 100644 index 000000000000..96217fcc1a6f --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__metrics__openbsd.cc @@ -0,0 +1,241 @@ +--- base/process/process_metrics_openbsd.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_metrics_openbsd.cc +@@ -6,73 +6,85 @@ + + #include <stddef.h> + #include <stdint.h> ++#include <fcntl.h> + #include <sys/param.h> + #include <sys/sysctl.h> ++#include <sys/vmmeter.h> + ++#include <kvm.h> ++ + #include "base/memory/ptr_util.h" + #include "base/types/expected.h" ++#include "base/values.h" ++#include "base/notreached.h" + + namespace base { + +-namespace { ++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {} + +-base::expected<int, ProcessCPUUsageError> GetProcessCPU(pid_t pid) { ++base::expected<ProcessMemoryInfo, ProcessUsageError> ++ProcessMetrics::GetMemoryInfo() const { ++ ProcessMemoryInfo memory_info; + struct kinfo_proc info; +- size_t length; +- int mib[] = { +- CTL_KERN, KERN_PROC, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), 0}; ++ size_t length = sizeof(struct kinfo_proc); + +- if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0) { +- return base::unexpected(ProcessCPUUsageError::kSystemError); ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_, ++ sizeof(struct kinfo_proc), 1 }; ++ ++ if (process_ == 0) { ++ return base::unexpected(ProcessUsageError::kSystemError); + } + +- mib[5] = (length / sizeof(struct kinfo_proc)); +- + if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) { +- return base::unexpected(ProcessCPUUsageError::kSystemError); ++ return base::unexpected(ProcessUsageError::kSystemError); + } + +- return base::ok(info.p_pctcpu); +-} ++ if (length == 0) { ++ return base::unexpected(ProcessUsageError::kProcessNotFound); ++ } + +-} // namespace ++ memory_info.resident_set_bytes = ++ checked_cast<uint64_t>(info.p_vm_rssize * getpagesize()); + +-// static +-std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics( +- ProcessHandle process) { +- return WrapUnique(new ProcessMetrics(process)); ++ return memory_info; + } + +-base::expected<double, ProcessCPUUsageError> +-ProcessMetrics::GetPlatformIndependentCPUUsage() { +- TimeTicks time = TimeTicks::Now(); ++base::expected<TimeDelta, ProcessCPUUsageError> ++ProcessMetrics::GetCumulativeCPUUsage() { ++ struct kinfo_proc info; ++ size_t length = sizeof(struct kinfo_proc); ++ struct timeval tv; + +- if (last_cpu_time_.is_zero()) { +- // First call, just set the last values. +- last_cpu_time_ = time; +- return base::ok(0.0); ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_, ++ sizeof(struct kinfo_proc), 1 }; ++ ++ if (process_ == 0) { ++ return base::unexpected(ProcessCPUUsageError::kSystemError); + } + +- const base::expected<int, ProcessCPUUsageError> cpu = GetProcessCPU(process_); +- if (!cpu.has_value()) { +- return base::unexpected(cpu.error()); ++ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) { ++ return base::unexpected(ProcessCPUUsageError::kSystemError); + } + +- last_cpu_time_ = time; +- return base::ok(double{cpu.value()} / FSCALE * 100.0); ++ if (length == 0) { ++ return base::unexpected(ProcessCPUUsageError::kProcessNotFound); ++ } ++ ++ tv.tv_sec = info.p_rtime_sec; ++ tv.tv_usec = info.p_rtime_usec; ++ ++ return base::ok(Microseconds(TimeValToMicroseconds(tv))); + } + +-base::expected<TimeDelta, ProcessCPUUsageError> +-ProcessMetrics::GetCumulativeCPUUsage() { +- NOTREACHED(); ++// static ++std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics( ++ ProcessHandle process) { ++ return WrapUnique(new ProcessMetrics(process)); + } + +-ProcessMetrics::ProcessMetrics(ProcessHandle process) +- : process_(process), last_cpu_(0) {} +- + size_t GetSystemCommitCharge() { + int mib[] = {CTL_VM, VM_METER}; +- int pagesize; ++ size_t pagesize; + struct vmtotal vmtotal; + unsigned long mem_total, mem_free, mem_inactive; + size_t len = sizeof(vmtotal); +@@ -85,9 +97,115 @@ size_t GetSystemCommitCharge() { + mem_free = vmtotal.t_free; + mem_inactive = vmtotal.t_vm - vmtotal.t_avm; + +- pagesize = getpagesize(); ++ pagesize = checked_cast<size_t>(getpagesize()); + + return mem_total - (mem_free * pagesize) - (mem_inactive * pagesize); ++} ++ ++int ProcessMetrics::GetOpenFdCount() const { ++ return (process_ == getpid()) ? getdtablecount() : -1; ++} ++ ++int ProcessMetrics::GetOpenFdSoftLimit() const { ++ return getdtablesize(); ++} ++ ++bool ProcessMetrics::GetPageFaultCounts(PageFaultCounts* counts) const { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) { ++ NOTIMPLEMENTED_LOG_ONCE(); ++ return false; ++} ++ ++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++bool GetVmStatInfo(VmStatInfo* vmstat) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++int ProcessMetrics::GetIdleWakeupsPerSecond() { ++ NOTIMPLEMENTED(); ++ return 0; ++} ++ ++Value::Dict SystemMemoryInfoKB::ToDict() const { ++ Value::Dict res; ++ res.Set("total", total); ++ res.Set("free", free); ++ res.Set("available", available); ++ res.Set("buffers", buffers); ++ res.Set("cached", cached); ++ res.Set("active_anon", active_anon); ++ res.Set("inactive_anon", inactive_anon); ++ res.Set("active_file", active_file); ++ res.Set("inactive_file", inactive_file); ++ res.Set("swap_total", swap_total); ++ res.Set("swap_free", swap_free); ++ res.Set("swap_used", swap_total - swap_free); ++ res.Set("dirty", dirty); ++ res.Set("reclaimable", reclaimable); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; ++} ++ ++Value::Dict VmStatInfo::ToDict() const { ++ Value::Dict res; ++ res.Set("pswpin", static_cast<int>(pswpin)); ++ res.Set("pswpout", static_cast<int>(pswpout)); ++ res.Set("pgmajfault", static_cast<int>(pgmajfault)); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; ++} ++ ++SystemDiskInfo::SystemDiskInfo() { ++ reads = 0; ++ reads_merged = 0; ++ sectors_read = 0; ++ read_time = 0; ++ writes = 0; ++ writes_merged = 0; ++ sectors_written = 0; ++ write_time = 0; ++ io = 0; ++ io_time = 0; ++ weighted_io_time = 0; ++} ++ ++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo&) = default; ++ ++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default; ++ ++Value::Dict SystemDiskInfo::ToDict() const { ++ Value::Dict res; ++ ++ // Write out uint64_t variables as doubles. ++ // Note: this may discard some precision, but for JS there's no other option. ++ res.Set("reads", static_cast<double>(reads)); ++ res.Set("reads_merged", static_cast<double>(reads_merged)); ++ res.Set("sectors_read", static_cast<double>(sectors_read)); ++ res.Set("read_time", static_cast<double>(read_time)); ++ res.Set("writes", static_cast<double>(writes)); ++ res.Set("writes_merged", static_cast<double>(writes_merged)); ++ res.Set("sectors_written", static_cast<double>(sectors_written)); ++ res.Set("write_time", static_cast<double>(write_time)); ++ res.Set("io", static_cast<double>(io)); ++ res.Set("io_time", static_cast<double>(io_time)); ++ res.Set("weighted_io_time", static_cast<double>(weighted_io_time)); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; + } + + } // namespace base diff --git a/devel/electron36/files/patch-base_process_process__metrics__posix.cc b/devel/electron36/files/patch-base_process_process__metrics__posix.cc new file mode 100644 index 000000000000..eaeb6df4d834 --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__metrics__posix.cc @@ -0,0 +1,20 @@ +--- base/process/process_metrics_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_metrics_posix.cc +@@ -21,6 +21,8 @@ + + #if BUILDFLAG(IS_APPLE) + #include <malloc/malloc.h> ++#elif BUILDFLAG(IS_OPENBSD) ++#include <stdlib.h> + #else + #include <malloc.h> + #endif +@@ -136,7 +138,7 @@ size_t ProcessMetrics::GetMallocUsage() { + return stats.size_in_use; + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + return GetMallocUsageMallinfo(); +-#elif BUILDFLAG(IS_FUCHSIA) ++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // TODO(fuchsia): Not currently exposed. https://crbug.com/735087. + return 0; + #endif diff --git a/devel/electron36/files/patch-base_process_process__metrics__unittest.cc b/devel/electron36/files/patch-base_process_process__metrics__unittest.cc new file mode 100644 index 000000000000..54afdfb9d265 --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__metrics__unittest.cc @@ -0,0 +1,12 @@ +--- base/process/process_metrics_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ base/process/process_metrics_unittest.cc +@@ -61,7 +61,8 @@ + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE) || \ ++ BUILDFLAG(IS_BSD) + #define ENABLE_CPU_TESTS 1 + #else + #define ENABLE_CPU_TESTS 0 diff --git a/devel/electron36/files/patch-base_process_process__posix.cc b/devel/electron36/files/patch-base_process_process__posix.cc new file mode 100644 index 000000000000..087bc1a06c9a --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__posix.cc @@ -0,0 +1,94 @@ +--- base/process/process_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_posix.cc +@@ -23,10 +23,15 @@ + #include "base/trace_event/base_tracing.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include <sys/event.h> + #endif + ++#if BUILDFLAG(IS_BSD) ++#include <sys/types.h> ++#include <sys/sysctl.h> ++#endif ++ + #if BUILDFLAG(CLANG_PROFILING) + #include "base/test/clang_profiling.h" + #endif +@@ -100,7 +105,7 @@ bool WaitpidWithTimeout(base::ProcessHandle handle, + } + #endif + +-#if BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Using kqueue on Mac so that we can wait on non-child processes. + // We can't use kqueues on child processes because we need to reap + // our own children using wait. +@@ -379,7 +384,7 @@ bool Process::WaitForExitWithTimeoutImpl(base::Process + const bool exited = (parent_pid < 0); + + if (!exited && parent_pid != our_pid) { +-#if BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // On Mac we can wait on non child processes. + return WaitForSingleNonChildProcess(handle, timeout); + #else +@@ -416,7 +421,56 @@ int Process::GetOSPriority() const { + + int Process::GetOSPriority() const { + DCHECK(IsValid()); ++// avoid pledge(2) violation ++#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 !BUILDFLAG(IS_BSD) ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), ++ sizeof(struct kinfo_proc), 0 }; ++ struct kinfo_proc *info = nullptr; ++ size_t info_size; ++#endif ++ Time ct = Time(); ++ ++#if !BUILDFLAG(IS_BSD) ++ if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0) ++ goto out; ++ ++ mib[5] = (info_size / sizeof(struct kinfo_proc)); ++ if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL) ++ goto out; ++ ++ if (sysctl(mib, std::size(mib), info, &info_size, NULL, 0) < 0) ++ goto out; ++ ++ ct = Time::FromTimeT(info->p_ustart_sec); ++ ++out: ++ if (info) ++ free(info); ++#endif ++ return ct; ++} ++ ++#if BUILDFLAG(IS_BSD) ++Process::Priority Process::GetPriority() const { ++ return Priority::kUserBlocking; ++} ++ ++bool Process::SetPriority(Priority priority) { ++ return false; ++} ++ ++bool Process::CanSetPriority() { ++ return false; ++} ++#endif + + } // namespace base diff --git a/devel/electron36/files/patch-base_process_process__unittest.cc b/devel/electron36/files/patch-base_process_process__unittest.cc new file mode 100644 index 000000000000..59f3c2e1f39a --- /dev/null +++ b/devel/electron36/files/patch-base_process_process__unittest.cc @@ -0,0 +1,11 @@ +--- base/process/process_unittest.cc.orig 2025-03-24 20:50:14 UTC ++++ base/process/process_unittest.cc +@@ -202,7 +202,7 @@ TEST_F(ProcessTest, CreationTimeOtherProcess) { + // was spawned and a time recorded after it was spawned. However, since the + // base::Time and process creation clocks don't match, tolerate some error. + constexpr base::TimeDelta kTolerance = +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, process creation time is relative to boot time which has a + // 1-second resolution. Tolerate 1 second for the imprecise boot time and + // 100 ms for the imprecise clock. diff --git a/devel/electron36/files/patch-base_profiler_module__cache.cc b/devel/electron36/files/patch-base_profiler_module__cache.cc new file mode 100644 index 000000000000..8008afc7ff0f --- /dev/null +++ b/devel/electron36/files/patch-base_profiler_module__cache.cc @@ -0,0 +1,11 @@ +--- base/profiler/module_cache.cc.orig 2024-04-15 20:33:42 UTC ++++ base/profiler/module_cache.cc +@@ -38,7 +38,7 @@ std::string TransformModuleIDToSymbolServerFormat(std: + // 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. +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux ELF module IDs are 160bit integers, which we need to mangle + // down to 128bit integers to match the id that Breakpad outputs. + // Example on version '66.0.3359.170' x64: diff --git a/devel/electron36/files/patch-base_profiler_sampling__profiler__thread__token.cc b/devel/electron36/files/patch-base_profiler_sampling__profiler__thread__token.cc new file mode 100644 index 000000000000..2ba9cfc555e9 --- /dev/null +++ b/devel/electron36/files/patch-base_profiler_sampling__profiler__thread__token.cc @@ -0,0 +1,20 @@ +--- base/profiler/sampling_profiler_thread_token.cc.orig 2025-04-22 20:15:27 UTC ++++ base/profiler/sampling_profiler_thread_token.cc +@@ -6,7 +6,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <pthread.h> + + #include "base/profiler/stack_base_address_posix.h" +@@ -18,7 +18,7 @@ SamplingProfilerThreadToken GetSamplingProfilerCurrent + PlatformThreadId id = PlatformThread::CurrentId(); + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE) + return {id, pthread_self()}; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::optional<uintptr_t> maybe_stack_base = + GetThreadStackBaseAddress(id, pthread_self()); + return {id, maybe_stack_base}; diff --git a/devel/electron36/files/patch-base_profiler_sampling__profiler__thread__token.h b/devel/electron36/files/patch-base_profiler_sampling__profiler__thread__token.h new file mode 100644 index 000000000000..23bb44d18c77 --- /dev/null +++ b/devel/electron36/files/patch-base_profiler_sampling__profiler__thread__token.h @@ -0,0 +1,20 @@ +--- base/profiler/sampling_profiler_thread_token.h.orig 2025-04-22 20:15:27 UTC ++++ base/profiler/sampling_profiler_thread_token.h +@@ -13,7 +13,7 @@ + + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE) + #include <pthread.h> +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <stdint.h> + #endif + +@@ -27,7 +27,7 @@ struct SamplingProfilerThreadToken { + PlatformThreadId id; + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE) + pthread_t pthread_id; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Due to the sandbox, we can only retrieve the stack base address for the + // current thread. We must grab it during + // GetSamplingProfilerCurrentThreadToken() and not try to get it later. diff --git a/devel/electron36/files/patch-base_profiler_stack__base__address__posix.cc b/devel/electron36/files/patch-base_profiler_stack__base__address__posix.cc new file mode 100644 index 000000000000..8abc060ed861 --- /dev/null +++ b/devel/electron36/files/patch-base_profiler_stack__base__address__posix.cc @@ -0,0 +1,59 @@ +--- base/profiler/stack_base_address_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ base/profiler/stack_base_address_posix.cc +@@ -18,6 +18,10 @@ + #include "base/files/scoped_file.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include <pthread_np.h> ++#endif ++ + #if BUILDFLAG(IS_CHROMEOS) + extern "C" void* __libc_stack_end; + #endif +@@ -49,7 +53,21 @@ uintptr_t GetThreadStackBaseAddressImpl(pthread_t pthr + + #if !BUILDFLAG(IS_LINUX) + uintptr_t GetThreadStackBaseAddressImpl(pthread_t pthread_id) { ++#if BUILDFLAG(IS_OPENBSD) ++ stack_t ss; ++ void *address; ++ size_t size; ++ if (pthread_stackseg_np(pthread_id, &ss) != 0) ++ return 0; ++ size = ss.ss_size; ++ address = (void*)((size_t) ss.ss_sp - ss.ss_size); ++#else + pthread_attr_t attr; ++#if BUILDFLAG(IS_FREEBSD) ++ int result; ++ pthread_attr_init(&attr); ++ pthread_attr_get_np(pthread_id, &attr); ++#else + // pthread_getattr_np will crash on ChromeOS & Linux if we are in the sandbox + // and pthread_id refers to a different thread, due to the use of + // sched_getaffinity(). +@@ -62,12 +80,14 @@ uintptr_t GetThreadStackBaseAddressImpl(pthread_t pthr + << logging::SystemErrorCodeToString(result); + // See crbug.com/617730 for limitations of this approach on Linux-like + // systems. ++#endif + void* address; + size_t size; + result = pthread_attr_getstack(&attr, &address, &size); + CHECK_EQ(result, 0) << "pthread_attr_getstack returned " + << logging::SystemErrorCodeToString(result); + pthread_attr_destroy(&attr); ++#endif + const uintptr_t base_address = reinterpret_cast<uintptr_t>(address) + size; + return base_address; + } +@@ -84,7 +104,7 @@ std::optional<uintptr_t> GetThreadStackBaseAddress(Pla + // trying to work around the problem. + return std::nullopt; + #else +- const bool is_main_thread = id.raw() == GetCurrentProcId(); ++ const bool is_main_thread = id.raw() == (checked_cast<uint64_t>(GetCurrentProcId())); + if (is_main_thread) { + #if BUILDFLAG(IS_ANDROID) + // The implementation of pthread_getattr_np() in Bionic reads proc/self/maps diff --git a/devel/electron36/files/patch-base_profiler_stack__sampling__profiler__test__util.cc b/devel/electron36/files/patch-base_profiler_stack__sampling__profiler__test__util.cc new file mode 100644 index 000000000000..73538f09980d --- /dev/null +++ b/devel/electron36/files/patch-base_profiler_stack__sampling__profiler__test__util.cc @@ -0,0 +1,11 @@ +--- base/profiler/stack_sampling_profiler_test_util.cc.orig 2025-03-24 20:50:14 UTC ++++ base/profiler/stack_sampling_profiler_test_util.cc +@@ -50,7 +50,7 @@ + // Fortunately, it provides _alloca, which functions identically. + #include <malloc.h> + #define alloca _alloca +-#else ++#elif !BUILDFLAG(IS_BSD) + #include <alloca.h> + #endif + diff --git a/devel/electron36/files/patch-base_profiler_stack__sampling__profiler__unittest.cc b/devel/electron36/files/patch-base_profiler_stack__sampling__profiler__unittest.cc new file mode 100644 index 000000000000..d0d238df5bc5 --- /dev/null +++ b/devel/electron36/files/patch-base_profiler_stack__sampling__profiler__unittest.cc @@ -0,0 +1,11 @@ +--- base/profiler/stack_sampling_profiler_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ base/profiler/stack_sampling_profiler_unittest.cc +@@ -47,7 +47,7 @@ + + #include <intrin.h> + #include <malloc.h> +-#else ++#elif !BUILDFLAG(IS_BSD) + #include <alloca.h> + #endif + diff --git a/devel/electron36/files/patch-base_profiler_thread__delegate__posix.cc b/devel/electron36/files/patch-base_profiler_thread__delegate__posix.cc new file mode 100644 index 000000000000..929cbecfc76b --- /dev/null +++ b/devel/electron36/files/patch-base_profiler_thread__delegate__posix.cc @@ -0,0 +1,20 @@ +--- base/profiler/thread_delegate_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ base/profiler/thread_delegate_posix.cc +@@ -15,7 +15,7 @@ + #include "base/process/process_handle.h" + #include "build/build_config.h" + +-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + #include "base/profiler/stack_base_address_posix.h" + #endif + +@@ -24,7 +24,7 @@ std::unique_ptr<ThreadDelegatePosix> ThreadDelegatePos + std::unique_ptr<ThreadDelegatePosix> ThreadDelegatePosix::Create( + SamplingProfilerThreadToken thread_token) { + std::optional<uintptr_t> base_address; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base_address = thread_token.stack_base_address; + #else + base_address = diff --git a/devel/electron36/files/patch-base_rand__util.h b/devel/electron36/files/patch-base_rand__util.h new file mode 100644 index 000000000000..0c8366b1d691 --- /dev/null +++ b/devel/electron36/files/patch-base_rand__util.h @@ -0,0 +1,11 @@ +--- base/rand_util.h.orig 2025-04-22 20:15:27 UTC ++++ base/rand_util.h +@@ -213,7 +213,7 @@ void RandomShuffle(Itr first, Itr last) { + std::shuffle(first, last, RandomBitGenerator()); + } + +-#if BUILDFLAG(IS_POSIX) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_BSD) + BASE_EXPORT int GetUrandomFD(); + #endif + diff --git a/devel/electron36/files/patch-base_rand__util__posix.cc b/devel/electron36/files/patch-base_rand__util__posix.cc new file mode 100644 index 000000000000..2bc0c8d35591 --- /dev/null +++ b/devel/electron36/files/patch-base_rand__util__posix.cc @@ -0,0 +1,62 @@ +--- base/rand_util_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ base/rand_util_posix.cc +@@ -29,7 +29,7 @@ + #include "base/time/time.h" + #include "build/build_config.h" + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + #include "third_party/lss/linux_syscall_support.h" + #elif BUILDFLAG(IS_MAC) + // TODO(crbug.com/40641285): Waiting for this header to appear in the iOS SDK. +@@ -45,6 +45,7 @@ namespace { + + namespace { + ++#if !BUILDFLAG(IS_BSD) + #if BUILDFLAG(IS_AIX) + // AIX has no 64-bit support for O_CLOEXEC. + static constexpr int kOpenFlags = O_RDONLY; +@@ -69,10 +70,11 @@ class URandomFd { + private: + const int fd_; + }; ++#endif + + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ + BUILDFLAG(IS_ANDROID)) && \ +- !BUILDFLAG(IS_NACL) ++ !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + + bool KernelSupportsGetRandom() { + return base::SysInfo::KernelVersionNumber::Current() >= +@@ -129,6 +131,7 @@ void RandBytesInternal(span<uint8_t> output, bool avoi + namespace { + + void RandBytesInternal(span<uint8_t> output, bool avoid_allocation) { ++#if !BUILDFLAG(IS_BSD) + #if !BUILDFLAG(IS_NACL) + // The BoringSSL experiment takes priority over everything else. + if (!avoid_allocation && internal::UseBoringSSLForRandBytes()) { +@@ -163,6 +166,9 @@ void RandBytesInternal(span<uint8_t> output, bool avoi + const int urandom_fd = GetUrandomFD(); + const bool success = ReadFromFD(urandom_fd, as_writable_chars(output)); + CHECK(success); ++#else ++ arc4random_buf(output.data(), output.size()); ++#endif + } + + } // namespace +@@ -182,9 +188,11 @@ void RandBytes(span<uint8_t> output) { + RandBytesInternal(output, /*avoid_allocation=*/false); + } + ++#if !BUILDFLAG(IS_BSD) + int GetUrandomFD() { + static NoDestructor<URandomFd> urandom_fd; + return urandom_fd->fd(); + } ++#endif + + } // namespace base diff --git a/devel/electron36/files/patch-base_strings_safe__sprintf__unittest.cc b/devel/electron36/files/patch-base_strings_safe__sprintf__unittest.cc new file mode 100644 index 000000000000..238970e98604 --- /dev/null +++ b/devel/electron36/files/patch-base_strings_safe__sprintf__unittest.cc @@ -0,0 +1,18 @@ +--- base/strings/safe_sprintf_unittest.cc.orig 2025-03-24 20:50:14 UTC ++++ base/strings/safe_sprintf_unittest.cc +@@ -743,6 +743,7 @@ TEST(SafeSPrintfTest, EmbeddedNul) { + #endif + } + ++#if !BUILDFLAG(IS_BSD) + TEST(SafeSPrintfTest, EmitNULL) { + char buf[40]; + #if defined(__GNUC__) +@@ -759,6 +760,7 @@ TEST(SafeSPrintfTest, EmitNULL) { + #pragma GCC diagnostic pop + #endif + } ++#endif + + TEST(SafeSPrintfTest, PointerSize) { + // The internal data representation is a 64bit value, independent of the diff --git a/devel/electron36/files/patch-base_synchronization_cancelable__event.h b/devel/electron36/files/patch-base_synchronization_cancelable__event.h new file mode 100644 index 000000000000..926f4da3d344 --- /dev/null +++ b/devel/electron36/files/patch-base_synchronization_cancelable__event.h @@ -0,0 +1,20 @@ +--- base/synchronization/cancelable_event.h.orig 2025-03-24 20:50:14 UTC ++++ base/synchronization/cancelable_event.h +@@ -11,7 +11,7 @@ + + #if BUILDFLAG(IS_WIN) + #include <windows.h> +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <semaphore.h> + #else + #include "base/synchronization/waitable_event.h" +@@ -49,7 +49,7 @@ class BASE_EXPORT CancelableEvent { + + #if BUILDFLAG(IS_WIN) + using NativeHandle = HANDLE; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + using NativeHandle = sem_t; + #else + using NativeHandle = WaitableEvent; diff --git a/devel/electron36/files/patch-base_synchronization_lock__impl.h b/devel/electron36/files/patch-base_synchronization_lock__impl.h new file mode 100644 index 000000000000..134af71750f2 --- /dev/null +++ b/devel/electron36/files/patch-base_synchronization_lock__impl.h @@ -0,0 +1,23 @@ +--- base/synchronization/lock_impl.h.orig 2025-04-22 20:15:27 UTC ++++ base/synchronization/lock_impl.h +@@ -110,6 +110,10 @@ void LockImpl::Unlock() { + } + + #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FREEBSD) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wthread-safety-analysis" ++#endif + + #if DCHECK_IS_ON() + BASE_EXPORT void dcheck_trylock_result(int rv); +@@ -130,6 +134,9 @@ void LockImpl::Unlock() { + dcheck_unlock_result(rv); + #endif + } ++#if BUILDFLAG(IS_FREEBSD) ++#pragma GCC diagnostic pop ++#endif + #endif + + // This is an implementation used for AutoLock templated on the lock type. diff --git a/devel/electron36/files/patch-base_syslog__logging.cc b/devel/electron36/files/patch-base_syslog__logging.cc new file mode 100644 index 000000000000..74d7fa1c5483 --- /dev/null +++ b/devel/electron36/files/patch-base_syslog__logging.cc @@ -0,0 +1,20 @@ +--- base/syslog_logging.cc.orig 2025-03-24 20:50:14 UTC ++++ base/syslog_logging.cc +@@ -17,7 +17,7 @@ + #include "base/strings/string_util.h" + #include "base/win/scoped_handle.h" + #include "base/win/win_util.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // <syslog.h> defines LOG_INFO, LOG_WARNING macros that could conflict with + // base::LOG_INFO, base::LOG_WARNING. + #include <syslog.h> +@@ -151,7 +151,7 @@ EventLogMessage::~EventLogMessage() { + if (user_sid != nullptr) { + ::LocalFree(user_sid); + } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kEventSource[] = "chrome"; + openlog(kEventSource, LOG_NOWAIT | LOG_PID, LOG_USER); + // We can't use the defined names for the logging severity from syslog.h diff --git a/devel/electron36/files/patch-base_system_sys__info.cc b/devel/electron36/files/patch-base_system_sys__info.cc new file mode 100644 index 000000000000..11c22025a56b --- /dev/null +++ b/devel/electron36/files/patch-base_system_sys__info.cc @@ -0,0 +1,11 @@ +--- base/system/sys_info.cc.orig 2025-03-24 20:50:14 UTC ++++ base/system/sys_info.cc +@@ -224,7 +224,7 @@ void SysInfo::GetHardwareInfo(base::OnceCallback<void( + #endif + + void SysInfo::GetHardwareInfo(base::OnceCallback<void(HardwareInfo)> callback) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + constexpr base::TaskTraits kTraits = {base::MayBlock()}; + #else + constexpr base::TaskTraits kTraits = {}; diff --git a/devel/electron36/files/patch-base_system_sys__info.h b/devel/electron36/files/patch-base_system_sys__info.h new file mode 100644 index 000000000000..0803240653d5 --- /dev/null +++ b/devel/electron36/files/patch-base_system_sys__info.h @@ -0,0 +1,20 @@ +--- base/system/sys_info.h.orig 2025-04-22 20:15:27 UTC ++++ base/system/sys_info.h +@@ -355,6 +355,8 @@ class BASE_EXPORT SysInfo { + static void ResetCpuSecurityMitigationsEnabledForTesting(); + #endif + ++ static uint64_t MaxSharedMemorySize(); ++ + private: + friend class test::ScopedAmountOfPhysicalMemoryOverride; + FRIEND_TEST_ALL_PREFIXES(SysInfoTest, AmountOfAvailablePhysicalMemory); +@@ -367,7 +369,7 @@ class BASE_EXPORT SysInfo { + static HardwareInfo GetHardwareInfoSync(); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + static uint64_t AmountOfAvailablePhysicalMemory( + const SystemMemoryInfoKB& meminfo); + #endif diff --git a/devel/electron36/files/patch-base_system_sys__info__freebsd.cc b/devel/electron36/files/patch-base_system_sys__info__freebsd.cc new file mode 100644 index 000000000000..242ac638bb5d --- /dev/null +++ b/devel/electron36/files/patch-base_system_sys__info__freebsd.cc @@ -0,0 +1,112 @@ +--- base/system/sys_info_freebsd.cc.orig 2024-10-16 21:30:44 UTC ++++ base/system/sys_info_freebsd.cc +@@ -9,28 +9,103 @@ + #include <sys/sysctl.h> + + #include "base/notreached.h" ++#include "base/process/process_metrics.h" ++#include "base/strings/string_util.h" + + namespace base { + +-int64_t SysInfo::AmountOfPhysicalMemoryImpl() { +- int pages, page_size; ++int SysInfo::NumberOfProcessors() { ++ int mib[] = {CTL_HW, HW_NCPU}; ++ int ncpu; ++ size_t size = sizeof(ncpu); ++ if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) { ++ NOTREACHED(); ++ return 1; ++ } ++ return ncpu; ++} ++ ++uint64_t SysInfo::AmountOfPhysicalMemoryImpl() { ++ int pages, page_size, r = 0; + size_t size = sizeof(pages); +- sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0); +- sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); +- if (pages == -1 || page_size == -1) { ++ ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0); ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); ++ ++ if (r == -1) { + NOTREACHED(); + } +- return static_cast<int64_t>(pages) * page_size; ++ ++ return static_cast<uint64_t>(pages) * page_size; + } + ++uint64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() { ++ int page_size, r = 0; ++ unsigned int pgfree, pginact, pgcache; ++ size_t size = sizeof(page_size); ++ size_t szpg = sizeof(pgfree); ++ ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_free_count", &pgfree, &szpg, NULL, 0); ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_inactive_count", &pginact, &szpg, NULL, 0); ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_cache_count", &pgcache, &szpg, NULL, 0); ++ ++ if (r == -1) { ++ NOTREACHED(); ++ return 0; ++ } ++ ++ return static_cast<uint64_t>((pgfree + pginact + pgcache) * page_size); ++} ++ + // static ++uint64_t SysInfo::AmountOfAvailablePhysicalMemory(const SystemMemoryInfoKB& info) { ++ uint64_t res_kb = info.available != 0 ++ ? info.available - info.active_file ++ : info.free + info.reclaimable + info.inactive_file; ++ return res_kb * 1024; ++} ++ ++// static ++std::string SysInfo::CPUModelName() { ++ int mib[] = { CTL_HW, HW_MODEL }; ++ char name[256]; ++ size_t size = std::size(name); ++ ++ if (sysctl(mib, std::size(mib), &name, &size, NULL, 0) == 0) { ++ return name; ++ } ++ ++ return std::string(); ++} ++ ++// static + uint64_t SysInfo::MaxSharedMemorySize() { + size_t limit; + size_t size = sizeof(limit); ++ + if (sysctlbyname("kern.ipc.shmmax", &limit, &size, NULL, 0) < 0) { + NOTREACHED(); + } + return static_cast<uint64_t>(limit); ++} ++ ++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() { ++ HardwareInfo info; ++ ++ info.manufacturer = "FreeBSD"; ++ info.model = HardwareModelName(); ++ ++ DCHECK(IsStringUTF8(info.manufacturer)); ++ DCHECK(IsStringUTF8(info.model)); ++ ++ return info; + } + + } // namespace base diff --git a/devel/electron36/files/patch-base_system_sys__info__openbsd.cc b/devel/electron36/files/patch-base_system_sys__info__openbsd.cc new file mode 100644 index 000000000000..eab9fe372a05 --- /dev/null +++ b/devel/electron36/files/patch-base_system_sys__info__openbsd.cc @@ -0,0 +1,85 @@ +--- base/system/sys_info_openbsd.cc.orig 2025-03-24 20:50:14 UTC ++++ base/system/sys_info_openbsd.cc +@@ -12,6 +12,7 @@ + + #include "base/notreached.h" + #include "base/posix/sysctl.h" ++#include "base/strings/string_util.h" + + namespace { + +@@ -28,9 +29,14 @@ namespace base { + + namespace base { + ++// pledge(2) ++uint64_t aofpmem = 0; ++uint64_t shmmax = 0; ++char cpumodel[256]; ++ + // static + int SysInfo::NumberOfProcessors() { +- int mib[] = {CTL_HW, HW_NCPU}; ++ int mib[] = {CTL_HW, HW_NCPUONLINE}; + int ncpu; + size_t size = sizeof(ncpu); + if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) { +@@ -41,10 +47,26 @@ uint64_t SysInfo::AmountOfPhysicalMemoryImpl() { + + // static + uint64_t SysInfo::AmountOfPhysicalMemoryImpl() { +- return AmountOfMemory(_SC_PHYS_PAGES); ++ // pledge(2) ++ if (!aofpmem) ++ aofpmem = AmountOfMemory(_SC_PHYS_PAGES); ++ return aofpmem; + } + + // static ++std::string SysInfo::CPUModelName() { ++ int mib[] = {CTL_HW, HW_MODEL}; ++ size_t len = std::size(cpumodel); ++ ++ if (cpumodel[0] == '\0') { ++ if (sysctl(mib, std::size(mib), cpumodel, &len, NULL, 0) < 0) ++ return std::string(); ++ } ++ ++ return std::string(cpumodel, len - 1); ++} ++ ++// static + uint64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() { + // We should add inactive file-backed memory also but there is no such + // information from OpenBSD unfortunately. +@@ -56,15 +78,27 @@ uint64_t SysInfo::MaxSharedMemorySize() { + int mib[] = {CTL_KERN, KERN_SHMINFO, KERN_SHMINFO_SHMMAX}; + size_t limit; + size_t size = sizeof(limit); ++ // pledge(2) ++ if (shmmax) ++ goto out; + if (sysctl(mib, std::size(mib), &limit, &size, NULL, 0) < 0) { + NOTREACHED(); + } +- return static_cast<uint64_t>(limit); ++ shmmax = static_cast<uint64_t>(limit); ++out: ++ return shmmax; + } + + // static +-std::string SysInfo::CPUModelName() { +- return StringSysctl({CTL_HW, HW_MODEL}).value(); ++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() { ++ HardwareInfo info; ++ // Set the manufacturer to "OpenBSD" and the model to ++ // an empty string. ++ info.manufacturer = "OpenBSD"; ++ info.model = HardwareModelName(); ++ DCHECK(IsStringUTF8(info.manufacturer)); ++ DCHECK(IsStringUTF8(info.model)); ++ return info; + } + + } // namespace base diff --git a/devel/electron36/files/patch-base_system_sys__info__posix.cc b/devel/electron36/files/patch-base_system_sys__info__posix.cc new file mode 100644 index 000000000000..232ab58212ac --- /dev/null +++ b/devel/electron36/files/patch-base_system_sys__info__posix.cc @@ -0,0 +1,29 @@ +--- base/system/sys_info_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ base/system/sys_info_posix.cc +@@ -143,7 +143,7 @@ namespace base { + + namespace base { + +-#if !BUILDFLAG(IS_OPENBSD) ++#if !BUILDFLAG(IS_BSD) + // static + int SysInfo::NumberOfProcessors() { + #if BUILDFLAG(IS_MAC) +@@ -199,7 +199,7 @@ int SysInfo::NumberOfProcessors() { + + return cached_num_cpus; + } +-#endif // !BUILDFLAG(IS_OPENBSD) ++#endif // !BUILDFLAG(IS_BSD) + + // static + uint64_t SysInfo::AmountOfVirtualMemory() { +@@ -285,6 +285,8 @@ std::string SysInfo::OperatingSystemArchitecture() { + arch = "x86"; + } else if (arch == "amd64") { + arch = "x86_64"; ++ } else if (arch == "arm64") { ++ arch = "aarch64"; + } else if (std::string(info.sysname) == "AIX") { + arch = "ppc64"; + } diff --git a/devel/electron36/files/patch-base_system_sys__info__unittest.cc b/devel/electron36/files/patch-base_system_sys__info__unittest.cc new file mode 100644 index 000000000000..4e356be04c2f --- /dev/null +++ b/devel/electron36/files/patch-base_system_sys__info__unittest.cc @@ -0,0 +1,20 @@ +--- base/system/sys_info_unittest.cc.orig 2024-08-14 20:54:23 UTC ++++ base/system/sys_info_unittest.cc +@@ -265,12 +265,16 @@ TEST_F(SysInfoTest, GetHardwareInfo) { + EXPECT_TRUE(IsStringUTF8(hardware_info->model)); + bool empty_result_expected = + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_BSD) + false; + #else + true; + #endif + EXPECT_EQ(hardware_info->manufacturer.empty(), empty_result_expected); ++#if BUILDFLAG(IS_BSD) ++ empty_result_expected = true; ++#endif + EXPECT_EQ(hardware_info->model.empty(), empty_result_expected); + } + diff --git a/devel/electron36/files/patch-base_task_thread__pool_environment__config__unittest.cc b/devel/electron36/files/patch-base_task_thread__pool_environment__config__unittest.cc new file mode 100644 index 000000000000..cc7812240138 --- /dev/null +++ b/devel/electron36/files/patch-base_task_thread__pool_environment__config__unittest.cc @@ -0,0 +1,20 @@ +--- base/task/thread_pool/environment_config_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ base/task/thread_pool/environment_config_unittest.cc +@@ -21,7 +21,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUseBackgroundPrio + base::FeatureList::IsEnabled( + FeatureControllingBackgroundPriorityWorkerThreads())); + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD) + EXPECT_FALSE(CanUseBackgroundThreadTypeForWorkerThread()); + #else + #error Platform doesn't match any block +@@ -30,7 +30,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUseBackgroundPrio + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) + EXPECT_TRUE(CanUseUtilityThreadTypeForWorkerThread()); + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD) + EXPECT_FALSE(CanUseUtilityThreadTypeForWorkerThread()); + #else + #error Platform doesn't match any block diff --git a/devel/electron36/files/patch-base_test_launcher_test__launcher.cc b/devel/electron36/files/patch-base_test_launcher_test__launcher.cc new file mode 100644 index 000000000000..12ff3472b7b3 --- /dev/null +++ b/devel/electron36/files/patch-base_test_launcher_test__launcher.cc @@ -0,0 +1,10 @@ +--- base/test/launcher/test_launcher.cc.orig 2025-04-22 20:15:27 UTC ++++ base/test/launcher/test_launcher.cc +@@ -73,6 +73,7 @@ + #include "testing/gtest/include/gtest/gtest.h" + + #if BUILDFLAG(IS_POSIX) ++#include <signal.h> + #include <fcntl.h> + + #include "base/files/file_descriptor_watcher_posix.h" diff --git a/devel/electron36/files/patch-base_test_test__file__util__linux.cc b/devel/electron36/files/patch-base_test_test__file__util__linux.cc new file mode 100644 index 000000000000..b99b3e8f323c --- /dev/null +++ b/devel/electron36/files/patch-base_test_test__file__util__linux.cc @@ -0,0 +1,14 @@ +--- base/test/test_file_util_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ base/test/test_file_util_linux.cc +@@ -56,9 +56,11 @@ bool EvictFileFromSystemCache(const FilePath& file) { + if (fdatasync(fd.get()) != 0) { + return false; + } ++#if !BUILDFLAG(IS_BSD) + if (posix_fadvise(fd.get(), 0, 0, POSIX_FADV_DONTNEED) != 0) { + return false; + } ++#endif + return true; + } + diff --git a/devel/electron36/files/patch-base_test_test__file__util__posix.cc b/devel/electron36/files/patch-base_test_test__file__util__posix.cc new file mode 100644 index 000000000000..cfdc1341de56 --- /dev/null +++ b/devel/electron36/files/patch-base_test_test__file__util__posix.cc @@ -0,0 +1,11 @@ +--- base/test/test_file_util_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ base/test/test_file_util_posix.cc +@@ -93,7 +93,7 @@ void SyncPageCacheToDisk() { + } + + #if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_APPLE) && \ +- !BUILDFLAG(IS_ANDROID) ++ !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + bool EvictFileFromSystemCache(const FilePath& file) { + // There doesn't seem to be a POSIX way to cool the disk cache. + NOTIMPLEMENTED(); diff --git a/devel/electron36/files/patch-base_threading_platform__thread.h b/devel/electron36/files/patch-base_threading_platform__thread.h new file mode 100644 index 000000000000..31d66a778135 --- /dev/null +++ b/devel/electron36/files/patch-base_threading_platform__thread.h @@ -0,0 +1,11 @@ +--- base/threading/platform_thread.h.orig 2025-04-22 20:15:27 UTC ++++ base/threading/platform_thread.h +@@ -55,6 +55,8 @@ class BASE_EXPORT PlatformThreadId { + using UnderlyingType = zx_koid_t; + #elif BUILDFLAG(IS_APPLE) + using UnderlyingType = uint64_t; ++#elif BUILDFLAG(IS_BSD) ++ using UnderlyingType = uint64_t; + #elif BUILDFLAG(IS_POSIX) + using UnderlyingType = pid_t; + #endif diff --git a/devel/electron36/files/patch-base_threading_platform__thread__bsd.cc b/devel/electron36/files/patch-base_threading_platform__thread__bsd.cc new file mode 100644 index 000000000000..16e5ab7d5f21 --- /dev/null +++ b/devel/electron36/files/patch-base_threading_platform__thread__bsd.cc @@ -0,0 +1,34 @@ +--- base/threading/platform_thread_bsd.cc.orig 2024-04-28 08:50:24 UTC ++++ 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; ++} ++ ++std::optional<ThreadPriorityForTest> ++GetCurrentThreadPriorityForPlatformForTest() { ++ return std::nullopt; ++} ++} // namespace internal ++ ++// static ++void PlatformThreadBase::SetName(const std::string& name) { ++ SetNameCommon(name); ++} ++ ++} // namespace base diff --git a/devel/electron36/files/patch-base_threading_platform__thread__internal__posix.cc b/devel/electron36/files/patch-base_threading_platform__thread__internal__posix.cc new file mode 100644 index 000000000000..9c8adc7285b0 --- /dev/null +++ b/devel/electron36/files/patch-base_threading_platform__thread__internal__posix.cc @@ -0,0 +1,11 @@ +--- base/threading/platform_thread_internal_posix.cc.orig 2024-10-16 21:30:44 UTC ++++ base/threading/platform_thread_internal_posix.cc +@@ -41,7 +41,7 @@ int GetCurrentThreadNiceValue() { + } + + int GetCurrentThreadNiceValue() { +-#if BUILDFLAG(IS_NACL) ++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD) + NOTIMPLEMENTED(); + return 0; + #else diff --git a/devel/electron36/files/patch-base_threading_platform__thread__posix.cc b/devel/electron36/files/patch-base_threading_platform__thread__posix.cc new file mode 100644 index 000000000000..318818ba1fb9 --- /dev/null +++ b/devel/electron36/files/patch-base_threading_platform__thread__posix.cc @@ -0,0 +1,53 @@ +--- base/threading/platform_thread_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ base/threading/platform_thread_posix.cc +@@ -79,11 +79,11 @@ void* ThreadFunc(void* params) { + base::DisallowSingleton(); + } + +-#if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) ++#if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_BSD) + partition_alloc::internal::StackTopRegistry::Get().NotifyThreadCreated(); + #endif + +-#if !BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + #if BUILDFLAG(IS_APPLE) + PlatformThread::SetCurrentThreadRealtimePeriodValue( + delegate->GetRealtimePeriod()); +@@ -272,6 +272,8 @@ PlatformThreadId PlatformThreadBase::CurrentId() { + return PlatformThreadId(reinterpret_cast<int32_t>(pthread_self())); + #elif BUILDFLAG(IS_POSIX) && BUILDFLAG(IS_AIX) + return PlatformThreadId(pthread_self()); ++#elif BUILDFLAG(IS_BSD) ++ return PlatformThreadId(reinterpret_cast<uint64_t>(pthread_self())); + #elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_AIX) + return PlatformThreadId(reinterpret_cast<int64_t>(pthread_self())); + #endif +@@ -365,7 +367,7 @@ bool PlatformThreadBase::CanChangeThreadType(ThreadTyp + + // 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) { +@@ -386,6 +388,9 @@ void SetCurrentThreadTypeImpl(ThreadType thread_type, + MessagePumpType pump_type_hint) { + #if BUILDFLAG(IS_NACL) + NOTIMPLEMENTED(); ++// avoid pledge(2) violation ++#elif BUILDFLAG(IS_BSD) ++ NOTIMPLEMENTED(); + #else + if (internal::SetCurrentThreadTypeForPlatform(thread_type, pump_type_hint)) { + return; +@@ -409,7 +414,7 @@ ThreadPriorityForTest PlatformThreadBase::GetCurrentTh + + // static + ThreadPriorityForTest PlatformThreadBase::GetCurrentThreadPriorityForTest() { +-#if BUILDFLAG(IS_NACL) ++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD) + NOTIMPLEMENTED(); + return ThreadPriorityForTest::kNormal; + #else diff --git a/devel/electron36/files/patch-base_threading_platform__thread__unittest.cc b/devel/electron36/files/patch-base_threading_platform__thread__unittest.cc new file mode 100644 index 000000000000..1f31d0a8e13a --- /dev/null +++ b/devel/electron36/files/patch-base_threading_platform__thread__unittest.cc @@ -0,0 +1,47 @@ +--- base/threading/platform_thread_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ base/threading/platform_thread_unittest.cc +@@ -36,7 +36,7 @@ + #include "base/time/time.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <pthread.h> + #include <sys/syscall.h> + #include <sys/types.h> +@@ -370,7 +370,7 @@ TEST(PlatformThreadTest, CanChangeThreadType) { + // and hardcodes what we know. Please inform scheduler-dev@chromium.org if this + // proprerty changes for a given platform. + TEST(PlatformThreadTest, CanChangeThreadType) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Ubuntu, RLIMIT_NICE and RLIMIT_RTPRIO are 0 by default, so we won't be + // able to increase priority to any level unless we are root (euid == 0). + bool kCanIncreasePriority = false; +@@ -435,7 +435,7 @@ TEST(PlatformThreadTest, SetCurrentThreadTypeTest) { + #if BUILDFLAG(IS_APPLE) + TestPriorityResultingFromThreadType(ThreadType::kResourceEfficient, + ThreadPriorityForTest::kUtility); +-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + TestPriorityResultingFromThreadType( + ThreadType::kResourceEfficient, + ThreadPriorityForTest::kResourceEfficient); +@@ -624,12 +624,16 @@ INSTANTIATE_TEST_SUITE_P( + + #endif // BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + namespace { + + bool IsTidCacheCorrect() { ++#if BUILDFLAG(IS_BSD) ++ return PlatformThread::CurrentId().raw() == reinterpret_cast<int64_t>(pthread_self()); ++#else + return PlatformThread::CurrentId().raw() == syscall(__NR_gettid); ++#endif + } + + void* CheckTidCacheCorrectWrapper(void*) { diff --git a/devel/electron36/files/patch-base_time_time__now__posix.cc b/devel/electron36/files/patch-base_time_time__now__posix.cc new file mode 100644 index 000000000000..2099f31627ab --- /dev/null +++ b/devel/electron36/files/patch-base_time_time__now__posix.cc @@ -0,0 +1,11 @@ +--- base/time/time_now_posix.cc.orig 2025-01-27 17:37:37 UTC ++++ base/time/time_now_posix.cc +@@ -27,7 +27,7 @@ + #endif + + // NaCl doesn't support CLOCK_MONOTONIC_COARSE. +-#if BUILDFLAG(IS_NACL) ++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD) + #define TIMETICKS_LOW_RESOLUTION_CLOCK CLOCK_MONOTONIC + #else + #define TIMETICKS_LOW_RESOLUTION_CLOCK CLOCK_MONOTONIC_COARSE diff --git a/devel/electron36/files/patch-base_trace__event_malloc__dump__provider.cc b/devel/electron36/files/patch-base_trace__event_malloc__dump__provider.cc new file mode 100644 index 000000000000..96d614105870 --- /dev/null +++ b/devel/electron36/files/patch-base_trace__event_malloc__dump__provider.cc @@ -0,0 +1,30 @@ +--- base/trace_event/malloc_dump_provider.cc.orig 2025-03-24 20:50:14 UTC ++++ base/trace_event/malloc_dump_provider.cc +@@ -31,6 +31,8 @@ + + #if BUILDFLAG(IS_APPLE) + #include <malloc/malloc.h> ++#elif BUILDFLAG(IS_BSD) ++#include <stdlib.h> + #else + #include <malloc.h> + #endif +@@ -180,7 +182,7 @@ void ReportAppleAllocStats(size_t* total_virtual_size, + + #if (PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_ANDROID)) || \ + (!PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_WIN) && \ +- !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_FUCHSIA)) ++ !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_BSD)) + void ReportMallinfoStats(ProcessMemoryDump* pmd, + size_t* total_virtual_size, + size_t* resident_size, +@@ -370,6 +372,9 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDump + &allocated_objects_count); + #elif BUILDFLAG(IS_FUCHSIA) + // TODO(fuchsia): Port, see https://crbug.com/706592. ++#elif BUILDFLAG(IS_BSD) ++ total_virtual_size = 0; ++ allocated_objects_size = 0; + #else + ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size, + &allocated_objects_size, &allocated_objects_count); diff --git a/devel/electron36/files/patch-base_trace__event_memory__dump__manager.cc b/devel/electron36/files/patch-base_trace__event_memory__dump__manager.cc new file mode 100644 index 000000000000..cde919b01a19 --- /dev/null +++ b/devel/electron36/files/patch-base_trace__event_memory__dump__manager.cc @@ -0,0 +1,11 @@ +--- base/trace_event/memory_dump_manager.cc.orig 2025-03-24 20:50:14 UTC ++++ base/trace_event/memory_dump_manager.cc +@@ -78,7 +78,7 @@ const char* const MemoryDumpManager::kSystemAllocatorP + #if defined(MALLOC_MEMORY_TRACING_SUPPORTED) + MallocDumpProvider::kAllocatedObjects; + #else +- nullptr; ++ ""; + #endif + + // static diff --git a/devel/electron36/files/patch-base_trace__event_process__memory__dump.cc b/devel/electron36/files/patch-base_trace__event_process__memory__dump.cc new file mode 100644 index 000000000000..c883da504bd5 --- /dev/null +++ b/devel/electron36/files/patch-base_trace__event_process__memory__dump.cc @@ -0,0 +1,20 @@ +--- base/trace_event/process_memory_dump.cc.orig 2025-03-24 20:50:14 UTC ++++ base/trace_event/process_memory_dump.cc +@@ -119,7 +119,7 @@ std::optional<size_t> ProcessMemoryDump::CountResident + #if BUILDFLAG(IS_WIN) + auto vec = + base::HeapArray<PSAPI_WORKING_SET_EX_INFORMATION>::WithSize(max_vec_size); +-#elif BUILDFLAG(IS_APPLE) ++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + auto vec = base::HeapArray<char>::WithSize(max_vec_size); + #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) + auto vec = base::HeapArray<unsigned char>::WithSize(max_vec_size); +@@ -143,7 +143,7 @@ std::optional<size_t> ProcessMemoryDump::CountResident + for (size_t i = 0; i < page_count; i++) { + resident_page_count += vec[i].VirtualAttributes.Valid; + } +-#elif BUILDFLAG(IS_FUCHSIA) ++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/42050620): Implement counting resident bytes. + // For now, log and avoid unused variable warnings. + NOTIMPLEMENTED_LOG_ONCE(); diff --git a/devel/electron36/files/patch-base_tracing_trace__time.cc b/devel/electron36/files/patch-base_tracing_trace__time.cc new file mode 100644 index 000000000000..bd27b5d555db --- /dev/null +++ b/devel/electron36/files/patch-base_tracing_trace__time.cc @@ -0,0 +1,20 @@ +--- base/tracing/trace_time.cc.orig 2025-03-24 20:50:14 UTC ++++ base/tracing/trace_time.cc +@@ -8,12 +8,16 @@ + #include "build/build_config.h" + #include "third_party/perfetto/include/perfetto/base/time.h" + ++#if BUILDFLAG(IS_FREEBSD) ++#define CLOCK_BOOTTIME CLOCK_UPTIME ++#endif ++ + namespace base::tracing { + + int64_t TraceBootTicksNow() { + // On Windows and Mac, TRACE_TIME_TICKS_NOW() behaves like boottime already. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + struct timespec ts; + int res = clock_gettime(CLOCK_BOOTTIME, &ts); + if (res != -1) { diff --git a/devel/electron36/files/patch-base_tracing_trace__time.h b/devel/electron36/files/patch-base_tracing_trace__time.h new file mode 100644 index 000000000000..0394e382ee6e --- /dev/null +++ b/devel/electron36/files/patch-base_tracing_trace__time.h @@ -0,0 +1,11 @@ +--- base/tracing/trace_time.h.orig 2022-02-28 16:54:41 UTC ++++ base/tracing/trace_time.h +@@ -12,7 +12,7 @@ namespace base { + namespace tracing { + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Linux, Android, and Fuchsia all use CLOCK_MONOTONIC. See crbug.com/166153 + // about efforts to unify base::TimeTicks across all platforms. + constexpr perfetto::protos::pbzero::BuiltinClock kTraceClockId = diff --git a/devel/electron36/files/patch-build_config_BUILD.gn b/devel/electron36/files/patch-build_config_BUILD.gn new file mode 100644 index 000000000000..9ca9cf850096 --- /dev/null +++ b/devel/electron36/files/patch-build_config_BUILD.gn @@ -0,0 +1,13 @@ +--- build/config/BUILD.gn.orig 2025-01-27 17:37:37 UTC ++++ build/config/BUILD.gn +@@ -215,6 +215,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", ++ ] + } else if (is_linux || is_chromeos) { + libs = [ + "dl", diff --git a/devel/electron36/files/patch-build_config_BUILDCONFIG.gn b/devel/electron36/files/patch-build_config_BUILDCONFIG.gn new file mode 100644 index 000000000000..081c36c7270e --- /dev/null +++ b/devel/electron36/files/patch-build_config_BUILDCONFIG.gn @@ -0,0 +1,45 @@ +--- build/config/BUILDCONFIG.gn.orig 2025-05-11 11:50:45 UTC ++++ build/config/BUILDCONFIG.gn +@@ -139,7 +139,8 @@ declare_args() { + is_official_build = false + + # Set to true when compiling with the Clang compiler. +- is_clang = current_os != "linux" || ++ is_clang = current_os != "linux" || current_os == "openbsd" || ++ current_os == "freebsd" || + (current_cpu != "s390x" && current_cpu != "s390" && + current_cpu != "ppc64" && current_cpu != "ppc" && + current_cpu != "mips" && current_cpu != "mips64" && +@@ -238,6 +239,10 @@ if (host_toolchain == "") { + host_toolchain = "//build/toolchain/aix:$host_cpu" + } else if (host_os == "zos") { + host_toolchain = "//build/toolchain/zos:$host_cpu" ++ } else if (host_os == "openbsd") { ++ host_toolchain = "//build/toolchain/openbsd:clang_$host_cpu" ++ } else if (host_os == "freebsd") { ++ host_toolchain = "//build/toolchain/freebsd:clang_$host_cpu" + } else { + assert(false, "Unsupported host_os: $host_os") + } +@@ -282,6 +287,8 @@ if (target_os == "android") { + _default_toolchain = "//build/toolchain/aix:$target_cpu" + } else if (target_os == "zos") { + _default_toolchain = "//build/toolchain/zos:$target_cpu" ++} else if (target_os == "openbsd" || target_os == "freebsd") { ++ _default_toolchain = host_toolchain + } else { + assert(false, "Unsupported target_os: $target_os") + } +@@ -316,7 +323,11 @@ is_ios = current_os == "ios" + is_chromeos = current_os == "chromeos" + is_fuchsia = current_os == "fuchsia" + is_ios = current_os == "ios" +-is_linux = current_os == "linux" ++is_linux = current_os == "linux" || current_os == "openbsd" || ++ current_os == "freebsd" ++is_openbsd = current_os == "openbsd" ++is_freebsd = current_os == "freebsd" ++is_bsd = current_os == "openbsd" || current_os == "freebsd" + is_mac = current_os == "mac" + is_nacl = current_os == "nacl" + is_wasm = current_os == "emscripten" diff --git a/devel/electron36/files/patch-build_config_clang_BUILD.gn b/devel/electron36/files/patch-build_config_clang_BUILD.gn new file mode 100644 index 000000000000..b93fe1ca633e --- /dev/null +++ b/devel/electron36/files/patch-build_config_clang_BUILD.gn @@ -0,0 +1,16 @@ +--- build/config/clang/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ build/config/clang/BUILD.gn +@@ -252,7 +252,12 @@ clang_lib("compiler_builtins") { + + # Adds a dependency on the Clang runtime library clang_rt.builtins. + clang_lib("compiler_builtins") { +- if (is_mac) { ++ if (is_bsd) { ++ # Since there's no Rust in the toolchain, there's no concern that we'll use ++ # the Rust stdlib's intrinsics here. ++ # ++ # Don't define libname which makes this target do nothing. ++ } else if (is_mac) { + libname = "osx" + } else if (is_ios) { + if (target_platform == "iphoneos") { diff --git a/devel/electron36/files/patch-build_config_compiler_BUILD.gn b/devel/electron36/files/patch-build_config_compiler_BUILD.gn new file mode 100644 index 000000000000..5c2759046f61 --- /dev/null +++ b/devel/electron36/files/patch-build_config_compiler_BUILD.gn @@ -0,0 +1,131 @@ +--- build/config/compiler/BUILD.gn.orig 2025-05-11 11:50:46 UTC ++++ build/config/compiler/BUILD.gn +@@ -197,7 +197,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() { +@@ -254,13 +254,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") { +- if (!using_sanitizer && ++ if (!using_sanitizer && !is_bsd && + (is_linux || is_chromeos || is_android || is_fuchsia)) { + ldflags = [ + "-Wl,-z,defs", + "-Wl,--as-needed", + ] + } ++ if (current_cpu == "x86" && is_openbsd) { ++ ldflags = [ "-Wl,-z,notext", "-Wl,--strip-all" ] ++ } + } + + # compiler --------------------------------------------------------------------- +@@ -508,6 +511,10 @@ config("compiler") { + } + } + ++ if (is_openbsd) { ++ ldflags += [ "-Wl,-z,wxneeded" ] ++ } ++ + # Linux-specific compiler flags setup. + # ------------------------------------ + if (use_icf && (!is_apple || use_lld)) { +@@ -567,7 +574,7 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl) { ++ if (is_clang && !is_nacl && !is_bsd) { + cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] + if (save_reproducers_on_lld_crash && use_lld) { + ldflags += [ +@@ -1213,7 +1220,7 @@ config("compiler_cpu_abi") { + ] + } + } else if (current_cpu == "arm") { +- if (is_clang && !is_android && !is_nacl && !is_chromeos_device) { ++ if (is_clang && !is_android && !is_nacl && !is_chromeos_device && !is_bsd) { + cflags += [ "--target=arm-linux-gnueabihf" ] + ldflags += [ "--target=arm-linux-gnueabihf" ] + } +@@ -1228,7 +1235,7 @@ config("compiler_cpu_abi") { + } + } else if (current_cpu == "arm64") { + if (is_clang && !is_android && !is_nacl && !is_fuchsia && +- !is_chromeos_device) { ++ !is_chromeos_device && !is_bsd) { + cflags += [ "--target=aarch64-linux-gnu" ] + ldflags += [ "--target=aarch64-linux-gnu" ] + } +@@ -1562,7 +1569,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. +- if (is_nacl) { ++ if (is_nacl || is_bsd) { + # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. + cflags += [ + "-Xclang", +@@ -1620,7 +1627,7 @@ config("clang_revision") { + } + + config("clang_revision") { +- if (is_clang && clang_base_path == default_clang_base_path && ++ if (is_clang && !is_bsd && clang_base_path == default_clang_base_path && + current_os != "zos") { + update_args = [ + "--print-revision", +@@ -1653,7 +1660,7 @@ config("clang_warning_suppression") { + # e.g. by setting in the the project's .gn file. + config("clang_warning_suppression") { + # Some build configs use older versions of clang that don't support WSMs +- if (!is_nacl && default_toolchain != "//build/toolchain/cros:target" && ++ if (!is_bsd && !is_nacl && default_toolchain != "//build/toolchain/cros:target" && + !llvm_android_mainline && is_clang && + clang_warning_suppression_file != "") { + from_build_root = +@@ -1986,9 +1993,6 @@ config("default_warnings") { + + # TODO(crbug.com/40284799): Fix and re-enable. + "-Wno-thread-safety-reference-return", +- +- # TODO(crbug.com/376641662): Fix and re-enable. +- "-Wno-nontrivial-memcall", + ] + + cflags_cc += [ +@@ -2777,7 +2781,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") { +- if (is_clang) { ++ if (is_clang && !is_bsd) { + cflags = [] + if (clang_emit_debug_info_for_profiling) { + # Add the following flags to generate debug info for profiling. +@@ -2804,7 +2808,7 @@ config("afdo") { + cflags += [ "-Wno-backend-plugin" ] + inputs = [ _clang_sample_profile ] + } +- } else if (auto_profile_path != "" && is_a_target_toolchain) { ++ } else if (auto_profile_path != "" && is_a_target_toolchain && !is_bsd) { + cflags = [ "-fauto-profile=${auto_profile_path}" ] + inputs = [ auto_profile_path ] + } +@@ -2981,7 +2985,7 @@ config("symbols") { + cflags += [ "-gomit-unreferenced-methods" ] + } + +- if (is_clang && (!is_nacl || is_nacl_saigo)) { ++ if (is_clang && (!is_nacl || is_nacl_saigo) && !is_bsd) { + if (is_apple) { + # TODO(crbug.com/40117949): Investigate missing debug info on mac. + # Make sure we don't use constructor homing on mac. diff --git a/devel/electron36/files/patch-build_config_gcc_BUILD.gn b/devel/electron36/files/patch-build_config_gcc_BUILD.gn new file mode 100644 index 000000000000..def24e5a8f6f --- /dev/null +++ b/devel/electron36/files/patch-build_config_gcc_BUILD.gn @@ -0,0 +1,13 @@ +--- build/config/gcc/BUILD.gn.orig 2025-01-27 17:37:37 UTC ++++ build/config/gcc/BUILD.gn +@@ -32,7 +32,9 @@ config("symbol_visibility_hidden") { + # See http://gcc.gnu.org/wiki/Visibility + config("symbol_visibility_hidden") { + cflags = [ "-fvisibility=hidden" ] +- rustflags = [ "-Zdefault-visibility=hidden" ] ++ if (!is_bsd) { ++ rustflags = [ "-Zdefault-visibility=hidden" ] ++ } + + # Visibility attribute is not supported on AIX. + if (current_os != "aix") { diff --git a/devel/electron36/files/patch-build_config_linux_BUILD.gn b/devel/electron36/files/patch-build_config_linux_BUILD.gn new file mode 100644 index 000000000000..2e93980f3e50 --- /dev/null +++ b/devel/electron36/files/patch-build_config_linux_BUILD.gn @@ -0,0 +1,11 @@ +--- build/config/linux/BUILD.gn.orig 2022-05-19 14:06:27 UTC ++++ 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/devel/electron36/files/patch-build_config_linux_libdrm_BUILD.gn b/devel/electron36/files/patch-build_config_linux_libdrm_BUILD.gn new file mode 100644 index 000000000000..6ce9dff5909c --- /dev/null +++ b/devel/electron36/files/patch-build_config_linux_libdrm_BUILD.gn @@ -0,0 +1,11 @@ +--- build/config/linux/libdrm/BUILD.gn.orig 2025-01-27 17:37:37 UTC ++++ build/config/linux/libdrm/BUILD.gn +@@ -15,7 +15,7 @@ if (use_system_libdrm) { + } + + if (use_system_libdrm) { +- assert(!is_linux, "System libdrm is not supported in linux") ++# assert(!is_linux, "System libdrm is not supported in linux") + pkg_config("libdrm_config") { + packages = [ "libdrm" ] + } diff --git a/devel/electron36/files/patch-build_config_linux_pkg-config.py b/devel/electron36/files/patch-build_config_linux_pkg-config.py new file mode 100644 index 000000000000..3b8ffa5a822d --- /dev/null +++ b/devel/electron36/files/patch-build_config_linux_pkg-config.py @@ -0,0 +1,11 @@ +--- build/config/linux/pkg-config.py.orig 2023-03-30 00:33:39 UTC ++++ 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: ++ if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd'])): + print("[[],[],[],[],[]]") + return 0 + diff --git a/devel/electron36/files/patch-build_config_ozone.gni b/devel/electron36/files/patch-build_config_ozone.gni new file mode 100644 index 000000000000..31922610c0ff --- /dev/null +++ b/devel/electron36/files/patch-build_config_ozone.gni @@ -0,0 +1,19 @@ +--- build/config/ozone.gni.orig 2025-04-22 20:15:27 UTC ++++ build/config/ozone.gni +@@ -80,7 +80,15 @@ declare_args() { + ozone_platform = "x11" + ozone_platform_drm = true + ozone_platform_x11 = true +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { ++ ozone_platform = "x11" ++ ozone_platform_wayland = true ++ ozone_platform_x11 = true ++ } else if (is_openbsd) { ++ ozone_platform = "x11" ++ ozone_platform_wayland = false ++ ozone_platform_x11 = true ++ } else if (is_freebsd) { + ozone_platform = "x11" + ozone_platform_wayland = true + ozone_platform_x11 = true diff --git a/devel/electron36/files/patch-build_config_rust.gni b/devel/electron36/files/patch-build_config_rust.gni new file mode 100644 index 000000000000..f4a09c1206c3 --- /dev/null +++ b/devel/electron36/files/patch-build_config_rust.gni @@ -0,0 +1,13 @@ +--- build/config/rust.gni.orig 2025-04-22 20:15:27 UTC ++++ build/config/rust.gni +@@ -346,6 +346,10 @@ if (is_linux || is_chromeos) { + } + } + ++if (is_bsd) { ++ rust_abi_target = string_replace(rust_abi_target, "linux-gnu", current_os) ++} ++ + assert(!toolchain_has_rust || rust_abi_target != "") + + # This variable is passed to the Rust libstd build. diff --git a/devel/electron36/files/patch-build_config_v8__target__cpu.gni b/devel/electron36/files/patch-build_config_v8__target__cpu.gni new file mode 100644 index 000000000000..40fa8f6348e3 --- /dev/null +++ b/devel/electron36/files/patch-build_config_v8__target__cpu.gni @@ -0,0 +1,13 @@ +--- build/config/v8_target_cpu.gni.orig 2022-02-07 13:39:41 UTC ++++ build/config/v8_target_cpu.gni +@@ -36,6 +36,10 @@ declare_args() { + if (v8_target_cpu == "") { + if (current_toolchain == "//build/toolchain/linux:clang_x64_v8_arm64") { + v8_target_cpu = "arm64" ++ } else if (current_toolchain == "//build/toolchain/openbsd:clang_arm64") { ++ v8_target_cpu = "arm64" ++ } else if (current_toolchain == "//build/toolchain/freebsd:clang_arm64") { ++ v8_target_cpu = "arm64" + } else if (current_toolchain == "//build/toolchain/linux:clang_x86_v8_arm") { + v8_target_cpu = "arm" + } else if (current_toolchain == diff --git a/devel/electron36/files/patch-build_detect__host__arch.py b/devel/electron36/files/patch-build_detect__host__arch.py new file mode 100644 index 000000000000..673554933a91 --- /dev/null +++ b/devel/electron36/files/patch-build_detect__host__arch.py @@ -0,0 +1,11 @@ +--- build/detect_host_arch.py.orig 2023-03-30 00:33:39 UTC ++++ build/detect_host_arch.py +@@ -20,6 +20,8 @@ def HostArch(): + host_arch = 'ia32' + elif host_arch in ['x86_64', 'amd64']: + host_arch = 'x64' ++ elif host_arch.startswith('arm64'): ++ host_arch = 'arm64' + elif host_arch.startswith('arm'): + host_arch = 'arm' + elif host_arch.startswith('aarch64'): diff --git a/devel/electron36/files/patch-build_gn__run__binary.py b/devel/electron36/files/patch-build_gn__run__binary.py new file mode 100644 index 000000000000..08fb97b6a1e9 --- /dev/null +++ b/devel/electron36/files/patch-build_gn__run__binary.py @@ -0,0 +1,11 @@ +--- build/gn_run_binary.py.orig 2023-03-30 00:33:39 UTC ++++ build/gn_run_binary.py +@@ -23,7 +23,7 @@ if not os.path.isabs(path): + # The rest of the arguments are passed directly to the executable. + args = [path] + sys.argv[2:] + +-ret = subprocess.call(args) ++ret = subprocess.call(args, env={"CHROME_EXE_PATH":"${WRKSRC}/out/Release/chrome","LD_LIBRARY_PATH":"${WRKSRC}/out/Release"}) + if ret != 0: + if ret <= -100: + # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to diff --git a/devel/electron36/files/patch-build_linux_chrome.map b/devel/electron36/files/patch-build_linux_chrome.map new file mode 100644 index 000000000000..992585036b7b --- /dev/null +++ b/devel/electron36/files/patch-build_linux_chrome.map @@ -0,0 +1,13 @@ +--- build/linux/chrome.map.orig 2022-02-28 16:54:41 UTC ++++ build/linux/chrome.map +@@ -20,6 +20,10 @@ global: + # Program entry point. + _start; + ++ # FreeBSD specific variables. ++ __progname; ++ environ; ++ + # Memory allocation symbols. We want chrome and any libraries to + # share the same heap, so it is correct to export these symbols. + aligned_alloc; diff --git a/devel/electron36/files/patch-build_linux_strip__binary.py b/devel/electron36/files/patch-build_linux_strip__binary.py new file mode 100644 index 000000000000..9dd3c051630b --- /dev/null +++ b/devel/electron36/files/patch-build_linux_strip__binary.py @@ -0,0 +1,10 @@ +--- build/linux/strip_binary.py.orig 2022-02-07 13:39:41 UTC ++++ build/linux/strip_binary.py +@@ -10,6 +10,7 @@ import sys + + + def main(): ++ return 0 + argparser = argparse.ArgumentParser(description='eu-strip binary.') + + argparser.add_argument('--eu-strip-binary-path', help='eu-strip path.') diff --git a/devel/electron36/files/patch-build_linux_unbundle_icu.gn b/devel/electron36/files/patch-build_linux_unbundle_icu.gn new file mode 100644 index 000000000000..3e256a08334c --- /dev/null +++ b/devel/electron36/files/patch-build_linux_unbundle_icu.gn @@ -0,0 +1,43 @@ +--- build/linux/unbundle/icu.gn.orig 2025-01-27 17:37:37 UTC ++++ build/linux/unbundle/icu.gn +@@ -17,6 +17,15 @@ config("icu_config") { + "USING_SYSTEM_ICU=1", + "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC", + ++ # As of icu 73 C++ nullptr, char16_t, override, final and noexcept are used ++ # instead of defines. These definitions can be removed when the bundled icu ++ # gets updated to 73. For more details, see: ++ # https://unicode-org.atlassian.net/browse/ICU-21833 and ++ # https://github.com/unicode-org/icu/commit/28643799377ecf654564f6f31854b02788cebe33 ++ "U_FINAL=final", ++ "U_NOEXCEPT=noexcept", ++ "U_OVERRIDE=override", ++ + # U_EXPORT (defined in unicode/platform.h) is used to set public visibility + # on classes through the U_COMMON_API and U_I18N_API macros (among others). + # When linking against the system ICU library, we want its symbols to have +@@ -34,6 +43,9 @@ config("icu_config") { + # to define U_IMPORT to have the same value as U_EXPORT. For more details, + # please see: https://crbug.com/822820 + "U_IMPORT=U_EXPORT", ++ ++ # Unbreak with icu 76 where private symbols are picked up ++ "U_HIDE_DRAFT_API", + ] + } + +@@ -46,6 +58,14 @@ source_set("icui18n") { + } + + source_set("icui18n") { ++ deps = [ ":icui18n_shim" ] ++ public_configs = [ ++ ":icu_config", ++ ":system_icui18n", ++ ] ++} ++ ++source_set("icui18n_hidden_visibility") { + deps = [ ":icui18n_shim" ] + public_configs = [ + ":icu_config", diff --git a/devel/electron36/files/patch-build_linux_unbundle_libusb.gn b/devel/electron36/files/patch-build_linux_unbundle_libusb.gn new file mode 100644 index 000000000000..a99cdcd835d6 --- /dev/null +++ b/devel/electron36/files/patch-build_linux_unbundle_libusb.gn @@ -0,0 +1,30 @@ +--- build/linux/unbundle/libusb.gn.orig 2023-11-29 21:39:40 UTC ++++ build/linux/unbundle/libusb.gn +@@ -1,3 +1,27 @@ ++# Copyright 2016 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. ++ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("system_libusb") { ++ packages = [ "libusb-1.0" ] ++} ++ ++shim_headers("libusb_shim") { ++ root_path = "src/libusb" ++ headers = [ ++ "libusb.h", ++ ] ++} ++ ++source_set("libusb") { ++ deps = [ ++ ":libusb_shim", ++ ] ++ public_configs = [ ":system_libusb" ] ++} + import("//build/config/linux/pkg_config.gni") + import("//build/shim_headers.gni") + diff --git a/devel/electron36/files/patch-build_nocompile.gni b/devel/electron36/files/patch-build_nocompile.gni new file mode 100644 index 000000000000..a18c7cac21e4 --- /dev/null +++ b/devel/electron36/files/patch-build_nocompile.gni @@ -0,0 +1,11 @@ +--- build/nocompile.gni.orig 2025-03-24 20:50:14 UTC ++++ build/nocompile.gni +@@ -55,7 +55,7 @@ declare_args() { + } + + declare_args() { +- enable_nocompile_tests = is_clang && !is_nacl ++ enable_nocompile_tests = is_clang && !is_nacl && !is_bsd + } + + if (enable_nocompile_tests) { diff --git a/devel/electron36/files/patch-build_rust_rust__bindgen.gni b/devel/electron36/files/patch-build_rust_rust__bindgen.gni new file mode 100644 index 000000000000..ec53943b38ea --- /dev/null +++ b/devel/electron36/files/patch-build_rust_rust__bindgen.gni @@ -0,0 +1,19 @@ +--- build/rust/rust_bindgen.gni.orig 2025-01-27 17:37:37 UTC ++++ build/rust/rust_bindgen.gni +@@ -12,14 +12,14 @@ if (is_win) { + import("//build/toolchain/win/win_toolchain_data.gni") + } + +-_bindgen_path = "${rust_bindgen_root}/bin/bindgen" ++_bindgen_path = "${LOCALBASE}/bin/bindgen" + if (host_os == "win") { + _bindgen_path = "${_bindgen_path}.exe" + } + + # On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in + # ../lib. +-_libclang_path = rust_bindgen_root ++_libclang_path = "${LOCALBASE}/llvm${MODCLANG_VERSION}" + if (host_os == "win") { + _libclang_path += "/bin" + } else { diff --git a/devel/electron36/files/patch-build_rust_rust__bindgen__generator.gni b/devel/electron36/files/patch-build_rust_rust__bindgen__generator.gni new file mode 100644 index 000000000000..203e7b2af9ad --- /dev/null +++ b/devel/electron36/files/patch-build_rust_rust__bindgen__generator.gni @@ -0,0 +1,19 @@ +--- build/rust/rust_bindgen_generator.gni.orig 2025-01-27 17:37:37 UTC ++++ build/rust/rust_bindgen_generator.gni +@@ -11,14 +11,14 @@ if (is_win) { + import("//build/toolchain/win/win_toolchain_data.gni") + } + +-_bindgen_path = "${rust_bindgen_root}/bin/bindgen" ++_bindgen_path = "${LOCALBASE}/bin/bindgen" + if (host_os == "win") { + _bindgen_path = "${_bindgen_path}.exe" + } + + # On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in + # ../lib. +-_libclang_path = rust_bindgen_root ++_libclang_path = "${LOCALBASE}/llvm${MODCLANG_VERSION}" + if (host_os == "win") { + _libclang_path += "/bin" + } else { diff --git a/devel/electron36/files/patch-build_rust_std_BUILD.gn b/devel/electron36/files/patch-build_rust_std_BUILD.gn new file mode 100644 index 000000000000..0a5335d58d48 --- /dev/null +++ b/devel/electron36/files/patch-build_rust_std_BUILD.gn @@ -0,0 +1,32 @@ +--- build/rust/std/BUILD.gn.orig 2025-04-05 13:54:50 UTC ++++ build/rust/std/BUILD.gn +@@ -89,13 +89,20 @@ if (toolchain_has_rust) { + # These are no longer present in the Windows toolchain. + stdlib_files += [ + "addr2line", +- "adler2", + "gimli", + "libc", + "memchr", + "miniz_oxide", + "object", + ] ++ ++ rust_revision_pieces = string_split(rustc_revision, " ") ++ rust_version_pieces = string_split(rust_revision_pieces[1], ".") ++ if (rust_version_pieces[1] == "85") { ++ stdlib_files += [ "adler" ] ++ } else { ++ stdlib_files += [ "adler2" ] ++ } + } + + if (toolchain_for_rust_host_build_tools) { +@@ -115,7 +122,6 @@ if (toolchain_has_rust) { + # don't need to pass to the C++ linker because they're used for specialized + # purposes. + skip_stdlib_files = [ +- "profiler_builtins", + "rustc_std_workspace_alloc", + "rustc_std_workspace_core", + "rustc_std_workspace_std", diff --git a/devel/electron36/files/patch-build_toolchain_freebsd_BUILD.gn b/devel/electron36/files/patch-build_toolchain_freebsd_BUILD.gn new file mode 100644 index 000000000000..7857149615a0 --- /dev/null +++ b/devel/electron36/files/patch-build_toolchain_freebsd_BUILD.gn @@ -0,0 +1,69 @@ +--- build/toolchain/freebsd/BUILD.gn.orig 2022-02-07 13:39:41 UTC ++++ build/toolchain/freebsd/BUILD.gn +@@ -0,0 +1,66 @@ ++# Copyright 2013 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. ++ ++import("//build/config/sysroot.gni") ++import("//build/toolchain/gcc_toolchain.gni") ++ ++clang_toolchain("clang_x86") { ++ toolchain_args = { ++ current_cpu = "x86" ++ current_os = "freebsd" ++ } ++} ++ ++gcc_toolchain("x86") { ++ cc = "gcc" ++ cxx = "g++" ++ ++ readelf = "readelf" ++ nm = "nm" ++ ar = "ar" ++ ld = cxx ++ ++ toolchain_args = { ++ current_cpu = "x86" ++ current_os = "freebsd" ++ is_clang = false ++ } ++} ++ ++clang_toolchain("clang_x64") { ++ toolchain_args = { ++ current_cpu = "x64" ++ current_os = "freebsd" ++ } ++} ++ ++gcc_toolchain("x64") { ++ cc = "gcc" ++ cxx = "g++" ++ ++ readelf = "readelf" ++ nm = "nm" ++ ar = "ar" ++ ld = cxx ++ ++ toolchain_args = { ++ current_cpu = "x64" ++ current_os = "freebsd" ++ is_clang = false ++ } ++} ++ ++clang_toolchain("clang_arm") { ++ toolchain_args = { ++ current_cpu = "arm64" ++ current_os = "freebsd" ++ } ++} ++ ++clang_toolchain("clang_arm64") { ++ toolchain_args = { ++ current_cpu = "arm64" ++ current_os = "freebsd" ++ } ++} diff --git a/devel/electron36/files/patch-build_toolchain_gcc__solink__wrapper.py b/devel/electron36/files/patch-build_toolchain_gcc__solink__wrapper.py new file mode 100644 index 000000000000..34debf134bea --- /dev/null +++ b/devel/electron36/files/patch-build_toolchain_gcc__solink__wrapper.py @@ -0,0 +1,11 @@ +--- build/toolchain/gcc_solink_wrapper.py.orig 2022-02-07 13:39:41 UTC ++++ build/toolchain/gcc_solink_wrapper.py +@@ -39,7 +39,7 @@ def CollectDynSym(args): + """Replaces: nm --format=posix -g -D -p $sofile | cut -f1-2 -d' '""" + toc = '' + nm = subprocess.Popen(wrapper_utils.CommandToRun( +- [args.nm, '--format=posix', '-g', '-D', '-p', args.sofile]), ++ [args.nm, '-g', '-D', '-p', args.sofile]), + stdout=subprocess.PIPE, + bufsize=-1, + universal_newlines=True) diff --git a/devel/electron36/files/patch-build_toolchain_gcc__toolchain.gni b/devel/electron36/files/patch-build_toolchain_gcc__toolchain.gni new file mode 100644 index 000000000000..1ee06f62417c --- /dev/null +++ b/devel/electron36/files/patch-build_toolchain_gcc__toolchain.gni @@ -0,0 +1,44 @@ +--- build/toolchain/gcc_toolchain.gni.orig 2025-04-22 20:15:27 UTC ++++ build/toolchain/gcc_toolchain.gni +@@ -56,6 +56,13 @@ if (enable_resource_allowlist_generation) { + "enable_resource_allowlist_generation=true does not work for target_os=$target_os") + } + ++declare_args() { ++ extra_cflags = "" ++ extra_cppflags = "" ++ extra_cxxflags = "" ++ extra_ldflags = "" ++} ++ + # This template defines a toolchain for something that works like gcc + # (including clang). + # +@@ -896,22 +903,12 @@ template("clang_toolchain") { + # actually just be doing a native compile. + template("clang_toolchain") { + gcc_toolchain(target_name) { +- _path = "$clang_base_path/bin" +- _is_path_absolute = get_path_info(_path, "abspath") == _path +- +- # Preserve absolute paths for tools like distcc. +- if (_is_path_absolute && filter_include([ _path ], [ "//*" ]) == []) { +- prefix = _path +- } else { +- prefix = rebase_path(_path, root_build_dir) +- } +- +- cc = "${prefix}/clang" +- cxx = "${prefix}/clang++" ++ cc = "cc" ++ cxx = "c++" + ld = cxx +- readelf = "${prefix}/llvm-readelf" +- ar = "${prefix}/llvm-ar" +- nm = "${prefix}/llvm-nm" ++ readelf = "readelf" ++ ar = "ar" ++ nm = "nm" + + forward_variables_from(invoker, "*", [ "toolchain_args" ]) + diff --git a/devel/electron36/files/patch-build_toolchain_openbsd_BUILD.gn b/devel/electron36/files/patch-build_toolchain_openbsd_BUILD.gn new file mode 100644 index 000000000000..04e6f6b416e2 --- /dev/null +++ b/devel/electron36/files/patch-build_toolchain_openbsd_BUILD.gn @@ -0,0 +1,69 @@ +--- build/toolchain/openbsd/BUILD.gn.orig 2022-02-07 13:39:41 UTC ++++ build/toolchain/openbsd/BUILD.gn +@@ -0,0 +1,66 @@ ++# Copyright 2013 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. ++ ++import("//build/config/sysroot.gni") ++import("//build/toolchain/gcc_toolchain.gni") ++ ++clang_toolchain("clang_x86") { ++ toolchain_args = { ++ current_cpu = "x86" ++ current_os = "openbsd" ++ } ++} ++ ++gcc_toolchain("x86") { ++ cc = "gcc" ++ cxx = "g++" ++ ++ readelf = "readelf" ++ nm = "nm" ++ ar = "ar" ++ ld = cxx ++ ++ toolchain_args = { ++ current_cpu = "x86" ++ current_os = "openbsd" ++ is_clang = false ++ } ++} ++ ++clang_toolchain("clang_x64") { ++ toolchain_args = { ++ current_cpu = "x64" ++ current_os = "openbsd" ++ } ++} ++ ++gcc_toolchain("x64") { ++ cc = "gcc" ++ cxx = "g++" ++ ++ readelf = "readelf" ++ nm = "nm" ++ ar = "ar" ++ ld = cxx ++ ++ toolchain_args = { ++ current_cpu = "x64" ++ current_os = "openbsd" ++ is_clang = false ++ } ++} ++ ++clang_toolchain("clang_arm") { ++ toolchain_args = { ++ current_cpu = "arm64" ++ current_os = "openbsd" ++ } ++} ++ ++clang_toolchain("clang_arm64") { ++ toolchain_args = { ++ current_cpu = "arm64" ++ current_os = "openbsd" ++ } ++} diff --git a/devel/electron36/files/patch-build_toolchain_toolchain.gni b/devel/electron36/files/patch-build_toolchain_toolchain.gni new file mode 100644 index 000000000000..a12986691700 --- /dev/null +++ b/devel/electron36/files/patch-build_toolchain_toolchain.gni @@ -0,0 +1,11 @@ +--- build/toolchain/toolchain.gni.orig 2025-03-24 20:50:14 UTC ++++ build/toolchain/toolchain.gni +@@ -75,7 +75,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" || host_os == "zos") { ++} else if (is_posix) { + host_shlib_extension = ".so" + } else { + assert(false, "Host platform not supported") diff --git a/devel/electron36/files/patch-cc_base_features.cc b/devel/electron36/files/patch-cc_base_features.cc new file mode 100644 index 000000000000..bb1a7caa8f32 --- /dev/null +++ b/devel/electron36/files/patch-cc_base_features.cc @@ -0,0 +1,11 @@ +--- cc/base/features.cc.orig 2025-04-22 20:15:27 UTC ++++ cc/base/features.cc +@@ -48,7 +48,7 @@ BASE_FEATURE(kUseDMSAAForTiles, + // be using a separate flag to control the launch on GL. + 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/devel/electron36/files/patch-chrome_app_chrome__command__ids.h b/devel/electron36/files/patch-chrome_app_chrome__command__ids.h new file mode 100644 index 000000000000..6fbe4781de09 --- /dev/null +++ b/devel/electron36/files/patch-chrome_app_chrome__command__ids.h @@ -0,0 +1,16 @@ +--- chrome/app/chrome_command_ids.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/app/chrome_command_ids.h +@@ -72,11 +72,11 @@ + #define IDC_TOGGLE_MULTITASK_MENU 34050 + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define IDC_USE_SYSTEM_TITLE_BAR 34051 + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define IDC_RESTORE_WINDOW 34052 + #endif + diff --git a/devel/electron36/files/patch-chrome_app_chrome__main.cc b/devel/electron36/files/patch-chrome_app_chrome__main.cc new file mode 100644 index 000000000000..e1f01d509ad8 --- /dev/null +++ b/devel/electron36/files/patch-chrome_app_chrome__main.cc @@ -0,0 +1,43 @@ +--- chrome/app/chrome_main.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/app/chrome_main.cc +@@ -28,11 +28,11 @@ + #include "chrome/app/chrome_main_mac.h" + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/base_switches.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/app/chrome_main_linux.h" + #endif + +@@ -57,7 +57,7 @@ + // sometime after old headless code is removed from Chrome. + // See https://crbug.com/373672160. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #define ENABLE_OLD_HEADLESS_INFO + #endif + +@@ -115,7 +115,7 @@ int ChromeMain(int argc, const char** argv) { + #error Unknown platform. + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + PossiblyDetermineFallbackChromeChannel(argv[0]); + #endif + +@@ -181,7 +181,7 @@ int ChromeMain(int argc, const char** argv) { + SetUpBundleOverrides(); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + AppendExtraArgumentsToCommandLine(command_line); + #endif + diff --git a/devel/electron36/files/patch-chrome_app_chrome__main__delegate.cc b/devel/electron36/files/patch-chrome_app_chrome__main__delegate.cc new file mode 100644 index 000000000000..7612b36f6656 --- /dev/null +++ b/devel/electron36/files/patch-chrome_app_chrome__main__delegate.cc @@ -0,0 +1,147 @@ +--- chrome/app/chrome_main_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/app/chrome_main_delegate.cc +@@ -147,7 +147,7 @@ + #include "components/webui/about/credit_utils.h" + #endif + +-#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) + #include "components/nacl/common/nacl_paths.h" + #include "components/nacl/zygote/nacl_fork_delegate_linux.h" + #endif +@@ -188,17 +188,17 @@ + #include "v8/include/v8.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/nix/scoped_xdg_activation_token_injector.h" + #include "ui/linux/display_server_utils.h" + #endif + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/policy/policy_path_parser.h" + #include "components/crash/core/app/crashpad.h" + #endif +@@ -316,7 +316,7 @@ bool SubprocessNeedsResourceBundle(const std::string& + // and resources loaded. + bool SubprocessNeedsResourceBundle(const std::string& process_type) { + return +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The zygote process opens the resources for the renderers. + process_type == switches::kZygoteProcess || + #endif +@@ -399,7 +399,7 @@ bool HandleVersionSwitches(const base::CommandLine& co + return false; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // 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) || +@@ -411,7 +411,7 @@ void HandleHelpSwitches(const base::CommandLine& comma + } + #endif // BUILDFLAG(IS_LINUX) + +-#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + void SIGTERMProfilingShutdown(int signal) { + content::Profiling::Stop(); + struct sigaction sigact; +@@ -493,7 +493,7 @@ std::optional<int> AcquireProcessSingleton( + // process can be exited. + ChromeProcessSingleton::CreateInstance(user_data_dir); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // 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. +@@ -571,7 +571,7 @@ void InitializeUserDataDir(base::CommandLine* command_ + std::string process_type = + command_line->GetSwitchValueASCII(switches::kProcessType); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // 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. +@@ -667,7 +667,7 @@ void RecordMainStartupMetrics(const StartupTimestamps& + #endif + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Record the startup process creation time on supported platforms. On Android + // this is recorded in ChromeMainDelegateAndroid. + startup_metric_utils::GetCommon().RecordStartupProcessCreationTime( +@@ -826,7 +826,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) + ui::SetOzonePlatformForLinuxIfNeeded(*base::CommandLine::ForCurrentProcess()); + #endif + ui::OzonePlatform::PreEarlyInitialization(); +@@ -983,7 +983,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv + const bool is_canary_dev = IsCanaryDev(); + const bool emit_crashes = + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + is_canary_dev; + #else + false; +@@ -1131,7 +1131,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom + return 0; // Got a --credits switch; exit with a success error code. + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // This will directly exit if the user asked for help. + HandleHelpSwitches(command_line); + #endif +@@ -1156,7 +1156,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom + ash::RegisterPathProvider(); + chromeos::dbus_paths::RegisterPathProvider(); + #endif +-#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + nacl::RegisterPathProvider(); + #endif + +@@ -1444,7 +1444,7 @@ void ChromeMainDelegate::PreSandboxStartup() { + CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale; + } + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + // Zygote needs to call InitCrashReporter() in RunZygote(). + if (process_type != switches::kZygoteProcess && + !command_line.HasSwitch(switches::kDisableCrashpadForTesting)) { +@@ -1532,13 +1532,13 @@ std::variant<int, content::MainFunctionParams> ChromeM + #else + + #if BUILDFLAG(IS_MAC) || (BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && \ +- !BUILDFLAG(IS_CHROMEOS)) ++ !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)) + static const MainFunction kMainFunctions[] = { + #if BUILDFLAG(IS_MAC) + {switches::kRelauncherProcess, mac_relauncher::internal::RelauncherMain}, + {switches::kCodeSignCloneCleanupProcess, + code_sign_clone_manager::internal::ChromeCodeSignCloneCleanupMain}, +-#elif BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // This entry is not needed on Linux, where the NaCl loader + // process is launched via nacl_helper instead. + {switches::kNaClLoaderProcess, NaClMain}, diff --git a/devel/electron36/files/patch-chrome_browser_BUILD.gn b/devel/electron36/files/patch-chrome_browser_BUILD.gn new file mode 100644 index 000000000000..23f05e3159e8 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_BUILD.gn @@ -0,0 +1,16 @@ +--- chrome/browser/BUILD.gn.orig 2025-05-11 11:50:45 UTC ++++ chrome/browser/BUILD.gn +@@ -6866,6 +6866,13 @@ static_library("browser") { + [ "//third_party/webrtc/modules/desktop_capture:pipewire_config" ] + } + ++ if (is_bsd) { ++ sources -= [ ++ "metrics/bluetooth_metrics_provider.cc", ++ "metrics/bluetooth_metrics_provider.h", ++ ] ++ } ++ + if (use_dbus) { + sources += [ + "dbus_memory_pressure_evaluator_linux.cc", diff --git a/devel/electron36/files/patch-chrome_browser_about__flags.cc b/devel/electron36/files/patch-chrome_browser_about__flags.cc new file mode 100644 index 000000000000..e7f4e08cb2eb --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_about__flags.cc @@ -0,0 +1,379 @@ +--- chrome/browser/about_flags.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/about_flags.cc +@@ -260,7 +260,7 @@ + #include "extensions/common/extension_features.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/allocator/buildflags.h" + #endif + +@@ -349,7 +349,7 @@ + #include "device/vr/public/cpp/switches.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/ozone/public/ozone_switches.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -359,7 +359,7 @@ + #include "chrome/browser/win/mica_titlebar.h" + #endif + +-#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/contextual_cueing/contextual_cueing_features.h" // nogncheck + #include "chrome/browser/enterprise/profile_management/profile_management_features.h" + #include "chrome/browser/enterprise/webstore/features.h" +@@ -371,7 +371,7 @@ + #include "components/user_education/common/user_education_features.h" // nogncheck + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/ui_features.h" + #include "ui/base/ui_base_features.h" + #endif +@@ -423,7 +423,7 @@ const FeatureEntry::Choice kPullToRefreshChoices[] = { + #endif // USE_AURA + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + const FeatureEntry::FeatureParam kLocalNetworkAccessChecksBlock[] = { + {"LocalNetworkAccessChecksWarn", "false"}}; +@@ -539,7 +539,7 @@ const FeatureEntry::FeatureVariation kDXGIWaitableSwap + {"Max 3 Frames", &kDXGIWaitableSwapChain3Frames, 1, nullptr}}; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const FeatureEntry::Choice kOzonePlatformHintRuntimeChoices[] = { + {flag_descriptions::kOzonePlatformHintChoiceDefault, "", ""}, + {flag_descriptions::kOzonePlatformHintChoiceAuto, +@@ -852,6 +852,26 @@ const FeatureEntry::FeatureVariation + std::size(kWebIdentityDigitalIdentityCredentialHighRiskDialogParam), + nullptr}}; + ++#if BUILDFLAG(IS_BSD) ++const FeatureEntry::FeatureParam kAudioBackendPulseAudio[] = { ++ { "audio-backend", "pulseaudio" }}; ++const FeatureEntry::FeatureParam kAudioBackendSndio[] = { ++ { "audio-backend", "sndio" }}; ++const FeatureEntry::FeatureParam kAudioBackendAlsa[] = { ++ { "audio-backend", "alsa" }}; ++const FeatureEntry::FeatureVariation ++ kAudioBackendVariations[] = { ++ {"using PulseAudio by default if available", kAudioBackendPulseAudio, ++ std::size(kAudioBackendPulseAudio), ++ nullptr}, ++ {"using sndio by default if available", kAudioBackendSndio, ++ std::size(kAudioBackendSndio), ++ nullptr}, ++ {"using ALSA by default if available", kAudioBackendAlsa, ++ std::size(kAudioBackendAlsa), ++ nullptr}}; ++#endif ++ + const FeatureEntry::FeatureParam kClipboardMaximumAge60Seconds[] = { + {"UIClipboardMaximumAge", "60"}}; + const FeatureEntry::FeatureParam kClipboardMaximumAge90Seconds[] = { +@@ -1227,7 +1247,7 @@ constexpr FeatureEntry::FeatureVariation + #endif // !BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + const FeatureEntry::FeatureParam kHistoryEmbeddingsAtKeywordAcceleration[]{ + {"AtKeywordAcceleration", "true"}, + }; +@@ -1265,7 +1285,7 @@ const FeatureEntry::FeatureVariation kRemotePageMetada + }; + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + + // A limited number of combinations of the rich autocompletion params. + const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive1[] = { +@@ -3555,7 +3575,7 @@ const FeatureEntry::FeatureVariation + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const flags_ui::FeatureEntry::FeatureParam kPwaNavigationCapturingDefaultOn[] = + {{"link_capturing_state", "on_by_default"}}; + const flags_ui::FeatureEntry::FeatureParam kPwaNavigationCapturingDefaultOff[] = +@@ -4059,7 +4079,7 @@ const FeatureEntry::FeatureVariation kSkiaGraphiteVari + std::size(kSkiaGraphite_DebugLabelsEnabled), nullptr}, + }; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const FeatureEntry::FeatureParam kTranslationAPI_SkipLanguagePackLimit[] = { + {"TranslationAPIAcceptLanguagesCheck", "false"}, + {"TranslationAPILimitLanguagePackCount", "false"}}; +@@ -4125,7 +4145,7 @@ const FeatureEntry::FeatureVariation + 1, nullptr}, + }; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const FeatureEntry::FeatureParam kContextualCueingEnabledNoEngagementCap[] = { + {"BackoffTime", "0h"}, + {"BackoffMultiplierBase", "0.0"}, +@@ -4992,7 +5012,7 @@ const FeatureEntry kFeatureEntries[] = { + }, + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + { + "fluent-overlay-scrollbars", + flag_descriptions::kFluentOverlayScrollbarsName, +@@ -5279,7 +5299,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kEnableIsolatedWebAppDevModeName, + flag_descriptions::kEnableIsolatedWebAppDevModeDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kIsolatedWebAppDevMode)}, +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"enable-iwa-key-distribution-component", + flag_descriptions::kEnableIwaKeyDistributionComponentName, + flag_descriptions::kEnableIwaKeyDistributionComponentDescription, +@@ -5500,7 +5520,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(features::kWebShare)}, + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"pulseaudio-loopback-for-cast", + flag_descriptions::kPulseaudioLoopbackForCastName, + flag_descriptions::kPulseaudioLoopbackForCastDescription, kOsLinux, +@@ -5541,6 +5561,16 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kWaylandSessionManagementName, + flag_descriptions::kWaylandSessionManagementDescription, kOsLinux, + FEATURE_VALUE_TYPE(features::kWaylandSessionManagement)}, ++ ++#if BUILDFLAG(IS_BSD) ++ {"audio-backend", ++ flag_descriptions::kAudioBackendName, ++ flag_descriptions::kAudioBackendDescription, kOsLinux, ++ FEATURE_WITH_PARAMS_VALUE_TYPE( ++ media::kAudioBackend, ++ kAudioBackendVariations, ++ "AudioBackend")}, ++#endif + #endif // BUILDFLAG(IS_LINUX) + + #if BUILDFLAG(ENABLE_VR) +@@ -6427,7 +6457,7 @@ const FeatureEntry kFeatureEntries[] = { + "MlUrlScoring")}, + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + {"omnibox-domain-suggestions", + flag_descriptions::kOmniboxDomainSuggestionsName, + flag_descriptions::kOmniboxDomainSuggestionsDescription, kOsDesktop, +@@ -6697,7 +6727,7 @@ const FeatureEntry kFeatureEntries[] = { + kNumSrpZpsRelatedSearches, + "PowerTools")}, + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + {"history-embeddings", flag_descriptions::kHistoryEmbeddingsName, + flag_descriptions::kHistoryEmbeddingsDescription, kOsDesktop, + FEATURE_WITH_PARAMS_VALUE_TYPE(history_embeddings::kHistoryEmbeddings, +@@ -7189,7 +7219,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(printing::features::kAddPrinterViaPrintscanmgr)}, + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + {"cups-ipp-printing-backend", + flag_descriptions::kCupsIppPrintingBackendName, + flag_descriptions::kCupsIppPrintingBackendDescription, kOsDesktop, +@@ -7437,7 +7467,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kSupportToolScreenshotDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSupportToolScreenshot)}, + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + {"wasm-tts-component-updater-enabled", + flag_descriptions::kWasmTtsComponentUpdaterEnabledName, + flag_descriptions::kWasmTtsComponentUpdaterEnabledDescription, kOsDesktop, +@@ -8109,7 +8139,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(media::kGlobalMediaControlsUpdatedUI)}, + #endif // !BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {"enable-network-service-sandbox", + flag_descriptions::kEnableNetworkServiceSandboxName, + flag_descriptions::kEnableNetworkServiceSandboxDescription, +@@ -8774,7 +8804,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(ash::features::kWallpaperGooglePhotosSharedAlbums)}, + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"enable-get-all-screens-media", flag_descriptions::kGetAllScreensMediaName, + flag_descriptions::kGetAllScreensMediaDescription, kOsCrOS | kOsLinux, + FEATURE_VALUE_TYPE(blink::features::kGetAllScreensMedia)}, +@@ -8799,7 +8829,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kGlobalVaapiLockDescription, kOsCrOS | kOsLinux, + FEATURE_VALUE_TYPE(media::kGlobalVaapiLock)}, + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + { + "ui-debug-tools", + flag_descriptions::kUIDebugToolsName, +@@ -9275,7 +9305,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(features::kRenderPassDrawnRect)}, + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {"media-session-enter-picture-in-picture", + flag_descriptions::kMediaSessionEnterPictureInPictureName, + flag_descriptions::kMediaSessionEnterPictureInPictureDescription, +@@ -9924,7 +9954,7 @@ const FeatureEntry kFeatureEntries[] = { + kOsDesktop | kOsAndroid, + FEATURE_VALUE_TYPE(features::kProcessPerSiteUpToMainFrameThreshold)}, + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"camera-mic-effects", flag_descriptions::kCameraMicEffectsName, + flag_descriptions::kCameraMicEffectsDescription, + static_cast<unsigned short>(kOsMac | kOsWin | kOsLinux), +@@ -10048,7 +10078,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(chrome::android::kReadAloudTapToSeek)}, + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + {"third-party-profile-management", + flag_descriptions::kThirdPartyProfileManagementName, + flag_descriptions::kThirdPartyProfileManagementDescription, +@@ -10077,7 +10107,7 @@ const FeatureEntry kFeatureEntries[] = { + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {"enable-user-navigation-capturing-pwa", + flag_descriptions::kPwaNavigationCapturingName, + flag_descriptions::kPwaNavigationCapturingDescription, +@@ -10817,7 +10847,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kCanvasHibernationDescription, kOsAll, + FEATURE_VALUE_TYPE(blink::features::kCanvas2DHibernation)}, + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"enable-history-sync-optin", + flag_descriptions::kEnableHistorySyncOptinName, + flag_descriptions::kEnableHistorySyncOptinDescription, +@@ -10920,7 +10950,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(switches::kForceSupervisedSigninWithCapabilities)}, + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + {"supervised-profile-safe-search", + flag_descriptions::kSupervisedProfileSafeSearchName, + flag_descriptions::kSupervisedProfileSafeSearchDescription, +@@ -11167,7 +11197,7 @@ const FeatureEntry kFeatureEntries[] = { + segmentation_platform::features::kSegmentationSurveyPage)}, + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {"autofill-enable-buy-now-pay-later", + flag_descriptions::kAutofillEnableBuyNowPayLaterName, + flag_descriptions::kAutofillEnableBuyNowPayLaterDescription, kOsDesktop, +@@ -11282,7 +11312,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE( + autofill::features::kAutofillEnableCardInfoRuntimeRetrieval)}, + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"translation-api", flag_descriptions::kTranslationAPIName, + flag_descriptions::kTranslationAPIDescription, kOsMac | kOsWin | kOsLinux, + FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kTranslationAPI, +@@ -11319,7 +11349,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE( + password_manager::features::kPasswordFormClientsideClassifier)}, + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"contextual-cueing", flag_descriptions::kContextualCueingName, + flag_descriptions::kContextualCueingDescription, + kOsLinux | kOsMac | kOsWin, +@@ -11653,7 +11683,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(ui::kUseNewEtc1Encoder)}, + #endif // !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"automatic-usb-detach", flag_descriptions::kAutomaticUsbDetachName, + flag_descriptions::kAutomaticUsbDetachDescription, kOsAndroid | kOsLinux, + FEATURE_VALUE_TYPE(features::kAutomaticUsbDetach)}, +@@ -11703,7 +11733,7 @@ const FeatureEntry kFeatureEntries[] = { + #endif // !BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {"autofill-enable-amount-extraction-desktop", + flag_descriptions::kAutofillEnableAmountExtractionDesktopName, + flag_descriptions::kAutofillEnableAmountExtractionDesktopDescription, +@@ -11723,7 +11753,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(blink::features::kClipboardContentsId)}, + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {"autofill-enable-amount-extraction-allowlist-desktop", + flag_descriptions::kAutofillEnableAmountExtractionAllowlistDesktopName, + flag_descriptions:: +@@ -11834,7 +11864,7 @@ const FeatureEntry kFeatureEntries[] = { + apps::chrome_app_deprecation::kAllowUserInstalledChromeApps)}, + #endif // 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) + {"chrome-web-store-navigation-throttle", + flag_descriptions::kChromeWebStoreNavigationThrottleName, + flag_descriptions::kChromeWebStoreNavigationThrottleDescription, +@@ -11869,7 +11899,7 @@ const FeatureEntry kFeatureEntries[] = { + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {"autofill-enable-amount-extraction-desktop-logging", + flag_descriptions::kAutofillEnableAmountExtractionDesktopLoggingName, + flag_descriptions:: +@@ -11899,7 +11929,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kEnableWebAppUpdateTokenParsingDescription, kOsAll, + FEATURE_VALUE_TYPE(features::kWebAppEnableUpdateTokenParsing)}, + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"root-scrollbar-follows-browser-theme", + flag_descriptions::kRootScrollbarFollowsTheme, + flag_descriptions::kRootScrollbarFollowsThemeDescription, +@@ -11921,7 +11951,7 @@ const FeatureEntry kFeatureEntries[] = { + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {"local-network-access-check", + flag_descriptions::kLocalNetworkAccessChecksName, + flag_descriptions::kLocalNetworkAccessChecksDescription, kOsDesktop, diff --git a/devel/electron36/files/patch-chrome_browser_accessibility_page__colors.cc b/devel/electron36/files/patch-chrome_browser_accessibility_page__colors.cc new file mode 100644 index 000000000000..14c471acb482 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_accessibility_page__colors.cc @@ -0,0 +1,20 @@ +--- chrome/browser/accessibility/page_colors.cc.orig 2024-08-14 20:54:31 UTC ++++ chrome/browser/accessibility/page_colors.cc +@@ -12,7 +12,7 @@ + #include "components/sync_preferences/pref_service_syncable.h" + #include "ui/native_theme/native_theme.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #include "ui/linux/linux_ui_factory.h" + #endif // BUILDFLAG(IS_LINUX) +@@ -55,7 +55,7 @@ void PageColors::OnPageColorsChanged() { + + void PageColors::OnPageColorsChanged() { + auto* native_theme = ui::NativeTheme::GetInstanceForNativeUi(); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Allow the Linux native theme to update its state for page colors. + if (auto* linux_ui_theme = ui::GetDefaultLinuxUiTheme()) { + if (auto* linux_native_theme = linux_ui_theme->GetNativeTheme()) { diff --git a/devel/electron36/files/patch-chrome_browser_after__startup__task__utils.cc b/devel/electron36/files/patch-chrome_browser_after__startup__task__utils.cc new file mode 100644 index 000000000000..8d438e44cafa --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_after__startup__task__utils.cc @@ -0,0 +1,11 @@ +--- chrome/browser/after_startup_task_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/after_startup_task_utils.cc +@@ -112,7 +112,7 @@ void SetBrowserStartupIsComplete() { + TRACE_EVENT_SCOPE_GLOBAL, "BrowserCount", browser_count); + GetStartupCompleteFlag().Set(); + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Process::Current().CreationTime() is not available on all platforms. + const base::Time process_creation_time = + base::Process::Current().CreationTime(); diff --git a/devel/electron36/files/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc b/devel/electron36/files/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc new file mode 100644 index 000000000000..974564e532a4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc @@ -0,0 +1,11 @@ +--- chrome/browser/apps/app_service/publishers/extension_apps.cc.orig 2024-04-15 20:33:45 UTC ++++ chrome/browser/apps/app_service/publishers/extension_apps.cc +@@ -23,7 +23,7 @@ bool ExtensionApps::Accepts(const extensions::Extensio + ExtensionApps::~ExtensionApps() = default; + + bool ExtensionApps::Accepts(const extensions::Extension* extension) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (extensions::IsExtensionUnsupportedDeprecatedApp(profile(), + extension->id())) { + return false; diff --git a/devel/electron36/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc b/devel/electron36/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc new file mode 100644 index 000000000000..3d97a501fb91 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc @@ -0,0 +1,65 @@ +--- chrome/browser/apps/platform_apps/platform_app_launch.cc.orig 2024-04-15 20:33:45 UTC ++++ chrome/browser/apps/platform_apps/platform_app_launch.cc +@@ -19,7 +19,7 @@ + #include "extensions/common/constants.h" + #include "extensions/common/extension.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 "chrome/browser/ui/browser.h" + #include "chrome/browser/ui/browser_navigator.h" + #include "chrome/browser/ui/browser_window.h" +@@ -86,7 +86,7 @@ bool OpenExtensionApplicationWindow(Profile* profile, + if (launch_container == LaunchContainer::kLaunchContainerTab) + return false; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (OpenDeprecatedApplicationPrompt(profile, app_id)) { + return false; + } +@@ -118,7 +118,7 @@ content::WebContents* OpenExtensionApplicationTab(Prof + if (launch_container != apps::LaunchContainer::kLaunchContainerTab) + return nullptr; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (OpenDeprecatedApplicationPrompt(profile, app_id)) { + return nullptr; + } +@@ -134,7 +134,7 @@ content::WebContents* OpenExtensionApplicationTab(Prof + return app_tab; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool OpenDeprecatedApplicationPrompt(Profile* profile, + const std::string& app_id) { + if (!extensions::IsExtensionUnsupportedDeprecatedApp(profile, app_id)) +@@ -170,7 +170,7 @@ bool OpenExtensionApplicationWithReenablePrompt( + if (!GetPlatformApp(profile, app_id)) + return false; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (OpenDeprecatedApplicationPrompt(profile, app_id)) { + return false; + } +@@ -192,7 +192,7 @@ content::WebContents* OpenExtensionAppShortcutWindow(P + ->enabled_extensions() + .GetAppByURL(url); + if (app) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (OpenDeprecatedApplicationPrompt(profile, app->id())) { + return nullptr; + } +@@ -215,7 +215,7 @@ void RecordExtensionAppLaunchOnTabRestored(Profile* pr + if (!extension) + return; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (OpenDeprecatedApplicationPrompt(profile, extension->id())) { + return; + } diff --git a/devel/electron36/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.h b/devel/electron36/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.h new file mode 100644 index 000000000000..dfaec412f898 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.h @@ -0,0 +1,11 @@ +--- chrome/browser/apps/platform_apps/platform_app_launch.h.orig 2024-06-18 21:43:21 UTC ++++ chrome/browser/apps/platform_apps/platform_app_launch.h +@@ -38,7 +38,7 @@ content::WebContents* OpenExtensionApplicationTab(Prof + content::WebContents* OpenExtensionApplicationTab(Profile* profile, + const std::string& app_id); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Opens the deprecated Chrome Apps flow if |app_id| refers to a Chrome App and + // Chrome Apps are deprecated on the |profile|. Returns true if that was the + // case, or false otherwise. diff --git a/devel/electron36/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc b/devel/electron36/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc new file mode 100644 index 000000000000..aede11201088 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc @@ -0,0 +1,11 @@ +--- chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc.orig 2024-06-18 21:43:22 UTC ++++ chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc +@@ -88,7 +88,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForSch + return metrics::OmniboxInputType::QUERY; + + case ExternalProtocolHandler::UNKNOWN: { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Linux impl of GetApplicationNameForScheme doesn't distinguish + // between URL schemes with handers and those without. This will + // make the default behaviour be search on Linux. diff --git a/devel/electron36/files/patch-chrome_browser_background_extensions_background__mode__manager.cc b/devel/electron36/files/patch-chrome_browser_background_extensions_background__mode__manager.cc new file mode 100644 index 000000000000..9e94c3f824ac --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_background_extensions_background__mode__manager.cc @@ -0,0 +1,11 @@ +--- chrome/browser/background/extensions/background_mode_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/background/extensions/background_mode_manager.cc +@@ -893,7 +893,7 @@ gfx::ImageSkia GetStatusTrayIcon() { + } + + return family->CreateExact(size).AsImageSkia(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( + IDR_PRODUCT_LOGO_128); + #elif BUILDFLAG(IS_MAC) diff --git a/devel/electron36/files/patch-chrome_browser_background_extensions_background__mode__optimizer.cc b/devel/electron36/files/patch-chrome_browser_background_extensions_background__mode__optimizer.cc new file mode 100644 index 000000000000..f0372d3b3770 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_background_extensions_background__mode__optimizer.cc @@ -0,0 +1,11 @@ +--- chrome/browser/background/extensions/background_mode_optimizer.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/background/extensions/background_mode_optimizer.cc +@@ -31,7 +31,7 @@ std::unique_ptr<BackgroundModeOptimizer> BackgroundMod + return nullptr; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(features::kBackgroundModeAllowRestart)) { + // Private ctor. + return base::WrapUnique(new BackgroundModeOptimizer()); diff --git a/devel/electron36/files/patch-chrome_browser_background_glic_glic__status__icon.cc b/devel/electron36/files/patch-chrome_browser_background_glic_glic__status__icon.cc new file mode 100644 index 000000000000..3f1289bb597a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_background_glic_glic__status__icon.cc @@ -0,0 +1,38 @@ +--- chrome/browser/background/glic/glic_status_icon.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/background/glic/glic_status_icon.cc +@@ -86,7 +86,7 @@ GlicStatusIcon::GlicStatusIcon(GlicController* control + if (!status_icon_) { + return; + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set a vector icon for proper themeing on Linux. + status_icon_->SetIcon( + GlicVectorIconManager::GetVectorIcon(IDR_GLIC_BUTTON_VECTOR_ICON)); +@@ -128,7 +128,7 @@ GlicStatusIcon::~GlicStatusIcon() { + + context_menu_ = nullptr; + if (status_icon_) { +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + status_icon_->RemoveObserver(this); + #endif + std::unique_ptr<StatusIcon> removed_icon = +@@ -234,7 +234,7 @@ void GlicStatusIcon::UpdateVisibilityOfExitInContextMe + } + + void GlicStatusIcon::UpdateVisibilityOfExitInContextMenu() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (context_menu_) { + context_menu_->SetCommandIdVisible(IDC_GLIC_STATUS_ICON_MENU_EXIT, + BrowserList::GetInstance()->empty()); +@@ -272,7 +272,7 @@ std::unique_ptr<StatusIconMenuModel> GlicStatusIcon::C + menu->AddItem( + IDC_GLIC_STATUS_ICON_MENU_REMOVE_ICON, + l10n_util::GetStringUTF16(IDS_GLIC_STATUS_ICON_MENU_REMOVE_ICON)); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + menu->AddItem(IDC_GLIC_STATUS_ICON_MENU_EXIT, + l10n_util::GetStringUTF16(IDS_GLIC_STATUS_ICON_MENU_EXIT)); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_browser__features.cc b/devel/electron36/files/patch-chrome_browser_browser__features.cc new file mode 100644 index 000000000000..741cff3754fe --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_browser__features.cc @@ -0,0 +1,29 @@ +--- chrome/browser/browser_features.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/browser_features.cc +@@ -75,7 +75,7 @@ BASE_FEATURE(kClearUserDataUponProfileDestruction, + "ClearUserDataUponProfileDestruction", + base::FEATURE_ENABLED_BY_DEFAULT); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Enables usage of os_crypt_async::SecretPortalKeyProvider. Once + // `kSecretPortalKeyProviderUseForEncryption` is enabled, this flag cannot be + // disabled without losing data. +@@ -94,7 +94,7 @@ BASE_FEATURE(kDestroyProfileOnBrowserClose, + // the browser exits. + BASE_FEATURE(kDestroyProfileOnBrowserClose, + "DestroyProfileOnBrowserClose", +-#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 + base::FEATURE_DISABLED_BY_DEFAULT); +@@ -227,7 +227,7 @@ BASE_FEATURE(kSandboxExternalProtocolBlockedWarning, + "SandboxExternalProtocolBlockedWarning", + base::FEATURE_ENABLED_BY_DEFAULT); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If true, encrypt new data with the key provided by SecretPortalKeyProvider. + // Otherwise, it will only decrypt existing data. + BASE_FEATURE(kSecretPortalKeyProviderUseForEncryption, diff --git a/devel/electron36/files/patch-chrome_browser_browser__features.h b/devel/electron36/files/patch-chrome_browser_browser__features.h new file mode 100644 index 000000000000..8774a3dbaabd --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_browser__features.h @@ -0,0 +1,20 @@ +--- chrome/browser/browser_features.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/browser_features.h +@@ -38,7 +38,7 @@ BASE_DECLARE_FEATURE(kClearUserDataUponProfileDestruct + BASE_DECLARE_FEATURE(kCertVerificationNetworkTime); + BASE_DECLARE_FEATURE(kClearUserDataUponProfileDestruction); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_DECLARE_FEATURE(kDbusSecretPortal); + BASE_DECLARE_FEATURE(kUseFreedesktopSecretKeyProvider); + #endif +@@ -100,7 +100,7 @@ BASE_DECLARE_FEATURE(kSandboxExternalProtocolBlockedWa + BASE_DECLARE_FEATURE(kSandboxExternalProtocolBlocked); + BASE_DECLARE_FEATURE(kSandboxExternalProtocolBlockedWarning); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_DECLARE_FEATURE(kSecretPortalKeyProviderUseForEncryption); + BASE_DECLARE_FEATURE(kUseFreedesktopSecretKeyProviderForEncryption); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_browser__process__impl.cc b/devel/electron36/files/patch-chrome_browser_browser__process__impl.cc new file mode 100644 index 000000000000..f96cfecf3b12 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_browser__process__impl.cc @@ -0,0 +1,47 @@ +--- chrome/browser/browser_process_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/browser_process_impl.cc +@@ -259,7 +259,7 @@ + #include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/browser_features.h" + #include "components/os_crypt/async/browser/fallback_linux_key_provider.h" + #include "components/os_crypt/async/browser/freedesktop_secret_key_provider.h" +@@ -271,7 +271,7 @@ + #include "chrome/browser/safe_browsing/safe_browsing_service.h" + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // How often to check if the persistent instance of Chrome needs to restart + // to install an update. + static const int kUpdateCheckIntervalHours = 6; +@@ -1145,7 +1145,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySim + GoogleUpdateSettings::GetCollectStatsConsent()); + registry->RegisterBooleanPref(prefs::kDevToolsRemoteDebuggingAllowed, true); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + os_crypt_async::SecretPortalKeyProvider::RegisterLocalPrefs(registry); + #endif + } +@@ -1413,7 +1413,7 @@ void BrowserProcessImpl::PreMainMessageLoopRun() { + local_state()))); + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); + if (cmd_line->GetSwitchValueASCII(password_manager::kPasswordStore) != + "basic") { +@@ -1682,7 +1682,7 @@ void BrowserProcessImpl::Unpin() { + } + + // Mac is currently not supported. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + bool BrowserProcessImpl::IsRunningInBackground() const { + // Check if browser is in the background. diff --git a/devel/electron36/files/patch-chrome_browser_browser__process__impl.h b/devel/electron36/files/patch-chrome_browser_browser__process__impl.h new file mode 100644 index 000000000000..61d571c40b22 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_browser__process__impl.h @@ -0,0 +1,11 @@ +--- chrome/browser/browser_process_impl.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/browser_process_impl.h +@@ -408,7 +408,7 @@ class BrowserProcessImpl : public BrowserProcess, + + std::unique_ptr<BatteryMetrics> battery_metrics_; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::RepeatingTimer autoupdate_timer_; + + // Gets called by autoupdate timer to see if browser needs restart and can be diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__field__trials.cc b/devel/electron36/files/patch-chrome_browser_chrome__browser__field__trials.cc new file mode 100644 index 000000000000..e1f9bfb854de --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__field__trials.cc @@ -0,0 +1,20 @@ +--- chrome/browser/chrome_browser_field_trials.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_browser_field_trials.cc +@@ -37,7 +37,7 @@ + #include "chromeos/ash/services/multidevice_setup/public/cpp/first_run_field_trial.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #include "ui/base/ui_base_features.h" + #endif // BUILDFLAG(IS_LINUX) +@@ -117,7 +117,7 @@ void ChromeBrowserFieldTrials::RegisterSyntheticTrials + #endif // BUILDFLAG(IS_ANDROID) + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux/Desktop platform variants, such as ozone/wayland, some features + // might need to be disabled as per OzonePlatform's runtime properties. + // OzonePlatform selection and initialization, in turn, depend on Chrome flags diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__field__trials.h b/devel/electron36/files/patch-chrome_browser_chrome__browser__field__trials.h new file mode 100644 index 000000000000..0b992284d3c6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__field__trials.h @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_browser_field_trials.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/chrome_browser_field_trials.h +@@ -33,7 +33,7 @@ class ChromeBrowserFieldTrials : public variations::Pl + const variations::EntropyProviders& entropy_providers, + base::FeatureList* feature_list) override; + void RegisterSyntheticTrials() override; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void RegisterFeatureOverrides(base::FeatureList* feature_list) override; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__interface__binders.cc b/devel/electron36/files/patch-chrome_browser_chrome__browser__interface__binders.cc new file mode 100644 index 000000000000..0a28433fefe6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__interface__binders.cc @@ -0,0 +1,29 @@ +--- chrome/browser/chrome_browser_interface_binders.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_browser_interface_binders.cc +@@ -77,7 +77,7 @@ + #endif // BUILDFLAG(ENABLE_UNHANDLED_TAP) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/screen_ai/screen_ai_service_router.h" + #include "chrome/browser/screen_ai/screen_ai_service_router_factory.h" + #include "chrome/browser/ui/web_applications/sub_apps_service_impl.h" +@@ -358,7 +358,7 @@ void BindMediaFoundationPreferences( + #endif // BUILDFLAG(IS_WIN) + + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + void BindScreenAIAnnotator( + content::RenderFrameHost* frame_host, + mojo::PendingReceiver<screen_ai::mojom::ScreenAIAnnotator> receiver) { +@@ -500,7 +500,7 @@ void PopulateChromeFrameBinders( + #endif // BUILDFLAG(ENABLE_SPEECH_SERVICE) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(blink::features::kDesktopPWAsSubApps) && + !render_frame_host->GetParentOrOuterDocument()) { + // The service binder will reject non-primary main frames, but we still need diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__interface__binders__webui.cc b/devel/electron36/files/patch-chrome_browser_chrome__browser__interface__binders__webui.cc new file mode 100644 index 000000000000..3b27fa1f1e68 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__interface__binders__webui.cc @@ -0,0 +1,64 @@ +--- chrome/browser/chrome_browser_interface_binders_webui.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_browser_interface_binders_webui.cc +@@ -47,7 +47,7 @@ + #include "content/public/browser/web_ui_controller_interface_binder.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom.h" + #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h" + #include "chrome/browser/ui/webui/discards/discards.mojom.h" +@@ -56,7 +56,7 @@ + #include "ui/webui/resources/cr_components/app_management/app_management.mojom.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 "chrome/browser/ui/webui/app_settings/web_app_settings_ui.h" + #include "chrome/browser/ui/webui/on_device_translation_internals/on_device_translation_internals_ui.h" + #include "chrome/browser/ui/webui/signin/history_sync_optin/history_sync_optin.mojom.h" +@@ -445,7 +445,7 @@ void PopulateChromeWebUIFrameBinders( + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + RegisterWebUIControllerInterfaceBinder< + connectors_internals::mojom::PageHandler, + enterprise_connectors::ConnectorsInternalsUI>(map); +@@ -456,7 +456,7 @@ void PopulateChromeWebUIFrameBinders( + policy::DlpInternalsUI>(map); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + RegisterWebUIControllerInterfaceBinder< + app_management::mojom::PageHandlerFactory, WebAppSettingsUI>(map); + +@@ -583,14 +583,14 @@ void PopulateChromeWebUIFrameBinders( + HistoryClustersSidePanelUI, NewTabPageUI, BookmarksSidePanelUI>(map); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + RegisterWebUIControllerInterfaceBinder<whats_new::mojom::PageHandlerFactory, + WhatsNewUI>(map); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + + RegisterWebUIControllerInterfaceBinder< + browser_command::mojom::CommandHandlerFactory, +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + WhatsNewUI, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + NewTabPageUI>(map); +@@ -1123,7 +1123,7 @@ void PopulateChromeWebUIFrameBinders( + #endif // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + RegisterWebUIControllerInterfaceBinder<discards::mojom::DetailsProvider, + DiscardsUI>(map); + diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__main.cc b/devel/electron36/files/patch-chrome_browser_chrome__browser__main.cc new file mode 100644 index 000000000000..445a2b0e384f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__main.cc @@ -0,0 +1,115 @@ +--- chrome/browser/chrome_browser_main.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_browser_main.cc +@@ -149,7 +149,7 @@ + #endif + + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "sql/database.h" + #endif + +@@ -175,11 +175,11 @@ + #include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h" + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/first_run/upgrade_util_linux.h" + #endif + +-#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/headless/headless_mode_metrics.h" // nogncheck + #include "chrome/browser/headless/headless_mode_util.h" // nogncheck + #include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h" +@@ -190,7 +190,7 @@ + #include "ui/gfx/switches.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/first_run/upgrade_util.h" + #endif + +@@ -268,7 +268,7 @@ + #include "chrome/browser/chrome_process_singleton.h" + #include "chrome/browser/ui/startup/startup_browser_creator.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #endif + #endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) +@@ -291,7 +291,7 @@ namespace { + + namespace { + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + constexpr base::FilePath::CharType kMediaHistoryDatabaseName[] = + FILE_PATH_LITERAL("Media History"); + +@@ -442,7 +442,7 @@ void ProcessSingletonNotificationCallbackImpl( + } + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set the global activation token sent as a command line switch by another + // browser process. This also removes the switch after use to prevent any side + // effects of leaving it in the command line after this point. +@@ -1016,7 +1016,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { + browser_creator_->AddFirstRunTabs(master_prefs_->new_tabs); + } + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Create directory for user-level Native Messaging manifest files. This + // makes it less likely that the directory will be created by third-party + // software with incorrect owner or permission. See crbug.com/725513 . +@@ -1061,7 +1061,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { + + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + metrics::DesktopSessionDurationTracker::Initialize(); + ProfileActivityMetricsRecorder::Initialize(); + TouchModeStatsTracker::Initialize( +@@ -1257,7 +1257,7 @@ void ChromeBrowserMainParts::PostProfileInit(Profile* + #endif // BUILDFLAG(IS_WIN) + + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Delete the media history database if it still exists. + // TODO(crbug.com/40177301): Remove this. + base::ThreadPool::PostTask( +@@ -1305,7 +1305,7 @@ void ChromeBrowserMainParts::PostProfileInit(Profile* + *UrlLanguageHistogramFactory::GetForBrowserContext(profile)); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (headless::IsHeadlessMode()) { + headless::ReportHeadlessActionMetrics(); + } +@@ -1414,7 +1414,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl( + // In headless mode provide alternate SelectFileDialog factory overriding + // any platform specific SelectFileDialog implementation that may have been + // set. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (headless::IsHeadlessMode()) { + headless::HeadlessSelectFileDialogFactory::SetUp(); + } +@@ -1959,7 +1959,7 @@ bool ChromeBrowserMainParts::ProcessSingletonNotificat + + // Drop the request if headless mode is in effect or the request is from + // a headless Chrome process. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (headless::IsHeadlessMode() || + command_line.HasSwitch(switches::kHeadless)) { + return false; diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc new file mode 100644 index 000000000000..fb05f0a58b3e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_browser_main_extra_parts_linux.cc.orig 2024-06-18 21:43:22 UTC ++++ chrome/browser/chrome_browser_main_extra_parts_linux.cc +@@ -58,7 +58,7 @@ void ChromeBrowserMainExtraPartsLinux::InitOzonePlatfo + + // static + void ChromeBrowserMainExtraPartsLinux::InitOzonePlatformHint() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* const command_line = base::CommandLine::ForCurrentProcess(); + auto env = base::Environment::Create(); + std::string desktop_startup_id; diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc new file mode 100644 index 000000000000..6440372a7f7e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_browser_main_extra_parts_ozone.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_browser_main_extra_parts_ozone.cc +@@ -28,7 +28,7 @@ void ChromeBrowserMainExtraPartsOzone::PostMainMessage + } + + void ChromeBrowserMainExtraPartsOzone::PostMainMessageLoopRun() { +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + ui::OzonePlatform::GetInstance()->PostMainMessageLoopRun(); + #endif + } diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__main__linux.cc b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__linux.cc new file mode 100644 index 000000000000..41fb728adfb9 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__linux.cc @@ -0,0 +1,39 @@ +--- chrome/browser/chrome_browser_main_linux.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_browser_main_linux.cc +@@ -24,7 +24,7 @@ + #include "device/bluetooth/dbus/bluez_dbus_thread_manager.h" + #include "ui/base/l10n/l10n_util.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/ozone/public/ozone_platform.h" + #endif + +@@ -65,7 +65,9 @@ void ChromeBrowserMainPartsLinux::PostCreateMainMessag + #endif // BUILDFLAG(IS_CHROMEOS) + + #if !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_BSD) + bluez::BluezDBusManager::Initialize(nullptr /* system_bus */); ++#endif + + // Set up crypt config. This needs to be done before anything starts the + // network service, as the raw encryption key needs to be shared with the +@@ -91,7 +93,7 @@ void ChromeBrowserMainPartsLinux::PostCreateMainMessag + ChromeBrowserMainPartsPosix::PostCreateMainMessageLoop(); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void ChromeBrowserMainPartsLinux::PostMainMessageLoopRun() { + ChromeBrowserMainPartsPosix::PostMainMessageLoopRun(); + ui::OzonePlatform::GetInstance()->PostMainMessageLoopRun(); +@@ -129,7 +131,7 @@ void ChromeBrowserMainPartsLinux::PostDestroyThreads() + #endif // BUILDFLAG(USE_DBUS) && !BUILDFLAG(IS_CHROMEOS) + + void ChromeBrowserMainPartsLinux::PostDestroyThreads() { +-#if BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // No-op; per PostBrowserStart() comment, this is done elsewhere. + #else + bluez::BluezDBusManager::Shutdown(); diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__main__linux.h b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__linux.h new file mode 100644 index 000000000000..9cfa15395693 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__linux.h @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_browser_main_linux.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/chrome_browser_main_linux.h +@@ -31,7 +31,7 @@ class ChromeBrowserMainPartsLinux : public ChromeBrows + + // ChromeBrowserMainPartsPosix overrides. + void PostCreateMainMessageLoop() override; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void PostMainMessageLoopRun() override; + #endif + void PreProfileInit() override; diff --git a/devel/electron36/files/patch-chrome_browser_chrome__browser__main__posix.cc b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__posix.cc new file mode 100644 index 000000000000..bed7af6b361e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__browser__main__posix.cc @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_browser_main_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_browser_main_posix.cc +@@ -81,7 +81,7 @@ void ExitHandler::ExitWhenPossibleOnUIThread(int signa + // ExitHandler takes care of deleting itself. + new ExitHandler(); + } else { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + switch (signal) { + case SIGINT: + case SIGHUP: diff --git a/devel/electron36/files/patch-chrome_browser_chrome__content__browser__client.cc b/devel/electron36/files/patch-chrome_browser_chrome__content__browser__client.cc new file mode 100644 index 000000000000..8b62db621a7a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__content__browser__client.cc @@ -0,0 +1,188 @@ +--- chrome/browser/chrome_content_browser_client.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_content_browser_client.cc +@@ -506,7 +506,7 @@ + #include "components/user_manager/user_manager.h" + #include "services/service_manager/public/mojom/interface_provider_spec.mojom.h" + #include "storage/browser/file_system/external_mount_points.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/chrome_browser_main_linux.h" + #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h" + #elif BUILDFLAG(IS_ANDROID) +@@ -622,11 +622,11 @@ + #include "services/network/public/mojom/permissions_policy/permissions_policy_feature.mojom.h" + #endif // !BUILDFLAG(IS_ANDROID) + +-#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/browser_switcher/browser_switcher_navigation_throttle.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/crash/core/app/crash_switches.h" + #include "components/crash/core/app/crashpad.h" + #endif +@@ -637,7 +637,7 @@ + #include "chrome/browser/apps/link_capturing/web_app_link_capturing_delegate.h" + #endif + +-#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/enterprise/chrome_browser_main_extra_parts_enterprise.h" + #include "chrome/browser/enterprise/profile_management/oidc_auth_response_capture_navigation_throttle.h" + #include "chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.h" +@@ -646,7 +646,7 @@ + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || + // BUILDFLAG(IS_CHROMEOS) +@@ -655,7 +655,7 @@ + #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/chrome_browser_main_extra_parts_linux.h" + #elif BUILDFLAG(IS_OZONE) + #include "chrome/browser/chrome_browser_main_extra_parts_ozone.h" +@@ -1549,7 +1549,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePre + registry->RegisterBooleanPref(prefs::kDeviceNativeClientForceAllowedCache, + false); + #endif // BUILDFLAG(IS_CHROMEOS) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kOutOfProcessSystemDnsResolutionEnabled, + true); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) +@@ -1758,7 +1758,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts(boo + #elif BUILDFLAG(IS_CHROMEOS) + main_parts = std::make_unique<ash::ChromeBrowserMainPartsAsh>( + is_integration_test, &startup_data_); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + main_parts = std::make_unique<ChromeBrowserMainPartsLinux>( + is_integration_test, &startup_data_); + #elif BUILDFLAG(IS_ANDROID) +@@ -1787,7 +1787,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts(boo + // Construct additional browser parts. Stages are called in the order in + // which they are added. + #if defined(TOOLKIT_VIEWS) +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + main_parts->AddParts( + std::make_unique<ChromeBrowserMainExtraPartsViewsLinux>()); + #else +@@ -1804,7 +1804,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts(boo + main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsAsh>()); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsLinux>()); + #elif BUILDFLAG(IS_OZONE) + main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsOzone>()); +@@ -1823,7 +1823,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts(boo + + chrome::AddMetricsExtraParts(main_parts.get()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + main_parts->AddParts( + std::make_unique< + enterprise_util::ChromeBrowserMainExtraPartsEnterprise>()); +@@ -2706,7 +2706,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLin + void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( + base::CommandLine* command_line, + int child_process_id) { ++#ifdef notyet + crash_keys::AppendStringAnnotationsCommandLineSwitch(command_line); ++#endif + #if BUILDFLAG(IS_MAC) + std::unique_ptr<metrics::ClientInfo> client_info = + GoogleUpdateSettings::LoadMetricsClientInfo(); +@@ -2715,7 +2717,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLin + client_info->client_id); + } + #elif BUILDFLAG(IS_POSIX) +-#if !BUILDFLAG(IS_ANDROID) ++#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + pid_t pid; + if (crash_reporter::GetHandlerSocket(nullptr, &pid)) { + command_line->AppendSwitchASCII( +@@ -3080,7 +3082,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLin + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) + // Opt into a hardened stack canary mitigation if it hasn't already been + // force-disabled. + if (!browser_command_line.HasSwitch(switches::kChangeStackGuardOnFork)) { +@@ -4030,7 +4032,7 @@ bool UpdatePreferredColorScheme(WebPreferences* web_pr + return old_preferred_color_scheme != web_prefs->preferred_color_scheme; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Sets the `root_scrollbar_theme_color` web pref if the user has enabled a + // custom colored frame for the UI. + void UpdateRootScrollbarThemeColor(Profile* profile, +@@ -4657,7 +4659,7 @@ void ChromeContentBrowserClient::OverrideWebPreference + + UpdatePreferredColorScheme(web_prefs, main_frame_site.GetSiteURL(), + web_contents, GetWebTheme()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + UpdateRootScrollbarThemeColor(profile, web_contents, web_prefs); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) + +@@ -4973,7 +4975,7 @@ void ChromeContentBrowserClient::GetAdditionalFileSyst + } + } + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( + const base::CommandLine& command_line, + int child_process_id, +@@ -5485,7 +5487,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigati + &throttles); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + MaybeAddThrottle( + WebAppSettingsNavigationThrottle::MaybeCreateThrottleFor(handle), + &throttles); +@@ -5502,7 +5504,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigati + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + MaybeAddThrottle(enterprise_connectors::DeviceTrustNavigationThrottle:: + MaybeCreateThrottleFor(handle), + &throttles); +@@ -5543,7 +5545,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigati + } + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle:: + MaybeCreateThrottleFor(handle), + &throttles); +@@ -7496,7 +7498,7 @@ bool ChromeContentBrowserClient::ShouldRunOutOfProcess + bool ChromeContentBrowserClient::ShouldRunOutOfProcessSystemDnsResolution() { + // This enterprise policy is supported on Android, but the feature will not be + // launched there. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // This is possibly called before `g_browser_process` is initialized. + PrefService* local_state; + if (g_browser_process) { diff --git a/devel/electron36/files/patch-chrome_browser_chrome__content__browser__client.h b/devel/electron36/files/patch-chrome_browser_chrome__content__browser__client.h new file mode 100644 index 000000000000..a25cbe9b8d0d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_chrome__content__browser__client.h @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_content_browser_client.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/chrome_content_browser_client.h +@@ -555,7 +555,7 @@ class ChromeContentBrowserClient : public content::Con + bool IsPluginAllowedToUseDevChannelAPIs( + content::BrowserContext* browser_context, + const GURL& url) override; +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + void GetAdditionalMappedFilesForChildProcess( + const base::CommandLine& command_line, + int child_process_id, diff --git a/devel/electron36/files/patch-chrome_browser_collaboration_messaging_messaging__backend__service__factory.cc b/devel/electron36/files/patch-chrome_browser_collaboration_messaging_messaging__backend__service__factory.cc new file mode 100644 index 000000000000..230776944191 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_collaboration_messaging_messaging__backend__service__factory.cc @@ -0,0 +1,11 @@ +--- chrome/browser/collaboration/messaging/messaging_backend_service_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/collaboration/messaging/messaging_backend_service_factory.cc +@@ -102,7 +102,7 @@ MessagingBackendServiceFactory::BuildServiceInstanceFo + // This configuration object allows us to control platform specific behavior. + MessagingBackendConfiguration configuration; + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + configuration.clear_chip_on_tab_selection = false; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_component__updater_iwa__key__distribution__component__installer.cc b/devel/electron36/files/patch-chrome_browser_component__updater_iwa__key__distribution__component__installer.cc new file mode 100644 index 000000000000..b2cdc4e1876a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_component__updater_iwa__key__distribution__component__installer.cc @@ -0,0 +1,20 @@ +--- chrome/browser/component_updater/iwa_key_distribution_component_installer.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/component_updater/iwa_key_distribution_component_installer.cc +@@ -64,7 +64,7 @@ namespace component_updater { + + namespace component_updater { + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kIwaKeyDistributionComponent, + "IwaKeyDistributionComponent", + #if BUILDFLAG(IS_CHROMEOS) +@@ -89,7 +89,7 @@ bool IwaKeyDistributionComponentInstallerPolicy::IsSup + // the main IWA feature. + #if BUILDFLAG(IS_WIN) + return base::FeatureList::IsEnabled(features::kIsolatedWebApps); +-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled(kIwaKeyDistributionComponent); + #else + return false; diff --git a/devel/electron36/files/patch-chrome_browser_component__updater_iwa__key__distribution__component__installer.h b/devel/electron36/files/patch-chrome_browser_component__updater_iwa__key__distribution__component__installer.h new file mode 100644 index 000000000000..f8774695804e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_component__updater_iwa__key__distribution__component__installer.h @@ -0,0 +1,11 @@ +--- chrome/browser/component_updater/iwa_key_distribution_component_installer.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/component_updater/iwa_key_distribution_component_installer.h +@@ -27,7 +27,7 @@ namespace component_updater { + + namespace component_updater { + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_DECLARE_FEATURE(kIwaKeyDistributionComponent); + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chrome_browser_component__updater_registration.cc b/devel/electron36/files/patch-chrome_browser_component__updater_registration.cc new file mode 100644 index 000000000000..0f947d0c79ef --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_component__updater_registration.cc @@ -0,0 +1,35 @@ +--- chrome/browser/component_updater/registration.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/component_updater/registration.cc +@@ -101,7 +101,7 @@ + #endif // BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/component_updater/installer_policies/amount_extraction_heuristic_regexes_component_installer.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) +@@ -114,7 +114,7 @@ + #include "chrome/browser/component_updater/lacros_component_remover.h" + #endif // BUILDFLAG(IS_CHROMEOS) + +-#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/component_updater/wasm_tts_engine_component_installer.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + +@@ -261,12 +261,12 @@ void RegisterComponentsForUpdate() { + RegisterCookieReadinessListComponent(cus); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + RegisterAmountExtractionHeuristicRegexesComponent(cus); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (features::IsWasmTtsComponentUpdaterEnabled()) { + RegisterWasmTtsEngineComponent(cus); + } diff --git a/devel/electron36/files/patch-chrome_browser_component__updater_wasm__tts__engine__component__installer.cc b/devel/electron36/files/patch-chrome_browser_component__updater_wasm__tts__engine__component__installer.cc new file mode 100644 index 000000000000..72a7371fa71c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_component__updater_wasm__tts__engine__component__installer.cc @@ -0,0 +1,29 @@ +--- chrome/browser/component_updater/wasm_tts_engine_component_installer.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/component_updater/wasm_tts_engine_component_installer.cc +@@ -8,7 +8,7 @@ + #include "base/functional/callback.h" + #include "base/logging.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 "chrome/browser/accessibility/embedded_a11y_extension_loader.h" + #include "chrome/common/extensions/extension_constants.h" + #include "components/crx_file/id_util.h" +@@ -70,7 +70,7 @@ void WasmTtsEngineComponentInstallerPolicy::ComponentR + VLOG(1) << "Component ready, version " << version.GetString() << " in " + << install_dir.value(); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (features::IsWasmTtsComponentUpdaterEnabled() && + !features::IsWasmTtsEngineAutoInstallDisabled()) { + EmbeddedA11yExtensionLoader::GetInstance()->Init(); +@@ -121,7 +121,7 @@ void RegisterWasmTtsEngineComponent(ComponentUpdateSer + installer->Register(cus, base::OnceClosure()); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string WasmTtsEngineComponentInstallerPolicy::GetId() { + return crx_file::id_util::GenerateIdFromHash((kWasmTtsEnginePublicKeySHA256)); + } diff --git a/devel/electron36/files/patch-chrome_browser_component__updater_wasm__tts__engine__component__installer.h b/devel/electron36/files/patch-chrome_browser_component__updater_wasm__tts__engine__component__installer.h new file mode 100644 index 000000000000..e93ec9996458 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_component__updater_wasm__tts__engine__component__installer.h @@ -0,0 +1,11 @@ +--- chrome/browser/component_updater/wasm_tts_engine_component_installer.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/component_updater/wasm_tts_engine_component_installer.h +@@ -27,7 +27,7 @@ class WasmTtsEngineComponentInstallerPolicy : public C + WasmTtsEngineComponentInstallerPolicy& operator=( + const WasmTtsEngineComponentInstallerPolicy&) = delete; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + static std::string GetId(); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc b/devel/electron36/files/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc new file mode 100644 index 000000000000..b8dcc62866d7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc @@ -0,0 +1,38 @@ +--- chrome/browser/component_updater/widevine_cdm_component_installer.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/component_updater/widevine_cdm_component_installer.cc +@@ -41,7 +41,7 @@ + #include "third_party/widevine/cdm/buildflags.h" + #include "third_party/widevine/cdm/widevine_cdm_common.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/path_service.h" + #include "chrome/common/chrome_paths.h" + #include "chrome/common/media/component_widevine_cdm_hint_file_linux.h" +@@ -73,7 +73,7 @@ const char ImageLoaderComponentName[] = "WidevineCdm"; + const char ImageLoaderComponentName[] = "WidevineCdm"; + #endif + +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // On Linux and ChromeOS the Widevine CDM is loaded at startup before the + // zygote is locked down. As a result there is no need to register the CDM + // with Chrome as it can't be used until Chrome is restarted. +@@ -101,7 +101,7 @@ void RegisterWidevineCdmWithChrome(const base::Version + } + #endif // !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux and ChromeOS the Widevine CDM is loaded at startup before the + // zygote is locked down. To locate the Widevine CDM at startup, a hint file + // is used. Update the hint file with the new Widevine CDM path. +@@ -392,7 +392,7 @@ void WidevineCdmComponentInstallerPolicy::UpdateCdmPat + return; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + VLOG(1) << "Updating hint file with Widevine CDM " << cdm_version; + + // This is running on a thread that allows IO, so simply update the hint file. diff --git a/devel/electron36/files/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc b/devel/electron36/files/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc new file mode 100644 index 000000000000..3271f4e113a9 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc @@ -0,0 +1,11 @@ +--- chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc.orig 2023-03-30 00:33:42 UTC ++++ chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc +@@ -68,7 +68,7 @@ void ChromeProtocolHandlerRegistryDelegate::CheckDefau + // 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/devel/electron36/files/patch-chrome_browser_defaults.cc b/devel/electron36/files/patch-chrome_browser_defaults.cc new file mode 100644 index 000000000000..511844828565 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_defaults.cc @@ -0,0 +1,11 @@ +--- chrome/browser/defaults.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/defaults.cc +@@ -31,7 +31,7 @@ const bool kShowHelpMenuItemIcon = false; + const bool kShowHelpMenuItemIcon = false; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const bool kScrollEventChangesTab = true; + #else + const bool kScrollEventChangesTab = false; diff --git a/devel/electron36/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc b/devel/electron36/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc new file mode 100644 index 000000000000..35035a310f8d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc @@ -0,0 +1,11 @@ +--- chrome/browser/device_identity/device_oauth2_token_service_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/device_identity/device_oauth2_token_service_factory.cc +@@ -26,7 +26,7 @@ std::unique_ptr<DeviceOAuth2TokenStore> CreatePlatform + #if BUILDFLAG(IS_CHROMEOS) + return std::make_unique<chromeos::DeviceOAuth2TokenStoreChromeOS>( + local_state); +-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<DeviceOAuth2TokenStoreDesktop>(local_state); + #else + NOTREACHED(); diff --git a/devel/electron36/files/patch-chrome_browser_devtools_features.cc b/devel/electron36/files/patch-chrome_browser_devtools_features.cc new file mode 100644 index 000000000000..d74103f4f003 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_devtools_features.cc @@ -0,0 +1,11 @@ +--- chrome/browser/devtools/features.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/devtools/features.cc +@@ -157,7 +157,7 @@ BASE_FEATURE(kDevToolsAiGeneratedTimelineLabels, + "DevToolsAiGeneratedTimelineLabels", + base::FEATURE_DISABLED_BY_DEFAULT); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If enabled, DevTools does not accept remote debugging connections unless + // using a non-default user data dir via the --user-data-dir switch. + BASE_FEATURE(kDevToolsDebuggingRestrictions, diff --git a/devel/electron36/files/patch-chrome_browser_devtools_features.h b/devel/electron36/files/patch-chrome_browser_devtools_features.h new file mode 100644 index 000000000000..9ff7d5b5dead --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_devtools_features.h @@ -0,0 +1,11 @@ +--- chrome/browser/devtools/features.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/devtools/features.h +@@ -89,7 +89,7 @@ BASE_DECLARE_FEATURE(kDevToolsAiGeneratedTimelineLabel + + BASE_DECLARE_FEATURE(kDevToolsAiGeneratedTimelineLabels); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_DECLARE_FEATURE(kDevToolsDebuggingRestrictions); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chrome_browser_devtools_remote__debugging__server.cc b/devel/electron36/files/patch-chrome_browser_devtools_remote__debugging__server.cc new file mode 100644 index 000000000000..b91ed6939099 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_devtools_remote__debugging__server.cc @@ -0,0 +1,11 @@ +--- chrome/browser/devtools/remote_debugging_server.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/devtools/remote_debugging_server.cc +@@ -109,7 +109,7 @@ IsRemoteDebuggingAllowed(const std::optional<bool>& is + RemoteDebuggingServer::NotStartedReason::kDisabledByPolicy); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(features::kDevToolsDebuggingRestrictions) && + is_default_user_data_dir.value_or(true)) { + return base::unexpected( diff --git a/devel/electron36/files/patch-chrome_browser_diagnostics_diagnostics__writer.h b/devel/electron36/files/patch-chrome_browser_diagnostics_diagnostics__writer.h new file mode 100644 index 000000000000..6dbc1f97cdd6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_diagnostics_diagnostics__writer.h @@ -0,0 +1,11 @@ +--- chrome/browser/diagnostics/diagnostics_writer.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/diagnostics/diagnostics_writer.h +@@ -16,6 +16,8 @@ class SimpleConsole; + // Console base class used internally. + class SimpleConsole; + ++#undef MACHINE ++ + class DiagnosticsWriter : public DiagnosticsModel::Observer { + public: + // The type of formatting done by this writer. diff --git a/devel/electron36/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc b/devel/electron36/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc new file mode 100644 index 000000000000..4302b9f9cbcd --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc @@ -0,0 +1,29 @@ +--- chrome/browser/download/chrome_download_manager_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/download/chrome_download_manager_delegate.cc +@@ -1864,7 +1864,7 @@ bool ChromeDownloadManagerDelegate::IsOpenInBrowserPre + bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferredForFile( + const base::FilePath& path) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (path.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) { + return !download_prefs_->ShouldOpenPdfInSystemReader(); + } +@@ -2000,7 +2000,7 @@ void ChromeDownloadManagerDelegate::CheckDownloadAllow + content::CheckDownloadAllowedCallback check_download_allowed_cb) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Don't download pdf if it is a file URL, as that might cause an infinite + // download loop if Chrome is not the system pdf viewer. + if (url.SchemeIsFile() && download_prefs_->ShouldOpenPdfInSystemReader()) { +@@ -2082,7 +2082,7 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAl + DCHECK(download_item->IsSavePackageDownload()); + + #if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC)) && \ ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(SAFE_BROWSING_AVAILABLE) + std::optional<enterprise_connectors::AnalysisSettings> settings = + safe_browsing::ShouldUploadBinaryForDeepScanning(download_item); diff --git a/devel/electron36/files/patch-chrome_browser_download_download__commands.cc b/devel/electron36/files/patch-chrome_browser_download_download__commands.cc new file mode 100644 index 000000000000..ffb4bb4d0a94 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_download_download__commands.cc @@ -0,0 +1,20 @@ +--- chrome/browser/download/download_commands.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/download/download_commands.cc +@@ -27,7 +27,7 @@ + #include "ui/base/clipboard/scoped_clipboard_writer.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/browser.h" + #include "chrome/browser/ui/browser_finder.h" + #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" +@@ -177,7 +177,7 @@ void DownloadCommands::ExecuteCommand(Command command) + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + Browser* DownloadCommands::GetBrowser() const { + if (!model_) diff --git a/devel/electron36/files/patch-chrome_browser_download_download__commands.h b/devel/electron36/files/patch-chrome_browser_download_download__commands.h new file mode 100644 index 000000000000..899c21f0d61b --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_download_download__commands.h @@ -0,0 +1,11 @@ +--- chrome/browser/download/download_commands.h.orig 2024-06-18 21:43:22 UTC ++++ chrome/browser/download/download_commands.h +@@ -66,7 +66,7 @@ class DownloadCommands { + void ExecuteCommand(Command command); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + bool IsDownloadPdf() const; + bool CanOpenPdfInSystemViewer() const; + Browser* GetBrowser() const; diff --git a/devel/electron36/files/patch-chrome_browser_download_download__file__picker.cc b/devel/electron36/files/patch-chrome_browser_download_download__file__picker.cc new file mode 100644 index 000000000000..972c0f70a0e3 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_download_download__file__picker.cc @@ -0,0 +1,20 @@ +--- chrome/browser/download/download_file_picker.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/download/download_file_picker.cc +@@ -18,7 +18,7 @@ + #include "content/public/browser/web_contents.h" + #include "ui/shell_dialogs/selected_file_info.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/browser_list.h" + #include "chrome/browser/ui/browser_window.h" + #include "ui/aura/window.h" +@@ -83,7 +83,7 @@ DownloadFilePicker::DownloadFilePicker(download::Downl + // dialog in Linux (See SelectFileImpl() in select_file_dialog_linux_gtk.cc). + // and windows.Here we make owning_window host to browser current active + // window if it is null. https://crbug.com/1301898 +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (!owning_window || !owning_window->GetHost()) { + owning_window = BrowserList::GetInstance() + ->GetLastActive() diff --git a/devel/electron36/files/patch-chrome_browser_download_download__item__model.cc b/devel/electron36/files/patch-chrome_browser_download_download__item__model.cc new file mode 100644 index 000000000000..22ab50ea01cf --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_download_download__item__model.cc @@ -0,0 +1,29 @@ +--- chrome/browser/download/download_item_model.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/download/download_item_model.cc +@@ -772,7 +772,7 @@ bool DownloadItemModel::IsCommandChecked( + download_crx_util::IsExtensionDownload(*download_); + case DownloadCommands::ALWAYS_OPEN_TYPE: + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (download_commands->CanOpenPdfInSystemViewer()) { + DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile()); + return prefs->ShouldOpenPdfInSystemReader(); +@@ -820,7 +820,7 @@ void DownloadItemModel::ExecuteCommand(DownloadCommand + DownloadCommands::ALWAYS_OPEN_TYPE); + DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile()); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (download_commands->CanOpenPdfInSystemViewer()) { + prefs->SetShouldOpenPdfInSystemReader(!is_checked); + SetShouldPreferOpeningInBrowser(is_checked); +@@ -1206,7 +1206,7 @@ void DownloadItemModel::DetermineAndSetShouldPreferOpe + return; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (download_->GetOriginalMimeType() == "application/x-x509-user-cert") { + SetShouldPreferOpeningInBrowser(true); + return; diff --git a/devel/electron36/files/patch-chrome_browser_download_download__prefs.cc b/devel/electron36/files/patch-chrome_browser_download_download__prefs.cc new file mode 100644 index 000000000000..1ae9d94fa3d9 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_download_download__prefs.cc @@ -0,0 +1,90 @@ +--- chrome/browser/download/download_prefs.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/download/download_prefs.cc +@@ -11,6 +11,7 @@ + #include <vector> + + #include "base/check.h" ++#include "base/command_line.h" + #include "base/feature_list.h" + #include "base/files/file_util.h" + #include "base/functional/bind.h" +@@ -61,6 +62,10 @@ + #include "components/safe_browsing/content/common/file_type_policies.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#endif ++ + using content::BrowserContext; + using content::BrowserThread; + using content::DownloadManager; +@@ -74,7 +79,7 @@ bool DownloadPathIsDangerous(const base::FilePath& dow + // Consider downloads 'dangerous' if they go to the home directory on Linux and + // to the desktop on any platform. + bool DownloadPathIsDangerous(const base::FilePath& download_path) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FilePath home_dir = base::GetHomeDir(); + if (download_path == home_dir) { + return true; +@@ -180,7 +185,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profi + #endif // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + should_open_pdf_in_system_reader_ = + prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader); + #endif +@@ -307,7 +312,7 @@ void DownloadPrefs::RegisterProfilePrefs( + registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory, + default_download_path); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kOpenPdfDownloadInSystemReader, false); + #endif + #if BUILDFLAG(IS_ANDROID) +@@ -480,7 +485,7 @@ void DownloadPrefs::DisableAutoOpenByUserBasedOnExtens + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) { + if (should_open_pdf_in_system_reader_ == should_open) + return; +@@ -506,7 +511,7 @@ void DownloadPrefs::ResetAutoOpenByUser() { + + void DownloadPrefs::ResetAutoOpenByUser() { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + SetShouldOpenPdfInSystemReader(false); + #endif + auto_open_by_user_.clear(); +@@ -543,7 +548,7 @@ bool DownloadPrefs::CanPlatformEnableAutoOpenForPdf() + bool DownloadPrefs::CanPlatformEnableAutoOpenForPdf() const { + #if BUILDFLAG(IS_CHROMEOS) + return false; // There is no UI for auto-open on ChromeOS. +-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return ShouldOpenPdfInSystemReader(); + #else + return false; +@@ -625,7 +630,14 @@ base::FilePath DownloadPrefs::SanitizeDownloadTargetPa + #else + // If the stored download directory is an absolute path, we presume it's + // correct; there's not really much more validation we can do here. ++#if BUILDFLAG(IS_OPENBSD) ++ // If unveil(2) is used, force the file dialog directory to something we ++ // know is available. ++ auto* sandbox = sandbox::policy::SandboxLinux::GetInstance(); ++ if (!sandbox->unveil_initialized() && path.IsAbsolute()) ++#else + if (path.IsAbsolute()) ++#endif + return path; + + // When the default download directory is *not* an absolute path, we use the diff --git a/devel/electron36/files/patch-chrome_browser_download_download__prefs.h b/devel/electron36/files/patch-chrome_browser_download_download__prefs.h new file mode 100644 index 000000000000..cfb8b17dd054 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_download_download__prefs.h @@ -0,0 +1,20 @@ +--- chrome/browser/download/download_prefs.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/download/download_prefs.h +@@ -107,7 +107,7 @@ class DownloadPrefs { + void DisableAutoOpenByUserBasedOnExtension(const base::FilePath& file_name); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Store the user preference to disk. If |should_open| is true, also disable + // the built-in PDF plugin. If |should_open| is false, enable the PDF plugin. + void SetShouldOpenPdfInSystemReader(bool should_open); +@@ -171,7 +171,7 @@ class DownloadPrefs { + std::unique_ptr<policy::URLBlocklist> auto_open_allowed_by_urls_; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + bool should_open_pdf_in_system_reader_; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc new file mode 100644 index 000000000000..12dc5993e4e9 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc @@ -0,0 +1,11 @@ +--- chrome/browser/enterprise/connectors/analysis/analysis_service_settings.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/connectors/analysis/analysis_service_settings.cc +@@ -151,7 +151,7 @@ AnalysisServiceSettings::AnalysisServiceSettings( + const char* verification_key = kKeyWindowsVerification; + #elif BUILDFLAG(IS_MAC) + const char* verification_key = kKeyMacVerification; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const char* verification_key = kKeyLinuxVerification; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_common.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_common.cc new file mode 100644 index 000000000000..05c6504a3d34 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_common.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/connectors/common.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/connectors/common.cc +@@ -17,7 +17,7 @@ + #include "components/user_manager/user.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 "chrome/browser/enterprise/signin/enterprise_signin_prefs.h" + #include "components/prefs/pref_service.h" + #endif +@@ -192,7 +192,7 @@ std::string GetProfileEmail(Profile* profile) { + std::string email = + GetProfileEmail(IdentityManagerFactory::GetForProfile(profile)); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (email.empty()) { + email = profile->GetPrefs()->GetString( + enterprise_signin::prefs::kProfileUserEmail); diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_connectors__service.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_connectors__service.cc new file mode 100644 index 000000000000..c68b0bca5f24 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_connectors__service.cc @@ -0,0 +1,11 @@ +--- chrome/browser/enterprise/connectors/connectors_service.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/connectors/connectors_service.cc +@@ -476,7 +476,7 @@ bool ConnectorsService::ConnectorsEnabled() const { + bool ConnectorsService::ConnectorsEnabled() 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, 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 diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc new file mode 100644 index 000000000000..6896287535ce --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc @@ -0,0 +1,29 @@ +--- chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.cc.orig 2024-08-14 20:54:34 UTC ++++ chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.cc +@@ -10,7 +10,7 @@ + #include "chrome/browser/profiles/profile.h" + #include "components/keyed_service/core/keyed_service.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 "chrome/browser/browser_process.h" + #include "chrome/browser/enterprise/connectors/device_trust/browser/signing_key_policy_observer.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" +@@ -40,7 +40,7 @@ bool DeviceTrustConnectorServiceFactory::ServiceIsCrea + + bool DeviceTrustConnectorServiceFactory::ServiceIsCreatedWithBrowserContext() + const { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return true; + #else + return false; +@@ -84,7 +84,7 @@ DeviceTrustConnectorServiceFactory::BuildServiceInstan + std::unique_ptr<DeviceTrustConnectorService> service = + std::make_unique<DeviceTrustConnectorService>(profile->GetPrefs()); + +-#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/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc new file mode 100644 index 000000000000..bcadc28068bc --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc @@ -0,0 +1,29 @@ +--- chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.cc +@@ -22,7 +22,7 @@ + #include "components/policy/core/common/management/management_service.h" + #include "content/public/browser/browser_context.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 "chrome/browser/browser_process.h" + #include "chrome/browser/enterprise/connectors/device_trust/attestation/browser/browser_attestation_service.h" + #include "chrome/browser/enterprise/connectors/device_trust/attestation/browser/device_attester.h" +@@ -53,7 +53,7 @@ bool IsProfileManaged(Profile* profile) { + return management_service && management_service->IsManaged(); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + policy::CloudPolicyStore* GetUserCloudPolicyStore(Profile* profile) { + policy::CloudPolicyManager* user_policy_manager = + profile->GetCloudPolicyManager(); +@@ -105,7 +105,7 @@ DeviceTrustServiceFactory::DeviceTrustServiceFactory() + DependsOn(DeviceTrustConnectorServiceFactory::GetInstance()); + DependsOn(policy::ManagementServiceFactory::GetInstance()); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Depends on this service via the SignalsService having a dependency on it. + DependsOn(enterprise_signals::SignalsAggregatorFactory::GetInstance()); + // Depends on this service via the ProfileAttester having a dependency on it diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc new file mode 100644 index 000000000000..68352dfd3e40 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command_factory.cc.orig 2024-10-16 21:30:58 UTC ++++ chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command_factory.cc +@@ -19,7 +19,7 @@ + + #if BUILDFLAG(IS_WIN) + #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/win_key_rotation_command.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/linux_key_rotation_command.h" + #elif BUILDFLAG(IS_MAC) + #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/mac_key_rotation_command.h" +@@ -53,7 +53,7 @@ std::unique_ptr<KeyRotationCommand> KeyRotationCommand + policy::DeviceManagementService* device_management_service) { + #if BUILDFLAG(IS_WIN) + return std::make_unique<WinKeyRotationCommand>(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<LinuxKeyRotationCommand>(url_loader_factory); + #elif BUILDFLAG(IS_MAC) + if (IsDTCKeyRotationUploadedBySharedAPI()) { diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc new file mode 100644 index 000000000000..5d6de6ec26b6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/key_persistence_delegate_factory.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/key_persistence_delegate_factory.cc +@@ -13,7 +13,7 @@ + #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/win_key_persistence_delegate.h" + #elif BUILDFLAG(IS_MAC) + #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/mac_key_persistence_delegate.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/linux_key_persistence_delegate.h" + #endif + +@@ -45,7 +45,7 @@ KeyPersistenceDelegateFactory::CreateKeyPersistenceDel + return std::make_unique<WinKeyPersistenceDelegate>(); + #elif BUILDFLAG(IS_MAC) + return std::make_unique<MacKeyPersistenceDelegate>(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<LinuxKeyPersistenceDelegate>(); + #else + NOTREACHED(); diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc new file mode 100644 index 000000000000..23867b5a5e11 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/connectors/device_trust/signals/signals_service_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/connectors/device_trust/signals/signals_service_factory.cc +@@ -23,7 +23,7 @@ + #include "chrome/browser/enterprise/connectors/connectors_service.h" + #endif // BUILDFLAG(ENTERPRISE_CLOUD_CONTENT_ANALYSIS) + +-#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/check.h" + #include "chrome/browser/enterprise/connectors/device_trust/signals/decorators/browser/browser_signals_decorator.h" + #include "chrome/browser/enterprise/core/dependency_factory_impl.h" +@@ -63,7 +63,7 @@ std::unique_ptr<SignalsService> CreateSignalsService(P + profile, ConnectorsServiceFactory::GetForBrowserContext(profile)))); + #endif // BUILDFLAG(ENTERPRISE_CLOUD_CONTENT_ANALYSIS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + + policy::CloudPolicyManager* browser_policy_manager = nullptr; + if (management_service->HasManagementAuthority( diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc new file mode 100644 index 000000000000..a72046f43dbc --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/connectors/reporting/browser_crash_event_router.cc.orig 2024-08-14 20:54:35 UTC ++++ chrome/browser/enterprise/connectors/reporting/browser_crash_event_router.cc +@@ -13,7 +13,7 @@ BrowserCrashEventRouter::BrowserCrashEventRouter( + + BrowserCrashEventRouter::BrowserCrashEventRouter( + content::BrowserContext* context) { +-#if !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + CrashReportingContext* crash_reporting_context = + CrashReportingContext::GetInstance(); + Profile* profile = Profile::FromBrowserContext(context); +@@ -23,7 +23,7 @@ BrowserCrashEventRouter::~BrowserCrashEventRouter() { + } + + BrowserCrashEventRouter::~BrowserCrashEventRouter() { +-#if !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + CrashReportingContext* crash_reporting_context = + CrashReportingContext::GetInstance(); + crash_reporting_context->RemoveProfile(this); diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc new file mode 100644 index 000000000000..1ae99a801ac5 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc @@ -0,0 +1,11 @@ +--- chrome/browser/enterprise/connectors/reporting/crash_reporting_context.cc.orig 2024-10-16 21:30:58 UTC ++++ chrome/browser/enterprise/connectors/reporting/crash_reporting_context.cc +@@ -20,7 +20,7 @@ namespace enterprise_connectors { + + namespace enterprise_connectors { + +-#if !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + + namespace { + diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc new file mode 100644 index 000000000000..72ce1adb0991 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc @@ -0,0 +1,38 @@ +--- chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc +@@ -53,7 +53,7 @@ + #include "base/strings/utf_string_conversions.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 "chrome/browser/enterprise/signals/signals_aggregator_factory.h" + #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h" + #include "components/device_signals/core/browser/signals_aggregator.h" +@@ -158,7 +158,7 @@ void RealtimeReportingClient::ReportPastEvent(const st + /*include_profile_user_name=*/false); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + void AddCrowdstrikeSignalsToEvent( + base::Value::Dict& event, +@@ -194,7 +194,7 @@ std::string RealtimeReportingClient::GetProfileUserNam + username_ = + identity_manager_ ? GetProfileEmail(identity_manager_) : std::string(); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (username_.empty()) { + username_ = Profile::FromBrowserContext(context_)->GetPrefs()->GetString( + enterprise_signin::prefs::kProfileUserEmail); +@@ -246,7 +246,7 @@ std::string RealtimeReportingClient::GetBrowserClientI + return client_id; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(notyet) + void RealtimeReportingClient::MaybeCollectDeviceSignalsAndReportEvent( + ::chrome::cros::reporting::proto::Event event, + policy::CloudPolicyClient* client, diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h new file mode 100644 index 000000000000..e0edd3a5dfe2 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h @@ -0,0 +1,29 @@ +--- chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.h +@@ -19,7 +19,7 @@ + #include "components/keyed_service/core/keyed_service.h" + #include "components/policy/core/common/cloud/cloud_policy_client.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 "components/device_signals/core/browser/signals_types.h" + #endif + +@@ -113,7 +113,7 @@ class RealtimeReportingClient : public RealtimeReporti + const std::string& dm_token) override; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(notyet) + // DEPRECATED: Use MaybeCollectDeviceSignalsAndReportEvent(Event, ...). + void MaybeCollectDeviceSignalsAndReportEventDeprecated( + base::Value::Dict event, +@@ -163,7 +163,7 @@ class RealtimeReportingClient : public RealtimeReporti + base::WeakPtrFactory<RealtimeReportingClient> weak_ptr_factory_{this}; + }; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Populate event dict with CrowdStrike signal values. If those signals are + // available in `response`, this function returns a Dict with the following + // fields added: diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc b/devel/electron36/files/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc new file mode 100644 index 000000000000..0577a9387f82 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc @@ -0,0 +1,13 @@ +--- chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.orig 2024-06-18 21:43:22 UTC ++++ chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc +@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileAttributes>& Ge + // TODO(crbug.com/40267996): Add actual domains with attribute names. + profile_attributes->insert(std::make_pair( + "supported.test", +- SAMLProfileAttributes("placeholderName", "placeholderDomain", +- "placeholderToken"))); ++ SAMLProfileAttributes(SAMLProfileAttributes{"placeholderName", "placeholderDomain", ++ "placeholderToken"}))); + + // Extract domains and attributes from the command line switch. + const base::CommandLine& command_line = diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc b/devel/electron36/files/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc new file mode 100644 index 000000000000..46b9ab15d198 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc.orig 2023-11-29 21:39:48 UTC ++++ chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc +@@ -11,7 +11,7 @@ + #include "chrome/browser/profiles/profile_manager.h" + #include "components/policy/core/common/remote_commands/remote_command_job.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 "chrome/browser/enterprise/remote_commands/rotate_attestation_credential_job.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" + #include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h" +@@ -30,7 +30,7 @@ CBCMRemoteCommandsFactory::BuildJobForType( + g_browser_process->profile_manager()); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (type == enterprise_management:: + RemoteCommand_Type_BROWSER_ROTATE_ATTESTATION_CREDENTIAL) { + return std::make_unique<RotateAttestationCredentialJob>( diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_signals_context__info__fetcher.cc b/devel/electron36/files/patch-chrome_browser_enterprise_signals_context__info__fetcher.cc new file mode 100644 index 000000000000..f8f0cbb37f90 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_signals_context__info__fetcher.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/signals/context_info_fetcher.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/signals/context_info_fetcher.cc +@@ -179,6 +179,8 @@ SettingValue ContextInfoFetcher::GetOSFirewall() { + SettingValue ContextInfoFetcher::GetOSFirewall() { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + return device_signals::GetOSFirewall(); ++#elif BUILDFLAG(IS_OPENBSD) ++ return SettingValue::ENABLED; + #elif BUILDFLAG(IS_CHROMEOS) + return GetChromeosFirewall(); + #else +@@ -198,7 +200,7 @@ std::vector<std::string> ContextInfoFetcher::GetDnsSer + #endif // BUILDFLAG(IS_LINUX) + + std::vector<std::string> ContextInfoFetcher::GetDnsServers() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return device_signals::GetSystemDnsServers(); + #else + return std::vector<std::string>(); diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc b/devel/electron36/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc new file mode 100644 index 000000000000..43ad4c413738 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/signals/device_info_fetcher.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/signals/device_info_fetcher.cc +@@ -10,7 +10,7 @@ + #include "chrome/browser/enterprise/signals/device_info_fetcher_mac.h" + #elif BUILDFLAG(IS_WIN) + #include "chrome/browser/enterprise/signals/device_info_fetcher_win.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/signals/device_info_fetcher_linux.h" + #endif + +@@ -76,7 +76,7 @@ std::unique_ptr<DeviceInfoFetcher> DeviceInfoFetcher:: + return CreateInstanceInternal(); + } + +-#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && \ ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) && \ + !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) + // static + std::unique_ptr<DeviceInfoFetcher> DeviceInfoFetcher::CreateInstanceInternal() { diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_signin_enterprise__signin__service.h b/devel/electron36/files/patch-chrome_browser_enterprise_signin_enterprise__signin__service.h new file mode 100644 index 000000000000..d8ecef5170d9 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_signin_enterprise__signin__service.h @@ -0,0 +1,11 @@ +--- chrome/browser/enterprise/signin/enterprise_signin_service.h.orig 2024-08-14 20:54:35 UTC ++++ chrome/browser/enterprise/signin/enterprise_signin_service.h +@@ -9,7 +9,7 @@ + + #include "build/build_config.h" + +-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)) ++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + #error EnterpriseSigninService should only be built on desktop platforms. + #endif // !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)) + diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_signin_interstitials_managed__profile__required__page.cc b/devel/electron36/files/patch-chrome_browser_enterprise_signin_interstitials_managed__profile__required__page.cc new file mode 100644 index 000000000000..ba7ea73c7040 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_signin_interstitials_managed__profile__required__page.cc @@ -0,0 +1,11 @@ +--- chrome/browser/enterprise/signin/interstitials/managed_profile_required_page.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/signin/interstitials/managed_profile_required_page.cc +@@ -94,7 +94,7 @@ void ManagedProfileRequiredPage::CommandReceived(const + + switch (cmd) { + case security_interstitials::CMD_DONT_PROCEED: +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (ManagedProfileRequiredNavigationThrottle::IsBlockingNavigations( + web_contents()->GetBrowserContext())) { + ManagedProfileRequiredNavigationThrottle::ShowBlockedWindow( diff --git a/devel/electron36/files/patch-chrome_browser_enterprise_util_managed__browser__utils.cc b/devel/electron36/files/patch-chrome_browser_enterprise_util_managed__browser__utils.cc new file mode 100644 index 000000000000..b73ef9aafd20 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_enterprise_util_managed__browser__utils.cc @@ -0,0 +1,11 @@ +--- chrome/browser/enterprise/util/managed_browser_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/enterprise/util/managed_browser_utils.cc +@@ -222,7 +222,7 @@ void SetUserAcceptedAccountManagement(Profile* profile + profile_manager->GetProfileAttributesStorage() + .GetProfileAttributesWithPath(profile->GetPath()); + if (entry) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + SetEnterpriseProfileLabel(profile); + #endif + entry->SetUserAcceptedAccountManagement(accepted); diff --git a/devel/electron36/files/patch-chrome_browser_extensions_BUILD.gn b/devel/electron36/files/patch-chrome_browser_extensions_BUILD.gn new file mode 100644 index 000000000000..f3436b290fc6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_BUILD.gn @@ -0,0 +1,13 @@ +--- chrome/browser/extensions/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/extensions/BUILD.gn +@@ -1464,6 +1464,10 @@ source_set("extensions") { + deps += [ "//chrome/services/printing/public/mojom" ] + } + ++ if (is_bsd) { ++ sources -= [ "api/image_writer_private/removable_storage_provider_linux.cc" ] ++ } ++ + if (enable_pdf) { + deps += [ + "//chrome/browser/pdf", diff --git a/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc new file mode 100644 index 000000000000..19fdcd6750ae --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc @@ -0,0 +1,29 @@ +--- chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig 2024-02-21 00:20:34 UTC ++++ 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 +@@ -255,7 +255,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); +@@ -266,7 +266,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/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc new file mode 100644 index 000000000000..82dd2b1604b2 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.cc.orig 2022-11-30 08:12:58 UTC ++++ 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/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h new file mode 100644 index 000000000000..9cbee717bae0 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.h.orig 2024-02-21 00:20:34 UTC ++++ 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 <optional> + #include <vector> diff --git a/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc new file mode 100644 index 000000000000..98a46536bbde --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc @@ -0,0 +1,47 @@ +--- chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc +@@ -40,7 +40,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 <optional> + + #include "base/strings/string_util.h" +@@ -156,7 +156,7 @@ bool AllowClientCertificateReportingForUsers() { + } + + bool AllowClientCertificateReportingForUsers() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled( + enterprise_signals::features::kAllowClientCertificateReportingForUsers); + #else +@@ -169,7 +169,7 @@ bool IsProfilePrefManaged(Profile* profile, std::strin + return pref && pref->IsManaged(); + } + +-#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) { +@@ -231,7 +231,7 @@ EnterpriseReportingPrivateGetDeviceIdFunction:: + + // getPersistentSecret + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + + EnterpriseReportingPrivateGetPersistentSecretFunction:: + EnterpriseReportingPrivateGetPersistentSecretFunction() = default; +@@ -671,7 +671,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/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h new file mode 100644 index 000000000000..65033dd688ae --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h @@ -0,0 +1,29 @@ +--- chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h.orig 2023-03-30 00:33:42 UTC ++++ 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/devel/electron36/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc new file mode 100644 index 000000000000..4ae88b1de3b7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc @@ -0,0 +1,20 @@ +--- chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig 2023-10-19 19:58:04 UTC ++++ 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/devel/electron36/files/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc new file mode 100644 index 000000000000..201f0b3b98bd --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/management/chrome_management_api_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/extensions/api/management/chrome_management_api_delegate.cc +@@ -410,7 +410,7 @@ bool ChromeManagementAPIDelegate::LaunchAppFunctionDel + apps::LaunchContainer launch_container = + GetLaunchContainer(extensions::ExtensionPrefs::Get(context), extension); + 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) + if (extensions::IsExtensionUnsupportedDeprecatedApp(profile, + extension->id())) { + return false; diff --git a/devel/electron36/files/patch-chrome_browser_extensions_api_messaging_launch__context__posix.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_messaging_launch__context__posix.cc new file mode 100644 index 000000000000..8a8122cf6851 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_messaging_launch__context__posix.cc @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/messaging/launch_context_posix.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/extensions/api/messaging/launch_context_posix.cc +@@ -84,7 +84,7 @@ std::optional<LaunchContext::ProcessState> LaunchConte + + options.current_directory = command_line.GetProgram().DirName(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || 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/devel/electron36/files/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc new file mode 100644 index 000000000000..5498d2ed826b --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc +@@ -634,7 +634,7 @@ void PasswordsPrivateDelegateImpl::OsReauthTimeoutCall + } + + void PasswordsPrivateDelegateImpl::OsReauthTimeoutCall() { +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + PasswordsPrivateEventRouter* router = + PasswordsPrivateEventRouterFactory::GetForProfile(profile_); + if (router) { diff --git a/devel/electron36/files/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc new file mode 100644 index 000000000000..dcb3c26fd306 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc @@ -0,0 +1,13 @@ +--- chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc +@@ -292,7 +292,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 { + NOTREACHED() << "Platform not supported: " << os; + } diff --git a/devel/electron36/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc new file mode 100644 index 000000000000..7b2891d25359 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc @@ -0,0 +1,29 @@ +--- chrome/browser/extensions/api/settings_private/prefs_util.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/extensions/api/settings_private/prefs_util.cc +@@ -196,7 +196,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist + (*s_allowlist)[autofill::prefs::kAutofillPaymentCardBenefits] = + settings_api::PrefType::kBoolean; + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + (*s_allowlist)[autofill::prefs::kAutofillBnplEnabled] = + settings_api::PrefType::kBoolean; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || +@@ -214,7 +214,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist + (*s_allowlist)[tab_groups::prefs::kAutoPinNewTabGroups] = + settings_api::PrefType::kBoolean; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + (*s_allowlist)[::prefs::kUseCustomChromeFrame] = + settings_api::PrefType::kBoolean; + #endif +@@ -226,7 +226,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist + (*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString; + (*s_allowlist)[::prefs::kPinnedActions] = settings_api::PrefType::kList; + (*s_allowlist)[::prefs::kPolicyThemeColor] = settings_api::PrefType::kNumber; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + (*s_allowlist)[::prefs::kSystemTheme] = settings_api::PrefType::kNumber; + #endif + (*s_allowlist)[::prefs::kHomePage] = settings_api::PrefType::kUrl; diff --git a/devel/electron36/files/patch-chrome_browser_extensions_api_tabs_tabs__api.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_tabs_tabs__api.cc new file mode 100644 index 000000000000..8ccf81f6de50 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_tabs_tabs__api.cc @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/tabs/tabs_api.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/extensions/api/tabs/tabs_api.cc +@@ -932,7 +932,7 @@ ExtensionFunction::ResponseAction WindowsCreateFunctio + // created as minimized. + // TODO(crbug.com/40254339): Remove this workaround when linux is fixed. + // TODO(crbug.com/40254339): Find a fix for wayland as well. +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + if (new_window->initial_show_state() == + ui::mojom::WindowShowState::kMinimized) { + new_window->window()->Minimize(); diff --git a/devel/electron36/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc new file mode 100644 index 000000000000..c632b5f1598f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc @@ -0,0 +1,29 @@ +--- chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc +@@ -28,7 +28,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 + +@@ -37,7 +37,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( +@@ -575,7 +575,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/devel/electron36/files/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc b/devel/electron36/files/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc new file mode 100644 index 000000000000..1b66b3d30ece --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/webstore_private/webstore_private_api.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +@@ -916,7 +916,7 @@ void WebstorePrivateBeginInstallWithManifest3Function: + #if BUILDFLAG(IS_CHROMEOS) + 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/devel/electron36/files/patch-chrome_browser_extensions_component__extensions__allowlist_allowlist.cc b/devel/electron36/files/patch-chrome_browser_extensions_component__extensions__allowlist_allowlist.cc new file mode 100644 index 000000000000..e7aeada535ea --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_component__extensions__allowlist_allowlist.cc @@ -0,0 +1,20 @@ +--- chrome/browser/extensions/component_extensions_allowlist/allowlist.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/extensions/component_extensions_allowlist/allowlist.cc +@@ -48,7 +48,7 @@ bool IsComponentExtensionAllowlisted(const std::string + #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) + #endif // BUILDFLAG(IS_CHROMEOS) + extension_misc::kReadingModeGDocsHelperExtensionId, +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + extension_misc::kTTSEngineExtensionId, + extension_misc::kComponentUpdaterTTSEngineExtensionId, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) +@@ -85,7 +85,7 @@ bool IsComponentExtensionAllowlisted(int manifest_reso + case IDR_NETWORK_SPEECH_SYNTHESIS_MANIFEST: + case IDR_NETWORK_SPEECH_SYNTHESIS_MANIFEST_MV3: + case IDR_READING_MODE_GDOCS_HELPER_MANIFEST: +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case IDR_TTS_ENGINE_MANIFEST: + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) + case IDR_WEBSTORE_MANIFEST: diff --git a/devel/electron36/files/patch-chrome_browser_extensions_external__provider__impl.cc b/devel/electron36/files/patch-chrome_browser_extensions_external__provider__impl.cc new file mode 100644 index 000000000000..ce8fac3190ce --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_extensions_external__provider__impl.cc @@ -0,0 +1,20 @@ +--- chrome/browser/extensions/external_provider_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/extensions/external_provider_impl.cc +@@ -818,7 +818,7 @@ void ExternalProviderImpl::CreateExternalProviders( + + #endif // BUILDFLAG(IS_CHROMEOS) + if (!profile->GetPrefs()->GetBoolean(pref_names::kBlockExternalExtensions)) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + provider_list->push_back(std::make_unique<ExternalProviderImpl>( + service, + base::MakeRefCounted<ExternalPrefLoader>( +@@ -846,7 +846,7 @@ void ExternalProviderImpl::CreateExternalProviders( + bundled_extension_creation_flags)); + + // Define a per-user source of external extensions. +-#if BUILDFLAG(IS_MAC) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if BUILDFLAG(IS_MAC) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(CHROMIUM_BRANDING)) + provider_list->push_back(std::make_unique<ExternalProviderImpl>( + service, diff --git a/devel/electron36/files/patch-chrome_browser_feedback_system__logs_about__system__logs__fetcher.cc b/devel/electron36/files/patch-chrome_browser_feedback_system__logs_about__system__logs__fetcher.cc new file mode 100644 index 000000000000..63b03f50f762 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_feedback_system__logs_about__system__logs__fetcher.cc @@ -0,0 +1,20 @@ +--- chrome/browser/feedback/system_logs/about_system_logs_fetcher.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/feedback/system_logs/about_system_logs_fetcher.cc +@@ -37,7 +37,7 @@ + #include "chrome/browser/ash/system_logs/ui_hierarchy_log_source.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/feedback/system_logs/log_sources/ozone_platform_state_dump_source.h" + #endif + +@@ -84,7 +84,7 @@ SystemLogsFetcher* BuildAboutSystemLogsFetcher(content + fetcher->AddSource(std::make_unique<KeyboardInfoLogSource>()); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + fetcher->AddSource(std::make_unique<OzonePlatformStateDumpSource>()); + #endif // BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chrome_browser_feedback_system__logs_chrome__system__logs__fetcher.cc b/devel/electron36/files/patch-chrome_browser_feedback_system__logs_chrome__system__logs__fetcher.cc new file mode 100644 index 000000000000..141e050f4709 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_feedback_system__logs_chrome__system__logs__fetcher.cc @@ -0,0 +1,20 @@ +--- chrome/browser/feedback/system_logs/chrome_system_logs_fetcher.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/feedback/system_logs/chrome_system_logs_fetcher.cc +@@ -44,7 +44,7 @@ + #include "services/network/public/cpp/shared_url_loader_factory.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/feedback/system_logs/log_sources/ozone_platform_state_dump_source.h" + #endif + +@@ -101,7 +101,7 @@ SystemLogsFetcher* BuildChromeSystemLogsFetcher(Profil + fetcher->AddSource(std::make_unique<UiHierarchyLogSource>(scrub_data)); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + fetcher->AddSource(std::make_unique<OzonePlatformStateDumpSource>()); + #endif // BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h b/devel/electron36/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h new file mode 100644 index 000000000000..227f96634717 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h @@ -0,0 +1,11 @@ +--- chrome/browser/file_system_access/chrome_file_system_access_permission_context.h.orig 2025-02-02 01:39:10 UTC ++++ chrome/browser/file_system_access/chrome_file_system_access_permission_context.h +@@ -439,7 +439,7 @@ class ChromeFileSystemAccessPermissionContext + FILE_PATH_LITERAL("Library/Mobile Documents/com~apple~CloudDocs"), + kDontBlockChildren}, + #endif +- #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // On Linux also block access to devices via /dev. + {kNoBasePathKey, FILE_PATH_LITERAL("/dev"), kBlockAllChildren}, + // And security sensitive data in /proc and /sys. diff --git a/devel/electron36/files/patch-chrome_browser_first__run_first__run__dialog.h b/devel/electron36/files/patch-chrome_browser_first__run_first__run__dialog.h new file mode 100644 index 000000000000..cd5c4b3fa7d8 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_first__run_first__run__dialog.h @@ -0,0 +1,11 @@ +--- chrome/browser/first_run/first_run_dialog.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/first_run/first_run_dialog.h +@@ -9,7 +9,7 @@ + #include "build/build_config.h" + + // Hide this function on platforms where the dialog does not exist. +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + namespace first_run { + diff --git a/devel/electron36/files/patch-chrome_browser_first__run_first__run__internal.h b/devel/electron36/files/patch-chrome_browser_first__run_first__run__internal.h new file mode 100644 index 000000000000..d09a1a6d9245 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_first__run_first__run__internal.h @@ -0,0 +1,11 @@ +--- chrome/browser/first_run/first_run_internal.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/first_run/first_run_internal.h +@@ -53,7 +53,7 @@ FirstRunState DetermineFirstRunState(bool has_sentinel + bool force_first_run, + bool no_first_run); + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // For testing, forces the first run dialog to either be shown or not. If not + // called, the decision to show the dialog or not will be made by Chrome based + // on a number of factors (such as install type, whether it's a Chrome-branded diff --git a/devel/electron36/files/patch-chrome_browser_flag__descriptions.cc b/devel/electron36/files/patch-chrome_browser_flag__descriptions.cc new file mode 100644 index 000000000000..f0221ea2eed4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_flag__descriptions.cc @@ -0,0 +1,174 @@ +--- chrome/browser/flag_descriptions.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/flag_descriptions.cc +@@ -602,7 +602,7 @@ const char kAutofillEnableAllowlistForBmoCardCategoryB + "Autofill suggestions on the allowlisted merchant websites."; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kAutofillEnableAmountExtractionAllowlistDesktopName[] = + "Enable loading and querying the checkout amount extraction allowlist on " + "Chrome Desktop"; +@@ -626,7 +626,7 @@ const char kAutofillEnableAmountExtractionDesktopLoggi + // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kAutofillEnableBuyNowPayLaterName[] = + "Enable buy now pay later on Autofill"; + const char kAutofillEnableBuyNowPayLaterDescription[] = +@@ -1031,7 +1031,7 @@ const char kDevicePostureDescription[] = + "Enables Device Posture API (foldable devices)"; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kDocumentPictureInPictureAnimateResizeName[] = + "Document Picture-in-Picture Animate Resize"; + const char kDocumentPictureInPictureAnimateResizeDescription[] = +@@ -1123,7 +1123,7 @@ const char kContextMenuEmptySpaceDescription[] = + "space, a context menu containing page-related items will be shown."; + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + const char kContextualCueingName[] = "Contextual cueing"; + const char kContextualCueingDescription[] = + "Enables the contextual cueing system to support showing actions."; +@@ -1563,7 +1563,7 @@ const char kEnableIsolatedWebAppDevModeDescription[] = + const char kEnableIsolatedWebAppDevModeDescription[] = + "Enables the installation of unverified Isolated Web Apps"; + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const char kEnableIwaKeyDistributionComponentName[] = + "Enable the Iwa Key Distribution component"; + const char kEnableIwaKeyDistributionComponentDescription[] = +@@ -3430,7 +3430,7 @@ const char kRetainOmniboxOnFocusDescription[] = + "exhibit a change in behavior."; + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const char kRootScrollbarFollowsTheme[] = "Make scrollbar follow theme"; + const char kRootScrollbarFollowsThemeDescription[] = + "If enabled makes the root scrollbar follow the browser's theme color."; +@@ -3648,7 +3648,7 @@ const char kDefaultSiteInstanceGroupsDescription[] = + "SiteInstance."; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kPwaNavigationCapturingName[] = "Desktop PWA Link Capturing"; + const char kPwaNavigationCapturingDescription[] = + "Enables opening links from Chrome in an installed PWA. Currently under " +@@ -3863,7 +3863,7 @@ const char kTranslateForceTriggerOnEnglishDescription[ + "Force the Translate Triggering on English pages experiment to be enabled " + "with the selected language model active."; + +-#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 kEnableHistorySyncOptinName[] = "History Sync Opt-in"; + const char kEnableHistorySyncOptinDescription[] = + "Enables the History Sync Opt-in screen on Desktop platforms. The screen " +@@ -5451,7 +5451,7 @@ const char kTranslateOpenSettingsDescription[] = + "Add an option to the translate bubble menu to open language settings."; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const char kWasmTtsComponentUpdaterEnabledName[] = + "Enable Wasm TTS Extension Component"; + const char kWasmTtsComponentUpdaterEnabledDescription[] = +@@ -7459,7 +7459,7 @@ const char kTetheringExperimentalFunctionalityDescript + + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const char kGetAllScreensMediaName[] = "GetAllScreensMedia API"; + const char kGetAllScreensMediaDescription[] = + "When enabled, the getAllScreensMedia API for capturing multiple screens " +@@ -7688,7 +7688,7 @@ const char kEnableArmHwdrmDescription[] = "Enable HW b + + // Linux ----------------------------------------------------------------------- + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const char kOzonePlatformHintChoiceDefault[] = "Default"; + const char kOzonePlatformHintChoiceAuto[] = "Auto"; + const char kOzonePlatformHintChoiceX11[] = "X11"; +@@ -7738,6 +7738,18 @@ const char kWaylandUiScalingDescription[] = + "Enable experimental support for text scaling in the Wayland backend " + "backed by full UI scaling. Requires #wayland-per-window-scaling to be " + "enabled too."; ++ ++#if BUILDFLAG(IS_BSD) ++const char kAudioBackendName[] = ++ "Audio Backend"; ++const char kAudioBackendDescription[] = ++#if BUILDFLAG(IS_OPENBSD) ++ "Select the desired audio backend to use. The default is sndio."; ++#elif BUILDFLAG(IS_FREEBSD) ++ "Select the desired audio backend to use. The default will automatically " ++ "enumerate through the supported backends."; ++#endif ++#endif + #endif // BUILDFLAG(IS_LINUX) + + // Random platform combinations ----------------------------------------------- +@@ -7750,7 +7762,7 @@ const char kZeroCopyVideoCaptureDescription[] = + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kFollowingFeedSidepanelName[] = "Following feed in the sidepanel"; + const char kFollowingFeedSidepanelDescription[] = + "Enables the following feed in the sidepanel."; +@@ -7793,7 +7805,7 @@ const char kGroupPromoPrototypeDescription[] = + const char kGroupPromoPrototypeDescription[] = + "Enables prototype for group promo."; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kEnableNetworkServiceSandboxName[] = + "Enable the network service sandbox."; + const char kEnableNetworkServiceSandboxDescription[] = +@@ -7825,7 +7837,7 @@ const char kWebBluetoothConfirmPairingSupportDescripti + "Bluetooth"; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #if BUILDFLAG(ENABLE_PRINTING) + const char kCupsIppPrintingBackendName[] = "CUPS IPP Printing Backend"; + const char kCupsIppPrintingBackendDescription[] = +@@ -7967,7 +7979,7 @@ const char kElementCaptureDescription[] = + "media track into a track capturing just a specific DOM element."; + #endif // !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const char kUIDebugToolsName[] = "Debugging tools for UI"; + const char kUIDebugToolsDescription[] = + "Enables additional keyboard shortcuts to help debugging."; +@@ -8018,7 +8030,7 @@ const char kComposeUpfrontInputModesDescription[] = + "Enables upfront input modes in the Compose dialog"; + #endif // BUILDFLAG(ENABLE_COMPOSE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + const char kThirdPartyProfileManagementName[] = + "Third party profile management"; + const char kThirdPartyProfileManagementDescription[] = +@@ -8154,7 +8166,7 @@ const char kSupervisedUserBlockInterstitialV3Descripti + const char kSupervisedUserBlockInterstitialV3Description[] = + "Enables URL filter interstitial V3 for Family Link users."; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + const char kSupervisedProfileHideGuestName[] = "Supervised Profile Hide Guest"; + const char kSupervisedProfileHideGuestDescription[] = + "Hides Guest Profile entry points for supervised users"; diff --git a/devel/electron36/files/patch-chrome_browser_flag__descriptions.h b/devel/electron36/files/patch-chrome_browser_flag__descriptions.h new file mode 100644 index 000000000000..64105231e754 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_flag__descriptions.h @@ -0,0 +1,165 @@ +--- chrome/browser/flag_descriptions.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/flag_descriptions.h +@@ -373,7 +373,7 @@ extern const char + kAutofillEnableAllowlistForBmoCardCategoryBenefitsDescription[]; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kAutofillEnableAmountExtractionAllowlistDesktopName[]; + extern const char kAutofillEnableAmountExtractionAllowlistDesktopDescription[]; + extern const char kAutofillEnableAmountExtractionDesktopName[]; +@@ -384,7 +384,7 @@ extern const char kAutofillEnableAmountExtractionDeskt + // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kAutofillEnableBuyNowPayLaterName[]; + extern const char kAutofillEnableBuyNowPayLaterDescription[]; + +@@ -602,7 +602,7 @@ extern const char kContextMenuEmptySpaceDescription[]; + extern const char kContextMenuEmptySpaceDescription[]; + #endif // BUILDFLAG(IS_ANDROID) + +-#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 kContextualCueingName[]; + extern const char kContextualCueingDescription[]; + extern const char kGlicZeroStateSuggestionsName[]; +@@ -786,7 +786,7 @@ extern const char kDevicePostureDescription[]; + extern const char kDevicePostureDescription[]; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kDocumentPictureInPictureAnimateResizeName[]; + extern const char kDocumentPictureInPictureAnimateResizeDescription[]; + +@@ -948,7 +948,7 @@ extern const char kEnableIsolatedWebAppDevModeDescript + extern const char kEnableIsolatedWebAppDevModeName[]; + extern const char kEnableIsolatedWebAppDevModeDescription[]; + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const char kEnableIwaKeyDistributionComponentName[]; + extern const char kEnableIwaKeyDistributionComponentDescription[]; + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +@@ -1964,7 +1964,7 @@ extern const char kRetainOmniboxOnFocusDescription[]; + extern const char kRetainOmniboxOnFocusDescription[]; + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const char kRootScrollbarFollowsTheme[]; + extern const char kRootScrollbarFollowsThemeDescription[]; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +@@ -2096,7 +2096,7 @@ extern const char kDefaultSiteInstanceGroupsDescriptio + extern const char kDefaultSiteInstanceGroupsDescription[]; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kPwaNavigationCapturingName[]; + extern const char kPwaNavigationCapturingDescription[]; + #endif +@@ -2242,7 +2242,7 @@ extern const char kTranslateForceTriggerOnEnglishDescr + extern const char kTranslateForceTriggerOnEnglishName[]; + extern const char kTranslateForceTriggerOnEnglishDescription[]; + +-#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 kEnableHistorySyncOptinName[]; + extern const char kEnableHistorySyncOptinDescription[]; + +@@ -3197,7 +3197,7 @@ extern const char kTranslateOpenSettingsDescription[]; + extern const char kTranslateOpenSettingsDescription[]; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + extern const char kWasmTtsComponentUpdaterEnabledName[]; + extern const char kWasmTtsComponentUpdaterEnabledDescription[]; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) +@@ -4385,7 +4385,7 @@ extern const char kTetheringExperimentalFunctionalityD + + #endif // #if BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const char kGetAllScreensMediaName[]; + extern const char kGetAllScreensMediaDescription[]; + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) +@@ -4520,7 +4520,7 @@ extern const char kEnableArmHwdrmDescription[]; + + // Linux --------------------------------------------------------------------- + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const char kOzonePlatformHintChoiceDefault[]; + extern const char kOzonePlatformHintChoiceAuto[]; + extern const char kOzonePlatformHintChoiceX11[]; +@@ -4551,6 +4551,9 @@ extern const char kWaylandUiScalingDescription[]; + + extern const char kWaylandUiScalingName[]; + extern const char kWaylandUiScalingDescription[]; ++ ++extern const char kAudioBackendName[]; ++extern const char kAudioBackendDescription[]; + #endif // BUILDFLAG(IS_LINUX) + + // Random platform combinations ----------------------------------------------- +@@ -4570,7 +4573,7 @@ extern const char kWebBluetoothConfirmPairingSupportDe + extern const char kWebBluetoothConfirmPairingSupportDescription[]; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #if BUILDFLAG(ENABLE_PRINTING) + extern const char kCupsIppPrintingBackendName[]; + extern const char kCupsIppPrintingBackendDescription[]; +@@ -4583,7 +4586,7 @@ extern const char kScreenlockReauthCardDescription[]; + #endif // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kFollowingFeedSidepanelName[]; + extern const char kFollowingFeedSidepanelDescription[]; + +@@ -4600,7 +4603,7 @@ extern const char kTaskManagerDesktopRefreshDescriptio + extern const char kTaskManagerDesktopRefreshDescription[]; + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kEnableNetworkServiceSandboxName[]; + extern const char kEnableNetworkServiceSandboxDescription[]; + +@@ -4695,7 +4698,7 @@ extern const char kElementCaptureDescription[]; + extern const char kElementCaptureDescription[]; + #endif // !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + extern const char kUIDebugToolsName[]; + extern const char kUIDebugToolsDescription[]; + #endif +@@ -4734,7 +4737,7 @@ extern const char kComposeUpfrontInputModesDescription + extern const char kComposeUpfrontInputModesDescription[]; + #endif // BUILDFLAG(ENABLE_COMPOSE) + +-#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 kThirdPartyProfileManagementName[]; + extern const char kThirdPartyProfileManagementDescription[]; + +@@ -4814,7 +4817,7 @@ extern const char kSupervisedUserBlockInterstitialV3De + extern const char kSupervisedUserBlockInterstitialV3Name[]; + extern const char kSupervisedUserBlockInterstitialV3Description[]; + +-#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 kSupervisedProfileHideGuestName[]; + extern const char kSupervisedProfileHideGuestDescription[]; + diff --git a/devel/electron36/files/patch-chrome_browser_gcm_gcm__profile__service__factory.cc b/devel/electron36/files/patch-chrome_browser_gcm_gcm__profile__service__factory.cc new file mode 100644 index 000000000000..8e9cf8ecb68c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_gcm_gcm__profile__service__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/gcm/gcm_profile_service_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/gcm/gcm_profile_service_factory.cc +@@ -110,7 +110,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 = +@@ -153,7 +153,7 @@ GCMProfileServiceFactory::BuildServiceInstanceForBrows + GCMProfileServiceFactory::BuildServiceInstanceForBrowserContext( + 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/devel/electron36/files/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc b/devel/electron36/files/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc new file mode 100644 index 000000000000..7a90013d8954 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/gcm/instance_id/instance_id_profile_service_factory.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/gcm/instance_id/instance_id_profile_service_factory.cc +@@ -16,7 +16,7 @@ InstanceIDProfileService* InstanceIDProfileServiceFact + // 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 +@@ -65,7 +65,7 @@ InstanceIDProfileServiceFactory::BuildServiceInstanceF + InstanceIDProfileServiceFactory::BuildServiceInstanceForBrowserContext( + 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/devel/electron36/files/patch-chrome_browser_global__features.cc b/devel/electron36/files/patch-chrome_browser_global__features.cc new file mode 100644 index 000000000000..73b46a48483f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_global__features.cc @@ -0,0 +1,29 @@ +--- chrome/browser/global_features.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/global_features.cc +@@ -22,7 +22,7 @@ + #include "chrome/browser/glic/host/glic_synthetic_trial_manager.h" // nogncheck + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // This causes a gn error on Android builds, because gn does not understand + // buildflags, so we include it only on platforms where it is used. + #include "chrome/browser/ui/webui/whats_new/whats_new_registrar.h" +@@ -61,7 +61,7 @@ void GlobalFeatures::Init() { + + void GlobalFeatures::Init() { + system_permissions_platform_handle_ = CreateSystemPermissionsPlatformHandle(); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + whats_new_registry_ = CreateWhatsNewRegistry(); + #endif + +@@ -93,7 +93,7 @@ GlobalFeatures::CreateSystemPermissionsPlatformHandle( + return system_permission_settings::PlatformHandle::Create(); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<whats_new::WhatsNewRegistry> + GlobalFeatures::CreateWhatsNewRegistry() { + return whats_new::CreateWhatsNewRegistry(); diff --git a/devel/electron36/files/patch-chrome_browser_global__features.h b/devel/electron36/files/patch-chrome_browser_global__features.h new file mode 100644 index 000000000000..2a106441fa9f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_global__features.h @@ -0,0 +1,38 @@ +--- chrome/browser/global_features.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/global_features.h +@@ -14,7 +14,7 @@ class PlatformHandle; + namespace system_permission_settings { + class PlatformHandle; + } // namespace system_permission_settings +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + namespace whats_new { + class WhatsNewRegistry; + } // namespace whats_new +@@ -56,7 +56,7 @@ class GlobalFeatures { + system_permissions_platform_handle() { + return system_permissions_platform_handle_.get(); + } +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + whats_new::WhatsNewRegistry* whats_new_registry() { + return whats_new_registry_.get(); + } +@@ -85,7 +85,7 @@ class GlobalFeatures { + + virtual std::unique_ptr<system_permission_settings::PlatformHandle> + CreateSystemPermissionsPlatformHandle(); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + virtual std::unique_ptr<whats_new::WhatsNewRegistry> CreateWhatsNewRegistry(); + #endif + +@@ -95,7 +95,7 @@ class GlobalFeatures { + + std::unique_ptr<system_permission_settings::PlatformHandle> + system_permissions_platform_handle_; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<whats_new::WhatsNewRegistry> whats_new_registry_; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_headless_headless__mode__util.cc b/devel/electron36/files/patch-chrome_browser_headless_headless__mode__util.cc new file mode 100644 index 000000000000..bfb1219162f4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_headless_headless__mode__util.cc @@ -0,0 +1,29 @@ +--- chrome/browser/headless/headless_mode_util.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/headless/headless_mode_util.cc +@@ -10,7 +10,7 @@ + // New headless mode is available on Linux, Windows and Mac platforms. + // More platforms will be added later, so avoid function level clutter + // by providing stub implementations at the end of the file. +-#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/base_switches.h" + #include "base/files/file_path.h" +@@ -20,7 +20,7 @@ + #include "content/public/common/content_switches.h" + #include "ui/base/ui_base_switches.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/gl/gl_switches.h" // nogncheck + #include "ui/ozone/public/ozone_switches.h" // nogncheck + #endif // BUILDFLAG(IS_LINUX) +@@ -95,7 +95,7 @@ class HeadlessModeHandleImpl : public HeadlessModeHand + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Headless mode on Linux relies on ozone/headless platform. + command_line->AppendSwitchASCII(::switches::kOzonePlatform, + switches::kHeadless); diff --git a/devel/electron36/files/patch-chrome_browser_intranet__redirect__detector.h b/devel/electron36/files/patch-chrome_browser_intranet__redirect__detector.h new file mode 100644 index 000000000000..2c1df7cf5092 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_intranet__redirect__detector.h @@ -0,0 +1,11 @@ +--- chrome/browser/intranet_redirect_detector.h.orig 2024-06-18 21:43:22 UTC ++++ chrome/browser/intranet_redirect_detector.h +@@ -25,7 +25,7 @@ class PrefRegistrySimple; + class PrefRegistrySimple; + + #if !(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS)) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + #error "IntranetRedirectDetector should only be built on Desktop platforms." + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc b/devel/electron36/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc new file mode 100644 index 000000000000..3fc6383447aa --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc @@ -0,0 +1,15 @@ +--- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig 2024-08-14 20:54:36 UTC ++++ chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc +@@ -40,10 +40,12 @@ void MTPDeviceMapService::RegisterMTPFileSystem( + // Note that this initializes the delegate asynchronously, but since + // the delegate will only be used from the IO thread, it is guaranteed + // to be created before use of it expects it to be there. ++#if !BUILDFLAG(IS_BSD) + CreateMTPDeviceAsyncDelegate( + device_location, read_only, + base::BindOnce(&MTPDeviceMapService::AddAsyncDelegate, + base::Unretained(this), device_location, read_only)); ++#endif + mtp_device_usage_map_[key] = 0; + } + diff --git a/devel/electron36/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc b/devel/electron36/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc new file mode 100644 index 000000000000..88a5658fc797 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc @@ -0,0 +1,16 @@ +--- chrome/browser/media_galleries/media_file_system_registry.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/media_galleries/media_file_system_registry.cc +@@ -583,7 +583,12 @@ MediaFileSystemRegistry::MediaFileSystemRegistry() + // Constructor in 'private' section because depends on private class definition. + MediaFileSystemRegistry::MediaFileSystemRegistry() + : file_system_context_(new MediaFileSystemContextImpl) { +- StorageMonitor::GetInstance()->AddObserver(this); ++ /* ++ * This conditional is needed for shutdown. Destructors ++ * try to get the media file system registry. ++ */ ++ if (StorageMonitor::GetInstance()) ++ StorageMonitor::GetInstance()->AddObserver(this); + } + + MediaFileSystemRegistry::~MediaFileSystemRegistry() { diff --git a/devel/electron36/files/patch-chrome_browser_media_audio__service__util.cc b/devel/electron36/files/patch-chrome_browser_media_audio__service__util.cc new file mode 100644 index 000000000000..7e4d4a2803bb --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_audio__service__util.cc @@ -0,0 +1,20 @@ +--- chrome/browser/media/audio_service_util.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/media/audio_service_util.cc +@@ -20,7 +20,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const base::Value* GetPolicy(const char* policy_name) { + const policy::PolicyMap& policies = + g_browser_process->browser_policy_connector() +@@ -39,7 +39,7 @@ bool IsAudioServiceSandboxEnabled() { + } // namespace + + bool IsAudioServiceSandboxEnabled() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return GetPolicyOrFeature(policy::key::kAudioSandboxEnabled, + features::kAudioServiceSandbox); + #else diff --git a/devel/electron36/files/patch-chrome_browser_media_router_discovery_BUILD.gn b/devel/electron36/files/patch-chrome_browser_media_router_discovery_BUILD.gn new file mode 100644 index 000000000000..caa47a877acc --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_router_discovery_BUILD.gn @@ -0,0 +1,11 @@ +--- chrome/browser/media/router/discovery/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/media/router/discovery/BUILD.gn +@@ -79,7 +79,7 @@ static_library("discovery") { + ] + configs += [ "//build/config/compiler:wexit_time_destructors" ] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ "discovery_network_list_wifi_linux.cc" ] + } + diff --git a/devel/electron36/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc b/devel/electron36/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc new file mode 100644 index 000000000000..05c8b52f665a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc @@ -0,0 +1,48 @@ +--- chrome/browser/media/router/discovery/discovery_network_list_posix.cc.orig 2024-10-16 21:30:58 UTC ++++ chrome/browser/media/router/discovery/discovery_network_list_posix.cc +@@ -10,11 +10,12 @@ + #include "chrome/browser/media/router/discovery/discovery_network_list.h" + + #include <ifaddrs.h> ++#include <sys/socket.h> ++#include <sys/types.h> ++#include <sys/time.h> + #include <net/if.h> + #include <net/if_arp.h> + #include <netinet/in.h> +-#include <sys/socket.h> +-#include <sys/types.h> + + #include <algorithm> + +@@ -23,7 +24,7 @@ + #include "chrome/browser/media/router/discovery/discovery_network_list_wifi.h" + #include "net/base/net_errors.h" + +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + #include <netpacket/packet.h> + #else + #include <net/if_dl.h> +@@ -32,7 +33,7 @@ namespace { + namespace media_router { + namespace { + +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + using sll = struct sockaddr_ll; + #define SOCKET_ARP_TYPE(s) ((s)->sll_hatype) + #define SOCKET_ADDRESS_LEN(s) ((s)->sll_halen) +@@ -43,6 +44,12 @@ using sll = struct sockaddr_dl; + #define SOCKET_ARP_TYPE(s) ((s)->sdl_type) + #define SOCKET_ADDRESS_LEN(s) ((s)->sdl_alen) + #define SOCKET_ADDRESS(s) (LLADDR(s)) ++#endif ++ ++#if BUILDFLAG(IS_BSD) ++bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) { ++ return false; ++} + #endif + + void GetDiscoveryNetworkInfoListImpl( diff --git a/devel/electron36/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc b/devel/electron36/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc new file mode 100644 index 000000000000..06efc52f58ac --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc @@ -0,0 +1,30 @@ +--- chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc +@@ -9,7 +9,11 @@ + + #include "chrome/browser/media/router/discovery/discovery_network_list_wifi.h" + ++#include "build/build_config.h" ++ ++#if !BUILDFLAG(IS_BSD) + #include <linux/wireless.h> ++#endif + #include <string.h> + #include <sys/ioctl.h> + #include <sys/socket.h> +@@ -24,6 +28,7 @@ bool MaybeGetWifiSSID(const std::string& if_name, std: + bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) { + DCHECK(ssid_out); + ++#if !BUILDFLAG(IS_BSD) + base::ScopedFD ioctl_socket(socket(AF_INET, SOCK_DGRAM, 0)); + if (!ioctl_socket.is_valid()) { + // AF_INET is for IPv4, so it may fail for IPv6-only hosts even when there +@@ -46,6 +51,7 @@ bool MaybeGetWifiSSID(const std::string& if_name, std: + ssid_out->assign(ssid); + return true; + } ++#endif + return false; + } + diff --git a/devel/electron36/files/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc b/devel/electron36/files/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc new file mode 100644 index 000000000000..ecec34eb3e84 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc @@ -0,0 +1,47 @@ +--- chrome/browser/media/webrtc/chrome_screen_enumerator.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/media/webrtc/chrome_screen_enumerator.cc +@@ -21,7 +21,7 @@ + #if BUILDFLAG(IS_CHROMEOS) + #include "ash/shell.h" + #include "ui/aura/window.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/functional/callback.h" + #include "content/public/browser/desktop_capture.h" + #endif +@@ -32,7 +32,7 @@ base::LazyInstance<std::vector<raw_ptr<aura::Window, V + DestructorAtExit root_windows_for_testing_ = LAZY_INSTANCE_INITIALIZER; + } // namespace + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + namespace { + base::LazyInstance<std::unique_ptr<webrtc::DesktopCapturer>>::DestructorAtExit + g_desktop_capturer_for_testing = LAZY_INSTANCE_INITIALIZER; +@@ -79,7 +79,7 @@ blink::mojom::StreamDevicesSetPtr EnumerateScreens( + return stream_devices_set; + } + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + blink::mojom::StreamDevicesSetPtr EnumerateScreens( + blink::mojom::MediaStreamType stream_type) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); +@@ -130,7 +130,7 @@ void ChromeScreenEnumerator::SetRootWindowsForTesting( + root_windows_for_testing_.Get() = std::move(root_windows); + } + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void ChromeScreenEnumerator::SetDesktopCapturerForTesting( + std::unique_ptr<webrtc::DesktopCapturer> capturer) { + g_desktop_capturer_for_testing.Get() = std::move(capturer); +@@ -143,7 +143,7 @@ void ChromeScreenEnumerator::EnumerateScreens( + ScreensCallback screens_callback) const { + DCHECK_CURRENTLY_ON(content::BrowserThread::IO); + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + content::GetUIThreadTaskRunner({})->PostTaskAndReplyWithResult( + FROM_HERE, base::BindOnce(::EnumerateScreens, stream_type), + base::BindOnce( diff --git a/devel/electron36/files/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h b/devel/electron36/files/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h new file mode 100644 index 000000000000..f1dd54ac9eb7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h @@ -0,0 +1,20 @@ +--- chrome/browser/media/webrtc/chrome_screen_enumerator.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/media/webrtc/chrome_screen_enumerator.h +@@ -18,7 +18,7 @@ class Window; + namespace aura { + class Window; + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + namespace webrtc { + class DesktopCapturer; + } +@@ -39,7 +39,7 @@ class ChromeScreenEnumerator : public media::ScreenEnu + #if BUILDFLAG(IS_CHROMEOS) + static void SetRootWindowsForTesting( + std::vector<raw_ptr<aura::Window, VectorExperimental>> root_windows); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + static void SetDesktopCapturerForTesting( + std::unique_ptr<webrtc::DesktopCapturer> capturer); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc b/devel/electron36/files/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc new file mode 100644 index 000000000000..16a5ebbf1d80 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc @@ -0,0 +1,11 @@ +--- chrome/browser/media/webrtc/desktop_media_picker_controller.cc.orig 2024-06-18 21:43:22 UTC ++++ chrome/browser/media/webrtc/desktop_media_picker_controller.cc +@@ -89,7 +89,7 @@ bool DesktopMediaPickerController::IsSystemAudioCaptur + #if BUILDFLAG(IS_MAC) + return request_source == Params::RequestSource::kCast || + base::FeatureList::IsEnabled(media::kMacLoopbackAudioForScreenShare); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (request_source == Params::RequestSource::kCast) { + return base::FeatureList::IsEnabled(media::kPulseaudioLoopbackForCast); + } else { diff --git a/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc b/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc new file mode 100644 index 000000000000..65436a601ea0 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc @@ -0,0 +1,11 @@ +--- chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/media/webrtc/webrtc_log_uploader.cc +@@ -105,7 +105,7 @@ std::string GetLogUploadProduct() { + const char product[] = "Chrome"; + #elif BUILDFLAG(IS_MAC) + const char product[] = "Chrome_Mac"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #if !defined(ADDRESS_SANITIZER) + const char product[] = "Chrome_Linux"; + #else diff --git a/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc b/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc new file mode 100644 index 000000000000..672123b8fdc7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc @@ -0,0 +1,33 @@ +--- chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/media/webrtc/webrtc_logging_controller.cc +@@ -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) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/public/browser/child_process_security_policy.h" + #include "storage/browser/file_system/isolated_context.h" +-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + using webrtc_event_logging::WebRtcEventLogManager; + +@@ -304,7 +304,7 @@ void WebRtcLoggingController::StartEventLogging( + web_app_id, callback); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void WebRtcLoggingController::GetLogsDirectory( + LogsDirectoryCallback callback, + LogsDirectoryErrorCallback error_callback) { +@@ -350,7 +350,7 @@ void WebRtcLoggingController::GrantLogsDirectoryAccess + FROM_HERE, + base::BindOnce(std::move(callback), file_system.id(), registered_name)); + } +-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + void WebRtcLoggingController::OnRtpPacket( + base::HeapArray<uint8_t> packet_header, diff --git a/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h b/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h new file mode 100644 index 000000000000..3eecb483d55d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h @@ -0,0 +1,20 @@ +--- chrome/browser/media/webrtc/webrtc_logging_controller.h.orig 2024-02-21 00:20:34 UTC ++++ chrome/browser/media/webrtc/webrtc_logging_controller.h +@@ -133,7 +133,7 @@ class WebRtcLoggingController + size_t web_app_id, + const StartEventLoggingCallback& callback); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // 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. +@@ -197,7 +197,7 @@ class WebRtcLoggingController + + content::BrowserContext* GetBrowserContext() const; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Grants the render process access to the 'WebRTC Logs' directory, and + // invokes |callback| with the ids necessary to create a DirectoryEntry + // object. If the |logs_path| couldn't be created or found, |error_callback| diff --git a/devel/electron36/files/patch-chrome_browser_memory__details.cc b/devel/electron36/files/patch-chrome_browser_memory__details.cc new file mode 100644 index 000000000000..f9498aff072a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_memory__details.cc @@ -0,0 +1,11 @@ +--- chrome/browser/memory_details.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/memory_details.cc +@@ -335,7 +335,7 @@ void MemoryDetails::CollectChildInfoOnUIThread() { + }); + } + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + if (content::ZygoteHost::GetInstance()->IsZygotePid(process.pid)) { + process.process_type = content::PROCESS_TYPE_ZYGOTE; + } diff --git a/devel/electron36/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc b/devel/electron36/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc new file mode 100644 index 000000000000..4a8aad4e1d69 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc @@ -0,0 +1,52 @@ +--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc +@@ -85,7 +85,7 @@ + #include "chrome/browser/flags/android/chrome_session_state.h" + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #if defined(__GLIBC__) + #include <gnu/libc-version.h> + #endif // defined(__GLIBC__) +@@ -110,7 +110,7 @@ + #include "chrome/installer/util/taskbar_util.h" + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/metrics/pressure/pressure_metrics_reporter.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -119,7 +119,7 @@ + #include "components/user_manager/user_manager.h" + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/power_metrics/system_power_monitor.h" + #endif + +@@ -873,7 +873,7 @@ void RecordStartupMetrics() { + + // Record whether Chrome is the default browser or not. + // Disabled on Linux due to hanging browser tests, see crbug.com/1216328. +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + shell_integration::DefaultWebClientState default_state = + shell_integration::GetDefaultBrowser(); + base::UmaHistogramEnumeration("DefaultBrowser.State", default_state, +@@ -1181,11 +1181,11 @@ void ChromeBrowserMainExtraPartsMetrics::PostBrowserSt + std::make_unique<web_app::SamplingMetricsProvider>(); + #endif // !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + pressure_metrics_reporter_ = std::make_unique<PressureMetricsReporter>(); + #endif // BUILDFLAG(IS_LINUX) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::trace_event::TraceLog::GetInstance()->AddEnabledStateObserver( + power_metrics::SystemPowerMonitor::GetInstance()); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h b/devel/electron36/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h new file mode 100644 index 000000000000..a8f8ae529625 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h @@ -0,0 +1,20 @@ +--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h +@@ -29,7 +29,7 @@ class ProcessMonitor; + class ProcessMonitor; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class PressureMetricsReporter; + #endif // BUILDFLAG(IS_LINUX) + +@@ -126,7 +126,7 @@ class ChromeBrowserMainExtraPartsMetrics : public Chro + std::unique_ptr<web_app::SamplingMetricsProvider> web_app_metrics_provider_; + #endif // !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Reports pressure metrics. + std::unique_ptr<PressureMetricsReporter> pressure_metrics_reporter_; + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc b/devel/electron36/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc new file mode 100644 index 000000000000..96836d5a9cde --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc @@ -0,0 +1,97 @@ +--- chrome/browser/metrics/chrome_metrics_service_client.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/metrics/chrome_metrics_service_client.cc +@@ -197,11 +197,11 @@ + #include "chrome/browser/metrics/google_update_metrics_provider_mac.h" + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "components/metrics/motherboard_metrics_provider.h" + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/metrics/chrome_metrics_service_crash_reporter.h" + #endif + +@@ -233,7 +233,7 @@ const char kCrashpadHistogramAllocatorName[] = "Crashp + // Needs to be kept in sync with the writer in + // third_party/crashpad/crashpad/handler/handler_main.cc. + const char kCrashpadHistogramAllocatorName[] = "CrashpadMetrics"; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::LazyInstance<ChromeMetricsServiceCrashReporter>::Leaky g_crash_reporter = + LAZY_INSTANCE_INITIALIZER; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) +@@ -537,7 +537,7 @@ void ChromeMetricsServiceClient::RegisterPrefs(PrefReg + #endif // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + metrics::structured::StructuredMetricsService::RegisterPrefs(registry); + + #if !BUILDFLAG(IS_CHROMEOS) +@@ -619,7 +619,7 @@ void ChromeMetricsServiceClient::OnEnvironmentUpdate(s + void ChromeMetricsServiceClient::OnEnvironmentUpdate(std::string* environment) { + // TODO(https://bugs.chromium.org/p/crashpad/issues/detail?id=135): call this + // on Mac when the Crashpad API supports it. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Register the environment with the crash reporter. Note that there is a + // window from startup to this point during which crash reports will not have + // an environment set. +@@ -721,7 +721,7 @@ void ChromeMetricsServiceClient::Initialize() { + std::make_unique<metrics::dwa::DwaService>(this, local_state); + } + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + metrics::structured::Recorder::GetInstance()->SetUiTaskRunner( + base::SequencedTaskRunner::GetCurrentDefault()); + #endif +@@ -781,7 +781,7 @@ void ChromeMetricsServiceClient::RegisterMetricsServic + metrics_service_->RegisterMetricsProvider( + std::make_unique<metrics::CPUMetricsProvider>()); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + metrics_service_->RegisterMetricsProvider( + std::make_unique<metrics::MotherboardMetricsProvider>()); + #endif +@@ -870,7 +870,7 @@ void ChromeMetricsServiceClient::RegisterMetricsServic + std::make_unique<GoogleUpdateMetricsProviderMac>()); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + metrics_service_->RegisterMetricsProvider( + std::make_unique<DesktopPlatformFeaturesMetricsProvider>()); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +@@ -974,7 +974,7 @@ void ChromeMetricsServiceClient::RegisterMetricsServic + std::make_unique<PowerMetricsProvider>()); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + metrics_service_->RegisterMetricsProvider( + metrics::CreateDesktopSessionMetricsProvider()); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) +@@ -1160,7 +1160,7 @@ bool ChromeMetricsServiceClient::RegisterForProfileEve + } + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // This creates the DesktopProfileSessionDurationsServices if it didn't exist + // already. + metrics::DesktopProfileSessionDurationsServiceFactory::GetForBrowserContext( +@@ -1509,7 +1509,7 @@ void ChromeMetricsServiceClient::CreateStructuredMetri + recorder = + base::MakeRefCounted<metrics::structured::AshStructuredMetricsRecorder>( + cros_system_profile_provider_.get()); +-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + + // Make sure that Structured Metrics recording delegates have been created + // before the service is created. This is handled in other places for ChromeOS diff --git a/devel/electron36/files/patch-chrome_browser_metrics_perf_cpu__identity.cc b/devel/electron36/files/patch-chrome_browser_metrics_perf_cpu__identity.cc new file mode 100644 index 000000000000..e71b314843c7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_metrics_perf_cpu__identity.cc @@ -0,0 +1,11 @@ +--- chrome/browser/metrics/perf/cpu_identity.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/metrics/perf/cpu_identity.cc +@@ -146,7 +146,7 @@ CPUIdentity GetCPUIdentity() { + result.release = + #if BUILDFLAG(IS_CHROMEOS) + base::SysInfo::KernelVersion(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::SysInfo::OperatingSystemVersion(); + #else + #error "Unsupported configuration" diff --git a/devel/electron36/files/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc b/devel/electron36/files/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc new file mode 100644 index 000000000000..77047374d435 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc @@ -0,0 +1,11 @@ +--- chrome/browser/metrics/power/process_metrics_recorder_util.cc.orig 2024-04-15 20:33:47 UTC ++++ chrome/browser/metrics/power/process_metrics_recorder_util.cc +@@ -65,7 +65,7 @@ void RecordProcessHistograms(const char* histogram_suf + const ProcessMonitor::Metrics& metrics) { + RecordAverageCPUUsage(histogram_suffix, metrics.cpu_usage); + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + base::UmaHistogramCounts10000( + base::StrCat({"PerformanceMonitor.IdleWakeups2.", histogram_suffix}), + metrics.idle_wakeups); diff --git a/devel/electron36/files/patch-chrome_browser_metrics_power_process__monitor.cc b/devel/electron36/files/patch-chrome_browser_metrics_power_process__monitor.cc new file mode 100644 index 000000000000..7390e7800966 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_metrics_power_process__monitor.cc @@ -0,0 +1,29 @@ +--- chrome/browser/metrics/power/process_monitor.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/metrics/power/process_monitor.cc +@@ -65,7 +65,7 @@ ProcessMonitor::Metrics SampleMetrics(base::ProcessMet + process_metrics.GetPlatformIndependentCPUUsage()); + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + metrics.idle_wakeups = process_metrics.GetIdleWakeupsPerSecond(); + #endif + #if BUILDFLAG(IS_MAC) +@@ -83,7 +83,7 @@ void ScaleMetrics(ProcessMonitor::Metrics* metrics, do + } + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + metrics->idle_wakeups *= factor; + #endif + +@@ -157,7 +157,7 @@ ProcessMonitor::Metrics& operator+=(ProcessMonitor::Me + } + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + lhs.idle_wakeups += rhs.idle_wakeups; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_metrics_power_process__monitor.h b/devel/electron36/files/patch-chrome_browser_metrics_power_process__monitor.h new file mode 100644 index 000000000000..718da081e685 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_metrics_power_process__monitor.h @@ -0,0 +1,11 @@ +--- chrome/browser/metrics/power/process_monitor.h.orig 2024-04-15 20:33:47 UTC ++++ chrome/browser/metrics/power/process_monitor.h +@@ -76,7 +76,7 @@ class ProcessMonitor : public content::BrowserChildPro + std::optional<double> cpu_usage; + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // Returns the number of average idle cpu wakeups per second since the last + // time the metric was sampled. + int idle_wakeups = 0; diff --git a/devel/electron36/files/patch-chrome_browser_net_profile__network__context__service.cc b/devel/electron36/files/patch-chrome_browser_net_profile__network__context__service.cc new file mode 100644 index 000000000000..355e0843e6bb --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_net_profile__network__context__service.cc @@ -0,0 +1,29 @@ +--- chrome/browser/net/profile_network_context_service.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/net/profile_network_context_service.cc +@@ -135,7 +135,7 @@ + #include "extensions/common/constants.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 "chrome/browser/enterprise/client_certificates/certificate_provisioning_service_factory.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" + #include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h" +@@ -276,7 +276,7 @@ void UpdateCookieSettings(Profile* profile, ContentSet + }); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<net::ClientCertStore> GetWrappedCertStore( + Profile* profile, + std::unique_ptr<net::ClientCertStore> platform_store) { +@@ -1228,7 +1228,7 @@ ProfileNetworkContextService::CreateClientCertStore() + std::make_unique<net::ClientCertStoreNSS>( + base::BindRepeating(&CreateCryptoModuleBlockingPasswordDelegate, + kCryptoModulePasswordClientAuth)); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return GetWrappedCertStore(profile_, std::move(store)); + #else + return store; diff --git a/devel/electron36/files/patch-chrome_browser_net_profile__network__context__service__factory.cc b/devel/electron36/files/patch-chrome_browser_net_profile__network__context__service__factory.cc new file mode 100644 index 000000000000..409c035527e7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_net_profile__network__context__service__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/net/profile_network_context_service_factory.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/net/profile_network_context_service_factory.cc +@@ -24,7 +24,7 @@ + #include "chrome/browser/net/server_certificate_database_service_factory.h" // nogncheck + #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 "chrome/browser/enterprise/client_certificates/certificate_provisioning_service_factory.h" + #endif + +@@ -68,7 +68,7 @@ ProfileNetworkContextServiceFactory::ProfileNetworkCon + #if BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI) + DependsOn(net::ServerCertificateDatabaseServiceFactory::GetInstance()); + #endif +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + DependsOn(client_certificates::CertificateProvisioningServiceFactory:: + GetInstance()); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_net_system__network__context__manager.cc b/devel/electron36/files/patch-chrome_browser_net_system__network__context__manager.cc new file mode 100644 index 000000000000..ed550ae8b612 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_net_system__network__context__manager.cc @@ -0,0 +1,138 @@ +--- chrome/browser/net/system_network_context_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/net/system_network_context_manager.cc +@@ -135,7 +135,7 @@ bool g_previously_failed_to_launch_sandboxed_service = + // received a failed launch for a sandboxed network service. + bool g_previously_failed_to_launch_sandboxed_service = false; + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Whether kerberos library loading will work in the network service due to the + // sandbox. + bool g_network_service_will_allow_gssapi_library_load = false; +@@ -143,7 +143,7 @@ const char* kGssapiDesiredPref = + const char* kGssapiDesiredPref = + #if BUILDFLAG(IS_CHROMEOS) + prefs::kKerberosEnabled; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + prefs::kReceivedHttpAuthNegotiateHeader; + #endif + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) +@@ -189,7 +189,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) +@@ -204,7 +204,7 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAut + local_state->GetString(prefs::kAuthAndroidNegotiateAccountType); + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auth_dynamic_params->allow_gssapi_library_load = + local_state->GetBoolean(kGssapiDesiredPref); + #endif // BUILDFLAG(IS_CHROMEOS) +@@ -214,7 +214,7 @@ void OnNewHttpAuthDynamicParams( + + void OnNewHttpAuthDynamicParams( + network::mojom::HttpAuthDynamicParamsPtr& params) { +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The kerberos library is incompatible with the network service sandbox, so + // if library loading is now enabled, the network service needs to be + // restarted. It will be restarted unsandboxed because is +@@ -256,11 +256,11 @@ 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 + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The network service sandbox and the kerberos library are incompatible. + // If kerberos is enabled by policy, disable the network service sandbox. + if (g_network_service_will_allow_gssapi_library_load || +@@ -276,7 +276,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) +@@ -522,7 +522,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) {} +@@ -580,7 +580,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) +@@ -594,7 +594,7 @@ SystemNetworkContextManager::SystemNetworkContextManag + auth_pref_callback); + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + pref_change_registrar_.Add(kGssapiDesiredPref, auth_pref_callback); + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + +@@ -659,7 +659,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRe + registry->RegisterStringPref(prefs::kAuthNegotiateDelegateAllowlist, + std::string()); + +-#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) +@@ -684,11 +684,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) + +@@ -741,7 +741,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) + +@@ -960,7 +960,7 @@ bool SystemNetworkContextManager::IsNetworkSandboxEnab + break; + } + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!enabled) { + g_network_service_will_allow_gssapi_library_load = true; + } diff --git a/devel/electron36/files/patch-chrome_browser_net_system__network__context__manager.h b/devel/electron36/files/patch-chrome_browser_net_system__network__context__manager.h new file mode 100644 index 000000000000..b841982a2dfb --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_net_system__network__context__manager.h @@ -0,0 +1,20 @@ +--- chrome/browser/net/system_network_context_manager.h.orig 2024-10-16 21:30:58 UTC ++++ chrome/browser/net/system_network_context_manager.h +@@ -198,7 +198,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: +@@ -279,7 +279,7 @@ class SystemNetworkContextManager { + std::unique_ptr<NetworkAnnotationMonitor> network_annotation_monitor_; + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + GssapiLibraryLoadObserver gssapi_library_loader_observer_{this}; + #endif // BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc b/devel/electron36/files/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc new file mode 100644 index 000000000000..fb1ff7bd9d46 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc @@ -0,0 +1,11 @@ +--- chrome/browser/new_tab_page/modules/file_suggestion/drive_service.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/new_tab_page/modules/file_suggestion/drive_service.cc +@@ -35,7 +35,7 @@ namespace { + #include "services/network/public/cpp/resource_request.h" + + namespace { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr char kPlatform[] = "LINUX"; + #elif BUILDFLAG(IS_WIN) + constexpr char kPlatform[] = "WINDOWS"; diff --git a/devel/electron36/files/patch-chrome_browser_new__tab__page_new__tab__page__util.cc b/devel/electron36/files/patch-chrome_browser_new__tab__page_new__tab__page__util.cc new file mode 100644 index 000000000000..38a8a3bccbb1 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_new__tab__page_new__tab__page__util.cc @@ -0,0 +1,11 @@ +--- chrome/browser/new_tab_page/new_tab_page_util.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/new_tab_page/new_tab_page_util.cc +@@ -28,7 +28,7 @@ bool IsOsSupportedForDrive() { + } + + bool IsOsSupportedForDrive() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron36/files/patch-chrome_browser_notifications_notification__display__service__impl.cc b/devel/electron36/files/patch-chrome_browser_notifications_notification__display__service__impl.cc new file mode 100644 index 000000000000..ce7b22790d15 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_notifications_notification__display__service__impl.cc @@ -0,0 +1,38 @@ +--- chrome/browser/notifications/notification_display_service_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/notifications/notification_display_service_impl.cc +@@ -31,7 +31,7 @@ + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/send_tab_to_self/desktop_notification_handler.h" + #include "chrome/browser/sharing/sharing_notification_handler.h" + #endif +@@ -60,7 +60,7 @@ void NotificationDisplayServiceImpl::RegisterProfilePr + // static + void NotificationDisplayServiceImpl::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kAllowSystemNotifications, true); + #endif + } +@@ -76,7 +76,7 @@ NotificationDisplayServiceImpl::NotificationDisplaySer + std::make_unique<PersistentNotificationHandler>()); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + AddNotificationHandler( + NotificationHandler::Type::SEND_TAB_TO_SELF, + std::make_unique<send_tab_to_self::DesktopNotificationHandler>( +@@ -84,7 +84,7 @@ NotificationDisplayServiceImpl::NotificationDisplaySer + #endif + + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN)) && \ ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(SAFE_BROWSING_AVAILABLE) + AddNotificationHandler( + NotificationHandler::Type::TAILORED_SECURITY, diff --git a/devel/electron36/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc b/devel/electron36/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc new file mode 100644 index 000000000000..548381805436 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc @@ -0,0 +1,11 @@ +--- chrome/browser/notifications/notification_platform_bridge_delegator.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/notifications/notification_platform_bridge_delegator.cc +@@ -55,7 +55,7 @@ bool SystemNotificationsEnabled(Profile* profile) { + #elif BUILDFLAG(IS_WIN) + return NotificationPlatformBridgeWin::SystemNotificationEnabled(); + #else +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (profile) { + // Prefs take precedence over flags. + PrefService* prefs = profile->GetPrefs(); diff --git a/devel/electron36/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc b/devel/electron36/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc new file mode 100644 index 000000000000..feabc1e7a683 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc @@ -0,0 +1,20 @@ +--- chrome/browser/password_manager/chrome_password_manager_client.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/password_manager/chrome_password_manager_client.cc +@@ -638,7 +638,7 @@ bool ChromePasswordManagerClient::IsReauthBeforeFillin + bool ChromePasswordManagerClient::IsReauthBeforeFillingRequired( + device_reauth::DeviceAuthenticator* authenticator) { + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (!GetLocalStatePrefs() || !GetPrefs() || !authenticator) { + return false; + } +@@ -916,7 +916,7 @@ void ChromePasswordManagerClient::NotifyKeychainError( + } + + void ChromePasswordManagerClient::NotifyKeychainError() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + PasswordsClientUIDelegate* manage_passwords_ui_controller = + PasswordsClientUIDelegateFromWebContents(web_contents()); + if (manage_passwords_ui_controller) { diff --git a/devel/electron36/files/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc b/devel/electron36/files/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc new file mode 100644 index 000000000000..7c2dab2c2c45 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc @@ -0,0 +1,11 @@ +--- chrome/browser/password_manager/password_reuse_manager_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/password_manager/password_reuse_manager_factory.cc +@@ -137,7 +137,7 @@ PasswordReuseManagerFactory::BuildServiceInstanceForBr + // Prepare password hash data for reuse detection. + reuse_manager->PreparePasswordHashData(GetSignInStateForMetrics(profile)); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<password_manager::PasswordReuseManagerSigninNotifier> + notifier = std::make_unique< + password_manager::PasswordReuseManagerSigninNotifierImpl>( diff --git a/devel/electron36/files/patch-chrome_browser_platform__util__linux.cc b/devel/electron36/files/patch-chrome_browser_platform__util__linux.cc new file mode 100644 index 000000000000..9c976315fb87 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_platform__util__linux.cc @@ -0,0 +1,12 @@ +--- chrome/browser/platform_util_linux.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/platform_util_linux.cc +@@ -302,7 +302,9 @@ void OnLaunchOptionsCreated(const std::string& command + argv.push_back(command); + argv.push_back(arg); + options.current_directory = working_directory; ++#if !BUILDFLAG(IS_BSD) + options.allow_new_privs = true; ++#endif + // xdg-open can fall back on mailcap which eventually might plumb through + // to a command that needs a terminal. Set the environment variable telling + // it that we definitely don't have a terminal available and that it should diff --git a/devel/electron36/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc b/devel/electron36/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc new file mode 100644 index 000000000000..c423fdd7f157 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc @@ -0,0 +1,11 @@ +--- chrome/browser/policy/browser_signin_policy_handler.cc.orig 2022-10-24 13:33:33 UTC ++++ chrome/browser/policy/browser_signin_policy_handler.cc +@@ -45,7 +45,7 @@ void BrowserSigninPolicyHandler::ApplyPolicySettings(c + policies.GetValue(policy_name(), base::Value::Type::INTEGER); + switch (static_cast<BrowserSigninMode>(value->GetInt())) { + case BrowserSigninMode::kForced: +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + prefs->SetValue(prefs::kForceBrowserSignin, base::Value(true)); + #endif + [[fallthrough]]; diff --git a/devel/electron36/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc b/devel/electron36/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc new file mode 100644 index 000000000000..3781abb0eac2 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc @@ -0,0 +1,47 @@ +--- chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc +@@ -60,7 +60,7 @@ + #include "chrome/browser/policy/browser_dm_token_storage_mac.h" + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/policy/browser_dm_token_storage_linux.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -69,7 +69,7 @@ + #include "chrome/install_static/install_util.h" + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/client_certificates/browser_context_delegate.h" + #include "chrome/browser/enterprise/client_certificates/cert_utils.h" + #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h" +@@ -115,7 +115,7 @@ void ChromeBrowserCloudManagementControllerDesktop:: + + #if BUILDFLAG(IS_MAC) + storage_delegate = std::make_unique<BrowserDMTokenStorageMac>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + storage_delegate = std::make_unique<BrowserDMTokenStorageLinux>(); + #elif BUILDFLAG(IS_WIN) + storage_delegate = std::make_unique<BrowserDMTokenStorageWin>(); +@@ -286,7 +286,7 @@ ChromeBrowserCloudManagementControllerDesktop::CreateD + + std::unique_ptr<enterprise_connectors::DeviceTrustKeyManager> + ChromeBrowserCloudManagementControllerDesktop::CreateDeviceTrustKeyManager() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + auto* browser_dm_token_storage = BrowserDMTokenStorage::Get(); + auto* device_management_service = GetDeviceManagementService(); + auto shared_url_loader_factory = GetSharedURLLoaderFactory(); +@@ -308,7 +308,7 @@ ChromeBrowserCloudManagementControllerDesktop:: + std::unique_ptr<client_certificates::CertificateProvisioningService> + ChromeBrowserCloudManagementControllerDesktop:: + CreateCertificateProvisioningService() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (!certificate_store_) { + certificate_store_ = + std::make_unique<client_certificates::PrefsCertificateStore>( diff --git a/devel/electron36/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc b/devel/electron36/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc new file mode 100644 index 000000000000..f19b9ece199a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc @@ -0,0 +1,254 @@ +--- chrome/browser/policy/configuration_policy_handler_list_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/policy/configuration_policy_handler_list_factory.cc +@@ -255,19 +255,19 @@ + #include "components/spellcheck/browser/pref_names.h" + #endif // BUILDFLAG(ENABLE_SPELLCHECK) + +-#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/idle/action.h" + #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h" + #include "components/device_signals/core/browser/pref_names.h" // nogncheck due to crbug.com/1125897 + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include "components/enterprise/idle/idle_timeout_policy_handler.h" + #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) + #include "chrome/browser/privacy_sandbox/privacy_sandbox_policy_handler.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) +@@ -281,13 +281,13 @@ + #endif // BUILDFLAG(ENTERPRISE_CLIENT_CERTIFICATES) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/policy/battery_saver_policy_handler.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/search_engines/enterprise/search_aggregator_policy_handler.h" + #include "components/search_engines/enterprise/site_search_policy_handler.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || +@@ -592,7 +592,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + { key::kDefaultDirectSocketsSetting, + prefs::kManagedDefaultDirectSocketsSetting, + base::Value::Type::INTEGER }, +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + { key::kDeletingUndecryptablePasswordsEnabled, + password_manager::prefs::kDeletingUndecryptablePasswordsEnabled, + base::Value::Type::BOOLEAN }, +@@ -957,7 +957,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + prefs::kManagedDefaultGeolocationSetting, + base::Value::Type::INTEGER }, + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) \ +- || BUILDFLAG(IS_MAC) ++ || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + { key::kRequireOnlineRevocationChecksForLocalAnchors, + prefs::kCertRevocationCheckingRequiredLocalAnchors, + base::Value::Type::BOOLEAN }, +@@ -966,7 +966,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::BOOLEAN }, + #endif // #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + // || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + { key::kFullscreenAllowed, + prefs::kFullscreenAllowed, + base::Value::Type::BOOLEAN }, +@@ -1842,7 +1842,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::INTEGER}, + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + { key::kGSSAPILibraryName, + prefs::kGSSAPILibraryName, + base::Value::Type::STRING }, +@@ -1901,7 +1901,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::BOOLEAN }, + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + { key::kNetworkServiceSandboxEnabled, + prefs::kNetworkServiceSandboxEnabled, + base::Value::Type::BOOLEAN }, +@@ -1921,12 +1921,12 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + prefs::kTotalMemoryLimitMb, + base::Value::Type::INTEGER }, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + { key::kBackgroundModeEnabled, + prefs::kBackgroundModeEnabled, + base::Value::Type::BOOLEAN }, + #endif // BUILDFLAG(IS_WIN) || 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) + { key::kUnmanagedDeviceSignalsConsentFlowEnabled, + device_signals::prefs::kUnmanagedDeviceSignalsConsentFlowEnabled, + base::Value::Type::BOOLEAN }, +@@ -1937,7 +1937,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + prefs::kLiveTranslateEnabled, + base::Value::Type::BOOLEAN }, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || 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) + { key::kDefaultBrowserSettingEnabled, + prefs::kDefaultBrowserSettingEnabled, + base::Value::Type::BOOLEAN }, +@@ -1949,7 +1949,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::BOOLEAN }, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) \ +- || BUILDFLAG(IS_CHROMEOS) ++ || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + { key::kAutoplayAllowed, + prefs::kAutoplayAllowed, + base::Value::Type::BOOLEAN }, +@@ -2050,7 +2050,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::BOOLEAN }, + #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + { key::kAlternativeBrowserPath, + browser_switcher::prefs::kAlternativeBrowserPath, + base::Value::Type::STRING }, +@@ -2155,7 +2155,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::BOOLEAN }, + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + { key::kAuthNegotiateDelegateByKdcPolicy, + prefs::kAuthNegotiateDelegateByKdcPolicy, + base::Value::Type::BOOLEAN }, +@@ -2226,7 +2226,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + ash::prefs::kUrlParameterToAutofillSAMLUsername, + base::Value::Type::STRING }, + #endif // BUILDFLAG(IS_CHROMEOS) +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + { key::kTabDiscardingExceptions, + performance_manager::user_tuning::prefs::kManagedTabDiscardingExceptions, + base::Value::Type::LIST }, +@@ -2255,7 +2255,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + prefs::kUiAutomationProviderEnabled, + base::Value::Type::BOOLEAN }, + #endif // BUILDFLAG(IS_WIN) +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + { key::kOutOfProcessSystemDnsResolutionEnabled, + prefs::kOutOfProcessSystemDnsResolutionEnabled, + base::Value::Type::BOOLEAN }, +@@ -2298,7 +2298,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::INTEGER }, + #endif + #if BUILDFLAG(ENABLE_EXTENSIONS) +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + { key::kExtensionInstallTypeBlocklist, + extensions::pref_names::kExtensionInstallTypeBlocklist, + base::Value::Type::LIST}, +@@ -2324,7 +2324,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + { key::kTabCompareSettings, + optimization_guide::prefs::kProductSpecificationsEnterprisePolicyAllowed, + base::Value::Type::INTEGER}, +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + { key::kChromeForTestingAllowed, + prefs::kChromeForTestingAllowed, + base::Value::Type::BOOLEAN }, +@@ -2513,7 +2513,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + // Policies for all platforms - End + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + handlers->AddHandler(std::make_unique<IntRangePolicyHandler>( + key::kMemorySaverModeSavings, + performance_manager::user_tuning::prefs::kMemorySaverModeAggressiveness, +@@ -2734,7 +2734,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + #endif // !BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + handlers->AddHandler( + std::make_unique<enterprise_idle::IdleTimeoutPolicyHandler>()); + handlers->AddHandler( +@@ -2793,7 +2793,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + key::kBrowsingDataLifetime, browsing_data::prefs::kBrowsingDataLifetime, + chrome_schema)); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + handlers->AddHandler(std::make_unique<GuestModePolicyHandler>()); + handlers->AddHandler(std::make_unique<LocalSyncPolicyHandler>()); + handlers->AddHandler(std::make_unique<ThemeColorPolicyHandler>()); +@@ -2890,7 +2890,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + std::vector<std::unique_ptr<ConfigurationPolicyHandler>> + signin_legacy_policies; + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_LINUX) ++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + signin_legacy_policies.push_back(std::make_unique<SimplePolicyHandler>( + key::kForceBrowserSignin, prefs::kForceBrowserSignin, + base::Value::Type::BOOLEAN)); +@@ -3262,7 +3262,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + #endif + + #if BUILDFLAG(ENABLE_SPELLCHECK) +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + handlers->AddHandler(std::make_unique<SpellcheckLanguagePolicyHandler>()); + handlers->AddHandler( + std::make_unique<SpellcheckLanguageBlocklistPolicyHandler>( +@@ -3270,7 +3270,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) + #endif // BUILDFLAG(ENABLE_SPELLCHECK) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + handlers->AddHandler(std::make_unique<SimplePolicyHandler>( + key::kAllowSystemNotifications, prefs::kAllowSystemNotifications, + base::Value::Type::BOOLEAN)); +@@ -3288,7 +3288,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + first_party_sets::FirstPartySetsOverridesPolicyHandler>( + key::kRelatedWebsiteSetsOverrides, chrome_schema))); + #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) + handlers->AddHandler(std::make_unique<PrivacySandboxPolicyHandler>()); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) +@@ -3311,7 +3311,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + base::Value::Type::BOOLEAN))); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + handlers->AddHandler(std::make_unique<BatterySaverPolicyHandler>()); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) +@@ -3329,7 +3329,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + std::vector<GenAiDefaultSettingsPolicyHandler::GenAiPolicyDetails> + gen_ai_default_policies; + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + gen_ai_default_policies.emplace_back( + key::kAutofillPredictionSettings, + optimization_guide::prefs:: diff --git a/devel/electron36/files/patch-chrome_browser_policy_device__management__service__configuration.cc b/devel/electron36/files/patch-chrome_browser_policy_device__management__service__configuration.cc new file mode 100644 index 000000000000..1a0ebf7e58d7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_policy_device__management__service__configuration.cc @@ -0,0 +1,11 @@ +--- chrome/browser/policy/device_management_service_configuration.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/policy/device_management_service_configuration.cc +@@ -22,7 +22,7 @@ + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ + ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ +- !BUILDFLAG(IS_ANDROID)) ++ !BUILDFLAG(IS_ANDROID)) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/common.h" + #include "chrome/browser/enterprise/connectors/connectors_service.h" + #endif diff --git a/devel/electron36/files/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc b/devel/electron36/files/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc new file mode 100644 index 000000000000..b1462d5ce732 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc @@ -0,0 +1,11 @@ +--- chrome/browser/policy/policy_value_and_status_aggregator.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/policy/policy_value_and_status_aggregator.cc +@@ -49,7 +49,7 @@ + #include "chrome/browser/policy/value_provider/extension_policies_value_provider.h" + #endif // BUILDFLAG(ENABLE_EXTENSIONS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "components/policy/core/common/cloud/profile_cloud_policy_manager.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chrome_browser_prefs_browser__prefs.cc b/devel/electron36/files/patch-chrome_browser_prefs_browser__prefs.cc new file mode 100644 index 000000000000..8639d4794c57 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_prefs_browser__prefs.cc @@ -0,0 +1,67 @@ +--- chrome/browser/prefs/browser_prefs.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/prefs/browser_prefs.cc +@@ -316,7 +316,7 @@ + #include "chrome/browser/devtools/devtools_window.h" + #endif // !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) + +-#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/ui/webui/whats_new/whats_new_ui.h" + #endif + +@@ -487,11 +487,11 @@ + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/device_signals/core/browser/pref_names.h" // nogncheck due to crbug.com/1125897 + #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 "chrome/browser/browser_switcher/browser_switcher_prefs.h" + #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h" + #endif +@@ -519,7 +519,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 + +@@ -1664,7 +1664,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) + on_device_translation::RegisterLocalStatePrefs(registry); + #endif // BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + WhatsNewUI::RegisterLocalStatePrefs(registry); + #endif + +@@ -1821,7 +1821,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) + #endif // BUILDFLAG(ENABLE_PDF) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kChromeForTestingAllowed, true); + #endif + +@@ -2177,12 +2177,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + device_signals::RegisterProfilePrefs(registry); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) + +-#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); + enterprise_signin::RegisterProfilePrefs(registry); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc b/devel/electron36/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc new file mode 100644 index 000000000000..95007c4bcf46 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc @@ -0,0 +1,11 @@ +--- chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/prefs/pref_service_incognito_allowlist.cc +@@ -203,7 +203,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/devel/electron36/files/patch-chrome_browser_printing_print__backend__service__manager.cc b/devel/electron36/files/patch-chrome_browser_printing_print__backend__service__manager.cc new file mode 100644 index 000000000000..fbc8f3a5bbf8 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_printing_print__backend__service__manager.cc @@ -0,0 +1,29 @@ +--- chrome/browser/printing/print_backend_service_manager.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/printing/print_backend_service_manager.cc +@@ -36,7 +36,7 @@ + #include "printing/printing_context.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 + +@@ -883,7 +883,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()); +@@ -1060,7 +1060,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 std::nullopt; diff --git a/devel/electron36/files/patch-chrome_browser_printing_printer__query.cc b/devel/electron36/files/patch-chrome_browser_printing_printer__query.cc new file mode 100644 index 000000000000..bb8cd7f2e386 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_printing_printer__query.cc @@ -0,0 +1,11 @@ +--- chrome/browser/printing/printer_query.cc.orig 2025-05-11 11:50:45 UTC ++++ chrome/browser/printing/printer_query.cc +@@ -342,7 +342,7 @@ void PrinterQuery::UpdatePrintSettings(base::Value::Di + crash_key = std::make_unique<crash_keys::ScopedPrinterInfo>( + printer_name, 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/devel/electron36/files/patch-chrome_browser_process__singleton__posix.cc b/devel/electron36/files/patch-chrome_browser_process__singleton__posix.cc new file mode 100644 index 000000000000..4d59611ece45 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_process__singleton__posix.cc @@ -0,0 +1,11 @@ +--- chrome/browser/process_singleton_posix.cc.orig 2024-10-28 21:05:17 UTC ++++ chrome/browser/process_singleton_posix.cc +@@ -364,7 +364,7 @@ bool DisplayProfileInUseError(const base::FilePath& lo + if (g_disable_prompt) + return g_user_opted_unlock_in_use_profile; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::u16string relaunch_button_text = + l10n_util::GetStringUTF16(IDS_PROFILE_IN_USE_LINUX_RELAUNCH); + return ShowProcessSingletonDialog(error, relaunch_button_text); diff --git a/devel/electron36/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc b/devel/electron36/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc new file mode 100644 index 000000000000..a2b20dc514f6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc @@ -0,0 +1,139 @@ +--- chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +@@ -358,7 +358,7 @@ + #endif + + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/idle/idle_service_factory.h" + #endif + +@@ -400,7 +400,7 @@ + #endif + + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.h" + #include "chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.h" + #include "chrome/browser/enterprise/signals/user_permission_service_factory.h" +@@ -408,7 +408,7 @@ + #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_utils.h" + #endif + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/policy/messaging_layer/util/manual_test_heartbeat_event_factory.h" + #endif + +@@ -416,7 +416,7 @@ + #include "chrome/browser/history_embeddings/history_embeddings_service_factory.h" + #endif + +-#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/browser_switcher/browser_switcher_service_factory.h" + #include "chrome/browser/enterprise/client_certificates/certificate_provisioning_service_factory.h" + #include "chrome/browser/enterprise/client_certificates/certificate_store_factory.h" +@@ -730,7 +730,7 @@ void ChromeBrowserMainExtraPartsProfiles:: + DiceBoundSessionCookieServiceFactory::GetInstance(); + #endif + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + browser_switcher::BrowserSwitcherServiceFactory::GetInstance(); + #endif + browser_sync::UserEventServiceFactory::GetInstance(); +@@ -787,7 +787,7 @@ void ChromeBrowserMainExtraPartsProfiles:: + commerce::ShoppingServiceFactory::GetInstance(); + ConsentAuditorFactory::GetInstance(); + ContentIndexProviderFactory::GetInstance(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + contextual_cueing::ContextualCueingServiceFactory::GetInstance(); + #endif + CookieControlsServiceFactory::GetInstance(); +@@ -843,31 +843,31 @@ void ChromeBrowserMainExtraPartsProfiles:: + enterprise_connectors::ConnectorsServiceFactory::GetInstance(); + enterprise_connectors::ReportingEventRouterFactory::GetInstance(); + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + enterprise_connectors::DeviceTrustConnectorServiceFactory::GetInstance(); + enterprise_connectors::DeviceTrustServiceFactory::GetInstance(); + #endif +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(ENTERPRISE_LOCAL_CONTENT_ANALYSIS) && \ + BUILDFLAG(SAFE_BROWSING_AVAILABLE) + enterprise_connectors::LocalBinaryUploadServiceFactory::GetInstance(); + #endif + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + enterprise_idle::IdleServiceFactory::GetInstance(); + #endif + #if !BUILDFLAG(IS_CHROMEOS) + enterprise_reporting::CloudProfileReportingServiceFactory::GetInstance(); + #endif + enterprise_reporting::LegacyTechServiceFactory::GetInstance(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + enterprise_signals::SignalsAggregatorFactory::GetInstance(); + #endif + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + enterprise_signals::UserPermissionServiceFactory::GetInstance(); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + enterprise_signin::EnterpriseSigninServiceFactory::GetInstance(); + #endif + #if BUILDFLAG(ENABLE_SESSION_SERVICE) +@@ -995,7 +995,7 @@ void ChromeBrowserMainExtraPartsProfiles:: + #if BUILDFLAG(IS_ANDROID) + MerchantViewerDataManagerFactory::GetInstance(); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + metrics::DesktopProfileSessionDurationsServiceFactory::GetInstance(); + #endif + #if !BUILDFLAG(IS_ANDROID) +@@ -1111,7 +1111,7 @@ void ChromeBrowserMainExtraPartsProfiles:: + #if BUILDFLAG(IS_CHROMEOS) + policy::PolicyCertServiceFactory::GetInstance(); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + policy::ProfileTokenPolicyWebSigninServiceFactory::GetInstance(); + policy::UserPolicyOidcSigninServiceFactory::GetInstance(); + #endif +@@ -1157,7 +1157,7 @@ void ChromeBrowserMainExtraPartsProfiles:: + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) + ProfileStatisticsFactory::GetInstance(); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + ProfileTokenWebSigninInterceptorFactory::GetInstance(); + OidcAuthenticationSigninInterceptorFactory::GetInstance(); + #endif +@@ -1177,7 +1177,7 @@ void ChromeBrowserMainExtraPartsProfiles:: + ReduceAcceptLanguageFactory::GetInstance(); + RendererUpdaterFactory::GetInstance(); + regional_capabilities::RegionalCapabilitiesServiceFactory::GetInstance(); +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + reporting::ManualTestHeartbeatEventFactory::GetInstance(); + #endif + #if !BUILDFLAG(IS_ANDROID) +@@ -1368,7 +1368,7 @@ void ChromeBrowserMainExtraPartsProfiles:: + WebDataServiceFactory::GetInstance(); + webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (tab_groups::SavedTabGroupUtils::SupportsSharedTabGroups()) { + tab_groups::CollaborationMessagingObserverFactory::GetInstance(); + } diff --git a/devel/electron36/files/patch-chrome_browser_profiles_profile__impl.cc b/devel/electron36/files/patch-chrome_browser_profiles_profile__impl.cc new file mode 100644 index 000000000000..b481a6aa4d18 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_profiles_profile__impl.cc @@ -0,0 +1,40 @@ +--- chrome/browser/profiles/profile_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/profiles/profile_impl.cc +@@ -270,6 +270,10 @@ + #include "chrome/browser/safe_browsing/safe_browsing_service.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#endif ++ + using bookmarks::BookmarkModel; + using content::BrowserThread; + using content::DownloadManagerDelegate; +@@ -594,7 +598,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async + policy_provider = GetUserCloudPolicyManagerAsh(); + #else // !BUILDFLAG(IS_CHROMEOS) + { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ProfileManager* profile_manager = g_browser_process->profile_manager(); + ProfileAttributesEntry* entry = + profile_manager->GetProfileAttributesStorage() +@@ -890,7 +894,17 @@ base::FilePath ProfileImpl::last_selected_directory() + } + + base::FilePath ProfileImpl::last_selected_directory() { ++#if BUILDFLAG(IS_OPENBSD) ++ // If unveil(2) is used, force the file dialog directory to something we ++ // know is available. ++ auto* sandbox = sandbox::policy::SandboxLinux::GetInstance(); ++ if (sandbox->unveil_initialized()) ++ return GetPrefs()->GetFilePath(prefs::kDownloadDefaultDirectory); ++ else ++ return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory); ++#else + return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory); ++#endif + } + + void ProfileImpl::set_last_selected_directory(const base::FilePath& path) { diff --git a/devel/electron36/files/patch-chrome_browser_profiles_profiles__state.cc b/devel/electron36/files/patch-chrome_browser_profiles_profiles__state.cc new file mode 100644 index 000000000000..ae1dac1dd986 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_profiles_profiles__state.cc @@ -0,0 +1,29 @@ +--- chrome/browser/profiles/profiles_state.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/profiles/profiles_state.cc +@@ -188,7 +188,7 @@ bool IsGuestModeRequested(const base::CommandLine& com + PrefService* local_state, + bool show_warning) { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + DCHECK(local_state); + + // Check if guest mode enforcement commandline switch or policy are provided. +@@ -224,7 +224,7 @@ bool IsGuestModeEnabled() { + return false; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // If there are any supervised profiles, disable guest mode. + if (std::ranges::any_of(g_browser_process->profile_manager() + ->GetProfileAttributesStorage() +@@ -240,7 +240,7 @@ bool IsGuestModeEnabled(const Profile& profile) { + } + + bool IsGuestModeEnabled(const Profile& profile) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + ProfileAttributesEntry* profile_attributes = + g_browser_process->profile_manager() + ->GetProfileAttributesStorage() diff --git a/devel/electron36/files/patch-chrome_browser_regional__capabilities_regional__capabilities__service__client.cc b/devel/electron36/files/patch-chrome_browser_regional__capabilities_regional__capabilities__service__client.cc new file mode 100644 index 000000000000..c66090fa1cd7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_regional__capabilities_regional__capabilities__service__client.cc @@ -0,0 +1,11 @@ +--- chrome/browser/regional_capabilities/regional_capabilities_service_client.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/regional_capabilities/regional_capabilities_service_client.cc +@@ -107,7 +107,7 @@ void RegionalCapabilitiesServiceClient::FetchCountryId + base::android::AttachCurrentThread(), + reinterpret_cast<intptr_t>(heap_callback.release())); + } +-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void RegionalCapabilitiesServiceClient::FetchCountryId( + CountryIdCallback on_country_id_fetched) { + std::move(on_country_id_fetched).Run(variations_latest_country_id_); diff --git a/devel/electron36/files/patch-chrome_browser_renderer__preferences__util.cc b/devel/electron36/files/patch-chrome_browser_renderer__preferences__util.cc new file mode 100644 index 000000000000..971f2fd04dfd --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_renderer__preferences__util.cc @@ -0,0 +1,29 @@ +--- chrome/browser/renderer_preferences_util.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/renderer_preferences_util.cc +@@ -40,7 +40,7 @@ + #include "ui/views/controls/textfield/textfield.h" + #endif + +-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + #include "chrome/browser/themes/theme_service.h" + #include "chrome/browser/themes/theme_service_factory.h" + #include "ui/linux/linux_ui.h" +@@ -180,7 +180,7 @@ void UpdateFromSystemSettings(blink::RendererPreferenc + prefs->caret_blink_interval = views::Textfield::GetCaretBlinkInterval(); + #endif + +-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile); + if (linux_ui_theme) { + if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) { +@@ -203,7 +203,7 @@ void UpdateFromSystemSettings(blink::RendererPreferenc + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + content::UpdateFontRendererPreferencesFromSystemSettings(prefs); + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css b/devel/electron36/files/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css new file mode 100644 index 000000000000..8df7a08eb462 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css @@ -0,0 +1,11 @@ +--- chrome/browser/resources/settings/autofill_page/passwords_shared.css.orig 2022-10-24 13:33:33 UTC ++++ chrome/browser/resources/settings/autofill_page/passwords_shared.css +@@ -100,7 +100,7 @@ cr-input.password-input::part(input), + * necessary to prevent Chrome from using the operating system's font + * instead of the Material Design font. + * TODO(dbeam): why not font: inherit? */ +-<if expr="is_linux or is_chromeos"> ++<if expr="is_posix or is_chromeos"> + font-family: 'DejaVu Sans Mono', monospace; + </if> + <if expr="is_win"> diff --git a/devel/electron36/files/patch-chrome_browser_resources_signin_signin__shared.css b/devel/electron36/files/patch-chrome_browser_resources_signin_signin__shared.css new file mode 100644 index 000000000000..1531cc39292f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_resources_signin_signin__shared.css @@ -0,0 +1,11 @@ +--- chrome/browser/resources/signin/signin_shared.css.orig 2022-11-30 08:12:58 UTC ++++ 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/devel/electron36/files/patch-chrome_browser_safe__browsing_chrome__password__protection__service.cc b/devel/electron36/files/patch-chrome_browser_safe__browsing_chrome__password__protection__service.cc new file mode 100644 index 000000000000..8a980e213201 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_safe__browsing_chrome__password__protection__service.cc @@ -0,0 +1,11 @@ +--- chrome/browser/safe_browsing/chrome_password_protection_service.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/safe_browsing/chrome_password_protection_service.cc +@@ -1262,7 +1262,7 @@ std::string ChromePasswordProtectionService::GetOrgani + ReusedPasswordAccountType password_type) const { + if (base::FeatureList::IsEnabled( + safe_browsing::kEnterprisePasswordReuseUiRefresh)) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return GetPrefs()->GetString(prefs::kEnterpriseCustomLabelForProfile); + #else + return std::string(); diff --git a/devel/electron36/files/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc b/devel/electron36/files/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc new file mode 100644 index 000000000000..df5290146920 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc @@ -0,0 +1,11 @@ +--- chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc +@@ -20,7 +20,7 @@ + #include "components/safe_browsing/core/common/safebrowsing_switches.h" + #include "net/base/url_util.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 "chrome/browser/enterprise/connectors/analysis/local_binary_upload_service_factory.h" + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc b/devel/electron36/files/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc new file mode 100644 index 000000000000..ba373ffb1956 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc @@ -0,0 +1,11 @@ +--- chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc +@@ -694,7 +694,7 @@ void IncidentReportingService::OnEnvironmentDataCollec + + // Process::Current().CreationTime() is missing on some platforms. + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::TimeDelta uptime = + first_incident_time_ - base::Process::Current().CreationTime(); + environment_data->mutable_process()->set_uptime_msec(uptime.InMilliseconds()); diff --git a/devel/electron36/files/patch-chrome_browser_safe__browsing_safe__browsing__pref__change__handler.cc b/devel/electron36/files/patch-chrome_browser_safe__browsing_safe__browsing__pref__change__handler.cc new file mode 100644 index 000000000000..6b71652c8a18 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_safe__browsing_safe__browsing__pref__change__handler.cc @@ -0,0 +1,20 @@ +--- chrome/browser/safe_browsing/safe_browsing_pref_change_handler.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/safe_browsing/safe_browsing_pref_change_handler.cc +@@ -12,7 +12,7 @@ + #include "content/public/browser/web_contents.h" + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/browser_finder.h" + #include "chrome/browser/ui/browser_window/public/browser_window_features.h" + #include "chrome/browser/ui/toasts/api/toast_id.h" +@@ -59,7 +59,7 @@ void SafeBrowsingPrefChangeHandler:: + void SafeBrowsingPrefChangeHandler:: + MaybeShowEnhancedProtectionSettingChangeNotification() { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (!profile_ || + !base::FeatureList::IsEnabled(safe_browsing::kEsbAsASyncedSetting)) { + return; diff --git a/devel/electron36/files/patch-chrome_browser_screen__ai_screen__ai__install__state.cc b/devel/electron36/files/patch-chrome_browser_screen__ai_screen__ai__install__state.cc new file mode 100644 index 000000000000..491419b8f703 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_screen__ai_screen__ai__install__state.cc @@ -0,0 +1,11 @@ +--- chrome/browser/screen_ai/screen_ai_install_state.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/screen_ai/screen_ai_install_state.cc +@@ -30,7 +30,7 @@ bool IsDeviceCompatible() { + // TODO(crbug.com/381256355): Update when ScreenAI library is compatible with + // older CPUs. + static const bool device_compatible = base::CPU().has_sse42(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux, the library is only built for X86 CPUs. + static constexpr bool device_compatible = false; + #else diff --git a/devel/electron36/files/patch-chrome_browser_screen__ai_screen__ai__service__router.cc b/devel/electron36/files/patch-chrome_browser_screen__ai_screen__ai__service__router.cc new file mode 100644 index 000000000000..9c801a6a1549 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_screen__ai_screen__ai__service__router.cc @@ -0,0 +1,20 @@ +--- chrome/browser/screen_ai/screen_ai_service_router.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/screen_ai/screen_ai_service_router.cc +@@ -403,7 +403,7 @@ void ScreenAIServiceRouter::LaunchIfNotRunning() { + base::FilePath binary_path = state_instance->get_component_binary_path(); + #if BUILDFLAG(IS_WIN) + std::vector<base::FilePath> preload_libraries = {binary_path}; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::vector<std::string> extra_switches = { + base::StringPrintf("--%s=%s", screen_ai::GetBinaryPathSwitch(), + binary_path.MaybeAsASCII().c_str())}; +@@ -417,7 +417,7 @@ void ScreenAIServiceRouter::LaunchIfNotRunning() { + .WithPreloadedLibraries( + preload_libraries, + content::ServiceProcessHostPreloadLibraries::GetPassKey()) +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + .WithExtraCommandLineSwitches(extra_switches) + #endif // BUILDFLAG(IS_WIN) + .Pass()); diff --git a/devel/electron36/files/patch-chrome_browser_sessions_session__restore.cc b/devel/electron36/files/patch-chrome_browser_sessions_session__restore.cc new file mode 100644 index 000000000000..4624f9528e64 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_sessions_session__restore.cc @@ -0,0 +1,20 @@ +--- chrome/browser/sessions/session_restore.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/sessions/session_restore.cc +@@ -108,7 +108,7 @@ + #include "ui/wm/core/scoped_animation_disabler.h" + #endif // BUILDFLAG(IS_CHROMEOS) + +-#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/ui/webui/whats_new/whats_new_fetcher.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + +@@ -1117,7 +1117,7 @@ class SessionRestoreImpl : public BrowserListObserver + bool is_first_tab = true; + for (const auto& startup_tab : startup_tabs) { + const GURL& url = startup_tab.url; +-#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 == whats_new::GetWebUIStartupURL()) { + whats_new::StartWhatsNewFetch(browser); + continue; diff --git a/devel/electron36/files/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc b/devel/electron36/files/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc new file mode 100644 index 000000000000..3d63046cd9a7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc @@ -0,0 +1,20 @@ +--- chrome/browser/sharing/sharing_handler_registry_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/sharing/sharing_handler_registry_impl.cc +@@ -21,7 +21,7 @@ + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h" + #endif + +@@ -72,7 +72,7 @@ SharingHandlerRegistryImpl::SharingHandlerRegistryImpl + #endif // !BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (sharing_device_registration->IsRemoteCopySupported()) { + AddSharingHandler( + std::make_unique<RemoteCopyMessageHandler>(profile), diff --git a/devel/electron36/files/patch-chrome_browser_shortcuts_icon__badging.cc b/devel/electron36/files/patch-chrome_browser_shortcuts_icon__badging.cc new file mode 100644 index 000000000000..98e27521c5b0 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_shortcuts_icon__badging.cc @@ -0,0 +1,11 @@ +--- chrome/browser/shortcuts/icon_badging.cc.orig 2024-06-18 21:43:23 UTC ++++ chrome/browser/shortcuts/icon_badging.cc +@@ -59,7 +59,7 @@ constexpr ShortcutSize kSizesNeededForShortcutCreation + constexpr ShortcutSize kSizesNeededForShortcutCreation[] = { + ShortcutSize::k16, ShortcutSize::k32, ShortcutSize::k128, + ShortcutSize::k256, ShortcutSize::k512}; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr ShortcutSize kSizesNeededForShortcutCreation[] = {ShortcutSize::k32, + ShortcutSize::k128}; + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-chrome_browser_signin_accounts__policy__manager.cc b/devel/electron36/files/patch-chrome_browser_signin_accounts__policy__manager.cc new file mode 100644 index 000000000000..117fe966c148 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_signin_accounts__policy__manager.cc @@ -0,0 +1,38 @@ +--- chrome/browser/signin/accounts_policy_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/signin/accounts_policy_manager.cc +@@ -41,7 +41,7 @@ + #include "chrome/browser/ui/webui/profile_helper.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 "components/policy/core/common/features.h" + #include "components/signin/public/identity_manager/accounts_mutator.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +@@ -209,7 +209,7 @@ void AccountsPolicyManager::Initialize() { + &AccountsPolicyManager::OnGoogleServicesUsernamePatternChanged, + weak_pointer_factory_.GetWeakPtr())); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_); + identity_manager_observation_.Observe(identity_manager); + profile_pref_change_registrar_.Init(profile_->GetPrefs()); +@@ -224,7 +224,7 @@ void AccountsPolicyManager::Shutdown() { + } + + void AccountsPolicyManager::Shutdown() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + profile_pref_change_registrar_.RemoveAll(); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + local_state_pref_registrar_.RemoveAll(); +@@ -332,7 +332,7 @@ void AccountsPolicyManager::OnUserConfirmedProfileDele + } + #endif // defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void AccountsPolicyManager::OnRefreshTokensLoaded() { + RemoveUnallowedAccounts(); + identity_manager_observation_.Reset(); diff --git a/devel/electron36/files/patch-chrome_browser_signin_accounts__policy__manager.h b/devel/electron36/files/patch-chrome_browser_signin_accounts__policy__manager.h new file mode 100644 index 000000000000..a69cce9975b2 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_signin_accounts__policy__manager.h @@ -0,0 +1,29 @@ +--- chrome/browser/signin/accounts_policy_manager.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/signin/accounts_policy_manager.h +@@ -13,7 +13,7 @@ + #include "components/signin/public/base/signin_metrics.h" + #include "components/signin/public/identity_manager/identity_manager.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 "base/scoped_observation.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + +@@ -64,7 +64,7 @@ class AccountsPolicyManager : public KeyedService, + } + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void RemoveUnallowedAccounts(); + + // IdentityManager::Observer implementation. +@@ -85,7 +85,7 @@ class AccountsPolicyManager : public KeyedService, + bool hide_ui_for_testing_ = false; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::ScopedObservation<signin::IdentityManager, + signin::IdentityManager::Observer> + identity_manager_observation_{this}; diff --git a/devel/electron36/files/patch-chrome_browser_signin_signin__util.cc b/devel/electron36/files/patch-chrome_browser_signin_signin__util.cc new file mode 100644 index 000000000000..90f50673ef67 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_signin_signin__util.cc @@ -0,0 +1,11 @@ +--- chrome/browser/signin/signin_util.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/signin/signin_util.cc +@@ -80,7 +80,7 @@ void CookiesMover::StartMovingCookies() { + CookiesMover::~CookiesMover() = default; + + void CookiesMover::StartMovingCookies() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + bool allow_cookies_to_be_moved = base::FeatureList::IsEnabled( + profile_management::features::kThirdPartyProfileManagement); + #else diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_classify__url__navigation__throttle.cc b/devel/electron36/files/patch-chrome_browser_supervised__user_classify__url__navigation__throttle.cc new file mode 100644 index 000000000000..c6120b2c70d8 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_classify__url__navigation__throttle.cc @@ -0,0 +1,20 @@ +--- chrome/browser/supervised_user/classify_url_navigation_throttle.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/supervised_user/classify_url_navigation_throttle.cc +@@ -68,7 +68,7 @@ std::ostream& operator<<(std::ostream& stream, + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + bool ShouldShowReAuthInterstitial( + content::NavigationHandle& navigation_handle) { + Profile* profile = Profile::FromBrowserContext( +@@ -230,7 +230,7 @@ void ClassifyUrlNavigationThrottle::OnInterstitialResu + } + case InterstitialResultCallbackActions::kCancelWithInterstitial: { + CHECK(navigation_handle()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (ShouldShowReAuthInterstitial(*navigation_handle())) { + // Show the re-authentication interstitial if the user signed out of + // the content area, as parent's approval requires authentication. diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__browser__utils.cc b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__browser__utils.cc new file mode 100644 index 000000000000..d38809964fa7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__browser__utils.cc @@ -0,0 +1,20 @@ +--- chrome/browser/supervised_user/supervised_user_browser_utils.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/supervised_user/supervised_user_browser_utils.cc +@@ -40,7 +40,7 @@ + #include "chrome/browser/ash/profiles/profile_helper.h" + #include "components/user_manager/user.h" + #include "components/user_manager/user_type.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/supervised_user/supervised_user_verification_controller_client.h" + #include "chrome/browser/supervised_user/supervised_user_verification_page_blocked_sites.h" + #include "chrome/browser/supervised_user/supervised_user_verification_page_youtube.h" +@@ -165,7 +165,7 @@ void AssertChildStatusOfTheUser(Profile* profile, bool + #endif + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + std::string CreateReauthenticationInterstitialForYouTube( + content::NavigationHandle& navigation_handle) { + content::WebContents* web_contents = navigation_handle.GetWebContents(); diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__browser__utils.h b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__browser__utils.h new file mode 100644 index 000000000000..17f980226559 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__browser__utils.h @@ -0,0 +1,11 @@ +--- chrome/browser/supervised_user/supervised_user_browser_utils.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/supervised_user/supervised_user_browser_utils.h +@@ -52,7 +52,7 @@ void AssertChildStatusOfTheUser(Profile* profile, bool + // of the user. + void AssertChildStatusOfTheUser(Profile* profile, bool is_child); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Returns the html content of the reauthentication interstitial for blocked + // sites. This interstitial is associated with the given NavigationHandle. + std::string CreateReauthenticationInterstitialForBlockedSites( diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc new file mode 100644 index 000000000000..f342058b2091 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc @@ -0,0 +1,11 @@ +--- chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc +@@ -197,7 +197,7 @@ void SupervisedUserExtensionsDelegateImpl::RequestExte + return; + } + } +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + CHECK(contents.value()); + content::WebContents* web_contents = contents.value().get(); + if (supervised_user:: diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc new file mode 100644 index 000000000000..663594bc2185 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc @@ -0,0 +1,20 @@ +--- chrome/browser/supervised_user/supervised_user_extensions_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/supervised_user/supervised_user_extensions_manager.cc +@@ -357,7 +357,7 @@ void SupervisedUserExtensionsManager:: + ActivateManagementPolicyAndUpdateRegistration() { + SetActiveForSupervisedUsers(); + UpdateManagementPolicyRegistration(); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + MaybeMarkExtensionsLocallyParentApproved(); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + } +@@ -476,7 +476,7 @@ bool SupervisedUserExtensionsManager::ShouldBlockExten + return false; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SupervisedUserExtensionsManager:: + MaybeMarkExtensionsLocallyParentApproved() { + supervised_user::LocallyParentApprovedExtensionsMigrationState diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h new file mode 100644 index 000000000000..7b34a1f15f7e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h @@ -0,0 +1,11 @@ +--- chrome/browser/supervised_user/supervised_user_extensions_manager.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/supervised_user/supervised_user_extensions_manager.h +@@ -153,7 +153,7 @@ class SupervisedUserExtensionsManager : public Extensi + // launched. + bool ShouldBlockExtension(const std::string& extension_id) const; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Triggers an one-time migration of the present extensions as parent-approved + // when the feature + // `kEnableSupervisedUserSkipParentApprovalToInstallExtensions` becomes diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__google__auth__navigation__throttle.cc b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__google__auth__navigation__throttle.cc new file mode 100644 index 000000000000..8ff10db3976a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__google__auth__navigation__throttle.cc @@ -0,0 +1,26 @@ +--- chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.cc +@@ -33,12 +33,12 @@ + #include "chrome/browser/supervised_user/child_accounts/child_account_service_android.h" + #include "components/signin/public/identity_manager/identity_manager.h" + #include "ui/android/view_android.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/supervised_user/supervised_user_verification_controller_client.h" + #include "chrome/browser/supervised_user/supervised_user_verification_page.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + namespace { + bool IsYouTubeInfrastructureSubframe(content::NavigationHandle* handle) { + if (handle->GetNavigatingFrameType() != content::FrameType::kSubframe) { +@@ -160,7 +160,7 @@ SupervisedUserGoogleAuthNavigationThrottle::ShouldProc + return content::NavigationThrottle::DEFER; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // When an unauthenticated supervised user tries to access YouTube, we force + // re-authentication with an interstitial so that YouTube can be subject to + // content restrictions. This interstitial is only available on Desktop diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc new file mode 100644 index 000000000000..89cf0e5f0868 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/supervised_user/supervised_user_metrics_service_factory.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/supervised_user/supervised_user_metrics_service_factory.cc +@@ -14,7 +14,7 @@ + #include "components/supervised_user/core/browser/supervised_user_service.h" + #include "content/public/browser/browser_context.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 "chrome/browser/supervised_user/linux_mac_windows/supervised_user_extensions_metrics_delegate_impl.h" + #endif + +@@ -62,7 +62,7 @@ SupervisedUserMetricsServiceFactory::BuildServiceInsta + std::unique_ptr<supervised_user::SupervisedUserMetricsService :: + SupervisedUserMetricsServiceExtensionDelegate> + extensions_metrics_delegate = nullptr; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extensions_metrics_delegate = + std::make_unique<SupervisedUserExtensionsMetricsDelegateImpl>( + extensions::ExtensionRegistry::Get(profile), profile); diff --git a/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc new file mode 100644 index 000000000000..dd79c3b823f1 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc @@ -0,0 +1,20 @@ +--- chrome/browser/supervised_user/supervised_user_navigation_observer.cc.orig 2024-02-21 00:20:36 UTC ++++ chrome/browser/supervised_user/supervised_user_navigation_observer.cc +@@ -47,7 +47,7 @@ + #include "chrome/browser/supervised_user/android/supervised_user_web_content_handler_impl.h" + #elif BUILDFLAG(IS_CHROMEOS) + #include "chrome/browser/supervised_user/chromeos/supervised_user_web_content_handler_impl.h" +-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/supervised_user/linux_mac_windows/supervised_user_web_content_handler_impl.h" + #endif + +@@ -67,7 +67,7 @@ std::unique_ptr<supervised_user::WebContentHandler> Cr + #elif BUILDFLAG(IS_ANDROID) + return std::make_unique<SupervisedUserWebContentHandlerImpl>( + web_contents, frame_id, navigation_id); +-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return std::make_unique<SupervisedUserWebContentHandlerImpl>( + web_contents, frame_id, navigation_id); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_sync_chrome__sync__controller__builder.cc b/devel/electron36/files/patch-chrome_browser_sync_chrome__sync__controller__builder.cc new file mode 100644 index 000000000000..ef294d4d2a42 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_sync_chrome__sync__controller__builder.cc @@ -0,0 +1,11 @@ +--- chrome/browser/sync/chrome_sync_controller_builder.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/sync/chrome_sync_controller_builder.cc +@@ -280,7 +280,7 @@ ChromeSyncControllerBuilder::Build(syncer::SyncService + #if BUILDFLAG(ENABLE_SPELLCHECK) + // Chrome prefers OS provided spell checkers where they exist. So only sync + // the custom dictionary on platforms that typically don't provide one. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Dictionary sync is enabled by default. + if (spellcheck_service_.value()) { + controllers.push_back( diff --git a/devel/electron36/files/patch-chrome_browser_sync_device__info__sync__client__impl.cc b/devel/electron36/files/patch-chrome_browser_sync_device__info__sync__client__impl.cc new file mode 100644 index 000000000000..1935513023ca --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_sync_device__info__sync__client__impl.cc @@ -0,0 +1,11 @@ +--- chrome/browser/sync/device_info_sync_client_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/sync/device_info_sync_client_impl.cc +@@ -34,7 +34,7 @@ std::string DeviceInfoSyncClientImpl::GetSigninScopedD + std::string DeviceInfoSyncClientImpl::GetSigninScopedDeviceId() const { + // Since the local sync backend is currently only supported on Windows, Mac and + // Linux don't even check the pref on other os-es. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + syncer::SyncPrefs prefs(profile_->GetPrefs()); + if (prefs.IsLocalSyncEnabled()) { + return "local_device"; diff --git a/devel/electron36/files/patch-chrome_browser_sync_sync__service__factory.cc b/devel/electron36/files/patch-chrome_browser_sync_sync__service__factory.cc new file mode 100644 index 000000000000..3b8354205b6f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_sync_sync__service__factory.cc @@ -0,0 +1,38 @@ +--- chrome/browser/sync/sync_service_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/sync/sync_service_factory.cc +@@ -108,7 +108,7 @@ + #endif // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.h" + #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_service_factory.h" + #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_utils.h" +@@ -135,7 +135,7 @@ tab_groups::TabGroupSyncService* GetTabGroupSyncServic + tab_groups::TabGroupSyncService* GetTabGroupSyncService(Profile* profile) { + CHECK(profile); + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + tab_groups::TabGroupSyncService* service = + tab_groups::SavedTabGroupUtils::GetServiceForProfile(profile); + CHECK(service); +@@ -377,7 +377,7 @@ std::unique_ptr<KeyedService> BuildSyncService( + bool local_sync_backend_enabled = false; + // Only check the local sync backend pref on the supported platforms of + // Windows, Mac and Linux. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + syncer::SyncPrefs prefs(profile->GetPrefs()); + local_sync_backend_enabled = prefs.IsLocalSyncEnabled(); + base::UmaHistogramBoolean("Sync.Local.Enabled2", local_sync_backend_enabled); +@@ -512,7 +512,7 @@ SyncServiceFactory::SyncServiceFactory() + DependsOn(ProfilePasswordStoreFactory::GetInstance()); + DependsOn(PowerBookmarkServiceFactory::GetInstance()); + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + DependsOn(tab_groups::SavedTabGroupServiceFactory::GetInstance()); + #elif BUILDFLAG(IS_ANDROID) + DependsOn(tab_groups::TabGroupSyncServiceFactory::GetInstance()); diff --git a/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group.cc b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group.cc new file mode 100644 index 000000000000..a457009f9a93 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group.cc @@ -0,0 +1,38 @@ +--- chrome/browser/task_manager/sampling/task_group.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/task_manager/sampling/task_group.cc +@@ -36,7 +36,7 @@ const int kBackgroundRefreshTypesMask = + #if BUILDFLAG(IS_WIN) + REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME | + #endif // BUILDFLAG(IS_WIN) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + REFRESH_TYPE_FD_COUNT | + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + #if BUILDFLAG(ENABLE_NACL) +@@ -117,7 +117,7 @@ TaskGroup::TaskGroup( + #if BUILDFLAG(ENABLE_NACL) + nacl_debug_stub_port_(nacl::kGdbDebugStubPortUnknown), + #endif // BUILDFLAG(ENABLE_NACL) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + open_fd_count_(-1), + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + idle_wakeups_per_second_(-1), +@@ -132,7 +132,7 @@ TaskGroup::TaskGroup( + weak_ptr_factory_.GetWeakPtr()), + base::BindRepeating(&TaskGroup::OnIdleWakeupsRefreshDone, + weak_ptr_factory_.GetWeakPtr()), +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + base::BindRepeating(&TaskGroup::OnOpenFdCountRefreshDone, + weak_ptr_factory_.GetWeakPtr()), + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) +@@ -302,7 +302,7 @@ void TaskGroup::OnRefreshNaClDebugStubPortDone(int nac + } + #endif // BUILDFLAG(ENABLE_NACL) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + void TaskGroup::OnOpenFdCountRefreshDone(int open_fd_count) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + diff --git a/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group.h b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group.h new file mode 100644 index 000000000000..9e16323e9cce --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group.h @@ -0,0 +1,38 @@ +--- chrome/browser/task_manager/sampling/task_group.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/task_manager/sampling/task_group.h +@@ -41,7 +41,7 @@ constexpr int kUnsupportedVMRefreshFlags = + REFRESH_TYPE_WEBCACHE_STATS | REFRESH_TYPE_NETWORK_USAGE | + REFRESH_TYPE_NACL | REFRESH_TYPE_IDLE_WAKEUPS | REFRESH_TYPE_HANDLES | + REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME | REFRESH_TYPE_PRIORITY | +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + REFRESH_TYPE_FD_COUNT | + #endif + REFRESH_TYPE_HARD_FAULTS; +@@ -144,7 +144,7 @@ class TaskGroup { + } + #endif // BUILDFLAG(ENABLE_NACL) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + int open_fd_count() const { return open_fd_count_; } + void set_open_fd_count(int open_fd_count) { open_fd_count_ = open_fd_count; } + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) +@@ -164,7 +164,7 @@ class TaskGroup { + void RefreshNaClDebugStubPort(int child_process_unique_id); + void OnRefreshNaClDebugStubPortDone(int port); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + void OnOpenFdCountRefreshDone(int open_fd_count); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + +@@ -235,7 +235,7 @@ class TaskGroup { + #if BUILDFLAG(ENABLE_NACL) + int nacl_debug_stub_port_; + #endif // BUILDFLAG(ENABLE_NACL) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // The number of file descriptors currently open by the process. + int open_fd_count_; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) diff --git a/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc new file mode 100644 index 000000000000..e43cd612e185 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc @@ -0,0 +1,47 @@ +--- chrome/browser/task_manager/sampling/task_group_sampler.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/task_manager/sampling/task_group_sampler.cc +@@ -45,7 +45,7 @@ TaskGroupSampler::TaskGroupSampler( + const OnCpuRefreshCallback& on_cpu_refresh, + const OnSwappedMemRefreshCallback& on_swapped_mem_refresh, + const OnIdleWakeupsCallback& on_idle_wakeups, +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const OnOpenFdCountCallback& on_open_fd_count, + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + const OnProcessPriorityCallback& on_process_priority) +@@ -55,7 +55,7 @@ TaskGroupSampler::TaskGroupSampler( + on_cpu_refresh_callback_(on_cpu_refresh), + on_swapped_mem_refresh_callback_(on_swapped_mem_refresh), + on_idle_wakeups_callback_(on_idle_wakeups), +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + on_open_fd_count_callback_(on_open_fd_count), + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + on_process_priority_callback_(on_process_priority) { +@@ -85,7 +85,7 @@ void TaskGroupSampler::Refresh(int64_t refresh_flags) + base::BindOnce(on_swapped_mem_refresh_callback_)); + } + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (TaskManagerObserver::IsResourceRefreshEnabled(REFRESH_TYPE_IDLE_WAKEUPS, + refresh_flags)) { + blocking_pool_runner_->PostTaskAndReplyWithResult( +@@ -95,7 +95,7 @@ void TaskGroupSampler::Refresh(int64_t refresh_flags) + } + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (TaskManagerObserver::IsResourceRefreshEnabled(REFRESH_TYPE_FD_COUNT, + refresh_flags)) { + blocking_pool_runner_->PostTaskAndReplyWithResult( +@@ -152,7 +152,7 @@ int TaskGroupSampler::RefreshIdleWakeupsPerSecond() { + return process_metrics_->GetIdleWakeupsPerSecond(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + int TaskGroupSampler::RefreshOpenFdCount() { + DCHECK_CALLED_ON_VALID_SEQUENCE(worker_pool_sequenced_checker_); + diff --git a/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.h b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.h new file mode 100644 index 000000000000..d148301a5b99 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.h @@ -0,0 +1,38 @@ +--- chrome/browser/task_manager/sampling/task_group_sampler.h.orig 2023-10-19 19:58:06 UTC ++++ chrome/browser/task_manager/sampling/task_group_sampler.h +@@ -31,7 +31,7 @@ class TaskGroupSampler : public base::RefCountedThread + using OnCpuRefreshCallback = base::RepeatingCallback<void(double)>; + using OnSwappedMemRefreshCallback = base::RepeatingCallback<void(int64_t)>; + using OnIdleWakeupsCallback = base::RepeatingCallback<void(int)>; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + using OnOpenFdCountCallback = base::RepeatingCallback<void(int)>; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + using OnProcessPriorityCallback = +@@ -43,7 +43,7 @@ class TaskGroupSampler : public base::RefCountedThread + const OnCpuRefreshCallback& on_cpu_refresh, + const OnSwappedMemRefreshCallback& on_memory_refresh, + const OnIdleWakeupsCallback& on_idle_wakeups, +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const OnOpenFdCountCallback& on_open_fd_count, + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + const OnProcessPriorityCallback& on_process_priority); +@@ -63,7 +63,7 @@ class TaskGroupSampler : public base::RefCountedThread + double RefreshCpuUsage(); + int64_t RefreshSwappedMem(); + int RefreshIdleWakeupsPerSecond(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + int RefreshOpenFdCount(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + base::Process::Priority RefreshProcessPriority(); +@@ -87,7 +87,7 @@ class TaskGroupSampler : public base::RefCountedThread + const OnCpuRefreshCallback on_cpu_refresh_callback_; + const OnSwappedMemRefreshCallback on_swapped_mem_refresh_callback_; + const OnIdleWakeupsCallback on_idle_wakeups_callback_; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const OnOpenFdCountCallback on_open_fd_count_callback_; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + const OnProcessPriorityCallback on_process_priority_callback_; diff --git a/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc new file mode 100644 index 000000000000..9dccf174ba06 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc @@ -0,0 +1,11 @@ +--- chrome/browser/task_manager/sampling/task_manager_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/task_manager/sampling/task_manager_impl.cc +@@ -235,7 +235,7 @@ int TaskManagerImpl::GetOpenFdCount(TaskId task_id) co + } + + int TaskManagerImpl::GetOpenFdCount(TaskId task_id) const { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return GetTaskGroupByTaskId(task_id)->open_fd_count(); + #else + return -1; diff --git a/devel/electron36/files/patch-chrome_browser_task__manager_task__manager__observer.h b/devel/electron36/files/patch-chrome_browser_task__manager_task__manager__observer.h new file mode 100644 index 000000000000..000a0a6dd162 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_task__manager_task__manager__observer.h @@ -0,0 +1,11 @@ +--- chrome/browser/task_manager/task_manager_observer.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/task_manager/task_manager_observer.h +@@ -46,7 +46,7 @@ enum RefreshType { + // or backgrounded. + REFRESH_TYPE_PRIORITY = 1 << 13, + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // For observers interested in getting the number of open file descriptors of + // processes. + REFRESH_TYPE_FD_COUNT = 1 << 14, diff --git a/devel/electron36/files/patch-chrome_browser_themes_theme__helper.cc b/devel/electron36/files/patch-chrome_browser_themes_theme__helper.cc new file mode 100644 index 000000000000..0244a94ea65e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_themes_theme__helper.cc @@ -0,0 +1,11 @@ +--- chrome/browser/themes/theme_helper.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/themes/theme_helper.cc +@@ -16,7 +16,7 @@ + #include "ui/gfx/image/image.h" + #include "ui/native_theme/native_theme.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_themes_theme__service.cc b/devel/electron36/files/patch-chrome_browser_themes_theme__service.cc new file mode 100644 index 000000000000..780279e4960a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_themes_theme__service.cc @@ -0,0 +1,20 @@ +--- chrome/browser/themes/theme_service.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/themes/theme_service.cc +@@ -72,7 +72,7 @@ + #include "extensions/browser/extension_registry_observer.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #include "ui/ozone/public/ozone_platform.h" // nogncheck + #endif +@@ -332,7 +332,7 @@ bool ThemeService::ShouldUseCustomFrame() const { + } + + bool ThemeService::ShouldUseCustomFrame() const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!ui::OzonePlatform::GetInstance() + ->GetPlatformRuntimeProperties() + .supports_server_side_window_decorations) { diff --git a/devel/electron36/files/patch-chrome_browser_themes_theme__service__aura__linux.cc b/devel/electron36/files/patch-chrome_browser_themes_theme__service__aura__linux.cc new file mode 100644 index 000000000000..0ed274a4ad41 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_themes_theme__service__aura__linux.cc @@ -0,0 +1,11 @@ +--- chrome/browser/themes/theme_service_aura_linux.cc.orig 2024-08-14 20:54:38 UTC ++++ chrome/browser/themes/theme_service_aura_linux.cc +@@ -23,7 +23,7 @@ ui::SystemTheme ValidateSystemTheme(ui::SystemTheme sy + ui::SystemTheme ValidateSystemTheme(ui::SystemTheme system_theme) { + switch (system_theme) { + case ui::SystemTheme::kDefault: +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case ui::SystemTheme::kGtk: + case ui::SystemTheme::kQt: + #endif diff --git a/devel/electron36/files/patch-chrome_browser_themes_theme__service__factory.cc b/devel/electron36/files/patch-chrome_browser_themes_theme__service__factory.cc new file mode 100644 index 000000000000..b9aee8b68558 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_themes_theme__service__factory.cc @@ -0,0 +1,29 @@ +--- chrome/browser/themes/theme_service_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/themes/theme_service_factory.cc +@@ -24,7 +24,7 @@ + #include "chrome/browser/themes/theme_helper_win.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/themes/theme_service_aura_linux.h" + #include "ui/linux/linux_ui_factory.h" + #endif +@@ -103,7 +103,7 @@ ThemeServiceFactory::BuildServiceInstanceForBrowserCon + std::unique_ptr<KeyedService> + ThemeServiceFactory::BuildServiceInstanceForBrowserContext( + content::BrowserContext* profile) const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + using ThemeService = ThemeServiceAuraLinux; + #endif + +@@ -115,7 +115,7 @@ void ThemeServiceFactory::RegisterProfilePrefs( + + void ThemeServiceFactory::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + registry->RegisterIntegerPref(prefs::kSystemTheme, + static_cast<int>(ui::GetDefaultSystemTheme())); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_actions_chrome__action__id.h b/devel/electron36/files/patch-chrome_browser_ui_actions_chrome__action__id.h new file mode 100644 index 000000000000..4b84b1aec282 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_actions_chrome__action__id.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/actions/chrome_action_id.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/actions/chrome_action_id.h +@@ -497,7 +497,7 @@ + #if BUILDFLAG(IS_CHROMEOS) + #define CHROME_PLATFORM_SPECIFIC_ACTION_IDS \ + E(kToggleMultitaskMenu, IDC_TOGGLE_MULTITASK_MENU) +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define CHROME_PLATFORM_SPECIFIC_ACTION_IDS \ + E(kUseSystemTitleBar, IDC_USE_SYSTEM_TITLE_BAR) \ + E(kRestoreWindow, IDC_RESTORE_WINDOW) diff --git a/devel/electron36/files/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc b/devel/electron36/files/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc new file mode 100644 index 000000000000..de3b62037319 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/autofill/payments/desktop_payments_window_manager.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/autofill/payments/desktop_payments_window_manager.cc +@@ -57,7 +57,7 @@ DesktopPaymentsWindowManager::DesktopPaymentsWindowMan + DesktopPaymentsWindowManager::DesktopPaymentsWindowManager( + ContentAutofillClient* client) + : client_(CHECK_DEREF(client)) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + scoped_observation_.Observe(BrowserList::GetInstance()); + #endif // BUILDFLAG(IS_LINUX) + } +@@ -142,7 +142,7 @@ void DesktopPaymentsWindowManager::WebContentsDestroye + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void DesktopPaymentsWindowManager::OnBrowserSetLastActive(Browser* browser) { + // If there is an ongoing payments window manager pop-up flow, and the + // original tab's WebContents become active, activate the pop-up's diff --git a/devel/electron36/files/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h b/devel/electron36/files/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h new file mode 100644 index 000000000000..552ec5eb52ce --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h @@ -0,0 +1,38 @@ +--- chrome/browser/ui/autofill/payments/desktop_payments_window_manager.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/autofill/payments/desktop_payments_window_manager.h +@@ -14,7 +14,7 @@ + #include "components/autofill/core/browser/payments/payments_window_manager.h" + #include "content/public/browser/web_contents_observer.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/scoped_observation.h" + #include "chrome/browser/ui/browser_list.h" + #include "chrome/browser/ui/browser_list_observer.h" +@@ -39,7 +39,7 @@ class DesktopPaymentsWindowManager : public PaymentsWi + // WebContents of the original tab that the pop-up is created in. If there is a + // pop-up currently present, `this` will observe the WebContents of that pop-up. + class DesktopPaymentsWindowManager : public PaymentsWindowManager, +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + public BrowserListObserver, + #endif // BUILDFLAG(IS_LINUX) + public content::WebContentsObserver { +@@ -59,7 +59,7 @@ class DesktopPaymentsWindowManager : public PaymentsWi + content::NavigationHandle* navigation_handle) override; + void WebContentsDestroyed() override; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // BrowserListObserver: + void OnBrowserSetLastActive(Browser* browser) override; + #endif // BUILDFLAG(IS_LINUX) +@@ -161,7 +161,7 @@ class DesktopPaymentsWindowManager : public PaymentsWi + // Used in tests to notify the test infrastructure that the pop-up has closed. + base::RepeatingClosure popup_closed_closure_for_testing_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::ScopedObservation<BrowserList, BrowserListObserver> scoped_observation_{ + this}; + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-chrome_browser_ui_browser.h b/devel/electron36/files/patch-chrome_browser_ui_browser.h new file mode 100644 index 000000000000..1e9571b9838f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_browser.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/browser.h.orig 2025-05-11 11:50:45 UTC ++++ chrome/browser/ui/browser.h +@@ -301,7 +301,7 @@ class Browser : public TabStripModelObserver, + std::optional<int64_t> display_id; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // When the browser window is shown, the desktop environment is notified + // using this ID. In response, the desktop will stop playing the "waiting + // for startup" animation (if any). diff --git a/devel/electron36/files/patch-chrome_browser_ui_browser__command__controller.cc b/devel/electron36/files/patch-chrome_browser_ui_browser__command__controller.cc new file mode 100644 index 000000000000..609d2c9ab905 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_browser__command__controller.cc @@ -0,0 +1,74 @@ +--- chrome/browser/ui/browser_command_controller.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/browser_command_controller.cc +@@ -126,7 +126,7 @@ + #include "components/user_manager/user_manager.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/base/ime/text_edit_commands.h" + #include "ui/base/ime/text_input_flags.h" + #include "ui/linux/linux_ui.h" +@@ -136,7 +136,7 @@ + #include "ui/ozone/public/ozone_platform.h" + #endif + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/shortcuts/desktop_shortcuts_utils.h" + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) + +@@ -332,7 +332,7 @@ bool BrowserCommandController::IsReservedCommandOrKey( + #endif + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If this key was registered by the user as a content editing hotkey, then + // it is not reserved. + auto* linux_ui = ui::LinuxUi::instance(); +@@ -595,7 +595,7 @@ bool BrowserCommandController::ExecuteCommandWithDispo + break; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case IDC_MINIMIZE_WINDOW: + browser_->window()->Minimize(); + break; +@@ -812,7 +812,7 @@ bool BrowserCommandController::ExecuteCommandWithDispo + break; + case IDC_CREATE_SHORTCUT: + base::RecordAction(base::UserMetricsAction("CreateShortcut")); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + chrome::CreateDesktopShortcutForActiveWebContents(browser_); + #else + web_app::CreateWebAppFromCurrentWebContents( +@@ -979,7 +979,7 @@ bool BrowserCommandController::ExecuteCommandWithDispo + #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) + case IDC_CHROME_WHATS_NEW: + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) && \ +- (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)) ++ (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + ShowChromeWhatsNew(browser_); + break; + #else +@@ -1324,7 +1324,7 @@ void BrowserCommandController::InitCommandState() { + command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_4, true); + command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_5, true); + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + command_updater_.UpdateCommandEnabled(IDC_MINIMIZE_WINDOW, true); + command_updater_.UpdateCommandEnabled(IDC_MAXIMIZE_WINDOW, true); + command_updater_.UpdateCommandEnabled(IDC_RESTORE_WINDOW, true); +@@ -1682,7 +1682,7 @@ void BrowserCommandController::UpdateCommandsForTabSta + bool can_create_web_app = web_app::CanCreateWebApp(browser_); + command_updater_.UpdateCommandEnabled(IDC_INSTALL_PWA, can_create_web_app); + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + command_updater_.UpdateCommandEnabled( + IDC_CREATE_SHORTCUT, shortcuts::CanCreateDesktopShortcut(browser_)); + #else diff --git a/devel/electron36/files/patch-chrome_browser_ui_browser__commands.cc b/devel/electron36/files/patch-chrome_browser_ui_browser__commands.cc new file mode 100644 index 000000000000..4bed9f6dfec4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_browser__commands.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/browser_commands.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/browser_commands.cc +@@ -1980,7 +1980,7 @@ void OpenUpdateChromeDialog(Browser* browser) { + } else if (UpgradeDetector::GetInstance()->is_outdated_install_no_au()) { + UpgradeDetector::GetInstance()->NotifyOutdatedInstallNoAutoUpdate(); + } else { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(features::kFewerUpdateConfirmations)) { + chrome::AttemptRelaunch(); + return; diff --git a/devel/electron36/files/patch-chrome_browser_ui_browser__ui__prefs.cc b/devel/electron36/files/patch-chrome_browser_ui_browser__ui__prefs.cc new file mode 100644 index 000000000000..a5f0a17766c7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_browser__ui__prefs.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/browser_ui_prefs.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/browser_ui_prefs.cc +@@ -72,7 +72,7 @@ void RegisterBrowserPrefs(PrefRegistrySimple* registry + registry->RegisterIntegerPref(prefs::kDefaultBrowserDeclinedCount, 0); + registry->RegisterTimePref(prefs::kDefaultBrowserFirstShownTime, + base::Time()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + registry->RegisterStringPref(prefs::kEnterpriseCustomLabelForBrowser, + std::string()); + registry->RegisterStringPref(prefs::kEnterpriseLogoUrlForBrowser, +@@ -185,7 +185,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistry + registry->RegisterDictionaryPref(prefs::kHttpsUpgradeFallbacks); + registry->RegisterDictionaryPref(prefs::kHttpsUpgradeNavigations); + registry->RegisterBooleanPref(prefs::kHttpsOnlyModeAutoEnabled, false); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + registry->RegisterStringPref(prefs::kEnterpriseLogoUrlForProfile, + std::string()); + registry->RegisterStringPref(prefs::kEnterpriseCustomLabelForProfile, diff --git a/devel/electron36/files/patch-chrome_browser_ui_browser__view__prefs.cc b/devel/electron36/files/patch-chrome_browser_ui_browser__view__prefs.cc new file mode 100644 index 000000000000..694bceabee99 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_browser__view__prefs.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/browser_view_prefs.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/browser_view_prefs.cc +@@ -14,7 +14,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool GetCustomFramePrefDefault() { + #if BUILDFLAG(IS_OZONE) + return ui::OzonePlatform::GetInstance() +@@ -30,7 +30,7 @@ void RegisterBrowserViewProfilePrefs( + + void RegisterBrowserViewProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kUseCustomChromeFrame, + GetCustomFramePrefDefault()); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_chrome__pages.cc b/devel/electron36/files/patch-chrome_browser_ui_chrome__pages.cc new file mode 100644 index 000000000000..684acdd5e3e3 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_chrome__pages.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/chrome_pages.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/chrome_pages.cc +@@ -84,7 +84,7 @@ + #include "components/signin/public/identity_manager/identity_manager.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 "chrome/browser/web_applications/web_app_utils.h" + #endif + +@@ -381,7 +381,7 @@ void ShowChromeTips(Browser* browser) { + ShowSingletonTab(browser, GURL(kChromeTipsURL)); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void ShowChromeWhatsNew(Browser* browser) { + ShowSingletonTab(browser, GURL(kChromeUIWhatsNewURL)); + } +@@ -699,7 +699,7 @@ void ShowShortcutCustomizationApp(Profile* profile, + } + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void ShowWebAppSettingsImpl(Browser* browser, + Profile* profile, + const std::string& app_id, diff --git a/devel/electron36/files/patch-chrome_browser_ui_chrome__pages.h b/devel/electron36/files/patch-chrome_browser_ui_chrome__pages.h new file mode 100644 index 000000000000..a7a86d13c99f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_chrome__pages.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/chrome_pages.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/chrome_pages.h +@@ -39,7 +39,7 @@ enum class ConsentLevel; + enum class ConsentLevel; + } // namespace signin + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + namespace web_app { + enum class AppSettingsPageEntryPoint; + } // namespace web_app +@@ -174,7 +174,7 @@ void ShowShortcutCustomizationApp(Profile* profile, + const std::string& category); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Show chrome://app-settings/<app-id> page. + void ShowWebAppSettings(Browser* browser, + const std::string& app_id, diff --git a/devel/electron36/files/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc b/devel/electron36/files/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc new file mode 100644 index 000000000000..ec344b260e7c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/color/native_chrome_color_mixer.cc.orig 2023-10-19 19:58:07 UTC ++++ chrome/browser/ui/color/native_chrome_color_mixer.cc +@@ -7,7 +7,7 @@ + #include "build/build_config.h" + + #if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && \ +- !BUILDFLAG(IS_WIN) ++ !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) + void AddNativeChromeColorMixer(ui::ColorProvider* provider, + const ui::ColorProviderKey& key) {} + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_managed__ui.cc b/devel/electron36/files/patch-chrome_browser_ui_managed__ui.cc new file mode 100644 index 000000000000..803fcfc1b1a3 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_managed__ui.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/managed_ui.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/managed_ui.cc +@@ -433,7 +433,7 @@ std::optional<std::string> GetDeviceManagerIdentity() + g_browser_process->platform_part()->browser_policy_connector_ash(); + return connector->GetEnterpriseDomainManager(); + #else +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled( + features::kEnterpriseManagementDisclaimerUsesCustomLabel)) { + std::string custom_management_label = +@@ -463,7 +463,7 @@ std::optional<std::string> GetAccountManagerIdentity(P + return std::nullopt; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled( + features::kEnterpriseManagementDisclaimerUsesCustomLabel)) { + std::string custom_management_label = diff --git a/devel/electron36/files/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc b/devel/electron36/files/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc new file mode 100644 index 000000000000..fa2d6fb59ae5 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/omnibox/omnibox_pedal_implementations.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/omnibox/omnibox_pedal_implementations.cc +@@ -1985,7 +1985,7 @@ const gfx::VectorIcon& GetSharingHubVectorIcon() { + return omnibox::kShareMacChromeRefreshIcon; + #elif BUILDFLAG(IS_WIN) + return omnibox::kShareWinChromeRefreshIcon; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return omnibox::kShareLinuxChromeRefreshIcon; + #else + return omnibox::kShareChromeRefreshIcon; diff --git a/devel/electron36/files/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc b/devel/electron36/files/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc new file mode 100644 index 000000000000..a2e83e29a704 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/passwords/bubble_controllers/relaunch_chrome_bubble_controller.cc.orig 2024-02-21 00:20:36 UTC ++++ chrome/browser/ui/passwords/bubble_controllers/relaunch_chrome_bubble_controller.cc +@@ -44,7 +44,7 @@ std::u16string RelaunchChromeBubbleController::GetTitl + #if BUILDFLAG(IS_MAC) + ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_BRANDED + : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_NON_BRANDED +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_LINUX_BRANDED + : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_LINUX_NON_BRANDED + #endif +@@ -57,7 +57,7 @@ std::u16string RelaunchChromeBubbleController::GetBody + #if BUILDFLAG(IS_MAC) + ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_BRANDED + : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_NON_BRANDED +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_LINUX_BRANDED + : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_LINUX_NON_BRANDED + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc b/devel/electron36/files/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc new file mode 100644 index 000000000000..095ab9882c17 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/passwords/manage_passwords_ui_controller.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/passwords/manage_passwords_ui_controller.cc +@@ -102,7 +102,7 @@ using Logger = autofill::SavePasswordProgressLogger; + + using Logger = autofill::SavePasswordProgressLogger; + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Should be kept in sync with constant declared in + // bubble_controllers/relaunch_chrome_bubble_controller.cc. + constexpr int kMaxNumberOfTimesKeychainErrorBubbleIsShown = 3; +@@ -549,7 +549,7 @@ void ManagePasswordsUIController::OnKeychainError() { + } + + void ManagePasswordsUIController::OnKeychainError() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + CHECK(!dialog_controller_); + PrefService* prefs = + Profile::FromBrowserContext(web_contents()->GetBrowserContext()) diff --git a/devel/electron36/files/patch-chrome_browser_ui_prefs_prefs__tab__helper.cc b/devel/electron36/files/patch-chrome_browser_ui_prefs_prefs__tab__helper.cc new file mode 100644 index 000000000000..a5a9320e4b7a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_prefs_prefs__tab__helper.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/prefs/prefs_tab_helper.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/prefs/prefs_tab_helper.cc +@@ -66,7 +66,7 @@ + #include <windows.h> + #endif + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If a font name in prefs default values starts with a comma, consider it's a + // comma-separated font list and resolve it to the first available font. + #define PREFS_FONT_LIST 1 diff --git a/devel/electron36/files/patch-chrome_browser_ui_sad__tab.cc b/devel/electron36/files/patch-chrome_browser_ui_sad__tab.cc new file mode 100644 index 000000000000..5715ee754663 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_sad__tab.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/sad_tab.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/sad_tab.cc +@@ -179,7 +179,7 @@ std::vector<int> SadTab::GetSubMessages() { + if (!web_contents_->GetBrowserContext()->IsOffTheRecord()) { + message_ids.insert(message_ids.begin(), IDS_SAD_TAB_RELOAD_INCOGNITO); + } +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Note: on macOS, Linux and ChromeOS, the first bullet is either one of + // IDS_SAD_TAB_RELOAD_CLOSE_TABS or IDS_SAD_TAB_RELOAD_CLOSE_NOTABS + // followed by one of the above suggestions. diff --git a/devel/electron36/files/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h b/devel/electron36/files/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h new file mode 100644 index 000000000000..01db715af2a4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.h.orig 2024-06-18 21:43:24 UTC ++++ chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.h +@@ -36,7 +36,7 @@ class SharingHubBubbleController { + // Returns true if the omnibox icon should be shown. + virtual bool ShouldOfferOmniboxIcon() = 0; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // This method returns the set of first-party actions, which are actions + // internal to Chrome. Third-party actions (those outside Chrome) are + // currently not supported. diff --git a/devel/electron36/files/patch-chrome_browser_ui_signin_signin__view__controller.cc b/devel/electron36/files/patch-chrome_browser_ui_signin_signin__view__controller.cc new file mode 100644 index 000000000000..c969aa94df23 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_signin_signin__view__controller.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/signin/signin_view_controller.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/signin/signin_view_controller.cc +@@ -443,7 +443,7 @@ void SigninViewController::ShowModalManagedUserNoticeD + void SigninViewController::ShowModalManagedUserNoticeDialog( + std::unique_ptr<signin::EnterpriseProfileCreationDialogParams> + create_param) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + CloseModalSignin(); + dialog_ = std::make_unique<SigninModalDialogImpl>( + SigninViewControllerDelegate::CreateManagedUserNoticeDelegate( diff --git a/devel/electron36/files/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h b/devel/electron36/files/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h new file mode 100644 index 000000000000..c64dc83f126c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/signin/signin_view_controller_delegate.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/signin/signin_view_controller_delegate.h +@@ -79,7 +79,7 @@ class SigninViewControllerDelegate { + SignoutConfirmationCallback callback); + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns a platform-specific SigninViewContolllerDelegate instance that + // displays the managed user notice modal dialog. The returned object + // should delete itself when the window it's managing is closed. diff --git a/devel/electron36/files/patch-chrome_browser_ui_startup_bad__flags__prompt.cc b/devel/electron36/files/patch-chrome_browser_ui_startup_bad__flags__prompt.cc new file mode 100644 index 000000000000..5acd6302c131 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_startup_bad__flags__prompt.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/startup/bad_flags_prompt.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/startup/bad_flags_prompt.cc +@@ -95,7 +95,7 @@ const char* const kBadFlags[] = { + extensions::switches::kExtensionsOnChromeURLs, + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Speech dispatcher is buggy, it can crash and it can make Chrome freeze. + // http://crbug.com/327295 + switches::kEnableSpeechDispatcher, diff --git a/devel/electron36/files/patch-chrome_browser_ui_startup_startup__browser__creator.cc b/devel/electron36/files/patch-chrome_browser_ui_startup_startup__browser__creator.cc new file mode 100644 index 000000000000..ccb2ee5e6531 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_startup_startup__browser__creator.cc @@ -0,0 +1,38 @@ +--- chrome/browser/ui/startup/startup_browser_creator.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/startup/startup_browser_creator.cc +@@ -134,7 +134,7 @@ + #include "chrome/credential_provider/common/gcp_strings.h" + #endif // BUILDFLAG(IS_WIN) + +-#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/headless/headless_mode_util.h" + #include "chrome/browser/ui/startup/web_app_info_recorder_utils.h" + #include "components/headless/policy/headless_mode_policy.h" +@@ -978,7 +978,7 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( + TRACE_EVENT0("startup", "StartupBrowserCreator::ProcessCmdLineImpl"); + ComputeAndRecordLaunchMode(command_line); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (headless::IsHeadlessMode() && + headless::HeadlessModePolicy::IsHeadlessModeDisabled( + g_browser_process->local_state())) { +@@ -1081,7 +1081,7 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( + silent_launch = true; + } + +-#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 to the specified file without + // launching a new browser window or tab. + if (base::FeatureList::IsEnabled(features::kListWebAppsSwitch) && +@@ -1298,7 +1298,7 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( + CHECK_EQ(profile_info.mode, StartupProfileMode::kBrowserWindow) + << "Failed launch with app: couldn't pick a profile"; + std::string app_id = command_line.GetSwitchValueASCII(switches::kAppId); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If Chrome Apps are deprecated and |app_id| is a Chrome App, display the + // deprecation UI instead of launching the app. + if (apps::OpenDeprecatedApplicationPrompt(privacy_safe_profile, app_id)) { diff --git a/devel/electron36/files/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc b/devel/electron36/files/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc new file mode 100644 index 000000000000..3b9b5efe2445 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/startup/startup_browser_creator_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/startup/startup_browser_creator_impl.cc +@@ -76,7 +76,7 @@ + #include "components/app_restore/full_restore_utils.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 "chrome/browser/ui/webui/whats_new/whats_new_fetcher.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + +@@ -208,7 +208,7 @@ Browser* StartupBrowserCreatorImpl::OpenTabsInBrowser( + // at the state of the MessageLoop. + Browser::CreateParams params = Browser::CreateParams(profile_, false); + params.creation_source = Browser::CreationSource::kStartupCreator; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + params.startup_id = + command_line_->GetSwitchValueASCII("desktop-startup-id"); + #endif +@@ -238,7 +238,7 @@ Browser* StartupBrowserCreatorImpl::OpenTabsInBrowser( + continue; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Start the What's New fetch but don't add the tab at this point. The tab + // will open as the foreground tab only if the remote content can be + // retrieved successfully. This prevents needing to automatically close the diff --git a/devel/electron36/files/patch-chrome_browser_ui_startup_startup__tab__provider.cc b/devel/electron36/files/patch-chrome_browser_ui_startup_startup__tab__provider.cc new file mode 100644 index 000000000000..ba3a1854d86a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_startup_startup__tab__provider.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/startup/startup_tab_provider.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/startup/startup_tab_provider.cc +@@ -62,7 +62,7 @@ + #include "extensions/browser/extension_registry.h" + #endif // !BUILDFLAG(IS_ANDROID) + +-#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/headless/headless_mode_util.h" + #endif + +@@ -101,7 +101,7 @@ bool ValidateUrl(const GURL& url) { + #endif // BUILDFLAG(IS_CHROMEOS) + + bool url_scheme_is_chrome = false; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // In Headless mode, allow any URL pattern that matches chrome:// scheme if + // the user explicitly allowed it. + if (headless::IsHeadlessMode() && url.SchemeIs(content::kChromeUIScheme)) { diff --git a/devel/electron36/files/patch-chrome_browser_ui_tab__helpers.cc b/devel/electron36/files/patch-chrome_browser_ui_tab__helpers.cc new file mode 100644 index 000000000000..33e3a3be9869 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_tab__helpers.cc @@ -0,0 +1,26 @@ +--- chrome/browser/ui/tab_helpers.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/tab_helpers.cc +@@ -218,7 +218,7 @@ + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/blocked_content/framebust_block_tab_helper.h" + #include "chrome/browser/ui/browser_finder.h" + #include "chrome/browser/ui/hats/hats_helper.h" +@@ -697,12 +697,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_con + webapps::PreRedirectionURLObserver::CreateForWebContents(web_contents); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + metrics::DesktopSessionDurationObserver::CreateForWebContents(web_contents); + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled( + features::kHappinessTrackingSurveysForDesktopDemo) || + base::FeatureList::IsEnabled(features::kTrustSafetySentimentSurvey) || diff --git a/devel/electron36/files/patch-chrome_browser_ui_tabs_features.cc b/devel/electron36/files/patch-chrome_browser_ui_tabs_features.cc new file mode 100644 index 000000000000..5fcf67dc43d5 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_tabs_features.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/tabs/features.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/tabs/features.cc +@@ -47,7 +47,7 @@ bool CanShowTabSearchPositionSetting() { + } + // Mac and other platforms will always have the tab search position in the + // correct location, cros/linux/win git the user the option to change. +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled(kTabSearchPositionSetting); + #else + return false; diff --git a/devel/electron36/files/patch-chrome_browser_ui_tabs_tab__dialog__manager.cc b/devel/electron36/files/patch-chrome_browser_ui_tabs_tab__dialog__manager.cc new file mode 100644 index 000000000000..74fb27cf89e6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_tabs_tab__dialog__manager.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/tabs/tab_dialog_manager.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/tabs/tab_dialog_manager.cc +@@ -83,7 +83,7 @@ bool PlatformClipsChildrenToViewport() { + } + + bool PlatformClipsChildrenToViewport() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron36/files/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc b/devel/electron36/files/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc new file mode 100644 index 000000000000..f6b3f1c53296 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/tabs/tab_strip_prefs.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/tabs/tab_strip_prefs.cc +@@ -21,7 +21,7 @@ bool GetDefaultTabSearchRightAligned() { + + bool GetDefaultTabSearchRightAligned() { + // These platforms are all left aligned, the others should be right. +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return false; + #else + return true; diff --git a/devel/electron36/files/patch-chrome_browser_ui_task__manager_task__manager__columns.h b/devel/electron36/files/patch-chrome_browser_ui_task__manager_task__manager__columns.h new file mode 100644 index 000000000000..88d75a9e5c58 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_task__manager_task__manager__columns.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/task_manager/task_manager_columns.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/task_manager/task_manager_columns.h +@@ -277,7 +277,7 @@ inline constexpr std::array kColumns = { + .default_visibility = false}, + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + TableColumnData{.id = IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN, + .align = ui::TableColumn::RIGHT, + .width = -1, diff --git a/devel/electron36/files/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc b/devel/electron36/files/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc new file mode 100644 index 000000000000..d30f83033a50 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc @@ -0,0 +1,38 @@ +--- chrome/browser/ui/task_manager/task_manager_table_model.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/task_manager/task_manager_table_model.cc +@@ -419,7 +419,7 @@ TaskManagerTableModel::~TaskManagerTableModel() { + // Note: system_total_time_ is used for both since there is no functional + // difference between browser & system (they are essentially the same tab). + // Instead, the data is routed to the platform appropriate bucket. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + task_manager::RecordTabSwitchEvent(CategoryRecord::kBrowser, + system_total_time_); + #elif BUILDFLAG(IS_CHROMEOS) +@@ -560,7 +560,7 @@ std::u16string TaskManagerTableModel::GetText(size_t r + ? stringifier_->backgrounded_string() + : stringifier_->foregrounded_string(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: { + const int fd_count = observed_task_manager()->GetOpenFdCount(tasks_[row]); + return fd_count >= 0 ? base::FormatNumber(fd_count) +@@ -723,7 +723,7 @@ int TaskManagerTableModel::CompareValues(size_t row1, + return BooleanCompare(is_proc1_bg, is_proc2_bg); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: { + const int proc1_fd_count = + observed_task_manager()->GetOpenFdCount(tasks_[row1]); +@@ -1030,7 +1030,7 @@ void TaskManagerTableModel::UpdateRefreshTypes(int col + type = REFRESH_TYPE_KEEPALIVE_COUNT; + break; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: + type = REFRESH_TYPE_FD_COUNT; + break; diff --git a/devel/electron36/files/patch-chrome_browser_ui_test_popup__browsertest.cc b/devel/electron36/files/patch-chrome_browser_ui_test_popup__browsertest.cc new file mode 100644 index 000000000000..14c84a8d2623 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_test_popup__browsertest.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/test/popup_browsertest.cc.orig 2024-10-16 21:31:02 UTC ++++ chrome/browser/ui/test/popup_browsertest.cc +@@ -75,7 +75,7 @@ IN_PROC_BROWSER_TEST_F(PopupTest, OpenLeftAndTopZeroCo + const display::Display display = GetDisplayNearestBrowser(popup); + gfx::Rect expected(popup->window()->GetBounds().size()); + expected.AdjustToFit(display.work_area()); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/40815883) Desktop Linux window bounds are inaccurate. + expected.Outset(50); + EXPECT_TRUE(expected.Contains(popup->window()->GetBounds())) +@@ -107,7 +107,7 @@ IN_PROC_BROWSER_TEST_F(PopupTest, OpenClampedToCurrent + // The popup should be constrained to the opener's available display space. + EXPECT_EQ(display, GetDisplayNearestBrowser(popup)); + gfx::Rect work_area(display.work_area()); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/40815883) Desktop Linux bounds flakily extend outside the + // work area on trybots, when opening with excessive width and height, e.g.: + // width=${screen.availWidth+300},height=${screen.availHeight+300} yields: diff --git a/devel/electron36/files/patch-chrome_browser_ui_test_test__browser__ui.cc b/devel/electron36/files/patch-chrome_browser_ui_test_test__browser__ui.cc new file mode 100644 index 000000000000..5db9e49adc82 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_test_test__browser__ui.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/test/test_browser_ui.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/test/test_browser_ui.cc +@@ -19,7 +19,7 @@ + #include "ui/views/widget/widget.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 "content/public/common/content_switches.h" + #include "ui/base/test/skia_gold_matching_algorithm.h" + #include "ui/compositor/compositor.h" +@@ -33,7 +33,7 @@ + #endif + + // TODO(crbug.com/40625383) support Mac for pixel tests. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define SUPPORTS_PIXEL_TEST + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_ui_ui__features.cc b/devel/electron36/files/patch-chrome_browser_ui_ui__features.cc new file mode 100644 index 000000000000..788802954a76 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_ui__features.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/ui_features.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/ui_features.cc +@@ -45,7 +45,7 @@ bool IsExtensionMenuInRootAppMenu() { + return base::FeatureList::IsEnabled(kExtensionsMenuInAppMenu); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Enables the feature to remove the last confirmation dialog when relaunching + // to update Chrome. + BASE_FEATURE(kFewerUpdateConfirmations, +@@ -326,7 +326,7 @@ BASE_FEATURE(kViewsJSAppModalDialog, + base::FEATURE_DISABLED_BY_DEFAULT); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kUsePortalAccentColor, + "UsePortalAccentColor", + base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-chrome_browser_ui_ui__features.h b/devel/electron36/files/patch-chrome_browser_ui_ui__features.h new file mode 100644 index 000000000000..4a12d7d49ef6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_ui__features.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/ui_features.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/ui_features.h +@@ -31,7 +31,7 @@ bool IsExtensionMenuInRootAppMenu(); + BASE_DECLARE_FEATURE(kExtensionsMenuInAppMenu); + bool IsExtensionMenuInRootAppMenu(); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_DECLARE_FEATURE(kFewerUpdateConfirmations); + #endif + +@@ -203,7 +203,7 @@ BASE_DECLARE_FEATURE(kViewsJSAppModalDialog); + BASE_DECLARE_FEATURE(kViewsJSAppModalDialog); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + BASE_DECLARE_FEATURE(kUsePortalAccentColor); + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_accelerator__table.cc b/devel/electron36/files/patch-chrome_browser_ui_views_accelerator__table.cc new file mode 100644 index 000000000000..adcef49aa6fe --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_accelerator__table.cc @@ -0,0 +1,34 @@ +--- chrome/browser/ui/views/accelerator_table.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/accelerator_table.cc +@@ -70,11 +70,11 @@ const AcceleratorMapping kAcceleratorMap[] = { + {ui::VKEY_S, ui::EF_PLATFORM_ACCELERATOR, IDC_SAVE_PAGE}, + {ui::VKEY_9, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_LAST_TAB}, + {ui::VKEY_NUMPAD9, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_LAST_TAB}, +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {ui::VKEY_9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB}, + {ui::VKEY_NUMPAD9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB}, + #endif // BUILDFLAG(IS_LINUX) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + {ui::VKEY_NEXT, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, IDC_MOVE_TAB_NEXT}, + {ui::VKEY_PRIOR, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, + IDC_MOVE_TAB_PREVIOUS}, +@@ -102,7 +102,7 @@ const AcceleratorMapping kAcceleratorMap[] = { + {ui::VKEY_NUMPAD7, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_6}, + {ui::VKEY_8, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_7}, + {ui::VKEY_NUMPAD8, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_7}, +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {ui::VKEY_1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0}, + {ui::VKEY_NUMPAD1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0}, + {ui::VKEY_2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1}, +@@ -154,7 +154,7 @@ const AcceleratorMapping kAcceleratorMap[] = { + IDC_SHOW_AVATAR_MENU}, + + // Platform-specific key maps. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {ui::VKEY_BROWSER_BACK, ui::EF_NONE, IDC_BACK}, + {ui::VKEY_BROWSER_FORWARD, ui::EF_NONE, IDC_FORWARD}, + {ui::VKEY_BROWSER_HOME, ui::EF_NONE, IDC_HOME}, diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc b/devel/electron36/files/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc new file mode 100644 index 000000000000..a57eb9bce74d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc +@@ -19,7 +19,7 @@ + #include "ui/menus/simple_menu_model.h" + #include "ui/views/widget/widget.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/shell_integration_linux.h" + #endif + +@@ -49,7 +49,7 @@ void ChromeNativeAppWindowViewsAura::OnBeforeWidgetIni + const AppWindow::CreateParams& create_params, + views::Widget::InitParams* init_params, + views::Widget* widget) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string app_name = + web_app::GenerateApplicationNameFromAppId(app_window()->extension_id()); + // Set up a custom WM_CLASS for app windows. This allows task switchers in diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc b/devel/electron36/files/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc new file mode 100644 index 000000000000..f71a5e127622 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc +@@ -39,7 +39,7 @@ + #include "ui/wm/core/wm_state.h" + #endif // defined(USE_AURA) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include <sys/stat.h> + #include <sys/types.h> + #include <unistd.h> +@@ -135,7 +135,7 @@ void ChromeBrowserMainExtraPartsViews::PreProfileInit( + return controller; + })); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On the Linux desktop, we want to prevent the user from logging in as root, + // so that we don't destroy the profile. Now that we have some minimal ui + // initialized, check to see if we're running as root and bail if we are. diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_chrome__views__delegate.h b/devel/electron36/files/patch-chrome_browser_ui_views_chrome__views__delegate.h new file mode 100644 index 000000000000..a09ccdab8b74 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_chrome__views__delegate.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/chrome_views_delegate.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/chrome_views_delegate.h +@@ -52,7 +52,7 @@ class ChromeViewsDelegate : public views::ViewsDelegat + base::OnceClosure callback) override; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool WindowManagerProvidesTitleBar(bool maximized) override; + gfx::ImageSkia* GetDefaultWindowIcon() const override; + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc b/devel/electron36/files/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc new file mode 100644 index 000000000000..73124c3bda09 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/chrome_views_delegate_linux.cc.orig 2024-06-18 21:43:24 UTC ++++ chrome/browser/ui/views/chrome_views_delegate_linux.cc +@@ -26,7 +26,7 @@ bool IsDesktopEnvironmentUnity() { + return desktop_env == base::nix::DESKTOP_ENVIRONMENT_UNITY; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + int GetWindowIconResourceId() { + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + switch (chrome::GetChannel()) { +@@ -80,7 +80,7 @@ views::NativeWidget* ChromeViewsDelegate::CreateNative + delegate); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + gfx::ImageSkia* ChromeViewsDelegate::GetDefaultWindowIcon() const { + ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); + return rb.GetImageSkiaNamed(GetWindowIconResourceId()); diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc new file mode 100644 index 000000000000..2db2ffd2fe90 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/compose/compose_dialog_view.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/compose/compose_dialog_view.cc +@@ -160,7 +160,7 @@ void ComposeDialogView::OnBeforeBubbleWidgetInit( + views::Widget::InitParams* params, + views::Widget* widget) const { + WebUIBubbleDialogView::OnBeforeBubbleWidgetInit(params, widget); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // In linux, windows 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/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame.cc new file mode 100644 index 000000000000..569e161b28ae --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame.cc @@ -0,0 +1,56 @@ +--- chrome/browser/ui/views/frame/browser_frame.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/frame/browser_frame.cc +@@ -52,7 +52,7 @@ + #include "ui/aura/window.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/display/screen.h" + #include "ui/linux/linux_ui.h" + #endif +@@ -87,7 +87,7 @@ bool IsUsingLinuxSystemTheme(Profile* profile) { + }; + + bool IsUsingLinuxSystemTheme(Profile* profile) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme(); + #else + return false; +@@ -184,7 +184,7 @@ void BrowserFrame::InitBrowserFrame() { + + Init(std::move(params)); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + SelectNativeTheme(); + #else + SetNativeTheme(ui::NativeTheme::GetInstanceForNativeUi()); +@@ -370,7 +370,7 @@ void BrowserFrame::OnNativeWidgetWorkspaceChanged() { + chrome::SaveWindowWorkspace(browser_view_->browser(), GetWorkspace()); + chrome::SaveWindowVisibleOnAllWorkspaces(browser_view_->browser(), + IsVisibleOnAllWorkspaces()); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If the window was sent to a different workspace, prioritize it if + // it was sent to the current workspace and deprioritize it + // otherwise. This is done by MoveBrowsersInWorkspaceToFront() +@@ -568,7 +568,7 @@ void BrowserFrame::SelectNativeTheme() { + } + + void BrowserFrame::SelectNativeTheme() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Use the regular NativeTheme instance if running incognito mode, regardless + // of system theme (gtk, qt etc). + ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForNativeUi(); +@@ -609,7 +609,7 @@ bool BrowserFrame::RegenerateFrameOnThemeChange( + bool BrowserFrame::RegenerateFrameOnThemeChange( + BrowserThemeChangeType theme_change_type) { + bool need_regenerate = false; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // System and user theme changes can both change frame buttons, so the frame + // always needs to be regenerated on Linux. + need_regenerate = true; diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame.h b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame.h new file mode 100644 index 000000000000..a32af351ca8a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/frame/browser_frame.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/frame/browser_frame.h +@@ -66,7 +66,7 @@ class BrowserFrame : public views::Widget, public view + + ~BrowserFrame() override; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns whether the frame is in a tiled state. + bool tiled() const { return tiled_; } + void set_tiled(bool tiled) { tiled_ = tiled; } +@@ -227,7 +227,7 @@ class BrowserFrame : public views::Widget, public view + // contents for smoother dragging. + TabDragKind tab_drag_kind_ = TabDragKind::kNone; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool tiled_ = false; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc new file mode 100644 index 000000000000..27f0d6ba6915 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc.orig 2024-10-16 21:31:02 UTC ++++ chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc +@@ -54,7 +54,7 @@ gfx::Insets BrowserFrameViewLayoutLinux::RestoredFrame + OpaqueBrowserFrameViewLayout::RestoredFrameBorderInsets()); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const bool tiled = delegate_->IsTiled(); + #else + const bool tiled = false; diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc new file mode 100644 index 000000000000..b1327efcd062 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.cc +@@ -18,7 +18,7 @@ ui::WindowFrameProvider* BrowserFrameViewLayoutLinuxNa + + ui::WindowFrameProvider* BrowserFrameViewLayoutLinuxNative::GetFrameProvider() + const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const bool tiled = delegate_->IsTiled(); + const bool maximized = delegate_->IsMaximized(); + #else diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc new file mode 100644 index 000000000000..a900741212fc --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/frame/browser_frame_view_linux.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/frame/browser_frame_view_linux.cc +@@ -70,7 +70,7 @@ void BrowserFrameViewLinux::PaintRestoredFrameBorder( + + void BrowserFrameViewLinux::PaintRestoredFrameBorder( + gfx::Canvas* canvas) const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const bool tiled = frame()->tiled(); + #else + const bool tiled = false; +@@ -125,7 +125,7 @@ float BrowserFrameViewLinux::GetRestoredCornerRadiusDi + } + + float BrowserFrameViewLinux::GetRestoredCornerRadiusDip() const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const bool tiled = frame()->tiled(); + #else + const bool tiled = false; diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc new file mode 100644 index 000000000000..88de247f2e26 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc +@@ -15,7 +15,7 @@ + #include "chrome/browser/ui/views/frame/browser_frame_view_win.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h" + #include "chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.h" + #include "chrome/browser/ui/views/frame/browser_frame_view_linux_native.h" +@@ -32,7 +32,7 @@ std::unique_ptr<OpaqueBrowserFrameView> CreateOpaqueBr + std::unique_ptr<OpaqueBrowserFrameView> CreateOpaqueBrowserFrameView( + BrowserFrame* frame, + BrowserView* browser_view) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* profile = browser_view->browser()->profile(); + auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile); + auto* theme_service_factory = ThemeServiceFactory::GetForProfile(profile); diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__view.cc new file mode 100644 index 000000000000..96b1190ca49f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_browser__view.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/frame/browser_view.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/frame/browser_view.cc +@@ -2581,7 +2581,7 @@ void BrowserView::TabDraggingStatusChanged(bool is_dra + } + + void BrowserView::TabDraggingStatusChanged(bool is_dragging) { +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + GetContentsWebView()->SetFastResize(is_dragging); + if (multi_contents_view_) { + multi_contents_view_->GetInactiveContentsView()->SetFastResize(is_dragging); +@@ -5825,7 +5825,7 @@ void BrowserView::MaybeShowSupervisedUserProfileSignIn + } + + void BrowserView::MaybeShowSupervisedUserProfileSignInIPH() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!ShouldShowAvatarToolbarIPH()) { + return; + } diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc new file mode 100644 index 000000000000..d528b7d5da4d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc @@ -0,0 +1,38 @@ +--- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/views/frame/opaque_browser_frame_view.cc +@@ -54,7 +54,7 @@ + #include "ui/views/window/vector_icons/vector_icons.h" + #include "ui/views/window/window_shape.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/views/controls/menu/menu_runner.h" + #endif + +@@ -572,7 +572,7 @@ OpaqueBrowserFrameView::GetFrameButtonStyle() const { + + OpaqueBrowserFrameView::FrameButtonStyle + OpaqueBrowserFrameView::GetFrameButtonStyle() const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return FrameButtonStyle::kMdButton; + #else + return FrameButtonStyle::kImageButton; +@@ -591,7 +591,7 @@ bool OpaqueBrowserFrameView::ShouldDrawRestoredFrameSh + return false; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool OpaqueBrowserFrameView::IsTiled() const { + return frame()->tiled(); + } +@@ -794,7 +794,7 @@ void OpaqueBrowserFrameView::WindowIconPressed() { + } + + void OpaqueBrowserFrameView::WindowIconPressed() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Chrome OS doesn't show the window icon, and Windows handles this on its own + // due to the hit test being HTSYSMENU. + menu_runner_ = std::make_unique<views::MenuRunner>( diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h b/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h new file mode 100644 index 000000000000..6278bbb15754 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/frame/opaque_browser_frame_view.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/frame/opaque_browser_frame_view.h +@@ -110,7 +110,7 @@ class OpaqueBrowserFrameView : public BrowserNonClient + FrameButtonStyle GetFrameButtonStyle() const override; + void UpdateWindowControlsOverlay(const gfx::Rect& bounding_rect) override; + bool ShouldDrawRestoredFrameShadow() const override; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool IsTiled() const override; + #endif + int WebAppButtonHeight() const override; +@@ -227,7 +227,7 @@ class OpaqueBrowserFrameView : public BrowserNonClient + // Background painter for the window frame. + std::unique_ptr<views::FrameBackground> frame_background_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<views::MenuRunner> menu_runner_; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h b/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h new file mode 100644 index 000000000000..9764cdf74f73 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_delegate.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_delegate.h +@@ -9,7 +9,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/base/ui_base_types.h" + #endif + +@@ -92,7 +92,7 @@ class OpaqueBrowserFrameViewLayoutDelegate { + // Returns true if a client-side shadow should be drawn for restored windows. + virtual bool ShouldDrawRestoredFrameShadow() const = 0; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns whether the window is in a tiled state. + virtual bool IsTiled() const = 0; + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc new file mode 100644 index 000000000000..5f6034932a2b --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc @@ -0,0 +1,101 @@ +--- chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc +@@ -62,7 +62,7 @@ + #include "ui/aura/window.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/themes/theme_service.h" + #include "chrome/browser/themes/theme_service_factory.h" + #include "chrome/browser/ui/views/frame/browser_frame_view_paint_utils_linux.h" +@@ -76,7 +76,7 @@ + + // Windows, Mac and CrOS do not clip child widgets to their parents, so we + // don't have to worry about resizing quite as much. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define PLATFORM_CLIPS_CHILD_WINDOWS + #endif + +@@ -89,7 +89,7 @@ constexpr int kTopControlsHeight = 34; + // The height of the controls bar at the top of the window. + constexpr int kTopControlsHeight = 34; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Frame border when window shadow is not drawn. + constexpr int kFrameBorderThickness = 4; + #endif +@@ -184,7 +184,7 @@ class WindowEventObserver : public ui::EventObserver { + + gfx::Rect input_bounds = pip_browser_frame_view_->GetLocalBounds(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Calculate input bounds for Linux. This is needed because the input bounds + // is not necessary the same as the local bounds on Linux. + if (pip_browser_frame_view_->ShouldDrawFrameShadow()) { +@@ -630,7 +630,7 @@ PictureInPictureBrowserFrameView::PictureInPictureBrow + AddChildView(std::move(auto_pip_setting_overlay)); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* profile = browser_view->browser()->profile(); + auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile); + auto* theme_service_factory = ThemeServiceFactory::GetForProfile(profile); +@@ -855,7 +855,7 @@ void PictureInPictureBrowserFrameView::OnThemeChanged( + view->SetIconColor(color_provider->GetColor(kColorPipWindowForeground)); + } + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // On Linux the top bar background will be drawn in OnPaint(). + top_bar_container_view_->SetBackground(views::CreateSolidBackground( + color_provider->GetColor(kColorPipWindowTopBarBackground))); +@@ -944,7 +944,7 @@ void PictureInPictureBrowserFrameView::RemovedFromWidg + BrowserNonClientFrameView::RemovedFromWidget(); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + gfx::Insets + PictureInPictureBrowserFrameView::RestoredMirroredFrameBorderInsets() const { + auto border = FrameBorderInsets(); +@@ -1235,7 +1235,7 @@ void PictureInPictureBrowserFrameView::OnPaint(gfx::Ca + // views::View implementations: + + void PictureInPictureBrowserFrameView::OnPaint(gfx::Canvas* canvas) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Draw the PiP window frame borders and shadows, including the top bar + // background. + if (window_frame_provider_) { +@@ -1390,7 +1390,7 @@ gfx::Insets PictureInPictureBrowserFrameView::FrameBor + } + + gfx::Insets PictureInPictureBrowserFrameView::FrameBorderInsets() const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (window_frame_provider_) { + const auto insets = window_frame_provider_->GetFrameThicknessDip(); + const bool tiled = frame()->tiled(); +@@ -1408,7 +1408,7 @@ gfx::Insets PictureInPictureBrowserFrameView::ResizeBo + } + + gfx::Insets PictureInPictureBrowserFrameView::ResizeBorderInsets() const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return FrameBorderInsets(); + #elif !BUILDFLAG(IS_CHROMEOS) + return gfx::Insets(kResizeBorder); +@@ -1429,7 +1429,7 @@ gfx::Size PictureInPictureBrowserFrameView::GetNonClie + top_height + border_thickness.bottom()); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool PictureInPictureBrowserFrameView::ShouldDrawFrameShadow() const { + return static_cast<DesktopBrowserFrameAuraLinux*>( + frame()->native_browser_frame()) diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h b/devel/electron36/files/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h new file mode 100644 index 000000000000..3c523d83f103 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h @@ -0,0 +1,38 @@ +--- chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h +@@ -30,7 +30,7 @@ + #include "ui/views/layout/flex_layout_view.h" + #include "ui/views/widget/widget_observer.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/window_frame_provider.h" + #endif + +@@ -87,7 +87,7 @@ class PictureInPictureBrowserFrameView + void Layout(PassKey) override; + void AddedToWidget() override; + void RemovedFromWidget() override; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + gfx::Insets RestoredMirroredFrameBorderInsets() const override; + gfx::Insets GetInputInsets() const override; + SkRRect GetRestoredClipRegion() const override; +@@ -179,7 +179,7 @@ class PictureInPictureBrowserFrameView + // Returns true if there's an overlay view that's currently shown. + bool IsOverlayViewVisible() const; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns whether a client-side shadow should be drawn for the window. + bool ShouldDrawFrameShadow() const; + +@@ -388,7 +388,7 @@ class PictureInPictureBrowserFrameView + // `top_bar_color_animation_`. + std::optional<SkColor> current_foreground_color_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Used to draw window frame borders and shadow on Linux when GTK theme is + // enabled. + raw_ptr<ui::WindowFrameProvider> window_frame_provider_ = nullptr; diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc new file mode 100644 index 000000000000..5c1989a2c94e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/views/frame/system_menu_model_builder.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/frame/system_menu_model_builder.cc +@@ -74,7 +74,7 @@ void SystemMenuModelBuilder::BuildSystemMenuForBrowser + + void SystemMenuModelBuilder::BuildSystemMenuForBrowserWindow( + ui::SimpleMenuModel* model) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + model->AddItemWithStringId(IDC_MINIMIZE_WINDOW, IDS_MINIMIZE_WINDOW_MENU); + model->AddItemWithStringId(IDC_MAXIMIZE_WINDOW, IDS_MAXIMIZE_WINDOW_MENU); + model->AddItemWithStringId(IDC_RESTORE_WINDOW, IDS_RESTORE_WINDOW_MENU); +@@ -92,7 +92,7 @@ void SystemMenuModelBuilder::BuildSystemMenuForBrowser + model->AddSeparator(ui::NORMAL_SEPARATOR); + model->AddItemWithStringId(IDC_TASK_MANAGER_CONTEXT_MENU, IDS_TASK_MANAGER); + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + model->AddSeparator(ui::NORMAL_SEPARATOR); + bool supports_server_side_decorations = true; + #if BUILDFLAG(IS_OZONE) && !BUILDFLAG(IS_CHROMEOS) +@@ -166,7 +166,7 @@ void SystemMenuModelBuilder::BuildSystemMenuForAppOrPo + model->AddSeparator(ui::NORMAL_SEPARATOR); + model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER); + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + model->AddSeparator(ui::NORMAL_SEPARATOR); + model->AddItemWithStringId(IDC_CLOSE_WINDOW, IDS_CLOSE); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc new file mode 100644 index 000000000000..3dae621fce31 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/views/frame/system_menu_model_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/frame/system_menu_model_delegate.cc +@@ -20,7 +20,7 @@ + #include "chromeos/ui/frame/desks/move_to_desks_menu_model.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/common/pref_names.h" + #include "components/prefs/pref_service.h" + #endif +@@ -39,7 +39,7 @@ bool SystemMenuModelDelegate::IsCommandIdChecked(int c + SystemMenuModelDelegate::~SystemMenuModelDelegate() = default; + + bool SystemMenuModelDelegate::IsCommandIdChecked(int command_id) const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (command_id == IDC_USE_SYSTEM_TITLE_BAR) { + PrefService* prefs = browser_->profile()->GetPrefs(); + return !prefs->GetBoolean(prefs::kUseCustomChromeFrame); +@@ -59,7 +59,7 @@ bool SystemMenuModelDelegate::IsCommandIdVisible(int c + } + + bool SystemMenuModelDelegate::IsCommandIdVisible(int command_id) const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool is_maximized = browser_->window()->IsMaximized(); + switch (command_id) { + case IDC_MAXIMIZE_WINDOW: diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc new file mode 100644 index 000000000000..50cad1e8cc84 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/tab_strip_region_view.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/frame/tab_strip_region_view.cc +@@ -222,7 +222,7 @@ TabStripRegionView::TabStripRegionView(std::unique_ptr + new_tab_button_->GetViewAccessibility().SetName( + l10n_util::GetStringUTF16(IDS_ACCNAME_NEWTAB)); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The New Tab Button can be middle-clicked on Linux. + new_tab_button_->SetTriggerableEventFlags( + new_tab_button_->GetTriggerableEventFlags() | diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_hung__renderer__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_hung__renderer__view.cc new file mode 100644 index 000000000000..4f53d0222be4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_hung__renderer__view.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/hung_renderer_view.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/hung_renderer_view.cc +@@ -452,7 +452,7 @@ void HungRendererDialogView::ForceCrashHungRenderer() + content::RenderProcessHost* rph = + hung_pages_table_model_->GetRenderWidgetHost()->GetProcess(); + if (rph) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // A generic |CrashDumpHungChildProcess()| is not implemented for Linux. + // Instead we send an explicit IPC to crash on the renderer's IO thread. + rph->ForceCrash(); diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc b/devel/electron36/files/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc new file mode 100644 index 000000000000..ff30d1a2d215 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/omnibox/omnibox_view_views.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/omnibox/omnibox_view_views.cc +@@ -2089,7 +2089,7 @@ void OmniboxViewViews::OnPopupOpened() { + } + + void OmniboxViewViews::OnPopupOpened() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // It's not great for promos to overlap the omnibox if the user opens the + // drop-down after showing the promo. This especially causes issues on Mac and + // Linux due to z-order/rendering issues, see crbug.com/1225046 and diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc b/devel/electron36/files/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc new file mode 100644 index 000000000000..9e75b74d83fc --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/passwords/password_bubble_view_base.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/passwords/password_bubble_view_base.cc +@@ -42,7 +42,7 @@ + #include "ui/base/metadata/metadata_impl_macros.h" + #include "ui/views/controls/button/button.h" + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/views/passwords/password_relaunch_chrome_view.h" + #endif + +@@ -175,7 +175,7 @@ PasswordBubbleViewBase* PasswordBubbleViewBase::Create + } else if (model_state == + password_manager::ui::NOTIFY_RECEIVED_SHARED_CREDENTIALS) { + view = new SharedPasswordsNotificationView(web_contents, anchor_view); +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + } else if (model_state == password_manager::ui::KEYCHAIN_ERROR_STATE) { + view = new RelaunchChromeView( + web_contents, anchor_view, diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_profiles_avatar__toolbar__button.cc b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_avatar__toolbar__button.cc new file mode 100644 index 000000000000..f2a95deb3df1 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_avatar__toolbar__button.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/profiles/avatar_toolbar_button.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/profiles/avatar_toolbar_button.cc +@@ -346,7 +346,7 @@ void AvatarToolbarButton::MaybeShowProfileSwitchIPH() + } + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void AvatarToolbarButton::MaybeShowSupervisedUserSignInIPH() { + if (!base::FeatureList::IsEnabled( + feature_engagement::kIPHSupervisedUserProfileSigninFeature)) { diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_profiles_avatar__toolbar__button.h b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_avatar__toolbar__button.h new file mode 100644 index 000000000000..fb2cfbdabc76 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_avatar__toolbar__button.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/profiles/avatar_toolbar_button.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/profiles/avatar_toolbar_button.h +@@ -84,7 +84,7 @@ class AvatarToolbarButton : public ToolbarButton { + // Attempts showing the In-Produce-Help for profile Switching. + void MaybeShowProfileSwitchIPH(); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Attempts showing the In-Produce-Help when a supervised user signs-in in a + // profile. + void MaybeShowSupervisedUserSignInIPH(); diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__coordinator.cc b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__coordinator.cc new file mode 100644 index 000000000000..74f888446d1f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__coordinator.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/profiles/profile_menu_coordinator.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/profiles/profile_menu_coordinator.cc +@@ -50,7 +50,7 @@ void ProfileMenuCoordinator::Show(bool is_source_accel + browser.window()->NotifyFeaturePromoFeatureUsed( + feature_engagement::kIPHProfileSwitchFeature, + FeaturePromoFeatureUsedAction::kClosePromoIfPresent); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + browser.window()->NotifyFeaturePromoFeatureUsed( + feature_engagement::kIPHSupervisedUserProfileSigninFeature, + FeaturePromoFeatureUsedAction::kClosePromoIfPresent); diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc new file mode 100644 index 000000000000..7d3b1d34966d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/views/profiles/profile_menu_view.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/profiles/profile_menu_view.cc +@@ -92,7 +92,7 @@ + #include "ui/strings/grit/ui_strings.h" + #include "ui/views/accessibility/view_accessibility.h" + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h" + #endif + +@@ -550,7 +550,7 @@ void ProfileMenuView::SetMenuTitleForAccessibility() { + case signin_util::SignedInState::kSignedOut: + case signin_util::SignedInState::kWebOnlySignedIn: { + std::string profile_user_display_name, profile_user_email; +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + profile_user_display_name = profile->GetPrefs()->GetString( + enterprise_signin::prefs::kProfileUserDisplayName); + profile_user_email = profile->GetPrefs()->GetString( +@@ -647,7 +647,7 @@ void ProfileMenuView::BuildIdentity() { + badge_image_model, menu_title_, menu_subtitle_, management_label); + } else { + std::string profile_user_display_name, profile_user_email; +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + profile_user_display_name = profile->GetPrefs()->GetString( + enterprise_signin::prefs::kProfileUserDisplayName); + profile_user_email = profile->GetPrefs()->GetString( diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc new file mode 100644 index 000000000000..5aa040830a1e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/profiles/profile_menu_view_base.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc +@@ -650,7 +650,7 @@ void ProfileMenuViewBase::SetProfileIdentityInfo( + ProfileMenuViewBase::kIdentityImageSize, kIdentityImageBorder, + /*has_dotted_ring=*/false); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // crbug.com/1161166: Orca does not read the accessible window title of the + // bubble, so we duplicate it in the top-level menu item. To be revisited + // after considering other options, including fixes on the AT side. diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__picker__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__picker__view.cc new file mode 100644 index 000000000000..5084a32b9a43 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_profile__picker__view.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/profiles/profile_picker_view.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/views/profiles/profile_picker_view.cc +@@ -85,7 +85,7 @@ + #include "chrome/browser/global_keyboard_shortcuts_mac.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/shell_integration_linux.h" + #endif + +@@ -115,7 +115,7 @@ class ProfilePickerWidget : public views::Widget { + views::Widget::InitParams params( + views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET); + params.delegate = profile_picker_view_; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + params.wm_class_name = shell_integration_linux::GetProgramClassName(); + params.wm_class_class = shell_integration_linux::GetProgramClassClass(); + params.wayland_app_id = params.wm_class_class; diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc new file mode 100644 index 000000000000..94fbd39e1c80 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc @@ -0,0 +1,47 @@ +--- chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc +@@ -65,7 +65,7 @@ const int kModalDialogWidth = 448; + namespace { + + const int kModalDialogWidth = 448; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const int kManagedUserNoticeConfirmationDialogWidth = 512; + const int kManagedUserNoticeConfirmationDialogHeight = 576; + const int kManagedUserNoticeConfirmationUpdatedDialogWidth = 780; +@@ -197,7 +197,7 @@ SigninViewControllerDelegateViews::CreateSignoutConfir + } + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // static + std::unique_ptr<views::WebView> + SigninViewControllerDelegateViews::CreateManagedUserNoticeConfirmationWebView( +@@ -382,7 +382,7 @@ SigninViewControllerDelegateViews::SigninViewControlle + + SetButtons(static_cast<int>(ui::mojom::DialogButton::kNone)); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On the local profile creation dialog, cancelling the dialog (for instance + // through the VKEY_ESCAPE accelerator) should delete the profile. + if (delete_profile_on_cancel) { +@@ -472,7 +472,7 @@ void SigninViewControllerDelegateViews::DisplayModal() + content_view_->RequestFocus(); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SigninViewControllerDelegateViews::DeleteProfileOnCancel() { + ProfileAttributesEntry* entry = + g_browser_process->profile_manager() +@@ -553,7 +553,7 @@ SigninViewControllerDelegate::CreateSignoutConfirmatio + } + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // static + SigninViewControllerDelegate* + SigninViewControllerDelegate::CreateManagedUserNoticeDelegate( diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h new file mode 100644 index 000000000000..cc1e8d11e7e1 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.h +@@ -73,7 +73,7 @@ class SigninViewControllerDelegateViews + SignoutConfirmationCallback callback); + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + static std::unique_ptr<views::WebView> + CreateManagedUserNoticeConfirmationWebView( + Browser* browser, +@@ -144,7 +144,7 @@ class SigninViewControllerDelegateViews + std::optional<int> dialog_width, + InitializeSigninWebDialogUI initialize_signin_web_dialog_ui); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Deletes the ephemeral profile when cancelling the local profile creation + // dialog. + void DeleteProfileOnCancel(); diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_tabs_dragging_tab__drag__controller.cc b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_dragging_tab__drag__controller.cc new file mode 100644 index 000000000000..808fdcdabfb6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_dragging_tab__drag__controller.cc @@ -0,0 +1,47 @@ +--- chrome/browser/ui/views/tabs/dragging/tab_drag_controller.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/tabs/dragging/tab_drag_controller.cc +@@ -190,7 +190,7 @@ void UpdateSystemDnDDragImage(TabDragContext* attached + + void UpdateSystemDnDDragImage(TabDragContext* attached_context, + const gfx::ImageSkia& image) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + VLOG(1) << __func__ << " image size=" << image.size().ToString(); + aura::Window* root_window = + attached_context->GetWidget()->GetNativeWindow()->GetRootWindow(); +@@ -381,7 +381,7 @@ TabDragController::Liveness TabDragController::Init( + // synchronous on desktop Linux, so use that. + // - ChromeOS Ash + // Releasing capture on Ash cancels gestures so avoid it. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ref->can_release_capture_ = false; + #endif + ref->start_point_in_screen_ = +@@ -889,7 +889,7 @@ TabDragController::Liveness TabDragController::DragBro + CHECK_EQ(SetCapture(target_context), Liveness::ALIVE); + } + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // EndMoveLoop is going to snap the window back to its original location. + // Hide it so users don't see this. Hiding a window in Linux aura causes + // it to lose capture so skip it. +@@ -1914,7 +1914,7 @@ void TabDragController::CompleteDrag() { + } + + // If source window was maximized - maximize the new window as well. +-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + // Keeping maximized state breaks snap to Grid on Windows when dragging + // tabs from maximized windows. TODO:(crbug.com/727051) Explore doing this + // for other desktop OS's. kMaximizedStateRetainedOnTabDrag in +@@ -2331,7 +2331,7 @@ TabDragController::Liveness TabDragController::GetLoca + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Exclude windows which are pending deletion via Browser::TabStripEmpty(). + // These windows can be returned in the Linux Aura port because the browser + // window which was used for dragging is not hidden once all of its tabs are diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab.cc b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab.cc new file mode 100644 index 000000000000..94de75ef9f08 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/tabs/tab.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/tabs/tab.cc +@@ -642,7 +642,7 @@ void Tab::MaybeUpdateHoverStatus(const ui::MouseEvent& + return; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Move the hit test area for hovering up so that it is not overlapped by tab + // hover cards when they are shown. + // TODO(crbug.com/41467565): Once Linux/CrOS widget transparency is solved, diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc new file mode 100644 index 000000000000..b6276b1f064a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.cc +@@ -380,7 +380,7 @@ TabHoverCardBubbleView::TabHoverCardBubbleView(Tab* ta + // not become active. Setting this to false creates the need to explicitly + // hide the hovercard on press, touch, and keyboard events. + SetCanActivate(false); +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + set_accept_events(false); + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__strip__combo__button.cc b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__strip__combo__button.cc new file mode 100644 index 000000000000..2a6f1da8a883 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__strip__combo__button.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/tabs/tab_strip_combo_button.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/tabs/tab_strip_combo_button.cc +@@ -97,7 +97,7 @@ TabStripComboButton::TabStripComboButton(BrowserWindow + base::BindRepeating(&TabStripComboButton::OnNewTabButtonStateChanged, + base::Unretained(this)))); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The New Tab Button can be middle-clicked on Linux. + new_tab_button->SetTriggerableEventFlags( + new_tab_button->GetTriggerableEventFlags() | ui::EF_MIDDLE_MOUSE_BUTTON); diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__style__views.cc b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__style__views.cc new file mode 100644 index 000000000000..e847fc5d1567 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_tabs_tab__style__views.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/tabs/tab_style_views.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/tabs/tab_style_views.cc +@@ -545,7 +545,7 @@ float TabStyleViewsImpl::GetCurrentActiveOpacity() con + if (!IsHoverAnimationActive()) { + return base_opacity; + } +- return std::lerp(base_opacity, GetHoverOpacity(), GetHoverAnimationValue()); ++ return std::lerp(base_opacity, GetHoverOpacity(), static_cast<float>(GetHoverAnimationValue())); + } + + TabActive TabStyleViewsImpl::GetApparentActiveState() const { diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_task__manager__search__bar__view.cc b/devel/electron36/files/patch-chrome_browser_ui_views_task__manager__search__bar__view.cc new file mode 100644 index 000000000000..7f9ead5ba92f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_task__manager__search__bar__view.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/task_manager_search_bar_view.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/views/task_manager_search_bar_view.cc +@@ -27,7 +27,7 @@ TaskManagerSearchBarView::TaskManagerSearchBarView( + const gfx::Insets& margins, + Delegate& delegate) + : delegate_(delegate) +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + , + textfield_placeholder_color_id_(kColorTaskManagerSearchBarPlaceholderText) + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc b/devel/electron36/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc new file mode 100644 index 000000000000..e3b4c2f79d50 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/user_education/browser_user_education_service.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/user_education/browser_user_education_service.cc +@@ -930,7 +930,7 @@ void MaybeRegisterChromeFeaturePromos( + "Triggered when a shared tab becomes the active tab."))); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // kIPHSupervisedUserProfileSigninFeature + registry.RegisterFeature(std::move( + FeaturePromoSpecification::CreateForCustomAction( +@@ -1209,7 +1209,7 @@ void MaybeRegisterChromeFeaturePromos( + "Triggered to inform users of the availability of the " + "new translate screen feature on the Lens Overlay."))); + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // kIPHDesktopPWAsLinkCapturingLaunch: + registry.RegisterFeature(std::move( + FeaturePromoSpecification::CreateForCustomAction( diff --git a/devel/electron36/files/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc b/devel/electron36/files/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc new file mode 100644 index 000000000000..d241988abb91 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc @@ -0,0 +1,83 @@ +--- chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc +@@ -510,7 +510,7 @@ std::string GetFileExtension(FileExtension file_extens + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + SiteConfig GetSiteConfigurationFromAppName(const std::string& app_name) { + SiteConfig config; + bool is_app_found = false; +@@ -2057,7 +2057,7 @@ void WebAppIntegrationTestDriver::DeletePlatformShortc + if (app_name.empty()) { + app_name = GetSiteConfiguration(site).app_name; + } +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ASSERT_TRUE(override_registration_->test_override().IsShortcutCreated( + profile(), app_id, app_name)); + ASSERT_TRUE( +@@ -3377,7 +3377,7 @@ void WebAppIntegrationTestDriver::CheckRunOnOsLoginEna + app_state->id, app_state->name); + ASSERT_TRUE(icon_color.has_value()); + ASSERT_THAT(site_config.icon_color, testing::Eq(icon_color.value())); +-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ASSERT_TRUE(override_registration_->test_override().IsRunOnOsLoginEnabled( + profile(), app_state->id, app_state->name)); + #endif +@@ -3392,7 +3392,7 @@ void WebAppIntegrationTestDriver::CheckRunOnOsLoginDis + GetAppBySiteMode(after_state_change_action_state_.get(), profile(), site); + ASSERT_TRUE(app_state); + base::ScopedAllowBlockingForTesting allow_blocking; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ASSERT_FALSE(override_registration_->test_override().IsRunOnOsLoginEnabled( + profile(), app_state->id, app_state->name)); + #endif +@@ -3402,7 +3402,7 @@ void WebAppIntegrationTestDriver::CheckSiteHandlesFile + void WebAppIntegrationTestDriver::CheckSiteHandlesFile( + Site site, + FileExtension file_extension) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!BeforeStateCheckAction(__FUNCTION__)) { + return; + } +@@ -3418,7 +3418,7 @@ void WebAppIntegrationTestDriver::CheckSiteNotHandlesF + void WebAppIntegrationTestDriver::CheckSiteNotHandlesFile( + Site site, + FileExtension file_extension) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!BeforeStateCheckAction(__FUNCTION__)) { + return; + } +@@ -4243,7 +4243,7 @@ base::FilePath WebAppIntegrationTestDriver::GetShortcu + base::FilePath shortcut_dir, + const std::string& app_name, + const webapps::AppId& app_id) { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return override_registration_->test_override().GetShortcutPath( + profile(), shortcut_dir, app_id, app_name); + #else +@@ -4443,7 +4443,7 @@ bool WebAppIntegrationTestDriver::IsShortcutAndIconCre + const webapps::AppId& id) { + base::ScopedAllowBlockingForTesting allow_blocking; + bool is_shortcut_and_icon_correct = false; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool is_shortcut_correct = + override_registration_->test_override().IsShortcutCreated(profile, id, + name); +@@ -4487,7 +4487,7 @@ bool WebAppIntegrationTestDriver::DoIconColorsMatch(Pr + do_icon_colors_match = + (expected_icon_pixel_color == shortcut_pixel_color_apps_folder.value()); + } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + SkColor expected_icon_pixel_color = + GetSiteConfigurationFromAppName(name).icon_color; + std::optional<SkColor> actual_color_install_icon_size = diff --git a/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__dialogs.h b/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__dialogs.h new file mode 100644 index 000000000000..158b33c0b96c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__dialogs.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/web_applications/web_app_dialogs.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/web_applications/web_app_dialogs.h +@@ -21,7 +21,7 @@ static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) | + #include "ui/gfx/native_widget_types.h" + + static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || +- BUILDFLAG(IS_CHROMEOS)); ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)); + + class GURL; + class Profile; diff --git a/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc b/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc new file mode 100644 index 000000000000..681a01a463b8 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc +@@ -519,7 +519,7 @@ void WebAppUiManagerImpl::MaybeShowIPHPromoForAppsLaun + Browser* browser, + Profile* profile, + const std::string& app_id) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + WebAppProvider* provider = WebAppProvider::GetForWebApps(profile); + CHECK(provider); + +@@ -748,7 +748,7 @@ void WebAppUiManagerImpl::ClearWebAppSiteDataIfNeeded( + } + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + const base::Feature& GetPromoFeatureEngagementFromBrowser( + const Browser* browser) { diff --git a/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h b/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h new file mode 100644 index 000000000000..985d420a8e92 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/web_applications/web_app_ui_manager_impl.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/web_applications/web_app_ui_manager_impl.h +@@ -225,7 +225,7 @@ class WebAppUiManagerImpl : public BrowserListObserver + UninstallCompleteCallback uninstall_complete_callback, + webapps::UninstallResultCode uninstall_code); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void ShowIPHPromoForAppsLaunchedViaLinkCapturing(const Browser* browser, + const webapps::AppId& app_id, + bool is_activated); diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_about_about__ui.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_about_about__ui.cc new file mode 100644 index 000000000000..db2c37fa0af0 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_about_about__ui.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/webui/about/about_ui.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/about/about_ui.cc +@@ -496,7 +496,7 @@ std::string ChromeURLs(content::BrowserContext* browse + 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, +@@ -538,7 +538,7 @@ TermsUIConfig::TermsUIConfig() + : AboutUIConfigBase(chrome::kChromeUITermsHost) {} + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + LinuxProxyConfigUI::LinuxProxyConfigUI() + : AboutUIConfigBase(chrome::kChromeUILinuxProxyConfigHost) {} + #endif +@@ -590,7 +590,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/devel/electron36/files/patch-chrome_browser_ui_webui_about_about__ui.h b/devel/electron36/files/patch-chrome_browser_ui_webui_about_about__ui.h new file mode 100644 index 000000000000..0f4aa4904e4c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_about_about__ui.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/webui/about/about_ui.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/about/about_ui.h +@@ -55,7 +55,7 @@ class TermsUIConfig : public AboutUIConfigBase { + }; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // chrome://linux-proxy-config + class LinuxProxyConfigUI : public AboutUIConfigBase { + public: diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc new file mode 100644 index 000000000000..5ebbd446a1b1 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/webui/app_home/app_home_page_handler.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/app_home/app_home_page_handler.cc +@@ -61,7 +61,7 @@ + #include "ui/base/window_open_disposition_utils.h" + #include "url/gurl.h" + +-static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)); ++static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)); + + using content::WebUI; + using extensions::Extension; diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h b/devel/electron36/files/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h new file mode 100644 index 000000000000..aecf7be8aa4c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/webui/app_home/app_home_page_handler.h.orig 2024-08-14 20:54:41 UTC ++++ chrome/browser/ui/webui/app_home/app_home_page_handler.h +@@ -24,7 +24,7 @@ + #include "mojo/public/cpp/bindings/receiver.h" + #include "mojo/public/cpp/bindings/remote.h" + +-static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)); ++static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)); + + class ExtensionEnableFlow; + diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_app__settings_web__app__settings__ui.h b/devel/electron36/files/patch-chrome_browser_ui_webui_app__settings_web__app__settings__ui.h new file mode 100644 index 000000000000..c0124e289d83 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_app__settings_web__app__settings__ui.h @@ -0,0 +1,18 @@ +--- chrome/browser/ui/webui/app_settings/web_app_settings_ui.h.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/webui/app_settings/web_app_settings_ui.h +@@ -14,13 +14,13 @@ + #include "ui/webui/mojo_web_ui_controller.h" + #include "ui/webui/resources/cr_components/app_management/app_management.mojom-forward.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 "chrome/common/webui_url_constants.h" + #include "content/public/browser/webui_config.h" + #include "content/public/common/url_constants.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || 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) + class WebAppSettingsUI; + + class WebAppSettingsUIConfig diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_certificate__manager__handler.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_certificate__manager__handler.cc new file mode 100644 index 000000000000..7f8d9f31326a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_certificate__manager__handler.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/webui/certificate_manager/certificate_manager_handler.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/certificate_manager/certificate_manager_handler.cc +@@ -221,7 +221,7 @@ CertificateManagerPageHandler::GetCertSource( + CERTIFICATE_TRUST_TYPE_DISTRUSTED, + profile_, &remote_client_); + break; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case certificate_manager_v2::mojom::CertificateSource:: + kProvisionedClientCert: + source_ptr = CreateProvisionedClientCertSource(profile_); diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_client__cert__sources.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_client__cert__sources.cc new file mode 100644 index 000000000000..747bc5698e5c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_client__cert__sources.cc @@ -0,0 +1,65 @@ +--- chrome/browser/ui/webui/certificate_manager/client_cert_sources.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/certificate_manager/client_cert_sources.cc +@@ -54,7 +54,7 @@ + #include "net/ssl/client_cert_store_mac.h" + #endif // BUILDFLAG(IS_MAC) + +-#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/browser_process.h" + #include "chrome/browser/enterprise/client_certificates/certificate_provisioning_service_factory.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" +@@ -177,7 +177,7 @@ class ClientCertStoreFactoryMac : public ClientCertSto + }; + #endif + +-#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + std::unique_ptr<ClientCertStoreLoader> CreatePlatformClientCertLoader( + Profile* profile) { + #if BUILDFLAG(IS_WIN) +@@ -192,7 +192,7 @@ std::unique_ptr<ClientCertStoreLoader> CreatePlatformC + } + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // ClientCertStore implementation that always returns an empty list. The + // CertificateProvisioningService implementation expects to wrap a platform + // cert store, but here we only want to get results from the provisioning +@@ -368,7 +368,7 @@ class ClientCertSource : public CertificateManagerPage + std::optional<net::CertificateList> certs_; + }; + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // ChromeOS currently can use either Kcer or NSS for listing client certs, and + // Linux uses NSS only. This interface provides an abstraction to hide that + // from WritableClientCertSource. Currently this class only handles reading +@@ -1099,7 +1099,7 @@ CreatePlatformClientCertSource( + mojo::Remote<certificate_manager_v2::mojom::CertificateManagerPage>* + remote_client, + Profile* profile) { +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<WritableClientCertSource>(remote_client, profile); + #else + return std::make_unique<ClientCertSource>( +@@ -1107,7 +1107,7 @@ CreatePlatformClientCertSource( + #endif + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<CertificateManagerPageHandler::CertSource> + CreateProvisionedClientCertSource(Profile* profile) { + return std::make_unique<ClientCertSource>( +@@ -1156,7 +1156,7 @@ bool ClientCertManagementAccessControls::IsChangeAllow + + return client_cert_policy_ == ClientCertificateManagementPermission::kAll; + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ClientCertManagementAccessControls::ClientCertManagementAccessControls( + Profile* profile) {} + diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_client__cert__sources.h b/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_client__cert__sources.h new file mode 100644 index 000000000000..ea28257d6747 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_certificate__manager_client__cert__sources.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/webui/certificate_manager/client_cert_sources.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/certificate_manager/client_cert_sources.h +@@ -19,7 +19,7 @@ CreatePlatformClientCertSource( + remote_client, + Profile* profile); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<CertificateManagerPageHandler::CertSource> + CreateProvisionedClientCertSource(Profile* profile); + #endif +@@ -29,7 +29,7 @@ CreateExtensionsClientCertSource(Profile* profile); + CreateExtensionsClientCertSource(Profile* profile); + #endif + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class ClientCertManagementAccessControls { + public: + enum KeyStorage { diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_chrome__web__ui__configs.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_chrome__web__ui__configs.cc new file mode 100644 index 000000000000..d2ae9eb6cdfb --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_chrome__web__ui__configs.cc @@ -0,0 +1,77 @@ +--- chrome/browser/ui/webui/chrome_web_ui_configs.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/chrome_web_ui_configs.cc +@@ -137,7 +137,7 @@ + #include "chrome/browser/ui/webui/conflicts/conflicts_ui.h" + #endif // BUILDFLAG(IS_WIN) + +-#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/ui/webui/app_settings/web_app_settings_ui.h" + #include "chrome/browser/ui/webui/browser_switch/browser_switch_ui.h" + #include "chrome/browser/ui/webui/signin/history_sync_optin/history_sync_optin_ui.h" +@@ -145,19 +145,19 @@ + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + + #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 // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) + + #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 // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) +@@ -185,7 +185,7 @@ + #include "chrome/browser/ui/webui/signin/signin_error_ui.h" + #endif // !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) + +-#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/ui/webui/on_device_translation_internals/on_device_translation_internals_ui.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + +@@ -323,7 +323,7 @@ void RegisterChromeWebUIConfigs() { + map.AddWebUIConfig(std::make_unique<WebUIJsErrorUIConfig>()); + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + map.AddWebUIConfig(std::make_unique<LinuxProxyConfigUI>()); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_OPENBSD) +@@ -348,7 +348,7 @@ void RegisterChromeWebUIConfigs() { + map.AddWebUIConfig(std::make_unique<ConflictsUIConfig>()); + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + map.AddWebUIConfig(std::make_unique<BrowserSwitchUIConfig>()); + map.AddWebUIConfig(std::make_unique<HistorySyncOptinUIConfig>()); + map.AddWebUIConfig(std::make_unique<OnDeviceTranslationInternalsUIConfig>()); +@@ -357,13 +357,13 @@ void RegisterChromeWebUIConfigs() { + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + map.AddWebUIConfig(std::make_unique<SandboxInternalsUIConfig>()); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + map.AddWebUIConfig( + std::make_unique<enterprise_connectors::ConnectorsInternalsUIConfig>()); + map.AddWebUIConfig(std::make_unique<DiscardsUIConfig>()); diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc new file mode 100644 index 000000000000..6444bc8ee8f6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc @@ -0,0 +1,40 @@ +--- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +@@ -118,16 +118,16 @@ + #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/commerce/product_specifications_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) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h" + #endif + +@@ -408,7 +408,7 @@ base::RefCountedMemory* ChromeWebUIControllerFactory:: + return NewTabPageUI::GetFaviconResourceBytes(scale_factor); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (page_url.host_piece() == chrome::kChromeUIWhatsNewHost) { + return WhatsNewUI::GetFaviconResourceBytes(scale_factor); + } +@@ -442,7 +442,7 @@ base::RefCountedMemory* ChromeWebUIControllerFactory:: + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (page_url.host_piece() == commerce::kChromeUICompareHost) { + return commerce::ProductSpecificationsUI::GetFaviconResourceBytes( + scale_factor); diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc new file mode 100644 index 000000000000..cd80eedcd8fb --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/webui/connectors_internals/device_trust_utils.cc.orig 2024-06-18 21:43:25 UTC ++++ chrome/browser/ui/webui/connectors_internals/device_trust_utils.cc +@@ -7,7 +7,7 @@ + #include "build/build_config.h" + #include "components/enterprise/buildflags/buildflags.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" +@@ -38,7 +38,7 @@ namespace { + + 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) { +@@ -173,7 +173,7 @@ connectors_internals::mojom::KeyInfoPtr GetKeyInfo() { + } // 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/devel/electron36/files/patch-chrome_browser_ui_webui_interstitials_interstitial__ui.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_interstitials_interstitial__ui.cc new file mode 100644 index 000000000000..8d54f7d6087b --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_interstitials_interstitial__ui.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/webui/interstitials/interstitial_ui.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/interstitials/interstitial_ui.cc +@@ -77,7 +77,7 @@ + #include "components/security_interstitials/content/captive_portal_blocking_page.h" + #endif + +-#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/supervised_user/supervised_user_verification_controller_client.h" + #include "chrome/browser/supervised_user/supervised_user_verification_page_blocked_sites.h" + #include "chrome/browser/supervised_user/supervised_user_verification_page_youtube.h" +@@ -424,7 +424,7 @@ std::unique_ptr<EnterpriseWarnPage> CreateEnterpriseWa + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + std::unique_ptr<SupervisedUserVerificationPageForYouTube> + CreateSupervisedUserVerificationPageForYouTube( + content::WebContents* web_contents, +@@ -651,7 +651,7 @@ void InterstitialHTMLSource::StartDataRequest( + interstitial_delegate = CreateInsecureFormPage(web_contents); + } else if (path_without_query == "/https_only") { + interstitial_delegate = CreateHttpsOnlyModePage(web_contents); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + } else if (path_without_query == "/supervised-user-verify") { + interstitial_delegate = CreateSupervisedUserVerificationPageForYouTube( + web_contents, /*is_main_frame=*/true); diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui.cc new file mode 100644 index 000000000000..924531cfc14a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui.cc @@ -0,0 +1,16 @@ +--- chrome/browser/ui/webui/management/management_ui.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/management/management_ui.cc +@@ -175,11 +175,11 @@ void ManagementUI::GetLocalizedStrings( + IDS_MANAGEMENT_FILE_TRANSFER_VISIBLE_DATA}, + {kManagementReportFileEvents, IDS_MANAGEMENT_REPORT_FILE_EVENTS}, + #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) +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {kManagementDeviceSignalsDisclosure, + IDS_MANAGEMENT_DEVICE_SIGNALS_DISCLOSURE}, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__constants.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__constants.cc new file mode 100644 index 000000000000..64855bead62d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__constants.cc @@ -0,0 +1,17 @@ +--- chrome/browser/ui/webui/management/management_ui_constants.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/webui/management/management_ui_constants.cc +@@ -89,12 +89,12 @@ const char kProfileReportingLearnMore[] = "profileRepo + const char kProfileReportingPolicy[] = "profileReportingPolicy"; + const char kProfileReportingLearnMore[] = "profileReportingLearnMore"; + +-#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) diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__constants.h b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__constants.h new file mode 100644 index 000000000000..a34197639351 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__constants.h @@ -0,0 +1,19 @@ +--- chrome/browser/ui/webui/management/management_ui_constants.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/management/management_ui_constants.h +@@ -7,14 +7,14 @@ + + #include "build/build_config.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) + diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__handler.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__handler.cc new file mode 100644 index 000000000000..69bc8c80c871 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__handler.cc @@ -0,0 +1,38 @@ +--- chrome/browser/ui/webui/management/management_ui_handler.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/management/management_ui_handler.cc +@@ -58,7 +58,7 @@ + #include "ui/base/l10n/l10n_util.h" + #include "ui/base/webui/web_ui_util.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 "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) +@@ -359,7 +359,7 @@ void ManagementUIHandler::AddReportingInfo(base::Value + 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) + auto device_signal_data = GetDeviceSignalGrantedMessage(); + if (!device_signal_data.empty()) { + report_sources->Append(std::move(device_signal_data)); +@@ -381,7 +381,7 @@ void ManagementUIHandler::AddReportingInfo(base::Value + 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) + auto device_signal_data = GetDeviceSignalGrantedMessage(); + if (!device_signal_data.empty()) { + report_sources->Append(std::move(device_signal_data)); +@@ -567,7 +567,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/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__handler.h b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__handler.h new file mode 100644 index 000000000000..dcd73bbf121a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_management_management__ui__handler.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/webui/management/management_ui_handler.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/management/management_ui_handler.h +@@ -30,7 +30,7 @@ class PolicyService; + class PolicyService; + } // 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 +@@ -71,7 +71,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(); + base::Value::Dict GetDeviceSignalGrantedMessage(); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc new file mode 100644 index 000000000000..594ae1a6d266 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/webui/password_manager/promo_cards_handler.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/ui/webui/password_manager/promo_cards_handler.cc +@@ -28,7 +28,7 @@ + #include "chrome/browser/ui/webui/password_manager/promo_cards/web_password_manager_promo.h" + #endif + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.h" + #endif + +@@ -71,7 +71,7 @@ std::vector<std::unique_ptr<PasswordPromoCardBase>> Ge + .get())); + #endif + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + promo_cards.push_back( + std::make_unique<RelaunchChromePromo>(profile->GetPrefs())); + #endif diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc new file mode 100644 index 000000000000..a443f1769af2 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.cc.orig 2024-02-21 00:20:37 UTC ++++ chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.cc +@@ -37,7 +37,7 @@ std::u16string RelaunchChromePromo::GetTitle() const { + return l10n_util::GetStringUTF16( + #if BUILDFLAG(IS_MAC) + IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_TITLE +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_TITLE_LINUX + #endif + ); +@@ -47,7 +47,7 @@ std::u16string RelaunchChromePromo::GetDescription() c + return l10n_util::GetStringUTF16( + #if BUILDFLAG(IS_MAC) + IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_DESCRIPTION +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_DESCRIPTION_LINUX + #endif + ); diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc new file mode 100644 index 000000000000..0e9df630f36b --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/webui/searchbox/searchbox_handler.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/webui/searchbox/searchbox_handler.cc +@@ -111,7 +111,7 @@ const char* kWinShareIconResourceName = + #elif BUILDFLAG(IS_WIN) + const char* kWinShareIconResourceName = + "//resources/cr_components/searchbox/icons/win_share.svg"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const char* kLinuxShareIconResourceName = + "//resources/cr_components/searchbox/icons/share.svg"; + #else +@@ -171,7 +171,7 @@ static void DefineChromeRefreshRealboxIcons() { + #elif BUILDFLAG(IS_WIN) + kWinShareIconResourceName = + "//resources/cr_components/searchbox/icons/win_share_cr23.svg"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + kLinuxShareIconResourceName = + "//resources/cr_components/searchbox/icons/share_cr23.svg"; + #else +@@ -607,7 +607,7 @@ std::string SearchboxHandler::ActionVectorIconToResour + 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/devel/electron36/files/patch-chrome_browser_ui_webui_settings_appearance__handler.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_settings_appearance__handler.cc new file mode 100644 index 000000000000..e2d4a36cf512 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_settings_appearance__handler.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/webui/settings/appearance_handler.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/settings/appearance_handler.cc +@@ -32,7 +32,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/devel/electron36/files/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc new file mode 100644 index 000000000000..1a0d5ef75fce --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc @@ -0,0 +1,65 @@ +--- chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +@@ -140,7 +140,7 @@ + #include "chrome/browser/ui/webui/settings/system_handler.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/display/screen.h" + #endif + +@@ -159,7 +159,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 +@@ -288,7 +288,7 @@ void AddA11yStrings(content::WebUIDataSource* html_sou + {"toastAlertLevelDescription", + IDS_SETTINGS_ACCESSIBILITY_TOAST_FREQUENCY_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", +@@ -577,7 +577,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht + {"uiFeatureAlignLeft", IDS_SETTINGS_UI_FEATURE_ALIGN_LEFT}, + {"uiFeatureAlignRight", IDS_SETTINGS_UI_FEATURE_ALIGN_RIGHT}, + {"resetToDefault", IDS_SETTINGS_RESET_TO_DEFAULT}, +-#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}, +@@ -585,7 +585,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht + {"classicTheme", IDS_SETTINGS_CLASSIC_THEME}, + {"useClassicTheme", IDS_SETTINGS_USE_CLASSIC_THEME}, + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS}, + #endif + #if BUILDFLAG(IS_MAC) +@@ -607,7 +607,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht + html_source->AddBoolean("tabSearchIsRightAlignedAtStartup", + tabs::GetTabSearchTrailingTabstrip(profile)); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool show_custom_chrome_frame = ui::OzonePlatform::GetInstance() + ->GetPlatformRuntimeProperties() + .supports_server_side_window_decorations; +@@ -1495,7 +1495,7 @@ void AddSignOutDialogStrings(content::WebUIDataSource* + g_browser_process->GetApplicationLocale()) + .spec(); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + html_source->AddString( + "syncDisconnectManagedProfileExplanation", + l10n_util::GetStringFUTF8( diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_signin_profile__picker__handler.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_signin_profile__picker__handler.cc new file mode 100644 index 000000000000..2b943701327c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_signin_profile__picker__handler.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/webui/signin/profile_picker_handler.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/signin/profile_picker_handler.cc +@@ -165,7 +165,7 @@ base::Value::Dict CreateProfileEntry(const ProfileAttr + IDS_PROFILE_PICKER_PROFILE_CARD_LABEL, local_profile_name); + if (AccountInfo::IsManaged(entry->GetHostedDomain())) { + profile_entry.Set("avatarBadge", "cr:domain"); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + } else if (base::FeatureList::IsEnabled( + supervised_user::kShowKiteForSupervisedUsers) && + entry->IsSupervised()) { diff --git a/devel/electron36/files/patch-chrome_browser_ui_webui_user__education__internals_user__education__internals__page__handler__impl.cc b/devel/electron36/files/patch-chrome_browser_ui_webui_user__education__internals_user__education__internals__page__handler__impl.cc new file mode 100644 index 000000000000..d8fe516514c6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_webui_user__education__internals_user__education__internals__page__handler__impl.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/webui/user_education_internals/user_education_internals_page_handler_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/ui/webui/user_education_internals/user_education_internals_page_handler_impl.cc +@@ -50,7 +50,7 @@ + #include "ui/base/l10n/l10n_util.h" + #include "ui/base/webui/resource_path.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 "chrome/browser/ui/browser_navigator.h" + #include "chrome/browser/ui/browser_navigator_params.h" + #include "net/base/url_util.h" +@@ -90,7 +90,7 @@ whats_new::WhatsNewRegistry* GetWhatsNewRegistry() { + } + + whats_new::WhatsNewRegistry* GetWhatsNewRegistry() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return g_browser_process->GetFeatures()->whats_new_registry(); + #else + return nullptr; +@@ -828,7 +828,7 @@ void UserEducationInternalsPageHandlerImpl::LaunchWhat + } + + void UserEducationInternalsPageHandlerImpl::LaunchWhatsNewStaging() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + GURL url = net::AppendQueryParameter(GURL(chrome::kChromeUIWhatsNewURL), + "staging", "true"); + NavigateParams params(profile_, url, ui::PAGE_TRANSITION_TYPED); diff --git a/devel/electron36/files/patch-chrome_browser_ui_window__sizer_window__sizer.cc b/devel/electron36/files/patch-chrome_browser_ui_window__sizer_window__sizer.cc new file mode 100644 index 000000000000..2159a230ddc6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_ui_window__sizer_window__sizer.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/window_sizer/window_sizer.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/ui/window_sizer/window_sizer.cc +@@ -220,7 +220,7 @@ void WindowSizer::GetBrowserWindowBoundsAndShowState( + browser, window_bounds, show_state); + } + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux has its own implementation, see WindowSizerLinux. + // static + void WindowSizer::GetBrowserWindowBoundsAndShowState( diff --git a/devel/electron36/files/patch-chrome_browser_upgrade__detector_version__history__client.cc b/devel/electron36/files/patch-chrome_browser_upgrade__detector_version__history__client.cc new file mode 100644 index 000000000000..3127d3c6d0d4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_upgrade__detector_version__history__client.cc @@ -0,0 +1,11 @@ +--- chrome/browser/upgrade_detector/version_history_client.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/upgrade_detector/version_history_client.cc +@@ -175,7 +175,7 @@ GURL GetVersionReleasesUrl(base::Version version) { + #define CURRENT_PLATFORM "win" + #endif + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + #define CURRENT_PLATFORM "linux" + diff --git a/devel/electron36/files/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc b/devel/electron36/files/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc new file mode 100644 index 000000000000..a63e3c04fc74 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/visited_url_ranking/visited_url_ranking_service_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/visited_url_ranking/visited_url_ranking_service_factory.cc +@@ -45,7 +45,7 @@ + #include "components/visited_url_ranking/public/visited_url_ranking_service.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/visited_url_ranking/desktop_tab_model_url_visit_data_fetcher.h" + #elif BUILDFLAG(IS_ANDROID) + #include "chrome/browser/visited_url_ranking/android_tab_model_url_visit_data_fetcher.h" +@@ -119,7 +119,7 @@ VisitedURLRankingServiceFactory::BuildServiceInstanceF + + std::map<Fetcher, std::unique_ptr<URLVisitDataFetcher>> data_fetchers; + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + data_fetchers.emplace( + Fetcher::kTabModel, + std::make_unique<visited_url_ranking::DesktopTabModelURLVisitDataFetcher>( diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_commands_launch__web__app__command.cc b/devel/electron36/files/patch-chrome_browser_web__applications_commands_launch__web__app__command.cc new file mode 100644 index 000000000000..539dedcbddd4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_commands_launch__web__app__command.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/commands/launch_web_app_command.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/web_applications/commands/launch_web_app_command.cc +@@ -101,7 +101,7 @@ void LaunchWebAppCommand::StartWithLock(std::unique_pt + // OsIntegrationTestOverride can use the xdg install command to detect + // install. + SynchronizeOsOptions options; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + options.add_shortcut_to_desktop = true; + #endif + lock_->os_integration_manager().Synchronize( diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_commands_set__user__display__mode__command.cc b/devel/electron36/files/patch-chrome_browser_web__applications_commands_set__user__display__mode__command.cc new file mode 100644 index 000000000000..3ee448ef037b --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_commands_set__user__display__mode__command.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/commands/set_user_display_mode_command.cc.orig 2024-08-14 20:54:41 UTC ++++ chrome/browser/web_applications/commands/set_user_display_mode_command.cc +@@ -57,7 +57,7 @@ void SetUserDisplayModeCommand::StartWithLock( + // OsIntegrationTestOverride can use the xdg install command to detect + // install. + SynchronizeOsOptions options; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + options.add_shortcut_to_desktop = true; + #endif + app_lock_->os_integration_manager().Synchronize( diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_extension__status__utils.h b/devel/electron36/files/patch-chrome_browser_web__applications_extension__status__utils.h new file mode 100644 index 000000000000..5f55aec01d47 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_extension__status__utils.h @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/extension_status_utils.h.orig 2024-10-16 21:31:04 UTC ++++ chrome/browser/web_applications/extension_status_utils.h +@@ -50,7 +50,7 @@ bool IsExternalExtensionUninstalled(content::BrowserCo + bool IsExternalExtensionUninstalled(content::BrowserContext* context, + const std::string& extension_id); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If this method returns true, then |extension_id| will not be launchable. + // + // The eventual goal is that this method should return true for all hosted apps, diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc b/devel/electron36/files/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc new file mode 100644 index 000000000000..62e446157c13 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc @@ -0,0 +1,20 @@ +--- chrome/browser/web_applications/extensions/extension_status_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/web_applications/extensions/extension_status_utils.cc +@@ -26,7 +26,7 @@ const char* g_preinstalled_app_for_testing = nullptr; + + const char* g_preinstalled_app_for_testing = nullptr; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(b/268221237): Remove this allow-list. + const char kDefaultAllowedExtensionIds[] = + "alhngdkjgnedakdlnamimgfihgkmenbh," +@@ -105,7 +105,7 @@ bool IsExternalExtensionUninstalled(content::BrowserCo + return prefs && prefs->IsExternalExtensionUninstalled(extension_id); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool IsExtensionUnsupportedDeprecatedApp(content::BrowserContext* context, + const std::string& extension_id) { + if (testing::g_enable_chrome_apps_for_testing) { diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc new file mode 100644 index 000000000000..af2282bac876 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/os_integration/os_integration_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/web_applications/os_integration/os_integration_manager.cc +@@ -662,7 +662,7 @@ std::unique_ptr<ShortcutInfo> OsIntegrationManager::Bu + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const std::vector<WebAppShortcutsMenuItemInfo>& shortcuts_menu_item_infos = + app->shortcuts_menu_item_infos(); + DCHECK_LE(shortcuts_menu_item_infos.size(), kMaxApplicationDockMenuItems); diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h new file mode 100644 index 000000000000..84a61383a529 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/os_integration/os_integration_test_override.h.orig 2024-06-18 21:43:25 UTC ++++ chrome/browser/web_applications/os_integration/os_integration_test_override.h +@@ -99,7 +99,7 @@ class OsIntegrationTestOverride + virtual base::FilePath chrome_apps_folder() = 0; + virtual void EnableOrDisablePathOnLogin(const base::FilePath& file_path, + bool enable_on_login) = 0; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + virtual base::Environment* environment() = 0; + #endif + diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc new file mode 100644 index 000000000000..1e83c5d1b12c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager.cc.orig 2023-10-19 19:58:08 UTC ++++ chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager.cc +@@ -54,7 +54,7 @@ proto::RunOnOsLoginMode ConvertWebAppRunOnOsLoginModeT + // different from other platforms, see web_app_run_on_os_login_manager.h for + // more info. + bool DoesRunOnOsLoginRequireExecution() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled(features::kDesktopPWAsRunOnOsLogin); + #else + return false; diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc new file mode 100644 index 000000000000..6c1f0048d9e4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/os_integration/shortcut_sub_manager.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/web_applications/os_integration/shortcut_sub_manager.cc +@@ -199,7 +199,7 @@ void ShortcutSubManager::Execute( + return; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Protocol handler update detection. Shortcuts need to be updated in this + // case on Linux & Mac because the shortcut itself includes the protocol + // handling metadata. diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h new file mode 100644 index 000000000000..95f3077295e6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/os_integration/web_app_file_handler_registration.h.orig 2023-05-25 00:41:46 UTC ++++ chrome/browser/web_applications/os_integration/web_app_file_handler_registration.h +@@ -43,7 +43,7 @@ void UnregisterFileHandlersWithOs(const AppId& app_id, + const base::FilePath& profile_path, + ResultCallback callback); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Exposed for testing purposes. Register the set of + // MIME-type-to-file-extensions mappings corresponding to |file_handlers|. File + // I/O and callouts to the Linux shell are performed asynchronously. diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc new file mode 100644 index 000000000000..f3ba996d337d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc @@ -0,0 +1,20 @@ +--- chrome/browser/web_applications/os_integration/web_app_shortcut.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/browser/web_applications/os_integration/web_app_shortcut.cc +@@ -71,7 +71,7 @@ const int kDesiredIconSizesForShortcut[] = {16, 32, 12 + + #if BUILDFLAG(IS_MAC) + const int kDesiredIconSizesForShortcut[] = {16, 32, 128, 256, 512}; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Linux supports icons of any size. FreeDesktop Icon Theme Specification states + // that "Minimally you should install a 48x48 icon in the hicolor theme." + const int kDesiredIconSizesForShortcut[] = {16, 32, 48, 128, 256, 512}; +@@ -253,7 +253,7 @@ std::unique_ptr<ShortcutInfo> BuildShortcutInfoWithout + + // TODO(crbug.com/40257107): Implement tests on Linux for using shortcuts_menu + // actions. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const std::vector<WebAppShortcutsMenuItemInfo>& shortcuts_menu_item_infos = + CreateShortcutsMenuItemInfos(state.shortcut_menus()); + DCHECK_LE(shortcuts_menu_item_infos.size(), kMaxApplicationDockMenuItems); diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h new file mode 100644 index 000000000000..cf3f0cb9259b --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h @@ -0,0 +1,20 @@ +--- chrome/browser/web_applications/os_integration/web_app_shortcut.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/web_applications/os_integration/web_app_shortcut.h +@@ -22,7 +22,7 @@ + #include "ui/gfx/image/image_family.h" + #include "url/gurl.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/web_applications/os_integration/web_app_shortcut_linux.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -77,7 +77,7 @@ struct ShortcutInfo { + // the installed PWA experience and thus the icons are not designed to be + // displayed on an OS dock. + bool is_diy_app = false; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::set<DesktopActionInfo> actions; + #endif // BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc b/devel/electron36/files/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc new file mode 100644 index 000000000000..6efe19fb66e9 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/policy/web_app_policy_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/web_applications/policy/web_app_policy_manager.cc +@@ -105,7 +105,7 @@ BASE_FEATURE(kDesktopPWAsForceUnregisterOSIntegration, + + BASE_FEATURE(kDesktopPWAsForceUnregisterOSIntegration, + "DesktopPWAsForceUnregisterOSIntegration", +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc b/devel/electron36/files/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc new file mode 100644 index 000000000000..075932cafa6f --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc @@ -0,0 +1,119 @@ +--- chrome/browser/web_applications/test/os_integration_test_override_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/web_applications/test/os_integration_test_override_impl.cc +@@ -45,7 +45,7 @@ + #include "third_party/skia/include/core/SkBitmap.h" + #include "third_party/skia/include/core/SkColor.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #endif + +@@ -130,7 +130,7 @@ std::vector<std::wstring> GetFileExtensionsForProgId( + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Performs a blocking read of app icons from the disk. + std::optional<SkBitmap> IconManagerReadIconForSize( + WebAppIconManager& icon_manager, +@@ -315,7 +315,7 @@ bool OsIntegrationTestOverrideImpl::SimulateDeleteShor + GetShortcutPath(profile, chrome_apps_folder(), app_id, app_name); + CHECK(base::PathExists(app_folder_shortcut_path)); + return base::DeletePathRecursively(app_folder_shortcut_path); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FilePath desktop_shortcut_path = + GetShortcutPath(profile, desktop(), app_id, app_name); + LOG(INFO) << desktop_shortcut_path; +@@ -362,7 +362,7 @@ bool OsIntegrationTestOverrideImpl::DeleteApplicationM + } + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool OsIntegrationTestOverrideImpl::DeleteDesktopDirOnLinux() { + if (desktop_.IsValid()) { + return desktop_.Delete(); +@@ -376,7 +376,7 @@ bool OsIntegrationTestOverrideImpl::IsRunOnOsLoginEnab + Profile* profile, + const webapps::AppId& app_id, + const std::string& app_name) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string shortcut_filename = + "chrome-" + app_id + "-" + profile->GetBaseName().value() + ".desktop"; + return base::PathExists(startup().Append(shortcut_filename)); +@@ -431,7 +431,7 @@ bool OsIntegrationTestOverrideImpl::IsFileExtensionHan + is_file_handled = + shell_integration::CanApplicationHandleURL(app_path, test_file_url); + base::DeleteFile(test_file_path); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FilePath user_applications_dir = applications(); + bool database_update_called = false; + for (const LinuxFileRegistration& command : linux_file_registration_) { +@@ -481,7 +481,7 @@ std::optional<SkBitmap> OsIntegrationTestOverrideImpl: + return std::nullopt; + } + return GetIconFromShortcutFile(shortcut_path); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + WebAppProvider* provider = WebAppProvider::GetForLocalAppsUnchecked(profile); + if (!provider) { + return std::nullopt; +@@ -547,7 +547,7 @@ base::FilePath OsIntegrationTestOverrideImpl::GetShort + app_installed_profiles.end()) { + return shortcut_path; + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string shortcut_filename = + "chrome-" + app_id + "-" + profile->GetBaseName().value() + ".desktop"; + base::FilePath shortcut_path = shortcut_dir.Append(shortcut_filename); +@@ -572,7 +572,7 @@ bool OsIntegrationTestOverrideImpl::IsShortcutCreated( + base::FilePath app_shortcut_path = + GetShortcutPath(profile, chrome_apps_folder(), app_id, app_name); + return base::PathExists(app_shortcut_path); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FilePath desktop_shortcut_path = + GetShortcutPath(profile, desktop(), app_id, app_name); + return base::PathExists(desktop_shortcut_path); +@@ -764,7 +764,7 @@ void OsIntegrationTestOverrideImpl::EnableOrDisablePat + } + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FilePath OsIntegrationTestOverrideImpl::desktop() { + return desktop_.GetPath(); + } +@@ -815,7 +815,7 @@ OsIntegrationTestOverrideImpl::OsIntegrationTestOverri + success = chrome_apps_folder_.CreateUniqueTempDirUnderPath( + outer_temp_dir_.GetPath()); + CHECK(success); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + success = desktop_.CreateUniqueTempDirUnderPath(outer_temp_dir_.GetPath()); + CHECK(success); + success = startup_.CreateUniqueTempDirUnderPath(outer_temp_dir_.GetPath()); +@@ -828,7 +828,7 @@ OsIntegrationTestOverrideImpl::OsIntegrationTestOverri + CHECK(success); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto callback = base::BindRepeating([](base::FilePath filename_in, + std::string xdg_command, + std::string file_contents) { +@@ -900,7 +900,7 @@ OsIntegrationTestOverrideImpl::~OsIntegrationTestOverr + EXPECT_TRUE(!startup_.IsValid() || startup_.Delete()); + #elif BUILDFLAG(IS_MAC) + EXPECT_TRUE(!chrome_apps_folder_.IsValid() || DeleteChromeAppsDir()); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + EXPECT_TRUE(!desktop_.IsValid() || desktop_.Delete()); + EXPECT_TRUE(!startup_.IsValid() || startup_.Delete()); + EXPECT_TRUE(!xdg_data_home_dir_.IsValid() || xdg_data_home_dir_.Delete()); diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h b/devel/electron36/files/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h new file mode 100644 index 000000000000..4d0ec8836f0b --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h @@ -0,0 +1,38 @@ +--- chrome/browser/web_applications/test/os_integration_test_override_impl.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/web_applications/test/os_integration_test_override_impl.h +@@ -40,7 +40,7 @@ namespace web_app { + + namespace web_app { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + struct LinuxFileRegistration { + base::FilePath file_name; + std::string xdg_command; +@@ -122,7 +122,7 @@ class OsIntegrationTestOverrideImpl : public OsIntegra + bool DeleteApplicationMenuDirOnWin(); + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool DeleteDesktopDirOnLinux(); + #endif // BUILDFLAG(IS_LINUX) + +@@ -250,7 +250,7 @@ class OsIntegrationTestOverrideImpl : public OsIntegra + base::FilePath chrome_apps_folder() override; + void EnableOrDisablePathOnLogin(const base::FilePath& file_path, + bool enable_on_login) override; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FilePath desktop(); + base::FilePath startup(); + base::FilePath applications(); +@@ -323,7 +323,7 @@ class OsIntegrationTestOverrideImpl : public OsIntegra + base::ScopedTempDir chrome_apps_folder_; + std::map<base::FilePath, bool> startup_enabled_; + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::ScopedTempDir desktop_; + base::ScopedTempDir startup_; + base::ScopedTempDir xdg_data_home_dir_; diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_web__app__helpers.cc b/devel/electron36/files/patch-chrome_browser_web__applications_web__app__helpers.cc new file mode 100644 index 000000000000..43e2e5c1656a --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_web__app__helpers.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/web_app_helpers.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/web_applications/web_app_helpers.cc +@@ -145,7 +145,7 @@ bool IsValidWebAppUrl(const GURL& app_url) { + return false; + + bool allow_extension_apps = true; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Stop allowing apps to be extension urls when the shortcuts are separated - + // they can be extension urls instead. + allow_extension_apps = false; diff --git a/devel/electron36/files/patch-chrome_browser_web__applications_web__app__install__info.h b/devel/electron36/files/patch-chrome_browser_web__applications_web__app__install__info.h new file mode 100644 index 000000000000..953cd4fe10f6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_web__applications_web__app__install__info.h @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/web_app_install_info.h.orig 2025-03-24 20:50:14 UTC ++++ chrome/browser/web_applications/web_app_install_info.h +@@ -38,7 +38,7 @@ static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) | + #include "url/gurl.h" + + static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || +- BUILDFLAG(IS_CHROMEOS)); ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)); + + namespace web_app { + diff --git a/devel/electron36/files/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc b/devel/electron36/files/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc new file mode 100644 index 000000000000..f2b293d8f70c --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc @@ -0,0 +1,11 @@ +--- chrome/browser/webauthn/chrome_authenticator_request_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/webauthn/chrome_authenticator_request_delegate.cc +@@ -577,7 +577,7 @@ void ChromeAuthenticatorRequestDelegate::ConfigureDisc + g_observer->ConfiguringCable(request_type); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // No caBLEv1 on Linux. It tends to crash bluez. + if (base::Contains(pairings_from_extension, + device::CableDiscoveryData::Version::V1, diff --git a/devel/electron36/files/patch-chrome_browser_webauthn_enclave__manager.cc b/devel/electron36/files/patch-chrome_browser_webauthn_enclave__manager.cc new file mode 100644 index 000000000000..f9f4bc11c87e --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_webauthn_enclave__manager.cc @@ -0,0 +1,20 @@ +--- chrome/browser/webauthn/enclave_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/webauthn/enclave_manager.cc +@@ -689,7 +689,7 @@ std::string UserVerifyingLabelToString(crypto::UserVer + + std::string UserVerifyingLabelToString(crypto::UserVerifyingKeyLabel label) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return label; + #else + return std::string("placeholder"); +@@ -699,7 +699,7 @@ std::optional<crypto::UserVerifyingKeyLabel> UserVerif + std::optional<crypto::UserVerifyingKeyLabel> UserVerifyingKeyLabelFromString( + std::string saved_label) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return saved_label; + #else + return std::nullopt; diff --git a/devel/electron36/files/patch-chrome_browser_webauthn_gpm__user__verification__policy.cc b/devel/electron36/files/patch-chrome_browser_webauthn_gpm__user__verification__policy.cc new file mode 100644 index 000000000000..35da01ef4627 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_webauthn_gpm__user__verification__policy.cc @@ -0,0 +1,11 @@ +--- chrome/browser/webauthn/gpm_user_verification_policy.cc.orig 2024-08-14 20:54:41 UTC ++++ chrome/browser/webauthn/gpm_user_verification_policy.cc +@@ -17,7 +17,7 @@ bool GpmWillDoUserVerification(device::UserVerificatio + return platform_has_biometrics; + #elif BUILDFLAG(IS_MAC) + return platform_has_biometrics; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return false; + #else + // This default is for unit tests. diff --git a/devel/electron36/files/patch-chrome_browser_webauthn_password__credential__controller.cc b/devel/electron36/files/patch-chrome_browser_webauthn_password__credential__controller.cc new file mode 100644 index 000000000000..f413f68da617 --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_webauthn_password__credential__controller.cc @@ -0,0 +1,11 @@ +--- chrome/browser/webauthn/password_credential_controller.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/webauthn/password_credential_controller.cc +@@ -46,7 +46,7 @@ std::u16string GetAuthenticationMessage(std::string_vi + } + + std::u16string GetAuthenticationMessage(std::string_view rp_id) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return u""; + #else + return l10n_util::GetStringFUTF16(IDS_PASSWORD_MANAGER_FILLING_REAUTH, diff --git a/devel/electron36/files/patch-chrome_browser_webauthn_unexportable__key__utils.cc b/devel/electron36/files/patch-chrome_browser_webauthn_unexportable__key__utils.cc new file mode 100644 index 000000000000..ff7149cfd48d --- /dev/null +++ b/devel/electron36/files/patch-chrome_browser_webauthn_unexportable__key__utils.cc @@ -0,0 +1,11 @@ +--- chrome/browser/webauthn/unexportable_key_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/browser/webauthn/unexportable_key_utils.cc +@@ -33,7 +33,7 @@ GetWebAuthnUnexportableKeyProvider() { + // If there is a scoped UnexportableKeyProvider configured, we always use + // that so that tests can still override the key provider. + const bool use_software_provider = +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + !crypto::internal::HasScopedUnexportableKeyProvider(); + #else + false; diff --git a/devel/electron36/files/patch-chrome_common_channel__info.h b/devel/electron36/files/patch-chrome_common_channel__info.h new file mode 100644 index 000000000000..ff29dd151f00 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_channel__info.h @@ -0,0 +1,20 @@ +--- chrome/common/channel_info.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/channel_info.h +@@ -11,7 +11,7 @@ + #include "build/branding_buildflags.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + namespace base { + class Environment; + } +@@ -99,7 +99,7 @@ std::string GetChannelSuffixForDataDir(); + std::string GetChannelSuffixForDataDir(); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string GetChannelSuffixForExtraFlagsEnvVarName(); + + // Returns the channel-specific filename of the desktop shortcut used to launch diff --git a/devel/electron36/files/patch-chrome_common_channel__info__posix.cc b/devel/electron36/files/patch-chrome_common_channel__info__posix.cc new file mode 100644 index 000000000000..395e6536a065 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_channel__info__posix.cc @@ -0,0 +1,20 @@ +--- chrome/common/channel_info_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/channel_info_posix.cc +@@ -94,7 +94,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(); +@@ -120,7 +120,7 @@ std::string GetChannelSuffixForExtraFlagsEnvVarName() + } + #endif // BUILDFLAG(IS_LINUX) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || 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/devel/electron36/files/patch-chrome_common_chrome__features.cc b/devel/electron36/files/patch-chrome_common_chrome__features.cc new file mode 100644 index 000000000000..9ecf531c9f15 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_chrome__features.cc @@ -0,0 +1,56 @@ +--- chrome/common/chrome_features.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/chrome_features.cc +@@ -80,7 +80,7 @@ BASE_FEATURE(kUseAdHocSigningForWebAppShims, + #endif // BUILDFLAG(IS_MAC) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Enables or disables the Autofill survey triggered by opening a prompt to + // save address info. + BASE_FEATURE(kAutofillAddressSurvey, +@@ -98,7 +98,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. +@@ -233,7 +233,7 @@ BASE_FEATURE(kDesktopPWAsRunOnOsLogin, + BASE_FEATURE(kDesktopPWAsRunOnOsLogin, + "DesktopPWAsRunOnOsLogin", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -259,7 +259,7 @@ BASE_FEATURE(kDesktopPWAsTabStripSettings, + "DesktopPWAsTabStripSettings", + base::FEATURE_DISABLED_BY_DEFAULT); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || 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. +@@ -898,7 +898,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); +@@ -911,7 +911,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/devel/electron36/files/patch-chrome_common_chrome__features.h b/devel/electron36/files/patch-chrome_common_chrome__features.h new file mode 100644 index 000000000000..45343c85236c --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_chrome__features.h @@ -0,0 +1,45 @@ +--- chrome/common/chrome_features.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/chrome_features.h +@@ -50,13 +50,13 @@ BASE_DECLARE_FEATURE(kUseAdHocSigningForWebAppShims); + #endif // BUILDFLAG(IS_MAC) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || 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) +@@ -146,7 +146,7 @@ BASE_DECLARE_FEATURE(kDesktopPWAsTabStripSettings); + COMPONENT_EXPORT(CHROME_FEATURES) + BASE_DECLARE_FEATURE(kDesktopPWAsTabStripSettings); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kChromeAppsDeprecation); + COMPONENT_EXPORT(CHROME_FEATURES) + BASE_DECLARE_FEATURE(kShortcutsNotApps); +@@ -521,7 +521,7 @@ BASE_DECLARE_FEATURE(kKAnonymityServiceStorage); + 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; +@@ -529,7 +529,7 @@ extern const base::FeatureParam<int> kLinuxLowMemoryMo + 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/devel/electron36/files/patch-chrome_common_chrome__paths.cc b/devel/electron36/files/patch-chrome_common_chrome__paths.cc new file mode 100644 index 000000000000..b6ba8f7100d1 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_chrome__paths.cc @@ -0,0 +1,82 @@ +--- chrome/common/chrome_paths.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/chrome_paths.cc +@@ -32,7 +32,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 + +@@ -48,14 +48,14 @@ std::optional<bool> g_override_using_default_data_dire + + std::optional<bool> g_override_using_default_data_directory_for_testing; + +-#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) +@@ -212,7 +212,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,13 +504,13 @@ bool PathProvider(int key, base::FilePath* result) { + break; + } + #endif +-#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; + } + #endif +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && BUILDFLAG(CHROMIUM_BRANDING)) + case chrome::DIR_USER_EXTERNAL_EXTENSIONS: { + if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur)) { +@@ -520,7 +520,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; +@@ -558,7 +558,7 @@ bool PathProvider(int key, base::FilePath* result) { + break; + + #if BUILDFLAG(ENABLE_EXTENSIONS) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)) ++ (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) +@@ -572,6 +572,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/devel/electron36/files/patch-chrome_common_chrome__paths.h b/devel/electron36/files/patch-chrome_common_chrome__paths.h new file mode 100644 index 000000000000..2c245576de2e --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_chrome__paths.h @@ -0,0 +1,29 @@ +--- chrome/common/chrome_paths.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/chrome_paths.h +@@ -56,7 +56,7 @@ enum { + // to set policies for chrome. This directory + // contains subdirectories. + #endif +-#if BUILDFLAG(IS_CHROMEOS) || \ ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && BUILDFLAG(CHROMIUM_BRANDING)) || BUILDFLAG(IS_MAC) + DIR_USER_EXTERNAL_EXTENSIONS, // Directory for per-user external extensions + // on Chrome Mac and Chromium Linux. +@@ -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 +@@ -112,7 +112,7 @@ enum { + + #endif + #if BUILDFLAG(ENABLE_EXTENSIONS) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)) ++ (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/devel/electron36/files/patch-chrome_common_chrome__paths__internal.h b/devel/electron36/files/patch-chrome_common_chrome__paths__internal.h new file mode 100644 index 000000000000..8fcaba556edb --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_chrome__paths__internal.h @@ -0,0 +1,11 @@ +--- chrome/common/chrome_paths_internal.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/chrome_paths_internal.h +@@ -53,7 +53,7 @@ bool GetUserDocumentsDirectory(base::FilePath* result) + // 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/devel/electron36/files/patch-chrome_common_chrome__switches.cc b/devel/electron36/files/patch-chrome_common_chrome__switches.cc new file mode 100644 index 000000000000..2a5e0ba0f90f --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_chrome__switches.cc @@ -0,0 +1,20 @@ +--- chrome/common/chrome_switches.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/chrome_switches.cc +@@ -883,7 +883,7 @@ const char kAllowNaClSocketAPI[] = "allow-nacl-socket- + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon"; + + // Causes the browser to launch directly in guest mode. +@@ -911,7 +911,7 @@ const char kGlicHostLogging[] = "glic-host-logging"; + const char kGlicHostLogging[] = "glic-host-logging"; + #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/devel/electron36/files/patch-chrome_common_chrome__switches.h b/devel/electron36/files/patch-chrome_common_chrome__switches.h new file mode 100644 index 000000000000..7d104c66c824 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_chrome__switches.h @@ -0,0 +1,20 @@ +--- chrome/common/chrome_switches.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/chrome_switches.h +@@ -273,7 +273,7 @@ extern const char kAllowNaClSocketAPI[]; + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + extern const char kEnableNewAppMenuIcon[]; + extern const char kGuest[]; + extern const char kForceNtpMobilePromo[]; +@@ -290,7 +290,7 @@ extern const char kGlicHostLogging[]; + extern const char kGlicHostLogging[]; + #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/devel/electron36/files/patch-chrome_common_crash__keys.cc b/devel/electron36/files/patch-chrome_common_crash__keys.cc new file mode 100644 index 000000000000..415d004b02de --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_crash__keys.cc @@ -0,0 +1,28 @@ +--- chrome/common/crash_keys.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/crash_keys.cc +@@ -51,7 +51,9 @@ class CrashKeyWithName { + ~CrashKeyWithName() = delete; + + std::string_view Name() const { return name_; } ++#if BUILDFLAG(USE_CRASHPAD_ANNOTATION) + std::string_view Value() const { return crash_key_.value(); } ++#endif + void Clear() { crash_key_.Clear(); } + void Set(std::string_view value) { crash_key_.Set(value); } + +@@ -196,6 +198,7 @@ void AllocateCrashKeyInBrowserAndChildren(std::string_ + GetCommandLineStringAnnotations().emplace_back(std::string(key)).Set(value); + } + ++#if BUILDFLAG(USE_CRASHPAD_ANNOTATION) + void AppendStringAnnotationsCommandLineSwitch(base::CommandLine* command_line) { + std::string string_annotations; + for (const auto& crash_key : GetCommandLineStringAnnotations()) { +@@ -210,6 +213,7 @@ void AppendStringAnnotationsCommandLineSwitch(base::Co + } + command_line->AppendSwitchASCII(kStringAnnotationsSwitch, string_annotations); + } ++#endif + + void SetCrashKeysFromCommandLine(const base::CommandLine& command_line) { + SetStringAnnotations(command_line); diff --git a/devel/electron36/files/patch-chrome_common_extensions_extension__constants.cc b/devel/electron36/files/patch-chrome_common_extensions_extension__constants.cc new file mode 100644 index 000000000000..9a67f117b372 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_extensions_extension__constants.cc @@ -0,0 +1,11 @@ +--- chrome/common/extensions/extension_constants.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/extensions/extension_constants.cc +@@ -38,7 +38,7 @@ const char* const kBuiltInFirstPartyExtensionIds[] = { + kGoogleSpeechSynthesisExtensionId, + #endif // BUILDFLAG(IS_CHROMEOS) + kReadingModeGDocsHelperExtensionId, +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + kTTSEngineExtensionId, + kComponentUpdaterTTSEngineExtensionId, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) diff --git a/devel/electron36/files/patch-chrome_common_extensions_extension__constants.h b/devel/electron36/files/patch-chrome_common_extensions_extension__constants.h new file mode 100644 index 000000000000..765395c6a6b3 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_extensions_extension__constants.h @@ -0,0 +1,11 @@ +--- chrome/common/extensions/extension_constants.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/extensions/extension_constants.h +@@ -310,7 +310,7 @@ inline constexpr base::FilePath::CharType + inline constexpr base::FilePath::CharType + kReadingModeGDocsHelperManifestFilename[] = + FILE_PATH_LITERAL("reading_mode_gdocs_helper_manifest.json"); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // The extension id of the google tts engine extension to use on-device natural + // Google voices. + inline constexpr char kTTSEngineExtensionId[] = diff --git a/devel/electron36/files/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc b/devel/electron36/files/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc new file mode 100644 index 000000000000..ff5adce0a5e3 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc @@ -0,0 +1,11 @@ +--- chrome/common/extensions/permissions/chrome_permission_message_rules.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/common/extensions/permissions/chrome_permission_message_rules.cc +@@ -280,7 +280,7 @@ int GetEnterpriseReportingPrivatePermissionMessageId() + int GetEnterpriseReportingPrivatePermissionMessageId() { + #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/devel/electron36/files/patch-chrome_common_media_cdm__host__file__path.cc b/devel/electron36/files/patch-chrome_common_media_cdm__host__file__path.cc new file mode 100644 index 000000000000..63dafa29d4ee --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_media_cdm__host__file__path.cc @@ -0,0 +1,11 @@ +--- chrome/common/media/cdm_host_file_path.cc.orig 2025-01-27 17:37:37 UTC ++++ 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/devel/electron36/files/patch-chrome_common_media_cdm__registration.cc b/devel/electron36/files/patch-chrome_common_media_cdm__registration.cc new file mode 100644 index 000000000000..262f42bc3906 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_media_cdm__registration.cc @@ -0,0 +1,56 @@ +--- chrome/common/media/cdm_registration.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/media/cdm_registration.cc +@@ -32,7 +32,7 @@ + #if BUILDFLAG(ENABLE_WIDEVINE) + #include "components/cdm/common/cdm_manifest.h" + #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/native_library.h" + #include "chrome/common/chrome_paths.h" + #include "chrome/common/media/component_widevine_cdm_hint_file_linux.h" +@@ -51,7 +51,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( +@@ -93,7 +93,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, CDM registration is handled by Component + // Update (as the CDM can be loaded only when needed). +@@ -117,7 +117,7 @@ std::unique_ptr<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 Component Updater picked a version of the Widevine + // CDM to be used last time it ran. (Component Updater may choose the bundled + // CDM if there is not a new version available for download.) If there is one +@@ -159,7 +159,7 @@ void AddSoftwareSecureWidevine(std::vector<content::Cd + /*supports_sub_key_systems=*/false, kWidevineCdmDisplayName, + kWidevineCdmType, base::FilePath()); + +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The Widevine CDM on Linux/ChromeOS needs to be registered (and loaded) + // before the zygote is locked down. The CDM can be found from the version + // bundled with Chrome (if BUNDLE_WIDEVINE_CDM = true) and/or the version +@@ -385,7 +385,7 @@ void RegisterCdmInfo(std::vector<content::CdmInfo>* cd + } + + #if BUILDFLAG(ENABLE_WIDEVINE) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + std::vector<content::CdmInfo> GetSoftwareSecureWidevine() { + std::vector<content::CdmInfo> cdms; + AddSoftwareSecureWidevine(&cdms); diff --git a/devel/electron36/files/patch-chrome_common_media_cdm__registration.h b/devel/electron36/files/patch-chrome_common_media_cdm__registration.h new file mode 100644 index 000000000000..25720d99f0a1 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_media_cdm__registration.h @@ -0,0 +1,11 @@ +--- chrome/common/media/cdm_registration.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/media/cdm_registration.h +@@ -15,7 +15,7 @@ void RegisterCdmInfo(std::vector<content::CdmInfo>* cd + void RegisterCdmInfo(std::vector<content::CdmInfo>* cdms); + + #if BUILDFLAG(ENABLE_WIDEVINE) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + // Returns the software secure Widevine CDM, if one exists. + std::vector<content::CdmInfo> GetSoftwareSecureWidevine(); + #endif diff --git a/devel/electron36/files/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h b/devel/electron36/files/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h new file mode 100644 index 000000000000..7e2e578db91e --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h @@ -0,0 +1,11 @@ +--- chrome/common/media/component_widevine_cdm_hint_file_linux.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/media/component_widevine_cdm_hint_file_linux.h +@@ -14,7 +14,7 @@ + #error "This file only applies when Widevine used." + #endif + +-#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/devel/electron36/files/patch-chrome_common_pref__names.h b/devel/electron36/files/patch-chrome_common_pref__names.h new file mode 100644 index 000000000000..4a8bca8b4fe6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_pref__names.h @@ -0,0 +1,91 @@ +--- chrome/common/pref_names.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/pref_names.h +@@ -1325,7 +1325,7 @@ inline constexpr char kAllowedDomainsForApps[] = + inline constexpr char kAllowedDomainsForApps[] = + "settings.allowed_domains_for_apps"; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux specific preference on whether we should match the system theme. + inline constexpr char kSystemTheme[] = "extensions.theme.system_theme"; + #endif +@@ -1502,7 +1502,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"; +@@ -2129,7 +2129,7 @@ inline constexpr char kDownloadDirUpgraded[] = "downlo + inline constexpr char kDownloadDirUpgraded[] = "download.directory_upgrade"; + + #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 +@@ -2622,14 +2622,14 @@ inline constexpr char kMediaCdmOriginData[] = "media.c + 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"; +@@ -2721,7 +2721,7 @@ inline constexpr char kIsolatedWebAppPendingInitializa + inline constexpr char kIsolatedWebAppPendingInitializationCount[] = + "profile.isolated_web_app.install.pending_initialization_count"; + +-#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[] = +@@ -3240,7 +3240,7 @@ inline constexpr char kKioskChromeAppsForceAllowed[] = + #endif // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Defines administrator-set availability of Chrome for Testing. + inline constexpr char kChromeForTestingAllowed[] = "chrome_for_testing.allowed"; + #endif +@@ -3763,7 +3763,7 @@ inline constexpr char kSandboxExternalProtocolBlocked[ + 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[] = +@@ -3959,7 +3959,7 @@ inline constexpr char kLensDesktopNTPSearchEnabled[] = + "policy.lens_desktop_ntp_search_enabled"; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // A dict mapping the edition name with the major version it was shown. + inline constexpr char kWhatsNewEditionUsed[] = "browser.whats_new.edition_used"; + // A list containing the features of each module in order of when they +@@ -4056,7 +4056,7 @@ inline constexpr char kPrintingOAuth2AuthorizationServ + "printing.oauth2_authorization_servers"; + #endif + +-#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/devel/electron36/files/patch-chrome_common_url__constants.h b/devel/electron36/files/patch-chrome_common_url__constants.h new file mode 100644 index 000000000000..f61ac04a974e --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_url__constants.h @@ -0,0 +1,11 @@ +--- chrome/common/url_constants.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/url_constants.h +@@ -983,7 +983,7 @@ inline constexpr char kPhoneHubPermissionLearnMoreURL[ + inline constexpr char kPhoneHubPermissionLearnMoreURL[] = + "https://support.google.com/chromebook?p=multidevice"; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // "Learn more" URL for the chrome apps deprecation dialog. + inline constexpr char kChromeAppsDeprecationLearnMoreURL[] = + "https://support.google.com/chrome?p=chrome_app_deprecation"; diff --git a/devel/electron36/files/patch-chrome_common_webui__url__constants.cc b/devel/electron36/files/patch-chrome_common_webui__url__constants.cc new file mode 100644 index 000000000000..2d0204510bf2 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_webui__url__constants.cc @@ -0,0 +1,24 @@ +--- chrome/common/webui_url_constants.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/common/webui_url_constants.cc +@@ -192,18 +192,18 @@ base::span<const base::cstring_view> ChromeURLHosts() + kChromeUIAssistantOptInHost, + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + kChromeUIConnectorsInternalsHost, + kChromeUIDiscardsHost, + #endif +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + kChromeUIWebAppSettingsHost, + #endif + #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) + kChromeUILinuxProxyConfigHost, + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + kChromeUISandboxHost, + #endif + #if BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-chrome_common_webui__url__constants.h b/devel/electron36/files/patch-chrome_common_webui__url__constants.h new file mode 100644 index 000000000000..299a889dfcb3 --- /dev/null +++ b/devel/electron36/files/patch-chrome_common_webui__url__constants.h @@ -0,0 +1,47 @@ +--- chrome/common/webui_url_constants.h.orig 2025-04-22 20:15:27 UTC ++++ chrome/common/webui_url_constants.h +@@ -513,18 +513,18 @@ inline constexpr char kChromeUIOsUrlAppURL[] = "chrome + #endif // BUILDFLAG(IS_CHROMEOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + inline constexpr char kChromeUIConnectorsInternalsHost[] = + "connectors-internals"; + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + inline constexpr char kChromeUIDiscardsHost[] = "discards"; + inline constexpr char kChromeUIDiscardsURL[] = "chrome://discards/"; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + inline constexpr char kChromeUIWebAppSettingsHost[] = "app-settings"; + inline constexpr char kChromeUIWebAppSettingsURL[] = "chrome://app-settings/"; + inline constexpr char kChromeUIWhatsNewHost[] = "whats-new"; +@@ -536,11 +536,11 @@ inline constexpr char kChromeUILinuxProxyConfigHost[] + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + inline constexpr char kChromeUISandboxHost[] = "sandbox"; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + inline constexpr char kChromeUIBrowserSwitchHost[] = "browser-switch"; + inline constexpr char kChromeUIBrowserSwitchURL[] = "chrome://browser-switch/"; + inline constexpr char kChromeUIIntroDefaultBrowserSubPage[] = "default-browser"; +@@ -565,7 +565,7 @@ inline constexpr char kChromeUIHistorySyncOptinURL[] = + "chrome://history-sync-optin/"; + #endif + +-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + defined(TOOLKIT_VIEWS)) || \ + defined(USE_AURA) + inline constexpr char kChromeUITabModalConfirmDialogHost[] = diff --git a/devel/electron36/files/patch-chrome_enterprise__companion_enterprise__companion__client.cc b/devel/electron36/files/patch-chrome_enterprise__companion_enterprise__companion__client.cc new file mode 100644 index 000000000000..279f27f74ee7 --- /dev/null +++ b/devel/electron36/files/patch-chrome_enterprise__companion_enterprise__companion__client.cc @@ -0,0 +1,11 @@ +--- chrome/enterprise_companion/enterprise_companion_client.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/enterprise_companion/enterprise_companion_client.cc +@@ -35,7 +35,7 @@ constexpr char kServerName[] = MAC_BUNDLE_IDENTIFIER_S + + #if BUILDFLAG(IS_MAC) + constexpr char kServerName[] = MAC_BUNDLE_IDENTIFIER_STRING ".service"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr char kServerName[] = + "/run/" COMPANY_SHORTNAME_STRING "/" PRODUCT_FULLNAME_STRING "/service.sk"; + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-chrome_enterprise__companion_event__logger.cc b/devel/electron36/files/patch-chrome_enterprise__companion_event__logger.cc new file mode 100644 index 000000000000..a6720f370ddd --- /dev/null +++ b/devel/electron36/files/patch-chrome_enterprise__companion_event__logger.cc @@ -0,0 +1,11 @@ +--- chrome/enterprise_companion/event_logger.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/enterprise_companion/event_logger.cc +@@ -126,7 +126,7 @@ proto::EnterpriseCompanionMetadata GetMetadata() { + metadata.set_application_arch(proto::ARM64); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + metadata.set_os_platform(proto::LINUX); + #elif BUILDFLAG(IS_MAC) + metadata.set_os_platform(proto::MAC); diff --git a/devel/electron36/files/patch-chrome_enterprise__companion_lock.cc b/devel/electron36/files/patch-chrome_enterprise__companion_lock.cc new file mode 100644 index 000000000000..171c9e2c3c46 --- /dev/null +++ b/devel/electron36/files/patch-chrome_enterprise__companion_lock.cc @@ -0,0 +1,20 @@ +--- chrome/enterprise_companion/lock.cc.orig 2024-08-14 20:54:42 UTC ++++ chrome/enterprise_companion/lock.cc +@@ -17,7 +17,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr char kLockName[] = "/" PRODUCT_FULLNAME_STRING ".lock"; + #elif BUILDFLAG(IS_MAC) + constexpr char kLockName[] = MAC_BUNDLE_IDENTIFIER_STRING ".lock"; +@@ -42,7 +42,7 @@ std::unique_ptr<ScopedLock> CreateScopedLock(base::Tim + namespace enterprise_companion { + + std::unique_ptr<ScopedLock> CreateScopedLock(base::TimeDelta timeout) { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return named_system_lock::ScopedLock::Create(kLockName, timeout); + #elif BUILDFLAG(IS_WIN) + CSecurityAttributes sa = diff --git a/devel/electron36/files/patch-chrome_services_printing_print__backend__service__impl.cc b/devel/electron36/files/patch-chrome_services_printing_print__backend__service__impl.cc new file mode 100644 index 000000000000..493cbb647061 --- /dev/null +++ b/devel/electron36/files/patch-chrome_services_printing_print__backend__service__impl.cc @@ -0,0 +1,47 @@ +--- chrome/services/printing/print_backend_service_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/services/printing/print_backend_service_impl.cc +@@ -49,7 +49,7 @@ + #include "printing/backend/cups_connection_pool.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/no_destructor.h" + #include "ui/linux/linux_ui.h" + #include "ui/linux/linux_ui_delegate_stub.h" +@@ -76,7 +76,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void InstantiateLinuxUiDelegate() { + // TODO(crbug.com/40561724) Until a real UI can be used in a utility process, + // need to use the stub version. +@@ -85,7 +85,7 @@ scoped_refptr<base::SequencedTaskRunner> GetPrintingTa + #endif + + scoped_refptr<base::SequencedTaskRunner> GetPrintingTaskRunner() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Use task runner associated with equivalent of UI thread. Needed for calls + // made through `PrintDialogLinuxInterface` to properly execute. + CHECK(base::SequencedTaskRunner::HasCurrentDefault()); +@@ -468,7 +468,7 @@ void PrintBackendServiceImpl::Init( + // `InitCommon()`. + InitializeProcessForPrinting(); + print_backend_ = PrintBackend::CreateInstance(locale); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Test framework already initializes the UI, so this should not go in + // `InitCommon()`. Additionally, low-level Linux UI is not needed when tests + // are using `TestPrintingContext`. +@@ -689,7 +689,7 @@ void PrintBackendServiceImpl::UpdatePrintSettings( + crash_keys_ = std::make_unique<crash_keys::ScopedPrinterInfo>( + *printer_name, print_backend_->GetPrinterDriverInfo(*printer_name)); + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_CUPS) + // Try to fill in advanced settings based upon basic info options. + PrinterBasicInfo basic_info; + if (print_backend_->GetPrinterBasicInfo(*printer_name, &basic_info) == diff --git a/devel/electron36/files/patch-chrome_services_speech_audio__source__fetcher__impl.cc b/devel/electron36/files/patch-chrome_services_speech_audio__source__fetcher__impl.cc new file mode 100644 index 000000000000..20bfea5c7fe4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_services_speech_audio__source__fetcher__impl.cc @@ -0,0 +1,11 @@ +--- chrome/services/speech/audio_source_fetcher_impl.cc.orig 2024-06-18 21:43:25 UTC ++++ chrome/services/speech/audio_source_fetcher_impl.cc +@@ -132,7 +132,7 @@ void AudioSourceFetcherImpl::Start( + + // TODO(crbug.com/40753481): Check implementation / sandbox policy on Mac and + // Windows. +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + is_started_ = true; + // Initialize the AudioCapturerSource with |this| as the CaptureCallback, + // get the parameters for the device ID, then start audio capture. diff --git a/devel/electron36/files/patch-chrome_test_base_scoped__channel__override__posix.cc b/devel/electron36/files/patch-chrome_test_base_scoped__channel__override__posix.cc new file mode 100644 index 000000000000..163cb93e276a --- /dev/null +++ b/devel/electron36/files/patch-chrome_test_base_scoped__channel__override__posix.cc @@ -0,0 +1,11 @@ +--- chrome/test/base/scoped_channel_override_posix.cc.orig 2024-06-18 21:43:25 UTC ++++ chrome/test/base/scoped_channel_override_posix.cc +@@ -45,7 +45,7 @@ std::string GetVersionExtra(ScopedChannelOverride::Cha + return "beta"; + case ScopedChannelOverride::Channel::kDev: + return "unstable"; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case ScopedChannelOverride::Channel::kCanary: + return "canary"; + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-chrome_test_chromedriver_chrome__launcher.cc b/devel/electron36/files/patch-chrome_test_chromedriver_chrome__launcher.cc new file mode 100644 index 000000000000..4f8af7b9f114 --- /dev/null +++ b/devel/electron36/files/patch-chrome_test_chromedriver_chrome__launcher.cc @@ -0,0 +1,10 @@ +--- chrome/test/chromedriver/chrome_launcher.cc.orig 2023-11-29 21:39:54 UTC ++++ chrome/test/chromedriver/chrome_launcher.cc +@@ -73,6 +73,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/devel/electron36/files/patch-chrome_test_chromedriver_chrome_chrome__finder.cc b/devel/electron36/files/patch-chrome_test_chromedriver_chrome_chrome__finder.cc new file mode 100644 index 000000000000..10e112a6408f --- /dev/null +++ b/devel/electron36/files/patch-chrome_test_chromedriver_chrome_chrome__finder.cc @@ -0,0 +1,29 @@ +--- chrome/test/chromedriver/chrome/chrome_finder.cc.orig 2023-11-29 21:39:54 UTC ++++ chrome/test/chromedriver/chrome/chrome_finder.cc +@@ -58,7 +58,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. +@@ -125,7 +125,7 @@ std::vector<base::FilePath> GetChromeProgramNames() { + 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"), base::FilePath("chromium"), +@@ -141,7 +141,7 @@ std::vector<base::FilePath> GetHeadlessShellProgramNam + return { + #if BUILDFLAG(IS_WIN) + base::FilePath(FILE_PATH_LITERAL("chrome-headless-shell.exe")), +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FilePath("chrome-headless-shell"), + #else + // it will compile but won't work on other OSes diff --git a/devel/electron36/files/patch-chrome_test_chromedriver_key__converter__unittest.cc b/devel/electron36/files/patch-chrome_test_chromedriver_key__converter__unittest.cc new file mode 100644 index 000000000000..724275215711 --- /dev/null +++ b/devel/electron36/files/patch-chrome_test_chromedriver_key__converter__unittest.cc @@ -0,0 +1,20 @@ +--- chrome/test/chromedriver/key_converter_unittest.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/test/chromedriver/key_converter_unittest.cc +@@ -252,7 +252,7 @@ TEST(KeyConverter, ToggleModifiers) { + CheckEventsReleaseModifiers(keys, key_events); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Fails on bots: crbug.com/174962 + #define MAYBE_AllEnglishKeyboardSymbols DISABLED_AllEnglishKeyboardSymbols + #else +@@ -310,7 +310,7 @@ TEST(KeyConverter, AllSpecialWebDriverKeysOnEnglishKey + TEST(KeyConverter, AllSpecialWebDriverKeysOnEnglishKeyboard) { + ui::ScopedKeyboardLayout keyboard_layout(ui::KEYBOARD_LAYOUT_ENGLISH_US); + const auto kTextForKeys = std::to_array<char>({ +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + 0, 0, 0, 0, '\t', 0, '\r', '\r', 0, 0, 0, 0, 0, + #else + 0, 0, 0, 0, 0, 0, '\r', '\r', 0, 0, 0, 0, 0, diff --git a/devel/electron36/files/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc b/devel/electron36/files/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc new file mode 100644 index 000000000000..32fdec6d550d --- /dev/null +++ b/devel/electron36/files/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc @@ -0,0 +1,20 @@ +--- chrome/test/chromedriver/keycode_text_conversion_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/test/chromedriver/keycode_text_conversion_unittest.cc +@@ -64,7 +64,7 @@ std::string ConvertKeyCodeToTextNoError(ui::KeyboardCo + + } // namespace + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Fails on bots: crbug.com/174962 + #define MAYBE_KeyCodeToText DISABLED_KeyCodeToText + #else +@@ -98,7 +98,7 @@ TEST(KeycodeTextConversionTest, MAYBE_KeyCodeToText) { + ConvertKeyCodeToTextNoError(ui::VKEY_SHIFT, kShiftKeyModifierMask)); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Fails on bots: crbug.com/174962 + #define MAYBE_CharToKeyCode DISABLED_CharToKeyCode + #else diff --git a/devel/electron36/files/patch-chrome_test_supervised__user_google__auth__state__waiter__mixin.cc b/devel/electron36/files/patch-chrome_test_supervised__user_google__auth__state__waiter__mixin.cc new file mode 100644 index 000000000000..1a54ea3ca8c0 --- /dev/null +++ b/devel/electron36/files/patch-chrome_test_supervised__user_google__auth__state__waiter__mixin.cc @@ -0,0 +1,11 @@ +--- chrome/test/supervised_user/google_auth_state_waiter_mixin.cc.orig 2024-10-16 21:31:08 UTC ++++ chrome/test/supervised_user/google_auth_state_waiter_mixin.cc +@@ -24,7 +24,7 @@ void GoogleAuthStateWaiterMixin::SetUpOnMainThread() { + GoogleAuthStateWaiterMixin::~GoogleAuthStateWaiterMixin() = default; + + void GoogleAuthStateWaiterMixin::SetUpOnMainThread() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + ChildAccountService* child_account_service = + ChildAccountServiceFactory::GetForProfile( + test_base_->browser()->profile()); diff --git a/devel/electron36/files/patch-chrome_updater_app_app__uninstall.cc b/devel/electron36/files/patch-chrome_updater_app_app__uninstall.cc new file mode 100644 index 000000000000..a448d9de27ab --- /dev/null +++ b/devel/electron36/files/patch-chrome_updater_app_app__uninstall.cc @@ -0,0 +1,11 @@ +--- chrome/updater/app/app_uninstall.cc.orig 2025-01-27 17:37:37 UTC ++++ chrome/updater/app/app_uninstall.cc +@@ -157,7 +157,7 @@ void UninstallInThreadPool(UpdaterScope scope, + } + if (int result = UninstallOtherVersions(scope); + result != kErrorOk) { +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // TODO(crbug.com/366249606): Ignores the errors when uninstalls + // the other versions, because currently older Linux updater on + // CIPD exits with error `kErrorFailedToDeleteFolder`. diff --git a/devel/electron36/files/patch-chrome_updater_configurator.cc b/devel/electron36/files/patch-chrome_updater_configurator.cc new file mode 100644 index 000000000000..0d6c16c3aa44 --- /dev/null +++ b/devel/electron36/files/patch-chrome_updater_configurator.cc @@ -0,0 +1,11 @@ +--- chrome/updater/configurator.cc.orig 2025-03-24 20:50:14 UTC ++++ chrome/updater/configurator.cc +@@ -73,7 +73,7 @@ Configurator::Configurator(scoped_refptr<UpdaterPrefs> + return std::nullopt; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + }()) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux creating the NetworkFetcherFactory requires performing blocking IO + // to load an external library. This should be done when the configurator is + // created. diff --git a/devel/electron36/files/patch-chrome_updater_lock.cc b/devel/electron36/files/patch-chrome_updater_lock.cc new file mode 100644 index 000000000000..41ea85a0b7a4 --- /dev/null +++ b/devel/electron36/files/patch-chrome_updater_lock.cc @@ -0,0 +1,11 @@ +--- chrome/updater/lock.cc.orig 2024-08-14 20:54:44 UTC ++++ chrome/updater/lock.cc +@@ -26,7 +26,7 @@ std::unique_ptr<ScopedLock> CreateScopedLock(const std + std::unique_ptr<ScopedLock> CreateScopedLock(const std::string& name, + UpdaterScope scope, + base::TimeDelta timeout) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return named_system_lock::ScopedLock::Create( + base::StrCat({"/" PRODUCT_FULLNAME_STRING, name, + UpdaterScopeToString(scope), ".lock"}), diff --git a/devel/electron36/files/patch-chrome_updater_util_posix__util.cc b/devel/electron36/files/patch-chrome_updater_util_posix__util.cc new file mode 100644 index 000000000000..6cd7f05b8cb6 --- /dev/null +++ b/devel/electron36/files/patch-chrome_updater_util_posix__util.cc @@ -0,0 +1,11 @@ +--- chrome/updater/util/posix_util.cc.orig 2024-04-15 20:33:52 UTC ++++ chrome/updater/util/posix_util.cc +@@ -20,7 +20,7 @@ + #include "chrome/updater/updater_branding.h" + #include "chrome/updater/util/util.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/updater/util/linux_util.h" + #endif + diff --git a/devel/electron36/files/patch-chrome_utility_services.cc b/devel/electron36/files/patch-chrome_utility_services.cc new file mode 100644 index 000000000000..f08e7942c716 --- /dev/null +++ b/devel/electron36/files/patch-chrome_utility_services.cc @@ -0,0 +1,29 @@ +--- chrome/utility/services.cc.orig 2025-04-22 20:15:27 UTC ++++ chrome/utility/services.cc +@@ -48,7 +48,7 @@ + #include "chrome/services/system_signals/mac/mac_system_signals_service.h" + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/services/system_signals/linux/linux_system_signals_service.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -205,7 +205,7 @@ auto RunMacNotificationService( + } + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto RunSystemSignalsService( + mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> + receiver) { +@@ -479,7 +479,7 @@ void RegisterMainThreadServices(mojo::ServiceFactory& + services.Add(RunWindowsIconReader); + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + services.Add(RunSystemSignalsService); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-chromecast_browser_cast__browser__main__parts.cc b/devel/electron36/files/patch-chromecast_browser_cast__browser__main__parts.cc new file mode 100644 index 000000000000..2a4b42b1e28b --- /dev/null +++ b/devel/electron36/files/patch-chromecast_browser_cast__browser__main__parts.cc @@ -0,0 +1,38 @@ +--- chromecast/browser/cast_browser_main_parts.cc.orig 2025-04-22 20:15:27 UTC ++++ chromecast/browser/cast_browser_main_parts.cc +@@ -100,7 +100,7 @@ + #include "ui/ozone/public/ozone_platform.h" + #endif // BUILDFLAG(IS_OZONE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <fontconfig/fontconfig.h> + #include <signal.h> + #include <sys/prctl.h> +@@ -273,7 +273,7 @@ class CastViewsDelegate : public views::ViewsDelegate + + #endif // defined(USE_AURA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + base::FilePath GetApplicationFontsDir() { + std::unique_ptr<base::Environment> env(base::Environment::Create()); +@@ -319,7 +319,7 @@ const DefaultCommandLineSwitch kDefaultSwitches[] = { + {switches::kDisableThreadedAnimation, ""}, + #endif // BUILDFLAG(IS_ANDROID) + #endif // BUILDFLAG(IS_CAST_AUDIO_ONLY) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if defined(ARCH_CPU_X86_FAMILY) + // This is needed for now to enable the x11 Ozone platform to work with + // current Linux/NVidia OpenGL drivers. +@@ -496,7 +496,7 @@ void CastBrowserMainParts::ToolkitInitialized() { + views_delegate_ = std::make_unique<CastViewsDelegate>(); + #endif // defined(USE_AURA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FilePath dir_font = GetApplicationFontsDir(); + const FcChar8* dir_font_char8 = + reinterpret_cast<const FcChar8*>(dir_font.value().data()); diff --git a/devel/electron36/files/patch-chromecast_browser_cast__content__browser__client.cc b/devel/electron36/files/patch-chromecast_browser_cast__content__browser__client.cc new file mode 100644 index 000000000000..2ad502133c3f --- /dev/null +++ b/devel/electron36/files/patch-chromecast_browser_cast__content__browser__client.cc @@ -0,0 +1,11 @@ +--- chromecast/browser/cast_content_browser_client.cc.orig 2025-04-22 20:15:27 UTC ++++ chromecast/browser/cast_content_browser_client.cc +@@ -434,7 +434,7 @@ void CastContentBrowserClient::AppendExtraCommandLineS + switches::kAudioOutputChannels)); + } + } else if (process_type == switches::kGpuProcess) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Necessary for accelerated 2d canvas. By default on Linux, Chromium + // assumes GLES2 contexts can be lost to a power-save mode, which breaks GPU + // canvas apps. diff --git a/devel/electron36/files/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc b/devel/electron36/files/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc new file mode 100644 index 000000000000..b1f1fd14e13a --- /dev/null +++ b/devel/electron36/files/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc @@ -0,0 +1,11 @@ +--- chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc +@@ -352,7 +352,7 @@ CastWebView::Scoped RuntimeApplicationServiceImpl::Cre + params->force_720p_resolution = + GetFlagEntry(feature::kCastCoreForce720p, config_.extra_features(), + /*default_value=*/false); +-#if BUILDFLAG(ENABLE_CAST_RECEIVER) && BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(ENABLE_CAST_RECEIVER) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + // Starboard-based (linux) cast receivers may not render their UI at 720p, so + // we need to scale to the proper resolution. For example, a 4k TV may render + // the window at 1920x1080, so a scaling factor of 1.5 is necessary for a 720p diff --git a/devel/electron36/files/patch-chromecast_media_base_default__monotonic__clock.cc b/devel/electron36/files/patch-chromecast_media_base_default__monotonic__clock.cc new file mode 100644 index 000000000000..effe33ff128d --- /dev/null +++ b/devel/electron36/files/patch-chromecast_media_base_default__monotonic__clock.cc @@ -0,0 +1,20 @@ +--- chromecast/media/base/default_monotonic_clock.cc.orig 2022-02-28 16:54:41 UTC ++++ chromecast/media/base/default_monotonic_clock.cc +@@ -11,7 +11,7 @@ + #include "base/time/time.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chromecast/media/base/buildflags.h" + #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) +@@ -28,7 +28,7 @@ std::unique_ptr<MonotonicClock> MonotonicClock::Create + return std::make_unique<DefaultMonotonicClock>(); + } + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + int64_t MonotonicClockNow() { + timespec now = {0, 0}; + #if BUILDFLAG(MEDIA_CLOCK_MONOTONIC_RAW) diff --git a/devel/electron36/files/patch-components_BUILD.gn b/devel/electron36/files/patch-components_BUILD.gn new file mode 100644 index 000000000000..1a223ecf0b08 --- /dev/null +++ b/devel/electron36/files/patch-components_BUILD.gn @@ -0,0 +1,28 @@ +--- components/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ components/BUILD.gn +@@ -208,7 +208,6 @@ test("components_unittests") { + "//components/content_settings/core/browser:unit_tests", + "//components/content_settings/core/common:unit_tests", + "//components/country_codes:unit_tests", +- "//components/crash/core/common:unit_tests", + "//components/cross_device/logging:unit_tests", + "//components/crx_file:unit_tests", + "//components/data_sharing:unit_tests", +@@ -610,7 +609,7 @@ test("components_unittests") { + deps += [ "//components/cast:unit_tests" ] + } + +- if (!is_fuchsia) { #!iOS and!Fuchsia ++ if (!is_fuchsia && !is_bsd) { #!iOS and!Fuchsia + deps += [ + "//components/crash/content/browser:unit_tests", + "//components/crash/core/app:unit_tests", +@@ -771,7 +770,7 @@ test("components_unittests") { + deps += [ "//components/constrained_window:unit_tests" ] + } + +- if (is_win || is_linux || is_chromeos || is_mac) { ++ if (is_win || (is_linux && !is_bsd) || is_chromeos || is_mac) { + deps += [ "//components/stability_report:unit_tests" ] + } + diff --git a/devel/electron36/files/patch-components_autofill_core_browser_data__manager_payments_payments__data__manager.cc b/devel/electron36/files/patch-components_autofill_core_browser_data__manager_payments_payments__data__manager.cc new file mode 100644 index 000000000000..1f80c2cdcab7 --- /dev/null +++ b/devel/electron36/files/patch-components_autofill_core_browser_data__manager_payments_payments__data__manager.cc @@ -0,0 +1,38 @@ +--- components/autofill/core/browser/data_manager/payments/payments_data_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ components/autofill/core/browser/data_manager/payments/payments_data_manager.cc +@@ -950,7 +950,7 @@ void PaymentsDataManager::SetPrefService(PrefService* + &PaymentsDataManager::OnAutofillPaymentsCardBenefitsPrefChange, + base::Unretained(this))); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + pref_registrar_.Add( + prefs::kAutofillBnplEnabled, + base::BindRepeating(&PaymentsDataManager::OnBnplEnabledPrefChange, +@@ -1026,7 +1026,7 @@ void PaymentsDataManager::SetAutofillHasSeenIban() { + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool PaymentsDataManager::IsAutofillHasSeenBnplPrefEnabled() const { + return prefs::HasSeenBnpl(pref_service_); + } +@@ -2022,7 +2022,7 @@ bool PaymentsDataManager::AreBnplIssuersSupported() co + + bool PaymentsDataManager::AreBnplIssuersSupported() const { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return app_locale_ == "en-US" && GetCountryCodeForExperimentGroup() == "US" && + base::FeatureList::IsEnabled( + features::kAutofillEnableBuyNowPayLaterSyncing); +@@ -2055,7 +2055,7 @@ void PaymentsDataManager::ClearAllCreditCardBenefits() + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void PaymentsDataManager::OnBnplEnabledPrefChange() { + // On pref change to `false`, clearing BNPL issuers is implicitly handled by + // `GetBnplIssuers()`, since it returns an empty vector when diff --git a/devel/electron36/files/patch-components_autofill_core_browser_data__manager_payments_payments__data__manager.h b/devel/electron36/files/patch-components_autofill_core_browser_data__manager_payments_payments__data__manager.h new file mode 100644 index 000000000000..932de7d1eee9 --- /dev/null +++ b/devel/electron36/files/patch-components_autofill_core_browser_data__manager_payments_payments__data__manager.h @@ -0,0 +1,20 @@ +--- components/autofill/core/browser/data_manager/payments/payments_data_manager.h.orig 2025-04-22 20:15:27 UTC ++++ components/autofill/core/browser/data_manager/payments/payments_data_manager.h +@@ -354,7 +354,7 @@ class PaymentsDataManager : public AutofillWebDataServ + void SetAutofillHasSeenIban(); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Returns the value of the kAutofillHasSeenBnpl pref. + bool IsAutofillHasSeenBnplPrefEnabled() const; + +@@ -683,7 +683,7 @@ class PaymentsDataManager : public AutofillWebDataServ + void ClearAllCreditCardBenefits(); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Monitors the `kAutofillBnplEnabled` preference for changes and controls the + // clearing/loading of payment instruments accordingly. Will also log the + // `Autofill.SettingsPage.BnplToggled` metric. diff --git a/devel/electron36/files/patch-components_autofill_core_browser_integrators_autofill__optimization__guide.cc b/devel/electron36/files/patch-components_autofill_core_browser_integrators_autofill__optimization__guide.cc new file mode 100644 index 000000000000..db00b9e1ebc1 --- /dev/null +++ b/devel/electron36/files/patch-components_autofill_core_browser_integrators_autofill__optimization__guide.cc @@ -0,0 +1,11 @@ +--- components/autofill/core/browser/integrators/autofill_optimization_guide.cc.orig 2025-04-22 20:15:27 UTC ++++ components/autofill/core/browser/integrators/autofill_optimization_guide.cc +@@ -231,7 +231,7 @@ void AutofillOptimizationGuide::OnDidParseForm( + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + auto bnpl_issuer_allowlist_can_be_loaded = + [&payments_data_manager](std::string_view issuer_id) { + return base::Contains(payments_data_manager.GetBnplIssuers(), issuer_id, diff --git a/devel/electron36/files/patch-components_autofill_core_browser_payments_bnpl__manager.cc b/devel/electron36/files/patch-components_autofill_core_browser_payments_bnpl__manager.cc new file mode 100644 index 000000000000..9db06a452e32 --- /dev/null +++ b/devel/electron36/files/patch-components_autofill_core_browser_payments_bnpl__manager.cc @@ -0,0 +1,20 @@ +--- components/autofill/core/browser/payments/bnpl_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ components/autofill/core/browser/payments/bnpl_manager.cc +@@ -114,7 +114,7 @@ bool BnplManager::ShouldShowBnplSettings() const { + + bool BnplManager::ShouldShowBnplSettings() const { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const PaymentsDataManager& payments_data_manager = + payments_autofill_client().GetPaymentsDataManager(); + +@@ -431,7 +431,7 @@ void BnplManager::MaybeUpdateSuggestionsWithBnpl( + .Run(update_suggestions_result.suggestions, trigger_source); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + payments_autofill_client().GetPaymentsDataManager().SetAutofillHasSeenBnpl(); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-components_autofill_core_common_autofill__payments__features.cc b/devel/electron36/files/patch-components_autofill_core_common_autofill__payments__features.cc new file mode 100644 index 000000000000..1e356bc4266d --- /dev/null +++ b/devel/electron36/files/patch-components_autofill_core_common_autofill__payments__features.cc @@ -0,0 +1,11 @@ +--- components/autofill/core/common/autofill_payments_features.cc.orig 2025-04-22 20:15:27 UTC ++++ components/autofill/core/common/autofill_payments_features.cc +@@ -267,7 +267,7 @@ bool ShouldShowImprovedUserConsentForCreditCardSave() + #endif // BUILDFLAG(IS_ANDROID) + + bool ShouldShowImprovedUserConsentForCreditCardSave() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The new user consent UI is fully launched on MacOS, Windows and Linux. + return true; + #else diff --git a/devel/electron36/files/patch-components_autofill_core_common_autofill__prefs.cc b/devel/electron36/files/patch-components_autofill_core_common_autofill__prefs.cc new file mode 100644 index 000000000000..7b35c0d46c86 --- /dev/null +++ b/devel/electron36/files/patch-components_autofill_core_common_autofill__prefs.cc @@ -0,0 +1,38 @@ +--- components/autofill/core/common/autofill_prefs.cc.orig 2025-04-22 20:15:27 UTC ++++ components/autofill/core/common/autofill_prefs.cc +@@ -98,7 +98,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref( + kAutofillBnplEnabled, true, + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); +@@ -277,7 +277,7 @@ bool IsFacilitatedPaymentsEwalletEnabled(const PrefSer + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void SetAutofillBnplEnabled(PrefService* prefs, bool value) { + prefs->SetBoolean(kAutofillBnplEnabled, value); + } +@@ -286,7 +286,7 @@ bool IsAutofillBnplEnabled(const PrefService* prefs) { + + bool IsAutofillBnplEnabled(const PrefService* prefs) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return prefs->GetBoolean(kAutofillBnplEnabled); + #else + return false; +@@ -295,7 +295,7 @@ bool IsAutofillBnplEnabled(const PrefService* prefs) { + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // If called, always sets the pref to true, and once true, it will follow the + // user around forever. + void SetAutofillHasSeenBnpl(PrefService* prefs) { diff --git a/devel/electron36/files/patch-components_autofill_core_common_autofill__prefs.h b/devel/electron36/files/patch-components_autofill_core_common_autofill__prefs.h new file mode 100644 index 000000000000..22cd44801c75 --- /dev/null +++ b/devel/electron36/files/patch-components_autofill_core_common_autofill__prefs.h @@ -0,0 +1,29 @@ +--- components/autofill/core/common/autofill_prefs.h.orig 2025-04-22 20:15:27 UTC ++++ components/autofill/core/common/autofill_prefs.h +@@ -32,7 +32,7 @@ inline constexpr char kAutofillAiOptInStatus[] = + inline constexpr char kAutofillAiOptInStatus[] = + "autofill.autofill_ai.opt_in_status"; + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Boolean that is true if BNPL on Autofill is enabled. + inline constexpr char kAutofillBnplEnabled[] = "autofill.bnpl_enabled"; + // Boolean that is true if the user has ever seen a BNPL suggestion. +@@ -208,7 +208,7 @@ bool IsFacilitatedPaymentsEwalletEnabled(const PrefSer + bool IsFacilitatedPaymentsEwalletEnabled(const PrefService* prefs); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void SetAutofillBnplEnabled(PrefService* prefs, bool value); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) +@@ -216,7 +216,7 @@ bool IsAutofillBnplEnabled(const PrefService* prefs); + bool IsAutofillBnplEnabled(const PrefService* prefs); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void SetAutofillHasSeenBnpl(PrefService* prefs); + + bool HasSeenBnpl(const PrefService* prefs); diff --git a/devel/electron36/files/patch-components_commerce_core_commerce__feature__list.cc b/devel/electron36/files/patch-components_commerce_core_commerce__feature__list.cc new file mode 100644 index 000000000000..6b88ea031931 --- /dev/null +++ b/devel/electron36/files/patch-components_commerce_core_commerce__feature__list.cc @@ -0,0 +1,39 @@ +--- components/commerce/core/commerce_feature_list.cc.orig 2025-04-22 20:15:27 UTC ++++ components/commerce/core/commerce_feature_list.cc +@@ -156,7 +156,8 @@ BASE_FEATURE(kPriceInsights, + "PriceInsights", + base::FEATURE_DISABLED_BY_DEFAULT); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || \ ++ BUILDFLAG(IS_BSD) + BASE_FEATURE(kPriceInsightsRegionLaunched, + "PriceInsightsRegionLaunched", + base::FEATURE_ENABLED_BY_DEFAULT); +@@ -227,7 +228,7 @@ const char kDiscountOnShoppyPageParam[] = "discount-on + const char kDiscountOnShoppyPageParam[] = "discount-on-shoppy-page"; + + #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) + const base::FeatureParam<bool> kDiscountOnShoppyPage{ + &kEnableDiscountInfoApi, kDiscountOnShoppyPageParam, true}; + #else +@@ -236,7 +237,7 @@ const base::FeatureParam<bool> kDiscountOnShoppyPage{ + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kEnableDiscountInfoApiRegionLaunched, + "EnableDiscountInfoApiRegionLaunched", + base::FEATURE_ENABLED_BY_DEFAULT); +@@ -251,7 +252,7 @@ const char kNonMerchantWideBehaviorParam[] = "non-merc + const char kNonMerchantWideBehaviorParam[] = "non-merchant-wide-behavior"; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kDiscountDialogAutoPopupBehaviorSetting, + "DiscountDialogAutoPopupBehaviorSetting", + base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-components_constrained__window_constrained__window__views.cc b/devel/electron36/files/patch-components_constrained__window_constrained__window__views.cc new file mode 100644 index 000000000000..2384bd0f9dbd --- /dev/null +++ b/devel/electron36/files/patch-components_constrained__window_constrained__window__views.cc @@ -0,0 +1,11 @@ +--- components/constrained_window/constrained_window_views.cc.orig 2025-04-22 20:15:27 UTC ++++ components/constrained_window/constrained_window_views.cc +@@ -377,7 +377,7 @@ bool PlatformClipsChildrenToViewport() { + } + + bool PlatformClipsChildrenToViewport() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron36/files/patch-components_content__settings_core_browser_website__settings__registry.cc b/devel/electron36/files/patch-components_content__settings_core_browser_website__settings__registry.cc new file mode 100644 index 000000000000..4020932c3ec5 --- /dev/null +++ b/devel/electron36/files/patch-components_content__settings_core_browser_website__settings__registry.cc @@ -0,0 +1,11 @@ +--- components/content_settings/core/browser/website_settings_registry.cc.orig 2025-03-24 20:50:14 UTC ++++ components/content_settings/core/browser/website_settings_registry.cc +@@ -66,7 +66,7 @@ const WebsiteSettingsInfo* WebsiteSettingsRegistry::Re + #if BUILDFLAG(IS_WIN) + if (!(platform & PLATFORM_WINDOWS)) + return nullptr; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!(platform & PLATFORM_LINUX)) + return nullptr; + #elif BUILDFLAG(IS_MAC) diff --git a/devel/electron36/files/patch-components_cookie__config_cookie__store__util.cc b/devel/electron36/files/patch-components_cookie__config_cookie__store__util.cc new file mode 100644 index 000000000000..6cb3d6e291e0 --- /dev/null +++ b/devel/electron36/files/patch-components_cookie__config_cookie__store__util.cc @@ -0,0 +1,11 @@ +--- components/cookie_config/cookie_store_util.cc.orig 2024-02-21 00:20:40 UTC ++++ components/cookie_config/cookie_store_util.cc +@@ -12,7 +12,7 @@ namespace cookie_config { + namespace cookie_config { + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + namespace { + + // Use the operating system's mechanisms to encrypt cookies before writing diff --git a/devel/electron36/files/patch-components_crash_core_app_BUILD.gn b/devel/electron36/files/patch-components_crash_core_app_BUILD.gn new file mode 100644 index 000000000000..e339781aac5a --- /dev/null +++ b/devel/electron36/files/patch-components_crash_core_app_BUILD.gn @@ -0,0 +1,43 @@ +--- components/crash/core/app/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ components/crash/core/app/BUILD.gn +@@ -70,6 +70,10 @@ static_library("app") { + ] + } + ++ if (is_bsd) { ++ sources -= [ "crashpad.cc" ] ++ } ++ + defines = [ "CRASH_IMPLEMENTATION" ] + + public_deps = [ ":lib" ] +@@ -83,7 +87,7 @@ static_library("app") { + "//third_party/crashpad/crashpad/util", + ] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ "crashpad_linux.cc" ] + data_deps = [ ":chrome_crashpad_handler" ] + } +@@ -105,7 +109,7 @@ static_library("app") { + libs = [ "log" ] + } + +- if (is_android || is_linux || is_chromeos) { ++ if ((is_android || is_linux || is_chromeos) && !is_bsd) { + deps += [ + "//base:base_static", + "//components/crash/core/common", +@@ -237,11 +241,6 @@ if (is_mac || is_android || is_linux || is_chromeos) { + # define custom UserStreamDataSources. + executable("chrome_crashpad_handler") { + sources = [ "chrome_crashpad_handler.cc" ] +- +- deps = [ +- ":crashpad_handler_main", +- "//third_party/crashpad/crashpad/handler", +- ] + + if (is_mac && (is_component_build || is_asan || is_ubsan_any)) { + ldflags = [ diff --git a/devel/electron36/files/patch-components_crash_core_app_chrome__crashpad__handler.cc b/devel/electron36/files/patch-components_crash_core_app_chrome__crashpad__handler.cc new file mode 100644 index 000000000000..a9adae723bc6 --- /dev/null +++ b/devel/electron36/files/patch-components_crash_core_app_chrome__crashpad__handler.cc @@ -0,0 +1,12 @@ +--- components/crash/core/app/chrome_crashpad_handler.cc.orig 2022-02-07 13:39:41 UTC ++++ 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/devel/electron36/files/patch-components_crash_core_app_crashpad__handler__main.cc b/devel/electron36/files/patch-components_crash_core_app_crashpad__handler__main.cc new file mode 100644 index 000000000000..219d1e41410c --- /dev/null +++ b/devel/electron36/files/patch-components_crash_core_app_crashpad__handler__main.cc @@ -0,0 +1,20 @@ +--- components/crash/core/app/crashpad_handler_main.cc.orig 2024-02-21 00:20:40 UTC ++++ components/crash/core/app/crashpad_handler_main.cc +@@ -10,7 +10,7 @@ + #include "third_party/crashpad/crashpad/handler/handler_main.h" + #include "third_party/crashpad/crashpad/handler/user_stream_data_source.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "components/stability_report/user_stream_data_source_posix.h" + #endif + +@@ -31,7 +31,7 @@ __attribute__((visibility("default"), used)) int Crash + char* argv[]) { + crashpad::UserStreamDataSources user_stream_data_sources; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + user_stream_data_sources.push_back( + std::make_unique<stability_report::UserStreamDataSourcePosix>()); + #endif diff --git a/devel/electron36/files/patch-components_crash_core_browser_crash__upload__list__crashpad.cc b/devel/electron36/files/patch-components_crash_core_browser_crash__upload__list__crashpad.cc new file mode 100644 index 000000000000..9b0f58ec3767 --- /dev/null +++ b/devel/electron36/files/patch-components_crash_core_browser_crash__upload__list__crashpad.cc @@ -0,0 +1,26 @@ +--- components/crash/core/browser/crash_upload_list_crashpad.cc.orig 2025-03-24 20:50:14 UTC ++++ components/crash/core/browser/crash_upload_list_crashpad.cc +@@ -37,7 +37,9 @@ CrashUploadListCrashpad::LoadUploadList() { + 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) { +@@ -51,9 +53,13 @@ void CrashUploadListCrashpad::ClearUploadList(const ba + + 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/devel/electron36/files/patch-components_crash_core_common_BUILD.gn b/devel/electron36/files/patch-components_crash_core_common_BUILD.gn new file mode 100644 index 000000000000..e10540b90e26 --- /dev/null +++ b/devel/electron36/files/patch-components_crash_core_common_BUILD.gn @@ -0,0 +1,11 @@ +--- components/crash/core/common/BUILD.gn.orig 2023-05-25 00:41:50 UTC ++++ components/crash/core/common/BUILD.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. +- use_crash_key_stubs = is_fuchsia ++ use_crash_key_stubs = is_fuchsia || is_bsd + } + + group("common") { diff --git a/devel/electron36/files/patch-components_device__signals_core_browser_browser__utils.h b/devel/electron36/files/patch-components_device__signals_core_browser_browser__utils.h new file mode 100644 index 000000000000..4bca3cf0ec4e --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_browser_browser__utils.h @@ -0,0 +1,20 @@ +--- components/device_signals/core/browser/browser_utils.h.orig 2025-04-22 20:15:27 UTC ++++ components/device_signals/core/browser/browser_utils.h +@@ -15,7 +15,7 @@ std::string GetHostName(); + // Returns the hostname of the current machine. + std::string GetHostName(); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns the hostname of the current machine. + std::vector<std::string> GetSystemDnsServers(); + +@@ -23,7 +23,7 @@ SettingValue GetOSFirewall(); + SettingValue GetOSFirewall(); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns the path to the ufw configuration file. + const char** GetUfwConfigPath(); + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-components_device__signals_core_browser_mock__signals__aggregator.h b/devel/electron36/files/patch-components_device__signals_core_browser_mock__signals__aggregator.h new file mode 100644 index 000000000000..f9e075904ee8 --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_browser_mock__signals__aggregator.h @@ -0,0 +1,11 @@ +--- components/device_signals/core/browser/mock_signals_aggregator.h.orig 2023-08-10 01:48:40 UTC ++++ 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/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator.h b/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator.h new file mode 100644 index 000000000000..290cc0f1df04 --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator.h @@ -0,0 +1,11 @@ +--- components/device_signals/core/browser/signals_aggregator.h.orig 2023-08-10 01:48:40 UTC ++++ 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/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator__impl.cc b/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator__impl.cc new file mode 100644 index 000000000000..c6d5c29f1233 --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator__impl.cc @@ -0,0 +1,11 @@ +--- components/device_signals/core/browser/signals_aggregator_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ components/device_signals/core/browser/signals_aggregator_impl.cc +@@ -64,7 +64,7 @@ SignalsAggregatorImpl::~SignalsAggregatorImpl() = defa + + 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/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator__impl.h b/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator__impl.h new file mode 100644 index 000000000000..f7afa00e93b3 --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_browser_signals__aggregator__impl.h @@ -0,0 +1,11 @@ +--- components/device_signals/core/browser/signals_aggregator_impl.h.orig 2025-04-22 20:15:27 UTC ++++ components/device_signals/core/browser/signals_aggregator_impl.h +@@ -30,7 +30,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/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service.h b/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service.h new file mode 100644 index 000000000000..f97fd34746cc --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service.h @@ -0,0 +1,11 @@ +--- components/device_signals/core/browser/user_permission_service.h.orig 2023-08-10 01:48:40 UTC ++++ 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/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service__impl.cc b/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service__impl.cc new file mode 100644 index 000000000000..8c3b2d95c205 --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service__impl.cc @@ -0,0 +1,11 @@ +--- components/device_signals/core/browser/user_permission_service_impl.cc.orig 2024-08-14 20:54:47 UTC ++++ components/device_signals/core/browser/user_permission_service_impl.cc +@@ -87,7 +87,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/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service__impl.h b/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service__impl.h new file mode 100644 index 000000000000..bbc8fcb8a42c --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_browser_user__permission__service__impl.h @@ -0,0 +1,11 @@ +--- components/device_signals/core/browser/user_permission_service_impl.h.orig 2024-08-14 20:54:47 UTC ++++ components/device_signals/core/browser/user_permission_service_impl.h +@@ -38,7 +38,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/devel/electron36/files/patch-components_device__signals_core_common_linux_platform__utils__linux.cc b/devel/electron36/files/patch-components_device__signals_core_common_linux_platform__utils__linux.cc new file mode 100644 index 000000000000..27f314c5439a --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_common_linux_platform__utils__linux.cc @@ -0,0 +1,78 @@ +--- components/device_signals/core/common/linux/platform_utils_linux.cc.orig 2025-04-22 20:15:27 UTC ++++ components/device_signals/core/common/linux/platform_utils_linux.cc +@@ -4,12 +4,23 @@ + + #include "components/device_signals/core/common/platform_utils.h" + ++#include "build/build_config.h" ++ + #if defined(USE_GIO) + #include <gio/gio.h> + #endif // defined(USE_GIO) + #include <sys/stat.h> ++#if !BUILDFLAG(IS_BSD) + #include <sys/sysmacros.h> ++#endif + ++#if BUILDFLAG(IS_BSD) ++#include <sys/types.h> ++#include <sys/socket.h> ++#include <ifaddrs.h> ++#include <net/if_dl.h> ++#endif ++ + #include <algorithm> + #include <optional> + #include <string> +@@ -100,6 +111,7 @@ SettingValue GetDiskEncrypted() { + // Implements the logic from the native host installation script. First find the + // root device identifier, then locate its parent and get its type. + SettingValue GetDiskEncrypted() { ++#if !BUILDFLAG(IS_BSD) + struct stat info; + // First figure out the device identifier. Fail fast if this fails. + if (stat("/", &info) != 0) { +@@ -122,11 +134,35 @@ SettingValue GetDiskEncrypted() { + } + return SettingValue::UNKNOWN; + } ++#endif + return SettingValue::DISABLED; + } + + std::vector<std::string> GetMacAddresses() { + std::vector<std::string> result; ++#if BUILDFLAG(IS_BSD) ++ struct ifaddrs* ifa = nullptr; ++ ++ if (getifaddrs(&ifa) != 0) ++ return result; ++ ++ struct ifaddrs* interface = ifa; ++ for (; interface != nullptr; interface = interface->ifa_next) { ++ if (interface->ifa_addr == nullptr || ++ interface->ifa_addr->sa_family != AF_LINK) { ++ continue; ++ } ++ struct sockaddr_dl* sdl = ++ reinterpret_cast<struct sockaddr_dl*>(interface->ifa_addr); ++ if (!sdl || sdl->sdl_alen != 6) ++ continue; ++ char* link_address = static_cast<char*>(LLADDR(sdl)); ++ result.push_back(base::StringPrintf( ++ "%02x:%02x:%02x:%02x:%02x:%02x", link_address[0] & 0xff, ++ link_address[1] & 0xff, link_address[2] & 0xff, link_address[3] & 0xff, ++ link_address[4] & 0xff, link_address[5] & 0xff)); ++ } ++#else + base::DirReaderPosix reader("/sys/class/net"); + if (!reader.IsValid()) { + return result; +@@ -151,6 +187,7 @@ std::vector<std::string> GetMacAddresses() { + &address); + result.push_back(address); + } ++#endif + return result; + } + diff --git a/devel/electron36/files/patch-components_device__signals_core_common_signals__features.cc b/devel/electron36/files/patch-components_device__signals_core_common_signals__features.cc new file mode 100644 index 000000000000..8161c57de4f0 --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_common_signals__features.cc @@ -0,0 +1,11 @@ +--- components/device_signals/core/common/signals_features.cc.orig 2025-04-22 20:15:27 UTC ++++ components/device_signals/core/common/signals_features.cc +@@ -31,7 +31,7 @@ bool IsBrowserSignalsReportingEnabled() { + } + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || 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/devel/electron36/files/patch-components_device__signals_core_common_signals__features.h b/devel/electron36/files/patch-components_device__signals_core_common_signals__features.h new file mode 100644 index 000000000000..61f9c398fff1 --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_common_signals__features.h @@ -0,0 +1,11 @@ +--- components/device_signals/core/common/signals_features.h.orig 2025-04-22 20:15:27 UTC ++++ components/device_signals/core/common/signals_features.h +@@ -24,7 +24,7 @@ bool IsBrowserSignalsReportingEnabled(); + bool IsBrowserSignalsReportingEnabled(); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + BASE_DECLARE_FEATURE(kDeviceSignalsConsentDialog); + + // Returns true if device signals consent dialog has been enabled for diff --git a/devel/electron36/files/patch-components_device__signals_core_system__signals_platform__delegate.cc b/devel/electron36/files/patch-components_device__signals_core_system__signals_platform__delegate.cc new file mode 100644 index 000000000000..c5dea15ace97 --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_core_system__signals_platform__delegate.cc @@ -0,0 +1,11 @@ +--- components/device_signals/core/system_signals/platform_delegate.cc.orig 2022-09-24 10:57:32 UTC ++++ 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/devel/electron36/files/patch-components_device__signals_test_signals__contract.cc b/devel/electron36/files/patch-components_device__signals_test_signals__contract.cc new file mode 100644 index 000000000000..500da359607e --- /dev/null +++ b/devel/electron36/files/patch-components_device__signals_test_signals__contract.cc @@ -0,0 +1,11 @@ +--- components/device_signals/test/signals_contract.cc.orig 2025-04-22 20:15:27 UTC ++++ components/device_signals/test/signals_contract.cc +@@ -221,7 +221,7 @@ GetSignalsContract(bool is_av_signal_enabled) { + base::BindRepeating(VerifyUnset, names::kCrowdStrike); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + contract[names::kAllowScreenLock] = + base::BindRepeating(VerifyUnset, names::kAllowScreenLock); + contract[names::kImei] = base::BindRepeating(VerifyUnset, names::kImei); diff --git a/devel/electron36/files/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc b/devel/electron36/files/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc new file mode 100644 index 000000000000..422c5721bd85 --- /dev/null +++ b/devel/electron36/files/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc @@ -0,0 +1,11 @@ +--- components/discardable_memory/service/discardable_shared_memory_manager.cc.orig 2024-10-16 21:31:10 UTC ++++ components/discardable_memory/service/discardable_shared_memory_manager.cc +@@ -172,7 +172,7 @@ uint64_t GetDefaultMemoryLimit() { + // Limits the number of FDs used to 32, assuming a 4MB allocation size. + uint64_t max_default_memory_limit = 128 * kMegabyte; + #else +- uint64_t max_default_memory_limit = 512 * kMegabyte; ++ uint64_t max_default_memory_limit = 128 * kMegabyte; + #endif + + // Use 1/8th of discardable memory on low-end devices. diff --git a/devel/electron36/files/patch-components_embedder__support_user__agent__utils.cc b/devel/electron36/files/patch-components_embedder__support_user__agent__utils.cc new file mode 100644 index 000000000000..fdeaad5c7466 --- /dev/null +++ b/devel/electron36/files/patch-components_embedder__support_user__agent__utils.cc @@ -0,0 +1,47 @@ +--- components/embedder_support/user_agent_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ components/embedder_support/user_agent_utils.cc +@@ -318,7 +318,7 @@ std::string GetUserAgentPlatform() { + return ""; + #elif BUILDFLAG(IS_MAC) + return "Macintosh; "; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return "X11; "; // strange, but that's what Firefox uses + #elif BUILDFLAG(IS_ANDROID) + return "Linux; "; +@@ -344,7 +344,7 @@ std::string GetUnifiedPlatform() { + return "Windows NT 10.0; Win64; x64"; + #elif BUILDFLAG(IS_FUCHSIA) + return "Fuchsia"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return "X11; Linux x86_64"; + #elif BUILDFLAG(IS_IOS) + if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) { +@@ -601,6 +601,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 +@@ -813,6 +816,16 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(cons + "Android %s", os_version.c_str() + #elif BUILDFLAG(IS_FUCHSIA) + "Fuchsia" ++#elif BUILDFLAG(IS_BSD) ++#if defined(__x86_64__) ++ "Linux x86_64; %s %s", ++#elif defined(__aarch64__) ++ "Linux aarch64; %s %s", ++#else ++ "Linux i686; %s %s", ++#endif ++ unixinfo.sysname, // e.g. Linux ++ cpu_type.c_str() // e.g. i686 + #elif BUILDFLAG(IS_IOS) + "CPU %s OS %s like Mac OS X", cpu_type.c_str(), + os_version.c_str() diff --git a/devel/electron36/files/patch-components_embedder__support_user__agent__utils__unittest.cc b/devel/electron36/files/patch-components_embedder__support_user__agent__utils__unittest.cc new file mode 100644 index 000000000000..76c1580a05ed --- /dev/null +++ b/devel/electron36/files/patch-components_embedder__support_user__agent__utils__unittest.cc @@ -0,0 +1,29 @@ +--- components/embedder_support/user_agent_utils_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ components/embedder_support/user_agent_utils_unittest.cc +@@ -148,7 +148,7 @@ void CheckUserAgentStringOrdering(bool mobile_device) + ASSERT_EQ("CrOS", pieces[0]); + ASSERT_EQ("x86_64", pieces[1]); + ASSERT_EQ("14541.0.0", pieces[2]); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Post-UA Reduction there is a single <unifiedPlatform> value for Linux: + // X11; Linux x86_64 + ASSERT_EQ(2u, pieces.size()); +@@ -336,7 +336,7 @@ class UserAgentUtilsTest : public testing::Test, + "X11; CrOS x86_64 14541.0.0"; + #elif BUILDFLAG(IS_FUCHSIA) + "Fuchsia"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + "X11; Linux x86_64"; + #elif BUILDFLAG(IS_MAC) + "Macintosh; Intel Mac OS X 10_15_7"; +@@ -696,7 +696,7 @@ TEST_F(UserAgentUtilsTest, UserAgentMetadata) { + #endif + #elif BUILDFLAG(IS_ANDROID) + EXPECT_EQ(metadata.platform, "Android"); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + EXPECT_EQ(metadata.platform, "Linux"); + #elif BUILDFLAG(IS_FREEBSD) + EXPECT_EQ(metadata.platform, "FreeBSD"); diff --git a/devel/electron36/files/patch-components_enterprise_connectors_core_realtime__reporting__client__base.cc b/devel/electron36/files/patch-components_enterprise_connectors_core_realtime__reporting__client__base.cc new file mode 100644 index 000000000000..6e7c7deb3392 --- /dev/null +++ b/devel/electron36/files/patch-components_enterprise_connectors_core_realtime__reporting__client__base.cc @@ -0,0 +1,20 @@ +--- components/enterprise/connectors/core/realtime_reporting_client_base.cc.orig 2025-04-22 20:15:27 UTC ++++ components/enterprise/connectors/core/realtime_reporting_client_base.cc +@@ -190,7 +190,7 @@ void RealtimeReportingClientBase::ReportEvent( + event.mutable_time()->set_nanos((timestamp_millis % 1000) * 1000000); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(notyet) + MaybeCollectDeviceSignalsAndReportEvent(std::move(event), client, settings); + #else + // Regardless of collecting device signals or not, upload the security event +@@ -239,7 +239,7 @@ void RealtimeReportingClientBase::ReportEventWithTimes + if (include_profile_user_name) { + event.Set(kKeyProfileUserName, GetProfileUserName()); + } +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(notyet) + MaybeCollectDeviceSignalsAndReportEventDeprecated(std::move(event), client, + name, settings, time); + #else diff --git a/devel/electron36/files/patch-components_enterprise_watermarking_watermark.cc b/devel/electron36/files/patch-components_enterprise_watermarking_watermark.cc new file mode 100644 index 000000000000..8d7f8de2fe97 --- /dev/null +++ b/devel/electron36/files/patch-components_enterprise_watermarking_watermark.cc @@ -0,0 +1,20 @@ +--- components/enterprise/watermarking/watermark.cc.orig 2025-03-24 20:50:14 UTC ++++ components/enterprise/watermarking/watermark.cc +@@ -31,7 +31,7 @@ gfx::Font WatermarkFont() { + "Segoe UI", + #elif BUILDFLAG(IS_MAC) + "SF Pro Text", +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + "Ubuntu", + #elif BUILDFLAG(IS_CHROMEOS) + "Google Sans", +@@ -47,7 +47,7 @@ gfx::Font::Weight WatermarkFontWeight() { + } + + gfx::Font::Weight WatermarkFontWeight() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return gfx::Font::Weight::SEMIBOLD; + #else + return gfx::Font::Weight::MEDIUM; diff --git a/devel/electron36/files/patch-components_error__page_common_localized__error.cc b/devel/electron36/files/patch-components_error__page_common_localized__error.cc new file mode 100644 index 000000000000..3b226787ab12 --- /dev/null +++ b/devel/electron36/files/patch-components_error__page_common_localized__error.cc @@ -0,0 +1,11 @@ +--- components/error_page/common/localized_error.cc.orig 2025-03-24 20:50:14 UTC ++++ components/error_page/common/localized_error.cc +@@ -901,7 +901,7 @@ void AddSuggestionsDetails(int error_code, + if (suggestions & SUGGEST_PROXY_CONFIG) { + // Custom body string. + std::u16string inner = +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + l10n_util::GetStringFUTF16( + IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM, + l10n_util::GetStringUTF16(IDS_SETTINGS_TITLE), diff --git a/devel/electron36/files/patch-components_eye__dropper_eye__dropper__view.cc b/devel/electron36/files/patch-components_eye__dropper_eye__dropper__view.cc new file mode 100644 index 000000000000..eb73803844e8 --- /dev/null +++ b/devel/electron36/files/patch-components_eye__dropper_eye__dropper__view.cc @@ -0,0 +1,11 @@ +--- components/eye_dropper/eye_dropper_view.cc.orig 2025-03-24 20:50:14 UTC ++++ components/eye_dropper/eye_dropper_view.cc +@@ -208,7 +208,7 @@ EyeDropperView::EyeDropperView(gfx::NativeView parent, + // EyeDropper/WidgetDelegate. + set_owned_by_client(); + SetPreferredSize(GetSize()); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Use TYPE_MENU for Linux to ensure that the eye dropper view is displayed + // above the color picker. + views::Widget::InitParams params( diff --git a/devel/electron36/files/patch-components_feature__engagement_public_event__constants.cc b/devel/electron36/files/patch-components_feature__engagement_public_event__constants.cc new file mode 100644 index 000000000000..e6301bde073c --- /dev/null +++ b/devel/electron36/files/patch-components_feature__engagement_public_event__constants.cc @@ -0,0 +1,11 @@ +--- components/feature_engagement/public/event_constants.cc.orig 2025-01-27 17:37:37 UTC ++++ components/feature_engagement/public/event_constants.cc +@@ -11,7 +11,7 @@ namespace events { + 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 kReadingListItemAdded[] = "reading_list_item_added"; diff --git a/devel/electron36/files/patch-components_feature__engagement_public_event__constants.h b/devel/electron36/files/patch-components_feature__engagement_public_event__constants.h new file mode 100644 index 000000000000..2308fc5d4293 --- /dev/null +++ b/devel/electron36/files/patch-components_feature__engagement_public_event__constants.h @@ -0,0 +1,11 @@ +--- components/feature_engagement/public/event_constants.h.orig 2023-10-19 19:58:18 UTC ++++ 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/devel/electron36/files/patch-components_feature__engagement_public_feature__configurations.cc b/devel/electron36/files/patch-components_feature__engagement_public_feature__configurations.cc new file mode 100644 index 000000000000..95c575d5c316 --- /dev/null +++ b/devel/electron36/files/patch-components_feature__engagement_public_feature__configurations.cc @@ -0,0 +1,30 @@ +--- components/feature_engagement/public/feature_configurations.cc.orig 2025-04-22 20:15:27 UTC ++++ components/feature_engagement/public/feature_configurations.cc +@@ -100,7 +100,7 @@ std::optional<FeatureConfig> GetClientSideFeatureConfi + + std::optional<FeatureConfig> GetClientSideFeatureConfig( + const base::Feature* feature) { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + + // The IPH bubble for link capturing has a trigger set to ANY so that it + // always shows up. The per app specific guardrails are independently stored +@@ -119,7 +119,7 @@ std::optional<FeatureConfig> GetClientSideFeatureConfi + + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (kIPHPasswordsManagementBubbleAfterSaveFeature.name == feature->name) { + FeatureConfig config; + config.valid = true; +@@ -1740,7 +1740,8 @@ std::optional<FeatureConfig> GetClientSideFeatureConfi + #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 (kIPHAutofillCreditCardBenefitFeature.name == feature->name) { + // The credit card benefit IPH appears up to three times over 10 years and diff --git a/devel/electron36/files/patch-components_feature__engagement_public_feature__constants.cc b/devel/electron36/files/patch-components_feature__engagement_public_feature__constants.cc new file mode 100644 index 000000000000..c9bf242895ce --- /dev/null +++ b/devel/electron36/files/patch-components_feature__engagement_public_feature__constants.cc @@ -0,0 +1,29 @@ +--- components/feature_engagement/public/feature_constants.cc.orig 2025-04-22 20:15:27 UTC ++++ components/feature_engagement/public/feature_constants.cc +@@ -19,7 +19,7 @@ BASE_FEATURE(kIPHDummyFeature, "IPH_Dummy", base::FEAT + 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) + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + BASE_FEATURE(kEsbDownloadRowPromoFeature, + "EsbDownloadRowPromo", +@@ -710,7 +710,7 @@ BASE_FEATURE(kDefaultBrowserTriggerCriteriaExperiment, + + #endif // BUILDFLAG(IS_IOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + BASE_FEATURE(kIPHAutofillBnplAffirmOrZipSuggestionFeature, + "IPH_AutofillBnplAffirmOrZipSuggestion", +@@ -857,7 +857,7 @@ BASE_FEATURE(kIPHScalableIphGamingFeature, + base::FEATURE_DISABLED_BY_DEFAULT); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // This can be enabled by default, as the DesktopPWAsLinkCapturing + // flag is needed for the IPH linked to this feature to work, and + // use-cases to show the IPH are guarded by that flag. diff --git a/devel/electron36/files/patch-components_feature__engagement_public_feature__constants.h b/devel/electron36/files/patch-components_feature__engagement_public_feature__constants.h new file mode 100644 index 000000000000..c1e1a74e5828 --- /dev/null +++ b/devel/electron36/files/patch-components_feature__engagement_public_feature__constants.h @@ -0,0 +1,29 @@ +--- components/feature_engagement/public/feature_constants.h.orig 2025-04-22 20:15:27 UTC ++++ components/feature_engagement/public/feature_constants.h +@@ -27,7 +27,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDummyFeature); + FEATURE_CONSTANTS_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) + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + FEATURE_CONSTANTS_DECLARE_FEATURE(kEsbDownloadRowPromoFeature); + #endif +@@ -316,7 +316,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kDefaultBrowserTrigg + + #endif // BUILDFLAG(IS_IOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHAutofillBnplAffirmOrZipSuggestionFeature); + FEATURE_CONSTANTS_DECLARE_FEATURE( +@@ -374,7 +374,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHScalableIphGamin + FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHScalableIphGamingFeature); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDesktopPWAsLinkCapturingLaunch); + FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDesktopPWAsLinkCapturingLaunchAppInTab); + FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHSupervisedUserProfileSigninFeature); diff --git a/devel/electron36/files/patch-components_feature__engagement_public_feature__list.cc b/devel/electron36/files/patch-components_feature__engagement_public_feature__list.cc new file mode 100644 index 000000000000..6c0b74854f59 --- /dev/null +++ b/devel/electron36/files/patch-components_feature__engagement_public_feature__list.cc @@ -0,0 +1,29 @@ +--- components/feature_engagement/public/feature_list.cc.orig 2025-04-22 20:15:27 UTC ++++ components/feature_engagement/public/feature_list.cc +@@ -175,7 +175,7 @@ const base::Feature* const kAllFeatures[] = { + &kIPHiOSSettingsInOverflowMenuBubbleFeature, + #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) + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + &kEsbDownloadRowPromoFeature, + #endif +@@ -247,7 +247,7 @@ const base::Feature* const kAllFeatures[] = { + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + &kIPHAutofillAiOptInFeature, + &kIPHAutofillBnplAffirmOrZipSuggestionFeature, +@@ -302,7 +302,7 @@ const base::Feature* const kAllFeatures[] = { + &kIPHScalableIphGamingFeature, + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + &kIPHDesktopPWAsLinkCapturingLaunch, + &kIPHDesktopPWAsLinkCapturingLaunchAppInTab, + &kIPHSupervisedUserProfileSigninFeature, diff --git a/devel/electron36/files/patch-components_feature__engagement_public_feature__list.h b/devel/electron36/files/patch-components_feature__engagement_public_feature__list.h new file mode 100644 index 000000000000..9a6bbfa200e3 --- /dev/null +++ b/devel/electron36/files/patch-components_feature__engagement_public_feature__list.h @@ -0,0 +1,58 @@ +--- components/feature_engagement/public/feature_list.h.orig 2025-04-22 20:15:27 UTC ++++ components/feature_engagement/public/feature_list.h +@@ -312,7 +312,7 @@ DEFINE_VARIATION_PARAM(kIPHiOSSettingsInOverflowMenuBu + #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) + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + DEFINE_VARIATION_PARAM(kEsbDownloadRowPromoFeature, "EsbDownloadRowPromo"); + #endif +@@ -427,7 +427,8 @@ DEFINE_VARIATION_PARAM(kIPHTabGroupsSharedTabFeedbackF + // 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(kIPHAutofillAiOptInFeature, "IPH_AutofillAiOptIn"); + DEFINE_VARIATION_PARAM(kIPHAutofillBnplAffirmOrZipSuggestionFeature, + "IPH_AutofillBnplAffirmOrZipSuggestion"); +@@ -523,7 +524,7 @@ DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, " + DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, "IPH_ScalableIphGaming"); + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + DEFINE_VARIATION_PARAM(kIPHDesktopPWAsLinkCapturingLaunch, + "IPH_DesktopPWAsLinkCapturingLaunch"); + DEFINE_VARIATION_PARAM(kIPHDesktopPWAsLinkCapturingLaunchAppInTab, +@@ -697,7 +698,7 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat + kIPHiOSReminderNotificationsOverflowMenuNewBadgeFeature), + VARIATION_ENTRY(kIPHiOSDownloadAutoDeletionFeature), + #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(kIPHBatterySaverModeFeature), + VARIATION_ENTRY(kIPHCompanionSidePanelFeature), + VARIATION_ENTRY(kIPHCompanionSidePanelRegionSearchFeature), +@@ -759,7 +760,8 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat + // 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(kIPHAutofillAiOptInFeature), + VARIATION_ENTRY(kIPHAutofillCreditCardBenefitFeature), + VARIATION_ENTRY(kIPHAutofillCardInfoRetrievalSuggestionFeature), +@@ -812,7 +814,7 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat + VARIATION_ENTRY(kIPHScalableIphGamingFeature), + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + VARIATION_ENTRY(kIPHDesktopPWAsLinkCapturingLaunch), + VARIATION_ENTRY(kIPHDesktopPWAsLinkCapturingLaunchAppInTab), + VARIATION_ENTRY(kIPHSupervisedUserProfileSigninFeature), diff --git a/devel/electron36/files/patch-components_feed_core_proto_v2_wire_version.proto b/devel/electron36/files/patch-components_feed_core_proto_v2_wire_version.proto new file mode 100644 index 000000000000..96224d006191 --- /dev/null +++ b/devel/electron36/files/patch-components_feed_core_proto_v2_wire_version.proto @@ -0,0 +1,13 @@ +--- components/feed/core/proto/v2/wire/version.proto.orig 2021-05-12 22:05:49 UTC ++++ 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/devel/electron36/files/patch-components_feed_core_v2_feed__network__impl__unittest.cc b/devel/electron36/files/patch-components_feed_core_v2_feed__network__impl__unittest.cc new file mode 100644 index 000000000000..33d2e6c0062e --- /dev/null +++ b/devel/electron36/files/patch-components_feed_core_v2_feed__network__impl__unittest.cc @@ -0,0 +1,13 @@ +--- components/feed/core/v2/feed_network_impl_unittest.cc.orig 2024-10-16 21:31:10 UTC ++++ components/feed/core/v2/feed_network_impl_unittest.cc +@@ -747,8 +747,8 @@ TEST_F(FeedNetworkTest, SendApiRequest_DecodesClientIn + + EXPECT_EQ(feedwire::ClientInfo::CHROME_ANDROID, client_info.app_type()); + EXPECT_EQ(feedwire::Version::RELEASE, client_info.app_version().build_type()); +- EXPECT_EQ(1, client_info.app_version().major()); +- EXPECT_EQ(2, client_info.app_version().minor()); ++ EXPECT_EQ(1, client_info.app_version().gmajor()); ++ EXPECT_EQ(2, client_info.app_version().gminor()); + EXPECT_EQ(3, client_info.app_version().build()); + EXPECT_EQ(4, client_info.app_version().revision()); + EXPECT_FALSE(client_info.chrome_client_info().start_surface()); diff --git a/devel/electron36/files/patch-components_feed_core_v2_proto__util.cc b/devel/electron36/files/patch-components_feed_core_v2_proto__util.cc new file mode 100644 index 000000000000..feec3240231a --- /dev/null +++ b/devel/electron36/files/patch-components_feed_core_v2_proto__util.cc @@ -0,0 +1,24 @@ +--- components/feed/core/v2/proto_util.cc.orig 2023-08-10 01:48:40 UTC ++++ 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/devel/electron36/files/patch-components_feed_core_v2_proto__util__unittest.cc b/devel/electron36/files/patch-components_feed_core_v2_proto__util__unittest.cc new file mode 100644 index 000000000000..260285428333 --- /dev/null +++ b/devel/electron36/files/patch-components_feed_core_v2_proto__util__unittest.cc @@ -0,0 +1,13 @@ +--- components/feed/core/v2/proto_util_unittest.cc.orig 2024-08-14 20:54:47 UTC ++++ components/feed/core/v2/proto_util_unittest.cc +@@ -43,8 +43,8 @@ TEST(ProtoUtilTest, CreateClientInfo) { + feedwire::ClientInfo result = CreateClientInfo(request_metadata); + EXPECT_EQ(feedwire::ClientInfo::CHROME_ANDROID, result.app_type()); + EXPECT_EQ(feedwire::Version::RELEASE, result.app_version().build_type()); +- EXPECT_EQ(1, result.app_version().major()); +- EXPECT_EQ(2, result.app_version().minor()); ++ EXPECT_EQ(1, result.app_version().gmajor()); ++ EXPECT_EQ(2, result.app_version().gminor()); + EXPECT_EQ(3, result.app_version().build()); + EXPECT_EQ(4, result.app_version().revision()); + diff --git a/devel/electron36/files/patch-components_feed_core_v2_test_proto__printer.cc b/devel/electron36/files/patch-components_feed_core_v2_test_proto__printer.cc new file mode 100644 index 000000000000..693a8da91003 --- /dev/null +++ b/devel/electron36/files/patch-components_feed_core_v2_test_proto__printer.cc @@ -0,0 +1,13 @@ +--- components/feed/core/v2/test/proto_printer.cc.orig 2023-08-10 01:48:40 UTC ++++ components/feed/core/v2/test/proto_printer.cc +@@ -158,8 +158,8 @@ class TextProtoPrinter { + } + TextProtoPrinter& operator<<(const feedwire::Version& v) { + BeginMessage(); +- PRINT_FIELD(major); +- PRINT_FIELD(minor); ++ PRINT_FIELD(gmajor); ++ PRINT_FIELD(gminor); + PRINT_FIELD(build); + PRINT_FIELD(revision); + PRINT_FIELD(architecture); diff --git a/devel/electron36/files/patch-components_gcm__driver_gcm__desktop__utils.cc b/devel/electron36/files/patch-components_gcm__driver_gcm__desktop__utils.cc new file mode 100644 index 000000000000..27b343dd4a2a --- /dev/null +++ b/devel/electron36/files/patch-components_gcm__driver_gcm__desktop__utils.cc @@ -0,0 +1,11 @@ +--- components/gcm_driver/gcm_desktop_utils.cc.orig 2025-03-24 20:50:14 UTC ++++ components/gcm_driver/gcm_desktop_utils.cc +@@ -32,7 +32,7 @@ GCMClient::ChromePlatform GetPlatform() { + return GCMClient::PLATFORM_ANDROID; + #elif BUILDFLAG(IS_CHROMEOS) + return GCMClient::PLATFORM_CROS; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return GCMClient::PLATFORM_LINUX; + #else + // For all other platforms, return as LINUX. diff --git a/devel/electron36/files/patch-components_gwp__asan_BUILD.gn b/devel/electron36/files/patch-components_gwp__asan_BUILD.gn new file mode 100644 index 000000000000..838762fab6a2 --- /dev/null +++ b/devel/electron36/files/patch-components_gwp__asan_BUILD.gn @@ -0,0 +1,11 @@ +--- components/gwp_asan/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ 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 || is_ios) { ++ if ((is_win || is_mac || is_linux || is_chromeos || is_android || is_ios) && !is_bsd) { + deps += [ + "//components/gwp_asan/client:unit_tests", + "//components/gwp_asan/crash_handler:unit_tests", diff --git a/devel/electron36/files/patch-components_gwp__asan_buildflags_buildflags.gni b/devel/electron36/files/patch-components_gwp__asan_buildflags_buildflags.gni new file mode 100644 index 000000000000..a01d785b11f1 --- /dev/null +++ b/devel/electron36/files/patch-components_gwp__asan_buildflags_buildflags.gni @@ -0,0 +1,14 @@ +--- components/gwp_asan/buildflags/buildflags.gni.orig 2025-04-22 20:15:27 UTC ++++ components/gwp_asan/buildflags/buildflags.gni +@@ -10,10 +10,7 @@ import("//build/config/compiler/compiler.gni") + # Android component builds are disabled due to https://crbug.com/976399 + # Android requires frame pointers for unwinding, unwind tables aren't shipped in + # official builds. +-supported_platform = +- is_linux || is_chromeos || is_mac || is_ios || +- (is_win && (current_cpu == "x64" || current_cpu == "arm64")) || +- (is_android && !is_component_build && enable_frame_pointers) ++supported_platform = false + + declare_args() { + # Is GWP-ASan malloc/PartitionAlloc hooking enabled for chrome/ on a given diff --git a/devel/electron36/files/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc b/devel/electron36/files/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc new file mode 100644 index 000000000000..357eb0881122 --- /dev/null +++ b/devel/electron36/files/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc @@ -0,0 +1,13 @@ +--- components/gwp_asan/client/guarded_page_allocator_posix.cc.orig 2023-10-19 19:58:18 UTC ++++ 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/devel/electron36/files/patch-components_gwp__asan_client_gwp__asan.cc b/devel/electron36/files/patch-components_gwp__asan_client_gwp__asan.cc new file mode 100644 index 000000000000..3ab05671446d --- /dev/null +++ b/devel/electron36/files/patch-components_gwp__asan_client_gwp__asan.cc @@ -0,0 +1,11 @@ +--- components/gwp_asan/client/gwp_asan.cc.orig 2025-04-22 20:15:27 UTC ++++ components/gwp_asan/client/gwp_asan.cc +@@ -76,7 +76,7 @@ namespace { + // 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; diff --git a/devel/electron36/files/patch-components_gwp__asan_client_gwp__asan__features.cc b/devel/electron36/files/patch-components_gwp__asan_client_gwp__asan__features.cc new file mode 100644 index 000000000000..daf97426f192 --- /dev/null +++ b/devel/electron36/files/patch-components_gwp__asan_client_gwp__asan__features.cc @@ -0,0 +1,11 @@ +--- components/gwp_asan/client/gwp_asan_features.cc.orig 2024-02-21 00:20:41 UTC ++++ components/gwp_asan/client/gwp_asan_features.cc +@@ -9,7 +9,7 @@ namespace gwp_asan::internal { + namespace gwp_asan::internal { + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || \ ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS)) + constexpr base::FeatureState kDefaultEnabled = base::FEATURE_ENABLED_BY_DEFAULT; + #else diff --git a/devel/electron36/files/patch-components_gwp__asan_crash__handler_crash__analyzer.cc b/devel/electron36/files/patch-components_gwp__asan_crash__handler_crash__analyzer.cc new file mode 100644 index 000000000000..3b6af8f5834d --- /dev/null +++ b/devel/electron36/files/patch-components_gwp__asan_crash__handler_crash__analyzer.cc @@ -0,0 +1,20 @@ +--- components/gwp_asan/crash_handler/crash_analyzer.cc.orig 2025-04-22 20:15:27 UTC ++++ components/gwp_asan/crash_handler/crash_analyzer.cc +@@ -35,7 +35,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> +@@ -113,7 +113,7 @@ crashpad::VMAddress CrashAnalyzer::GetAccessAddress( + + 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/devel/electron36/files/patch-components_live__caption_caption__util.cc b/devel/electron36/files/patch-components_live__caption_caption__util.cc new file mode 100644 index 000000000000..1ab9652e0304 --- /dev/null +++ b/devel/electron36/files/patch-components_live__caption_caption__util.cc @@ -0,0 +1,11 @@ +--- components/live_caption/caption_util.cc.orig 2025-03-24 20:50:14 UTC ++++ components/live_caption/caption_util.cc +@@ -136,7 +136,7 @@ std::string GetCaptionSettingsUrl() { + std::string GetCaptionSettingsUrl() { + #if BUILDFLAG(IS_CHROMEOS) + return "chrome://os-settings/audioAndCaptions"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return "chrome://settings/captions"; + #elif BUILDFLAG(IS_WIN) + return base::win::GetVersion() >= base::win::Version::WIN10 diff --git a/devel/electron36/files/patch-components_live__caption_caption__util.h b/devel/electron36/files/patch-components_live__caption_caption__util.h new file mode 100644 index 000000000000..9edcdaf8c824 --- /dev/null +++ b/devel/electron36/files/patch-components_live__caption_caption__util.h @@ -0,0 +1,11 @@ +--- components/live_caption/caption_util.h.orig 2024-04-15 20:33:54 UTC ++++ components/live_caption/caption_util.h +@@ -15,7 +15,7 @@ namespace captions { + 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/devel/electron36/files/patch-components_media__router_common_media__source.cc b/devel/electron36/files/patch-components_media__router_common_media__source.cc new file mode 100644 index 000000000000..39b1197125d0 --- /dev/null +++ b/devel/electron36/files/patch-components_media__router_common_media__source.cc @@ -0,0 +1,11 @@ +--- components/media_router/common/media_source.cc.orig 2025-03-24 20:50:14 UTC ++++ components/media_router/common/media_source.cc +@@ -62,7 +62,7 @@ bool IsSystemAudioCaptureSupported() { + if (!media::IsSystemLoopbackCaptureSupported()) { + return false; + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled(media::kPulseaudioLoopbackForCast); + #else + return true; diff --git a/devel/electron36/files/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc b/devel/electron36/files/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc new file mode 100644 index 000000000000..22fea3bd9380 --- /dev/null +++ b/devel/electron36/files/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc @@ -0,0 +1,11 @@ +--- components/media_router/common/providers/cast/channel/cast_message_util.cc.orig 2025-03-24 20:50:14 UTC ++++ components/media_router/common/providers/cast/channel/cast_message_util.cc +@@ -168,7 +168,7 @@ int GetVirtualConnectPlatformValue() { + return 4; + #elif BUILDFLAG(IS_CHROMEOS) + return 5; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return 6; + #else + return 0; diff --git a/devel/electron36/files/patch-components_media__router_common_providers_cast_channel_enum__table.h b/devel/electron36/files/patch-components_media__router_common_providers_cast_channel_enum__table.h new file mode 100644 index 000000000000..9cdf410f79fa --- /dev/null +++ b/devel/electron36/files/patch-components_media__router_common_providers_cast_channel_enum__table.h @@ -0,0 +1,15 @@ +--- components/media_router/common/providers/cast/channel/enum_table.h.orig 2025-03-24 20:50:14 UTC ++++ components/media_router/common/providers/cast/channel/enum_table.h +@@ -368,7 +368,12 @@ class EnumTable { + + private: + #ifdef ARCH_CPU_64_BITS ++#ifdef __cpp_lib_hardware_interference_size + alignas(std::hardware_destructive_interference_size) ++#else ++ static constexpr std::size_t hardware_destructive_interference_size = 64; ++ alignas(hardware_destructive_interference_size) ++#endif + #endif + std::initializer_list<Entry> data_; + bool is_sorted_; diff --git a/devel/electron36/files/patch-components_metrics_drive__metrics__provider.cc b/devel/electron36/files/patch-components_metrics_drive__metrics__provider.cc new file mode 100644 index 000000000000..d0126263e208 --- /dev/null +++ b/devel/electron36/files/patch-components_metrics_drive__metrics__provider.cc @@ -0,0 +1,20 @@ +--- components/metrics/drive_metrics_provider.cc.orig 2025-04-22 20:15:27 UTC ++++ components/metrics/drive_metrics_provider.cc +@@ -21,7 +21,7 @@ namespace { + namespace metrics { + + namespace { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void RecordTriStateMetric(const char* name, std::optional<bool> sample) { + base::UmaHistogramEnumeration( + name, !sample.has_value() +@@ -106,7 +106,7 @@ void DriveMetricsProvider::FillDriveMetrics( + drive->set_has_seek_penalty(*response.has_seek_penalty); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + RecordTriStateMetric("UMA.DriveIsRemovableResult", response.is_removable); + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) diff --git a/devel/electron36/files/patch-components_metrics_dwa_dwa__service.cc b/devel/electron36/files/patch-components_metrics_dwa_dwa__service.cc new file mode 100644 index 000000000000..f9790b3c965e --- /dev/null +++ b/devel/electron36/files/patch-components_metrics_dwa_dwa__service.cc @@ -0,0 +1,11 @@ +--- components/metrics/dwa/dwa_service.cc.orig 2025-04-22 20:15:27 UTC ++++ components/metrics/dwa/dwa_service.cc +@@ -162,7 +162,7 @@ void DwaService::RecordCoarseSystemInformation( + coarse_system_info->set_platform(::dwa::CoarseSystemInfo::PLATFORM_WINDOWS); + #elif BUILDFLAG(IS_MAC) + coarse_system_info->set_platform(::dwa::CoarseSystemInfo::PLATFORM_MACOS); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + coarse_system_info->set_platform(::dwa::CoarseSystemInfo::PLATFORM_LINUX); + #elif BUILDFLAG(IS_ANDROID) + // TODO(b/366276323): Populate set_platform using more granular diff --git a/devel/electron36/files/patch-components_metrics_metrics__log.cc b/devel/electron36/files/patch-components_metrics_metrics__log.cc new file mode 100644 index 000000000000..5553f8520845 --- /dev/null +++ b/devel/electron36/files/patch-components_metrics_metrics__log.cc @@ -0,0 +1,38 @@ +--- components/metrics/metrics_log.cc.orig 2025-04-22 20:15:27 UTC ++++ components/metrics/metrics_log.cc +@@ -62,7 +62,7 @@ + #include "base/win/current_module.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #include "base/nix/xdg_util.h" + #endif +@@ -158,7 +158,7 @@ void RecordCurrentTime( + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + metrics::SystemProfileProto::OS::XdgSessionType ToProtoSessionType( + base::nix::SessionType session_type) { + switch (session_type) { +@@ -441,7 +441,7 @@ void MetricsLog::RecordCoreSystemProfile( + // OperatingSystemVersion refers to the ChromeOS release version. + #if BUILDFLAG(IS_CHROMEOS) + os->set_kernel_version(base::SysInfo::KernelVersion()); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux operating system version is copied over into kernel version to be + // consistent. + os->set_kernel_version(base::SysInfo::OperatingSystemVersion()); +@@ -458,7 +458,7 @@ void MetricsLog::RecordCoreSystemProfile( + os->set_build_number(base::SysInfo::GetIOSBuildNumber()); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<base::Environment> env = base::Environment::Create(); + os->set_xdg_session_type(ToProtoSessionType(base::nix::GetSessionType(*env))); + os->set_xdg_current_desktop( diff --git a/devel/electron36/files/patch-components_metrics_motherboard.cc b/devel/electron36/files/patch-components_metrics_motherboard.cc new file mode 100644 index 000000000000..a639aaec5b72 --- /dev/null +++ b/devel/electron36/files/patch-components_metrics_motherboard.cc @@ -0,0 +1,10 @@ +--- components/metrics/motherboard.cc.orig 2022-10-24 13:33:33 UTC ++++ components/metrics/motherboard.cc +@@ -1,6 +1,7 @@ + // Copyright 2022 The Chromium Authors + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. ++// CHECK + + #include "components/metrics/motherboard.h" + diff --git a/devel/electron36/files/patch-components_named__mojo__ipc__server_connection__info.h b/devel/electron36/files/patch-components_named__mojo__ipc__server_connection__info.h new file mode 100644 index 000000000000..dc8d1dd03c1b --- /dev/null +++ b/devel/electron36/files/patch-components_named__mojo__ipc__server_connection__info.h @@ -0,0 +1,23 @@ +--- components/named_mojo_ipc_server/connection_info.h.orig 2025-04-22 20:15:27 UTC ++++ components/named_mojo_ipc_server/connection_info.h +@@ -12,7 +12,10 @@ + #include "base/win/scoped_handle.h" + #elif BUILDFLAG(IS_MAC) + #include <bsm/libbsm.h> +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) ++#if BUILDFLAG(IS_OPENBSD) ++#include <sys/ucred.h> ++#endif + #include <sys/socket.h> + #endif + +@@ -29,7 +32,7 @@ struct ConnectionInfo { + base::ProcessId pid{}; + #if BUILDFLAG(IS_MAC) + audit_token_t audit_token{}; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD) + ucred credentials{}; + #endif + }; diff --git a/devel/electron36/files/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc b/devel/electron36/files/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc new file mode 100644 index 000000000000..43b28a6054f4 --- /dev/null +++ b/devel/electron36/files/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc @@ -0,0 +1,11 @@ +--- components/named_mojo_ipc_server/named_mojo_ipc_server_client_util.cc.orig 2024-10-16 21:31:11 UTC ++++ components/named_mojo_ipc_server/named_mojo_ipc_server_client_util.cc +@@ -23,7 +23,7 @@ mojo::PlatformChannelEndpoint ConnectToServer( + // static + mojo::PlatformChannelEndpoint ConnectToServer( + const mojo::NamedPlatformChannel::ServerName& server_name) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return mojo::NamedPlatformChannel::ConnectToServer(server_name); + #elif BUILDFLAG(IS_MAC) + mojo::PlatformChannelEndpoint endpoint = diff --git a/devel/electron36/files/patch-components_named__mojo__ipc__server_named__mojo__server__endpoint__connector__linux.cc b/devel/electron36/files/patch-components_named__mojo__ipc__server_named__mojo__server__endpoint__connector__linux.cc new file mode 100644 index 000000000000..d2bb35a64a4b --- /dev/null +++ b/devel/electron36/files/patch-components_named__mojo__ipc__server_named__mojo__server__endpoint__connector__linux.cc @@ -0,0 +1,12 @@ +--- components/named_mojo_ipc_server/named_mojo_server_endpoint_connector_linux.cc.orig 2025-04-22 20:15:27 UTC ++++ components/named_mojo_ipc_server/named_mojo_server_endpoint_connector_linux.cc +@@ -89,7 +89,9 @@ void NamedMojoServerEndpointConnectorLinux::OnSocketRe + PLOG(ERROR) << "getsockopt failed."; + return; + } ++#if !BUILDFLAG(IS_OPENBSD) + info->pid = info->credentials.pid; ++#endif + + mojo::PlatformChannelEndpoint endpoint( + mojo::PlatformHandle(std::move(connection_fd))); diff --git a/devel/electron36/files/patch-components_named__system__lock_BUILD.gn b/devel/electron36/files/patch-components_named__system__lock_BUILD.gn new file mode 100644 index 000000000000..0830f8c6fda1 --- /dev/null +++ b/devel/electron36/files/patch-components_named__system__lock_BUILD.gn @@ -0,0 +1,20 @@ +--- components/named_system_lock/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ components/named_system_lock/BUILD.gn +@@ -5,7 +5,7 @@ static_library("named_system_lock") { + static_library("named_system_lock") { + sources = [ "lock.h" ] + deps = [ "//base" ] +- if (is_linux) { ++ if (!is_bsd && is_linux) { + sources += [ "lock_linux.cc" ] + } else if (is_mac) { + sources += [ "lock_mac.mm" ] +@@ -20,7 +20,7 @@ source_set("unit_tests") { + sources = [] + + # Disable NamedSystemLockTest on unsupported platforms. +- if (is_linux || is_win || is_mac) { ++ if (!is_bsd && (is_linux || is_win || is_mac)) { + sources += [ "lock_unittest.cc" ] + } + diff --git a/devel/electron36/files/patch-components_named__system__lock_lock.h b/devel/electron36/files/patch-components_named__system__lock_lock.h new file mode 100644 index 000000000000..7de530e8db8b --- /dev/null +++ b/devel/electron36/files/patch-components_named__system__lock_lock.h @@ -0,0 +1,11 @@ +--- components/named_system_lock/lock.h.orig 2024-08-14 20:54:49 UTC ++++ components/named_system_lock/lock.h +@@ -38,7 +38,7 @@ class ScopedLock { + // may acquire that lock. The lock name has different meanings per platform: + // Linux: A shared memory object name starting with `/`. E.g. `/MyApp.lock`. + // Mac: A bootstrap service name (see `man bootstrap_check_in`). +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + static std::unique_ptr<ScopedLock> Create(const std::string& name, + base::TimeDelta timeout); + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-components_named__system__lock_lock__unittest.cc b/devel/electron36/files/patch-components_named__system__lock_lock__unittest.cc new file mode 100644 index 000000000000..4b68023b0bc4 --- /dev/null +++ b/devel/electron36/files/patch-components_named__system__lock_lock__unittest.cc @@ -0,0 +1,29 @@ +--- components/named_system_lock/lock_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ components/named_system_lock/lock_unittest.cc +@@ -18,7 +18,7 @@ + #include "build/build_config.h" + #include "testing/gtest/include/gtest/gtest.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include <fcntl.h> + #include <sys/mman.h> + +@@ -45,7 +45,7 @@ class NamedSystemLockTest : public ::testing::Test { + const std::string lock_name_ = base::UnguessableToken::Create().ToString(); + + std::unique_ptr<ScopedLock> CreateLock() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return ScopedLock::Create(lock_name_, base::Seconds(0)); + #else + CSecurityAttributes sa; +@@ -95,7 +95,7 @@ TEST_F(NamedSystemLockTest, TryLockInThreadSuccess) { + EXPECT_TRUE(CreateLock()); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + TEST_F(NamedSystemLockTest, SharedMemoryWrongPermissions) { + // Create a shared memory region with overpermissive perms. + int shm_fd = shm_open(lock_name_.c_str(), O_RDWR | O_CREAT | O_EXCL, diff --git a/devel/electron36/files/patch-components_optimization__guide_core_optimization__guide__features.cc b/devel/electron36/files/patch-components_optimization__guide_core_optimization__guide__features.cc new file mode 100644 index 000000000000..fd599ca68e4f --- /dev/null +++ b/devel/electron36/files/patch-components_optimization__guide_core_optimization__guide__features.cc @@ -0,0 +1,11 @@ +--- components/optimization_guide/core/optimization_guide_features.cc.orig 2025-03-24 20:50:14 UTC ++++ components/optimization_guide/core/optimization_guide_features.cc +@@ -136,7 +136,7 @@ BASE_FEATURE(kOptimizationGuideOnDeviceModel, + // Whether to use the on device model service in optimization guide. + BASE_FEATURE(kOptimizationGuideOnDeviceModel, + "OptimizationGuideOnDeviceModel", +-#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); diff --git a/devel/electron36/files/patch-components_optimization__guide_core_optimization__guide__util.cc b/devel/electron36/files/patch-components_optimization__guide_core_optimization__guide__util.cc new file mode 100644 index 000000000000..b26f21238607 --- /dev/null +++ b/devel/electron36/files/patch-components_optimization__guide_core_optimization__guide__util.cc @@ -0,0 +1,11 @@ +--- components/optimization_guide/core/optimization_guide_util.cc.orig 2025-01-27 17:37:37 UTC ++++ components/optimization_guide/core/optimization_guide_util.cc +@@ -37,7 +37,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_UNDEFINED; diff --git a/devel/electron36/files/patch-components_os__crypt_async_browser_secret__portal__key__provider.cc b/devel/electron36/files/patch-components_os__crypt_async_browser_secret__portal__key__provider.cc new file mode 100644 index 000000000000..ff189bf66ec7 --- /dev/null +++ b/devel/electron36/files/patch-components_os__crypt_async_browser_secret__portal__key__provider.cc @@ -0,0 +1,12 @@ +--- components/os_crypt/async/browser/secret_portal_key_provider.cc.orig 2024-10-16 21:31:11 UTC ++++ components/os_crypt/async/browser/secret_portal_key_provider.cc +@@ -5,7 +5,9 @@ + #include "components/os_crypt/async/browser/secret_portal_key_provider.h" + + #include <fcntl.h> ++#if BUILDFLAG(IS_LINUX) + #include <linux/limits.h> ++#endif + + #include <array> + #include <utility> diff --git a/devel/electron36/files/patch-components_os__crypt_sync_libsecret__util__linux.cc b/devel/electron36/files/patch-components_os__crypt_sync_libsecret__util__linux.cc new file mode 100644 index 000000000000..fc6f1b9cd695 --- /dev/null +++ b/devel/electron36/files/patch-components_os__crypt_sync_libsecret__util__linux.cc @@ -0,0 +1,27 @@ +--- components/os_crypt/sync/libsecret_util_linux.cc.orig 2024-10-16 21:31:11 UTC ++++ components/os_crypt/sync/libsecret_util_linux.cc +@@ -185,16 +185,22 @@ bool LibsecretLoader::LoadLibsecret() { + + // 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/40467093): 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/devel/electron36/files/patch-components_os__crypt_sync_os__crypt.h b/devel/electron36/files/patch-components_os__crypt_sync_os__crypt.h new file mode 100644 index 000000000000..44734ece3021 --- /dev/null +++ b/devel/electron36/files/patch-components_os__crypt_sync_os__crypt.h @@ -0,0 +1,63 @@ +--- components/os_crypt/sync/os_crypt.h.orig 2025-04-22 20:15:27 UTC ++++ components/os_crypt/sync/os_crypt.h +@@ -16,7 +16,7 @@ + #include "build/chromecast_buildflags.h" + #include "crypto/subtle_passkey.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class KeyStorageLinux; + #endif // BUILDFLAG(IS_LINUX) + +@@ -32,7 +32,7 @@ namespace OSCrypt { + // Temporary interface due to OSCrypt refactor. See OSCryptImpl for descriptions + // of what each function does. + namespace OSCrypt { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(OS_CRYPT) + void SetConfig(std::unique_ptr<os_crypt::Config> config); + #endif // BUILDFLAG(IS_LINUX) +@@ -77,7 +77,7 @@ COMPONENT_EXPORT(OS_CRYPT) void ResetStateForTesting() + COMPONENT_EXPORT(OS_CRYPT) void SetLegacyEncryptionForTesting(bool legacy); + COMPONENT_EXPORT(OS_CRYPT) void ResetStateForTesting(); + #endif // BUILDFLAG(IS_WIN) +-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(OS_CRYPT) + void UseMockKeyStorageForTesting( + base::OnceCallback<std::unique_ptr<KeyStorageLinux>()> +@@ -111,7 +111,7 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCryptImpl { + // Returns singleton instance of OSCryptImpl. + static OSCryptImpl* GetInstance(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set the configuration of OSCryptImpl. + // This method, or SetRawEncryptionKey(), must be called before using + // EncryptString() and DecryptString(). +@@ -207,7 +207,7 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCryptImpl { + void ResetStateForTesting(); + #endif + +-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD) + // For unit testing purposes, inject methods to be used. + // |storage_provider_factory| provides the desired |KeyStorage| + // implementation. If the provider returns |nullptr|, a hardcoded password +@@ -231,13 +231,13 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCryptImpl { + bool DeriveKey(); + #endif // BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + // This lock is used to make the GetEncryptionKey and + // GetRawEncryptionKey methods thread-safe. + static base::Lock& GetLock(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + static constexpr size_t kDerivedKeyBytes = 16; + + crypto::SubtlePassKey MakeCryptoPassKey(); diff --git a/devel/electron36/files/patch-components_paint__preview_browser_paint__preview__client.cc b/devel/electron36/files/patch-components_paint__preview_browser_paint__preview__client.cc new file mode 100644 index 000000000000..3da8ba1f1a03 --- /dev/null +++ b/devel/electron36/files/patch-components_paint__preview_browser_paint__preview__client.cc @@ -0,0 +1,13 @@ +--- components/paint_preview/browser/paint_preview_client.cc.orig 2024-10-16 21:31:11 UTC ++++ components/paint_preview/browser/paint_preview_client.cc +@@ -326,8 +326,8 @@ void PaintPreviewClient::CapturePaintPreview( + metadata->set_version(kPaintPreviewVersion); + auto* chromeVersion = metadata->mutable_chrome_version(); + const auto& current_chrome_version = version_info::GetVersion(); +- chromeVersion->set_major(current_chrome_version.components()[0]); +- chromeVersion->set_minor(current_chrome_version.components()[1]); ++ chromeVersion->set_gmajor(current_chrome_version.components()[0]); ++ chromeVersion->set_gminor(current_chrome_version.components()[1]); + chromeVersion->set_build(current_chrome_version.components()[2]); + chromeVersion->set_patch(current_chrome_version.components()[3]); + document_data.callback = std::move(callback); diff --git a/devel/electron36/files/patch-components_paint__preview_browser_paint__preview__client__unittest.cc b/devel/electron36/files/patch-components_paint__preview_browser_paint__preview__client__unittest.cc new file mode 100644 index 000000000000..7a82ebce22f2 --- /dev/null +++ b/devel/electron36/files/patch-components_paint__preview_browser_paint__preview__client__unittest.cc @@ -0,0 +1,13 @@ +--- components/paint_preview/browser/paint_preview_client_unittest.cc.orig 2024-02-21 00:20:41 UTC ++++ components/paint_preview/browser/paint_preview_client_unittest.cc +@@ -174,8 +174,8 @@ TEST_P(PaintPreviewClientRenderViewHostTest, CaptureMa + metadata->set_version(kPaintPreviewVersion); + auto* chromeVersion = metadata->mutable_chrome_version(); + const auto& current_chrome_version = version_info::GetVersion(); +- chromeVersion->set_major(current_chrome_version.components()[0]); +- chromeVersion->set_minor(current_chrome_version.components()[1]); ++ chromeVersion->set_gmajor(current_chrome_version.components()[0]); ++ chromeVersion->set_gminor(current_chrome_version.components()[1]); + chromeVersion->set_build(current_chrome_version.components()[2]); + chromeVersion->set_patch(current_chrome_version.components()[3]); + PaintPreviewFrameProto* main_frame = expected_proto.mutable_root_frame(); diff --git a/devel/electron36/files/patch-components_paint__preview_common_proto_paint__preview.proto b/devel/electron36/files/patch-components_paint__preview_common_proto_paint__preview.proto new file mode 100644 index 000000000000..7c3f6367e147 --- /dev/null +++ b/devel/electron36/files/patch-components_paint__preview_common_proto_paint__preview.proto @@ -0,0 +1,13 @@ +--- components/paint_preview/common/proto/paint_preview.proto.orig 2021-12-14 11:45:03 UTC ++++ components/paint_preview/common/proto/paint_preview.proto +@@ -82,8 +82,8 @@ message PaintPreviewFrameProto { + // Stores Chrome version. + // NEXT_TAG = 5 + message ChromeVersionProto { +- optional uint64 major = 1; +- optional uint64 minor = 2; ++ optional uint64 gmajor = 1; ++ optional uint64 gminor = 2; + optional uint64 build = 3; + optional uint64 patch = 4; + } diff --git a/devel/electron36/files/patch-components_paint__preview_player_player__compositor__delegate.cc b/devel/electron36/files/patch-components_paint__preview_player_player__compositor__delegate.cc new file mode 100644 index 000000000000..bad797611658 --- /dev/null +++ b/devel/electron36/files/patch-components_paint__preview_player_player__compositor__delegate.cc @@ -0,0 +1,13 @@ +--- components/paint_preview/player/player_compositor_delegate.cc.orig 2025-03-24 20:50:14 UTC ++++ components/paint_preview/player/player_compositor_delegate.cc +@@ -433,8 +433,8 @@ void PlayerCompositorDelegate::ValidateProtoAndLoadAXT + auto chrome_version = capture_result_->proto.metadata().chrome_version(); + const auto& current_chrome_version = version_info::GetVersion(); + if (capture_result_->proto.metadata().has_chrome_version() && +- chrome_version.major() == current_chrome_version.components()[0] && +- chrome_version.minor() == current_chrome_version.components()[1] && ++ chrome_version.gmajor() == current_chrome_version.components()[0] && ++ chrome_version.gminor() == current_chrome_version.components()[1] && + chrome_version.build() == current_chrome_version.components()[2] && + chrome_version.patch() == current_chrome_version.components()[3]) { + paint_preview_service_->GetFileMixin()->GetAXTreeUpdate( diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_features_password__features.cc b/devel/electron36/files/patch-components_password__manager_core_browser_features_password__features.cc new file mode 100644 index 000000000000..7afe5d376cb3 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_features_password__features.cc @@ -0,0 +1,20 @@ +--- components/password_manager/core/browser/features/password_features.cc.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/browser/features/password_features.cc +@@ -40,7 +40,7 @@ BASE_FEATURE(kClearUndecryptablePasswordsOnSync, + BASE_FEATURE(kClearUndecryptablePasswordsOnSync, + "ClearUndecryptablePasswordsInSync", + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -112,7 +112,7 @@ BASE_FEATURE(kReuseDetectionBasedOnPasswordHashes, + "ReuseDetectionBasedOnPasswordHashes", + base::FEATURE_ENABLED_BY_DEFAULT); + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kRestartToGainAccessToKeychain, + "RestartToGainAccessToKeychain", + #if BUILDFLAG(IS_MAC) diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_features_password__features.h b/devel/electron36/files/patch-components_password__manager_core_browser_features_password__features.h new file mode 100644 index 000000000000..45de0dbcd302 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_features_password__features.h @@ -0,0 +1,11 @@ +--- components/password_manager/core/browser/features/password_features.h.orig 2025-03-24 20:50:14 UTC ++++ components/password_manager/core/browser/features/password_features.h +@@ -108,7 +108,7 @@ BASE_DECLARE_FEATURE(kReuseDetectionBasedOnPasswordHas + // Detects password reuse based on hashed password values. + BASE_DECLARE_FEATURE(kReuseDetectionBasedOnPasswordHashes); + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Enables "Needs access to keychain, restart chrome" bubble and banner. + BASE_DECLARE_FEATURE(kRestartToGainAccessToKeychain); + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__form__manager.cc b/devel/electron36/files/patch-components_password__manager_core_browser_password__form__manager.cc new file mode 100644 index 000000000000..93a48440124c --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__form__manager.cc @@ -0,0 +1,29 @@ +--- components/password_manager/core/browser/password_form_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/browser/password_form_manager.cc +@@ -64,7 +64,7 @@ + #include "components/webauthn/android/webauthn_cred_man_delegate.h" + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "components/os_crypt/sync/os_crypt.h" + #endif + +@@ -240,7 +240,7 @@ bool ShouldUploadCrowdsourcingVotes(const FormOrDigest + return false; + } + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool ShouldShowKeychainErrorBubble( + std::optional<PasswordStoreBackendError> backend_error) { + if (!backend_error.has_value()) { +@@ -913,7 +913,7 @@ void PasswordFormManager::OnFetchCompleted() { + error.value().type); + } + +-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (ShouldShowKeychainErrorBubble( + form_fetcher_->GetProfileStoreBackendError())) { + client_->NotifyKeychainError(); diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__manager.cc b/devel/electron36/files/patch-components_password__manager_core_browser_password__manager.cc new file mode 100644 index 000000000000..6f21d9adcb10 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__manager.cc @@ -0,0 +1,20 @@ +--- components/password_manager/core/browser/password_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/browser/password_manager.cc +@@ -511,7 +511,7 @@ void PasswordManager::RegisterProfilePrefs( + prefs::kAutofillableCredentialsAccountStoreLoginDatabase, false); + #endif // BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) + registry->RegisterBooleanPref(prefs::kPasswordSharingEnabled, true); +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + registry->RegisterIntegerPref(prefs::kRelaunchChromeBubbleDismissedCounter, + 0); + #endif +@@ -524,7 +524,7 @@ void PasswordManager::RegisterProfilePrefs( + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_IOS) ++ BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kDeletingUndecryptablePasswordsEnabled, + true); + #endif diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__client.h b/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__client.h new file mode 100644 index 000000000000..33da84b6d01c --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__client.h @@ -0,0 +1,20 @@ +--- components/password_manager/core/browser/password_manager_client.h.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/browser/password_manager_client.h +@@ -31,7 +31,7 @@ + #include "net/cert/cert_status_flags.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/i18n/rtl.h" + #include "components/password_manager/core/browser/password_cross_domain_confirmation_popup_controller.h" + #include "ui/gfx/geometry/rect_f.h" +@@ -533,7 +533,7 @@ class PasswordManagerClient { + virtual void TriggerSignIn(signin_metrics::AccessPoint access_point) const; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Shows the bubble with the details of the `form`. + virtual void OpenPasswordDetailsBubble( + const password_manager::PasswordForm& form) = 0; diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__switches.cc b/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__switches.cc new file mode 100644 index 000000000000..7824d2983de3 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__switches.cc @@ -0,0 +1,11 @@ +--- components/password_manager/core/browser/password_manager_switches.cc.orig 2024-06-18 21:43:29 UTC ++++ components/password_manager/core/browser/password_manager_switches.cc +@@ -6,7 +6,7 @@ namespace password_manager { + + namespace password_manager { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Specifies which encryption storage backend to use. Possible values are + // kwallet, kwallet5, kwallet6, gnome-libsecret, basic. + // Any other value will lead to Chrome detecting the best backend automatically. diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__switches.h b/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__switches.h new file mode 100644 index 000000000000..42ed227338dc --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__manager__switches.h @@ -0,0 +1,11 @@ +--- components/password_manager/core/browser/password_manager_switches.h.orig 2025-03-24 20:50:14 UTC ++++ components/password_manager/core/browser/password_manager_switches.h +@@ -9,7 +9,7 @@ namespace password_manager { + + namespace password_manager { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const char kPasswordStore[]; + extern const char kEnableEncryptionSelection[]; + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc b/devel/electron36/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc new file mode 100644 index 000000000000..ea9b5ff13142 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc @@ -0,0 +1,29 @@ +--- components/password_manager/core/browser/password_manual_fallback_flow.cc.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/browser/password_manual_fallback_flow.cc +@@ -46,7 +46,7 @@ std::u16string GetUsernameFromLabel(const std::u16stri + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Returns the password form corresponding to the `payload` data. In most + // cases there is only one such form stored, but having more than one or no + // forms is also possible. If there is more than one form, showing any of them +@@ -295,7 +295,7 @@ void PasswordManualFallbackFlow::DidAcceptSuggestion( + } + case autofill::SuggestionType::kViewPasswordDetails: { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::optional<password_manager::PasswordForm> credentials = + GetCorrespondingPasswordForm( + suggestion.GetPayload<Suggestion::PasswordSuggestionDetails>(), +@@ -425,7 +425,7 @@ void PasswordManualFallbackFlow::EnsureCrossDomainPass + const Suggestion::PasswordSuggestionDetails& payload, + base::OnceClosure on_allowed) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (payload.is_cross_domain) { + cross_domain_confirmation_popup_controller_ = + password_client_->ShowCrossDomainConfirmationPopup( diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.h b/devel/electron36/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.h new file mode 100644 index 000000000000..bd6ad44f2a6b --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.h @@ -0,0 +1,20 @@ +--- components/password_manager/core/browser/password_manual_fallback_flow.h.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/browser/password_manual_fallback_flow.h +@@ -19,7 +19,7 @@ + #include "components/password_manager/core/browser/ui/saved_passwords_presenter.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/password_manager/core/browser/password_cross_domain_confirmation_popup_controller.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || + // BUILDFLAG(IS_CHROMEOS) +@@ -180,7 +180,7 @@ class PasswordManualFallbackFlow : public autofill::Au + std::unique_ptr<device_reauth::DeviceAuthenticator> authenticator_; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::unique_ptr<PasswordCrossDomainConfirmationPopupController> + cross_domain_confirmation_popup_controller_; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__store__factory__util.cc b/devel/electron36/files/patch-components_password__manager_core_browser_password__store__factory__util.cc new file mode 100644 index 000000000000..1cbf40534ea1 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__store__factory__util.cc @@ -0,0 +1,11 @@ +--- components/password_manager/core/browser/password_store_factory_util.cc.orig 2024-10-16 21:31:11 UTC ++++ components/password_manager/core/browser/password_store_factory_util.cc +@@ -29,7 +29,7 @@ LoginDatabase::DeletingUndecryptablePasswordsEnabled G + LoginDatabase::DeletingUndecryptablePasswordsEnabled GetPolicyFromPrefs( + PrefService* prefs) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_IOS) ++ BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + return LoginDatabase::DeletingUndecryptablePasswordsEnabled( + prefs->GetBoolean(prefs::kDeletingUndecryptablePasswordsEnabled)); + #else diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database.cc b/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database.cc new file mode 100644 index 000000000000..267006b348c8 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database.cc @@ -0,0 +1,20 @@ +--- components/password_manager/core/browser/password_store/login_database.cc.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/browser/password_store/login_database.cc +@@ -1030,7 +1030,7 @@ bool ShouldDeleteUndecryptablePasswords( + bool is_user_data_dir_policy_set, + bool is_enabled_by_policy, + IsAccountStore is_account_store) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<base::Environment> environment(base::Environment::Create()); + // On Linux user data directory ca be specified using an env variable. If it + // exists, passwords shouldn't be deleted. +@@ -1048,7 +1048,7 @@ bool ShouldDeleteUndecryptablePasswords( + return false; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (command_line->HasSwitch(password_manager::kPasswordStore)) { + RecordShouldDeleteUndecryptablePasswordsMetric( + ShouldDeleteUndecryptablePasswordsResult:: diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc b/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc new file mode 100644 index 000000000000..4df2adb6a0f9 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc @@ -0,0 +1,11 @@ +--- components/password_manager/core/browser/password_store/login_database_async_helper.cc.orig 2024-10-16 21:31:11 UTC ++++ components/password_manager/core/browser/password_store/login_database_async_helper.cc +@@ -154,7 +154,7 @@ LoginsResultOrError LoginDatabaseAsyncHelper::FillMatc + std::vector<PasswordForm> matched_forms; + if (!login_db_ || + !login_db_->GetLogins(form, include_psl, &matched_forms)) { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return PasswordStoreBackendError( + OSCrypt::IsEncryptionAvailable() + ? PasswordStoreBackendErrorType::kUncategorized diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc b/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc new file mode 100644 index 000000000000..c27261dcd314 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc @@ -0,0 +1,11 @@ +--- components/password_manager/core/browser/password_store/login_database_unittest.cc.orig 2025-03-24 20:50:14 UTC ++++ components/password_manager/core/browser/password_store/login_database_unittest.cc +@@ -2257,7 +2257,7 @@ INSTANTIATE_TEST_SUITE_P(MigrationToVCurrent, + testing::Bool())); + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + class LoginDatabaseUndecryptableLoginsTest : public testing::Test { + protected: + LoginDatabaseUndecryptableLoginsTest() = default; diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_stub__password__manager__client.cc b/devel/electron36/files/patch-components_password__manager_core_browser_stub__password__manager__client.cc new file mode 100644 index 000000000000..6025f0e21b87 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_stub__password__manager__client.cc @@ -0,0 +1,11 @@ +--- components/password_manager/core/browser/stub_password_manager_client.cc.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/browser/stub_password_manager_client.cc +@@ -206,7 +206,7 @@ version_info::Channel StubPasswordManagerClient::GetCh + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void StubPasswordManagerClient::OpenPasswordDetailsBubble( + const password_manager::PasswordForm& form) {} + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || diff --git a/devel/electron36/files/patch-components_password__manager_core_browser_stub__password__manager__client.h b/devel/electron36/files/patch-components_password__manager_core_browser_stub__password__manager__client.h new file mode 100644 index 000000000000..efbd62002752 --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_browser_stub__password__manager__client.h @@ -0,0 +1,11 @@ +--- components/password_manager/core/browser/stub_password_manager_client.h.orig 2025-03-24 20:50:14 UTC ++++ components/password_manager/core/browser/stub_password_manager_client.h +@@ -77,7 +77,7 @@ class StubPasswordManagerClient : public PasswordManag + MockPasswordFeatureManager* GetPasswordFeatureManager(); + version_info::Channel GetChannel() const override; + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void OpenPasswordDetailsBubble( + const password_manager::PasswordForm& form) override; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || diff --git a/devel/electron36/files/patch-components_password__manager_core_common_password__manager__pref__names.h b/devel/electron36/files/patch-components_password__manager_core_common_password__manager__pref__names.h new file mode 100644 index 000000000000..f87ae01032fc --- /dev/null +++ b/devel/electron36/files/patch-components_password__manager_core_common_password__manager__pref__names.h @@ -0,0 +1,20 @@ +--- components/password_manager/core/common/password_manager_pref_names.h.orig 2025-04-22 20:15:27 UTC ++++ components/password_manager/core/common/password_manager_pref_names.h +@@ -59,7 +59,7 @@ inline constexpr char kCredentialProviderEnabledOnStar + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_IOS) ++ BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + // Boolean pref controlled by the DeletingUndecryptablePasswordsEnabled policy. + // If set to false it blocks deleting undecryptable passwords, otherwise the + // deletion can happen. +@@ -356,7 +356,7 @@ inline constexpr char kPasswordSharingEnabled[] = + inline constexpr char kPasswordSharingEnabled[] = + "password_manager.password_sharing_enabled"; + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Integer pref indicating how many times relaunch Chrome bubble was dismissed. + inline constexpr char kRelaunchChromeBubbleDismissedCounter[] = + "password_manager.relaunch_chrome_bubble_dismissed_counter"; diff --git a/devel/electron36/files/patch-components_performance__manager_decorators_process__metrics__decorator.cc b/devel/electron36/files/patch-components_performance__manager_decorators_process__metrics__decorator.cc new file mode 100644 index 000000000000..1173e13f7236 --- /dev/null +++ b/devel/electron36/files/patch-components_performance__manager_decorators_process__metrics__decorator.cc @@ -0,0 +1,11 @@ +--- components/performance_manager/decorators/process_metrics_decorator.cc.orig 2025-01-27 17:37:37 UTC ++++ components/performance_manager/decorators/process_metrics_decorator.cc +@@ -264,7 +264,7 @@ void ProcessMetricsDecorator::DidGetMemoryUsage( + // RSS and PMF to each node proportionally to its V8 heap size. + uint64_t process_rss = process_dump_iter.os_dump().resident_set_kb; + process_node->set_resident_set_kb(process_rss); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + process_node->set_private_swap_kb( + process_dump_iter.os_dump().private_footprint_swap_kb); + #endif diff --git a/devel/electron36/files/patch-components_performance__manager_public_features.h b/devel/electron36/files/patch-components_performance__manager_public_features.h new file mode 100644 index 000000000000..db588ac07ab4 --- /dev/null +++ b/devel/electron36/files/patch-components_performance__manager_public_features.h @@ -0,0 +1,11 @@ +--- components/performance_manager/public/features.h.orig 2025-04-22 20:15:27 UTC ++++ components/performance_manager/public/features.h +@@ -19,7 +19,7 @@ namespace performance_manager::features { + + #if !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define URGENT_DISCARDING_FROM_PERFORMANCE_MANAGER() false + #else + #define URGENT_DISCARDING_FROM_PERFORMANCE_MANAGER() true diff --git a/devel/electron36/files/patch-components_permissions_prediction__service_prediction__common.cc b/devel/electron36/files/patch-components_permissions_prediction__service_prediction__common.cc new file mode 100644 index 000000000000..8b78b7e36eca --- /dev/null +++ b/devel/electron36/files/patch-components_permissions_prediction__service_prediction__common.cc @@ -0,0 +1,20 @@ +--- components/permissions/prediction_service/prediction_common.cc.orig 2025-04-22 20:15:27 UTC ++++ components/permissions/prediction_service/prediction_common.cc +@@ -34,7 +34,7 @@ ClientFeatures_Platform GetCurrentPlatformProto() { + + 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; +@@ -45,7 +45,7 @@ ClientFeatures_PlatformEnum GetCurrentPlatformEnumProt + + 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/devel/electron36/files/patch-components_policy_core_browser_policy__pref__mapping__test.cc b/devel/electron36/files/patch-components_policy_core_browser_policy__pref__mapping__test.cc new file mode 100644 index 000000000000..087c47459d9e --- /dev/null +++ b/devel/electron36/files/patch-components_policy_core_browser_policy__pref__mapping__test.cc @@ -0,0 +1,11 @@ +--- components/policy/core/browser/policy_pref_mapping_test.cc.orig 2025-04-22 20:15:27 UTC ++++ components/policy/core/browser/policy_pref_mapping_test.cc +@@ -432,7 +432,7 @@ class PolicyTestCase { + const std::string os("chromeos"); + #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/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__client.cc b/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__client.cc new file mode 100644 index 000000000000..142d20420c1e --- /dev/null +++ b/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__client.cc @@ -0,0 +1,11 @@ +--- components/policy/core/common/cloud/cloud_policy_client.cc.orig 2025-04-22 20:15:27 UTC ++++ components/policy/core/common/cloud/cloud_policy_client.cc +@@ -742,7 +742,7 @@ void CloudPolicyClient::FetchPolicy(PolicyFetchReason + 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/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__refresh__scheduler.cc b/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__refresh__scheduler.cc new file mode 100644 index 000000000000..b506d50f8829 --- /dev/null +++ b/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__refresh__scheduler.cc @@ -0,0 +1,20 @@ +--- components/policy/core/common/cloud/cloud_policy_refresh_scheduler.cc.orig 2024-10-16 21:31:12 UTC ++++ components/policy/core/common/cloud/cloud_policy_refresh_scheduler.cc +@@ -25,7 +25,7 @@ namespace { + + namespace { + +-#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(kRetryWithKeyReset, + "RetryWithKeyReset", + base::FEATURE_ENABLED_BY_DEFAULT); +@@ -220,7 +220,7 @@ void CloudPolicyRefreshScheduler::OnStoreError(CloudPo + // continue using the stale information. Thus, no specific response to a store + // error is required. NB: Changes to is_managed fire OnStoreLoaded(). + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Client is registered means we have successfully get policy key once. However, + // a following policy fetch request is failed because we can't verified + // signature. Delete the policy key so that we can get it again with next diff --git a/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__util.cc b/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__util.cc new file mode 100644 index 000000000000..493212616cbc --- /dev/null +++ b/devel/electron36/files/patch-components_policy_core_common_cloud_cloud__policy__util.cc @@ -0,0 +1,55 @@ +--- components/policy/core/common/cloud/cloud_policy_util.cc.orig 2025-04-22 20:15:27 UTC ++++ components/policy/core/common/cloud/cloud_policy_util.cc +@@ -21,7 +21,7 @@ + #include "base/win/wincred_shim.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include <pwd.h> + #include <sys/types.h> + #include <unistd.h> +@@ -36,10 +36,15 @@ + #import <SystemConfiguration/SCDynamicStoreCopySpecific.h> + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || 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> + +@@ -84,7 +89,7 @@ std::string GetMachineName() { + namespace em = enterprise_management; + + std::string GetMachineName() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + char hostname[HOST_NAME_MAX]; + if (gethostname(hostname, HOST_NAME_MAX) == 0) // Success. + return hostname; +@@ -140,7 +145,7 @@ std::string GetOSVersion() { + + 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 = +@@ -162,7 +167,7 @@ std::string GetOSUsername() { + } + + 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/devel/electron36/files/patch-components_policy_core_common_policy__loader__common.cc b/devel/electron36/files/patch-components_policy_core_common_policy__loader__common.cc new file mode 100644 index 000000000000..44eadfa9bb9b --- /dev/null +++ b/devel/electron36/files/patch-components_policy_core_common_policy__loader__common.cc @@ -0,0 +1,20 @@ +--- components/policy/core/common/policy_loader_common.cc.orig 2025-01-27 17:37:37 UTC ++++ 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::kEnterpriseSearchAggregatorSettings, + key::kHomepageIsNewTabPage, +@@ -57,7 +57,7 @@ const char* kSensitivePolicies[] = { + key::kSafeBrowsingAllowlistDomains, + key::kSiteSearchSettings, + #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/devel/electron36/files/patch-components_policy_core_common_policy__paths.cc b/devel/electron36/files/patch-components_policy_core_common_policy__paths.cc new file mode 100644 index 000000000000..1ebd68c8efb1 --- /dev/null +++ b/devel/electron36/files/patch-components_policy_core_common_policy__paths.cc @@ -0,0 +1,11 @@ +--- components/policy/core/common/policy_paths.cc.orig 2024-02-21 00:20:42 UTC ++++ components/policy/core/common/policy_paths.cc +@@ -17,6 +17,8 @@ const char kPolicyPath[] = "/etc/opt/chrome_for_testin + const char kPolicyPath[] = "/etc/opt/chrome/policies"; + #elif BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING) + const char kPolicyPath[] = "/etc/opt/chrome_for_testing/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/devel/electron36/files/patch-components_policy_core_common_policy__utils.cc b/devel/electron36/files/patch-components_policy_core_common_policy__utils.cc new file mode 100644 index 000000000000..258b2c1063e5 --- /dev/null +++ b/devel/electron36/files/patch-components_policy_core_common_policy__utils.cc @@ -0,0 +1,11 @@ +--- components/policy/core/common/policy_utils.cc.orig 2024-10-16 21:31:12 UTC ++++ components/policy/core/common/policy_utils.cc +@@ -22,7 +22,7 @@ bool IsPolicyTestingEnabled(PrefService* pref_service, + return true; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + if (channel == version_info::Channel::DEV) { + return true; + } diff --git a/devel/electron36/files/patch-components_policy_tools_generate__policy__source.py b/devel/electron36/files/patch-components_policy_tools_generate__policy__source.py new file mode 100644 index 000000000000..0394fe5f6220 --- /dev/null +++ b/devel/electron36/files/patch-components_policy_tools_generate__policy__source.py @@ -0,0 +1,14 @@ +--- components/policy/tools/generate_policy_source.py.orig 2024-04-15 20:33:55 UTC ++++ components/policy/tools/generate_policy_source.py +@@ -38,9 +38,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/devel/electron36/files/patch-components_power__metrics_BUILD.gn b/devel/electron36/files/patch-components_power__metrics_BUILD.gn new file mode 100644 index 000000000000..5faa0a4e5e0c --- /dev/null +++ b/devel/electron36/files/patch-components_power__metrics_BUILD.gn @@ -0,0 +1,11 @@ +--- components/power_metrics/BUILD.gn.orig 2023-10-19 19:58:19 UTC ++++ 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/devel/electron36/files/patch-components_power__metrics_energy__metrics__provider.cc b/devel/electron36/files/patch-components_power__metrics_energy__metrics__provider.cc new file mode 100644 index 000000000000..41e8a386d76f --- /dev/null +++ b/devel/electron36/files/patch-components_power__metrics_energy__metrics__provider.cc @@ -0,0 +1,21 @@ +--- components/power_metrics/energy_metrics_provider.cc.orig 2023-08-10 01:48:41 UTC ++++ 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/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__service.cc b/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__service.cc new file mode 100644 index 000000000000..f4aa40445b64 --- /dev/null +++ b/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__service.cc @@ -0,0 +1,11 @@ +--- components/regional_capabilities/regional_capabilities_service.cc.orig 2025-04-22 20:15:27 UTC ++++ components/regional_capabilities/regional_capabilities_service.cc +@@ -216,7 +216,7 @@ std::optional<CountryId> RegionalCapabilitiesService:: + return persisted_country_id; + } + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(switches::kClearPrefForUnknownCountry)) { + profile_prefs_->ClearPref(country_codes::kCountryIDAtInstall); + base::UmaHistogramEnumeration(kUnknownCountryIdStored, diff --git a/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__switches.cc b/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__switches.cc new file mode 100644 index 000000000000..7ea8c0b5f11c --- /dev/null +++ b/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__switches.cc @@ -0,0 +1,11 @@ +--- components/regional_capabilities/regional_capabilities_switches.cc.orig 2025-04-22 20:15:27 UTC ++++ components/regional_capabilities/regional_capabilities_switches.cc +@@ -6,7 +6,7 @@ namespace switches { + + namespace switches { + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kClearPrefForUnknownCountry, + "ClearCountryPrefForStoredUnknownCountry", + base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__switches.h b/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__switches.h new file mode 100644 index 000000000000..a71adac8eb35 --- /dev/null +++ b/devel/electron36/files/patch-components_regional__capabilities_regional__capabilities__switches.h @@ -0,0 +1,11 @@ +--- components/regional_capabilities/regional_capabilities_switches.h.orig 2025-04-22 20:15:27 UTC ++++ components/regional_capabilities/regional_capabilities_switches.h +@@ -25,7 +25,7 @@ inline constexpr char kEeaListCountryOverride[] = "EEA + inline constexpr char kDefaultListCountryOverride[] = "DEFAULT_EEA"; + inline constexpr char kEeaListCountryOverride[] = "EEA_ALL"; + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // When an invalid `country_codes::CountryId` is stored in prefs and this + // feature is enabled the pref will be cleared allowing a valid country to be + // set again. diff --git a/devel/electron36/files/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc b/devel/electron36/files/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc new file mode 100644 index 000000000000..a18575bbe034 --- /dev/null +++ b/devel/electron36/files/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc @@ -0,0 +1,11 @@ +--- components/safe_browsing/content/common/file_type_policies_unittest.cc.orig 2025-03-24 20:50:14 UTC ++++ components/safe_browsing/content/common/file_type_policies_unittest.cc +@@ -146,7 +146,7 @@ TEST_F(FileTypePoliciesTest, UnpackResourceBundle) { + EXPECT_EQ(142, file_type.uma_value()); + EXPECT_FALSE(file_type.is_archive()); + EXPECT_EQ(DownloadFileType::FULL_PING, file_type.ping_setting()); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + EXPECT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, + file_type.platform_settings(0).danger_level()); + EXPECT_EQ(DownloadFileType::DISALLOW_AUTO_OPEN, diff --git a/devel/electron36/files/patch-components_safe__browsing_content_resources_gen__file__type__proto.py b/devel/electron36/files/patch-components_safe__browsing_content_resources_gen__file__type__proto.py new file mode 100644 index 000000000000..c21444927e24 --- /dev/null +++ b/devel/electron36/files/patch-components_safe__browsing_content_resources_gen__file__type__proto.py @@ -0,0 +1,20 @@ +--- components/safe_browsing/content/resources/gen_file_type_proto.py.orig 2024-08-14 20:54:56 UTC ++++ components/safe_browsing/content/resources/gen_file_type_proto.py +@@ -37,6 +37,8 @@ def PlatformTypes(): + "chromeos": + download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_CHROME_OS, + "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, + # LINT.ThenChange(BUILD.gn:PlatformTypes) +@@ -179,7 +181,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/devel/electron36/files/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc b/devel/electron36/files/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc new file mode 100644 index 000000000000..316f49e810ae --- /dev/null +++ b/devel/electron36/files/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc @@ -0,0 +1,11 @@ +--- components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc.orig 2024-10-16 21:31:13 UTC ++++ components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc +@@ -119,7 +119,7 @@ PlatformType GetCurrentPlatformType() { + 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/devel/electron36/files/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc b/devel/electron36/files/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc new file mode 100644 index 000000000000..3c481d77ead0 --- /dev/null +++ b/devel/electron36/files/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc @@ -0,0 +1,11 @@ +--- components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc.orig 2025-04-22 20:15:27 UTC ++++ components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc +@@ -111,7 +111,7 @@ RTLookupRequest::OSType GetRTLookupRequestOSType() { + return RTLookupRequest::OS_TYPE_CHROME_OS; + #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/devel/electron36/files/patch-components_search__engines_template__url__service.cc b/devel/electron36/files/patch-components_search__engines_template__url__service.cc new file mode 100644 index 000000000000..446668ce917d --- /dev/null +++ b/devel/electron36/files/patch-components_search__engines_template__url__service.cc @@ -0,0 +1,11 @@ +--- components/search_engines/template_url_service.cc.orig 2025-04-22 20:15:27 UTC ++++ components/search_engines/template_url_service.cc +@@ -3435,7 +3435,7 @@ TemplateURLService::GetEnterpriseSearchManager(PrefSer + std::unique_ptr<EnterpriseSearchManager> + TemplateURLService::GetEnterpriseSearchManager(PrefService* prefs) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return std::make_unique<EnterpriseSearchManager>( + prefs, base::BindRepeating(&TemplateURLService::EnterpriseSearchChanged, + base::Unretained(this))); diff --git a/devel/electron36/files/patch-components_security__interstitials_content_utils.cc b/devel/electron36/files/patch-components_security__interstitials_content_utils.cc new file mode 100644 index 000000000000..7fd6d3a401e4 --- /dev/null +++ b/devel/electron36/files/patch-components_security__interstitials_content_utils.cc @@ -0,0 +1,11 @@ +--- components/security_interstitials/content/utils.cc.orig 2025-03-24 20:50:14 UTC ++++ components/security_interstitials/content/utils.cc +@@ -37,7 +37,7 @@ void LaunchDateAndTimeSettings() { + #if BUILDFLAG(IS_ANDROID) + JNIEnv* env = base::android::AttachCurrentThread(); + Java_DateAndTimeSettingsHelper_openDateAndTimeSettings(env); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + struct ClockCommand { + const char* const pathname; + const char* const argument; diff --git a/devel/electron36/files/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc b/devel/electron36/files/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc new file mode 100644 index 000000000000..55d509b728ff --- /dev/null +++ b/devel/electron36/files/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc @@ -0,0 +1,11 @@ +--- components/segmentation_platform/embedder/default_model/cross_device_user_segment.cc.orig 2025-03-24 20:50:14 UTC ++++ components/segmentation_platform/embedder/default_model/cross_device_user_segment.cc +@@ -147,7 +147,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/devel/electron36/files/patch-components_services_on__device__translation_sandbox__hook.cc b/devel/electron36/files/patch-components_services_on__device__translation_sandbox__hook.cc new file mode 100644 index 000000000000..2d4e4dc77253 --- /dev/null +++ b/devel/electron36/files/patch-components_services_on__device__translation_sandbox__hook.cc @@ -0,0 +1,43 @@ +--- components/services/on_device_translation/sandbox_hook.cc.orig 2025-01-27 17:37:37 UTC ++++ components/services/on_device_translation/sandbox_hook.cc +@@ -7,12 +7,15 @@ + #include "components/services/on_device_translation/translate_kit_client.h" + #include "sandbox/linux/syscall_broker/broker_command.h" + ++#if !BUILDFLAG(IS_BSD) + using sandbox::syscall_broker::BrokerFilePermission; + using sandbox::syscall_broker::MakeBrokerCommandSet; ++#endif + + namespace on_device_translation { + namespace { + ++#if !BUILDFLAG(IS_BSD) + // Gets the file permissions required by the TranslateKit + std::vector<BrokerFilePermission> GetOnDeviceTranslationFilePermissions() { + std::vector<BrokerFilePermission> permissions{ +@@ -21,6 +24,7 @@ std::vector<BrokerFilePermission> GetOnDeviceTranslati + }; + return permissions; + } ++#endif + + } // namespace + +@@ -29,6 +33,7 @@ bool OnDeviceTranslationSandboxHook( + // Call `TranslateKitClient::Get()` to load libtranslatekit.so + TranslateKitClient::Get(); + ++#if !BUILDFLAG(IS_BSD) + auto* instance = sandbox::policy::SandboxLinux::GetInstance(); + instance->StartBrokerProcess(MakeBrokerCommandSet({ + sandbox::syscall_broker::COMMAND_OPEN, +@@ -36,7 +41,7 @@ bool OnDeviceTranslationSandboxHook( + GetOnDeviceTranslationFilePermissions(), + options); + instance->EngageNamespaceSandboxIfPossible(); +- ++#endif + return true; + } + diff --git a/devel/electron36/files/patch-components_services_on__device__translation_sandbox__hook.h b/devel/electron36/files/patch-components_services_on__device__translation_sandbox__hook.h new file mode 100644 index 000000000000..86fd81de2823 --- /dev/null +++ b/devel/electron36/files/patch-components_services_on__device__translation_sandbox__hook.h @@ -0,0 +1,16 @@ +--- components/services/on_device_translation/sandbox_hook.h.orig 2025-01-27 17:37:37 UTC ++++ components/services/on_device_translation/sandbox_hook.h +@@ -5,7 +5,13 @@ + #ifndef COMPONENTS_SERVICES_ON_DEVICE_TRANSLATION_SANDBOX_HOOK_H_ + #define COMPONENTS_SERVICES_ON_DEVICE_TRANSLATION_SANDBOX_HOOK_H_ + ++#include "build/build_config.h" ++ ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace on_device_translation { + diff --git a/devel/electron36/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc b/devel/electron36/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc new file mode 100644 index 000000000000..a60ebb6e47d1 --- /dev/null +++ b/devel/electron36/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc @@ -0,0 +1,29 @@ +--- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc.orig 2024-02-21 00:20:42 UTC ++++ components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc +@@ -22,7 +22,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 + +@@ -79,7 +79,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()); +@@ -102,7 +102,7 @@ PaintPreviewCompositorCollectionImpl::PaintPreviewComp + base::BindOnce([] { skia::DefaultFontMgr(); })); + + // 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/devel/electron36/files/patch-components_signin_public_base_signin__switches.cc b/devel/electron36/files/patch-components_signin_public_base_signin__switches.cc new file mode 100644 index 000000000000..95c3ea5de218 --- /dev/null +++ b/devel/electron36/files/patch-components_signin_public_base_signin__switches.cc @@ -0,0 +1,11 @@ +--- components/signin/public/base/signin_switches.cc.orig 2025-04-22 20:15:27 UTC ++++ components/signin/public/base/signin_switches.cc +@@ -55,7 +55,7 @@ BASE_FEATURE(kUseHostedDomainForManagementCheckOnSigni + base::FEATURE_DISABLED_BY_DEFAULT); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Enables the History Sync Opt-in on Desktop. + BASE_FEATURE(kEnableHistorySyncOptin, + "EnableHistorySyncOptin", diff --git a/devel/electron36/files/patch-components_signin_public_base_signin__switches.h b/devel/electron36/files/patch-components_signin_public_base_signin__switches.h new file mode 100644 index 000000000000..453f95ecfad2 --- /dev/null +++ b/devel/electron36/files/patch-components_signin_public_base_signin__switches.h @@ -0,0 +1,11 @@ +--- components/signin/public/base/signin_switches.h.orig 2025-04-22 20:15:27 UTC ++++ components/signin/public/base/signin_switches.h +@@ -52,7 +52,7 @@ BASE_DECLARE_FEATURE(kUseHostedDomainForManagementChec + BASE_DECLARE_FEATURE(kUseHostedDomainForManagementCheckOnSignin); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(SIGNIN_SWITCHES) + BASE_DECLARE_FEATURE(kEnableHistorySyncOptin); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-components_soda_soda__util.cc b/devel/electron36/files/patch-components_soda_soda__util.cc new file mode 100644 index 000000000000..a8632e435f0b --- /dev/null +++ b/devel/electron36/files/patch-components_soda_soda__util.cc @@ -0,0 +1,29 @@ +--- components/soda/soda_util.cc.orig 2025-04-22 20:15:27 UTC ++++ components/soda/soda_util.cc +@@ -23,7 +23,7 @@ + #include "base/win/windows_version.h" + #endif + +-#if BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_X86_FAMILY) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_FAMILY) + #include "base/cpu.h" + #endif + +@@ -39,7 +39,7 @@ bool IsSupportedChromeOS() { + } + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool IsSupportedLinux() { + #if defined(ARCH_CPU_X86_FAMILY) + // Check if the CPU has the required instruction set to run the Speech +@@ -70,7 +70,7 @@ bool IsOnDeviceSpeechRecognitionSupported() { + bool IsOnDeviceSpeechRecognitionSupported() { + #if BUILDFLAG(IS_CHROMEOS) + return IsSupportedChromeOS(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return IsSupportedLinux(); + #elif BUILDFLAG(IS_WIN) + return IsSupportedWin(); diff --git a/devel/electron36/files/patch-components_startup__metric__utils_common_startup__metric__utils.cc b/devel/electron36/files/patch-components_startup__metric__utils_common_startup__metric__utils.cc new file mode 100644 index 000000000000..16c39c009ef1 --- /dev/null +++ b/devel/electron36/files/patch-components_startup__metric__utils_common_startup__metric__utils.cc @@ -0,0 +1,11 @@ +--- components/startup_metric_utils/common/startup_metric_utils.cc.orig 2024-08-14 20:54:56 UTC ++++ components/startup_metric_utils/common/startup_metric_utils.cc +@@ -94,7 +94,7 @@ base::TimeTicks CommonStartupMetricRecorder::StartupTi + // Enabling this logic on OS X causes a significant performance regression. + // TODO(crbug.com/40464036): Remove IS_APPLE ifdef once utility processes + // set their desired main thread priority. +-#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/devel/electron36/files/patch-components_storage__monitor_BUILD.gn b/devel/electron36/files/patch-components_storage__monitor_BUILD.gn new file mode 100644 index 000000000000..01b4ffa86bac --- /dev/null +++ b/devel/electron36/files/patch-components_storage__monitor_BUILD.gn @@ -0,0 +1,20 @@ +--- components/storage_monitor/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ components/storage_monitor/BUILD.gn +@@ -73,7 +73,7 @@ component("storage_monitor") { + deps += [ "//services/device/public/mojom" ] + } + } else if (is_linux) { +- if (use_udev) { ++ if (use_udev && !is_bsd) { + sources += [ + "mtab_watcher_linux.cc", + "mtab_watcher_linux.h", +@@ -182,7 +182,7 @@ source_set("unit_tests") { + "storage_monitor_chromeos_unittest.cc", + ] + } +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { + if (use_udev) { + sources += [ "storage_monitor_linux_unittest.cc" ] + } diff --git a/devel/electron36/files/patch-components_storage__monitor_removable__device__constants.cc b/devel/electron36/files/patch-components_storage__monitor_removable__device__constants.cc new file mode 100644 index 000000000000..b5f275ed96b3 --- /dev/null +++ b/devel/electron36/files/patch-components_storage__monitor_removable__device__constants.cc @@ -0,0 +1,11 @@ +--- components/storage_monitor/removable_device_constants.cc.orig 2022-02-28 16:54:41 UTC ++++ components/storage_monitor/removable_device_constants.cc +@@ -10,7 +10,7 @@ namespace storage_monitor { + const char kFSUniqueIdPrefix[] = "UUID:"; + const char kVendorModelSerialPrefix[] = "VendorModelSerial:"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kVendorModelVolumeStoragePrefix[] = "VendorModelVolumeStorage:"; + #endif + diff --git a/devel/electron36/files/patch-components_storage__monitor_removable__device__constants.h b/devel/electron36/files/patch-components_storage__monitor_removable__device__constants.h new file mode 100644 index 000000000000..f79ace2539e7 --- /dev/null +++ b/devel/electron36/files/patch-components_storage__monitor_removable__device__constants.h @@ -0,0 +1,11 @@ +--- components/storage_monitor/removable_device_constants.h.orig 2025-04-22 20:15:27 UTC ++++ components/storage_monitor/removable_device_constants.h +@@ -15,7 +15,7 @@ extern COMPONENT_EXPORT(STORAGE_MONITOR) const char kV + extern COMPONENT_EXPORT(STORAGE_MONITOR) const char kFSUniqueIdPrefix[]; + extern COMPONENT_EXPORT(STORAGE_MONITOR) const char kVendorModelSerialPrefix[]; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern COMPONENT_EXPORT(STORAGE_MONITOR) const + char kVendorModelVolumeStoragePrefix[]; + #endif diff --git a/devel/electron36/files/patch-components_supervised__user_core_browser_list__family__members__service.h b/devel/electron36/files/patch-components_supervised__user_core_browser_list__family__members__service.h new file mode 100644 index 000000000000..64332a60eb39 --- /dev/null +++ b/devel/electron36/files/patch-components_supervised__user_core_browser_list__family__members__service.h @@ -0,0 +1,11 @@ +--- components/supervised_user/core/browser/list_family_members_service.h.orig 2025-03-24 20:50:14 UTC ++++ components/supervised_user/core/browser/list_family_members_service.h +@@ -33,7 +33,7 @@ constexpr bool FetchListFamilyMembersWithCapability() + // If true, this fetcher is active for all users with CanFetchFamilyMemberInfo + // capability. Otherwise, it is only used by supervised users. + constexpr bool FetchListFamilyMembersWithCapability() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron36/files/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc b/devel/electron36/files/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc new file mode 100644 index 000000000000..f9bb3a7ae07d --- /dev/null +++ b/devel/electron36/files/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc @@ -0,0 +1,11 @@ +--- components/supervised_user/core/browser/supervised_user_metrics_service.cc.orig 2024-08-14 20:54:57 UTC ++++ components/supervised_user/core/browser/supervised_user_metrics_service.cc +@@ -47,7 +47,7 @@ SupervisedUserMetricsService::SupervisedUserMetricsSer + extensions_metrics_delegate_(std::move(extensions_metrics_delegate)) { + DCHECK(pref_service_); + DCHECK(url_filter_); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + CHECK(extensions_metrics_delegate_) + << "Extensions metrics delegate must exist on Win/Linux/Mac"; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-components_supervised__user_core_browser_supervised__user__preferences.cc b/devel/electron36/files/patch-components_supervised__user_core_browser_supervised__user__preferences.cc new file mode 100644 index 000000000000..a88449d10186 --- /dev/null +++ b/devel/electron36/files/patch-components_supervised__user_core_browser_supervised__user__preferences.cc @@ -0,0 +1,11 @@ +--- components/supervised_user/core/browser/supervised_user_preferences.cc.orig 2025-04-22 20:15:27 UTC ++++ components/supervised_user/core/browser/supervised_user_preferences.cc +@@ -147,7 +147,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry + registry->RegisterBooleanPref(prefs::kChildAccountStatusKnown, false); + registry->RegisterStringPref(prefs::kFamilyLinkUserMemberRole, std::string()); + #if BUILDFLAG(ENABLE_EXTENSIONS) && \ +- (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)) ++ (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + registry->RegisterIntegerPref( + prefs::kLocallyParentApprovedExtensionsMigrationState, + static_cast<int>( diff --git a/devel/electron36/files/patch-components_supervised__user_core_common_features.cc b/devel/electron36/files/patch-components_supervised__user_core_common_features.cc new file mode 100644 index 000000000000..782a7c758762 --- /dev/null +++ b/devel/electron36/files/patch-components_supervised__user_core_common_features.cc @@ -0,0 +1,72 @@ +--- components/supervised_user/core/common/features.cc.orig 2025-04-22 20:15:27 UTC ++++ components/supervised_user/core/common/features.cc +@@ -36,7 +36,7 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, + #endif + + #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; + + const base::FeatureParam<int> kLocalWebApprovalBottomSheetLoadTimeoutMs{ +@@ -45,7 +45,7 @@ const base::FeatureParam<int> kLocalWebApprovalBottomS + #endif // BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kEnableLocalWebApprovalErrorDialog, + "EnableLocalWebApprovalErrorDialog", + base::FEATURE_DISABLED_BY_DEFAULT); +@@ -97,7 +97,7 @@ BASE_FEATURE(kUpdatedSupervisedUserExtensionApprovalSt + "UpdatedSupervisedUserExtensionApprovalStrings", + base::FEATURE_ENABLED_BY_DEFAULT); + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop, + "EnableExtensionsPermissionsForSupervisedUsersOnDesktop", + base::FEATURE_ENABLED_BY_DEFAULT); +@@ -112,7 +112,7 @@ bool IsSupervisedUserSkipParentApprovalToInstallExtens + #if BUILDFLAG(IS_CHROMEOS) + return base::FeatureList::IsEnabled( + kEnableSupervisedUserSkipParentApprovalToInstallExtensions); +-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + bool skipParentApprovalEnabled = base::FeatureList::IsEnabled( + kEnableSupervisedUserSkipParentApprovalToInstallExtensions); + bool permissionExtensionsForSupervisedUsersEnabled = +@@ -129,7 +129,7 @@ bool IsSupervisedUserSkipParentApprovalToInstallExtens + } + #endif // BUILDFLAG(ENABLE_EXTENSIONS) + +-#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(kCustomProfileStringsForSupervisedUsers, + "CustomProfileStringsForSupervisedUsers", + base::FEATURE_ENABLED_BY_DEFAULT); +@@ -141,13 +141,13 @@ BASE_FEATURE(kForceSafeSearchForUnauthenticatedSupervi + + BASE_FEATURE(kForceSafeSearchForUnauthenticatedSupervisedUsers, + "ForceSafeSearchForUnauthenticatedSupervisedUsers", +-#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 + base::FEATURE_DISABLED_BY_DEFAULT); + #endif + +-#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(kEnableSupervisedUserVersionSignOutDialog, + "EnableSupervisedUserVersionSignOutDialog", + base::FEATURE_ENABLED_BY_DEFAULT); +@@ -169,7 +169,7 @@ BASE_FEATURE(kUncredentialedFilteringFallbackForSuperv + // platform #defines. + BASE_FEATURE(kUncredentialedFilteringFallbackForSupervisedUsers, + "UncredentialedFilteringFallbackForSupervisedUsers", +-#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 + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-components_supervised__user_core_common_features.h b/devel/electron36/files/patch-components_supervised__user_core_common_features.h new file mode 100644 index 000000000000..0c624fd99d56 --- /dev/null +++ b/devel/electron36/files/patch-components_supervised__user_core_common_features.h @@ -0,0 +1,44 @@ +--- components/supervised_user/core/common/features.h.orig 2025-04-22 20:15:27 UTC ++++ components/supervised_user/core/common/features.h +@@ -19,12 +19,12 @@ BASE_DECLARE_FEATURE(kAllowSubframeLocalWebApprovals); + BASE_DECLARE_FEATURE(kAllowSubframeLocalWebApprovals); + + #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + extern const base::FeatureParam<int> kLocalWebApprovalBottomSheetLoadTimeoutMs; + #endif // BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Whether we show an error screen in case of failure of a local web approval. + BASE_DECLARE_FEATURE(kEnableLocalWebApprovalErrorDialog); + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +@@ -44,7 +44,7 @@ BASE_DECLARE_FEATURE(kUpdatedSupervisedUserExtensionAp + // Applies new informative strings during the parental extension approval flow. + BASE_DECLARE_FEATURE(kUpdatedSupervisedUserExtensionApprovalStrings); + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + BASE_DECLARE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop); + #endif + +@@ -62,7 +62,7 @@ bool IsSupervisedUserSkipParentApprovalToInstallExtens + bool IsSupervisedUserSkipParentApprovalToInstallExtensionsEnabled(); + #endif // BUILDFLAG(ENABLE_EXTENSIONS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Enable different web sign in interception behaviour for supervised users: + // + // 1. Supervised user signs in to existing signed out Profile: show modal +@@ -80,7 +80,7 @@ BASE_DECLARE_FEATURE(kForceSafeSearchForUnauthenticate + // unauthenticated (e.g. signed out of the content area) account. + BASE_DECLARE_FEATURE(kForceSafeSearchForUnauthenticatedSupervisedUsers); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Uses supervised user strings on the signout dialog. + BASE_DECLARE_FEATURE(kEnableSupervisedUserVersionSignOutDialog); + diff --git a/devel/electron36/files/patch-components_supervised__user_core_common_pref__names.h b/devel/electron36/files/patch-components_supervised__user_core_common_pref__names.h new file mode 100644 index 000000000000..037a224b33cf --- /dev/null +++ b/devel/electron36/files/patch-components_supervised__user_core_common_pref__names.h @@ -0,0 +1,11 @@ +--- components/supervised_user/core/common/pref_names.h.orig 2025-01-27 17:37:37 UTC ++++ components/supervised_user/core/common/pref_names.h +@@ -129,7 +129,7 @@ inline constexpr char kDefaultSupervisedUserFilteringB + "profile.managed.default_filtering_behavior"; + + #if BUILDFLAG(ENABLE_EXTENSIONS) +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // An integer pref that stores the current state of the local extension + // parent approval migration when the feature + // `kEnableSupervisedUserSkipParentApprovalToInstallExtensions` becomes enabled. diff --git a/devel/electron36/files/patch-components_sync__device__info_local__device__info__util.cc b/devel/electron36/files/patch-components_sync__device__info_local__device__info__util.cc new file mode 100644 index 000000000000..d433d0f818de --- /dev/null +++ b/devel/electron36/files/patch-components_sync__device__info_local__device__info__util.cc @@ -0,0 +1,29 @@ +--- components/sync_device_info/local_device_info_util.cc.orig 2025-03-24 20:50:14 UTC ++++ components/sync_device_info/local_device_info_util.cc +@@ -84,7 +84,7 @@ sync_pb::SyncEnums::DeviceType GetLocalDeviceType() { + 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() { + DeviceInfo::OsType GetLocalDeviceOSType() { + #if BUILDFLAG(IS_CHROMEOS) + return DeviceInfo::OsType::kChromeOsAsh; +-#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::FormFactor GetLocalDeviceFormFactor() { + + 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/devel/electron36/files/patch-components_sync__device__info_local__device__info__util__linux.cc b/devel/electron36/files/patch-components_sync__device__info_local__device__info__util__linux.cc new file mode 100644 index 000000000000..1edb88b39884 --- /dev/null +++ b/devel/electron36/files/patch-components_sync__device__info_local__device__info__util__linux.cc @@ -0,0 +1,14 @@ +--- components/sync_device_info/local_device_info_util_linux.cc.orig 2022-09-24 10:57:32 UTC ++++ 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/devel/electron36/files/patch-components_sync__preferences_common__syncable__prefs__database.cc b/devel/electron36/files/patch-components_sync__preferences_common__syncable__prefs__database.cc new file mode 100644 index 000000000000..fe7885a46a5d --- /dev/null +++ b/devel/electron36/files/patch-components_sync__preferences_common__syncable__prefs__database.cc @@ -0,0 +1,11 @@ +--- components/sync_preferences/common_syncable_prefs_database.cc.orig 2025-04-22 20:15:27 UTC ++++ components/sync_preferences/common_syncable_prefs_database.cc +@@ -334,7 +334,7 @@ constexpr auto kCommonSyncablePrefsAllowlist = + PrefSensitivity::kNone, MergeBehavior::kNone}}, + #endif // BUILDFLAG(IS_ANDROID) + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {autofill::prefs::kAutofillBnplEnabled, + {syncable_prefs_ids::kAutofillBnplEnabled, syncer::PREFERENCES, + PrefSensitivity::kNone, MergeBehavior::kNone}}, diff --git a/devel/electron36/files/patch-components_system__cpu_cpu__probe.cc b/devel/electron36/files/patch-components_system__cpu_cpu__probe.cc new file mode 100644 index 000000000000..c942af31f03e --- /dev/null +++ b/devel/electron36/files/patch-components_system__cpu_cpu__probe.cc @@ -0,0 +1,12 @@ +--- components/system_cpu/cpu_probe.cc.orig 2024-02-21 00:20:43 UTC ++++ components/system_cpu/cpu_probe.cc +@@ -30,6 +30,9 @@ std::unique_ptr<CpuProbe> CpuProbe::Create() { + return CpuProbeWin::Create(); + #elif BUILDFLAG(IS_MAC) + return CpuProbeMac::Create(); ++#elif BUILDFLAG(IS_BSD) ++ NOTIMPLEMENTED(); ++ return nullptr; + #else + return nullptr; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-components_translate_core_common_translate__util.cc b/devel/electron36/files/patch-components_translate_core_common_translate__util.cc new file mode 100644 index 000000000000..6f53bd06ff6b --- /dev/null +++ b/devel/electron36/files/patch-components_translate_core_common_translate__util.cc @@ -0,0 +1,11 @@ +--- components/translate/core/common/translate_util.cc.orig 2023-10-19 19:58:21 UTC ++++ components/translate/core/common/translate_util.cc +@@ -21,7 +21,7 @@ const char kSecurityOrigin[] = "https://translate.goog + BASE_FEATURE(kTFLiteLanguageDetectionEnabled, + "TFLiteLanguageDetectionEnabled", + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron36/files/patch-components_trusted__vault_trusted__vault__connection__impl.cc b/devel/electron36/files/patch-components_trusted__vault_trusted__vault__connection__impl.cc new file mode 100644 index 000000000000..4d34e7864436 --- /dev/null +++ b/devel/electron36/files/patch-components_trusted__vault_trusted__vault__connection__impl.cc @@ -0,0 +1,11 @@ +--- components/trusted_vault/trusted_vault_connection_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ components/trusted_vault/trusted_vault_connection_impl.cc +@@ -103,7 +103,7 @@ GetLocalPhysicalDeviceType() { + // currently used or even built on all platforms. + #if BUILDFLAG(IS_CHROMEOS) + return trusted_vault_pb::PhysicalDeviceMetadata::DEVICE_TYPE_CHROMEOS; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return trusted_vault_pb::PhysicalDeviceMetadata::DEVICE_TYPE_LINUX; + #elif BUILDFLAG(IS_ANDROID) + return trusted_vault_pb::PhysicalDeviceMetadata::DEVICE_TYPE_ANDROID; diff --git a/devel/electron36/files/patch-components_update__client_update__query__params.cc b/devel/electron36/files/patch-components_update__client_update__query__params.cc new file mode 100644 index 000000000000..79e60763484c --- /dev/null +++ b/devel/electron36/files/patch-components_update__client_update__query__params.cc @@ -0,0 +1,11 @@ +--- components/update_client/update_query_params.cc.orig 2025-03-24 20:50:14 UTC ++++ components/update_client/update_query_params.cc +@@ -39,6 +39,8 @@ const char kOs[] = + "fuchsia"; + #elif BUILDFLAG(IS_OPENBSD) + "openbsd"; ++#elif defined(OS_FREEBSD) ++ "freebsd"; + #else + #error "unknown os" + #endif diff --git a/devel/electron36/files/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc b/devel/electron36/files/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc new file mode 100644 index 000000000000..ce575c40bcbb --- /dev/null +++ b/devel/electron36/files/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc @@ -0,0 +1,11 @@ +--- components/url_formatter/spoof_checks/idn_spoof_checker.cc.orig 2025-03-24 20:50:14 UTC ++++ components/url_formatter/spoof_checks/idn_spoof_checker.cc +@@ -298,7 +298,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. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + "[ทนบพรหเแ๐ดลปฟม]", + #else + "[บพเแ๐]", diff --git a/devel/electron36/files/patch-components_user__education_views_help__bubble__view.cc b/devel/electron36/files/patch-components_user__education_views_help__bubble__view.cc new file mode 100644 index 000000000000..6e8ee7348006 --- /dev/null +++ b/devel/electron36/files/patch-components_user__education_views_help__bubble__view.cc @@ -0,0 +1,29 @@ +--- components/user_education/views/help_bubble_view.cc.orig 2025-04-22 20:15:27 UTC ++++ components/user_education/views/help_bubble_view.cc +@@ -268,7 +268,7 @@ DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(HelpBubbleView, + // TODO(https://crbug.com/382611284): Temporarily handle the case when the + // primary window is minimized by closing the help bubble. Remove this code when + // the issue is solved at the Views framework level. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + class HelpBubbleView::PrimaryWidgetObserver : public views::WidgetObserver { + public: + explicit PrimaryWidgetObserver(HelpBubbleView& help_bubble) +@@ -743,7 +743,7 @@ HelpBubbleView::HelpBubbleView( + event_relay_->Init(this); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + primary_widget_observer_ = std::make_unique<PrimaryWidgetObserver>(*this); + #endif + +@@ -855,7 +855,7 @@ void HelpBubbleView::OnBeforeBubbleWidgetInit(views::W + 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) || 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. This also applies to bubbles anchored to diff --git a/devel/electron36/files/patch-components_user__education_views_help__bubble__view.h b/devel/electron36/files/patch-components_user__education_views_help__bubble__view.h new file mode 100644 index 000000000000..97c3dbb87910 --- /dev/null +++ b/devel/electron36/files/patch-components_user__education_views_help__bubble__view.h @@ -0,0 +1,11 @@ +--- components/user_education/views/help_bubble_view.h.orig 2025-04-22 20:15:27 UTC ++++ components/user_education/views/help_bubble_view.h +@@ -160,7 +160,7 @@ class HelpBubbleView : public views::BubbleDialogDeleg + // work around this problem by closing the bubble if the widget is minimized. + // When the underlying issue is fixed at the framework level, this can be + // removed. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + class PrimaryWidgetObserver; + std::unique_ptr<PrimaryWidgetObserver> primary_widget_observer_; + #endif diff --git a/devel/electron36/files/patch-components_variations_service_variations__service.cc b/devel/electron36/files/patch-components_variations_service_variations__service.cc new file mode 100644 index 000000000000..2a1b119013e0 --- /dev/null +++ b/devel/electron36/files/patch-components_variations_service_variations__service.cc @@ -0,0 +1,11 @@ +--- components/variations/service/variations_service.cc.orig 2025-03-24 20:50:14 UTC ++++ components/variations/service/variations_service.cc +@@ -100,7 +100,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/devel/electron36/files/patch-components_visited__url__ranking_public_url__visit__util.cc b/devel/electron36/files/patch-components_visited__url__ranking_public_url__visit__util.cc new file mode 100644 index 000000000000..6ef4ce1d5f0d --- /dev/null +++ b/devel/electron36/files/patch-components_visited__url__ranking_public_url__visit__util.cc @@ -0,0 +1,11 @@ +--- components/visited_url_ranking/public/url_visit_util.cc.orig 2025-04-22 20:15:27 UTC ++++ components/visited_url_ranking/public/url_visit_util.cc +@@ -67,7 +67,7 @@ PlatformType GetPlatformInput() { + return PlatformType::kWindows; + #elif BUILDFLAG(IS_MAC) + return PlatformType::kMac; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return PlatformType::kLinux; + #elif BUILDFLAG(IS_IOS) + return PlatformType::kIos; diff --git a/devel/electron36/files/patch-components_viz_host_gpu__host__impl.cc b/devel/electron36/files/patch-components_viz_host_gpu__host__impl.cc new file mode 100644 index 000000000000..032c9820ea4c --- /dev/null +++ b/devel/electron36/files/patch-components_viz_host_gpu__host__impl.cc @@ -0,0 +1,11 @@ +--- components/viz/host/gpu_host_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ components/viz/host/gpu_host_impl.cc +@@ -135,7 +135,7 @@ GpuHostImpl::GpuHostImpl(Delegate* delegate, + mojom::GpuServiceCreationParams::New(); + #if BUILDFLAG(IS_OZONE) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux has an issue when running in single-process mode wherein + // GetPlatformRuntimeProperties() browser-side calls can have a data race with + // in-process GPU service initialization. The call to diff --git a/devel/electron36/files/patch-components_viz_host_host__display__client.cc b/devel/electron36/files/patch-components_viz_host_host__display__client.cc new file mode 100644 index 000000000000..2f19d205f5db --- /dev/null +++ b/devel/electron36/files/patch-components_viz_host_host__display__client.cc @@ -0,0 +1,11 @@ +--- components/viz/host/host_display_client.cc.orig 2024-06-30 11:48:28 UTC ++++ components/viz/host/host_display_client.cc +@@ -73,7 +73,7 @@ void HostDisplayClient::AddChildWindowToBrowser( + } + #endif + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + void HostDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) { + NOTIMPLEMENTED(); + } diff --git a/devel/electron36/files/patch-components_viz_host_host__display__client.h b/devel/electron36/files/patch-components_viz_host_host__display__client.h new file mode 100644 index 000000000000..1d69922e1f9c --- /dev/null +++ b/devel/electron36/files/patch-components_viz_host_host__display__client.h @@ -0,0 +1,11 @@ +--- components/viz/host/host_display_client.h.orig 2024-02-27 21:36:00 UTC ++++ components/viz/host/host_display_client.h +@@ -53,7 +53,7 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom + void AddChildWindowToBrowser(gpu::SurfaceHandle child_window) override; + #endif + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + void DidCompleteSwapWithNewSize(const gfx::Size& size) override; + #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) + diff --git a/devel/electron36/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc b/devel/electron36/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc new file mode 100644 index 000000000000..b94f66571736 --- /dev/null +++ b/devel/electron36/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc @@ -0,0 +1,11 @@ +--- components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ components/viz/service/display_embedder/skia_output_surface_impl.cc +@@ -1510,7 +1510,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 + // VaapiVideoDecoder, which exports using DRM format modifiers. + return GrBackendFormats::MakeVk(gr_ycbcr_info, diff --git a/devel/electron36/files/patch-components_viz_service_display__embedder_software__output__surface.cc b/devel/electron36/files/patch-components_viz_service_display__embedder_software__output__surface.cc new file mode 100644 index 000000000000..6bc03bba47f3 --- /dev/null +++ b/devel/electron36/files/patch-components_viz_service_display__embedder_software__output__surface.cc @@ -0,0 +1,20 @@ +--- components/viz/service/display_embedder/software_output_surface.cc.orig 2025-03-24 20:50:14 UTC ++++ components/viz/service/display_embedder/software_output_surface.cc +@@ -115,7 +115,7 @@ void SoftwareOutputSurface::SwapBuffersCallback(base:: + base::TimeTicks now = base::TimeTicks::Now(); + base::TimeDelta interval_to_next_refresh = + now.SnappedToNextTick(refresh_timebase_, refresh_interval_) - now; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (needs_swap_size_notifications_) + client_->DidSwapWithSize(pixel_size); + #endif +@@ -142,7 +142,7 @@ gfx::OverlayTransform SoftwareOutputSurface::GetDispla + return gfx::OVERLAY_TRANSFORM_NONE; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SoftwareOutputSurface::SetNeedsSwapSizeNotifications( + bool needs_swap_size_notifications) { + needs_swap_size_notifications_ = needs_swap_size_notifications; diff --git a/devel/electron36/files/patch-components_viz_service_display__embedder_software__output__surface.h b/devel/electron36/files/patch-components_viz_service_display__embedder_software__output__surface.h new file mode 100644 index 000000000000..b8c4daa49911 --- /dev/null +++ b/devel/electron36/files/patch-components_viz_service_display__embedder_software__output__surface.h @@ -0,0 +1,20 @@ +--- components/viz/service/display_embedder/software_output_surface.h.orig 2025-03-24 20:50:14 UTC ++++ components/viz/service/display_embedder/software_output_surface.h +@@ -41,7 +41,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputSurface : publi + UpdateVSyncParametersCallback callback) override; + void SetDisplayTransformHint(gfx::OverlayTransform transform) override {} + gfx::OverlayTransform GetDisplayTransform() override; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SetNeedsSwapSizeNotifications( + bool needs_swap_size_notifications) override; + #endif +@@ -59,7 +59,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputSurface : publi + base::TimeTicks refresh_timebase_; + base::TimeDelta refresh_interval_ = BeginFrameArgs::DefaultInterval(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool needs_swap_size_notifications_ = false; + #endif + diff --git a/devel/electron36/files/patch-components_viz_service_display_skia__renderer.cc b/devel/electron36/files/patch-components_viz_service_display_skia__renderer.cc new file mode 100644 index 000000000000..52375673b3a9 --- /dev/null +++ b/devel/electron36/files/patch-components_viz_service_display_skia__renderer.cc @@ -0,0 +1,11 @@ +--- components/viz/service/display/skia_renderer.cc.orig 2025-04-22 20:15:27 UTC ++++ components/viz/service/display/skia_renderer.cc +@@ -1391,7 +1391,7 @@ void SkiaRenderer::ClearFramebuffer() { + if (current_frame()->current_render_pass->has_transparent_background) { + ClearCanvas(SkColors::kTransparent); + } else { +-#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX) ++#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // On DEBUG builds, opaque render passes are cleared to blue + // to easily see regions that were not drawn on the screen. + // ClearCavas() call causes slight pixel difference, so linux-ref and diff --git a/devel/electron36/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc b/devel/electron36/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc new file mode 100644 index 000000000000..73027e7c2b20 --- /dev/null +++ b/devel/electron36/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc @@ -0,0 +1,20 @@ +--- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc.orig 2025-05-11 11:50:45 UTC ++++ components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc +@@ -127,7 +127,7 @@ RootCompositorFrameSinkImpl::Create( + output_surface->SetNeedsSwapSizeNotifications( + params->send_swap_size_notifications); + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + // 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); +@@ -885,7 +885,7 @@ void RootCompositorFrameSinkImpl::DisplayDidCompleteSw + if (display_client_ && enable_swap_completion_callback_) { + display_client_->DidCompleteSwapWithSize(pixel_size); + } +-#elif BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + if (display_client_ && pixel_size != last_swap_pixel_size_) { + last_swap_pixel_size_ = pixel_size; + display_client_->DidCompleteSwapWithNewSize(last_swap_pixel_size_); diff --git a/devel/electron36/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h b/devel/electron36/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h new file mode 100644 index 000000000000..e4c7e85abfec --- /dev/null +++ b/devel/electron36/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h @@ -0,0 +1,11 @@ +--- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h.orig 2025-04-22 20:15:27 UTC ++++ components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h +@@ -229,7 +229,7 @@ class VIZ_SERVICE_EXPORT RootCompositorFrameSinkImpl + base::TimeDelta preferred_frame_interval_ = + FrameRateDecider::UnspecifiedFrameInterval(); + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + gfx::Size last_swap_pixel_size_; + #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) + diff --git a/devel/electron36/files/patch-components_viz_test_fake__display__client.cc b/devel/electron36/files/patch-components_viz_test_fake__display__client.cc new file mode 100644 index 000000000000..5b3eeef68ad3 --- /dev/null +++ b/devel/electron36/files/patch-components_viz_test_fake__display__client.cc @@ -0,0 +1,11 @@ +--- components/viz/test/fake_display_client.cc.orig 2024-02-21 00:20:44 UTC ++++ components/viz/test/fake_display_client.cc +@@ -27,7 +27,7 @@ void FakeDisplayClient::AddChildWindowToBrowser( + gpu::SurfaceHandle child_window) {} + #endif + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + void FakeDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) {} + #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) + diff --git a/devel/electron36/files/patch-components_viz_test_fake__display__client.h b/devel/electron36/files/patch-components_viz_test_fake__display__client.h new file mode 100644 index 000000000000..decdc418ca85 --- /dev/null +++ b/devel/electron36/files/patch-components_viz_test_fake__display__client.h @@ -0,0 +1,11 @@ +--- components/viz/test/fake_display_client.h.orig 2024-02-21 00:20:44 UTC ++++ components/viz/test/fake_display_client.h +@@ -36,7 +36,7 @@ class FakeDisplayClient : public mojom::DisplayClient + void AddChildWindowToBrowser(gpu::SurfaceHandle child_window) override; + #endif + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + void DidCompleteSwapWithNewSize(const gfx::Size& size) override; + #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) + diff --git a/devel/electron36/files/patch-components_viz_test_mock__display__client.h b/devel/electron36/files/patch-components_viz_test_mock__display__client.h new file mode 100644 index 000000000000..86c366c3914d --- /dev/null +++ b/devel/electron36/files/patch-components_viz_test_mock__display__client.h @@ -0,0 +1,11 @@ +--- components/viz/test/mock_display_client.h.orig 2025-03-24 20:50:14 UTC ++++ components/viz/test/mock_display_client.h +@@ -45,7 +45,7 @@ class MockDisplayClient : public mojom::DisplayClient + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) + MOCK_METHOD1(SetPreferredRefreshRate, void(float refresh_rate)); + #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + MOCK_METHOD1(DidCompleteSwapWithNewSize, void(const gfx::Size&)); + #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) + diff --git a/devel/electron36/files/patch-components_webui_flags_flags__state.cc b/devel/electron36/files/patch-components_webui_flags_flags__state.cc new file mode 100644 index 000000000000..d1b8d32e49fe --- /dev/null +++ b/devel/electron36/files/patch-components_webui_flags_flags__state.cc @@ -0,0 +1,11 @@ +--- components/webui/flags/flags_state.cc.orig 2025-04-22 20:15:27 UTC ++++ components/webui/flags/flags_state.cc +@@ -782,7 +782,7 @@ unsigned short FlagsState::GetCurrentPlatform() { + return kOsWin; + #elif BUILDFLAG(IS_CHROMEOS) + return kOsCrOS; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return kOsLinux; + #elif BUILDFLAG(IS_ANDROID) + return kOsAndroid; diff --git a/devel/electron36/files/patch-content_app_BUILD.gn b/devel/electron36/files/patch-content_app_BUILD.gn new file mode 100644 index 000000000000..fb56016767dc --- /dev/null +++ b/devel/electron36/files/patch-content_app_BUILD.gn @@ -0,0 +1,15 @@ +--- content/app/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ content/app/BUILD.gn +@@ -90,9 +90,9 @@ source_set("content_main_runner_app") { + "//third_party/tflite:buildflags", + "//tools/v8_context_snapshot:buildflags", + ] +- if (build_tflite_with_xnnpack) { +- deps += [ "//third_party/cpuinfo" ] +- } ++# if (build_tflite_with_xnnpack) { ++# deps += [ "//third_party/cpuinfo" ] ++# } + } + + source_set("app") { diff --git a/devel/electron36/files/patch-content_app_content__main.cc b/devel/electron36/files/patch-content_app_content__main.cc new file mode 100644 index 000000000000..45b732e81654 --- /dev/null +++ b/devel/electron36/files/patch-content_app_content__main.cc @@ -0,0 +1,20 @@ +--- content/app/content_main.cc.orig 2025-05-11 11:50:45 UTC ++++ content/app/content_main.cc +@@ -227,7 +227,7 @@ NO_STACK_PROTECTOR int RunContentProcess( + base::EnableTerminationOnOutOfMemory(); + logging::RegisterAbslAbortHook(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The various desktop environments set this environment variable that + // allows the dbus client library to connect directly to the bus. When this + // variable is not set (test environments like xvfb-run), the dbus client +@@ -317,7 +317,7 @@ NO_STACK_PROTECTOR int RunContentProcess( + #endif + #endif + +-#if (BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)) && !defined(COMPONENT_BUILD) ++#if (BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)) && !defined(COMPONENT_BUILD) && defined(notyet) + base::subtle::EnableFDOwnershipEnforcement(true); + #endif + diff --git a/devel/electron36/files/patch-content_app_content__main__runner__impl.cc b/devel/electron36/files/patch-content_app_content__main__runner__impl.cc new file mode 100644 index 000000000000..fbb3866b09db --- /dev/null +++ b/devel/electron36/files/patch-content_app_content__main__runner__impl.cc @@ -0,0 +1,131 @@ +--- content/app/content_main_runner_impl.cc.orig 2025-05-11 11:50:45 UTC ++++ content/app/content_main_runner_impl.cc +@@ -146,18 +146,20 @@ + #include "content/browser/posix_file_descriptor_info_impl.h" + #include "content/public/common/content_descriptors.h" + +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + #include "content/public/common/zygote/zygote_fork_delegate_linux.h" + #endif + + #endif // BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/files/file_path_watcher_inotify.h" + #include "base/native_library.h" + #include "base/rand_util.h" + #include "content/public/common/zygote/sandbox_support_linux.h" ++#if !BUILDFLAG(IS_BSD) + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + #include "third_party/boringssl/src/include/openssl/crypto.h" + #include "third_party/webrtc_overrides/init_webrtc.h" // nogncheck + +@@ -186,6 +188,10 @@ + #include "media/base/media_switches.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "base/system/sys_info.h" ++#endif ++ + #if BUILDFLAG(IS_ANDROID) + #include "base/system/sys_info.h" + #include "content/browser/android/battery_metrics.h" +@@ -387,7 +393,7 @@ void InitializeZygoteSandboxForBrowserProcess( + } + #endif // BUILDFLAG(USE_ZYGOTE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + #if BUILDFLAG(ENABLE_PPAPI) + // Loads the (native) libraries but does not initialize them (i.e., does not +@@ -425,7 +431,10 @@ void PreSandboxInit() { + + void PreSandboxInit() { + // 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. +@@ -437,9 +446,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. + base::GetMaxNumberOfInotifyWatches(); ++#endif + + #if BUILDFLAG(ENABLE_PPAPI) + // Ensure access to the Pepper plugins before the sandbox is turned on. +@@ -753,7 +769,7 @@ NO_STACK_PROTECTOR int RunOtherNamedProcessTypeMain( + unregister_thread_closure = base::HangWatcher::RegisterThread( + base::HangWatcher::ThreadType::kMainThread); + bool start_hang_watcher_now; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux/ChromeOS, the HangWatcher can't start until after the sandbox is + // initialized, because the sandbox can't be started with multiple threads. + // TODO(mpdenton): start the HangWatcher after the sandbox is initialized. +@@ -866,11 +882,10 @@ int ContentMainRunnerImpl::Initialize(ContentMainParam + base::GlobalDescriptors::kBaseDescriptor); + #endif // !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + g_fds->Set(kCrashDumpSignal, + kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor); +-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || +- // BUILDFLAG(IS_OPENBSD) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + + #endif // !BUILDFLAG(IS_WIN) + +@@ -1051,10 +1066,22 @@ int ContentMainRunnerImpl::Initialize(ContentMainParam + process_type == switches::kZygoteProcess) { + PreSandboxInit(); + } ++#elif BUILDFLAG(IS_BSD) ++ PreSandboxInit(); + #elif BUILDFLAG(IS_IOS) + ChildProcessEnterSandbox(); + #endif + ++#if BUILDFLAG(IS_BSD) ++ if (process_type.empty()) { ++ sandbox::policy::SandboxLinux::Options sandbox_options; ++ sandbox::policy::SandboxLinux::GetInstance()->InitializeSandbox( ++ sandbox::policy::SandboxTypeFromCommandLine( ++ *base::CommandLine::ForCurrentProcess()), ++ sandbox::policy::SandboxLinux::PreSandboxHook(), sandbox_options); ++ } ++#endif ++ + delegate_->SandboxInitialized(process_type); + + #if BUILDFLAG(USE_ZYGOTE) +@@ -1151,6 +1178,11 @@ NO_STACK_PROTECTOR int ContentMainRunnerImpl::Run() { + content_main_params_.reset(); + + RegisterMainThreadFactories(); ++ ++#if BUILDFLAG(IS_BSD) ++ if (!process_type.empty()) ++ PreSandboxInit(); ++#endif + + if (process_type.empty()) + return RunBrowser(std::move(main_params), start_minimal_browser); diff --git a/devel/electron36/files/patch-content_browser_BUILD.gn b/devel/electron36/files/patch-content_browser_BUILD.gn new file mode 100644 index 000000000000..679d2a5ba8ae --- /dev/null +++ b/devel/electron36/files/patch-content_browser_BUILD.gn @@ -0,0 +1,33 @@ +--- content/browser/BUILD.gn.orig 2025-05-11 11:50:45 UTC ++++ content/browser/BUILD.gn +@@ -2561,6 +2561,14 @@ source_set("browser") { + ] + } + ++ if (is_bsd) { ++ sources += [ ++ "file_system_access/file_path_watcher/file_path_watcher_bsd.cc", ++ "file_system_access/file_path_watcher/file_path_watcher_kqueue.cc", ++ "file_system_access/file_path_watcher/file_path_watcher_kqueue.h", ++ ] ++ } ++ + if (is_linux || is_chromeos) { + sources -= + [ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ] +@@ -2606,6 +2614,15 @@ source_set("browser") { + if (allow_oop_video_decoder) { + sources += [ "media/oop_video_decoder_factory.cc" ] + deps += [ "//media/mojo/mojom" ] ++ } ++ ++ if (is_bsd) { ++ sources -= [ ++ "file_system_access/file_path_watcher/file_path_watcher_inotify.cc", ++ "file_system_access/file_path_watcher/file_path_watcher_inotify.h", ++ "sandbox_ipc_linux.cc", ++ "sandbox_ipc_linux.h", ++ ] + } + + if (is_chromeos) { diff --git a/devel/electron36/files/patch-content_browser_accessibility_browser__accessibility__state__impl.cc b/devel/electron36/files/patch-content_browser_accessibility_browser__accessibility__state__impl.cc new file mode 100644 index 000000000000..0032e8c28ced --- /dev/null +++ b/devel/electron36/files/patch-content_browser_accessibility_browser__accessibility__state__impl.cc @@ -0,0 +1,11 @@ +--- content/browser/accessibility/browser_accessibility_state_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/accessibility/browser_accessibility_state_impl.cc +@@ -180,7 +180,7 @@ BrowserAccessibilityStateImpl* BrowserAccessibilitySta + + // On Android, Mac, Windows and Linux there are platform-specific subclasses. + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_MAC) && \ +- !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++ !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // static + std::unique_ptr<BrowserAccessibilityStateImpl> + BrowserAccessibilityStateImpl::Create() { diff --git a/devel/electron36/files/patch-content_browser_accessibility_browser__accessibility__state__impl__auralinux.cc b/devel/electron36/files/patch-content_browser_accessibility_browser__accessibility__state__impl__auralinux.cc new file mode 100644 index 000000000000..0c710d6873e6 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_accessibility_browser__accessibility__state__impl__auralinux.cc @@ -0,0 +1,33 @@ +--- content/browser/accessibility/browser_accessibility_state_impl_auralinux.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/accessibility/browser_accessibility_state_impl_auralinux.cc +@@ -32,7 +32,11 @@ bool CheckCmdlineForOrca(const std::string& cmdline_al + std::string cmdline; + std::stringstream ss(cmdline_all); + while (std::getline(ss, cmdline, '\0')) { ++#if BUILDFLAG(IS_BSD) ++ re2::RE2 orca_regex(R"((^|/)(usr/)?(local/)?bin/orca(\s|$))"); ++#else + re2::RE2 orca_regex(R"((^|/)(usr/)?bin/orca(\s|$))"); ++#endif + if (re2::RE2::PartialMatch(cmdline, orca_regex)) { + return true; // Orca was found + } +@@ -42,6 +46,10 @@ bool DiscoverOrca() { + + // Returns true if Orca is active. + bool DiscoverOrca() { ++#if BUILDFLAG(IS_BSD) ++ NOTIMPLEMENTED(); ++ return false; ++#else + // NOTE: this method is run from another thread to reduce jank, since + // there's no guarantee these system calls will return quickly. + std::unique_ptr<DIR, decltype(&CloseDir)> proc_dir(opendir("/proc"), +@@ -79,6 +87,7 @@ bool DiscoverOrca() { + } + + return is_orca_active; ++#endif + } + + } // namespace diff --git a/devel/electron36/files/patch-content_browser_audio_audio__service.cc b/devel/electron36/files/patch-content_browser_audio_audio__service.cc new file mode 100644 index 000000000000..6dd0bd481e42 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_audio_audio__service.cc @@ -0,0 +1,20 @@ +--- content/browser/audio/audio_service.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/audio/audio_service.cc +@@ -33,7 +33,7 @@ + #if BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) + #include "ui/display/util/edid_parser.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/display/display_util.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -201,7 +201,7 @@ audio::mojom::AudioService& GetAudioService() { + ->PostTaskAndReplyWithResult( + FROM_HERE, base::BindOnce(&ScanEdidBitstreams), + base::BindOnce(&LaunchAudioService, std::move(receiver))); +-#elif BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) && BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + LaunchAudioService( + std::move(receiver), + ConvertEdidBitstreams(display::DisplayUtil::GetAudioFormats())); diff --git a/devel/electron36/files/patch-content_browser_browser__child__process__host__impl.cc b/devel/electron36/files/patch-content_browser_browser__child__process__host__impl.cc new file mode 100644 index 000000000000..c3050bfd2126 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_browser__child__process__host__impl.cc @@ -0,0 +1,19 @@ +--- content/browser/browser_child_process_host_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/browser_child_process_host_impl.cc +@@ -326,6 +326,7 @@ void BrowserChildProcessHostImpl::LaunchWithoutExtraCo + switches::kLogBestEffortTasks, + switches::kPerfettoDisableInterning, + switches::kTraceToConsole, ++ switches::kDisableUnveil, + }; + cmd_line->CopySwitchesFrom(browser_command_line, kForwardSwitches); + +@@ -690,7 +691,7 @@ void BrowserChildProcessHostImpl::OnProcessLaunched() + ->child_process()); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + child_thread_type_switcher_.SetPid(process.Pid()); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + diff --git a/devel/electron36/files/patch-content_browser_browser__child__process__host__impl.h b/devel/electron36/files/patch-content_browser_browser__child__process__host__impl.h new file mode 100644 index 000000000000..e87f3141d8ba --- /dev/null +++ b/devel/electron36/files/patch-content_browser_browser__child__process__host__impl.h @@ -0,0 +1,20 @@ +--- content/browser/browser_child_process_host_impl.h.orig 2025-03-24 20:50:14 UTC ++++ content/browser/browser_child_process_host_impl.h +@@ -36,7 +36,7 @@ + #include "base/win/object_watcher.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/browser/child_thread_type_switcher_linux.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -287,7 +287,7 @@ class BrowserChildProcessHostImpl + std::unique_ptr<tracing::SystemTracingService> system_tracing_service_; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ChildThreadTypeSwitcher child_thread_type_switcher_; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + diff --git a/devel/electron36/files/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc b/devel/electron36/files/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc new file mode 100644 index 000000000000..cc38915d91b5 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc @@ -0,0 +1,11 @@ +--- content/browser/browser_child_process_host_impl_receiver_bindings.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/browser_child_process_host_impl_receiver_bindings.cc +@@ -64,7 +64,7 @@ void BrowserChildProcessHostImpl::BindHostReceiver( + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (auto r = receiver.As<mojom::ThreadTypeSwitcher>()) { + child_thread_type_switcher_.Bind(std::move(r)); + return; diff --git a/devel/electron36/files/patch-content_browser_browser__main__loop.cc b/devel/electron36/files/patch-content_browser_browser__main__loop.cc new file mode 100644 index 000000000000..41737bd35edb --- /dev/null +++ b/devel/electron36/files/patch-content_browser_browser__main__loop.cc @@ -0,0 +1,37 @@ +--- content/browser/browser_main_loop.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/browser_main_loop.cc +@@ -249,6 +249,12 @@ + #include "mojo/public/cpp/bindings/lib/test_random_mojo_delays.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "content/browser/sandbox_host_linux.h" ++#include "content/public/common/zygote/sandbox_support_linux.h" ++#include "sandbox/policy/sandbox.h" ++#endif ++ + // One of the linux specific headers defines this as a macro. + #ifdef DestroyAll + #undef DestroyAll +@@ -543,6 +549,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()); ++#elif BUILDFLAG(IS_BSD) ++ base::FileHandleMappingVector additional_remapped_fds; ++ base::LaunchOptions options; ++ SandboxHostLinux::GetInstance()->Init(); ++ const int sfd = SandboxHostLinux::GetInstance()->GetChildSocket(); ++ options.fds_to_remap.push_back(std::make_pair(sfd, GetSandboxFD())); + #endif + + // GLib's spawning of new processes is buggy, so it's important that at this +@@ -575,7 +587,7 @@ int BrowserMainLoop::EarlyInitialization() { + base::ThreadType::kDisplayCritical); + + #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 Apple is low (256), so bump it up. + diff --git a/devel/electron36/files/patch-content_browser_child__process__launcher__helper.h b/devel/electron36/files/patch-content_browser_child__process__launcher__helper.h new file mode 100644 index 000000000000..96cfdc97addc --- /dev/null +++ b/devel/electron36/files/patch-content_browser_child__process__launcher__helper.h @@ -0,0 +1,11 @@ +--- content/browser/child_process_launcher_helper.h.orig 2025-03-24 20:50:14 UTC ++++ content/browser/child_process_launcher_helper.h +@@ -308,7 +308,7 @@ class ChildProcessLauncherHelper + std::optional<base::ProcessId> process_id_ = std::nullopt; + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The priority of the process. The state is stored to avoid changing the + // setting repeatedly. + std::optional<base::Process::Priority> priority_; diff --git a/devel/electron36/files/patch-content_browser_child__process__launcher__helper__linux.cc b/devel/electron36/files/patch-content_browser_child__process__launcher__helper__linux.cc new file mode 100644 index 000000000000..d01e9a9af7e3 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_child__process__launcher__helper__linux.cc @@ -0,0 +1,139 @@ +--- content/browser/child_process_launcher_helper_linux.cc.orig 2024-06-30 11:48:30 UTC ++++ content/browser/child_process_launcher_helper_linux.cc +@@ -22,7 +22,9 @@ + #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" + + namespace content { +@@ -47,14 +49,20 @@ bool ChildProcessLauncherHelper::IsUsingLaunchOptions( + } + + bool ChildProcessLauncherHelper::IsUsingLaunchOptions() { ++#if !BUILDFLAG(IS_BSD) + return !GetZygoteForLaunch(); ++#else ++ return true; ++#endif + } + + bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread( + PosixFileDescriptorInfo& files_to_register, + base::LaunchOptions* options) { + if (options) { ++#if !BUILDFLAG(IS_BSD) + DCHECK(!GetZygoteForLaunch()); ++#endif + // Convert FD mapping to FileHandleMappingVector + options->fds_to_remap = files_to_register.GetMappingWithIDAdjustment( + base::GlobalDescriptors::kBaseDescriptor); +@@ -69,6 +77,7 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLaunche + remapped_fd.first); + } + ++#if !BUILDFLAG(IS_BSD) + // (For Electron), if we're launching without zygote, that means we're + // launching an unsandboxed process (since all sandboxed processes are + // forked from the zygote). Relax the allow_new_privs option to permit +@@ -77,12 +86,15 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLaunche + delegate_->GetZygote() == nullptr) { + options->allow_new_privs = true; + } ++#endif + + options->current_directory = delegate_->GetCurrentDirectory(); + options->environment = delegate_->GetEnvironment(); + options->clear_environment = !delegate_->ShouldInheritEnvironment(); + } else { ++#if !BUILDFLAG(IS_BSD) + DCHECK(GetZygoteForLaunch()); ++#endif + // Environment variables could be supported in the future, but are not + // currently supported when launching with the zygote. + DCHECK(delegate_->GetEnvironment().empty()); +@@ -99,6 +111,7 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr + int* launch_result) { + *is_synchronous_launch = true; + Process process; ++#if !BUILDFLAG(IS_BSD) + ZygoteCommunication* zygote_handle = GetZygoteForLaunch(); + if (zygote_handle) { + // TODO(crbug.com/40448989): If chrome supported multiple zygotes they could +@@ -109,7 +122,6 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr + GetProcessType()); + *launch_result = LAUNCH_RESULT_SUCCESS; + +-#if !BUILDFLAG(IS_OPENBSD) + if (handle) { + // It could be a renderer process or an utility process. + int oom_score = content::kMiscOomScore; +@@ -118,15 +130,17 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr + oom_score = content::kLowestRendererOomScore; + ZygoteHostImpl::GetInstance()->AdjustRendererOOMScore(handle, oom_score); + } +-#endif + + process.process = base::Process(handle); + process.zygote = zygote_handle; + } else { ++#endif + process.process = base::LaunchProcess(*command_line(), *options); + *launch_result = process.process.IsValid() ? LAUNCH_RESULT_SUCCESS + : LAUNCH_RESULT_FAILURE; ++#if !BUILDFLAG(IS_BSD) + } ++#endif + + #if BUILDFLAG(IS_CHROMEOS) + process_id_ = process.process.Pid(); +@@ -150,10 +164,14 @@ ChildProcessTerminationInfo ChildProcessLauncherHelper + const ChildProcessLauncherHelper::Process& process, + bool known_dead) { + ChildProcessTerminationInfo info; ++#if !BUILDFLAG(IS_BSD) + if (process.zygote) { + info.status = process.zygote->GetTerminationStatus( + process.process.Handle(), known_dead, &info.exit_code); + } else if (known_dead) { ++#else ++ if (known_dead) { ++#endif + info.status = base::GetKnownDeadTerminationStatus(process.process.Handle(), + &info.exit_code); + } else { +@@ -179,13 +197,17 @@ void ChildProcessLauncherHelper::ForceNormalProcessTer + DCHECK(CurrentlyOnProcessLauncherTaskRunner()); + process.process.Terminate(RESULT_CODE_NORMAL_EXIT, false); + // On POSIX, we must additionally reap the child. ++#if !BUILDFLAG(IS_BSD) + if (process.zygote) { + // If the renderer was created via a zygote, we have to proxy the reaping + // through the zygote process. + process.zygote->EnsureProcessTerminated(process.process.Handle()); + } else { ++#endif + base::EnsureProcessTerminated(std::move(process.process)); ++#if !BUILDFLAG(IS_BSD) + } ++#endif + } + + void ChildProcessLauncherHelper::SetProcessPriorityOnLauncherThread( +@@ -198,11 +220,13 @@ void ChildProcessLauncherHelper::SetProcessPriorityOnL + } + } + ++#if !BUILDFLAG(IS_BSD) + ZygoteCommunication* ChildProcessLauncherHelper::GetZygoteForLaunch() { + return base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoZygote) + ? nullptr + : delegate_->GetZygote(); + } ++#endif + + base::File OpenFileToShare(const base::FilePath& path, + base::MemoryMappedFile::Region* region) { diff --git a/devel/electron36/files/patch-content_browser_child__thread__type__switcher__linux.cc b/devel/electron36/files/patch-content_browser_child__thread__type__switcher__linux.cc new file mode 100644 index 000000000000..4b8348517ecf --- /dev/null +++ b/devel/electron36/files/patch-content_browser_child__thread__type__switcher__linux.cc @@ -0,0 +1,29 @@ +--- content/browser/child_thread_type_switcher_linux.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/child_thread_type_switcher_linux.cc +@@ -20,6 +20,9 @@ void SetThreadTypeOnLauncherThread(base::ProcessId pee + base::ThreadType thread_type) { + DCHECK(CurrentlyOnProcessLauncherTaskRunner()); + ++#if BUILDFLAG(IS_BSD) ++ NOTIMPLEMENTED(); ++#else + bool ns_pid_supported = false; + pid_t peer_tid = + base::FindThreadID(peer_pid, ns_tid.raw(), &ns_pid_supported); +@@ -41,6 +44,7 @@ void SetThreadTypeOnLauncherThread(base::ProcessId pee + base::PlatformThread::SetThreadType(peer_pid, + base::PlatformThreadId(peer_tid), + thread_type, base::IsViaIPC(true)); ++#endif + } + + } // namespace +@@ -69,7 +73,7 @@ void ChildThreadTypeSwitcher::SetPid(base::ProcessId c + } + } + +-void ChildThreadTypeSwitcher::SetThreadType(int32_t ns_tid, ++void ChildThreadTypeSwitcher::SetThreadType(uint64_t ns_tid, + base::ThreadType thread_type) { + // This function is only used on platforms with 32-bit thread ids. + static_assert(sizeof(ns_tid) == sizeof(base::PlatformThreadId)); diff --git a/devel/electron36/files/patch-content_browser_child__thread__type__switcher__linux.h b/devel/electron36/files/patch-content_browser_child__thread__type__switcher__linux.h new file mode 100644 index 000000000000..61b8651695f3 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_child__thread__type__switcher__linux.h @@ -0,0 +1,11 @@ +--- content/browser/child_thread_type_switcher_linux.h.orig 2025-04-22 20:15:27 UTC ++++ content/browser/child_thread_type_switcher_linux.h +@@ -36,7 +36,7 @@ class ChildThreadTypeSwitcher : public mojom::ThreadTy + void SetPid(base::ProcessId child_pid); + + // mojom::ThreadTypeSwitcher: +- void SetThreadType(int32_t ns_tid, base::ThreadType thread_type) override; ++ void SetThreadType(uint64_t ns_tid, base::ThreadType thread_type) override; + + private: + base::ProcessId child_pid_ = base::kNullProcessHandle; diff --git a/devel/electron36/files/patch-content_browser_compositor_viz__process__transport__factory.cc b/devel/electron36/files/patch-content_browser_compositor_viz__process__transport__factory.cc new file mode 100644 index 000000000000..d449b5e613dd --- /dev/null +++ b/devel/electron36/files/patch-content_browser_compositor_viz__process__transport__factory.cc @@ -0,0 +1,11 @@ +--- content/browser/compositor/viz_process_transport_factory.cc.orig 2025-05-11 11:50:45 UTC ++++ content/browser/compositor/viz_process_transport_factory.cc +@@ -105,7 +105,7 @@ class HostDisplayClient : public viz::HostDisplayClien + HostDisplayClient& operator=(const HostDisplayClient&) = delete; + + // viz::HostDisplayClient: +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + void DidCompleteSwapWithNewSize(const gfx::Size& size) override { + compositor_->OnCompleteSwapWithNewSize(size); + } diff --git a/devel/electron36/files/patch-content_browser_devtools_devtools__frontend__host__impl.cc b/devel/electron36/files/patch-content_browser_devtools_devtools__frontend__host__impl.cc new file mode 100644 index 000000000000..ba7ceca2b0a4 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_devtools_devtools__frontend__host__impl.cc @@ -0,0 +1,38 @@ +--- content/browser/devtools/devtools_frontend_host_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/devtools/devtools_frontend_host_impl.cc +@@ -24,7 +24,7 @@ + #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" + #include "ui/base/webui/resource_path.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/crash/content/browser/error_reporting/javascript_error_report.h" // nogncheck + #include "components/crash/content/browser/error_reporting/js_error_report_processor.h" // nogncheck + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -36,7 +36,7 @@ const char kCompatibilityScriptSourceURL[] = + "\n//# " + "sourceURL=devtools://devtools/bundled/devtools_compatibility.js"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Remove the pieces of the URL we don't want to send back with the error + // reports. In particular, do not send query or fragments as those can have + // privacy-sensitive information in them. +@@ -106,7 +106,7 @@ DevToolsFrontendHostImpl::DevToolsFrontendHostImpl( + const HandleMessageCallback& handle_message_callback) + : web_contents_(WebContents::FromRenderFrameHost(frame_host)), + handle_message_callback_(handle_message_callback) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + Observe(web_contents_); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + mojo::AssociatedRemote<blink::mojom::DevToolsFrontend> frontend; +@@ -131,7 +131,7 @@ void DevToolsFrontendHostImpl::DispatchEmbedderMessage + handle_message_callback_.Run(std::move(message)); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void DevToolsFrontendHostImpl::OnDidAddMessageToConsole( + RenderFrameHost* source_frame, + blink::mojom::ConsoleMessageLevel log_level, diff --git a/devel/electron36/files/patch-content_browser_devtools_devtools__frontend__host__impl.h b/devel/electron36/files/patch-content_browser_devtools_devtools__frontend__host__impl.h new file mode 100644 index 000000000000..d256342eeb1f --- /dev/null +++ b/devel/electron36/files/patch-content_browser_devtools_devtools__frontend__host__impl.h @@ -0,0 +1,11 @@ +--- content/browser/devtools/devtools_frontend_host_impl.h.orig 2024-06-18 21:43:31 UTC ++++ content/browser/devtools/devtools_frontend_host_impl.h +@@ -34,7 +34,7 @@ class DevToolsFrontendHostImpl : public DevToolsFronte + + void BadMessageReceived() override; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void OnDidAddMessageToConsole( + RenderFrameHost* source_frame, + blink::mojom::ConsoleMessageLevel log_level, diff --git a/devel/electron36/files/patch-content_browser_devtools_protocol_system__info__handler.cc b/devel/electron36/files/patch-content_browser_devtools_protocol_system__info__handler.cc new file mode 100644 index 000000000000..bbe9325364bd --- /dev/null +++ b/devel/electron36/files/patch-content_browser_devtools_protocol_system__info__handler.cc @@ -0,0 +1,11 @@ +--- content/browser/devtools/protocol/system_info_handler.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/devtools/protocol/system_info_handler.cc +@@ -52,7 +52,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. +-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !defined(NDEBUG)) || \ ++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && !defined(NDEBUG)) || \ + BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_OZONE) + static constexpr int kGPUInfoWatchdogTimeoutMultiplierOS = 3; + #else diff --git a/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h b/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h new file mode 100644 index 000000000000..6aec1cd90bef --- /dev/null +++ b/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h @@ -0,0 +1,11 @@ +--- content/browser/file_system_access/file_path_watcher/file_path_watcher.h.orig 2025-03-24 20:50:14 UTC ++++ content/browser/file_system_access/file_path_watcher/file_path_watcher.h +@@ -126,7 +126,7 @@ class CONTENT_EXPORT FilePathWatcher { + Type type = Type::kNonRecursive; + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // The callback will return the full path to a changed file instead of + // the watched path supplied as |path| when Watch is called. + // So the full path can be different from the watched path when a folder is diff --git a/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc b/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc new file mode 100644 index 000000000000..3ccc96dda477 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc @@ -0,0 +1,63 @@ +--- content/browser/file_system_access/file_path_watcher/file_path_watcher_bsd.cc.orig 2025-04-06 11:54:15 UTC ++++ content/browser/file_system_access/file_path_watcher/file_path_watcher_bsd.cc +@@ -0,0 +1,60 @@ ++// 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. ++ ++#include "content/browser/file_system_access/file_path_watcher/file_path_watcher.h" ++ ++#include <memory> ++ ++#include "base/memory/ptr_util.h" ++#include "build/build_config.h" ++#include "content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h" ++ ++namespace content { ++ ++namespace { ++ ++class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { ++ public: ++ FilePathWatcherImpl() = default; ++ FilePathWatcherImpl(const FilePathWatcherImpl&) = delete; ++ FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete; ++ ~FilePathWatcherImpl() override = default; ++ ++ bool Watch(const base::FilePath& path, ++ Type type, ++ const FilePathWatcher::Callback& callback) override { ++ DCHECK(!impl_.get()); ++ if (type == Type::kRecursive) { ++ if (!FilePathWatcher::RecursiveWatchAvailable()) { ++ return false; ++ } ++ } else { ++ impl_ = std::make_unique<FilePathWatcherKQueue>(); ++ } ++ DCHECK(impl_.get()); ++ return impl_->Watch(path, type, callback); ++ } ++ ++ void Cancel() override { ++ if (impl_.get()) { ++ impl_->Cancel(); ++ } ++ set_cancelled(); ++ } ++ ++ private: ++ std::unique_ptr<PlatformDelegate> impl_; ++}; ++ ++} // namespace ++ ++FilePathWatcher::FilePathWatcher() ++ : FilePathWatcher(std::make_unique<FilePathWatcherImpl>()) {} ++ ++// static ++size_t FilePathWatcher::GetQuotaLimitImpl() { ++ return std::numeric_limits<size_t>::max(); ++} ++ ++} // namespace content diff --git a/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h b/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h new file mode 100644 index 000000000000..0b487eff3b59 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h @@ -0,0 +1,10 @@ +--- content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h.orig 2024-08-14 20:54:59 UTC ++++ content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h +@@ -5,6 +5,7 @@ + #ifndef CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_PATH_WATCHER_FILE_PATH_WATCHER_KQUEUE_H_ + #define CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_PATH_WATCHER_FILE_PATH_WATCHER_KQUEUE_H_ + ++#include <sys/time.h> + #include <sys/event.h> + + #include <memory> diff --git a/devel/electron36/files/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc b/devel/electron36/files/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc new file mode 100644 index 000000000000..8211cd5117bd --- /dev/null +++ b/devel/electron36/files/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc @@ -0,0 +1,11 @@ +--- content/browser/file_system_access/file_system_access_local_path_watcher.cc.orig 2025-01-27 17:37:37 UTC ++++ content/browser/file_system_access/file_system_access_local_path_watcher.cc +@@ -67,7 +67,7 @@ void FileSystemAccessLocalPathWatcher::Initialize( + .type = scope().IsRecursive() ? FilePathWatcher::Type::kRecursive + : FilePathWatcher::Type::kNonRecursive, + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || 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/devel/electron36/files/patch-content_browser_font__access_font__enumeration__data__source.cc b/devel/electron36/files/patch-content_browser_font__access_font__enumeration__data__source.cc new file mode 100644 index 000000000000..c97bace8497b --- /dev/null +++ b/devel/electron36/files/patch-content_browser_font__access_font__enumeration__data__source.cc @@ -0,0 +1,29 @@ +--- content/browser/font_access/font_enumeration_data_source.cc.orig 2023-11-29 21:40:01 UTC ++++ content/browser/font_access/font_enumeration_data_source.cc +@@ -16,7 +16,7 @@ + #include "content/browser/font_access/font_enumeration_data_source_win.h" + #elif BUILDFLAG(IS_APPLE) + #include "content/browser/font_access/font_enumeration_data_source_mac.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/browser/font_access/font_enumeration_data_source_linux.h" + #endif // BUILDFLAG(IS_WIN) + +@@ -61,7 +61,7 @@ std::unique_ptr<FontEnumerationDataSource> FontEnumera + return std::make_unique<FontEnumerationDataSourceWin>(); + #elif BUILDFLAG(IS_APPLE) + return std::make_unique<FontEnumerationDataSourceMac>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return std::make_unique<FontEnumerationDataSourceLinux>(); + #else + return std::make_unique<FontEnumerationDataSourceNull>(); +@@ -76,7 +76,7 @@ bool FontEnumerationDataSource::IsOsSupported() { + return true; + #elif BUILDFLAG(IS_APPLE) + return true; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron36/files/patch-content_browser_gpu_compositor__util.cc b/devel/electron36/files/patch-content_browser_gpu_compositor__util.cc new file mode 100644 index 000000000000..54622ea87118 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_gpu_compositor__util.cc @@ -0,0 +1,20 @@ +--- content/browser/gpu/compositor_util.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/gpu/compositor_util.cc +@@ -142,7 +142,7 @@ std::vector<GpuFeatureData> GetGpuFeatureData( + "video_decode", + SafeGetFeatureStatus( + gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + !base::FeatureList::IsEnabled(media::kAcceleratedVideoDecodeLinux) || + #endif // BUILDFLAG(IS_LINUX) + command_line.HasSwitch(switches::kDisableAcceleratedVideoDecode)), +@@ -154,7 +154,7 @@ std::vector<GpuFeatureData> GetGpuFeatureData( + "video_encode", + SafeGetFeatureStatus( + gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + !base::FeatureList::IsEnabled(media::kAcceleratedVideoEncodeLinux)), + #else + command_line.HasSwitch(switches::kDisableAcceleratedVideoEncode)), diff --git a/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl.cc b/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl.cc new file mode 100644 index 000000000000..bbcef1048262 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl.cc @@ -0,0 +1,11 @@ +--- content/browser/gpu/gpu_data_manager_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/gpu/gpu_data_manager_impl.cc +@@ -412,7 +412,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/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl.h b/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl.h new file mode 100644 index 000000000000..0614fe697e97 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl.h @@ -0,0 +1,11 @@ +--- content/browser/gpu/gpu_data_manager_impl.h.orig 2025-04-22 20:15:27 UTC ++++ content/browser/gpu/gpu_data_manager_impl.h +@@ -225,7 +225,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/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl__private.cc b/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl__private.cc new file mode 100644 index 000000000000..2ba6a34bb1b9 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl__private.cc @@ -0,0 +1,11 @@ +--- content/browser/gpu/gpu_data_manager_impl_private.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/gpu/gpu_data_manager_impl_private.cc +@@ -1692,7 +1692,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/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl__private.h b/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl__private.h new file mode 100644 index 000000000000..b93674892185 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_gpu_gpu__data__manager__impl__private.h @@ -0,0 +1,20 @@ +--- content/browser/gpu/gpu_data_manager_impl_private.h.orig 2025-04-22 20:15:27 UTC ++++ content/browser/gpu/gpu_data_manager_impl_private.h +@@ -149,7 +149,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) +@@ -313,7 +313,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/devel/electron36/files/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc b/devel/electron36/files/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc new file mode 100644 index 000000000000..9e6e83263851 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc @@ -0,0 +1,20 @@ +--- content/browser/gpu/gpu_memory_buffer_manager_singleton.cc.orig 2025-01-27 17:37:37 UTC ++++ content/browser/gpu/gpu_memory_buffer_manager_singleton.cc +@@ -46,7 +46,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; +@@ -111,7 +111,7 @@ void GpuMemoryBufferManagerSingleton::OnGpuExtraInfoUp + } + + void GpuMemoryBufferManagerSingleton::OnGpuExtraInfoUpdate() { +-#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/devel/electron36/files/patch-content_browser_gpu_gpu__process__host.cc b/devel/electron36/files/patch-content_browser_gpu_gpu__process__host.cc new file mode 100644 index 000000000000..e37119b801ad --- /dev/null +++ b/devel/electron36/files/patch-content_browser_gpu_gpu__process__host.cc @@ -0,0 +1,19 @@ +--- content/browser/gpu/gpu_process_host.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/gpu/gpu_process_host.cc +@@ -275,6 +275,7 @@ static const char* const kSwitchNames[] = { + switches::kDisableSkiaGraphite, + switches::kDisableSkiaGraphitePrecompilation, + switches::kDisableLowEndDeviceMode, ++ switches::kDisableUnveil, + switches::kProfilingAtStart, + switches::kProfilingFile, + switches::kProfilingFlush, +@@ -304,7 +305,7 @@ static const char* const kSwitchNames[] = { + switches::kEnableNativeGpuMemoryBuffers, + switches::kRenderNodeOverride, + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + switches::kX11Display, + switches::kNoXshm, + #endif diff --git a/devel/electron36/files/patch-content_browser_media_frameless__media__interface__proxy.h b/devel/electron36/files/patch-content_browser_media_frameless__media__interface__proxy.h new file mode 100644 index 000000000000..337a82b3f9e3 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_media_frameless__media__interface__proxy.h @@ -0,0 +1,20 @@ +--- content/browser/media/frameless_media_interface_proxy.h.orig 2025-04-22 20:15:27 UTC ++++ content/browser/media/frameless_media_interface_proxy.h +@@ -19,7 +19,7 @@ + #include "mojo/public/cpp/bindings/receiver_set.h" + #include "mojo/public/cpp/bindings/remote.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "media/mojo/mojom/video_decoder.mojom.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -104,7 +104,7 @@ class FramelessMediaInterfaceProxy final + // Connections to the renderer. + mojo::ReceiverSet<media::mojom::InterfaceFactory> receivers_; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Connection to the InterfaceFactory that lives in a utility process. + // This is only used for out-of-process video decoding and only when the + // FramelessMediaInterfaceProxy is created without a RenderProcessHost diff --git a/devel/electron36/files/patch-content_browser_media_media__keys__listener__manager__impl.cc b/devel/electron36/files/patch-content_browser_media_media__keys__listener__manager__impl.cc new file mode 100644 index 000000000000..ba12187c04bf --- /dev/null +++ b/devel/electron36/files/patch-content_browser_media_media__keys__listener__manager__impl.cc @@ -0,0 +1,11 @@ +--- content/browser/media/media_keys_listener_manager_impl.cc.orig 2025-04-06 11:53:46 UTC ++++ content/browser/media/media_keys_listener_manager_impl.cc +@@ -336,7 +336,7 @@ void MediaKeysListenerManagerImpl::StartListeningForMe + return; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Create SystemMediaControls with the SingletonHwnd. + browser_system_media_controls_ = + system_media_controls::SystemMediaControls::Create( diff --git a/devel/electron36/files/patch-content_browser_network__service__instance__impl.cc b/devel/electron36/files/patch-content_browser_network__service__instance__impl.cc new file mode 100644 index 000000000000..4f08a4fbad91 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_network__service__instance__impl.cc @@ -0,0 +1,29 @@ +--- content/browser/network_service_instance_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/network_service_instance_impl.cc +@@ -83,7 +83,7 @@ + #include "content/browser/network/network_service_process_tracker_win.h" + #endif + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/browser/system_dns_resolution/system_dns_resolver.h" + #include "services/network/public/mojom/system_dns_resolution.mojom-forward.h" + #endif +@@ -341,7 +341,7 @@ void CreateInProcessNetworkService( + std::move(receiver))); + } + +-#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( +@@ -410,7 +410,7 @@ network::mojom::NetworkServiceParamsPtr CreateNetworkS + } + #endif // BUILDFLAG(IS_POSIX) + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (GetContentClient() + ->browser() + ->ShouldRunOutOfProcessSystemDnsResolution() && diff --git a/devel/electron36/files/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc b/devel/electron36/files/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc new file mode 100644 index 000000000000..db671fc88b41 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc @@ -0,0 +1,20 @@ +--- content/browser/ppapi_plugin_process_host_receiver_bindings.cc.orig 2022-02-28 16:54:41 UTC ++++ content/browser/ppapi_plugin_process_host_receiver_bindings.cc +@@ -8,7 +8,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck + #include "content/browser/font_service.h" // nogncheck + #endif +@@ -17,7 +17,7 @@ namespace content { + + void PpapiPluginProcessHost::BindHostReceiver( + mojo::GenericPendingReceiver receiver) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) + ConnectToFontService(std::move(font_receiver)); + #endif diff --git a/devel/electron36/files/patch-content_browser_renderer__host_delegated__frame__host.cc b/devel/electron36/files/patch-content_browser_renderer__host_delegated__frame__host.cc new file mode 100644 index 000000000000..a382f0824e45 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_delegated__frame__host.cc @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/delegated_frame_host.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/renderer_host/delegated_frame_host.cc +@@ -333,7 +333,7 @@ void DelegatedFrameHost::EmbedSurface( + + if (!primary_surface_id || + primary_surface_id->local_surface_id() != local_surface_id_) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Windows and Linux, we would like to produce new content as soon as + // possible or the OS will create an additional black gutter. Until we can + // block resize on surface synchronization on these platforms, we will not diff --git a/devel/electron36/files/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc b/devel/electron36/files/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc new file mode 100644 index 000000000000..ce7a03891f3e --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc @@ -0,0 +1,20 @@ +--- content/browser/renderer_host/media/service_video_capture_device_launcher.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/renderer_host/media/service_video_capture_device_launcher.cc +@@ -26,7 +26,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 + +@@ -183,7 +183,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/devel/electron36/files/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc b/devel/electron36/files/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc new file mode 100644 index 000000000000..d56613d57656 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc @@ -0,0 +1,20 @@ +--- content/browser/renderer_host/pepper/pepper_file_io_host.cc.orig 2024-02-21 00:20:45 UTC ++++ content/browser/renderer_host/pepper/pepper_file_io_host.cc +@@ -462,7 +462,7 @@ void PepperFileIOHost::OnLocalFileOpened( + ppapi::host::ReplyMessageContext reply_context, + const base::FilePath& path, + base::File::Error error_code) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Quarantining a file before its contents are available is only supported on + // Windows and Linux. + if (!FileOpenForWrite(open_flags_) || error_code != base::File::FILE_OK) { +@@ -496,7 +496,7 @@ void PepperFileIOHost::OnLocalFileOpened( + #endif + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void PepperFileIOHost::OnLocalFileQuarantined( + ppapi::host::ReplyMessageContext reply_context, + const base::FilePath& path, diff --git a/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl.cc b/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl.cc new file mode 100644 index 000000000000..554ef6a49568 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl.cc @@ -0,0 +1,55 @@ +--- content/browser/renderer_host/render_process_host_impl.cc.orig 2025-05-11 11:50:45 UTC ++++ content/browser/renderer_host/render_process_host_impl.cc +@@ -224,7 +224,7 @@ + #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <sys/resource.h> + + #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck +@@ -1122,7 +1122,7 @@ size_t GetPlatformProcessLimit() { + // to indicate failure and std::numeric_limits<size_t>::max() to indicate + // unlimited. + size_t GetPlatformProcessLimit() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + struct rlimit limit; + if (getrlimit(RLIMIT_NPROC, &limit) != 0) + return kUnknownPlatformProcessLimit; +@@ -1317,7 +1317,7 @@ void RenderProcessHostImpl::IOThreadHostImpl::SetPid( + + void RenderProcessHostImpl::IOThreadHostImpl::SetPid( + base::ProcessId child_pid) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + child_thread_type_switcher_.SetPid(child_pid); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + } +@@ -3414,7 +3414,7 @@ void RenderProcessHostImpl::AppendRendererCommandLine( + base::TimeTicks::UnixEpoch().since_origin().InMicroseconds())); + } + +-#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() && +@@ -3469,6 +3469,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLin + switches::kDisableSpeechAPI, + switches::kDisableThreadedCompositing, + switches::kDisableTouchDragDrop, ++ switches::kDisableUnveil, + switches::kDisableV8IdleTasks, + switches::kDisableVideoCaptureUseGpuMemoryBuffer, + switches::kDisableWebGLImageChromium, +@@ -5314,7 +5315,7 @@ uint64_t RenderProcessHostImpl::GetPrivateMemoryFootpr + // - Win: https://crbug.com/707022 . + uint64_t total_size = 0; + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + total_size = dump->platform_private_footprint->rss_anon_bytes + + dump->platform_private_footprint->vm_swap_bytes; + #elif BUILDFLAG(IS_APPLE) diff --git a/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl.h b/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl.h new file mode 100644 index 000000000000..acad0bc6b9f1 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl.h @@ -0,0 +1,29 @@ +--- content/browser/renderer_host/render_process_host_impl.h.orig 2025-04-22 20:15:27 UTC ++++ content/browser/renderer_host/render_process_host_impl.h +@@ -102,7 +102,7 @@ + #include "media/fuchsia_media_codec_provider_impl.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/browser/child_thread_type_switcher_linux.h" + #include "media/mojo/mojom/video_encode_accelerator.mojom.h" + #endif +@@ -986,7 +986,7 @@ class CONTENT_EXPORT RenderProcessHostImpl + std::unique_ptr<service_manager::BinderRegistry> binders_; + mojo::Receiver<mojom::ChildProcessHost> receiver_{this}; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::Remote<media::mojom::VideoEncodeAcceleratorProviderFactory> + video_encode_accelerator_factory_remote_; + ChildThreadTypeSwitcher child_thread_type_switcher_; +@@ -1235,7 +1235,7 @@ class CONTENT_EXPORT RenderProcessHostImpl + // if the request isn't handled on the IO thread. + void OnBindHostReceiver(mojo::GenericPendingReceiver receiver); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Provides /proc/{renderer pid}/status and statm files for the renderer, + // because the files are required to calculate the renderer's private + // footprint on Chromium Linux. Regarding MacOS X and Windows, we have diff --git a/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl__receiver__bindings.cc b/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl__receiver__bindings.cc new file mode 100644 index 000000000000..2ea2655998a4 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_render__process__host__impl__receiver__bindings.cc @@ -0,0 +1,20 @@ +--- content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc +@@ -52,7 +52,7 @@ + #include "third_party/blink/public/mojom/webdatabase/web_database.mojom.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck + #include "content/browser/font_service.h" // nogncheck + #include "content/browser/media/video_encode_accelerator_provider_launcher.h" +@@ -343,7 +343,7 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHost + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) { + ConnectToFontService(std::move(font_receiver)); + return; diff --git a/devel/electron36/files/patch-content_browser_renderer__host_render__view__host__impl.cc b/devel/electron36/files/patch-content_browser_renderer__host_render__view__host__impl.cc new file mode 100644 index 000000000000..05b046d7f414 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_render__view__host__impl.cc @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/render_view_host_impl.cc.orig 2025-04-06 11:53:45 UTC ++++ content/browser/renderer_host/render_view_host_impl.cc +@@ -275,7 +275,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) + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kSystemFontFamily)) { + prefs->system_font_family_name = diff --git a/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc b/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc new file mode 100644 index 000000000000..4b053e3da4cf --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc @@ -0,0 +1,47 @@ +--- content/browser/renderer_host/render_widget_host_view_aura.cc.orig 2025-05-11 11:50:45 UTC ++++ content/browser/renderer_host/render_widget_host_view_aura.cc +@@ -121,7 +121,7 @@ + #include "ui/gfx/gdi_util.h" + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/accessibility/platform/browser_accessibility_auralinux.h" + #include "ui/base/ime/linux/text_edit_command_auralinux.h" + #include "ui/base/ime/text_input_flags.h" +@@ -478,7 +478,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewAura::Ge + return ToBrowserAccessibilityWin(manager->GetBrowserAccessibilityRoot()) + ->GetCOM(); + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ui::BrowserAccessibilityManager* manager = + host()->GetOrCreateRootBrowserAccessibilityManager(); + if (manager && manager->GetBrowserAccessibilityRoot()) +@@ -1882,7 +1882,7 @@ bool RenderWidgetHostViewAura::ShouldDoLearning() { + return host() && host()->delegate() && host()->delegate()->ShouldDoLearning(); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool RenderWidgetHostViewAura::SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { +@@ -2858,7 +2858,7 @@ bool RenderWidgetHostViewAura::NeedsMouseCapture() { + } + + bool RenderWidgetHostViewAura::NeedsMouseCapture() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return NeedsInputGrab(); + #else + return false; +@@ -3042,7 +3042,7 @@ void RenderWidgetHostViewAura::ForwardKeyboardEventWit + if (!target_host) + return; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* linux_ui = ui::LinuxUi::instance(); + if (!event.skip_if_unhandled && linux_ui && event.os_event) { + const auto command = linux_ui->GetTextEditCommandForEvent( diff --git a/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__aura.h b/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__aura.h new file mode 100644 index 000000000000..b0f46770e945 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__aura.h @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/render_widget_host_view_aura.h.orig 2025-04-06 11:53:46 UTC ++++ content/browser/renderer_host/render_widget_host_view_aura.h +@@ -276,7 +276,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura + ukm::SourceId GetClientSourceForMetrics() const override; + bool ShouldDoLearning() override; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc b/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc new file mode 100644 index 000000000000..4da13bff0281 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig 2024-08-14 20:54:59 UTC ++++ content/browser/renderer_host/render_widget_host_view_event_handler.cc +@@ -602,7 +602,7 @@ bool RenderWidgetHostViewEventHandler::CanRendererHand + if (event->type() == ui::EventType::kMouseExited) { + if (mouse_locked || selection_popup) + return false; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Don't forward the mouse leave message which is received when the context + // menu is displayed by the page. This confuses the page and causes state + // changes. diff --git a/devel/electron36/files/patch-content_browser_sandbox__host__linux.cc b/devel/electron36/files/patch-content_browser_sandbox__host__linux.cc new file mode 100644 index 000000000000..d8ad72022d43 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_sandbox__host__linux.cc @@ -0,0 +1,18 @@ +--- content/browser/sandbox_host_linux.cc.orig 2023-10-19 19:58:22 UTC ++++ 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 !BUILDFLAG(IS_BSD) + int pipefds[2]; + CHECK(0 == pipe(pipefds)); + const int child_lifeline_fd = pipefds[0]; +@@ -55,6 +56,7 @@ void SandboxHostLinux::Init() { + ipc_thread_ = std::make_unique<base::DelegateSimpleThread>( + ipc_handler_.get(), "sandbox_ipc_thread"); + ipc_thread_->Start(); ++#endif + } + + } // namespace content diff --git a/devel/electron36/files/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc b/devel/electron36/files/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc new file mode 100644 index 000000000000..e7f44c2a30bc --- /dev/null +++ b/devel/electron36/files/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc @@ -0,0 +1,11 @@ +--- content/browser/scheduler/responsiveness/jank_monitor_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/scheduler/responsiveness/jank_monitor_impl.cc +@@ -337,7 +337,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. +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE) + task_execution_metadata_.clear(); + #endif + return; diff --git a/devel/electron36/files/patch-content_browser_scheduler_responsiveness_native__event__observer.cc b/devel/electron36/files/patch-content_browser_scheduler_responsiveness_native__event__observer.cc new file mode 100644 index 000000000000..07a8c97d46c8 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_scheduler_responsiveness_native__event__observer.cc @@ -0,0 +1,20 @@ +--- content/browser/scheduler/responsiveness/native_event_observer.cc.orig 2022-02-28 16:54:41 UTC ++++ content/browser/scheduler/responsiveness/native_event_observer.cc +@@ -15,7 +15,7 @@ + + #include "ui/events/platform/platform_event_source.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/aura/env.h" + #include "ui/events/event.h" + #endif +@@ -39,7 +39,7 @@ NativeEventObserver::~NativeEventObserver() { + DeregisterObserver(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void NativeEventObserver::RegisterObserver() { + aura::Env::GetInstance()->AddWindowEventDispatcherObserver(this); + } diff --git a/devel/electron36/files/patch-content_browser_scheduler_responsiveness_native__event__observer.h b/devel/electron36/files/patch-content_browser_scheduler_responsiveness_native__event__observer.h new file mode 100644 index 000000000000..a051fea15045 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_scheduler_responsiveness_native__event__observer.h @@ -0,0 +1,47 @@ +--- content/browser/scheduler/responsiveness/native_event_observer.h.orig 2023-02-01 18:43:19 UTC ++++ content/browser/scheduler/responsiveness/native_event_observer.h +@@ -16,7 +16,7 @@ + #include "content/public/browser/native_event_processor_observer_mac.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/aura/window_event_dispatcher_observer.h" + #endif + +@@ -41,7 +41,7 @@ namespace responsiveness { + class CONTENT_EXPORT NativeEventObserver + #if BUILDFLAG(IS_MAC) + : public NativeEventProcessorObserver +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + : public aura::WindowEventDispatcherObserver + #elif BUILDFLAG(IS_WIN) + : public base::MessagePumpForUI::Observer +@@ -58,7 +58,7 @@ class CONTENT_EXPORT NativeEventObserver + NativeEventObserver(WillRunEventCallback will_run_event_callback, + DidRunEventCallback did_run_event_callback); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + NativeEventObserver(const NativeEventObserver&) = delete; + NativeEventObserver& operator=(const NativeEventObserver&) = delete; +@@ -74,7 +74,7 @@ class CONTENT_EXPORT NativeEventObserver + // Exposed for tests. + void WillRunNativeEvent(const void* opaque_identifier) override; + void DidRunNativeEvent(const void* opaque_identifier) override; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // aura::WindowEventDispatcherObserver overrides: + void OnWindowEventDispatcherStartedProcessing( + aura::WindowEventDispatcher* dispatcher, +@@ -91,7 +91,7 @@ class CONTENT_EXPORT NativeEventObserver + void RegisterObserver(); + void DeregisterObserver(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + struct EventInfo { + raw_ptr<const void> unique_id; + }; diff --git a/devel/electron36/files/patch-content_browser_service__host_utility__process__host.cc b/devel/electron36/files/patch-content_browser_service__host_utility__process__host.cc new file mode 100644 index 000000000000..ac2812fde280 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_service__host_utility__process__host.cc @@ -0,0 +1,38 @@ +--- content/browser/service_host/utility_process_host.cc.orig 2025-05-11 11:50:46 UTC ++++ content/browser/service_host/utility_process_host.cc +@@ -68,7 +68,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" +@@ -96,7 +96,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; +@@ -453,7 +453,7 @@ bool UtilityProcessHost::StartProcess() { + file_data_->files_to_preload.merge(GetV8SnapshotFilesToPreload(*cmd_line)); + #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) { +@@ -470,7 +470,7 @@ bool UtilityProcessHost::StartProcess() { + if (metrics_name_ == video_capture::mojom::VideoCaptureService::Name_) { + bool pass_gpu_buffer_flag = + switches::IsVideoCaptureUseGpuMemoryBufferEnabled(); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Check if NV12 GPU memory buffer supported at the same time. + pass_gpu_buffer_flag = + pass_gpu_buffer_flag && diff --git a/devel/electron36/files/patch-content_browser_service__host_utility__process__host__receiver__bindings.cc b/devel/electron36/files/patch-content_browser_service__host_utility__process__host__receiver__bindings.cc new file mode 100644 index 000000000000..27090ac357d7 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_service__host_utility__process__host__receiver__bindings.cc @@ -0,0 +1,20 @@ +--- content/browser/service_host/utility_process_host_receiver_bindings.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/service_host/utility_process_host_receiver_bindings.cc +@@ -10,7 +10,7 @@ + #include "content/public/common/content_client.h" + #include "media/media_buildflags.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck + #include "content/browser/font_service.h" // nogncheck + #endif +@@ -24,7 +24,7 @@ void UtilityProcessHost::BindHostReceiver( + + void UtilityProcessHost::BindHostReceiver( + mojo::GenericPendingReceiver receiver) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) { + ConnectToFontService(std::move(font_receiver)); + return; diff --git a/devel/electron36/files/patch-content_browser_service__host_utility__sandbox__delegate.cc b/devel/electron36/files/patch-content_browser_service__host_utility__sandbox__delegate.cc new file mode 100644 index 000000000000..69f6c99a54e6 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_service__host_utility__sandbox__delegate.cc @@ -0,0 +1,52 @@ +--- content/browser/service_host/utility_sandbox_delegate.cc.orig 2025-05-11 11:50:45 UTC ++++ content/browser/service_host/utility_sandbox_delegate.cc +@@ -79,7 +79,7 @@ UtilitySandboxedProcessLauncherDelegate:: + #if BUILDFLAG(IS_FUCHSIA) + sandbox_type_ == sandbox::mojom::Sandbox::kVideoCapture || + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoDecoding || + sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoEncoding || + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -92,14 +92,14 @@ UtilitySandboxedProcessLauncherDelegate:: + #endif // BUILDFLAG(ENABLE_CROS_LIBASSISTANT) + #endif // BUILDFLAG(IS_CHROMEOS) + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + sandbox_type_ == sandbox::mojom::Sandbox::kScreenAI || + sandbox_type_ == sandbox::mojom::Sandbox::kPrintBackend || + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + sandbox_type_ == sandbox::mojom::Sandbox::kVideoEffects || + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + sandbox_type_ == sandbox::mojom::Sandbox::kOnDeviceTranslation || + #endif + sandbox_type_ == sandbox::mojom::Sandbox::kAudio || +@@ -163,7 +163,7 @@ ZygoteCommunication* UtilitySandboxedProcessLauncherDe + // process upon startup. + if (sandbox_type_ == sandbox::mojom::Sandbox::kNetwork || + sandbox_type_ == sandbox::mojom::Sandbox::kOnDeviceModelExecution || +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoDecoding || + sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoEncoding || + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -177,11 +177,11 @@ ZygoteCommunication* UtilitySandboxedProcessLauncherDe + #endif // BUILDFLAG(IS_CHROMEOS) + sandbox_type_ == sandbox::mojom::Sandbox::kAudio || + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + sandbox_type_ == sandbox::mojom::Sandbox::kPrintBackend || + sandbox_type_ == sandbox::mojom::Sandbox::kScreenAI || + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + sandbox_type_ == sandbox::mojom::Sandbox::kVideoEffects || + sandbox_type_ == sandbox::mojom::Sandbox::kOnDeviceTranslation || + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-content_browser_v8__snapshot__files.cc b/devel/electron36/files/patch-content_browser_v8__snapshot__files.cc new file mode 100644 index 000000000000..c19f7b7e4aeb --- /dev/null +++ b/devel/electron36/files/patch-content_browser_v8__snapshot__files.cc @@ -0,0 +1,11 @@ +--- content/browser/v8_snapshot_files.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/v8_snapshot_files.cc +@@ -19,7 +19,7 @@ GetV8SnapshotFilesToPreload(base::CommandLine& process + std::map<std::string, std::variant<base::FilePath, base::ScopedFD>> + GetV8SnapshotFilesToPreload(base::CommandLine& process_command_line) { + std::map<std::string, std::variant<base::FilePath, base::ScopedFD>> files; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if BUILDFLAG(USE_V8_CONTEXT_SNAPSHOT) + files[kV8ContextSnapshotDataDescriptor] = base::FilePath( + FILE_PATH_LITERAL(BUILDFLAG(V8_CONTEXT_SNAPSHOT_FILENAME))); diff --git a/devel/electron36/files/patch-content_browser_web__contents_slow__web__preference__cache.cc b/devel/electron36/files/patch-content_browser_web__contents_slow__web__preference__cache.cc new file mode 100644 index 000000000000..bac64b152956 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_web__contents_slow__web__preference__cache.cc @@ -0,0 +1,29 @@ +--- content/browser/web_contents/slow_web_preference_cache.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/web_contents/slow_web_preference_cache.cc +@@ -17,7 +17,7 @@ + + #if BUILDFLAG(IS_WIN) + #include "ui/events/devices/input_device_observer_win.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/events/devices/device_data_manager.h" + #elif BUILDFLAG(IS_ANDROID) + #include "ui/base/device_form_factor.h" +@@ -57,7 +57,7 @@ SlowWebPreferenceCache::SlowWebPreferenceCache() { + + #if BUILDFLAG(IS_WIN) + ui::InputDeviceObserverWin::GetInstance()->AddObserver(this); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ui::DeviceDataManager::GetInstance()->AddObserver(this); + #elif BUILDFLAG(IS_ANDROID) + ui::InputDeviceObserverAndroid::GetInstance()->AddObserver(this); +@@ -69,7 +69,7 @@ SlowWebPreferenceCache::~SlowWebPreferenceCache() { + SlowWebPreferenceCache::~SlowWebPreferenceCache() { + #if BUILDFLAG(IS_WIN) + ui::InputDeviceObserverWin::GetInstance()->RemoveObserver(this); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ui::DeviceDataManager::GetInstance()->RemoveObserver(this); + #elif BUILDFLAG(IS_ANDROID) + ui::InputDeviceObserverAndroid::GetInstance()->RemoveObserver(this); diff --git a/devel/electron36/files/patch-content_browser_web__contents_web__contents__view__aura.cc b/devel/electron36/files/patch-content_browser_web__contents_web__contents__view__aura.cc new file mode 100644 index 000000000000..bb807515bb61 --- /dev/null +++ b/devel/electron36/files/patch-content_browser_web__contents_web__contents__view__aura.cc @@ -0,0 +1,29 @@ +--- content/browser/web_contents/web_contents_view_aura.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/web_contents/web_contents_view_aura.cc +@@ -173,7 +173,7 @@ class WebDragSourceAura : public content::WebContentsO + raw_ptr<aura::Window> window_; + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Fill out the OSExchangeData with a file contents, synthesizing a name if + // necessary. + void PrepareDragForFileContents(const DropData& drop_data, +@@ -258,7 +258,7 @@ void PrepareDragData(const DropData& drop_data, + if (!drop_data.download_metadata.empty()) + PrepareDragForDownload(drop_data, provider, web_contents); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // 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. +@@ -1327,7 +1327,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. +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // It is possible for the web-contents to be destroyed while it is being + // activated. Use a weak-ptr to track whether that happened or not. + // More in https://crbug.com/1040725 diff --git a/devel/electron36/files/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc b/devel/electron36/files/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc new file mode 100644 index 000000000000..57f9348907ac --- /dev/null +++ b/devel/electron36/files/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc @@ -0,0 +1,74 @@ +--- content/browser/web_contents/web_contents_view_aura_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ content/browser/web_contents/web_contents_view_aura_unittest.cc +@@ -40,7 +40,7 @@ + #include "ui/base/dragdrop/os_exchange_data_provider_win.h" + #endif + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + #include "ui/base/x/selection_utils.h" + #include "ui/base/x/x11_os_exchange_data_provider.h" + #include "ui/gfx/x/atom_cache.h" +@@ -96,7 +96,7 @@ class TestDragDropClient : public aura::client::DragDr + drag_drop_data_ = std::move(data); + return DragOperation::kCopy; + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void UpdateDragImage(const gfx::ImageSkia& image, + const gfx::Vector2d& offset) override {} + #endif +@@ -231,7 +231,7 @@ TEST_F(WebContentsViewAuraTest, WebContentsDestroyedDu + ui::EF_LEFT_MOUSE_BUTTON, 0); + ui::EventHandler* event_handler = GetView(); + event_handler->OnMouseEvent(&mouse_event); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The web-content is not activated during mouse-press on Linux. + // See comment in WebContentsViewAura::OnMouseEvent() for more details. + EXPECT_NE(web_contents(), nullptr); +@@ -297,7 +297,7 @@ TEST_F(WebContentsViewAuraTest, MAYBE_DragDropFiles) { + view->OnDragEntered(event); + ASSERT_NE(nullptr, view->current_drag_data_); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // By design, Linux implementations return an empty string if file data + // is also present. + EXPECT_TRUE(!view->current_drag_data_->text || +@@ -337,7 +337,7 @@ TEST_F(WebContentsViewAuraTest, MAYBE_DragDropFiles) { + + CheckDropData(view); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // By design, Linux implementations returns an empty string if file data + // is also present. + EXPECT_TRUE(!drop_complete_data_->drop_data.text || +@@ -395,7 +395,7 @@ TEST_F(WebContentsViewAuraTest, MAYBE_DragDropFilesOri + view->OnDragEntered(event); + ASSERT_NE(nullptr, view->current_drag_data_); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // By design, Linux implementations return an empty string if file data + // is also present. + EXPECT_TRUE(!view->current_drag_data_->text || +@@ -427,7 +427,7 @@ TEST_F(WebContentsViewAuraTest, MAYBE_DragDropFilesOri + + CheckDropData(view); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // By design, Linux implementations returns an empty string if file data is + // also present. + EXPECT_TRUE(!drop_complete_data_->drop_data.text || +@@ -458,7 +458,7 @@ TEST_F(WebContentsViewAuraTest, MAYBE_DragDropImageFro + + auto data = std::make_unique<ui::OSExchangeData>(); + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + // FileContents drag-drop in X relies on XDragDropClient::InitDrag() setting + // window property 'XdndDirectSave0' to filename. Since XDragDropClient is not + // created in this unittest, we will set this property manually to allow diff --git a/devel/electron36/files/patch-content_browser_webui_web__ui__main__frame__observer.cc b/devel/electron36/files/patch-content_browser_webui_web__ui__main__frame__observer.cc new file mode 100644 index 000000000000..3fd0ea0ba3af --- /dev/null +++ b/devel/electron36/files/patch-content_browser_webui_web__ui__main__frame__observer.cc @@ -0,0 +1,11 @@ +--- content/browser/webui/web_ui_main_frame_observer.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/webui/web_ui_main_frame_observer.cc +@@ -47,7 +47,7 @@ bool IsWebUIJavaScriptErrorReportingSupported() { + bool IsWebUIJavaScriptErrorReportingSupported() { + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + return false; +-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #else + return base::FeatureList::IsEnabled(features::kWebUIJSErrorReportingExtended); diff --git a/devel/electron36/files/patch-content_browser_zygote__host_zygote__host__impl__linux.cc b/devel/electron36/files/patch-content_browser_zygote__host_zygote__host__impl__linux.cc new file mode 100644 index 000000000000..2df14bb241bd --- /dev/null +++ b/devel/electron36/files/patch-content_browser_zygote__host_zygote__host__impl__linux.cc @@ -0,0 +1,81 @@ +--- content/browser/zygote_host/zygote_host_impl_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ content/browser/zygote_host/zygote_host_impl_linux.cc +@@ -23,8 +23,10 @@ + #include "build/build_config.h" + #include "content/common/zygote/zygote_commands_linux.h" + #include "content/common/zygote/zygote_communication_linux.h" ++#if !BUILDFLAG(IS_BSD) + #include "content/common/zygote/zygote_handle_impl_linux.h" + #include "content/public/common/zygote/zygote_handle.h" ++#endif + #include "sandbox/linux/services/credentials.h" + #include "sandbox/linux/services/namespace_sandbox.h" + #include "sandbox/linux/suid/client/setuid_sandbox_host.h" +@@ -42,6 +44,7 @@ namespace { + + namespace { + ++#if !BUILDFLAG(IS_BSD) + // 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, +@@ -64,6 +67,7 @@ bool ReceiveFixedMessage(int fd, + return false; + return true; + } ++#endif + + } // namespace + +@@ -73,9 +77,13 @@ ZygoteHostImpl::ZygoteHostImpl() + } + + ZygoteHostImpl::ZygoteHostImpl() ++#if !BUILDFLAG(IS_BSD) + : use_namespace_sandbox_(false), + use_suid_sandbox_(false), + use_suid_sandbox_for_adj_oom_score_(false), ++#else ++ : ++#endif + sandbox_binary_(), + zygote_pids_lock_(), + zygote_pids_() {} +@@ -88,6 +96,7 @@ void ZygoteHostImpl::Init(const base::CommandLine& com + } + + void ZygoteHostImpl::Init(const base::CommandLine& command_line) { ++#if !BUILDFLAG(IS_BSD) + if (command_line.HasSwitch(sandbox::policy::switches::kNoSandbox)) { + return; + } +@@ -142,6 +151,7 @@ void ZygoteHostImpl::Init(const base::CommandLine& com + "you can try using --" + << sandbox::policy::switches::kNoSandbox << "."; + } ++#endif + } + + void ZygoteHostImpl::AddZygotePid(pid_t pid) { +@@ -166,6 +176,7 @@ pid_t ZygoteHostImpl::LaunchZygote( + base::CommandLine* cmd_line, + base::ScopedFD* control_fd, + base::FileHandleMappingVector additional_remapped_fds) { ++#if !BUILDFLAG(IS_BSD) + int fds[2]; + CHECK_EQ(0, socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_CLOEXEC, 0, fds)); + CHECK(base::UnixDomainSocket::EnableReceiveProcessId(fds[0])); +@@ -234,9 +245,12 @@ pid_t ZygoteHostImpl::LaunchZygote( + + AddZygotePid(pid); + return pid; ++#else ++ return 0; ++#endif + } + +-#if !BUILDFLAG(IS_OPENBSD) ++#if !BUILDFLAG(IS_BSD) + void ZygoteHostImpl::AdjustRendererOOMScore(base::ProcessHandle pid, + int score) { + // 1) You can't change the oom_score_adj of a non-dumpable process diff --git a/devel/electron36/files/patch-content_browser_zygote__host_zygote__host__impl__linux.h b/devel/electron36/files/patch-content_browser_zygote__host_zygote__host__impl__linux.h new file mode 100644 index 000000000000..f15ee6a962ee --- /dev/null +++ b/devel/electron36/files/patch-content_browser_zygote__host_zygote__host__impl__linux.h @@ -0,0 +1,29 @@ +--- content/browser/zygote_host/zygote_host_impl_linux.h.orig 2025-03-24 20:50:14 UTC ++++ content/browser/zygote_host/zygote_host_impl_linux.h +@@ -46,12 +46,14 @@ class CONTENT_EXPORT ZygoteHostImpl : public ZygoteHos + base::ScopedFD* control_fd, + base::FileHandleMappingVector additional_remapped_fds); + ++#if !BUILDFLAG(IS_BSD) + void AdjustRendererOOMScore(base::ProcessHandle process_handle, + int score) override; + #if BUILDFLAG(IS_CHROMEOS) + void ReinitializeLogging(uint32_t logging_dest, + base::PlatformFile log_file_fd) override; + #endif // BUILDFLAG(IS_CHROMEOS) ++#endif + + bool HasZygote() { return !zygote_pids_.empty(); } + +@@ -66,9 +68,11 @@ class CONTENT_EXPORT ZygoteHostImpl : public ZygoteHos + + int renderer_sandbox_status_; + ++#if !BUILDFLAG(IS_BSD) + bool use_namespace_sandbox_; + bool use_suid_sandbox_; + bool use_suid_sandbox_for_adj_oom_score_; ++#endif + std::string sandbox_binary_; + + // This lock protects the |zygote_pids_| set. diff --git a/devel/electron36/files/patch-content_child_BUILD.gn b/devel/electron36/files/patch-content_child_BUILD.gn new file mode 100644 index 000000000000..966ccf74c9b4 --- /dev/null +++ b/devel/electron36/files/patch-content_child_BUILD.gn @@ -0,0 +1,16 @@ +--- content/child/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ content/child/BUILD.gn +@@ -135,6 +135,13 @@ target(link_target_type, "child") { + ] + } + ++ if (is_bsd) { ++ sources -= [ ++ "sandboxed_process_thread_type_handler.cc", ++ "sandboxed_process_thread_type_handler.h", ++ ] ++ } ++ + if (is_win) { + sources += [ + "child_process_sandbox_support_impl_win.cc", diff --git a/devel/electron36/files/patch-content_child_child__process.cc b/devel/electron36/files/patch-content_child_child__process.cc new file mode 100644 index 000000000000..2290292b2e94 --- /dev/null +++ b/devel/electron36/files/patch-content_child_child__process.cc @@ -0,0 +1,20 @@ +--- content/child/child_process.cc.orig 2025-04-22 20:15:27 UTC ++++ content/child/child_process.cc +@@ -31,7 +31,7 @@ + #include "content/common/android/cpu_time_metrics.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/sandboxed_process_thread_type_handler.h" + #endif + +@@ -177,7 +177,7 @@ void ChildProcess::set_main_thread(ChildThreadImpl* th + main_thread_.reset(thread); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void ChildProcess::SetIOThreadType(base::ThreadType thread_type) { + if (!io_thread_) { + return; diff --git a/devel/electron36/files/patch-content_child_child__process.h b/devel/electron36/files/patch-content_child_child__process.h new file mode 100644 index 000000000000..d102d83c24d0 --- /dev/null +++ b/devel/electron36/files/patch-content_child_child__process.h @@ -0,0 +1,11 @@ +--- content/child/child_process.h.orig 2024-08-14 20:54:59 UTC ++++ content/child/child_process.h +@@ -79,7 +79,7 @@ class CONTENT_EXPORT ChildProcess { + return io_thread_runner_.get(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Changes the thread type of the child process IO thread. + void SetIOThreadType(base::ThreadType thread_type); + #endif diff --git a/devel/electron36/files/patch-content_common_BUILD.gn b/devel/electron36/files/patch-content_common_BUILD.gn new file mode 100644 index 000000000000..d0a91a8a1d3e --- /dev/null +++ b/devel/electron36/files/patch-content_common_BUILD.gn @@ -0,0 +1,36 @@ +--- content/common/BUILD.gn.orig 2025-05-11 11:50:45 UTC ++++ content/common/BUILD.gn +@@ -383,19 +383,28 @@ source_set("common") { + } + + if (is_linux || is_chromeos) { +- sources += [ +- "gpu_pre_sandbox_hook_linux.cc", +- "gpu_pre_sandbox_hook_linux.h", +- ] ++ if (is_bsd) { ++ sources += [ ++ "gpu_pre_sandbox_hook_bsd.cc", ++ "gpu_pre_sandbox_hook_bsd.h", ++ ] ++ } else { ++ sources += [ ++ "gpu_pre_sandbox_hook_linux.cc", ++ "gpu_pre_sandbox_hook_linux.h", ++ ] ++ } + public_deps += [ "//sandbox/policy" ] + deps += [ + ":sandbox_support_linux", + "//media/gpu:buildflags", + "//sandbox/linux:sandbox_services", +- "//sandbox/linux:seccomp_bpf", + "//sandbox/policy:chromecast_sandbox_allowlist_buildflags", + "//third_party/fontconfig", + ] ++ if (use_seccomp_bpf) { ++ deps += [ "//sandbox/linux:seccomp_bpf" ] ++ } + if (use_v4l2_codec) { + deps += [ "//media/gpu/v4l2" ] + } diff --git a/devel/electron36/files/patch-content_common_features.cc b/devel/electron36/files/patch-content_common_features.cc new file mode 100644 index 000000000000..9cf310a6c52c --- /dev/null +++ b/devel/electron36/files/patch-content_common_features.cc @@ -0,0 +1,11 @@ +--- content/common/features.cc.orig 2025-05-11 11:50:46 UTC ++++ content/common/features.cc +@@ -124,7 +124,7 @@ BASE_FEATURE(kEmbeddingRequiresOptIn, + base::FEATURE_DISABLED_BY_DEFAULT); + + // Enables error reporting for JS errors inside DevTools frontend host +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kEnableDevToolsJsErrorReporting, + "EnableDevToolsJsErrorReporting", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-content_common_features.h b/devel/electron36/files/patch-content_common_features.h new file mode 100644 index 000000000000..688a2a418424 --- /dev/null +++ b/devel/electron36/files/patch-content_common_features.h @@ -0,0 +1,11 @@ +--- content/common/features.h.orig 2025-05-11 11:50:46 UTC ++++ content/common/features.h +@@ -27,7 +27,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kDocumentPolicyNeg + CONTENT_EXPORT BASE_DECLARE_FEATURE(kCommittedOriginTracking); + CONTENT_EXPORT BASE_DECLARE_FEATURE(kCriticalClientHint); + CONTENT_EXPORT BASE_DECLARE_FEATURE(kDocumentPolicyNegotiation); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + CONTENT_EXPORT BASE_DECLARE_FEATURE(kEnableDevToolsJsErrorReporting); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + CONTENT_EXPORT BASE_DECLARE_FEATURE(kEmbeddingRequiresOptIn); diff --git a/devel/electron36/files/patch-content_common_font__list__unittest.cc b/devel/electron36/files/patch-content_common_font__list__unittest.cc new file mode 100644 index 000000000000..174ea1144110 --- /dev/null +++ b/devel/electron36/files/patch-content_common_font__list__unittest.cc @@ -0,0 +1,11 @@ +--- content/common/font_list_unittest.cc.orig 2024-06-18 21:43:32 UTC ++++ content/common/font_list_unittest.cc +@@ -48,7 +48,7 @@ TEST(FontList, GetFontList) { + EXPECT_TRUE(HasFontWithName(fonts, "MS Gothic", "MS Gothic")); + EXPECT_TRUE(HasFontWithName(fonts, "Segoe UI", "Segoe UI")); + EXPECT_TRUE(HasFontWithName(fonts, "Verdana", "Verdana")); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + EXPECT_TRUE(HasFontWithName(fonts, "Arimo", "Arimo")); + #else + EXPECT_TRUE(HasFontWithName(fonts, "Arial", "Arial")); diff --git a/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__bsd.cc b/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__bsd.cc new file mode 100644 index 000000000000..f2d60daa4a29 --- /dev/null +++ b/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__bsd.cc @@ -0,0 +1,71 @@ +--- content/common/gpu_pre_sandbox_hook_bsd.cc.orig 2024-04-28 08:50:26 UTC ++++ content/common/gpu_pre_sandbox_hook_bsd.cc +@@ -0,0 +1,68 @@ ++// 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/common/gpu_pre_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/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 GpuPreSandboxHook(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/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__bsd.h b/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__bsd.h new file mode 100644 index 000000000000..52612d85e7a1 --- /dev/null +++ b/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__bsd.h @@ -0,0 +1,23 @@ +--- content/common/gpu_pre_sandbox_hook_bsd.h.orig 2024-02-27 21:36:23 UTC ++++ content/common/gpu_pre_sandbox_hook_bsd.h +@@ -0,0 +1,20 @@ ++// Copyright 2017 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_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_ ++#define CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_ ++ ++#include "base/component_export.h" ++#include "sandbox/policy/sandbox.h" ++ ++namespace content { ++ ++// A pre-sandbox hook to use on Linux-based systems in sandboxed processes that ++// require general GPU usage. ++COMPONENT_EXPORT(GPU_PRE_SANDBOX_HOOK) ++bool GpuPreSandboxHook(sandbox::policy::SandboxLinux::Options options); ++ ++} // namespace content ++ ++#endif // CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_ diff --git a/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__linux.h b/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__linux.h new file mode 100644 index 000000000000..726f22ba754e --- /dev/null +++ b/devel/electron36/files/patch-content_common_gpu__pre__sandbox__hook__linux.h @@ -0,0 +1,16 @@ +--- content/common/gpu_pre_sandbox_hook_linux.h.orig 2024-04-15 20:33:57 UTC ++++ content/common/gpu_pre_sandbox_hook_linux.h +@@ -5,8 +5,13 @@ + #ifndef CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_LINUX_H_ + #define CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_LINUX_H_ + ++#include "build/build_config.h" + #include "base/component_export.h" ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace content { + diff --git a/devel/electron36/files/patch-content_common_thread__type__switcher.mojom b/devel/electron36/files/patch-content_common_thread__type__switcher.mojom new file mode 100644 index 000000000000..4b64803e0983 --- /dev/null +++ b/devel/electron36/files/patch-content_common_thread__type__switcher.mojom @@ -0,0 +1,10 @@ +--- content/common/thread_type_switcher.mojom.orig 2025-04-22 20:15:27 UTC ++++ content/common/thread_type_switcher.mojom +@@ -10,6 +10,6 @@ interface ThreadTypeSwitcher { + // occur in a child process due to its sandbox, e.g. on Linux and ChromeOS. + interface ThreadTypeSwitcher { + // Asks the browser to change the type of thread. +- SetThreadType(int32 platform_thread_id, ++ SetThreadType(uint64 platform_thread_id, + mojo_base.mojom.ThreadType thread_type); + }; diff --git a/devel/electron36/files/patch-content_gpu_gpu__child__thread.cc b/devel/electron36/files/patch-content_gpu_gpu__child__thread.cc new file mode 100644 index 000000000000..7c1364635b53 --- /dev/null +++ b/devel/electron36/files/patch-content_gpu_gpu__child__thread.cc @@ -0,0 +1,21 @@ +--- content/gpu/gpu_child_thread.cc.orig 2025-03-24 20:50:14 UTC ++++ content/gpu/gpu_child_thread.cc +@@ -57,7 +57,7 @@ + #include "third_party/skia/include/ports/SkFontConfigInterface.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/sandboxed_process_thread_type_handler.h" + #endif + +@@ -147,7 +147,8 @@ void GpuChildThread::Init(const base::TimeTicks& proce + + viz_main_.gpu_service()->set_start_time(process_start_time); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++// XXX BSD ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) + SandboxedProcessThreadTypeHandler::NotifyMainChildThreadCreated(); + #endif + diff --git a/devel/electron36/files/patch-content_gpu_gpu__main.cc b/devel/electron36/files/patch-content_gpu_gpu__main.cc new file mode 100644 index 000000000000..7c8a4bc8e072 --- /dev/null +++ b/devel/electron36/files/patch-content_gpu_gpu__main.cc @@ -0,0 +1,73 @@ +--- content/gpu/gpu_main.cc.orig 2025-05-11 11:50:45 UTC ++++ content/gpu/gpu_main.cc +@@ -95,10 +95,14 @@ + #include "sandbox/win/src/sandbox.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/sandboxed_process_thread_type_handler.h" + #include "content/common/gpu_pre_sandbox_hook_linux.h" ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + #include "sandbox/policy/sandbox_type.h" + #endif + +@@ -117,7 +121,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool StartSandboxLinux(gpu::GpuWatchdogThread*, + const gpu::GPUInfo*, + const gpu::GpuPreferences&); +@@ -177,7 +181,7 @@ class ContentSandboxHelper : public gpu::GpuSandboxHel + const gpu::GPUInfo* gpu_info, + const gpu::GpuPreferences& gpu_prefs) override { + GPU_STARTUP_TRACE_EVENT("gpu_main::EnsureSandboxInitialized"); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return StartSandboxLinux(watchdog_thread, gpu_info, gpu_prefs); + #elif BUILDFLAG(IS_WIN) + return StartSandboxWindows(sandbox_info_); +@@ -307,7 +311,7 @@ int GpuMain(MainFunctionParams parameters) { + std::make_unique<base::SingleThreadTaskExecutor>( + gpu_preferences.message_pump_type); + } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #error "Unsupported Linux platform." + #elif BUILDFLAG(IS_MAC) + // Cross-process CoreAnimation requires a CFRunLoop to function at all, and +@@ -333,7 +337,8 @@ int GpuMain(MainFunctionParams parameters) { + base::PlatformThread::SetName("CrGpuMain"); + mojo::InterfaceEndpointClient::SetThreadNameSuffixForMetrics("GpuMain"); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++// XXX BSD ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) + // Thread type delegate of the process should be registered before + // thread type change below for the main thread and for thread pool in + // ChildProcess constructor. +@@ -465,7 +470,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdog_thread, + const gpu::GPUInfo* gpu_info, + const gpu::GpuPreferences& gpu_prefs) { +@@ -505,7 +510,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. + // See https://crbug.com/1417237 diff --git a/devel/electron36/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc b/devel/electron36/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc new file mode 100644 index 000000000000..6f77b824ee91 --- /dev/null +++ b/devel/electron36/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc @@ -0,0 +1,29 @@ +--- content/ppapi_plugin/ppapi_blink_platform_impl.cc.orig 2024-02-21 00:20:45 UTC ++++ content/ppapi_plugin/ppapi_blink_platform_impl.cc +@@ -21,7 +21,7 @@ + + #if BUILDFLAG(IS_MAC) + #include "content/child/child_process_sandbox_support_impl_mac.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/child_process_sandbox_support_impl_linux.h" + #include "mojo/public/cpp/bindings/pending_remote.h" + #endif +@@ -36,7 +36,7 @@ PpapiBlinkPlatformImpl::PpapiBlinkPlatformImpl() { + namespace content { + + PpapiBlinkPlatformImpl::PpapiBlinkPlatformImpl() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::PendingRemote<font_service::mojom::FontService> font_service; + ChildThread::Get()->BindHostReceiver( + font_service.InitWithNewPipeAndPassReceiver()); +@@ -55,7 +55,7 @@ blink::WebSandboxSupport* PpapiBlinkPlatformImpl::GetS + void PpapiBlinkPlatformImpl::Shutdown() {} + + blink::WebSandboxSupport* PpapiBlinkPlatformImpl::GetSandboxSupport() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return sandbox_support_.get(); + #else + return nullptr; diff --git a/devel/electron36/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h b/devel/electron36/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h new file mode 100644 index 000000000000..3f8bdf092f6d --- /dev/null +++ b/devel/electron36/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h @@ -0,0 +1,11 @@ +--- content/ppapi_plugin/ppapi_blink_platform_impl.h.orig 2024-08-14 20:54:59 UTC ++++ content/ppapi_plugin/ppapi_blink_platform_impl.h +@@ -36,7 +36,7 @@ class PpapiBlinkPlatformImpl : public BlinkPlatformImp + blink::WebString DefaultLocale() override; + + private: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + std::unique_ptr<blink::WebSandboxSupport> sandbox_support_; + #endif + }; diff --git a/devel/electron36/files/patch-content_ppapi__plugin_ppapi__plugin__main.cc b/devel/electron36/files/patch-content_ppapi__plugin_ppapi__plugin__main.cc new file mode 100644 index 000000000000..e585e16d97e9 --- /dev/null +++ b/devel/electron36/files/patch-content_ppapi__plugin_ppapi__plugin__main.cc @@ -0,0 +1,23 @@ +--- content/ppapi_plugin/ppapi_plugin_main.cc.orig 2025-03-24 20:50:14 UTC ++++ content/ppapi_plugin/ppapi_plugin_main.cc +@@ -52,6 +52,11 @@ + #include "gin/v8_initializer.h" + #endif + ++#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 +@@ -139,7 +144,7 @@ int PpapiPluginMain(MainFunctionParams parameters) { + gin::V8Initializer::LoadV8Snapshot(); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) + sandbox::policy::SandboxLinux::GetInstance()->InitializeSandbox( + sandbox::policy::SandboxTypeFromCommandLine(command_line), + sandbox::policy::SandboxLinux::PreSandboxHook(), diff --git a/devel/electron36/files/patch-content_public_browser_content__browser__client.cc b/devel/electron36/files/patch-content_public_browser_content__browser__client.cc new file mode 100644 index 000000000000..f3aacd8629be --- /dev/null +++ b/devel/electron36/files/patch-content_public_browser_content__browser__client.cc @@ -0,0 +1,11 @@ +--- content/public/browser/content_browser_client.cc.orig 2025-05-11 11:50:45 UTC ++++ content/public/browser/content_browser_client.cc +@@ -1397,7 +1397,7 @@ bool ContentBrowserClient::ShouldRunOutOfProcessSystem + // that can be adequately sandboxed. + // Currently Android's network service will not run out of process or sandboxed, + // so OutOfProcessSystemDnsResolution is not currently enabled on Android. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron36/files/patch-content_public_browser_zygote__host_zygote__host__linux.h b/devel/electron36/files/patch-content_public_browser_zygote__host_zygote__host__linux.h new file mode 100644 index 000000000000..075d3b1c4be2 --- /dev/null +++ b/devel/electron36/files/patch-content_public_browser_zygote__host_zygote__host__linux.h @@ -0,0 +1,16 @@ +--- content/public/browser/zygote_host/zygote_host_linux.h.orig 2025-03-24 20:50:14 UTC ++++ content/public/browser/zygote_host/zygote_host_linux.h +@@ -34,11 +34,13 @@ class ZygoteHost { + // after the first render has been forked. + virtual int GetRendererSandboxStatus() = 0; + ++#if !BUILDFLAG(IS_BSD) + // Adjust the OOM score of the given renderer's PID. The allowed + // range for the score is [0, 1000], where higher values are more + // likely to be killed by the OOM killer. + virtual void AdjustRendererOOMScore(base::ProcessHandle process_handle, + int score) = 0; ++#endif + + #if BUILDFLAG(IS_CHROMEOS) + // Reinitialize logging for the Zygote processes. Needed on ChromeOS, which diff --git a/devel/electron36/files/patch-content_public_common_content__features.cc b/devel/electron36/files/patch-content_public_common_content__features.cc new file mode 100644 index 000000000000..75c0bbe80d7a --- /dev/null +++ b/devel/electron36/files/patch-content_public_common_content__features.cc @@ -0,0 +1,35 @@ +--- content/public/common/content_features.cc.orig 2025-04-22 20:15:27 UTC ++++ content/public/common/content_features.cc +@@ -75,7 +75,7 @@ BASE_FEATURE(kAudioServiceOutOfProcess, + // Runs the audio service in a separate process. + BASE_FEATURE(kAudioServiceOutOfProcess, + "AudioServiceOutOfProcess", +-#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 +@@ -1271,9 +1271,9 @@ BASE_FEATURE(kWebAssemblyTrapHandler, + BASE_FEATURE(kWebAssemblyTrapHandler, + "WebAssemblyTrapHandler", + #if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC)) && \ ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)) && \ + defined(ARCH_CPU_X86_64)) || \ +- ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)) && \ ++ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)) && \ + defined(ARCH_CPU_ARM64)) + base::FEATURE_ENABLED_BY_DEFAULT + #else +@@ -1330,7 +1330,11 @@ BASE_FEATURE(kWebUIJSErrorReportingExtended, + + // Controls whether the WebUSB API is enabled: + // https://wicg.github.io/webusb ++#if BUILDFLAG(IS_BSD) ++BASE_FEATURE(kWebUsb, "WebUSB", base::FEATURE_DISABLED_BY_DEFAULT); ++#else + BASE_FEATURE(kWebUsb, "WebUSB", base::FEATURE_ENABLED_BY_DEFAULT); ++#endif + + // Controls whether the WebXR Device API is enabled. + BASE_FEATURE(kWebXr, "WebXR", base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-content_public_common_content__switches.cc b/devel/electron36/files/patch-content_public_common_content__switches.cc new file mode 100644 index 000000000000..7fe6e1d6a440 --- /dev/null +++ b/devel/electron36/files/patch-content_public_common_content__switches.cc @@ -0,0 +1,20 @@ +--- content/public/common/content_switches.cc.orig 2025-04-22 20:15:27 UTC ++++ content/public/common/content_switches.cc +@@ -339,6 +339,8 @@ const char kEnableLogging[] = "enable- + // builds. + const char kEnableLogging[] = "enable-logging"; + ++const char kDisableUnveil[] = "disable-unveil"; ++ + // 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. +@@ -946,7 +948,7 @@ const char kPreventResizingContentsForTesting[] = + "prevent-resizing-contents-for-testing"; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Allows sending text-to-speech requests to speech-dispatcher, a common + // Linux speech service. Because it's buggy, the user must explicitly + // enable it so that visiting a random webpage can't cause instability. diff --git a/devel/electron36/files/patch-content_public_common_content__switches.h b/devel/electron36/files/patch-content_public_common_content__switches.h new file mode 100644 index 000000000000..459960aa6703 --- /dev/null +++ b/devel/electron36/files/patch-content_public_common_content__switches.h @@ -0,0 +1,19 @@ +--- content/public/common/content_switches.h.orig 2025-04-22 20:15:27 UTC ++++ content/public/common/content_switches.h +@@ -107,6 +107,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[]; ++CONTENT_EXPORT extern const char kDisableUnveil[]; + CONTENT_EXPORT extern const char kEnableNetworkInformationDownlinkMax[]; + CONTENT_EXPORT extern const char kEnableCanvas2DLayers[]; + CONTENT_EXPORT extern const char kEnablePluginPlaceholderTesting[]; +@@ -258,7 +259,7 @@ CONTENT_EXPORT extern const char kPreventResizingConte + CONTENT_EXPORT extern const char kPreventResizingContentsForTesting[]; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + CONTENT_EXPORT extern const char kEnableSpeechDispatcher[]; + #endif + diff --git a/devel/electron36/files/patch-content_public_common_zygote_features.gni b/devel/electron36/files/patch-content_public_common_zygote_features.gni new file mode 100644 index 000000000000..0b01fb059dea --- /dev/null +++ b/devel/electron36/files/patch-content_public_common_zygote_features.gni @@ -0,0 +1,8 @@ +--- content/public/common/zygote/features.gni.orig 2023-03-30 00:33:51 UTC ++++ content/public/common/zygote/features.gni +@@ -2,4 +2,4 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + +-use_zygote = is_posix && !is_android && !is_apple ++use_zygote = is_posix && !is_android && !is_mac && !is_bsd diff --git a/devel/electron36/files/patch-content_renderer_render__thread__impl.cc b/devel/electron36/files/patch-content_renderer_render__thread__impl.cc new file mode 100644 index 000000000000..1ef28f9b4269 --- /dev/null +++ b/devel/electron36/files/patch-content_renderer_render__thread__impl.cc @@ -0,0 +1,38 @@ +--- content/renderer/render_thread_impl.cc.orig 2025-05-11 11:50:45 UTC ++++ content/renderer/render_thread_impl.cc +@@ -207,6 +207,8 @@ + + #if BUILDFLAG(IS_APPLE) + #include <malloc/malloc.h> ++#elif BUILDFLAG(IS_BSD) ++#include <stdlib.h> + #else + #include <malloc.h> + #endif +@@ -1069,7 +1071,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl: + kGpuStreamIdMedia, kGpuStreamPriorityMedia); + + const bool enable_video_decode_accelerator = +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FeatureList::IsEnabled(media::kAcceleratedVideoDecodeLinux) && + #endif // BUILDFLAG(IS_LINUX) + !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode) && +@@ -1078,7 +1080,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl: + gpu::kGpuFeatureStatusEnabled); + + const bool enable_video_encode_accelerator = +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FeatureList::IsEnabled(media::kAcceleratedVideoEncodeLinux) && + #else + !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoEncode) && +@@ -1870,7 +1872,7 @@ RenderThreadImpl::CreateMediaMojoCodecFactory( + bool enable_video_encode_accelerator) { + mojo::PendingRemote<media::mojom::VideoEncodeAcceleratorProvider> + vea_provider; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(media::kUseOutOfProcessVideoEncoding)) { + BindHostReceiver(vea_provider.InitWithNewPipeAndPassReceiver()); + } else { diff --git a/devel/electron36/files/patch-content_renderer_renderer__blink__platform__impl.cc b/devel/electron36/files/patch-content_renderer_renderer__blink__platform__impl.cc new file mode 100644 index 000000000000..bad556e0a5c0 --- /dev/null +++ b/devel/electron36/files/patch-content_renderer_renderer__blink__platform__impl.cc @@ -0,0 +1,45 @@ +--- content/renderer/renderer_blink_platform_impl.cc.orig 2025-05-11 11:50:45 UTC ++++ content/renderer/renderer_blink_platform_impl.cc +@@ -124,7 +124,7 @@ + + #if BUILDFLAG(IS_MAC) + #include "content/child/child_process_sandbox_support_impl_mac.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/child_process_sandbox_support_impl_linux.h" + #include "content/child/sandboxed_process_thread_type_handler.h" + #endif +@@ -192,13 +192,13 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( + is_locked_to_site_(false), + main_thread_scheduler_(main_thread_scheduler), + next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) { +-#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) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::PendingRemote<font_service::mojom::FontService> font_service; + RenderThreadImpl::current()->BindHostReceiver( + font_service.InitWithNewPipeAndPassReceiver()); +@@ -223,7 +223,7 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( + } + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (sandboxEnabled()) { + #if BUILDFLAG(IS_MAC) + sandbox_support_ = std::make_unique<WebSandboxSupportMac>(); +@@ -296,7 +296,7 @@ blink::WebSandboxSupport* RendererBlinkPlatformImpl::G + + blink::WebSandboxSupport* RendererBlinkPlatformImpl::GetSandboxSupport() { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return sandbox_support_.get(); + #else + // These platforms do not require sandbox support. diff --git a/devel/electron36/files/patch-content_renderer_renderer__blink__platform__impl.h b/devel/electron36/files/patch-content_renderer_renderer__blink__platform__impl.h new file mode 100644 index 000000000000..535c4ffeee9b --- /dev/null +++ b/devel/electron36/files/patch-content_renderer_renderer__blink__platform__impl.h @@ -0,0 +1,11 @@ +--- content/renderer/renderer_blink_platform_impl.h.orig 2025-05-11 11:50:45 UTC ++++ content/renderer/renderer_blink_platform_impl.h +@@ -270,7 +270,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : publi + const gpu::GPUInfo& gpu_info) const; + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + std::unique_ptr<blink::WebSandboxSupport> sandbox_support_; + #endif + diff --git a/devel/electron36/files/patch-content_renderer_renderer__main__platform__delegate__linux.cc b/devel/electron36/files/patch-content_renderer_renderer__main__platform__delegate__linux.cc new file mode 100644 index 000000000000..aad0a7035f0b --- /dev/null +++ b/devel/electron36/files/patch-content_renderer_renderer__main__platform__delegate__linux.cc @@ -0,0 +1,18 @@ +--- content/renderer/renderer_main_platform_delegate_linux.cc.orig 2023-10-19 19:58:22 UTC ++++ 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 !BUILDFLAG(IS_BSD) + auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance(); + if (linux_sandbox->GetStatus() & sandbox::policy::SandboxLinux::kSeccompBPF) { + CHECK(linux_sandbox->seccomp_bpf_started()); +@@ -65,6 +66,7 @@ bool RendererMainPlatformDelegate::EnableSandbox() { + CHECK_EQ(errno, EPERM); + } + #endif // __x86_64__ ++#endif + + return true; + } diff --git a/devel/electron36/files/patch-content_shell_BUILD.gn b/devel/electron36/files/patch-content_shell_BUILD.gn new file mode 100644 index 000000000000..2e9c29a83c5c --- /dev/null +++ b/devel/electron36/files/patch-content_shell_BUILD.gn @@ -0,0 +1,11 @@ +--- content/shell/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ content/shell/BUILD.gn +@@ -1099,7 +1099,7 @@ group("content_shell_crash_test") { + if (is_win) { + data_deps += [ "//build/win:copy_cdb_to_output" ] + } +- if (is_posix) { ++ if (is_posix && !is_bsd) { + data_deps += [ + "//third_party/breakpad:dump_syms", + "//third_party/breakpad:minidump_stackwalk", diff --git a/devel/electron36/files/patch-content_shell_app_shell__main__delegate.cc b/devel/electron36/files/patch-content_shell_app_shell__main__delegate.cc new file mode 100644 index 000000000000..581187427eda --- /dev/null +++ b/devel/electron36/files/patch-content_shell_app_shell__main__delegate.cc @@ -0,0 +1,11 @@ +--- content/shell/app/shell_main_delegate.cc.orig 2025-01-27 17:37:37 UTC ++++ content/shell/app/shell_main_delegate.cc +@@ -269,7 +269,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); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + crash_reporter::SetFirstChanceExceptionHandler( + v8::TryHandleWebAssemblyTrapPosix); + #endif diff --git a/devel/electron36/files/patch-content_shell_browser_shell__browser__main__parts.cc b/devel/electron36/files/patch-content_shell_browser_shell__browser__main__parts.cc new file mode 100644 index 000000000000..ccffc7c69db6 --- /dev/null +++ b/devel/electron36/files/patch-content_shell_browser_shell__browser__main__parts.cc @@ -0,0 +1,47 @@ +--- content/shell/browser/shell_browser_main_parts.cc.orig 2025-04-22 20:15:27 UTC ++++ content/shell/browser/shell_browser_main_parts.cc +@@ -50,7 +50,7 @@ + #include "net/base/network_change_notifier.h" + #endif + +-#if BUILDFLAG(IS_LINUX) && defined(USE_AURA) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(USE_AURA) + #include "ui/base/ime/init/input_method_initializer.h" + #endif + +@@ -61,7 +61,7 @@ + #include "device/bluetooth/floss/floss_features.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.h" + #include "ui/linux/linux_ui.h" // nogncheck + #include "ui/linux/linux_ui_factory.h" // nogncheck +@@ -128,7 +128,7 @@ int ShellBrowserMainParts::PreEarlyInitialization() { + } + + int ShellBrowserMainParts::PreEarlyInitialization() { +-#if BUILDFLAG(IS_LINUX) && defined(USE_AURA) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(USE_AURA) + ui::InitializeInputMethodForTesting(); + #elif BUILDFLAG(IS_ANDROID) + net::NetworkChangeNotifier::SetFactory( +@@ -156,7 +156,7 @@ void ShellBrowserMainParts::ToolkitInitialized() { + if (switches::IsRunWebTestsSwitchPresent()) + return; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ui::LinuxUi::SetInstance(ui::GetDefaultLinuxUi()); + #endif + } +@@ -203,7 +203,7 @@ void ShellBrowserMainParts::PostMainMessageLoopRun() { + ShellDevToolsManagerDelegate::StopHttpHandler(); + browser_context_.reset(); + off_the_record_browser_context_.reset(); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ui::LinuxUi::SetInstance(nullptr); + #endif + performance_manager_lifetime_.reset(); diff --git a/devel/electron36/files/patch-content_shell_browser_shell__paths.cc b/devel/electron36/files/patch-content_shell_browser_shell__paths.cc new file mode 100644 index 000000000000..c00a1c66a5a2 --- /dev/null +++ b/devel/electron36/files/patch-content_shell_browser_shell__paths.cc @@ -0,0 +1,20 @@ +--- content/shell/browser/shell_paths.cc.orig 2022-02-28 16:54:41 UTC ++++ content/shell/browser/shell_paths.cc +@@ -13,7 +13,7 @@ + + #if BUILDFLAG(IS_FUCHSIA) + #include "base/fuchsia/file_utils.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #endif + +@@ -25,7 +25,7 @@ bool GetDefaultUserDataDirectory(base::FilePath* resul + #if BUILDFLAG(IS_WIN) + CHECK(base::PathService::Get(base::DIR_LOCAL_APP_DATA, result)); + *result = result->Append(std::wstring(L"content_shell")); +-#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()); + base::FilePath config_dir(base::nix::GetXDGDirectory( + env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir)); diff --git a/devel/electron36/files/patch-content_shell_browser_shell__platform__delegate__views.cc b/devel/electron36/files/patch-content_shell_browser_shell__platform__delegate__views.cc new file mode 100644 index 000000000000..85bf876bbfc0 --- /dev/null +++ b/devel/electron36/files/patch-content_shell_browser_shell__platform__delegate__views.cc @@ -0,0 +1,11 @@ +--- content/shell/browser/shell_platform_delegate_views.cc.orig 2025-04-22 20:15:27 UTC ++++ content/shell/browser/shell_platform_delegate_views.cc +@@ -373,7 +373,7 @@ void ShellPlatformDelegate::CreatePlatformWindow( + views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET); + params.bounds = gfx::Rect(initial_size); + params.delegate = delegate.release(); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + params.wm_class_class = "chromium-content_shell"; + params.wm_class_name = params.wm_class_class; + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-content_shell_renderer_shell__content__renderer__client.cc b/devel/electron36/files/patch-content_shell_renderer_shell__content__renderer__client.cc new file mode 100644 index 000000000000..d42ae7777ebe --- /dev/null +++ b/devel/electron36/files/patch-content_shell_renderer_shell__content__renderer__client.cc @@ -0,0 +1,11 @@ +--- content/shell/renderer/shell_content_renderer_client.cc.orig 2025-03-24 20:50:14 UTC ++++ content/shell/renderer/shell_content_renderer_client.cc +@@ -55,7 +55,7 @@ + #include "media/base/media_switches.h" + #endif + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM64)) + #define ENABLE_WEB_ASSEMBLY_TRAP_HANDLER_LINUX + #include "base/debug/stack_trace.h" diff --git a/devel/electron36/files/patch-content_shell_utility_shell__content__utility__client.cc b/devel/electron36/files/patch-content_shell_utility_shell__content__utility__client.cc new file mode 100644 index 000000000000..c190b5718a1e --- /dev/null +++ b/devel/electron36/files/patch-content_shell_utility_shell__content__utility__client.cc @@ -0,0 +1,20 @@ +--- content/shell/utility/shell_content_utility_client.cc.orig 2025-03-24 20:50:14 UTC ++++ content/shell/utility/shell_content_utility_client.cc +@@ -43,7 +43,7 @@ + #include "sandbox/policy/sandbox.h" + #include "services/test/echo/echo_service.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/test/sandbox_status_service.h" + #endif + +@@ -192,7 +192,7 @@ void ShellContentUtilityClient::ExposeInterfacesToBrow + binders->Add<mojom::PowerMonitorTest>( + base::BindRepeating(&PowerMonitorTestImpl::MakeSelfOwnedReceiver), + base::SingleThreadTaskRunner::GetCurrentDefault()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (register_sandbox_status_helper_) { + binders->Add<content::mojom::SandboxStatusService>( + base::BindRepeating( diff --git a/devel/electron36/files/patch-content_utility_services.cc b/devel/electron36/files/patch-content_utility_services.cc new file mode 100644 index 000000000000..34230470df60 --- /dev/null +++ b/devel/electron36/files/patch-content_utility_services.cc @@ -0,0 +1,65 @@ +--- content/utility/services.cc.orig 2025-04-22 20:15:27 UTC ++++ content/utility/services.cc +@@ -73,7 +73,7 @@ extern sandbox::TargetServices* g_utility_target_servi + extern sandbox::TargetServices* g_utility_target_services; + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "media/mojo/services/mojo_video_encode_accelerator_provider_factory.h" + #include "sandbox/linux/services/libc_interceptor.h" + #include "sandbox/policy/mojom/sandbox.mojom.h" +@@ -101,7 +101,7 @@ extern sandbox::TargetServices* g_utility_target_servi + #endif // BUILDFLAG(IS_CHROMEOS) && (BUILDFLAG(USE_VAAPI) || + // BUILDFLAG(USE_V4L2_CODEC)) + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_CHROMEOS)) && \ + (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC)) + #include "content/common/features.h" + #include "media/mojo/services/oop_video_decoder_factory_process_service.h" // nogncheck +@@ -237,7 +237,7 @@ auto RunAudio(mojo::PendingReceiver<audio::mojom::Audi + << "task_policy_set TASK_QOS_POLICY"; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + auto* command_line = base::CommandLine::ForCurrentProcess(); + if (sandbox::policy::SandboxTypeFromCommandLine(*command_line) == + sandbox::mojom::Sandbox::kNoSandbox) { +@@ -381,7 +381,7 @@ auto RunOOPArcVideoAcceleratorFactoryService( + #endif // BUILDFLAG(IS_CHROMEOS) && \ + // (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC)) + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_CHROMEOS)) && \ + (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC)) + auto RunOOPVideoDecoderFactoryProcessService( + mojo::PendingReceiver<media::mojom::VideoDecoderFactoryProcess> receiver) { +@@ -391,7 +391,7 @@ auto RunOOPVideoDecoderFactoryProcessService( + #endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && + // (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC)) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + auto RunVideoEncodeAcceleratorProviderFactory( + mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProviderFactory> + receiver) { +@@ -414,7 +414,7 @@ void RegisterIOThreadServices(mojo::ServiceFactory& se + // loop of type IO that can get notified when pipes have data. + services.Add(RunNetworkService); + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_CHROMEOS)) && \ + (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC)) + services.Add(RunOOPVideoDecoderFactoryProcessService); + #endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && +@@ -467,7 +467,7 @@ void RegisterMainThreadServices(mojo::ServiceFactory& + #endif // BUILDFLAG(IS_CHROMEOS) && \ + // (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC)) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + services.Add(RunVideoEncodeAcceleratorProviderFactory); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + diff --git a/devel/electron36/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc b/devel/electron36/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc new file mode 100644 index 000000000000..92e07e8d0385 --- /dev/null +++ b/devel/electron36/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc @@ -0,0 +1,37 @@ +--- content/utility/speech/speech_recognition_sandbox_hook_linux.cc.orig 2024-04-15 20:33:58 UTC ++++ content/utility/speech/speech_recognition_sandbox_hook_linux.cc +@@ -12,11 +12,14 @@ + #include "sandbox/linux/syscall_broker/broker_command.h" + #include "sandbox/linux/syscall_broker/broker_file_permission.h" + ++#if !BUILDFLAG(IS_BSD) + using sandbox::syscall_broker::BrokerFilePermission; + using sandbox::syscall_broker::MakeBrokerCommandSet; ++#endif + + namespace speech { + ++#if !BUILDFLAG(IS_BSD) + namespace { + + // Gets the file permissions required by the Speech On-Device API (SODA). +@@ -50,9 +53,11 @@ std::vector<BrokerFilePermission> GetSodaFilePermissio + } + + } // namespace ++#endif + + bool SpeechRecognitionPreSandboxHook( + sandbox::policy::SandboxLinux::Options options) { ++#if !BUILDFLAG(IS_BSD) + #if BUILDFLAG(ENABLE_SODA_INTEGRATION_TESTS) + base::FilePath test_binary_path = GetSodaTestBinaryPath(); + DVLOG(0) << "SODA test binary path: " << test_binary_path.value().c_str(); +@@ -75,6 +80,7 @@ bool SpeechRecognitionPreSandboxHook( + }), + GetSodaFilePermissions(), options); + instance->EngageNamespaceSandboxIfPossible(); ++#endif + + return true; + } diff --git a/devel/electron36/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h b/devel/electron36/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h new file mode 100644 index 000000000000..cbeba4accc3e --- /dev/null +++ b/devel/electron36/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h @@ -0,0 +1,16 @@ +--- content/utility/speech/speech_recognition_sandbox_hook_linux.h.orig 2023-10-19 19:58:23 UTC ++++ content/utility/speech/speech_recognition_sandbox_hook_linux.h +@@ -5,7 +5,13 @@ + #ifndef CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_ + #define CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_ + ++#include "build/build_config.h" ++ ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace speech { + diff --git a/devel/electron36/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc b/devel/electron36/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc new file mode 100644 index 000000000000..77873739374e --- /dev/null +++ b/devel/electron36/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc @@ -0,0 +1,29 @@ +--- content/utility/utility_blink_platform_with_sandbox_support_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ content/utility/utility_blink_platform_with_sandbox_support_impl.cc +@@ -9,7 +9,7 @@ + + #if BUILDFLAG(IS_MAC) + #include "content/child/child_process_sandbox_support_impl_mac.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/child_process_sandbox_support_impl_linux.h" + #elif BUILDFLAG(IS_WIN) + #include "content/child/child_process_sandbox_support_impl_win.h" +@@ -19,7 +19,7 @@ UtilityBlinkPlatformWithSandboxSupportImpl:: + + UtilityBlinkPlatformWithSandboxSupportImpl:: + UtilityBlinkPlatformWithSandboxSupportImpl() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::PendingRemote<font_service::mojom::FontService> font_service; + UtilityThread::Get()->BindHostReceiver( + font_service.InitWithNewPipeAndPassReceiver()); +@@ -40,7 +40,7 @@ UtilityBlinkPlatformWithSandboxSupportImpl::GetSandbox + blink::WebSandboxSupport* + UtilityBlinkPlatformWithSandboxSupportImpl::GetSandboxSupport() { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return sandbox_support_.get(); + #else + return nullptr; diff --git a/devel/electron36/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h b/devel/electron36/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h new file mode 100644 index 000000000000..edd7aa903e79 --- /dev/null +++ b/devel/electron36/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h @@ -0,0 +1,11 @@ +--- content/utility/utility_blink_platform_with_sandbox_support_impl.h.orig 2025-03-24 20:50:14 UTC ++++ content/utility/utility_blink_platform_with_sandbox_support_impl.h +@@ -34,7 +34,7 @@ class UtilityBlinkPlatformWithSandboxSupportImpl : pub + + private: + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + std::unique_ptr<blink::WebSandboxSupport> sandbox_support_; + #endif + }; diff --git a/devel/electron36/files/patch-content_utility_utility__main.cc b/devel/electron36/files/patch-content_utility_utility__main.cc new file mode 100644 index 000000000000..935df77806a5 --- /dev/null +++ b/devel/electron36/files/patch-content_utility_utility__main.cc @@ -0,0 +1,122 @@ +--- content/utility/utility_main.cc.orig 2025-04-22 20:15:27 UTC ++++ content/utility/utility_main.cc +@@ -36,18 +36,22 @@ + #include "services/tracing/public/cpp/trace_startup.h" + #include "services/video_effects/public/cpp/buildflags.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" + #include "content/child/sandboxed_process_thread_type_handler.h" ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "content/common/gpu_pre_sandbox_hook_linux.h" ++#endif + #include "content/public/common/content_descriptor_keys.h" + #include "content/utility/speech/speech_recognition_sandbox_hook_linux.h" + #include "gpu/config/gpu_info_collector.h" + #include "media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h" + #include "media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h" ++#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" + #include "services/screen_ai/buildflags/buildflags.h" +@@ -66,7 +70,12 @@ + + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#include "content/common/gpu_pre_sandbox_hook_bsd.h" ++#endif ++ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "services/video_effects/video_effects_sandbox_hook_linux.h" // nogncheck + #endif // BUILDFLAG(IS_LINUX) + +@@ -101,7 +110,7 @@ sandbox::TargetServices* g_utility_target_services = n + sandbox::TargetServices* g_utility_target_services = nullptr; + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + #include "components/services/on_device_translation/sandbox_hook.h" + #endif // BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && BUILDFLAG(IS_LINUX) + +@@ -109,7 +118,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( +@@ -247,7 +256,8 @@ int UtilityMain(MainFunctionParams parameters) { + CHECK(on_device_model::OnDeviceModelService::PreSandboxInit()); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++// XXX BSD ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) + // Thread type delegate of the process should be registered before first + // thread type change in ChildProcess constructor. It also needs to be + // registered before the process has multiple threads, which may race with +@@ -255,7 +265,7 @@ int UtilityMain(MainFunctionParams parameters) { + SandboxedProcessThreadTypeHandler::Create(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Initializes the sandbox before any threads are created. + // TODO(jorgelo): move this after GTK initialization when we enable a strict + // Seccomp-BPF policy. +@@ -287,7 +297,7 @@ int UtilityMain(MainFunctionParams parameters) { + pre_sandbox_hook = + base::BindOnce(&speech::SpeechRecognitionPreSandboxHook); + break; +-#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + case sandbox::mojom::Sandbox::kOnDeviceTranslation: + pre_sandbox_hook = base::BindOnce( + &on_device_translation::OnDeviceTranslationSandboxHook); +@@ -303,13 +313,13 @@ int UtilityMain(MainFunctionParams parameters) { + #else + NOTREACHED(); + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case sandbox::mojom::Sandbox::kVideoEffects: + pre_sandbox_hook = + base::BindOnce(&video_effects::VideoEffectsPreSandboxHook); + break; + #endif // BUILDFLAG(IS_LINUX) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + case sandbox::mojom::Sandbox::kHardwareVideoDecoding: + pre_sandbox_hook = + base::BindOnce(&media::HardwareVideoDecodingPreSandboxHook); +@@ -336,6 +346,7 @@ int UtilityMain(MainFunctionParams parameters) { + default: + break; + } ++#if !BUILDFLAG(IS_BSD) + if (!sandbox::policy::IsUnsandboxedSandboxType(sandbox_type) && + (parameters.zygote_child || !pre_sandbox_hook.is_null())) { + sandbox_options.use_amd_specific_policies = +@@ -343,6 +354,11 @@ int UtilityMain(MainFunctionParams parameters) { + sandbox::policy::Sandbox::Initialize( + sandbox_type, std::move(pre_sandbox_hook), sandbox_options); + } ++#else ++ sandbox::policy::Sandbox::Initialize( ++ sandbox_type, std::move(pre_sandbox_hook), ++ sandbox::policy::SandboxLinux::Options()); ++#endif + + // Start the HangWatcher now that the sandbox is engaged, if it hasn't + // already been started. diff --git a/devel/electron36/files/patch-content_utility_utility__thread__impl.cc b/devel/electron36/files/patch-content_utility_utility__thread__impl.cc new file mode 100644 index 000000000000..8912b26856bf --- /dev/null +++ b/devel/electron36/files/patch-content_utility_utility__thread__impl.cc @@ -0,0 +1,21 @@ +--- content/utility/utility_thread_impl.cc.orig 2024-06-18 21:43:32 UTC ++++ content/utility/utility_thread_impl.cc +@@ -31,7 +31,7 @@ + #include "mojo/public/cpp/bindings/pending_receiver.h" + #include "mojo/public/cpp/bindings/service_factory.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/sandboxed_process_thread_type_handler.h" + #endif + +@@ -251,7 +251,8 @@ void UtilityThreadImpl::Init() { + + GetContentClient()->utility()->UtilityThreadStarted(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++// XXX BSD ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) + SandboxedProcessThreadTypeHandler::NotifyMainChildThreadCreated(); + #endif + diff --git a/devel/electron36/files/patch-content_zygote_BUILD.gn b/devel/electron36/files/patch-content_zygote_BUILD.gn new file mode 100644 index 000000000000..b9c3d8fe8cdc --- /dev/null +++ b/devel/electron36/files/patch-content_zygote_BUILD.gn @@ -0,0 +1,11 @@ +--- content/zygote/BUILD.gn.orig 2022-02-07 13:39:41 UTC ++++ content/zygote/BUILD.gn +@@ -5,7 +5,7 @@ + import("//build/config/nacl/config.gni") + import("//content/public/common/zygote/features.gni") + +-if (is_linux || is_chromeos) { ++if ((is_linux || is_chromeos) && !is_bsd) { + source_set("zygote") { + sources = [ + "zygote_linux.cc", diff --git a/devel/electron36/files/patch-content_zygote_zygote__linux.cc b/devel/electron36/files/patch-content_zygote_zygote__linux.cc new file mode 100644 index 000000000000..6b1710248f7f --- /dev/null +++ b/devel/electron36/files/patch-content_zygote_zygote__linux.cc @@ -0,0 +1,15 @@ +--- content/zygote/zygote_linux.cc.orig 2025-04-22 20:15:27 UTC ++++ content/zygote/zygote_linux.cc +@@ -1,6 +1,7 @@ + // Copyright 2012 The Chromium Authors + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. ++#if 0 + + #include "content/zygote/zygote_linux.h" + +@@ -705,3 +706,4 @@ void Zygote::HandleReinitializeLoggingRequest(base::Pi + } + + } // namespace content ++#endif diff --git a/devel/electron36/files/patch-content_zygote_zygote__main__linux.cc b/devel/electron36/files/patch-content_zygote_zygote__main__linux.cc new file mode 100644 index 000000000000..cd698a7423d4 --- /dev/null +++ b/devel/electron36/files/patch-content_zygote_zygote__main__linux.cc @@ -0,0 +1,58 @@ +--- content/zygote/zygote_main_linux.cc.orig 2023-10-19 19:58:23 UTC ++++ content/zygote/zygote_main_linux.cc +@@ -11,7 +11,9 @@ + #include <stddef.h> + #include <stdint.h> + #include <string.h> ++#if !BUILDFLAG(IS_BSD) + #include <sys/prctl.h> ++#endif + #include <sys/socket.h> + #include <sys/types.h> + #include <unistd.h> +@@ -41,7 +43,9 @@ + #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 !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,11 +54,13 @@ namespace content { + + namespace { + ++#if !BUILDFLAG(IS_BSD) + void CloseFds(const std::vector<int>& fds) { + for (const auto& it : fds) { + PCHECK(0 == IGNORE_EINTR(close(it))); + } + } ++#endif + + base::OnceClosure ClosureFromTwoClosures(base::OnceClosure one, + base::OnceClosure two) { +@@ -157,9 +163,11 @@ static void EnterLayerOneSandbox(sandbox::policy::Sand + CHECK(!using_layer1_sandbox); + } + } ++#endif + + bool ZygoteMain( + std::vector<std::unique_ptr<ZygoteForkDelegate>> fork_delegates) { ++#if !BUILDFLAG(IS_BSD) + sandbox::SetAmZygoteOrRenderer(true, GetSandboxFD()); + + auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance(); +@@ -224,6 +232,9 @@ bool ZygoteMain( + + // This function call can return multiple times, once per fork(). + return zygote.ProcessRequests(); ++#else ++ return false; ++#endif + } + + } // namespace content diff --git a/devel/electron36/files/patch-device_bluetooth_bluetooth__adapter.cc b/devel/electron36/files/patch-device_bluetooth_bluetooth__adapter.cc new file mode 100644 index 000000000000..a429ccd154fb --- /dev/null +++ b/devel/electron36/files/patch-device_bluetooth_bluetooth__adapter.cc @@ -0,0 +1,11 @@ +--- device/bluetooth/bluetooth_adapter.cc.orig 2024-04-15 20:33:58 UTC ++++ device/bluetooth/bluetooth_adapter.cc +@@ -32,7 +32,7 @@ BluetoothAdapter::ServiceOptions::~ServiceOptions() = + BluetoothAdapter::ServiceOptions::ServiceOptions() = default; + BluetoothAdapter::ServiceOptions::~ServiceOptions() = default; + +-#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() { diff --git a/devel/electron36/files/patch-device_bluetooth_cast__bluetooth.gni b/devel/electron36/files/patch-device_bluetooth_cast__bluetooth.gni new file mode 100644 index 000000000000..0fcfccc24b76 --- /dev/null +++ b/devel/electron36/files/patch-device_bluetooth_cast__bluetooth.gni @@ -0,0 +1,9 @@ +--- device/bluetooth/cast_bluetooth.gni.orig 2022-08-31 12:19:35 UTC ++++ device/bluetooth/cast_bluetooth.gni +@@ -2,5 +2,5 @@ import("//build/config/features.gni") + + declare_args() { + force_cast_bluetooth = false +- use_bluez = (is_linux && !is_castos && use_dbus) || is_chromeos ++ use_bluez = use_dbus && !is_bsd + } diff --git a/devel/electron36/files/patch-device_gamepad_BUILD.gn b/devel/electron36/files/patch-device_gamepad_BUILD.gn new file mode 100644 index 000000000000..63072549c29c --- /dev/null +++ b/devel/electron36/files/patch-device_gamepad_BUILD.gn @@ -0,0 +1,11 @@ +--- device/gamepad/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ device/gamepad/BUILD.gn +@@ -98,7 +98,7 @@ component("gamepad") { + "hid_writer_linux.cc", + "hid_writer_linux.h", + ] +- if (use_udev) { ++ if (use_udev && !is_bsd) { + sources += [ + "gamepad_device_linux.cc", + "gamepad_device_linux.h", diff --git a/devel/electron36/files/patch-device_gamepad_gamepad__provider.cc b/devel/electron36/files/patch-device_gamepad_gamepad__provider.cc new file mode 100644 index 000000000000..37336ba7af08 --- /dev/null +++ b/devel/electron36/files/patch-device_gamepad_gamepad__provider.cc @@ -0,0 +1,11 @@ +--- device/gamepad/gamepad_provider.cc.orig 2025-03-24 20:50:14 UTC ++++ device/gamepad/gamepad_provider.cc +@@ -159,7 +159,7 @@ void GamepadProvider::Initialize(std::unique_ptr<Gamep + + if (!polling_thread_) + polling_thread_ = std::make_unique<base::Thread>("Gamepad polling thread"); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, the data fetcher needs to watch file descriptors, so the message + // loop needs to be a libevent loop. + const base::MessagePumpType kMessageLoopType = base::MessagePumpType::IO; diff --git a/devel/electron36/files/patch-device_gamepad_hid__writer__linux.cc b/devel/electron36/files/patch-device_gamepad_hid__writer__linux.cc new file mode 100644 index 000000000000..439446240bac --- /dev/null +++ b/devel/electron36/files/patch-device_gamepad_hid__writer__linux.cc @@ -0,0 +1,11 @@ +--- device/gamepad/hid_writer_linux.cc.orig 2022-02-28 16:54:41 UTC ++++ device/gamepad/hid_writer_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 <unistd.h> ++ + #include "device/gamepad/hid_writer_linux.h" + + #include <unistd.h> diff --git a/devel/electron36/files/patch-electron_BUILD.gn b/devel/electron36/files/patch-electron_BUILD.gn new file mode 100644 index 000000000000..57aa76487d7f --- /dev/null +++ b/devel/electron36/files/patch-electron_BUILD.gn @@ -0,0 +1,60 @@ +--- electron/BUILD.gn.orig 2025-04-04 05:26:44 UTC ++++ electron/BUILD.gn +@@ -543,7 +543,7 @@ source_set("electron_lib") { + defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ] + } + +- if (!is_mas_build) { ++ if (!is_mas_build && !is_bsd) { + deps += [ + "//components/crash/core/app", + "//components/crash/core/browser", +@@ -636,6 +636,12 @@ source_set("electron_lib") { + cflags_objcc = [ "-fobjc-weak" ] + } + } ++ if (is_bsd) { ++ sources -= [ ++ "shell/common/crash_keys.cc", ++ "shell/common/crash_keys.h", ++ ] ++ } + if (is_linux) { + libs = [ "xshmfence" ] + deps += [ +@@ -1204,7 +1210,7 @@ if (is_mac) { + ":electron_lib", + ":electron_win32_resources", + ":packed_resources", +- "//components/crash/core/app", ++ # "//components/crash/core/app", + "//content:sandbox_helper_win", + "//electron/buildflags", + "//third_party/electron_node:libnode", +@@ -1231,7 +1237,7 @@ if (is_mac) { + public_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ] + } + +- if (is_linux) { ++ if (is_linux && !is_bsd) { + data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ] + } + +@@ -1298,7 +1304,7 @@ if (is_mac) { + configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] + } + +- if (is_linux) { ++ if (is_linux && !is_bsd) { + deps += [ "//sandbox/linux:chrome_sandbox" ] + } + } +@@ -1406,7 +1412,7 @@ dist_zip("electron_dist_zip") { + ":electron_version_file", + ":licenses", + ] +- if (is_linux) { ++ if (is_linux && !is_bsd) { + data_deps += [ "//sandbox/linux:chrome_sandbox" ] + } + deps = data_deps diff --git a/devel/electron36/files/patch-electron_build_args_all.gn b/devel/electron36/files/patch-electron_build_args_all.gn new file mode 100644 index 000000000000..4556cf435392 --- /dev/null +++ b/devel/electron36/files/patch-electron_build_args_all.gn @@ -0,0 +1,13 @@ +--- electron/build/args/all.gn.orig 2025-04-04 05:26:44 UTC ++++ electron/build/args/all.gn +@@ -14,8 +14,8 @@ enable_cdm_host_verification = false + v8_enable_javascript_promise_hooks = true + + enable_cdm_host_verification = false +-ffmpeg_branding = "Chrome" +-proprietary_codecs = true ++# ffmpeg_branding = "Chrome" ++# proprietary_codecs = true + + enable_printing = true + diff --git a/devel/electron36/files/patch-electron_default__app_default__app.ts b/devel/electron36/files/patch-electron_default__app_default__app.ts new file mode 100644 index 000000000000..8af59e14c83f --- /dev/null +++ b/devel/electron36/files/patch-electron_default__app_default__app.ts @@ -0,0 +1,11 @@ +--- electron/default_app/default_app.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/default_app/default_app.ts +@@ -61,7 +61,7 @@ async function createWindow (backgroundColor?: string) + show: false + }; + +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + options.icon = url.fileURLToPath(new URL('icon.png', import.meta.url)); + } + diff --git a/devel/electron36/files/patch-electron_filenames.gni b/devel/electron36/files/patch-electron_filenames.gni new file mode 100644 index 000000000000..b73edf71310a --- /dev/null +++ b/devel/electron36/files/patch-electron_filenames.gni @@ -0,0 +1,13 @@ +--- electron/filenames.gni.orig 2025-05-07 07:36:13 UTC ++++ electron/filenames.gni +@@ -239,8 +239,8 @@ filenames = { + "shell/app/command_line_args.h", + "shell/app/electron_content_client.cc", + "shell/app/electron_content_client.h", +- "shell/app/electron_crash_reporter_client.cc", +- "shell/app/electron_crash_reporter_client.h", ++ # "shell/app/electron_crash_reporter_client.cc", ++ # "shell/app/electron_crash_reporter_client.h", + "shell/app/electron_main_delegate.cc", + "shell/app/electron_main_delegate.h", + "shell/app/node_main.cc", diff --git a/devel/electron36/files/patch-electron_lib_browser_api_app.ts b/devel/electron36/files/patch-electron_lib_browser_api_app.ts new file mode 100644 index 000000000000..e10729ea752c --- /dev/null +++ b/devel/electron36/files/patch-electron_lib_browser_api_app.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/api/app.ts.orig 2024-02-21 16:26:48 UTC ++++ electron/lib/browser/api/app.ts +@@ -67,7 +67,7 @@ if (process.platform === 'darwin') { + app.dock!.getMenu = () => dockMenu; + } + +-if (process.platform === 'linux') { ++if (process.platform === 'linux' || process.platform === 'freebsd') { + const patternVmRSS = /^VmRSS:\s*(\d+) kB$/m; + const patternVmHWM = /^VmHWM:\s*(\d+) kB$/m; + diff --git a/devel/electron36/files/patch-electron_lib_browser_api_dialog.ts b/devel/electron36/files/patch-electron_lib_browser_api_dialog.ts new file mode 100644 index 000000000000..bf3d098a23e7 --- /dev/null +++ b/devel/electron36/files/patch-electron_lib_browser_api_dialog.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/api/dialog.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/lib/browser/api/dialog.ts +@@ -41,7 +41,7 @@ const normalizeAccessKey = (text: string) => { + // existing single underscores with a second underscore, replace double + // ampersands with a single ampersand, and replace a single ampersand with + // a single underscore +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + return text.replaceAll('_', '__').replaceAll(/&(.?)/g, (match, after) => { + if (after === '&') return after; + return `_${after}`; diff --git a/devel/electron36/files/patch-electron_lib_browser_api_menu-item-roles.ts b/devel/electron36/files/patch-electron_lib_browser_api_menu-item-roles.ts new file mode 100644 index 000000000000..e89259c7e505 --- /dev/null +++ b/devel/electron36/files/patch-electron_lib_browser_api_menu-item-roles.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/api/menu-item-roles.ts.orig 2022-05-18 15:31:32 UTC ++++ electron/lib/browser/api/menu-item-roles.ts +@@ -2,7 +2,7 @@ import { app, BrowserWindow, session, webContents, Web + + const isMac = process.platform === 'darwin'; + const isWindows = process.platform === 'win32'; +-const isLinux = process.platform === 'linux'; ++const isLinux = (process.platform === 'linux' || process.platform === 'freebsd'); + + type RoleId = 'about' | 'close' | 'copy' | 'cut' | 'delete' | 'forcereload' | 'front' | 'help' | 'hide' | 'hideothers' | 'minimize' | + 'paste' | 'pasteandmatchstyle' | 'quit' | 'redo' | 'reload' | 'resetzoom' | 'selectall' | 'services' | 'recentdocuments' | 'clearrecentdocuments' | diff --git a/devel/electron36/files/patch-electron_lib_browser_api_power-monitor.ts b/devel/electron36/files/patch-electron_lib_browser_api_power-monitor.ts new file mode 100644 index 000000000000..24713c283fe7 --- /dev/null +++ b/devel/electron36/files/patch-electron_lib_browser_api_power-monitor.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/api/power-monitor.ts.orig 2023-08-14 18:19:06 UTC ++++ electron/lib/browser/api/power-monitor.ts +@@ -17,7 +17,7 @@ class PowerMonitor extends EventEmitter { + const pm = createPowerMonitor(); + pm.emit = this.emit.bind(this); + +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + // On Linux, we inhibit shutdown in order to give the app a chance to + // decide whether or not it wants to prevent the shutdown. We don't + // inhibit the shutdown event unless there's a listener for it. This diff --git a/devel/electron36/files/patch-electron_lib_browser_init.ts b/devel/electron36/files/patch-electron_lib_browser_init.ts new file mode 100644 index 000000000000..ea64a2c6c8f1 --- /dev/null +++ b/devel/electron36/files/patch-electron_lib_browser_init.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/init.ts.orig 2025-04-04 05:26:44 UTC ++++ electron/lib/browser/init.ts +@@ -165,7 +165,7 @@ function currentPlatformSupportsAppIndicator () { + const KNOWN_XDG_DESKTOP_VALUES = new Set(['Pantheon', 'Unity:Unity7', 'pop:GNOME']); + + function currentPlatformSupportsAppIndicator () { +- if (process.platform !== 'linux') return false; ++ if (process.platform !== 'linux' && process.platform !== 'freebsd') return false; + const currentDesktop = process.env.XDG_CURRENT_DESKTOP; + + if (!currentDesktop) return false; diff --git a/devel/electron36/files/patch-electron_lib_browser_rpc-server.ts b/devel/electron36/files/patch-electron_lib_browser_rpc-server.ts new file mode 100644 index 000000000000..6673c9c2d542 --- /dev/null +++ b/devel/electron36/files/patch-electron_lib_browser_rpc-server.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/rpc-server.ts.orig 2025-04-04 05:26:44 UTC ++++ electron/lib/browser/rpc-server.ts +@@ -33,7 +33,7 @@ const allowedClipboardMethods = (() => { + switch (process.platform) { + case 'darwin': + return new Set(['readFindText', 'writeFindText']); +- case 'linux': ++ case 'linux': case 'freebsd': + return new Set(Object.keys(clipboard)); + default: + return new Set(); diff --git a/devel/electron36/files/patch-electron_lib_renderer_api_clipboard.ts b/devel/electron36/files/patch-electron_lib_renderer_api_clipboard.ts new file mode 100644 index 000000000000..5941a466e994 --- /dev/null +++ b/devel/electron36/files/patch-electron_lib_renderer_api_clipboard.ts @@ -0,0 +1,11 @@ +--- electron/lib/renderer/api/clipboard.ts.orig 2023-08-14 18:19:06 UTC ++++ electron/lib/renderer/api/clipboard.ts +@@ -7,7 +7,7 @@ const makeRemoteMethod = function (method: keyof Elect + return (...args: any[]) => ipcRendererUtils.invokeSync(IPC_MESSAGES.BROWSER_CLIPBOARD_SYNC, method, ...args); + }; + +-if (process.platform === 'linux') { ++if (process.platform === 'linux' || process.platform === 'freebsd') { + // On Linux we could not access clipboard in renderer process. + for (const method of Object.keys(clipboard) as (keyof Electron.Clipboard)[]) { + clipboard[method] = makeRemoteMethod(method); diff --git a/devel/electron36/files/patch-electron_script_lib_config.py b/devel/electron36/files/patch-electron_script_lib_config.py new file mode 100644 index 000000000000..4915ef347e14 --- /dev/null +++ b/devel/electron36/files/patch-electron_script_lib_config.py @@ -0,0 +1,12 @@ +--- electron/script/lib/config.py.orig 2024-05-29 09:41:07 UTC ++++ electron/script/lib/config.py +@@ -7,6 +7,9 @@ PLATFORM = { + 'cygwin': 'win32', + 'msys': 'win32', + 'darwin': 'darwin', ++ 'freebsd13': 'freebsd', ++ 'freebsd14': 'freebsd', ++ 'freebsd15': 'freebsd', + 'linux': 'linux', + 'linux2': 'linux', + 'win32': 'win32', diff --git a/devel/electron36/files/patch-electron_script_lib_utils.js b/devel/electron36/files/patch-electron_script_lib_utils.js new file mode 100644 index 000000000000..4012e5b08c1a --- /dev/null +++ b/devel/electron36/files/patch-electron_script_lib_utils.js @@ -0,0 +1,11 @@ +--- electron/script/lib/utils.js.orig 2024-10-09 13:53:06 UTC ++++ electron/script/lib/utils.js +@@ -19,7 +19,7 @@ function getElectronExec () { + return `out/${OUT_DIR}/Electron.app/Contents/MacOS/Electron`; + case 'win32': + return `out/${OUT_DIR}/electron.exe`; +- case 'linux': ++ case 'linux': case 'freebsd': + return `out/${OUT_DIR}/electron`; + default: + throw new Error('Unknown platform'); diff --git a/devel/electron36/files/patch-electron_script_spec-runner.js b/devel/electron36/files/patch-electron_script_spec-runner.js new file mode 100644 index 000000000000..48b303bb179e --- /dev/null +++ b/devel/electron36/files/patch-electron_script_spec-runner.js @@ -0,0 +1,11 @@ +--- electron/script/spec-runner.js.orig 2025-03-10 00:01:50 UTC ++++ electron/script/spec-runner.js +@@ -200,7 +200,7 @@ async function runTestUsingElectron (specDir, testName + exe = path.resolve(BASE, utils.getElectronExec()); + } + const runnerArgs = [`electron/${specDir}`, ...unknownArgs.slice(2)]; +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + runnerArgs.unshift(path.resolve(__dirname, 'dbus_mock.py'), exe); + exe = 'python3'; + } diff --git a/devel/electron36/files/patch-electron_shell_app_electron__crash__reporter__client.cc b/devel/electron36/files/patch-electron_shell_app_electron__crash__reporter__client.cc new file mode 100644 index 000000000000..24a1c061c5fd --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_app_electron__crash__reporter__client.cc @@ -0,0 +1,20 @@ +--- electron/shell/app/electron_crash_reporter_client.cc.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/app/electron_crash_reporter_client.cc +@@ -91,7 +91,7 @@ ElectronCrashReporterClient::~ElectronCrashReporterCli + + ElectronCrashReporterClient::~ElectronCrashReporterClient() = default; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void ElectronCrashReporterClient::SetCrashReporterClientIdFromGUID( + const std::string& client_guid) { + crash_keys::SetMetricsClientIdFromGUID(client_guid); +@@ -172,7 +172,7 @@ void ElectronCrashReporterClient::GetProcessSimpleAnno + (*annotations)["ver"] = ELECTRON_VERSION_STRING; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + bool ElectronCrashReporterClient::ShouldMonitorCrashHandlerExpensively() { + return false; + } diff --git a/devel/electron36/files/patch-electron_shell_app_electron__crash__reporter__client.h b/devel/electron36/files/patch-electron_shell_app_electron__crash__reporter__client.h new file mode 100644 index 000000000000..0fa9505d38bc --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_app_electron__crash__reporter__client.h @@ -0,0 +1,20 @@ +--- electron/shell/app/electron_crash_reporter_client.h.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/app/electron_crash_reporter_client.h +@@ -30,7 +30,7 @@ class ElectronCrashReporterClient : public crash_repor + const std::map<std::string, std::string>& annotations); + + // crash_reporter::CrashReporterClient implementation. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SetCrashReporterClientIdFromGUID( + const std::string& client_guid) override; + base::FilePath GetReporterLogFilename() override; +@@ -64,7 +64,7 @@ class ElectronCrashReporterClient : public crash_repor + bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled) override; + #endif + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool ShouldMonitorCrashHandlerExpensively() override; + #endif + diff --git a/devel/electron36/files/patch-electron_shell_app_electron__main__delegate.cc b/devel/electron36/files/patch-electron_shell_app_electron__main__delegate.cc new file mode 100644 index 000000000000..5b4708fab656 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_app_electron__main__delegate.cc @@ -0,0 +1,63 @@ +--- electron/shell/app/electron_main_delegate.cc.orig 2025-01-29 20:10:57 UTC ++++ electron/shell/app/electron_main_delegate.cc +@@ -59,13 +59,13 @@ + #include "chrome/child/v8_crashpad_support_win.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #include "v8/include/v8-wasm-trap-handler-posix.h" + #include "v8/include/v8.h" + #endif + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + #include "components/crash/core/app/crash_switches.h" // nogncheck + #include "components/crash/core/app/crashpad.h" // nogncheck + #include "components/crash/core/common/crash_key.h" +@@ -156,7 +156,7 @@ bool ElectronPathProvider(int key, base::FilePath* res + create_dir = true; + break; + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case DIR_APP_DATA: { + auto env = base::Environment::Create(); + cur = base::nix::GetXDGDirectory( +@@ -282,7 +282,7 @@ std::optional<int> ElectronMainDelegate::BasicStartupC + base::win::PinUser32(); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Check for --no-sandbox parameter when running as root. + if (getuid() == 0 && IsSandboxEnabled(command_line)) + LOG(FATAL) << "Running as root without --" +@@ -332,7 +332,7 @@ void ElectronMainDelegate::PreSandboxStartup() { + /* is_preinit = */ IsBrowserProcess() || IsZygoteProcess()); + #endif + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + crash_reporter::InitializeCrashKeys(); + #endif + +@@ -367,7 +367,7 @@ void ElectronMainDelegate::PreSandboxStartup() { + } + #endif + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + crash_keys::SetCrashKeysFromCommandLine(*command_line); + crash_keys::SetPlatformCrashKey(); + #endif +@@ -402,7 +402,7 @@ std::optional<int> ElectronMainDelegate::PreBrowserMai + #if BUILDFLAG(IS_MAC) + RegisterAtomCrApp(); + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set the global activation token sent as an environment variable. + auto env = base::Environment::Create(); + base::nix::ExtractXdgActivationTokenFromEnv(*env); diff --git a/devel/electron36/files/patch-electron_shell_app_node__main.cc b/devel/electron36/files/patch-electron_shell_app_node__main.cc new file mode 100644 index 000000000000..0e1c602a0adb --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_app_node__main.cc @@ -0,0 +1,37 @@ +--- electron/shell/app/node_main.cc.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/app/node_main.cc +@@ -48,7 +48,7 @@ + #include "shell/common/mac/codesign_util.h" + #endif + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + #include "components/crash/core/app/crashpad.h" // nogncheck + #include "shell/app/electron_crash_reporter_client.h" + #include "shell/common/crash_keys.h" +@@ -99,14 +99,14 @@ bool UnsetHijackableEnvs(base::Environment* env) { + } + #endif + +-#if IS_MAS_BUILD() ++#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) + void SetCrashKeyStub(const std::string& key, const std::string& value) {} + void ClearCrashKeyStub(const std::string& key) {} + #endif + + v8::Local<v8::Value> GetParameters(v8::Isolate* isolate) { + std::map<std::string, std::string> keys; +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + electron::crash_keys::GetCrashKeys(&keys); + #endif + return gin::ConvertToV8(isolate, keys); +@@ -264,7 +264,7 @@ int NodeMain() { + // Setup process.crashReporter in child node processes + auto reporter = gin_helper::Dictionary::CreateEmpty(isolate); + reporter.SetMethod("getParameters", &GetParameters); +-#if IS_MAS_BUILD() ++#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) + reporter.SetMethod("addExtraParameter", &SetCrashKeyStub); + reporter.SetMethod("removeExtraParameter", &ClearCrashKeyStub); + #else diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__app.cc new file mode 100644 index 000000000000..44d2f28e3b06 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__app.cc @@ -0,0 +1,74 @@ +--- electron/shell/browser/api/electron_api_app.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/api/electron_api_app.cc +@@ -96,7 +96,7 @@ + #include "shell/common/process_util.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/nix/scoped_xdg_activation_token_injector.h" + #include "base/nix/xdg_util.h" + #endif +@@ -420,7 +420,7 @@ bool NotificationCallbackWrapper( + base::CommandLine cmd, + const base::FilePath& cwd, + const std::vector<uint8_t> additional_data) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set the global activation token sent as a command line switch by another + // electron app instance. This also removes the switch after use to prevent + // any side effects of leaving it in the command line after this point. +@@ -607,7 +607,7 @@ void App::OnFinishLaunching(base::Value::Dict launch_i + } + + void App::OnFinishLaunching(base::Value::Dict launch_info) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set the application name for audio streams shown in external + // applications. Only affects pulseaudio currently. + media::AudioManager::SetGlobalAppName(Browser::Get()->GetName()); +@@ -950,7 +950,7 @@ void App::SetDesktopName(const std::string& desktop_na + } + + void App::SetDesktopName(const std::string& desktop_name) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto env = base::Environment::Create(); + env->SetVar("CHROME_DESKTOP", desktop_name); + #endif +@@ -1054,7 +1054,7 @@ bool App::RequestSingleInstanceLock(gin::Arguments* ar + base::BindRepeating(NotificationCallbackWrapper, cb)); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // 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 electron app instance if it exists. +@@ -1349,7 +1349,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics + pid_dict.Set("name", process_metric.second->name); + } + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + auto memory_info = process_metric.second->GetMemoryInfo(); + + auto memory_dict = gin_helper::Dictionary::CreateEmpty(isolate); +@@ -1731,7 +1731,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild + .SetMethod( + "removeAsDefaultProtocolClient", + base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser)) +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + .SetMethod( + "getApplicationInfoForProtocol", + base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser)) +@@ -1789,7 +1789,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild + .SetMethod("getJumpListSettings", &App::GetJumpListSettings) + .SetMethod("setJumpList", &App::SetJumpList) + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + .SetMethod("isUnityRunning", + base::BindRepeating(&Browser::IsUnityRunning, browser)) + #endif diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__base__window.cc b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__base__window.cc new file mode 100644 index 000000000000..0f5691bdb5a7 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__base__window.cc @@ -0,0 +1,38 @@ +--- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/api/electron_api_base_window.cc +@@ -42,7 +42,7 @@ + #include "shell/browser/ui/views/win_frame_view.h" + #include "shell/browser/ui/win/taskbar_host.h" + #include "ui/base/win/shell.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "shell/browser/ui/views/opaque_frame_view.h" + #endif + +@@ -1030,7 +1030,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate, + static_cast<NativeWindowViews*>(window_.get()) + ->SetIcon(native_image->GetHICON(GetSystemMetrics(SM_CXSMICON)), + native_image->GetHICON(GetSystemMetrics(SM_CXICON))); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + static_cast<NativeWindowViews*>(window_.get()) + ->SetIcon(native_image->image().AsImageSkia()); + #endif +@@ -1091,7 +1091,7 @@ bool BaseWindow::IsSnapped() const { + } + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void BaseWindow::SetTitleBarOverlay(const gin_helper::Dictionary& options, + gin_helper::Arguments* args) { + // Ensure WCO is already enabled on this window +@@ -1346,7 +1346,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate, + .SetMethod("setThumbnailToolTip", &BaseWindow::SetThumbnailToolTip) + .SetMethod("setAppDetails", &BaseWindow::SetAppDetails) + #endif +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + .SetMethod("setTitleBarOverlay", &BaseWindow::SetTitleBarOverlay) + #endif + .SetProperty("id", &BaseWindow::GetID); diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__base__window.h b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__base__window.h new file mode 100644 index 000000000000..20efa3ef927e --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__base__window.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/api/electron_api_base_window.h.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/api/electron_api_base_window.h +@@ -257,7 +257,7 @@ class BaseWindow : public gin_helper::TrackableObject< + bool IsSnapped() const; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SetTitleBarOverlay(const gin_helper::Dictionary& options, + gin_helper::Arguments* args); + #endif diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__crash__reporter.cc b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__crash__reporter.cc new file mode 100644 index 000000000000..ae112a00edee --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__crash__reporter.cc @@ -0,0 +1,72 @@ +--- electron/shell/browser/api/electron_api_crash_reporter.cc.orig 2025-01-29 20:10:57 UTC ++++ electron/shell/browser/api/electron_api_crash_reporter.cc +@@ -30,7 +30,7 @@ + #include "shell/common/process_util.h" + #include "shell/common/thread_restrictions.h" + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + #include "components/crash/core/app/crashpad.h" // nogncheck + #include "components/crash/core/browser/crash_upload_list_crashpad.h" // nogncheck + #include "components/crash/core/common/crash_key.h" +@@ -64,7 +64,7 @@ namespace electron::api::crash_reporter { + + namespace electron::api::crash_reporter { + +-#if IS_MAS_BUILD() ++#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) + namespace { + + void NoOp() {} +@@ -135,7 +135,7 @@ void Start(const std::string& submit_url, + const std::map<std::string, std::string>& extra, + bool is_node_process) { + TRACE_EVENT0("electron", "crash_reporter::Start"); +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + if (g_crash_reporter_initialized) + return; + g_crash_reporter_initialized = true; +@@ -181,7 +181,7 @@ namespace { + + namespace { + +-#if IS_MAS_BUILD() ++#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) + void GetUploadedReports( + v8::Isolate* isolate, + base::OnceCallback<void(v8::Local<v8::Value>)> callback) { +@@ -236,13 +236,13 @@ void SetUploadToServer(bool upload) { + #endif + + void SetUploadToServer(bool upload) { +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + ElectronCrashReporterClient::Get()->SetCollectStatsConsent(upload); + #endif + } + + bool GetUploadToServer() { +-#if IS_MAS_BUILD() ++#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) + return false; + #else + return ElectronCrashReporterClient::Get()->GetCollectStatsConsent(); +@@ -251,7 +251,7 @@ v8::Local<v8::Value> GetParameters(v8::Isolate* isolat + + v8::Local<v8::Value> GetParameters(v8::Isolate* isolate) { + std::map<std::string, std::string> keys; +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + electron::crash_keys::GetCrashKeys(&keys); + #endif + return gin::ConvertToV8(isolate, keys); +@@ -263,7 +263,7 @@ void Initialize(v8::Local<v8::Object> exports, + void* priv) { + gin_helper::Dictionary dict(context->GetIsolate(), exports); + dict.SetMethod("start", &electron::api::crash_reporter::Start); +-#if IS_MAS_BUILD() ++#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) + dict.SetMethod("addExtraParameter", &electron::api::crash_reporter::NoOp); + dict.SetMethod("removeExtraParameter", &electron::api::crash_reporter::NoOp); + #else diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc new file mode 100644 index 000000000000..0cb98868fcb1 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/api/electron_api_desktop_capturer.cc.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/browser/api/electron_api_desktop_capturer.cc +@@ -48,7 +48,7 @@ namespace { + #endif + + namespace { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Private function in ui/base/x/x11_display_util.cc + base::flat_map<x11::RandR::Output, int> GetMonitors( + std::pair<uint32_t, uint32_t> version, diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc new file mode 100644 index 000000000000..f6efa59ac49a --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc @@ -0,0 +1,23 @@ +--- electron/shell/browser/api/electron_api_power_monitor.cc.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/api/electron_api_power_monitor.cc +@@ -128,6 +128,11 @@ void PowerMonitor::OnSpeedLimitChange(int speed_limit) + gin::DataObjectBuilder(isolate).Set("limit", speed_limit).Build()); + } + ++#if BUILDFLAG(IS_BSD) ++void PowerMonitor::SetListeningForShutdown(bool is_listening) { ++} ++#endif ++ + #if BUILDFLAG(IS_LINUX) + void PowerMonitor::SetListeningForShutdown(bool is_listening) { + if (is_listening) { +@@ -153,7 +158,7 @@ gin::ObjectTemplateBuilder PowerMonitor::GetObjectTemp + auto builder = + gin_helper::EventEmitterMixin<PowerMonitor>::GetObjectTemplateBuilder( + isolate); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + builder.SetMethod("setListeningForShutdown", + &PowerMonitor::SetListeningForShutdown); + #endif diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__power__monitor.h b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__power__monitor.h new file mode 100644 index 000000000000..7aa5993e972e --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__power__monitor.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/api/electron_api_power_monitor.h.orig 2023-05-03 13:27:52 UTC ++++ electron/shell/browser/api/electron_api_power_monitor.h +@@ -40,7 +40,7 @@ class PowerMonitor : public gin::Wrappable<PowerMonito + explicit PowerMonitor(v8::Isolate* isolate); + ~PowerMonitor() override; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SetListeningForShutdown(bool); + #endif + diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__safe__storage.cc b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__safe__storage.cc new file mode 100644 index 000000000000..c69ecf8e4e65 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__safe__storage.cc @@ -0,0 +1,29 @@ +--- electron/shell/browser/api/electron_api_safe_storage.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/api/electron_api_safe_storage.cc +@@ -20,7 +20,7 @@ bool IsEncryptionAvailable() { + bool use_password_v10 = false; + + bool IsEncryptionAvailable() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Calling IsEncryptionAvailable() before the app is ready results in a crash + // on Linux. + // Refs: https://github.com/electron/electron/issues/32206. +@@ -39,7 +39,7 @@ void SetUsePasswordV10(bool use) { + use_password_v10 = use; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string GetSelectedLinuxBackend() { + if (!electron::Browser::Get()->is_ready()) + return "unknown"; +@@ -135,7 +135,7 @@ void Initialize(v8::Local<v8::Object> exports, + gin_helper::Dictionary dict(isolate, exports); + dict.SetMethod("decryptString", &DecryptString); + dict.SetMethod("encryptString", &EncryptString); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + dict.SetMethod("getSelectedStorageBackend", &GetSelectedLinuxBackend); + #endif + dict.SetMethod("isEncryptionAvailable", &IsEncryptionAvailable); diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__web__contents.cc b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__web__contents.cc new file mode 100644 index 000000000000..65ee8ca2fbdb --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__web__contents.cc @@ -0,0 +1,77 @@ +--- electron/shell/browser/api/electron_api_web_contents.cc.orig 2025-05-12 02:18:43 UTC ++++ electron/shell/browser/api/electron_api_web_contents.cc +@@ -159,11 +159,11 @@ + #include "ui/base/cocoa/defaults_utils.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "ui/aura/window.h" + #include "ui/gfx/font_render_params.h" + #endif +@@ -195,7 +195,7 @@ + #include "content/public/browser/plugin_service.h" + #endif + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + #include "chrome/browser/hang_monitor/hang_crash_dump.h" // nogncheck + #endif + +@@ -569,7 +569,7 @@ std::optional<base::TimeDelta> GetCursorBlinkInterval( + ui::TextInsertionCaretBlinkPeriodFromDefaults()); + if (system_value) + return *system_value; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (auto* linux_ui = ui::LinuxUi::instance()) + return linux_ui->GetCursorBlinkInterval(); + #elif BUILDFLAG(IS_WIN) +@@ -929,7 +929,7 @@ void WebContents::InitWithSessionAndOptions( + accept_languages.pop_back(); + prefs->accept_languages = accept_languages; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Update font settings. + static const gfx::FontRenderParams params( + gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr)); +@@ -2662,13 +2662,13 @@ void WebContents::ForcefullyCrashRenderer() { + + content::RenderProcessHost* rph = rwh->GetProcess(); + if (rph) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // A generic |CrashDumpHungChildProcess()| is not implemented for Linux. + // Instead we send an explicit IPC to crash on the renderer's IO thread. + rph->ForceCrash(); + #else + // Try to generate a crash report for the hung process. +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + CrashDumpHungChildProcess(rph->GetProcess().Handle()); + #endif + rph->Shutdown(content::RESULT_CODE_HUNG); +@@ -3339,7 +3339,7 @@ void WebContents::Focus() { + void WebContents::Focus() { + // Focusing on WebContents does not automatically focus the window on macOS + // and Linux, do it manually to match the behavior on Windows. +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (owner_window()) + owner_window()->Focus(true); + #endif +@@ -4215,7 +4215,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() { + } + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void WebContents::GetDevToolsWindowWMClass(std::string* name, + std::string* class_name) { + *class_name = Browser::Get()->GetName(); diff --git a/devel/electron36/files/patch-electron_shell_browser_api_electron__api__web__contents.h b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__web__contents.h new file mode 100644 index 000000000000..721d3e2c67dd --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_electron__api__web__contents.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/api/electron_api_web_contents.h.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/api/electron_api_web_contents.h +@@ -739,7 +739,7 @@ class WebContents final : public ExclusiveAccessContex + #if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC) + ui::ImageModel GetDevToolsWindowIcon() override; + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void GetDevToolsWindowWMClass(std::string* name, + std::string* class_name) override; + #endif diff --git a/devel/electron36/files/patch-electron_shell_browser_api_process__metric.h b/devel/electron36/files/patch-electron_shell_browser_api_process__metric.h new file mode 100644 index 000000000000..d6ff67a703bf --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_api_process__metric.h @@ -0,0 +1,20 @@ +--- electron/shell/browser/api/process_metric.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/api/process_metric.h +@@ -14,7 +14,7 @@ + + namespace electron { + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + struct ProcessMemoryInfo { + size_t working_set_size = 0; + size_t peak_working_set_size = 0; +@@ -48,7 +48,7 @@ struct ProcessMetric { + const std::string& name = std::string()); + ~ProcessMetric(); + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + ProcessMemoryInfo GetMemoryInfo() const; + #endif + diff --git a/devel/electron36/files/patch-electron_shell_browser_browser.cc b/devel/electron36/files/patch-electron_shell_browser_browser.cc new file mode 100644 index 000000000000..d4c7f912e1c6 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_browser.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/browser.cc.orig 2025-01-29 20:10:57 UTC ++++ electron/shell/browser/browser.cc +@@ -71,7 +71,7 @@ Browser* Browser::Get() { + return ElectronBrowserMainParts::Get()->browser(); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void Browser::Focus(gin::Arguments* args) { + // Focus on the first visible window. + for (auto* const window : WindowList::GetWindows()) { diff --git a/devel/electron36/files/patch-electron_shell_browser_browser.h b/devel/electron36/files/patch-electron_shell_browser_browser.h new file mode 100644 index 000000000000..8abb0580770a --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_browser.h @@ -0,0 +1,24 @@ +--- electron/shell/browser/browser.h.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/browser.h +@@ -144,7 +144,7 @@ class Browser : private WindowListObserver { + + std::u16string GetApplicationNameForProtocol(const GURL& url); + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // get the name, icon and path for an application + v8::Local<v8::Promise> GetApplicationInfoForProtocol(v8::Isolate* isolate, + const GURL& url); +@@ -272,10 +272,10 @@ class Browser : private WindowListObserver { + PCWSTR GetAppUserModelID(); + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Whether Unity launcher is running. + bool IsUnityRunning(); +-#endif // BUILDFLAG(IS_LINUX) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + // Tell the application to open a file. + bool OpenFile(const std::string& file_path); diff --git a/devel/electron36/files/patch-electron_shell_browser_browser__linux.cc b/devel/electron36/files/patch-electron_shell_browser_browser__linux.cc new file mode 100644 index 000000000000..caeba053c919 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_browser__linux.cc @@ -0,0 +1,20 @@ +--- electron/shell/browser/browser_linux.cc.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/browser_linux.cc +@@ -7,7 +7,7 @@ + #include <fcntl.h> + #include <stdlib.h> + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include <gtk/gtk.h> + #endif + +@@ -23,7 +23,7 @@ + #include "shell/common/gin_converters/login_item_settings_converter.h" + #include "shell/common/thread_restrictions.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "shell/browser/linux/unity_service.h" + #endif + diff --git a/devel/electron36/files/patch-electron_shell_browser_browser__process__impl.cc b/devel/electron36/files/patch-electron_shell_browser_browser__process__impl.cc new file mode 100644 index 000000000000..c6d282bcf840 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_browser__process__impl.cc @@ -0,0 +1,20 @@ +--- electron/shell/browser/browser_process_impl.cc.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/browser_process_impl.cc +@@ -338,7 +338,7 @@ electron::ResolveProxyHelper* BrowserProcessImpl::GetR + return resolve_proxy_helper_.get(); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void BrowserProcessImpl::SetLinuxStorageBackend( + os_crypt::SelectedLinuxBackend selected_backend) { + switch (selected_backend) { +@@ -361,7 +361,7 @@ void BrowserProcessImpl::SetLinuxStorageBackend( + NOTREACHED(); + } + } +-#endif // BUILDFLAG(IS_LINUX) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + void BrowserProcessImpl::SetApplicationLocale(const std::string& locale) { + locale_ = locale; diff --git a/devel/electron36/files/patch-electron_shell_browser_browser__process__impl.h b/devel/electron36/files/patch-electron_shell_browser_browser__process__impl.h new file mode 100644 index 000000000000..dd5de96a6cb9 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_browser__process__impl.h @@ -0,0 +1,29 @@ +--- electron/shell/browser/browser_process_impl.h.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/browser/browser_process_impl.h +@@ -21,7 +21,7 @@ + #include "services/network/public/cpp/shared_url_loader_factory.h" + #include "shell/browser/net/system_network_context_manager.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "components/os_crypt/sync/key_storage_util_linux.h" + #endif + +@@ -60,7 +60,7 @@ class BrowserProcessImpl : public BrowserProcess { + const std::string& GetSystemLocale() const; + electron::ResolveProxyHelper* GetResolveProxyHelper(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SetLinuxStorageBackend(os_crypt::SelectedLinuxBackend selected_backend); + [[nodiscard]] const std::string& linux_storage_backend() const { + return selected_linux_storage_backend_; +@@ -151,7 +151,7 @@ class BrowserProcessImpl : public BrowserProcess { + std::unique_ptr<PrefService> local_state_; + std::string locale_; + std::string system_locale_; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string selected_linux_storage_backend_; + #endif + embedder_support::OriginTrialsSettingsStorage origin_trials_settings_storage_; diff --git a/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts.cc b/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts.cc new file mode 100644 index 000000000000..07db5580f63e --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts.cc @@ -0,0 +1,84 @@ +--- electron/shell/browser/electron_browser_main_parts.cc.orig 2025-03-26 14:46:58 UTC ++++ electron/shell/browser/electron_browser_main_parts.cc +@@ -76,7 +76,7 @@ + #include "ui/wm/core/wm_state.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #include "chrome/browser/ui/views/dark_mode_manager_linux.h" + #include "device/bluetooth/bluetooth_adapter_factory.h" +@@ -129,7 +129,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class LinuxUiGetterImpl : public ui::LinuxUiGetter { + public: + LinuxUiGetterImpl() = default; +@@ -209,7 +209,7 @@ int ElectronBrowserMainParts::PreEarlyInitialization() + #if BUILDFLAG(IS_POSIX) + HandleSIGCHLD(); + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + DetectOzonePlatform(); + ui::OzonePlatform::PreEarlyInitialization(); + #endif +@@ -300,7 +300,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { + // happen before the ResourceBundle is loaded + if (locale.empty()) + l10n_util::OverrideLocaleWithCocoaLocale(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // l10n_util::GetApplicationLocaleInternal uses g_get_language_names(), + // which keys off of getenv("LC_ALL"). + // We must set this env first to make ui::ResourceBundle accept the custom +@@ -331,7 +331,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { + ElectronBrowserClient::SetApplicationLocale(app_locale); + fake_browser_process_->SetApplicationLocale(app_locale); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Reset to the original LC_ALL since we should not be changing it. + if (!locale.empty()) { + if (lc_all) +@@ -388,7 +388,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() { + } + + void ElectronBrowserMainParts::ToolkitInitialized() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* linux_ui = ui::GetDefaultLinuxUi(); + CHECK(linux_ui); + linux_ui_getter_ = std::make_unique<LinuxUiGetterImpl>(); +@@ -494,7 +494,7 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo + } + + void ElectronBrowserMainParts::PostCreateMainMessageLoop() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + std::string app_name = electron::Browser::Get()->GetName(); + #endif + #if BUILDFLAG(IS_LINUX) +@@ -506,7 +506,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo + + if (!bluez::BluezDBusManager::IsInitialized()) + bluez::DBusBluezManagerWrapperLinux::Initialize(); ++#endif + ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set up crypt config. This needs to be done before anything starts the + // network service, as the raw encryption key needs to be shared with the + // network service for encrypted cookie storage. +@@ -601,7 +603,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun( + fake_browser_process_->PostMainMessageLoopRun(); + content::DevToolsAgentHost::StopRemoteDebuggingPipeHandler(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ui::OzonePlatform::GetInstance()->PostMainMessageLoopRun(); + #endif + } diff --git a/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts.h b/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts.h new file mode 100644 index 000000000000..24ebf929d1cc --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts.h @@ -0,0 +1,20 @@ +--- electron/shell/browser/electron_browser_main_parts.h.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/electron_browser_main_parts.h +@@ -124,7 +124,7 @@ class ElectronBrowserMainParts : public content::Brows + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void DetectOzonePlatform(); + #endif + +@@ -146,7 +146,7 @@ class ElectronBrowserMainParts : public content::Brows + std::unique_ptr<display::Screen> screen_; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<ui::DarkModeManagerLinux> dark_mode_manager_; + std::unique_ptr<ui::LinuxUiGetter> linux_ui_getter_; + #endif diff --git a/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts__posix.cc b/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts__posix.cc new file mode 100644 index 000000000000..7289abbb0979 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_electron__browser__main__parts__posix.cc @@ -0,0 +1,19 @@ +--- electron/shell/browser/electron_browser_main_parts_posix.cc.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/browser/electron_browser_main_parts_posix.cc +@@ -192,12 +192,16 @@ void ElectronBrowserMainParts::InstallShutdownSignalHa + g_pipe_pid = getpid(); + g_shutdown_pipe_read_fd = pipefd[0]; + g_shutdown_pipe_write_fd = pipefd[1]; ++#if defined(OS_BSD) ++ const size_t kShutdownDetectorThreadStackSize = 0; ++#else + #if !defined(ADDRESS_SANITIZER) + const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2; + #else + // ASan instrumentation bloats the stack frames, so we need to increase the + // stack size to avoid hitting the guard page. + const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4; ++#endif + #endif + ShutdownDetector* detector = new ShutdownDetector( + g_shutdown_pipe_read_fd, std::move(shutdown_callback), task_runner); diff --git a/devel/electron36/files/patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc b/devel/electron36/files/patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc new file mode 100644 index 000000000000..67845f96c78b --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/extensions/api/runtime/electron_runtime_api_delegate.cc.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/extensions/api/runtime/electron_runtime_api_delegate.cc +@@ -54,6 +54,8 @@ bool ElectronRuntimeAPIDelegate::GetPlatformInfo(Platf + info->os = extensions::api::runtime::PlatformOs::kLinux; + } else if (strcmp(os, "openbsd") == 0) { + info->os = extensions::api::runtime::PlatformOs::kOpenbsd; ++ } else if (strcmp(os, "freebsd") == 0) { ++ info->os = extensions::api::runtime::PlatformOs::kFreebsd; + } else { + NOTREACHED(); + } diff --git a/devel/electron36/files/patch-electron_shell_browser_feature__list.cc b/devel/electron36/files/patch-electron_shell_browser_feature__list.cc new file mode 100644 index 000000000000..9a7a3ad39f90 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_feature__list.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/feature_list.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/feature_list.cc +@@ -28,7 +28,7 @@ + #include "pdf/pdf_features.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "printing/printing_features.h" + #endif + diff --git a/devel/electron36/files/patch-electron_shell_browser_native__window.cc b/devel/electron36/files/patch-electron_shell_browser_native__window.cc new file mode 100644 index 000000000000..d55f8462f6b1 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_native__window.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/native_window.cc.orig 2025-04-17 14:56:35 UTC ++++ electron/shell/browser/native_window.cc +@@ -198,7 +198,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D + } else { + SetSizeConstraints(size_constraints); + } +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool closable; + if (options.Get(options::kClosable, &closable)) { + SetClosable(closable); diff --git a/devel/electron36/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron36/files/patch-electron_shell_browser_native__window__views.cc new file mode 100644 index 000000000000..81913d117220 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_native__window__views.cc @@ -0,0 +1,191 @@ +--- electron/shell/browser/native_window_views.cc.orig 2025-05-12 02:18:43 UTC ++++ electron/shell/browser/native_window_views.cc +@@ -51,7 +51,7 @@ + #include "ui/wm/core/shadow_types.h" + #include "ui/wm/core/window_util.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/strings/string_util.h" + #include "shell/browser/browser.h" + #include "shell/browser/linux/unity_service.h" +@@ -295,7 +295,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: + params.parent = parent->GetNativeWindow(); + + params.native_widget = new ElectronDesktopNativeWidgetAura(this); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string name = Browser::Get()->GetName(); + // Set WM_WINDOW_ROLE. + params.wm_role_name = "browser-window"; +@@ -320,7 +320,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: + std::string window_type; + options.Get(options::kType, &window_type); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set _GTK_THEME_VARIANT to dark if we have "dark-theme" option set. + if (options.ValueOrDefault(options::kDarkTheme, false)) + SetGTKDarkThemeEnabled(true); +@@ -427,7 +427,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: + if (window) + window->AddPreTargetHandler(this); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On linux after the widget is initialized we might have to force set the + // bounds if the bounds are smaller than the current display + SetBounds(gfx::Rect(GetPosition(), bounds.size()), false); +@@ -463,7 +463,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us + } + + void NativeWindowViews::SetGTKDarkThemeEnabled(bool use_dark_theme) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (IsX11()) { + const std::string color = use_dark_theme ? "dark" : "light"; + auto* connection = x11::Connection::Get(); +@@ -524,7 +524,7 @@ void NativeWindowViews::Show() { + + NotifyWindowShow(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (global_menu_bar_) + global_menu_bar_->OnWindowMapped(); + +@@ -540,7 +540,7 @@ void NativeWindowViews::ShowInactive() { + + NotifyWindowShow(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (global_menu_bar_) + global_menu_bar_->OnWindowMapped(); + +@@ -559,7 +559,7 @@ void NativeWindowViews::Hide() { + + NotifyWindowHide(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (global_menu_bar_) + global_menu_bar_->OnWindowUnmapped(); + #endif +@@ -590,7 +590,7 @@ bool NativeWindowViews::IsEnabled() const { + bool NativeWindowViews::IsEnabled() const { + #if BUILDFLAG(IS_WIN) + return ::IsWindowEnabled(GetAcceleratedWidget()); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (IsX11()) + return !event_disabler_.get(); + NOTIMPLEMENTED(); +@@ -840,7 +840,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou + } + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux and Windows the minimum and maximum size should be updated with + // window size when window is not resizable. + if (!resizable_) { +@@ -1098,7 +1098,7 @@ bool NativeWindowViews::IsClosable() const { + return false; + } + return !(info.fState & MFS_DISABLED); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #endif + } +@@ -1138,7 +1138,7 @@ void NativeWindowViews::Center() { + // for now to avoid breaking API contract, but should consider the long + // term plan for this aligning with upstream. + void NativeWindowViews::Center() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto display = + display::Screen::GetScreen()->GetDisplayNearestWindow(GetNativeWindow()); + gfx::Rect window_bounds_in_screen = display.work_area(); +@@ -1362,7 +1362,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men + } + + void NativeWindowViews::SetMenu(ElectronMenuModel* menu_model) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Remove global menu bar. + if (global_menu_bar_ && menu_model == nullptr) { + global_menu_bar_.reset(); +@@ -1417,7 +1417,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow* + void NativeWindowViews::SetParentWindow(NativeWindow* parent) { + NativeWindow::SetParentWindow(parent); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (IsX11()) { + auto* connection = x11::Connection::Get(); + connection->SetProperty( +@@ -1463,7 +1463,7 @@ void NativeWindowViews::SetProgressBar(double progress + NativeWindow::ProgressState state) { + #if BUILDFLAG(IS_WIN) + taskbar_host_.SetProgressBar(GetAcceleratedWidget(), progress, state); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (unity::IsRunning()) { + unity::SetProgressFraction(progress); + } +@@ -1557,7 +1557,7 @@ bool NativeWindowViews::IsVisibleOnAllWorkspaces() con + if (const auto* view_native_widget = widget()->native_widget_private()) + return view_native_widget->IsVisibleOnAllWorkspaces(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (IsX11()) { + // Use the presence/absence of _NET_WM_STATE_STICKY in _NET_WM_STATE to + // determine whether the current window is visible on all workspaces. +@@ -1580,7 +1580,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM + #if BUILDFLAG(IS_WIN) + window_handle = + reinterpret_cast<content::DesktopMediaID::Id>(accelerated_widget); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + window_handle = static_cast<uint32_t>(accelerated_widget); + #endif + aura::WindowTreeHost* const host = +@@ -1678,7 +1678,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC + SendMessage(hwnd, WM_SETICON, ICON_BIG, + reinterpret_cast<LPARAM>(app_icon_.get())); + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void NativeWindowViews::SetIcon(const gfx::ImageSkia& icon) { + auto* tree_host = views::DesktopWindowTreeHostLinux::GetHostForWidget( + GetAcceleratedWidget()); +@@ -1774,7 +1774,7 @@ bool NativeWindowViews::CanMinimize() const { + bool NativeWindowViews::CanMinimize() const { + #if BUILDFLAG(IS_WIN) + return minimizable_; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #endif + } +@@ -1830,7 +1830,7 @@ void NativeWindowViews::HandleKeyboardEvent( + if (widget_destroyed_) + return; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (event.windows_key_code == ui::VKEY_BROWSER_BACK) + NotifyWindowExecuteAppCommand(kBrowserBackward); + else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD) +@@ -1849,7 +1849,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e + // Alt+Click should not toggle menu bar. + root_view_.ResetAltState(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (event->changed_button_flags() == ui::EF_BACK_MOUSE_BUTTON) + NotifyWindowExecuteAppCommand(kBrowserBackward); + else if (event->changed_button_flags() == ui::EF_FORWARD_MOUSE_BUTTON) diff --git a/devel/electron36/files/patch-electron_shell_browser_native__window__views.h b/devel/electron36/files/patch-electron_shell_browser_native__window__views.h new file mode 100644 index 000000000000..b04d96e067b2 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_native__window__views.h @@ -0,0 +1,29 @@ +--- electron/shell/browser/native_window_views.h.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/native_window_views.h +@@ -25,7 +25,7 @@ namespace electron { + + namespace electron { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class GlobalMenuBarX11; + #endif + +@@ -163,7 +163,7 @@ class NativeWindowViews : public NativeWindow, + LPARAM l_param, + LRESULT* result); + void SetIcon(HICON small_icon, HICON app_icon); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SetIcon(const gfx::ImageSkia& icon); + #endif + +@@ -247,7 +247,7 @@ class NativeWindowViews : public NativeWindow, + // events from resizing the window. + extensions::SizeConstraints old_size_constraints_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<GlobalMenuBarX11> global_menu_bar_; + #endif + diff --git a/devel/electron36/files/patch-electron_shell_browser_net_system__network__context__manager.cc b/devel/electron36/files/patch-electron_shell_browser_net_system__network__context__manager.cc new file mode 100644 index 000000000000..9bac7a794c55 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_net_system__network__context__manager.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/net/system_network_context_manager.cc.orig 2025-03-26 14:46:58 UTC ++++ electron/shell/browser/net/system_network_context_manager.cc +@@ -39,7 +39,7 @@ + #include "shell/common/options_switches.h" + #include "url/gurl.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "components/os_crypt/sync/key_storage_config_linux.h" + #endif + diff --git a/devel/electron36/files/patch-electron_shell_browser_osr_osr__host__display__client.cc b/devel/electron36/files/patch-electron_shell_browser_osr_osr__host__display__client.cc new file mode 100644 index 000000000000..b62fb32f3efc --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_osr_osr__host__display__client.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/osr/osr_host_display_client.cc.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/osr/osr_host_display_client.cc +@@ -95,7 +95,7 @@ void OffScreenHostDisplayClient::CreateLayeredWindowUp + layered_window_updater_->SetActive(active_); + } + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + void OffScreenHostDisplayClient::DidCompleteSwapWithNewSize( + const gfx::Size& size) {} + #endif diff --git a/devel/electron36/files/patch-electron_shell_browser_osr_osr__host__display__client.h b/devel/electron36/files/patch-electron_shell_browser_osr_osr__host__display__client.h new file mode 100644 index 000000000000..813c3277570f --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_osr_osr__host__display__client.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/osr/osr_host_display_client.h.orig 2024-11-07 16:14:43 UTC ++++ electron/shell/browser/osr/osr_host_display_client.h +@@ -74,7 +74,7 @@ class OffScreenHostDisplayClient : public viz::HostDis + mojo::PendingReceiver<viz::mojom::LayeredWindowUpdater> receiver) + override; + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + void DidCompleteSwapWithNewSize(const gfx::Size& size) override; + #endif + diff --git a/devel/electron36/files/patch-electron_shell_browser_osr_osr__paint__event.h b/devel/electron36/files/patch-electron_shell_browser_osr_osr__paint__event.h new file mode 100644 index 000000000000..c7fac1a69a3a --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_osr_osr__paint__event.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/osr/osr_paint_event.h.orig 2024-11-11 11:23:02 UTC ++++ electron/shell/browser/osr/osr_paint_event.h +@@ -96,7 +96,7 @@ struct OffscreenSharedTextureValue { + // On Windows it is a HANDLE to the shared D3D11 texture. + // On macOS it is a IOSurface* to the shared IOSurface. + uintptr_t shared_texture_handle; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::vector<OffscreenNativePixmapPlaneInfo> planes; + uint64_t modifier; + #endif diff --git a/devel/electron36/files/patch-electron_shell_browser_osr_osr__video__consumer.cc b/devel/electron36/files/patch-electron_shell_browser_osr_osr__video__consumer.cc new file mode 100644 index 000000000000..8fea89d865bc --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_osr_osr__video__consumer.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/osr/osr_video_consumer.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/osr/osr_video_consumer.cc +@@ -108,7 +108,7 @@ void OffScreenVideoConsumer::OnFrameCaptured( + #elif BUILDFLAG(IS_APPLE) + texture.shared_texture_handle = + reinterpret_cast<uintptr_t>(gmb_handle.io_surface.get()); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const auto& native_pixmap = gmb_handle.native_pixmap_handle; + texture.modifier = native_pixmap.modifier; + for (const auto& plane : native_pixmap.planes) { diff --git a/devel/electron36/files/patch-electron_shell_browser_printing_printing__utils.cc b/devel/electron36/files/patch-electron_shell_browser_printing_printing__utils.cc new file mode 100644 index 000000000000..c851a0e1be59 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_printing_printing__utils.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/printing/printing_utils.cc.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/printing/printing_utils.cc +@@ -31,7 +31,7 @@ + #include <ApplicationServices/ApplicationServices.h> + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include <gtk/gtk.h> + #endif + diff --git a/devel/electron36/files/patch-electron_shell_browser_relauncher__linux.cc b/devel/electron36/files/patch-electron_shell_browser_relauncher__linux.cc new file mode 100644 index 000000000000..53d9001f7a94 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_relauncher__linux.cc @@ -0,0 +1,32 @@ +--- electron/shell/browser/relauncher_linux.cc.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/browser/relauncher_linux.cc +@@ -6,8 +6,10 @@ + + #include <fcntl.h> + #include <signal.h> ++#if !defined(__FreeBSD__) + #include <sys/prctl.h> + #include <sys/signalfd.h> ++#endif + + #include "base/files/scoped_file.h" + #include "base/logging.h" +@@ -24,6 +26,10 @@ void RelauncherSynchronizeWithParent() { + base::ScopedFD relauncher_sync_fd(kRelauncherSyncFD); + static const auto signum = SIGUSR2; + ++#if defined(__FreeBSD__) ++ PLOG(ERROR) << "signalfd & prctl"; ++ fprintf(stderr, "Not Implemented signalfd & prctl in atom/browser/relauncher_linux.cc"); ++#else + // send signum to current process when parent process ends. + if (HANDLE_EINTR(prctl(PR_SET_PDEATHSIG, signum)) != 0) { + PLOG(ERROR) << "prctl"; +@@ -48,6 +54,7 @@ void RelauncherSynchronizeWithParent() { + + // Wait for the parent to exit + parentWaiter.Wait(); ++#endif + } + + int LaunchProgram(const StringVector& relauncher_args, diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_file__dialog.h b/devel/electron36/files/patch-electron_shell_browser_ui_file__dialog.h new file mode 100644 index 000000000000..dccc81864b78 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_file__dialog.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/file_dialog.h.orig 2025-05-10 23:09:28 UTC ++++ electron/shell/browser/ui/file_dialog.h +@@ -77,7 +77,7 @@ void ShowSaveDialog(const DialogSettings& settings, + void ShowSaveDialog(const DialogSettings& settings, + gin_helper::Promise<gin_helper::Dictionary> promise); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Rewrite of SelectFileDialogLinuxPortal equivalent functions with primary + // difference being that dbus_thread_linux::GetSharedSessionBus is not used + // so that version detection can be initiated and compeleted on the dbus thread diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc new file mode 100644 index 000000000000..c1f1d60aaa83 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/ui/inspectable_web_contents.cc +@@ -548,7 +548,7 @@ void InspectableWebContents::LoadCompleted() { + prefs.FindString("currentDockState"); + base::RemoveChars(*current_dock_state, "\"", &dock_state_); + } +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* api_web_contents = api::WebContents::From(GetWebContents()); + if (api_web_contents) { + auto* win = diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc b/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc new file mode 100644 index 000000000000..c643e5833cfe --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/ui/inspectable_web_contents_view.cc +@@ -184,7 +184,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock + params.delegate = devtools_window_delegate_; + params.bounds = inspectable_web_contents()->dev_tools_bounds(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + params.wm_role_name = "devtools"; + if (GetDelegate()) + GetDelegate()->GetDevToolsWindowWMClass(¶ms.wm_class_name, diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h b/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h new file mode 100644 index 000000000000..36fa491f6daa --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/inspectable_web_contents_view_delegate.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/ui/inspectable_web_contents_view_delegate.h +@@ -24,7 +24,7 @@ class InspectableWebContentsViewDelegate { + // Returns the icon of devtools window. + virtual ui::ImageModel GetDevToolsWindowIcon(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Called when creating devtools window. + virtual void GetDevToolsWindowWMClass(std::string* name, + std::string* class_name) {} diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc b/devel/electron36/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc new file mode 100644 index 000000000000..4f577ac81310 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc @@ -0,0 +1,38 @@ +--- electron/shell/browser/ui/views/electron_views_delegate.cc.orig 2025-01-29 20:10:57 UTC ++++ electron/shell/browser/ui/views/electron_views_delegate.cc +@@ -9,7 +9,7 @@ + #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" + #include "ui/views/widget/native_widget_aura.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #include "base/nix/xdg_util.h" + #include "ui/linux/linux_ui.h" +@@ -17,7 +17,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool IsDesktopEnvironmentUnity() { + auto env = base::Environment::Create(); + base::nix::DesktopEnvironment desktop_env = +@@ -54,7 +54,7 @@ void ViewsDelegate::NotifyMenuItemFocused(const std::u + int item_count, + bool has_submenu) {} + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + gfx::ImageSkia* ViewsDelegate::GetDefaultWindowIcon() const { + return nullptr; + } +@@ -82,7 +82,7 @@ bool ViewsDelegate::WindowManagerProvidesTitleBar(bool + } + + bool ViewsDelegate::WindowManagerProvidesTitleBar(bool maximized) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Ubuntu Unity, the system always provides a title bar for maximized + // windows. + if (!maximized) diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_views_electron__views__delegate.h b/devel/electron36/files/patch-electron_shell_browser_ui_views_electron__views__delegate.h new file mode 100644 index 000000000000..191556684fc1 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_views_electron__views__delegate.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/views/electron_views_delegate.h.orig 2025-01-29 20:10:57 UTC ++++ electron/shell/browser/ui/views/electron_views_delegate.h +@@ -44,7 +44,7 @@ class ViewsDelegate : public views::ViewsDelegate { + HICON GetSmallWindowIcon() const override; + int GetAppbarAutohideEdges(HMONITOR monitor, + base::OnceClosure callback) override; +-#elif BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#elif (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + gfx::ImageSkia* GetDefaultWindowIcon() const override; + #endif + std::unique_ptr<views::NonClientFrameView> CreateDefaultNonClientFrameView( diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_views_menu__bar.cc b/devel/electron36/files/patch-electron_shell_browser_ui_views_menu__bar.cc new file mode 100644 index 000000000000..8dc6661254b2 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_views_menu__bar.cc @@ -0,0 +1,38 @@ +--- electron/shell/browser/ui/views/menu_bar.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/ui/views/menu_bar.cc +@@ -14,7 +14,7 @@ + #include "ui/views/background.h" + #include "ui/views/layout/box_layout.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/gtk/gtk_util.h" // nogncheck + #endif + +@@ -213,7 +213,7 @@ void MenuBar::RefreshColorCache(const ui::NativeTheme* + + void MenuBar::RefreshColorCache(const ui::NativeTheme* theme) { + if (theme) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + background_color_ = gtk::GetBgColor("GtkMenuBar#menubar"); + enabled_color_ = + gtk::GetFgColor("GtkMenuBar#menubar GtkMenuItem#menuitem GtkLabel"); +@@ -239,7 +239,7 @@ void MenuBar::UpdateViewColors() { + } + + void MenuBar::UpdateViewColors() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // set menubar background color + SetBackground(views::CreateSolidBackground(background_color_)); + #endif +@@ -247,7 +247,7 @@ void MenuBar::UpdateViewColors() { + // set child colors + if (menu_model_ == nullptr) + return; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const auto& textColor = + window_->IsFocused() ? enabled_color_ : disabled_color_; + for (views::View* child : GetChildrenInZOrder()) { diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_views_menu__bar.h b/devel/electron36/files/patch-electron_shell_browser_ui_views_menu__bar.h new file mode 100644 index 000000000000..592f9d691f77 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_views_menu__bar.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/views/menu_bar.h.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/ui/views/menu_bar.h +@@ -81,7 +81,7 @@ class MenuBar : public views::AccessiblePaneView, + View* FindAccelChild(char16_t key); + + SkColor background_color_; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + SkColor enabled_color_; + SkColor disabled_color_; + #endif diff --git a/devel/electron36/files/patch-electron_shell_browser_ui_views_submenu__button.cc b/devel/electron36/files/patch-electron_shell_browser_ui_views_submenu__button.cc new file mode 100644 index 000000000000..7ea23af2accb --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_browser_ui_views_submenu__button.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/views/submenu_button.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/browser/ui/views/submenu_button.cc +@@ -22,7 +22,7 @@ SubmenuButton::SubmenuButton(PressedCallback callback, + const SkColor& background_color) + : views::MenuButton(std::move(callback), gfx::RemoveAccelerator(title)), + background_color_(background_color) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Don't use native style border. + SetBorder(CreateDefaultBorder()); + #endif diff --git a/devel/electron36/files/patch-electron_shell_common_api_electron__api__clipboard.cc b/devel/electron36/files/patch-electron_shell_common_api_electron__api__clipboard.cc new file mode 100644 index 000000000000..acf4dc41f5c6 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_api_electron__api__clipboard.cc @@ -0,0 +1,20 @@ +--- electron/shell/common/api/electron_api_clipboard.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/common/api/electron_api_clipboard.cc +@@ -59,7 +59,7 @@ std::string Clipboard::Read(const std::string& format_ + ui::ClipboardFormatType::CustomPlatformType(format_string)); + bool rawFormatAvailable = clipboard->IsFormatAvailable( + rawFormat, ui::ClipboardBuffer::kCopyPaste, /* data_dst = */ nullptr); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!rawFormatAvailable) { + rawFormatAvailable = clipboard->IsFormatAvailable( + rawFormat, ui::ClipboardBuffer::kSelection, /* data_dst = */ nullptr); +@@ -75,7 +75,7 @@ std::string Clipboard::Read(const std::string& format_ + custom_format_names = + clipboard->ExtractCustomPlatformNames(ui::ClipboardBuffer::kCopyPaste, + /* data_dst = */ nullptr); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!custom_format_names.contains(format_string)) { + custom_format_names = + clipboard->ExtractCustomPlatformNames(ui::ClipboardBuffer::kSelection, diff --git a/devel/electron36/files/patch-electron_shell_common_api_electron__api__native__image.cc b/devel/electron36/files/patch-electron_shell_common_api_electron__api__native__image.cc new file mode 100644 index 000000000000..135c82833aac --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_api_electron__api__native__image.cc @@ -0,0 +1,11 @@ +--- electron/shell/common/api/electron_api_native_image.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/common/api/electron_api_native_image.cc +@@ -630,7 +630,7 @@ void Initialize(v8::Local<v8::Object> exports, + native_image.SetMethod("createFromDataURL", &NativeImage::CreateFromDataURL); + native_image.SetMethod("createFromNamedImage", + &NativeImage::CreateFromNamedImage); +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + native_image.SetMethod("createThumbnailFromPath", + &NativeImage::CreateThumbnailFromPath); + #endif diff --git a/devel/electron36/files/patch-electron_shell_common_api_electron__api__native__image.h b/devel/electron36/files/patch-electron_shell_common_api_electron__api__native__image.h new file mode 100644 index 000000000000..efa01f87ddb7 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_api_electron__api__native__image.h @@ -0,0 +1,11 @@ +--- electron/shell/common/api/electron_api_native_image.h.orig 2024-10-22 02:29:46 UTC ++++ electron/shell/common/api/electron_api_native_image.h +@@ -80,7 +80,7 @@ class NativeImage final : public gin::Wrappable<Native + const GURL& url); + static gin::Handle<NativeImage> CreateFromNamedImage(gin::Arguments* args, + std::string name); +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + static v8::Local<v8::Promise> CreateThumbnailFromPath( + v8::Isolate* isolate, + const base::FilePath& path, diff --git a/devel/electron36/files/patch-electron_shell_common_api_electron__bindings.cc b/devel/electron36/files/patch-electron_shell_common_api_electron__bindings.cc new file mode 100644 index 000000000000..55b2384d9ed5 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_api_electron__bindings.cc @@ -0,0 +1,11 @@ +--- electron/shell/common/api/electron_bindings.cc.orig 2025-03-10 00:01:50 UTC ++++ electron/shell/common/api/electron_bindings.cc +@@ -254,7 +254,7 @@ void ElectronBindings::DidReceiveMemoryDump( + if (target_pid == dump.pid()) { + auto dict = gin_helper::Dictionary::CreateEmpty(isolate); + const auto& osdump = dump.os_dump(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + dict.Set("residentSet", osdump.resident_set_kb); + #endif + dict.Set("private", osdump.private_footprint_kb); diff --git a/devel/electron36/files/patch-electron_shell_common_electron__command__line.cc b/devel/electron36/files/patch-electron_shell_common_electron__command__line.cc new file mode 100644 index 000000000000..7a17151bb3cc --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_electron__command__line.cc @@ -0,0 +1,11 @@ +--- electron/shell/common/electron_command_line.cc.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/common/electron_command_line.cc +@@ -35,7 +35,7 @@ std::vector<std::string> ElectronCommandLine::AsUtf8() + #endif + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // static + void ElectronCommandLine::InitializeFromCommandLine() { + argv_ = base::CommandLine::ForCurrentProcess()->argv(); diff --git a/devel/electron36/files/patch-electron_shell_common_electron__command__line.h b/devel/electron36/files/patch-electron_shell_common_electron__command__line.h new file mode 100644 index 000000000000..d57f83b977e4 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_electron__command__line.h @@ -0,0 +1,11 @@ +--- electron/shell/common/electron_command_line.h.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/common/electron_command_line.h +@@ -24,7 +24,7 @@ class ElectronCommandLine { + + static void Init(int argc, base::CommandLine::CharType const* const* argv); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux the command line has to be read from base::CommandLine since + // it is using zygote. + static void InitializeFromCommandLine(); diff --git a/devel/electron36/files/patch-electron_shell_common_electron__paths.h b/devel/electron36/files/patch-electron_shell_common_electron__paths.h new file mode 100644 index 000000000000..5ca6a126e4b3 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_electron__paths.h @@ -0,0 +1,11 @@ +--- electron/shell/common/electron_paths.h.orig 2022-08-03 15:31:32 UTC ++++ electron/shell/common/electron_paths.h +@@ -30,7 +30,7 @@ enum { + DIR_RECENT, // Directory where recent files live + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + DIR_APP_DATA, // Application Data directory under the user profile. + #endif + diff --git a/devel/electron36/files/patch-electron_shell_common_gin__converters_osr__converter.cc b/devel/electron36/files/patch-electron_shell_common_gin__converters_osr__converter.cc new file mode 100644 index 000000000000..533ba04a4988 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_gin__converters_osr__converter.cc @@ -0,0 +1,11 @@ +--- electron/shell/common/gin_converters/osr_converter.cc.orig 2025-05-07 07:36:13 UTC ++++ electron/shell/common/gin_converters/osr_converter.cc +@@ -115,7 +115,7 @@ v8::Local<v8::Value> Converter<electron::OffscreenShar + electron::Buffer::Copy( + isolate, base::byte_span_from_ref(val.shared_texture_handle)) + .ToLocalChecked()); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto v8_planes = base::ToVector(val.planes, [isolate](const auto& plane) { + gin::Dictionary v8_plane(isolate, v8::Object::New(isolate)); + v8_plane.Set("stride", plane.stride); diff --git a/devel/electron36/files/patch-electron_shell_common_gin__converters_std__converter.h b/devel/electron36/files/patch-electron_shell_common_gin__converters_std__converter.h new file mode 100644 index 000000000000..fe32c3d95de3 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_gin__converters_std__converter.h @@ -0,0 +1,11 @@ +--- electron/shell/common/gin_converters/std_converter.h.orig 2025-04-17 14:56:35 UTC ++++ electron/shell/common/gin_converters/std_converter.h +@@ -57,7 +57,7 @@ struct Converter<std::array<T, N>> { + } + }; + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + template <> + struct Converter<unsigned long> { // NOLINT(runtime/int) + static v8::Local<v8::Value> ToV8(v8::Isolate* isolate, diff --git a/devel/electron36/files/patch-electron_shell_common_node__bindings.cc b/devel/electron36/files/patch-electron_shell_common_node__bindings.cc new file mode 100644 index 000000000000..0fac3385e2f7 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_node__bindings.cc @@ -0,0 +1,38 @@ +--- electron/shell/common/node_bindings.cc.orig 2025-04-04 05:26:44 UTC ++++ electron/shell/common/node_bindings.cc +@@ -46,7 +46,7 @@ + #include "third_party/electron_node/src/debug_utils.h" + #include "third_party/electron_node/src/module_wrap.h" + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + #include "shell/common/crash_keys.h" + #endif + +@@ -161,7 +161,7 @@ void V8FatalErrorCallback(const char* location, const + void V8FatalErrorCallback(const char* location, const char* message) { + LOG(ERROR) << "Fatal error in V8: " << location << " " << message; + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + electron::crash_keys::SetCrashKey("electron.v8-fatal.message", message); + electron::crash_keys::SetCrashKey("electron.v8-fatal.location", location); + #endif +@@ -183,7 +183,7 @@ void V8OOMErrorCallback(const char* location, const v8 + LOG(ERROR) << "OOM detail: " << details.detail; + } + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + electron::crash_keys::SetCrashKey("electron.v8-oom.is_heap_oom", + std::to_string(details.is_heap_oom)); + if (location) { +@@ -564,7 +564,7 @@ void NodeBindings::Initialize(v8::Local<v8::Context> c + TRACE_EVENT0("electron", "NodeBindings::Initialize"); + // Open node's error reporting system for browser process. + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Get real command line in renderer process forked by zygote. + if (browser_env_ != BrowserEnvironment::kBrowser) + ElectronCommandLine::InitializeFromCommandLine(); diff --git a/devel/electron36/files/patch-electron_shell_common_node__bindings__linux.cc b/devel/electron36/files/patch-electron_shell_common_node__bindings__linux.cc new file mode 100644 index 000000000000..0dabd6390a8d --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_node__bindings__linux.cc @@ -0,0 +1,69 @@ +--- electron/shell/common/node_bindings_linux.cc.orig 2023-10-20 08:29:17 UTC ++++ electron/shell/common/node_bindings_linux.cc +@@ -4,12 +4,25 @@ + + #include "shell/common/node_bindings_linux.h" + ++#if !defined(OS_BSD) + #include <sys/epoll.h> ++#else ++#include <errno.h> ++#include <sys/select.h> ++#include <sys/sysctl.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#endif + + namespace electron { + + NodeBindingsLinux::NodeBindingsLinux(BrowserEnvironment browser_env) ++#if !defined(OS_BSD) + : NodeBindings(browser_env), epoll_(epoll_create(1)) { ++#else ++ : NodeBindings(browser_env) { ++#endif ++#if !defined(OS_BSD) + auto* const event_loop = uv_loop(); + + int backend_fd = uv_backend_fd(event_loop); +@@ -17,11 +30,13 @@ NodeBindingsLinux::NodeBindingsLinux(BrowserEnvironmen + ev.events = EPOLLIN; + ev.data.fd = backend_fd; + epoll_ctl(epoll_, EPOLL_CTL_ADD, backend_fd, &ev); ++#endif + } + + void NodeBindingsLinux::PollEvents() { + auto* const event_loop = uv_loop(); + ++#if !defined(OS_BSD) + int timeout = uv_backend_timeout(event_loop); + + // Wait for new libuv events. +@@ -30,6 +45,26 @@ void NodeBindingsLinux::PollEvents() { + struct epoll_event ev; + r = epoll_wait(epoll_, &ev, 1, timeout); + } while (r == -1 && errno == EINTR); ++#else ++ struct timeval tv; ++ int timeout = uv_backend_timeout(event_loop); ++ if (timeout != -1) { ++ tv.tv_sec = timeout / 1000; ++ tv.tv_usec = (timeout % 1000) * 1000; ++ } ++ ++ fd_set readset; ++ int fd = uv_backend_fd(event_loop); ++ FD_ZERO(&readset); ++ FD_SET(fd, &readset); ++ ++ // Wait for new libuv events. ++ int r; ++ do { ++ r = select(fd + 1, &readset, nullptr, nullptr, ++ timeout == -1 ? nullptr : &tv); ++ } while (r == -1 && errno == EINTR); ++#endif + } + + // static diff --git a/devel/electron36/files/patch-electron_shell_common_platform__util.h b/devel/electron36/files/patch-electron_shell_common_platform__util.h new file mode 100644 index 000000000000..ab0d33da03d6 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_common_platform__util.h @@ -0,0 +1,11 @@ +--- electron/shell/common/platform_util.h.orig 2024-02-21 16:26:48 UTC ++++ electron/shell/common/platform_util.h +@@ -56,7 +56,7 @@ bool SetLoginItemEnabled(const std::string& type, + bool enabled); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns a success flag. + // Unlike libgtkui, does *not* use "chromium-browser.desktop" as a fallback. + bool GetDesktopName(std::string* setme); diff --git a/devel/electron36/files/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc b/devel/electron36/files/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc new file mode 100644 index 000000000000..56b9420c6ec8 --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc @@ -0,0 +1,36 @@ +--- electron/shell/renderer/api/electron_api_crash_reporter_renderer.cc.orig 2023-02-06 19:29:11 UTC ++++ electron/shell/renderer/api/electron_api_crash_reporter_renderer.cc +@@ -6,7 +6,7 @@ + #include "shell/common/gin_helper/dictionary.h" + #include "shell/common/node_includes.h" + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + #include "shell/common/crash_keys.h" + #endif + +@@ -14,13 +14,13 @@ namespace { + + v8::Local<v8::Value> GetParameters(v8::Isolate* isolate) { + std::map<std::string, std::string> keys; +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + electron::crash_keys::GetCrashKeys(&keys); + #endif + return gin::ConvertToV8(isolate, keys); + } + +-#if IS_MAS_BUILD() ++#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) + void SetCrashKeyStub(const std::string& key, const std::string& value) {} + void ClearCrashKeyStub(const std::string& key) {} + #endif +@@ -30,7 +30,7 @@ void Initialize(v8::Local<v8::Object> exports, + v8::Local<v8::Context> context, + void* priv) { + gin_helper::Dictionary dict(context->GetIsolate(), exports); +-#if IS_MAS_BUILD() ++#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) + dict.SetMethod("addExtraParameter", &SetCrashKeyStub); + dict.SetMethod("removeExtraParameter", &ClearCrashKeyStub); + #else diff --git a/devel/electron36/files/patch-electron_shell_services_node_node__service.cc b/devel/electron36/files/patch-electron_shell_services_node_node__service.cc new file mode 100644 index 000000000000..51fe435d783f --- /dev/null +++ b/devel/electron36/files/patch-electron_shell_services_node_node__service.cc @@ -0,0 +1,20 @@ +--- electron/shell/services/node/node_service.cc.orig 2025-01-29 20:10:57 UTC ++++ electron/shell/services/node/node_service.cc +@@ -22,7 +22,7 @@ + #include "shell/common/node_includes.h" + #include "shell/services/node/parent_port.h" + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + #include "shell/common/crash_keys.h" + #endif + +@@ -39,7 +39,7 @@ void V8FatalErrorCallback(const char* location, const + g_client_remote->OnV8FatalError(location, outstream.str()); + } + +-#if !IS_MAS_BUILD() ++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) + electron::crash_keys::SetCrashKey("electron.v8-fatal.message", message); + electron::crash_keys::SetCrashKey("electron.v8-fatal.location", location); + #endif diff --git a/devel/electron36/files/patch-electron_spec_api-app-spec.ts b/devel/electron36/files/patch-electron_spec_api-app-spec.ts new file mode 100644 index 000000000000..814150f4b959 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-app-spec.ts @@ -0,0 +1,124 @@ +--- electron/spec/api-app-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/api-app-spec.ts +@@ -126,11 +126,11 @@ describe('app module', () => { + }); + + describe('app.getPreferredSystemLanguages()', () => { +- ifit(process.platform !== 'linux')('should not be empty', () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not be empty', () => { + expect(app.getPreferredSystemLanguages().length).to.not.equal(0); + }); + +- ifit(process.platform === 'linux')('should be empty or contain C entry', () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('should be empty or contain C entry', () => { + const languages = app.getPreferredSystemLanguages(); + if (languages.length) { + expect(languages).to.not.include('C'); +@@ -193,7 +193,7 @@ describe('app module', () => { + expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound'); + }); + +- ifit(['darwin', 'linux'].includes(process.platform))('exits gracefully', async function () { ++ ifit(['darwin', 'linux', 'freebsd'].includes(process.platform))('exits gracefully', async function () { + const electronPath = process.execPath; + const appPath = path.join(fixturesPath, 'api', 'singleton'); + appProcess = cp.spawn(electronPath, [appPath]); +@@ -447,7 +447,7 @@ describe('app module', () => { + // let w = null + + // before(function () { +- // if (process.platform !== 'linux') { ++ // if (process.platform !== 'linux' && process.platform !== 'freebsd') { + // this.skip() + // } + // }) +@@ -554,7 +554,7 @@ describe('app module', () => { + describe('app.badgeCount', () => { + const platformIsNotSupported = + (process.platform === 'win32') || +- (process.platform === 'linux' && !app.isUnityRunning()); ++ ((process.platform === 'linux' || process.platform === 'freebsd') && !app.isUnityRunning()); + + const expectedBadgeCount = 42; + +@@ -598,7 +598,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64'))('app.get/setLoginItemSettings API', function () { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64'))('app.get/setLoginItemSettings API', function () { + const isMac = process.platform === 'darwin'; + const isWin = process.platform === 'win32'; + +@@ -978,7 +978,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('accessibilitySupportEnabled property', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('accessibilitySupportEnabled property', () => { + it('with properties', () => { + it('can set accessibility support enabled', () => { + expect(app.accessibilitySupportEnabled).to.eql(false); +@@ -1178,7 +1178,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('select-client-certificate event', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('select-client-certificate event', () => { + let w: BrowserWindow; + + before(function () { +@@ -1313,7 +1313,7 @@ describe('app module', () => { + + describe('getApplicationNameForProtocol()', () => { + // TODO: Linux CI doesn't have registered http & https handlers +- ifit(!(process.env.CI && process.platform === 'linux'))('returns application names for common protocols', function () { ++ ifit(!(process.env.CI && (process.platform === 'linux' || process.platform === 'freebsd')))('returns application names for common protocols', function () { + // We can't expect particular app names here, but these protocols should + // at least have _something_ registered. Except on our Linux CI + // environment apparently. +@@ -1331,7 +1331,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('getApplicationInfoForProtocol()', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getApplicationInfoForProtocol()', () => { + it('returns promise rejection for a bogus protocol', async function () { + await expect( + app.getApplicationInfoForProtocol('bogus-protocol://') +@@ -1381,7 +1381,7 @@ describe('app module', () => { + }); + + // FIXME Get these specs running on Linux CI +- ifdescribe(process.platform !== 'linux')('getFileIcon() API', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getFileIcon() API', () => { + const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico'); + const sizes = { + small: 16, +@@ -1463,7 +1463,7 @@ describe('app module', () => { + expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0); + } + +- if (process.platform !== 'linux') { ++ if (process.platform !== 'linux' && process.platform !== 'freebsd') { + expect(entry.sandboxed).to.be.a('boolean'); + } + +@@ -1537,7 +1537,7 @@ describe('app module', () => { + + it('succeeds with complete GPUInfo', async () => { + const completeInfo = await getGPUInfo('complete'); +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + // For linux and macOS complete info is same as basic info + await verifyBasicGPUInfo(completeInfo); + const basicInfo = await getGPUInfo('basic'); +@@ -1561,7 +1561,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(!(process.platform === 'linux' && (process.arch === 'arm64' || process.arch === 'arm')))('sandbox options', () => { ++ ifdescribe(!((process.platform === 'linux' || process.platform === 'freebsd') && (process.arch === 'arm64' || process.arch === 'arm')))('sandbox options', () => { + let appProcess: cp.ChildProcess = null as any; + let server: net.Server = null as any; + const socketPath = process.platform === 'win32' ? '\\\\.\\pipe\\electron-mixed-sandbox' : '/tmp/electron-mixed-sandbox'; diff --git a/devel/electron36/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron36/files/patch-electron_spec_api-browser-window-spec.ts new file mode 100644 index 000000000000..d896186706bd --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-browser-window-spec.ts @@ -0,0 +1,182 @@ +--- electron/spec/api-browser-window-spec.ts.orig 2025-05-12 02:18:43 UTC ++++ electron/spec/api-browser-window-spec.ts +@@ -69,7 +69,7 @@ describe('BrowserWindow module', () => { + }).not.to.throw(); + }); + +- ifit(process.platform === 'linux')('does not crash when setting large window icons', async () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('does not crash when setting large window icons', async () => { + const appPath = path.join(fixtures, 'apps', 'xwindow-icon'); + const appProcess = childProcess.spawn(process.execPath, [appPath]); + await once(appProcess, 'exit'); +@@ -296,7 +296,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('BrowserWindow.getContentProtection', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('BrowserWindow.getContentProtection', () => { + afterEach(closeAllWindows); + it('can set content protection', async () => { + const w = new BrowserWindow({ show: false }); +@@ -1170,7 +1170,7 @@ describe('BrowserWindow module', () => { + + describe('BrowserWindow.minimize()', () => { + // TODO(codebytere): Enable for Linux once maximize/minimize events work in CI. +- ifit(process.platform !== 'linux')('should not be visible when the window is minimized', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not be visible when the window is minimized', async () => { + const minimize = once(w, 'minimize'); + w.minimize(); + await minimize; +@@ -1187,7 +1187,7 @@ describe('BrowserWindow module', () => { + }); + + // TODO(dsanders11): Enable for Linux once CI plays nice with these kinds of tests +- ifit(process.platform !== 'linux')('should not restore maximized windows', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not restore maximized windows', async () => { + const maximize = once(w, 'maximize'); + const shown = once(w, 'show'); + w.maximize(); +@@ -1252,7 +1252,7 @@ describe('BrowserWindow module', () => { + expect(w.isFocused()).to.equal(true); + }); + +- ifit(process.platform !== 'linux')('acquires focus status from the other windows', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('acquires focus status from the other windows', async () => { + const w1 = new BrowserWindow({ show: false }); + const w2 = new BrowserWindow({ show: false }); + const w3 = new BrowserWindow({ show: false }); +@@ -1354,7 +1354,7 @@ describe('BrowserWindow module', () => { + expect(w.isFocused()).to.equal(false); + }); + +- ifit(process.platform !== 'linux')('transfers focus status to the next window', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('transfers focus status to the next window', async () => { + const w1 = new BrowserWindow({ show: false }); + const w2 = new BrowserWindow({ show: false }); + const w3 = new BrowserWindow({ show: false }); +@@ -1813,7 +1813,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('Maximized state', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('Maximized state', () => { + it('checks normal bounds when maximized', async () => { + const bounds = w.getBounds(); + const maximize = once(w, 'maximize'); +@@ -2023,7 +2023,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('Minimized state', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('Minimized state', () => { + it('checks normal bounds when minimized', async () => { + const bounds = w.getBounds(); + const minimize = once(w, 'minimize'); +@@ -2987,7 +2987,7 @@ describe('BrowserWindow module', () => { + describe('BrowserWindow.setOpacity(opacity)', () => { + afterEach(closeAllWindows); + +- ifdescribe(process.platform !== 'linux')(('Windows and Mac'), () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')(('Windows and Mac'), () => { + it('make window with initial opacity', () => { + const w = new BrowserWindow({ show: false, opacity: 0.5 }); + expect(w.getOpacity()).to.equal(0.5); +@@ -3013,7 +3013,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform === 'linux')(('Linux'), () => { ++ ifdescribe(process.platform === 'linux' || process.platform === 'freebsd')(('Linux'), () => { + it('sets 1 regardless of parameter', () => { + const w = new BrowserWindow({ show: false }); + w.setOpacity(0); +@@ -3224,7 +3224,7 @@ describe('BrowserWindow module', () => { + expect(overlayRectPreMax.height).to.equal(size); + + // 'maximize' event is not emitted on Linux in CI. +- if (process.platform !== 'linux' && !w.isMaximized()) { ++ if ((process.platform !== 'linux' && process.platform !== 'freebsd') && !w.isMaximized()) { + const maximize = once(w, 'maximize'); + w.show(); + w.maximize(); +@@ -3290,7 +3290,7 @@ describe('BrowserWindow module', () => { + expect(preMaxHeight).to.equal(size); + + // 'maximize' event is not emitted on Linux in CI. +- if (process.platform !== 'linux' && !w.isMaximized()) { ++ if ((process.platform !== 'linux' && process.platform !== 'freebsd') && !w.isMaximized()) { + const maximize = once(w, 'maximize'); + w.show(); + w.maximize(); +@@ -3955,7 +3955,7 @@ describe('BrowserWindow module', () => { + expect(test.nodeTimers).to.equal(true); + expect(test.nodeUrl).to.equal(true); + +- if (process.platform === 'linux' && test.osSandbox) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && test.osSandbox) { + expect(test.creationTime).to.be.null('creation time'); + expect(test.systemMemoryInfo).to.be.null('system memory info'); + } else { +@@ -4460,7 +4460,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('max/minimize events', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('max/minimize events', () => { + afterEach(closeAllWindows); + it('emits an event when window is maximized', async () => { + const w = new BrowserWindow({ show: false }); +@@ -4731,7 +4731,7 @@ describe('BrowserWindow module', () => { + // TODO(zcbenz): + // This test does not run on Linux CI. See: + // https://github.com/electron/electron/issues/28699 +- ifit(process.platform === 'linux' && !process.env.CI)('should bring a minimized maximized window back to maximized state', async () => { ++ ifit((process.platform === 'linux' || process.platform === 'freebsd') && !process.env.CI)('should bring a minimized maximized window back to maximized state', async () => { + const w = new BrowserWindow({}); + const maximize = once(w, 'maximize'); + w.maximize(); +@@ -4748,7 +4748,7 @@ describe('BrowserWindow module', () => { + }); + + // TODO(dsanders11): Enable once maximize event works on Linux again on CI +- ifdescribe(process.platform !== 'linux')('BrowserWindow.maximize()', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('BrowserWindow.maximize()', () => { + afterEach(closeAllWindows); + it('should show the window if it is not currently shown', async () => { + const w = new BrowserWindow({ show: false }); +@@ -4785,7 +4785,7 @@ describe('BrowserWindow module', () => { + + // TODO(dsanders11): Enable once minimize event works on Linux again. + // See https://github.com/electron/electron/issues/28699 +- ifit(process.platform !== 'linux')('should not restore a minimized window', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not restore a minimized window', async () => { + const w = new BrowserWindow(); + const minimize = once(w, 'minimize'); + w.minimize(); +@@ -5271,7 +5271,7 @@ describe('BrowserWindow module', () => { + }); + + // On Linux there is no "resizable" property of a window. +- ifit(process.platform !== 'linux')('does affect maximizability when disabled and enabled', () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('does affect maximizability when disabled and enabled', () => { + const w = new BrowserWindow({ show: false }); + expect(w.resizable).to.be.true('resizable'); + +@@ -5481,7 +5481,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('window states (excluding Linux)', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('window states (excluding Linux)', () => { + // Not implemented on Linux. + afterEach(closeAllWindows); + +@@ -6680,7 +6680,7 @@ describe('BrowserWindow module', () => { + describe('"transparent" option', () => { + afterEach(closeAllWindows); + +- ifit(process.platform !== 'linux')('correctly returns isMaximized() when the window is maximized then minimized', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('correctly returns isMaximized() when the window is maximized then minimized', async () => { + const w = new BrowserWindow({ + frame: false, + transparent: true diff --git a/devel/electron36/files/patch-electron_spec_api-clipboard-spec.ts b/devel/electron36/files/patch-electron_spec_api-clipboard-spec.ts new file mode 100644 index 000000000000..bc01dbc688ca --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-clipboard-spec.ts @@ -0,0 +1,29 @@ +--- electron/spec/api-clipboard-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/api-clipboard-spec.ts +@@ -54,7 +54,7 @@ ifdescribe(process.platform !== 'win32' || process.arc + }); + }); + +- ifdescribe(process.platform !== 'linux')('clipboard.readBookmark', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('clipboard.readBookmark', () => { + it('returns title and url', () => { + clipboard.writeBookmark('a title', 'https://electronjs.org'); + +@@ -73,7 +73,7 @@ ifdescribe(process.platform !== 'win32' || process.arc + }); + + describe('clipboard.read()', () => { +- ifit(process.platform !== 'linux')('does not crash when reading various custom clipboard types', () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('does not crash when reading various custom clipboard types', () => { + const type = process.platform === 'darwin' ? 'NSFilenamesPboardType' : 'FileNameW'; + + expect(() => { +@@ -114,7 +114,7 @@ ifdescribe(process.platform !== 'win32' || process.arc + const readImage = clipboard.readImage(); + expect(readImage.toDataURL()).to.equal(i.toDataURL()); + +- if (process.platform !== 'linux') { ++ if (process.platform !== 'linux' && process.platform !== 'freebsd') { + if (process.platform !== 'win32') { + expect(clipboard.readBookmark()).to.deep.equal(bookmark); + } else { diff --git a/devel/electron36/files/patch-electron_spec_api-content-tracing-spec.ts b/devel/electron36/files/patch-electron_spec_api-content-tracing-spec.ts new file mode 100644 index 000000000000..c54661107ec1 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-content-tracing-spec.ts @@ -0,0 +1,20 @@ +--- electron/spec/api-content-tracing-spec.ts.orig 2025-04-04 05:26:44 UTC ++++ electron/spec/api-content-tracing-spec.ts +@@ -9,7 +9,7 @@ import { ifdescribe } from './lib/spec-helpers'; + import { ifdescribe } from './lib/spec-helpers'; + + // FIXME: The tests are skipped on linux arm/arm64 +-ifdescribe(!(['arm', 'arm64'].includes(process.arch)) || (process.platform !== 'linux'))('contentTracing', () => { ++ifdescribe(!(['arm', 'arm64'].includes(process.arch)) || (process.platform !== 'linux' && process.platform !== 'freebsd'))('contentTracing', () => { + const record = async (options: TraceConfig | TraceCategoriesAndOptions, outputFilePath: string | undefined, recordTimeInMilliseconds = 1e1) => { + await app.whenReady(); + +@@ -91,7 +91,7 @@ ifdescribe(!(['arm', 'arm64'].includes(process.arch)) + }); + }); + +- ifdescribe(process.platform !== 'linux')('stopRecording', function () { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('stopRecording', function () { + if (process.platform === 'win32' && process.arch === 'arm64') { + // WOA needs more time + this.timeout(10e3); diff --git a/devel/electron36/files/patch-electron_spec_api-crash-reporter-spec.ts b/devel/electron36/files/patch-electron_spec_api-crash-reporter-spec.ts new file mode 100644 index 000000000000..484c399c9179 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-crash-reporter-spec.ts @@ -0,0 +1,56 @@ +--- electron/spec/api-crash-reporter-spec.ts.orig 2024-10-22 02:29:46 UTC ++++ electron/spec/api-crash-reporter-spec.ts +@@ -14,7 +14,7 @@ const isWindowsOnArm = process.platform === 'win32' && + import { ifdescribe, ifit, defer, startRemoteControlApp, repeatedly, listen } from './lib/spec-helpers'; + + const isWindowsOnArm = process.platform === 'win32' && process.arch === 'arm64'; +-const isLinuxOnArm = process.platform === 'linux' && process.arch.includes('arm'); ++const isLinuxOnArm = ((process.platform === 'linux' || process.platform === 'freebsd') && process.arch.includes('arm')); + + type CrashInfo = { + prod: string +@@ -47,7 +47,7 @@ function checkCrash (expectedProcessType: string, fiel + + // TODO(nornagon): minidumps are sometimes (not always) turning up empty on + // 32-bit Linux. Figure out why. +- if (!(process.platform === 'linux' && process.arch === 'ia32')) { ++ if (!((process.platform === 'linux' || process.platform === 'freebsd') && process.arch === 'ia32')) { + expect(fields.upload_file_minidump.length).to.be.greaterThan(0); + } + } +@@ -184,7 +184,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e + + // Ensures that passing in crashpadHandlerPID flag for Linx child processes + // does not affect child process args. +- ifit(process.platform === 'linux')('ensure linux child process args are not modified', async () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('ensure linux child process args are not modified', async () => { + const { port, waitForCrash } = await startServer(); + let exitCode: number | null = null; + const appPath = path.join(__dirname, 'fixtures', 'apps', 'crash'); +@@ -533,7 +533,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e + } + } + +- const processList = process.platform === 'linux' ++ const processList = (process.platform === 'linux' || process.platform === 'freebsd') + ? ['main', 'renderer', 'sandboxed-renderer'] + : ['main', 'renderer', 'sandboxed-renderer', 'node']; + for (const crashingProcess of processList) { +@@ -546,7 +546,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e + return app.getPath('crashDumps'); + }); + let reportsDir = crashesDir; +- if (process.platform === 'darwin' || process.platform === 'linux') { ++ if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd') { + reportsDir = path.join(crashesDir, 'completed'); + } else if (process.platform === 'win32') { + reportsDir = path.join(crashesDir, 'reports'); +@@ -570,7 +570,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e + expect(remoteCrashesDir).to.equal(crashesDir); + + let reportsDir = crashesDir; +- if (process.platform === 'darwin' || process.platform === 'linux') { ++ if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd') { + reportsDir = path.join(crashesDir, 'completed'); + } else if (process.platform === 'win32') { + reportsDir = path.join(crashesDir, 'reports'); diff --git a/devel/electron36/files/patch-electron_spec_api-desktop-capturer-spec.ts b/devel/electron36/files/patch-electron_spec_api-desktop-capturer-spec.ts new file mode 100644 index 000000000000..4511304eebfc --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-desktop-capturer-spec.ts @@ -0,0 +1,47 @@ +--- electron/spec/api-desktop-capturer-spec.ts.orig 2025-03-26 14:46:58 UTC ++++ electron/spec/api-desktop-capturer-spec.ts +@@ -45,7 +45,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + }); + + // Linux doesn't return any window sources. +- ifit(process.platform !== 'linux')('returns an empty display_id for window sources', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('returns an empty display_id for window sources', async () => { + const w = new BrowserWindow({ width: 200, height: 200 }); + await w.loadURL('about:blank'); + +@@ -57,7 +57,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + } + }); + +- ifit(process.platform !== 'linux')('returns display_ids matching the Screen API', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('returns display_ids matching the Screen API', async () => { + const displays = screen.getAllDisplays(); + const sources = await desktopCapturer.getSources({ types: ['screen'] }); + expect(sources).to.be.an('array').of.length(displays.length); +@@ -118,7 +118,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + // TODO(julien.isorce): investigate why |sources| is empty on the linux + // bots while it is not on my workstation, as expected, with and without + // the --ci parameter. +- if (process.platform === 'linux' && sources.length === 0) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && sources.length === 0) { + it.skip('desktopCapturer.getSources returned an empty source list'); + return; + } +@@ -154,7 +154,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + // TODO(julien.isorce): investigate why |sources| is empty on the linux + // bots while it is not on my workstation, as expected, with and without + // the --ci parameter. +- if (process.platform === 'linux' && sources.length === 0) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && sources.length === 0) { + it.skip('desktopCapturer.getSources returned an empty source list'); + return; + } +@@ -223,7 +223,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + // TODO(julien.isorce): investigate why |sources| is empty on the linux + // bots while it is not on my workstation, as expected, with and without + // the --ci parameter. +- if (process.platform === 'linux' && sources.length === 0) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && sources.length === 0) { + destroyWindows(); + it.skip('desktopCapturer.getSources returned an empty source list'); + return; diff --git a/devel/electron36/files/patch-electron_spec_api-menu-spec.ts b/devel/electron36/files/patch-electron_spec_api-menu-spec.ts new file mode 100644 index 000000000000..2d4a1fa635e6 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-menu-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-menu-spec.ts.orig 2025-05-06 23:52:46 UTC ++++ electron/spec/api-menu-spec.ts +@@ -891,7 +891,7 @@ describe('Menu module', function () { + // https://github.com/electron/electron/issues/35724 + // Maximizing window is enough to trigger the bug + // FIXME(dsanders11): Test always passes on CI, even pre-fix +- ifit(process.platform === 'linux' && !process.env.CI)('does not trigger issue #35724', (done) => { ++ ifit((process.platform === 'linux' || process.platform === 'freebsd') && !process.env.CI)('does not trigger issue #35724', (done) => { + const showAndCloseMenu = async () => { + await setTimeout(1000); + menu.popup({ window: w, x: 50, y: 50 }); diff --git a/devel/electron36/files/patch-electron_spec_api-native-image-spec.ts b/devel/electron36/files/patch-electron_spec_api-native-image-spec.ts new file mode 100644 index 000000000000..006f42eaa4b9 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-native-image-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-native-image-spec.ts.orig 2025-05-07 07:36:13 UTC ++++ electron/spec/api-native-image-spec.ts +@@ -434,7 +434,7 @@ describe('nativeImage module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('createThumbnailFromPath(path, size)', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('createThumbnailFromPath(path, size)', () => { + useRemoteContext({ webPreferences: { contextIsolation: false, nodeIntegration: true } }); + + it('throws when invalid size is passed', async () => { diff --git a/devel/electron36/files/patch-electron_spec_api-net-log-spec.ts b/devel/electron36/files/patch-electron_spec_api-net-log-spec.ts new file mode 100644 index 000000000000..5a52c3198a13 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-net-log-spec.ts @@ -0,0 +1,29 @@ +--- electron/spec/api-net-log-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/api-net-log-spec.ts +@@ -121,7 +121,7 @@ describe('netLog module', () => { + expect(JSON.parse(dump).events.some((x: any) => x.params && x.params.bytes && Buffer.from(x.params.bytes, 'base64').includes(unique))).to.be.true('uuid present in dump'); + }); + +- ifit(process.platform !== 'linux')('should begin and end logging automatically when --log-net-log is passed', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should begin and end logging automatically when --log-net-log is passed', async () => { + const appProcess = ChildProcess.spawn(process.execPath, + [appPath], { + env: { +@@ -134,7 +134,7 @@ describe('netLog module', () => { + expect(fs.existsSync(dumpFile)).to.be.true('dump file exists'); + }); + +- ifit(process.platform !== 'linux')('should begin and end logging automatically when --log-net-log is passed, and behave correctly when .startLogging() and .stopLogging() is called', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should begin and end logging automatically when --log-net-log is passed, and behave correctly when .startLogging() and .stopLogging() is called', async () => { + const appProcess = ChildProcess.spawn(process.execPath, + [appPath], { + env: { +@@ -150,7 +150,7 @@ describe('netLog module', () => { + expect(fs.existsSync(dumpFileDynamic)).to.be.true('dynamic dump file exists'); + }); + +- ifit(process.platform !== 'linux')('should end logging automatically when only .startLogging() is called', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should end logging automatically when only .startLogging() is called', async () => { + const appProcess = ChildProcess.spawn(process.execPath, + [appPath], { + env: { diff --git a/devel/electron36/files/patch-electron_spec_api-notification-dbus-spec.ts b/devel/electron36/files/patch-electron_spec_api-notification-dbus-spec.ts new file mode 100644 index 000000000000..c3a3d9254328 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-notification-dbus-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-notification-dbus-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/api-notification-dbus-spec.ts +@@ -19,7 +19,7 @@ const fixturesPath = path.join(__dirname, 'fixtures'); + + const fixturesPath = path.join(__dirname, 'fixtures'); + +-const skip = process.platform !== 'linux' || ++const skip = (process.platform !== 'linux' && process.platform !== 'freebsd') || + process.arch === 'ia32' || + process.arch.indexOf('arm') === 0 || + !process.env.DBUS_SESSION_BUS_ADDRESS; diff --git a/devel/electron36/files/patch-electron_spec_api-power-monitor-spec.ts b/devel/electron36/files/patch-electron_spec_api-power-monitor-spec.ts new file mode 100644 index 000000000000..7dccb7c9c5b5 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-power-monitor-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-power-monitor-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/api-power-monitor-spec.ts +@@ -18,7 +18,7 @@ describe('powerMonitor', () => { + describe('powerMonitor', () => { + let logindMock: any, dbusMockPowerMonitor: any, getCalls: any, emitSignal: any, reset: any; + +- ifdescribe(process.platform === 'linux' && process.env.DBUS_SYSTEM_BUS_ADDRESS != null)('when powerMonitor module is loaded with dbus mock', () => { ++ ifdescribe((process.platform === 'linux' || process.platform === 'freebsd') && process.env.DBUS_SYSTEM_BUS_ADDRESS != null)('when powerMonitor module is loaded with dbus mock', () => { + before(async () => { + const systemBus = dbus.systemBus(); + const loginService = systemBus.getService('org.freedesktop.login1'); diff --git a/devel/electron36/files/patch-electron_spec_api-process-spec.ts b/devel/electron36/files/patch-electron_spec_api-process-spec.ts new file mode 100644 index 000000000000..5f3e1bff2b35 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-process-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-process-spec.ts.orig 2025-03-12 08:26:33 UTC ++++ electron/spec/api-process-spec.ts +@@ -39,7 +39,7 @@ describe('process module', () => { + it('resolves promise successfully with valid data', async () => { + const memoryInfo = await invoke(() => process.getProcessMemoryInfo()); + expect(memoryInfo).to.be.an('object'); +- if (process.platform === 'linux' || process.platform === 'win32') { ++ if (process.platform === 'linux' || process.platform === 'win32' || process.platform === 'freebsd') { + expect(memoryInfo.residentSet).to.be.a('number').greaterThan(0); + } + expect(memoryInfo.private).to.be.a('number').greaterThan(0); diff --git a/devel/electron36/files/patch-electron_spec_api-protocol-spec.ts b/devel/electron36/files/patch-electron_spec_api-protocol-spec.ts new file mode 100644 index 000000000000..3195a7eabb74 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-protocol-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-protocol-spec.ts.orig 2024-11-07 16:14:43 UTC ++++ electron/spec/api-protocol-spec.ts +@@ -1738,7 +1738,7 @@ describe('protocol module', () => { + + // TODO(nornagon): this test doesn't pass on Linux currently, investigate. + // test is also flaky on CI on macOS so it is currently disabled there as well. +- ifit(process.platform !== 'linux' && (!process.env.CI || process.platform !== 'darwin'))('is fast', async () => { ++ ifit((process.platform !== 'linux' && process.platform !== 'freebsd') && (!process.env.CI || process.platform !== 'darwin'))('is fast', async () => { + // 128 MB of spaces. + const chunk = new Uint8Array(128 * 1024 * 1024); + chunk.fill(' '.charCodeAt(0)); diff --git a/devel/electron36/files/patch-electron_spec_api-safe-storage-spec.ts b/devel/electron36/files/patch-electron_spec_api-safe-storage-spec.ts new file mode 100644 index 000000000000..fe7d80e9f5e6 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-safe-storage-spec.ts @@ -0,0 +1,20 @@ +--- electron/spec/api-safe-storage-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/api-safe-storage-spec.ts +@@ -29,7 +29,7 @@ describe('safeStorage module', () => { + + describe('safeStorage module', () => { + before(() => { +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + safeStorage.setUsePlainTextEncryption(true); + } + }); +@@ -47,7 +47,7 @@ describe('safeStorage module', () => { + }); + }); + +- ifdescribe(process.platform === 'linux')('SafeStorage.getSelectedStorageBackend()', () => { ++ ifdescribe(process.platform === 'linux' || process.platform === 'freebsd')('SafeStorage.getSelectedStorageBackend()', () => { + it('should return a valid backend', () => { + expect(safeStorage.getSelectedStorageBackend()).to.equal('basic_text'); + }); diff --git a/devel/electron36/files/patch-electron_spec_api-screen-spec.ts b/devel/electron36/files/patch-electron_spec_api-screen-spec.ts new file mode 100644 index 000000000000..b1ffef57876f --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-screen-spec.ts @@ -0,0 +1,29 @@ +--- electron/spec/api-screen-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/api-screen-spec.ts +@@ -95,7 +95,7 @@ describe('screen module', () => { + + const { size } = display!; + +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + expect(size).to.have.property('width').that.is.a('number'); + expect(size).to.have.property('height').that.is.a('number'); + } else { +@@ -109,7 +109,7 @@ describe('screen module', () => { + + const { workAreaSize } = display!; + +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + expect(workAreaSize).to.have.property('width').that.is.a('number'); + expect(workAreaSize).to.have.property('height').that.is.a('number'); + } else { +@@ -125,7 +125,7 @@ describe('screen module', () => { + expect(bounds).to.have.property('x').that.is.a('number'); + expect(bounds).to.have.property('y').that.is.a('number'); + +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + expect(bounds).to.have.property('width').that.is.a('number'); + expect(bounds).to.have.property('height').that.is.a('number'); + } else { diff --git a/devel/electron36/files/patch-electron_spec_api-shell-spec.ts b/devel/electron36/files/patch-electron_spec_api-shell-spec.ts new file mode 100644 index 000000000000..24ea3fed330e --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-shell-spec.ts @@ -0,0 +1,23 @@ +--- electron/spec/api-shell-spec.ts.orig 2025-01-22 18:19:12 UTC ++++ electron/spec/api-shell-spec.ts +@@ -37,7 +37,7 @@ describe('shell module', () => { + + afterEach(async () => { + // reset env vars to prevent side effects +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + process.env.DE = envVars.de; + process.env.BROWSER = envVars.browser; + process.env.DISPLAY = envVars.display; +@@ -54,6 +54,11 @@ describe('shell module', () => { + let requestReceived: Promise<any>; + if (process.platform === 'linux') { + process.env.BROWSER = '/bin/true'; ++ process.env.DE = 'generic'; ++ process.env.DISPLAY = ''; ++ requestReceived = Promise.resolve(); ++ } else if (process.platform === 'freebsd') { ++ process.env.BROWSER = '/usr/bin/true'; + process.env.DE = 'generic'; + process.env.DISPLAY = ''; + requestReceived = Promise.resolve(); diff --git a/devel/electron36/files/patch-electron_spec_api-subframe-spec.ts b/devel/electron36/files/patch-electron_spec_api-subframe-spec.ts new file mode 100644 index 000000000000..81d8407983a5 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-subframe-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-subframe-spec.ts.orig 2025-04-04 05:26:44 UTC ++++ electron/spec/api-subframe-spec.ts +@@ -252,7 +252,7 @@ describe('subframe with non-standard schemes', () => { + }); + + // app.getAppMetrics() does not return sandbox information on Linux. +-ifdescribe(process.platform !== 'linux')('cross-site frame sandboxing', () => { ++ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('cross-site frame sandboxing', () => { + let server: http.Server; + let crossSiteUrl: string; + let serverUrl: string; diff --git a/devel/electron36/files/patch-electron_spec_api-tray-spec.ts b/devel/electron36/files/patch-electron_spec_api-tray-spec.ts new file mode 100644 index 000000000000..cb822fdca402 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-tray-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-tray-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/api-tray-spec.ts +@@ -131,7 +131,7 @@ describe('tray module', () => { + describe('tray.getBounds()', () => { + afterEach(() => { tray.destroy(); }); + +- ifit(process.platform !== 'linux')('returns a bounds object', function () { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('returns a bounds object', function () { + const bounds = tray.getBounds(); + expect(bounds).to.be.an('object').and.to.have.all.keys('x', 'y', 'width', 'height'); + }); diff --git a/devel/electron36/files/patch-electron_spec_api-utility-process-spec.ts b/devel/electron36/files/patch-electron_spec_api-utility-process-spec.ts new file mode 100644 index 000000000000..d080f5ffca9a --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-utility-process-spec.ts @@ -0,0 +1,20 @@ +--- electron/spec/api-utility-process-spec.ts.orig 2025-04-04 05:26:44 UTC ++++ electron/spec/api-utility-process-spec.ts +@@ -467,7 +467,7 @@ describe('utilityProcess module', () => { + expect(output).to.include(result); + }); + +- ifit(process.platform !== 'linux')('can access exposed main process modules from the utility process', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('can access exposed main process modules from the utility process', async () => { + const message = 'Message from utility process'; + const child = utilityProcess.fork(path.join(fixturesPath, 'expose-main-process-module.js')); + await once(child, 'spawn'); +@@ -504,7 +504,7 @@ describe('utilityProcess module', () => { + await closeWindow(w); + }); + +- ifit(process.platform === 'linux')('allows executing a setuid binary with child_process', async () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('allows executing a setuid binary with child_process', async () => { + const child = utilityProcess.fork(path.join(fixturesPath, 'suid.js')); + await once(child, 'spawn'); + const [data] = await once(child, 'message'); diff --git a/devel/electron36/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron36/files/patch-electron_spec_api-web-contents-spec.ts new file mode 100644 index 000000000000..4980d258f3a8 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-web-contents-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-web-contents-spec.ts.orig 2025-05-07 07:36:13 UTC ++++ electron/spec/api-web-contents-spec.ts +@@ -2684,7 +2684,7 @@ describe('webContents module', () => { + }); + + // TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes. +- ifit(process.platform !== 'linux')('can print cross-origin iframes', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('can print cross-origin iframes', async () => { + server = http.createServer((_, res) => { + res.writeHead(200); + res.end(` diff --git a/devel/electron36/files/patch-electron_spec_api-web-frame-main-spec.ts b/devel/electron36/files/patch-electron_spec_api-web-frame-main-spec.ts new file mode 100644 index 000000000000..279337ccb3c6 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_api-web-frame-main-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/api-web-frame-main-spec.ts.orig 2024-12-05 00:03:13 UTC ++++ electron/spec/api-web-frame-main-spec.ts +@@ -315,7 +315,7 @@ describe('webFrameMain module', () => { + }); + + // TODO(jkleinsc) fix this flaky test on linux +- ifit(process.platform !== 'linux')('throws upon accessing properties when disposed', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('throws upon accessing properties when disposed', async () => { + await w.loadFile(path.join(subframesPath, 'frame-with-frame-container.html')); + const { mainFrame } = w.webContents; + w.destroy(); diff --git a/devel/electron36/files/patch-electron_spec_chromium-spec.ts b/devel/electron36/files/patch-electron_spec_chromium-spec.ts new file mode 100644 index 000000000000..7d69820fc241 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_chromium-spec.ts @@ -0,0 +1,44 @@ +--- electron/spec/chromium-spec.ts.orig 2025-05-07 07:36:13 UTC ++++ electron/spec/chromium-spec.ts +@@ -475,13 +475,13 @@ describe('command line switches', () => { + it('should not set an invalid locale', async () => testLocale('asdfkl', `${currentLocale}|${currentSystemLocale}|${currentPreferredLanguages}`)); + + const lcAll = String(process.env.LC_ALL); +- ifit(process.platform === 'linux')('current process has a valid LC_ALL env', async () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('current process has a valid LC_ALL env', async () => { + // The LC_ALL env should not be set to DOM locale string. + expect(lcAll).to.not.equal(app.getLocale()); + }); +- ifit(process.platform === 'linux')('should not change LC_ALL', async () => testLocale('fr', lcAll, true)); +- ifit(process.platform === 'linux')('should not change LC_ALL when setting invalid locale', async () => testLocale('asdfkl', lcAll, true)); +- ifit(process.platform === 'linux')('should not change LC_ALL when --lang is not set', async () => testLocale('', lcAll, true)); ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL', async () => testLocale('fr', lcAll, true)); ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL when setting invalid locale', async () => testLocale('asdfkl', lcAll, true)); ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL when --lang is not set', async () => testLocale('', lcAll, true)); + }); + + describe('--remote-debugging-pipe switch', () => { +@@ -2923,12 +2923,12 @@ describe('font fallback', () => { + expect(fonts[0].familyName).to.equal('Arial'); + } else if (process.platform === 'darwin') { + expect(fonts[0].familyName).to.equal('Helvetica'); +- } else if (process.platform === 'linux') { ++ } else if (process.platform === 'linux' || process.platform === 'freebsd') { + expect(fonts[0].familyName).to.equal('DejaVu Sans (Fontations)'); + } // I think this depends on the distro? We don't specify a default. + }); + +- ifit(process.platform !== 'linux')('should fall back to Japanese font for sans-serif Japanese script', async function () { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should fall back to Japanese font for sans-serif Japanese script', async function () { + const html = ` + <html lang="ja-JP"> + <head> +@@ -3472,7 +3472,7 @@ describe('paste execCommand', () => { + }); + }); + +-ifdescribe((process.platform !== 'linux' || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => { ++ifdescribe(((process.platform !== 'linux' && process.platform !== 'freebsd') || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => { + let w: BrowserWindow; + + const expectedBadgeCount = 42; diff --git a/devel/electron36/files/patch-electron_spec_crash-spec.ts b/devel/electron36/files/patch-electron_spec_crash-spec.ts new file mode 100644 index 000000000000..b4da5969eecd --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_crash-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/crash-spec.ts.orig 2025-03-26 14:46:58 UTC ++++ electron/spec/crash-spec.ts +@@ -52,7 +52,7 @@ const shouldRunCase = (crashCase: string) => { + if (process.platform === 'win32') { + return process.arch !== 'ia32'; + } else { +- return (process.platform !== 'linux' || (process.arch !== 'arm64' && process.arch !== 'arm')); ++ return ((process.platform !== 'linux' && process.platform !== 'freebsd') || (process.arch !== 'arm64' && process.arch !== 'arm')); + } + } + default: { diff --git a/devel/electron36/files/patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js b/devel/electron36/files/patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js new file mode 100644 index 000000000000..894e14dc5f17 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js @@ -0,0 +1,11 @@ +--- electron/spec/fixtures/api/safe-storage/decrypt-app/main.js.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/fixtures/api/safe-storage/decrypt-app/main.js +@@ -7,7 +7,7 @@ app.whenReady().then(async () => { + const readFile = fs.readFile; + + app.whenReady().then(async () => { +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + safeStorage.setUsePlainTextEncryption(true); + } + const encryptedString = await readFile(pathToEncryptedString); diff --git a/devel/electron36/files/patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js b/devel/electron36/files/patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js new file mode 100644 index 000000000000..a94b107196e5 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js @@ -0,0 +1,11 @@ +--- electron/spec/fixtures/api/safe-storage/encrypt-app/main.js.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/fixtures/api/safe-storage/encrypt-app/main.js +@@ -7,7 +7,7 @@ app.whenReady().then(async () => { + const writeFile = fs.writeFile; + + app.whenReady().then(async () => { +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + safeStorage.setUsePlainTextEncryption(true); + } + const encrypted = safeStorage.encryptString('plaintext'); diff --git a/devel/electron36/files/patch-electron_spec_fixtures_crash-cases_safe-storage_index.js b/devel/electron36/files/patch-electron_spec_fixtures_crash-cases_safe-storage_index.js new file mode 100644 index 000000000000..822927ba19ff --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_fixtures_crash-cases_safe-storage_index.js @@ -0,0 +1,11 @@ +--- electron/spec/fixtures/crash-cases/safe-storage/index.js.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/fixtures/crash-cases/safe-storage/index.js +@@ -22,7 +22,7 @@ const { expect } = require('chai'); + await app.whenReady(); + // isEncryptionAvailable() will always return false on CI due to a mocked + // dbus as mentioned above. +- expect(safeStorage.isEncryptionAvailable()).to.equal(process.platform !== 'linux'); ++ expect(safeStorage.isEncryptionAvailable()).to.equal(process.platform !== 'linux' && process.platform !== 'freebsd'); + if (safeStorage.isEncryptionAvailable()) { + const plaintext = 'plaintext'; + const ciphertext = safeStorage.encryptString(plaintext); diff --git a/devel/electron36/files/patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js b/devel/electron36/files/patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js new file mode 100644 index 000000000000..b418e38c836f --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js @@ -0,0 +1,11 @@ +--- electron/spec/fixtures/native-addon/uv-dlopen/index.js.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/fixtures/native-addon/uv-dlopen/index.js +@@ -4,7 +4,7 @@ const lib = (() => { + + const lib = (() => { + switch (process.platform) { +- case 'linux': ++ case 'linux': case 'freebsd': + return path.resolve(__dirname, 'build/Release/foo.so'); + case 'darwin': + return path.resolve(__dirname, 'build/Release/foo.dylib'); diff --git a/devel/electron36/files/patch-electron_spec_node-spec.ts b/devel/electron36/files/patch-electron_spec_node-spec.ts new file mode 100644 index 000000000000..b943ea8f0ba9 --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_node-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/node-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/node-spec.ts +@@ -148,7 +148,7 @@ describe('node feature', () => { + }); + + describe('child_process.exec', () => { +- ifit(process.platform === 'linux')('allows executing a setuid binary from non-sandboxed renderer', async () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('allows executing a setuid binary from non-sandboxed renderer', async () => { + // Chrome uses prctl(2) to set the NO_NEW_PRIVILEGES flag on Linux (see + // https://github.com/torvalds/linux/blob/40fde647cc/Documentation/userspace-api/no_new_privs.rst). + // We disable this for unsandboxed processes, which the renderer tests diff --git a/devel/electron36/files/patch-electron_spec_version-bump-spec.ts b/devel/electron36/files/patch-electron_spec_version-bump-spec.ts new file mode 100644 index 000000000000..c595f00e149b --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_version-bump-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/version-bump-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/version-bump-spec.ts +@@ -53,7 +53,7 @@ describe('version-bumper', () => { + } + + describe('version-bumper', () => { +- ifdescribe(!(process.platform === 'linux' && process.arch.indexOf('arm') === 0) && process.platform !== 'darwin')('nextVersion', () => { ++ ifdescribe(!((process.platform === 'linux' || process.platform === 'freebsd') && process.arch.indexOf('arm') === 0) && process.platform !== 'darwin')('nextVersion', () => { + describe('bump versions', () => { + const nightlyPattern = /[0-9.]*(-nightly.(\d{4})(\d{2})(\d{2}))$/g; + const betaPattern = /[0-9.]*(-beta[0-9.]*)/g; diff --git a/devel/electron36/files/patch-electron_spec_visibility-state-spec.ts b/devel/electron36/files/patch-electron_spec_visibility-state-spec.ts new file mode 100644 index 000000000000..1c7fffa8982b --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_visibility-state-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/visibility-state-spec.ts.orig 2024-10-22 02:29:46 UTC ++++ electron/spec/visibility-state-spec.ts +@@ -11,7 +11,7 @@ import { closeAllWindows } from './lib/window-helpers' + + // visibilityState specs pass on linux with a real window manager but on CI + // the environment does not let these specs pass +-ifdescribe(process.platform !== 'linux')('document.visibilityState', () => { ++ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('document.visibilityState', () => { + let w: BaseWindow & {webContents: WebContents}; + + before(() => { diff --git a/devel/electron36/files/patch-electron_spec_webview-spec.ts b/devel/electron36/files/patch-electron_spec_webview-spec.ts new file mode 100644 index 000000000000..5ab54396607a --- /dev/null +++ b/devel/electron36/files/patch-electron_spec_webview-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec/webview-spec.ts.orig 2024-10-09 13:53:06 UTC ++++ electron/spec/webview-spec.ts +@@ -559,7 +559,7 @@ describe('<webview> tag', function () { + }); + + // FIXME(zcbenz): Fullscreen events do not work on Linux. +- ifit(process.platform !== 'linux')('exiting fullscreen should unfullscreen window', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('exiting fullscreen should unfullscreen window', async () => { + const [w, webview] = await loadWebViewWindow(); + const enterFullScreen = once(w, 'enter-full-screen'); + await webview.executeJavaScript('document.getElementById("div").requestFullscreen()', true); diff --git a/devel/electron36/files/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc b/devel/electron36/files/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc new file mode 100644 index 000000000000..dd5e282dfa0a --- /dev/null +++ b/devel/electron36/files/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc @@ -0,0 +1,11 @@ +--- extensions/browser/api/api_browser_context_keyed_service_factories.cc.orig 2025-04-22 20:15:27 UTC ++++ extensions/browser/api/api_browser_context_keyed_service_factories.cc +@@ -120,7 +120,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt + MediaPerceptionAPIManager::GetFactoryInstance(); + #endif + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + NetworkingPrivateEventRouterFactory::GetInstance(); + #endif + PrinterProviderAPIFactory::GetInstance(); diff --git a/devel/electron36/files/patch-extensions_browser_api_management_management__api.cc b/devel/electron36/files/patch-extensions_browser_api_management_management__api.cc new file mode 100644 index 000000000000..78dad166a749 --- /dev/null +++ b/devel/electron36/files/patch-extensions_browser_api_management_management__api.cc @@ -0,0 +1,11 @@ +--- extensions/browser/api/management/management_api.cc.orig 2025-04-22 20:15:27 UTC ++++ extensions/browser/api/management/management_api.cc +@@ -286,7 +286,7 @@ bool PlatformSupportsApprovalFlowForExtensions() { + #if BUILDFLAG(IS_CHROMEOS) + // ChromeOS devices have this feature already shipped. + return true; +-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled( + supervised_user::kEnableExtensionsPermissionsForSupervisedUsersOnDesktop); + #else diff --git a/devel/electron36/files/patch-extensions_browser_api_messaging_message__service.cc b/devel/electron36/files/patch-extensions_browser_api_messaging_message__service.cc new file mode 100644 index 000000000000..73ae1f18e97d --- /dev/null +++ b/devel/electron36/files/patch-extensions_browser_api_messaging_message__service.cc @@ -0,0 +1,20 @@ +--- extensions/browser/api/messaging/message_service.cc.orig 2025-04-22 20:15:27 UTC ++++ extensions/browser/api/messaging/message_service.cc +@@ -81,7 +81,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) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kMissingPermissionError[] = + "Access to native messaging requires nativeMessaging permission."; + const char kProhibitedByPoliciesError[] = +@@ -673,7 +673,7 @@ void MessageService::OpenChannelToNativeAppImpl( + return; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool has_permission = extension->permissions_data()->HasAPIPermission( + mojom::APIPermissionID::kNativeMessaging); + if (!has_permission) { diff --git a/devel/electron36/files/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc b/devel/electron36/files/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc new file mode 100644 index 000000000000..e14e91226058 --- /dev/null +++ b/devel/electron36/files/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc @@ -0,0 +1,29 @@ +--- extensions/browser/api/networking_private/networking_private_delegate_factory.cc.orig 2025-01-27 17:37:37 UTC ++++ extensions/browser/api/networking_private/networking_private_delegate_factory.cc +@@ -12,7 +12,7 @@ + + #if BUILDFLAG(IS_CHROMEOS) + #include "extensions/browser/api/networking_private/networking_private_chromeos.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "extensions/browser/api/networking_private/networking_private_linux.h" + #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + #include "components/wifi/wifi_service.h" +@@ -63,7 +63,7 @@ NetworkingPrivateDelegateFactory::BuildServiceInstance + std::unique_ptr<NetworkingPrivateDelegate> delegate; + #if BUILDFLAG(IS_CHROMEOS) + delegate = std::make_unique<NetworkingPrivateChromeOS>(browser_context); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + delegate = std::make_unique<NetworkingPrivateLinux>(); + #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + std::unique_ptr<wifi::WiFiService> wifi_service(wifi::WiFiService::Create()); +@@ -74,7 +74,7 @@ NetworkingPrivateDelegateFactory::BuildServiceInstance + #endif + + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (ui_factory_) { + delegate->set_ui_delegate(ui_factory_->CreateDelegate()); + } diff --git a/devel/electron36/files/patch-extensions_common_api___permission__features.json b/devel/electron36/files/patch-extensions_common_api___permission__features.json new file mode 100644 index 000000000000..124a81470d41 --- /dev/null +++ b/devel/electron36/files/patch-extensions_common_api___permission__features.json @@ -0,0 +1,29 @@ +--- extensions/common/api/_permission_features.json.orig 2025-04-22 20:15:27 UTC ++++ extensions/common/api/_permission_features.json +@@ -134,7 +134,7 @@ + { + "channel": "stable", + "extension_types": ["platform_app"], +- "platforms": ["chromeos", "win", "mac", "linux"], ++ "platforms": ["chromeos", "win", "mac", "linux", "openbsd", "freebsd"], + "allowlist": [ + "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/387169 + "A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/387169 +@@ -419,7 +419,7 @@ + }, { + "channel": "stable", + "extension_types": ["extension", "legacy_packaged_app", "platform_app"], +- "platforms": ["chromeos", "mac", "win", "linux", "fuchsia"], ++ "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd"], + "allowlist": [ + "0DE0F05680A4A056BCEC864ED8DDA84296F82B40", // http://crbug.com/434651 + "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/293683 +@@ -463,7 +463,7 @@ + "networkingPrivate": { + "channel": "stable", + "extension_types": ["extension", "legacy_packaged_app", "platform_app"], +- "platforms": ["chromeos", "mac", "win", "linux", "fuchsia"], ++ "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd"], + "allowlist": [ + // DO NOT ADD ANY MORE ENTRIES HERE. + // networkingPrivate is being migrated to networking.onc. diff --git a/devel/electron36/files/patch-extensions_common_api_runtime.json b/devel/electron36/files/patch-extensions_common_api_runtime.json new file mode 100644 index 000000000000..a62b91540fcb --- /dev/null +++ b/devel/electron36/files/patch-extensions_common_api_runtime.json @@ -0,0 +1,10 @@ +--- extensions/common/api/runtime.json.orig 2024-02-21 00:20:46 UTC ++++ extensions/common/api/runtime.json +@@ -86,6 +86,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/devel/electron36/files/patch-extensions_common_command.cc b/devel/electron36/files/patch-extensions_common_command.cc new file mode 100644 index 000000000000..1ee04f732f41 --- /dev/null +++ b/devel/electron36/files/patch-extensions_common_command.cc @@ -0,0 +1,11 @@ +--- extensions/common/command.cc.orig 2025-03-24 20:50:14 UTC ++++ extensions/common/command.cc +@@ -116,7 +116,7 @@ std::string Command::CommandPlatform() { + return ui::kKeybindingPlatformMac; + #elif BUILDFLAG(IS_CHROMEOS) + return ui::kKeybindingPlatformChromeOs; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return ui::kKeybindingPlatformLinux; + #elif BUILDFLAG(IS_FUCHSIA) + // TODO(crbug.com/40220501): Change this once we decide what string should be diff --git a/devel/electron36/files/patch-extensions_common_features_feature.cc b/devel/electron36/files/patch-extensions_common_features_feature.cc new file mode 100644 index 000000000000..981accef0f6e --- /dev/null +++ b/devel/electron36/files/patch-extensions_common_features_feature.cc @@ -0,0 +1,11 @@ +--- extensions/common/features/feature.cc.orig 2025-01-27 17:37:37 UTC ++++ extensions/common/features/feature.cc +@@ -29,6 +29,8 @@ Feature::Platform Feature::GetCurrentPlatform() { + return WIN_PLATFORM; + #elif BUILDFLAG(IS_FUCHSIA) + return FUCHSIA_PLATFORM; ++#elif BUILDFLAG(IS_BSD) ++ return LINUX_PLATFORM; + #else + return UNSPECIFIED_PLATFORM; + #endif diff --git a/devel/electron36/files/patch-extensions_renderer_bindings_api__binding__util.cc b/devel/electron36/files/patch-extensions_renderer_bindings_api__binding__util.cc new file mode 100644 index 000000000000..e8b412e8cb40 --- /dev/null +++ b/devel/electron36/files/patch-extensions_renderer_bindings_api__binding__util.cc @@ -0,0 +1,11 @@ +--- extensions/renderer/bindings/api_binding_util.cc.orig 2025-03-24 20:50:14 UTC ++++ extensions/renderer/bindings/api_binding_util.cc +@@ -129,7 +129,7 @@ std::string GetPlatformString() { + std::string GetPlatformString() { + #if BUILDFLAG(IS_CHROMEOS) + return "chromeos"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return "linux"; + #elif BUILDFLAG(IS_MAC) + return "mac"; diff --git a/devel/electron36/files/patch-extensions_renderer_bindings_argument__spec.cc b/devel/electron36/files/patch-extensions_renderer_bindings_argument__spec.cc new file mode 100644 index 000000000000..13961c2dfbe9 --- /dev/null +++ b/devel/electron36/files/patch-extensions_renderer_bindings_argument__spec.cc @@ -0,0 +1,11 @@ +--- extensions/renderer/bindings/argument_spec.cc.orig 2022-11-30 08:12:58 UTC ++++ extensions/renderer/bindings/argument_spec.cc +@@ -18,6 +18,8 @@ + #include "gin/data_object_builder.h" + #include "gin/dictionary.h" + ++#include <cmath> ++ + namespace extensions { + + namespace { diff --git a/devel/electron36/files/patch-extensions_shell_app_shell__main__delegate.cc b/devel/electron36/files/patch-extensions_shell_app_shell__main__delegate.cc new file mode 100644 index 000000000000..257285c8d172 --- /dev/null +++ b/devel/electron36/files/patch-extensions_shell_app_shell__main__delegate.cc @@ -0,0 +1,20 @@ +--- extensions/shell/app/shell_main_delegate.cc.orig 2025-01-27 17:37:37 UTC ++++ extensions/shell/app/shell_main_delegate.cc +@@ -40,7 +40,7 @@ + #if BUILDFLAG(IS_WIN) + #include "base/base_paths_win.h" + #include "base/process/process_info.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #elif BUILDFLAG(IS_MAC) + #include "base/base_paths_mac.h" +@@ -60,7 +60,7 @@ base::FilePath GetDataPath() { + } + + base::FilePath data_dir; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::unique_ptr<base::Environment> env(base::Environment::Create()); + data_dir = base::nix::GetXDGDirectory( + env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir); diff --git a/devel/electron36/files/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc b/devel/electron36/files/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc new file mode 100644 index 000000000000..aa0b40223582 --- /dev/null +++ b/devel/electron36/files/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc @@ -0,0 +1,11 @@ +--- extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc.orig 2025-01-27 17:37:37 UTC ++++ extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc +@@ -45,7 +45,7 @@ bool ShellRuntimeAPIDelegate::GetPlatformInfo(Platform + bool ShellRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) { + #if BUILDFLAG(IS_CHROMEOS) + info->os = api::runtime::PlatformOs::kCros; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + info->os = api::runtime::PlatformOs::kLinux; + #endif + return true; diff --git a/devel/electron36/files/patch-extensions_shell_browser_shell__browser__main__parts.cc b/devel/electron36/files/patch-extensions_shell_browser_shell__browser__main__parts.cc new file mode 100644 index 000000000000..fbbd6455ed39 --- /dev/null +++ b/devel/electron36/files/patch-extensions_shell_browser_shell__browser__main__parts.cc @@ -0,0 +1,11 @@ +--- extensions/shell/browser/shell_browser_main_parts.cc.orig 2025-01-27 17:37:37 UTC ++++ extensions/shell/browser/shell_browser_main_parts.cc +@@ -137,7 +137,7 @@ void ShellBrowserMainParts::PostCreateMainMessageLoop( + switches::kAppShellAllowRoaming)) { + network_controller_->SetCellularAllowRoaming(true); + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // app_shell doesn't need GTK, so the fake input method context can work. + // See crbug.com/381852 and revision fb69f142. + // TODO(michaelpg): Verify this works for target environments. diff --git a/devel/electron36/files/patch-extensions_shell_browser_shell__extensions__api__client.cc b/devel/electron36/files/patch-extensions_shell_browser_shell__extensions__api__client.cc new file mode 100644 index 000000000000..08b117f343a5 --- /dev/null +++ b/devel/electron36/files/patch-extensions_shell_browser_shell__extensions__api__client.cc @@ -0,0 +1,20 @@ +--- extensions/shell/browser/shell_extensions_api_client.cc.orig 2025-04-22 20:15:27 UTC ++++ extensions/shell/browser/shell_extensions_api_client.cc +@@ -18,7 +18,7 @@ + #include "extensions/shell/browser/shell_virtual_keyboard_delegate.h" + #include "extensions/shell/browser/shell_web_view_guest_delegate.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "extensions/shell/browser/api/file_system/shell_file_system_delegate.h" + #endif + +@@ -56,7 +56,7 @@ ShellExtensionsAPIClient::CreateDisplayInfoProvider() + return std::make_unique<ShellDisplayInfoProvider>(); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + FileSystemDelegate* ShellExtensionsAPIClient::GetFileSystemDelegate() { + if (!file_system_delegate_) + file_system_delegate_ = std::make_unique<ShellFileSystemDelegate>(); diff --git a/devel/electron36/files/patch-extensions_shell_browser_shell__extensions__api__client.h b/devel/electron36/files/patch-extensions_shell_browser_shell__extensions__api__client.h new file mode 100644 index 000000000000..2f6f864bf098 --- /dev/null +++ b/devel/electron36/files/patch-extensions_shell_browser_shell__extensions__api__client.h @@ -0,0 +1,19 @@ +--- extensions/shell/browser/shell_extensions_api_client.h.orig 2025-04-22 20:15:27 UTC ++++ extensions/shell/browser/shell_extensions_api_client.h +@@ -36,14 +36,14 @@ class ShellExtensionsAPIClient : public ExtensionsAPIC + content::BrowserContext* browser_context) const override; + std::unique_ptr<DisplayInfoProvider> CreateDisplayInfoProvider() + const override; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + FileSystemDelegate* GetFileSystemDelegate() override; + #endif + MessagingDelegate* GetMessagingDelegate() override; + FeedbackPrivateDelegate* GetFeedbackPrivateDelegate() override; + + private: +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<FileSystemDelegate> file_system_delegate_; + #endif + std::unique_ptr<MessagingDelegate> messaging_delegate_; diff --git a/devel/electron36/files/patch-google__apis_gcm_engine_heartbeat__manager.cc b/devel/electron36/files/patch-google__apis_gcm_engine_heartbeat__manager.cc new file mode 100644 index 000000000000..9ecf6cdcf208 --- /dev/null +++ b/devel/electron36/files/patch-google__apis_gcm_engine_heartbeat__manager.cc @@ -0,0 +1,29 @@ +--- google_apis/gcm/engine/heartbeat_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ google_apis/gcm/engine/heartbeat_manager.cc +@@ -31,7 +31,7 @@ const int kMinSuspendTimeMs = 1000 * 10; // 10 seconds + // Minimum time spent sleeping before we force a new heartbeat. + const int kMinSuspendTimeMs = 1000 * 10; // 10 seconds. + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // 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 +@@ -190,7 +190,7 @@ void HeartbeatManager::RestartTimer() { + base::BindRepeating(&HeartbeatManager::OnHeartbeatTriggered, + weak_ptr_factory_.GetWeakPtr())); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // 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. +@@ -213,7 +213,7 @@ void HeartbeatManager::CheckForMissedHeartbeat() { + return; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Otherwise check again later. + io_task_runner_->PostDelayedTask( + FROM_HERE, diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_dawn__context__provider.cc b/devel/electron36/files/patch-gpu_command__buffer_service_dawn__context__provider.cc new file mode 100644 index 000000000000..6bdeb80cafdb --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_dawn__context__provider.cc @@ -0,0 +1,11 @@ +--- gpu/command_buffer/service/dawn_context_provider.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/dawn_context_provider.cc +@@ -377,7 +377,7 @@ wgpu::BackendType DawnContextProvider::GetDefaultBacke + return base::FeatureList::IsEnabled(features::kSkiaGraphiteDawnUseD3D12) + ? wgpu::BackendType::D3D12 + : wgpu::BackendType::D3D11; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + return wgpu::BackendType::Vulkan; + #elif BUILDFLAG(IS_APPLE) + return wgpu::BackendType::Metal; diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc b/devel/electron36/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc new file mode 100644 index 000000000000..a8fddc7ffa10 --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc @@ -0,0 +1,11 @@ +--- gpu/command_buffer/service/gles2_cmd_decoder.cc.orig 2025-03-24 20:50:14 UTC ++++ gpu/command_buffer/service/gles2_cmd_decoder.cc +@@ -2862,7 +2862,7 @@ GLES2Decoder* GLES2Decoder::Create( + } + + // Allow linux to run fuzzers. +-#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return new GLES2DecoderImpl(client, command_buffer_service, outputter, group); + #else + LOG(FATAL) << "Validating command decoder is not supported."; diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_raster__decoder__unittest__context__lost.cc b/devel/electron36/files/patch-gpu_command__buffer_service_raster__decoder__unittest__context__lost.cc new file mode 100644 index 000000000000..4877cd5beedb --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_raster__decoder__unittest__context__lost.cc @@ -0,0 +1,21 @@ +--- gpu/command_buffer/service/raster_decoder_unittest_context_lost.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/raster_decoder_unittest_context_lost.cc +@@ -15,6 +15,18 @@ using ::testing::SetArrayArgument; + using ::testing::SaveArg; + using ::testing::SetArrayArgument; + ++#ifndef GL_CONTEXT_LOST_KHR ++#define GL_CONTEXT_LOST_KHR 0x0507 ++#endif ++ ++#ifndef GL_GUILTY_CONTEXT_RESET_KHR ++#define GL_GUILTY_CONTEXT_RESET_KHR 0x8253 ++#endif ++ ++#ifndef GL_INNOCENT_CONTEXT_RESET_KHR ++#define GL_INNOCENT_CONTEXT_RESET_KHR 0x8254 ++#endif ++ + namespace gpu { + namespace raster { + diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_shared__context__state.cc b/devel/electron36/files/patch-gpu_command__buffer_service_shared__context__state.cc new file mode 100644 index 000000000000..2fe6157b1399 --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_shared__context__state.cc @@ -0,0 +1,29 @@ +--- gpu/command_buffer/service/shared_context_state.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/shared_context_state.cc +@@ -64,7 +64,7 @@ + #include "gpu/vulkan/vulkan_implementation.h" + #include "gpu/vulkan/vulkan_util.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "gpu/command_buffer/service/external_semaphore_pool.h" + #endif + +@@ -322,7 +322,7 @@ SharedContextState::SharedContextState( + if (gr_context_type_ == GrContextType::kVulkan) { + if (vk_context_provider_) { + #if BUILDFLAG(ENABLE_VULKAN) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + external_semaphore_pool_ = std::make_unique<ExternalSemaphorePool>(this); + #endif + use_virtualized_gl_contexts_ = false; +@@ -359,7 +359,7 @@ SharedContextState::~SharedContextState() { + } + + #if BUILDFLAG(ENABLE_VULKAN) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + external_semaphore_pool_.reset(); + #endif + diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_shared__context__state.h b/devel/electron36/files/patch-gpu_command__buffer_service_shared__context__state.h new file mode 100644 index 000000000000..3309cd26c91e --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_shared__context__state.h @@ -0,0 +1,20 @@ +--- gpu/command_buffer/service/shared_context_state.h.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/shared_context_state.h +@@ -236,7 +236,7 @@ class GPU_GLES2_EXPORT SharedContextState + return &memory_type_tracker_; + } + #if BUILDFLAG(ENABLE_VULKAN) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + ExternalSemaphorePool* external_semaphore_pool() { + return external_semaphore_pool_.get(); + } +@@ -449,7 +449,7 @@ class GPU_GLES2_EXPORT SharedContextState + bool disable_check_reset_status_throttling_for_test_ = false; + + #if BUILDFLAG(ENABLE_VULKAN) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + std::unique_ptr<ExternalSemaphorePool> external_semaphore_pool_; + #endif + diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc new file mode 100644 index 000000000000..14cfe4d714d9 --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc @@ -0,0 +1,20 @@ +--- gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc +@@ -20,7 +20,7 @@ constexpr SharedImageUsageSet kSupportedUsage = + // TODO(penghuang): verify the scanout is the right usage for video playback. + // crbug.com/1280798 + constexpr SharedImageUsageSet kSupportedUsage = +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + SHARED_IMAGE_USAGE_SCANOUT | + #endif + SHARED_IMAGE_USAGE_GLES2_READ | SHARED_IMAGE_USAGE_GLES2_WRITE | +@@ -121,7 +121,7 @@ bool AngleVulkanImageBackingFactory::IsGMBSupported( + switch (gmb_type) { + case gfx::EMPTY_BUFFER: + return true; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + case gfx::NATIVE_PIXMAP: { + auto* vulkan_implementation = + context_state_->vk_context_provider()->GetVulkanImplementation(); diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc new file mode 100644 index 000000000000..7dcd14de5090 --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc @@ -0,0 +1,20 @@ +--- gpu/command_buffer/service/shared_image/external_vk_image_backing.cc.orig 2025-01-27 17:37:37 UTC ++++ gpu/command_buffer/service/shared_image/external_vk_image_backing.cc +@@ -57,7 +57,7 @@ + #include "ui/gl/gl_version_info.h" + #include "ui/gl/scoped_binders.h" + +-#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" + #if BUILDFLAG(DAWN_ENABLE_BACKEND_OPENGLES) + #include "gpu/command_buffer/service/shared_image/dawn_gl_texture_representation.h" +@@ -702,7 +702,7 @@ std::unique_ptr<DawnImageRepresentation> ExternalVkIma + wgpu::BackendType backend_type, + std::vector<wgpu::TextureFormat> view_formats, + scoped_refptr<SharedContextState> context_state) { +-#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 == wgpu::TextureFormat::Undefined) { diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc new file mode 100644 index 000000000000..45e27609e260 --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc @@ -0,0 +1,11 @@ +--- gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc +@@ -143,7 +143,7 @@ SharedImageUsageSet SupportedUsage() { + + SharedImageUsageSet SupportedUsage() { + SharedImageUsageSet supported_usage = +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN) + SHARED_IMAGE_USAGE_WEBGPU_READ | SHARED_IMAGE_USAGE_WEBGPU_WRITE | + SHARED_IMAGE_USAGE_WEBGPU_SWAP_CHAIN_TEXTURE | + SHARED_IMAGE_USAGE_WEBGPU_STORAGE_TEXTURE | diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc new file mode 100644 index 000000000000..ae05e370c61f --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc @@ -0,0 +1,38 @@ +--- gpu/command_buffer/service/shared_image/shared_image_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/shared_image/shared_image_factory.cc +@@ -48,7 +48,7 @@ + #include "gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.h" + #include "gpu/vulkan/vulkan_device_queue.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.h" + #endif + +@@ -102,7 +102,7 @@ const char* GmbTypeToString(gfx::GpuMemoryBufferType t + case gfx::IO_SURFACE_BUFFER: + return "platform"; + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + case gfx::NATIVE_PIXMAP: + return "platform"; + #endif +@@ -123,7 +123,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; +@@ -326,7 +326,7 @@ SharedImageFactory::SharedImageFactory( + context_state_, workarounds_); + factories_.push_back(std::move(ozone_factory)); + } +-#if BUILDFLAG(ENABLE_VULKAN) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA)) ++#if BUILDFLAG(ENABLE_VULKAN) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)) + if (gr_context_type_ == GrContextType::kVulkan) { + auto external_vk_image_factory = + std::make_unique<ExternalVkImageBackingFactory>(context_state_); diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc new file mode 100644 index 000000000000..2797c1cc376d --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc @@ -0,0 +1,11 @@ +--- gpu/command_buffer/service/shared_image/shared_image_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/shared_image/shared_image_manager.cc +@@ -756,7 +756,7 @@ bool SharedImageManager::SupportsScanoutImages() { + return true; + #elif BUILDFLAG(IS_ANDROID) + return base::AndroidHardwareBufferCompat::IsSupportAvailable(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + return supports_overlays_on_ozone_; + #elif BUILDFLAG(IS_WIN) + return gl::DirectCompositionTextureSupported(); diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc new file mode 100644 index 000000000000..071883e56db5 --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc @@ -0,0 +1,11 @@ +--- gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc.orig 2024-04-15 20:33:59 UTC ++++ gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc +@@ -214,7 +214,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. + SkColor4f fallback_color = + format().is_single_plane() ? SkColors::kBlue : SkColors::kWhite; diff --git a/devel/electron36/files/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc b/devel/electron36/files/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc new file mode 100644 index 000000000000..db3c45413885 --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc @@ -0,0 +1,20 @@ +--- gpu/command_buffer/service/webgpu_decoder_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/command_buffer/service/webgpu_decoder_impl.cc +@@ -1754,7 +1754,7 @@ wgpu::Adapter WebGPUDecoderImpl::CreatePreferredAdapte + backend_types = {wgpu::BackendType::D3D12}; + #elif BUILDFLAG(IS_MAC) + backend_types = {wgpu::BackendType::Metal}; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (shared_context_state_->GrContextIsVulkan() || + shared_context_state_->IsGraphiteDawnVulkan()) { + backend_types = {wgpu::BackendType::Vulkan}; +@@ -1996,7 +1996,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/devel/electron36/files/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc b/devel/electron36/files/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc new file mode 100644 index 000000000000..fdda274e415e --- /dev/null +++ b/devel/electron36/files/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc @@ -0,0 +1,20 @@ +--- gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc.orig 2024-10-16 21:31:30 UTC ++++ gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc +@@ -32,7 +32,7 @@ + #include "ui/gfx/half_float.h" + #include "ui/gl/test/gl_test_support.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h" + #include "ui/gfx/linux/client_native_pixmap_factory_dmabuf.h" + #endif +@@ -75,7 +75,7 @@ class GpuMemoryBufferTest : public testing::TestWithPa + GLManager gl_; + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + class GpuMemoryBufferTestEGL : public testing::Test, + public gpu::GpuCommandBufferTestEGL { + public: diff --git a/devel/electron36/files/patch-gpu_config_gpu__control__list.cc b/devel/electron36/files/patch-gpu_config_gpu__control__list.cc new file mode 100644 index 000000000000..6de3e213cf72 --- /dev/null +++ b/devel/electron36/files/patch-gpu_config_gpu__control__list.cc @@ -0,0 +1,11 @@ +--- gpu/config/gpu_control_list.cc.orig 2025-03-24 20:50:14 UTC ++++ gpu/config/gpu_control_list.cc +@@ -831,7 +831,7 @@ GpuControlList::OsType GpuControlList::GetOsType() { + return kOsAndroid; + #elif BUILDFLAG(IS_FUCHSIA) + return kOsFuchsia; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return kOsLinux; + #elif BUILDFLAG(IS_MAC) + return kOsMacosx; diff --git a/devel/electron36/files/patch-gpu_config_gpu__finch__features.cc b/devel/electron36/files/patch-gpu_config_gpu__finch__features.cc new file mode 100644 index 000000000000..f2e77341a97d --- /dev/null +++ b/devel/electron36/files/patch-gpu_config_gpu__finch__features.cc @@ -0,0 +1,12 @@ +--- gpu/config/gpu_finch_features.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/config/gpu_finch_features.cc +@@ -155,7 +155,8 @@ BASE_FEATURE(kDefaultEnableGpuRasterization, + BASE_FEATURE(kDefaultEnableGpuRasterization, + "DefaultEnableGpuRasterization", + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \ ++ BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron36/files/patch-gpu_config_gpu__info__collector.cc b/devel/electron36/files/patch-gpu_config_gpu__info__collector.cc new file mode 100644 index 000000000000..527fde087261 --- /dev/null +++ b/devel/electron36/files/patch-gpu_config_gpu__info__collector.cc @@ -0,0 +1,11 @@ +--- gpu/config/gpu_info_collector.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/config/gpu_info_collector.cc +@@ -349,7 +349,7 @@ void ReportWebGPUSupportMetrics(dawn::native::Instance + void ReportWebGPUSupportMetrics(dawn::native::Instance* instance) { + static BASE_FEATURE(kCollectWebGPUSupportMetrics, + "CollectWebGPUSupportMetrics", +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_DISABLED_BY_DEFAULT); + #else + base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-gpu_config_gpu__test__config.cc b/devel/electron36/files/patch-gpu_config_gpu__test__config.cc new file mode 100644 index 000000000000..bfb03cd7ecf4 --- /dev/null +++ b/devel/electron36/files/patch-gpu_config_gpu__test__config.cc @@ -0,0 +1,11 @@ +--- gpu/config/gpu_test_config.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/config/gpu_test_config.cc +@@ -27,7 +27,7 @@ GPUTestConfig::OS GetCurrentOS() { + GPUTestConfig::OS GetCurrentOS() { + #if BUILDFLAG(IS_CHROMEOS) + return GPUTestConfig::kOsChromeOS; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return GPUTestConfig::kOsLinux; + #elif BUILDFLAG(IS_WIN) + int32_t major_version = 0; diff --git a/devel/electron36/files/patch-gpu_ipc_common_gpu__memory__buffer__support.cc b/devel/electron36/files/patch-gpu_ipc_common_gpu__memory__buffer__support.cc new file mode 100644 index 000000000000..c878dc872080 --- /dev/null +++ b/devel/electron36/files/patch-gpu_ipc_common_gpu__memory__buffer__support.cc @@ -0,0 +1,20 @@ +--- gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2024-10-16 21:31:30 UTC ++++ gpu/ipc/common/gpu_memory_buffer_support.cc +@@ -26,7 +26,7 @@ + #include "ui/ozone/public/ozone_platform.h" + #endif + +-#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h" + #endif + +@@ -55,7 +55,7 @@ GpuMemoryBufferSupport::GetNativeGpuMemoryBufferType() + return gfx::IO_SURFACE_BUFFER; + #elif BUILDFLAG(IS_ANDROID) + return gfx::ANDROID_HARDWARE_BUFFER; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + return gfx::NATIVE_PIXMAP; + #elif BUILDFLAG(IS_WIN) + return gfx::DXGI_SHARED_HANDLE; diff --git a/devel/electron36/files/patch-gpu_ipc_common_gpu__memory__buffer__support.h b/devel/electron36/files/patch-gpu_ipc_common_gpu__memory__buffer__support.h new file mode 100644 index 000000000000..2ab58073a4b1 --- /dev/null +++ b/devel/electron36/files/patch-gpu_ipc_common_gpu__memory__buffer__support.h @@ -0,0 +1,11 @@ +--- gpu/ipc/common/gpu_memory_buffer_support.h.orig 2023-08-10 01:48:45 UTC ++++ gpu/ipc/common/gpu_memory_buffer_support.h +@@ -21,7 +21,7 @@ + #include "ui/gfx/geometry/size.h" + #include "ui/gfx/gpu_memory_buffer.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + namespace gfx { + class ClientNativePixmapFactory; + } // namespace gfx diff --git a/devel/electron36/files/patch-gpu_ipc_service_gpu__init.cc b/devel/electron36/files/patch-gpu_ipc_service_gpu__init.cc new file mode 100644 index 000000000000..33aab02b405e --- /dev/null +++ b/devel/electron36/files/patch-gpu_ipc_service_gpu__init.cc @@ -0,0 +1,83 @@ +--- gpu/ipc/service/gpu_init.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/ipc/service/gpu_init.cc +@@ -153,7 +153,7 @@ bool CanAccessDeviceFile(const GPUInfo& gpu_info) { + + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CASTOS) + bool CanAccessDeviceFile(const GPUInfo& gpu_info) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (gpu_info.gpu.vendor_id != 0x10de || // NVIDIA + gpu_info.gpu.driver_vendor != "NVIDIA") + return true; +@@ -389,7 +389,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + enable_watchdog = false; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + 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 +@@ -427,7 +427,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + } + + bool attempted_startsandbox = false; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // 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. +@@ -524,7 +524,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + gpu_preferences_.gr_context_type = GrContextType::kGL; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // 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 +@@ -586,7 +586,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + command_line, gpu_feature_info_, + gpu_preferences_.disable_software_rasterizer, false); + if (gl_use_swiftshader_) { +-#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; +@@ -754,7 +754,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + ->GetSupportedFormatsForGLNativePixmapImport(); + #endif // BUILDFLAG(IS_OZONE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // 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. +@@ -806,7 +806,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + } + } + } +-#if BUILDFLAG(IS_LINUX) || \ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + (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 +@@ -1008,7 +1008,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c + } + bool gl_disabled = gl::GetGLImplementation() == gl::kGLImplementationDisabled; + +-#if BUILDFLAG(IS_LINUX) || \ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + (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 +@@ -1063,7 +1063,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // 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. diff --git a/devel/electron36/files/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc b/devel/electron36/files/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc new file mode 100644 index 000000000000..c2e797a71f81 --- /dev/null +++ b/devel/electron36/files/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc @@ -0,0 +1,20 @@ +--- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig 2024-10-16 21:31:30 UTC ++++ gpu/ipc/service/gpu_memory_buffer_factory.cc +@@ -14,7 +14,7 @@ + #include "gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h" + #endif + +@@ -71,7 +71,7 @@ GpuMemoryBufferFactory::CreateNativeType( + // to have a factory that vends invalid GMB handles rather than having no + // factory at all. + return std::make_unique<GpuMemoryBufferFactoryStub>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + return std::make_unique<GpuMemoryBufferFactoryNativePixmap>( + vulkan_context_provider); + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-gpu_ipc_service_x__util.h b/devel/electron36/files/patch-gpu_ipc_service_x__util.h new file mode 100644 index 000000000000..a981513535b7 --- /dev/null +++ b/devel/electron36/files/patch-gpu_ipc_service_x__util.h @@ -0,0 +1,11 @@ +--- gpu/ipc/service/x_util.h.orig 2024-02-21 00:20:47 UTC ++++ gpu/ipc/service/x_util.h +@@ -12,7 +12,7 @@ + #include "gpu/ipc/service/gpu_config.h" + #include "ui/base/ozone_buildflags.h" + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + + namespace gpu { + diff --git a/devel/electron36/files/patch-gpu_vulkan_generate__bindings.py b/devel/electron36/files/patch-gpu_vulkan_generate__bindings.py new file mode 100644 index 000000000000..01082cafad43 --- /dev/null +++ b/devel/electron36/files/patch-gpu_vulkan_generate__bindings.py @@ -0,0 +1,11 @@ +--- gpu/vulkan/generate_bindings.py.orig 2024-06-18 21:43:33 UTC ++++ gpu/vulkan/generate_bindings.py +@@ -271,7 +271,7 @@ VULKAN_DEVICE_FUNCTIONS = [ + ] + }, + { +- 'ifdef': 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)', ++ 'ifdef': 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)', + 'extension': 'VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME', + 'functions': [ + 'vkGetImageDrmFormatModifierPropertiesEXT', diff --git a/devel/electron36/files/patch-gpu_vulkan_semaphore__handle.cc b/devel/electron36/files/patch-gpu_vulkan_semaphore__handle.cc new file mode 100644 index 000000000000..a95de189e1fc --- /dev/null +++ b/devel/electron36/files/patch-gpu_vulkan_semaphore__handle.cc @@ -0,0 +1,20 @@ +--- gpu/vulkan/semaphore_handle.cc.orig 2023-11-29 21:40:03 UTC ++++ 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, + fence_handle.Release()); +-#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, + fence_handle.Release()); + #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.Adopt(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.Adopt(TakeHandle()); + } else { diff --git a/devel/electron36/files/patch-gpu_vulkan_vulkan__device__queue.cc b/devel/electron36/files/patch-gpu_vulkan_vulkan__device__queue.cc new file mode 100644 index 000000000000..799e2781ddde --- /dev/null +++ b/devel/electron36/files/patch-gpu_vulkan_vulkan__device__queue.cc @@ -0,0 +1,20 @@ +--- gpu/vulkan/vulkan_device_queue.cc.orig 2025-03-24 20:50:14 UTC ++++ gpu/vulkan/vulkan_device_queue.cc +@@ -156,7 +156,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|. +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // 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)) { +@@ -303,7 +303,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/devel/electron36/files/patch-gpu_vulkan_vulkan__device__queue.h b/devel/electron36/files/patch-gpu_vulkan_vulkan__device__queue.h new file mode 100644 index 000000000000..02a27330c38e --- /dev/null +++ b/devel/electron36/files/patch-gpu_vulkan_vulkan__device__queue.h @@ -0,0 +1,11 @@ +--- gpu/vulkan/vulkan_device_queue.h.orig 2025-03-24 20:50:14 UTC ++++ gpu/vulkan/vulkan_device_queue.h +@@ -182,7 +182,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanDeviceQueue + #endif + + #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/devel/electron36/files/patch-gpu_vulkan_vulkan__function__pointers.cc b/devel/electron36/files/patch-gpu_vulkan_vulkan__function__pointers.cc new file mode 100644 index 000000000000..1127953e0d97 --- /dev/null +++ b/devel/electron36/files/patch-gpu_vulkan_vulkan__function__pointers.cc @@ -0,0 +1,20 @@ +--- gpu/vulkan/vulkan_function_pointers.cc.orig 2024-06-18 21:43:33 UTC ++++ gpu/vulkan/vulkan_function_pointers.cc +@@ -1297,7 +1297,7 @@ bool VulkanFunctionPointers::BindDeviceFunctionPointer + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (gfx::HasExtension(enabled_extensions, + VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME)) { + constexpr char kvkGetImageDrmFormatModifierPropertiesEXT[] = +@@ -1498,7 +1498,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/devel/electron36/files/patch-gpu_vulkan_vulkan__function__pointers.h b/devel/electron36/files/patch-gpu_vulkan_vulkan__function__pointers.h new file mode 100644 index 000000000000..b9380210593f --- /dev/null +++ b/devel/electron36/files/patch-gpu_vulkan_vulkan__function__pointers.h @@ -0,0 +1,27 @@ +--- gpu/vulkan/vulkan_function_pointers.h.orig 2025-04-22 20:15:27 UTC ++++ gpu/vulkan/vulkan_function_pointers.h +@@ -391,7 +391,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFunctionPointers + VulkanFunction<PFN_vkGetSwapchainImagesKHR> vkGetSwapchainImagesKHR; + VulkanFunction<PFN_vkQueuePresentKHR> vkQueuePresentKHR; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + VulkanFunction<PFN_vkGetImageDrmFormatModifierPropertiesEXT> + vkGetImageDrmFormatModifierPropertiesEXT; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -1405,7 +1405,7 @@ ALWAYS_INLINE VkResult vkQueuePresentKHR(VkQueue queue + pPresentInfo); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, + VkImage image, +@@ -1415,4 +1415,4 @@ ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierProp + } + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#endif // GPU_VULKAN_VULKAN_FUNCTION_POINTERS_H_ +\ No newline at end of file ++#endif // GPU_VULKAN_VULKAN_FUNCTION_POINTERS_H_ diff --git a/devel/electron36/files/patch-gpu_vulkan_vulkan__image.h b/devel/electron36/files/patch-gpu_vulkan_vulkan__image.h new file mode 100644 index 000000000000..7960e8e43873 --- /dev/null +++ b/devel/electron36/files/patch-gpu_vulkan_vulkan__image.h @@ -0,0 +1,20 @@ +--- gpu/vulkan/vulkan_image.h.orig 2023-02-01 18:43:21 UTC ++++ gpu/vulkan/vulkan_image.h +@@ -87,7 +87,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanImage { + VkImageUsageFlags usage, + VkImageCreateFlags flags); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static std::unique_ptr<VulkanImage> CreateWithExternalMemoryAndModifiers( + VulkanDeviceQueue* device_queue, + const gfx::Size& size, +@@ -199,7 +199,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanImage { + VkImageTiling image_tiling, + uint32_t queue_family_index); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool InitializeWithExternalMemoryAndModifiers(VulkanDeviceQueue* device_queue, + const gfx::Size& size, + VkFormat format, diff --git a/devel/electron36/files/patch-gpu_vulkan_vulkan__util.cc b/devel/electron36/files/patch-gpu_vulkan_vulkan__util.cc new file mode 100644 index 000000000000..ddf923e0dce3 --- /dev/null +++ b/devel/electron36/files/patch-gpu_vulkan_vulkan__util.cc @@ -0,0 +1,11 @@ +--- gpu/vulkan/vulkan_util.cc.orig 2025-04-22 20:15:27 UTC ++++ gpu/vulkan/vulkan_util.cc +@@ -467,7 +467,7 @@ bool CheckVulkanCompatibilities( + } + } + +-#if BUILDFLAG(IS_LINUX) && !defined(OZONE_PLATFORM_IS_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !defined(OZONE_PLATFORM_IS_X11) + // Vulkan is only supported with X11 on Linux for now. + return false; + #else diff --git a/devel/electron36/files/patch-headless_BUILD.gn b/devel/electron36/files/patch-headless_BUILD.gn new file mode 100644 index 000000000000..ed7c24fbdfb9 --- /dev/null +++ b/devel/electron36/files/patch-headless_BUILD.gn @@ -0,0 +1,11 @@ +--- headless/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ headless/BUILD.gn +@@ -475,7 +475,7 @@ component("headless_non_renderer") { + } + } + +- if (!is_fuchsia) { ++ if (!is_fuchsia && !is_bsd) { + deps += [ + "//components/crash/content/browser", + "//components/crash/core/app", diff --git a/devel/electron36/files/patch-headless_lib_browser_headless__browser__main__parts__posix.cc b/devel/electron36/files/patch-headless_lib_browser_headless__browser__main__parts__posix.cc new file mode 100644 index 000000000000..2f8276c7fa83 --- /dev/null +++ b/devel/electron36/files/patch-headless_lib_browser_headless__browser__main__parts__posix.cc @@ -0,0 +1,39 @@ +--- headless/lib/browser/headless_browser_main_parts_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ headless/lib/browser/headless_browser_main_parts_posix.cc +@@ -26,13 +26,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/sync/key_storage_config_linux.h" + #include "components/os_crypt/sync/os_crypt.h" + #include "headless/public/switches.h" + +-#if BUILDFLAG(USE_DBUS) ++#if BUILDFLAG(USE_DBUS) && !BUILDFLAG(IS_BSD) + #include "device/bluetooth/dbus/bluez_dbus_manager.h" + #endif + +@@ -166,7 +166,7 @@ class BrowserShutdownHandler { + + } // namespace + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr char kProductName[] = "HeadlessChrome"; + #endif + +@@ -174,9 +174,9 @@ void HeadlessBrowserMainParts::PostCreateMainMessageLo + BrowserShutdownHandler::Install(base::BindOnce( + &HeadlessBrowserImpl::ShutdownWithExitCode, browser_->GetWeakPtr())); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + +-#if BUILDFLAG(USE_DBUS) ++#if BUILDFLAG(USE_DBUS) && !BUILDFLAG(IS_BSD) + bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr); + #endif + diff --git a/devel/electron36/files/patch-headless_lib_browser_headless__content__browser__client.cc b/devel/electron36/files/patch-headless_lib_browser_headless__content__browser__client.cc new file mode 100644 index 000000000000..949b77547a3a --- /dev/null +++ b/devel/electron36/files/patch-headless_lib_browser_headless__content__browser__client.cc @@ -0,0 +1,20 @@ +--- headless/lib/browser/headless_content_browser_client.cc.orig 2025-04-22 20:15:27 UTC ++++ headless/lib/browser/headless_content_browser_client.cc +@@ -58,7 +58,7 @@ + #include "content/public/common/content_descriptors.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)) && defined(HEADLESS_USE_PREFS) ++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(HEADLESS_USE_PREFS) + #include "components/os_crypt/sync/os_crypt.h" // nogncheck + #include "content/public/browser/network_service_util.h" + #endif +@@ -520,7 +520,7 @@ void HeadlessContentBrowserClient::SetEncryptionKey( + + void HeadlessContentBrowserClient::SetEncryptionKey( + ::network::mojom::NetworkService* network_service) { +-#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)) && defined(HEADLESS_USE_PREFS) ++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(HEADLESS_USE_PREFS) + // The OSCrypt keys are process bound, so if network service is out of + // process, send it the required key if it is available. + if (content::IsOutOfProcessNetworkService() diff --git a/devel/electron36/files/patch-headless_lib_browser_headless__content__browser__client.h b/devel/electron36/files/patch-headless_lib_browser_headless__content__browser__client.h new file mode 100644 index 000000000000..f6471b99df05 --- /dev/null +++ b/devel/electron36/files/patch-headless_lib_browser_headless__content__browser__client.h @@ -0,0 +1,11 @@ +--- headless/lib/browser/headless_content_browser_client.h.orig 2025-04-22 20:15:27 UTC ++++ headless/lib/browser/headless_content_browser_client.h +@@ -47,7 +47,7 @@ class HeadlessContentBrowserClient : public content::C + CreateDevToolsManagerDelegate() override; + content::GeneratedCodeCacheSettings GetGeneratedCodeCacheSettings( + content::BrowserContext* context) override; +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + void GetAdditionalMappedFilesForChildProcess( + const base::CommandLine& command_line, + int child_process_id, diff --git a/devel/electron36/files/patch-headless_lib_browser_headless__web__contents__impl.cc b/devel/electron36/files/patch-headless_lib_browser_headless__web__contents__impl.cc new file mode 100644 index 000000000000..de0020960d40 --- /dev/null +++ b/devel/electron36/files/patch-headless_lib_browser_headless__web__contents__impl.cc @@ -0,0 +1,11 @@ +--- headless/lib/browser/headless_web_contents_impl.cc.orig 2025-05-11 11:50:45 UTC ++++ headless/lib/browser/headless_web_contents_impl.cc +@@ -70,7 +70,7 @@ void UpdatePrefsFromSystemSettings(blink::RendererPref + namespace { + + void UpdatePrefsFromSystemSettings(blink::RendererPreferences* prefs) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + content::UpdateFontRendererPreferencesFromSystemSettings(prefs); + #endif + diff --git a/devel/electron36/files/patch-headless_lib_headless__content__main__delegate.cc b/devel/electron36/files/patch-headless_lib_headless__content__main__delegate.cc new file mode 100644 index 000000000000..7f37ffc141af --- /dev/null +++ b/devel/electron36/files/patch-headless_lib_headless__content__main__delegate.cc @@ -0,0 +1,11 @@ +--- headless/lib/headless_content_main_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ headless/lib/headless_content_main_delegate.cc +@@ -407,7 +407,7 @@ void HeadlessContentMainDelegate::InitCrashReporter( + if (process_type != ::switches::kZygoteProcess) { + g_headless_crash_client.Pointer()->set_crash_dumps_dir( + command_line.GetSwitchValuePath(switches::kCrashDumpsDir)); +-#if !BUILDFLAG(IS_WIN) ++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) + crash_reporter::InitializeCrashpad(process_type.empty(), process_type); + #endif // !BUILDFLAG(IS_WIN) + crash_keys::SetSwitchesFromCommandLine(command_line, nullptr); diff --git a/devel/electron36/files/patch-ipc_ipc__channel.h b/devel/electron36/files/patch-ipc_ipc__channel.h new file mode 100644 index 000000000000..7404b35c1391 --- /dev/null +++ b/devel/electron36/files/patch-ipc_ipc__channel.h @@ -0,0 +1,11 @@ +--- ipc/ipc_channel.h.orig 2024-06-18 21:43:35 UTC ++++ ipc/ipc_channel.h +@@ -218,7 +218,7 @@ class COMPONENT_EXPORT(IPC) Channel : public Sender { + static std::string GenerateUniqueRandomChannelID(); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Sandboxed processes live in a PID namespace, so when sending the IPC hello + // message from client to server we need to send the PID from the global + // PID namespace. diff --git a/devel/electron36/files/patch-ipc_ipc__channel__common.cc b/devel/electron36/files/patch-ipc_ipc__channel__common.cc new file mode 100644 index 000000000000..c68294ff75b0 --- /dev/null +++ b/devel/electron36/files/patch-ipc_ipc__channel__common.cc @@ -0,0 +1,11 @@ +--- ipc/ipc_channel_common.cc.orig 2023-02-01 18:43:22 UTC ++++ ipc/ipc_channel_common.cc +@@ -10,7 +10,7 @@ + + namespace IPC { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + namespace { + int g_global_pid = 0; diff --git a/devel/electron36/files/patch-ipc_ipc__channel__mojo.cc b/devel/electron36/files/patch-ipc_ipc__channel__mojo.cc new file mode 100644 index 000000000000..aad0bd25fa8f --- /dev/null +++ b/devel/electron36/files/patch-ipc_ipc__channel__mojo.cc @@ -0,0 +1,11 @@ +--- ipc/ipc_channel_mojo.cc.orig 2023-02-01 18:43:22 UTC ++++ ipc/ipc_channel_mojo.cc +@@ -105,7 +105,7 @@ class ThreadSafeChannelProxy : public mojo::ThreadSafe + }; + + base::ProcessId GetSelfPID() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (int global_pid = Channel::GetGlobalPid()) + return global_pid; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-ipc_ipc__message__utils.cc b/devel/electron36/files/patch-ipc_ipc__message__utils.cc new file mode 100644 index 000000000000..1d13328a7aef --- /dev/null +++ b/devel/electron36/files/patch-ipc_ipc__message__utils.cc @@ -0,0 +1,11 @@ +--- ipc/ipc_message_utils.cc.orig 2025-01-27 17:37:37 UTC ++++ ipc/ipc_message_utils.cc +@@ -399,7 +399,7 @@ void ParamTraits<unsigned int>::Log(const param_type& + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS)) + void ParamTraits<long>::Log(const param_type& p, std::string* l) { + l->append(base::NumberToString(p)); diff --git a/devel/electron36/files/patch-ipc_ipc__message__utils.h b/devel/electron36/files/patch-ipc_ipc__message__utils.h new file mode 100644 index 000000000000..1e3411f9eaae --- /dev/null +++ b/devel/electron36/files/patch-ipc_ipc__message__utils.h @@ -0,0 +1,11 @@ +--- ipc/ipc_message_utils.h.orig 2025-04-22 20:15:27 UTC ++++ ipc/ipc_message_utils.h +@@ -216,7 +216,7 @@ struct ParamTraits<unsigned int> { + // Since we want to support Android 32<>64 bit IPC, as long as we don't have + // these traits for 32 bit ARM then that'll catch any errors. + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS)) + template <> + struct ParamTraits<long> { diff --git a/devel/electron36/files/patch-media_BUILD.gn b/devel/electron36/files/patch-media_BUILD.gn new file mode 100644 index 000000000000..595544c1bf39 --- /dev/null +++ b/devel/electron36/files/patch-media_BUILD.gn @@ -0,0 +1,12 @@ +--- media/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ media/BUILD.gn +@@ -105,6 +105,9 @@ config("media_config") { + defines += [ "DLOPEN_PULSEAUDIO" ] + } + } ++ if (use_sndio) { ++ defines += [ "USE_SNDIO" ] ++ } + } + + # Internal grouping of the configs necessary to support sub-folders having their diff --git a/devel/electron36/files/patch-media_audio_BUILD.gn b/devel/electron36/files/patch-media_audio_BUILD.gn new file mode 100644 index 000000000000..7698d441c503 --- /dev/null +++ b/devel/electron36/files/patch-media_audio_BUILD.gn @@ -0,0 +1,27 @@ +--- media/audio/BUILD.gn.orig 2025-05-11 11:50:45 UTC ++++ media/audio/BUILD.gn +@@ -276,9 +276,23 @@ source_set("audio") { + deps += [ "//media/base/android:media_jni_headers" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ "linux/audio_manager_linux.cc" ] + } ++ ++ if (is_bsd) { ++ sources += [ "sndio/audio_manager_sndio.cc" ] ++ } ++ ++ if (use_sndio) { ++ libs += [ "sndio" ] ++ sources += [ ++ "sndio/sndio_input.cc", ++ "sndio/sndio_input.h", ++ "sndio/sndio_output.cc", ++ "sndio/sndio_output.h" ++ ] ++ } + + if (use_alsa) { + libs += [ "asound" ] diff --git a/devel/electron36/files/patch-media_audio_alsa_audio__manager__alsa.cc b/devel/electron36/files/patch-media_audio_alsa_audio__manager__alsa.cc new file mode 100644 index 000000000000..57200a30988c --- /dev/null +++ b/devel/electron36/files/patch-media_audio_alsa_audio__manager__alsa.cc @@ -0,0 +1,54 @@ +--- media/audio/alsa/audio_manager_alsa.cc.orig 2025-03-24 20:50:14 UTC ++++ media/audio/alsa/audio_manager_alsa.cc +@@ -106,7 +106,9 @@ void AudioManagerAlsa::GetAlsaAudioDevices(StreamType + int card = -1; + + // Loop through the physical sound cards to get ALSA device hints. ++#if !BUILDFLAG(IS_BSD) + while (!wrapper_->CardNext(&card) && card >= 0) { ++#endif + void** hints = NULL; + int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints); + if (!error) { +@@ -118,7 +120,9 @@ void AudioManagerAlsa::GetAlsaAudioDevices(StreamType + DLOG(WARNING) << "GetAlsaAudioDevices: unable to get device hints: " + << wrapper_->StrError(error); + } ++#if !BUILDFLAG(IS_BSD) + } ++#endif + } + + void AudioManagerAlsa::GetAlsaDevicesInfo(AudioManagerAlsa::StreamType type, +@@ -201,7 +205,11 @@ bool AudioManagerAlsa::IsAlsaDeviceAvailable( + // goes through software conversion if needed (e.g. incompatible + // sample rate). + // TODO(joi): Should we prefer "hw" instead? ++#if BUILDFLAG(IS_BSD) ++ static const char kDeviceTypeDesired[] = "plug"; ++#else + static const char kDeviceTypeDesired[] = "plughw"; ++#endif + return strncmp(kDeviceTypeDesired, device_name, + std::size(kDeviceTypeDesired) - 1) == 0; + } +@@ -253,7 +261,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDevice( + // Loop through the sound cards. + // Don't use snd_device_name_hint(-1,..) since there is an access violation + // inside this ALSA API with libasound.so.2.0.0. ++#if !BUILDFLAG(IS_BSD) + while (!wrapper_->CardNext(&card) && (card >= 0) && !has_device) { ++#endif + int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints); + if (!error) { + for (void** hint_iter = hints; *hint_iter != NULL; hint_iter++) { +@@ -277,7 +287,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDevice( + DLOG(WARNING) << "HasAnyAudioDevice: unable to get device hints: " + << wrapper_->StrError(error); + } ++#if !BUILDFLAG(IS_BSD) + } ++#endif + + return has_device; + } diff --git a/devel/electron36/files/patch-media_audio_audio__input__device.cc b/devel/electron36/files/patch-media_audio_audio__input__device.cc new file mode 100644 index 000000000000..667ad49d29bc --- /dev/null +++ b/devel/electron36/files/patch-media_audio_audio__input__device.cc @@ -0,0 +1,11 @@ +--- media/audio/audio_input_device.cc.orig 2025-03-24 20:50:14 UTC ++++ media/audio/audio_input_device.cc +@@ -275,7 +275,7 @@ void AudioInputDevice::OnStreamCreated( + // here. See comments in AliveChecker and PowerObserverHelper for details and + // todos. + if (detect_dead_stream_ == DeadStreamDetection::kEnabled) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const bool stop_at_first_alive_notification = true; + const bool pause_check_during_suspend = false; + #else diff --git a/devel/electron36/files/patch-media_audio_audio__output__proxy__unittest.cc b/devel/electron36/files/patch-media_audio_audio__output__proxy__unittest.cc new file mode 100644 index 000000000000..09cfeab169e1 --- /dev/null +++ b/devel/electron36/files/patch-media_audio_audio__output__proxy__unittest.cc @@ -0,0 +1,14 @@ +--- media/audio/audio_output_proxy_unittest.cc.orig 2023-03-30 00:33:53 UTC ++++ media/audio/audio_output_proxy_unittest.cc +@@ -443,7 +443,11 @@ class AudioOutputProxyTest : public testing::Test { + // |stream| is closed at this point. Start() should reopen it again. + EXPECT_CALL(manager(), MakeAudioOutputStream(_, _, _)) + .Times(2) ++#if BUILDFLAG(IS_BSD) ++ .WillRepeatedly(Return(static_cast<AudioOutputStream*>(NULL))); ++#else + .WillRepeatedly(Return(reinterpret_cast<AudioOutputStream*>(NULL))); ++#endif + + EXPECT_CALL(callback_, OnError(_)).Times(2); + diff --git a/devel/electron36/files/patch-media_audio_pulse_pulse__util.cc b/devel/electron36/files/patch-media_audio_pulse_pulse__util.cc new file mode 100644 index 000000000000..0924a8cc4a10 --- /dev/null +++ b/devel/electron36/files/patch-media_audio_pulse_pulse__util.cc @@ -0,0 +1,14 @@ +--- media/audio/pulse/pulse_util.cc.orig 2024-10-16 21:31:33 UTC ++++ media/audio/pulse/pulse_util.cc +@@ -50,7 +50,11 @@ static const base::FilePath::CharType kPulseLib[] = + + #if defined(DLOPEN_PULSEAUDIO) + static const base::FilePath::CharType kPulseLib[] = ++#if BUILDFLAG(IS_BSD) ++ FILE_PATH_LITERAL("libpulse.so"); ++#else + FILE_PATH_LITERAL("libpulse.so.0"); ++#endif + #endif + + void DestroyMainloop(pa_threaded_mainloop* mainloop) { diff --git a/devel/electron36/files/patch-media_audio_sndio_audio__manager__sndio.cc b/devel/electron36/files/patch-media_audio_sndio_audio__manager__sndio.cc new file mode 100644 index 000000000000..6e568a247cc9 --- /dev/null +++ b/devel/electron36/files/patch-media_audio_sndio_audio__manager__sndio.cc @@ -0,0 +1,216 @@ +--- media/audio/sndio/audio_manager_sndio.cc.orig 2024-08-30 11:30:12 UTC ++++ media/audio/sndio/audio_manager_sndio.cc +@@ -0,0 +1,213 @@ ++// 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. ++ ++#include "base/command_line.h" ++#include "base/metrics/histogram_macros.h" ++#include "base/memory/ptr_util.h" ++ ++#include "media/audio/sndio/audio_manager_sndio.h" ++ ++#include "media/audio/audio_device_description.h" ++#include "media/audio/audio_output_dispatcher.h" ++#if defined(USE_SNDIO) ++#include "media/audio/sndio/sndio_input.h" ++#include "media/audio/sndio/sndio_output.h" ++#endif ++#if defined(USE_PULSEAUDIO) ++#include "media/audio/pulse/audio_manager_pulse.h" ++#include "media/audio/pulse/pulse_util.h" ++#endif ++#if defined(USE_ALSA) ++#include "media/audio/alsa/audio_manager_alsa.h" ++#endif ++#include "media/audio/fake_audio_manager.h" ++#include "media/base/limits.h" ++#include "media/base/media_switches.h" ++ ++namespace media { ++ ++#if defined(USE_SNDIO) ++// Maximum number of output streams that can be open simultaneously. ++static const int kMaxOutputStreams = 50; ++ ++// Default sample rate for input and output streams. ++static const int kDefaultSampleRate = 48000; ++ ++void AddDefaultDevice(AudioDeviceNames* device_names) { ++ DCHECK(device_names->empty()); ++ device_names->push_front(AudioDeviceName::CreateDefault()); ++} ++ ++bool AudioManagerSndio::HasAudioOutputDevices() { ++ return true; ++} ++ ++bool AudioManagerSndio::HasAudioInputDevices() { ++ return true; ++} ++ ++void AudioManagerSndio::GetAudioInputDeviceNames( ++ AudioDeviceNames* device_names) { ++ DCHECK(device_names->empty()); ++ AddDefaultDevice(device_names); ++} ++ ++void AudioManagerSndio::GetAudioOutputDeviceNames( ++ AudioDeviceNames* device_names) { ++ AddDefaultDevice(device_names); ++} ++ ++#if defined(USE_SNDIO) ++const char* AudioManagerSndio::GetName() { ++ return "SNDIO"; ++} ++#endif ++ ++AudioParameters AudioManagerSndio::GetInputStreamParameters( ++ const std::string& device_id) { ++ static const int kDefaultInputBufferSize = 1024; ++ ++ int user_buffer_size = GetUserBufferSize(); ++ int buffer_size = user_buffer_size ? ++ user_buffer_size : kDefaultInputBufferSize; ++ ++ return AudioParameters( ++ AudioParameters::AUDIO_PCM_LOW_LATENCY, ChannelLayoutConfig::Stereo(), ++ kDefaultSampleRate, buffer_size); ++} ++ ++AudioManagerSndio::AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread, ++ AudioLogFactory* audio_log_factory) ++ : AudioManagerBase(std::move(audio_thread), ++ audio_log_factory) { ++ DLOG(WARNING) << "AudioManagerSndio"; ++ SetMaxOutputStreamsAllowed(kMaxOutputStreams); ++} ++ ++AudioManagerSndio::~AudioManagerSndio() = default; ++ ++AudioOutputStream* AudioManagerSndio::MakeLinearOutputStream( ++ const AudioParameters& params, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); ++ return MakeOutputStream(params); ++} ++ ++AudioOutputStream* AudioManagerSndio::MakeLowLatencyOutputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); ++ return MakeOutputStream(params); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeLinearInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); ++ return MakeInputStream(params); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeLowLatencyInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); ++ return MakeInputStream(params); ++} ++ ++AudioParameters AudioManagerSndio::GetPreferredOutputStreamParameters( ++ const std::string& output_device_id, ++ const AudioParameters& input_params) { ++ // TODO(tommi): Support |output_device_id|. ++ DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!"; ++ static const int kDefaultOutputBufferSize = 2048; ++ ++ ChannelLayoutConfig channel_layout_config = ChannelLayoutConfig::Stereo(); ++ int sample_rate = kDefaultSampleRate; ++ int buffer_size = kDefaultOutputBufferSize; ++ if (input_params.IsValid()) { ++ sample_rate = input_params.sample_rate(); ++ channel_layout_config = input_params.channel_layout_config(); ++ buffer_size = std::min(buffer_size, input_params.frames_per_buffer()); ++ } ++ ++ int user_buffer_size = GetUserBufferSize(); ++ if (user_buffer_size) ++ buffer_size = user_buffer_size; ++ ++ return AudioParameters( ++ AudioParameters::AUDIO_PCM_LOW_LATENCY, ++ channel_layout_config, sample_rate, buffer_size); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeInputStream( ++ const AudioParameters& params) { ++ DLOG(WARNING) << "MakeInputStream"; ++ return new SndioAudioInputStream(this, ++ AudioDeviceDescription::kDefaultDeviceId, params); ++} ++ ++AudioOutputStream* AudioManagerSndio::MakeOutputStream( ++ const AudioParameters& params) { ++ DLOG(WARNING) << "MakeOutputStream"; ++ return new SndioAudioOutputStream(params, this); ++} ++#endif ++ ++std::unique_ptr<media::AudioManager> CreateAudioManager( ++ std::unique_ptr<AudioThread> audio_thread, ++ AudioLogFactory* audio_log_factory) { ++ DLOG(WARNING) << "CreateAudioManager"; ++ ++ auto _ab = kAudioBackendParam.Get(); ++ ++ // For testing allow audio output to be disabled. ++ if (base::CommandLine::ForCurrentProcess()->HasSwitch( ++ switches::kDisableAudioOutput) || ++ !base::FeatureList::IsEnabled(media::kAudioBackend)) { ++ return std::make_unique<FakeAudioManager>(std::move(audio_thread), ++ audio_log_factory); ++ } ++ ++#if defined(USE_PULSEAUDIO) ++ pa_threaded_mainloop* pa_mainloop = nullptr; ++ pa_context* pa_context = nullptr; ++ if (_ab != AudioBackend::kSndio && _ab != AudioBackend::kAlsa && ++ pulse::InitPulse(&pa_mainloop, &pa_context)) { ++ return std::make_unique<AudioManagerPulse>( ++ std::move(audio_thread), audio_log_factory, pa_mainloop, pa_context); ++ } else if (_ab == AudioBackend::kAuto) { ++ LOG(WARNING) << "Falling back to SNDIO for audio output. PulseAudio is not " ++ "available or could not be initialized."; ++ } ++#endif ++ ++#if defined(USE_SNDIO) ++ if (_ab != AudioBackend::kPulseAudio && _ab != AudioBackend::kAlsa) { ++ return std::make_unique<AudioManagerSndio>(std::move(audio_thread), ++ audio_log_factory); ++ } else if (_ab == AudioBackend::kAuto) { ++ LOG(WARNING) << "Falling back to ALSA audio output. SNDIO is not " ++ "available or could not be initialized."; ++ } ++#endif ++ ++#if defined(USE_ALSA) ++ if (_ab != AudioBackend::kPulseAudio && _ab != AudioBackend::kSndio) { ++ return std::make_unique<AudioManagerAlsa>(std::move(audio_thread), ++ audio_log_factory); ++ } else if (_ab == AudioBackend::kAuto) { ++ LOG(WARNING) << "Falling back to fake audio output. ALSA is not " ++ "available or could not be initialized."; ++ } ++#endif ++ ++ return std::make_unique<FakeAudioManager>(std::move(audio_thread), ++ audio_log_factory); ++} ++ ++} // namespace media diff --git a/devel/electron36/files/patch-media_audio_sndio_audio__manager__sndio.h b/devel/electron36/files/patch-media_audio_sndio_audio__manager__sndio.h new file mode 100644 index 000000000000..33428cfc37d1 --- /dev/null +++ b/devel/electron36/files/patch-media_audio_sndio_audio__manager__sndio.h @@ -0,0 +1,69 @@ +--- media/audio/sndio/audio_manager_sndio.h.orig 2022-02-07 13:39:41 UTC ++++ media/audio/sndio/audio_manager_sndio.h +@@ -0,0 +1,66 @@ ++// 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. ++ ++#ifndef MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ ++#define MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ ++ ++#include <set> ++ ++#include "base/compiler_specific.h" ++#include "base/memory/ref_counted.h" ++#include "base/threading/thread.h" ++#include "media/audio/audio_manager_base.h" ++ ++namespace media { ++ ++class MEDIA_EXPORT AudioManagerSndio : public AudioManagerBase { ++ public: ++ AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread, ++ AudioLogFactory* audio_log_factory); ++ ++ AudioManagerSndio(const AudioManagerSndio&) = delete; ++ AudioManagerSndio& operator=(const AudioManagerSndio&) = delete; ++ ++ ~AudioManagerSndio() override; ++ ++ // Implementation of AudioManager. ++ bool HasAudioOutputDevices() override; ++ bool HasAudioInputDevices() override; ++ void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override; ++ void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override; ++ AudioParameters GetInputStreamParameters( ++ const std::string& device_id) override; ++ const char* GetName() override; ++ ++ // Implementation of AudioManagerBase. ++ AudioOutputStream* MakeLinearOutputStream( ++ const AudioParameters& params, ++ const LogCallback& log_callback) override; ++ AudioOutputStream* MakeLowLatencyOutputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ AudioInputStream* MakeLinearInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ AudioInputStream* MakeLowLatencyInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ ++ protected: ++ AudioParameters GetPreferredOutputStreamParameters( ++ const std::string& output_device_id, ++ const AudioParameters& input_params) override; ++ ++ private: ++ // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream. ++ AudioOutputStream* MakeOutputStream(const AudioParameters& params); ++ AudioInputStream* MakeInputStream(const AudioParameters& params); ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ diff --git a/devel/electron36/files/patch-media_audio_sndio_sndio__input.cc b/devel/electron36/files/patch-media_audio_sndio_sndio__input.cc new file mode 100644 index 000000000000..f0c3135e90d2 --- /dev/null +++ b/devel/electron36/files/patch-media_audio_sndio_sndio__input.cc @@ -0,0 +1,203 @@ +--- media/audio/sndio/sndio_input.cc.orig 2023-06-07 04:52:29 UTC ++++ media/audio/sndio/sndio_input.cc +@@ -0,0 +1,200 @@ ++// Copyright 2013 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. ++ ++#include "base/logging.h" ++#include "media/base/audio_timestamp_helper.h" ++#include "media/audio/sndio/audio_manager_sndio.h" ++#include "media/audio/audio_manager.h" ++#include "media/audio/sndio/sndio_input.h" ++ ++namespace media { ++ ++static const SampleFormat kSampleFormat = kSampleFormatS16; ++ ++void SndioAudioInputStream::OnMoveCallback(void *arg, int delta) ++{ ++ SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg); ++ ++ self->hw_delay += delta; ++} ++ ++void *SndioAudioInputStream::ThreadEntry(void *arg) { ++ SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg); ++ ++ self->ThreadLoop(); ++ return NULL; ++} ++ ++SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* manager, ++ const std::string& device_name, ++ const AudioParameters& params) ++ : manager(manager), ++ params(params), ++ audio_bus(AudioBus::Create(params)), ++ state(kClosed) { ++} ++ ++SndioAudioInputStream::~SndioAudioInputStream() { ++ if (state != kClosed) ++ Close(); ++} ++ ++AudioInputStream::OpenOutcome SndioAudioInputStream::Open() { ++ struct sio_par par; ++ int sig; ++ ++ if (state != kClosed) ++ return OpenOutcome::kFailed; ++ ++ if (params.format() != AudioParameters::AUDIO_PCM_LINEAR && ++ params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) { ++ LOG(WARNING) << "Unsupported audio format."; ++ return OpenOutcome::kFailed; ++ } ++ ++ sio_initpar(&par); ++ par.rate = params.sample_rate(); ++ par.rchan = params.channels(); ++ par.bits = SampleFormatToBitsPerChannel(kSampleFormat); ++ par.bps = par.bits / 8; ++ par.sig = sig = par.bits != 8 ? 1 : 0; ++ par.le = SIO_LE_NATIVE; ++ par.appbufsz = params.frames_per_buffer(); ++ ++ hdl = sio_open(SIO_DEVANY, SIO_REC, 0); ++ ++ if (hdl == NULL) { ++ LOG(ERROR) << "Couldn't open audio device."; ++ return OpenOutcome::kFailed; ++ } ++ ++ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) { ++ LOG(ERROR) << "Couldn't set audio parameters."; ++ goto bad_close; ++ } ++ ++ if (par.rate != (unsigned int)params.sample_rate() || ++ par.rchan != (unsigned int)params.channels() || ++ par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) || ++ par.sig != (unsigned int)sig || ++ (par.bps > 1 && par.le != SIO_LE_NATIVE) || ++ (par.bits != par.bps * 8)) { ++ LOG(ERROR) << "Unsupported audio parameters."; ++ goto bad_close; ++ } ++ state = kStopped; ++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)]; ++ sio_onmove(hdl, &OnMoveCallback, this); ++ return OpenOutcome::kSuccess; ++bad_close: ++ sio_close(hdl); ++ return OpenOutcome::kFailed; ++} ++ ++void SndioAudioInputStream::Start(AudioInputCallback* cb) { ++ ++ StartAgc(); ++ ++ state = kRunning; ++ hw_delay = 0; ++ callback = cb; ++ sio_start(hdl); ++ if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) { ++ LOG(ERROR) << "Failed to create real-time thread for recording."; ++ sio_stop(hdl); ++ state = kStopped; ++ } ++} ++ ++void SndioAudioInputStream::Stop() { ++ ++ if (state == kStopped) ++ return; ++ ++ state = kStopWait; ++ pthread_join(thread, NULL); ++ sio_stop(hdl); ++ state = kStopped; ++ ++ StopAgc(); ++} ++ ++void SndioAudioInputStream::Close() { ++ ++ if (state == kClosed) ++ goto release; ++ ++ if (state == kRunning) ++ Stop(); ++ ++ state = kClosed; ++ delete [] buffer; ++ sio_close(hdl); ++ ++release: ++ manager->ReleaseInputStream(this); ++} ++ ++double SndioAudioInputStream::GetMaxVolume() { ++ // Not supported ++ return 0.0; ++} ++ ++void SndioAudioInputStream::SetVolume(double volume) { ++ // Not supported. Do nothing. ++} ++ ++double SndioAudioInputStream::GetVolume() { ++ // Not supported. ++ return 0.0; ++} ++ ++bool SndioAudioInputStream::IsMuted() { ++ // Not supported. ++ return false; ++} ++ ++void SndioAudioInputStream::SetOutputDeviceForAec( ++ const std::string& output_device_id) { ++ // Not supported. ++} ++ ++void SndioAudioInputStream::ThreadLoop(void) { ++ size_t todo, n; ++ char *data; ++ unsigned int nframes; ++ double normalized_volume = 0.0; ++ ++ nframes = audio_bus->frames(); ++ ++ while (state == kRunning && !sio_eof(hdl)) { ++ ++ GetAgcVolume(&normalized_volume); ++ ++ // read one block ++ todo = nframes * params.GetBytesPerFrame(kSampleFormat); ++ data = buffer; ++ while (todo > 0) { ++ n = sio_read(hdl, data, todo); ++ if (n == 0) ++ return; // unrecoverable I/O error ++ todo -= n; ++ data += n; ++ } ++ hw_delay -= nframes; ++ ++ // convert frames count to TimeDelta ++ const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay, ++ params.sample_rate()); ++ ++ // push into bus ++ audio_bus->FromInterleaved<SignedInt16SampleTypeTraits>(reinterpret_cast<int16_t*>(buffer), nframes); ++ ++ ++ // invoke callback ++ callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1., {}); ++ } ++} ++ ++} // namespace media diff --git a/devel/electron36/files/patch-media_audio_sndio_sndio__input.h b/devel/electron36/files/patch-media_audio_sndio_sndio__input.h new file mode 100644 index 000000000000..b5684256703a --- /dev/null +++ b/devel/electron36/files/patch-media_audio_sndio_sndio__input.h @@ -0,0 +1,94 @@ +--- media/audio/sndio/sndio_input.h.orig 2022-02-07 13:39:41 UTC ++++ media/audio/sndio/sndio_input.h +@@ -0,0 +1,91 @@ ++// Copyright 2013 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. ++ ++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ ++#define MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ ++ ++#include <stdint.h> ++#include <string> ++#include <sndio.h> ++ ++#include "base/compiler_specific.h" ++#include "base/memory/weak_ptr.h" ++#include "base/time/time.h" ++#include "media/audio/agc_audio_stream.h" ++#include "media/audio/audio_io.h" ++#include "media/audio/audio_device_description.h" ++#include "media/base/audio_parameters.h" ++ ++namespace media { ++ ++class AudioManagerBase; ++ ++// Implementation of AudioOutputStream using sndio(7) ++class SndioAudioInputStream : public AgcAudioStream<AudioInputStream> { ++ public: ++ // Pass this to the constructor if you want to attempt auto-selection ++ // of the audio recording device. ++ static const char kAutoSelectDevice[]; ++ ++ // Create a PCM Output stream for the SNDIO device identified by ++ // |device_name|. If unsure of what to use for |device_name|, use ++ // |kAutoSelectDevice|. ++ SndioAudioInputStream(AudioManagerBase* audio_manager, ++ const std::string& device_name, ++ const AudioParameters& params); ++ ++ SndioAudioInputStream(const SndioAudioInputStream&) = delete; ++ SndioAudioInputStream& operator=(const SndioAudioInputStream&) = delete; ++ ++ ~SndioAudioInputStream() override; ++ ++ // Implementation of AudioInputStream. ++ OpenOutcome Open() override; ++ void Start(AudioInputCallback* callback) override; ++ void Stop() override; ++ void Close() override; ++ double GetMaxVolume() override; ++ void SetVolume(double volume) override; ++ double GetVolume() override; ++ bool IsMuted() override; ++ void SetOutputDeviceForAec(const std::string& output_device_id) override; ++ ++ private: ++ ++ enum StreamState { ++ kClosed, // Not opened yet ++ kStopped, // Device opened, but not started yet ++ kRunning, // Started, device playing ++ kStopWait // Stopping, waiting for the real-time thread to exit ++ }; ++ ++ // C-style call-backs ++ static void OnMoveCallback(void *arg, int delta); ++ static void* ThreadEntry(void *arg); ++ ++ // Continuously moves data from the device to the consumer ++ void ThreadLoop(); ++ // Our creator, the audio manager needs to be notified when we close. ++ AudioManagerBase* manager; ++ // Parameters of the source ++ AudioParameters params; ++ // We store data here for consumer ++ std::unique_ptr<AudioBus> audio_bus; ++ // Call-back that consumes recorded data ++ AudioInputCallback* callback; // Valid during a recording session. ++ // Handle of the audio device ++ struct sio_hdl* hdl; ++ // Current state of the stream ++ enum StreamState state; ++ // High priority thread running ThreadLoop() ++ pthread_t thread; ++ // Number of frames buffered in the hardware ++ int hw_delay; ++ // Temporary buffer where data is stored sndio-compatible format ++ char* buffer; ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ diff --git a/devel/electron36/files/patch-media_audio_sndio_sndio__output.cc b/devel/electron36/files/patch-media_audio_sndio_sndio__output.cc new file mode 100644 index 000000000000..2672bf645702 --- /dev/null +++ b/devel/electron36/files/patch-media_audio_sndio_sndio__output.cc @@ -0,0 +1,190 @@ +--- media/audio/sndio/sndio_output.cc.orig 2023-02-15 13:09:00 UTC ++++ media/audio/sndio/sndio_output.cc +@@ -0,0 +1,187 @@ ++// 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. ++ ++#include "base/logging.h" ++#include "base/time/time.h" ++#include "base/time/default_tick_clock.h" ++#include "media/audio/audio_manager_base.h" ++#include "media/base/audio_timestamp_helper.h" ++#include "media/audio/sndio/sndio_output.h" ++ ++namespace media { ++ ++static const SampleFormat kSampleFormat = kSampleFormatS16; ++ ++void SndioAudioOutputStream::OnMoveCallback(void *arg, int delta) { ++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg); ++ ++ self->hw_delay -= delta; ++} ++ ++void SndioAudioOutputStream::OnVolCallback(void *arg, unsigned int vol) { ++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg); ++ ++ self->vol = vol; ++} ++ ++void *SndioAudioOutputStream::ThreadEntry(void *arg) { ++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg); ++ ++ self->ThreadLoop(); ++ return NULL; ++} ++ ++SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params, ++ AudioManagerBase* manager) ++ : manager(manager), ++ params(params), ++ audio_bus(AudioBus::Create(params)), ++ state(kClosed), ++ mutex(PTHREAD_MUTEX_INITIALIZER) { ++} ++ ++SndioAudioOutputStream::~SndioAudioOutputStream() { ++ if (state != kClosed) ++ Close(); ++} ++ ++bool SndioAudioOutputStream::Open() { ++ if (params.format() != AudioParameters::AUDIO_PCM_LINEAR && ++ params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) { ++ LOG(WARNING) << "Unsupported audio format."; ++ return false; ++ } ++ state = kStopped; ++ volpending = 0; ++ vol = SIO_MAXVOL; ++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)]; ++ return true; ++} ++ ++void SndioAudioOutputStream::Close() { ++ if (state == kClosed) ++ goto release; ++ if (state == kRunning) ++ Stop(); ++ state = kClosed; ++ delete [] buffer; ++release: ++ manager->ReleaseOutputStream(this); // Calls the destructor ++} ++ ++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) { ++ struct sio_par par; ++ int sig; ++ ++ sio_initpar(&par); ++ par.rate = params.sample_rate(); ++ par.pchan = params.channels(); ++ par.bits = SampleFormatToBitsPerChannel(kSampleFormat); ++ par.bps = par.bits / 8; ++ par.sig = sig = par.bits != 8 ? 1 : 0; ++ par.le = SIO_LE_NATIVE; ++ par.appbufsz = params.frames_per_buffer(); ++ ++ hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0); ++ if (hdl == NULL) { ++ LOG(ERROR) << "Couldn't open audio device."; ++ return; ++ } ++ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) { ++ LOG(ERROR) << "Couldn't set audio parameters."; ++ sio_close(hdl); ++ return; ++ } ++ if (par.rate != (unsigned int)params.sample_rate() || ++ par.pchan != (unsigned int)params.channels() || ++ par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) || ++ par.sig != (unsigned int)sig || ++ (par.bps > 1 && par.le != SIO_LE_NATIVE) || ++ (par.bits != par.bps * 8)) { ++ LOG(ERROR) << "Unsupported audio parameters."; ++ sio_close(hdl); ++ return; ++ } ++ ++ sio_onmove(hdl, &OnMoveCallback, this); ++ sio_onvol(hdl, &OnVolCallback, this); ++ ++ state = kRunning; ++ hw_delay = 0; ++ source = callback; ++ sio_start(hdl); ++ ++ if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) { ++ LOG(ERROR) << "Failed to create real-time thread."; ++ sio_stop(hdl); ++ sio_close(hdl); ++ state = kStopped; ++ } ++} ++ ++void SndioAudioOutputStream::Stop() { ++ if (state == kStopped) ++ return; ++ state = kStopWait; ++ pthread_join(thread, NULL); ++ sio_stop(hdl); ++ sio_close(hdl); ++ state = kStopped; ++} ++ ++void SndioAudioOutputStream::SetVolume(double v) { ++ pthread_mutex_lock(&mutex); ++ vol = v * SIO_MAXVOL; ++ volpending = 1; ++ pthread_mutex_unlock(&mutex); ++} ++ ++void SndioAudioOutputStream::GetVolume(double* v) { ++ pthread_mutex_lock(&mutex); ++ *v = vol * (1. / SIO_MAXVOL); ++ pthread_mutex_unlock(&mutex); ++} ++ ++// This stream is always used with sub second buffer sizes, where it's ++// sufficient to simply always flush upon Start(). ++void SndioAudioOutputStream::Flush() {} ++ ++void SndioAudioOutputStream::ThreadLoop(void) { ++ int avail, count, result; ++ ++ while (state == kRunning) { ++ // Update volume if needed ++ pthread_mutex_lock(&mutex); ++ if (volpending) { ++ volpending = 0; ++ sio_setvol(hdl, vol); ++ } ++ pthread_mutex_unlock(&mutex); ++ ++ // Get data to play ++ const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay, ++ params.sample_rate()); ++ count = source->OnMoreData(delay, base::TimeTicks::Now(), {}, audio_bus.get()); ++ audio_bus->ToInterleaved<SignedInt16SampleTypeTraits>(count, reinterpret_cast<int16_t*>(buffer)); ++ if (count == 0) { ++ // We have to submit something to the device ++ count = audio_bus->frames(); ++ memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat)); ++ LOG(WARNING) << "No data to play, running empty cycle."; ++ } ++ ++ // Submit data to the device ++ avail = count * params.GetBytesPerFrame(kSampleFormat); ++ result = sio_write(hdl, buffer, avail); ++ if (result == 0) { ++ LOG(WARNING) << "Audio device disconnected."; ++ break; ++ } ++ ++ // Update hardware pointer ++ hw_delay += count; ++ } ++} ++ ++} // namespace media diff --git a/devel/electron36/files/patch-media_audio_sndio_sndio__output.h b/devel/electron36/files/patch-media_audio_sndio_sndio__output.h new file mode 100644 index 000000000000..bb8603b68d9c --- /dev/null +++ b/devel/electron36/files/patch-media_audio_sndio_sndio__output.h @@ -0,0 +1,91 @@ +--- media/audio/sndio/sndio_output.h.orig 2022-02-07 13:39:41 UTC ++++ media/audio/sndio/sndio_output.h +@@ -0,0 +1,88 @@ ++// 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. ++ ++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ ++#define MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ ++ ++#include <pthread.h> ++#include <sndio.h> ++ ++#include "base/time/tick_clock.h" ++#include "base/time/time.h" ++#include "media/audio/audio_io.h" ++ ++namespace media { ++ ++class AudioManagerBase; ++ ++// Implementation of AudioOutputStream using sndio(7) ++class SndioAudioOutputStream : public AudioOutputStream { ++ public: ++ // The manager is creating this object ++ SndioAudioOutputStream(const AudioParameters& params, ++ AudioManagerBase* manager); ++ ++ SndioAudioOutputStream(const SndioAudioOutputStream&) = delete; ++ SndioAudioOutputStream& operator=(const SndioAudioOutputStream&) = delete; ++ ++ virtual ~SndioAudioOutputStream(); ++ ++ // Implementation of AudioOutputStream. ++ bool Open() override; ++ void Close() override; ++ void Start(AudioSourceCallback* callback) override; ++ void Stop() override; ++ void SetVolume(double volume) override; ++ void GetVolume(double* volume) override; ++ void Flush() override; ++ ++ friend void sndio_onmove(void *arg, int delta); ++ friend void sndio_onvol(void *arg, unsigned int vol); ++ friend void *sndio_threadstart(void *arg); ++ ++ private: ++ enum StreamState { ++ kClosed, // Not opened yet ++ kStopped, // Device opened, but not started yet ++ kRunning, // Started, device playing ++ kStopWait // Stopping, waiting for the real-time thread to exit ++ }; ++ ++ // C-style call-backs ++ static void OnMoveCallback(void *arg, int delta); ++ static void OnVolCallback(void *arg, unsigned int vol); ++ static void* ThreadEntry(void *arg); ++ ++ // Continuously moves data from the producer to the device ++ void ThreadLoop(void); ++ ++ // Our creator, the audio manager needs to be notified when we close. ++ AudioManagerBase* manager; ++ // Parameters of the source ++ AudioParameters params; ++ // Source stores data here ++ std::unique_ptr<AudioBus> audio_bus; ++ // Call-back that produces data to play ++ AudioSourceCallback* source; ++ // Handle of the audio device ++ struct sio_hdl* hdl; ++ // Current state of the stream ++ enum StreamState state; ++ // High priority thread running ThreadLoop() ++ pthread_t thread; ++ // Protects vol, volpending and hw_delay ++ pthread_mutex_t mutex; ++ // Current volume in the 0..SIO_MAXVOL range ++ int vol; ++ // Set to 1 if volumes must be refreshed in the realtime thread ++ int volpending; ++ // Number of frames buffered in the hardware ++ int hw_delay; ++ // Temporary buffer where data is stored sndio-compatible format ++ char* buffer; ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ diff --git a/devel/electron36/files/patch-media_base_audio__latency.cc b/devel/electron36/files/patch-media_base_audio__latency.cc new file mode 100644 index 000000000000..e733400f5e9d --- /dev/null +++ b/devel/electron36/files/patch-media_base_audio__latency.cc @@ -0,0 +1,11 @@ +--- media/base/audio_latency.cc.orig 2025-04-22 20:15:27 UTC ++++ media/base/audio_latency.cc +@@ -147,7 +147,7 @@ int AudioLatency::GetRtcBufferSize(int sample_rate, in + } + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // On Linux, MacOS and Fuchsia, the low level IO implementations on the + // browser side supports all buffer size the clients want. We use the native + // peer connection buffer size (10ms) to achieve best possible performance. diff --git a/devel/electron36/files/patch-media_base_libaom__thread__wrapper.cc b/devel/electron36/files/patch-media_base_libaom__thread__wrapper.cc new file mode 100644 index 000000000000..d08a8992857e --- /dev/null +++ b/devel/electron36/files/patch-media_base_libaom__thread__wrapper.cc @@ -0,0 +1,24 @@ +--- media/base/libaom_thread_wrapper.cc.orig 2024-04-15 20:34:00 UTC ++++ media/base/libaom_thread_wrapper.cc +@@ -5,17 +5,21 @@ + #include "base/logging.h" + #include "media/base/codec_worker_impl.h" + #include "media/base/libvpx_thread_wrapper.h" ++#if !BUILDFLAG(IS_BSD) + #include "third_party/libaom/source/libaom/aom_util/aom_thread.h" ++#endif + + namespace media { + + void InitLibAomThreadWrapper() { ++#if !BUILDFLAG(IS_BSD) + const AVxWorkerInterface interface = + CodecWorkerImpl<AVxWorkerInterface, AVxWorkerImpl, AVxWorker, + AVxWorkerStatus, AVX_WORKER_STATUS_NOT_OK, + AVX_WORKER_STATUS_OK, + AVX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface(); + CHECK(aom_set_worker_interface(&interface)); ++#endif + } + + } // namespace media diff --git a/devel/electron36/files/patch-media_base_libvpx__thread__wrapper.cc b/devel/electron36/files/patch-media_base_libvpx__thread__wrapper.cc new file mode 100644 index 000000000000..db10f013d75d --- /dev/null +++ b/devel/electron36/files/patch-media_base_libvpx__thread__wrapper.cc @@ -0,0 +1,25 @@ +--- media/base/libvpx_thread_wrapper.cc.orig 2024-04-15 20:34:00 UTC ++++ media/base/libvpx_thread_wrapper.cc +@@ -5,11 +5,14 @@ + #include "media/base/libvpx_thread_wrapper.h" + + #include "media/base/codec_worker_impl.h" ++#if !BUILDFLAG(IS_OPENBSD) + #include "third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h" ++#endif + + namespace media { + + void InitLibVpxThreadWrapper() { ++#if !BUILDFLAG(IS_OPENBSD) + const VPxWorkerInterface interface = + CodecWorkerImpl<VPxWorkerInterface, VPxWorkerImpl, VPxWorker, + VPxWorkerStatus, VPX_WORKER_STATUS_NOT_OK, +@@ -17,6 +20,7 @@ void InitLibVpxThreadWrapper() { + VPX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface(); + + CHECK(vpx_set_worker_interface(&interface)); ++#endif + } + + } // namespace media diff --git a/devel/electron36/files/patch-media_base_media__switches.cc b/devel/electron36/files/patch-media_base_media__switches.cc new file mode 100644 index 000000000000..d9e138a087ae --- /dev/null +++ b/devel/electron36/files/patch-media_base_media__switches.cc @@ -0,0 +1,114 @@ +--- media/base/media_switches.cc.orig 2025-04-22 20:15:27 UTC ++++ media/base/media_switches.cc +@@ -19,7 +19,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 + +@@ -358,8 +358,8 @@ BASE_FEATURE(kUseSCContentSharingPicker, + "UseSCContentSharingPicker", + base::FEATURE_DISABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_MAC) +- +-#if BUILDFLAG(IS_LINUX) ++ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Enables system audio mirroring using pulseaudio. + BASE_FEATURE(kPulseaudioLoopbackForCast, + "PulseaudioLoopbackForCast", +@@ -369,6 +369,28 @@ BASE_FEATURE(kPulseaudioLoopbackForScreenShare, + BASE_FEATURE(kPulseaudioLoopbackForScreenShare, + "PulseaudioLoopbackForScreenShare", + base::FEATURE_DISABLED_BY_DEFAULT); ++ ++BASE_FEATURE(kAudioBackend, ++ "AudioBackend", ++ base::FEATURE_ENABLED_BY_DEFAULT); ++ ++constexpr base::FeatureParam<AudioBackend>::Option ++ kAudioBackendOptions[] = { ++ {AudioBackend::kAuto, ++ "auto"}, ++ {AudioBackend::kPulseAudio, "pulseaudio"}, ++ {AudioBackend::kSndio, "sndio"}, ++ {AudioBackend::kAlsa, "alsa"}}; ++ ++const base::FeatureParam<AudioBackend> ++ kAudioBackendParam{ ++ &kAudioBackend, "audio-backend", ++#if BUILDFLAG(IS_OPENBSD) ++ AudioBackend::kSndio, ++#elif BUILDFLAG(IS_FREEBSD) ++ AudioBackend::kAuto, ++#endif ++ &kAudioBackendOptions}; + #endif // BUILDFLAG(IS_LINUX) + + // When enabled, MediaCapabilities will check with GPU Video Accelerator +@@ -636,7 +658,7 @@ BASE_FEATURE(kGlobalMediaControls, + // Show toolbar button that opens dialog for controlling media sessions. + BASE_FEATURE(kGlobalMediaControls, + "GlobalMediaControls", +-#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 +@@ -659,7 +681,7 @@ BASE_FEATURE(kMediaRemotingWithoutFullscreen, + // If enabled, users can request Media Remoting without fullscreen-in-tab. + 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 +@@ -671,7 +693,7 @@ BASE_FEATURE(kGlobalMediaControlsPictureInPicture, + BASE_FEATURE(kGlobalMediaControlsPictureInPicture, + "GlobalMediaControlsPictureInPicture", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -700,7 +722,7 @@ BASE_FEATURE(kUnifiedAutoplay, + "UnifiedAutoplay", + base::FEATURE_ENABLED_BY_DEFAULT); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Enable vaapi/v4l2 video decoding on linux. This is already enabled by default + // on chromeos, but needs an experiment on linux. + BASE_FEATURE(kAcceleratedVideoDecodeLinux, +@@ -800,7 +822,7 @@ BASE_FEATURE(kVSyncMjpegDecoding, + "VSyncMjpegDecoding", + base::FEATURE_DISABLED_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) + // Enable H264 temporal layer encoding with V4L2 HW encoder on ChromeOS. + BASE_FEATURE(kV4L2H264TemporalLayerHWEncoding, + "V4L2H264TemporalLayerHWEncoding", +@@ -1361,7 +1383,7 @@ BASE_FEATURE(kUseOutOfProcessVideoDecoding, + ); + #endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Spawn utility processes to perform hardware encode acceleration instead of + // using the GPU process. + BASE_FEATURE(kUseOutOfProcessVideoEncoding, +@@ -1443,7 +1465,7 @@ BASE_FEATURE(kRecordWebAudioEngagement, + "RecordWebAudioEngagement", + base::FEATURE_ENABLED_BY_DEFAULT); + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Reduces the number of buffers needed in the output video frame pool to + // populate the Renderer pipeline for hardware accelerated VideoDecoder in + // non-low latency scenarios. diff --git a/devel/electron36/files/patch-media_base_media__switches.h b/devel/electron36/files/patch-media_base_media__switches.h new file mode 100644 index 000000000000..83ecbc38e2fa --- /dev/null +++ b/devel/electron36/files/patch-media_base_media__switches.h @@ -0,0 +1,57 @@ +--- media/base/media_switches.h.orig 2025-04-22 20:15:27 UTC ++++ media/base/media_switches.h +@@ -329,13 +329,25 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreloadMetadataSusp + MEDIA_EXPORT BASE_DECLARE_FEATURE(kPlaybackSpeedButton); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreloadMediaEngagementData); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreloadMetadataSuspend); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kPulseaudioLoopbackForCast); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kPulseaudioLoopbackForScreenShare); ++ ++enum class AudioBackend { ++ kAuto, ++ kPulseAudio, ++ kSndio, ++ kAlsa ++}; ++ ++MEDIA_EXPORT BASE_DECLARE_FEATURE(kAudioBackend); ++MEDIA_EXPORT extern const base::FeatureParam< ++ AudioBackend> ++ kAudioBackendParam; + #endif // BUILDFLAG(IS_LINUX) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kRecordMediaEngagementScores); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kRecordWebAudioEngagement); +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kReduceHardwareVideoDecoderBuffers); + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kResumeBackgroundVideo); +@@ -349,7 +361,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseFakeDeviceForMed + MEDIA_EXPORT BASE_DECLARE_FEATURE(kUnifiedAutoplay); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAndroidOverlayForSecureOnly); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseFakeDeviceForMediaStream); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kAcceleratedVideoDecodeLinux); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kAcceleratedVideoDecodeLinuxGL); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kAcceleratedVideoEncodeLinux); +@@ -371,7 +383,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVSyncMjpegDecoding) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp9SModeHWEncoding); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kVSyncMjpegDecoding); + #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(kV4L2H264TemporalLayerHWEncoding); + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoBlitColorAccuracy); +@@ -497,7 +509,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseOutOfProcessVide + MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseOutOfProcessVideoDecoding); + #endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseOutOfProcessVideoEncoding); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + diff --git a/devel/electron36/files/patch-media_base_video__frame.cc b/devel/electron36/files/patch-media_base_video__frame.cc new file mode 100644 index 000000000000..5981e911fa89 --- /dev/null +++ b/devel/electron36/files/patch-media_base_video__frame.cc @@ -0,0 +1,47 @@ +--- media/base/video_frame.cc.orig 2025-04-22 20:15:27 UTC ++++ media/base/video_frame.cc +@@ -92,7 +92,7 @@ std::string VideoFrame::StorageTypeToString( + return "OWNED_MEMORY"; + case VideoFrame::STORAGE_SHMEM: + return "SHMEM"; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + case VideoFrame::STORAGE_DMABUFS: + return "DMABUFS"; + #endif +@@ -106,7 +106,7 @@ bool VideoFrame::IsStorageTypeMappable(VideoFrame::Sto + // static + bool VideoFrame::IsStorageTypeMappable(VideoFrame::StorageType storage_type) { + return +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // This is not strictly needed but makes explicit that, at VideoFrame + // level, DmaBufs are not mappable from userspace. + storage_type != VideoFrame::STORAGE_DMABUFS && +@@ -420,7 +420,7 @@ VideoFrame::CreateFrameForGpuMemoryBufferOrMappableSII + plane_size.width() * VideoFrame::BytesPerElement(*format, plane); + } + uint64_t modifier = gfx::NativePixmapHandle::kNoModifier; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool is_native_buffer = + gpu_memory_buffer + ? (gpu_memory_buffer->GetType() != gfx::SHARED_MEMORY_BUFFER) +@@ -938,7 +938,7 @@ scoped_refptr<VideoFrame> VideoFrame::WrapExternalGpuM + return frame; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // static + scoped_refptr<VideoFrame> VideoFrame::WrapExternalDmabufs( + const VideoFrameLayout& layout, +@@ -1625,7 +1625,7 @@ scoped_refptr<gpu::ClientSharedImage> VideoFrame::shar + return wrapped_frame_ ? wrapped_frame_->shared_image() : shared_image_; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + size_t VideoFrame::NumDmabufFds() const { + if (wrapped_frame_) { + return wrapped_frame_->NumDmabufFds(); diff --git a/devel/electron36/files/patch-media_base_video__frame.h b/devel/electron36/files/patch-media_base_video__frame.h new file mode 100644 index 000000000000..a148f42d9ccb --- /dev/null +++ b/devel/electron36/files/patch-media_base_video__frame.h @@ -0,0 +1,47 @@ +--- media/base/video_frame.h.orig 2025-04-22 20:15:27 UTC ++++ media/base/video_frame.h +@@ -42,7 +42,7 @@ + #include "ui/gfx/geometry/size.h" + #include "ui/gfx/hdr_metadata.h" + +-#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) + +@@ -88,7 +88,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. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + STORAGE_DMABUFS = 5, // Each plane is stored into a DmaBuf. + #endif + STORAGE_GPU_MEMORY_BUFFER = 6, +@@ -435,7 +435,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte + ReleaseMailboxAndGpuMemoryBufferCB mailbox_holder_and_gmb_release_cb, + base::TimeDelta timestamp); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // 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 +@@ -748,7 +748,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte + // wait for the included sync point. + scoped_refptr<gpu::ClientSharedImage> shared_image() const; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The number of 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 + // remaining planes. Should be > 0 for STORAGE_DMABUFS. +@@ -988,7 +988,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte + // GpuMemoryBuffers. Clients will set this flag while creating a VideoFrame. + bool is_mappable_si_enabled_ = false; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Dmabufs for the frame, used when storage is STORAGE_DMABUFS. Size is either + // equal or less than the number of planes of the frame. If it is less, then + // the memory area represented by the last FD contains the remaining planes. diff --git a/devel/electron36/files/patch-media_capture_video_create__video__capture__device__factory.cc b/devel/electron36/files/patch-media_capture_video_create__video__capture__device__factory.cc new file mode 100644 index 000000000000..e86a09864b48 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_create__video__capture__device__factory.cc @@ -0,0 +1,20 @@ +--- media/capture/video/create_video_capture_device_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ media/capture/video/create_video_capture_device_factory.cc +@@ -12,7 +12,7 @@ + #include "media/capture/video/fake_video_capture_device_factory.h" + #include "media/capture/video/file_video_capture_device_factory.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "media/capture/video/linux/video_capture_device_factory_linux.h" + #elif BUILDFLAG(IS_CHROMEOS) + #include "media/capture/video/chromeos/public/cros_features.h" +@@ -55,7 +55,7 @@ CreatePlatformSpecificVideoCaptureDeviceFactory( + std::unique_ptr<VideoCaptureDeviceFactory> + CreatePlatformSpecificVideoCaptureDeviceFactory( + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<VideoCaptureDeviceFactoryLinux>(ui_task_runner); + #elif BUILDFLAG(IS_CHROMEOS) + if (base::SysInfo::IsRunningOnChromeOS()) diff --git a/devel/electron36/files/patch-media_capture_video_fake__video__capture__device__factory.cc b/devel/electron36/files/patch-media_capture_video_fake__video__capture__device__factory.cc new file mode 100644 index 000000000000..b610d6a77eac --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_fake__video__capture__device__factory.cc @@ -0,0 +1,11 @@ +--- media/capture/video/fake_video_capture_device_factory.cc.orig 2024-06-18 21:43:35 UTC ++++ media/capture/video/fake_video_capture_device_factory.cc +@@ -231,7 +231,7 @@ void FakeVideoCaptureDeviceFactory::GetDevicesInfo( + int entry_index = 0; + for (const auto& entry : devices_config_) { + VideoCaptureApi api = +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE; + #elif BUILDFLAG(IS_IOS) + VideoCaptureApi::UNKNOWN; diff --git a/devel/electron36/files/patch-media_capture_video_file__video__capture__device__factory.cc b/devel/electron36/files/patch-media_capture_video_file__video__capture__device__factory.cc new file mode 100644 index 000000000000..91bf3d7255cc --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_file__video__capture__device__factory.cc @@ -0,0 +1,11 @@ +--- media/capture/video/file_video_capture_device_factory.cc.orig 2022-02-28 16:54:41 UTC ++++ media/capture/video/file_video_capture_device_factory.cc +@@ -52,7 +52,7 @@ void FileVideoCaptureDeviceFactory::GetDevicesInfo( + VideoCaptureApi::WIN_DIRECT_SHOW; + #elif BUILDFLAG(IS_MAC) + VideoCaptureApi::MACOSX_AVFOUNDATION; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE; + #else + VideoCaptureApi::UNKNOWN; diff --git a/devel/electron36/files/patch-media_capture_video_linux_fake__v4l2__impl.cc b/devel/electron36/files/patch-media_capture_video_linux_fake__v4l2__impl.cc new file mode 100644 index 000000000000..f702a0a41a27 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_fake__v4l2__impl.cc @@ -0,0 +1,11 @@ +--- media/capture/video/linux/fake_v4l2_impl.cc.orig 2025-03-24 20:50:14 UTC ++++ media/capture/video/linux/fake_v4l2_impl.cc +@@ -569,7 +569,7 @@ int FakeV4L2Impl::close(int fd) { + return kSuccessReturnValue; + } + +-int FakeV4L2Impl::ioctl(int fd, int request, void* argp) { ++int FakeV4L2Impl::ioctl(int fd, unsigned long request, void* argp) { + base::AutoLock lock(lock_); + auto device_iter = opened_devices_.find(fd); + if (device_iter == opened_devices_.end()) diff --git a/devel/electron36/files/patch-media_capture_video_linux_fake__v4l2__impl.h b/devel/electron36/files/patch-media_capture_video_linux_fake__v4l2__impl.h new file mode 100644 index 000000000000..ce6bba028f1c --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_fake__v4l2__impl.h @@ -0,0 +1,25 @@ +--- media/capture/video/linux/fake_v4l2_impl.h.orig 2023-10-19 19:58:26 UTC ++++ media/capture/video/linux/fake_v4l2_impl.h +@@ -8,7 +8,13 @@ + #include <map> + #include <string> + ++#include "build/build_config.h" ++#if BUILDFLAG(IS_OPENBSD) ++#include <sys/videoio.h> ++typedef __uint32_t __u32; ++#else + #include <linux/videodev2.h> ++#endif + + #include "base/synchronization/lock.h" + #include "media/capture/capture_export.h" +@@ -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; +- int ioctl(int fd, int request, void* argp) override; ++ int ioctl(int fd, unsigned long request, void* argp) override; + void* mmap(void* start, + size_t length, + int prot, diff --git a/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__delegate.cc b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__delegate.cc new file mode 100644 index 000000000000..e8c7d2e49181 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__delegate.cc @@ -0,0 +1,156 @@ +--- media/capture/video/linux/v4l2_capture_delegate.cc.orig 2025-03-24 20:50:14 UTC ++++ media/capture/video/linux/v4l2_capture_delegate.cc +@@ -10,8 +10,10 @@ + #include "media/capture/video/linux/v4l2_capture_delegate.h" + + #include <fcntl.h> ++#if !BUILDFLAG(IS_BSD) + #include <linux/version.h> + #include <linux/videodev2.h> ++#endif + #include <poll.h> + #include <sys/ioctl.h> + #include <sys/mman.h> +@@ -34,17 +36,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 !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 + + // TODO(aleksandar.stojiljkovic): Wrap this with kernel version check once the + // format is introduced to kernel. +@@ -54,6 +58,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 { +@@ -273,7 +285,7 @@ bool V4L2CaptureDelegate::IsControllableControl( + // 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 +@@ -329,7 +341,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) + } +@@ -456,7 +468,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>(); + } +@@ -800,7 +812,7 @@ V4L2CaptureDelegate::~V4L2CaptureDelegate() = default; + + V4L2CaptureDelegate::~V4L2CaptureDelegate() = default; + +-bool V4L2CaptureDelegate::RunIoctl(int request, void* argp) { ++bool V4L2CaptureDelegate::RunIoctl(unsigned int request, void* argp) { + int num_retries = 0; + for (; DoIoctl(request, argp) < 0 && num_retries < kMaxIOCtrlRetries; + ++num_retries) { +@@ -810,7 +822,7 @@ bool V4L2CaptureDelegate::RunIoctl(int request, void* + return num_retries != kMaxIOCtrlRetries; + } + +-int V4L2CaptureDelegate::DoIoctl(int request, void* argp) { ++int V4L2CaptureDelegate::DoIoctl(unsigned int request, void* argp) { + return HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), request, argp)); + } + +@@ -821,6 +833,7 @@ void V4L2CaptureDelegate::ReplaceControlEventSubscript + } + + void V4L2CaptureDelegate::ReplaceControlEventSubscriptions() { ++#if !BUILDFLAG(IS_BSD) + constexpr uint32_t kControlIds[] = {V4L2_CID_AUTO_EXPOSURE_BIAS, + V4L2_CID_AUTO_WHITE_BALANCE, + V4L2_CID_BRIGHTNESS, +@@ -848,6 +861,7 @@ void V4L2CaptureDelegate::ReplaceControlEventSubscript + << ", {type = V4L2_EVENT_CTRL, id = " << control_id << "}"; + } + } ++#endif + } + + mojom::RangePtr V4L2CaptureDelegate::RetrieveUserControlRange(int control_id) { +@@ -1028,7 +1042,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)); +@@ -1066,6 +1084,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; +@@ -1099,6 +1118,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) { +@@ -1152,7 +1172,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(), +@@ -1226,7 +1246,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/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__delegate.h b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__delegate.h new file mode 100644 index 000000000000..19acc8c288b8 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__delegate.h @@ -0,0 +1,51 @@ +--- media/capture/video/linux/v4l2_capture_delegate.h.orig 2025-01-27 17:37:37 UTC ++++ media/capture/video/linux/v4l2_capture_delegate.h +@@ -34,7 +34,7 @@ namespace media { + + namespace media { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class V4L2CaptureDelegateGpuHelper; + #endif // BUILDFLAG(IS_LINUX) + +@@ -85,7 +85,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); + + private: + friend class V4L2CaptureDelegateTest; +@@ -96,10 +96,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. +- bool RunIoctl(int request, void* argp); ++ bool RunIoctl(unsigned int request, void* argp); + + // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), ...)). +- int DoIoctl(int request, void* argp); ++ int DoIoctl(unsigned int request, void* argp); + + // Check whether the control is controllable (and not changed automatically). + bool IsControllableControl(int control_id); +@@ -129,7 +129,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 +@@ -163,7 +163,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/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device.h b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device.h new file mode 100644 index 000000000000..880cc2e06392 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device.h @@ -0,0 +1,11 @@ +--- media/capture/video/linux/v4l2_capture_device.h.orig 2025-04-22 20:15:27 UTC ++++ media/capture/video/linux/v4l2_capture_device.h +@@ -23,7 +23,7 @@ class CAPTURE_EXPORT V4L2CaptureDevice + + virtual int open(const char* device_name, int flags) = 0; + virtual int close(int fd) = 0; +- virtual int ioctl(int fd, int request, void* argp) = 0; ++ virtual int ioctl(int fd, unsigned long request, void* argp) = 0; + virtual void* mmap(void* start, + size_t length, + int prot, diff --git a/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device__impl.cc b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device__impl.cc new file mode 100644 index 000000000000..902427b862a2 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device__impl.cc @@ -0,0 +1,11 @@ +--- media/capture/video/linux/v4l2_capture_device_impl.cc.orig 2022-02-07 13:39:41 UTC ++++ media/capture/video/linux/v4l2_capture_device_impl.cc +@@ -22,7 +22,7 @@ int V4L2CaptureDeviceImpl::close(int fd) { + return ::close(fd); + } + +-int V4L2CaptureDeviceImpl::ioctl(int fd, int request, void* argp) { ++int V4L2CaptureDeviceImpl::ioctl(int fd, unsigned long request, void* argp) { + return ::ioctl(fd, request, argp); + } + diff --git a/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device__impl.h b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device__impl.h new file mode 100644 index 000000000000..21a77244eca8 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_v4l2__capture__device__impl.h @@ -0,0 +1,11 @@ +--- media/capture/video/linux/v4l2_capture_device_impl.h.orig 2022-02-07 13:39:41 UTC ++++ media/capture/video/linux/v4l2_capture_device_impl.h +@@ -19,7 +19,7 @@ class CAPTURE_EXPORT V4L2CaptureDeviceImpl : public V4 + public: + int open(const char* device_name, int flags) override; + int close(int fd) override; +- int ioctl(int fd, int request, void* argp) override; ++ int ioctl(int fd, unsigned long request, void* argp) override; + void* mmap(void* start, + size_t length, + int prot, diff --git a/devel/electron36/files/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc b/devel/electron36/files/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc new file mode 100644 index 000000000000..88a6f2c8bf0c --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc @@ -0,0 +1,80 @@ +--- media/capture/video/linux/video_capture_device_factory_v4l2.cc.orig 2025-03-24 20:50:14 UTC ++++ media/capture/video/linux/video_capture_device_factory_v4l2.cc +@@ -43,6 +43,7 @@ bool CompareCaptureDevices(const VideoCaptureDeviceInf + return a.descriptor < b.descriptor; + } + ++#if !BUILDFLAG(IS_OPENBSD) + // USB VID and PID are both 4 bytes long. + const size_t kVidPidSize = 4; + const size_t kMaxInterfaceNameSize = 256; +@@ -75,11 +76,24 @@ std::string ExtractFileNameFromDeviceId(const std::str + DCHECK(base::StartsWith(device_id, kDevDir, base::CompareCase::SENSITIVE)); + return device_id.substr(strlen(kDevDir), device_id.length()); + } ++#endif + + class DevVideoFilePathsDeviceProvider + : public VideoCaptureDeviceFactoryV4L2::DeviceProvider { + public: + void GetDeviceIds(std::vector<std::string>* target_container) override { ++#if BUILDFLAG(IS_OPENBSD) ++ char device[12]; ++ int fd; ++ /* unveil(2) limits access to /dev/, try /dev/video[0-7] */ ++ for (int n = 0; n < 8; n++) { ++ snprintf(device, sizeof(device), "/dev/video%d", n); ++ if ((fd = open(device, O_RDONLY)) != -1) { ++ close(fd); ++ target_container->emplace_back(device); ++ } ++ } ++#else + const base::FilePath path("/dev/"); + base::FileEnumerator enumerator(path, false, base::FileEnumerator::FILES, + "video*"); +@@ -87,9 +101,13 @@ class DevVideoFilePathsDeviceProvider + const base::FileEnumerator::FileInfo info = enumerator.GetInfo(); + target_container->emplace_back(path.value() + info.GetName().value()); + } ++#endif + } + + std::string GetDeviceModelId(const std::string& device_id) override { ++#if BUILDFLAG(IS_OPENBSD) ++ return std::string(); ++#else + const std::string file_name = ExtractFileNameFromDeviceId(device_id); + std::string usb_id; + const std::string vid_path = +@@ -106,9 +124,13 @@ class DevVideoFilePathsDeviceProvider + } + + return usb_id; ++#endif + } + + std::string GetDeviceDisplayName(const std::string& device_id) override { ++#if BUILDFLAG(IS_OPENBSD) ++ return std::string(); ++#else + const std::string file_name = ExtractFileNameFromDeviceId(device_id); + const std::string interface_path = + base::StringPrintf(kInterfacePathTemplate, file_name.c_str()); +@@ -119,6 +141,7 @@ class DevVideoFilePathsDeviceProvider + return std::string(); + } + return display_name; ++#endif + } + }; + +@@ -224,7 +247,7 @@ void VideoCaptureDeviceFactoryV4L2::GetDevicesInfo( + std::move(callback).Run(std::move(devices_info)); + } + +-int VideoCaptureDeviceFactoryV4L2::DoIoctl(int fd, int request, void* argp) { ++int VideoCaptureDeviceFactoryV4L2::DoIoctl(int fd, unsigned int request, void* argp) { + return HANDLE_EINTR(v4l2_->ioctl(fd, request, argp)); + } + diff --git a/devel/electron36/files/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h b/devel/electron36/files/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h new file mode 100644 index 000000000000..892b5de1714d --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h @@ -0,0 +1,11 @@ +--- media/capture/video/linux/video_capture_device_factory_v4l2.h.orig 2023-03-30 00:33:53 UTC ++++ media/capture/video/linux/video_capture_device_factory_v4l2.h +@@ -51,7 +51,7 @@ class CAPTURE_EXPORT VideoCaptureDeviceFactoryV4L2 + + private: + // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(fd, ...)). +- int DoIoctl(int fd, int request, void* argp); ++ int DoIoctl(int fd, unsigned int request, void* argp); + + VideoCaptureControlSupport GetControlSupport(int fd); + bool GetControlSupport(int fd, int control_id); diff --git a/devel/electron36/files/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc b/devel/electron36/files/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc new file mode 100644 index 000000000000..866101f00e56 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc @@ -0,0 +1,20 @@ +--- media/capture/video/video_capture_buffer_tracker_factory_impl.cc.orig 2025-04-22 20:15:27 UTC ++++ media/capture/video/video_capture_buffer_tracker_factory_impl.cc +@@ -13,7 +13,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/win/gpu_memory_buffer_tracker_win.h" +@@ -41,7 +41,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/devel/electron36/files/patch-media_capture_video_video__capture__device__client.cc b/devel/electron36/files/patch-media_capture_video_video__capture__device__client.cc new file mode 100644 index 000000000000..7694ac964758 --- /dev/null +++ b/devel/electron36/files/patch-media_capture_video_video__capture__device__client.cc @@ -0,0 +1,11 @@ +--- media/capture/video/video_capture_device_client.cc.orig 2025-04-22 20:15:27 UTC ++++ media/capture/video/video_capture_device_client.cc +@@ -172,7 +172,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/devel/electron36/files/patch-media_cdm_cdm__paths__unittest.cc b/devel/electron36/files/patch-media_cdm_cdm__paths__unittest.cc new file mode 100644 index 000000000000..a1211ecda4f0 --- /dev/null +++ b/devel/electron36/files/patch-media_cdm_cdm__paths__unittest.cc @@ -0,0 +1,11 @@ +--- media/cdm/cdm_paths_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ media/cdm/cdm_paths_unittest.cc +@@ -26,7 +26,7 @@ const char kComponentPlatform[] = + "win"; + #elif BUILDFLAG(IS_CHROMEOS) + "cros"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + "linux"; + #elif BUILDFLAG(IS_FUCHSIA) + "fuchsia"; diff --git a/devel/electron36/files/patch-media_cdm_library__cdm_cdm__paths.gni b/devel/electron36/files/patch-media_cdm_library__cdm_cdm__paths.gni new file mode 100644 index 000000000000..0602a68bc0d0 --- /dev/null +++ b/devel/electron36/files/patch-media_cdm_library__cdm_cdm__paths.gni @@ -0,0 +1,11 @@ +--- media/cdm/library_cdm/cdm_paths.gni.orig 2025-04-22 20:15:27 UTC ++++ media/cdm/library_cdm/cdm_paths.gni +@@ -14,7 +14,7 @@ if (is_chromeos) { + # 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/devel/electron36/files/patch-media_ffmpeg_scripts_build__ffmpeg.py b/devel/electron36/files/patch-media_ffmpeg_scripts_build__ffmpeg.py new file mode 100644 index 000000000000..c9a657c4a668 --- /dev/null +++ b/devel/electron36/files/patch-media_ffmpeg_scripts_build__ffmpeg.py @@ -0,0 +1,66 @@ +--- media/ffmpeg/scripts/build_ffmpeg.py.orig 2024-08-14 20:55:06 UTC ++++ media/ffmpeg/scripts/build_ffmpeg.py +@@ -33,7 +33,7 @@ sys.path.append(os.path.join(CHROMIUM_ROOT_DIR, 'build + SUCCESS_TOKEN = 'THIS_BUILD_WORKED' + + sys.path.append(os.path.join(CHROMIUM_ROOT_DIR, 'build')) +-import gn_helpers ++#import gn_helpers + + BRANDINGS = [ + 'Chrome', +@@ -43,6 +43,8 @@ ARCH_MAP = { + ARCH_MAP = { + 'android': ['ia32', 'x64', 'arm-neon', 'arm64'], + 'linux': ['ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64'], ++ 'openbsd': ['x64', 'arm64', 'ia32'], ++ 'freebsd': ['x64', 'arm64', 'ia32'], + 'mac': ['x64', 'arm64'], + 'win': ['ia32', 'x64', 'arm64'], + } +@@ -122,7 +124,7 @@ def GetDsoName(target_os, dso_name, dso_version): + + + 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) +@@ -475,7 +477,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 */'), +@@ -598,7 +600,7 @@ def main(argv): + configure_args = args[2:] + + if target_os not in ('android', 'linux', 'linux-noasm', 'mac', 'win', +- 'all'): ++ 'all', 'openbsd', 'freebsd'): + parser.print_help() + return 1 + +@@ -712,7 +714,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os, + '--optflags="-O2"', + ]) + +- 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([ +@@ -827,9 +829,6 @@ def ConfigureAndBuild(target_arch, target_os, host_os, + + configure_flags['Common'].extend([ + '--target-os=linux', +- '--sysroot=' + +- os.path.join(CHROMIUM_ROOT_DIR, +- 'build/linux/debian_bullseye_arm64-sysroot'), + # See crbug.com/1467681. These could be removed eventually + '--disable-dotprod', + '--disable-i8mm', diff --git a/devel/electron36/files/patch-media_ffmpeg_scripts_robo__lib_config.py b/devel/electron36/files/patch-media_ffmpeg_scripts_robo__lib_config.py new file mode 100644 index 000000000000..dba3933252e0 --- /dev/null +++ b/devel/electron36/files/patch-media_ffmpeg_scripts_robo__lib_config.py @@ -0,0 +1,56 @@ +--- media/ffmpeg/scripts/robo_lib/config.py.orig 2025-03-24 20:50:14 UTC ++++ media/ffmpeg/scripts/robo_lib/config.py +@@ -56,19 +56,13 @@ class RoboConfiguration: + self._llvm_path = os.path.join(self.chrome_src(), "third_party", + "llvm-build", "Release+Asserts", "bin") + +- self.EnsurePathContainsLLVM() +- self.EnsureNoMakeInfo() + self.EnsureFFmpegHome() + self.EnsureGNConfig() +- 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 +@@ -187,9 +181,9 @@ class RoboConfiguration: + + if re.match(r"i.86", platform.machine()): + self._host_architecture = "ia32" +- elif platform.machine() == "x86_64" or platform.machine() == "AMD64": ++ elif platform.machine() == "x86_64" or platform.machine() == "AMD64" or platform.machine() == "amd64": + self._host_architecture = "x64" +- elif platform.machine() == "aarch64": ++ elif platform.machine() == "aarch64" or platform.machine() == "arm64": + self._host_architecture = "arm64" + elif platform.machine() == "mips32": + self._host_architecture = "mipsel" +@@ -224,6 +218,10 @@ class RoboConfiguration: + elif platform.system() == "Windows" or "CYGWIN_NT" in platform.system( + ): + self._host_operating_system = "win" ++ elif platform.system() == "OpenBSD": ++ self._host_operating_system = "openbsd" ++ elif platform.system() == "FreeBSD": ++ self._host_operating_system = "freebsd" + else: + raise ValueError(f"Unsupported platform: {platform.system()}") + +@@ -232,8 +230,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/devel/electron36/files/patch-media_gpu_chromeos_gl__image__processor__backend.cc b/devel/electron36/files/patch-media_gpu_chromeos_gl__image__processor__backend.cc new file mode 100644 index 000000000000..a6b9c99f8ca8 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_chromeos_gl__image__processor__backend.cc @@ -0,0 +1,13 @@ +--- media/gpu/chromeos/gl_image_processor_backend.cc.orig 2024-06-18 21:43:35 UTC ++++ media/gpu/chromeos/gl_image_processor_backend.cc +@@ -28,6 +28,10 @@ + #include "ui/ozone/public/ozone_platform.h" + #include "ui/ozone/public/surface_factory_ozone.h" + ++#ifndef GL_CONTEXT_LOST_KHR ++#define GL_CONTEXT_LOST_KHR 0x0507 ++#endif ++ + namespace media { + + namespace { diff --git a/devel/electron36/files/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc b/devel/electron36/files/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc new file mode 100644 index 000000000000..a118fc7e7b74 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc @@ -0,0 +1,29 @@ +--- media/gpu/chromeos/libyuv_image_processor_backend.cc.orig 2025-01-27 17:37:37 UTC ++++ media/gpu/chromeos/libyuv_image_processor_backend.cc +@@ -53,7 +53,7 @@ static constexpr struct { + #define CONV(in, out, trans, result) \ + {Fourcc::in, Fourcc::out, Transform::trans, SupportResult::result} + // Conversion. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + CONV(NV12, AR24, kConversion, Supported), + #endif + CONV(NV12, NV12, kConversion, Supported), +@@ -412,7 +412,7 @@ int LibYUVImageProcessorBackend::DoConversion(const Fr + fr->GetWritableVisibleData(VideoFrame::Plane::kUV)), \ + fr->stride(VideoFrame::Plane::kUV) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define ARGB_DATA(fr) \ + fr->GetWritableVisibleData(VideoFrame::Plane::kARGB), \ + fr->stride(VideoFrame::Plane::kARGB) +@@ -574,7 +574,7 @@ int LibYUVImageProcessorBackend::DoConversion(const Fr + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (output->format() == PIXEL_FORMAT_ARGB) { + if (input_config_.fourcc == Fourcc(Fourcc::NV12)) { + return LIBYUV_FUNC(NV12ToARGB, Y_UV_DATA(input), diff --git a/devel/electron36/files/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc b/devel/electron36/files/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc new file mode 100644 index 000000000000..69a6ee3b84b9 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc @@ -0,0 +1,11 @@ +--- media/gpu/chromeos/mailbox_video_frame_converter.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/chromeos/mailbox_video_frame_converter.cc +@@ -68,7 +68,7 @@ viz::SharedImageFormat GetSharedImageFormat(gfx::Buffe + << static_cast<int>(buffer_format); + NOTREACHED(); + } +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If format is true multiplanar format, we prefer external sampler on + // ChromeOS and Linux. + if (format.is_multi_plane()) { diff --git a/devel/electron36/files/patch-media_gpu_chromeos_platform__video__frame__utils.cc b/devel/electron36/files/patch-media_gpu_chromeos_platform__video__frame__utils.cc new file mode 100644 index 000000000000..1ddbd15fd518 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_chromeos_platform__video__frame__utils.cc @@ -0,0 +1,20 @@ +--- media/gpu/chromeos/platform_video_frame_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/chromeos/platform_video_frame_utils.cc +@@ -68,7 +68,7 @@ static std::unique_ptr<ui::GbmDevice> CreateGbmDevice( + const base::FilePath dev_path(FILE_PATH_LITERAL( + base::StrCat({drm_node_file_prefix, base::NumberToString(i)}))); + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_V4L2_CODEC) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_V4L2_CODEC) + const bool is_render_node = base::Contains(drm_node_file_prefix, "render"); + + // TODO(b/313513760): don't guard base::File::FLAG_WRITE behind +@@ -193,7 +193,7 @@ class GbmDeviceWrapper { + const base::FilePath dev_path( + base::CommandLine::ForCurrentProcess()->GetSwitchValuePath( + switches::kRenderNodeOverride)); +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_V4L2_CODEC) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_V4L2_CODEC) + const bool is_render_node = base::Contains(dev_path.value(), "render"); + + // TODO(b/313513760): don't guard base::File::FLAG_WRITE behind diff --git a/devel/electron36/files/patch-media_gpu_chromeos_video__decoder__pipeline.cc b/devel/electron36/files/patch-media_gpu_chromeos_video__decoder__pipeline.cc new file mode 100644 index 000000000000..43b1480fa73d --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_chromeos_video__decoder__pipeline.cc @@ -0,0 +1,29 @@ +--- media/gpu/chromeos/video_decoder_pipeline.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/chromeos/video_decoder_pipeline.cc +@@ -1122,7 +1122,7 @@ VideoDecoderPipeline::PickDecoderOutputFormat( + } + #endif + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_VAAPI) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_VAAPI) + // Linux should always use a custom allocator (to allocate buffers using + // libva) and a PlatformVideoFramePool. + CHECK(allocator.has_value()); +@@ -1131,7 +1131,7 @@ VideoDecoderPipeline::PickDecoderOutputFormat( + // VideoFrame::StorageType of VideoFrame::STORAGE_DMABUFS. + main_frame_pool_->AsPlatformVideoFramePool()->SetCustomFrameAllocator( + *allocator, VideoFrame::STORAGE_DMABUFS); +-#elif BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_V4L2_CODEC) ++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_V4L2_CODEC) + // Linux w/ V4L2 should not use a custom allocator + // Only tested with video_decode_accelerator_tests + // TODO(wenst@) Test with full Chromium Browser +@@ -1305,7 +1305,7 @@ VideoDecoderPipeline::PickDecoderOutputFormat( + << " VideoFrames"; + auxiliary_frame_pool_->set_parent_task_runner(decoder_task_runner_); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The custom allocator creates frames backed by NativePixmap, which uses a + // VideoFrame::StorageType of VideoFrame::STORAGE_DMABUFS. + auxiliary_frame_pool_->AsPlatformVideoFramePool()->SetCustomFrameAllocator( diff --git a/devel/electron36/files/patch-media_gpu_gpu__video__decode__accelerator__factory.cc b/devel/electron36/files/patch-media_gpu_gpu__video__decode__accelerator__factory.cc new file mode 100644 index 000000000000..8e7243be6679 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_gpu__video__decode__accelerator__factory.cc @@ -0,0 +1,20 @@ +--- media/gpu/gpu_video_decode_accelerator_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/gpu_video_decode_accelerator_factory.cc +@@ -13,7 +13,7 @@ + #include "media/gpu/media_gpu_export.h" + #include "media/media_buildflags.h" + +-#if BUILDFLAG(USE_V4L2_CODEC) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(USE_V4L2_CODEC) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + #include "media/gpu/v4l2/legacy/v4l2_video_decode_accelerator.h" + #include "media/gpu/v4l2/v4l2_device.h" + #endif +@@ -29,7 +29,7 @@ GpuVideoDecodeAcceleratorFactory::CreateVDA( + if (gpu_preferences.disable_accelerated_video_decode) + return nullptr; + +-#if BUILDFLAG(USE_V4L2_CODEC) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(USE_V4L2_CODEC) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + + std::unique_ptr<VideoDecodeAccelerator> vda; + vda.reset(new V4L2VideoDecodeAccelerator(base::MakeRefCounted<V4L2Device>())); diff --git a/devel/electron36/files/patch-media_gpu_gpu__video__encode__accelerator__factory.cc b/devel/electron36/files/patch-media_gpu_gpu__video__encode__accelerator__factory.cc new file mode 100644 index 000000000000..22fc4f2933cf --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_gpu__video__encode__accelerator__factory.cc @@ -0,0 +1,20 @@ +--- media/gpu/gpu_video_encode_accelerator_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/gpu_video_encode_accelerator_factory.cc +@@ -160,7 +160,7 @@ std::vector<VEAFactoryFunction> GetVEAFactoryFunctions + } + + #if BUILDFLAG(USE_VAAPI) +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(kAcceleratedVideoEncodeLinux)) { + vea_factory_functions->push_back(base::BindRepeating(&CreateVaapiVEA)); + } +@@ -168,7 +168,7 @@ std::vector<VEAFactoryFunction> GetVEAFactoryFunctions + vea_factory_functions->push_back(base::BindRepeating(&CreateVaapiVEA)); + #endif + #elif BUILDFLAG(USE_V4L2_CODEC) +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(kAcceleratedVideoEncodeLinux)) { + vea_factory_functions->push_back(base::BindRepeating(&CreateV4L2VEA)); + } diff --git a/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc b/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc new file mode 100644 index 000000000000..bf070d87035a --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc @@ -0,0 +1,44 @@ +--- media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc +@@ -17,7 +17,9 @@ + #include "media/gpu/vaapi/vaapi_wrapper.h" + #endif + ++#if !BUILDFLAG(IS_BSD) + using sandbox::syscall_broker::BrokerFilePermission; ++#endif + + // TODO(b/195769334): the hardware video decoding sandbox is really only useful + // when building with VA-API or V4L2 (otherwise, we're not really doing hardware +@@ -33,6 +35,7 @@ namespace { + namespace media { + namespace { + ++#if !BUILDFLAG(IS_BSD) + void AllowAccessToRenderNodes(std::vector<BrokerFilePermission>& permissions, + bool include_sys_dev_char, + bool read_write) { +@@ -189,6 +192,7 @@ bool HardwareVideoDecodingPreSandboxHookForV4L2( + NOTREACHED(); + #endif // BUILDFLAG(USE_V4L2_CODEC) + } ++#endif + + } // namespace + +@@ -204,6 +208,7 @@ bool HardwareVideoDecodingPreSandboxHook( + // (at least). + bool HardwareVideoDecodingPreSandboxHook( + sandbox::policy::SandboxLinux::Options options) { ++#if !BUILDFLAG(IS_BSD) + using HardwareVideoDecodingProcessPolicy = + sandbox::policy::HardwareVideoDecodingProcessPolicy; + using PolicyType = +@@ -249,6 +254,7 @@ bool HardwareVideoDecodingPreSandboxHook( + // |permissions| is empty? + sandbox::policy::SandboxLinux::GetInstance()->StartBrokerProcess( + command_set, permissions, options); ++#endif + return true; + } + diff --git a/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h b/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h new file mode 100644 index 000000000000..767032bf10a4 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h @@ -0,0 +1,16 @@ +--- media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h.orig 2023-05-25 00:41:58 UTC ++++ 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_ + #define MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_DECODING_SANDBOX_HOOK_LINUX_H_ + ++#include "build/build_config.h" ++ ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace media { + diff --git a/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc b/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc new file mode 100644 index 000000000000..a8c8b77aceda --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc @@ -0,0 +1,26 @@ +--- media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc.orig 2024-10-16 21:31:33 UTC ++++ media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc +@@ -18,12 +18,15 @@ + #include "media/gpu/v4l2/v4l2_device.h" + #endif + ++#if !BUILDFLAG(IS_BSD) + using sandbox::syscall_broker::BrokerFilePermission; ++#endif + + namespace media { + + bool HardwareVideoEncodingPreSandboxHook( + sandbox::policy::SandboxLinux::Options options) { ++#if !BUILDFLAG(IS_BSD) + sandbox::syscall_broker::BrokerCommandSet command_set; + std::vector<BrokerFilePermission> permissions; + +@@ -131,6 +134,7 @@ bool HardwareVideoEncodingPreSandboxHook( + dlopen("libvulkan.so.1", kDlopenFlags); + dlopen("libvulkan_radeon.so", kDlopenFlags); + } ++#endif + #endif + return true; + } diff --git a/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h b/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h new file mode 100644 index 000000000000..7134a7a79f35 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h @@ -0,0 +1,23 @@ +--- media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h.orig 2023-05-25 00:41:58 UTC ++++ 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_ + #define MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_ + ++#include "build/build_config.h" ++ ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace media { + +@@ -14,4 +20,4 @@ bool HardwareVideoEncodingPreSandboxHook( + + } // namespace media + +-#endif // MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_ +\ No newline at end of file ++#endif // MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_ diff --git a/devel/electron36/files/patch-media_gpu_test_raw__video.cc b/devel/electron36/files/patch-media_gpu_test_raw__video.cc new file mode 100644 index 000000000000..5a32d24562d8 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_test_raw__video.cc @@ -0,0 +1,11 @@ +--- media/gpu/test/raw_video.cc.orig 2025-01-27 17:37:37 UTC ++++ media/gpu/test/raw_video.cc +@@ -61,7 +61,7 @@ std::unique_ptr<base::MemoryMappedFile> CreateMemoryMa + base::File::FLAG_READ | base::File::FLAG_WRITE + // On Windows FLAG_CREATE_ALWAYS will require FLAG_WRITE, and FLAG_APPEND + // must not be specified. +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + | base::File::FLAG_APPEND + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + ), diff --git a/devel/electron36/files/patch-media_gpu_test_video__frame__file__writer.cc b/devel/electron36/files/patch-media_gpu_test_video__frame__file__writer.cc new file mode 100644 index 000000000000..d5629a9c17dd --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_test_video__frame__file__writer.cc @@ -0,0 +1,11 @@ +--- media/gpu/test/video_frame_file_writer.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/test/video_frame_file_writer.cc +@@ -25,7 +25,7 @@ + #include "testing/gtest/include/gtest/gtest.h" + #include "ui/gfx/codec/png_codec.h" + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include <sys/mman.h> + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-media_gpu_test_video__frame__helpers.cc b/devel/electron36/files/patch-media_gpu_test_video__frame__helpers.cc new file mode 100644 index 000000000000..733df58d8b26 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_test_video__frame__helpers.cc @@ -0,0 +1,11 @@ +--- media/gpu/test/video_frame_helpers.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/test/video_frame_helpers.cc +@@ -23,7 +23,7 @@ + #include "ui/gfx/buffer_format_util.h" + #include "ui/gfx/gpu_memory_buffer.h" + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include <sys/mman.h> + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-media_gpu_test_video__frame__validator.cc b/devel/electron36/files/patch-media_gpu_test_video__frame__validator.cc new file mode 100644 index 000000000000..983603405d20 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_test_video__frame__validator.cc @@ -0,0 +1,11 @@ +--- media/gpu/test/video_frame_validator.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/test/video_frame_validator.cc +@@ -34,7 +34,7 @@ + #include "testing/gtest/include/gtest/gtest.h" + #include "ui/gfx/gpu_memory_buffer.h" + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include <sys/mman.h> + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-media_gpu_vaapi_vaapi__video__decoder.cc b/devel/electron36/files/patch-media_gpu_vaapi_vaapi__video__decoder.cc new file mode 100644 index 000000000000..4e26e8f93a60 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_vaapi_vaapi__video__decoder.cc @@ -0,0 +1,11 @@ +--- media/gpu/vaapi/vaapi_video_decoder.cc.orig 2025-03-24 20:50:14 UTC ++++ media/gpu/vaapi/vaapi_video_decoder.cc +@@ -784,7 +784,7 @@ void VaapiVideoDecoder::ApplyResolutionChangeWithScree + const gfx::Size decoder_natural_size = + aspect_ratio_.GetNaturalSize(decoder_visible_rect); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::optional<DmabufVideoFramePool::CreateFrameCB> allocator = + base::BindRepeating(&AllocateCustomFrameProxy, weak_this_); + std::vector<ImageProcessor::PixelLayoutCandidate> candidates = { diff --git a/devel/electron36/files/patch-media_gpu_vaapi_vaapi__wrapper.cc b/devel/electron36/files/patch-media_gpu_vaapi_vaapi__wrapper.cc new file mode 100644 index 000000000000..18533c891c55 --- /dev/null +++ b/devel/electron36/files/patch-media_gpu_vaapi_vaapi__wrapper.cc @@ -0,0 +1,11 @@ +--- media/gpu/vaapi/vaapi_wrapper.cc.orig 2025-04-22 20:15:27 UTC ++++ media/gpu/vaapi/vaapi_wrapper.cc +@@ -81,7 +81,7 @@ using media_gpu_vaapi::kModuleVa_prot; + 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 diff --git a/devel/electron36/files/patch-media_media__options.gni b/devel/electron36/files/patch-media_media__options.gni new file mode 100644 index 000000000000..3e2573f6a785 --- /dev/null +++ b/devel/electron36/files/patch-media_media__options.gni @@ -0,0 +1,19 @@ +--- media/media_options.gni.orig 2025-04-22 20:15:27 UTC ++++ media/media_options.gni +@@ -201,12 +201,15 @@ declare_args() { + # Enables runtime selection of ALSA library for audio. + use_alsa = false + ++ # Enable runtime selection of sndio(7) ++ use_sndio = false ++ + # Alsa should be used on all non-Android, non-Mac POSIX systems - with the + # exception of CastOS desktop builds. + # + # TODO(crbug.com/1336055): Remove legacy target_cpu hack used for targeting + # desktop Chromecast builds. +- if (is_posix && !is_android && !is_apple && ++ if (is_posix && !is_android && !is_apple && !is_bsd && + (!is_castos || (target_cpu == "x86" || target_cpu == "x64") || + is_cast_audio_only)) { + use_alsa = true diff --git a/devel/electron36/files/patch-media_mojo_mojom_BUILD.gn b/devel/electron36/files/patch-media_mojo_mojom_BUILD.gn new file mode 100644 index 000000000000..0274e889bbc3 --- /dev/null +++ b/devel/electron36/files/patch-media_mojo_mojom_BUILD.gn @@ -0,0 +1,11 @@ +--- media/mojo/mojom/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ media/mojo/mojom/BUILD.gn +@@ -959,7 +959,7 @@ source_set("test_support") { + sources = [] + deps = [] + +- if (is_linux || is_chromeos) { ++ if (!is_bsd && (is_linux || is_chromeos)) { + sources += [ + "buffer_handle_test_util.cc", + "buffer_handle_test_util.h", diff --git a/devel/electron36/files/patch-media_mojo_mojom_video__frame__mojom__traits.cc b/devel/electron36/files/patch-media_mojo_mojom_video__frame__mojom__traits.cc new file mode 100644 index 000000000000..4f014cf6969e --- /dev/null +++ b/devel/electron36/files/patch-media_mojo_mojom_video__frame__mojom__traits.cc @@ -0,0 +1,38 @@ +--- media/mojo/mojom/video_frame_mojom_traits.cc.orig 2025-04-22 20:15:27 UTC ++++ media/mojo/mojom/video_frame_mojom_traits.cc +@@ -24,7 +24,7 @@ + #include "ui/gfx/mojom/color_space_mojom_traits.h" + #include "ui/gfx/mojom/hdr_metadata_mojom_traits.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/posix/eintr_wrapper.h" + #include "media/gpu/buffer_validation.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -166,7 +166,7 @@ media::mojom::VideoFrameDataPtr MakeVideoFrameData( + media::mojom::OpaqueVideoFrameData::New()); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (input->storage_type() == media::VideoFrame::STORAGE_DMABUFS) { + // Duplicates the DMA buffer FDs to a new vector since this cannot take + // ownership of the FDs in |input| due to constness. +@@ -197,7 +197,7 @@ media::mojom::VideoFrameDataPtr MakeVideoFrameData( + + } // namespace + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // static + bool StructTraits< + media::mojom::ColorPlaneLayoutDataView, +@@ -436,7 +436,7 @@ bool StructTraits<media::mojom::VideoFrameDataView, + frame = media::VideoFrame::WrapTrackingToken( + format, *metadata.tracking_token, coded_size, visible_rect, + natural_size, timestamp); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + } else if (data.is_dmabuf_data()) { + media::mojom::DmabufVideoFrameDataDataView dmabuf_data; + data.GetDmabufDataDataView(&dmabuf_data); diff --git a/devel/electron36/files/patch-media_mojo_mojom_video__frame__mojom__traits.h b/devel/electron36/files/patch-media_mojo_mojom_video__frame__mojom__traits.h new file mode 100644 index 000000000000..083bc4c119a8 --- /dev/null +++ b/devel/electron36/files/patch-media_mojo_mojom_video__frame__mojom__traits.h @@ -0,0 +1,11 @@ +--- media/mojo/mojom/video_frame_mojom_traits.h.orig 2025-04-22 20:15:27 UTC ++++ media/mojo/mojom/video_frame_mojom_traits.h +@@ -21,7 +21,7 @@ namespace mojo { + + namespace mojo { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + template <> + struct StructTraits<media::mojom::ColorPlaneLayoutDataView, + media::ColorPlaneLayout> { diff --git a/devel/electron36/files/patch-media_video_fake__gpu__memory__buffer.cc b/devel/electron36/files/patch-media_video_fake__gpu__memory__buffer.cc new file mode 100644 index 000000000000..45f2ded5a431 --- /dev/null +++ b/devel/electron36/files/patch-media_video_fake__gpu__memory__buffer.cc @@ -0,0 +1,29 @@ +--- media/video/fake_gpu_memory_buffer.cc.orig 2025-04-22 20:15:27 UTC ++++ media/video/fake_gpu_memory_buffer.cc +@@ -14,7 +14,7 @@ + #include "media/base/format_utils.h" + #include "media/base/video_frame.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <fcntl.h> + #include <sys/stat.h> + #include <sys/types.h> +@@ -29,7 +29,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::ScopedFD GetDummyFD() { + base::ScopedFD fd(open("/dev/zero", O_RDWR)); + DCHECK(fd.is_valid()); +@@ -73,7 +73,7 @@ static base::AtomicSequenceNumber buffer_id_generator; + + } // namespace + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + gfx::GpuMemoryBufferHandle CreatePixmapHandleForTesting( + const gfx::Size& size, + gfx::BufferFormat format, diff --git a/devel/electron36/files/patch-media_video_fake__gpu__memory__buffer.h b/devel/electron36/files/patch-media_video_fake__gpu__memory__buffer.h new file mode 100644 index 000000000000..9c7f8aa31159 --- /dev/null +++ b/devel/electron36/files/patch-media_video_fake__gpu__memory__buffer.h @@ -0,0 +1,11 @@ +--- media/video/fake_gpu_memory_buffer.h.orig 2025-04-22 20:15:27 UTC ++++ media/video/fake_gpu_memory_buffer.h +@@ -13,7 +13,7 @@ namespace media { + + namespace media { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // This method is used by tests to create a fake pixmap handle instead of + // creating a FakeGpuMemoryBuffer. Once all tests are converted to use it, + // FakeGpuMemoryBuffer will be removed and this file will be renamed diff --git a/devel/electron36/files/patch-media_video_gpu__memory__buffer__video__frame__pool.cc b/devel/electron36/files/patch-media_video_gpu__memory__buffer__video__frame__pool.cc new file mode 100644 index 000000000000..8b83a817d5c1 --- /dev/null +++ b/devel/electron36/files/patch-media_video_gpu__memory__buffer__video__frame__pool.cc @@ -0,0 +1,29 @@ +--- media/video/gpu_memory_buffer_video_frame_pool.cc.orig 2025-04-22 20:15:27 UTC ++++ media/video/gpu_memory_buffer_video_frame_pool.cc +@@ -647,7 +647,7 @@ void GpuMemoryBufferVideoFramePool::PoolImpl::CreateHa + } + + bool is_software_backed_video_frame = !video_frame->HasSharedImage(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + is_software_backed_video_frame &= !video_frame->HasDmaBufs(); + #endif + +@@ -1057,7 +1057,7 @@ scoped_refptr<VideoFrame> GpuMemoryBufferVideoFramePoo + media::IOSurfaceIsWebGPUCompatible(handle.io_surface.get()); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + is_webgpu_compatible = + handle.native_pixmap_handle.supports_zero_copy_webgpu_import; + #endif +@@ -1228,7 +1228,7 @@ GpuMemoryBufferVideoFramePool::PoolImpl::GetOrCreateFr + si_usage |= gpu::SHARED_IMAGE_USAGE_SCANOUT; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/40194712): Always add the flag once the + // OzoneImageBacking is by default turned on. + if (base::CommandLine::ForCurrentProcess()->HasSwitch( diff --git a/devel/electron36/files/patch-media_video_video__encode__accelerator__adapter.cc b/devel/electron36/files/patch-media_video_video__encode__accelerator__adapter.cc new file mode 100644 index 000000000000..0008a164150c --- /dev/null +++ b/devel/electron36/files/patch-media_video_video__encode__accelerator__adapter.cc @@ -0,0 +1,11 @@ +--- media/video/video_encode_accelerator_adapter.cc.orig 2025-04-22 20:15:27 UTC ++++ media/video/video_encode_accelerator_adapter.cc +@@ -468,7 +468,7 @@ void VideoEncodeAcceleratorAdapter::InitializeOnAccele + + auto format = PIXEL_FORMAT_I420; + auto storage_type = VideoEncodeAccelerator::Config::StorageType::kShmem; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Linux/ChromeOS require a special configuration to use dmabuf storage. + // We need to keep sending frames with the same storage type. + // Other platforms will happily mix GpuMemoryBuffer storage with shared-mem diff --git a/devel/electron36/files/patch-media_video_video__encode__accelerator__adapter__test.cc b/devel/electron36/files/patch-media_video_video__encode__accelerator__adapter__test.cc new file mode 100644 index 000000000000..f1f4901c0c28 --- /dev/null +++ b/devel/electron36/files/patch-media_video_video__encode__accelerator__adapter__test.cc @@ -0,0 +1,38 @@ +--- media/video/video_encode_accelerator_adapter_test.cc.orig 2025-03-24 20:50:14 UTC ++++ media/video/video_encode_accelerator_adapter_test.cc +@@ -260,7 +260,7 @@ TEST_F(VideoEncodeAcceleratorAdapterTest, InitializeAf + }); + + VideoPixelFormat expected_input_format = PIXEL_FORMAT_I420; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + expected_input_format = PIXEL_FORMAT_NV12; + #endif + vea()->SetEncodingCallback(base::BindLambdaForTesting( +@@ -369,7 +369,7 @@ TEST_F(VideoEncodeAcceleratorAdapterTest, FlushDuringI + }); + + VideoPixelFormat expected_input_format = PIXEL_FORMAT_I420; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + expected_input_format = PIXEL_FORMAT_NV12; + #endif + +@@ -467,7 +467,7 @@ TEST_P(VideoEncodeAcceleratorAdapterTest, TwoFramesRes + CreateGreenFrame(large_size, pixel_format, base::Milliseconds(2)); + + VideoPixelFormat expected_input_format = PIXEL_FORMAT_I420; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + expected_input_format = PIXEL_FORMAT_NV12; + #endif + const gfx::ColorSpace expected_color_space = +@@ -674,7 +674,7 @@ TEST_F(VideoEncodeAcceleratorAdapterTest, + }); + + VideoPixelFormat expected_input_format = PIXEL_FORMAT_I420; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + expected_input_format = PIXEL_FORMAT_NV12; + #endif + vea()->SetEncodingCallback(base::BindLambdaForTesting( diff --git a/devel/electron36/files/patch-media_webrtc_audio__processor.cc b/devel/electron36/files/patch-media_webrtc_audio__processor.cc new file mode 100644 index 000000000000..88ba5e01dfe5 --- /dev/null +++ b/devel/electron36/files/patch-media_webrtc_audio__processor.cc @@ -0,0 +1,11 @@ +--- media/webrtc/audio_processor.cc.orig 2025-04-22 20:15:27 UTC ++++ media/webrtc/audio_processor.cc +@@ -509,7 +509,7 @@ std::optional<double> AudioProcessor::ProcessData( + // controller. + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + DCHECK_LE(volume, 1.0); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // We have a special situation on Linux where the microphone volume can be + // "higher than maximum". The input volume slider in the sound preference + // allows the user to set a scaling that is higher than 100%. It means that diff --git a/devel/electron36/files/patch-media_webrtc_helpers.cc b/devel/electron36/files/patch-media_webrtc_helpers.cc new file mode 100644 index 000000000000..caf875015042 --- /dev/null +++ b/devel/electron36/files/patch-media_webrtc_helpers.cc @@ -0,0 +1,19 @@ +--- media/webrtc/helpers.cc.orig 2025-01-27 17:37:37 UTC ++++ media/webrtc/helpers.cc +@@ -43,14 +43,14 @@ void ConfigAutomaticGainControl(const AudioProcessingS + return; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const bool kInputVolumeAdjustmentOverrideAllowed = true; + #elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + const bool kInputVolumeAdjustmentOverrideAllowed = false; + #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) + // Use AGC2 digital and input volume controller. + // TODO(crbug.com/40872787): Remove `kWebRtcAllowInputVolumeAdjustment` safely + // and set `input_volume_controller.enabled` true. diff --git a/devel/electron36/files/patch-media_webrtc_helpers__unittests.cc b/devel/electron36/files/patch-media_webrtc_helpers__unittests.cc new file mode 100644 index 000000000000..687652e2c910 --- /dev/null +++ b/devel/electron36/files/patch-media_webrtc_helpers__unittests.cc @@ -0,0 +1,38 @@ +--- media/webrtc/helpers_unittests.cc.orig 2025-03-24 20:50:14 UTC ++++ media/webrtc/helpers_unittests.cc +@@ -39,7 +39,7 @@ TEST(CreateWebRtcAudioProcessingModuleTest, CheckDefau + EXPECT_TRUE(config.echo_canceller.enabled); + + #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) + EXPECT_FALSE(config.gain_controller1.enabled); + EXPECT_TRUE(config.gain_controller2.enabled); + #elif BUILDFLAG(IS_CASTOS) || BUILDFLAG(IS_CAST_ANDROID) +@@ -66,7 +66,7 @@ TEST(CreateWebRtcAudioProcessingModuleTest, + } + + #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) + TEST(CreateWebRtcAudioProcessingModuleTest, + InputVolumeAdjustmentEnabledWithAgc2) { + ::base::test::ScopedFeatureList feature_list; +@@ -82,7 +82,7 @@ TEST(CreateWebRtcAudioProcessingModuleTest, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + TEST(CreateWebRtcAudioProcessingModuleTest, + CanDisableInputVolumeAdjustmentWithAgc2) { + ::base::test::ScopedFeatureList feature_list; +@@ -99,7 +99,7 @@ TEST(CreateWebRtcAudioProcessingModuleTest, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + + #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) + TEST(CreateWebRtcAudioProcessingModuleTest, + OnlyOneInputVolumeControllerEnabledOnDesktopPlatforms) { + auto config = CreateApmGetConfig( diff --git a/devel/electron36/files/patch-mojo_core_BUILD.gn b/devel/electron36/files/patch-mojo_core_BUILD.gn new file mode 100644 index 000000000000..c31ab82defae --- /dev/null +++ b/devel/electron36/files/patch-mojo_core_BUILD.gn @@ -0,0 +1,11 @@ +--- mojo/core/BUILD.gn.orig 2025-01-27 17:37:37 UTC ++++ mojo/core/BUILD.gn +@@ -163,7 +163,7 @@ source_set("impl_for_embedder") { + ] + } + +- if ((is_linux || is_chromeos || is_android) && !is_nacl) { ++ if ((is_linux || is_chromeos || is_android) && !is_nacl && !is_bsd) { + sources += [ + "channel_linux.cc", + "channel_linux.h", diff --git a/devel/electron36/files/patch-mojo_core_channel.cc b/devel/electron36/files/patch-mojo_core_channel.cc new file mode 100644 index 000000000000..f2c3fbdf8dac --- /dev/null +++ b/devel/electron36/files/patch-mojo_core_channel.cc @@ -0,0 +1,14 @@ +--- mojo/core/channel.cc.orig 2025-01-27 17:37:37 UTC ++++ mojo/core/channel.cc +@@ -83,7 +83,11 @@ const size_t kMaxAttachedHandles = 253; + const size_t kMaxAttachedHandles = 253; + #endif // BUILDFLAG(IS_FUCHSIA) + ++#if defined(__i386__) && defined(OS_FREEBSD) ++const size_t kChannelMessageAlignment = 4; ++#else + static_assert(alignof(std::max_align_t) >= kChannelMessageAlignment, ""); ++#endif + Channel::AlignedBuffer MakeAlignedBuffer(size_t size) { + // Generic allocators (such as malloc) return a pointer that is suitably + // aligned for storing any type of object with a fundamental alignment diff --git a/devel/electron36/files/patch-mojo_core_embedder_features.h b/devel/electron36/files/patch-mojo_core_embedder_features.h new file mode 100644 index 000000000000..ae158663d373 --- /dev/null +++ b/devel/electron36/files/patch-mojo_core_embedder_features.h @@ -0,0 +1,11 @@ +--- mojo/core/embedder/features.h.orig 2023-05-25 00:41:59 UTC ++++ mojo/core/embedder/features.h +@@ -16,7 +16,7 @@ namespace core { + + #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) + BASE_DECLARE_FEATURE(kMojoLinuxChannelSharedMem); + diff --git a/devel/electron36/files/patch-mojo_public_tools_bindings_mojom.gni b/devel/electron36/files/patch-mojo_public_tools_bindings_mojom.gni new file mode 100644 index 000000000000..4c72028b2f2d --- /dev/null +++ b/devel/electron36/files/patch-mojo_public_tools_bindings_mojom.gni @@ -0,0 +1,19 @@ +--- mojo/public/tools/bindings/mojom.gni.orig 2025-04-22 20:15:27 UTC ++++ mojo/public/tools/bindings/mojom.gni +@@ -774,6 +774,16 @@ template("mojom") { + enabled_features += [ "is_apple" ] + } + ++ if (is_openbsd) { ++ enabled_features += [ "is_openbsd" ] ++ enabled_features += [ "is_bsd" ] ++ } ++ ++ if (is_freebsd) { ++ enabled_features += [ "is_freebsd" ] ++ enabled_features += [ "is_bsd" ] ++ } ++ + action_outputs = [] + foreach(base_path, output_file_base_paths) { + filename = get_path_info(base_path, "file") diff --git a/devel/electron36/files/patch-net_BUILD.gn b/devel/electron36/files/patch-net_BUILD.gn new file mode 100644 index 000000000000..c140f4ffbd76 --- /dev/null +++ b/devel/electron36/files/patch-net_BUILD.gn @@ -0,0 +1,95 @@ +--- net/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ net/BUILD.gn +@@ -125,7 +125,7 @@ net_configs = [ + "//build/config/compiler:wexit_time_destructors", + ] + +-if (is_linux || is_chromeos) { ++if ((is_linux || is_chromeos) && !is_bsd) { + net_configs += [ "//build/config/linux:libresolv" ] + } + +@@ -1320,6 +1320,19 @@ component("net") { + ] + } + ++ 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", ++ "base/network_interfaces_linux.cc", ++ ] ++ } ++ + if (is_mac) { + sources += [ + "base/network_notification_thread_mac.cc", +@@ -1483,7 +1496,7 @@ component("net") { + } + + # Use getifaddrs() on POSIX platforms, except Linux. +- if (is_posix && !is_linux && !is_chromeos) { ++ if ((is_posix && !is_linux && !is_chromeos) || is_bsd) { + sources += [ + "base/network_interfaces_getifaddrs.cc", + "base/network_interfaces_getifaddrs.h", +@@ -2182,7 +2195,7 @@ static_library("test_support") { + ] + } + +- if (is_linux || is_chromeos || is_android) { ++ if (!is_bsd && (is_linux || is_chromeos || is_android)) { + sources += [ + "base/address_tracker_linux_test_util.cc", + "base/address_tracker_linux_test_util.h", +@@ -3001,14 +3014,14 @@ target(_test_target_type, "net_unittests") { + ] + } + +- if (is_linux) { ++ if (is_linux && !is_bsd) { + sources += [ + "base/network_change_notifier_linux_unittest.cc", + "proxy_resolution/proxy_config_service_linux_unittest.cc", + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "base/address_tracker_linux_unittest.cc", + "base/network_interfaces_linux_unittest.cc", +@@ -3104,6 +3117,10 @@ target(_test_target_type, "net_unittests") { + ] + } + ++ if (is_bsd) { ++ deps += [ "//sandbox/policy" ] ++ } ++ + if (enable_websockets) { + sources += [ + "server/http_connection_unittest.cc", +@@ -3170,7 +3187,7 @@ target(_test_target_type, "net_unittests") { + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ "tools/quic/quic_simple_server_test.cc" ] + } + +@@ -3309,7 +3326,7 @@ target(_test_target_type, "net_unittests") { + } + + # Use getifaddrs() on POSIX platforms, except Linux. +- if (is_posix && !is_linux && !is_chromeos) { ++ if (is_posix && !is_linux && !is_chromeos && !is_bsd) { + sources += [ "base/network_interfaces_getifaddrs_unittest.cc" ] + } + diff --git a/devel/electron36/files/patch-net_base_features.cc b/devel/electron36/files/patch-net_base_features.cc new file mode 100644 index 000000000000..e3fb8d2fd4c6 --- /dev/null +++ b/devel/electron36/files/patch-net_base_features.cc @@ -0,0 +1,24 @@ +--- net/base/features.cc.orig 2025-04-22 20:15:27 UTC ++++ net/base/features.cc +@@ -26,7 +26,7 @@ BASE_FEATURE(kAsyncDns, + BASE_FEATURE(kAsyncDns, + "AsyncDns", + #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_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -548,7 +548,12 @@ BASE_FEATURE(kSpdyHeadersToHttpResponseUseBuilder, + "SpdyHeadersToHttpResponseUseBuilder", + base::FEATURE_DISABLED_BY_DEFAULT); + ++#if BUILDFLAG(IS_OPENBSD) ++// No IP_RECVTOS support ++BASE_FEATURE(kReportEcn, "ReportEcn", base::FEATURE_DISABLED_BY_DEFAULT); ++#else + BASE_FEATURE(kReportEcn, "ReportEcn", base::FEATURE_ENABLED_BY_DEFAULT); ++#endif + + BASE_FEATURE(kUseNewAlpsCodepointHttp2, + "UseNewAlpsCodepointHttp2", diff --git a/devel/electron36/files/patch-net_base_network__change__notifier.cc b/devel/electron36/files/patch-net_base_network__change__notifier.cc new file mode 100644 index 000000000000..cfc88f71bf97 --- /dev/null +++ b/devel/electron36/files/patch-net_base_network__change__notifier.cc @@ -0,0 +1,21 @@ +--- net/base/network_change_notifier.cc.orig 2025-04-22 20:15:27 UTC ++++ net/base/network_change_notifier.cc +@@ -36,7 +36,7 @@ + #include "net/base/network_change_notifier_linux.h" + #elif BUILDFLAG(IS_APPLE) + #include "net/base/network_change_notifier_apple.h" +-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include "net/base/network_change_notifier_passive.h" + #elif BUILDFLAG(IS_FUCHSIA) + #include "net/base/network_change_notifier_fuchsia.h" +@@ -323,6 +323,9 @@ std::unique_ptr<NetworkChangeNotifier> NetworkChangeNo + #elif BUILDFLAG(IS_FUCHSIA) + return std::make_unique<NetworkChangeNotifierFuchsia>( + /*require_wlan=*/false); ++#elif BUILDFLAG(IS_BSD) ++ return std::make_unique<MockNetworkChangeNotifier>( ++ /*dns_config_notifier*/nullptr); + #else + NOTIMPLEMENTED(); + return nullptr; diff --git a/devel/electron36/files/patch-net_base_network__change__notifier__passive.cc b/devel/electron36/files/patch-net_base_network__change__notifier__passive.cc new file mode 100644 index 000000000000..28f897ff0573 --- /dev/null +++ b/devel/electron36/files/patch-net_base_network__change__notifier__passive.cc @@ -0,0 +1,11 @@ +--- net/base/network_change_notifier_passive.cc.orig 2025-04-22 20:15:27 UTC ++++ net/base/network_change_notifier_passive.cc +@@ -106,7 +106,7 @@ NetworkChangeNotifierPassive::NetworkChangeCalculatorP + NetworkChangeNotifier::NetworkChangeCalculatorParams + NetworkChangeNotifierPassive::NetworkChangeCalculatorParamsPassive() { + NetworkChangeCalculatorParams params; +-#if BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Delay values arrived at by simple experimentation and adjusted so as to + // produce a single signal when switching between network connections. + params.ip_address_offline_delay_ = base::Milliseconds(4000); diff --git a/devel/electron36/files/patch-net_base_network__interfaces__posix.h b/devel/electron36/files/patch-net_base_network__interfaces__posix.h new file mode 100644 index 000000000000..cb3379e3ba8d --- /dev/null +++ b/devel/electron36/files/patch-net_base_network__interfaces__posix.h @@ -0,0 +1,11 @@ +--- net/base/network_interfaces_posix.h.orig 2022-02-07 13:39:41 UTC ++++ net/base/network_interfaces_posix.h +@@ -8,6 +8,8 @@ + // This file provides some basic functionality shared between + // network_interfaces_linux.cc and network_interfaces_getifaddrs.cc. + ++#include <sys/socket.h> ++ + #include <string> + + struct sockaddr; diff --git a/devel/electron36/files/patch-net_base_sockaddr__util__posix.cc b/devel/electron36/files/patch-net_base_sockaddr__util__posix.cc new file mode 100644 index 000000000000..7f2351696315 --- /dev/null +++ b/devel/electron36/files/patch-net_base_sockaddr__util__posix.cc @@ -0,0 +1,12 @@ +--- net/base/sockaddr_util_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ net/base/sockaddr_util_posix.cc +@@ -45,7 +45,8 @@ bool FillUnixAddress(const std::string& socket_path, + return true; + } + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) ++ // XXX ? + // Convert the path given into abstract socket name. It must start with + // the '\0' character, so we are adding it. |addr_len| must specify the + // length of the structure exactly, as potentially the socket name may diff --git a/devel/electron36/files/patch-net_base_sockaddr__util__posix__unittest.cc b/devel/electron36/files/patch-net_base_sockaddr__util__posix__unittest.cc new file mode 100644 index 000000000000..1b34c6ad2294 --- /dev/null +++ b/devel/electron36/files/patch-net_base_sockaddr__util__posix__unittest.cc @@ -0,0 +1,12 @@ +--- net/base/sockaddr_util_posix_unittest.cc.orig 2024-08-14 20:55:08 UTC ++++ net/base/sockaddr_util_posix_unittest.cc +@@ -88,7 +88,8 @@ TEST(FillUnixAddressTest, AbstractLinuxAddress) { + size_t path_max = MaxPathLength(&storage); + std::string path(path_max, '0'); + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) ++ // XXX? + EXPECT_TRUE(FillUnixAddress(path, /*use_abstract_namespace=*/true, &storage)); + + EXPECT_EQ(path.size() + 1U + offsetof(struct sockaddr_un, sun_path), diff --git a/devel/electron36/files/patch-net_cert_cert__verify__proc.h b/devel/electron36/files/patch-net_cert_cert__verify__proc.h new file mode 100644 index 000000000000..04fa7bf92000 --- /dev/null +++ b/devel/electron36/files/patch-net_cert_cert__verify__proc.h @@ -0,0 +1,11 @@ +--- net/cert/cert_verify_proc.h.orig 2025-04-22 20:15:27 UTC ++++ net/cert/cert_verify_proc.h +@@ -182,7 +182,7 @@ class NET_EXPORT CertVerifyProc + kMaxValue = kChainLengthOne + }; + +-#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. diff --git a/devel/electron36/files/patch-net_disk__cache_backend__experiment.h b/devel/electron36/files/patch-net_disk__cache_backend__experiment.h new file mode 100644 index 000000000000..8f525203defc --- /dev/null +++ b/devel/electron36/files/patch-net_disk__cache_backend__experiment.h @@ -0,0 +1,11 @@ +--- net/disk_cache/backend_experiment.h.orig 2025-01-27 17:37:37 UTC ++++ net/disk_cache/backend_experiment.h +@@ -14,7 +14,7 @@ constexpr bool IsSimpleBackendEnabledByDefaultPlatform + // default. + constexpr bool IsSimpleBackendEnabledByDefaultPlatform() { + return BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC); ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD); + } + + // True if assigned to any of disk cache backend experiment groups. diff --git a/devel/electron36/files/patch-net_disk__cache_simple_simple__file__tracker.cc b/devel/electron36/files/patch-net_disk__cache_simple_simple__file__tracker.cc new file mode 100644 index 000000000000..bdc0088f0312 --- /dev/null +++ b/devel/electron36/files/patch-net_disk__cache_simple_simple__file__tracker.cc @@ -0,0 +1,20 @@ +--- net/disk_cache/simple/simple_file_tracker.cc.orig 2025-03-24 20:50:14 UTC ++++ net/disk_cache/simple/simple_file_tracker.cc +@@ -37,7 +37,17 @@ SimpleFileTracker::SimpleFileTracker(int file_limit) + } + + SimpleFileTracker::SimpleFileTracker(int file_limit) ++#if defined(OS_OPENBSD) ++{ ++ // cap the file descriptor limit at 85% of the size of the ++ // file descriptor table and also substract the amount of ++ // currently used file descriptors as this should give us ++ // enough reserve to avoid hitting the limit ++ file_limit_ = (getdtablesize() * 0.85) - getdtablecount(); ++} ++#else + : file_limit_(file_limit) {} ++#endif + + SimpleFileTracker::~SimpleFileTracker() { + DCHECK(lru_.empty()); diff --git a/devel/electron36/files/patch-net_dns_BUILD.gn b/devel/electron36/files/patch-net_dns_BUILD.gn new file mode 100644 index 000000000000..d51291a1422a --- /dev/null +++ b/devel/electron36/files/patch-net_dns_BUILD.gn @@ -0,0 +1,31 @@ +--- net/dns/BUILD.gn.orig 2025-04-06 11:53:44 UTC ++++ net/dns/BUILD.gn +@@ -140,7 +140,7 @@ source_set("dns") { + "dns_config_service_android.cc", + "dns_config_service_android.h", + ] +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { + sources += [ + "dns_config_service_linux.cc", + "dns_config_service_linux.h", +@@ -181,6 +181,7 @@ source_set("dns") { + ":host_resolver_manager", + ":mdns_client", + "//net:net_public_deps", ++ "//printing/buildflags", + ] + + allow_circular_includes_from = [ +@@ -452,9 +453,9 @@ source_set("tests") { + + if (is_android) { + sources += [ "dns_config_service_android_unittest.cc" ] +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { + sources += [ "dns_config_service_linux_unittest.cc" ] +- } else if (is_posix) { ++ } else if (is_posix && !is_bsd) { + sources += [ "dns_config_service_posix_unittest.cc" ] + } + diff --git a/devel/electron36/files/patch-net_dns_address__info.cc b/devel/electron36/files/patch-net_dns_address__info.cc new file mode 100644 index 000000000000..229e6126940b --- /dev/null +++ b/devel/electron36/files/patch-net_dns_address__info.cc @@ -0,0 +1,16 @@ +--- net/dns/address_info.cc.orig 2024-08-14 20:55:08 UTC ++++ net/dns/address_info.cc +@@ -83,8 +83,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/devel/electron36/files/patch-net_dns_address__sorter__posix.cc b/devel/electron36/files/patch-net_dns_address__sorter__posix.cc new file mode 100644 index 000000000000..30cb9fce28f4 --- /dev/null +++ b/devel/electron36/files/patch-net_dns_address__sorter__posix.cc @@ -0,0 +1,10 @@ +--- net/dns/address_sorter_posix.cc.orig 2024-08-14 20:55:08 UTC ++++ net/dns/address_sorter_posix.cc +@@ -32,6 +32,7 @@ + #include "net/dns/netinet_in_var_ios.h" + #else + #include <netinet/in_var.h> ++#include <netinet6/in6_var.h> + #endif // BUILDFLAG(IS_IOS) + #endif + #include <vector> diff --git a/devel/electron36/files/patch-net_dns_dns__config__service__posix.cc b/devel/electron36/files/patch-net_dns_dns__config__service__posix.cc new file mode 100644 index 000000000000..d271b5eb2f39 --- /dev/null +++ b/devel/electron36/files/patch-net_dns_dns__config__service__posix.cc @@ -0,0 +1,27 @@ +--- net/dns/dns_config_service_posix.cc.orig 2025-02-02 01:39:07 UTC ++++ net/dns/dns_config_service_posix.cc +@@ -40,6 +40,11 @@ + #include "net/dns/dns_config_watcher_mac.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "base/command_line.h" ++#include "sandbox/policy/switches.h" ++#endif ++ + namespace net { + + namespace internal { +@@ -136,6 +141,12 @@ class DnsConfigServicePosix::Watcher : public DnsConfi + + bool Watch() override { + CheckOnCorrectSequence(); ++ ++// pledge + unveil ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ if (!command_line->HasSwitch(sandbox::policy::switches::kNoSandbox)) ++ return false; ++ + bool success = true; + #if !IS_MAS_BUILD() + if (!config_watcher_.Watch(base::BindRepeating(&Watcher::OnConfigChanged, diff --git a/devel/electron36/files/patch-net_dns_dns__reloader.cc b/devel/electron36/files/patch-net_dns_dns__reloader.cc new file mode 100644 index 000000000000..9a8ed94039dc --- /dev/null +++ b/devel/electron36/files/patch-net_dns_dns__reloader.cc @@ -0,0 +1,10 @@ +--- net/dns/dns_reloader.cc.orig 2023-03-30 00:33:54 UTC ++++ net/dns/dns_reloader.cc +@@ -10,6 +10,7 @@ + // - there's not guarantee it exists at all. :( + #if BUILDFLAG(IS_POSIX) + ++#include <netinet/in.h> + #include <resolv.h> + + // This code only works on systems where the C library provides res_ninit(3) and diff --git a/devel/electron36/files/patch-net_dns_dns__util.cc b/devel/electron36/files/patch-net_dns_dns__util.cc new file mode 100644 index 000000000000..7de4f95330dc --- /dev/null +++ b/devel/electron36/files/patch-net_dns_dns__util.cc @@ -0,0 +1,11 @@ +--- net/dns/dns_util.cc.orig 2023-02-01 18:43:23 UTC ++++ net/dns/dns_util.cc +@@ -29,6 +29,8 @@ + #include "net/dns/public/util.h" + #include "net/third_party/uri_template/uri_template.h" + ++#include <sys/socket.h> ++ + #if BUILDFLAG(IS_POSIX) + #include <net/if.h> + #include <netinet/in.h> diff --git a/devel/electron36/files/patch-net_dns_host__resolver__proc.cc b/devel/electron36/files/patch-net_dns_host__resolver__proc.cc new file mode 100644 index 000000000000..3e1336aaa4eb --- /dev/null +++ b/devel/electron36/files/patch-net_dns_host__resolver__proc.cc @@ -0,0 +1,13 @@ +--- net/dns/host_resolver_proc.cc.orig 2022-11-30 08:12:58 UTC ++++ net/dns/host_resolver_proc.cc +@@ -15,10 +15,6 @@ + #include "net/base/net_errors.h" + #include "net/dns/host_resolver_system_task.h" + +-#if BUILDFLAG(IS_OPENBSD) +-#define AI_ADDRCONFIG 0 +-#endif +- + namespace net { + + HostResolverProc* HostResolverProc::default_proc_ = nullptr; diff --git a/devel/electron36/files/patch-net_dns_public_BUILD.gn b/devel/electron36/files/patch-net_dns_public_BUILD.gn new file mode 100644 index 000000000000..1e5d2a8dca2a --- /dev/null +++ b/devel/electron36/files/patch-net_dns_public_BUILD.gn @@ -0,0 +1,11 @@ +--- net/dns/public/BUILD.gn.orig 2024-06-18 21:43:36 UTC ++++ net/dns/public/BUILD.gn +@@ -78,7 +78,7 @@ source_set("tests") { + "doh_provider_entry_unittest.cc", + ] + +- if (is_posix && !is_android) { ++ if (is_posix && !is_android && !is_bsd) { + sources += [ "resolv_reader_unittest.cc" ] + } + diff --git a/devel/electron36/files/patch-net_dns_public_resolv__reader.h b/devel/electron36/files/patch-net_dns_public_resolv__reader.h new file mode 100644 index 000000000000..8e97c9b36f33 --- /dev/null +++ b/devel/electron36/files/patch-net_dns_public_resolv__reader.h @@ -0,0 +1,10 @@ +--- net/dns/public/resolv_reader.h.orig 2022-02-28 16:54:41 UTC ++++ net/dns/public/resolv_reader.h +@@ -5,6 +5,7 @@ + #ifndef NET_DNS_PUBLIC_RESOLV_READER_H_ + #define NET_DNS_PUBLIC_RESOLV_READER_H_ + ++#include <netinet/in.h> + #include <resolv.h> + + #include <memory> diff --git a/devel/electron36/files/patch-net_dns_public_scoped__res__state.h b/devel/electron36/files/patch-net_dns_public_scoped__res__state.h new file mode 100644 index 000000000000..0fc78c4a06a0 --- /dev/null +++ b/devel/electron36/files/patch-net_dns_public_scoped__res__state.h @@ -0,0 +1,10 @@ +--- net/dns/public/scoped_res_state.h.orig 2024-02-21 00:20:50 UTC ++++ net/dns/public/scoped_res_state.h +@@ -5,6 +5,7 @@ + #ifndef NET_DNS_PUBLIC_SCOPED_RES_STATE_H_ + #define NET_DNS_PUBLIC_SCOPED_RES_STATE_H_ + ++#include <netinet/in.h> + #include <resolv.h> + + #include <optional> diff --git a/devel/electron36/files/patch-net_filter_zstd__source__stream.cc b/devel/electron36/files/patch-net_filter_zstd__source__stream.cc new file mode 100644 index 000000000000..e4820db54a4e --- /dev/null +++ b/devel/electron36/files/patch-net_filter_zstd__source__stream.cc @@ -0,0 +1,10 @@ +--- net/filter/zstd_source_stream.cc.orig 2024-02-21 00:20:50 UTC ++++ net/filter/zstd_source_stream.cc +@@ -7,6 +7,7 @@ + #include <algorithm> + #include <unordered_map> + #include <utility> ++#include <unordered_map> + + #define ZSTD_STATIC_LINKING_ONLY + diff --git a/devel/electron36/files/patch-net_http_http__auth__gssapi__posix.cc b/devel/electron36/files/patch-net_http_http__auth__gssapi__posix.cc new file mode 100644 index 000000000000..e73babd89b89 --- /dev/null +++ b/devel/electron36/files/patch-net_http_http__auth__gssapi__posix.cc @@ -0,0 +1,13 @@ +--- net/http/http_auth_gssapi_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ net/http/http_auth_gssapi_posix.cc +@@ -366,7 +366,9 @@ base::NativeLibrary GSSAPISharedLibrary::LoadSharedLib + } else { + #if BUILDFLAG(IS_APPLE) + library_names.emplace_back("/System/Library/Frameworks/GSS.framework/GSS"); +-#elif BUILDFLAG(IS_OPENBSD) ++#elif BUILDFLAG(IS_BSD) ++ // MIT Kerberos - FreeBSD ++ library_names.emplace_back("libgssapi_krb5.so.2"); + // Heimdal - OpenBSD + library_names.emplace_back("libgssapi.so"); + #else diff --git a/devel/electron36/files/patch-net_http_http__auth__gssapi__posix.h b/devel/electron36/files/patch-net_http_http__auth__gssapi__posix.h new file mode 100644 index 000000000000..a5df8462e3a1 --- /dev/null +++ b/devel/electron36/files/patch-net_http_http__auth__gssapi__posix.h @@ -0,0 +1,12 @@ +--- net/http/http_auth_gssapi_posix.h.orig 2022-08-31 12:19:35 UTC ++++ net/http/http_auth_gssapi_posix.h +@@ -21,6 +21,9 @@ + #if BUILDFLAG(IS_APPLE) + #include <GSS/gssapi.h> + #elif BUILDFLAG(IS_FREEBSD) ++#ifndef GSS_C_DELEG_POLICY_FLAG ++#define GSS_C_DELEG_POLICY_FLAG 32768 ++#endif + #include <gssapi/gssapi.h> + #else + #include <gssapi.h> diff --git a/devel/electron36/files/patch-net_http_http__auth__handler__negotiate.cc b/devel/electron36/files/patch-net_http_http__auth__handler__negotiate.cc new file mode 100644 index 000000000000..699bf9210420 --- /dev/null +++ b/devel/electron36/files/patch-net_http_http__auth__handler__negotiate.cc @@ -0,0 +1,11 @@ +--- net/http/http_auth_handler_negotiate.cc.orig 2025-04-22 20:15:27 UTC ++++ net/http/http_auth_handler_negotiate.cc +@@ -119,7 +119,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/devel/electron36/files/patch-net_http_http__auth__preferences.cc b/devel/electron36/files/patch-net_http_http__auth__preferences.cc new file mode 100644 index 000000000000..021f62c93bf4 --- /dev/null +++ b/devel/electron36/files/patch-net_http_http__auth__preferences.cc @@ -0,0 +1,11 @@ +--- net/http/http_auth_preferences.cc.orig 2025-04-22 20:15:27 UTC ++++ net/http/http_auth_preferences.cc +@@ -38,7 +38,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/devel/electron36/files/patch-net_http_http__auth__preferences.h b/devel/electron36/files/patch-net_http_http__auth__preferences.h new file mode 100644 index 000000000000..76488645dcb1 --- /dev/null +++ b/devel/electron36/files/patch-net_http_http__auth__preferences.h @@ -0,0 +1,29 @@ +--- net/http/http_auth_preferences.h.orig 2025-04-22 20:15:27 UTC ++++ net/http/http_auth_preferences.h +@@ -49,7 +49,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( +@@ -85,7 +85,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; + } +@@ -136,7 +136,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/devel/electron36/files/patch-net_http_http__network__session.cc b/devel/electron36/files/patch-net_http_http__network__session.cc new file mode 100644 index 000000000000..f9753b6a7b8c --- /dev/null +++ b/devel/electron36/files/patch-net_http_http__network__session.cc @@ -0,0 +1,12 @@ +--- net/http/http_network_session.cc.orig 2024-10-16 21:31:36 UTC ++++ net/http/http_network_session.cc +@@ -20,7 +20,9 @@ + #include "build/build_config.h" + #include "net/base/features.h" + #include "net/dns/host_resolver.h" ++#if defined(USE_KERBEROS) + #include "net/http/http_auth_handler_factory.h" ++#endif + #include "net/http/http_response_body_drainer.h" + #include "net/http/http_stream_factory.h" + #include "net/http/http_stream_pool.h" diff --git a/devel/electron36/files/patch-net_proxy__resolution_proxy__config__service.cc b/devel/electron36/files/patch-net_proxy__resolution_proxy__config__service.cc new file mode 100644 index 000000000000..1a4a43ada141 --- /dev/null +++ b/devel/electron36/files/patch-net_proxy__resolution_proxy__config__service.cc @@ -0,0 +1,35 @@ +--- net/proxy_resolution/proxy_config_service.cc.orig 2023-03-30 00:33:55 UTC ++++ net/proxy_resolution/proxy_config_service.cc +@@ -19,20 +19,20 @@ + #include "net/proxy_resolution/proxy_config_service_ios.h" + #elif BUILDFLAG(IS_MAC) + #include "net/proxy_resolution/proxy_config_service_mac.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "net/proxy_resolution/proxy_config_service_linux.h" + #elif BUILDFLAG(IS_ANDROID) + #include "net/proxy_resolution/proxy_config_service_android.h" + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "net/traffic_annotation/network_traffic_annotation.h" + #endif + + namespace net { + + namespace { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr net::NetworkTrafficAnnotationTag kSystemProxyConfigTrafficAnnotation = + net::DefineNetworkTrafficAnnotation("proxy_config_system", R"( + semantics { +@@ -108,7 +108,7 @@ ProxyConfigService::CreateSystemProxyConfigService( + << "profile_io_data.cc::CreateProxyConfigService and this should " + << "be used only for examples."; + return std::make_unique<UnsetProxyConfigService>(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<ProxyConfigServiceLinux> linux_config_service( + std::make_unique<ProxyConfigServiceLinux>()); + diff --git a/devel/electron36/files/patch-net_proxy__resolution_proxy__config__service__linux.cc b/devel/electron36/files/patch-net_proxy__resolution_proxy__config__service__linux.cc new file mode 100644 index 000000000000..e0acc1cb8669 --- /dev/null +++ b/devel/electron36/files/patch-net_proxy__resolution_proxy__config__service__linux.cc @@ -0,0 +1,40 @@ +--- net/proxy_resolution/proxy_config_service_linux.cc.orig 2025-04-22 20:15:27 UTC ++++ net/proxy_resolution/proxy_config_service_linux.cc +@@ -11,7 +11,9 @@ + + #include <errno.h> + #include <limits.h> ++#if !BUILDFLAG(IS_BSD) + #include <sys/inotify.h> ++#endif + #include <unistd.h> + + #include <map> +@@ -510,6 +512,7 @@ bool SettingGetterImplGSettings::CheckVersion( + } + #endif // defined(USE_GIO) + ++#if !BUILDFLAG(IS_BSD) + // Converts |value| from a decimal string to an int. If there was a failure + // parsing, returns |default_value|. + int StringToIntOrDefault(std::string_view value, int default_value) { +@@ -1048,6 +1051,7 @@ class SettingGetterImplKDE : public ProxyConfigService + // events on. + scoped_refptr<base::SequencedTaskRunner> file_task_runner_; + }; ++#endif + + } // namespace + +@@ -1266,9 +1270,11 @@ ProxyConfigServiceLinux::Delegate::Delegate( + case base::nix::DESKTOP_ENVIRONMENT_KDE4: + case base::nix::DESKTOP_ENVIRONMENT_KDE5: + case base::nix::DESKTOP_ENVIRONMENT_KDE6: ++#if !BUILDFLAG(IS_BSD) + setting_getter_ = + std::make_unique<SettingGetterImplKDE>(env_var_getter_.get()); + break; ++#endif + case base::nix::DESKTOP_ENVIRONMENT_XFCE: + case base::nix::DESKTOP_ENVIRONMENT_LXQT: + case base::nix::DESKTOP_ENVIRONMENT_OTHER: diff --git a/devel/electron36/files/patch-net_quic_quic__network__transaction__unittest.cc b/devel/electron36/files/patch-net_quic_quic__network__transaction__unittest.cc new file mode 100644 index 000000000000..e020809aae07 --- /dev/null +++ b/devel/electron36/files/patch-net_quic_quic__network__transaction__unittest.cc @@ -0,0 +1,28 @@ +--- net/quic/quic_network_transaction_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ net/quic/quic_network_transaction_unittest.cc +@@ -5202,10 +5202,10 @@ TEST_P(QuicNetworkTransactionTest, BrokenAlternateProt + + TEST_P(QuicNetworkTransactionTest, BrokenAlternateProtocol) { + // Alternate-protocol job +- std::unique_ptr<quic::QuicEncryptedPacket> close( ++ std::unique_ptr<quic::QuicEncryptedPacket> test_close( + ConstructServerConnectionClosePacket(1)); + MockRead quic_reads[] = { +- MockRead(ASYNC, close->data(), close->length()), ++ MockRead(ASYNC, test_close->data(), test_close->length()), + MockRead(ASYNC, ERR_IO_PENDING), // No more data to read + MockRead(ASYNC, OK), // EOF + }; +@@ -5248,10 +5248,10 @@ TEST_P(QuicNetworkTransactionTest, + http_server_properties_ = std::make_unique<HttpServerProperties>(); + + // Alternate-protocol job +- std::unique_ptr<quic::QuicEncryptedPacket> close( ++ std::unique_ptr<quic::QuicEncryptedPacket> test_close( + ConstructServerConnectionClosePacket(1)); + MockRead quic_reads[] = { +- MockRead(ASYNC, close->data(), close->length()), ++ MockRead(ASYNC, test_close->data(), test_close->length()), + MockRead(ASYNC, ERR_IO_PENDING), // No more data to read + MockRead(ASYNC, OK), // EOF + }; diff --git a/devel/electron36/files/patch-net_socket_socks5__client__socket.cc b/devel/electron36/files/patch-net_socket_socks5__client__socket.cc new file mode 100644 index 000000000000..a802cff95b47 --- /dev/null +++ b/devel/electron36/files/patch-net_socket_socks5__client__socket.cc @@ -0,0 +1,12 @@ +--- net/socket/socks5_client_socket.cc.orig 2025-04-22 20:15:27 UTC ++++ net/socket/socks5_client_socket.cc +@@ -23,6 +23,9 @@ + #include "net/log/net_log_event_type.h" + #include "net/traffic_annotation/network_traffic_annotation.h" + ++#include <sys/types.h> ++#include <netinet/in.h> ++ + namespace net { + + const unsigned int SOCKS5ClientSocket::kGreetReadHeaderSize = 2; diff --git a/devel/electron36/files/patch-net_socket_tcp__socket__posix.cc b/devel/electron36/files/patch-net_socket_tcp__socket__posix.cc new file mode 100644 index 000000000000..fe05afd6b26f --- /dev/null +++ b/devel/electron36/files/patch-net_socket_tcp__socket__posix.cc @@ -0,0 +1,20 @@ +--- net/socket/tcp_socket_posix.cc.orig 2024-10-16 21:31:36 UTC ++++ net/socket/tcp_socket_posix.cc +@@ -98,6 +98,17 @@ bool SetTCPKeepAlive(int fd, bool enable, int delay) { + PLOG(ERROR) << "Failed to set TCP_KEEPALIVE on fd: " << fd; + return false; + } ++#elif BUILDFLAG(IS_FREEBSD) ++ // Set seconds until first TCP keep alive. ++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &delay, sizeof(delay))) { ++ PLOG(ERROR) << "Failed to set TCP_KEEPIDLE on fd: " << fd; ++ return false; ++ } ++ // Set seconds between TCP keep alives. ++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &delay, sizeof(delay))) { ++ PLOG(ERROR) << "Failed to set TCP_KEEPINTVL on fd: " << fd; ++ return false; ++ } + #endif + } + diff --git a/devel/electron36/files/patch-net_socket_udp__socket__posix.cc b/devel/electron36/files/patch-net_socket_udp__socket__posix.cc new file mode 100644 index 000000000000..ad49b6fde5d8 --- /dev/null +++ b/devel/electron36/files/patch-net_socket_udp__socket__posix.cc @@ -0,0 +1,39 @@ +--- net/socket/udp_socket_posix.cc.orig 2025-04-22 20:15:27 UTC ++++ net/socket/udp_socket_posix.cc +@@ -527,12 +527,17 @@ int UDPSocketPosix::SetRecvTos() { + #endif // BUILDFLAG(IS_APPLE) + } + ++#ifdef IP_RECVTOS + int rv = setsockopt(socket_, IPPROTO_IP, IP_RECVTOS, &ecn, sizeof(ecn)); ++#else ++ int rv = -1; ++ errno = EOPNOTSUPP; ++#endif + return rv == 0 ? OK : MapSystemError(errno); + } + + void UDPSocketPosix::SetMsgConfirm(bool confirm) { +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + if (confirm) { + sendto_flags_ |= MSG_CONFIRM; + } else { +@@ -553,7 +558,7 @@ int UDPSocketPosix::SetBroadcast(bool broadcast) { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + int value = broadcast ? 1 : 0; + int rv; +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + // SO_REUSEPORT on OSX permits multiple processes to each receive + // UDP multicast or broadcast datagrams destined for the bound + // port. +@@ -891,7 +896,7 @@ int UDPSocketPosix::DoBind(const IPEndPoint& address) + #if BUILDFLAG(IS_CHROMEOS) + if (last_error == EINVAL) + return ERR_ADDRESS_IN_USE; +-#elif BUILDFLAG(IS_APPLE) ++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + if (last_error == EADDRNOTAVAIL) + return ERR_ADDRESS_IN_USE; + #endif diff --git a/devel/electron36/files/patch-net_socket_udp__socket__unittest.cc b/devel/electron36/files/patch-net_socket_udp__socket__unittest.cc new file mode 100644 index 000000000000..a73769b308c1 --- /dev/null +++ b/devel/electron36/files/patch-net_socket_udp__socket__unittest.cc @@ -0,0 +1,47 @@ +--- net/socket/udp_socket_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ net/socket/udp_socket_unittest.cc +@@ -371,7 +371,7 @@ TEST_F(UDPSocketTest, PartialRecv) { + EXPECT_EQ(second_packet, received); + } + +-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // - MacOS: requires root permissions on OSX 10.7+. + // - Android: devices attached to testbots don't have default network, so + // broadcasting to 255.255.255.255 returns error -109 (Address not reachable). +@@ -682,7 +682,7 @@ TEST_F(UDPSocketTest, ClientSetDoNotFragment) { + EXPECT_THAT(rv, IsOk()); + + rv = client.SetDoNotFragment(); +-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/42050633): IP_MTU_DISCOVER is not implemented on Fuchsia. + EXPECT_THAT(rv, IsError(ERR_NOT_IMPLEMENTED)); + #else +@@ -704,7 +704,7 @@ TEST_F(UDPSocketTest, ServerSetDoNotFragment) { + EXPECT_THAT(rv, IsOk()); + + rv = server.SetDoNotFragment(); +-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/42050633): IP_MTU_DISCOVER is not implemented on Fuchsia. + EXPECT_THAT(rv, IsError(ERR_NOT_IMPLEMENTED)); + #else +@@ -770,7 +770,7 @@ TEST_F(UDPSocketTest, JoinMulticastGroup) { + + // TODO(crbug.com/40620614): failing on device on iOS 12.2. + // TODO(crbug.com/40189274): flaky on Mac 11. +-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #define MAYBE_SharedMulticastAddress DISABLED_SharedMulticastAddress + #else + #define MAYBE_SharedMulticastAddress SharedMulticastAddress +@@ -824,7 +824,7 @@ TEST_F(UDPSocketTest, MAYBE_SharedMulticastAddress) { + NetLogSource()); + ASSERT_THAT(client_socket.Connect(send_address), IsOk()); + +-#if !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // Send a message via the multicast group. That message is expected be be + // received by both receving sockets. + // diff --git a/devel/electron36/files/patch-net_third__party_quiche_BUILD.gn b/devel/electron36/files/patch-net_third__party_quiche_BUILD.gn new file mode 100644 index 000000000000..89564a7456d4 --- /dev/null +++ b/devel/electron36/files/patch-net_third__party_quiche_BUILD.gn @@ -0,0 +1,11 @@ +--- net/third_party/quiche/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ net/third_party/quiche/BUILD.gn +@@ -28,7 +28,7 @@ import("//third_party/protobuf/proto_library.gni") + import("//testing/libfuzzer/fuzzer_test.gni") + import("//third_party/protobuf/proto_library.gni") + +-build_epoll_based_tools = is_linux || is_chromeos ++build_epoll_based_tools = (is_linux && !is_bsd) || is_chromeos + + config("quiche_internal_config") { + cflags = [] diff --git a/devel/electron36/files/patch-net_tools_cert__verify__tool_cert__verify__tool.cc b/devel/electron36/files/patch-net_tools_cert__verify__tool_cert__verify__tool.cc new file mode 100644 index 000000000000..7fe1e6edeccf --- /dev/null +++ b/devel/electron36/files/patch-net_tools_cert__verify__tool_cert__verify__tool.cc @@ -0,0 +1,29 @@ +--- net/tools/cert_verify_tool/cert_verify_tool.cc.orig 2025-04-22 20:15:27 UTC ++++ net/tools/cert_verify_tool/cert_verify_tool.cc +@@ -35,7 +35,7 @@ + #include "third_party/boringssl/src/pki/trust_store.h" + #include "third_party/boringssl/src/pki/trust_store_collection.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "net/proxy_resolution/proxy_config.h" + #include "net/proxy_resolution/proxy_config_service_fixed.h" + #endif +@@ -67,7 +67,7 @@ void SetUpOnNetworkThread( + base::WaitableEvent* initialization_complete_event) { + net::URLRequestContextBuilder url_request_context_builder; + url_request_context_builder.set_user_agent(GetUserAgent()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, use a fixed ProxyConfigService, since the default one + // depends on glib. + // +@@ -582,7 +582,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) || \ ++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY)) + impls_str = "platform,"; + #endif diff --git a/devel/electron36/files/patch-net_tools_net__watcher_net__watcher.cc b/devel/electron36/files/patch-net_tools_net__watcher_net__watcher.cc new file mode 100644 index 000000000000..b263485c6690 --- /dev/null +++ b/devel/electron36/files/patch-net_tools_net__watcher_net__watcher.cc @@ -0,0 +1,38 @@ +--- net/tools/net_watcher/net_watcher.cc.orig 2025-04-22 20:15:27 UTC ++++ net/tools/net_watcher/net_watcher.cc +@@ -31,7 +31,7 @@ + #include "net/proxy_resolution/proxy_config_service.h" + #include "net/proxy_resolution/proxy_config_with_annotation.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "net/base/network_change_notifier_linux.h" + #endif + +@@ -41,7 +41,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Flag to specifies which network interfaces to ignore. Interfaces should + // follow as a comma seperated list. + const char kIgnoreNetifFlag[] = "ignore-netif"; +@@ -143,7 +143,7 @@ int main(int argc, char* argv[]) { + } // namespace + + int main(int argc, char* argv[]) { +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::apple::ScopedNSAutoreleasePool pool; + #endif + base::AtExitManager exit_manager; +@@ -160,7 +160,7 @@ int main(int argc, char* argv[]) { + + NetWatcher net_watcher; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + std::string ignored_netifs_str = + command_line->GetSwitchValueASCII(kIgnoreNetifFlag); diff --git a/devel/electron36/files/patch-net_traffic__annotation_network__traffic__annotation.h b/devel/electron36/files/patch-net_traffic__annotation_network__traffic__annotation.h new file mode 100644 index 000000000000..45a40de09825 --- /dev/null +++ b/devel/electron36/files/patch-net_traffic__annotation_network__traffic__annotation.h @@ -0,0 +1,20 @@ +--- net/traffic_annotation/network_traffic_annotation.h.orig 2025-04-22 20:15:27 UTC ++++ net/traffic_annotation/network_traffic_annotation.h +@@ -374,7 +374,7 @@ struct MutablePartialNetworkTrafficAnnotationTag { + } // namespace net + + // Placeholder for unannotated usages. +-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + #define TRAFFIC_ANNOTATION_WITHOUT_PROTO(ANNOTATION_ID) \ + net::DefineNetworkTrafficAnnotation(ANNOTATION_ID, "No proto yet.") + #endif +@@ -385,7 +385,7 @@ struct MutablePartialNetworkTrafficAnnotationTag { + // + // On Linux and Windows, use MISSING_TRAFFIC_ANNOTATION or + // TRAFFIC_ANNOTATION_FOR_TESTS. +-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + + #define NO_TRAFFIC_ANNOTATION_YET \ + net::DefineNetworkTrafficAnnotation("undefined", "Nothing here yet.") diff --git a/devel/electron36/files/patch-net_url__request_url__request__context.cc b/devel/electron36/files/patch-net_url__request_url__request__context.cc new file mode 100644 index 000000000000..a3cc7dfb2358 --- /dev/null +++ b/devel/electron36/files/patch-net_url__request_url__request__context.cc @@ -0,0 +1,11 @@ +--- net/url_request/url_request_context.cc.orig 2025-04-22 20:15:27 UTC ++++ net/url_request/url_request_context.cc +@@ -119,7 +119,7 @@ const HttpNetworkSessionContext* URLRequestContext::Ge + return &network_session->context(); + } + +-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + std::unique_ptr<URLRequest> URLRequestContext::CreateRequest( + const GURL& url, + RequestPriority priority, diff --git a/devel/electron36/files/patch-net_url__request_url__request__context.h b/devel/electron36/files/patch-net_url__request_url__request__context.h new file mode 100644 index 000000000000..2707656fa054 --- /dev/null +++ b/devel/electron36/files/patch-net_url__request_url__request__context.h @@ -0,0 +1,11 @@ +--- net/url_request/url_request_context.h.orig 2025-04-22 20:15:27 UTC ++++ net/url_request/url_request_context.h +@@ -86,7 +86,7 @@ class NET_EXPORT URLRequestContext final { + // session. + const HttpNetworkSessionContext* GetNetworkSessionContext() const; + +-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // This function should not be used in Chromium, please use the version with + // NetworkTrafficAnnotationTag in the future. + // diff --git a/devel/electron36/files/patch-net_url__request_url__request__context__builder.cc b/devel/electron36/files/patch-net_url__request_url__request__context__builder.cc new file mode 100644 index 000000000000..c1b5bf40a9ff --- /dev/null +++ b/devel/electron36/files/patch-net_url__request_url__request__context__builder.cc @@ -0,0 +1,11 @@ +--- net/url_request/url_request_context_builder.cc.orig 2025-04-22 20:15:27 UTC ++++ net/url_request/url_request_context_builder.cc +@@ -441,7 +441,7 @@ std::unique_ptr<URLRequestContext> URLRequestContextBu + } + + if (!proxy_resolution_service_) { +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + // TODO(willchan): Switch to using this code when + // ProxyConfigService::CreateSystemProxyConfigService()'s + // signature doesn't suck. diff --git a/devel/electron36/files/patch-net_websockets_websocket__basic__stream__adapters__test.cc b/devel/electron36/files/patch-net_websockets_websocket__basic__stream__adapters__test.cc new file mode 100644 index 000000000000..9917491f02b9 --- /dev/null +++ b/devel/electron36/files/patch-net_websockets_websocket__basic__stream__adapters__test.cc @@ -0,0 +1,15 @@ +--- net/websockets/websocket_basic_stream_adapters_test.cc.orig 2025-04-22 20:15:27 UTC ++++ net/websockets/websocket_basic_stream_adapters_test.cc +@@ -1098,10 +1098,10 @@ TEST_F(WebSocketSpdyStreamAdapterTest, + OnCloseOkShouldBeTranslatedToConnectionClose) { + spdy::SpdySerializedFrame response_headers( + spdy_util_.ConstructSpdyResponseHeaders(1, ResponseHeaders(), false)); +- spdy::SpdySerializedFrame close( ++ spdy::SpdySerializedFrame test_close( + spdy_util_.ConstructSpdyRstStream(1, spdy::ERROR_CODE_NO_ERROR)); + MockRead reads[] = {CreateMockRead(response_headers, 1), +- CreateMockRead(close, 2), MockRead(ASYNC, 0, 3)}; ++ CreateMockRead(test_close, 2), MockRead(ASYNC, 0, 3)}; + spdy::SpdySerializedFrame request_headers(spdy_util_.ConstructSpdyHeaders( + 1, RequestHeaders(), DEFAULT_PRIORITY, false)); + MockWrite writes[] = {CreateMockWrite(request_headers, 0)}; diff --git a/devel/electron36/files/patch-pdf_pdfium_pdfium__engine.cc b/devel/electron36/files/patch-pdf_pdfium_pdfium__engine.cc new file mode 100644 index 000000000000..9f04568492c1 --- /dev/null +++ b/devel/electron36/files/patch-pdf_pdfium_pdfium__engine.cc @@ -0,0 +1,20 @@ +--- pdf/pdfium/pdfium_engine.cc.orig 2025-04-22 20:15:27 UTC ++++ pdf/pdfium/pdfium_engine.cc +@@ -111,7 +111,7 @@ + #include "ui/accessibility/ax_features.mojom-features.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "pdf/pdfium/pdfium_font_linux.h" + #endif + +@@ -567,7 +567,7 @@ void InitializeSDK(bool enable_v8, + + FPDF_InitLibraryWithConfig(&config); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + g_font_mapping_mode = font_mapping_mode; + InitializeLinuxFontMapper(); + #endif diff --git a/devel/electron36/files/patch-printing_backend_cups__ipp__helper.cc b/devel/electron36/files/patch-printing_backend_cups__ipp__helper.cc new file mode 100644 index 000000000000..26e91a3dcb6a --- /dev/null +++ b/devel/electron36/files/patch-printing_backend_cups__ipp__helper.cc @@ -0,0 +1,11 @@ +--- printing/backend/cups_ipp_helper.cc.orig 2025-03-24 20:50:14 UTC ++++ printing/backend/cups_ipp_helper.cc +@@ -201,7 +201,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); +-#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/devel/electron36/files/patch-printing_backend_print__backend__cups.cc b/devel/electron36/files/patch-printing_backend_print__backend__cups.cc new file mode 100644 index 000000000000..95565d86a831 --- /dev/null +++ b/devel/electron36/files/patch-printing_backend_print__backend__cups.cc @@ -0,0 +1,29 @@ +--- printing/backend/print_backend_cups.cc.orig 2025-04-22 20:15:27 UTC ++++ printing/backend/print_backend_cups.cc +@@ -29,7 +29,7 @@ + #include "printing/mojom/print.mojom.h" + #include "url/gurl.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "base/feature_list.h" + #include "printing/backend/cups_connection.h" + #include "printing/backend/print_backend_cups_ipp.h" +@@ -59,7 +59,7 @@ int CaptureCupsDestCallback(void* data, unsigned flags + return 1; // Keep going. + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // This may be removed when Amazon Linux 2 reaches EOL (30 Jun 2025). + bool AreNewerCupsFunctionsAvailable() { + return cupsFindDestDefault && cupsFindDestSupported && cupsUserAgent && +@@ -286,7 +286,7 @@ scoped_refptr<PrintBackend> PrintBackend::CreateInstan + #if !BUILDFLAG(IS_CHROMEOS) + scoped_refptr<PrintBackend> PrintBackend::CreateInstanceImpl( + const std::string& locale) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (AreNewerCupsFunctionsAvailable() && + base::FeatureList::IsEnabled(features::kCupsIppPrintingBackend)) { + return base::MakeRefCounted<PrintBackendCupsIpp>(CupsConnection::Create()); diff --git a/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits.cc b/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits.cc new file mode 100644 index 000000000000..c94ddbc40968 --- /dev/null +++ b/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits.cc @@ -0,0 +1,29 @@ +--- printing/mojom/printing_context_mojom_traits.cc.orig 2023-11-29 21:40:08 UTC ++++ printing/mojom/printing_context_mojom_traits.cc +@@ -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 + +@@ -161,7 +161,7 @@ bool StructTraits< + } + + out->set_pages_per_sheet(data.pages_per_sheet()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + DCHECK(out->advanced_settings().empty()); + if (!data.ReadAdvancedSettings(&out->advanced_settings())) + return false; +@@ -238,7 +238,7 @@ bool StructTraits< + if (system_print_dialog_data.size() != dictionary_entries) { + return false; + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The dictionary must contain three strings. + const base::Value* value = system_print_dialog_data.Find( + printing::kLinuxSystemPrintDialogDataPrinter); diff --git a/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits.h b/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits.h new file mode 100644 index 000000000000..26b80145a15c --- /dev/null +++ b/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits.h @@ -0,0 +1,11 @@ +--- printing/mojom/printing_context_mojom_traits.h.orig 2023-10-19 19:58:29 UTC ++++ printing/mojom/printing_context_mojom_traits.h +@@ -166,7 +166,7 @@ struct StructTraits<printing::mojom::PrintSettingsData + return s.pages_per_sheet(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static const printing::PrintSettings::AdvancedSettings& advanced_settings( + const printing::PrintSettings& s) { + return s.advanced_settings(); diff --git a/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits__unittest.cc b/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits__unittest.cc new file mode 100644 index 000000000000..e7c824be749e --- /dev/null +++ b/devel/electron36/files/patch-printing_mojom_printing__context__mojom__traits__unittest.cc @@ -0,0 +1,65 @@ +--- printing/mojom/printing_context_mojom_traits_unittest.cc.orig 2025-04-22 20:15:27 UTC ++++ printing/mojom/printing_context_mojom_traits_unittest.cc +@@ -79,7 +79,7 @@ base::Value::Dict GenerateSampleSystemPrintDialogData( + data.Set(kMacSystemPrintDialogDataDestinationLocation, "/foo/bar.pdf"); + } + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + data.Set(kLinuxSystemPrintDialogDataPrinter, "printer-name"); + data.Set(kLinuxSystemPrintDialogDataPrintSettings, "print-settings-foo"); + data.Set(kLinuxSystemPrintDialogDataPageSetup, "page-setup-bar"); +@@ -114,7 +114,7 @@ const PageMargins kPrintSettingsCustomMarginsInPoints( + /*top=*/30, + /*bottom=*/35); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + PrintSettings::AdvancedSettings GenerateSampleAdvancedSettings() { + PrintSettings::AdvancedSettings advanced_settings; + advanced_settings.emplace("advanced-setting-A", base::Value("setting-A")); +@@ -207,7 +207,7 @@ PrintSettings GenerateSamplePrintSettingsCommon() { + settings.set_device_name(kPrintSettingsDeviceName); + settings.set_requested_media(kPrintSettingsRequestedMedia); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + PrintSettings::AdvancedSettings& advanced_settings = + settings.advanced_settings(); + for (const auto& item : kPrintSettingsAdvancedSettings) +@@ -545,7 +545,7 @@ TEST(PrintingContextMojomTraitsTest, + + EXPECT_EQ(output.pages_per_sheet(), kPrintSettingsPagesPerSheet1); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + EXPECT_EQ(output.advanced_settings(), kPrintSettingsAdvancedSettings); + #endif + +@@ -598,7 +598,7 @@ TEST(PrintingContextMojomTraitsTest, + kPrintSettingsCustomMarginsInPoints)); + EXPECT_EQ(output.pages_per_sheet(), kPrintSettingsPagesPerSheet2); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + EXPECT_EQ(output.advanced_settings(), kPrintSettingsAdvancedSettings); + #endif + +@@ -637,7 +637,7 @@ TEST(PrintingContextMojomTraitsTest, + EXPECT_EQ(output.page_setup_device_units(), kInput.page_setup_device_units()); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + TEST(PrintingContextMojomTraitsTest, + TestSerializeAndDeserializePrintSettingsEmptyAdvancedSettings) { + PrintSettings input = GenerateSamplePrintSettingsDefaultMargins(); +@@ -835,7 +835,7 @@ TEST( + } + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + TEST( + PrintingContextMojomTraitsTest, + TestSerializeAndDeserializePrintSettingsSystemPrintDialogPrinterInvalidDataType) { diff --git a/devel/electron36/files/patch-printing_print__settings.cc b/devel/electron36/files/patch-printing_print__settings.cc new file mode 100644 index 000000000000..1b385dc65667 --- /dev/null +++ b/devel/electron36/files/patch-printing_print__settings.cc @@ -0,0 +1,38 @@ +--- printing/print_settings.cc.orig 2025-01-27 17:37:37 UTC ++++ printing/print_settings.cc +@@ -319,7 +319,7 @@ PrintSettings& PrintSettings::operator=(const PrintSet + #endif + is_modifiable_ = settings.is_modifiable_; + pages_per_sheet_ = settings.pages_per_sheet_; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + for (const auto& item : settings.advanced_settings_) + advanced_settings_.emplace(item.first, item.second.Clone()); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -349,7 +349,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 +@@ -373,7 +373,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 +@@ -413,7 +413,7 @@ void PrintSettings::Clear() { + #endif + is_modifiable_ = true; + pages_per_sheet_ = 1; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + advanced_settings_.clear(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + #if BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-printing_print__settings.h b/devel/electron36/files/patch-printing_print__settings.h new file mode 100644 index 000000000000..da0ca9671815 --- /dev/null +++ b/devel/electron36/files/patch-printing_print__settings.h @@ -0,0 +1,47 @@ +--- printing/print_settings.h.orig 2023-10-19 19:58:29 UTC ++++ printing/print_settings.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" +@@ -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; + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + using AdvancedSettings = std::map<std::string, base::Value>; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -276,7 +276,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings { + pages_per_sheet_ = pages_per_sheet; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + AdvancedSettings& advanced_settings() { return advanced_settings_; } + const AdvancedSettings& advanced_settings() const { + return advanced_settings_; +@@ -429,7 +429,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings { + // Number of pages per sheet. + int pages_per_sheet_; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Advanced settings. + AdvancedSettings advanced_settings_; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-printing_print__settings__conversion.cc b/devel/electron36/files/patch-printing_print__settings__conversion.cc new file mode 100644 index 000000000000..f3b0d41f5813 --- /dev/null +++ b/devel/electron36/files/patch-printing_print__settings__conversion.cc @@ -0,0 +1,11 @@ +--- printing/print_settings_conversion.cc.orig 2024-04-15 20:34:03 UTC ++++ printing/print_settings_conversion.cc +@@ -285,7 +285,7 @@ std::unique_ptr<PrintSettings> PrintSettingsFromJobSet + settings->set_is_modifiable(is_modifiable.value()); + } + +-#if BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS)) ++#if BUILDFLAG(IS_CHROMEOS) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_CUPS)) + const base::Value::Dict* advanced_settings = + job_settings.FindDict(kSettingAdvancedSettings); + if (advanced_settings) { diff --git a/devel/electron36/files/patch-printing_printing__context__linux.cc b/devel/electron36/files/patch-printing_printing__context__linux.cc new file mode 100644 index 000000000000..ec541b142dda --- /dev/null +++ b/devel/electron36/files/patch-printing_printing__context__linux.cc @@ -0,0 +1,38 @@ +--- printing/printing_context_linux.cc.orig 2025-05-11 11:50:45 UTC ++++ printing/printing_context_linux.cc +@@ -23,7 +23,7 @@ + #endif + + // Avoid using LinuxUi on Fuchsia. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +@@ -65,7 +65,7 @@ mojom::ResultCode PrintingContextLinux::UseDefaultSett + + ResetSettings(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!ui::LinuxUi::instance()) + return mojom::ResultCode::kSuccess; + +@@ -81,7 +81,7 @@ gfx::Size PrintingContextLinux::GetPdfPaperSizeDeviceU + } + + gfx::Size PrintingContextLinux::GetPdfPaperSizeDeviceUnits() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (ui::LinuxUi::instance()) + return ui::LinuxUi::instance()->GetPdfPaperSize(this); + #endif +@@ -94,7 +94,7 @@ mojom::ResultCode PrintingContextLinux::UpdatePrinterS + DCHECK(!printer_settings.show_system_dialog); + DCHECK(!in_print_job_); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!ui::LinuxUi::instance()) + return mojom::ResultCode::kSuccess; + diff --git a/devel/electron36/files/patch-printing_printing__features.cc b/devel/electron36/files/patch-printing_printing__features.cc new file mode 100644 index 000000000000..8945df6272bb --- /dev/null +++ b/devel/electron36/files/patch-printing_printing__features.cc @@ -0,0 +1,26 @@ +--- printing/printing_features.cc.orig 2025-04-22 20:15:27 UTC ++++ printing/printing_features.cc +@@ -26,12 +26,12 @@ BASE_FEATURE(kApiPrintingMarginsAndScale, + base::FEATURE_DISABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Use the CUPS IPP printing backend instead of the original CUPS backend that + // calls the deprecated PPD API. + BASE_FEATURE(kCupsIppPrintingBackend, + "CupsIppPrintingBackend", +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_DISABLED_BY_DEFAULT + #else + base::FEATURE_ENABLED_BY_DEFAULT +@@ -81,7 +81,7 @@ BASE_FEATURE(kEnableOopPrintDrivers, + // out-of-process. + BASE_FEATURE(kEnableOopPrintDrivers, + "EnableOopPrintDrivers", +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron36/files/patch-printing_printing__features.h b/devel/electron36/files/patch-printing_printing__features.h new file mode 100644 index 000000000000..433f064017a9 --- /dev/null +++ b/devel/electron36/files/patch-printing_printing__features.h @@ -0,0 +1,11 @@ +--- printing/printing_features.h.orig 2025-04-22 20:15:27 UTC ++++ printing/printing_features.h +@@ -24,7 +24,7 @@ BASE_DECLARE_FEATURE(kApiPrintingMarginsAndScale); + BASE_DECLARE_FEATURE(kApiPrintingMarginsAndScale); + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(PRINTING_BASE) BASE_DECLARE_FEATURE(kCupsIppPrintingBackend); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) + diff --git a/devel/electron36/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc b/devel/electron36/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc new file mode 100644 index 000000000000..39e5dec1c322 --- /dev/null +++ b/devel/electron36/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc @@ -0,0 +1,50 @@ +--- printing/sandbox/print_backend_sandbox_hook_linux.cc.orig 2024-04-15 20:34:03 UTC ++++ printing/sandbox/print_backend_sandbox_hook_linux.cc +@@ -10,20 +10,27 @@ + #include "base/path_service.h" + #include "build/build_config.h" + #include "printing/buildflags/buildflags.h" ++#if !BUILDFLAG(IS_BSD) + #include "sandbox/linux/syscall_broker/broker_command.h" + #include "sandbox/linux/syscall_broker/broker_file_permission.h" + #include "sandbox/policy/export.h" + #include "sandbox/policy/linux/sandbox_linux.h" ++#else ++#include "sandbox/policy/sandbox.h" ++#endif + + #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CUPS) + #include "printing/backend/cups_connection_pool.h" + #endif + ++#if !BUILDFLAG(IS_BSD) + using sandbox::syscall_broker::BrokerFilePermission; + using sandbox::syscall_broker::MakeBrokerCommandSet; ++#endif + + namespace printing { + ++#if !BUILDFLAG(IS_BSD) + namespace { + + sandbox::syscall_broker::BrokerCommandSet GetPrintBackendBrokerCommandSet() { +@@ -76,9 +83,11 @@ std::vector<BrokerFilePermission> GetPrintBackendFileP + } + + } // namespace ++#endif + + bool PrintBackendPreSandboxHook( + sandbox::policy::SandboxLinux::Options options) { ++#if !BUILDFLAG(IS_BSD) + #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. +@@ -91,6 +100,7 @@ bool PrintBackendPreSandboxHook( + GetPrintBackendFilePermissions(), options); + + instance->EngageNamespaceSandboxIfPossible(); ++#endif + return true; + } + diff --git a/devel/electron36/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.h b/devel/electron36/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.h new file mode 100644 index 000000000000..6788d8214042 --- /dev/null +++ b/devel/electron36/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.h @@ -0,0 +1,16 @@ +--- printing/sandbox/print_backend_sandbox_hook_linux.h.orig 2023-10-19 19:58:29 UTC ++++ printing/sandbox/print_backend_sandbox_hook_linux.h +@@ -5,8 +5,13 @@ + #ifndef PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_ + #define PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_ + ++#include "build/build_config.h" + #include "base/component_export.h" ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace printing { + diff --git a/devel/electron36/files/patch-remoting_base_chromoting__event.cc b/devel/electron36/files/patch-remoting_base_chromoting__event.cc new file mode 100644 index 000000000000..0cb6232b4e95 --- /dev/null +++ b/devel/electron36/files/patch-remoting_base_chromoting__event.cc @@ -0,0 +1,11 @@ +--- remoting/base/chromoting_event.cc.orig 2025-03-24 20:50:14 UTC ++++ remoting/base/chromoting_event.cc +@@ -191,7 +191,7 @@ void ChromotingEvent::AddSystemInfo() { + SetString(kCpuKey, base::SysInfo::OperatingSystemArchitecture()); + SetString(kOsVersionKey, base::SysInfo::OperatingSystemVersion()); + SetString(kWebAppVersionKey, STRINGIZE(VERSION)); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + Os os = Os::CHROMOTING_LINUX; + #elif BUILDFLAG(IS_CHROMEOS) + Os os = Os::CHROMOTING_CHROMEOS; diff --git a/devel/electron36/files/patch-remoting_base_host__settings.cc b/devel/electron36/files/patch-remoting_base_host__settings.cc new file mode 100644 index 000000000000..7a7c6d643459 --- /dev/null +++ b/devel/electron36/files/patch-remoting_base_host__settings.cc @@ -0,0 +1,20 @@ +--- remoting/base/host_settings.cc.orig 2022-02-28 16:54:41 UTC ++++ remoting/base/host_settings.cc +@@ -7,7 +7,7 @@ + #include "base/no_destructor.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + #include "remoting/base/file_host_settings.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -44,7 +44,7 @@ HostSettings::~HostSettings() = default; + + // static + HostSettings* HostSettings::GetInstance() { +-#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + static base::NoDestructor<FileHostSettings> instance( + FileHostSettings::GetSettingsFilePath()); + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-remoting_codec_webrtc__video__encoder__vpx.cc b/devel/electron36/files/patch-remoting_codec_webrtc__video__encoder__vpx.cc new file mode 100644 index 000000000000..e09677c79a32 --- /dev/null +++ b/devel/electron36/files/patch-remoting_codec_webrtc__video__encoder__vpx.cc @@ -0,0 +1,11 @@ +--- remoting/codec/webrtc_video_encoder_vpx.cc.orig 2025-03-24 20:50:14 UTC ++++ remoting/codec/webrtc_video_encoder_vpx.cc +@@ -92,7 +92,7 @@ void SetVp8CodecParameters(vpx_codec_enc_cfg_t* config + const webrtc::DesktopSize& size) { + SetCommonCodecParameters(config, size); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux, using too many threads for VP8 encoding has been linked to high + // CPU usage on machines that are under stress. See http://crbug.com/1151148. + // 5/3/2022 update: Perf testing has shown that doubling the number of threads diff --git a/devel/electron36/files/patch-remoting_host_base_desktop__environment__options.cc b/devel/electron36/files/patch-remoting_host_base_desktop__environment__options.cc new file mode 100644 index 000000000000..1fa0113636f0 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_base_desktop__environment__options.cc @@ -0,0 +1,11 @@ +--- remoting/host/base/desktop_environment_options.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/base/desktop_environment_options.cc +@@ -109,7 +109,7 @@ bool DesktopEnvironmentOptions::capture_video_on_dedic + // TODO(joedow): Determine whether we can migrate additional platforms to + // using the DesktopCaptureWrapper instead of the DesktopCaptureProxy. Then + // clean up DesktopCapturerProxy::Core::CreateCapturer(). +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return capture_video_on_dedicated_thread_; + #else + return false; diff --git a/devel/electron36/files/patch-remoting_host_base_switches.cc b/devel/electron36/files/patch-remoting_host_base_switches.cc new file mode 100644 index 000000000000..5bdc44c55b98 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_base_switches.cc @@ -0,0 +1,18 @@ +--- remoting/host/base/switches.cc.orig 2022-04-21 18:48:31 UTC ++++ remoting/host/base/switches.cc +@@ -23,13 +23,13 @@ const char kProcessTypeEvaluateCapability[] = "evaluat + const char kProcessTypeFileChooser[] = "file_chooser"; + const char kProcessTypeUrlForwarderConfigurator[] = + "url_forwarder_configurator"; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kProcessTypeXSessionChooser[] = "xsession_chooser"; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + + const char kEvaluateCapabilitySwitchName[] = "evaluate-type"; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const char kEnableUtempter[] = "enable-utempter"; + #endif + diff --git a/devel/electron36/files/patch-remoting_host_base_switches.h b/devel/electron36/files/patch-remoting_host_base_switches.h new file mode 100644 index 000000000000..100a7d5df7ff --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_base_switches.h @@ -0,0 +1,18 @@ +--- remoting/host/base/switches.h.orig 2022-04-21 18:48:31 UTC ++++ remoting/host/base/switches.h +@@ -35,13 +35,13 @@ extern const char kProcessTypeRdpDesktopSession[]; + extern const char kProcessTypeEvaluateCapability[]; + extern const char kProcessTypeFileChooser[]; + extern const char kProcessTypeUrlForwarderConfigurator[]; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kProcessTypeXSessionChooser[]; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + + extern const char kEvaluateCapabilitySwitchName[]; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Used to record client sessions to utmp/wtmp. + extern const char kEnableUtempter[]; + #endif diff --git a/devel/electron36/files/patch-remoting_host_chromoting__host.cc b/devel/electron36/files/patch-remoting_host_chromoting__host.cc new file mode 100644 index 000000000000..96b170047e09 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_chromoting__host.cc @@ -0,0 +1,11 @@ +--- remoting/host/chromoting_host.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/chromoting_host.cc +@@ -137,7 +137,7 @@ void ChromotingHost::Start(const std::string& host_own + &ChromotingHost::OnIncomingSession, base::Unretained(this))); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void ChromotingHost::StartChromotingHostServices() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(!ipc_server_); diff --git a/devel/electron36/files/patch-remoting_host_chromoting__host.h b/devel/electron36/files/patch-remoting_host_chromoting__host.h new file mode 100644 index 000000000000..a1f91232f826 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_chromoting__host.h @@ -0,0 +1,29 @@ +--- remoting/host/chromoting_host.h.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/chromoting_host.h +@@ -36,7 +36,7 @@ + #include "remoting/protocol/session_manager.h" + #include "remoting/protocol/transport_context.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "remoting/host/chromoting_host_services_server.h" + #endif + +@@ -112,7 +112,7 @@ class ChromotingHost : public ClientSession::EventHand + // This method can only be called once during the lifetime of this object. + void Start(const std::string& host_owner); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Starts running the ChromotingHostServices server and listening for incoming + // IPC binding requests. + // Currently only Linux runs the ChromotingHostServices server on the host +@@ -222,7 +222,7 @@ class ChromotingHost : public ClientSession::EventHand + // List of host extensions. + std::vector<std::unique_ptr<HostExtension>> extensions_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // IPC server that runs the CRD host service API. Non-null if the server name + // is set and the host is started. + // Currently only Linux runs the ChromotingHostServices server on the host diff --git a/devel/electron36/files/patch-remoting_host_chromoting__host__context.cc b/devel/electron36/files/patch-remoting_host_chromoting__host__context.cc new file mode 100644 index 000000000000..3680c368b0e0 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_chromoting__host__context.cc @@ -0,0 +1,11 @@ +--- remoting/host/chromoting_host_context.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/chromoting_host_context.cc +@@ -335,7 +335,7 @@ std::unique_ptr<ChromotingHostContext> ChromotingHostC + // on a UI thread. + scoped_refptr<AutoThreadTaskRunner> input_task_runner = + AutoThread::CreateWithType("ChromotingInputThread", ui_task_runner, +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::MessagePumpType::UI); + #else + base::MessagePumpType::IO); diff --git a/devel/electron36/files/patch-remoting_host_chromoting__host__services__client.cc b/devel/electron36/files/patch-remoting_host_chromoting__host__services__client.cc new file mode 100644 index 000000000000..8e52f1fcd588 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_chromoting__host__services__client.cc @@ -0,0 +1,20 @@ +--- remoting/host/chromoting_host_services_client.cc.orig 2023-10-19 19:58:29 UTC ++++ remoting/host/chromoting_host_services_client.cc +@@ -59,7 +59,7 @@ mojo::PendingRemote<mojom::ChromotingHostServices> Con + + } // namespace + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + // static + constexpr char +@@ -136,7 +136,7 @@ bool ChromotingHostServicesClient::EnsureSessionServic + if (session_services_remote_.is_bound()) { + return true; + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!environment_->HasVar(kChromeRemoteDesktopSessionEnvVar)) { + LOG(WARNING) << "Current desktop environment is not remotable."; + return false; diff --git a/devel/electron36/files/patch-remoting_host_client__session.cc b/devel/electron36/files/patch-remoting_host_client__session.cc new file mode 100644 index 000000000000..65d3e04a1222 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_client__session.cc @@ -0,0 +1,11 @@ +--- remoting/host/client_session.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/client_session.cc +@@ -188,7 +188,7 @@ void ClientSession::NotifyClientResolution( + if (effective_policies_.curtain_required.value_or(false)) { + dpi_vector.set(resolution.x_dpi(), resolution.y_dpi()); + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + dpi_vector.set(resolution.x_dpi(), resolution.y_dpi()); + #endif + diff --git a/devel/electron36/files/patch-remoting_host_crash_crash__file__uploader.cc b/devel/electron36/files/patch-remoting_host_crash_crash__file__uploader.cc new file mode 100644 index 000000000000..3664076e9b79 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_crash_crash__file__uploader.cc @@ -0,0 +1,11 @@ +--- remoting/host/crash/crash_file_uploader.cc.orig 2024-08-14 20:55:09 UTC ++++ remoting/host/crash/crash_file_uploader.cc +@@ -44,7 +44,7 @@ constexpr char kProductNameValue[] = "Chromoting"; + + #if BUILDFLAG(IS_WIN) + constexpr char kProductNameValue[] = "Chromoting"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr char kProductNameValue[] = "Chromoting_Linux"; + #elif BUILDFLAG(IS_MAC) + constexpr char kProductNameValue[] = "Chromoting_Mac"; diff --git a/devel/electron36/files/patch-remoting_host_evaluate__capability.cc b/devel/electron36/files/patch-remoting_host_evaluate__capability.cc new file mode 100644 index 000000000000..8aff22ffb2d0 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_evaluate__capability.cc @@ -0,0 +1,11 @@ +--- remoting/host/evaluate_capability.cc.orig 2024-06-18 21:43:37 UTC ++++ remoting/host/evaluate_capability.cc +@@ -56,7 +56,7 @@ base::FilePath BuildHostBinaryPath() { + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (path.BaseName().value() == + FILE_PATH_LITERAL("chrome-remote-desktop-host")) { + return path; diff --git a/devel/electron36/files/patch-remoting_host_host__attributes.cc b/devel/electron36/files/patch-remoting_host_host__attributes.cc new file mode 100644 index 000000000000..6d7cb13b1fc4 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_host__attributes.cc @@ -0,0 +1,11 @@ +--- remoting/host/host_attributes.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/host_attributes.cc +@@ -103,7 +103,7 @@ std::string GetHostAttributes() { + if (media::InitializeMediaFoundation()) { + result.push_back("HWEncoder"); + } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + result.push_back("HWEncoder"); + #endif + diff --git a/devel/electron36/files/patch-remoting_host_host__details.cc b/devel/electron36/files/patch-remoting_host_host__details.cc new file mode 100644 index 000000000000..d63c78a9f047 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_host__details.cc @@ -0,0 +1,29 @@ +--- remoting/host/host_details.cc.orig 2025-03-24 20:50:14 UTC ++++ remoting/host/host_details.cc +@@ -7,7 +7,7 @@ + #include "base/system/sys_info.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/linux_util.h" + #endif + +@@ -22,7 +22,7 @@ std::string GetHostOperatingSystemName() { + return "Mac"; + #elif BUILDFLAG(IS_CHROMEOS) + return "ChromeOS"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return "Linux"; + #elif BUILDFLAG(IS_ANDROID) + return "Android"; +@@ -34,7 +34,7 @@ std::string GetHostOperatingSystemVersion() { + // Get the host Operating System Version, removing the need to check for OS + // definitions and keeps the format used consistent. + std::string GetHostOperatingSystemVersion() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return base::GetLinuxDistro(); + #else + return base::SysInfo::OperatingSystemVersion(); diff --git a/devel/electron36/files/patch-remoting_host_host__main.cc b/devel/electron36/files/patch-remoting_host_host__main.cc new file mode 100644 index 000000000000..67c1bea7355a --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_host__main.cc @@ -0,0 +1,38 @@ +--- remoting/host/host_main.cc.orig 2025-03-24 20:50:14 UTC ++++ remoting/host/host_main.cc +@@ -55,7 +55,7 @@ int UrlForwarderConfiguratorMain(); + int RdpDesktopSessionMain(); + int UrlForwarderConfiguratorMain(); + #endif // BUILDFLAG(IS_WIN) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + int XSessionChooserMain(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -68,7 +68,7 @@ const char kUsageMessage[] = + "\n" + "Options:\n" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + " --audio-pipe-name=<pipe> - Sets the pipe name to capture audio on " + "Linux.\n" + #endif // BUILDFLAG(IS_LINUX) +@@ -161,7 +161,7 @@ MainRoutineFn SelectMainRoutine(const std::string& pro + } else if (process_type == kProcessTypeUrlForwarderConfigurator) { + main_routine = &UrlForwarderConfiguratorMain; + #endif // BUILDFLAG(IS_WIN) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + } else if (process_type == kProcessTypeXSessionChooser) { + main_routine = &XSessionChooserMain; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -229,7 +229,7 @@ int HostMain(int argc, char** argv) { + // Note that we enable crash reporting only if the user has opted in to having + // the crash reports uploaded. + if (IsUsageStatsAllowed()) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + InitializeCrashReporting(); + #elif BUILDFLAG(IS_WIN) + // TODO: joedow - Enable crash reporting for the RDP process. diff --git a/devel/electron36/files/patch-remoting_host_ipc__constants.cc b/devel/electron36/files/patch-remoting_host_ipc__constants.cc new file mode 100644 index 000000000000..82a528b5dac8 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_ipc__constants.cc @@ -0,0 +1,20 @@ +--- remoting/host/ipc_constants.cc.orig 2025-01-27 17:37:37 UTC ++++ remoting/host/ipc_constants.cc +@@ -17,7 +17,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + #if !defined(NDEBUG) + // Use a different IPC name for debug builds so that we can run the host +@@ -81,7 +81,7 @@ GetChromotingHostServicesServerName() { + static const base::NoDestructor<mojo::NamedPlatformChannel::ServerName> + server_name( + named_mojo_ipc_server::WorkingDirectoryIndependentServerNameFromUTF8( +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux host creates the socket file in /tmp, and it won't be + // deleted until reboot, so we put username in the path in case + // the user switches the host owner. diff --git a/devel/electron36/files/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc b/devel/electron36/files/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc new file mode 100644 index 000000000000..a77fddc50e65 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc @@ -0,0 +1,47 @@ +--- remoting/host/it2me/it2me_native_messaging_host_main.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/it2me/it2me_native_messaging_host_main.cc +@@ -30,7 +30,7 @@ + #include "remoting/host/resources.h" + #include "remoting/host/usage_stats_consent.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if defined(REMOTING_USE_X11) + #include <gtk/gtk.h> + #include "base/linux_util.h" +@@ -75,7 +75,7 @@ int It2MeNativeMessagingHostMain(int argc, char** argv + // Creates a It2MeNativeMessagingHost instance, attaches it to stdin/stdout and + // runs the task executor until It2MeNativeMessagingHost signals shutdown. + int It2MeNativeMessagingHostMain(int argc, char** argv) { +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11) + // Initialize Xlib for multi-threaded use, allowing non-Chromium code to + // use X11 safely (such as the WebRTC capturer, GTK ...) + x11::InitXlib(); +@@ -121,7 +121,7 @@ int It2MeNativeMessagingHostMain(int argc, char** argv + + remoting::LoadResources(""); + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11) + // Required for any calls into GTK functions, such as the Disconnect and + // Continue windows. Calling with nullptr arguments because we don't have + // any command line arguments for gtk to consume. +@@ -249,7 +249,7 @@ int It2MeNativeMessagingHostMain(int argc, char** argv + PolicyWatcher::CreateWithTaskRunner(context->file_task_runner(), + context->management_service()); + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11) + scoped_refptr<AutoThreadTaskRunner> input_task_runner; + // Create an X11EventSource on all UI threads, so the global X11 connection + // (x11::Connection::Get()) can dispatch X events. +@@ -273,7 +273,7 @@ int It2MeNativeMessagingHostMain(int argc, char** argv + // Run the loop until channel is alive. + run_loop.Run(); + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11) + input_task_runner->PostTask(FROM_HERE, base::BindOnce([]() { + delete ui::X11EventSource::GetInstance(); + })); diff --git a/devel/electron36/files/patch-remoting_host_me2me__desktop__environment.cc b/devel/electron36/files/patch-remoting_host_me2me__desktop__environment.cc new file mode 100644 index 000000000000..8e6da997925d --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_me2me__desktop__environment.cc @@ -0,0 +1,29 @@ +--- remoting/host/me2me_desktop_environment.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/me2me_desktop_environment.cc +@@ -112,7 +112,7 @@ std::string Me2MeDesktopEnvironment::GetCapabilities() + capabilities += protocol::kRemoteWebAuthnCapability; + } + +-#if BUILDFLAG(IS_LINUX) && defined(REMOTING_USE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11) + capabilities += " "; + capabilities += protocol::kMultiStreamCapability; + +@@ -150,7 +150,7 @@ Me2MeDesktopEnvironment::Me2MeDesktopEnvironment( + // properly under Xvfb. + mutable_desktop_capture_options()->set_use_update_notifications(true); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Setting this option to false means that the capture differ wrapper will not + // be used when the X11 capturer is selected. This reduces the X11 capture + // time by a few milliseconds per frame and is safe because we can rely on +@@ -178,7 +178,7 @@ bool Me2MeDesktopEnvironment::InitializeSecurity( + + // Otherwise, if the session is shared with the local user start monitoring + // the local input and create the in-session UI. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool want_user_interface = false; + #elif BUILDFLAG(IS_APPLE) + // Don't try to display any UI on top of the system's login screen as this diff --git a/devel/electron36/files/patch-remoting_host_mojo__caller__security__checker.cc b/devel/electron36/files/patch-remoting_host_mojo__caller__security__checker.cc new file mode 100644 index 000000000000..e7f608be1453 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_mojo__caller__security__checker.cc @@ -0,0 +1,29 @@ +--- remoting/host/mojo_caller_security_checker.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/mojo_caller_security_checker.cc +@@ -37,7 +37,7 @@ namespace { + namespace remoting { + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr auto kAllowedCallerProgramNames = + base::MakeFixedFlatSet<base::FilePath::StringViewType>({ + "remote-open-url", +@@ -98,7 +98,7 @@ bool IsTrustedMojoEndpoint( + return true; + #endif + +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + + // TODO: yuweih - see if it's possible to move away from PID-based security + // checks, which might be susceptible of PID reuse attacks. +@@ -122,7 +122,7 @@ bool IsTrustedMojoEndpoint( + base::FilePath::StringType program_name = + caller_process_image_path.BaseName().value(); + if (!kAllowedCallerProgramNames.contains(program_name)) { +-#if BUILDFLAG(IS_LINUX) && !defined(NDEBUG) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !defined(NDEBUG) + // Linux binaries generated in out/Debug are underscore-separated. To make + // debugging easier, we just check the name again with underscores replaced + // with hyphens. diff --git a/devel/electron36/files/patch-remoting_host_policy__watcher.cc b/devel/electron36/files/patch-remoting_host_policy__watcher.cc new file mode 100644 index 000000000000..0b2e00f1bcaa --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_policy__watcher.cc @@ -0,0 +1,11 @@ +--- remoting/host/policy_watcher.cc.orig 2025-03-24 20:50:14 UTC ++++ remoting/host/policy_watcher.cc +@@ -177,7 +177,7 @@ base::Value::Dict PolicyWatcher::GetDefaultPolicies() + true); + result.Set(key::kRemoteAccessHostAllowEnterpriseFileTransfer, false); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + result.Set(key::kRemoteAccessHostMatchUsername, false); + #endif + #if !BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-remoting_host_remote__open__url_remote__open__url__client.cc b/devel/electron36/files/patch-remoting_host_remote__open__url_remote__open__url__client.cc new file mode 100644 index 000000000000..e8f1cbd06f50 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_remote__open__url_remote__open__url__client.cc @@ -0,0 +1,20 @@ +--- remoting/host/remote_open_url/remote_open_url_client.cc.orig 2022-05-19 14:06:27 UTC ++++ remoting/host/remote_open_url/remote_open_url_client.cc +@@ -18,7 +18,7 @@ + #include "remoting/host/mojom/chromoting_host_services.mojom.h" + #include "remoting/host/mojom/remote_url_opener.mojom.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "remoting/host/remote_open_url/remote_open_url_client_delegate_linux.h" + #elif BUILDFLAG(IS_WIN) + #include "remoting/host/remote_open_url/remote_open_url_client_delegate_win.h" +@@ -31,7 +31,7 @@ namespace { + constexpr base::TimeDelta kRequestTimeout = base::Seconds(5); + + std::unique_ptr<RemoteOpenUrlClient::Delegate> CreateDelegate() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<RemoteOpenUrlClientDelegateLinux>(); + #elif BUILDFLAG(IS_WIN) + return std::make_unique<RemoteOpenUrlClientDelegateWin>(); diff --git a/devel/electron36/files/patch-remoting_host_remote__open__url_remote__open__url__util.cc b/devel/electron36/files/patch-remoting_host_remote__open__url_remote__open__url__util.cc new file mode 100644 index 000000000000..84686704aae1 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_remote__open__url_remote__open__url__util.cc @@ -0,0 +1,11 @@ +--- remoting/host/remote_open_url/remote_open_url_util.cc.orig 2023-03-30 00:33:55 UTC ++++ remoting/host/remote_open_url/remote_open_url_util.cc +@@ -29,7 +29,7 @@ const wchar_t kRegisteredApplicationsKeyName[] = + #endif // BUILDFLAG(IS_WIN) + + bool IsRemoteOpenUrlSupported() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #elif BUILDFLAG(IS_WIN) + // The MSI installs the ProgID and capabilities into registry, but not the diff --git a/devel/electron36/files/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc b/devel/electron36/files/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc new file mode 100644 index 000000000000..b59e8f067d2b --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc @@ -0,0 +1,11 @@ +--- remoting/host/remote_open_url/url_forwarder_configurator.cc.orig 2022-02-28 16:54:41 UTC ++++ remoting/host/remote_open_url/url_forwarder_configurator.cc +@@ -12,7 +12,7 @@ UrlForwarderConfigurator::UrlForwarderConfigurator() = + + UrlForwarderConfigurator::~UrlForwarderConfigurator() = default; + +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) + + // static + std::unique_ptr<UrlForwarderConfigurator> UrlForwarderConfigurator::Create() { diff --git a/devel/electron36/files/patch-remoting_host_remoting__me2me__host.cc b/devel/electron36/files/patch-remoting_host_remoting__me2me__host.cc new file mode 100644 index 000000000000..a6de4aad7b00 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_remoting__me2me__host.cc @@ -0,0 +1,146 @@ +--- remoting/host/remoting_me2me_host.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/remoting_me2me_host.cc +@@ -138,7 +138,7 @@ + #include "remoting/host/mac/permission_utils.h" + #endif // BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if defined(REMOTING_USE_X11) + #include <gtk/gtk.h> + +@@ -148,7 +148,7 @@ + #endif // defined(REMOTING_USE_X11) + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/linux_util.h" + #include "remoting/host/linux/audio_capturer_linux.h" + #include "remoting/host/linux/certificate_watcher.h" +@@ -163,7 +163,7 @@ + #include "remoting/host/pairing_registry_delegate_win.h" + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "remoting/host/host_utmp_logger.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -196,7 +196,7 @@ const char kStdinConfigPath[] = "-"; + const char kStdinConfigPath[] = "-"; + #endif // !defined(REMOTING_MULTI_PROCESS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The command line switch used to pass name of the pipe to capture audio on + // linux. + const char kAudioPipeSwitchName[] = "audio-pipe-name"; +@@ -441,7 +441,7 @@ class HostProcess : public ConfigWatcher::Delegate, + std::unique_ptr<AgentProcessBrokerClient> agent_process_broker_client_; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Watch for certificate changes and kill the host when changes occur + std::unique_ptr<CertificateWatcher> cert_watcher_; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -506,7 +506,7 @@ class HostProcess : public ConfigWatcher::Delegate, + std::unique_ptr<FtlEchoMessageListener> ftl_echo_message_listener_; + + std::unique_ptr<HostEventLogger> host_event_logger_; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<HostUTMPLogger> host_utmp_logger_; + #endif + std::unique_ptr<HostPowerSaveBlocker> power_save_blocker_; +@@ -825,7 +825,7 @@ void HostProcess::ShutdownOnNetworkThread() { + void HostProcess::ShutdownOnNetworkThread() { + DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); + config_watcher_.reset(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + cert_watcher_.reset(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + } +@@ -902,7 +902,7 @@ void HostProcess::CreateAuthenticatorFactory() { + context_->create_client_cert_store_callback(), + service_account_email_, oauth_refresh_token_)); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (!cert_watcher_) { + cert_watcher_ = std::make_unique<CertificateWatcher>( + base::BindRepeating(&HostProcess::ShutdownHost, +@@ -1044,7 +1044,7 @@ void HostProcess::StartOnUiThread() { + base::BindRepeating(&HostProcess::OnPolicyUpdate, base::Unretained(this)), + base::BindRepeating(&HostProcess::OnPolicyError, base::Unretained(this))); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // If an audio pipe is specific on the command-line then initialize + // AudioCapturerLinux to capture from it. + base::FilePath audio_pipe_name = +@@ -1123,7 +1123,7 @@ void HostProcess::ShutdownOnUiThread() { + // It is now safe for the HostProcess to be deleted. + self_ = nullptr; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Cause the global AudioPipeReader to be freed, otherwise the audio + // thread will remain in-use and prevent the process from exiting. + // TODO(wez): DesktopEnvironmentFactory should own the pipe reader. +@@ -1131,7 +1131,7 @@ void HostProcess::ShutdownOnUiThread() { + AudioCapturerLinux::InitializePipeReader(nullptr, base::FilePath()); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11) + context_->input_task_runner()->PostTask( + FROM_HERE, + base::BindOnce([]() { delete ui::X11EventSource::GetInstance(); })); +@@ -1873,7 +1873,7 @@ void HostProcess::StartHost() { + corp_host_status_logger_->StartObserving(*session_manager); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + desktop_environment_options_.set_enable_remote_webauthn(true); + #endif + #if BUILDFLAG(IS_WIN) +@@ -1900,7 +1900,7 @@ void HostProcess::StartHost() { + + host_->AddExtension(std::make_unique<TestEchoExtension>()); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); + if (cmd_line->HasSwitch(kEnableUtempter)) { + host_utmp_logger_ = +@@ -1936,7 +1936,7 @@ void HostProcess::StartHost() { + // addresses. + host_->Start(*host_owner_emails_.begin()); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // For Windows, ChromotingHostServices connections are handled by the daemon + // process, then the message pipe is forwarded to the network process. + host_->StartChromotingHostServices(); +@@ -2081,7 +2081,7 @@ int HostProcessMain() { + HOST_LOG << "Starting host process: version " << STRINGIZE(VERSION); + const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if defined(REMOTING_USE_X11) + // Initialize Xlib for multi-threaded use, allowing non-Chromium code to + // use X11 safely (such as the WebRTC capturer, GTK ...) +@@ -2144,7 +2144,7 @@ int HostProcessMain() { + std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier( + net::NetworkChangeNotifier::CreateIfNeeded()); + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11) + // Create an X11EventSource on all UI threads, so the global X11 connection + // (x11::Connection::Get()) can dispatch X events. + auto event_source = diff --git a/devel/electron36/files/patch-remoting_host_session__policies__from__dict.cc b/devel/electron36/files/patch-remoting_host_session__policies__from__dict.cc new file mode 100644 index 000000000000..52fcb4a6d7a5 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_session__policies__from__dict.cc @@ -0,0 +1,11 @@ +--- remoting/host/session_policies_from_dict.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/session_policies_from_dict.cc +@@ -75,7 +75,7 @@ std::optional<SessionPolicies> SessionPoliciesFromDict + session_policies.curtain_required = + dict.FindBool(policy::key::kRemoteAccessHostRequireCurtain); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + session_policies.host_username_match_required = + dict.FindBool(policy::key::kRemoteAccessHostMatchUsername); + #endif diff --git a/devel/electron36/files/patch-remoting_host_setup_start__host__main.cc b/devel/electron36/files/patch-remoting_host_setup_start__host__main.cc new file mode 100644 index 000000000000..7ed847c4ab4b --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_setup_start__host__main.cc @@ -0,0 +1,29 @@ +--- remoting/host/setup/start_host_main.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/setup/start_host_main.cc +@@ -45,7 +45,7 @@ + #include <unistd.h> + #endif // BUILDFLAG(IS_POSIX) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "remoting/host/setup/daemon_controller_delegate_linux.h" + #include "remoting/host/setup/start_host_as_root.h" + #endif // BUILDFLAG(IS_LINUX) +@@ -369,7 +369,7 @@ int StartHostMain(int argc, char** argv) { + } // namespace + + int StartHostMain(int argc, char** argv) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Minimize the amount of code that runs as root on Posix systems. + if (getuid() == 0) { + return remoting::StartHostAsRoot(argc, argv); +@@ -394,7 +394,7 @@ int StartHostMain(int argc, char** argv) { + + mojo::core::Init(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (command_line->HasSwitch("no-start")) { + // On Linux, registering the host with systemd and starting it is the only + // reason start_host requires root. The --no-start options skips that final diff --git a/devel/electron36/files/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc b/devel/electron36/files/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc new file mode 100644 index 000000000000..802832135bfd --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc @@ -0,0 +1,29 @@ +--- remoting/host/webauthn/remote_webauthn_caller_security_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ remoting/host/webauthn/remote_webauthn_caller_security_utils.cc +@@ -10,7 +10,7 @@ + #include "base/strings/utf_string_conversions.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "base/containers/fixed_flat_set.h" + #include "base/files/file_path.h" + #include "base/process/process_handle.h" +@@ -38,7 +38,7 @@ namespace { + + // No static variables needed for debug builds. + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + constexpr auto kAllowedCallerPrograms = + base::MakeFixedFlatSet<base::FilePath::StringViewType>({ +@@ -83,7 +83,7 @@ bool IsLaunchedByTrustedProcess() { + #if !defined(NDEBUG) + // Just return true on debug builds for the convenience of development. + return true; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::ProcessId parent_pid = + base::GetParentProcessId(base::GetCurrentProcessHandle()); + // Note that on Linux the process image may no longer exist in its original diff --git a/devel/electron36/files/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc b/devel/electron36/files/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc new file mode 100644 index 000000000000..18f339fff1a6 --- /dev/null +++ b/devel/electron36/files/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc @@ -0,0 +1,28 @@ +--- remoting/host/webauthn/remote_webauthn_extension_notifier.cc.orig 2024-10-16 21:31:37 UTC ++++ remoting/host/webauthn/remote_webauthn_extension_notifier.cc +@@ -30,7 +30,7 @@ + #include "base/task/thread_pool.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #include "base/nix/xdg_util.h" + #include "base/strings/string_util.h" +@@ -75,14 +75,14 @@ std::vector<base::FilePath> GetRemoteStateChangeDirPat + // Caller should check if the directory exists before writing files to it. A + // directory only exists if the corresponding Chrome version is installed. + std::vector<base::FilePath> GetRemoteStateChangeDirPaths() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + constexpr base::FilePath::CharType kStateChangeDirName[] = + FILE_PATH_LITERAL("WebAuthenticationProxyRemoteSessionStateChange"); + #endif + + std::vector<base::FilePath> dirs; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // See: chrome/common/chrome_paths_linux.cc + auto env = base::Environment::Create(); + base::FilePath base_path; diff --git a/devel/electron36/files/patch-remoting_protocol_webrtc__video__stream.cc b/devel/electron36/files/patch-remoting_protocol_webrtc__video__stream.cc new file mode 100644 index 000000000000..97691157e46a --- /dev/null +++ b/devel/electron36/files/patch-remoting_protocol_webrtc__video__stream.cc @@ -0,0 +1,11 @@ +--- remoting/protocol/webrtc_video_stream.cc.orig 2025-03-24 20:50:14 UTC ++++ remoting/protocol/webrtc_video_stream.cc +@@ -267,7 +267,7 @@ WebrtcVideoStream::WebrtcVideoStream(const SessionOpti + : session_options_(session_options) { + // TODO(joedow): Dig into the threading model on other platforms to see if they + // can also be updated to run on a dedicated thread. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + core_task_runner_ = base::ThreadPool::CreateSingleThreadTaskRunner( + {base::TaskPriority::HIGHEST}, + base::SingleThreadTaskRunnerThreadMode::DEDICATED); diff --git a/devel/electron36/files/patch-remoting_signaling_ftl__host__device__id__provider.cc b/devel/electron36/files/patch-remoting_signaling_ftl__host__device__id__provider.cc new file mode 100644 index 000000000000..d91e944414c4 --- /dev/null +++ b/devel/electron36/files/patch-remoting_signaling_ftl__host__device__id__provider.cc @@ -0,0 +1,11 @@ +--- remoting/signaling/ftl_host_device_id_provider.cc.orig 2025-03-24 20:50:14 UTC ++++ remoting/signaling/ftl_host_device_id_provider.cc +@@ -16,7 +16,7 @@ constexpr char kDeviceIdPrefix[] = "crd-cros-host-"; + constexpr char kDeviceIdPrefix[] = "crd-mac-host-"; + #elif BUILDFLAG(IS_CHROMEOS) + constexpr char kDeviceIdPrefix[] = "crd-cros-host-"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr char kDeviceIdPrefix[] = "crd-linux-host-"; + #else + constexpr char kDeviceIdPrefix[] = "crd-unknown-host-"; diff --git a/devel/electron36/files/patch-sandbox_BUILD.gn b/devel/electron36/files/patch-sandbox_BUILD.gn new file mode 100644 index 000000000000..6b1329566d7d --- /dev/null +++ b/devel/electron36/files/patch-sandbox_BUILD.gn @@ -0,0 +1,11 @@ +--- sandbox/BUILD.gn.orig 2022-08-31 12:19:35 UTC ++++ sandbox/BUILD.gn +@@ -49,7 +49,7 @@ group("sandbox") { + "//sandbox/mac:system_services", + "//sandbox/mac/mojom", + ] +- } else if (is_linux || is_chromeos || is_android) { ++ } else if ((is_linux && !is_bsd) || is_chromeos || is_android) { + public_deps = [ "//sandbox/linux:sandbox" ] + } + } diff --git a/devel/electron36/files/patch-sandbox_features.gni b/devel/electron36/files/patch-sandbox_features.gni new file mode 100644 index 000000000000..9f5a00868f96 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_features.gni @@ -0,0 +1,11 @@ +--- sandbox/features.gni.orig 2022-02-07 13:39:41 UTC ++++ sandbox/features.gni +@@ -6,7 +6,7 @@ + # currently. + # Do not disable seccomp_bpf anywhere without talking to + # security@chromium.org! +-use_seccomp_bpf = (is_linux || is_chromeos || is_android) && ++use_seccomp_bpf = !is_bsd && (is_linux || is_chromeos || is_android) && + (current_cpu == "x86" || current_cpu == "x64" || + current_cpu == "arm" || current_cpu == "arm64" || + current_cpu == "mipsel" || current_cpu == "mips64el") diff --git a/devel/electron36/files/patch-sandbox_linux_BUILD.gn b/devel/electron36/files/patch-sandbox_linux_BUILD.gn new file mode 100644 index 000000000000..4915011b4b71 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_linux_BUILD.gn @@ -0,0 +1,35 @@ +--- sandbox/linux/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ sandbox/linux/BUILD.gn +@@ -12,11 +12,11 @@ declare_args() { + } + + declare_args() { +- compile_suid_client = is_linux || is_chromeos ++ compile_suid_client = (is_linux || is_chromeos) && !is_bsd + +- compile_credentials = is_linux || is_chromeos ++ compile_credentials = (is_linux || is_chromeos) && !is_bsd + +- compile_syscall_broker = is_linux || is_chromeos ++ compile_syscall_broker = (is_linux || is_chromeos) && !is_bsd + + # On Android, use plain GTest. + use_base_test_suite = is_linux || is_chromeos +@@ -369,6 +369,17 @@ component("sandbox_services") { + "services/libc_interceptor.h", + ] + } ++ ++ if (is_bsd) { ++ sources -= [ ++ "services/scoped_process.cc", ++ "services/scoped_process.h", ++ "services/syscall_wrappers.cc", ++ "services/syscall_wrappers.h", ++ "services/yama.cc", ++ "services/yama.h", ++ ] ++ } + } + + source_set("sandbox_services_headers") { diff --git a/devel/electron36/files/patch-sandbox_linux_services_init__process__reaper.cc b/devel/electron36/files/patch-sandbox_linux_services_init__process__reaper.cc new file mode 100644 index 000000000000..2b0562c64676 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_linux_services_init__process__reaper.cc @@ -0,0 +1,15 @@ +--- sandbox/linux/services/init_process_reaper.cc.orig 2025-03-24 20:50:14 UTC ++++ sandbox/linux/services/init_process_reaper.cc +@@ -7,6 +7,7 @@ + #pragma allow_unsafe_libc_calls + #endif + ++#if 0 + #include "sandbox/linux/services/init_process_reaper.h" + + #include <signal.h> +@@ -105,3 +106,4 @@ bool CreateInitProcessReaper(base::OnceClosure post_fo + } + + } // namespace sandbox. ++#endif diff --git a/devel/electron36/files/patch-sandbox_linux_services_libc__interceptor.cc b/devel/electron36/files/patch-sandbox_linux_services_libc__interceptor.cc new file mode 100644 index 000000000000..9b976657c263 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_linux_services_libc__interceptor.cc @@ -0,0 +1,21 @@ +--- sandbox/linux/services/libc_interceptor.cc.orig 2024-08-14 20:55:10 UTC ++++ sandbox/linux/services/libc_interceptor.cc +@@ -17,7 +17,9 @@ + #include <stddef.h> + #include <stdint.h> + #include <string.h> ++#if !BUILDFLAG(IS_BSD) + #include <sys/prctl.h> ++#endif + #include <sys/socket.h> + #include <sys/types.h> + #include <time.h> +@@ -173,7 +175,7 @@ bool ReadTimeStruct(base::PickleIterator* iter, + } else { + base::AutoLock lock(g_timezones_lock.Get()); + auto ret_pair = g_timezones.Get().insert(timezone); +- output->tm_zone = ret_pair.first->c_str(); ++ output->tm_zone = (char *)ret_pair.first->c_str(); + } + + return true; diff --git a/devel/electron36/files/patch-sandbox_policy_BUILD.gn b/devel/electron36/files/patch-sandbox_policy_BUILD.gn new file mode 100644 index 000000000000..ae043ddff508 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_BUILD.gn @@ -0,0 +1,39 @@ +--- sandbox/policy/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ sandbox/policy/BUILD.gn +@@ -43,7 +43,7 @@ component("policy") { + "//third_party/jni_zero", + ] + } +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "linux/bpf_audio_policy_linux.cc", + "linux/bpf_audio_policy_linux.h", +@@ -112,6 +112,27 @@ component("policy") { + "//sandbox/linux:sandbox_services", + "//sandbox/linux:seccomp_bpf", + "//sandbox/linux:suid_sandbox_client", ++ ] ++ } ++ if (is_openbsd) { ++ sources += [ ++ "openbsd/sandbox_openbsd.cc", ++ "openbsd/sandbox_openbsd.h", ++ ] ++ deps += [ ++ "//sandbox:sandbox_buildflags", ++ "//ui/gfx/x", ++ ] ++ libs = [ "util" ] ++ } ++ if (is_freebsd) { ++ sources += [ ++ "freebsd/sandbox_freebsd.cc", ++ "freebsd/sandbox_freebsd.h", ++ ] ++ deps += [ ++ "//sandbox:sandbox_buildflags", ++ "//ui/gfx/x", + ] + } + if (is_chromeos) { diff --git a/devel/electron36/files/patch-sandbox_policy_features.cc b/devel/electron36/files/patch-sandbox_policy_features.cc new file mode 100644 index 000000000000..8a67d5731a47 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_features.cc @@ -0,0 +1,14 @@ +--- sandbox/policy/features.cc.orig 2025-04-22 20:15:27 UTC ++++ sandbox/policy/features.cc +@@ -19,7 +19,11 @@ BASE_FEATURE(kNetworkServiceSandbox, + // (Only causes an effect when feature kNetworkServiceInProcess is disabled.) + BASE_FEATURE(kNetworkServiceSandbox, + "NetworkServiceSandbox", ++#if BUILDFLAG(IS_BSD) ++ base::FEATURE_ENABLED_BY_DEFAULT); ++#else + base::FEATURE_DISABLED_BY_DEFAULT); ++#endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + // Enables a fine-grained seccomp-BPF syscall filter for the network service. diff --git a/devel/electron36/files/patch-sandbox_policy_freebsd_sandbox__freebsd.cc b/devel/electron36/files/patch-sandbox_policy_freebsd_sandbox__freebsd.cc new file mode 100644 index 000000000000..60f4c3a4a393 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_freebsd_sandbox__freebsd.cc @@ -0,0 +1,214 @@ +--- sandbox/policy/freebsd/sandbox_freebsd.cc.orig 2025-02-02 01:39:46 UTC ++++ sandbox/policy/freebsd/sandbox_freebsd.cc +@@ -0,0 +1,211 @@ ++// 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. ++ ++#include "sandbox/policy/freebsd/sandbox_freebsd.h" ++ ++#include <dirent.h> ++#include <fcntl.h> ++#include <stdint.h> ++#include <sys/resource.h> ++#include <sys/stat.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#include <unistd.h> ++ ++#include <limits> ++#include <memory> ++#include <string> ++#include <vector> ++ ++#include "base/command_line.h" ++#include "base/debug/stack_trace.h" ++#include "base/feature_list.h" ++#include "base/files/file_path.h" ++#include "base/files/file_util.h" ++#include "base/files/scoped_file.h" ++#include "base/logging.h" ++#include "base/memory/singleton.h" ++#include "base/path_service.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/strings/string_number_conversions.h" ++#include "base/system/sys_info.h" ++#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" ++#include "sandbox/linux/services/proc_util.h" ++#include "sandbox/linux/services/resource_limits.h" ++#include "sandbox/linux/services/thread_helpers.h" ++#include "sandbox/linux/syscall_broker/broker_command.h" ++#include "sandbox/linux/syscall_broker/broker_process.h" ++#include "sandbox/policy/sandbox.h" ++#include "sandbox/policy/sandbox_type.h" ++#include "sandbox/policy/mojom/sandbox.mojom.h" ++#include "sandbox/policy/switches.h" ++#include "sandbox/sandbox_buildflags.h" ++ ++#if BUILDFLAG(USING_SANITIZER) ++#include <sanitizer/common_interface_defs.h> ++#endif ++ ++#if BUILDFLAG(USE_NSS_CERTS) ++#include "crypto/nss_util.h" ++#endif ++ ++#include "third_party/boringssl/src/include/openssl/crypto.h" ++ ++#include "ui/gfx/font_util.h" ++ ++namespace sandbox { ++namespace policy { ++ ++SandboxLinux::SandboxLinux() ++ : sandbox_status_flags_(kInvalid), ++ pre_initialized_(false), ++ initialize_sandbox_ran_(false), ++ broker_process_(nullptr) { ++} ++ ++SandboxLinux::~SandboxLinux() { ++ if (pre_initialized_) { ++ CHECK(initialize_sandbox_ran_); ++ } ++} ++ ++SandboxLinux* SandboxLinux::GetInstance() { ++ SandboxLinux* instance = base::Singleton<SandboxLinux>::get(); ++ CHECK(instance); ++ return instance; ++} ++ ++void SandboxLinux::StopThread(base::Thread* thread) { ++ DCHECK(thread); ++ thread->Stop(); ++} ++ ++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) { ++ CHECK(!pre_initialized_); ++#if BUILDFLAG(USING_SANITIZER) ++ // Sanitizers need to open some resources before the sandbox is enabled. ++ // This should not fork, not launch threads, not open a directory. ++ __sanitizer_sandbox_on_notify(sanitizer_args()); ++ sanitizer_args_.reset(); ++#endif ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ const std::string process_type = ++ command_line->GetSwitchValueASCII(switches::kProcessType); ++ ++ base::SysInfo::AmountOfPhysicalMemory(); ++ base::SysInfo::NumberOfProcessors(); ++ base::SysInfo::CPUModelName(); ++ ++ 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(); ++ ++ base::FilePath cache_directory, 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"); ++ ++ 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."; ++ } ++ ++ break; ++ } ++ case sandbox::mojom::Sandbox::kRenderer: ++ gfx::InitializeFonts(); ++ break; ++ default: ++ break; ++ } ++ ++ pre_initialized_ = true; ++} ++ ++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type, ++ SandboxLinux::PreSandboxHook hook, ++ const Options& options) { ++ DCHECK(!initialize_sandbox_ran_); ++ initialize_sandbox_ran_ = true; ++ ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ const std::string process_type = ++ command_line->GetSwitchValueASCII(switches::kProcessType); ++ ++ if (command_line->HasSwitch(switches::kNoSandbox)) ++ return true; ++ ++ VLOG(1) << "SandboxLinux::InitializeSandbox: process_type=" ++ << process_type << " sandbox_type=" << sandbox_type; ++ ++ // Only one thread is running, pre-initialize if not already done. ++ if (!pre_initialized_) ++ PreinitializeSandbox(sandbox_type); ++ ++ // Attempt to limit the future size of the address space of the process. ++ int error = 0; ++ const bool limited_as = LimitAddressSpace(&error); ++ if (error) { ++ // Restore errno. Internally to |LimitAddressSpace|, the errno due to ++ // setrlimit may be lost. ++ errno = error; ++ PCHECK(limited_as); ++ } ++ ++ if (hook) ++ CHECK(std::move(hook).Run(options)); ++ ++ return true; ++} ++ ++bool SandboxLinux::LimitAddressSpace(int* error) { ++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \ ++ !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) { ++ return false; ++ } ++ ++ // Unfortunately, it does not appear possible to set RLIMIT_AS such that it ++ // will both (a) be high enough to support V8's and WebAssembly's address ++ // space requirements while also (b) being low enough to mitigate exploits ++ // using integer overflows that require large allocations, heap spray, or ++ // other memory-hungry attack modes. ++ ++ *error = sandbox::ResourceLimits::Lower( ++ RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit)); ++ ++ // Cache the resource limit before turning on the sandbox. ++ base::SysInfo::AmountOfVirtualMemory(); ++ base::SysInfo::MaxSharedMemorySize(); ++ ++ return *error == 0; ++#else ++ base::SysInfo::AmountOfVirtualMemory(); ++ return false; ++#endif // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && ++ // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) ++} ++ ++} // namespace policy ++} // namespace sandbox diff --git a/devel/electron36/files/patch-sandbox_policy_freebsd_sandbox__freebsd.h b/devel/electron36/files/patch-sandbox_policy_freebsd_sandbox__freebsd.h new file mode 100644 index 000000000000..41877b1a9643 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_freebsd_sandbox__freebsd.h @@ -0,0 +1,279 @@ +--- sandbox/policy/freebsd/sandbox_freebsd.h.orig 2025-02-02 01:39:46 UTC ++++ sandbox/policy/freebsd/sandbox_freebsd.h +@@ -0,0 +1,276 @@ ++// 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. ++#ifndef SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ ++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ ++ ++#include <memory> ++#include <string> ++#include <vector> ++ ++#include "base/logging.h" ++#include "base/posix/global_descriptors.h" ++#include "sandbox/policy/export.h" ++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h" ++#include "sandbox/policy/mojom/sandbox.mojom.h" ++#include "base/sanitizer_buildflags.h" ++ ++#if BUILDFLAG(USING_SANITIZER) ++#include <sanitizer/common_interface_defs.h> ++#endif ++ ++namespace base { ++template <typename T> ++struct DefaultSingletonTraits; ++class Thread; ++} // namespace base ++ ++namespace sandbox { ++namespace syscall_broker { ++class BrokerProcess; ++} // namespace syscall_broker ++} // namespace sandbox ++ ++namespace sandbox { ++namespace policy { ++ ++// A singleton class to represent and change our sandboxing state for the ++// three main Linux sandboxes. ++// The sandboxing model allows using two layers of sandboxing. The first layer ++// can be implemented either with unprivileged namespaces or with the setuid ++// sandbox. This class provides a way to engage the namespace sandbox, but does ++// not deal with the legacy setuid sandbox directly. ++// The second layer is mainly based on seccomp-bpf and is engaged with ++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing" ++// the first layer of sandboxing. That is, InitializeSandbox must always be ++// called to have any meaningful sandboxing at all. ++class SANDBOX_POLICY_EXPORT SandboxLinux { ++ public: ++ // This is a list of sandbox IPC methods which the renderer may send to the ++ // sandbox host. See ++ // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md ++ // This isn't the full list, values < 32 are reserved for methods called from ++ // Skia, and values < 64 are reserved for libc_interceptor.cc. ++ enum LinuxSandboxIPCMethods { ++ DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64, ++ DEPRECATED_METHOD_GET_CHILD_WITH_INODE, ++ DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE, ++ METHOD_MAKE_SHARED_MEMORY_SEGMENT, ++ DEPRECATED_METHOD_MATCH_WITH_FALLBACK, ++ }; ++ ++ // These form a bitmask which describes the conditions of the Linux sandbox. ++ // Note: this doesn't strictly give you the current status, it states ++ // what will be enabled when the relevant processes are initialized. ++ enum Status { ++ // SUID sandbox active. ++ kSUID = 1 << 0, ++ ++ // Sandbox is using a new PID namespace. ++ kPIDNS = 1 << 1, ++ ++ // Sandbox is using a new network namespace. ++ kNetNS = 1 << 2, ++ ++ // seccomp-bpf sandbox active. ++ kSeccompBPF = 1 << 3, ++ ++ // The Yama LSM module is present and enforcing. ++ kYama = 1 << 4, ++ ++ // seccomp-bpf sandbox is active and the kernel supports TSYNC. ++ kSeccompTSYNC = 1 << 5, ++ ++ // User namespace sandbox active. ++ kUserNS = 1 << 6, ++ ++ // A flag that denotes an invalid sandbox status. ++ kInvalid = 1 << 31, ++ }; ++ ++ // SandboxLinux Options are a superset of SandboxSecompBPF Options. ++ struct Options : public SandboxSeccompBPF::Options { ++ // When running with a zygote, the namespace sandbox will have already ++ // been engaged prior to initializing SandboxLinux itself, and need not ++ // be done so again. Set to true to indicate that there isn't a zygote ++ // for this process and the step is to be performed here explicitly. ++ bool engage_namespace_sandbox = false; ++ ++ // Allow starting the sandbox with multiple threads already running. This ++ // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy ++ // across all running threads. ++ bool allow_threads_during_sandbox_init = false; ++ ++ // Enables the CHECK for open directories. The open directory check is only ++ // useful for the chroot jail (from the semantic layer of the sandbox), and ++ // can safely be disabled if we are only enabling the seccomp-BPF layer. ++ bool check_for_open_directories = true; ++ }; ++ ++ // Callers can provide this hook to run code right before the policy ++ // is passed to the BPF compiler and the sandbox is engaged. If ++ // pre_sandbox_hook() returns true, the sandbox will be engaged ++ // afterwards, otherwise the process is terminated. ++ using PreSandboxHook = base::OnceCallback<bool(Options)>; ++ ++ // Get our singleton instance. ++ static SandboxLinux* GetInstance(); ++ ++ SandboxLinux(const SandboxLinux&) = delete; ++ SandboxLinux& operator=(const SandboxLinux&) = delete; ++ ++ bool SetPledge(const char *pstring, const char *ppath); ++ bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type); ++ ++ // Do some initialization that can only be done before any of the sandboxes ++ // are enabled. If using the setuid sandbox, this should be called manually ++ // before the setuid sandbox is engaged. ++ // Security: When this runs, it is imperative that either InitializeSandbox() ++ // runs as well or that all file descriptors returned in ++ // GetFileDescriptorsToClose() get closed. ++ // Otherwise file descriptors that bypass the security of the setuid sandbox ++ // would be kept open. One must be particularly careful if a process performs ++ // a fork(). ++ void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Check that the current process is the init process of a new PID ++ // namespace and then proceed to drop access to the file system by using ++ // a new unprivileged namespace. This is a layer-1 sandbox. ++ // In order for this sandbox to be effective, it must be "sealed" by calling ++ // InitializeSandbox(). ++ void EngageNamespaceSandbox(bool from_zygote); ++ ++ // Return a list of file descriptors to close if PreinitializeSandbox() ran ++ // but InitializeSandbox() won't. Avoid using. ++ // TODO(jln): get rid of this hack. ++ std::vector<int> GetFileDescriptorsToClose(); ++ ++ // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with ++ // an adequate policy depending on the process type and command line ++ // arguments. ++ // Currently the layer-2 sandbox is composed of seccomp-bpf and address space ++ // limitations. ++ // This function should only be called without any thread running. ++ bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type, ++ PreSandboxHook hook, ++ const Options& options); ++ ++ // Stop |thread| in a way that can be trusted by the sandbox. ++ void StopThread(base::Thread* thread); ++ ++ // Returns the status of the renderer, worker and ppapi sandbox. Can only ++ // be queried after going through PreinitializeSandbox(). This is a bitmask ++ // and uses the constants defined in "enum Status" above. Since the ++ // status needs to be provided before the sandboxes are actually started, ++ // this returns what will actually happen once InitializeSandbox() ++ // is called from inside these processes. ++ int GetStatus(); ++ ++ // Returns true if the current process is single-threaded or if the number ++ // of threads cannot be determined. ++ bool IsSingleThreaded() const; ++ ++ // Returns true if we started Seccomp BPF. ++ bool seccomp_bpf_started() const; ++ ++ // Check the policy and eventually start the seccomp-bpf sandbox. This should ++ // never be called with threads started. If we detect that threads have ++ // started we will crash. ++ bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type, ++ PreSandboxHook hook, ++ const Options& options); ++ ++ // Limit the address space of the current process (and its children) to make ++ // some vulnerabilities harder to exploit. Writes the errno due to setrlimit ++ // (including 0 if no error) into |error|. ++ bool LimitAddressSpace(int* error); ++ ++ // Returns a file descriptor to proc. The file descriptor is no longer valid ++ // after the sandbox has been sealed. ++ int proc_fd() const { ++ DCHECK_NE(-1, proc_fd_); ++ return proc_fd_; ++ } ++ ++#if BUILDFLAG(USING_SANITIZER) ++ __sanitizer_sandbox_arguments* sanitizer_args() const { ++ return sanitizer_args_.get(); ++ }; ++#endif ++ ++ // A BrokerProcess is a helper that is started before the sandbox is engaged, ++ // typically from a pre-sandbox hook, that will serve requests to access ++ // files over an IPC channel. The client of this runs from a SIGSYS handler ++ // triggered by the seccomp-bpf sandbox. ++ // |client_sandbox_policy| is the policy being run by the client, and is ++ // used to derive the equivalent broker-side policy. ++ // |broker_side_hook| is an alternate pre-sandbox hook to be run before the ++ // broker itself gets sandboxed, to which the broker side policy and ++ // |options| are passed. ++ // Crashes the process if the broker can not be started since continuation ++ // is impossible (and presumably unsafe). ++ // This should never be destroyed, as after the sandbox is started it is ++ // vital to the process. ++#if 0 ++ void StartBrokerProcess( ++ const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set, ++ std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions, ++ PreSandboxHook broker_side_hook, ++ const Options& options); ++ ++ sandbox::syscall_broker::BrokerProcess* broker_process() const { ++ return broker_process_; ++ } ++#endif ++ ++ private: ++ friend struct base::DefaultSingletonTraits<SandboxLinux>; ++ ++ SandboxLinux(); ++ ~SandboxLinux(); ++ ++ // We must have been pre_initialized_ before using these. ++ bool seccomp_bpf_supported() const; ++ bool seccomp_bpf_with_tsync_supported() const; ++ ++ // Returns true if it can be determined that the current process has open ++ // directories that are not managed by the SandboxLinux class. This would ++ // be a vulnerability as it would allow to bypass the setuid sandbox. ++ bool HasOpenDirectories() const; ++ ++ // The last part of the initialization is to make sure any temporary "hole" ++ // in the sandbox is closed. For now, this consists of closing proc_fd_. ++ void SealSandbox(); ++ ++ // GetStatus() makes promises as to how the sandbox will behave. This ++ // checks that no promises have been broken. ++ void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Stop |thread| and make sure it does not appear in /proc/self/tasks/ ++ // anymore. ++ void StopThreadAndEnsureNotCounted(base::Thread* thread) const; ++ ++ // A file descriptor to /proc. It's dangerous to have it around as it could ++ // allow for sandbox bypasses. It needs to be closed before we consider ++ // ourselves sandboxed. ++ int proc_fd_; ++ ++ bool seccomp_bpf_started_; ++ // The value returned by GetStatus(). Gets computed once and then cached. ++ int sandbox_status_flags_; ++ // Did PreinitializeSandbox() run? ++ bool pre_initialized_; ++ bool seccomp_bpf_supported_; // Accurate if pre_initialized_. ++ bool seccomp_bpf_with_tsync_supported_; // Accurate if pre_initialized_. ++ bool yama_is_enforcing_; // Accurate if pre_initialized_. ++ bool initialize_sandbox_ran_; // InitializeSandbox() was called. ++#if BUILDFLAG(USING_SANITIZER) ++ std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_; ++#endif ++ sandbox::syscall_broker::BrokerProcess* broker_process_; // Leaked as global. ++}; ++ ++} // namespace policy ++} // namespace sandbox ++ ++#endif // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ diff --git a/devel/electron36/files/patch-sandbox_policy_mojom_sandbox.mojom b/devel/electron36/files/patch-sandbox_policy_mojom_sandbox.mojom new file mode 100644 index 000000000000..5437a34b4052 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_mojom_sandbox.mojom @@ -0,0 +1,15 @@ +--- sandbox/policy/mojom/sandbox.mojom.orig 2025-03-24 20:50:14 UTC ++++ sandbox/policy/mojom/sandbox.mojom +@@ -74,6 +74,12 @@ enum Sandbox { + // Minimally privileged sandbox on Fuchsia. + [EnableIf=is_fuchsia] kVideoCapture, + ++ [EnableIf=is_openbsd] ++ kVideoCapture, ++ ++ [EnableIf=is_freebsd] ++ kVideoCapture, ++ + // Allows access to file contents and Windows APIs for parsing icons from PE + // files. + [EnableIf=is_win] kIconReader, diff --git a/devel/electron36/files/patch-sandbox_policy_openbsd_sandbox__openbsd.cc b/devel/electron36/files/patch-sandbox_policy_openbsd_sandbox__openbsd.cc new file mode 100644 index 000000000000..7da156e9dbcf --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_openbsd_sandbox__openbsd.cc @@ -0,0 +1,395 @@ +--- sandbox/policy/openbsd/sandbox_openbsd.cc.orig 2025-05-11 11:51:04 UTC ++++ sandbox/policy/openbsd/sandbox_openbsd.cc +@@ -0,0 +1,392 @@ ++// 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. ++ ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++ ++#include <dirent.h> ++#include <fcntl.h> ++#include <stdint.h> ++#include <sys/resource.h> ++#include <sys/stat.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#include <unistd.h> ++#include <util.h> ++ ++#include <limits> ++#include <memory> ++#include <string> ++#include <vector> ++ ++#include "base/command_line.h" ++#include "base/debug/stack_trace.h" ++#include "base/feature_list.h" ++#include "base/files/file_path.h" ++#include "base/files/file_util.h" ++#include "base/files/scoped_file.h" ++#include "base/logging.h" ++#include "base/memory/singleton.h" ++#include "base/path_service.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/strings/string_number_conversions.h" ++#include "base/system/sys_info.h" ++#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" ++#include "sandbox/linux/services/proc_util.h" ++#include "sandbox/linux/services/resource_limits.h" ++#include "sandbox/linux/services/thread_helpers.h" ++#include "sandbox/linux/syscall_broker/broker_command.h" ++#include "sandbox/linux/syscall_broker/broker_process.h" ++#include "sandbox/policy/sandbox.h" ++#include "sandbox/policy/sandbox_type.h" ++#include "sandbox/policy/mojom/sandbox.mojom.h" ++#include "sandbox/policy/switches.h" ++#include "sandbox/sandbox_buildflags.h" ++ ++#if BUILDFLAG(USING_SANITIZER) ++#include <sanitizer/common_interface_defs.h> ++#endif ++ ++#if BUILDFLAG(USE_NSS_CERTS) ++#include "crypto/nss_util.h" ++#endif ++ ++#include "third_party/boringssl/src/include/openssl/crypto.h" ++ ++#include <fontconfig/fontconfig.h> ++#include "ui/gfx/linux/fontconfig_util.h" ++ ++#define MAXTOKENS 3 ++ ++#define _UNVEIL_MAIN "/etc/chromium/unveil.main"; ++#define _UNVEIL_GPU "/etc/chromium/unveil.gpu"; ++#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"; ++ ++namespace sandbox { ++namespace policy { ++ ++SandboxLinux::SandboxLinux() ++ : unveil_initialized_(false), ++ sandbox_status_flags_(kInvalid), ++ pre_initialized_(false), ++ initialize_sandbox_ran_(false), ++ broker_process_(nullptr) { ++} ++ ++SandboxLinux::~SandboxLinux() { ++ if (pre_initialized_) { ++ CHECK(initialize_sandbox_ran_); ++ } ++} ++ ++SandboxLinux* SandboxLinux::GetInstance() { ++ SandboxLinux* instance = base::Singleton<SandboxLinux>::get(); ++ CHECK(instance); ++ return instance; ++} ++ ++void SandboxLinux::StopThread(base::Thread* thread) { ++ DCHECK(thread); ++ thread->Stop(); ++} ++ ++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) { ++ CHECK(!pre_initialized_); ++#if BUILDFLAG(USING_SANITIZER) ++ // Sanitizers need to open some resources before the sandbox is enabled. ++ // This should not fork, not launch threads, not open a directory. ++ __sanitizer_sandbox_on_notify(sanitizer_args()); ++ sanitizer_args_.reset(); ++#endif ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ const std::string process_type = ++ command_line->GetSwitchValueASCII(switches::kProcessType); ++ ++ base::SysInfo::AmountOfPhysicalMemory(); ++ base::SysInfo::NumberOfProcessors(); ++ base::SysInfo::CPUModelName(); ++ ++ 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(); ++ ++ base::FilePath cache_directory, 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"); ++ ++ 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."; ++ } ++ ++ break; ++ } ++ case sandbox::mojom::Sandbox::kRenderer: ++ { ++ FcConfig* config = gfx::GetGlobalFontConfig(); ++ DCHECK(config); ++ break; ++ } ++ default: ++ break; ++ } ++ ++ pre_initialized_ = true; ++} ++ ++bool SandboxLinux::SetPledge(const char *pstring, const char *ppath) { ++ FILE *fp; ++ char *s = NULL; ++ size_t len = 0; ++ ssize_t read; ++ ++ 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) { ++ while ((read = getline(&s, &len, fp)) != -1 ) { ++ if (s[strlen(s)-1] == '\n') ++ s[strlen(s)-1] = '\0'; ++ if (pledge(s, NULL) == -1) ++ goto err; ++ VLOG(5) << "pledge " << s; ++ } ++ fclose(fp); ++ } else { ++ LOG(ERROR) << "fopen(" << ppath << ") failed, errno: " << errno; ++ return false; ++ } ++ } ++ return true; ++err: ++ LOG(ERROR) << "pledge() failed, errno: " << errno; ++ return false; ++} ++ ++bool SandboxLinux::SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type) { ++ FILE *fp; ++ char *s = NULL, *cp = NULL, *home = NULL, **ap, *tokens[MAXTOKENS]; ++ char path[PATH_MAX]; ++ const char *ufile; ++ size_t len = 0, lineno = 0; ++ ++ switch (sandbox_type) { ++ case sandbox::mojom::Sandbox::kNoSandbox: ++ ufile = _UNVEIL_MAIN; ++ break; ++ case sandbox::mojom::Sandbox::kGpu: ++ case sandbox::mojom::Sandbox::kOnDeviceModelExecution: ++ ufile = _UNVEIL_GPU; ++ break; ++ case sandbox::mojom::Sandbox::kNetwork: ++ ufile = _UNVEIL_UTILITY_NETWORK; ++ break; ++ case sandbox::mojom::Sandbox::kAudio: ++ ufile = _UNVEIL_UTILITY_AUDIO; ++ break; ++ case sandbox::mojom::Sandbox::kVideoCapture: ++ ufile = _UNVEIL_UTILITY_VIDEO; ++ break; ++ default: ++ unveil("/dev/null", "r"); ++ goto done; ++ } ++ ++ fp = fopen(ufile, "r"); ++ if (fp != NULL) { ++ while (!feof(fp)) { ++ if ((s = fparseln(fp, &len, &lineno, NULL, ++ FPARSELN_UNESCCOMM | FPARSELN_UNESCCONT)) == NULL) { ++ if (ferror(fp)) { ++ LOG(ERROR) << "ferror(), errno: " << errno; ++ _exit(1); ++ } else { ++ continue; ++ } ++ } ++ cp = s; ++ cp += strspn(cp, " \t\n"); /* eat whitespace */ ++ if (cp[0] == '\0') ++ continue; ++ ++ for (ap = tokens; ap < &tokens[MAXTOKENS - 1] && ++ (*ap = strsep(&cp, " \t")) != NULL;) { ++ if (**ap != '\0') ++ ap++; ++ } ++ *ap = NULL; ++ ++ if (tokens[1] == NULL) { ++ LOG(ERROR) << ufile << ": line " << lineno << ": must supply value to " << s; ++ _exit(1); ++ } ++ ++ if (tokens[0][0] == '~') { ++ if ((home = getenv("HOME")) == NULL || *home == '\0') { ++ LOG(ERROR) << "failed to get home"; ++ _exit(1); ++ } ++ memmove(tokens[0], tokens[0] + 1, strlen(tokens[0])); ++ strncpy(path, home, sizeof(path) - 1); ++ path[sizeof(path) - 1] = '\0'; ++ strncat(path, tokens[0], sizeof(path) - 1 - strlen(path)); ++ } else { ++ strncpy(path, tokens[0], sizeof(path) - 1); ++ path[sizeof(path) - 1] = '\0'; ++ } ++ ++ if (unveil(path, tokens[1]) == -1) { ++ LOG(ERROR) << "failed unveiling " << path << " with permissions " << tokens[1]; ++ _exit(1); ++ } else { ++ VLOG(5) << "unveiling " << path << " with permissions " << tokens[1]; ++ } ++ } ++ fclose(fp); ++ } else { ++ LOG(ERROR) << "failed to open " << ufile << " errno: " << errno; ++ _exit(1); ++ } ++ ++done: ++ unveil_initialized_ = true; ++ ++ return true; ++} ++ ++bool SandboxLinux::unveil_initialized() const { ++ return unveil_initialized_; ++} ++ ++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type, ++ SandboxLinux::PreSandboxHook hook, ++ const Options& options) { ++ DCHECK(!initialize_sandbox_ran_); ++ initialize_sandbox_ran_ = true; ++ ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ const std::string process_type = ++ command_line->GetSwitchValueASCII(switches::kProcessType); ++ ++ if (command_line->HasSwitch(switches::kNoSandbox)) ++ return true; ++ ++ VLOG(1) << "SandboxLinux::InitializeSandbox: process_type=" ++ << process_type << " sandbox_type=" << sandbox_type; ++ ++ // Only one thread is running, pre-initialize if not already done. ++ if (!pre_initialized_) ++ PreinitializeSandbox(sandbox_type); ++ ++ // Attempt to limit the future size of the address space of the process. ++ int error = 0; ++ const bool limited_as = LimitAddressSpace(&error); ++ if (error) { ++ // Restore errno. Internally to |LimitAddressSpace|, the errno due to ++ // setrlimit may be lost. ++ errno = error; ++ PCHECK(limited_as); ++ } ++ ++ 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: ++ case sandbox::mojom::Sandbox::kOnDeviceModelExecution: ++ SetPledge("stdio drm inet rpath flock cpath wpath prot_exec recvfd sendfd tmppath unix", 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"); ++ break; ++ case sandbox::mojom::Sandbox::kNetwork: ++ SetPledge(NULL, "/etc/chromium/pledge.utility_network"); ++ break; ++ case sandbox::mojom::Sandbox::kVideoCapture: ++ SetPledge(NULL, "/etc/chromium/pledge.utility_video"); ++ break; ++ case sandbox::mojom::Sandbox::kUtility: ++ case sandbox::mojom::Sandbox::kService: ++ SetPledge("stdio rpath cpath wpath fattr flock sendfd recvfd prot_exec", NULL); ++ break; ++ default: ++ LOG(ERROR) << "non-pledge()'d process: " << sandbox_type; ++ break; ++ } ++ ++ return true; ++} ++ ++bool SandboxLinux::LimitAddressSpace(int* error) { ++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \ ++ !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) { ++ return false; ++ } ++ ++ // Unfortunately, it does not appear possible to set RLIMIT_AS such that it ++ // will both (a) be high enough to support V8's and WebAssembly's address ++ // space requirements while also (b) being low enough to mitigate exploits ++ // using integer overflows that require large allocations, heap spray, or ++ // other memory-hungry attack modes. ++ ++ *error = sandbox::ResourceLimits::Lower( ++ RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit)); ++ ++ // Cache the resource limit before turning on the sandbox. ++ base::SysInfo::AmountOfVirtualMemory(); ++ base::SysInfo::MaxSharedMemorySize(); ++ ++ return *error == 0; ++#else ++ base::SysInfo::AmountOfVirtualMemory(); ++ return false; ++#endif // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && ++ // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) ++} ++ ++} // namespace policy ++} // namespace sandbox diff --git a/devel/electron36/files/patch-sandbox_policy_openbsd_sandbox__openbsd.h b/devel/electron36/files/patch-sandbox_policy_openbsd_sandbox__openbsd.h new file mode 100644 index 000000000000..1f22747caf21 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_openbsd_sandbox__openbsd.h @@ -0,0 +1,283 @@ +--- sandbox/policy/openbsd/sandbox_openbsd.h.orig 2025-02-02 01:39:46 UTC ++++ sandbox/policy/openbsd/sandbox_openbsd.h +@@ -0,0 +1,280 @@ ++// 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. ++#ifndef SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ ++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ ++ ++#include <memory> ++#include <string> ++#include <vector> ++ ++#include "base/logging.h" ++#include "base/posix/global_descriptors.h" ++#include "sandbox/policy/export.h" ++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h" ++#include "sandbox/policy/mojom/sandbox.mojom.h" ++#include "base/sanitizer_buildflags.h" ++ ++#if BUILDFLAG(USING_SANITIZER) ++#include <sanitizer/common_interface_defs.h> ++#endif ++ ++namespace base { ++template <typename T> ++struct DefaultSingletonTraits; ++class Thread; ++} // namespace base ++ ++namespace sandbox { ++namespace syscall_broker { ++class BrokerProcess; ++} // namespace syscall_broker ++} // namespace sandbox ++ ++namespace sandbox { ++namespace policy { ++ ++// A singleton class to represent and change our sandboxing state for the ++// three main Linux sandboxes. ++// The sandboxing model allows using two layers of sandboxing. The first layer ++// can be implemented either with unprivileged namespaces or with the setuid ++// sandbox. This class provides a way to engage the namespace sandbox, but does ++// not deal with the legacy setuid sandbox directly. ++// The second layer is mainly based on seccomp-bpf and is engaged with ++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing" ++// the first layer of sandboxing. That is, InitializeSandbox must always be ++// called to have any meaningful sandboxing at all. ++class SANDBOX_POLICY_EXPORT SandboxLinux { ++ public: ++ // This is a list of sandbox IPC methods which the renderer may send to the ++ // sandbox host. See ++ // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md ++ // This isn't the full list, values < 32 are reserved for methods called from ++ // Skia, and values < 64 are reserved for libc_interceptor.cc. ++ enum LinuxSandboxIPCMethods { ++ DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64, ++ DEPRECATED_METHOD_GET_CHILD_WITH_INODE, ++ DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE, ++ METHOD_MAKE_SHARED_MEMORY_SEGMENT, ++ DEPRECATED_METHOD_MATCH_WITH_FALLBACK, ++ }; ++ ++ // These form a bitmask which describes the conditions of the Linux sandbox. ++ // Note: this doesn't strictly give you the current status, it states ++ // what will be enabled when the relevant processes are initialized. ++ enum Status { ++ // SUID sandbox active. ++ kSUID = 1 << 0, ++ ++ // Sandbox is using a new PID namespace. ++ kPIDNS = 1 << 1, ++ ++ // Sandbox is using a new network namespace. ++ kNetNS = 1 << 2, ++ ++ // seccomp-bpf sandbox active. ++ kSeccompBPF = 1 << 3, ++ ++ // The Yama LSM module is present and enforcing. ++ kYama = 1 << 4, ++ ++ // seccomp-bpf sandbox is active and the kernel supports TSYNC. ++ kSeccompTSYNC = 1 << 5, ++ ++ // User namespace sandbox active. ++ kUserNS = 1 << 6, ++ ++ // A flag that denotes an invalid sandbox status. ++ kInvalid = 1 << 31, ++ }; ++ ++ // SandboxLinux Options are a superset of SandboxSecompBPF Options. ++ struct Options : public SandboxSeccompBPF::Options { ++ // When running with a zygote, the namespace sandbox will have already ++ // been engaged prior to initializing SandboxLinux itself, and need not ++ // be done so again. Set to true to indicate that there isn't a zygote ++ // for this process and the step is to be performed here explicitly. ++ bool engage_namespace_sandbox = false; ++ ++ // Allow starting the sandbox with multiple threads already running. This ++ // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy ++ // across all running threads. ++ bool allow_threads_during_sandbox_init = false; ++ ++ // Enables the CHECK for open directories. The open directory check is only ++ // useful for the chroot jail (from the semantic layer of the sandbox), and ++ // can safely be disabled if we are only enabling the seccomp-BPF layer. ++ bool check_for_open_directories = true; ++ }; ++ ++ // Callers can provide this hook to run code right before the policy ++ // is passed to the BPF compiler and the sandbox is engaged. If ++ // pre_sandbox_hook() returns true, the sandbox will be engaged ++ // afterwards, otherwise the process is terminated. ++ using PreSandboxHook = base::OnceCallback<bool(Options)>; ++ ++ // Get our singleton instance. ++ static SandboxLinux* GetInstance(); ++ ++ SandboxLinux(const SandboxLinux&) = delete; ++ SandboxLinux& operator=(const SandboxLinux&) = delete; ++ ++ bool SetPledge(const char *pstring, const char *ppath); ++ bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type); ++ ++ // Do some initialization that can only be done before any of the sandboxes ++ // are enabled. If using the setuid sandbox, this should be called manually ++ // before the setuid sandbox is engaged. ++ // Security: When this runs, it is imperative that either InitializeSandbox() ++ // runs as well or that all file descriptors returned in ++ // GetFileDescriptorsToClose() get closed. ++ // Otherwise file descriptors that bypass the security of the setuid sandbox ++ // would be kept open. One must be particularly careful if a process performs ++ // a fork(). ++ void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Check that the current process is the init process of a new PID ++ // namespace and then proceed to drop access to the file system by using ++ // a new unprivileged namespace. This is a layer-1 sandbox. ++ // In order for this sandbox to be effective, it must be "sealed" by calling ++ // InitializeSandbox(). ++ void EngageNamespaceSandbox(bool from_zygote); ++ ++ // Return a list of file descriptors to close if PreinitializeSandbox() ran ++ // but InitializeSandbox() won't. Avoid using. ++ // TODO(jln): get rid of this hack. ++ std::vector<int> GetFileDescriptorsToClose(); ++ ++ // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with ++ // an adequate policy depending on the process type and command line ++ // arguments. ++ // Currently the layer-2 sandbox is composed of seccomp-bpf and address space ++ // limitations. ++ // This function should only be called without any thread running. ++ bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type, ++ PreSandboxHook hook, ++ const Options& options); ++ ++ // Stop |thread| in a way that can be trusted by the sandbox. ++ void StopThread(base::Thread* thread); ++ ++ // Returns the status of the renderer, worker and ppapi sandbox. Can only ++ // be queried after going through PreinitializeSandbox(). This is a bitmask ++ // and uses the constants defined in "enum Status" above. Since the ++ // status needs to be provided before the sandboxes are actually started, ++ // this returns what will actually happen once InitializeSandbox() ++ // is called from inside these processes. ++ int GetStatus(); ++ ++ // Returns true if the current process is single-threaded or if the number ++ // of threads cannot be determined. ++ bool IsSingleThreaded() const; ++ ++ // Returns true if we started Seccomp BPF. ++ bool seccomp_bpf_started() const; ++ ++ // Returns true if unveil(2) is used. ++ bool unveil_initialized() const; ++ ++ // Check the policy and eventually start the seccomp-bpf sandbox. This should ++ // never be called with threads started. If we detect that threads have ++ // started we will crash. ++ bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type, ++ PreSandboxHook hook, ++ const Options& options); ++ ++ // Limit the address space of the current process (and its children) to make ++ // some vulnerabilities harder to exploit. Writes the errno due to setrlimit ++ // (including 0 if no error) into |error|. ++ bool LimitAddressSpace(int* error); ++ ++ // Returns a file descriptor to proc. The file descriptor is no longer valid ++ // after the sandbox has been sealed. ++ int proc_fd() const { ++ DCHECK_NE(-1, proc_fd_); ++ return proc_fd_; ++ } ++ ++#if BUILDFLAG(USING_SANITIZER) ++ __sanitizer_sandbox_arguments* sanitizer_args() const { ++ return sanitizer_args_.get(); ++ }; ++#endif ++ ++ // A BrokerProcess is a helper that is started before the sandbox is engaged, ++ // typically from a pre-sandbox hook, that will serve requests to access ++ // files over an IPC channel. The client of this runs from a SIGSYS handler ++ // triggered by the seccomp-bpf sandbox. ++ // |client_sandbox_policy| is the policy being run by the client, and is ++ // used to derive the equivalent broker-side policy. ++ // |broker_side_hook| is an alternate pre-sandbox hook to be run before the ++ // broker itself gets sandboxed, to which the broker side policy and ++ // |options| are passed. ++ // Crashes the process if the broker can not be started since continuation ++ // is impossible (and presumably unsafe). ++ // This should never be destroyed, as after the sandbox is started it is ++ // vital to the process. ++#if 0 ++ void StartBrokerProcess( ++ const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set, ++ std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions, ++ PreSandboxHook broker_side_hook, ++ const Options& options); ++ ++ sandbox::syscall_broker::BrokerProcess* broker_process() const { ++ return broker_process_; ++ } ++#endif ++ ++ private: ++ friend struct base::DefaultSingletonTraits<SandboxLinux>; ++ ++ SandboxLinux(); ++ ~SandboxLinux(); ++ ++ // We must have been pre_initialized_ before using these. ++ bool seccomp_bpf_supported() const; ++ bool seccomp_bpf_with_tsync_supported() const; ++ ++ // Returns true if it can be determined that the current process has open ++ // directories that are not managed by the SandboxLinux class. This would ++ // be a vulnerability as it would allow to bypass the setuid sandbox. ++ bool HasOpenDirectories() const; ++ ++ // The last part of the initialization is to make sure any temporary "hole" ++ // in the sandbox is closed. For now, this consists of closing proc_fd_. ++ void SealSandbox(); ++ ++ // GetStatus() makes promises as to how the sandbox will behave. This ++ // checks that no promises have been broken. ++ void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Stop |thread| and make sure it does not appear in /proc/self/tasks/ ++ // anymore. ++ void StopThreadAndEnsureNotCounted(base::Thread* thread) const; ++ ++ // A file descriptor to /proc. It's dangerous to have it around as it could ++ // allow for sandbox bypasses. It needs to be closed before we consider ++ // ourselves sandboxed. ++ int proc_fd_; ++ ++ bool seccomp_bpf_started_; ++ bool unveil_initialized_; ++ // The value returned by GetStatus(). Gets computed once and then cached. ++ int sandbox_status_flags_; ++ // Did PreinitializeSandbox() run? ++ bool pre_initialized_; ++ bool seccomp_bpf_supported_; // Accurate if pre_initialized_. ++ bool seccomp_bpf_with_tsync_supported_; // Accurate if pre_initialized_. ++ bool yama_is_enforcing_; // Accurate if pre_initialized_. ++ bool initialize_sandbox_ran_; // InitializeSandbox() was called. ++#if BUILDFLAG(USING_SANITIZER) ++ std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_; ++#endif ++ sandbox::syscall_broker::BrokerProcess* broker_process_; // Leaked as global. ++}; ++ ++} // namespace policy ++} // namespace sandbox ++ ++#endif // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ diff --git a/devel/electron36/files/patch-sandbox_policy_sandbox.cc b/devel/electron36/files/patch-sandbox_policy_sandbox.cc new file mode 100644 index 000000000000..19df6f473d79 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_sandbox.cc @@ -0,0 +1,22 @@ +--- sandbox/policy/sandbox.cc.orig 2024-04-15 20:34:03 UTC ++++ 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/sandbox.h" ++#endif // BUILDFLAG(IS_BSD) ++ + #if BUILDFLAG(IS_MAC) + #include "sandbox/mac/seatbelt.h" + #endif // BUILDFLAG(IS_MAC) +@@ -32,7 +36,7 @@ namespace policy { + namespace sandbox { + namespace policy { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool Sandbox::Initialize(sandbox::mojom::Sandbox sandbox_type, + SandboxLinux::PreSandboxHook hook, + const SandboxLinux::Options& options) { diff --git a/devel/electron36/files/patch-sandbox_policy_sandbox.h b/devel/electron36/files/patch-sandbox_policy_sandbox.h new file mode 100644 index 000000000000..47c41a0262f4 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_sandbox.h @@ -0,0 +1,24 @@ +--- sandbox/policy/sandbox.h.orig 2023-05-25 00:42:01 UTC ++++ sandbox/policy/sandbox.h +@@ -12,6 +12,12 @@ + #include "sandbox/policy/linux/sandbox_linux.h" + #endif + ++#if BUILDFLAG(IS_OPENBSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#elif BUILDFLAG(IS_FREEBSD) ++#include "sandbox/policy/freebsd/sandbox_freebsd.h" ++#endif ++ + namespace sandbox { + namespace mojom { + enum class Sandbox; +@@ -32,7 +38,7 @@ namespace policy { + + class SANDBOX_POLICY_EXPORT Sandbox { + public: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static bool Initialize(sandbox::mojom::Sandbox sandbox_type, + SandboxLinux::PreSandboxHook hook, + const SandboxLinux::Options& options); diff --git a/devel/electron36/files/patch-sandbox_policy_sandbox__type.cc b/devel/electron36/files/patch-sandbox_policy_sandbox__type.cc new file mode 100644 index 000000000000..8eaf1d8c71e2 --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_sandbox__type.cc @@ -0,0 +1,175 @@ +--- sandbox/policy/sandbox_type.cc.orig 2025-04-22 20:15:27 UTC ++++ sandbox/policy/sandbox_type.cc +@@ -38,7 +38,7 @@ constexpr char kPpapiSandbox[] = "ppapi"; + #endif + + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + constexpr char kPrintBackendSandbox[] = "print_backend"; + constexpr char kScreenAISandbox[] = "screen_ai"; + #endif +@@ -56,15 +56,15 @@ constexpr char kMirroringSandbox[] = "mirroring"; + constexpr char kMirroringSandbox[] = "mirroring"; + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr char kVideoEffectsSandbox[] = "video_effects"; + #endif + +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + constexpr char kVideoCaptureSandbox[] = "video_capture"; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + constexpr char kHardwareVideoDecodingSandbox[] = "hardware_video_decoding"; + constexpr char kHardwareVideoEncodingSandbox[] = "hardware_video_encoding"; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -78,7 +78,7 @@ constexpr char kLibassistantSandbox[] = "libassistant" + #endif // BUILDFLAG(ENABLE_CROS_LIBASSISTANT) + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + constexpr char kOnDeviceTranslationSandbox[] = "on_device_translation"; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) + +@@ -140,7 +140,7 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi + case Sandbox::kCdm: + case Sandbox::kPrintCompositor: + case Sandbox::kAudio: +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + case Sandbox::kVideoCapture: + #endif + #if BUILDFLAG(IS_WIN) +@@ -151,7 +151,7 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi + case Sandbox::kMediaFoundationCdm: + case Sandbox::kWindowsSystemProxyResolver: + #endif // BUILDFLAG(IS_WIN) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + case Sandbox::kHardwareVideoDecoding: + case Sandbox::kHardwareVideoEncoding: + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -167,15 +167,15 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi + case Sandbox::kMirroring: + #endif // BUILDFLAG(IS_MAC) + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + case Sandbox::kPrintBackend: + case Sandbox::kScreenAI: + #endif + case Sandbox::kSpeechRecognition: +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case Sandbox::kVideoEffects: + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case Sandbox::kOnDeviceTranslation: + #endif + DCHECK(command_line->GetSwitchValueASCII(switches::kProcessType) == +@@ -185,7 +185,7 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi + switches::kServiceSandboxType, + StringFromUtilitySandboxType(sandbox_type)); + break; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + case Sandbox::kZygoteIntermediateSandbox: + break; + #endif +@@ -225,7 +225,7 @@ sandbox::mojom::Sandbox SandboxTypeFromCommandLine( + return Sandbox::kUtility; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Intermediate process gains a sandbox later. + if (process_type == switches::kZygoteProcessType) + return Sandbox::kZygoteIntermediateSandbox; +@@ -267,7 +267,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandb + return kUtilitySandbox; + case Sandbox::kAudio: + return kAudioSandbox; +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + case Sandbox::kVideoCapture: + return kVideoCaptureSandbox; + #endif +@@ -278,17 +278,17 @@ std::string StringFromUtilitySandboxType(Sandbox sandb + case Sandbox::kSpeechRecognition: + return kSpeechRecognitionSandbox; + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + case Sandbox::kPrintBackend: + return kPrintBackendSandbox; + case Sandbox::kScreenAI: + return kScreenAISandbox; + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case Sandbox::kVideoEffects: + return kVideoEffectsSandbox; + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case Sandbox::kOnDeviceTranslation: + return kOnDeviceTranslationSandbox; + #endif +@@ -308,7 +308,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandb + case Sandbox::kMirroring: + return kMirroringSandbox; + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + case Sandbox::kHardwareVideoDecoding: + return kHardwareVideoDecodingSandbox; + case Sandbox::kHardwareVideoEncoding: +@@ -329,7 +329,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandb + // The following are not utility processes so should not occur. + case Sandbox::kRenderer: + case Sandbox::kGpu: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + case Sandbox::kZygoteIntermediateSandbox: + #endif + NOTREACHED(); +@@ -407,7 +407,7 @@ sandbox::mojom::Sandbox UtilitySandboxTypeFromString( + return Sandbox::kSpeechRecognition; + } + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (sandbox_string == kPrintBackendSandbox) { + return Sandbox::kPrintBackend; + } +@@ -415,7 +415,7 @@ sandbox::mojom::Sandbox UtilitySandboxTypeFromString( + return Sandbox::kScreenAI; + } + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (sandbox_string == kVideoEffectsSandbox) { + return Sandbox::kVideoEffects; + } +@@ -425,12 +425,12 @@ sandbox::mojom::Sandbox UtilitySandboxTypeFromString( + return Sandbox::kOnDeviceTranslation; + } + #endif +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + if (sandbox_string == kVideoCaptureSandbox) { + return Sandbox::kVideoCapture; + } + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (sandbox_string == kHardwareVideoDecodingSandbox) { + return Sandbox::kHardwareVideoDecoding; + } diff --git a/devel/electron36/files/patch-sandbox_policy_switches.cc b/devel/electron36/files/patch-sandbox_policy_switches.cc new file mode 100644 index 000000000000..a379c285936b --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_switches.cc @@ -0,0 +1,13 @@ +--- sandbox/policy/switches.cc.orig 2025-04-22 20:15:27 UTC ++++ sandbox/policy/switches.cc +@@ -37,7 +37,9 @@ const char kNoSandbox[] = "no-sandbox"; + // Meant to be used as a browser-level switch for testing purposes only. + const char kNoSandbox[] = "no-sandbox"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++const char kDisableUnveil[] = "disable-unveil"; ++ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Instructs the zygote to launch without a sandbox. Processes forked from this + // type of zygote will apply their own custom sandboxes later. + const char kNoZygoteSandbox[] = "no-zygote-sandbox"; diff --git a/devel/electron36/files/patch-sandbox_policy_switches.h b/devel/electron36/files/patch-sandbox_policy_switches.h new file mode 100644 index 000000000000..c2fb7b8ccbfc --- /dev/null +++ b/devel/electron36/files/patch-sandbox_policy_switches.h @@ -0,0 +1,12 @@ +--- sandbox/policy/switches.h.orig 2025-03-24 20:50:14 UTC ++++ sandbox/policy/switches.h +@@ -23,7 +23,8 @@ SANDBOX_POLICY_EXPORT extern const char kNoSandbox[]; + SANDBOX_POLICY_EXPORT extern const char kGpuSandboxAllowSysVShm[]; + SANDBOX_POLICY_EXPORT extern const char kGpuSandboxFailuresFatal[]; + SANDBOX_POLICY_EXPORT extern const char kNoSandbox[]; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++SANDBOX_POLICY_EXPORT extern const char kDisableUnveil[]; ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + SANDBOX_POLICY_EXPORT extern const char kNoZygoteSandbox[]; + #endif + #if BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-services_audio_audio__sandbox__hook__linux.cc b/devel/electron36/files/patch-services_audio_audio__sandbox__hook__linux.cc new file mode 100644 index 000000000000..fe56690733ee --- /dev/null +++ b/devel/electron36/files/patch-services_audio_audio__sandbox__hook__linux.cc @@ -0,0 +1,31 @@ +--- services/audio/audio_sandbox_hook_linux.cc.orig 2024-06-18 21:43:37 UTC ++++ services/audio/audio_sandbox_hook_linux.cc +@@ -143,6 +143,7 @@ void AddPulseAudioFilePermissions( + } + #endif + ++#if !BUILDFLAG(IS_BSD) + std::vector<BrokerFilePermission> GetAudioFilePermissions() { + std::vector<BrokerFilePermission> permissions{ + BrokerFilePermission::ReadOnly("/dev/urandom"), +@@ -171,10 +172,12 @@ void LoadAudioLibraries() { + } + } + } ++#endif + + } // namespace + + bool AudioPreSandboxHook(sandbox::policy::SandboxLinux::Options options) { ++#if !BUILDFLAG(IS_BSD) + LoadAudioLibraries(); + auto* instance = sandbox::policy::SandboxLinux::GetInstance(); + instance->StartBrokerProcess(MakeBrokerCommandSet({ +@@ -192,6 +195,7 @@ bool AudioPreSandboxHook(sandbox::policy::SandboxLinux + // TODO(crbug.com/40579955) enable namespace sandbox. Currently, if + // enabled, connect() on pulse native socket fails with ENOENT (called from + // pa_context_connect). ++#endif + + return true; + } diff --git a/devel/electron36/files/patch-services_audio_audio__sandbox__hook__linux.h b/devel/electron36/files/patch-services_audio_audio__sandbox__hook__linux.h new file mode 100644 index 000000000000..02d4b785c791 --- /dev/null +++ b/devel/electron36/files/patch-services_audio_audio__sandbox__hook__linux.h @@ -0,0 +1,16 @@ +--- services/audio/audio_sandbox_hook_linux.h.orig 2023-10-19 19:58:30 UTC ++++ services/audio/audio_sandbox_hook_linux.h +@@ -5,7 +5,13 @@ + #ifndef SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_ + #define SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_ + ++#include "build/build_config.h" ++ ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace audio { + diff --git a/devel/electron36/files/patch-services_device_BUILD.gn b/devel/electron36/files/patch-services_device_BUILD.gn new file mode 100644 index 000000000000..0bc3f9894442 --- /dev/null +++ b/devel/electron36/files/patch-services_device_BUILD.gn @@ -0,0 +1,11 @@ +--- services/device/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ services/device/BUILD.gn +@@ -13,7 +13,7 @@ is_serial_enabled_platform = + } + + is_serial_enabled_platform = +- is_win || ((is_linux || is_chromeos) && use_udev) || is_mac || is_android ++ is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android + + source_set("lib") { + # This should be visible only to embedders of the Device Service, and the diff --git a/devel/electron36/files/patch-services_device_geolocation_location__provider__manager.cc b/devel/electron36/files/patch-services_device_geolocation_location__provider__manager.cc new file mode 100644 index 000000000000..af69ecf9a26f --- /dev/null +++ b/devel/electron36/files/patch-services_device_geolocation_location__provider__manager.cc @@ -0,0 +1,11 @@ +--- services/device/geolocation/location_provider_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ services/device/geolocation/location_provider_manager.cc +@@ -91,7 +91,7 @@ LocationProviderManager::LocationProviderManager( + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) + // On Android and iOS, default to using the platform location provider. + provider_manager_mode_ = kPlatformOnly; +-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Ash / Lacros / Linux, default to using the network location provider. + provider_manager_mode_ = kNetworkOnly; + #else diff --git a/devel/electron36/files/patch-services_device_hid_BUILD.gn b/devel/electron36/files/patch-services_device_hid_BUILD.gn new file mode 100644 index 000000000000..3df68163a61f --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_BUILD.gn @@ -0,0 +1,30 @@ +--- services/device/hid/BUILD.gn.orig 2025-03-24 20:50:14 UTC ++++ services/device/hid/BUILD.gn +@@ -34,7 +34,26 @@ source_set("hid") { + "//services/device/public/mojom", + ] + +- if ((is_linux || is_chromeos) && use_udev) { ++ if (is_openbsd) { ++ sources += [ ++ "hid_connection_fido.cc", ++ "hid_connection_fido.h", ++ "hid_service_fido.cc", ++ "hid_service_fido.h", ++ ] ++ libs = ["fido2", "cbor", "usbhid", "crypto", "util"] ++ } ++ ++ if (is_freebsd) { ++ sources += [ ++ "hid_connection_freebsd.cc", ++ "hid_connection_freebsd.h", ++ "hid_service_freebsd.cc", ++ "hid_service_freebsd.h", ++ ] ++ } ++ ++ if ((is_linux || is_chromeos) && !is_bsd && use_udev) { + sources += [ + "hid_connection_linux.cc", + "hid_connection_linux.h", diff --git a/devel/electron36/files/patch-services_device_hid_hid__connection__fido.cc b/devel/electron36/files/patch-services_device_hid_hid__connection__fido.cc new file mode 100644 index 000000000000..deab3ad19e11 --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__connection__fido.cc @@ -0,0 +1,219 @@ +--- services/device/hid/hid_connection_fido.cc.orig 2024-06-30 11:49:03 UTC ++++ services/device/hid/hid_connection_fido.cc +@@ -0,0 +1,216 @@ ++// Copyright 2014 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#include "services/device/hid/hid_connection_fido.h" ++ ++#include <errno.h> ++#include <sys/ioctl.h> ++ ++#include <memory> ++#include <string> ++#include <utility> ++ ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/memory/ref_counted_memory.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_service.h" ++ ++namespace device { ++ ++class HidConnectionFido::BlockingTaskRunnerHelper { ++ public: ++ BlockingTaskRunnerHelper(base::ScopedFD fd, ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::WeakPtr<HidConnectionFido> connection) ++ : fd_(std::move(fd)), ++ connection_(connection), ++ origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ // Report buffers must always have room for the report ID. ++ report_buffer_size_ = device_info->max_input_report_size() + 1; ++ has_report_id_ = device_info->has_report_id(); ++ } ++ ++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete; ++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete; ++ ++ ~BlockingTaskRunnerHelper() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ } ++ ++ // Starts the FileDescriptorWatcher that reads input events from the device. ++ // Must be called on a thread that has a base::MessageLoopForIO. ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( ++ fd_.get(), base::BindRepeating( ++ &BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking, ++ base::Unretained(this))); ++ } ++ ++ void Write(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ ++ auto data = buffer->data(); ++ size_t size = buffer->size(); ++ // if report id is 0, it shouldn't be included ++ if (data[0] == 0) { ++ data++; ++ size--; ++ } ++ ++ ssize_t result = ++ HANDLE_EINTR(write(fd_.get(), data, size)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Write failed"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false)); ++ } else { ++ if (static_cast<size_t>(result) != size) { ++ HID_LOG(EVENT) << "Incomplete HID write: " << result ++ << " != " << buffer->size(); ++ } ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), true)); ++ } ++ } ++ ++ void GetFeatureReport(uint8_t report_id, ++ scoped_refptr<base::RefCountedBytes> buffer, ++ ReadCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ HID_PLOG(EVENT) << "GendFeatureReport not implemented on OpenBSD"; ++ origin_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(std::move(callback), false, nullptr, 0)); ++ } ++ ++ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ HID_PLOG(EVENT) << "SendFeatureReport not implemented on OpenBSD"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false)); ++ } ++ ++ private: ++ void OnFileCanReadWithoutBlocking() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ auto buffer = ++ base::MakeRefCounted<base::RefCountedBytes>(report_buffer_size_); ++ uint8_t* data = buffer->as_vector().data(); ++ size_t length = report_buffer_size_; ++ if (!has_report_id_) { ++ // Fido will not prefix the buffer with a report ID if report IDs are not ++ // used by the device. Prefix the buffer with 0. ++ *data++ = 0; ++ length--; ++ } ++ ++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length)); ++ if (bytes_read < 0) { ++ if (errno != EAGAIN) { ++ HID_PLOG(EVENT) << "Read failed"; ++ // This assumes that the error is unrecoverable and disables reading ++ // from the device until it has been re-opened. ++ // TODO(reillyg): Investigate starting and stopping the file descriptor ++ // watcher in response to pending read requests so that per-request ++ // errors can be returned to the client. ++ file_watcher_.reset(); ++ } ++ return; ++ } ++ if (!has_report_id_) { ++ // Behave as if the byte prefixed above as the the report ID was read. ++ bytes_read++; ++ } ++ ++ origin_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&HidConnectionFido::ProcessInputReport, ++ connection_, buffer, bytes_read)); ++ } ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ base::ScopedFD fd_; ++ size_t report_buffer_size_; ++ bool has_report_id_; ++ base::WeakPtr<HidConnectionFido> connection_; ++ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_; ++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_; ++}; ++ ++HidConnectionFido::HidConnectionFido( ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::ScopedFD fd, ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, ++ bool allow_protected_reports, ++ bool allow_fido_reports) ++ : HidConnection(device_info, allow_protected_reports, allow_fido_reports), ++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)), ++ blocking_task_runner_(std::move(blocking_task_runner)) { ++ helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info, ++ weak_factory_.GetWeakPtr())); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start, ++ base::Unretained(helper_.get()))); ++} ++ ++HidConnectionFido::~HidConnectionFido() {} ++ ++void HidConnectionFido::PlatformClose() { ++ // By closing the device on the blocking task runner 1) the requirement that ++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied ++ // and 2) any tasks posted to this task runner that refer to this file will ++ // complete before it is closed. ++ helper_.reset(); ++} ++ ++void HidConnectionFido::PlatformWrite( ++ scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ // Fido expects the first byte of the buffer to always be a report ID so the ++ // buffer can be used directly. ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Write, ++ base::Unretained(helper_.get()), buffer, ++ std::move(callback))); ++} ++ ++void HidConnectionFido::PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) { ++ // The first byte of the destination buffer is the report ID being requested ++ // and is overwritten by the feature report. ++ DCHECK_GT(device_info()->max_feature_report_size(), 0u); ++ auto buffer = base::MakeRefCounted<base::RefCountedBytes>( ++ device_info()->max_feature_report_size() + 1); ++ buffer->as_vector().data()[0] = report_id; ++ ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport, ++ base::Unretained(helper_.get()), report_id, ++ buffer, std::move(callback))); ++} ++ ++void HidConnectionFido::PlatformSendFeatureReport( ++ scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ // Fido expects the first byte of the buffer to always be a report ID so the ++ // buffer can be used directly. ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport, ++ base::Unretained(helper_.get()), buffer, ++ std::move(callback))); ++} ++ ++} // namespace device diff --git a/devel/electron36/files/patch-services_device_hid_hid__connection__fido.h b/devel/electron36/files/patch-services_device_hid_hid__connection__fido.h new file mode 100644 index 000000000000..9e5e403189a4 --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__connection__fido.h @@ -0,0 +1,63 @@ +--- services/device/hid/hid_connection_fido.h.orig 2022-10-28 16:39:00 UTC ++++ services/device/hid/hid_connection_fido.h +@@ -0,0 +1,60 @@ ++// Copyright 2014 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#ifndef SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_ ++#define SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_ ++ ++#include <stddef.h> ++#include <stdint.h> ++ ++#include "base/files/scoped_file.h" ++#include "base/memory/weak_ptr.h" ++#include "base/task/sequenced_task_runner.h" ++#include "services/device/hid/hid_connection.h" ++ ++namespace base { ++class SequencedTaskRunner; ++} ++ ++namespace device { ++ ++class HidConnectionFido : public HidConnection { ++ public: ++ HidConnectionFido( ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::ScopedFD fd, ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, ++ bool allow_protected_reports, ++ bool allow_fido_reports); ++ HidConnectionFido(HidConnectionFido&) = delete; ++ HidConnectionFido& operator=(HidConnectionFido&) = delete; ++ ++ private: ++ friend class base::RefCountedThreadSafe<HidConnectionFido>; ++ class BlockingTaskRunnerHelper; ++ ++ ~HidConnectionFido() override; ++ ++ // HidConnection implementation. ++ void PlatformClose() override; ++ void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) override; ++ void PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) override; ++ void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) override; ++ ++ // |helper_| lives on the sequence to which |blocking_task_runner_| posts ++ // tasks so all calls must be posted there including this object's ++ // destruction. ++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_; ++ ++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; ++ ++ base::WeakPtrFactory<HidConnectionFido> weak_factory_{this}; ++}; ++ ++} // namespace device ++ ++#endif // SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_ diff --git a/devel/electron36/files/patch-services_device_hid_hid__connection__freebsd.cc b/devel/electron36/files/patch-services_device_hid_hid__connection__freebsd.cc new file mode 100644 index 000000000000..accaf0bdbdeb --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__connection__freebsd.cc @@ -0,0 +1,243 @@ +--- services/device/hid/hid_connection_freebsd.cc.orig 2025-02-02 01:39:47 UTC ++++ services/device/hid/hid_connection_freebsd.cc +@@ -0,0 +1,240 @@ ++// Copyright (c) 2014 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. ++ ++#include "services/device/hid/hid_connection_freebsd.h" ++ ++#include <dev/usb/usbhid.h> ++#include <dev/usb/usb_ioctl.h> ++ ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/location.h" ++#include "base/numerics/safe_math.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/strings/stringprintf.h" ++#include "base/task/single_thread_task_runner.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "base/threading/thread_restrictions.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_service.h" ++ ++namespace device { ++ ++class HidConnectionFreeBSD::BlockingTaskRunnerHelper { ++ public: ++ BlockingTaskRunnerHelper(base::ScopedFD fd, ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::WeakPtr<HidConnectionFreeBSD> connection) ++ : fd_(std::move(fd)), ++ connection_(connection), ++ origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ // Report buffers must always have room for the report ID. ++ report_buffer_size_ = device_info->max_input_report_size() + 1; ++ has_report_id_ = device_info->has_report_id(); ++ } ++ ++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete; ++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete; ++ ++ ~BlockingTaskRunnerHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } ++ ++ // Starts the FileDescriptorWatcher that reads input events from the device. ++ // Must be called on a thread that has a base::MessageLoopForIO. ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::AssertBlockingAllowed(); ++ ++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( ++ fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking, ++ base::Unretained(this))); ++ } ++ ++ void Write(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ ++ auto data = buffer->as_vector().data(); ++ size_t size = buffer->size(); ++ // if report id is 0, it shouldn't be included ++ if (data[0] == 0) { ++ data++; ++ size--; ++ } ++ ++ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Write failed"; ++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false)); ++ } else { ++ if (static_cast<size_t>(result) != size) ++ HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size; ++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true)); ++ } ++ } ++ ++ void GetFeatureReport(uint8_t report_id, ++ scoped_refptr<base::RefCountedBytes> buffer, ++ ReadCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_report_type = UHID_FEATURE_REPORT; ++ ugd.ugd_data = buffer->as_vector().data(); ++ ugd.ugd_maxlen = buffer->size(); ++ int result = HANDLE_EINTR( ++ ioctl(fd_.get(), USB_GET_REPORT, &ugd)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Failed to get feature report"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false, nullptr, 0)); ++ } else if (result == 0) { ++ HID_LOG(EVENT) << "Get feature result too short."; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false, nullptr, 0)); ++ } else { ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), true, buffer, result)); ++ } ++ } ++ ++ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_report_type = UHID_FEATURE_REPORT; ++ ugd.ugd_data = buffer->as_vector().data(); ++ ugd.ugd_maxlen = buffer->size(); ++ // FreeBSD does not require report id if it's not used ++ if (buffer->data()[0] == 0) { ++ ugd.ugd_data = buffer->as_vector().data() + 1; ++ ugd.ugd_maxlen = buffer->size() - 1; ++ } else { ++ ugd.ugd_data = buffer->as_vector().data(); ++ ugd.ugd_maxlen = buffer->size(); ++ } ++ int result = HANDLE_EINTR( ++ ioctl(fd_.get(), USB_SET_REPORT, &ugd)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Failed to send feature report"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false)); ++ } else { ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), true)); ++ } ++ } ++ ++ private: ++ void OnFileCanReadWithoutBlocking() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_)); ++ unsigned char* data = buffer->as_vector().data(); ++ size_t length = report_buffer_size_; ++ if (!has_report_id_) { ++ // FreeBSD will not prefix the buffer with a report ID if report IDs are not ++ // used by the device. Prefix the buffer with 0. ++ *data++ = 0; ++ length--; ++ } ++ ++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length)); ++ if (bytes_read < 0) { ++ if (errno != EAGAIN) { ++ HID_PLOG(EVENT) << "Read failed"; ++ // This assumes that the error is unrecoverable and disables reading ++ // from the device until it has been re-opened. ++ // TODO(reillyg): Investigate starting and stopping the file descriptor ++ // watcher in response to pending read requests so that per-request ++ // errors can be returned to the client. ++ file_watcher_.reset(); ++ } ++ return; ++ } ++ if (!has_report_id_) { ++ // Behave as if the byte prefixed above as the the report ID was read. ++ bytes_read++; ++ } ++ ++ origin_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&HidConnectionFreeBSD::ProcessInputReport, ++ connection_, buffer, bytes_read)); ++ } ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ base::ScopedFD fd_; ++ size_t report_buffer_size_; ++ bool has_report_id_; ++ base::WeakPtr<HidConnectionFreeBSD> connection_; ++ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_; ++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_; ++}; ++ ++HidConnectionFreeBSD::HidConnectionFreeBSD( ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::ScopedFD fd, ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, ++ bool allow_protected_reports, ++ bool allow_fido_reports) ++ : HidConnection(device_info, allow_protected_reports, allow_fido_reports), ++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)), ++ blocking_task_runner_(std::move(blocking_task_runner)) { ++ helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info, ++ weak_factory_.GetWeakPtr())); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start, ++ base::Unretained(helper_.get()))); ++} ++ ++HidConnectionFreeBSD::~HidConnectionFreeBSD() {} ++ ++void HidConnectionFreeBSD::PlatformClose() { ++ // By closing the device on the blocking task runner 1) the requirement that ++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied ++ // and 2) any tasks posted to this task runner that refer to this file will ++ // complete before it is closed. ++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); ++} ++ ++void HidConnectionFreeBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskRunnerHelper::Write, base::Unretained(helper_.get()), ++ buffer, std::move(callback))); ++} ++ ++void HidConnectionFreeBSD::PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) { ++ // The first byte of the destination buffer is the report ID being requested ++ // and is overwritten by the feature report. ++ DCHECK_GT(device_info()->max_feature_report_size(), 0u); ++ scoped_refptr<base::RefCountedBytes> buffer( ++ new base::RefCountedBytes(device_info()->max_feature_report_size() + 1)); ++ if (report_id != 0) ++ buffer->as_vector().data()[0] = report_id; ++ ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport, ++ base::Unretained(helper_.get()), report_id, ++ buffer, std::move(callback))); ++} ++ ++void HidConnectionFreeBSD::PlatformSendFeatureReport( ++ scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport, ++ base::Unretained(helper_.get()), buffer, std::move(callback))); ++} ++ ++} // namespace device diff --git a/devel/electron36/files/patch-services_device_hid_hid__connection__freebsd.h b/devel/electron36/files/patch-services_device_hid_hid__connection__freebsd.h new file mode 100644 index 000000000000..29870254fa6b --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__connection__freebsd.h @@ -0,0 +1,70 @@ +--- services/device/hid/hid_connection_freebsd.h.orig 2022-02-07 13:39:41 UTC ++++ services/device/hid/hid_connection_freebsd.h +@@ -0,0 +1,67 @@ ++// Copyright (c) 2014 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. ++ ++#ifndef DEVICE_HID_HID_CONNECTION_FREEBSD_H_ ++#define DEVICE_HID_HID_CONNECTION_FREEBSD_H_ ++ ++#include <stddef.h> ++#include <stdint.h> ++ ++#include "base/files/scoped_file.h" ++#include "base/memory/weak_ptr.h" ++#include "base/memory/ref_counted_memory.h" ++#include "base/task/sequenced_task_runner.h" ++#include "services/device/hid/hid_connection.h" ++ ++namespace base { ++class SequencedTaskRunner; ++} ++ ++namespace net { ++class IOBuffer; ++} ++ ++namespace device { ++ ++class HidConnectionFreeBSD : public HidConnection { ++ public: ++ HidConnectionFreeBSD( ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::ScopedFD fd, ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, ++ bool allow_protected_reports, ++ bool allow_fido_reports); ++ ++ private: ++ friend class base::RefCountedThreadSafe<HidConnectionFreeBSD>; ++ class BlockingTaskRunnerHelper; ++ ++ HidConnectionFreeBSD(const HidConnectionFreeBSD&) = delete; ++ HidConnectionFreeBSD& operator=(const HidConnectionFreeBSD&) = delete; ++ ++ ~HidConnectionFreeBSD() override; ++ ++ // HidConnection implementation. ++ void PlatformClose() override; ++ void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) override; ++ void PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) override; ++ void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) override; ++ ++ // |helper_| lives on the sequence to which |blocking_task_runner_| posts ++ // tasks so all calls must be posted there including this object's ++ // destruction. ++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_; ++ ++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; ++ const scoped_refptr<base::SequencedTaskRunner> task_runner_; ++ ++ base::WeakPtrFactory<HidConnectionFreeBSD> weak_factory_{this}; ++}; ++ ++} // namespace device ++ ++#endif // DEVICE_HID_HID_CONNECTION_FREEBSD_H_ diff --git a/devel/electron36/files/patch-services_device_hid_hid__service.cc b/devel/electron36/files/patch-services_device_hid_hid__service.cc new file mode 100644 index 000000000000..0830326cab3c --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__service.cc @@ -0,0 +1,24 @@ +--- services/device/hid/hid_service.cc.orig 2022-11-30 08:12:58 UTC ++++ services/device/hid/hid_service.cc +@@ -20,6 +20,10 @@ + + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_UDEV) + #include "services/device/hid/hid_service_linux.h" ++#elif BUILDFLAG(IS_OPENBSD) ++#include "services/device/hid/hid_service_fido.h" ++#elif BUILDFLAG(IS_FREEBSD) ++#include "services/device/hid/hid_service_freebsd.h" + #elif BUILDFLAG(IS_MAC) + #include "services/device/hid/hid_service_mac.h" + #elif BUILDFLAG(IS_WIN) +@@ -68,6 +72,10 @@ constexpr base::TaskTraits HidService::kBlockingTaskTr + std::unique_ptr<HidService> HidService::Create() { + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_UDEV) + return std::make_unique<HidServiceLinux>(); ++#elif BUILDFLAG(IS_OPENBSD) ++ return std::make_unique<HidServiceFido>(); ++#elif BUILDFLAG(IS_FREEBSD) ++ return std::make_unique<HidServiceFreeBSD>(); + #elif BUILDFLAG(IS_MAC) + return std::make_unique<HidServiceMac>(); + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-services_device_hid_hid__service__fido.cc b/devel/electron36/files/patch-services_device_hid_hid__service__fido.cc new file mode 100644 index 000000000000..4947633197b6 --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__service__fido.cc @@ -0,0 +1,399 @@ +--- services/device/hid/hid_service_fido.cc.orig 2023-04-10 14:02:12 UTC ++++ services/device/hid/hid_service_fido.cc +@@ -0,0 +1,396 @@ ++// Copyright 2014 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#include "services/device/hid/hid_service_fido.h" ++ ++#include <fcntl.h> ++#include <poll.h> ++#include <stdint.h> ++ ++#include <dlfcn.h> ++#include <fido.h> ++ ++#include <limits> ++#include <memory> ++#include <string> ++#include <utility> ++ ++#include "base/files/file.h" ++#include "base/files/file_path.h" ++#include "base/files/file_util.h" ++#include "base/files/scoped_file.h" ++#include "base/location.h" ++#include "base/sequence_checker.h" ++#include "base/strings/string_number_conversions.h" ++#include "base/strings/string_split.h" ++#include "base/strings/string_util.h" ++#include "base/task/sequenced_task_runner.h" ++#include "base/task/thread_pool.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "build/build_config.h" ++#include "build/chromeos_buildflags.h" ++#include "components/device_event_log/device_event_log.h" ++#include "device/udev_linux/scoped_udev.h" ++#include "device/udev_linux/udev_watcher.h" ++#include "services/device/hid/hid_connection_fido.h" ++ ++namespace device { ++ ++namespace { ++ ++bool terrible_ping_kludge(int fd, const std::string &path) { ++ u_char data[256]; ++ int i, n; ++ struct pollfd pfd; ++ ++ for (i = 0; i < 4; i++) { ++ memset(data, 0, sizeof(data)); ++ /* broadcast channel ID */ ++ data[1] = 0xff; ++ data[2] = 0xff; ++ data[3] = 0xff; ++ data[4] = 0xff; ++ /* Ping command */ ++ data[5] = 0x81; ++ /* One byte ping only, Vasili */ ++ data[6] = 0; ++ data[7] = 1; ++ HID_LOG(EVENT) << "send ping " << i << " " << path; ++ if (write(fd, data, 64) == -1) { ++ HID_PLOG(ERROR) << "write " << path; ++ return false; ++ } ++ HID_LOG(EVENT) << "wait reply " << path; ++ memset(&pfd, 0, sizeof(pfd)); ++ pfd.fd = fd; ++ pfd.events = POLLIN; ++ if ((n = poll(&pfd, 1, 100)) == -1) { ++ HID_PLOG(EVENT) << "poll " << path; ++ return false; ++ } else if (n == 0) { ++ HID_LOG(EVENT) << "timed out " << path; ++ continue; ++ } ++ if (read(fd, data, 64) == -1) { ++ HID_PLOG(ERROR) << "read " << path; ++ return false; ++ } ++ /* ++ * Ping isn't always supported on the broadcast channel, ++ * so we might get an error, but we don't care - we're ++ * synched now. ++ */ ++ HID_LOG(EVENT) << "got reply " << path; ++ return true; ++ } ++ HID_LOG(ERROR) << "no response " << path; ++ return false; ++} ++ ++// HID report descriptor for U2F interface. Copied from: ++// https://chromium.googlesource.com/chromiumos/platform2/+/c6c7e4e54fce11932fedaa3ea10236bf75d85a2b%5E%21/u2fd/u2fhid.cc ++// Apparently Chromium wants to see these bytes, but OpenBSD fido(4) ++// devices prohibit USB_GET_REPORT_DESC ioctl that could be used to ++// get the bytes from the USB device. ++constexpr uint8_t kU2fReportDesc[] = { ++ 0x06, 0xD0, 0xF1, /* Usage Page (FIDO Alliance), FIDO_USAGE_PAGE */ ++ 0x09, 0x01, /* Usage (U2F HID Auth. Device) FIDO_USAGE_U2FHID */ ++ 0xA1, 0x01, /* Collection (Application), HID_APPLICATION */ ++ 0x09, 0x20, /* Usage (Input Report Data), FIDO_USAGE_DATA_IN */ ++ 0x15, 0x00, /* Logical Minimum (0) */ ++ 0x26, 0xFF, 0x00, /* Logical Maximum (255) */ ++ 0x75, 0x08, /* Report Size (8) */ ++ 0x95, 0x40, /* Report Count (64), HID_INPUT_REPORT_BYTES */ ++ 0x81, 0x02, /* Input (Data, Var, Abs), Usage */ ++ 0x09, 0x21, /* Usage (Output Report Data), FIDO_USAGE_DATA_OUT */ ++ 0x15, 0x00, /* Logical Minimum (0) */ ++ 0x26, 0xFF, 0x00, /* Logical Maximum (255) */ ++ 0x75, 0x08, /* Report Size (8) */ ++ 0x95, 0x40, /* Report Count (64), HID_OUTPUT_REPORT_BYTES */ ++ 0x91, 0x02, /* Output (Data, Var, Abs), Usage */ ++ 0xC0 /* End Collection */ ++}; ++ ++} // namespace ++ ++struct HidServiceFido::ConnectParams { ++ ConnectParams(scoped_refptr<HidDeviceInfo> device_info, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback callback) ++ : device_info(std::move(device_info)), ++ allow_protected_reports(allow_protected_reports), ++ allow_fido_reports(allow_fido_reports), ++ callback(std::move(callback)), ++ task_runner(base::SequencedTaskRunner::GetCurrentDefault()), ++ blocking_task_runner( ++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {} ++ ~ConnectParams() {} ++ ++ scoped_refptr<HidDeviceInfo> device_info; ++ bool allow_protected_reports; ++ bool allow_fido_reports; ++ ConnectCallback callback; ++ scoped_refptr<base::SequencedTaskRunner> task_runner; ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner; ++ base::ScopedFD fd; ++}; ++ ++class HidServiceFido::BlockingTaskRunnerHelper : public UdevWatcher::Observer { ++ public: ++ BlockingTaskRunnerHelper(base::WeakPtr<HidServiceFido> service) ++ : service_(std::move(service)), ++ task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ } ++ ++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete; ++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete; ++ ++ ~BlockingTaskRunnerHelper() override { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ } ++ ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ void *library = dlopen("libudev.so", RTLD_NOW | RTLD_LOCAL); ++ if (library) { ++ dlclose(library); ++ watcher_ = UdevWatcher::StartWatching(this); ++ watcher_->EnumerateExistingDevices(); ++ } else { ++ HID_LOG(ERROR) << "No udev available, failling back to single enumeration"; ++ WalkFidoDevices(nullptr); ++ } ++ ++ task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&HidServiceFido::FirstEnumerationComplete, service_)); ++ } ++ ++ private: ++ void WalkFidoDevices(const char *name) { ++ fido_dev_info_t *devlist = NULL; ++ fido_dev_t *dev = NULL; ++ size_t devlist_len = 0, i; ++ const char *path; ++ int r; ++ const int MAX_FIDO_DEVICES = 256; ++ ++ if ((devlist = fido_dev_info_new(MAX_FIDO_DEVICES)) == NULL) { ++ HID_LOG(ERROR) << "fido_dev_info_new failed"; ++ goto out; ++ } ++ if ((r = fido_dev_info_manifest(devlist, MAX_FIDO_DEVICES, &devlist_len)) != ++ FIDO_OK) { ++ HID_LOG(ERROR) << "fido_dev_info_manifest: " << fido_strerr(r); ++ goto out; ++ } ++ ++ HID_LOG(EVENT) << "fido_dev_info_manifest found " << devlist_len ++ << " device(s)"; ++ ++ for (i = 0; i < devlist_len; i++) { ++ const fido_dev_info_t *di = fido_dev_info_ptr(devlist, i); ++ ++ if (di == NULL) { ++ HID_LOG(ERROR) << "fido_dev_info_ptr " << i << " failed"; ++ continue; ++ } ++ ++ if ((path = fido_dev_info_path(di)) == NULL) { ++ HID_LOG(ERROR) << "fido_dev_info_path " << i << " failed"; ++ continue; ++ } ++ ++ if (name != nullptr && !strcmp(path, name)) { ++ HID_LOG(EVENT) << "hotplug device " << i << ": " << path; ++ OnFidoDeviceAdded(di); ++ break; ++ } ++ ++ HID_LOG(EVENT) << "trying device " << i << ": " << path; ++ if ((dev = fido_dev_new()) == NULL) { ++ HID_LOG(ERROR) << "fido_dev_new failed"; ++ continue; ++ } ++ ++ if ((r = fido_dev_open(dev, path)) != FIDO_OK) { ++ HID_LOG(ERROR) << "fido_dev_open failed " << path; ++ fido_dev_free(&dev); ++ continue; ++ } ++ ++ fido_dev_close(dev); ++ fido_dev_free(&dev); ++ ++ OnFidoDeviceAdded(di); ++ } ++ out: ++ if (devlist != NULL) ++ fido_dev_info_free(&devlist, MAX_FIDO_DEVICES); ++ } ++ ++ void OnFidoDeviceAdded(const fido_dev_info_t *di) { ++ auto null_as_empty = [](const char *r) -> std::string { ++ return (r != nullptr) ? r : ""; ++ }; ++ std::string device_node(null_as_empty(fido_dev_info_path(di))); ++ std::vector<uint8_t> report_descriptor( ++ kU2fReportDesc, kU2fReportDesc + sizeof(kU2fReportDesc)); ++ ++ auto device_info = base::MakeRefCounted<HidDeviceInfo>( ++ device_node, /*physical_device_id*/"", fido_dev_info_vendor(di), ++ fido_dev_info_product(di), null_as_empty(fido_dev_info_product_string(di)), ++ null_as_empty(fido_dev_info_manufacturer_string(di)), ++ device::mojom::HidBusType::kHIDBusTypeUSB, report_descriptor, ++ device_node); ++ ++ task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&HidServiceFido::AddDevice, service_, device_info)); ++ } ++ ++ // UdevWatcher::Observer ++ void OnDeviceAdded(ScopedUdevDevicePtr device) override { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ ++ const char* subsystem = udev_device_get_subsystem(device.get()); ++ if (!subsystem || strcmp(subsystem, "fido") != 0) ++ return; ++ ++ const char* device_path = udev_device_get_syspath(device.get()); ++ if (!device_path) ++ return; ++ ++ WalkFidoDevices(device_path); ++ } ++ ++ void OnDeviceRemoved(ScopedUdevDevicePtr device) override { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ ++ const char* device_path = udev_device_get_syspath(device.get()); ++ if (device_path) { ++ task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&HidServiceFido::RemoveDevice, service_, ++ std::string(device_path))); ++ } ++ } ++ ++ void OnDeviceChanged(ScopedUdevDevicePtr) override {} ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ std::unique_ptr<UdevWatcher> watcher_; ++ ++ // This weak pointer is only valid when checked on this task runner. ++ base::WeakPtr<HidServiceFido> service_; ++ scoped_refptr<base::SequencedTaskRunner> task_runner_; ++}; ++ ++HidServiceFido::HidServiceFido() ++ : blocking_task_runner_( ++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)), ++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) { ++ // We need to properly initialize |blocking_task_helper_| here because we need ++ // |weak_factory_| to be created first. ++ helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr())); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start, ++ base::Unretained(helper_.get()))); ++} ++ ++HidServiceFido::~HidServiceFido() = default; ++ ++base::WeakPtr<HidService> HidServiceFido::GetWeakPtr() { ++ return weak_factory_.GetWeakPtr(); ++} ++ ++void HidServiceFido::Connect(const std::string& device_guid, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ const auto& map_entry = devices().find(device_guid); ++ if (map_entry == devices().end()) { ++ base::SequencedTaskRunner::GetCurrentDefault()->PostTask( ++ FROM_HERE, base::BindOnce(std::move(callback), nullptr)); ++ return; ++ } ++ scoped_refptr<HidDeviceInfo> device_info = map_entry->second; ++ ++ auto params = ++ std::make_unique<ConnectParams>(device_info, allow_protected_reports, ++ allow_fido_reports, std::move(callback)); ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = ++ params->blocking_task_runner; ++ blocking_task_runner->PostTask( ++ FROM_HERE, base::BindOnce(&HidServiceFido::OpenOnBlockingThread, ++ std::move(params))); ++} ++ ++// static ++void HidServiceFido::OpenOnBlockingThread( ++ std::unique_ptr<ConnectParams> params) { ++ base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, ++ base::BlockingType::MAY_BLOCK); ++ scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner; ++ ++ base::FilePath device_path(params->device_info->device_node()); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) { ++ base::File::Error file_error = device_file.error_details(); ++ ++ if (file_error == base::File::FILE_ERROR_ACCESS_DENIED) { ++ HID_LOG(EVENT) ++ << "Access denied opening device read-write, trying read-only."; ++ flags = base::File::FLAG_OPEN | base::File::FLAG_READ; ++ device_file.Initialize(device_path, flags); ++ } ++ } ++ if (!device_file.IsValid()) { ++ HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node() ++ << "': " ++ << base::File::ErrorToString(device_file.error_details()); ++ task_runner->PostTask(FROM_HERE, ++ base::BindOnce(std::move(params->callback), nullptr)); ++ return; ++ } ++ if (!terrible_ping_kludge(device_file.GetPlatformFile(), params->device_info->device_node())) { ++ HID_LOG(EVENT) << "Failed to ping " << params->device_info->device_node(); ++ task_runner->PostTask(FROM_HERE, base::BindOnce(std::move(params->callback), nullptr)); ++ return; ++ } ++ params->fd.reset(device_file.TakePlatformFile()); ++ ++ task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceFido::FinishOpen, ++ std::move(params))); ++} ++ ++// static ++void HidServiceFido::FinishOpen(std::unique_ptr<ConnectParams> params) { ++ DCHECK(params->fd.is_valid()); ++ ++ if (!base::SetNonBlocking(params->fd.get())) { ++ HID_PLOG(DEBUG) << "Failed to set the non-blocking flag on the device fd"; ++ std::move(params->callback).Run(nullptr); ++ return; ++ } ++ ++ std::move(params->callback) ++ .Run(base::MakeRefCounted<HidConnectionFido>( ++ std::move(params->device_info), std::move(params->fd), ++ std::move(params->blocking_task_runner), ++ params->allow_protected_reports, params->allow_fido_reports)); ++} ++ ++} // namespace device diff --git a/devel/electron36/files/patch-services_device_hid_hid__service__fido.h b/devel/electron36/files/patch-services_device_hid_hid__service__fido.h new file mode 100644 index 000000000000..c5af55c5d3c5 --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__service__fido.h @@ -0,0 +1,68 @@ +--- services/device/hid/hid_service_fido.h.orig 2022-10-28 16:39:00 UTC ++++ services/device/hid/hid_service_fido.h +@@ -0,0 +1,65 @@ ++// Copyright 2014 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#ifndef SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_ ++#define SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_ ++ ++#include <memory> ++ ++#include "base/compiler_specific.h" ++#include "base/files/scoped_file.h" ++#include "base/memory/weak_ptr.h" ++#include "base/task/sequenced_task_runner.h" ++#include "build/build_config.h" ++#include "build/chromeos_buildflags.h" ++#include "services/device/hid/hid_device_info.h" ++#include "services/device/hid/hid_service.h" ++ ++namespace device { ++ ++class HidServiceFido : public HidService { ++ public: ++ HidServiceFido(); ++ HidServiceFido(HidServiceFido&) = delete; ++ HidServiceFido& operator=(HidServiceFido&) = delete; ++ ~HidServiceFido() override; ++ ++ // HidService: ++ void Connect(const std::string& device_id, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback callback) override; ++ base::WeakPtr<HidService> GetWeakPtr() override; ++ ++ private: ++ struct ConnectParams; ++ class BlockingTaskRunnerHelper; ++ ++// These functions implement the process of locating, requesting access to and ++// opening a device. Because this operation crosses multiple threads these ++// functions are static and the necessary parameters are passed as a single ++// struct. ++#if BUILDFLAG(IS_CHROMEOS_ASH) ++ static void OnPathOpenComplete(std::unique_ptr<ConnectParams> params, ++ base::ScopedFD fd); ++ static void OnPathOpenError(const std::string& device_path, ++ ConnectCallback callback, ++ const std::string& error_name, ++ const std::string& error_message); ++#else ++ static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params); ++#endif ++ static void FinishOpen(std::unique_ptr<ConnectParams> params); ++ ++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; ++ ++ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds ++ // a weak reference back to the service that owns it. ++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_; ++ base::WeakPtrFactory<HidServiceFido> weak_factory_{this}; ++}; ++ ++} // namespace device ++ ++#endif // SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_ diff --git a/devel/electron36/files/patch-services_device_hid_hid__service__freebsd.cc b/devel/electron36/files/patch-services_device_hid_hid__service__freebsd.cc new file mode 100644 index 000000000000..cf068ad59a5f --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__service__freebsd.cc @@ -0,0 +1,398 @@ +--- services/device/hid/hid_service_freebsd.cc.orig 2025-02-02 01:39:47 UTC ++++ services/device/hid/hid_service_freebsd.cc +@@ -0,0 +1,395 @@ ++// Copyright 2014 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. ++ ++#include "services/device/hid/hid_service_freebsd.h" ++ ++#include <dev/usb/usb_ioctl.h> ++#include <stdint.h> ++#include <sys/socket.h> ++#include <sys/un.h> ++ ++#include <set> ++#include <string> ++#include <vector> ++ ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/files/file_enumerator.h" ++#include "base/files/file_util.h" ++#include "base/files/file.h" ++#include "base/location.h" ++#include "base/logging.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/stl_util.h" ++#include "base/strings/pattern.h" ++#include "base/strings/stringprintf.h" ++#include "base/strings/sys_string_conversions.h" ++#include "base/strings/string_util.h" ++#include "base/strings/string_split.h" ++#include "base/task/single_thread_task_runner.h" ++#include "base/task/thread_pool.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "base/threading/thread_restrictions.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_connection_freebsd.h" ++ ++const int kMaxPermissionChecks = 5; ++ ++namespace device { ++ ++struct HidServiceFreeBSD::ConnectParams { ++ ConnectParams(scoped_refptr<HidDeviceInfo> device_info, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback callback) ++ : device_info(std::move(device_info)), ++ allow_protected_reports(allow_protected_reports), ++ allow_fido_reports(allow_fido_reports), ++ callback(std::move(callback)), ++ task_runner(base::SequencedTaskRunner::GetCurrentDefault()), ++ blocking_task_runner( ++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {} ++ ~ConnectParams() {} ++ ++ scoped_refptr<HidDeviceInfo> device_info; ++ bool allow_protected_reports; ++ bool allow_fido_reports; ++ ConnectCallback callback; ++ scoped_refptr<base::SequencedTaskRunner> task_runner; ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner; ++ base::ScopedFD fd; ++}; ++ ++class HidServiceFreeBSD::BlockingTaskRunnerHelper { ++ public: ++ BlockingTaskRunnerHelper(base::WeakPtr<HidServiceFreeBSD> service) ++ : service_(std::move(service)), ++ task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ ++ timer_.reset(new base::RepeatingTimer()); ++ devd_buffer_ = new net::IOBufferWithSize(1024); ++ } ++ ++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete; ++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete; ++ ++ ~BlockingTaskRunnerHelper() { ++ } ++ ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ const base::FilePath kDevRoot("/dev"); ++ const std::string kUHIDPattern("/dev/uhid*"); ++ ++ base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES); ++ do { ++ const base::FilePath next_device_path(enumerator.Next()); ++ const std::string next_device = next_device_path.value(); ++ if (next_device.empty()) ++ break; ++ ++ if (base::MatchPattern(next_device, kUHIDPattern)) ++ OnDeviceAdded(next_device.substr(5)); ++ } while (true); ++ ++ SetupDevdMonitor(); ++ ++ task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&HidServiceFreeBSD::FirstEnumerationComplete, service_)); ++ } ++ ++ bool HaveReadWritePermissions(std::string device_id) { ++ std::string device_node = "/dev/" + device_id; ++ base::AssertBlockingAllowed(); ++ ++ base::FilePath device_path(device_node); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) ++ return false; ++ ++ return true; ++ } ++ ++ void OnDeviceAdded(std::string device_id) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ std::string device_node = "/dev/" + device_id; ++ uint16_t vendor_id = 0xffff; ++ uint16_t product_id = 0xffff; ++ std::string product_name = ""; ++ std::string serial_number = ""; ++ ++ std::vector<uint8_t> report_descriptor; ++ ++ base::AssertBlockingAllowed(); ++ ++ base::FilePath device_path(device_node); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) { ++ HID_LOG(ERROR) << "Failed to open '" << device_node ++ << "': " ++ << base::File::ErrorToString(device_file.error_details()); ++ return; ++ } ++ ++ base::ScopedFD fd; ++ fd.reset(device_file.TakePlatformFile()); ++ ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_data = NULL; ++ ugd.ugd_maxlen = 0xffff; ++ int result = HANDLE_EINTR( ++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); ++ ++ if (result < 0) { ++ HID_LOG(ERROR) << "Failed to get report descriptor size"; ++ return; ++ } ++ ++ report_descriptor.resize(ugd.ugd_actlen); ++ ++ ugd.ugd_data = report_descriptor.data(); ++ ugd.ugd_maxlen = ugd.ugd_actlen; ++ result = HANDLE_EINTR( ++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); ++ ++ if (result < 0) { ++ HID_LOG(ERROR) << "Failed to get report descriptor"; ++ return; ++ } ++ ++ scoped_refptr<HidDeviceInfo> device_info(new HidDeviceInfo( ++ device_id, ++ /*physical_device_id*/"", ++ vendor_id, ++ product_id, ++ product_name, ++ serial_number, ++ device::mojom::HidBusType::kHIDBusTypeUSB, ++ report_descriptor, ++ device_node)); ++ ++ task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceFreeBSD::AddDevice, ++ service_, device_info)); ++ } ++ ++ void OnDeviceRemoved(std::string device_id) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&HidServiceFreeBSD::RemoveDevice, service_, ++ device_id)); ++ } ++ ++ private: ++ ++ void CheckPendingPermissionChange() { ++ base::AssertBlockingAllowed(); ++ std::map<std::string, int>::iterator it; ++ for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) { ++ std::string device_name = it->first; ++ bool keep = true; ++ if (HaveReadWritePermissions(device_name)) { ++ OnDeviceAdded(device_name); ++ keep = false; ++ } ++ else if (it->second-- <= 0) { ++ HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name ++ << "' after " << kMaxPermissionChecks << " attempts"; ++ keep = false; ++ } ++ ++ if (keep) ++ ++it; ++ else ++ permissions_checks_attempts_.erase(it++); ++ } ++ ++ if (permissions_checks_attempts_.empty()) ++ timer_->Stop(); ++ } ++ ++ void SetupDevdMonitor() { ++ base::AssertBlockingAllowed(); ++ ++ int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0); ++ if (devd_fd < 0) ++ return; ++ ++ struct sockaddr_un sa; ++ ++ sa.sun_family = AF_UNIX; ++ strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path)); ++ if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) { ++ close(devd_fd); ++ return; ++ } ++ ++ devd_fd_.reset(devd_fd); ++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( ++ devd_fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnDevdMessageCanBeRead, ++ base::Unretained(this))); ++ } ++ ++ void OnDevdMessageCanBeRead() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(), ++ devd_buffer_->size() - 1, MSG_WAITALL)); ++ if (bytes_read < 0) { ++ if (errno != EAGAIN) { ++ HID_LOG(ERROR) << "Read failed"; ++ file_watcher_.reset(); ++ } ++ return; ++ } ++ ++ devd_buffer_->data()[bytes_read] = 0; ++ char *data = devd_buffer_->data(); ++ // It may take some time for devd to change permissions ++ // on /dev/uhidX node. So do not fail immediately if ++ // open fail. Retry each second for kMaxPermissionChecks ++ // times before giving up entirely ++ if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) { ++ std::vector<std::string> parts = base::SplitString( ++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); ++ if (!parts.empty()) { ++ std::string device_name = parts[0].substr(1); // skip '+' ++ if (HaveReadWritePermissions(device_name)) ++ OnDeviceAdded(parts[0].substr(1)); ++ else { ++ // Do not re-add to checks ++ if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) { ++ permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks)); ++ timer_->Start(FROM_HERE, base::Seconds(1), ++ this, &BlockingTaskRunnerHelper::CheckPendingPermissionChange); ++ } ++ } ++ } ++ } ++ ++ if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) { ++ std::vector<std::string> parts = base::SplitString( ++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); ++ if (!parts.empty()) { ++ std::string device_name = parts[0].substr(1); // skip '-' ++ auto it = permissions_checks_attempts_.find(device_name); ++ if (it != permissions_checks_attempts_.end()) { ++ permissions_checks_attempts_.erase(it); ++ if (permissions_checks_attempts_.empty()) ++ timer_->Stop(); ++ } ++ OnDeviceRemoved(parts[0].substr(1)); ++ } ++ } ++ } ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ ++ // This weak pointer is only valid when checked on this task runner. ++ base::WeakPtr<HidServiceFreeBSD> service_; ++ scoped_refptr<base::SequencedTaskRunner> task_runner_; ++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_; ++ std::unique_ptr<base::RepeatingTimer> timer_; ++ base::ScopedFD devd_fd_; ++ scoped_refptr<net::IOBufferWithSize> devd_buffer_; ++ std::map<std::string, int> permissions_checks_attempts_; ++}; ++ ++HidServiceFreeBSD::HidServiceFreeBSD() ++ : blocking_task_runner_( ++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)), ++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) { ++ helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr())); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskRunnerHelper::Start, base::Unretained(helper_.get()))); ++} ++ ++HidServiceFreeBSD::~HidServiceFreeBSD() { ++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); ++} ++ ++base::WeakPtr<HidService> HidServiceFreeBSD::GetWeakPtr() { ++ return weak_factory_.GetWeakPtr(); ++} ++ ++// static ++void HidServiceFreeBSD::OpenOnBlockingThread( ++ std::unique_ptr<ConnectParams> params) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner; ++ ++ base::FilePath device_path(params->device_info->device_node()); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) { ++ HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node() ++ << "': " ++ << base::File::ErrorToString(device_file.error_details()); ++ task_runner->PostTask(FROM_HERE, ++ base::BindOnce(std::move(params->callback), nullptr)); ++ return; ++ } ++ params->fd.reset(device_file.TakePlatformFile()); ++ task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceFreeBSD::FinishOpen, ++ std::move(params))); ++} ++ ++void HidServiceFreeBSD::Connect(const std::string& device_guid, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ const auto& map_entry = devices().find(device_guid); ++ if (map_entry == devices().end()) { ++ base::SequencedTaskRunner::GetCurrentDefault()->PostTask( ++ FROM_HERE, base::BindOnce(std::move(callback), nullptr)); ++ return; ++ } ++ ++ scoped_refptr<HidDeviceInfo> device_info = map_entry->second; ++ ++ auto params = std::make_unique<ConnectParams>(device_info, ++ allow_protected_reports, ++ allow_fido_reports, ++ std::move(callback)); ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = ++ params->blocking_task_runner; ++ ++ blocking_task_runner->PostTask( ++ FROM_HERE, base::BindOnce(&HidServiceFreeBSD::OpenOnBlockingThread, ++ std::move(params))); ++} ++ ++// static ++void HidServiceFreeBSD::FinishOpen(std::unique_ptr<ConnectParams> params) { ++ DCHECK(params->fd.is_valid()); ++ ++ if (!base::SetNonBlocking(params->fd.get())) { ++ HID_PLOG(ERROR) << "Failed to set the non-blocking flag on the device fd"; ++ std::move(params->callback).Run(nullptr); ++ } ++ ++ std::move(params->callback).Run(base::MakeRefCounted<HidConnectionFreeBSD>( ++ std::move(params->device_info), ++ std::move(params->fd), ++ std::move(params->blocking_task_runner), ++ params->allow_protected_reports, ++ params->allow_fido_reports ++ )); ++} ++ ++} // namespace device diff --git a/devel/electron36/files/patch-services_device_hid_hid__service__freebsd.h b/devel/electron36/files/patch-services_device_hid_hid__service__freebsd.h new file mode 100644 index 000000000000..b60d2fc84553 --- /dev/null +++ b/devel/electron36/files/patch-services_device_hid_hid__service__freebsd.h @@ -0,0 +1,52 @@ +--- services/device/hid/hid_service_freebsd.h.orig 2022-02-07 13:39:41 UTC ++++ services/device/hid/hid_service_freebsd.h +@@ -0,0 +1,49 @@ ++// Copyright 2014 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. ++ ++#ifndef DEVICE_HID_HID_SERVICE_FREEBSD_H_ ++#define DEVICE_HID_HID_SERVICE_FREEBSD_H_ ++ ++#include <string> ++ ++#include "base/memory/ref_counted.h" ++#include "base/memory/weak_ptr.h" ++#include "base/timer/timer.h" ++#include "services/device/hid/hid_service.h" ++#include "net/base/io_buffer.h" ++ ++namespace device { ++ ++class HidServiceFreeBSD : public HidService { ++ public: ++ HidServiceFreeBSD(); ++ ++ HidServiceFreeBSD(const HidServiceFreeBSD&) = delete; ++ HidServiceFreeBSD& operator=(const HidServiceFreeBSD&) = delete; ++ ++ ~HidServiceFreeBSD() override; ++ ++ void Connect(const std::string& device_guid, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback connect) override; ++ base::WeakPtr<HidService> GetWeakPtr() override; ++ ++ private: ++ struct ConnectParams; ++ class BlockingTaskRunnerHelper; ++ ++ static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params); ++ static void FinishOpen(std::unique_ptr<ConnectParams> params); ++ ++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; ++ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds ++ // a weak reference back to the service that owns it. ++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_; ++ base::WeakPtrFactory<HidServiceFreeBSD> weak_factory_{this}; ++}; ++ ++} // namespace device ++ ++#endif // DEVICE_HID_HID_SERVICE_FREEBSD_H_ diff --git a/devel/electron36/files/patch-services_device_public_cpp_device__features.cc b/devel/electron36/files/patch-services_device_public_cpp_device__features.cc new file mode 100644 index 000000000000..75dcb1de34a1 --- /dev/null +++ b/devel/electron36/files/patch-services_device_public_cpp_device__features.cc @@ -0,0 +1,11 @@ +--- services/device/public/cpp/device_features.cc.orig 2025-04-22 20:15:27 UTC ++++ services/device/public/cpp/device_features.cc +@@ -135,7 +135,7 @@ bool IsOsLevelGeolocationPermissionSupportEnabled() { + + // Controls whether Chrome will try to automatically detach kernel drivers when + // a USB interface is busy. +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BASE_FEATURE(kAutomaticUsbDetach, + "AutomaticUsbDetach", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-services_device_public_cpp_device__features.h b/devel/electron36/files/patch-services_device_public_cpp_device__features.h new file mode 100644 index 000000000000..e2e71f23799b --- /dev/null +++ b/devel/electron36/files/patch-services_device_public_cpp_device__features.h @@ -0,0 +1,11 @@ +--- services/device/public/cpp/device_features.h.orig 2025-04-22 20:15:27 UTC ++++ services/device/public/cpp/device_features.h +@@ -53,7 +53,7 @@ DEVICE_FEATURES_EXPORT bool IsOsLevelGeolocationPermis + + DEVICE_FEATURES_EXPORT bool IsOsLevelGeolocationPermissionSupportEnabled(); + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + DEVICE_FEATURES_EXPORT BASE_DECLARE_FEATURE(kAutomaticUsbDetach); + #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) + diff --git a/devel/electron36/files/patch-services_device_public_cpp_generic__sensor_sensor__reading.h b/devel/electron36/files/patch-services_device_public_cpp_generic__sensor_sensor__reading.h new file mode 100644 index 000000000000..9d6a5751b0d3 --- /dev/null +++ b/devel/electron36/files/patch-services_device_public_cpp_generic__sensor_sensor__reading.h @@ -0,0 +1,11 @@ +--- services/device/public/cpp/generic_sensor/sensor_reading.h.orig 2023-11-29 21:40:08 UTC ++++ 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/devel/electron36/files/patch-services_device_public_mojom_BUILD.gn b/devel/electron36/files/patch-services_device_public_mojom_BUILD.gn new file mode 100644 index 000000000000..d72a0d90c1bd --- /dev/null +++ b/devel/electron36/files/patch-services_device_public_mojom_BUILD.gn @@ -0,0 +1,11 @@ +--- services/device/public/mojom/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ services/device/public/mojom/BUILD.gn +@@ -96,7 +96,7 @@ mojom("device_service") { + enable_js_fuzzing = false + + enabled_features = [] +- if ((is_linux || is_chromeos) && use_udev) { ++ if ((is_linux || is_chromeos) && !is_bsd && use_udev) { + enabled_features += [ "enable_input_device_manager" ] + } + diff --git a/devel/electron36/files/patch-services_device_serial_BUILD.gn b/devel/electron36/files/patch-services_device_serial_BUILD.gn new file mode 100644 index 000000000000..92b5438d2039 --- /dev/null +++ b/devel/electron36/files/patch-services_device_serial_BUILD.gn @@ -0,0 +1,11 @@ +--- services/device/serial/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ services/device/serial/BUILD.gn +@@ -4,7 +4,7 @@ import("//build/config/features.gni") + + import("//build/config/features.gni") + +-if (is_win || ((is_linux || is_chromeos) && use_udev) || is_mac || is_android) { ++if (is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android) { + config("platform_support") { + visibility = [ ":serial" ] + if (is_win) { diff --git a/devel/electron36/files/patch-services_device_serial_serial__device__enumerator.cc b/devel/electron36/files/patch-services_device_serial_serial__device__enumerator.cc new file mode 100644 index 000000000000..c4d4be8e7aac --- /dev/null +++ b/devel/electron36/files/patch-services_device_serial_serial__device__enumerator.cc @@ -0,0 +1,20 @@ +--- services/device/serial/serial_device_enumerator.cc.orig 2025-04-22 20:15:27 UTC ++++ services/device/serial/serial_device_enumerator.cc +@@ -13,7 +13,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" +@@ -28,7 +28,7 @@ std::unique_ptr<SerialDeviceEnumerator> SerialDeviceEn + // 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/devel/electron36/files/patch-services_device_serial_serial__io__handler__posix.cc b/devel/electron36/files/patch-services_device_serial_serial__io__handler__posix.cc new file mode 100644 index 000000000000..a9094eebc75c --- /dev/null +++ b/devel/electron36/files/patch-services_device_serial_serial__io__handler__posix.cc @@ -0,0 +1,11 @@ +--- services/device/serial/serial_io_handler_posix.cc.orig 2024-08-14 20:55:10 UTC ++++ services/device/serial/serial_io_handler_posix.cc +@@ -73,7 +73,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/devel/electron36/files/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc b/devel/electron36/files/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc new file mode 100644 index 000000000000..bb7a6dda41b9 --- /dev/null +++ b/devel/electron36/files/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc @@ -0,0 +1,15 @@ +--- services/device/time_zone_monitor/time_zone_monitor_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ services/device/time_zone_monitor/time_zone_monitor_linux.cc +@@ -131,9 +131,12 @@ class TimeZoneMonitorLinuxImpl + // false positives are harmless, assuming the false positive rate is + // reasonable. + const auto kFilesToWatch = std::to_array<const char*>({ ++#if BUILDFLAG(IS_BSD) + "/etc/localtime", ++#else + "/etc/timezone", + "/etc/TZ", ++#endif + }); + for (size_t index = 0; index < std::size(kFilesToWatch); ++index) { + file_path_watchers_.push_back(std::make_unique<base::FilePathWatcher>()); diff --git a/devel/electron36/files/patch-services_device_usb_BUILD.gn b/devel/electron36/files/patch-services_device_usb_BUILD.gn new file mode 100644 index 000000000000..8b87b5d4d955 --- /dev/null +++ b/devel/electron36/files/patch-services_device_usb_BUILD.gn @@ -0,0 +1,34 @@ +--- services/device/usb/BUILD.gn.orig 2025-03-24 20:50:14 UTC ++++ services/device/usb/BUILD.gn +@@ -90,7 +90,7 @@ static_library("usb") { + deps += [ "//third_party/re2" ] + } + +- if (is_mac) { ++ if (is_mac || is_openbsd) { + # These sources and deps are required for libusb. + # TODO(crbug.com/40136337) Remove these sources. + sources += [ +@@ -113,6 +113,13 @@ static_library("usb") { + deps += [ "//third_party/libusb" ] + } + ++ if (is_freebsd) { ++ sources += [ ++ "usb_service_fake.cc", ++ "usb_service_fake.h", ++ ] ++ } ++ + if (is_linux || is_chromeos) { + sources += [ + "usb_device_linux.cc", +@@ -134,7 +141,7 @@ static_library("usb") { + deps += [ "//device/udev_linux" ] + } + +- if (is_android || is_chromeos || is_linux) { ++ if (is_android || is_chromeos || is_linux && !is_bsd) { + sources += [ + "usb_device_handle_usbfs.cc", + "usb_device_handle_usbfs.h", diff --git a/devel/electron36/files/patch-services_device_usb_usb__device__handle__usbfs.cc b/devel/electron36/files/patch-services_device_usb_usb__device__handle__usbfs.cc new file mode 100644 index 000000000000..b9399ede14b9 --- /dev/null +++ b/devel/electron36/files/patch-services_device_usb_usb__device__handle__usbfs.cc @@ -0,0 +1,38 @@ +--- services/device/usb/usb_device_handle_usbfs.cc.orig 2025-04-22 20:15:27 UTC ++++ services/device/usb/usb_device_handle_usbfs.cc +@@ -39,7 +39,7 @@ + #include "chromeos/dbus/permission_broker/permission_broker_client.h" + #endif + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "services/device/public/cpp/device_features.h" + #include "services/device/usb/usb_interface_detach_allowlist.h" + #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) +@@ -271,7 +271,7 @@ bool UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper::R + return true; + } + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper::DetachInterface( + int interface_number, + const CombinedInterfaceInfo& interface_info) { +@@ -599,7 +599,7 @@ void UsbDeviceHandleUsbfs::ClaimInterface(int interfac + return; + } + #endif +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(features::kAutomaticUsbDetach)) { + const mojom::UsbConfigurationInfo* config = + device_->GetActiveConfiguration(); +@@ -945,7 +945,7 @@ void UsbDeviceHandleUsbfs::ReleaseInterfaceComplete(in + return; + } + #endif +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(features::kAutomaticUsbDetach)) { + helper_.AsyncCall(&BlockingTaskRunnerHelper::ReattachInterface) + .WithArgs(interface_number) diff --git a/devel/electron36/files/patch-services_device_usb_usb__device__handle__usbfs.h b/devel/electron36/files/patch-services_device_usb_usb__device__handle__usbfs.h new file mode 100644 index 000000000000..37559347ad4d --- /dev/null +++ b/devel/electron36/files/patch-services_device_usb_usb__device__handle__usbfs.h @@ -0,0 +1,38 @@ +--- services/device/usb/usb_device_handle_usbfs.h.orig 2025-04-22 20:15:27 UTC ++++ services/device/usb/usb_device_handle_usbfs.h +@@ -19,7 +19,7 @@ + #include "base/threading/sequence_bound.h" + #include "services/device/usb/usb_device_handle.h" + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/containers/flat_set.h" + #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) + +@@ -215,7 +215,7 @@ class UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper { + bool ClearHalt(uint8_t endpoint_address); + void DiscardUrb(Transfer* transfer); + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Detach the interface from a kernel driver before ClaimInterface + virtual bool DetachInterface(int interface_number, + const CombinedInterfaceInfo& interfaceInfo); +@@ -228,7 +228,7 @@ class UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper { + // Called when |fd_| is writable without blocking. + void OnFileCanWriteWithoutBlocking(); + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Called from |DetachInterface|. + std::string GetKernelDriver(int interface_number) const; + #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) +@@ -240,7 +240,7 @@ class UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper { + std::unique_ptr<base::FileDescriptorWatcher::Controller> watch_controller_; + SEQUENCE_CHECKER(sequence_checker_); + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // All interfaces that have been detached from kernel drivers + base::flat_set<int> detached_interfaces_; + #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-services_device_usb_usb__service.cc b/devel/electron36/files/patch-services_device_usb_usb__service.cc new file mode 100644 index 000000000000..72460a029788 --- /dev/null +++ b/devel/electron36/files/patch-services_device_usb_usb__service.cc @@ -0,0 +1,35 @@ +--- services/device/usb/usb_service.cc.orig 2024-08-14 20:55:10 UTC ++++ services/device/usb/usb_service.cc +@@ -21,12 +21,16 @@ + + #if BUILDFLAG(IS_ANDROID) + #include "services/device/usb/usb_service_android.h" +-#elif defined(USE_UDEV) ++#elif defined(USE_UDEV) && !BUILDFLAG(IS_BSD) + #include "services/device/usb/usb_service_linux.h" + #elif BUILDFLAG(IS_MAC) + #include "services/device/usb/usb_service_impl.h" + #elif BUILDFLAG(IS_WIN) + #include "services/device/usb/usb_service_win.h" ++#elif BUILDFLAG(IS_OPENBSD) ++#include "services/device/usb/usb_service_impl.h" ++#elif BUILDFLAG(IS_FREEBSD) ++#include "services/device/usb/usb_service_fake.h" + #endif + + namespace device { +@@ -49,11 +53,13 @@ std::unique_ptr<UsbService> UsbService::Create() { + std::unique_ptr<UsbService> UsbService::Create() { + #if BUILDFLAG(IS_ANDROID) + return base::WrapUnique(new UsbServiceAndroid()); +-#elif defined(USE_UDEV) ++#elif defined(USE_UDEV) && !BUILDFLAG(IS_BSD) + return base::WrapUnique(new UsbServiceLinux()); + #elif BUILDFLAG(IS_WIN) + return base::WrapUnique(new UsbServiceWin()); + #elif BUILDFLAG(IS_MAC) ++ return base::WrapUnique(new UsbServiceImpl()); ++#elif BUILDFLAG(IS_BSD) + return base::WrapUnique(new UsbServiceImpl()); + #else + return nullptr; diff --git a/devel/electron36/files/patch-services_device_usb_usb__service__fake.cc b/devel/electron36/files/patch-services_device_usb_usb__service__fake.cc new file mode 100644 index 000000000000..03bcf21b39ab --- /dev/null +++ b/devel/electron36/files/patch-services_device_usb_usb__service__fake.cc @@ -0,0 +1,52 @@ +--- services/device/usb/usb_service_fake.cc.orig 2023-04-10 14:02:12 UTC ++++ services/device/usb/usb_service_fake.cc +@@ -0,0 +1,49 @@ ++// Copyright 2014 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#include "services/device/usb/usb_service_fake.h" ++ ++#include <stdint.h> ++ ++#include <list> ++#include <memory> ++#include <set> ++#include <utility> ++ ++#include "base/barrier_closure.h" ++#include "base/containers/contains.h" ++#include "base/location.h" ++#include "base/memory/ref_counted_memory.h" ++#include "base/memory/weak_ptr.h" ++#include "base/strings/string_number_conversions.h" ++#include "base/strings/utf_string_conversions.h" ++#include "base/task/sequenced_task_runner.h" ++#include "base/task/single_thread_task_runner.h" ++#include "base/task/thread_pool.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "build/build_config.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/usb/usb_device_handle.h" ++#include "services/device/usb/usb_error.h" ++#include "services/device/usb/webusb_descriptors.h" ++ ++namespace device { ++ ++UsbServiceImpl::UsbServiceImpl() ++ : task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) { ++ NOTIMPLEMENTED(); ++} ++ ++UsbServiceImpl::~UsbServiceImpl() { ++ NOTIMPLEMENTED(); ++ NotifyWillDestroyUsbService(); ++} ++ ++void UsbServiceImpl::GetDevices(GetDevicesCallback callback) { ++ NOTIMPLEMENTED(); ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ UsbService::GetDevices(std::move(callback)); ++} ++ ++} // namespace device diff --git a/devel/electron36/files/patch-services_device_usb_usb__service__fake.h b/devel/electron36/files/patch-services_device_usb_usb__service__fake.h new file mode 100644 index 000000000000..2e123db7f3be --- /dev/null +++ b/devel/electron36/files/patch-services_device_usb_usb__service__fake.h @@ -0,0 +1,51 @@ +--- services/device/usb/usb_service_fake.h.orig 2022-10-29 13:32:26 UTC ++++ services/device/usb/usb_service_fake.h +@@ -0,0 +1,48 @@ ++// Copyright 2015 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#ifndef SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_ ++#define SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_ ++ ++#include "services/device/usb/usb_service.h" ++ ++#include <stddef.h> ++ ++#include <map> ++#include <set> ++#include <string> ++#include <vector> ++ ++#include "base/containers/queue.h" ++#include "base/memory/weak_ptr.h" ++#include "build/build_config.h" ++#include "services/device/usb/usb_context.h" ++#include "services/device/usb/usb_device_impl.h" ++#include "third_party/abseil-cpp/absl/types/optional.h" ++ ++namespace device { ++ ++class UsbDeviceImpl; ++ ++class UsbServiceImpl final : public UsbService { ++ public: ++ UsbServiceImpl(); ++ ++ UsbServiceImpl(const UsbServiceImpl&) = delete; ++ UsbServiceImpl& operator=(const UsbServiceImpl&) = delete; ++ ++ ~UsbServiceImpl() override; ++ ++ private: ++ // device::UsbService implementation ++ void GetDevices(GetDevicesCallback callback) override; ++ ++ void OnUsbContext(scoped_refptr<UsbContext> context); ++ ++ scoped_refptr<base::SequencedTaskRunner> task_runner_; ++}; ++ ++} // namespace device ++ ++#endif // SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_ diff --git a/devel/electron36/files/patch-services_network_BUILD.gn b/devel/electron36/files/patch-services_network_BUILD.gn new file mode 100644 index 000000000000..eddb84909645 --- /dev/null +++ b/devel/electron36/files/patch-services_network_BUILD.gn @@ -0,0 +1,10 @@ +--- services/network/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ services/network/BUILD.gn +@@ -400,7 +400,6 @@ if (is_linux || is_chromeos) { + ] + deps = [ + "//base:base", +- "//sandbox/linux:sandbox_services", + "//sandbox/policy:policy", + ] + configs += [ "//build/config/compiler:wexit_time_destructors" ] diff --git a/devel/electron36/files/patch-services_network_network__context.cc b/devel/electron36/files/patch-services_network_network__context.cc new file mode 100644 index 000000000000..dbd94ccde384 --- /dev/null +++ b/devel/electron36/files/patch-services_network_network__context.cc @@ -0,0 +1,20 @@ +--- services/network/network_context.cc.orig 2025-05-11 11:50:45 UTC ++++ services/network/network_context.cc +@@ -705,7 +705,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_) { +@@ -2669,7 +2669,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/devel/electron36/files/patch-services_network_network__context.h b/devel/electron36/files/patch-services_network_network__context.h new file mode 100644 index 000000000000..c9f5642577dc --- /dev/null +++ b/devel/electron36/files/patch-services_network_network__context.h @@ -0,0 +1,11 @@ +--- services/network/network_context.h.orig 2025-05-11 11:50:45 UTC ++++ services/network/network_context.h +@@ -719,7 +719,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/devel/electron36/files/patch-services_network_network__sandbox__hook__linux.cc b/devel/electron36/files/patch-services_network_network__sandbox__hook__linux.cc new file mode 100644 index 000000000000..a6b1b1a87062 --- /dev/null +++ b/devel/electron36/files/patch-services_network_network__sandbox__hook__linux.cc @@ -0,0 +1,37 @@ +--- services/network/network_sandbox_hook_linux.cc.orig 2024-04-15 20:34:03 UTC ++++ services/network/network_sandbox_hook_linux.cc +@@ -15,11 +15,14 @@ + #include "sandbox/linux/syscall_broker/broker_file_permission.h" + #include "sandbox/policy/features.h" + ++#if !BUILDFLAG(IS_BSD) + using sandbox::syscall_broker::BrokerFilePermission; + using sandbox::syscall_broker::MakeBrokerCommandSet; ++#endif + + namespace network { + ++#if !BUILDFLAG(IS_BSD) + sandbox::syscall_broker::BrokerCommandSet GetNetworkBrokerCommandSet() { + return MakeBrokerCommandSet({ + sandbox::syscall_broker::COMMAND_ACCESS, +@@ -103,9 +106,11 @@ void LoadNetworkLibraries() { + } + } + #endif // BUILDFLAG(IS_CHROMEOS) ++#endif + + 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 +@@ -118,6 +123,7 @@ bool NetworkPreSandboxHook(std::vector<std::string> ne + GetNetworkBrokerCommandSet(), + GetNetworkFilePermissions(std::move(network_context_parent_dirs)), + options); ++#endif + + return true; + } diff --git a/devel/electron36/files/patch-services_network_network__sandbox__hook__linux.h b/devel/electron36/files/patch-services_network_network__sandbox__hook__linux.h new file mode 100644 index 000000000000..80fe3360382a --- /dev/null +++ b/devel/electron36/files/patch-services_network_network__sandbox__hook__linux.h @@ -0,0 +1,14 @@ +--- services/network/network_sandbox_hook_linux.h.orig 2023-05-25 00:42:01 UTC ++++ services/network/network_sandbox_hook_linux.h +@@ -6,7 +6,11 @@ + #define SERVICES_NETWORK_NETWORK_SANDBOX_HOOK_LINUX_H_ + + #include "base/component_export.h" ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace network { + diff --git a/devel/electron36/files/patch-services_network_network__service.cc b/devel/electron36/files/patch-services_network_network__service.cc new file mode 100644 index 000000000000..7489cc4938ef --- /dev/null +++ b/devel/electron36/files/patch-services_network_network__service.cc @@ -0,0 +1,34 @@ +--- services/network/network_service.cc.orig 2025-04-22 20:15:27 UTC ++++ services/network/network_service.cc +@@ -103,11 +103,11 @@ + #include "third_party/boringssl/src/include/openssl/cpu.h" + #endif + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CASTOS) + #include "components/os_crypt/sync/key_storage_config_linux.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "services/network/network_change_notifier_passive_factory.h" + #endif + +@@ -1016,7 +1016,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) { +@@ -1116,7 +1116,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/devel/electron36/files/patch-services_network_network__service.h b/devel/electron36/files/patch-services_network_network__service.h new file mode 100644 index 000000000000..4af6186f2487 --- /dev/null +++ b/devel/electron36/files/patch-services_network_network__service.h @@ -0,0 +1,29 @@ +--- services/network/network_service.h.orig 2025-04-22 20:15:27 UTC ++++ services/network/network_service.h +@@ -250,7 +250,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkService + const std::vector<ContentSettingPatternSource>& settings) 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; +@@ -291,7 +291,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) +@@ -547,7 +547,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/devel/electron36/files/patch-services_network_public_cpp_BUILD.gn b/devel/electron36/files/patch-services_network_public_cpp_BUILD.gn new file mode 100644 index 000000000000..a1ab4d8ce44a --- /dev/null +++ b/devel/electron36/files/patch-services_network_public_cpp_BUILD.gn @@ -0,0 +1,11 @@ +--- services/network/public/cpp/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ services/network/public/cpp/BUILD.gn +@@ -621,7 +621,7 @@ 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/devel/electron36/files/patch-services_network_public_cpp_features.cc b/devel/electron36/files/patch-services_network_public_cpp_features.cc new file mode 100644 index 000000000000..af9bcb4308a0 --- /dev/null +++ b/devel/electron36/files/patch-services_network_public_cpp_features.cc @@ -0,0 +1,11 @@ +--- services/network/public/cpp/features.cc.orig 2025-03-24 20:50:14 UTC ++++ services/network/public/cpp/features.cc +@@ -125,7 +125,7 @@ BASE_FEATURE(kDnsOverHttpsUpgrade, + BASE_FEATURE(kDnsOverHttpsUpgrade, + "DnsOverHttpsUpgrade", + #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_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron36/files/patch-services_network_public_mojom_BUILD.gn b/devel/electron36/files/patch-services_network_public_mojom_BUILD.gn new file mode 100644 index 000000000000..22dee68998b5 --- /dev/null +++ b/devel/electron36/files/patch-services_network_public_mojom_BUILD.gn @@ -0,0 +1,25 @@ +--- services/network/public/mojom/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ services/network/public/mojom/BUILD.gn +@@ -674,11 +674,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/40263697): Remove this once is_linux in the mojom IDL does + # not include lacros. + enabled_features += [ "use_network_interface_change_listener" ] +@@ -1765,7 +1765,7 @@ mojom("mojom") { + } + } + +- if (is_linux) { ++ if (is_linux && !is_bsd) { + # TODO(crbug.com/40263697): Remove this once is_linux in the mojom IDL does + # not include lacros. + enabled_features += [ "use_network_interface_change_listener" ] diff --git a/devel/electron36/files/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h b/devel/electron36/files/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h new file mode 100644 index 000000000000..dbdbd35867b7 --- /dev/null +++ b/devel/electron36/files/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h @@ -0,0 +1,11 @@ +--- services/network/shared_dictionary/shared_dictionary_writer_in_memory.h.orig 2023-08-10 01:48:48 UTC ++++ 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/devel/electron36/files/patch-services_on__device__model_on__device__model__service.h b/devel/electron36/files/patch-services_on__device__model_on__device__model__service.h new file mode 100644 index 000000000000..1ea35b780484 --- /dev/null +++ b/devel/electron36/files/patch-services_on__device__model_on__device__model__service.h @@ -0,0 +1,22 @@ +--- services/on_device_model/on_device_model_service.h.orig 2025-01-27 17:37:37 UTC ++++ services/on_device_model/on_device_model_service.h +@@ -31,6 +31,10 @@ class TsHolder; + class TsHolder; + } + ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#endif ++ + namespace on_device_model { + + class COMPONENT_EXPORT(ON_DEVICE_MODEL) OnDeviceModelService +@@ -44,7 +48,7 @@ class COMPONENT_EXPORT(ON_DEVICE_MODEL) OnDeviceModelS + // Must be called in the service's process after the run loop finished. + [[nodiscard]] static bool Shutdown(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static void AddSandboxLinuxOptions( + sandbox::policy::SandboxLinux::Options& options); + #endif diff --git a/devel/electron36/files/patch-services_on__device__model_pre__sandbox__init.cc b/devel/electron36/files/patch-services_on__device__model_pre__sandbox__init.cc new file mode 100644 index 000000000000..b3853eda0fc4 --- /dev/null +++ b/devel/electron36/files/patch-services_on__device__model_pre__sandbox__init.cc @@ -0,0 +1,38 @@ +--- services/on_device_model/pre_sandbox_init.cc.orig 2025-01-27 17:37:37 UTC ++++ services/on_device_model/pre_sandbox_init.cc +@@ -14,7 +14,7 @@ + #include "services/on_device_model/ml/chrome_ml.h" // nogncheck + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "gpu/config/gpu_info_collector.h" // nogncheck + #include "third_party/dawn/include/dawn/dawn_proc.h" // nogncheck + #include "third_party/dawn/include/dawn/native/DawnNative.h" // nogncheck +@@ -25,7 +25,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + constexpr uint32_t kVendorIdAMD = 0x1002; + constexpr uint32_t kVendorIdIntel = 0x8086; + constexpr uint32_t kVendorIdNVIDIA = 0x10DE; +@@ -74,7 +74,7 @@ bool OnDeviceModelService::PreSandboxInit() { + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Warm any relevant drivers before attempting to bring up the sandbox. For + // good measure we initialize a device instance for any adapter with an + // appropriate backend on top of any integrated or discrete GPU. +@@ -102,7 +102,7 @@ bool OnDeviceModelService::PreSandboxInit() { + return true; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // static + void OnDeviceModelService::AddSandboxLinuxOptions( + sandbox::policy::SandboxLinux::Options& options) { diff --git a/devel/electron36/files/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc b/devel/electron36/files/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc new file mode 100644 index 000000000000..867b96558073 --- /dev/null +++ b/devel/electron36/files/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc @@ -0,0 +1,65 @@ +--- services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc.orig 2025-04-22 20:15:27 UTC ++++ services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc +@@ -54,7 +54,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) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + 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; +@@ -83,7 +83,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); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + os_dump->private_footprint_swap_kb = + internal_os_dump.platform_private_footprint->vm_swap_bytes / 1024; + os_dump->mappings_count = internal_os_dump.mappings_count; +@@ -222,7 +222,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. +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + request->pending_responses.insert({client_info.pid, ResponseType::kOSDump}); + client->RequestOSMemoryDump(request->memory_map_option(), + {base::kNullProcessId}, +@@ -237,7 +237,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). +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::vector<base::ProcessId> pids; + mojom::ClientProcess* browser_client = nullptr; + base::ProcessId browser_client_pid = base::kNullProcessId; +@@ -283,7 +283,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). +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojom::ClientProcess* browser_client = nullptr; + base::ProcessId browser_client_pid = 0; + for (const auto& client_info : clients) { +@@ -333,7 +333,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; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + for (auto& kv : extra_os_dumps) { + auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first; + DCHECK(results.find(pid) == results.end()); +@@ -394,7 +394,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; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + for (const auto& kv : extra_os_dumps) { + auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first; + DCHECK_EQ(pid_to_os_dump[pid], nullptr); diff --git a/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn b/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn new file mode 100644 index 000000000000..7950f2cfd1e4 --- /dev/null +++ b/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn @@ -0,0 +1,16 @@ +--- services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn.orig 2025-03-24 20:50:14 UTC ++++ services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn +@@ -27,8 +27,12 @@ component("memory_instrumentation") { + sources += [ "os_metrics_win.cc" ] + } + +- if (is_android || is_linux || is_chromeos) { ++ if ((is_android || is_linux || is_chromeos) && !is_bsd) { + sources += [ "os_metrics_linux.cc" ] ++ } ++ ++ if (is_bsd) { ++ sources += [ "os_metrics_bsd.cc" ] + } + + if (is_fuchsia) { diff --git a/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h b/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h new file mode 100644 index 000000000000..02f23a4fc095 --- /dev/null +++ b/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h @@ -0,0 +1,20 @@ +--- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h.orig 2025-03-24 20:50:14 UTC ++++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h +@@ -57,7 +57,7 @@ class COMPONENT_EXPORT( + static std::vector<mojom::VmRegionPtr> GetProcessMemoryMaps( + base::ProcessHandle); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + static void SetProcSmapsForTesting(FILE*); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_ANDROID) +@@ -79,7 +79,7 @@ class COMPONENT_EXPORT( + GetMemoryInfo(base::ProcessHandle handle); + #endif // !BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Provides information on the dump state of resident pages. These values are + // written to logs. New enum values can be added, but existing enums must + // never be renumbered or deleted and reused. diff --git a/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc b/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc new file mode 100644 index 000000000000..cec6a7646af2 --- /dev/null +++ b/devel/electron36/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc @@ -0,0 +1,61 @@ +--- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc.orig 2022-03-25 21:59:56 UTC ++++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc +@@ -0,0 +1,58 @@ ++// Copyright 2022 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. ++ ++#include "services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h" ++ ++#include "base/memory/page_size.h" ++#include "base/process/process.h" ++#include "base/process/process_handle.h" ++ ++#include <sys/sysctl.h> ++ ++#include <vector> ++ ++#if BUILDFLAG(IS_OPENBSD) ++#define vm_rssize info.p_vm_rssize ++#elif BUILDFLAG(IS_FREEBSD) ++#include <sys/user.h> ++#define vm_rssize info.ki_rssize ++#endif ++ ++namespace memory_instrumentation { ++ ++// static ++bool OSMetrics::FillOSMemoryDump(base::ProcessId pid, ++ mojom::RawOSMemDump* dump) { ++ base::Process process = pid == base::kNullProcessId ++ ? base::Process::Current() ++ : base::Process::Open(pid); ++ const size_t kPageSize = base::GetPageSize(); ++ struct kinfo_proc info; ++ size_t length = sizeof(struct kinfo_proc); ++#if BUILDFLAG(IS_OPENBSD) ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle(), ++ static_cast<int>(length), 1 }; ++#elif BUILDFLAG(IS_FREEBSD) ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle() }; ++#endif ++ ++ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) ++ return false; ++ ++ dump->resident_set_kb = (vm_rssize * kPageSize) / 1024; ++ dump->platform_private_footprint->rss_anon_bytes = ++ vm_rssize * kPageSize; ++ dump->platform_private_footprint->vm_swap_bytes = 0; ++ ++ return true; ++} ++ ++// static ++std::vector<mojom::VmRegionPtr> OSMetrics::GetProcessMemoryMaps( ++ base::ProcessId) { ++ NOTIMPLEMENTED(); ++ return std::vector<mojom::VmRegionPtr>(); ++} ++ ++} // namespace memory_instrumentation diff --git a/devel/electron36/files/patch-services_screen__ai_public_cpp_utilities.cc b/devel/electron36/files/patch-services_screen__ai_public_cpp_utilities.cc new file mode 100644 index 000000000000..7238c5bfcb67 --- /dev/null +++ b/devel/electron36/files/patch-services_screen__ai_public_cpp_utilities.cc @@ -0,0 +1,29 @@ +--- services/screen_ai/public/cpp/utilities.cc.orig 2024-08-14 20:55:10 UTC ++++ services/screen_ai/public/cpp/utilities.cc +@@ -18,7 +18,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + constexpr char kBinaryPathSwitch[] = "screen-ai-binary"; + #endif + +@@ -39,7 +39,7 @@ constexpr char kScreenAIDlcRootPath[] = + #endif + + #if BUILDFLAG(ENABLE_SCREEN_AI_BROWSERTESTS) +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr base::FilePath::CharType kScreenAIResourcePathForTests[] = + FILE_PATH_LITERAL("third_party/screen-ai/linux/resources"); + #elif BUILDFLAG(IS_MAC) +@@ -128,7 +128,7 @@ const char* GetBinaryPathSwitch() { + + const char* GetBinaryPathSwitch() { + // This is only used on Linux and ChromeOS. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return kBinaryPathSwitch; + #else + return nullptr; diff --git a/devel/electron36/files/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc b/devel/electron36/files/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc new file mode 100644 index 000000000000..e7f922207088 --- /dev/null +++ b/devel/electron36/files/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc @@ -0,0 +1,18 @@ +--- services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc +@@ -58,6 +58,7 @@ bool ScreenAIPreSandboxHook(base::FilePath binary_path + } + } + ++#if !BUILDFLAG(IS_BSD) + auto* instance = sandbox::policy::SandboxLinux::GetInstance(); + + std::vector<BrokerFilePermission> permissions{ +@@ -79,6 +80,7 @@ bool ScreenAIPreSandboxHook(base::FilePath binary_path + sandbox::syscall_broker::COMMAND_OPEN}), + permissions, options); + instance->EngageNamespaceSandboxIfPossible(); ++#endif + + return true; + } diff --git a/devel/electron36/files/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h b/devel/electron36/files/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h new file mode 100644 index 000000000000..92fd073c8e2e --- /dev/null +++ b/devel/electron36/files/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h @@ -0,0 +1,16 @@ +--- services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h.orig 2024-04-15 20:34:03 UTC ++++ services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h +@@ -6,7 +6,13 @@ + #define SERVICES_SCREEN_AI_SANDBOX_SCREEN_AI_SANDBOX_HOOK_LINUX_H_ + + #include "base/files/file_path.h" ++#include "build/build_config.h" ++ ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace screen_ai { + diff --git a/devel/electron36/files/patch-services_service__manager_BUILD.gn b/devel/electron36/files/patch-services_service__manager_BUILD.gn new file mode 100644 index 000000000000..33c7dade54d2 --- /dev/null +++ b/devel/electron36/files/patch-services_service__manager_BUILD.gn @@ -0,0 +1,11 @@ +--- services/service_manager/BUILD.gn.orig 2025-03-24 20:50:14 UTC ++++ services/service_manager/BUILD.gn +@@ -65,7 +65,7 @@ source_set("service_manager") { + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + deps += [ "//sandbox/linux:sandbox_services" ] + } + } diff --git a/devel/electron36/files/patch-services_service__manager_public_cpp_service__executable_BUILD.gn b/devel/electron36/files/patch-services_service__manager_public_cpp_service__executable_BUILD.gn new file mode 100644 index 000000000000..b066798326f3 --- /dev/null +++ b/devel/electron36/files/patch-services_service__manager_public_cpp_service__executable_BUILD.gn @@ -0,0 +1,11 @@ +--- services/service_manager/public/cpp/service_executable/BUILD.gn.orig 2021-04-14 18:41:08 UTC ++++ services/service_manager/public/cpp/service_executable/BUILD.gn +@@ -22,7 +22,7 @@ source_set("support") { + "//services/service_manager/public/mojom", + ] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + deps += [ + "//sandbox/linux:sandbox", + "//sandbox/linux:sandbox_services", diff --git a/devel/electron36/files/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc b/devel/electron36/files/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc new file mode 100644 index 000000000000..7dc7a72877f8 --- /dev/null +++ b/devel/electron36/files/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc @@ -0,0 +1,11 @@ +--- services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc.orig 2024-02-21 00:20:51 UTC ++++ services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc +@@ -38,7 +38,7 @@ + #include "third_party/perfetto/protos/perfetto/trace/track_event/process_descriptor.pbzero.h" + #include "third_party/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pbzero.h" + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + #include "base/profiler/thread_delegate_posix.h" + #define INITIALIZE_THREAD_DELEGATE_POSIX 1 + #else // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE) diff --git a/devel/electron36/files/patch-services_tracing_public_cpp_system__metrics__sampler.cc b/devel/electron36/files/patch-services_tracing_public_cpp_system__metrics__sampler.cc new file mode 100644 index 000000000000..6523994f37f9 --- /dev/null +++ b/devel/electron36/files/patch-services_tracing_public_cpp_system__metrics__sampler.cc @@ -0,0 +1,13 @@ +--- services/tracing/public/cpp/system_metrics_sampler.cc.orig 2025-03-24 20:50:14 UTC ++++ services/tracing/public/cpp/system_metrics_sampler.cc +@@ -176,8 +176,8 @@ void SystemMetricsSampler::ProcessSampler::SampleProce + TRACE_COUNTER(TRACE_DISABLED_BY_DEFAULT("system_metrics"), + "PhysicalMemoryFootprint", + memory_info->physical_footprint_bytes); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)) && defined(notyet) + TRACE_COUNTER(TRACE_DISABLED_BY_DEFAULT("system_metrics"), "VmSwapMemory", + memory_info->vm_swap_bytes); + TRACE_COUNTER(TRACE_DISABLED_BY_DEFAULT("system_metrics"), "RssAnonMemory", diff --git a/devel/electron36/files/patch-services_video__capture_public_mojom_video__capture__service.mojom b/devel/electron36/files/patch-services_video__capture_public_mojom_video__capture__service.mojom new file mode 100644 index 000000000000..40b704c42438 --- /dev/null +++ b/devel/electron36/files/patch-services_video__capture_public_mojom_video__capture__service.mojom @@ -0,0 +1,15 @@ +--- services/video_capture/public/mojom/video_capture_service.mojom.orig 2023-03-30 00:33:55 UTC ++++ services/video_capture/public/mojom/video_capture_service.mojom +@@ -25,10 +25,10 @@ interface AcceleratorFactory { + pending_receiver<chromeos_camera.mojom.MjpegDecodeAccelerator> jda); + }; + +-[EnableIf=is_fuchsia] ++[EnableIf=is_openbsd] + const sandbox.mojom.Sandbox kVideoCaptureSandbox + = sandbox.mojom.Sandbox.kVideoCapture; +-[EnableIfNot=is_fuchsia] ++[EnableIfNot=is_openbsd] + const sandbox.mojom.Sandbox kVideoCaptureSandbox + = sandbox.mojom.Sandbox.kNoSandbox; + diff --git a/devel/electron36/files/patch-services_video__effects_video__effects__sandbox__hook__linux.cc b/devel/electron36/files/patch-services_video__effects_video__effects__sandbox__hook__linux.cc new file mode 100644 index 000000000000..f65d45970c4e --- /dev/null +++ b/devel/electron36/files/patch-services_video__effects_video__effects__sandbox__hook__linux.cc @@ -0,0 +1,27 @@ +--- services/video_effects/video_effects_sandbox_hook_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ services/video_effects/video_effects_sandbox_hook_linux.cc +@@ -6,7 +6,13 @@ + + #include <dlfcn.h> + ++#include "build/build_config.h" ++ ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + #include "services/on_device_model/ml/chrome_ml_holder.h" + + namespace video_effects { +@@ -29,8 +35,10 @@ bool VideoEffectsPreSandboxHook( + DVLOG(1) << "Successfully opened Chrome ML shared library."; + } + ++#if !BUILDFLAG(IS_BSD) + auto* instance = sandbox::policy::SandboxLinux::GetInstance(); + instance->EngageNamespaceSandboxIfPossible(); ++#endif + return true; + } + diff --git a/devel/electron36/files/patch-services_video__effects_video__effects__sandbox__hook__linux.h b/devel/electron36/files/patch-services_video__effects_video__effects__sandbox__hook__linux.h new file mode 100644 index 000000000000..a61c1c7d03b6 --- /dev/null +++ b/devel/electron36/files/patch-services_video__effects_video__effects__sandbox__hook__linux.h @@ -0,0 +1,16 @@ +--- services/video_effects/video_effects_sandbox_hook_linux.h.orig 2025-01-27 17:37:37 UTC ++++ services/video_effects/video_effects_sandbox_hook_linux.h +@@ -5,7 +5,13 @@ + #ifndef SERVICES_VIDEO_EFFECTS_VIDEO_EFFECTS_SANDBOX_HOOK_LINUX_H_ + #define SERVICES_VIDEO_EFFECTS_VIDEO_EFFECTS_SANDBOX_HOOK_LINUX_H_ + ++#include "build/build_config.h" ++ ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/sandbox.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace video_effects { + diff --git a/devel/electron36/files/patch-services_viz_public_mojom_BUILD.gn b/devel/electron36/files/patch-services_viz_public_mojom_BUILD.gn new file mode 100644 index 000000000000..a6449ec13d5f --- /dev/null +++ b/devel/electron36/files/patch-services_viz_public_mojom_BUILD.gn @@ -0,0 +1,11 @@ +--- services/viz/public/mojom/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ services/viz/public/mojom/BUILD.gn +@@ -56,7 +56,7 @@ mojom("mojom") { + + # Used in thread.mojom + enabled_features = [] +- if (is_fuchsia || is_apple) { ++ if (is_fuchsia || is_apple || is_bsd) { + enabled_features += [ "thread_id_is_64_bit" ] + } else { + enabled_features += [ "thread_id_is_32_bit" ] diff --git a/devel/electron36/files/patch-skia_ext_SkMemory__new__handler.cpp b/devel/electron36/files/patch-skia_ext_SkMemory__new__handler.cpp new file mode 100644 index 000000000000..32a9df44057a --- /dev/null +++ b/devel/electron36/files/patch-skia_ext_SkMemory__new__handler.cpp @@ -0,0 +1,20 @@ +--- skia/ext/SkMemory_new_handler.cpp.orig 2025-03-24 20:50:14 UTC ++++ skia/ext/SkMemory_new_handler.cpp +@@ -24,7 +24,7 @@ + #include <windows.h> + #elif BUILDFLAG(IS_APPLE) + #include <malloc/malloc.h> +-#else ++#elif !BUILDFLAG(IS_BSD) + #include <malloc.h> + #endif + +@@ -110,7 +110,7 @@ static void* malloc_nothrow(size_t size, int debug_sen + // TODO(b.kelemen): we should always use UncheckedMalloc but currently it + // doesn't work as intended everywhere. + void* result; +-#if BUILDFLAG(IS_IOS) ++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + result = malloc(size); + #else + // It's the responsibility of the caller to check the return value. diff --git a/devel/electron36/files/patch-skia_ext_font__utils.cc b/devel/electron36/files/patch-skia_ext_font__utils.cc new file mode 100644 index 000000000000..bbc195772b7b --- /dev/null +++ b/devel/electron36/files/patch-skia_ext_font__utils.cc @@ -0,0 +1,20 @@ +--- skia/ext/font_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ skia/ext/font_utils.cc +@@ -21,7 +21,7 @@ + #include "third_party/skia/include/ports/SkFontMgr_mac_ct.h" + #endif + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "third_party/skia/include/ports/SkFontConfigInterface.h" + #include "third_party/skia/include/ports/SkFontMgr_FontConfigInterface.h" + #include "third_party/skia/include/ports/SkFontScanner_Fontations.h" +@@ -67,7 +67,7 @@ static sk_sp<SkFontMgr> fontmgr_factory() { + } + #elif BUILDFLAG(IS_APPLE) + return SkFontMgr_New_CoreText(nullptr); +-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + sk_sp<SkFontConfigInterface> fci(SkFontConfigInterface::RefGlobal()); + if (base::FeatureList::IsEnabled(skia::kFontationsLinuxSystemFonts)) { + return fci ? SkFontMgr_New_FCI(std::move(fci), diff --git a/devel/electron36/files/patch-skia_ext_skcolorspace__trfn.cc b/devel/electron36/files/patch-skia_ext_skcolorspace__trfn.cc new file mode 100644 index 000000000000..a84d246b14de --- /dev/null +++ b/devel/electron36/files/patch-skia_ext_skcolorspace__trfn.cc @@ -0,0 +1,11 @@ +--- skia/ext/skcolorspace_trfn.cc.orig 2025-03-24 20:50:14 UTC ++++ 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 <array> diff --git a/devel/electron36/files/patch-third__party_abseil-cpp_absl_base_config.h b/devel/electron36/files/patch-third__party_abseil-cpp_absl_base_config.h new file mode 100644 index 000000000000..fe6cda6788c0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_abseil-cpp_absl_base_config.h @@ -0,0 +1,21 @@ +--- third_party/abseil-cpp/absl/base/config.h.orig 2025-04-22 20:15:27 UTC ++++ third_party/abseil-cpp/absl/base/config.h +@@ -409,7 +409,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__) || \ +- defined(__VXWORKS__) ++ defined(__VXWORKS__) || defined(__OpenBSD__) || defined(__FreeBSD__) + #define ABSL_HAVE_SCHED_YIELD 1 + #endif + +@@ -424,7 +424,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__) || defined(__VXWORKS__) ++#elif defined(__linux__) || defined(__ros__) || defined(__VXWORKS__) || \ ++ defined(__OpenBSD__) || defined(__FreeBSD__) + #define ABSL_HAVE_SEMAPHORE_H 1 + #endif + diff --git a/devel/electron36/files/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc b/devel/electron36/files/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc new file mode 100644 index 000000000000..28fc23982b32 --- /dev/null +++ b/devel/electron36/files/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc @@ -0,0 +1,65 @@ +--- third_party/abseil-cpp/absl/base/internal/sysinfo.cc.orig 2024-10-16 21:31:38 UTC ++++ third_party/abseil-cpp/absl/base/internal/sysinfo.cc +@@ -30,7 +30,7 @@ + #include <sys/syscall.h> + #endif + +-#if defined(__APPLE__) || defined(__FreeBSD__) ++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #include <sys/sysctl.h> + #endif + +@@ -198,6 +198,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) { +@@ -230,6 +231,7 @@ static bool ReadLongFromFile(const char *file, long *v + } + return ret; + } ++#endif + + #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY) + +@@ -329,9 +331,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. ++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) // pledge violation + if (ReadLongFromFile("/sys/devices/system/cpu/cpu0/tsc_freq_khz", &freq)) { + return freq * 1e3; // Value is kHz. + } ++#endif + + #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY) + // On these platforms, the TSC frequency is the nominal CPU +@@ -350,10 +354,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 +@@ -463,6 +469,12 @@ 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(__Fuchsia__) diff --git a/devel/electron36/files/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h b/devel/electron36/files/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h new file mode 100644 index 000000000000..17461a04232d --- /dev/null +++ b/devel/electron36/files/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h @@ -0,0 +1,12 @@ +--- third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h.orig 2025-01-27 17:37:37 UTC ++++ third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +@@ -35,7 +35,8 @@ + #if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX__) && \ + !defined(__native_client__) && !defined(__asmjs__) && \ + !defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun) && \ +- !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__XTENSA__) ++ !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__XTENSA__) && \ ++ !defined(__FreeBSD__) + #define ABSL_HAVE_ELF_MEM_IMAGE 1 + #endif + diff --git a/devel/electron36/files/patch-third__party_angle_BUILD.gn b/devel/electron36/files/patch-third__party_angle_BUILD.gn new file mode 100644 index 000000000000..01e18495240f --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_BUILD.gn @@ -0,0 +1,29 @@ +--- third_party/angle/BUILD.gn.orig 2025-03-24 20:50:14 UTC ++++ third_party/angle/BUILD.gn +@@ -355,7 +355,6 @@ config("extra_warnings") { + "-Wtautological-type-limit-compare", + "-Wundefined-reinterpret-cast", + "-Wunneeded-internal-declaration", +- "-Wunused-but-set-variable", + "-Wsuggest-destructor-override", + "-Wsuggest-override", + +@@ -532,7 +531,7 @@ template("angle_common_lib") { + all_dependent_configs = [ ":angle_disable_pool_alloc" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + libs = [ "dl" ] + } + +@@ -687,6 +686,9 @@ angle_static_library("angle_gpu_info_util") { + "Xi", + "Xext", + ] ++ if (is_bsd) { ++ libs += [ "GL" ] ++ } + } + + if (angle_use_wayland && angle_has_build) { diff --git a/devel/electron36/files/patch-third__party_angle_src_common_platform.h b/devel/electron36/files/patch-third__party_angle_src_common_platform.h new file mode 100644 index 000000000000..2b0717bf87df --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_common_platform.h @@ -0,0 +1,19 @@ +--- third_party/angle/src/common/platform.h.orig 2025-04-22 20:15:27 UTC ++++ third_party/angle/src/common/platform.h +@@ -23,7 +23,15 @@ + #elif defined(__linux__) || defined(EMSCRIPTEN) + # define ANGLE_PLATFORM_LINUX 1 + # define ANGLE_PLATFORM_POSIX 1 +-#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || \ ++#elif defined(__OpenBSD__) ++# define ANGLE_PLATFORM_OPENBSD 1 ++# define ANGLE_PLATFORM_POSIX 1 ++# define ANGLE_PLATFORM_BSD 1 ++#elif defined(__FreeBSD__) ++# define ANGLE_PLATFORM_FREEBSD 1 ++# define ANGLE_PLATFORM_POSIX 1 ++# define ANGLE_PLATFORM_BSD 1 ++#elif defined(__NetBSD__) || \ + defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \ + defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__) + # define ANGLE_PLATFORM_POSIX 1 diff --git a/devel/electron36/files/patch-third__party_angle_src_common_platform__helpers.h b/devel/electron36/files/patch-third__party_angle_src_common_platform__helpers.h new file mode 100644 index 000000000000..16a96b460686 --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_common_platform__helpers.h @@ -0,0 +1,11 @@ +--- third_party/angle/src/common/platform_helpers.h.orig 2023-10-19 20:00:24 UTC ++++ 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/devel/electron36/files/patch-third__party_angle_src_common_system__utils.cpp b/devel/electron36/files/patch-third__party_angle_src_common_system__utils.cpp new file mode 100644 index 000000000000..37a34ef7608f --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_common_system__utils.cpp @@ -0,0 +1,11 @@ +--- third_party/angle/src/common/system_utils.cpp.orig 2024-02-21 00:22:07 UTC ++++ third_party/angle/src/common/system_utils.cpp +@@ -25,7 +25,7 @@ std::string GetExecutableName() + { + std::string GetExecutableName() + { +-#if defined(ANGLE_PLATFORM_ANDROID) && __ANDROID_API__ >= 21 ++#if (defined(ANGLE_PLATFORM_ANDROID) && __ANDROID_API__ >= 21) || defined(ANGLE_PLATFORM_BSD) + // Support for "getprogname" function in bionic was introduced in L (API level 21) + const char *executableName = getprogname(); + return (executableName) ? std::string(executableName) : "ANGLE"; diff --git a/devel/electron36/files/patch-third__party_angle_src_common_system__utils__linux.cpp b/devel/electron36/files/patch-third__party_angle_src_common_system__utils__linux.cpp new file mode 100644 index 000000000000..a9c9a7391c59 --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_common_system__utils__linux.cpp @@ -0,0 +1,37 @@ +--- third_party/angle/src/common/system_utils_linux.cpp.orig 2025-03-24 20:50:14 UTC ++++ third_party/angle/src/common/system_utils_linux.cpp +@@ -15,10 +15,15 @@ + #include <sys/types.h> + #include <unistd.h> + ++#if ANGLE_PLATFORM_OPENBSD ++#include <pthread_np.h> ++#endif ++ + #include <array> + + namespace angle + { ++#if ANGLE_PLATFORM_LINUX + std::string GetExecutablePath() + { + // We cannot use lstat to get the size of /proc/self/exe as it always returns 0 +@@ -34,6 +39,7 @@ std::string GetExecutablePath() + path[result] = '\0'; + return path; + } ++#endif + + std::string GetExecutableDirectory() + { +@@ -59,6 +65,10 @@ void SetCurrentThreadName(const char *name) + // There's a 15-character (16 including '\0') limit. If the name is too big (and ERANGE is + // returned), name will be ignored. + ASSERT(strlen(name) < 16); ++#if ANGLE_PLATFORM_OPENBSD ++ pthread_set_name_np(pthread_self(), name); ++#else + pthread_setname_np(pthread_self(), name); ++#endif + } + } // namespace angle diff --git a/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h b/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h new file mode 100644 index 000000000000..8232856560c7 --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h @@ -0,0 +1,16 @@ +--- third_party/angle/src/gpu_info_util/SystemInfo_internal.h.orig 2023-05-25 00:46:19 UTC ++++ third_party/angle/src/gpu_info_util/SystemInfo_internal.h +@@ -15,6 +15,13 @@ + namespace angle + { + ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices); ++#if defined(__FreeBSD__) ++bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices); ++#endif ++#endif ++ + // Defined in SystemInfo_libpci when GPU_INFO_USE_LIBPCI is defined. + bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices); + // Defined in SystemInfo_x11 when GPU_INFO_USE_X11 is defined. diff --git a/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp b/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp new file mode 100644 index 000000000000..847b0d538010 --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp @@ -0,0 +1,90 @@ +--- third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp.orig 2022-02-23 19:25:59 UTC ++++ third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp +@@ -12,6 +12,11 @@ + #include <pci/pci.h> + #include <unistd.h> + ++#if defined(__FreeBSD__) ++#include <fcntl.h> ++#include <sys/pciio.h> ++#endif ++ + #include "common/angleutils.h" + #include "common/debug.h" + +@@ -85,6 +90,75 @@ struct LibPCI : private angle::NonCopyable + }; + + } // anonymous namespace ++ ++#if defined(__FreeBSD__) ++// Adds an entry per PCI GPU found and fills the device and vendor ID. ++bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices) ++{ ++ int fd; ++ struct pci_conf_io conf; ++ struct pci_conf *matches; ++ uint32_t offset = 0; ++ ++ fd = open("/dev/pci", O_RDONLY); ++ if (fd < 0) ++ return false; ++ ++ matches = new struct pci_conf[32]; ++ conf.generation = 0; ++ do { ++ conf.pat_buf_len = 0; ++ conf.num_patterns = 0; ++ conf.patterns = NULL; ++ conf.match_buf_len = 32 * sizeof(struct pci_conf); ++ conf.num_matches = 32; ++ conf.matches = matches; ++ conf.offset = offset; ++ conf.status = PCI_GETCONF_ERROR; ++ if (ioctl(fd, PCIOCGETCONF, &conf) < 0) { ++ if (errno == ENODEV) ++ break; ++ } ++ /* PCI_GETCONF_LIST_CHANGED would require us to start over. */ ++ if (conf.status == PCI_GETCONF_ERROR || conf.status == PCI_GETCONF_LIST_CHANGED) { ++ break; ++ } ++ ++ for (unsigned int i = 0; i < conf.num_matches; i++) { ++ uint16_t device_class = (matches[i].pc_class << 8) | matches[i].pc_subclass; ++ ++ // Skip non-GPU devices ++ switch (device_class) ++ { ++ case PCI_CLASS_DISPLAY_VGA: ++ case PCI_CLASS_DISPLAY_XGA: ++ case PCI_CLASS_DISPLAY_3D: ++ break; ++ default: ++ continue; ++ } ++ ++ // Skip unknown devices ++ if (matches[i].pc_vendor == 0 || matches[i].pc_device == 0) { ++ continue; ++ } ++ ++ GPUDeviceInfo info; ++ info.vendorId = matches[i].pc_vendor; ++ info.deviceId = matches[i].pc_device; ++ ++ devices->push_back(info); ++ } ++ offset += conf.num_matches; ++ } while (conf.status == PCI_GETCONF_MORE_DEVS); ++ ++ delete[] matches; ++ ++ close(fd); ++ ++ return true; ++} ++#endif + + // Adds an entry per PCI GPU found and fills the device and vendor ID. + bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices) diff --git a/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp b/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp new file mode 100644 index 000000000000..ef2231b48c21 --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp @@ -0,0 +1,35 @@ +--- third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp.orig 2022-02-23 19:25:59 UTC ++++ third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp +@@ -71,6 +71,24 @@ bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo + + bool GetSystemInfo(SystemInfo *info) + { ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++ if (!CollectMesaCardInfo(&(info->gpus))) ++ { ++#if defined(__FreeBSD__) ++ if (!GetPCIDevicesFreeBSD(&(info->gpus))) ++ { ++#endif ++#if defined(ANGLE_USE_VULKAN_SYSTEM_INFO) ++ // Try vulkan backend to get GPU info ++ return GetSystemInfoVulkan(info); ++#else ++ return false; ++#endif ++#if defined(__FreeBSD__) ++ } ++#endif ++ } ++#else + if (!GetPCIDevicesWithLibPCI(&(info->gpus))) + { + #if defined(ANGLE_USE_VULKAN_SYSTEM_INFO) +@@ -85,6 +103,7 @@ bool GetSystemInfo(SystemInfo *info) + { + return false; + } ++#endif + + GetDualGPUInfo(info); + diff --git a/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp b/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp new file mode 100644 index 000000000000..9b174b17ae80 --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp @@ -0,0 +1,60 @@ +--- third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp.orig 2022-02-23 20:48:53 UTC ++++ third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp +@@ -8,6 +8,10 @@ + + #include "gpu_info_util/SystemInfo_internal.h" + ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++#include <GL/glx.h> ++#include <GL/glxext.h> ++#endif + #include <X11/Xlib.h> + + #include "common/debug.h" +@@ -18,8 +22,46 @@ + # error SystemInfo_x11.cpp compiled without GPU_INFO_USE_X11 + #endif + ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++#define GLX_RENDERER_VENDOR_ID_MESA 0x8183 ++#define GLX_RENDERER_DEVICE_ID_MESA 0x8184 ++#endif ++ + namespace angle + { ++ ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices) ++{ ++ unsigned int vid[3], did[3]; ++ ++ Display *display = XOpenDisplay(NULL); ++ if (!display) { ++ return false; ++ } ++ ++ PFNGLXQUERYRENDERERINTEGERMESAPROC queryInteger = ++ (PFNGLXQUERYRENDERERINTEGERMESAPROC) glXGetProcAddressARB((const GLubyte *) ++ "glXQueryRendererIntegerMESA"); ++ ++ if (!queryInteger) ++ return false; ++ ++ bool vendor_ret = ++ queryInteger(display, 0, 0, GLX_RENDERER_VENDOR_ID_MESA, vid); ++ bool device_ret = ++ queryInteger(display, 0, 0, GLX_RENDERER_DEVICE_ID_MESA, did); ++ ++ if (vendor_ret && device_ret) { ++ GPUDeviceInfo info; ++ info.vendorId = vid[0]; ++ info.deviceId = did[0]; ++ devices->push_back(info); ++ } ++ ++ return true; ++} ++#endif + + bool GetNvidiaDriverVersionWithXNVCtrl(std::string *version) + { diff --git a/devel/electron36/files/patch-third__party_angle_src_libANGLE_Display.cpp b/devel/electron36/files/patch-third__party_angle_src_libANGLE_Display.cpp new file mode 100644 index 000000000000..8c1c54c961ba --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_libANGLE_Display.cpp @@ -0,0 +1,56 @@ +--- third_party/angle/src/libANGLE/Display.cpp.orig 2025-04-22 20:15:27 UTC ++++ third_party/angle/src/libANGLE/Display.cpp +@@ -58,7 +58,7 @@ + # include "libANGLE/renderer/gl/wgl/DisplayWGL.h" + # elif ANGLE_ENABLE_CGL + # include "libANGLE/renderer/gl/cgl/DisplayCGL.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_api.h" +@@ -422,7 +422,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di + impl = new rx::DisplayCGL(state); + break; + +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + # if defined(ANGLE_USE_GBM) + if (platformType == 0) + { +@@ -468,7 +468,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) + { +@@ -519,7 +519,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di + impl = rx::CreateVulkanWin32Display(state); + } + break; +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + # if defined(ANGLE_USE_GBM) + if (platformType == EGL_PLATFORM_GBM_KHR && rx::IsVulkanGbmDisplayAvailable()) + { +@@ -2133,7 +2133,7 @@ static ClientExtensions GenerateClientExtensions() + extensions.platformWaylandEXT = true; + #endif + +-#if defined(ANGLE_PLATFORM_LINUX) && (defined(ANGLE_ENABLE_OPENGL) || defined(ANGLE_ENABLE_VULKAN)) ++#if (defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)) && (defined(ANGLE_ENABLE_OPENGL) || defined(ANGLE_ENABLE_VULKAN)) + extensions.platformSurfacelessMESA = true; + #endif + +@@ -2180,7 +2180,7 @@ static ClientExtensions GenerateClientExtensions() + extensions.x11Visual = true; + #endif + +-#if defined(ANGLE_PLATFORM_LINUX) ++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + extensions.platformANGLEDeviceTypeEGLANGLE = true; + #endif + diff --git a/devel/electron36/files/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp b/devel/electron36/files/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp new file mode 100644 index 000000000000..dba2acc732c5 --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp @@ -0,0 +1,15 @@ +--- third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp.orig 2022-02-07 13:39:41 UTC ++++ third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp +@@ -144,10 +144,10 @@ bool FunctionsGLX::initialize(Display *xDisplay, int s + // which a GLXWindow was ever created. + if (!sLibHandle) + { +- sLibHandle = dlopen("libGL.so.1", RTLD_NOW); ++ sLibHandle = dlopen("libGL.so", RTLD_NOW); + if (!sLibHandle) + { +- *errorString = std::string("Could not dlopen libGL.so.1: ") + dlerror(); ++ *errorString = std::string("Could not dlopen libGL.so: ") + dlerror(); + return false; + } + } diff --git a/devel/electron36/files/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h b/devel/electron36/files/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h new file mode 100644 index 000000000000..26496368123b --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h @@ -0,0 +1,11 @@ +--- third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h.orig 2022-06-17 14:20:10 UTC ++++ third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h +@@ -23,7 +23,7 @@ bool IsVulkanWin32DisplayAvailable(); + DisplayImpl *CreateVulkanWin32Display(const egl::DisplayState &state); + #endif // defined(ANGLE_PLATFORM_WINDOWS) + +-#if defined(ANGLE_PLATFORM_LINUX) ++#if defined(ANGLE_PLATFORM_POSIX) + bool IsVulkanWaylandDisplayAvailable(); + DisplayImpl *CreateVulkanWaylandDisplay(const egl::DisplayState &state); + diff --git a/devel/electron36/files/patch-third__party_angle_util_BUILD.gn b/devel/electron36/files/patch-third__party_angle_util_BUILD.gn new file mode 100644 index 000000000000..26eed9a87790 --- /dev/null +++ b/devel/electron36/files/patch-third__party_angle_util_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/angle/util/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ third_party/angle/util/BUILD.gn +@@ -332,7 +332,7 @@ foreach(is_shared_library, + ] + libs = [] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + libs += [ + "rt", + "dl", diff --git a/devel/electron36/files/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc b/devel/electron36/files/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc new file mode 100644 index 000000000000..e7086271264e --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc @@ -0,0 +1,11 @@ +--- third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc +@@ -77,7 +77,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) + if (!data.ReadSystemFontFamilyName(&out->system_font_family_name)) + return false; + #endif diff --git a/devel/electron36/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h b/devel/electron36/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h new file mode 100644 index 000000000000..822cc36c8a00 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h @@ -0,0 +1,11 @@ +--- third_party/blink/public/common/renderer_preferences/renderer_preferences.h.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/public/common/renderer_preferences/renderer_preferences.h +@@ -65,7 +65,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; + #endif + #if BUILDFLAG(IS_WIN) diff --git a/devel/electron36/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h b/devel/electron36/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h new file mode 100644 index 000000000000..f2ef99580fd9 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h @@ -0,0 +1,11 @@ +--- third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h +@@ -180,7 +180,7 @@ struct BLINK_COMMON_EXPORT + return data.send_subresource_notification; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static const std::string& system_font_family_name( + const ::blink::RendererPreferences& data) { + return data.system_font_family_name; diff --git a/devel/electron36/files/patch-third__party_blink_public_platform_platform.h b/devel/electron36/files/patch-third__party_blink_public_platform_platform.h new file mode 100644 index 000000000000..efe093f18f04 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_public_platform_platform.h @@ -0,0 +1,11 @@ +--- third_party/blink/public/platform/platform.h.orig 2025-05-11 11:50:45 UTC ++++ third_party/blink/public/platform/platform.h +@@ -372,7 +372,7 @@ class BLINK_PLATFORM_EXPORT Platform { + return nullptr; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // This is called after the thread is created, so the embedder + // can initiate an IPC to change its thread type (on Linux we can't + // increase the nice value, so we need to ask the browser process). This diff --git a/devel/electron36/files/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py b/devel/electron36/files/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py new file mode 100644 index 000000000000..cad1b86913cf --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py.orig 2024-06-18 21:43:39 UTC ++++ third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py +@@ -30,7 +30,7 @@ def init(root_src_dir, enable_style_format=True): + + # Determine //buildtools/<platform>/ directory + new_path_platform_suffix = "" +- if sys.platform.startswith("linux"): ++ if sys.platform.startswith(("linux","openbsd","freebsd")): + platform = "linux64" + exe_suffix = "" + elif sys.platform.startswith("darwin"): diff --git a/devel/electron36/files/patch-third__party_blink_renderer_build_scripts_gperf.py b/devel/electron36/files/patch-third__party_blink_renderer_build_scripts_gperf.py new file mode 100644 index 000000000000..07160cca56e6 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_build_scripts_gperf.py @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/build/scripts/gperf.py.orig 2025-04-14 21:12:04 UTC ++++ third_party/blink/renderer/build/scripts/gperf.py +@@ -35,10 +35,13 @@ def generate_gperf(gperf_path, gperf_input, gperf_args + # https://savannah.gnu.org/bugs/index.php?53028 + gperf_output = re.sub(r'\bregister ', '', gperf_output) + # -Wimplicit-fallthrough needs an explicit fallthrough statement, +- # so replace gperf's /*FALLTHROUGH*/ comment with the statement. +- # https://savannah.gnu.org/bugs/index.php?53029 +- gperf_output = gperf_output.replace('/*FALLTHROUGH*/', +- ' [[fallthrough]];') ++ # so replace gperf 3.1's /*FALLTHROUGH*/ comment with the statement. ++ # https://savannah.gnu.org/bugs/index.php?53029 (fixed in 3.2) ++ if re.search( ++ r'/\* C\+\+ code produced by gperf version 3\.[01](\.\d+)? \*/', ++ gperf_output): ++ gperf_output = gperf_output.replace('/*FALLTHROUGH*/', ++ ' [[fallthrough]];') + # -Wpointer-to-int-cast warns about casting pointers to smaller ints + # Replace {(int)(long)&(foo), bar} with + # {static_cast<int>(reinterpret_cast<uintptr_t>(&(foo)), bar} diff --git a/devel/electron36/files/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py b/devel/electron36/files/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py new file mode 100644 index 000000000000..7d56dad775be --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py @@ -0,0 +1,10 @@ +--- third_party/blink/renderer/build/scripts/run_with_pythonpath.py.orig 2022-02-07 13:39:41 UTC ++++ third_party/blink/renderer/build/scripts/run_with_pythonpath.py +@@ -22,6 +22,7 @@ def main(): + existing_pp = ( + os.pathsep + env['PYTHONPATH']) if 'PYTHONPATH' in env else '' + env['PYTHONPATH'] = os.pathsep.join(python_paths) + existing_pp ++ env['LD_LIBRARY_PATH'] = "${WRKSRC}/out/Release" + sys.exit(subprocess.call([sys.executable] + args, env=env)) + + diff --git a/devel/electron36/files/patch-third__party_blink_renderer_controller_blink__initializer.cc b/devel/electron36/files/patch-third__party_blink_renderer_controller_blink__initializer.cc new file mode 100644 index 000000000000..99e8e97779cb --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_controller_blink__initializer.cc @@ -0,0 +1,35 @@ +--- third_party/blink/renderer/controller/blink_initializer.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/controller/blink_initializer.cc +@@ -82,12 +82,12 @@ + #include "third_party/blink/renderer/controller/private_memory_footprint_provider.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/blink/renderer/controller/memory_usage_monitor_posix.h" + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- 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 +@@ -256,7 +256,7 @@ void BlinkInitializer::RegisterInterfaces(mojo::Binder + main_thread_task_runner); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + binders.Add<mojom::blink::MemoryUsageMonitorLinux>( + ConvertToBaseRepeatingCallback( + CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)), +@@ -304,7 +304,7 @@ void BlinkInitializer::RegisterMemoryWatchers(Platform + MemorySaverController::Initialize(); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- 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/devel/electron36/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc b/devel/electron36/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc new file mode 100644 index 000000000000..64fc619ea0b7 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc @@ -0,0 +1,21 @@ +--- third_party/blink/renderer/controller/memory_usage_monitor_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/renderer/controller/memory_usage_monitor_posix.cc +@@ -133,15 +133,17 @@ void MemoryUsageMonitorPosix::SetProcFiles(base::File + + void MemoryUsageMonitorPosix::SetProcFiles(base::File statm_file, + base::File status_file) { ++#if !BUILDFLAG(IS_BSD) + DCHECK(statm_file.IsValid()); + DCHECK(status_file.IsValid()); + DCHECK_EQ(-1, statm_fd_.get()); + DCHECK_EQ(-1, status_fd_.get()); + statm_fd_.reset(statm_file.TakePlatformFile()); + status_fd_.reset(status_file.TakePlatformFile()); ++#endif + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // static + void MemoryUsageMonitorPosix::Bind( + mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver) { diff --git a/devel/electron36/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h b/devel/electron36/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h new file mode 100644 index 000000000000..179fa1f6b946 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h @@ -0,0 +1,47 @@ +--- third_party/blink/renderer/controller/memory_usage_monitor_posix.h.orig 2022-02-28 16:54:41 UTC ++++ third_party/blink/renderer/controller/memory_usage_monitor_posix.h +@@ -13,7 +13,7 @@ + #include "third_party/blink/renderer/controller/controller_export.h" + #include "third_party/blink/renderer/controller/memory_usage_monitor.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/blink/public/mojom/memory_usage_monitor_linux.mojom-blink.h" + #endif + +@@ -22,7 +22,7 @@ namespace blink { + // MemoryUsageMonitor implementation for Android and Linux. + class CONTROLLER_EXPORT MemoryUsageMonitorPosix + : public MemoryUsageMonitor +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + public mojom::blink::MemoryUsageMonitorLinux + #endif +@@ -30,7 +30,7 @@ class CONTROLLER_EXPORT MemoryUsageMonitorPosix + public: + MemoryUsageMonitorPosix() = default; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static void Bind( + mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver); + #endif +@@ -48,7 +48,7 @@ class CONTROLLER_EXPORT MemoryUsageMonitorPosix + uint64_t* vm_size, + uint64_t* vm_hwm_size); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // mojom::MemoryUsageMonitorLinux implementations: + void SetProcFiles(base::File statm_file, base::File status_file) override; + #endif +@@ -66,7 +66,7 @@ class CONTROLLER_EXPORT MemoryUsageMonitorPosix + base::ScopedFD statm_fd_; + base::ScopedFD status_fd_; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::Receiver<mojom::blink::MemoryUsageMonitorLinux> receiver_{this}; + #endif + }; diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_editing_editing__behavior.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_editing_editing__behavior.cc new file mode 100644 index 000000000000..f11140206f82 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_editing_editing__behavior.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/editing/editing_behavior.cc.orig 2024-08-14 20:55:13 UTC ++++ third_party/blink/renderer/core/editing/editing_behavior.cc +@@ -304,7 +304,7 @@ bool EditingBehavior::ShouldInsertCharacter(const Keyb + // unexpected behaviour + if (ch < ' ') + return false; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // According to XKB map no keyboard combinations with ctrl key are mapped to + // printable characters, however we need the filter as the DomKey/text could + // contain printable characters. diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc new file mode 100644 index 000000000000..47bf6be610e1 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/execution_context/navigator_base.cc.orig 2023-03-30 00:33:57 UTC ++++ third_party/blink/renderer/core/execution_context/navigator_base.cc +@@ -31,7 +31,7 @@ String GetReducedNavigatorPlatform() { + return "Win32"; + #elif BUILDFLAG(IS_FUCHSIA) + return ""; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return "Linux x86_64"; + #elif BUILDFLAG(IS_IOS) + return "iPhone"; diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc new file mode 100644 index 000000000000..66065cdaf690 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/core/exported/web_view_impl.cc.orig 2025-05-11 11:50:46 UTC ++++ third_party/blink/renderer/core/exported/web_view_impl.cc +@@ -430,7 +430,7 @@ SkFontHinting RendererPreferencesToSkiaHinting( + #if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) + SkFontHinting RendererPreferencesToSkiaHinting( + const blink::RendererPreferences& prefs) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + 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' +@@ -3427,7 +3427,7 @@ void WebViewImpl::UpdateFontRenderingFromRendererPrefs + gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE); + WebFontRenderStyle::SetSubpixelPositioning( + renderer_preferences_.use_subpixel_positioning); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!renderer_preferences_.system_font_family_name.empty()) { + WebFontRenderStyle::SetSystemFontFamily(blink::WebString::FromUTF8( + renderer_preferences_.system_font_family_name)); diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_frame_web__frame__test.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_frame_web__frame__test.cc new file mode 100644 index 000000000000..741fe6f16400 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_frame_web__frame__test.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/core/frame/web_frame_test.cc.orig 2025-05-11 11:50:45 UTC ++++ third_party/blink/renderer/core/frame/web_frame_test.cc +@@ -6472,7 +6472,7 @@ TEST_F(WebFrameTest, DISABLED_PositionForPointTest) { + } + + #if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // 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 \ +@@ -6881,7 +6881,7 @@ TEST_F(CompositedSelectionBoundsTest, LargeSelectionNo + TEST_F(CompositedSelectionBoundsTest, LargeSelectionNoScroll) { + RunTest("composited_selection_bounds_large_selection_noscroll.html"); + } +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if !BUILDFLAG(IS_ANDROID) + TEST_F(CompositedSelectionBoundsTest, Input) { + web_view_helper_.GetWebView()->GetSettings()->SetDefaultFontSize(16); diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc new file mode 100644 index 000000000000..b3a31015e611 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc +@@ -51,7 +51,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) || \ +- BUILDFLAG(IS_WIN)) ++ BUILDFLAG(IS_WIN)) || BUILDFLAG(IS_BSD) + const double kIdleTaskStartTimeoutDelayMs = 1000.0; + #else + const double kIdleTaskStartTimeoutDelayMs = 4000.0; // For ChromeOS, Mobile diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc new file mode 100644 index 000000000000..49e24cb62aef --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/inspector/inspector_memory_agent.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/renderer/core/inspector/inspector_memory_agent.cc +@@ -192,7 +192,7 @@ Vector<String> InspectorMemoryAgent::Symbolize( + + Vector<String> InspectorMemoryAgent::Symbolize( + const std::vector<const void*>& addresses) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO(alph): Move symbolization to the client. + Vector<const void*> addresses_to_symbolize; + for (const void* address : addresses) { diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_layout_layout__view.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_layout_layout__view.cc new file mode 100644 index 000000000000..9f7e6303248d --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_layout_layout__view.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/core/layout/layout_view.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/core/layout/layout_view.cc +@@ -74,7 +74,7 @@ + #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 + +@@ -785,7 +785,7 @@ void LayoutView::LayoutRoot() { + intrinsic_logical_widths_ = LogicalWidth(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The font code in FontPlatformData does not have a direct connection to the + // document, the frame or anything from which we could retrieve the device + // scale factor. After using zoom for DSF, the GraphicsContext does only ever diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_loader_mixed__content__checker.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_loader_mixed__content__checker.cc new file mode 100644 index 000000000000..40799dfc2b86 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_loader_mixed__content__checker.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/loader/mixed_content_checker.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/core/loader/mixed_content_checker.cc +@@ -485,7 +485,7 @@ bool MixedContentChecker::ShouldBlockFetch( + switch (context_type) { + case mojom::blink::MixedContentContextType::kOptionallyBlockable: + +-#if (BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)) && \ ++#if (BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(ENABLE_CAST_RECEIVER) + // Fuchsia WebEngine can be configured to allow loading Mixed Content from + // an insecure IP address. This is a workaround to revert Fuchsia Cast diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_origin__trials_origin__trial__context.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_origin__trials_origin__trial__context.cc new file mode 100644 index 000000000000..900388af9764 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_origin__trials_origin__trial__context.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/origin_trials/origin_trial_context.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/core/origin_trials/origin_trial_context.cc +@@ -573,7 +573,7 @@ bool OriginTrialContext::CanEnableTrialFromName(const + } + + if (trial_name == "TranslationAPI") { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled(features::kTranslationAPI); + #else + return false; diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_page_context__menu__controller.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_page_context__menu__controller.cc new file mode 100644 index 000000000000..a1bc19db2d68 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_page_context__menu__controller.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/page/context_menu_controller.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/core/page/context_menu_controller.cc +@@ -641,7 +641,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame + if (potential_image_node != nullptr && + IsA<HTMLCanvasElement>(potential_image_node)) { + data.media_type = mojom::blink::ContextMenuDataMediaType::kCanvas; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/40902474): Support reading from the WebGPU front buffer + // on Linux and remove the below code, which results in "Copy Image" and + // "Save Image To" being grayed out in the context menu. diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_paint_paint__layer.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_paint_paint__layer.cc new file mode 100644 index 000000000000..888937a1f6de --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_paint_paint__layer.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/paint/paint_layer.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/core/paint/paint_layer.cc +@@ -124,7 +124,7 @@ namespace { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + struct SameSizeAsPaintLayer : GarbageCollected<PaintLayer>, DisplayItemClient { + // The bit fields may fit into the machine word of DisplayItemClient which + // has only 8-bit data. diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc new file mode 100644 index 000000000000..86302501e03d --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc +@@ -146,7 +146,7 @@ bool ScrollbarThemeAura::SupportsDragSnapBack() const + // Disable snapback on desktop Linux to better integrate with the desktop + // behavior. Typically, Linux apps do not implement scrollbar snapback (this + // is true for at least GTK and QT apps). +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return false; + #else + return true; +@@ -423,7 +423,7 @@ bool ScrollbarThemeAura::ShouldCenterOnThumb(const Scr + + bool ScrollbarThemeAura::ShouldCenterOnThumb(const Scrollbar& scrollbar, + const WebMouseEvent& event) const { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (event.button == WebPointerProperties::Button::kMiddle) + return true; + #endif diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_xml_xslt__processor.h b/devel/electron36/files/patch-third__party_blink_renderer_core_xml_xslt__processor.h new file mode 100644 index 000000000000..ec9781c833a7 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_xml_xslt__processor.h @@ -0,0 +1,14 @@ +--- third_party/blink/renderer/core/xml/xslt_processor.h.orig 2024-02-21 00:20:54 UTC ++++ third_party/blink/renderer/core/xml/xslt_processor.h +@@ -77,7 +77,11 @@ class XSLTProcessor final : public ScriptWrappable { + + void reset(); + ++#if (LIBXML_VERSION >= 21200) + static void ParseErrorFunc(void* user_data, const xmlError*); ++#else ++ static void ParseErrorFunc(void* user_data, xmlError*); ++#endif + static void GenericErrorFunc(void* user_data, const char* msg, ...); + + // Only for libXSLT callbacks diff --git a/devel/electron36/files/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc b/devel/electron36/files/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc new file mode 100644 index 000000000000..170f198383d4 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc @@ -0,0 +1,14 @@ +--- third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc +@@ -68,7 +68,11 @@ void XSLTProcessor::GenericErrorFunc(void*, const char + // It would be nice to do something with this error message. + } + ++#if (LIBXML_VERSION >= 21200) + void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) { ++#else ++void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) { ++#endif + FrameConsole* console = static_cast<FrameConsole*>(user_data); + if (!console) + return; diff --git a/devel/electron36/files/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc b/devel/electron36/files/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc new file mode 100644 index 000000000000..cb1a44fc6823 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/media/audio/audio_device_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/modules/media/audio/audio_device_factory.cc +@@ -33,7 +33,7 @@ AudioDeviceFactory* g_factory_override = nullptr; + // Set when the default factory is overridden. + AudioDeviceFactory* g_factory_override = nullptr; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Due to driver deadlock issues on Windows (http://crbug/422522) there is a + // chance device authorization response is never received from the browser side. + // In this case we will time out, to avoid renderer hang forever waiting for diff --git a/devel/electron36/files/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc b/devel/electron36/files/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc new file mode 100644 index 000000000000..ce004e8e9d1e --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc +@@ -857,7 +857,7 @@ TEST_F(AudioRendererMixerManagerTest, MixerParamsLaten + mixer->get_output_params_for_testing().sample_rate()); + + #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). + EXPECT_EQ(output_sample_rate / 100, + mixer->get_output_params_for_testing().frames_per_buffer()); diff --git a/devel/electron36/files/patch-third__party_blink_renderer_modules_peerconnection_rtc__data__channel.cc b/devel/electron36/files/patch-third__party_blink_renderer_modules_peerconnection_rtc__data__channel.cc new file mode 100644 index 000000000000..005e9b87956f --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_modules_peerconnection_rtc__data__channel.cc @@ -0,0 +1,10 @@ +--- third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc.orig 2025-01-27 17:37:37 UTC ++++ third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc +@@ -542,6 +542,7 @@ void RTCDataChannel::send(Blob* data, ExceptionState& + pending_messages_.push_back(message); + } + ++#undef close + void RTCDataChannel::close() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (state_ == webrtc::DataChannelInterface::kClosing || diff --git a/devel/electron36/files/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc b/devel/electron36/files/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc new file mode 100644 index 000000000000..0abbc54aa242 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc.orig 2024-10-16 21:31:46 UTC ++++ third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc +@@ -304,7 +304,7 @@ TEST_F(WebRtcAudioRendererTest, DISABLED_VerifySinkPar + SetupRenderer(kDefaultOutputDeviceId); + renderer_proxy_->Start(); + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + static const int kExpectedBufferSize = kHardwareSampleRate / 100; + #elif BUILDFLAG(IS_ANDROID) + static const int kExpectedBufferSize = 2 * kHardwareSampleRate / 100; diff --git a/devel/electron36/files/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc b/devel/electron36/files/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc new file mode 100644 index 000000000000..969c27b58e19 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc +@@ -465,7 +465,7 @@ class AudioWorkletThreadPriorityTest + + // TODO(crbug.com/1022888): The worklet thread priority is always NORMAL + // on OS_LINUX and OS_CHROMEOS regardless of the thread priority setting. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (expected_priority == base::ThreadPriorityForTest::kRealtimeAudio || + expected_priority == base::ThreadPriorityForTest::kDisplay) { + EXPECT_EQ(actual_priority, base::ThreadPriorityForTest::kNormal); diff --git a/devel/electron36/files/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc b/devel/electron36/files/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc new file mode 100644 index 000000000000..38adffe779b5 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +@@ -6338,7 +6338,7 @@ void WebGLRenderingContextBase::TexImageHelperMediaVid + constexpr bool kAllowZeroCopyImages = true; + #endif + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/1175907): Only TexImage2D seems to work with the GPU path on + // Android M -- appears to work fine on R, but to avoid regressions in <video> + // limit to TexImage2D only for now. Fails conformance test on Nexus 5X: diff --git a/devel/electron36/files/patch-third__party_blink_renderer_modules_webgpu_gpu__canvas__context.cc b/devel/electron36/files/patch-third__party_blink_renderer_modules_webgpu_gpu__canvas__context.cc new file mode 100644 index 000000000000..b494e315f755 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_modules_webgpu_gpu__canvas__context.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc +@@ -207,7 +207,7 @@ bool GPUCanvasContext::PaintRenderingResultsToCanvas( + + scoped_refptr<WebGPUMailboxTexture> front_buffer_texture; + if (source_buffer == kFrontBuffer) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // By returning false here the canvas will show up as black in the scenarios + // that copy the front buffer, such as printing. + // TODO(crbug.com/40902474): Support concurrent SharedImage reads via Dawn diff --git a/devel/electron36/files/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc b/devel/electron36/files/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc new file mode 100644 index 000000000000..e0c19ea3a86a --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/webgpu/gpu_queue.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/modules/webgpu/gpu_queue.cc +@@ -812,7 +812,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) + bool forceReadback = true; + #elif BUILDFLAG(IS_ANDROID) + // TODO(crbug.com/dawn/1969): Some Android devices don't fail to copy from diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_BUILD.gn b/devel/electron36/files/patch-third__party_blink_renderer_platform_BUILD.gn new file mode 100644 index 000000000000..8c0a29a7bdd7 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/BUILD.gn.orig 2025-05-11 11:50:46 UTC ++++ third_party/blink/renderer/platform/BUILD.gn +@@ -2048,7 +2048,7 @@ static_library("test_support") { + ] + + # fuzzed_data_provider may not work with a custom toolchain. +- if (custom_toolchain == "" && is_clang) { ++ if ((custom_toolchain == "" && is_clang) && !is_bsd) { + sources += [ + "testing/fuzzed_data_provider.cc", + "testing/fuzzed_data_provider.h", diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__cache.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__cache.cc new file mode 100644 index 000000000000..da76a891d7b0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__cache.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/platform/fonts/font_cache.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/renderer/platform/fonts/font_cache.cc +@@ -82,7 +82,7 @@ SkFontMgr* FontCache::static_font_manager_ = nullptr; + + SkFontMgr* FontCache::static_font_manager_ = nullptr; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + float FontCache::device_scale_factor_ = 1.0; + #endif + +@@ -133,7 +133,7 @@ const FontPlatformData* FontCache::SystemFontPlatformD + const FontDescription& font_description) { + const AtomicString& family = FontCache::SystemFontFamily(); + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \ +- BUILDFLAG(IS_IOS) ++ BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + if (family.empty() || family == font_family_names::kSystemUi) + return nullptr; + #else diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__cache.h b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__cache.h new file mode 100644 index 000000000000..d23eef07e520 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__cache.h @@ -0,0 +1,47 @@ +--- third_party/blink/renderer/platform/fonts/font_cache.h.orig 2024-10-16 21:31:46 UTC ++++ third_party/blink/renderer/platform/fonts/font_cache.h +@@ -55,7 +55,7 @@ + #include "third_party/skia/include/core/SkFontMgr.h" + #include "third_party/skia/include/core/SkRefCnt.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/gfx/font_fallback_linux.h" + #endif + +@@ -167,7 +167,7 @@ class PLATFORM_EXPORT FontCache final { + + static void MaybePreloadSystemFonts(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // These are needed for calling QueryRenderStyleForStrike, since + // gfx::GetFontRenderParams makes distinctions based on DSF. + static float DeviceScaleFactor() { return device_scale_factor_; } +@@ -243,7 +243,7 @@ class PLATFORM_EXPORT FontCache final { + const char* locale_family_name); + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static bool GetFontForCharacter(UChar32, + const char* preferred_locale, + gfx::FallbackFontData*); +@@ -316,7 +316,7 @@ class PLATFORM_EXPORT FontCache final { + const FontFaceCreationParams&, + std::string& name); + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static AtomicString GetFamilyNameForCharacter(SkFontMgr*, + UChar32, + const FontDescription&, +@@ -353,7 +353,7 @@ class PLATFORM_EXPORT FontCache final { + bool is_test_font_mgr_ = false; + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static float device_scale_factor_; + #endif + diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__description.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__description.cc new file mode 100644 index 000000000000..16b91b7448d0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__description.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/platform/fonts/font_description.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/platform/fonts/font_description.cc +@@ -41,7 +41,7 @@ + #include "third_party/blink/renderer/platform/wtf/text/string_hash.h" + #include "third_party/blink/renderer/platform/wtf/text/string_hasher.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 "third_party/blink/renderer/platform/fonts/font_cache.h" + #endif + +@@ -280,7 +280,7 @@ FontCacheKey FontDescription::CacheKey( + static_cast<unsigned>(fields_.orientation_) << 1 | // bit 2-3 + static_cast<unsigned>(fields_.subpixel_text_position_); // bit 1 + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + float device_scale_factor_for_key = FontCache::DeviceScaleFactor(); + #else + float device_scale_factor_for_key = 1.0f; diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc new file mode 100644 index 000000000000..6e245dc57c55 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc @@ -0,0 +1,29 @@ +--- third_party/blink/renderer/platform/fonts/font_metrics.cc.orig 2024-02-21 00:20:54 UTC ++++ third_party/blink/renderer/platform/fonts/font_metrics.cc +@@ -39,7 +39,7 @@ namespace blink { + namespace blink { + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // This is the largest VDMX table which we'll try to load and parse. + static const size_t kMaxVDMXTableSize = 1024 * 1024; // 1 MB + #endif +@@ -67,7 +67,7 @@ void FontMetrics::AscentDescentWithHacks( + bool is_vdmx_valid = false; + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Manually digging up VDMX metrics is only applicable when bytecode hinting + // using FreeType. With DirectWrite or CoreText, no bytecode hinting is ever + // done. This code should be pushed into FreeType (hinted font metrics). +@@ -111,7 +111,7 @@ void FontMetrics::AscentDescentWithHacks( + descent = SkScalarRoundToScalar(metrics.fDescent); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // When subpixel positioning is enabled, if the descent is rounded down, + // the descent part of the glyph may be truncated when displayed in a + // 'overflow: hidden' container. To avoid that, borrow 1 unit from the diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc new file mode 100644 index 000000000000..957a508124f0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc.orig 2022-03-25 21:59:56 UTC ++++ third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc +@@ -9,7 +9,7 @@ + #if BUILDFLAG(IS_ANDROID) + #include "third_party/blink/public/mojom/font_unique_name_lookup/font_unique_name_lookup.mojom-blink.h" + #include "third_party/blink/renderer/platform/fonts/android/font_unique_name_lookup_android.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/blink/renderer/platform/fonts/linux/font_unique_name_lookup_linux.h" + #elif BUILDFLAG(IS_WIN) + #include "third_party/blink/renderer/platform/fonts/win/font_unique_name_lookup_win.h" +@@ -24,7 +24,7 @@ std::unique_ptr<FontUniqueNameLookup> + FontUniqueNameLookup::GetPlatformUniqueNameLookup() { + #if BUILDFLAG(IS_ANDROID) + return std::make_unique<FontUniqueNameLookupAndroid>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return std::make_unique<FontUniqueNameLookupLinux>(); + #elif BUILDFLAG(IS_WIN) + return std::make_unique<FontUniqueNameLookupWin>(); diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc new file mode 100644 index 000000000000..23e64a8ae77c --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc +@@ -65,7 +65,7 @@ AtomicString ToAtomicString(const SkString& str) { + return AtomicString::FromUTF8(std::string_view(str.begin(), str.end())); + } + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // 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. +@@ -246,7 +246,7 @@ const FontPlatformData* FontCache::CreateFontPlatformD + std::string name; + + sk_sp<SkTypeface> typeface; +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool noto_color_emoji_from_gmscore = false; + #if BUILDFLAG(IS_ANDROID) + // Use the unique local matching pathway for fetching Noto Color Emoji Compat diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc new file mode 100644 index 000000000000..a00b84bd937c --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc @@ -0,0 +1,15 @@ +--- third_party/blink/renderer/platform/graphics/begin_frame_provider.cc.orig 2023-08-10 01:48:51 UTC ++++ third_party/blink/renderer/platform/graphics/begin_frame_provider.cc +@@ -71,8 +71,12 @@ void BeginFrameProvider::CreateCompositorFrameSinkIfNe + + // Once we are using RAF, this thread is driving user interactive display + // updates. Update priority accordingly. ++ // pledge(2) ++ // stop this baloney ++#if !defined(OS_OPENBSD) + base::PlatformThread::SetCurrentThreadType( + base::ThreadType::kDisplayCritical); ++#endif + + mojo::Remote<mojom::blink::EmbeddedFrameSinkProvider> provider; + Platform::Current()->GetBrowserInterfaceBroker()->GetInterface( diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_gpu_image__layer__bridge.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_gpu_image__layer__bridge.cc new file mode 100644 index 000000000000..6b3bdb9a7ce6 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_gpu_image__layer__bridge.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc +@@ -47,7 +47,7 @@ scoped_refptr<StaticBitmapImage> MakeAccelerated( + + const auto paint_image = source->PaintImageForCurrentFrame(); + const auto image_info = paint_image.GetSkImageInfo(); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(b/330865436): On Linux, CanvasResourceProvider doesn't always check + // for SCANOUT support correctly on X11 and it's never supported in + // practice. Therefore, don't include it until this flow is reworked. diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc new file mode 100644 index 000000000000..c8f5f1fd1da5 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/graphics/video_frame_submitter.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/blink/renderer/platform/graphics/video_frame_submitter.cc +@@ -421,7 +421,7 @@ void VideoFrameSubmitter::OnBeginFrame( + auto& details = timing_details.find(frame_token)->value; + auto& feedback = details.presentation_feedback; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO: On Linux failure flag is unreliable, and perfectly rendered frames + // are reported as failures all the time. + bool presentation_failure = false; diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc new file mode 100644 index 000000000000..3c43f26940d4 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc @@ -0,0 +1,28 @@ +--- third_party/blink/renderer/platform/instrumentation/partition_alloc_memory_dump_provider.cc.orig 2024-04-15 20:34:06 UTC ++++ third_party/blink/renderer/platform/instrumentation/partition_alloc_memory_dump_provider.cc +@@ -14,7 +14,9 @@ namespace blink { + + namespace blink { + ++#if !BUILDFLAG(IS_BSD) + const char kPartitionAllocDumpName[] = "partition_alloc"; ++#endif + + PartitionAllocMemoryDumpProvider* PartitionAllocMemoryDumpProvider::Instance() { + DEFINE_STATIC_LOCAL(PartitionAllocMemoryDumpProvider, instance, ()); +@@ -24,6 +26,7 @@ bool PartitionAllocMemoryDumpProvider::OnMemoryDump( + bool PartitionAllocMemoryDumpProvider::OnMemoryDump( + const base::trace_event::MemoryDumpArgs& args, + base::trace_event::ProcessMemoryDump* memory_dump) { ++#if !BUILDFLAG(IS_BSD) + using base::trace_event::MemoryDumpLevelOfDetail; + + MemoryDumpLevelOfDetail level_of_detail = args.level_of_detail; +@@ -49,6 +52,7 @@ bool PartitionAllocMemoryDumpProvider::OnMemoryDump( + "size", "bytes", partition_stats_dumper.total_active_bytes()); + memory_dump->AddOwnershipEdge(allocated_objects_dump->guid(), + partitions_dump->guid()); ++#endif + + return true; + } diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc new file mode 100644 index 000000000000..c5e1968fb125 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc @@ -0,0 +1,17 @@ +--- third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc +@@ -324,12 +324,12 @@ SupportedFormats GetSupportedFormatsInternal( + supported_formats.profiles.push_back(profile.profile); + supported_formats.sdp_formats.push_back(std::move(*format)); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if BUILDFLAG(IS_WIN) + const bool kShouldAddH264Cbp = + base::FeatureList::IsEnabled(kMediaFoundationH264CbpEncoding) && + profile.profile == media::VideoCodecProfile::H264PROFILE_BASELINE; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const bool kShouldAddH264Cbp = + profile.profile == media::VideoCodecProfile::H264PROFILE_BASELINE; + #endif diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/devel/electron36/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 new file mode 100644 index 000000000000..65807d5b3422 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 @@ -0,0 +1,74 @@ +--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/platform/runtime_enabled_features.json5 +@@ -434,7 +434,7 @@ + name: "AppTitle", + status: "experimental", + origin_trial_feature_name: "AppTitle", +- origin_trial_os: ["win", "mac", "linux", "chromeos"], ++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], + base_feature: "WebAppEnableAppTitle", + }, + { +@@ -1698,7 +1698,7 @@ + name: "DocumentIsolationPolicy", + status: "experimental", + origin_trial_feature_name: "DocumentIsolationPolicy", +- origin_trial_os: ["win", "mac", "linux", "chromeos"], ++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], + base_feature: "none", + }, + { +@@ -1943,7 +1943,7 @@ + base_feature: "none", + public: true, + origin_trial_feature_name: "FedCmMultipleIdentityProviders", +- origin_trial_os: ["win", "mac", "linux", "chromeos"], ++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], + origin_trial_allows_third_party: true, + }, + { +@@ -3331,7 +3331,7 @@ + // Tracking bug for the implementation: https://crbug.com/1462930 + name: "PermissionElement", + origin_trial_feature_name: "PermissionElement", +- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "android"], ++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "android", "openbsd", "freebsd"], + status: "experimental", + public: true, + base_feature_status: "enabled", +@@ -3475,7 +3475,7 @@ + { + name: "PrivateNetworkAccessPermissionPrompt", + origin_trial_feature_name: "PrivateNetworkAccessPermissionPrompt", +- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"], ++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"], + status: "stable", + public: true, + base_feature: "none", +@@ -4636,7 +4636,7 @@ + name: "UnrestrictedSharedArrayBuffer", + base_feature: "none", + origin_trial_feature_name: "UnrestrictedSharedArrayBuffer", +- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"], ++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"], + }, + // Enables using policy-controlled feature "usb-unrestricted" to allow + // isolated context to access protected USB interface classes and to +@@ -4811,7 +4811,7 @@ + { + name: "WebAppScopeExtensions", + origin_trial_feature_name: "WebAppScopeExtensions", +- origin_trial_os: ["win", "mac", "linux", "chromeos"], ++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], + status: "experimental", + base_feature: "none", + }, +@@ -5086,7 +5086,7 @@ + { + name: "WebIdentityDigitalCredentials", + origin_trial_feature_name: "WebIdentityDigitalCredentials", +- origin_trial_os: ["android", "win", "mac", "linux", "chromeos"], ++ origin_trial_os: ["android", "win", "mac", "linux", "chromeos", "openbsd", "freebsd"], + origin_trial_allows_third_party: true, + implied_by: ["WebIdentityDigitalCredentialsCreation"], + public: true, diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc new file mode 100644 index 000000000000..a25484e68d43 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/scheduler/common/thread.cc.orig 2025-01-27 17:37:37 UTC ++++ third_party/blink/renderer/platform/scheduler/common/thread.cc +@@ -87,7 +87,7 @@ void Thread::CreateAndSetCompositorThread() { + "Compositor"); + })); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_OPENBSD) + compositor_thread->GetTaskRunner()->PostTaskAndReplyWithResult( + FROM_HERE, base::BindOnce(&base::PlatformThread::CurrentId), + base::BindOnce([](base::PlatformThreadId compositor_thread_id) { diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc new file mode 100644 index 000000000000..e2e3962011c0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/widget/compositing/blink_categorized_worker_pool_delegate.cc.orig 2023-05-25 00:42:05 UTC ++++ 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/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_container__annotations.h b/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_container__annotations.h new file mode 100644 index 000000000000..aa6320f652e3 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_container__annotations.h @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/wtf/container_annotations.h.orig 2025-04-22 20:15:27 UTC ++++ third_party/blink/renderer/platform/wtf/container_annotations.h +@@ -11,7 +11,7 @@ + // TODO(ochang): Remove the ARCH_CPU_X86_64 condition to enable this for X86 + // once the crashes there have been fixed: http://crbug.com/461406 + #if defined(ADDRESS_SANITIZER) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + defined(ARCH_CPU_X86_64) + + // Annotations require buffers to begin on an 8-byte boundary. See diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_math__extras.h b/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_math__extras.h new file mode 100644 index 000000000000..b184b8b79210 --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_math__extras.h @@ -0,0 +1,23 @@ +--- third_party/blink/renderer/platform/wtf/math_extras.h.orig 2022-07-22 17:30:31 UTC ++++ 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 + constexpr double RoundHalfTowardsPositiveInfinity(double value) { + return std::floor(value + 0.5); + } +@@ -135,6 +139,9 @@ constexpr double RoundHalfTowardsPositiveInfinity(doub + constexpr float RoundHalfTowardsPositiveInfinity(float value) { + return std::floor(value + 0.5f); + } ++#if defined(OS_FREEBSD) ++#pragma clang diagnostic pop ++#endif + + // ClampTo() is implemented by templated helper classes (to allow for partial + // template specialization) as well as several helper functions. diff --git a/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_stack__util.cc b/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_stack__util.cc new file mode 100644 index 000000000000..579aabbad32a --- /dev/null +++ b/devel/electron36/files/patch-third__party_blink_renderer_platform_wtf_stack__util.cc @@ -0,0 +1,37 @@ +--- third_party/blink/renderer/platform/wtf/stack_util.cc.orig 2025-01-27 17:37:37 UTC ++++ third_party/blink/renderer/platform/wtf/stack_util.cc +@@ -23,6 +23,11 @@ extern "C" void* __libc_stack_end; // NOLINT + extern "C" void* __libc_stack_end; // NOLINT + #endif + ++#if BUILDFLAG(IS_BSD) ++#include <sys/signal.h> ++#include <pthread_np.h> ++#endif ++ + namespace WTF { + + size_t GetUnderestimatedStackSize() { +@@ -67,6 +72,8 @@ size_t GetUnderestimatedStackSize() { + // low as 512k. + // + return 512 * 1024; ++#elif BUILDFLAG(IS_OPENBSD) ++ return 512 * 1024; + #elif BUILDFLAG(IS_APPLE) + // pthread_get_stacksize_np() returns too low a value for the main thread on + // OSX 10.9, +@@ -152,6 +159,13 @@ void* GetStackStart() { + ::GetCurrentThreadStackLimits(&lowLimit, &highLimit); + return reinterpret_cast<void*>(highLimit); + #endif ++#elif BUILDFLAG(IS_OPENBSD) ++ stack_t ss; ++ void *base; ++ int error = pthread_stackseg_np(pthread_self(), &ss); ++ CHECK(!error); ++ base = (void*)((size_t) ss.ss_sp - ss.ss_size); ++ return reinterpret_cast<uint8_t*>(base) + ss.ss_size; + #else + #error Unsupported getStackStart on this platform. + #endif diff --git a/devel/electron36/files/patch-third__party_brotli_common_platform.h b/devel/electron36/files/patch-third__party_brotli_common_platform.h new file mode 100644 index 000000000000..60ccb4e08e5c --- /dev/null +++ b/devel/electron36/files/patch-third__party_brotli_common_platform.h @@ -0,0 +1,11 @@ +--- third_party/brotli/common/platform.h.orig 2022-02-07 13:39:41 UTC ++++ third_party/brotli/common/platform.h +@@ -28,7 +28,7 @@ + #include <brotli/port.h> + #include <brotli/types.h> + +-#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__) ++#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__) || defined(OS_BSD) + #include <endian.h> + #elif defined(OS_FREEBSD) + #include <machine/endian.h> diff --git a/devel/electron36/files/patch-third__party_cpuinfo_cpuinfo.gni b/devel/electron36/files/patch-third__party_cpuinfo_cpuinfo.gni new file mode 100644 index 000000000000..19ca636ed489 --- /dev/null +++ b/devel/electron36/files/patch-third__party_cpuinfo_cpuinfo.gni @@ -0,0 +1,11 @@ +--- third_party/cpuinfo/cpuinfo.gni.orig 2024-04-15 20:34:24 UTC ++++ third_party/cpuinfo/cpuinfo.gni +@@ -8,7 +8,7 @@ use_cpuinfo = + current_cpu != "s390" && current_cpu != "s390x" && + current_cpu != "riscv64" && + # 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/devel/electron36/files/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni b/devel/electron36/files/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni new file mode 100644 index 000000000000..2edbba0f4f8b --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/build/crashpad_buildconfig.gni.orig 2023-10-19 19:59:07 UTC ++++ 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/devel/electron36/files/patch-third__party_crashpad_crashpad_client_BUILD.gn b/devel/electron36/files/patch-third__party_crashpad_crashpad_client_BUILD.gn new file mode 100644 index 000000000000..14dbefc2ea92 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_client_BUILD.gn @@ -0,0 +1,16 @@ +--- third_party/crashpad/crashpad/client/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ third_party/crashpad/crashpad/client/BUILD.gn +@@ -134,6 +134,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/devel/electron36/files/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc b/devel/electron36/files/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc new file mode 100644 index 000000000000..3844bf05eeda --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc @@ -0,0 +1,43 @@ +--- third_party/crashpad/crashpad/client/crashpad_client_posix.cc.orig 2022-02-07 13:39:41 UTC ++++ 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/devel/electron36/files/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc b/devel/electron36/files/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc new file mode 100644 index 000000000000..f6a27c5e4420 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc @@ -0,0 +1,13 @@ +--- third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc.orig 2022-07-22 17:30:31 UTC ++++ 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/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_address__types.h b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_address__types.h new file mode 100644 index 000000000000..bfb69fcfc0d0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_address__types.h @@ -0,0 +1,20 @@ +--- third_party/crashpad/crashpad/util/misc/address_types.h.orig 2022-02-28 16:54:41 UTC ++++ 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/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_capture__context.h b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_capture__context.h new file mode 100644 index 000000000000..78dfbf17b79f --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_capture__context.h @@ -0,0 +1,22 @@ +--- third_party/crashpad/crashpad/util/misc/capture_context.h.orig 2023-10-19 19:59:07 UTC ++++ 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/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_metrics.cc b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_metrics.cc new file mode 100644 index 000000000000..a444c9f0a8e6 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_metrics.cc @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/util/misc/metrics.cc.orig 2022-02-28 16:54:41 UTC ++++ 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/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_uuid.cc b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_uuid.cc new file mode 100644 index 000000000000..a7f6fab5f5e6 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_misc_uuid.cc @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/util/misc/uuid.cc.orig 2024-06-18 21:43:57 UTC ++++ third_party/crashpad/crashpad/util/misc/uuid.cc +@@ -110,7 +110,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/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc new file mode 100644 index 000000000000..fca107bf7098 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/util/posix/close_multiple.cc.orig 2023-11-29 21:40:36 UTC ++++ third_party/crashpad/crashpad/util/posix/close_multiple.cc +@@ -73,7 +73,7 @@ bool CloseMultipleNowOrOnExecUsingFDDir(int min_fd, in + // 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/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc new file mode 100644 index 000000000000..035241c5dc1b --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/util/posix/drop_privileges.cc.orig 2022-02-28 16:54:41 UTC ++++ 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/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_signals.cc b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_signals.cc new file mode 100644 index 000000000000..efaa7aaa5485 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_signals.cc @@ -0,0 +1,33 @@ +--- third_party/crashpad/crashpad/util/posix/signals.cc.orig 2022-08-31 12:19:35 UTC ++++ 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/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc new file mode 100644 index 000000000000..430eb25bf721 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc @@ -0,0 +1,20 @@ +--- third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc.orig 2024-08-14 20:55:55 UTC ++++ third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc +@@ -68,7 +68,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", +@@ -139,7 +139,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/devel/electron36/files/patch-third__party_crc32c_BUILD.gn b/devel/electron36/files/patch-third__party_crc32c_BUILD.gn new file mode 100644 index 000000000000..fb4e1a944845 --- /dev/null +++ b/devel/electron36/files/patch-third__party_crc32c_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/crc32c/BUILD.gn.orig 2023-05-25 00:42:42 UTC ++++ third_party/crc32c/BUILD.gn +@@ -46,7 +46,7 @@ config("crc32c_config") { + } + + # Android added <sys/auxv.h> in API level 18. +- if (is_linux || is_chromeos || is_android) { ++ if (is_linux || is_chromeos || is_android && !is_bsd) { + defines += [ + "HAVE_STRONG_GETAUXVAL=1", + "HAVE_WEAK_GETAUXVAL=1", diff --git a/devel/electron36/files/patch-third__party_dawn_include_dawn_native_VulkanBackend.h b/devel/electron36/files/patch-third__party_dawn_include_dawn_native_VulkanBackend.h new file mode 100644 index 000000000000..7c6e9095e71c --- /dev/null +++ b/devel/electron36/files/patch-third__party_dawn_include_dawn_native_VulkanBackend.h @@ -0,0 +1,11 @@ +--- third_party/dawn/include/dawn/native/VulkanBackend.h.orig 2024-06-18 21:44:13 UTC ++++ third_party/dawn/include/dawn/native/VulkanBackend.h +@@ -83,7 +83,7 @@ struct ExternalImageExportInfoVk : ExternalImageExport + }; + + // Can't use DAWN_PLATFORM_IS(LINUX) since header included in both Dawn and Chrome +-#if defined(__linux__) || defined(__Fuchsia__) ++#if defined(__linux__) || defined(__Fuchsia__) || defined(__OpenBSD__) || defined(__FreeBSD__) + + // Common properties of external images represented by FDs. On successful import the file + // descriptor's ownership is transferred to the Dawn implementation and they shouldn't be diff --git a/devel/electron36/files/patch-third__party_dawn_src_dawn_common_Platform.h b/devel/electron36/files/patch-third__party_dawn_src_dawn_common_Platform.h new file mode 100644 index 000000000000..78775c5d5a31 --- /dev/null +++ b/devel/electron36/files/patch-third__party_dawn_src_dawn_common_Platform.h @@ -0,0 +1,14 @@ +--- third_party/dawn/src/dawn/common/Platform.h.orig 2025-04-22 20:15:27 UTC ++++ third_party/dawn/src/dawn/common/Platform.h +@@ -60,6 +60,11 @@ + #error "Unsupported Windows platform." + #endif + ++#elif defined(__OpenBSD__) || defined(__FreeBSD__) ++#define DAWN_PLATFORM_IS_LINUX 1 ++#define DAWN_PLATFORM_IS_BSD 1 ++#define DAWN_PLATFORM_IS_POSIX 1 ++ + #elif defined(__linux__) + #define DAWN_PLATFORM_IS_LINUX 1 + #define DAWN_PLATFORM_IS_POSIX 1 diff --git a/devel/electron36/files/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp b/devel/electron36/files/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp new file mode 100644 index 000000000000..821650171be3 --- /dev/null +++ b/devel/electron36/files/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp @@ -0,0 +1,11 @@ +--- third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp.orig 2025-04-22 20:15:27 UTC ++++ third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp +@@ -57,7 +57,7 @@ constexpr char kSwiftshaderLibName[] = "libvk_swiftsha + #endif + + #if DAWN_PLATFORM_IS(LINUX) +-#if DAWN_PLATFORM_IS(ANDROID) ++#if DAWN_PLATFORM_IS(ANDROID) || DAWN_PLATFORM_IS(BSD) + constexpr char kVulkanLibName[] = "libvulkan.so"; + #else + constexpr char kVulkanLibName[] = "libvulkan.so.1"; diff --git a/devel/electron36/files/patch-third__party_electron__node_deps_cares_unofficial.gni b/devel/electron36/files/patch-third__party_electron__node_deps_cares_unofficial.gni new file mode 100644 index 000000000000..6a52f0a8015c --- /dev/null +++ b/devel/electron36/files/patch-third__party_electron__node_deps_cares_unofficial.gni @@ -0,0 +1,32 @@ +--- third_party/electron_node/deps/cares/unofficial.gni.orig 2025-02-10 16:22:55 UTC ++++ third_party/electron_node/deps/cares/unofficial.gni +@@ -44,10 +44,12 @@ template("cares_gn_build") { + ] + if (is_win) { + include_dirs += [ "config/win32" ] +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { + include_dirs += [ "config/linux" ] + } else if (is_mac) { + include_dirs += [ "config/darwin" ] ++ } else if (is_freebsd) { ++ include_dirs += [ "config/freebsd" ] + } + + if (is_win) { +@@ -58,11 +60,14 @@ template("cares_gn_build") { + } + + sources = gypi_values.cares_sources_common +- if (is_linux) { ++ if (is_linux && !is_bsd) { + sources += [ "config/linux/ares_config.h" ] + } + if (is_mac) { + sources += gypi_values.cares_sources_mac ++ } ++ if (is_freebsd) { ++ sources += [ "config/freebsd/ares_config.h" ] + } + + if (is_clang) { diff --git a/devel/electron36/files/patch-third__party_electron__node_deps_histogram_unofficial.gni b/devel/electron36/files/patch-third__party_electron__node_deps_histogram_unofficial.gni new file mode 100644 index 000000000000..e3d0c37d09f8 --- /dev/null +++ b/devel/electron36/files/patch-third__party_electron__node_deps_histogram_unofficial.gni @@ -0,0 +1,11 @@ +--- third_party/electron_node/deps/histogram/unofficial.gni.orig 2025-02-10 16:22:55 UTC ++++ third_party/electron_node/deps/histogram/unofficial.gni +@@ -25,7 +25,7 @@ template("histogram_gn_build") { + "-Wno-unused-function", + ] + } +- if (is_linux) { ++ if (is_linux && !is_bsd) { + libs = [ "atomic" ] + } + } diff --git a/devel/electron36/files/patch-third__party_electron__node_deps_openssl_unofficial.gni b/devel/electron36/files/patch-third__party_electron__node_deps_openssl_unofficial.gni new file mode 100644 index 000000000000..abc9e795f3f6 --- /dev/null +++ b/devel/electron36/files/patch-third__party_electron__node_deps_openssl_unofficial.gni @@ -0,0 +1,11 @@ +--- third_party/electron_node/deps/openssl/unofficial.gni.orig 2025-02-10 16:22:55 UTC ++++ third_party/electron_node/deps/openssl/unofficial.gni +@@ -71,7 +71,7 @@ template("openssl_gn_build") { + } + if (is_win) { + libs = [ "crypt32.lib" ] +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { + libs = [ "atomic" ] + } + diff --git a/devel/electron36/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c b/devel/electron36/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c new file mode 100644 index 000000000000..b0d0bee1accb --- /dev/null +++ b/devel/electron36/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c @@ -0,0 +1,18 @@ +--- third_party/electron_node/deps/uv/src/unix/pipe.c.orig 2025-02-10 16:22:55 UTC ++++ third_party/electron_node/deps/uv/src/unix/pipe.c +@@ -207,9 +207,13 @@ int uv_pipe_open(uv_pipe_t* handle, uv_file fd) { + if (mode == -1) + return UV__ERR(errno); /* according to docs, must be EBADF */ + ++ /* If ioctl(FIONBIO) reports ENOTTY, try fcntl(F_GETFL) + fcntl(F_SETFL). ++ * Workaround for e.g. kqueue fds not supporting ioctls. ++ */ + err = uv__nonblock(fd, 1); +- if (err) +- return err; ++ if (err == UV_ENOTTY) ++ if (uv__nonblock == uv__nonblock_ioctl) ++ err = uv__nonblock_fcntl(fd, 1); + + #if defined(__APPLE__) + err = uv__stream_try_select((uv_stream_t*) handle, &fd); diff --git a/devel/electron36/files/patch-third__party_electron__node_deps_uv_unofficial.gni b/devel/electron36/files/patch-third__party_electron__node_deps_uv_unofficial.gni new file mode 100644 index 000000000000..c8ac6aa1d477 --- /dev/null +++ b/devel/electron36/files/patch-third__party_electron__node_deps_uv_unofficial.gni @@ -0,0 +1,34 @@ +--- third_party/electron_node/deps/uv/unofficial.gni.orig 2025-04-06 11:53:47 UTC ++++ third_party/electron_node/deps/uv/unofficial.gni +@@ -27,7 +27,7 @@ template("uv_gn_build") { + "_FILE_OFFSET_BITS=64", + ] + } +- if (is_linux) { ++ if (is_linux && !is_bsd) { + defines += [ + "_POSIX_C_SOURCE=200112", + "_GNU_SOURCE", +@@ -105,12 +105,21 @@ template("uv_gn_build") { + sources += gypi_values.uv_sources_posix + + [ "src/unix/proctitle.c" ] + } +- if (is_linux) { ++ if (is_linux && !is_bsd) { + sources += gypi_values.uv_sources_linux + } + if (is_apple) { + sources += gypi_values.uv_sources_apple + + gypi_values.uv_sources_bsd_common ++ } ++ if (is_freebsd) { ++ sources += gypi_values.uv_sources_bsd_common + [ ++ "src/unix/freebsd.c", ++ "src/unix/random-getrandom.c", ++ "src/unix/posix-hrtime.c", ++ "src/unix/bsd-proctitle.c", ++ ] ++ sources -= [ "src/unix/proctitle.c" ] + } + } + } diff --git a/devel/electron36/files/patch-third__party_ffmpeg_BUILD.gn b/devel/electron36/files/patch-third__party_ffmpeg_BUILD.gn new file mode 100644 index 000000000000..b378cae1df64 --- /dev/null +++ b/devel/electron36/files/patch-third__party_ffmpeg_BUILD.gn @@ -0,0 +1,10 @@ +--- third_party/ffmpeg/BUILD.gn.orig 2024-10-28 21:05:18 UTC ++++ third_party/ffmpeg/BUILD.gn +@@ -350,7 +350,6 @@ target(link_target_type, "ffmpeg_internal") { + libs += [ + "m", + "z", +- "rt", + ] + } + if (is_component_ffmpeg) { diff --git a/devel/electron36/files/patch-third__party_ffmpeg_configure b/devel/electron36/files/patch-third__party_ffmpeg_configure new file mode 100644 index 000000000000..07f34f026a0e --- /dev/null +++ b/devel/electron36/files/patch-third__party_ffmpeg_configure @@ -0,0 +1,13 @@ +--- third_party/ffmpeg/configure.orig 2025-04-22 20:15:27 UTC ++++ third_party/ffmpeg/configure +@@ -6855,8 +6855,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/devel/electron36/files/patch-third__party_ffmpeg_libavcodec_x86_cabac.h b/devel/electron36/files/patch-third__party_ffmpeg_libavcodec_x86_cabac.h new file mode 100644 index 000000000000..a0d30926495d --- /dev/null +++ b/devel/electron36/files/patch-third__party_ffmpeg_libavcodec_x86_cabac.h @@ -0,0 +1,12 @@ +--- third_party/ffmpeg/libavcodec/x86/cabac.h.orig 2022-02-07 13:39:41 UTC ++++ 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/devel/electron36/files/patch-third__party_ffmpeg_libavutil_cpu.c b/devel/electron36/files/patch-third__party_ffmpeg_libavutil_cpu.c new file mode 100644 index 000000000000..aeb14bb03c9d --- /dev/null +++ b/devel/electron36/files/patch-third__party_ffmpeg_libavutil_cpu.c @@ -0,0 +1,14 @@ +--- third_party/ffmpeg/libavutil/cpu.c.orig 2022-07-22 17:30:31 UTC ++++ 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/devel/electron36/files/patch-third__party_ffmpeg_libavutil_mem.c b/devel/electron36/files/patch-third__party_ffmpeg_libavutil_mem.c new file mode 100644 index 000000000000..6b83f6ed0c81 --- /dev/null +++ b/devel/electron36/files/patch-third__party_ffmpeg_libavutil_mem.c @@ -0,0 +1,12 @@ +--- third_party/ffmpeg/libavutil/mem.c.orig 2022-05-19 14:06:27 UTC ++++ 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/devel/electron36/files/patch-third__party_ffmpeg_libavutil_random__seed.c b/devel/electron36/files/patch-third__party_ffmpeg_libavutil_random__seed.c new file mode 100644 index 000000000000..178c8c120424 --- /dev/null +++ b/devel/electron36/files/patch-third__party_ffmpeg_libavutil_random__seed.c @@ -0,0 +1,14 @@ +--- third_party/ffmpeg/libavutil/random_seed.c.orig 2023-10-19 19:59:55 UTC ++++ 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/devel/electron36/files/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm b/devel/electron36/files/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm new file mode 100644 index 000000000000..248cc08c4a3b --- /dev/null +++ b/devel/electron36/files/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm @@ -0,0 +1,23 @@ +--- third_party/ffmpeg/libavutil/x86/x86inc.asm.orig 2024-06-18 21:44:14 UTC ++++ third_party/ffmpeg/libavutil/x86/x86inc.asm +@@ -46,6 +46,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 +@@ -861,6 +867,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/devel/electron36/files/patch-third__party_fontconfig_include_config.h b/devel/electron36/files/patch-third__party_fontconfig_include_config.h new file mode 100644 index 000000000000..2d5cf1750e27 --- /dev/null +++ b/devel/electron36/files/patch-third__party_fontconfig_include_config.h @@ -0,0 +1,49 @@ +--- third_party/fontconfig/include/config.h.orig 2024-04-15 20:34:24 UTC ++++ third_party/fontconfig/include/config.h +@@ -13,7 +13,7 @@ + + #define FC_CACHEDIR "/var/cache/fontconfig" + +-#define FC_DEFAULT_FONTS "\t<dir>/usr/share/fonts</dir>\n\t<dir>/usr/local/share/fonts</dir>\n" ++#define FC_DEFAULT_FONTS "\t<dir>/usr/X11R6/lib/X11/fonts</dir>" + + #define FC_FONTPATH "" + +@@ -66,7 +66,7 @@ + + #define HAVE_MMAP 1 + +-#define HAVE_POSIX_FADVISE 1 ++#define HAVE_POSIX_FADVISE 0 + + #define HAVE_PTHREAD 1 + +@@ -74,10 +74,13 @@ + + #define HAVE_RANDOM 1 + +-#define HAVE_RANDOM_R 1 ++/* #undef HAVE_RANDOM_R */ + + #define HAVE_RAND_R 1 + ++/* Define to 1 if you have the `arc4_random' function. */ ++#define HAVE_ARC4RANDOM 1 ++ + #define HAVE_READLINK 1 + + #define HAVE_STDATOMIC_PRIMITIVES 1 +@@ -92,11 +95,11 @@ + + #define HAVE_SYS_PARAM_H 1 + +-#define HAVE_SYS_STATFS_H 1 ++/* #undef HAVE_SYS_STATFS_H */ + + #define HAVE_SYS_STATVFS_H 1 + +-#define HAVE_SYS_VFS_H 1 ++/* #undef HAVE_SYS_VFS_H */ + + #define HAVE_UNISTD_H 1 + diff --git a/devel/electron36/files/patch-third__party_fontconfig_src_src_fccompat.c b/devel/electron36/files/patch-third__party_fontconfig_src_src_fccompat.c new file mode 100644 index 000000000000..05f955118627 --- /dev/null +++ b/devel/electron36/files/patch-third__party_fontconfig_src_src_fccompat.c @@ -0,0 +1,13 @@ +--- third_party/fontconfig/src/src/fccompat.c.orig 2023-03-30 00:40:33 UTC ++++ 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/devel/electron36/files/patch-third__party_ipcz_src_BUILD.gn b/devel/electron36/files/patch-third__party_ipcz_src_BUILD.gn new file mode 100644 index 000000000000..cf9767bd7596 --- /dev/null +++ b/devel/electron36/files/patch-third__party_ipcz_src_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/ipcz/src/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ third_party/ipcz/src/BUILD.gn +@@ -7,7 +7,7 @@ import("//testing/test.gni") + import("//testing/libfuzzer/fuzzer_test.gni") + import("//testing/test.gni") + +-enable_multiprocess_tests = is_linux ++enable_multiprocess_tests = is_linux && !is_bsd + + buildflag_header("test_buildflags") { + header = "test_buildflags.h" diff --git a/devel/electron36/files/patch-third__party_ipcz_src_reference__drivers_random.cc b/devel/electron36/files/patch-third__party_ipcz_src_reference__drivers_random.cc new file mode 100644 index 000000000000..d439d984d55d --- /dev/null +++ b/devel/electron36/files/patch-third__party_ipcz_src_reference__drivers_random.cc @@ -0,0 +1,20 @@ +--- third_party/ipcz/src/reference_drivers/random.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/ipcz/src/reference_drivers/random.cc +@@ -55,7 +55,7 @@ decltype(&ProcessPrng) GetProcessPrng() { + } + #endif + +-#if defined(OS_POSIX) && !BUILDFLAG(IS_MAC) ++#if defined(OS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + void RandomBytesFromDevUrandom(absl::Span<uint8_t> destination) { + static int urandom_fd = [] { + for (;;) { +@@ -99,7 +99,7 @@ void RandomBytes(absl::Span<uint8_t> destination) { + return; + } + } +-#elif BUILDFLAG(IS_MAC) ++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const bool ok = getentropy(destination.data(), destination.size()) == 0; + ABSL_ASSERT(ok); + #elif BUILDFLAG(IS_IOS) diff --git a/devel/electron36/files/patch-third__party_ipcz_src_standalone_base_logging.cc b/devel/electron36/files/patch-third__party_ipcz_src_standalone_base_logging.cc new file mode 100644 index 000000000000..f59ae940dc5c --- /dev/null +++ b/devel/electron36/files/patch-third__party_ipcz_src_standalone_base_logging.cc @@ -0,0 +1,12 @@ +--- third_party/ipcz/src/standalone/base/logging.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/ipcz/src/standalone/base/logging.cc +@@ -55,6 +55,9 @@ LogMessage::LogMessage(const char* file, int line, Lev + #elif BUILDFLAG(IS_ANDROID) + stream_ << getpid() << ":" << gettid() << ":"; + const char* trimmed_file = strrchr(file, '/') + 1; ++#elif BUILDFLAG(IS_BSD) ++ stream_ << getpid() << ":" << pthread_self() << ":"; ++ const char* trimmed_file = strrchr(file, '/') + 1; + #elif BUILDFLAG(IS_WIN) + const char* trimmed_file = file; + stream_ << (::GetCurrentProcessId()) << ":" << ::GetCurrentThreadId() << ":"; diff --git a/devel/electron36/files/patch-third__party_leveldatabase_env__chromium.cc b/devel/electron36/files/patch-third__party_leveldatabase_env__chromium.cc new file mode 100644 index 000000000000..d917b0d4dcea --- /dev/null +++ b/devel/electron36/files/patch-third__party_leveldatabase_env__chromium.cc @@ -0,0 +1,12 @@ +--- third_party/leveldatabase/env_chromium.cc.orig 2024-10-16 21:32:29 UTC ++++ third_party/leveldatabase/env_chromium.cc +@@ -329,7 +329,8 @@ Status ChromiumWritableFile::SyncParent() { + + Status ChromiumWritableFile::SyncParent() { + TRACE_EVENT0("leveldb", "SyncParent"); +-#if defined(OS_POSIX) || defined(OS_FUCHSIA) ++// pledge violation (directory passed as fd) ++#if (defined(OS_POSIX) || defined(OS_FUCHSIA)) && !defined(OS_OPENBSD) + FilePath path = FilePath::FromUTF8Unsafe(parent_dir_); + FileErrorOr<base::File> result = filesystem_->OpenFile( + path, base::File::FLAG_OPEN | base::File::FLAG_READ); diff --git a/devel/electron36/files/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c b/devel/electron36/files/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c new file mode 100644 index 000000000000..059406f92024 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c @@ -0,0 +1,49 @@ +--- third_party/libaom/source/libaom/aom_ports/aarch64_cpudetect.c.orig 2025-01-27 17:37:37 UTC ++++ third_party/libaom/source/libaom/aom_ports/aarch64_cpudetect.c +@@ -127,9 +127,45 @@ static int arm_get_cpu_caps(void) { + return flags; + } + +-#elif defined(__linux__) // end defined(AOM_USE_ANDROID_CPU_FEATURES) ++#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_CRC32(cpu_id) >= ID_AA64ISAR0_CRC32_BASE) ++ flags |= HAS_ARM_CRC32; ++ ++ return flags; ++} ++ ++#elif defined(__linux__) || defined(__FreeBSD__) // end defined(AOM_USE_ANDROID_CPU_FEATURES) ++ + #include <sys/auxv.h> ++ ++#if defined(__FreeBSD__) ++static unsigned long getauxval(unsigned long type) ++{ ++ /* Only AT_HWCAP* return unsigned long */ ++ if (type != AT_HWCAP && type != AT_HWCAP2) { ++ return 0; ++ } ++ ++ unsigned long ret = 0; ++ elf_aux_info(type, &ret, sizeof(ret)); ++ return ret; ++} ++#endif + + // Define hwcap values ourselves: building with an old auxv header where these + // hwcap values are not defined should not prevent features from being enabled. diff --git a/devel/electron36/files/patch-third__party_libc++_src_src_chrono.cpp b/devel/electron36/files/patch-third__party_libc++_src_src_chrono.cpp new file mode 100644 index 000000000000..6f3eab131df8 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libc++_src_src_chrono.cpp @@ -0,0 +1,11 @@ +--- third_party/libc++/src/src/chrono.cpp.orig 2025-03-24 20:50:14 UTC ++++ third_party/libc++/src/src/chrono.cpp +@@ -38,7 +38,7 @@ + // OpenBSD and GPU do not have a fully conformant suite of POSIX timers, but + // it does have clock_gettime and CLOCK_MONOTONIC which is all we need. + #if defined(__APPLE__) || defined(__gnu_hurd__) || defined(__OpenBSD__) || defined(__AMDGPU__) || \ +- defined(__NVPTX__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) ++ defined(__NVPTX__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__FreeBSD__) + # define _LIBCPP_HAS_CLOCK_GETTIME + #endif + diff --git a/devel/electron36/files/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp b/devel/electron36/files/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp new file mode 100644 index 000000000000..896ab2879ec1 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp @@ -0,0 +1,11 @@ +--- third_party/libc++/src/src/filesystem/filesystem_clock.cpp.orig 2025-03-24 20:50:14 UTC ++++ third_party/libc++/src/src/filesystem/filesystem_clock.cpp +@@ -35,7 +35,7 @@ + #endif + + #if defined(__APPLE__) || defined(__gnu_hurd__) || defined(__AMDGPU__) || defined(__NVPTX__) || \ +- (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) ++ (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || defined(__FreeBSD__) + # define _LIBCPP_HAS_CLOCK_GETTIME + #endif + diff --git a/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h b/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h new file mode 100644 index 000000000000..d9a9a382fcc4 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h @@ -0,0 +1,11 @@ +--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h.orig 2022-09-24 10:57:32 UTC ++++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h +@@ -22,7 +22,7 @@ + #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX) + // C++11 Lock implementation based on std::mutex. + #include "phonenumbers/base/memory/singleton_stdmutex.h" +-#elif defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) ++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) + #include "phonenumbers/base/memory/singleton_posix.h" + #elif defined(WIN32) + #include "phonenumbers/base/memory/singleton_win32.h" diff --git a/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h b/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h new file mode 100644 index 000000000000..d3ed3a10d84d --- /dev/null +++ b/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h @@ -0,0 +1,11 @@ +--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h.orig 2022-09-24 10:57:32 UTC ++++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h +@@ -22,7 +22,7 @@ + #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX) + // C++11 Lock implementation based on std::mutex. + #include "phonenumbers/base/synchronization/lock_stdmutex.h" +-#elif defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) ++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) + #include "phonenumbers/base/synchronization/lock_posix.h" + #elif defined(WIN32) + #include "phonenumbers/base/synchronization/lock_win32.h" diff --git a/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h b/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h new file mode 100644 index 000000000000..727f486668a0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h @@ -0,0 +1,20 @@ +--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h.orig 2022-09-24 10:57:32 UTC ++++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h +@@ -22,7 +22,7 @@ + // Note that I18N_PHONENUMBERS_NO_THREAD_SAFETY must be defined only to let the + // user of the library know that it can't be used in a thread-safe manner when + // it is not depending on Boost. +-#if !defined(__linux__) && !defined(__APPLE__) && !defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) && \ ++#if !defined(__linux__) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) && \ + !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \ + !((__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)) && \ + !defined(WIN32) +@@ -33,7 +33,7 @@ + #endif + + #if !defined(NDEBUG) && !defined(I18N_PHONENUMBERS_USE_BOOST) && \ +- (defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)) ++ (defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)) + + #include <pthread.h> + diff --git a/devel/electron36/files/patch-third__party_libsync_src_include_sync_sync.h b/devel/electron36/files/patch-third__party_libsync_src_include_sync_sync.h new file mode 100644 index 000000000000..a2564e610919 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libsync_src_include_sync_sync.h @@ -0,0 +1,12 @@ +--- third_party/libsync/src/include/sync/sync.h.orig 2022-02-07 13:39:41 UTC ++++ third_party/libsync/src/include/sync/sync.h +@@ -22,7 +22,9 @@ + #include <sys/cdefs.h> + #include <stdint.h> + ++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) + #include <linux/types.h> ++#endif + + __BEGIN_DECLS + diff --git a/devel/electron36/files/patch-third__party_libsync_src_sync.c b/devel/electron36/files/patch-third__party_libsync_src_sync.c new file mode 100644 index 000000000000..76580babea99 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libsync_src_sync.c @@ -0,0 +1,25 @@ +--- third_party/libsync/src/sync.c.orig 2023-10-19 19:59:52 UTC ++++ third_party/libsync/src/sync.c +@@ -17,8 +17,8 @@ + */ + + #include <fcntl.h> +-#include <malloc.h> + #include <stdint.h> ++#include <stdlib.h> + #include <string.h> + #include <errno.h> + #include <poll.h> +@@ -29,6 +29,12 @@ + + #include <sync/sync.h> + ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++typedef __uint8_t __u8; ++typedef __uint32_t __u32; ++typedef __int32_t __s32; ++#define ETIME ETIMEDOUT ++#endif + + struct sw_sync_create_fence_data { + __u32 value; diff --git a/devel/electron36/files/patch-third__party_libusb_BUILD.gn b/devel/electron36/files/patch-third__party_libusb_BUILD.gn new file mode 100644 index 000000000000..685a51ffb189 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libusb_BUILD.gn @@ -0,0 +1,52 @@ +--- third_party/libusb/BUILD.gn.orig 2023-10-19 19:59:12 UTC ++++ 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/devel/electron36/files/patch-third__party_libusb_src_libusb_core.c b/devel/electron36/files/patch-third__party_libusb_src_libusb_core.c new file mode 100644 index 000000000000..f1cb8df07aa7 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libusb_src_libusb_core.c @@ -0,0 +1,11 @@ +--- third_party/libusb/src/libusb/core.c.orig 2022-02-07 13:39:41 UTC ++++ 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/devel/electron36/files/patch-third__party_libusb_src_libusb_os_threads__posix.c b/devel/electron36/files/patch-third__party_libusb_src_libusb_os_threads__posix.c new file mode 100644 index 000000000000..494904b7f888 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libusb_src_libusb_os_threads__posix.c @@ -0,0 +1,24 @@ +--- third_party/libusb/src/libusb/os/threads_posix.c.orig 2023-03-30 00:34:13 UTC ++++ 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/devel/electron36/files/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c b/devel/electron36/files/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c new file mode 100644 index 000000000000..66285538c816 --- /dev/null +++ b/devel/electron36/files/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c @@ -0,0 +1,27 @@ +--- third_party/libvpx/source/libvpx/vpx_ports/aarch64_cpudetect.c.orig 2025-01-27 17:37:37 UTC ++++ third_party/libvpx/source/libvpx/vpx_ports/aarch64_cpudetect.c +@@ -120,9 +120,23 @@ static int arm_get_cpu_caps(void) { + return flags; + } + +-#elif defined(__linux__) // end defined(VPX_USE_ANDROID_CPU_FEATURES) ++#elif defined(__linux__) || defined(__FreeBSD__) // end defined(VPX_USE_ANDROID_CPU_FEATURES) + + #include <sys/auxv.h> ++ ++#if defined(__FreeBSD__) ++static unsigned long getauxval(unsigned long type) ++{ ++ /* Only AT_HWCAP* return unsigned long */ ++ if (type != AT_HWCAP && type != AT_HWCAP2) { ++ return 0; ++ } ++ ++ unsigned long ret = 0; ++ elf_aux_info(type, &ret, sizeof(ret)); ++ return ret; ++} ++#endif + + // Define hwcap values ourselves: building with an old auxv header where these + // hwcap values are not defined should not prevent features from being enabled. diff --git a/devel/electron36/files/patch-third__party_lzma__sdk_C_CpuArch.c b/devel/electron36/files/patch-third__party_lzma__sdk_C_CpuArch.c new file mode 100644 index 000000000000..d9f7767b2d84 --- /dev/null +++ b/devel/electron36/files/patch-third__party_lzma__sdk_C_CpuArch.c @@ -0,0 +1,37 @@ +--- third_party/lzma_sdk/C/CpuArch.c.orig 2025-04-22 20:15:27 UTC ++++ third_party/lzma_sdk/C/CpuArch.c +@@ -854,6 +854,34 @@ BoolInt CPU_IsSupported_AES (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__ + diff --git a/devel/electron36/files/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc b/devel/electron36/files/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc new file mode 100644 index 000000000000..7613df04ab3b --- /dev/null +++ b/devel/electron36/files/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc @@ -0,0 +1,11 @@ +--- third_party/material_color_utilities/src/cpp/palettes/tones.cc.orig 2024-04-15 20:34:41 UTC ++++ 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/devel/electron36/files/patch-third__party_nasm_BUILD.gn b/devel/electron36/files/patch-third__party_nasm_BUILD.gn new file mode 100644 index 000000000000..1651dd085086 --- /dev/null +++ b/devel/electron36/files/patch-third__party_nasm_BUILD.gn @@ -0,0 +1,16 @@ +--- third_party/nasm/BUILD.gn.orig 2024-08-14 20:56:38 UTC ++++ third_party/nasm/BUILD.gn +@@ -63,6 +63,13 @@ config("nasm_config") { + + defines = [ "HAVE_CONFIG_H" ] + ++ _string_h_lines = ++ read_file("/usr/include/string.h", "list lines") ++ _mempcpy = filter_include(_string_h_lines, [ "*mempcpy*" ]) ++ if (_mempcpy != []) { ++ defines += [ "HAVE_MEMPCPY=1" ] ++ } ++ + if (is_clang) { + cflags = [ + # The inline functions in NASM's headers flag this. diff --git a/devel/electron36/files/patch-third__party_nasm_config_config-linux.h b/devel/electron36/files/patch-third__party_nasm_config_config-linux.h new file mode 100644 index 000000000000..637d2f20ebd2 --- /dev/null +++ b/devel/electron36/files/patch-third__party_nasm_config_config-linux.h @@ -0,0 +1,102 @@ +--- third_party/nasm/config/config-linux.h.orig 2024-08-14 20:56:38 UTC ++++ third_party/nasm/config/config-linux.h +@@ -160,7 +160,7 @@ + + /* Define to 1 if you have the declaration of `strlcpy', and to 0 if you + don't. */ +-#define HAVE_DECL_STRLCPY 0 ++#define HAVE_DECL_STRLCPY 1 + + /* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you + don't. */ +@@ -183,7 +183,7 @@ + #define HAVE_DECL_STRSEP 1 + + /* Define to 1 if you have the <endian.h> header file. */ +-#define HAVE_ENDIAN_H 1 ++/* #undef HAVE_ENDIAN_H */ + + /* Define to 1 if you have the `faccessat' function. */ + #define HAVE_FACCESSAT 1 +@@ -327,16 +327,16 @@ + #define HAVE_ISASCII 1 + + /* Define to 1 if you have the `iscntrl' function. */ +-/* #undef HAVE_ISCNTRL */ ++#define HAVE_ISCNTRL 1 + + /* Define to 1 if you have the <machine/endian.h> header file. */ +-/* #undef HAVE_MACHINE_ENDIAN_H */ ++#define HAVE_MACHINE_ENDIAN_H 1 + + /* Define to 1 if you have the <memory.h> header file. */ + #define HAVE_MEMORY_H 1 + + /* Define to 1 if you have the `mempcpy' function. */ +-#define HAVE_MEMPCPY 1 ++/* #undef HAVE_MEMPCPY */ + + /* Define to 1 if you have a working `mmap' system call. */ + #define HAVE_MMAP 1 +@@ -357,7 +357,7 @@ + #define HAVE_STDARG_H 1 + + /* Define to 1 if stdbool.h conforms to C99. */ +-/* #undef HAVE_STDBOOL_H */ ++#define HAVE_STDBOOL_H 1 + + /* Define to 1 if your compiler supports C99 extern inline */ + #define HAVE_STDC_INLINE 1 +@@ -384,7 +384,7 @@ + #define HAVE_STRING_H 1 + + /* Define to 1 if you have the `strlcpy' function. */ +-/* #undef HAVE_STRLCPY */ ++#define HAVE_STRLCPY 1 + + /* Define to 1 if you have the `strncasecmp' function. */ + #define HAVE_STRNCASECMP 1 +@@ -411,7 +411,7 @@ + #define HAVE_SYSCONF 1 + + /* Define to 1 if you have the <sys/endian.h> header file. */ +-/* #undef HAVE_SYS_ENDIAN_H */ ++#define HAVE_SYS_ENDIAN_H 1 + + /* Define to 1 if you have the <sys/mman.h> header file. */ + #define HAVE_SYS_MMAN_H 1 +@@ -486,13 +486,13 @@ + /* #undef HAVE__STATI64 */ + + /* Define to 1 if you have the `__bswap_16' intrinsic function. */ +-#define HAVE___BSWAP_16 1 ++/* #undef HAVE___BSWAP_16 */ + + /* Define to 1 if you have the `__bswap_32' intrinsic function. */ +-#define HAVE___BSWAP_32 1 ++/* #undef HAVE___BSWAP_32 */ + + /* Define to 1 if you have the `__bswap_64' intrinsic function. */ +-#define HAVE___BSWAP_64 1 ++/* #undef HAVE___BSWAP_64 */ + + /* Define to 1 if you have the `__builtin_bswap16' intrinsic function. */ + #define HAVE___BUILTIN_BSWAP16 1 +@@ -620,7 +620,7 @@ + /* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +-#define restrict __restrict ++#define restrict __restrict__ + /* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the +@@ -637,7 +637,7 @@ + /* Define if your snprintf function is not named snprintf. */ + /* #undef snprintf */ + +-/* Define if your typeof operator is not named typeof. */ ++/* Define if your typeof operator is not named `typeof'. */ + #define typeof __typeof + + /* Define to the type of an unsigned integer type wide enough to hold a diff --git a/devel/electron36/files/patch-third__party_node_node.gni b/devel/electron36/files/patch-third__party_node_node.gni new file mode 100644 index 000000000000..d08fa9e79e59 --- /dev/null +++ b/devel/electron36/files/patch-third__party_node_node.gni @@ -0,0 +1,29 @@ +--- third_party/node/node.gni.orig 2025-04-22 20:15:27 UTC ++++ third_party/node/node.gni +@@ -22,7 +22,7 @@ template("node") { + + # When use_remoteexec=true, node actions may run on remote + # Linux worker. So it should include linux node binary in inputs. +- if (is_linux || is_chromeos || use_remoteexec) { ++ if ((is_linux || is_chromeos || use_remoteexec) && !is_bsd) { + inputs += [ "//third_party/node/linux/node-linux-x64/bin/node" ] + } + if (is_win && host_os == "win") { +@@ -34,17 +34,6 @@ template("node") { + } else { + inputs += [ "//third_party/node/mac/node-darwin-x64/bin/node" ] + } +- } +- +- # Automatically add a dependency to ":check_version" to ensure NodeJS is +- # always running the expected version, except when the ':check_version' +- # target itself is running in which case it shouldn't depend on itself. +- if (get_label_info(":" + target_name, "label_no_toolchain") != +- "//third_party/node:check_version") { +- if (!defined(deps)) { +- deps = [] +- } +- deps += [ "//third_party/node:check_version" ] + } + } + } diff --git a/devel/electron36/files/patch-third__party_node_node.py b/devel/electron36/files/patch-third__party_node_node.py new file mode 100644 index 000000000000..3180ab258013 --- /dev/null +++ b/devel/electron36/files/patch-third__party_node_node.py @@ -0,0 +1,11 @@ +--- third_party/node/node.py.orig 2025-04-22 20:15:27 UTC ++++ third_party/node/node.py +@@ -20,6 +20,8 @@ def GetBinaryPath(): + return os_path.join(os_path.dirname(__file__), *{ + 'Darwin': (darwin_path, 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/devel/electron36/files/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp b/devel/electron36/files/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp new file mode 100644 index 000000000000..0c5d7120dd51 --- /dev/null +++ b/devel/electron36/files/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp @@ -0,0 +1,11 @@ +--- third_party/pdfium/core/fxge/cfx_fontmapper.cpp.orig 2024-08-14 21:00:30 UTC ++++ third_party/pdfium/core/fxge/cfx_fontmapper.cpp +@@ -157,7 +157,7 @@ constexpr AltFontFamily kAltFontFamilies[] = { + {"ForteMT", "Forte"}, + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(OS_ASMJS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(OS_ASMJS) || BUILDFLAG(IS_BSD) + const char kNarrowFamily[] = "LiberationSansNarrow"; + #elif BUILDFLAG(IS_ANDROID) + const char kNarrowFamily[] = "RobotoCondensed"; diff --git a/devel/electron36/files/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp b/devel/electron36/files/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp new file mode 100644 index 000000000000..f7efaad2dd9a --- /dev/null +++ b/devel/electron36/files/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp @@ -0,0 +1,23 @@ +--- third_party/pdfium/core/fxge/linux/fx_linux_impl.cpp.orig 2024-08-14 21:00:31 UTC ++++ third_party/pdfium/core/fxge/linux/fx_linux_impl.cpp +@@ -20,7 +20,7 @@ + #include "core/fxge/fx_font.h" + #include "core/fxge/systemfontinfo_iface.h" + +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !defined(OS_ASMJS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !defined(OS_ASMJS) && !BUILDFLAG(IS_BSD) + #error "Included on the wrong platform" + #endif + +@@ -173,9 +173,8 @@ class CLinuxPlatform : public CFX_GEModule::PlatformIf + std::unique_ptr<SystemFontInfoIface> CreateDefaultSystemFontInfo() override { + auto pInfo = std::make_unique<CFX_LinuxFontInfo>(); + if (!pInfo->ParseFontCfg(CFX_GEModule::Get()->GetUserFontPaths())) { +- pInfo->AddPath("/usr/share/fonts"); +- pInfo->AddPath("/usr/share/X11/fonts/Type1"); +- pInfo->AddPath("/usr/share/X11/fonts/TTF"); ++ pInfo->AddPath("/usr/X11R6/lib/X11/fonts/Type1"); ++ pInfo->AddPath("/usr/X11R6/lib/X11/fonts/TTF"); + pInfo->AddPath("/usr/local/share/fonts"); + } + return pInfo; diff --git a/devel/electron36/files/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp b/devel/electron36/files/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp new file mode 100644 index 000000000000..276f619f4105 --- /dev/null +++ b/devel/electron36/files/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp @@ -0,0 +1,22 @@ +--- third_party/pdfium/fxjs/fx_date_helpers.cpp.orig 2024-06-18 21:44:57 UTC ++++ third_party/pdfium/fxjs/fx_date_helpers.cpp +@@ -39,6 +39,11 @@ double GetLocalTZA() { + return 0; + time_t t = 0; + FXSYS_time(&t); ++#ifdef __FreeBSD__ ++ struct tm lt; ++ localtime_r(&t, <); ++ return (double)(-(lt.tm_gmtoff * 1000)); ++#else + FXSYS_localtime(&t); + #if BUILDFLAG(IS_WIN) + // In gcc 'timezone' is a global variable declared in time.h. In VC++, that +@@ -47,6 +52,7 @@ double GetLocalTZA() { + _get_timezone(&timezone); + #endif + return (double)(-(timezone * 1000)); ++#endif // __FreeBSD__ + } + + int GetDaylightSavingTA(double d) { diff --git a/devel/electron36/files/patch-third__party_pdfium_pdfium.gni b/devel/electron36/files/patch-third__party_pdfium_pdfium.gni new file mode 100644 index 000000000000..734974d74cdb --- /dev/null +++ b/devel/electron36/files/patch-third__party_pdfium_pdfium.gni @@ -0,0 +1,11 @@ +--- third_party/pdfium/pdfium.gni.orig 2024-02-21 00:22:08 UTC ++++ third_party/pdfium/pdfium.gni +@@ -42,7 +42,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 diff --git a/devel/electron36/files/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp b/devel/electron36/files/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp new file mode 100644 index 000000000000..c9bbf1096187 --- /dev/null +++ b/devel/electron36/files/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp @@ -0,0 +1,41 @@ +--- third_party/pdfium/xfa/fxfa/parser/cxfa_timezoneprovider.cpp.orig 2022-02-28 16:54:41 UTC ++++ third_party/pdfium/xfa/fxfa/parser/cxfa_timezoneprovider.cpp +@@ -6,12 +6,16 @@ + + #include "xfa/fxfa/parser/cxfa_timezoneprovider.h" + ++#include <stdint.h> + #include <stdlib.h> + #include <time.h> + + #include "build/build_config.h" + + static bool g_bProviderTimeZoneSet = false; ++#if defined(OS_FREEBSD) ++static long g_lTimeZoneOffset = 0; ++#endif + + #if BUILDFLAG(IS_WIN) + #define TIMEZONE _timezone +@@ -24,9 +28,21 @@ static bool g_bProviderTimeZoneSet = false; + CXFA_TimeZoneProvider::CXFA_TimeZoneProvider() { + if (!g_bProviderTimeZoneSet) { + g_bProviderTimeZoneSet = true; ++#if defined(OS_FREEBSD) ++ time_t now = time(nullptr); ++ struct tm tm = {}; ++ ++ localtime_r(&now, &tm); ++ g_lTimeZoneOffset = tm.tm_gmtoff; ++#else + TZSET(); ++#endif + } ++#if defined(OS_FREEBSD) ++ tz_minutes_ = static_cast<int8_t>((abs(g_lTimeZoneOffset) % 3600) / 60); ++#else + tz_minutes_ = TIMEZONE / -60; ++#endif + } + + CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() = default; diff --git a/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_build__config.h b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_build__config.h new file mode 100644 index 000000000000..d4cefd2d9c28 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_build__config.h @@ -0,0 +1,70 @@ +--- third_party/perfetto/include/perfetto/base/build_config.h.orig 2025-04-22 20:15:27 UTC ++++ third_party/perfetto/include/perfetto/base/build_config.h +@@ -27,6 +27,7 @@ + #if defined(__ANDROID__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 +@@ -41,6 +42,7 @@ + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0 +@@ -62,9 +64,10 @@ + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE_TVOS() 0 + #endif +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 +@@ -78,6 +81,7 @@ + #elif defined(__QNXNTO__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 +@@ -91,6 +95,7 @@ + #elif defined(_WIN32) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 +@@ -104,6 +109,7 @@ + #elif defined(__EMSCRIPTEN__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 +@@ -120,6 +126,7 @@ + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0 +@@ -130,6 +137,7 @@ + #elif defined(__native_client__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 diff --git a/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_thread__utils.h b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_thread__utils.h new file mode 100644 index 000000000000..fc5ca672aa5e --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_thread__utils.h @@ -0,0 +1,22 @@ +--- third_party/perfetto/include/perfetto/base/thread_utils.h.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/include/perfetto/base/thread_utils.h +@@ -37,6 +37,7 @@ __declspec(dllimport) unsigned long __stdcall GetCurre + #include <sys/syscall.h> + #include <sys/types.h> + #include <unistd.h> ++#include <pthread.h> + #else + #include <pthread.h> + #endif +@@ -49,6 +50,11 @@ inline PlatformThreadId GetThreadId() { + using PlatformThreadId = pid_t; + inline PlatformThreadId GetThreadId() { + return gettid(); ++} ++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) ++using PlatformThreadId = uint64_t; ++inline PlatformThreadId GetThreadId() { ++ return reinterpret_cast<uint64_t>(pthread_self()); + } + #elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) + using PlatformThreadId = pid_t; diff --git a/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_time.h b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_time.h new file mode 100644 index 000000000000..55bba39579a4 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_base_time.h @@ -0,0 +1,34 @@ +--- third_party/perfetto/include/perfetto/base/time.h.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/include/perfetto/base/time.h +@@ -227,6 +227,9 @@ inline TimeNanos GetBootTimeNs() { + // Return ns from boot. Conversely to GetWallTimeNs, this clock counts also time + // during suspend (when supported). + inline TimeNanos GetBootTimeNs() { ++#if defined(__FreeBSD__) ++ return GetTimeInternalNs(kWallTimeClockSource); ++#else + // Determine if CLOCK_BOOTTIME is available on the first call. + static const clockid_t kBootTimeClockSource = [] { + struct timespec ts = {}; +@@ -234,6 +237,7 @@ inline TimeNanos GetBootTimeNs() { + return res == 0 ? CLOCK_BOOTTIME : kWallTimeClockSource; + }(); + return GetTimeInternalNs(kBootTimeClockSource); ++#endif + } + + inline TimeNanos GetWallTimeNs() { +@@ -241,7 +245,13 @@ inline TimeNanos GetWallTimeRawNs() { + } + + inline TimeNanos GetWallTimeRawNs() { ++#if defined(__OpenBSD__) ++ return GetTimeInternalNs(CLOCK_MONOTONIC); ++#elif defined(__FreeBSD__) ++ return GetTimeInternalNs(CLOCK_MONOTONIC_FAST); ++#else + return GetTimeInternalNs(CLOCK_MONOTONIC_RAW); ++#endif + } + + inline TimeNanos GetThreadCPUTimeNs() { diff --git a/devel/electron36/files/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h new file mode 100644 index 000000000000..756d551ebeb0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h @@ -0,0 +1,11 @@ +--- third_party/perfetto/include/perfetto/ext/base/event_fd.h.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/include/perfetto/ext/base/event_fd.h +@@ -58,6 +58,8 @@ class EventFd { + // On Mac and other non-Linux UNIX platforms a pipe-based fallback is used. + // The write end of the wakeup pipe. + ScopedFile write_fd_; ++#else ++ ScopedFile write_fd_; + #endif + }; + diff --git a/devel/electron36/files/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h new file mode 100644 index 000000000000..36bd8a14f3d0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h @@ -0,0 +1,15 @@ +--- third_party/perfetto/include/perfetto/ext/base/thread_utils.h.orig 2023-11-29 21:41:38 UTC ++++ third_party/perfetto/include/perfetto/ext/base/thread_utils.h +@@ -41,9 +41,10 @@ namespace base { + namespace perfetto { + namespace base { + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) ++ PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + // Sets the "comm" of the calling thread to the first 15 chars of the given + // string. + inline bool MaybeSetThreadName(const std::string& name) { diff --git a/devel/electron36/files/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h new file mode 100644 index 000000000000..4858a1ee72d2 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h @@ -0,0 +1,11 @@ +--- third_party/perfetto/include/perfetto/tracing/internal/track_event_legacy.h.orig 2023-05-25 00:46:23 UTC ++++ 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. +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) ++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__OpenBSD__) + explicit LegacyTraceId(size_t raw_id) : raw_id_(raw_id) {} + explicit LegacyTraceId(intptr_t raw_id) + : raw_id_(static_cast<uint64_t>(raw_id)) {} diff --git a/devel/electron36/files/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto b/devel/electron36/files/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto new file mode 100644 index 000000000000..59893e67db88 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto @@ -0,0 +1,56 @@ +--- third_party/perfetto/protos/perfetto/trace/ftrace/v4l2.proto.orig 2022-09-24 10:57:32 UTC ++++ third_party/perfetto/protos/perfetto/trace/ftrace/v4l2.proto +@@ -10,7 +10,7 @@ message V4l2QbufFtraceEvent { + optional uint32 field = 2; + optional uint32 flags = 3; + optional uint32 index = 4; +- optional int32 minor = 5; ++ optional int32 gminor = 5; + optional uint32 sequence = 6; + optional uint32 timecode_flags = 7; + optional uint32 timecode_frames = 8; +@@ -30,7 +30,7 @@ message V4l2DqbufFtraceEvent { + optional uint32 field = 2; + optional uint32 flags = 3; + optional uint32 index = 4; +- optional int32 minor = 5; ++ optional int32 gminor = 5; + optional uint32 sequence = 6; + optional uint32 timecode_flags = 7; + optional uint32 timecode_frames = 8; +@@ -48,7 +48,7 @@ message V4l2DqbufFtraceEvent { + message Vb2V4l2BufQueueFtraceEvent { + optional uint32 field = 1; + optional uint32 flags = 2; +- optional int32 minor = 3; ++ optional int32 gminor = 3; + optional uint32 sequence = 4; + optional uint32 timecode_flags = 5; + optional uint32 timecode_frames = 6; +@@ -65,7 +65,7 @@ message Vb2V4l2BufQueueFtraceEvent { + message Vb2V4l2BufDoneFtraceEvent { + optional uint32 field = 1; + optional uint32 flags = 2; +- optional int32 minor = 3; ++ optional int32 gminor = 3; + optional uint32 sequence = 4; + optional uint32 timecode_flags = 5; + optional uint32 timecode_frames = 6; +@@ -82,7 +82,7 @@ message Vb2V4l2BufDoneFtraceEvent { + message Vb2V4l2QbufFtraceEvent { + optional uint32 field = 1; + optional uint32 flags = 2; +- optional int32 minor = 3; ++ optional int32 gminor = 3; + optional uint32 sequence = 4; + optional uint32 timecode_flags = 5; + optional uint32 timecode_frames = 6; +@@ -99,7 +99,7 @@ message Vb2V4l2QbufFtraceEvent { + message Vb2V4l2DqbufFtraceEvent { + optional uint32 field = 1; + optional uint32 flags = 2; +- optional int32 minor = 3; ++ optional int32 gminor = 3; + optional uint32 sequence = 4; + optional uint32 timecode_flags = 5; + optional uint32 timecode_frames = 6; diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_clock__snapshots.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_clock__snapshots.cc new file mode 100644 index 000000000000..908cfce3ce9e --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_clock__snapshots.cc @@ -0,0 +1,10 @@ +--- third_party/perfetto/src/base/clock_snapshots.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/src/base/clock_snapshots.cc +@@ -27,6 +27,7 @@ ClockSnapshotVector CaptureClockSnapshots() { + #if !PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) && \ + !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && \ + !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) && \ + !PERFETTO_BUILDFLAG(PERFETTO_OS_QNX) + struct { + clockid_t id; diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_event__fd.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_event__fd.cc new file mode 100644 index 000000000000..81e1b2968eaa --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_event__fd.cc @@ -0,0 +1,22 @@ +--- third_party/perfetto/src/base/event_fd.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/src/base/event_fd.cc +@@ -24,7 +24,8 @@ + #include <synchapi.h> + #elif PERFETTO_BUILDFLAG(PERFETTO_OS_QNX) + #include <unistd.h> +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + #include <sys/eventfd.h> + #include <unistd.h> +@@ -59,7 +60,8 @@ void EventFd::Clear() { + PERFETTO_DFATAL("EventFd::Clear()"); + } + +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + + EventFd::EventFd() { diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_periodic__task.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_periodic__task.cc new file mode 100644 index 000000000000..2198dd55504c --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_periodic__task.cc @@ -0,0 +1,20 @@ +--- third_party/perfetto/src/base/periodic_task.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/src/base/periodic_task.cc +@@ -24,7 +24,7 @@ + #include "perfetto/base/time.h" + #include "perfetto/ext/base/file_utils.h" + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19) + #include <sys/timerfd.h> + #endif +@@ -44,7 +44,7 @@ ScopedPlatformHandle CreateTimerFd(const PeriodicTask: + } + + ScopedPlatformHandle CreateTimerFd(const PeriodicTask::Args& args) { +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19) + ScopedPlatformHandle tfd( + timerfd_create(CLOCK_BOOTTIME, TFD_CLOEXEC | TFD_NONBLOCK)); diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_string__utils.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_string__utils.cc new file mode 100644 index 000000000000..91d3993a7cd5 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_string__utils.cc @@ -0,0 +1,12 @@ +--- third_party/perfetto/src/base/string_utils.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/src/base/string_utils.cc +@@ -39,7 +39,8 @@ double StrToD(const char* nptr, char** endptr) { + // Locale-independant as possible version of strtod. + double StrToD(const char* nptr, char** endptr) { + #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++ (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) + static auto c_locale = newlocale(LC_ALL, "C", nullptr); + return strtod_l(nptr, endptr, c_locale); diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_subprocess__posix.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_subprocess__posix.cc new file mode 100644 index 000000000000..f8ee067119ea --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_subprocess__posix.cc @@ -0,0 +1,22 @@ +--- third_party/perfetto/src/base/subprocess_posix.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/src/base/subprocess_posix.cc +@@ -35,7 +35,8 @@ + #include <thread> + #include <tuple> + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + #include <sys/prctl.h> + #endif +@@ -64,7 +65,8 @@ void __attribute__((noreturn)) ChildProcess(ChildProce + // Don't add any dynamic allocation in this function. This will be invoked + // under a fork(), potentially in a state where the allocator lock is held. + void __attribute__((noreturn)) ChildProcess(ChildProcessArgs* args) { +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + // In no case we want a child process to outlive its parent process. This is + // relevant for tests, so that a test failure/crash doesn't leave child diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_test_vm__test__utils.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_test_vm__test__utils.cc new file mode 100644 index 000000000000..17ebe05dd570 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_test_vm__test__utils.cc @@ -0,0 +1,11 @@ +--- third_party/perfetto/src/base/test/vm_test_utils.cc.orig 2022-06-17 14:20:10 UTC ++++ third_party/perfetto/src/base/test/vm_test_utils.cc +@@ -91,7 +91,7 @@ bool IsMapped(void* start, size_t size) { + // Fuchsia doesn't yet support paging (b/119503290). + ignore_result(page_size); + return true; +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) ++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) || PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + // mincore isn't available on NaCL. + ignore_result(page_size); + return true; diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_thread__task__runner.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_thread__task__runner.cc new file mode 100644 index 000000000000..000b81b44958 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_thread__task__runner.cc @@ -0,0 +1,12 @@ +--- third_party/perfetto/src/base/thread_task_runner.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/src/base/thread_task_runner.cc +@@ -27,7 +27,8 @@ + #include "perfetto/ext/base/thread_utils.h" + #include "perfetto/ext/base/unix_task_runner.h" + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + #include <sys/prctl.h> + #endif diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_unix__socket.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_unix__socket.cc new file mode 100644 index 000000000000..eec9560deefc --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_unix__socket.cc @@ -0,0 +1,26 @@ +--- third_party/perfetto/src/base/unix_socket.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/perfetto/src/base/unix_socket.cc +@@ -45,7 +45,7 @@ + #include <unistd.h> + #endif + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) ++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__FreeBSD__) + #include <sys/ucred.h> + #endif + +@@ -977,9 +977,13 @@ void UnixSocket::ReadPeerCredentialsPosix() { + int res = getpeereid(fd, &peer_uid_, nullptr); + PERFETTO_CHECK(res == 0); + // There is no pid when obtaining peer credentials for QNX +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#elif !defined(__FreeBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) ++#if PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) ++ struct sockpeercred user_cred; ++#else + struct ucred user_cred; ++#endif + socklen_t len = sizeof(user_cred); + int fd = sock_raw_.fd(); + int res = getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &user_cred, &len); diff --git a/devel/electron36/files/patch-third__party_perfetto_src_base_utils.cc b/devel/electron36/files/patch-third__party_perfetto_src_base_utils.cc new file mode 100644 index 000000000000..c0aa10bdb0ee --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_base_utils.cc @@ -0,0 +1,47 @@ +--- third_party/perfetto/src/base/utils.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/perfetto/src/base/utils.cc +@@ -38,7 +38,8 @@ + #include <mach/vm_page_size.h> + #endif + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + #include <sys/prctl.h> + +@@ -279,14 +280,22 @@ std::string GetCurExecutablePath() { + + std::string GetCurExecutablePath() { + std::string self_path; +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_FUCHSIA) ++ PERFETTO_BUILDFLAG(PERFETTO_OS_FUCHSIA)) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + char buf[PATH_MAX]; + ssize_t size = readlink("/proc/self/exe", buf, sizeof(buf)); + PERFETTO_CHECK(size != -1); + // readlink does not null terminate. + self_path = std::string(buf, static_cast<size_t>(size)); ++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) ++ char *buf; ++ const char *cpath = "/usr/local/chrome/chrome"; ++ if ((buf = getenv("CHROME_EXE_PATH")) != NULL) ++ self_path = std::string(buf); ++ else ++ self_path = std::string(cpath); + #elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) + uint32_t size = 0; + PERFETTO_CHECK(_NSGetExecutablePath(nullptr, &size)); +@@ -338,7 +347,8 @@ bool IsSyncMemoryTaggingEnabled() { + } + + bool IsSyncMemoryTaggingEnabled() { +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + // Compute only once per lifetime of the process. + static bool cached_value = [] { diff --git a/devel/electron36/files/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc b/devel/electron36/files/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc new file mode 100644 index 000000000000..588cea582412 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc @@ -0,0 +1,56 @@ +--- third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc.orig 2025-03-24 20:50:14 UTC ++++ third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc +@@ -62,7 +62,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id, + case FtraceEvent::kV4l2QbufFieldNumber: { + V4l2QbufFtraceEvent::Decoder pb_evt(bytes); + BufferEvent evt; +- evt.device_minor = pb_evt.minor(); ++ evt.device_minor = pb_evt.gminor(); + evt.index = pb_evt.index(); + evt.type = pb_evt.type(); + evt.bytesused = pb_evt.bytesused(); +@@ -103,7 +103,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id, + case FtraceEvent::kV4l2DqbufFieldNumber: { + V4l2DqbufFtraceEvent::Decoder pb_evt(bytes); + BufferEvent evt; +- evt.device_minor = pb_evt.minor(); ++ evt.device_minor = pb_evt.gminor(); + evt.index = pb_evt.index(); + evt.type = pb_evt.type(); + evt.bytesused = pb_evt.bytesused(); +@@ -149,7 +149,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id, + case FtraceEvent::kVb2V4l2BufQueueFieldNumber: { + Vb2V4l2BufQueueFtraceEvent::Decoder pb_evt(bytes); + BufferEvent evt; +- evt.device_minor = pb_evt.minor(); ++ evt.device_minor = pb_evt.gminor(); + evt.index = std::nullopt; + evt.type = std::nullopt; + evt.bytesused = std::nullopt; +@@ -180,7 +180,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id, + case FtraceEvent::kVb2V4l2BufDoneFieldNumber: { + Vb2V4l2BufDoneFtraceEvent::Decoder pb_evt(bytes); + BufferEvent evt; +- evt.device_minor = pb_evt.minor(); ++ evt.device_minor = pb_evt.gminor(); + evt.index = std::nullopt; + evt.type = std::nullopt; + evt.bytesused = std::nullopt; +@@ -211,7 +211,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id, + case FtraceEvent::kVb2V4l2QbufFieldNumber: { + Vb2V4l2QbufFtraceEvent::Decoder pb_evt(bytes); + BufferEvent evt; +- evt.device_minor = pb_evt.minor(); ++ evt.device_minor = pb_evt.gminor(); + evt.index = std::nullopt; + evt.type = std::nullopt; + evt.bytesused = std::nullopt; +@@ -242,7 +242,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id, + case FtraceEvent::kVb2V4l2DqbufFieldNumber: { + Vb2V4l2DqbufFtraceEvent::Decoder pb_evt(bytes); + BufferEvent evt; +- evt.device_minor = pb_evt.minor(); ++ evt.device_minor = pb_evt.gminor(); + evt.index = std::nullopt; + evt.type = std::nullopt; + evt.bytesused = std::nullopt; diff --git a/devel/electron36/files/patch-third__party_perfetto_src_tracing_ipc_memfd.cc b/devel/electron36/files/patch-third__party_perfetto_src_tracing_ipc_memfd.cc new file mode 100644 index 000000000000..5560c8bfd08d --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_tracing_ipc_memfd.cc @@ -0,0 +1,12 @@ +--- third_party/perfetto/src/tracing/ipc/memfd.cc.orig 2025-03-24 20:50:14 UTC ++++ 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_BUT_NOT_QNX) ++ (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) + + #if PERFETTO_MEMFD_ENABLED() + diff --git a/devel/electron36/files/patch-third__party_perfetto_src_tracing_platform__posix.cc b/devel/electron36/files/patch-third__party_perfetto_src_tracing_platform__posix.cc new file mode 100644 index 000000000000..2196a58302cc --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_tracing_platform__posix.cc @@ -0,0 +1,19 @@ +--- third_party/perfetto/src/tracing/platform_posix.cc.orig 2025-01-27 17:37:37 UTC ++++ third_party/perfetto/src/tracing/platform_posix.cc +@@ -110,12 +110,13 @@ std::string PlatformPosix::GetCurrentProcessName() { + } + + std::string PlatformPosix::GetCurrentProcessName() { +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + std::string cmdline; + base::ReadFile("/proc/self/cmdline", &cmdline); + return cmdline.substr(0, cmdline.find('\0')); +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) ++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + return std::string(getprogname()); + #else + return "unknown_producer"; diff --git a/devel/electron36/files/patch-third__party_perfetto_src_tracing_track.cc b/devel/electron36/files/patch-third__party_perfetto_src_tracing_track.cc new file mode 100644 index 000000000000..2cb33101de80 --- /dev/null +++ b/devel/electron36/files/patch-third__party_perfetto_src_tracing_track.cc @@ -0,0 +1,23 @@ +--- third_party/perfetto/src/tracing/track.cc.orig 2025-01-27 17:37:37 UTC ++++ third_party/perfetto/src/tracing/track.cc +@@ -60,8 +60,9 @@ protos::gen::TrackDescriptor ProcessTrack::Serialize() + auto desc = Track::Serialize(); + auto pd = desc.mutable_process(); + pd->set_pid(static_cast<int32_t>(pid)); +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + std::string cmdline; + if (base::ReadFile("/proc/self/cmdline", &cmdline)) { + // Since cmdline is a zero-terminated list of arguments, this ends up +@@ -170,7 +171,7 @@ uint64_t GetProcessStartTime() { + 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/devel/electron36/files/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h b/devel/electron36/files/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h new file mode 100644 index 000000000000..ce46707cf810 --- /dev/null +++ b/devel/electron36/files/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h @@ -0,0 +1,11 @@ +--- third_party/protobuf/src/google/protobuf/stubs/platform_macros.h.orig 2025-04-22 20:15:27 UTC ++++ third_party/protobuf/src/google/protobuf/stubs/platform_macros.h +@@ -99,7 +99,7 @@ GOOGLE_PROTOBUF_PLATFORM_ERROR + + #undef GOOGLE_PROTOBUF_PLATFORM_ERROR + +-#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) ++#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) || defined(__OpenBSD__) + // Android ndk does not support the __thread keyword very well yet. Here + // we use pthread_key_create()/pthread_getspecific()/... methods for + // TLS support on android. diff --git a/devel/electron36/files/patch-third__party_skia_src_ports_SkMemory__malloc.cpp b/devel/electron36/files/patch-third__party_skia_src_ports_SkMemory__malloc.cpp new file mode 100644 index 000000000000..6686710f2e8a --- /dev/null +++ b/devel/electron36/files/patch-third__party_skia_src_ports_SkMemory__malloc.cpp @@ -0,0 +1,20 @@ +--- third_party/skia/src/ports/SkMemory_malloc.cpp.orig 2024-04-15 20:34:48 UTC ++++ third_party/skia/src/ports/SkMemory_malloc.cpp +@@ -15,7 +15,7 @@ + + #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) + #include <malloc/malloc.h> +-#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) ++#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) + #include <malloc.h> + #elif defined(SK_BUILD_FOR_WIN) + #include <malloc.h> +@@ -126,7 +126,7 @@ size_t sk_malloc_size(void* addr, size_t size) { + #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17 + completeSize = malloc_usable_size(addr); + SkASSERT(completeSize >= size); +- #elif defined(SK_BUILD_FOR_UNIX) ++ #elif defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) + completeSize = malloc_usable_size(addr); + SkASSERT(completeSize >= size); + #elif defined(SK_BUILD_FOR_WIN) diff --git a/devel/electron36/files/patch-third__party_skia_src_ports_SkOSFile__posix.cpp b/devel/electron36/files/patch-third__party_skia_src_ports_SkOSFile__posix.cpp new file mode 100644 index 000000000000..bd078ab07755 --- /dev/null +++ b/devel/electron36/files/patch-third__party_skia_src_ports_SkOSFile__posix.cpp @@ -0,0 +1,11 @@ +--- third_party/skia/src/ports/SkOSFile_posix.cpp.orig 2022-02-28 16:54:41 UTC ++++ third_party/skia/src/ports/SkOSFile_posix.cpp +@@ -25,7 +25,7 @@ + #endif + + void sk_fsync(FILE* f) { +-#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION) ++#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION) && !defined(__OpenBSD__) + int fd = fileno(f); + fsync(fd); + #endif diff --git a/devel/electron36/files/patch-third__party_speech-dispatcher_libspeechd__version.h b/devel/electron36/files/patch-third__party_speech-dispatcher_libspeechd__version.h new file mode 100644 index 000000000000..26207049ca92 --- /dev/null +++ b/devel/electron36/files/patch-third__party_speech-dispatcher_libspeechd__version.h @@ -0,0 +1,32 @@ +--- third_party/speech-dispatcher/libspeechd_version.h.orig 2024-04-28 08:50:28 UTC ++++ third_party/speech-dispatcher/libspeechd_version.h +@@ -0,0 +1,29 @@ ++/* ++ * libspeechd_version.h - Shared library for easy access to Speech Dispatcher functions (header) ++ * ++ * Copyright (C) 2001, 2002, 2003, 2004 Brailcom, o.p.s. ++ * ++ * This is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published by ++ * the Free Software Foundation; either version 2.1, or (at your option) ++ * any later version. ++ * ++ * This software is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program. If not, see <https://www.gnu.org/licenses/>. ++ * ++ * $Id: patch-third_party_speech-dispatcher_libspeechd_version_h,v 1.4 2024/03/22 13:10:56 robert Exp $ ++ */ ++ ++#ifndef _LIBSPEECHD_VERSION_H ++#define _LIBSPEECHD_VERSION_H ++ ++#define LIBSPEECHD_MAJOR_VERSION 0 ++#define LIBSPEECHD_MINOR_VERSION 11 ++#define LIBSPEECHD_MICRO_VERSION 5 ++ ++#endif /* ifndef _LIBSPEECHD_VERSION_H */ diff --git a/devel/electron36/files/patch-third__party_speech-dispatcher_speechd__types.h b/devel/electron36/files/patch-third__party_speech-dispatcher_speechd__types.h new file mode 100644 index 000000000000..d34c000c4f9d --- /dev/null +++ b/devel/electron36/files/patch-third__party_speech-dispatcher_speechd__types.h @@ -0,0 +1,142 @@ +--- third_party/speech-dispatcher/speechd_types.h.orig 2023-11-29 21:40:40 UTC ++++ third_party/speech-dispatcher/speechd_types.h +@@ -119,4 +119,139 @@ typedef struct { + SPDVoice voice; + } SPDMsgSettings; + ++/* TEMP_FAILURE_RETRY seems to be available only on Linux. For systems that ++ * don't have this macro we provide our own version. This code was taken from ++ * file "/usr/include/unistd.h" from Debian package "libc6-dev" ++ * version 2.3.2.ds1-20. */ ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++ ++#endif /* not ifndef SPEECHD_TYPES */ ++ ++/* ++ * speechd_types.h - types for Speech Dispatcher ++ * ++ * Copyright (C) 2001, 2002, 2003 Brailcom, o.p.s. ++ * ++ * This is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published by ++ * the Free Software Foundation; either version 2.1, or (at your option) ++ * any later version. ++ * ++ * This software is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program. If not, see <https://www.gnu.org/licenses/>. ++ */ ++ ++#ifndef SPEECHD_TYPES_H ++#define SPEECHD_TYPES_H ++ ++typedef enum { ++ SPD_PUNCT_ALL = 0, ++ SPD_PUNCT_NONE = 1, ++ SPD_PUNCT_SOME = 2, ++ SPD_PUNCT_MOST = 3 ++} SPDPunctuation; ++ ++typedef enum { ++ SPD_CAP_NONE = 0, ++ SPD_CAP_SPELL = 1, ++ SPD_CAP_ICON = 2 ++} SPDCapitalLetters; ++ ++typedef enum { ++ SPD_SPELL_OFF = 0, ++ SPD_SPELL_ON = 1 ++} SPDSpelling; ++ ++typedef enum { ++ SPD_MALE1 = 1, ++ SPD_MALE2 = 2, ++ SPD_MALE3 = 3, ++ SPD_FEMALE1 = 4, ++ SPD_FEMALE2 = 5, ++ SPD_FEMALE3 = 6, ++ SPD_CHILD_MALE = 7, ++ SPD_CHILD_FEMALE = 8, ++ SPD_UNSPECIFIED = -1 ++} SPDVoiceType; ++ ++typedef struct { ++ char *name; /* Name of the voice (id) */ ++ char *language; /* 2/3-letter ISO language code, ++ * possibly followed by 2/3-letter ISO region code, ++ * e.g. en-US */ ++ char *variant; /* a not-well defined string describing dialect etc. */ ++} SPDVoice; ++ ++typedef enum { ++ SPD_DATA_TEXT = 0, ++ SPD_DATA_SSML = 1 ++} SPDDataMode; ++ ++typedef enum { ++ SPD_IMPORTANT = 1, ++ SPD_MESSAGE = 2, ++ SPD_TEXT = 3, ++ SPD_NOTIFICATION = 4, ++ SPD_PROGRESS = 5 ++} SPDPriority; ++ ++typedef enum { ++ SPD_BEGIN = 1, ++ SPD_END = 2, ++ SPD_INDEX_MARKS = 4, ++ SPD_CANCEL = 8, ++ SPD_PAUSE = 16, ++ SPD_RESUME = 32, ++ ++ SPD_ALL = 0x3f ++} SPDNotification; ++ ++typedef enum { ++ SPD_EVENT_BEGIN, ++ SPD_EVENT_END, ++ SPD_EVENT_INDEX_MARK, ++ SPD_EVENT_CANCEL, ++ SPD_EVENT_PAUSE, ++ SPD_EVENT_RESUME ++} SPDNotificationType; ++ ++typedef enum { ++ SORT_BY_TIME = 0, ++ SORT_BY_ALPHABET = 1 ++} ESort; ++ ++typedef enum { ++ SPD_MSGTYPE_TEXT = 0, ++ SPD_MSGTYPE_SOUND_ICON = 1, ++ SPD_MSGTYPE_CHAR = 2, ++ SPD_MSGTYPE_KEY = 3, ++ SPD_MSGTYPE_SPELL = 99 ++} SPDMessageType; ++ ++typedef struct { ++ signed int rate; ++ signed int pitch; ++ signed int pitch_range; ++ signed int volume; ++ ++ SPDPunctuation punctuation_mode; ++ SPDSpelling spelling_mode; ++ SPDCapitalLetters cap_let_recogn; ++ ++ SPDVoiceType voice_type; ++ SPDVoice voice; ++} SPDMsgSettings; ++ + #endif /* not ifndef SPEECHD_TYPES */ diff --git a/devel/electron36/files/patch-third__party_sqlite_BUILD.gn b/devel/electron36/files/patch-third__party_sqlite_BUILD.gn new file mode 100644 index 000000000000..b73f6763af4a --- /dev/null +++ b/devel/electron36/files/patch-third__party_sqlite_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/sqlite/BUILD.gn.orig 2025-03-24 20:50:14 UTC ++++ third_party/sqlite/BUILD.gn +@@ -155,7 +155,7 @@ config("sqlite_warnings") { + ] + } + } +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + cflags += [ + # SQLite doesn't believe in compiler warnings, preferring testing. + # http://www.sqlite.org/faq.html#q17 diff --git a/devel/electron36/files/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c b/devel/electron36/files/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c new file mode 100644 index 000000000000..e94d78204b17 --- /dev/null +++ b/devel/electron36/files/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c @@ -0,0 +1,11 @@ +--- third_party/sqlite/src/amalgamation_dev/sqlite3.c.orig 2025-05-05 19:42:33 UTC ++++ third_party/sqlite/src/amalgamation_dev/sqlite3.c +@@ -14486,7 +14486,7 @@ struct fts5_api { + ** But _XOPEN_SOURCE define causes problems for Mac OS X, so omit + ** it. + */ +-#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) ++#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) && !defined(__FreeBSD__) + # define _XOPEN_SOURCE 600 + #endif + diff --git a/devel/electron36/files/patch-third__party_sqlite_src_amalgamation_sqlite3.c b/devel/electron36/files/patch-third__party_sqlite_src_amalgamation_sqlite3.c new file mode 100644 index 000000000000..9d546e842eda --- /dev/null +++ b/devel/electron36/files/patch-third__party_sqlite_src_amalgamation_sqlite3.c @@ -0,0 +1,32 @@ +--- third_party/sqlite/src/amalgamation/sqlite3.c.orig 2025-05-05 19:42:33 UTC ++++ third_party/sqlite/src/amalgamation/sqlite3.c +@@ -14486,7 +14486,7 @@ struct fts5_api { + ** But _XOPEN_SOURCE define causes problems for Mac OS X, so omit + ** it. + */ +-#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) ++#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) && !defined(__FreeBSD__) + # define _XOPEN_SOURCE 600 + #endif + +@@ -45387,7 +45387,12 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nB + memset(zBuf, 0, nBuf); + randomnessPid = osGetpid(0); + #if !defined(SQLITE_TEST) && !defined(SQLITE_OMIT_RANDOMNESS) ++#if defined(__OpenBSD__) + { ++ arc4random_buf(zBuf, nBuf); ++ } ++#else ++ { + int fd, got; + fd = robust_open("/dev/urandom", O_RDONLY, 0); + if( fd<0 ){ +@@ -45402,6 +45407,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nB + robust_close(0, fd, __LINE__); + } + } ++#endif + #endif + return nBuf; + } diff --git a/devel/electron36/files/patch-third__party_swiftshader_src_Reactor_Debug.cpp b/devel/electron36/files/patch-third__party_swiftshader_src_Reactor_Debug.cpp new file mode 100644 index 000000000000..6d183046901d --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_src_Reactor_Debug.cpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/Reactor/Debug.cpp.orig 2022-02-07 13:39:41 UTC ++++ 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/devel/electron36/files/patch-third__party_swiftshader_src_System_Configurator.cpp b/devel/electron36/files/patch-third__party_swiftshader_src_System_Configurator.cpp new file mode 100644 index 000000000000..8300c60da5ec --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_src_System_Configurator.cpp @@ -0,0 +1,12 @@ +--- third_party/swiftshader/src/System/Configurator.cpp.orig 2022-06-17 14:20:10 UTC ++++ 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/devel/electron36/files/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp b/devel/electron36/files/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp new file mode 100644 index 000000000000..7e1b9f8f0ad3 --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp @@ -0,0 +1,37 @@ +--- third_party/swiftshader/src/System/Linux/MemFd.cpp.orig 2023-10-19 19:59:44 UTC ++++ 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/devel/electron36/files/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp b/devel/electron36/files/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp new file mode 100644 index 000000000000..8bd770cf38ef --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp @@ -0,0 +1,20 @@ +--- third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp.orig 2022-02-07 13:39:41 UTC ++++ 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/devel/electron36/files/patch-third__party_swiftshader_src_WSI_libXCB.cpp b/devel/electron36/files/patch-third__party_swiftshader_src_WSI_libXCB.cpp new file mode 100644 index 000000000000..4f7a5b044079 --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_src_WSI_libXCB.cpp @@ -0,0 +1,20 @@ +--- third_party/swiftshader/src/WSI/libXCB.cpp.orig 2023-03-30 00:40:41 UTC ++++ 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/devel/electron36/files/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h b/devel/electron36/files/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h new file mode 100644 index 000000000000..8e9a23417ae3 --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h @@ -0,0 +1,174 @@ +--- third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h.orig 2022-05-19 14:06:27 UTC ++++ third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h +@@ -29,7 +29,7 @@ + + /* Define to 1 if you have the declaration of `arc4random', and to 0 if you + don't. */ +-#define HAVE_DECL_ARC4RANDOM 0 ++#define HAVE_DECL_ARC4RANDOM 1 + + /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you + don't. */ +@@ -53,7 +53,7 @@ + #define HAVE_DLOPEN 1 + + /* Define if dladdr() is available on this platform. */ +-/* #undef HAVE_DLADDR */ ++#define HAVE_DLADDR 1 + + /* Define to 1 if you have the <errno.h> header file. */ + #define HAVE_ERRNO_H 1 +@@ -92,7 +92,7 @@ + #define HAVE_ISATTY 1 + + /* Define to 1 if you have the `edit' library (-ledit). */ +-/* #undef HAVE_LIBEDIT */ ++#define HAVE_LIBEDIT 1 + + /* Define to 1 if you have the `pfm' library (-lpfm). */ + /* #undef HAVE_LIBPFM */ +@@ -110,13 +110,13 @@ + /* #undef HAVE_PTHREAD_SETNAME_NP */ + + /* Define to 1 if you have the `z' library (-lz). */ +-/* #undef HAVE_LIBZ */ ++#define HAVE_LIBZ 1 + + /* Define to 1 if you have the <link.h> header file. */ +-#define HAVE_LINK_H 1 ++/* #undef HAVE_LINK_H */ + + /* Define to 1 if you have the `lseek64' function. */ +-#define HAVE_LSEEK64 1 ++/* #undef HAVE_LSEEK64 */ + + /* Define to 1 if you have the <mach/mach.h> header file. */ + /* #undef HAVE_MACH_MACH_H */ +@@ -125,7 +125,7 @@ + /* #undef HAVE_MALLCTL */ + + /* Define to 1 if you have the `mallinfo' function. */ +-#define HAVE_MALLINFO 1 ++/* #undef HAVE_MALLINFO */ + + /* Define to 1 if you have the <malloc/malloc.h> header file. */ + /* #undef HAVE_MALLOC_MALLOC_H */ +@@ -134,10 +134,10 @@ + /* #undef HAVE_MALLOC_ZONE_STATISTICS */ + + /* Define to 1 if you have the `posix_fallocate' function. */ +-#define HAVE_POSIX_FALLOCATE 1 ++/* #undef HAVE_POSIX_FALLOCATE */ + + /* Define to 1 if you have the `posix_spawn' function. */ +-/* #undef HAVE_POSIX_SPAWN */ ++#define HAVE_POSIX_SPAWN 1 + + /* Define to 1 if you have the `pread' function. */ + #define HAVE_PREAD 1 +@@ -161,10 +161,10 @@ + #define HAVE_SETENV 1 + + /* Define to 1 if you have the `sched_getaffinity' function. */ +-#define HAVE_SCHED_GETAFFINITY 1 ++/* #undef HAVE_SCHED_GETAFFINITY */ + + /* Define to 1 if you have the `CPU_COUNT' macro. */ +-#define HAVE_CPU_COUNT 1 ++/* #undef HAVE_CPU_COUNT */ + + /* Define to 1 if you have the `setrlimit' function. */ + #define HAVE_SETRLIMIT 1 +@@ -182,7 +182,7 @@ + #define HAVE_STRERROR_R 1 + + /* Define to 1 if you have the `sysconf' function. */ +-#define HAVE_SYSCONF 1 ++/* #undef HAVE_SYSCONF */ + + /* Define to 1 if you have the <sys/ioctl.h> header file. */ + #define HAVE_SYS_IOCTL_H 1 +@@ -209,7 +209,7 @@ + #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 + + /* Define to 1 if you have the <sys/types.h> header file. */ +-#define HAVE_SYS_TYPES_H 1 ++/* #undef HAVE_SYS_TYPES_H */ + + /* Define if the setupterm() function is supported this platform. */ + /* #undef HAVE_TERMINFO */ +@@ -218,16 +218,16 @@ + /* #undef HAVE_LIBXAR */ + + /* Define to 1 if you have the <termios.h> header file. */ +-/* #undef HAVE_TERMIOS_H */ ++#define HAVE_TERMIOS_H 1 + + /* Define to 1 if you have the <unistd.h> header file. */ + #define HAVE_UNISTD_H 1 + + /* Define to 1 if you have the <valgrind/valgrind.h> header file. */ +-/* #undef HAVE_VALGRIND_VALGRIND_H */ ++/* #define HAVE_VALGRIND_VALGRIND_H 1 */ + + /* Define to 1 if you have the <zlib.h> header file. */ +-/* #undef HAVE_ZLIB_H */ ++#define HAVE_ZLIB_H 1 + + /* Have host's _alloca */ + /* #undef HAVE__ALLOCA */ +@@ -292,30 +292,8 @@ + /* Linker version detected at compile time. */ + /* #undef HOST_LINK_VERSION */ + +-/* Target triple LLVM will generate code for by default */ +-/* Doesn't use `cmakedefine` because it is allowed to be empty. */ +-#if defined(__x86_64__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-linux-gnu" +-#elif defined(__i386__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "i686-pc-linux-gnu" +-#elif defined(__arm__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "armv7-linux-gnueabihf" +-#elif defined(__aarch64__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "aarch64-linux-gnu" +-#elif defined(__mips__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "mipsel-linux-gnu" +-#elif defined(__mips64) +-#define LLVM_DEFAULT_TARGET_TRIPLE "mips64el-linux-gnuabi64" +-#elif defined(__powerpc64__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "powerpc64le-unknown-linux-gnu" +-#elif defined(__riscv) && __riscv_xlen == 64 +-#define LLVM_DEFAULT_TARGET_TRIPLE "riscv64-unknown-linux-gnu" +-#else +-#error "unknown architecture" +-#endif +- + /* Define if zlib compression is available */ +-#define LLVM_ENABLE_ZLIB 0 ++/* #define LLVM_ENABLE_ZLIB 1 */ + + /* Define if overriding target triple is enabled */ + /* #undef LLVM_TARGET_TRIPLE_ENV */ +@@ -339,10 +317,10 @@ + #define PACKAGE_NAME "LLVM" + + /* Define to the full name and version of this package. */ +-#define PACKAGE_STRING "LLVM 10.0.0" ++#define PACKAGE_STRING "LLVM 11.1.0" + + /* Define to the version of this package. */ +-#define PACKAGE_VERSION "10.0.0" ++#define PACKAGE_VERSION "11.1.0" + + /* Define to the vendor of this package. */ + /* #undef PACKAGE_VENDOR */ +@@ -361,9 +339,6 @@ + + /* Whether GlobalISel rule coverage is being collected */ + #define LLVM_GISEL_COV_ENABLED 0 +- +-/* Define if we have z3 and want to build it */ +-#define LLVM_WITH_Z3 1 + + /* Define to the default GlobalISel coverage file prefix */ + /* #undef LLVM_GISEL_COV_PREFIX */ diff --git a/devel/electron36/files/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h b/devel/electron36/files/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h new file mode 100644 index 000000000000..9d934bd8e734 --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h @@ -0,0 +1,47 @@ +--- third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h.orig 2022-02-07 13:39:41 UTC ++++ third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h +@@ -5,8 +5,6 @@ + #include "llvm/Config/llvm-config.h" + + /* For detecting __GLIBC__ usage */ +-#include <features.h> +- + /* Bug report URL. */ + #define BUG_REPORT_URL "http://llvm.org/bugs/" + +@@ -27,7 +25,7 @@ + + /* Define to 1 if you have the declaration of `arc4random', and to 0 if you + don't. */ +-#define HAVE_DECL_ARC4RANDOM 0 ++#define HAVE_DECL_ARC4RANDOM 1 + + /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you + don't. */ +@@ -124,7 +122,7 @@ + #define HAVE_LINK_H 1 + + /* Define to 1 if you have the `lseek64' function. */ +-#define HAVE_LSEEK64 1 ++/* #define HAVE_LSEEK64 */ + + /* Define to 1 if you have the <mach/mach.h> header file. */ + /* #undef HAVE_MACH_MACH_H */ +@@ -133,7 +131,7 @@ + /* #undef HAVE_MALLCTL */ + + /* Define to 1 if you have the `mallinfo' function. */ +-#define HAVE_MALLINFO 1 ++/* #define HAVE_MALLINFO */ + + /* Some projects using SwiftShader bypass cmake (eg Chromium via gn) */ + /* so we need to check glibc version for the new API to be safe */ +@@ -163,7 +161,7 @@ + /* #undef HAVE_NDIR_H */ + + /* Define to 1 if you have the `posix_fallocate' function. */ +-#define HAVE_POSIX_FALLOCATE 1 ++/* #define HAVE_POSIX_FALLOCATE */ + + /* Define to 1 if you have the `posix_spawn' function. */ + #define HAVE_POSIX_SPAWN 1 diff --git a/devel/electron36/files/patch-third__party_swiftshader_third__party_marl_src_memory.cpp b/devel/electron36/files/patch-third__party_swiftshader_third__party_marl_src_memory.cpp new file mode 100644 index 000000000000..c0f589f8f517 --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_third__party_marl_src_memory.cpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/third_party/marl/src/memory.cpp.orig 2023-08-10 01:51:25 UTC ++++ third_party/swiftshader/third_party/marl/src/memory.cpp +@@ -19,7 +19,7 @@ + + #include <cstring> + +-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__) ++#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__) || defined(__OpenBSD__) + #include <sys/mman.h> + #include <unistd.h> + namespace { diff --git a/devel/electron36/files/patch-third__party_swiftshader_third__party_marl_src_thread.cpp b/devel/electron36/files/patch-third__party_swiftshader_third__party_marl_src_thread.cpp new file mode 100644 index 000000000000..61663a17fcaa --- /dev/null +++ b/devel/electron36/files/patch-third__party_swiftshader_third__party_marl_src_thread.cpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/third_party/marl/src/thread.cpp.orig 2023-08-10 01:51:25 UTC ++++ third_party/swiftshader/third_party/marl/src/thread.cpp +@@ -444,7 +444,7 @@ void Thread::setName(const char* fmt, ...) { + pthread_setname_np(name); + #elif defined(__FreeBSD__) + pthread_set_name_np(pthread_self(), name); +-#elif !defined(__Fuchsia__) && !defined(__EMSCRIPTEN__) ++#elif !defined(__Fuchsia__) && !defined(__EMSCRIPTEN__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) + pthread_setname_np(pthread_self(), name); + #endif + diff --git a/devel/electron36/files/patch-third__party_test__fonts_fontconfig_BUILD.gn b/devel/electron36/files/patch-third__party_test__fonts_fontconfig_BUILD.gn new file mode 100644 index 000000000000..e70144fa30e1 --- /dev/null +++ b/devel/electron36/files/patch-third__party_test__fonts_fontconfig_BUILD.gn @@ -0,0 +1,28 @@ +--- third_party/test_fonts/fontconfig/BUILD.gn.orig 2025-01-27 17:37:37 UTC ++++ 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) { +@@ -47,7 +51,11 @@ if (is_linux || is_chromeos) { + "//third_party/test_fonts", + ] + args = [] +- inputs = [ "$root_out_dir/etc/fonts/fonts.conf" ] ++ if (is_freebsd) { ++ inputs = [ "$root_out_dir/usr/local/etc/fonts/fonts.conf" ] ++ } else { ++ inputs = [ "$root_out_dir/etc/fonts/fonts.conf" ] ++ } + outputs = [ + "$root_out_dir/fontconfig_caches/fb5c91b2895aa445d23aebf7f9e2189c-le64.cache-9", + "$root_out_dir/fontconfig_caches/CACHEDIR.TAG", diff --git a/devel/electron36/files/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc b/devel/electron36/files/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc new file mode 100644 index 000000000000..65eb80dacd90 --- /dev/null +++ b/devel/electron36/files/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc @@ -0,0 +1,27 @@ +--- third_party/test_fonts/fontconfig/fontconfig_util_linux.cc.orig 2024-04-15 20:34:27 UTC ++++ 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> +@@ -16,11 +18,15 @@ std::string GetSysrootDir() { + 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/devel/electron36/files/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc b/devel/electron36/files/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc new file mode 100644 index 000000000000..418a72bc2886 --- /dev/null +++ b/devel/electron36/files/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc @@ -0,0 +1,11 @@ +--- third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc.orig 2023-03-30 00:34:16 UTC ++++ 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/devel/electron36/files/patch-third__party_tflite_features.gni b/devel/electron36/files/patch-third__party_tflite_features.gni new file mode 100644 index 000000000000..83e708f7ca22 --- /dev/null +++ b/devel/electron36/files/patch-third__party_tflite_features.gni @@ -0,0 +1,13 @@ +--- third_party/tflite/features.gni.orig 2024-08-14 20:56:01 UTC ++++ third_party/tflite/features.gni +@@ -9,8 +9,8 @@ declare_args() { + # This enables building TFLite with XNNPACK. Currently only available for + # Linux, macOS and Windows arm64/x64/x86 targets and ChromeOS non-ARM targets. + build_tflite_with_xnnpack = +- (is_win || is_mac || is_linux || (is_chromeos && overlay_include_cbx)) && +- (current_cpu == "arm64" || current_cpu == "x64" || current_cpu == "x86") ++ ((is_win || is_mac || is_linux || (is_chromeos && overlay_include_cbx)) && ++ (current_cpu == "arm64" || current_cpu == "x64" || current_cpu == "x86")) && !is_bsd + + # Turns on TFLITE_WITH_RUY, using ruy as the gemm backend instead of gemmlowp. + build_tflite_with_ruy = true diff --git a/devel/electron36/files/patch-third__party_unrar_src_crc.cpp b/devel/electron36/files/patch-third__party_unrar_src_crc.cpp new file mode 100644 index 000000000000..ba777a00bd08 --- /dev/null +++ b/devel/electron36/files/patch-third__party_unrar_src_crc.cpp @@ -0,0 +1,22 @@ +--- third_party/unrar/src/crc.cpp.orig 2025-02-21 07:45:09 UTC ++++ third_party/unrar/src/crc.cpp +@@ -43,12 +43,18 @@ void InitCRC32(uint *CRCTab) + } + + #ifdef USE_NEON_CRC32 +- #ifdef _APPLE ++ #if defined(_APPLE) + // getauxval isn't available in OS X + uint Value=0; + size_t Size=sizeof(Value); + int RetCode=sysctlbyname("hw.optional.armv8_crc32",&Value,&Size,NULL,0); + CRC_Neon=RetCode==0 && Value!=0; ++ #elif defined(__FreeBSD__) ++ // getauxval isn't available on FreeBSD ++ uint64 Reg=READ_SPECIALREG(id_aa64isar0_el1); ++ if (ID_AA64ISAR0_CRC32_VAL(Reg) == ID_AA64ISAR0_CRC32_BASE) { ++ CRC_Neon=true; ++ } + #else + CRC_Neon=(getauxval(AT_HWCAP) & HWCAP_CRC32)!=0; + #endif diff --git a/devel/electron36/files/patch-third__party_unrar_src_crypt.cpp b/devel/electron36/files/patch-third__party_unrar_src_crypt.cpp new file mode 100644 index 000000000000..3ce2532bda1f --- /dev/null +++ b/devel/electron36/files/patch-third__party_unrar_src_crypt.cpp @@ -0,0 +1,11 @@ +--- third_party/unrar/src/crypt.cpp.orig 2024-08-14 20:56:02 UTC ++++ third_party/unrar/src/crypt.cpp +@@ -116,6 +116,8 @@ void GetRnd(byte *RndBuf,size_t BufSize) + Success=CryptGenRandom(hProvider, (DWORD)BufSize, RndBuf) != FALSE; + CryptReleaseContext(hProvider, 0); + } ++#elif defined(__OpenBSD__) ++ arc4random_buf(RndBuf, BufSize); + #elif defined(_UNIX) + FILE *rndf = fopen("/dev/urandom", "r"); + if (rndf!=NULL) diff --git a/devel/electron36/files/patch-third__party_unrar_src_os.hpp b/devel/electron36/files/patch-third__party_unrar_src_os.hpp new file mode 100644 index 000000000000..2a6fc6f9128b --- /dev/null +++ b/devel/electron36/files/patch-third__party_unrar_src_os.hpp @@ -0,0 +1,16 @@ +--- third_party/unrar/src/os.hpp.orig 2025-03-24 20:50:14 UTC ++++ third_party/unrar/src/os.hpp +@@ -166,9 +166,12 @@ + + #if defined(__aarch64__) && (defined(__ARM_FEATURE_CRYPTO) || defined(__ARM_FEATURE_CRC32)) + #include <arm_neon.h> +-#ifndef _APPLE ++#if !defined(_APPLE) && !defined(__FreeBSD__) + #include <sys/auxv.h> + #include <asm/hwcap.h> ++#endif ++#ifdef __FreeBSD__ ++#include <machine/armreg.h> + #endif + #ifdef __ARM_FEATURE_CRYPTO + #define USE_NEON_AES diff --git a/devel/electron36/files/patch-third__party_unrar_src_rijndael.cpp b/devel/electron36/files/patch-third__party_unrar_src_rijndael.cpp new file mode 100644 index 000000000000..c01e3b9817bc --- /dev/null +++ b/devel/electron36/files/patch-third__party_unrar_src_rijndael.cpp @@ -0,0 +1,24 @@ +--- third_party/unrar/src/rijndael.cpp.orig 2025-02-21 07:49:13 UTC ++++ third_party/unrar/src/rijndael.cpp +@@ -116,7 +116,7 @@ void Rijndael::Init(bool Encrypt,const byte *key,uint + #endif + + #elif defined(USE_NEON_AES) +- #ifdef _APPLE ++ #if defined(_APPLE) + // getauxval isn't available in OS X + uint Value=0; + size_t Size=sizeof(Value); +@@ -126,6 +126,12 @@ void Rijndael::Init(bool Encrypt,const byte *key,uint + // because "hw.optional.arm.FEAT_AES" was missing in OS X 11, but AES + // still was supported by Neon. + AES_Neon=RetCode!=0 || Value!=0; ++ #elif defined(__FreeBSD__) ++ // getauxval isn't available on FreeBSD ++ uint64 Reg=READ_SPECIALREG(id_aa64isar0_el1); ++ if (ID_AA64ISAR0_AES_VAL(Reg) == ID_AA64ISAR0_AES_BASE) { ++ AES_Neon=true; ++ } + #else + AES_Neon=(getauxval(AT_HWCAP) & HWCAP_AES)!=0; + #endif diff --git a/devel/electron36/files/patch-third__party_vulkan-loader_src_BUILD.gn b/devel/electron36/files/patch-third__party_vulkan-loader_src_BUILD.gn new file mode 100644 index 000000000000..df779ae973cd --- /dev/null +++ b/devel/electron36/files/patch-third__party_vulkan-loader_src_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/vulkan-loader/src/BUILD.gn.orig 2024-10-16 21:33:57 UTC ++++ third_party/vulkan-loader/src/BUILD.gn +@@ -57,7 +57,7 @@ config("vulkan_internal_config") { + defines += [ + "SYSCONFDIR=\"/etc\"", + "FALLBACK_CONFIG_DIRS=\"/etc/xdg\"", +- "FALLBACK_DATA_DIRS=\"/usr/local/share:/usr/share\"", ++ "FALLBACK_DATA_DIRS=\"/usr/X11R6/share:/usr/local/share:/usr/share\"", + ] + } + if (is_apple && !vulkan_loader_shared) { diff --git a/devel/electron36/files/patch-third__party_vulkan-loader_src_loader_vk__loader__platform.h b/devel/electron36/files/patch-third__party_vulkan-loader_src_loader_vk__loader__platform.h new file mode 100644 index 000000000000..da6bc50f5246 --- /dev/null +++ b/devel/electron36/files/patch-third__party_vulkan-loader_src_loader_vk__loader__platform.h @@ -0,0 +1,19 @@ +--- third_party/vulkan-loader/src/loader/vk_loader_platform.h.orig 2025-03-24 20:50:14 UTC ++++ third_party/vulkan-loader/src/loader/vk_loader_platform.h +@@ -353,7 +353,15 @@ static inline char *loader_platform_executable_path(ch + + return buffer; + } +-#elif defined(__Fuchsia__) || defined(__OpenBSD__) ++#elif defined(__OpenBSD__) ++static inline char *loader_platform_executable_path(char *buffer, size_t size) { ++ if ((buffer = getenv("CHROME_EXE_PATH")) != NULL) ++ return buffer; ++ else ++ buffer = "/usr/local/chrome/chrome"; ++ return buffer; ++} ++#elif defined(__Fuchsia__) + static inline char *loader_platform_executable_path(char *buffer, size_t size) { return NULL; } + #elif defined(__QNX__) + diff --git a/devel/electron36/files/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h b/devel/electron36/files/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h new file mode 100644 index 000000000000..4166d377dc13 --- /dev/null +++ b/devel/electron36/files/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h @@ -0,0 +1,11 @@ +--- third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.orig 2025-03-24 20:50:14 UTC ++++ third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h +@@ -2971,7 +2971,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__) + #include <cstdlib> + + #if defined(__APPLE__) diff --git a/devel/electron36/files/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h b/devel/electron36/files/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h new file mode 100644 index 000000000000..ffbab190e6fd --- /dev/null +++ b/devel/electron36/files/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h @@ -0,0 +1,11 @@ +--- third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.orig 2023-11-29 21:41:06 UTC ++++ third_party/vulkan_memory_allocator/include/vk_mem_alloc.h +@@ -2760,7 +2760,7 @@ void* vma_aligned_alloc(size_t alignment, size_t 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__) + #include <cstdlib> + + #if defined(__APPLE__) diff --git a/devel/electron36/files/patch-third__party_wayland_BUILD.gn b/devel/electron36/files/patch-third__party_wayland_BUILD.gn new file mode 100644 index 000000000000..2f32886081b6 --- /dev/null +++ b/devel/electron36/files/patch-third__party_wayland_BUILD.gn @@ -0,0 +1,14 @@ +--- third_party/wayland/BUILD.gn.orig 2024-08-14 20:56:03 UTC ++++ third_party/wayland/BUILD.gn +@@ -24,6 +24,11 @@ if (!use_system_libwayland) { + "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/devel/electron36/files/patch-third__party_wayland_include_config.h b/devel/electron36/files/patch-third__party_wayland_include_config.h new file mode 100644 index 000000000000..2dbdff412c76 --- /dev/null +++ b/devel/electron36/files/patch-third__party_wayland_include_config.h @@ -0,0 +1,29 @@ +--- third_party/wayland/include/config.h.orig 2024-02-21 00:21:13 UTC ++++ third_party/wayland/include/config.h +@@ -9,7 +9,14 @@ + + #define HAVE_BROKEN_MSG_CMSG_CLOEXEC 0 + ++#if defined(__FreeBSD__) ++#include <osreldate.h> ++#if defined(__FreeBSD_version) && __FreeBSD_version < 1300048 ++#undef HAVE_MEMFD_CREATE ++#else + #define HAVE_MEMFD_CREATE ++#endif ++#endif + + #define HAVE_MKOSTEMP + +@@ -25,7 +32,11 @@ + + #undef HAVE_SYS_PROCCTL_H + ++#if defined(__FreeBSD__) ++#define HAVE_SYS_UCRED_H ++#else + #undef HAVE_SYS_UCRED_H ++#endif + + #define HAVE_XUCRED_CR_PID 0 + diff --git a/devel/electron36/files/patch-third__party_webrtc_BUILD.gn b/devel/electron36/files/patch-third__party_webrtc_BUILD.gn new file mode 100644 index 000000000000..58f3d30bbb00 --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_BUILD.gn @@ -0,0 +1,12 @@ +--- third_party/webrtc/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ third_party/webrtc/BUILD.gn +@@ -219,6 +219,9 @@ config("common_inherited_config") { + if (is_linux || is_chromeos) { + defines += [ "WEBRTC_LINUX" ] + } ++ if (is_bsd) { ++ defines += [ "WEBRTC_BSD" ] ++ } + if (is_mac) { + defines += [ "WEBRTC_MAC" ] + } diff --git a/devel/electron36/files/patch-third__party_webrtc_modules_audio__device_BUILD.gn b/devel/electron36/files/patch-third__party_webrtc_modules_audio__device_BUILD.gn new file mode 100644 index 000000000000..83e73882501e --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_modules_audio__device_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/webrtc/modules/audio_device/BUILD.gn.orig 2024-10-16 21:35:54 UTC ++++ third_party/webrtc/modules/audio_device/BUILD.gn +@@ -330,7 +330,7 @@ rtc_library("audio_device_impl") { + if (rtc_use_dummy_audio_file_devices) { + defines += [ "WEBRTC_DUMMY_FILE_DEVICES" ] + } else { +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "linux/alsasymboltable_linux.cc", + "linux/alsasymboltable_linux.h", diff --git a/devel/electron36/files/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc b/devel/electron36/files/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc new file mode 100644 index 000000000000..8182bf25ff58 --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc @@ -0,0 +1,12 @@ +--- third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc +@@ -11,7 +11,9 @@ + #include "modules/desktop_capture/linux/wayland/egl_dmabuf.h" + + #include <EGL/eglext.h> ++#if !defined(WEBRTC_BSD) + #include <asm/ioctl.h> ++#endif + #include <dlfcn.h> + #include <fcntl.h> + #include <libdrm/drm_fourcc.h> diff --git a/devel/electron36/files/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc b/devel/electron36/files/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc new file mode 100644 index 000000000000..feb38c67b899 --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc @@ -0,0 +1,15 @@ +--- third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc.orig 2024-06-18 21:44:56 UTC ++++ third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc +@@ -203,6 +203,12 @@ void XServerPixelBuffer::InitShm(const XWindowAttribut + void XServerPixelBuffer::InitShm(const XWindowAttributes& attributes) { + Visual* default_visual = attributes.visual; + int default_depth = attributes.depth; ++#if defined(__OpenBSD__) ++// pledge(2) ++ RTC_LOG(LS_WARNING) << "Unable to use shmget(2) while using pledge(2). " ++ "Performance may be degraded."; ++ return; ++#endif + + int major, minor; + Bool have_pixmaps; diff --git a/devel/electron36/files/patch-third__party_webrtc_rtc__base_byte__order.h b/devel/electron36/files/patch-third__party_webrtc_rtc__base_byte__order.h new file mode 100644 index 000000000000..d003530c55c2 --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_rtc__base_byte__order.h @@ -0,0 +1,11 @@ +--- third_party/webrtc/rtc_base/byte_order.h.orig 2023-02-01 18:45:24 UTC ++++ third_party/webrtc/rtc_base/byte_order.h +@@ -90,6 +90,8 @@ + #error WEBRTC_ARCH_BIG_ENDIAN or WEBRTC_ARCH_LITTLE_ENDIAN must be defined. + #endif // defined(WEBRTC_ARCH_LITTLE_ENDIAN) + ++#elif defined(WEBRTC_BSD) ++#include <sys/endian.h> + #elif defined(WEBRTC_POSIX) + #include <endian.h> + #else diff --git a/devel/electron36/files/patch-third__party_webrtc_rtc__base_ip__address.cc b/devel/electron36/files/patch-third__party_webrtc_rtc__base_ip__address.cc new file mode 100644 index 000000000000..b256e651869b --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_rtc__base_ip__address.cc @@ -0,0 +1,12 @@ +--- third_party/webrtc/rtc_base/ip_address.cc.orig 2024-10-16 21:35:56 UTC ++++ third_party/webrtc/rtc_base/ip_address.cc +@@ -14,7 +14,8 @@ + #include <cstring> + #include <string> + #if defined(WEBRTC_POSIX) +-#ifdef OPENBSD ++#if defined(WEBRTC_BSD) ++#include <sys/types.h> + #include <netinet/in_systm.h> + #endif + #ifndef __native_client__ diff --git a/devel/electron36/files/patch-third__party_webrtc_rtc__base_net__test__helpers.cc b/devel/electron36/files/patch-third__party_webrtc_rtc__base_net__test__helpers.cc new file mode 100644 index 000000000000..ee7429dcce2b --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_rtc__base_net__test__helpers.cc @@ -0,0 +1,10 @@ +--- third_party/webrtc/rtc_base/net_test_helpers.cc.orig 2023-10-19 20:00:27 UTC ++++ 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/devel/electron36/files/patch-third__party_webrtc_rtc__base_network.cc b/devel/electron36/files/patch-third__party_webrtc_rtc__base_network.cc new file mode 100644 index 000000000000..a03417acb674 --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_rtc__base_network.cc @@ -0,0 +1,15 @@ +--- third_party/webrtc/rtc_base/network.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/webrtc/rtc_base/network.cc +@@ -314,7 +314,12 @@ webrtc::AdapterType GetAdapterTypeFromName(absl::strin + } + #endif + ++#if defined(WEBRTC_BSD) ++ // Treat all other network interface names as ethernet on BSD ++ return webrtc::ADAPTER_TYPE_ETHERNET; ++#else + return webrtc::ADAPTER_TYPE_UNKNOWN; ++#endif + } + + NetworkManager::EnumerationPermission NetworkManager::enumeration_permission() diff --git a/devel/electron36/files/patch-third__party_webrtc_rtc__base_physical__socket__server.cc b/devel/electron36/files/patch-third__party_webrtc_rtc__base_physical__socket__server.cc new file mode 100644 index 000000000000..1be536a0ed72 --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_rtc__base_physical__socket__server.cc @@ -0,0 +1,114 @@ +--- third_party/webrtc/rtc_base/physical_socket_server.cc.orig 2025-04-22 20:15:27 UTC ++++ third_party/webrtc/rtc_base/physical_socket_server.cc +@@ -55,7 +55,7 @@ + #include "rtc_base/time_utils.h" + #include "system_wrappers/include/field_trial.h" + +-#if defined(WEBRTC_LINUX) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + #include <linux/sockios.h> + #endif + +@@ -75,7 +75,7 @@ typedef void* SockOptArg; + + #endif // WEBRTC_POSIX + +-#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__) ++#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__) && !defined(WEBRTC_BSD) + + int64_t GetSocketRecvTimestamp(int socket) { + struct timeval tv_ioctl; +@@ -331,7 +331,7 @@ int PhysicalSocket::GetOption(Option opt, int* value) + return -1; + } + if (opt == OPT_DONTFRAGMENT) { +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + *value = (*value != IP_PMTUDISC_DONT) ? 1 : 0; + #endif + } else if (opt == OPT_DSCP) { +@@ -360,7 +360,7 @@ int PhysicalSocket::SetOption(Option opt, int value) { + if (TranslateOption(opt, &slevel, &sopt) == -1) + return -1; + if (opt == OPT_DONTFRAGMENT) { +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + value = (value) ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT; + #endif + } else if (opt == OPT_DSCP) { +@@ -391,7 +391,7 @@ int PhysicalSocket::Send(const void* pv, size_t cb) { + int PhysicalSocket::Send(const void* pv, size_t cb) { + int sent = DoSend( + s_, reinterpret_cast<const char*>(pv), static_cast<int>(cb), +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + // 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 +@@ -420,7 +420,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), +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + // Suppress SIGPIPE. See above for explanation. + MSG_NOSIGNAL, + #else +@@ -698,7 +698,7 @@ int PhysicalSocket::TranslateOption(Option opt, int* s + *slevel = IPPROTO_IP; + *sopt = IP_DONTFRAGMENT; + break; +-#elif defined(WEBRTC_MAC) || defined(BSD) || defined(__native_client__) ++#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__) + RTC_LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported."; + return -1; + #elif defined(WEBRTC_POSIX) +@@ -747,7 +747,7 @@ int PhysicalSocket::TranslateOption(Option opt, int* s + return -1; + #endif + case OPT_RECV_ECN: +-#if defined(WEBRTC_POSIX) ++#if defined(WEBRTC_POSIX) && defined(IP_RECVTOS) + if (family_ == AF_INET6) { + *slevel = IPPROTO_IPV6; + *sopt = IPV6_RECVTCLASS; +@@ -767,10 +767,19 @@ int PhysicalSocket::TranslateOption(Option opt, int* s + *sopt = SO_KEEPALIVE; + break; + case OPT_TCP_KEEPCNT: ++#if !defined(TCP_KEEPCNT) ++ RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPCNT not supported."; ++ return -1; ++#else + *slevel = IPPROTO_TCP; + *sopt = TCP_KEEPCNT; + break; ++#endif + case OPT_TCP_KEEPIDLE: ++#if !defined(TCP_KEEPALIVE) ++ RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPALIVE not supported."; ++ return -1; ++#else + *slevel = IPPROTO_TCP; + #if !defined(WEBRTC_MAC) + *sopt = TCP_KEEPIDLE; +@@ -778,12 +787,18 @@ int PhysicalSocket::TranslateOption(Option opt, int* s + *sopt = TCP_KEEPALIVE; + #endif + break; ++#endif + case OPT_TCP_KEEPINTVL: ++#if !defined(TCP_KEEPALIVE) ++ RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPINTVL not supported."; ++ return -1; ++#else + *slevel = IPPROTO_TCP; + *sopt = TCP_KEEPINTVL; + break; ++#endif + case OPT_TCP_USER_TIMEOUT: +-#if defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID) ++#if (defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID)) && defined(TCP_USER_TIMEOUT) + *slevel = IPPROTO_TCP; + *sopt = TCP_USER_TIMEOUT; + break; diff --git a/devel/electron36/files/patch-third__party_webrtc_rtc__base_physical__socket__server.h b/devel/electron36/files/patch-third__party_webrtc_rtc__base_physical__socket__server.h new file mode 100644 index 000000000000..b1dc22dd4eef --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_rtc__base_physical__socket__server.h @@ -0,0 +1,11 @@ +--- third_party/webrtc/rtc_base/physical_socket_server.h.orig 2023-11-29 21:41:42 UTC ++++ third_party/webrtc/rtc_base/physical_socket_server.h +@@ -18,7 +18,7 @@ + #include "rtc_base/third_party/sigslot/sigslot.h" + + #if defined(WEBRTC_POSIX) +-#if defined(WEBRTC_LINUX) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + // On Linux, use epoll. + #include <sys/epoll.h> + diff --git a/devel/electron36/files/patch-third__party_webrtc_rtc__base_platform__thread__types.cc b/devel/electron36/files/patch-third__party_webrtc_rtc__base_platform__thread__types.cc new file mode 100644 index 000000000000..2b1e7715b52b --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_rtc__base_platform__thread__types.cc @@ -0,0 +1,37 @@ +--- third_party/webrtc/rtc_base/platform_thread_types.cc.orig 2023-02-01 18:45:24 UTC ++++ third_party/webrtc/rtc_base/platform_thread_types.cc +@@ -11,7 +11,9 @@ + #include "rtc_base/platform_thread_types.h" + + #if defined(WEBRTC_LINUX) ++#if !defined(WEBRTC_BSD) + #include <sys/prctl.h> ++#endif + #include <sys/syscall.h> + #endif + +@@ -44,6 +46,8 @@ PlatformThreadId CurrentThreadId() { + return gettid(); + #elif defined(WEBRTC_FUCHSIA) + return zx_thread_self(); ++#elif defined(WEBRTC_BSD) ++ return reinterpret_cast<uint64_t>(pthread_self()); + #elif defined(WEBRTC_LINUX) + return syscall(__NR_gettid); + #elif defined(__EMSCRIPTEN__) +@@ -74,6 +78,7 @@ bool IsThreadRefEqual(const PlatformThreadRef& a, cons + } + + void SetCurrentThreadName(const char* name) { ++#if !defined(WEBRTC_BSD) + #if defined(WEBRTC_WIN) + // The SetThreadDescription API works even if no debugger is attached. + // The names set with this API also show up in ETW traces. Very handy. +@@ -120,6 +125,7 @@ void SetCurrentThreadName(const char* name) { + zx_status_t status = zx_object_set_property(zx_thread_self(), ZX_PROP_NAME, + name, strlen(name)); + RTC_DCHECK_EQ(status, ZX_OK); ++#endif + #endif + } + diff --git a/devel/electron36/files/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h b/devel/electron36/files/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h new file mode 100644 index 000000000000..e5a7ab18c9c0 --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h @@ -0,0 +1,23 @@ +--- third_party/webrtc/rtc_base/third_party/sigslot/sigslot.h.orig 2022-02-07 13:39:41 UTC ++++ third_party/webrtc/rtc_base/third_party/sigslot/sigslot.h +@@ -178,6 +178,10 @@ class multi_threaded_local { + #endif // _SIGSLOT_HAS_WIN32_THREADS + + #ifdef _SIGSLOT_HAS_POSIX_THREADS ++#if defined(OS_FREEBSD) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wthread-safety-analysis" ++#endif + // The multi threading policies only get compiled in if they are enabled. + class multi_threaded_global { + public: +@@ -201,6 +205,9 @@ class multi_threaded_local { + private: + pthread_mutex_t m_mutex; + }; ++#if defined(OS_FREEBSD) ++#pragma GCC diagnostic pop ++#endif + #endif // _SIGSLOT_HAS_POSIX_THREADS + + template <class mt_policy> diff --git a/devel/electron36/files/patch-third__party_webrtc_system__wrappers_BUILD.gn b/devel/electron36/files/patch-third__party_webrtc_system__wrappers_BUILD.gn new file mode 100644 index 000000000000..018323eda950 --- /dev/null +++ b/devel/electron36/files/patch-third__party_webrtc_system__wrappers_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/webrtc/system_wrappers/BUILD.gn.orig 2024-10-16 21:35:57 UTC ++++ third_party/webrtc/system_wrappers/BUILD.gn +@@ -62,8 +62,6 @@ rtc_library("system_wrappers") { + if (!build_with_chromium) { + sources += [ "source/cpu_features_linux.cc" ] + } +- +- libs += [ "rt" ] + } + + if (is_win) { diff --git a/devel/electron36/files/patch-third__party_widevine_cdm_widevine.gni b/devel/electron36/files/patch-third__party_widevine_cdm_widevine.gni new file mode 100644 index 000000000000..3048ecec5379 --- /dev/null +++ b/devel/electron36/files/patch-third__party_widevine_cdm_widevine.gni @@ -0,0 +1,11 @@ +--- third_party/widevine/cdm/widevine.gni.orig 2023-11-29 21:40:41 UTC ++++ third_party/widevine/cdm/widevine.gni +@@ -28,6 +28,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/devel/electron36/files/patch-third__party_zlib_BUILD.gn b/devel/electron36/files/patch-third__party_zlib_BUILD.gn new file mode 100644 index 000000000000..6a15bbbb8edd --- /dev/null +++ b/devel/electron36/files/patch-third__party_zlib_BUILD.gn @@ -0,0 +1,31 @@ +--- third_party/zlib/BUILD.gn.orig 2024-08-30 11:29:37 UTC ++++ third_party/zlib/BUILD.gn +@@ -128,7 +128,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" ] +@@ -138,6 +138,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") + } +@@ -417,7 +421,7 @@ static_library("minizip") { + ] + } + +- if (is_apple || is_android || is_nacl) { ++ if (is_apple || is_android || is_nacl || is_bsd) { + # Mac, Android and the BSDs don't have fopen64, ftello64, or fseeko64. We + # use fopen, ftell, and fseek instead on these systems. + defines = [ "USE_FILE32API" ] diff --git a/devel/electron36/files/patch-third__party_zlib_cpu__features.c b/devel/electron36/files/patch-third__party_zlib_cpu__features.c new file mode 100644 index 000000000000..bb2872bcc154 --- /dev/null +++ b/devel/electron36/files/patch-third__party_zlib_cpu__features.c @@ -0,0 +1,51 @@ +--- third_party/zlib/cpu_features.c.orig 2024-06-18 21:44:01 UTC ++++ third_party/zlib/cpu_features.c +@@ -39,7 +39,8 @@ int ZLIB_INTERNAL riscv_cpu_enable_vclmul = 0; + #ifndef CPU_NO_SIMD + + #if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || \ +- defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_IOS) ++ defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_IOS) || \ ++ defined(ARMV8_OS_OPENBSD) || defined(ARMV8_OS_FREEBSD) + #include <pthread.h> + #endif + +@@ -56,6 +57,10 @@ int ZLIB_INTERNAL riscv_cpu_enable_vclmul = 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 +@@ -69,7 +74,8 @@ static void _cpu_check_features(void); + #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(RISCV_RVV) ++ defined(RISCV_RVV) || 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. +@@ -122,6 +128,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_CRC32(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/devel/electron36/files/patch-tools_generate__shim__headers_generate__shim__headers.py b/devel/electron36/files/patch-tools_generate__shim__headers_generate__shim__headers.py new file mode 100644 index 000000000000..89fc16651819 --- /dev/null +++ b/devel/electron36/files/patch-tools_generate__shim__headers_generate__shim__headers.py @@ -0,0 +1,21 @@ +--- tools/generate_shim_headers/generate_shim_headers.py.orig 2023-05-25 00:42:52 UTC ++++ tools/generate_shim_headers/generate_shim_headers.py +@@ -18,7 +18,7 @@ import sys + + + SHIM_TEMPLATE = """ +-#if defined(OFFICIAL_BUILD) ++#if defined(GOOGLE_CHROME_BUILD) + #error shim headers must not be used in official builds! + #endif + """ +@@ -65,6 +65,9 @@ def GeneratorMain(argv): + if options.outputs: + yield os.path.join(target_directory, header_filename) + if options.generate: ++ source_file = os.path.join(root, header_filename) ++ if os.path.exists(source_file): ++ os.unlink(source_file) + header_path = os.path.join(target_directory, header_filename) + header_dir = os.path.dirname(header_path) + if not os.path.exists(header_dir): diff --git a/devel/electron36/files/patch-tools_generate__stubs_rules.gni b/devel/electron36/files/patch-tools_generate__stubs_rules.gni new file mode 100644 index 000000000000..a3e779c1b0a6 --- /dev/null +++ b/devel/electron36/files/patch-tools_generate__stubs_rules.gni @@ -0,0 +1,10 @@ +--- tools/generate_stubs/rules.gni.orig 2022-08-31 12:19:35 UTC ++++ tools/generate_stubs/rules.gni +@@ -110,7 +110,6 @@ template("generate_stubs") { + "${target_gen_dir}/${invoker.output_name}.cc", + "${target_gen_dir}/${invoker.output_name}.h", + ] +- libs = [ "dl" ] + include_dirs = [ target_gen_dir ] + if (defined(invoker.configs)) { + configs += invoker.configs diff --git a/devel/electron36/files/patch-tools_gn_build_build__linux.ninja.template b/devel/electron36/files/patch-tools_gn_build_build__linux.ninja.template new file mode 100644 index 000000000000..56060f784b21 --- /dev/null +++ b/devel/electron36/files/patch-tools_gn_build_build__linux.ninja.template @@ -0,0 +1,11 @@ +--- tools/gn/build/build_linux.ninja.template.orig 2024-06-18 21:56:34 UTC ++++ tools/gn/build/build_linux.ninja.template +@@ -5,7 +5,7 @@ rule alink_thin + deps = gcc + + rule alink_thin +- command = $ar rcsT $out $in ++ command = $ar rcs $out $in + description = AR $out + + rule link diff --git a/devel/electron36/files/patch-tools_gn_build_gen.py b/devel/electron36/files/patch-tools_gn_build_gen.py new file mode 100644 index 000000000000..b336d9b3ceb1 --- /dev/null +++ b/devel/electron36/files/patch-tools_gn_build_gen.py @@ -0,0 +1,34 @@ +--- tools/gn/build/gen.py.orig 2025-04-22 20:15:27 UTC ++++ tools/gn/build/gen.py +@@ -94,6 +94,12 @@ class Platform(object): + def is_solaris(self): + return self._platform == 'solaris' + ++ def is_openbsd(self): ++ return self._platform == 'openbsd' ++ ++ def is_freebsd(self): ++ return self._platform == 'freebsd' ++ + def is_posix(self): + return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku', 'solaris', 'msys', 'netbsd', 'serenity'] + +@@ -304,7 +310,7 @@ def WriteGenericNinja(path, static_libraries, executab + 'linux': 'build_linux.ninja.template', + 'freebsd': 'build_linux.ninja.template', + 'aix': 'build_aix.ninja.template', +- 'openbsd': 'build_openbsd.ninja.template', ++ 'openbsd': 'build_linux.ninja.template', + 'haiku': 'build_haiku.ninja.template', + 'solaris': 'build_linux.ninja.template', + 'netbsd': 'build_linux.ninja.template', +@@ -542,6 +548,9 @@ def WriteGNNinja(path, platform, host, options, args_l + + if platform.is_posix() and not platform.is_haiku(): + ldflags.append('-pthread') ++ ++ if platform.is_openbsd(): ++ libs.append('-lkvm') + + if platform.is_mingw() or platform.is_msys(): + cflags.extend(['-DUNICODE', diff --git a/devel/electron36/files/patch-tools_gn_src_base_files_file__posix.cc b/devel/electron36/files/patch-tools_gn_src_base_files_file__posix.cc new file mode 100644 index 000000000000..fb7946338de4 --- /dev/null +++ b/devel/electron36/files/patch-tools_gn_src_base_files_file__posix.cc @@ -0,0 +1,11 @@ +--- tools/gn/src/base/files/file_posix.cc.orig 2024-10-16 21:48:27 UTC ++++ tools/gn/src/base/files/file_posix.cc +@@ -359,7 +359,7 @@ bool File::Flush() { + bool File::Flush() { + DCHECK(IsValid()); + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + return !HANDLE_EINTR(fdatasync(file_.get())); + #else + return !HANDLE_EINTR(fsync(file_.get())); diff --git a/devel/electron36/files/patch-tools_gn_src_gn_version.h b/devel/electron36/files/patch-tools_gn_src_gn_version.h new file mode 100644 index 000000000000..a3c6f07d4a48 --- /dev/null +++ b/devel/electron36/files/patch-tools_gn_src_gn_version.h @@ -0,0 +1,15 @@ +--- tools/gn/src/gn/version.h.orig 2021-09-14 02:05:25 UTC ++++ tools/gn/src/gn/version.h +@@ -22,9 +22,9 @@ class Version { + + static std::optional<Version> FromString(std::string s); + +- int major() const { return major_; } +- int minor() const { return minor_; } +- int patch() const { return patch_; } ++ int gmajor() const { return major_; } ++ int gminor() const { return minor_; } ++ int gpatch() const { return patch_; } + + bool operator==(const Version& other) const; + bool operator<(const Version& other) const; diff --git a/devel/electron36/files/patch-tools_gn_src_util_exe__path.cc b/devel/electron36/files/patch-tools_gn_src_util_exe__path.cc new file mode 100644 index 000000000000..54f6fb40afea --- /dev/null +++ b/devel/electron36/files/patch-tools_gn_src_util_exe__path.cc @@ -0,0 +1,90 @@ +--- tools/gn/src/util/exe_path.cc.orig 2022-02-07 13:39:41 UTC ++++ tools/gn/src/util/exe_path.cc +@@ -15,7 +15,7 @@ + #include <windows.h> + + #include "base/win/win_util.h" +-#elif defined(OS_FREEBSD) || defined(OS_NETBSD) ++#elif defined(OS_FREEBSD) || defined(OS_NETBSD) || defined(OS_OPENBSD) + #include <limits.h> + #include <sys/sysctl.h> + #include <sys/types.h> +@@ -26,6 +26,10 @@ + #include <stdlib.h> + #endif + ++#if defined(OS_OPENBSD) ++#include <kvm.h> ++#endif ++ + #if defined(OS_MACOSX) + + base::FilePath GetExePath() { +@@ -102,6 +106,67 @@ base::FilePath GetExePath() { + return base::FilePath(); + } + return base::FilePath(raw); ++} ++ ++#elif defined(OS_OPENBSD) ++ ++base::FilePath GetExePath() { ++ struct kinfo_file *files; ++ kvm_t *kd = NULL; ++ char errbuf[_POSIX2_LINE_MAX]; ++ char **retvalargs; ++#define MAXTOKENS 2 ++ char *tokens[MAXTOKENS]; ++ static char retval[PATH_MAX]; ++ int cnt; ++ size_t len; ++ struct stat sb; ++ pid_t cpid = getpid(); ++ ++ int mib[] = { CTL_KERN, KERN_PROC_ARGS, cpid, KERN_PROC_ARGV }; ++ ++ if (sysctl(mib, 4, NULL, &len, NULL, 0) != -1) { ++ retvalargs = static_cast<char**>(malloc(len)); ++ if (!retvalargs) ++ goto out; ++ ++ if (sysctl(mib, 4, retvalargs, &len, NULL, 0) < 0) ++ goto out; ++ ++ char *cr = strdup(retvalargs[0]); ++ free(retvalargs); ++ ++ *tokens = strtok(cr, ":"); ++ if (tokens[0] == NULL) ++ goto out; ++ ++ if (realpath(tokens[0], retval) == NULL) ++ goto out; ++ ++ if (stat(retval, &sb) < 0) ++ goto out; ++ ++ if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL) ++ goto out; ++ ++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid, ++ sizeof(struct kinfo_file), &cnt)) == NULL) { ++ kvm_close(kd); ++ goto out; ++ } ++ ++ for (int i = 0; i < cnt; i++) { ++ if (files[i].fd_fd == KERN_FILE_TEXT && ++ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) && ++ files[i].va_fileid == sb.st_ino) { ++ kvm_close(kd); ++ return base::FilePath(retval); ++ } ++ } ++ } ++ ++out: ++ return base::FilePath(); + } + + #elif defined(OS_ZOS) diff --git a/devel/electron36/files/patch-tools_grit_grit_node_base.py b/devel/electron36/files/patch-tools_grit_grit_node_base.py new file mode 100644 index 000000000000..d7ae70e59526 --- /dev/null +++ b/devel/electron36/files/patch-tools_grit_grit_node_base.py @@ -0,0 +1,12 @@ +--- tools/grit/grit/node/base.py.orig 2025-04-22 20:15:27 UTC ++++ tools/grit/grit/node/base.py +@@ -496,7 +496,8 @@ class Node: + value = defs + + elif name == 'is_linux': +- value = target_platform == 'linux' ++ value = (target_platform == 'linux' ++ or 'bsd' in target_platform) + elif name == 'is_chromeos': + value = target_platform == 'chromeos' + elif name == 'is_macosx': diff --git a/devel/electron36/files/patch-tools_json__schema__compiler_cpp__bundle__generator.py b/devel/electron36/files/patch-tools_json__schema__compiler_cpp__bundle__generator.py new file mode 100644 index 000000000000..4d8abccd994d --- /dev/null +++ b/devel/electron36/files/patch-tools_json__schema__compiler_cpp__bundle__generator.py @@ -0,0 +1,11 @@ +--- tools/json_schema_compiler/cpp_bundle_generator.py.orig 2025-04-22 20:15:27 UTC ++++ tools/json_schema_compiler/cpp_bundle_generator.py +@@ -140,7 +140,7 @@ class CppBundleGenerator(object): + elif platform == Platforms.FUCHSIA: + ifdefs.append('BUILDFLAG(IS_FUCHSIA)') + elif platform == Platforms.LINUX: +- ifdefs.append('BUILDFLAG(IS_LINUX)') ++ ifdefs.append('BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)') + elif platform == Platforms.MAC: + ifdefs.append('BUILDFLAG(IS_MAC)') + elif platform == Platforms.WIN: diff --git a/devel/electron36/files/patch-tools_json__schema__compiler_feature__compiler.py b/devel/electron36/files/patch-tools_json__schema__compiler_feature__compiler.py new file mode 100644 index 000000000000..2a5f458452cc --- /dev/null +++ b/devel/electron36/files/patch-tools_json__schema__compiler_feature__compiler.py @@ -0,0 +1,11 @@ +--- tools/json_schema_compiler/feature_compiler.py.orig 2025-04-22 20:15:27 UTC ++++ tools/json_schema_compiler/feature_compiler.py +@@ -289,6 +289,8 @@ FEATURE_GRAMMAR = ({ + 'linux': 'Feature::LINUX_PLATFORM', + 'mac': 'Feature::MACOSX_PLATFORM', + 'win': 'Feature::WIN_PLATFORM', ++ 'openbsd': 'Feature::LINUX_PLATFORM', ++ 'freebsd': 'Feature::LINUX_PLATFORM', + } + } + }, diff --git a/devel/electron36/files/patch-tools_memory_partition__allocator_inspect__utils.h b/devel/electron36/files/patch-tools_memory_partition__allocator_inspect__utils.h new file mode 100644 index 000000000000..47a2f196e078 --- /dev/null +++ b/devel/electron36/files/patch-tools_memory_partition__allocator_inspect__utils.h @@ -0,0 +1,11 @@ +--- tools/memory/partition_allocator/inspect_utils.h.orig 2024-02-21 00:21:14 UTC ++++ tools/memory/partition_allocator/inspect_utils.h +@@ -61,7 +61,7 @@ class RemoteProcessMemoryReader { + const pid_t pid_; + bool is_valid_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::ScopedFD mem_fd_; + #elif BUILDFLAG(IS_MAC) + task_t task_; diff --git a/devel/electron36/files/patch-tools_perf_chrome__telemetry__build_BUILD.gn b/devel/electron36/files/patch-tools_perf_chrome__telemetry__build_BUILD.gn new file mode 100644 index 000000000000..c16730bd524b --- /dev/null +++ b/devel/electron36/files/patch-tools_perf_chrome__telemetry__build_BUILD.gn @@ -0,0 +1,20 @@ +--- tools/perf/chrome_telemetry_build/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ tools/perf/chrome_telemetry_build/BUILD.gn +@@ -56,7 +56,7 @@ group("telemetry_chrome_test") { + data_deps += [ "//chrome:reorder_imports" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + data_deps += [ "//third_party/breakpad:dump_syms" ] + + # CrOS currently has issues with the locally compiled version of +@@ -210,7 +210,7 @@ group("telemetry_chrome_test_without_chrome") { + ] + + # Cr-Fuchsia doesn't support breakpad. +- if (!is_win && !is_fuchsia) { ++ if (!is_win && !is_fuchsia && !is_bsd) { + data_deps += [ + # This is defined for Windows, but is unused by Telemetry on + # Windows, and including it can have issues when cross-compiling diff --git a/devel/electron36/files/patch-tools_protoc__wrapper_protoc__wrapper.py b/devel/electron36/files/patch-tools_protoc__wrapper_protoc__wrapper.py new file mode 100644 index 000000000000..deea745ff3b2 --- /dev/null +++ b/devel/electron36/files/patch-tools_protoc__wrapper_protoc__wrapper.py @@ -0,0 +1,24 @@ +--- tools/protoc_wrapper/protoc_wrapper.py.orig 2024-06-18 21:44:01 UTC ++++ tools/protoc_wrapper/protoc_wrapper.py +@@ -183,15 +183,19 @@ def main(argv): + if not options.exclude_imports: + protoc_cmd += ["--include_imports"] + ++ nenv = os.environ.copy() ++ nenv["PATH"] = "${WRKOBJDIR}/bin:" + nenv["PATH"] ++ nenv["LD_LIBRARY_PATH"] = "${WRKSRC}/out/Release" ++ + dependency_file_data = None + if options.descriptor_set_out and options.descriptor_set_dependency_file: + protoc_cmd += ['--dependency_out', options.descriptor_set_dependency_file] +- ret = subprocess.call(protoc_cmd) ++ ret = subprocess.call(protoc_cmd, env=nenv) + + with open(options.descriptor_set_dependency_file, 'rb') as f: + dependency_file_data = f.read().decode('utf-8') + +- ret = subprocess.call(protoc_cmd) ++ ret = subprocess.call(protoc_cmd, env=nenv) + if ret != 0: + if ret <= -100: + # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to diff --git a/devel/electron36/files/patch-tools_variations_fieldtrial__to__struct.py b/devel/electron36/files/patch-tools_variations_fieldtrial__to__struct.py new file mode 100644 index 000000000000..17377bfe54f4 --- /dev/null +++ b/devel/electron36/files/patch-tools_variations_fieldtrial__to__struct.py @@ -0,0 +1,11 @@ +--- tools/variations/fieldtrial_to_struct.py.orig 2022-02-07 13:39:41 UTC ++++ tools/variations/fieldtrial_to_struct.py +@@ -41,6 +41,8 @@ _platforms = [ + 'linux', + 'mac', + 'windows', ++ 'openbsd', ++ 'freebsd', + ] + + _form_factors = [ diff --git a/devel/electron36/files/patch-ui_accessibility_accessibility__features.cc b/devel/electron36/files/patch-ui_accessibility_accessibility__features.cc new file mode 100644 index 000000000000..a5775519a4e1 --- /dev/null +++ b/devel/electron36/files/patch-ui_accessibility_accessibility__features.cc @@ -0,0 +1,11 @@ +--- ui/accessibility/accessibility_features.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/accessibility/accessibility_features.cc +@@ -472,7 +472,7 @@ bool IsBlockRootWindowAccessibleNameChangeEventEnabled + } + #endif // BUILDFLAG(IS_MAC) + +-#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(kWasmTtsComponentUpdaterEnabled, + "WasmTtsComponentUpdaterEnabled", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/devel/electron36/files/patch-ui_accessibility_accessibility__features.h b/devel/electron36/files/patch-ui_accessibility_accessibility__features.h new file mode 100644 index 000000000000..1d3c14592826 --- /dev/null +++ b/devel/electron36/files/patch-ui_accessibility_accessibility__features.h @@ -0,0 +1,11 @@ +--- ui/accessibility/accessibility_features.h.orig 2025-04-22 20:15:27 UTC ++++ ui/accessibility/accessibility_features.h +@@ -324,7 +324,7 @@ AX_BASE_EXPORT bool IsBlockRootWindowAccessibleNameCha + AX_BASE_EXPORT bool IsBlockRootWindowAccessibleNameChangeEventEnabled(); + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Enable the component updater to download the wasm tts engine component. + AX_BASE_EXPORT BASE_DECLARE_FEATURE(kWasmTtsComponentUpdaterEnabled); + AX_BASE_EXPORT bool IsWasmTtsComponentUpdaterEnabled(); diff --git a/devel/electron36/files/patch-ui_accessibility_ax__node.cc b/devel/electron36/files/patch-ui_accessibility_ax__node.cc new file mode 100644 index 000000000000..8d8f70e4e63c --- /dev/null +++ b/devel/electron36/files/patch-ui_accessibility_ax__node.cc @@ -0,0 +1,20 @@ +--- ui/accessibility/ax_node.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/accessibility/ax_node.cc +@@ -1553,7 +1553,7 @@ AXNode::GetExtraMacNodes() const { + return &table_info->extra_mac_nodes; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + AXNode* AXNode::GetExtraAnnouncementNode( + ax::mojom::AriaNotificationPriority priority_property) const { + if (!tree_->extra_announcement_nodes()) { +@@ -1581,7 +1581,7 @@ bool AXNode::IsGenerated() const { + GetRole() == ax::mojom::Role::kColumn || + GetRole() == ax::mojom::Role::kTableHeaderContainer; + DCHECK_EQ(is_generated_node, is_extra_mac_node_role); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux, generated nodes are always children of the root. + if (GetParent() && GetParent()->GetManager()) { + DCHECK(GetParent()->GetManager()->IsRoot()); diff --git a/devel/electron36/files/patch-ui_accessibility_ax__node.h b/devel/electron36/files/patch-ui_accessibility_ax__node.h new file mode 100644 index 000000000000..2ea6a4d797c6 --- /dev/null +++ b/devel/electron36/files/patch-ui_accessibility_ax__node.h @@ -0,0 +1,11 @@ +--- ui/accessibility/ax_node.h.orig 2025-04-22 20:15:27 UTC ++++ ui/accessibility/ax_node.h +@@ -587,7 +587,7 @@ class AX_EXPORT AXNode final { + const std::vector<raw_ptr<AXNode, VectorExperimental>>* GetExtraMacNodes() + const; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + AXNode* GetExtraAnnouncementNode( + ax::mojom::AriaNotificationPriority priority_property) const; + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-ui_accessibility_ax__tree.cc b/devel/electron36/files/patch-ui_accessibility_ax__tree.cc new file mode 100644 index 000000000000..c24509bf1668 --- /dev/null +++ b/devel/electron36/files/patch-ui_accessibility_ax__tree.cc @@ -0,0 +1,38 @@ +--- ui/accessibility/ax_tree.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/accessibility/ax_tree.cc +@@ -824,7 +824,7 @@ bool AXTree::ComputeNodeIsIgnoredChanged( + return old_node_is_ignored != new_node_is_ignored; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ExtraAnnouncementNodes::ExtraAnnouncementNodes(AXNode* root) { + assertive_node_ = CreateNode("assertive", root); + polite_node_ = CreateNode("polite", root); +@@ -917,7 +917,7 @@ void AXTree::Destroy() { + + void AXTree::Destroy() { + base::ElapsedThreadTimer timer; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ClearExtraAnnouncementNodes(); + #endif // BUILDFLAG(IS_LINUX) + +@@ -2104,7 +2104,7 @@ void AXTree::NotifyNodeAttributesWillChange( + new_data); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void AXTree::ClearExtraAnnouncementNodes() { + if (!extra_announcement_nodes_) { + return; +@@ -2493,7 +2493,7 @@ bool AXTree::CreateNewChildVector( + AXTreeUpdateState* update_state) { + DCHECK(GetTreeUpdateInProgressState()); + bool success = true; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If the root node has children added, clear the extra announcement nodes, + // which should always have their indices as the last two children of the root + // node. They will be recreated if needed, and given the correct indices. diff --git a/devel/electron36/files/patch-ui_accessibility_ax__tree.h b/devel/electron36/files/patch-ui_accessibility_ax__tree.h new file mode 100644 index 000000000000..6b3b235c5cce --- /dev/null +++ b/devel/electron36/files/patch-ui_accessibility_ax__tree.h @@ -0,0 +1,29 @@ +--- ui/accessibility/ax_tree.h.orig 2025-04-22 20:15:27 UTC ++++ ui/accessibility/ax_tree.h +@@ -62,7 +62,7 @@ enum class AXTreeUnserializeError { + }; + // LINT.ThenChange(/tools/metrics/histograms/metadata/accessibility/enums.xml:AccessibilityTreeUnserializeError) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // To support AriaNotify on older versions of ATK, we need to use the ATK + // signal "Text::text-insert". This signal requires a node that is a + // text type, and it needs to have aria-live properties set in order for +@@ -287,7 +287,7 @@ class AX_EXPORT AXTree { + + void NotifyChildTreeConnectionChanged(AXNode* node, AXTree* child_tree); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void ClearExtraAnnouncementNodes(); + void CreateExtraAnnouncementNodes(); + ExtraAnnouncementNodes* extra_announcement_nodes() const { +@@ -544,7 +544,7 @@ class AX_EXPORT AXTree { + + std::unique_ptr<AXEvent> event_data_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<ExtraAnnouncementNodes> extra_announcement_nodes_ = nullptr; + #endif // BUILDFLAG(IS_LINUX) + }; diff --git a/devel/electron36/files/patch-ui_aura_client_drag__drop__client.h b/devel/electron36/files/patch-ui_aura_client_drag__drop__client.h new file mode 100644 index 000000000000..c6a6dfcc8b6a --- /dev/null +++ b/devel/electron36/files/patch-ui_aura_client_drag__drop__client.h @@ -0,0 +1,11 @@ +--- ui/aura/client/drag_drop_client.h.orig 2023-02-01 18:43:51 UTC ++++ ui/aura/client/drag_drop_client.h +@@ -44,7 +44,7 @@ class AURA_EXPORT DragDropClient { + int allowed_operations, + ui::mojom::DragEventSource source) = 0; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Updates the drag image. An empty |image| may be used to hide a previously + // set non-empty drag image, and a non-empty |image| shows the drag image + // again if it was previously hidden. diff --git a/devel/electron36/files/patch-ui_aura_screen__ozone.cc b/devel/electron36/files/patch-ui_aura_screen__ozone.cc new file mode 100644 index 000000000000..941e91f970b7 --- /dev/null +++ b/devel/electron36/files/patch-ui_aura_screen__ozone.cc @@ -0,0 +1,11 @@ +--- ui/aura/screen_ozone.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/aura/screen_ozone.cc +@@ -107,7 +107,7 @@ display::Display ScreenOzone::GetPrimaryDisplay() cons + return platform_screen_->GetPrimaryDisplay(); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ScreenOzone::ScreenSaverSuspenderOzone::ScreenSaverSuspenderOzone( + std::unique_ptr<ui::PlatformScreen::PlatformScreenSaverSuspender> suspender) + : suspender_(std::move(suspender)) {} diff --git a/devel/electron36/files/patch-ui_aura_screen__ozone.h b/devel/electron36/files/patch-ui_aura_screen__ozone.h new file mode 100644 index 000000000000..0541dd37e806 --- /dev/null +++ b/devel/electron36/files/patch-ui_aura_screen__ozone.h @@ -0,0 +1,20 @@ +--- ui/aura/screen_ozone.h.orig 2025-01-27 17:37:37 UTC ++++ ui/aura/screen_ozone.h +@@ -44,7 +44,7 @@ class AURA_EXPORT ScreenOzone : public display::Screen + display::Display GetDisplayMatching( + const gfx::Rect& match_rect) const override; + display::Display GetPrimaryDisplay() const override; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<display::Screen::ScreenSaverSuspender> SuspendScreenSaver() + override; + #endif // BUILDFLAG(IS_LINUX) +@@ -68,7 +68,7 @@ class AURA_EXPORT ScreenOzone : public display::Screen + ui::PlatformScreen* platform_screen() { return platform_screen_.get(); } + + private: +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class ScreenSaverSuspenderOzone + : public display::Screen::ScreenSaverSuspender { + public: diff --git a/devel/electron36/files/patch-ui_base_accelerators_accelerator.cc b/devel/electron36/files/patch-ui_base_accelerators_accelerator.cc new file mode 100644 index 000000000000..c1bfb302bbd3 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_accelerators_accelerator.cc @@ -0,0 +1,11 @@ +--- ui/base/accelerators/accelerator.cc.orig 2025-05-11 11:50:45 UTC ++++ ui/base/accelerators/accelerator.cc +@@ -346,7 +346,7 @@ std::u16string Accelerator::ApplyLongFormModifiers( + result = ApplyModifierToAcceleratorString(result, IDS_APP_SEARCH_KEY); + #elif BUILDFLAG(IS_WIN) + result = ApplyModifierToAcceleratorString(result, IDS_APP_WINDOWS_KEY); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + result = ApplyModifierToAcceleratorString(result, IDS_APP_SUPER_KEY); + #else + NOTREACHED(); diff --git a/devel/electron36/files/patch-ui_base_accelerators_accelerator__unittest.cc b/devel/electron36/files/patch-ui_base_accelerators_accelerator__unittest.cc new file mode 100644 index 000000000000..2f0d0e5ceff2 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_accelerators_accelerator__unittest.cc @@ -0,0 +1,11 @@ +--- ui/base/accelerators/accelerator_unittest.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/base/accelerators/accelerator_unittest.cc +@@ -56,7 +56,7 @@ TEST(AcceleratorTest, MAYBE_GetShortcutText) { + #if BUILDFLAG(IS_MAC) + {VKEY_T, EF_COMMAND_DOWN | EF_CONTROL_DOWN, nullptr, u"⌃⌘T"}, + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {VKEY_T, EF_COMMAND_DOWN | EF_CONTROL_DOWN, u"Super+Ctrl+T", nullptr}, + #endif + }; diff --git a/devel/electron36/files/patch-ui_base_accelerators_command.cc b/devel/electron36/files/patch-ui_base_accelerators_command.cc new file mode 100644 index 000000000000..6d8ceb5a2bd7 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_accelerators_command.cc @@ -0,0 +1,11 @@ +--- ui/base/accelerators/command.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/base/accelerators/command.cc +@@ -81,7 +81,7 @@ std::string Command::CommandPlatform() { + return ui::kKeybindingPlatformMac; + #elif BUILDFLAG(IS_CHROMEOS) + return ui::kKeybindingPlatformChromeOs; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return ui::kKeybindingPlatformLinux; + #elif BUILDFLAG(IS_FUCHSIA) + // TODO(crbug.com/40220501): Change this once we decide what string should be diff --git a/devel/electron36/files/patch-ui_base_accelerators_global__accelerator__listener_global__accelerator__listener__ozone.cc b/devel/electron36/files/patch-ui_base_accelerators_global__accelerator__listener_global__accelerator__listener__ozone.cc new file mode 100644 index 000000000000..4c3f15c70530 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_accelerators_global__accelerator__listener_global__accelerator__listener__ozone.cc @@ -0,0 +1,29 @@ +--- ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc.orig 2025-04-06 11:53:45 UTC ++++ ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc +@@ -12,7 +12,7 @@ + #include "ui/base/accelerators/accelerator.h" + #include "ui/ozone/public/ozone_platform.h" + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DBUS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DBUS) + #include "base/feature_list.h" + #include "ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_linux.h" + #endif +@@ -20,7 +20,7 @@ namespace { + using content::BrowserThread; + + namespace { +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DBUS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DBUS) + BASE_FEATURE(kGlobalShortcutsPortal, + "GlobalShortcutsPortal", + base::FEATURE_ENABLED_BY_DEFAULT); +@@ -38,7 +38,7 @@ GlobalAcceleratorListener* GlobalAcceleratorListener:: + return instance->get(); + } + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DBUS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DBUS) + if (base::FeatureList::IsEnabled(kGlobalShortcutsPortal)) { + static GlobalAcceleratorListenerLinux* const linux_instance = + new GlobalAcceleratorListenerLinux(nullptr); diff --git a/devel/electron36/files/patch-ui_base_clipboard_clipboard__constants.cc b/devel/electron36/files/patch-ui_base_clipboard_clipboard__constants.cc new file mode 100644 index 000000000000..fe2679461030 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_clipboard_clipboard__constants.cc @@ -0,0 +1,20 @@ +--- ui/base/clipboard/clipboard_constants.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/base/clipboard/clipboard_constants.cc +@@ -25,7 +25,7 @@ const char kMimeTypeWindowDrag[] = "chromium/x-window- + // Used for window dragging on some platforms. + const char kMimeTypeWindowDrag[] = "chromium/x-window-drag"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + const char kMimeTypeLinuxUtf8String[] = "UTF8_STRING"; + const char kMimeTypeLinuxString[] = "STRING"; + const char kMimeTypeLinuxText[] = "TEXT"; +@@ -33,7 +33,7 @@ const char kMimeTypeLinuxText[] = "TEXT"; + // BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + const char kMimeTypeSourceUrl[] = "chromium/x-source-url"; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) diff --git a/devel/electron36/files/patch-ui_base_clipboard_clipboard__constants.h b/devel/electron36/files/patch-ui_base_clipboard_clipboard__constants.h new file mode 100644 index 000000000000..d391053afa62 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_clipboard_clipboard__constants.h @@ -0,0 +1,20 @@ +--- ui/base/clipboard/clipboard_constants.h.orig 2025-03-24 20:50:14 UTC ++++ ui/base/clipboard/clipboard_constants.h +@@ -41,7 +41,7 @@ extern const char kMimeTypeWindowDrag[]; + + // ----- LINUX & CHROMEOS & FUCHSIA MIME TYPES ----- + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) + extern const char kMimeTypeLinuxUtf8String[]; + COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) +@@ -53,7 +53,7 @@ COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) + // BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + extern const char kMimeTypeSourceUrl[]; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) diff --git a/devel/electron36/files/patch-ui_base_clipboard_clipboard__non__backed.cc b/devel/electron36/files/patch-ui_base_clipboard_clipboard__non__backed.cc new file mode 100644 index 000000000000..e213aadc33a1 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_clipboard_clipboard__non__backed.cc @@ -0,0 +1,11 @@ +--- ui/base/clipboard/clipboard_non_backed.cc.orig 2024-06-18 21:44:02 UTC ++++ ui/base/clipboard/clipboard_non_backed.cc +@@ -461,7 +461,7 @@ ClipboardNonBacked::ClipboardNonBacked() { + // so create internal clipboards for platform supported clipboard buffers. + constexpr ClipboardBuffer kClipboardBuffers[] = { + ClipboardBuffer::kCopyPaste, +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + ClipboardBuffer::kSelection, + #endif + #if BUILDFLAG(IS_MAC) diff --git a/devel/electron36/files/patch-ui_base_cursor_cursor__factory.cc b/devel/electron36/files/patch-ui_base_cursor_cursor__factory.cc new file mode 100644 index 000000000000..31569397cc2b --- /dev/null +++ b/devel/electron36/files/patch-ui_base_cursor_cursor__factory.cc @@ -0,0 +1,11 @@ +--- ui/base/cursor/cursor_factory.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/base/cursor/cursor_factory.cc +@@ -96,7 +96,7 @@ void CursorFactory::ObserveThemeChanges() { + NOTIMPLEMENTED(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + // Returns a cursor name compatible with either X11 or the FreeDesktop.org + // cursor spec ([1] and [2]), followed by fallbacks that can work as diff --git a/devel/electron36/files/patch-ui_base_cursor_cursor__factory.h b/devel/electron36/files/patch-ui_base_cursor_cursor__factory.h new file mode 100644 index 000000000000..e7cc32bce26e --- /dev/null +++ b/devel/electron36/files/patch-ui_base_cursor_cursor__factory.h @@ -0,0 +1,11 @@ +--- ui/base/cursor/cursor_factory.h.orig 2023-10-19 19:59:21 UTC ++++ ui/base/cursor/cursor_factory.h +@@ -93,7 +93,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) CursorFactory { + base::ObserverList<CursorFactoryObserver>::Unchecked observers_; + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(UI_BASE_CURSOR) + std::vector<std::string> CursorNamesFromType(mojom::CursorType type); + #endif diff --git a/devel/electron36/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc b/devel/electron36/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc new file mode 100644 index 000000000000..6726b649d956 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc @@ -0,0 +1,20 @@ +--- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2022-02-28 16:54:41 UTC ++++ ui/base/dragdrop/os_exchange_data_provider_factory.cc +@@ -7,7 +7,7 @@ + #include "base/notreached.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "ui/base/dragdrop/os_exchange_data_provider_factory_ozone.h" + #include "ui/base/dragdrop/os_exchange_data_provider_non_backed.h" + #elif BUILDFLAG(IS_APPLE) +@@ -21,7 +21,7 @@ namespace ui { + // static + std::unique_ptr<OSExchangeDataProvider> + OSExchangeDataProviderFactory::CreateProvider() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The instance can be nullptr in tests that do not instantiate the platform, + // or on platforms that do not implement specific drag'n'drop. For them, + // falling back to the Aura provider should be fine. diff --git a/devel/electron36/files/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc b/devel/electron36/files/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc new file mode 100644 index 000000000000..262a16747f0c --- /dev/null +++ b/devel/electron36/files/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc @@ -0,0 +1,11 @@ +--- ui/base/dragdrop/os_exchange_data_provider_non_backed.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/base/dragdrop/os_exchange_data_provider_non_backed.cc +@@ -101,7 +101,7 @@ std::optional<std::u16string> OSExchangeDataProviderNo + + std::optional<std::u16string> OSExchangeDataProviderNonBacked::GetString() + const { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (HasFile()) { + // Various Linux file managers both pass a list of file:// URIs and set the + // string representation to the URI. We explicitly don't want to return use diff --git a/devel/electron36/files/patch-ui_base_ime_dummy__text__input__client.cc b/devel/electron36/files/patch-ui_base_ime_dummy__text__input__client.cc new file mode 100644 index 000000000000..2872f6c8d548 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ime_dummy__text__input__client.cc @@ -0,0 +1,11 @@ +--- ui/base/ime/dummy_text_input_client.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/base/ime/dummy_text_input_client.cc +@@ -175,7 +175,7 @@ bool DummyTextInputClient::ShouldDoLearning() { + return false; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool DummyTextInputClient::SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { diff --git a/devel/electron36/files/patch-ui_base_ime_dummy__text__input__client.h b/devel/electron36/files/patch-ui_base_ime_dummy__text__input__client.h new file mode 100644 index 000000000000..a1f15367c03d --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ime_dummy__text__input__client.h @@ -0,0 +1,11 @@ +--- ui/base/ime/dummy_text_input_client.h.orig 2025-01-27 17:37:37 UTC ++++ ui/base/ime/dummy_text_input_client.h +@@ -73,7 +73,7 @@ class DummyTextInputClient : public TextInputClient { + ukm::SourceId GetClientSourceForMetrics() const override; + bool ShouldDoLearning() override; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron36/files/patch-ui_base_ime_fake__text__input__client.cc b/devel/electron36/files/patch-ui_base_ime_fake__text__input__client.cc new file mode 100644 index 000000000000..a935b7071782 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ime_fake__text__input__client.cc @@ -0,0 +1,11 @@ +--- ui/base/ime/fake_text_input_client.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/base/ime/fake_text_input_client.cc +@@ -227,7 +227,7 @@ bool FakeTextInputClient::ShouldDoLearning() { + return should_do_learning_; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool FakeTextInputClient::SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { diff --git a/devel/electron36/files/patch-ui_base_ime_fake__text__input__client.h b/devel/electron36/files/patch-ui_base_ime_fake__text__input__client.h new file mode 100644 index 000000000000..473f580bb8bf --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ime_fake__text__input__client.h @@ -0,0 +1,11 @@ +--- ui/base/ime/fake_text_input_client.h.orig 2025-01-27 17:37:37 UTC ++++ ui/base/ime/fake_text_input_client.h +@@ -107,7 +107,7 @@ class FakeTextInputClient : public TextInputClient { + void SetTextEditCommandForNextKeyEvent(TextEditCommand command) override; + ukm::SourceId GetClientSourceForMetrics() const override; + bool ShouldDoLearning() override; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron36/files/patch-ui_base_ime_init_input__method__initializer.cc b/devel/electron36/files/patch-ui_base_ime_init_input__method__initializer.cc new file mode 100644 index 000000000000..37ef99ec0154 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ime_init_input__method__initializer.cc @@ -0,0 +1,29 @@ +--- ui/base/ime/init/input_method_initializer.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/base/ime/init/input_method_initializer.cc +@@ -9,7 +9,7 @@ + #include "base/trace_event/trace_event.h" + #include "build/build_config.h" + +-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + #include "ui/base/ime/linux/fake_input_method_context.h" + #include "ui/base/ime/linux/linux_input_method_context_factory.h" + #elif BUILDFLAG(IS_WIN) +@@ -33,7 +33,7 @@ void InitializeInputMethodForTesting() { + } + + void InitializeInputMethodForTesting() { +-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + GetInputMethodContextFactoryForTest() = + base::BindRepeating([](LinuxInputMethodContextDelegate* delegate) + -> std::unique_ptr<LinuxInputMethodContext> { +@@ -45,7 +45,7 @@ void ShutdownInputMethodForTesting() { + } + + void ShutdownInputMethodForTesting() { +-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + // The function owns the factory (as a static variable that's returned by + // reference), so setting this to an empty factory will free the old one. + GetInputMethodContextFactoryForTest() = LinuxInputMethodContextFactory(); diff --git a/devel/electron36/files/patch-ui_base_ime_linux_linux__input__method__context__factory.cc b/devel/electron36/files/patch-ui_base_ime_linux_linux__input__method__context__factory.cc new file mode 100644 index 000000000000..1c1f6204ed93 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ime_linux_linux__input__method__context__factory.cc @@ -0,0 +1,20 @@ +--- ui/base/ime/linux/linux_input_method_context_factory.cc.orig 2022-09-27 14:30:33 UTC ++++ ui/base/ime/linux/linux_input_method_context_factory.cc +@@ -9,7 +9,7 @@ + #include "build/build_config.h" + #include "ui/base/ime/linux/fake_input_method_context.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #include "ui/linux/linux_ui_delegate.h" + #endif +@@ -32,7 +32,7 @@ std::unique_ptr<LinuxInputMethodContext> CreateLinuxIn + if (auto factory = GetInputMethodContextFactoryForTest()) + return factory.Run(delegate); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Give the toolkit a chance to create the context. + if (auto* linux_ui = LinuxUi::instance()) { + if (auto context = linux_ui->CreateInputMethodContext(delegate)) diff --git a/devel/electron36/files/patch-ui_base_ime_text__input__client.h b/devel/electron36/files/patch-ui_base_ime_text__input__client.h new file mode 100644 index 000000000000..f31e3d3ac625 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ime_text__input__client.h @@ -0,0 +1,11 @@ +--- ui/base/ime/text_input_client.h.orig 2025-03-24 20:50:14 UTC ++++ ui/base/ime/text_input_client.h +@@ -337,7 +337,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) TextInputClient { + // fields that are considered 'private' (e.g. in incognito tabs). + virtual bool ShouldDoLearning() = 0; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Start composition over a given UTF-16 code range from existing text. This + // should only be used for composition scenario when IME wants to start + // composition on existing text. Returns whether the operation was successful. diff --git a/devel/electron36/files/patch-ui_base_resource_resource__bundle.cc b/devel/electron36/files/patch-ui_base_resource_resource__bundle.cc new file mode 100644 index 000000000000..528efc69f45d --- /dev/null +++ b/devel/electron36/files/patch-ui_base_resource_resource__bundle.cc @@ -0,0 +1,11 @@ +--- ui/base/resource/resource_bundle.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/base/resource/resource_bundle.cc +@@ -929,7 +929,7 @@ ResourceScaleFactor ResourceBundle::GetMaxResourceScal + } + + ResourceScaleFactor ResourceBundle::GetMaxResourceScaleFactor() const { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return max_scale_factor_; + #else + return GetMaxSupportedResourceScaleFactor(); diff --git a/devel/electron36/files/patch-ui_base_test_skia__gold__pixel__diff.cc b/devel/electron36/files/patch-ui_base_test_skia__gold__pixel__diff.cc new file mode 100644 index 000000000000..6b15ae607117 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_test_skia__gold__pixel__diff.cc @@ -0,0 +1,11 @@ +--- ui/base/test/skia_gold_pixel_diff.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/base/test/skia_gold_pixel_diff.cc +@@ -117,7 +117,7 @@ const char* GetPlatformName() { + return "windows"; + #elif BUILDFLAG(IS_APPLE) + return "macOS"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return "linux"; + #elif BUILDFLAG(IS_CHROMEOS) + return "ash"; diff --git a/devel/electron36/files/patch-ui_base_test_ui__controls.h b/devel/electron36/files/patch-ui_base_test_ui__controls.h new file mode 100644 index 000000000000..b59b482c9de6 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_test_ui__controls.h @@ -0,0 +1,11 @@ +--- ui/base/test/ui_controls.h.orig 2025-04-22 20:15:27 UTC ++++ ui/base/test/ui_controls.h +@@ -191,7 +191,7 @@ bool SendTouchEventsNotifyWhenDone(int action, + base::OnceClosure task); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Forces the platform implementation to use screen coordinates, even if they're + // not really available, the next time that ui_controls::SendMouseMove() or + // ui_controls::SendMouseMoveNotifyWhenDone() is called, or some other method diff --git a/devel/electron36/files/patch-ui_base_ui__base__features.cc b/devel/electron36/files/patch-ui_base_ui__base__features.cc new file mode 100644 index 000000000000..6f18fb054a3a --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ui__base__features.cc @@ -0,0 +1,38 @@ +--- ui/base/ui_base_features.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/base/ui_base_features.cc +@@ -119,7 +119,7 @@ BASE_FEATURE(kWaylandPerSurfaceScale, + // Controls whether support for Wayland's per-surface scaling is enabled. + BASE_FEATURE(kWaylandPerSurfaceScale, + "WaylandPerSurfaceScale", +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -143,7 +143,7 @@ BASE_FEATURE(kWaylandSessionManagement, + base::FEATURE_DISABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_OZONE) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If this feature is enabled, users not specify --ozone-platform-hint switch + // will get --ozone-platform-hint=auto treatment. https://crbug.com/40250220. + COMPONENT_EXPORT(UI_BASE_FEATURES) +@@ -225,7 +225,7 @@ BASE_FEATURE(kExperimentalFlingAnimation, + // native apps on Windows. + BASE_FEATURE(kExperimentalFlingAnimation, + "ExperimentalFlingAnimation", +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -301,7 +301,7 @@ BASE_FEATURE(kEyeDropper, + BASE_FEATURE(kEyeDropper, + "EyeDropper", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron36/files/patch-ui_base_ui__base__features.h b/devel/electron36/files/patch-ui_base_ui__base__features.h new file mode 100644 index 000000000000..9734ffe80dee --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ui__base__features.h @@ -0,0 +1,11 @@ +--- ui/base/ui_base_features.h.orig 2025-04-22 20:15:27 UTC ++++ ui/base/ui_base_features.h +@@ -126,7 +126,7 @@ BASE_DECLARE_FEATURE(kWaylandSessionManagement); + BASE_DECLARE_FEATURE(kWaylandSessionManagement); + #endif // BUILDFLAG(IS_OZONE) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(UI_BASE_FEATURES) + BASE_DECLARE_FEATURE(kOverrideDefaultOzonePlatformHintToAuto); + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron36/files/patch-ui_base_ui__base__switches.cc b/devel/electron36/files/patch-ui_base_ui__base__switches.cc new file mode 100644 index 000000000000..aefce04efbb6 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ui__base__switches.cc @@ -0,0 +1,18 @@ +--- ui/base/ui_base_switches.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/base/ui_base_switches.cc +@@ -24,13 +24,13 @@ const char kShowMacOverlayBorders[] = "show-mac-overla + const char kShowMacOverlayBorders[] = "show-mac-overlay-borders"; + #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"; + // Disables GTK IME integration. diff --git a/devel/electron36/files/patch-ui_base_ui__base__switches.h b/devel/electron36/files/patch-ui_base_ui__base__switches.h new file mode 100644 index 000000000000..6028687812e8 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_ui__base__switches.h @@ -0,0 +1,16 @@ +--- ui/base/ui_base_switches.h.orig 2025-01-27 17:37:37 UTC ++++ ui/base/ui_base_switches.h +@@ -22,11 +22,11 @@ COMPONENT_EXPORT(UI_BASE) extern const char kShowMacOv + COMPONENT_EXPORT(UI_BASE) extern const char kShowMacOverlayBorders[]; + #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[]; + COMPONENT_EXPORT(UI_BASE) extern const char kDisableGtkIme[]; + #endif diff --git a/devel/electron36/files/patch-ui_base_webui_web__ui__util.cc b/devel/electron36/files/patch-ui_base_webui_web__ui__util.cc new file mode 100644 index 000000000000..f5ca2fdbaaee --- /dev/null +++ b/devel/electron36/files/patch-ui_base_webui_web__ui__util.cc @@ -0,0 +1,20 @@ +--- ui/base/webui/web_ui_util.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/base/webui/web_ui_util.cc +@@ -46,7 +46,7 @@ std::string GetFontFamilyMd() { + constexpr float kMaxScaleFactor = 1000.0f; + + std::string GetFontFamilyMd() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return "Roboto, " + GetFontFamily(); + #else + return GetFontFamily(); +@@ -221,7 +221,7 @@ std::string GetFontFamily() { + std::string GetFontFamily() { + std::string font_family = l10n_util::GetStringUTF8(IDS_WEB_FONT_FAMILY); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string font_name = ui::ResourceBundle::GetSharedInstance() + .GetFont(ui::ResourceBundle::BaseFont) + .GetFontName(); diff --git a/devel/electron36/files/patch-ui_base_x_x11__cursor__factory.cc b/devel/electron36/files/patch-ui_base_x_x11__cursor__factory.cc new file mode 100644 index 000000000000..d6e46bf73bcf --- /dev/null +++ b/devel/electron36/files/patch-ui_base_x_x11__cursor__factory.cc @@ -0,0 +1,20 @@ +--- ui/base/x/x11_cursor_factory.cc.orig 2023-11-29 21:40:44 UTC ++++ ui/base/x/x11_cursor_factory.cc +@@ -13,7 +13,7 @@ + #include "ui/gfx/geometry/point.h" + #include "ui/gfx/x/connection.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +@@ -70,7 +70,7 @@ void X11CursorFactory::ObserveThemeChanges() { + } + + void X11CursorFactory::ObserveThemeChanges() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* linux_ui = LinuxUi::instance(); + DCHECK(linux_ui); + cursor_theme_observation_.Observe(linux_ui); diff --git a/devel/electron36/files/patch-ui_base_x_x11__cursor__factory.h b/devel/electron36/files/patch-ui_base_x_x11__cursor__factory.h new file mode 100644 index 000000000000..423bdd6d0ae1 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_x_x11__cursor__factory.h @@ -0,0 +1,20 @@ +--- ui/base/x/x11_cursor_factory.h.orig 2023-11-29 21:40:44 UTC ++++ ui/base/x/x11_cursor_factory.h +@@ -20,7 +20,7 @@ class XCursorLoader; + class X11Cursor; + class XCursorLoader; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class LinuxUi; + #endif + +@@ -62,7 +62,7 @@ class COMPONENT_EXPORT(UI_BASE_X) X11CursorFactory + // initializing `cursor_loader_` will modify `default_cursors_`. + std::unique_ptr<XCursorLoader> cursor_loader_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::ScopedObservation<LinuxUi, CursorThemeManagerObserver> + cursor_theme_observation_{this}; + #endif diff --git a/devel/electron36/files/patch-ui_base_x_x11__cursor__loader.cc b/devel/electron36/files/patch-ui_base_x_x11__cursor__loader.cc new file mode 100644 index 000000000000..05a82b02eaee --- /dev/null +++ b/devel/electron36/files/patch-ui_base_x_x11__cursor__loader.cc @@ -0,0 +1,41 @@ +--- ui/base/x/x11_cursor_loader.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/base/x/x11_cursor_loader.cc +@@ -42,7 +42,7 @@ + #include "ui/gfx/x/connection.h" + #include "ui/gfx/x/xproto.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +@@ -87,7 +87,11 @@ std::string CursorPathFromLibXcursor() { + void operator()(void* ptr) const { dlclose(ptr); } + }; + ++#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)); ++#endif + if (!lib) + return ""; + +@@ -232,7 +236,7 @@ scoped_refptr<base::RefCountedMemory> ReadCursorFile( + const std::string& rm_xcursor_theme) { + constexpr const char kDefaultTheme[] = "default"; + std::string themes[] = { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The toolkit theme has the highest priority. + LinuxUi::instance() ? LinuxUi::instance()->GetCursorThemeName() + : std::string(), +@@ -422,7 +426,7 @@ uint32_t XCursorLoader::GetPreferredCursorSize() const + return size; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Let the toolkit have the next say. + auto* linux_ui = LinuxUi::instance(); + size = linux_ui ? linux_ui->GetCursorThemeSize() : 0; diff --git a/devel/electron36/files/patch-ui_base_x_x11__display__manager.cc b/devel/electron36/files/patch-ui_base_x_x11__display__manager.cc new file mode 100644 index 000000000000..0f2489516680 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_x_x11__display__manager.cc @@ -0,0 +1,20 @@ +--- ui/base/x/x11_display_manager.cc.orig 2024-04-15 20:34:29 UTC ++++ ui/base/x/x11_display_manager.cc +@@ -16,7 +16,7 @@ + #include "ui/gfx/x/randr.h" + #include "ui/gfx/x/xproto.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +@@ -92,7 +92,7 @@ void XDisplayManager::FetchDisplayList() { + ? display::Display::GetForcedDeviceScaleFactor() + : 1.0f}; + const auto* display_config = &empty_display_config; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (const auto* linux_ui = ui::LinuxUi::instance()) { + display_config = &linux_ui->display_config(); + } diff --git a/devel/electron36/files/patch-ui_base_x_x11__shm__image__pool.cc b/devel/electron36/files/patch-ui_base_x_x11__shm__image__pool.cc new file mode 100644 index 000000000000..c3f090548a87 --- /dev/null +++ b/devel/electron36/files/patch-ui_base_x_x11__shm__image__pool.cc @@ -0,0 +1,71 @@ +--- ui/base/x/x11_shm_image_pool.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/base/x/x11_shm_image_pool.cc +@@ -16,6 +16,7 @@ + #include "base/functional/callback.h" + #include "base/location.h" + #include "base/strings/string_util.h" ++#include "base/system/sys_info.h" + #include "build/build_config.h" + #include "net/base/url_util.h" + #include "ui/events/platform/platform_event_dispatcher.h" +@@ -44,10 +45,14 @@ std::size_t MaxShmSegmentSizeImpl() { + 1.0f / (kShmResizeThreshold * kShmResizeThreshold); + + std::size_t MaxShmSegmentSizeImpl() { ++#if BUILDFLAG(IS_BSD) ++ return base::SysInfo::MaxSharedMemorySize(); ++#else + struct shminfo info; + if (shmctl(0, IPC_INFO, reinterpret_cast<struct shmid_ds*>(&info)) == -1) + return 0; + return info.shmmax; ++#endif + } + + std::size_t MaxShmSegmentSize() { +@@ -56,14 +61,19 @@ std::size_t MaxShmSegmentSize() { + } + + #if !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_BSD) + bool IsRemoteHost(const std::string& name) { + if (name.empty()) + return false; + + return !net::HostStringIsLocalhost(name); + } ++#endif + + bool ShouldUseMitShm(x11::Connection* connection) { ++#if BUILDFLAG(IS_BSD) ++ return false; ++#else + // MIT-SHM may be available on remote connetions, but it will be unusable. Do + // a best-effort check to see if the host is remote to disable the SHM + // codepath. It may be possible in contrived cases for there to be a +@@ -92,6 +102,7 @@ bool ShouldUseMitShm(x11::Connection* connection) { + return false; + + return true; ++#endif + } + #endif // !BUILDFLAG(IS_CHROMEOS) + +@@ -182,7 +193,7 @@ bool XShmImagePool::Resize(const gfx::Size& pixel_size + shmctl(state.shmid, IPC_RMID, nullptr); + return false; + } +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, a shmid can still be attached after IPC_RMID if otherwise + // kept alive. Detach before XShmAttach to prevent a memory leak in case + // the process dies. +@@ -201,7 +212,7 @@ bool XShmImagePool::Resize(const gfx::Size& pixel_size + return false; + state.shmseg = shmseg; + state.shmem_attached_to_server = true; +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // The Linux-specific shmctl behavior above may not be portable, so we're + // forced to do IPC_RMID after the server has attached to the segment. + shmctl(state.shmid, IPC_RMID, nullptr); diff --git a/devel/electron36/files/patch-ui_color_color__id.h b/devel/electron36/files/patch-ui_color_color__id.h new file mode 100644 index 000000000000..7fe54fd249f0 --- /dev/null +++ b/devel/electron36/files/patch-ui_color_color__id.h @@ -0,0 +1,11 @@ +--- ui/color/color_id.h.orig 2025-05-11 11:50:45 UTC ++++ ui/color/color_id.h +@@ -629,7 +629,7 @@ + E_CPONLY(kColorCrosSysPositive) \ + E_CPONLY(kColorCrosSysComplementVariant) \ + E_CPONLY(kColorCrosSysInputFieldOnBase) +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define PLATFORM_SPECIFIC_COLOR_IDS \ + E_CPONLY(kColorNativeButtonBorder)\ + E_CPONLY(kColorNativeHeaderButtonBorderActive) \ diff --git a/devel/electron36/files/patch-ui_color_color__provider__utils.cc b/devel/electron36/files/patch-ui_color_color__provider__utils.cc new file mode 100644 index 000000000000..4a89fcca8d96 --- /dev/null +++ b/devel/electron36/files/patch-ui_color_color__provider__utils.cc @@ -0,0 +1,11 @@ +--- ui/color/color_provider_utils.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/color/color_provider_utils.cc +@@ -191,7 +191,7 @@ std::string_view SystemThemeName(ui::SystemTheme syste + switch (system_theme) { + case ui::SystemTheme::kDefault: + return "kDefault"; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case ui::SystemTheme::kGtk: + return "kGtk"; + case ui::SystemTheme::kQt: diff --git a/devel/electron36/files/patch-ui_color_system__theme.h b/devel/electron36/files/patch-ui_color_system__theme.h new file mode 100644 index 000000000000..e251684d8ee6 --- /dev/null +++ b/devel/electron36/files/patch-ui_color_system__theme.h @@ -0,0 +1,11 @@ +--- ui/color/system_theme.h.orig 2022-11-30 08:12:58 UTC ++++ ui/color/system_theme.h +@@ -15,7 +15,7 @@ namespace ui { + enum class SystemTheme { + // Classic theme, used in the default or users' chosen theme. + kDefault = 0, +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + kGtk = 1, + kQt = 2, + kMaxValue = kQt, diff --git a/devel/electron36/files/patch-ui_compositor_compositor.cc b/devel/electron36/files/patch-ui_compositor_compositor.cc new file mode 100644 index 000000000000..799d8079febb --- /dev/null +++ b/devel/electron36/files/patch-ui_compositor_compositor.cc @@ -0,0 +1,11 @@ +--- ui/compositor/compositor.cc.orig 2025-05-11 11:50:45 UTC ++++ ui/compositor/compositor.cc +@@ -955,7 +955,7 @@ void Compositor::OnResume() { + obs.ResetIfActive(); + } + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + void Compositor::OnCompleteSwapWithNewSize(const gfx::Size& size) { + observer_list_.Notify( + &CompositorObserver::OnCompositingCompleteSwapWithNewSize, this, size); diff --git a/devel/electron36/files/patch-ui_compositor_compositor.h b/devel/electron36/files/patch-ui_compositor_compositor.h new file mode 100644 index 000000000000..0aa7f2954eaf --- /dev/null +++ b/devel/electron36/files/patch-ui_compositor_compositor.h @@ -0,0 +1,11 @@ +--- ui/compositor/compositor.h.orig 2025-05-11 11:50:45 UTC ++++ ui/compositor/compositor.h +@@ -476,7 +476,7 @@ class COMPOSITOR_EXPORT Compositor : public base::Powe + // base::PowerSuspendObserver: + void OnResume() override; + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + void OnCompleteSwapWithNewSize(const gfx::Size& size); + #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) + diff --git a/devel/electron36/files/patch-ui_compositor_compositor__observer.h b/devel/electron36/files/patch-ui_compositor_compositor__observer.h new file mode 100644 index 000000000000..16c5436c81ee --- /dev/null +++ b/devel/electron36/files/patch-ui_compositor_compositor__observer.h @@ -0,0 +1,11 @@ +--- ui/compositor/compositor_observer.h.orig 2025-03-24 20:50:14 UTC ++++ ui/compositor/compositor_observer.h +@@ -56,7 +56,7 @@ class COMPOSITOR_EXPORT CompositorObserver { + // Called when a child of the compositor is resizing. + virtual void OnCompositingChildResizing(Compositor* compositor) {} + +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11) + // Called when a swap with new size is completed. + virtual void OnCompositingCompleteSwapWithNewSize(ui::Compositor* compositor, + const gfx::Size& size) {} diff --git a/devel/electron36/files/patch-ui_display_screen.cc b/devel/electron36/files/patch-ui_display_screen.cc new file mode 100644 index 000000000000..e7c6a5f10cf1 --- /dev/null +++ b/devel/electron36/files/patch-ui_display_screen.cc @@ -0,0 +1,11 @@ +--- ui/display/screen.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/display/screen.cc +@@ -86,7 +86,7 @@ void Screen::SetDisplayForNewWindows(int64_t display_i + display_id_for_new_windows_ = display_id; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + Screen::ScreenSaverSuspender::~ScreenSaverSuspender() = default; + + std::unique_ptr<Screen::ScreenSaverSuspender> Screen::SuspendScreenSaver() { diff --git a/devel/electron36/files/patch-ui_display_screen.h b/devel/electron36/files/patch-ui_display_screen.h new file mode 100644 index 000000000000..c29d8e2036df --- /dev/null +++ b/devel/electron36/files/patch-ui_display_screen.h @@ -0,0 +1,20 @@ +--- ui/display/screen.h.orig 2025-04-22 20:15:27 UTC ++++ ui/display/screen.h +@@ -140,7 +140,7 @@ class DISPLAY_EXPORT Screen { + // (both of which may or may not be `nearest_id`). + display::ScreenInfos GetScreenInfosNearestDisplay(int64_t nearest_id) const; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Object which suspends the platform-specific screensaver for the duration of + // its existence. + class ScreenSaverSuspender { +@@ -246,7 +246,7 @@ class DISPLAY_EXPORT Screen { + int64_t display_id_for_new_windows_; + int64_t scoped_display_id_for_new_windows_ = display::kInvalidDisplayId; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + uint32_t screen_saver_suspension_count_ = 0; + #endif // BUILDFLAG(IS_LINUX) + }; diff --git a/devel/electron36/files/patch-ui_events_devices_x11_device__data__manager__x11.cc b/devel/electron36/files/patch-ui_events_devices_x11_device__data__manager__x11.cc new file mode 100644 index 000000000000..fbf0d85f82ca --- /dev/null +++ b/devel/electron36/files/patch-ui_events_devices_x11_device__data__manager__x11.cc @@ -0,0 +1,10 @@ +--- ui/events/devices/x11/device_data_manager_x11.cc.orig 2024-10-16 21:32:39 UTC ++++ ui/events/devices/x11/device_data_manager_x11.cc +@@ -849,6 +849,7 @@ void DeviceDataManagerX11::DisableDevice(x11::Input::D + } + + 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<KeyboardDevice> keyboards = GetKeyboardDevices(); diff --git a/devel/electron36/files/patch-ui_events_event.cc b/devel/electron36/files/patch-ui_events_event.cc new file mode 100644 index 000000000000..1240c4900440 --- /dev/null +++ b/devel/electron36/files/patch-ui_events_event.cc @@ -0,0 +1,29 @@ +--- ui/events/event.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/events/event.cc +@@ -373,7 +373,7 @@ MouseEvent::MouseEvent(const PlatformEvent& native_eve + MouseEvent::MouseEvent(const PlatformEvent& native_event) + : LocatedEvent(native_event), + changed_button_flags_(GetChangedMouseButtonFlagsFromNative(native_event)), +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + movement_(GetMouseMovementFromNative(native_event)), + #endif + pointer_details_(GetMousePointerDetailsFromNative(native_event)) { +@@ -629,7 +629,7 @@ std::unique_ptr<Event> MouseWheelEvent::Clone() const + return std::make_unique<MouseWheelEvent>(*this); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // This value matches Windows, Fuchsia WHEEL_DELTA, and (roughly) Firefox on + // Linux. + // static +@@ -889,7 +889,7 @@ void KeyEvent::InitializeNative() { + if (synthesize_key_repeat_enabled_ && IsRepeated(GetLastKeyEvent())) + SetFlags(flags() | EF_IS_REPEAT); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + NormalizeFlags(); + #elif BUILDFLAG(IS_WIN) + // Only Windows has native character events. diff --git a/devel/electron36/files/patch-ui_events_event__switches.cc b/devel/electron36/files/patch-ui_events_event__switches.cc new file mode 100644 index 000000000000..b7a29bd7d5b7 --- /dev/null +++ b/devel/electron36/files/patch-ui_events_event__switches.cc @@ -0,0 +1,11 @@ +--- ui/events/event_switches.cc.orig 2022-06-17 14:20:10 UTC ++++ ui/events/event_switches.cc +@@ -21,7 +21,7 @@ const char kCompensateForUnstablePinchZoom[] = + // value is a floating point number that is interpreted as a distance in pixels. + const char kTouchSlopDistance[] = "touch-slop-distance"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Tells chrome to interpret events from these devices as touch events. Only + // available with XInput 2 (i.e. X server 1.8 or above). The id's of the + // devices can be retrieved from 'xinput list'. diff --git a/devel/electron36/files/patch-ui_events_event__switches.h b/devel/electron36/files/patch-ui_events_event__switches.h new file mode 100644 index 000000000000..a805749948af --- /dev/null +++ b/devel/electron36/files/patch-ui_events_event__switches.h @@ -0,0 +1,11 @@ +--- ui/events/event_switches.h.orig 2022-06-17 14:20:10 UTC ++++ ui/events/event_switches.h +@@ -13,7 +13,7 @@ namespace switches { + EVENTS_BASE_EXPORT extern const char kCompensateForUnstablePinchZoom[]; + EVENTS_BASE_EXPORT extern const char kTouchSlopDistance[]; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + EVENTS_BASE_EXPORT extern const char kTouchDevices[]; + EVENTS_BASE_EXPORT extern const char kPenDevices[]; + #endif diff --git a/devel/electron36/files/patch-ui_events_keycodes_dom_keycode__converter.cc b/devel/electron36/files/patch-ui_events_keycodes_dom_keycode__converter.cc new file mode 100644 index 000000000000..e98563fb84a8 --- /dev/null +++ b/devel/electron36/files/patch-ui_events_keycodes_dom_keycode__converter.cc @@ -0,0 +1,38 @@ +--- ui/events/keycodes/dom/keycode_converter.cc.orig 2024-10-16 21:32:39 UTC ++++ ui/events/keycodes/dom/keycode_converter.cc +@@ -18,7 +18,7 @@ + #include "ui/events/keycodes/dom/dom_code.h" + #include "ui/events/keycodes/dom/dom_key.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) + #include <linux/input.h> + #endif + +@@ -31,7 +31,7 @@ namespace { + #if BUILDFLAG(IS_WIN) + #define DOM_CODE(usb, evdev, xkb, win, mac, code, id) \ + { usb, win, code } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #define DOM_CODE(usb, evdev, xkb, win, mac, code, id) \ + { usb, xkb, code } + #elif BUILDFLAG(IS_APPLE) +@@ -70,7 +70,7 @@ struct DomKeyMapEntry { + #undef DOM_KEY_UNI + #undef DOM_KEY_MAP_DECLARATION_END + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) + + // The offset between XKB Keycode and evdev code. + constexpr int kXkbKeycodeOffset = 8; +@@ -191,7 +191,7 @@ int KeycodeConverter::DomCodeToNativeKeycode(DomCode c + return UsbKeycodeToNativeKeycode(static_cast<uint32_t>(code)); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) + // static + DomCode KeycodeConverter::XkbKeycodeToDomCode(uint32_t xkb_keycode) { + // Currently XKB keycode is the native keycode. diff --git a/devel/electron36/files/patch-ui_events_keycodes_dom_keycode__converter.h b/devel/electron36/files/patch-ui_events_keycodes_dom_keycode__converter.h new file mode 100644 index 000000000000..e778a43fb53e --- /dev/null +++ b/devel/electron36/files/patch-ui_events_keycodes_dom_keycode__converter.h @@ -0,0 +1,11 @@ +--- ui/events/keycodes/dom/keycode_converter.h.orig 2024-06-18 21:44:02 UTC ++++ ui/events/keycodes/dom/keycode_converter.h +@@ -64,7 +64,7 @@ class KeycodeConverter { + // Convert a DomCode into a native keycode. + static int DomCodeToNativeKeycode(DomCode code); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) + // Convert a XKB keycode into a DomCode. + static DomCode XkbKeycodeToDomCode(uint32_t xkb_keycode); + diff --git a/devel/electron36/files/patch-ui_gfx_BUILD.gn b/devel/electron36/files/patch-ui_gfx_BUILD.gn new file mode 100644 index 000000000000..076c5f1cf343 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_BUILD.gn @@ -0,0 +1,11 @@ +--- ui/gfx/BUILD.gn.orig 2025-05-11 11:50:45 UTC ++++ ui/gfx/BUILD.gn +@@ -667,7 +667,7 @@ source_set("memory_buffer_sources") { + deps += [ "//build/config/linux/libdrm" ] + } + +- if (is_linux || is_chromeos || is_android) { ++ if ((is_linux || is_chromeos || is_android) && !is_bsd) { + deps += [ "//third_party/libsync" ] + } + diff --git a/devel/electron36/files/patch-ui_gfx_canvas__skia.cc b/devel/electron36/files/patch-ui_gfx_canvas__skia.cc new file mode 100644 index 000000000000..f425af676af9 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_canvas__skia.cc @@ -0,0 +1,11 @@ +--- ui/gfx/canvas_skia.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/gfx/canvas_skia.cc +@@ -219,7 +219,7 @@ void Canvas::DrawStringRectWithFlags(std::u16string_vi + Range range = StripAcceleratorChars(flags, &adjusted_text); + bool elide_text = ((flags & NO_ELLIPSIS) == 0); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, eliding really means fading the end of the string. But only + // for LTR text. RTL text is still elided (on the left) with "...". + if (elide_text) { diff --git a/devel/electron36/files/patch-ui_gfx_font__fallback__linux.cc b/devel/electron36/files/patch-ui_gfx_font__fallback__linux.cc new file mode 100644 index 000000000000..e90e1d51263d --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_font__fallback__linux.cc @@ -0,0 +1,11 @@ +--- ui/gfx/font_fallback_linux.cc.orig 2024-10-16 21:32:39 UTC ++++ ui/gfx/font_fallback_linux.cc +@@ -32,6 +32,8 @@ + #include "ui/gfx/linux/fontconfig_util.h" + #include "ui/gfx/platform_font.h" + ++#include <unistd.h> ++ + namespace gfx { + + namespace { diff --git a/devel/electron36/files/patch-ui_gfx_font__render__params.h b/devel/electron36/files/patch-ui_gfx_font__render__params.h new file mode 100644 index 000000000000..3e14def67c98 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_font__render__params.h @@ -0,0 +1,20 @@ +--- ui/gfx/font_render_params.h.orig 2025-01-27 17:37:37 UTC ++++ ui/gfx/font_render_params.h +@@ -115,7 +115,7 @@ FontRenderParams GetFontRenderParams(const FontRenderP + FontRenderParams GetFontRenderParams(const FontRenderParamsQuery& query, + std::string* family_out); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Clears GetFontRenderParams()'s cache. Intended to be called by tests that are + // changing Fontconfig's configuration. + COMPONENT_EXPORT(GFX) void ClearFontRenderParamsCacheForTest(); +@@ -125,7 +125,7 @@ COMPONENT_EXPORT(GFX) float GetFontRenderParamsDeviceS + COMPONENT_EXPORT(GFX) float GetFontRenderParamsDeviceScaleFactor(); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Sets the device scale factor for FontRenderParams to decide + // if it should enable subpixel positioning. + COMPONENT_EXPORT(GFX) diff --git a/devel/electron36/files/patch-ui_gfx_font__render__params__linux.cc b/devel/electron36/files/patch-ui_gfx_font__render__params__linux.cc new file mode 100644 index 000000000000..9974aa514fa0 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_font__render__params__linux.cc @@ -0,0 +1,20 @@ +--- ui/gfx/font_render_params_linux.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/gfx/font_render_params_linux.cc +@@ -24,7 +24,7 @@ + #include "ui/gfx/linux/fontconfig_util.h" + #include "ui/gfx/switches.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +@@ -222,7 +222,7 @@ FontRenderParams GetFontRenderParams(const FontRenderP + + // Start with the delegate's settings, but let Fontconfig have the final say. + FontRenderParams params; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (auto* linux_ui = ui::LinuxUi::instance()) { + params = linux_ui->GetDefaultFontRenderParams(); + } diff --git a/devel/electron36/files/patch-ui_gfx_font__util.cc b/devel/electron36/files/patch-ui_gfx_font__util.cc new file mode 100644 index 000000000000..aaf2c05fc2ed --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_font__util.cc @@ -0,0 +1,20 @@ +--- ui/gfx/font_util.cc.orig 2024-04-15 20:34:30 UTC ++++ ui/gfx/font_util.cc +@@ -6,7 +6,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <fontconfig/fontconfig.h> + #include "ui/gfx/linux/fontconfig_util.h" + #endif +@@ -24,7 +24,7 @@ void InitializeFonts() { + // background (resources have not yet been granted to cast) since it prevents + // the long delay the user would have seen on first rendering. + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Early initialize FontConfig. + InitializeGlobalFontConfigAsync(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron36/files/patch-ui_gfx_gpu__memory__buffer.cc b/devel/electron36/files/patch-ui_gfx_gpu__memory__buffer.cc new file mode 100644 index 000000000000..98a561f7da09 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_gpu__memory__buffer.cc @@ -0,0 +1,11 @@ +--- ui/gfx/gpu_memory_buffer.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/gfx/gpu_memory_buffer.cc +@@ -108,7 +108,7 @@ GpuMemoryBufferHandle GpuMemoryBufferHandle::Clone() c + handle.id = id; + handle.offset = offset; + handle.stride = stride; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + handle.native_pixmap_handle = CloneHandleForIPC(native_pixmap_handle); + #elif BUILDFLAG(IS_APPLE) + handle.io_surface = io_surface; diff --git a/devel/electron36/files/patch-ui_gfx_gpu__memory__buffer.h b/devel/electron36/files/patch-ui_gfx_gpu__memory__buffer.h new file mode 100644 index 000000000000..0d7ea580d9ed --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_gpu__memory__buffer.h @@ -0,0 +1,29 @@ +--- ui/gfx/gpu_memory_buffer.h.orig 2025-04-22 20:15:27 UTC ++++ ui/gfx/gpu_memory_buffer.h +@@ -17,7 +17,7 @@ + #include "ui/gfx/generic_shared_memory_id.h" + #include "ui/gfx/geometry/rect.h" + +-#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/gfx/native_pixmap_handle.h" + #elif BUILDFLAG(IS_APPLE) + #include "ui/gfx/mac/io_surface.h" +@@ -47,7 +47,7 @@ enum GpuMemoryBufferType { + #if BUILDFLAG(IS_APPLE) + IO_SURFACE_BUFFER, + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + NATIVE_PIXMAP, + #endif + #if BUILDFLAG(IS_WIN) +@@ -212,7 +212,7 @@ struct COMPONENT_EXPORT(GFX) GpuMemoryBufferHandle { + + uint32_t offset = 0; + uint32_t stride = 0; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + NativePixmapHandle native_pixmap_handle; + #elif BUILDFLAG(IS_APPLE) + ScopedIOSurface io_surface; diff --git a/devel/electron36/files/patch-ui_gfx_linux_dmabuf__uapi.h b/devel/electron36/files/patch-ui_gfx_linux_dmabuf__uapi.h new file mode 100644 index 000000000000..e532335d2914 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_linux_dmabuf__uapi.h @@ -0,0 +1,36 @@ +--- ui/gfx/linux/dmabuf_uapi.h.orig 2023-10-19 19:59:21 UTC ++++ 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 __u64 DMA_BUF_SYNC_END = 1 << 2; + constexpr char DMA_BUF_BASE = 'b'; + constexpr unsigned long DMA_BUF_IOCTL_SYNC = + _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync); +-#endif + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) + struct dma_buf_export_sync_file { + __u32 flags; + __s32 fd; +@@ -43,6 +40,5 @@ constexpr unsigned long DMA_BUF_IOCTL_EXPORT_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/devel/electron36/files/patch-ui_gfx_linux_gbm__wrapper.cc b/devel/electron36/files/patch-ui_gfx_linux_gbm__wrapper.cc new file mode 100644 index 000000000000..33884ddcffc2 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_linux_gbm__wrapper.cc @@ -0,0 +1,11 @@ +--- ui/gfx/linux/gbm_wrapper.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/gfx/linux/gbm_wrapper.cc +@@ -318,7 +318,7 @@ class Device final : public ui::GbmDevice { + // of 1x1 BOs which are destroyed before creating the final BO creation used + // to instantiate the returned GbmBuffer. + gfx::Size size_for_verification = +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + gfx::Size(1, 1); + #else + requested_size; diff --git a/devel/electron36/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc b/devel/electron36/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc new file mode 100644 index 000000000000..cb301ef323c0 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc @@ -0,0 +1,61 @@ +--- ui/gfx/mojom/native_handle_types_mojom_traits.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/gfx/mojom/native_handle_types_mojom_traits.cc +@@ -14,7 +14,7 @@ + #include "ui/gfx/mac/io_surface.h" + #endif // BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + #include "ui/gfx/native_pixmap_handle.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) + +@@ -80,11 +80,11 @@ bool StructTraits<gfx::mojom::AHardwareBufferHandleDat + } + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + mojo::PlatformHandle StructTraits< + gfx::mojom::NativePixmapPlaneDataView, + gfx::NativePixmapPlane>::buffer_handle(gfx::NativePixmapPlane& plane) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return mojo::PlatformHandle(std::move(plane.fd)); + #elif BUILDFLAG(IS_FUCHSIA) + return mojo::PlatformHandle(std::move(plane.vmo)); +@@ -100,7 +100,7 @@ bool StructTraits< + out->size = data.size(); + + mojo::PlatformHandle handle = data.TakeBufferHandle(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (!handle.is_fd()) + return false; + out->fd = handle.TakeFD(); +@@ -126,7 +126,7 @@ bool StructTraits< + gfx::mojom::NativePixmapHandleDataView, + gfx::NativePixmapHandle>::Read(gfx::mojom::NativePixmapHandleDataView data, + gfx::NativePixmapHandle* out) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + out->modifier = data.modifier(); + out->supports_zero_copy_webgpu_import = + data.supports_zero_copy_webgpu_import(); +@@ -187,7 +187,7 @@ gfx::mojom::GpuMemoryBufferPlatformHandleDataView::Tag + case gfx::IO_SURFACE_BUFFER: + return Tag::kMachPort; + #endif // BUILDFLAG(IS_APPLE) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + case gfx::NATIVE_PIXMAP: + return Tag::kNativePixmapHandle; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) +@@ -251,7 +251,7 @@ bool UnionTraits<gfx::mojom::GpuMemoryBufferPlatformHa + } + return true; + #endif // BUILDFLAG(IS_APPLE) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + case Tag::kNativePixmapHandle: + handle->type = gfx::NATIVE_PIXMAP; + return data.ReadNativePixmapHandle(&handle->native_pixmap_handle); diff --git a/devel/electron36/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h b/devel/electron36/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h new file mode 100644 index 000000000000..6aec1534b9bf --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h @@ -0,0 +1,45 @@ +--- ui/gfx/mojom/native_handle_types_mojom_traits.h.orig 2025-03-24 20:50:14 UTC ++++ ui/gfx/mojom/native_handle_types_mojom_traits.h +@@ -18,7 +18,7 @@ + #include "ui/gfx/gpu_memory_buffer.h" + #include "ui/gfx/mojom/native_handle_types.mojom-shared.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + #include "ui/gfx/native_pixmap_handle.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) + +@@ -46,7 +46,7 @@ struct COMPONENT_EXPORT(GFX_NATIVE_HANDLE_TYPES_SHARED + }; + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + template <> + struct COMPONENT_EXPORT(GFX_NATIVE_HANDLE_TYPES_SHARED_MOJOM_TRAITS) + StructTraits<gfx::mojom::NativePixmapPlaneDataView, +@@ -74,13 +74,13 @@ struct COMPONENT_EXPORT(GFX_NATIVE_HANDLE_TYPES_SHARED + return pixmap_handle.planes; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static uint64_t modifier(const gfx::NativePixmapHandle& pixmap_handle) { + return pixmap_handle.modifier; + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static bool supports_zero_copy_webgpu_import( + const gfx::NativePixmapHandle& pixmap_handle) { + return pixmap_handle.supports_zero_copy_webgpu_import; +@@ -159,7 +159,7 @@ struct COMPONENT_EXPORT(GFX_NATIVE_HANDLE_TYPES_SHARED + static PlatformHandle mach_port(gfx::GpuMemoryBufferHandle& handle); + #endif // BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD) + static gfx::NativePixmapHandle& native_pixmap_handle( + gfx::GpuMemoryBufferHandle& handle) { + return handle.native_pixmap_handle; diff --git a/devel/electron36/files/patch-ui_gfx_native__pixmap__handle.cc b/devel/electron36/files/patch-ui_gfx_native__pixmap__handle.cc new file mode 100644 index 000000000000..e223aa32f5ad --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_native__pixmap__handle.cc @@ -0,0 +1,62 @@ +--- ui/gfx/native_pixmap_handle.cc.orig 2022-11-30 08:12:58 UTC ++++ ui/gfx/native_pixmap_handle.cc +@@ -11,7 +11,7 @@ + #include "ui/gfx/buffer_format_util.h" + #include "ui/gfx/geometry/size.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <drm_fourcc.h> + #include <unistd.h> + +@@ -23,9 +23,13 @@ + #include "base/fuchsia/fuchsia_logging.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include <unistd.h> ++#endif ++ + namespace gfx { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static_assert(NativePixmapHandle::kNoModifier == DRM_FORMAT_MOD_INVALID, + "gfx::NativePixmapHandle::kNoModifier should be an alias for" + "DRM_FORMAT_MOD_INVALID"); +@@ -36,7 +40,7 @@ NativePixmapPlane::NativePixmapPlane() : stride(0), of + NativePixmapPlane::NativePixmapPlane(int stride, + int offset, + uint64_t size +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + base::ScopedFD fd + #elif BUILDFLAG(IS_FUCHSIA) +@@ -47,7 +51,7 @@ NativePixmapPlane::NativePixmapPlane(int stride, + : stride(stride), + offset(offset), + size(size) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + fd(std::move(fd)) + #elif BUILDFLAG(IS_FUCHSIA) +@@ -75,7 +79,7 @@ NativePixmapHandle& NativePixmapHandle::operator=(Nati + NativePixmapHandle CloneHandleForIPC(const NativePixmapHandle& handle) { + NativePixmapHandle clone; + for (auto& plane : handle.planes) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + DCHECK(plane.fd.is_valid()); + // Combining the HANDLE_EINTR and ScopedFD's constructor causes the compiler + // to emit some very strange assembly that tends to cause FD ownership +@@ -113,7 +117,7 @@ NativePixmapHandle CloneHandleForIPC(const NativePixma + #endif + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + clone.modifier = handle.modifier; + clone.supports_zero_copy_webgpu_import = + handle.supports_zero_copy_webgpu_import; diff --git a/devel/electron36/files/patch-ui_gfx_native__pixmap__handle.h b/devel/electron36/files/patch-ui_gfx_native__pixmap__handle.h new file mode 100644 index 000000000000..6bff8784e6de --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_native__pixmap__handle.h @@ -0,0 +1,38 @@ +--- ui/gfx/native_pixmap_handle.h.orig 2025-01-27 17:37:37 UTC ++++ ui/gfx/native_pixmap_handle.h +@@ -14,7 +14,7 @@ + #include "build/build_config.h" + #include "ui/gfx/buffer_types.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/files/scoped_file.h" + #endif + +@@ -34,7 +34,7 @@ struct COMPONENT_EXPORT(GFX) NativePixmapPlane { + NativePixmapPlane(int stride, + int offset, + uint64_t size +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + base::ScopedFD fd + #elif BUILDFLAG(IS_FUCHSIA) +@@ -55,7 +55,7 @@ struct COMPONENT_EXPORT(GFX) NativePixmapPlane { + // This is necessary to map the buffers. + uint64_t size; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // File descriptor for the underlying memory object (usually dmabuf). + base::ScopedFD fd; + #elif BUILDFLAG(IS_FUCHSIA) +@@ -78,7 +78,7 @@ struct COMPONENT_EXPORT(GFX) NativePixmapHandle { + + std::vector<NativePixmapPlane> planes; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The modifier is retrieved from GBM library and passed to EGL driver. + // Generally it's platform specific, and we don't need to modify it in + // Chromium code. Also one per plane per entry. diff --git a/devel/electron36/files/patch-ui_gfx_native__widget__types.h b/devel/electron36/files/patch-ui_gfx_native__widget__types.h new file mode 100644 index 000000000000..d48583ee9a66 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_native__widget__types.h @@ -0,0 +1,20 @@ +--- ui/gfx/native_widget_types.h.orig 2025-04-22 20:15:27 UTC ++++ ui/gfx/native_widget_types.h +@@ -104,7 +104,7 @@ class SkBitmap; + #endif + class SkBitmap; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern "C" { + struct _AtkObject; + using AtkObject = struct _AtkObject; +@@ -194,7 +194,7 @@ using NativeViewAccessible = struct objc_object*; + #else + using NativeViewAccessible = struct objc_object*; + #endif +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux doesn't have a native font type. + using NativeViewAccessible = AtkObject*; + #else diff --git a/devel/electron36/files/patch-ui_gfx_platform__font__skia.cc b/devel/electron36/files/patch-ui_gfx_platform__font__skia.cc new file mode 100644 index 000000000000..db6e61ee4ba0 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_platform__font__skia.cc @@ -0,0 +1,20 @@ +--- ui/gfx/platform_font_skia.cc.orig 2024-08-14 20:56:05 UTC ++++ ui/gfx/platform_font_skia.cc +@@ -29,7 +29,7 @@ + #include "ui/gfx/system_fonts_win.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +@@ -167,7 +167,7 @@ void PlatformFontSkia::EnsuresDefaultFontIsInitialized + weight = system_font.GetWeight(); + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux, LinuxUi is used to query the native toolkit (e.g. + // GTK) for the default UI font. + if (auto* linux_ui = ui::LinuxUi::instance()) { diff --git a/devel/electron36/files/patch-ui_gfx_render__text__api__fuzzer.cc b/devel/electron36/files/patch-ui_gfx_render__text__api__fuzzer.cc new file mode 100644 index 000000000000..97fc6847bc8c --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_render__text__api__fuzzer.cc @@ -0,0 +1,20 @@ +--- ui/gfx/render_text_api_fuzzer.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/gfx/render_text_api_fuzzer.cc +@@ -19,7 +19,7 @@ + #include "ui/gfx/font_util.h" + #include "ui/gfx/render_text.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h" + #endif + +@@ -46,7 +46,7 @@ struct Environment { + + CHECK(base::i18n::InitializeICU()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + test_fonts::SetUpFontconfig(); + #endif + gfx::InitializeFonts(); diff --git a/devel/electron36/files/patch-ui_gfx_render__text__fuzzer.cc b/devel/electron36/files/patch-ui_gfx_render__text__fuzzer.cc new file mode 100644 index 000000000000..c1c485c32de0 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_render__text__fuzzer.cc @@ -0,0 +1,20 @@ +--- ui/gfx/render_text_fuzzer.cc.orig 2024-06-18 21:44:02 UTC ++++ ui/gfx/render_text_fuzzer.cc +@@ -17,7 +17,7 @@ + #include "ui/gfx/canvas.h" + #include "ui/gfx/font_util.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h" + #endif + +@@ -40,7 +40,7 @@ struct Environment { + + CHECK(base::i18n::InitializeICU()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + test_fonts::SetUpFontconfig(); + #endif + gfx::InitializeFonts(); diff --git a/devel/electron36/files/patch-ui_gfx_switches.cc b/devel/electron36/files/patch-ui_gfx_switches.cc new file mode 100644 index 000000000000..8452b810f3b3 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_switches.cc @@ -0,0 +1,11 @@ +--- ui/gfx/switches.cc.orig 2024-04-15 20:34:30 UTC ++++ ui/gfx/switches.cc +@@ -32,7 +32,7 @@ const char kHeadless[] = "headless"; + // Run in headless mode, i.e., without a UI or display server dependencies. + const char kHeadless[] = "headless"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Which X11 display to connect to. Emulates the GTK+ "--display=" command line + // argument. In use only with Ozone/X11. + const char kX11Display[] = "display"; diff --git a/devel/electron36/files/patch-ui_gfx_switches.h b/devel/electron36/files/patch-ui_gfx_switches.h new file mode 100644 index 000000000000..1f06f4f07180 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_switches.h @@ -0,0 +1,11 @@ +--- ui/gfx/switches.h.orig 2025-01-27 17:37:37 UTC ++++ ui/gfx/switches.h +@@ -18,7 +18,7 @@ GFX_SWITCHES_EXPORT extern const char kHeadless[]; + GFX_SWITCHES_EXPORT extern const char kForcePrefersNoReducedMotion[]; + GFX_SWITCHES_EXPORT extern const char kHeadless[]; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + GFX_SWITCHES_EXPORT extern const char kX11Display[]; + GFX_SWITCHES_EXPORT extern const char kNoXshm[]; + #endif diff --git a/devel/electron36/files/patch-ui_gfx_x_atom__cache.cc b/devel/electron36/files/patch-ui_gfx_x_atom__cache.cc new file mode 100644 index 000000000000..2c5811d69cd8 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_x_atom__cache.cc @@ -0,0 +1,10 @@ +--- ui/gfx/x/atom_cache.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/gfx/x/atom_cache.cc +@@ -157,6 +157,7 @@ constexpr auto kAtomsToCache = std::to_array<const cha + "application/octet-stream", + "application/vnd.chromium.test", + "chromium/filename", ++ "chromium/from-privileged", + "chromium/x-bookmark-entries", + "chromium/x-browser-actions", + "chromium/x-file-system-files", diff --git a/devel/electron36/files/patch-ui_gfx_x_generated__protos_dri3.cc b/devel/electron36/files/patch-ui_gfx_x_generated__protos_dri3.cc new file mode 100644 index 000000000000..fc63019c0a74 --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_x_generated__protos_dri3.cc @@ -0,0 +1,11 @@ +--- ui/gfx/x/generated_protos/dri3.cc.orig 2024-02-21 00:21:15 UTC ++++ ui/gfx/x/generated_protos/dri3.cc +@@ -27,6 +27,8 @@ + #include <xcb/xcb.h> + #include <xcb/xcbext.h> + ++#include <unistd.h> ++ + #include "base/logging.h" + #include "base/posix/eintr_wrapper.h" + #include "ui/gfx/x/connection.h" diff --git a/devel/electron36/files/patch-ui_gfx_x_generated__protos_shm.cc b/devel/electron36/files/patch-ui_gfx_x_generated__protos_shm.cc new file mode 100644 index 000000000000..af2ba66ecc2f --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_x_generated__protos_shm.cc @@ -0,0 +1,11 @@ +--- ui/gfx/x/generated_protos/shm.cc.orig 2024-02-21 00:21:15 UTC ++++ ui/gfx/x/generated_protos/shm.cc +@@ -27,6 +27,8 @@ + #include <xcb/xcb.h> + #include <xcb/xcbext.h> + ++#include <unistd.h> ++ + #include "base/logging.h" + #include "base/posix/eintr_wrapper.h" + #include "ui/gfx/x/connection.h" diff --git a/devel/electron36/files/patch-ui_gfx_x_xlib__support.cc b/devel/electron36/files/patch-ui_gfx_x_xlib__support.cc new file mode 100644 index 000000000000..d47da5e2897e --- /dev/null +++ b/devel/electron36/files/patch-ui_gfx_x_xlib__support.cc @@ -0,0 +1,21 @@ +--- ui/gfx/x/xlib_support.cc.orig 2024-02-21 00:21:15 UTC ++++ ui/gfx/x/xlib_support.cc +@@ -39,10 +39,18 @@ void InitXlib() { + return; + } + ++#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 BUILDFLAG(IS_BSD) ++ CHECK(xlib_xcb_loader->Load("libX11-xcb.so")); ++#else + CHECK(xlib_xcb_loader->Load("libX11-xcb.so.1")); ++#endif + + CHECK(xlib_loader->XInitThreads()); + diff --git a/devel/electron36/files/patch-ui_gl_BUILD.gn b/devel/electron36/files/patch-ui_gl_BUILD.gn new file mode 100644 index 000000000000..896ee78ebffa --- /dev/null +++ b/devel/electron36/files/patch-ui_gl_BUILD.gn @@ -0,0 +1,26 @@ +--- ui/gl/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ ui/gl/BUILD.gn +@@ -174,7 +174,6 @@ component("gl") { + public_deps = [ + ":gl_enums", + "//base", +- "//third_party/mesa_headers", + "//ui/events/platform", + "//ui/gfx", + "//ui/gfx/geometry", +@@ -328,7 +327,6 @@ component("gl") { + data_deps += [ + "//third_party/angle:libEGL", + "//third_party/angle:libGLESv2", +- "//third_party/mesa_headers", + ] + if (enable_swiftshader) { + data_deps += [ +@@ -554,7 +552,6 @@ test("gl_unittests") { + + data_deps = [ + "//testing/buildbot/filters:gl_unittests_filters", +- "//third_party/mesa_headers", + ] + + if (is_win) { diff --git a/devel/electron36/files/patch-ui_gl_gl__context.cc b/devel/electron36/files/patch-ui_gl_gl__context.cc new file mode 100644 index 000000000000..583c9bf46c85 --- /dev/null +++ b/devel/electron36/files/patch-ui_gl_gl__context.cc @@ -0,0 +1,11 @@ +--- ui/gl/gl_context.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/gl/gl_context.cc +@@ -516,7 +516,7 @@ bool GLContext::MakeVirtuallyCurrent( + DCHECK(virtual_context->IsCurrent(surface)); + + if (switched_real_contexts || virtual_context != current_virtual_context_) { +-#if DCHECK_IS_ON() ++#if DCHECK_IS_ON() && !BUILDFLAG(IS_BSD) + GLenum error = glGetError(); + // Accepting a context loss error here enables using debug mode to work on + // context loss handling in virtual context mode. diff --git a/devel/electron36/files/patch-ui_gl_gl__fence.cc b/devel/electron36/files/patch-ui_gl_gl__fence.cc new file mode 100644 index 000000000000..0c335c0ec9fb --- /dev/null +++ b/devel/electron36/files/patch-ui_gl_gl__fence.cc @@ -0,0 +1,11 @@ +--- ui/gl/gl_fence.cc.orig 2024-08-14 20:56:05 UTC ++++ ui/gl/gl_fence.cc +@@ -17,7 +17,7 @@ + #include "ui/gl/gl_surface_egl.h" + #include "ui/gl/gl_version_info.h" + +-#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/devel/electron36/files/patch-ui_gl_gl__implementation.cc b/devel/electron36/files/patch-ui_gl_gl__implementation.cc new file mode 100644 index 000000000000..8637492e1725 --- /dev/null +++ b/devel/electron36/files/patch-ui_gl_gl__implementation.cc @@ -0,0 +1,11 @@ +--- ui/gl/gl_implementation.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/gl/gl_implementation.cc +@@ -286,7 +286,7 @@ GetRequestedGLImplementationFromCommandLine( + const base::CommandLine* command_line) { + bool overrideUseSoftwareGL = + command_line->HasSwitch(switches::kOverrideUseSoftwareGLForTests); +-#if BUILDFLAG(IS_LINUX) || \ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE)) + if (std::getenv("RUNNING_UNDER_RR")) { + // https://rr-project.org/ is a Linux-only record-and-replay debugger that diff --git a/devel/electron36/files/patch-ui_gl_gl__switches.cc b/devel/electron36/files/patch-ui_gl_gl__switches.cc new file mode 100644 index 000000000000..e0c62760a0f3 --- /dev/null +++ b/devel/electron36/files/patch-ui_gl_gl__switches.cc @@ -0,0 +1,29 @@ +--- ui/gl/gl_switches.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/gl/gl_switches.cc +@@ -13,7 +13,7 @@ + #include "base/android/build_info.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include <vulkan/vulkan_core.h> + #include "third_party/angle/src/gpu_info_util/SystemInfo.h" // nogncheck + #endif +@@ -319,7 +319,7 @@ bool IsDefaultANGLEVulkan() { + return false; + } + #endif // BUILDFLAG(IS_ANDROID) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + angle::SystemInfo system_info; + { + GPU_STARTUP_TRACE_EVENT("angle::GetSystemInfoVulkan"); +@@ -372,7 +372,7 @@ bool IsDefaultANGLEVulkan() { + } + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // AMDVLK driver is buggy, so disable Vulkan with AMDVLK for now. + // crbug.com/1340081 + if (active_gpu.driverId == VK_DRIVER_ID_AMD_OPEN_SOURCE) diff --git a/devel/electron36/files/patch-ui_gl_sync__control__vsync__provider.cc b/devel/electron36/files/patch-ui_gl_sync__control__vsync__provider.cc new file mode 100644 index 000000000000..1f914f38781b --- /dev/null +++ b/devel/electron36/files/patch-ui_gl_sync__control__vsync__provider.cc @@ -0,0 +1,38 @@ +--- ui/gl/sync_control_vsync_provider.cc.orig 2024-08-14 20:56:05 UTC ++++ ui/gl/sync_control_vsync_provider.cc +@@ -11,7 +11,7 @@ + #include "base/trace_event/trace_event.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // These constants define a reasonable range for a calculated refresh interval. + // Calculating refreshes out of this range will be considered a fatal error. + const int64_t kMinVsyncIntervalUs = base::Time::kMicrosecondsPerSecond / 400; +@@ -26,7 +26,7 @@ SyncControlVSyncProvider::SyncControlVSyncProvider() : + namespace gl { + + SyncControlVSyncProvider::SyncControlVSyncProvider() : gfx::VSyncProvider() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On platforms where we can't get an accurate reading on the refresh + // rate we fall back to the assumption that we're displaying 60 frames + // per second. +@@ -48,7 +48,7 @@ bool SyncControlVSyncProvider::GetVSyncParametersIfAva + base::TimeTicks* timebase_out, + base::TimeDelta* interval_out) { + TRACE_EVENT0("gpu", "SyncControlVSyncProvider::GetVSyncParameters"); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The actual clock used for the system time returned by + // eglGetSyncValuesCHROMIUM is unspecified. In practice, the clock used is + // likely to be either CLOCK_REALTIME or CLOCK_MONOTONIC, so we compare the +@@ -160,7 +160,7 @@ bool SyncControlVSyncProvider::SupportGetVSyncParamete + } + + bool SyncControlVSyncProvider::SupportGetVSyncParametersIfAvailable() const { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron36/files/patch-ui_gl_sync__control__vsync__provider.h b/devel/electron36/files/patch-ui_gl_sync__control__vsync__provider.h new file mode 100644 index 000000000000..376bf86f0f64 --- /dev/null +++ b/devel/electron36/files/patch-ui_gl_sync__control__vsync__provider.h @@ -0,0 +1,20 @@ +--- ui/gl/sync_control_vsync_provider.h.orig 2022-05-19 14:06:27 UTC ++++ ui/gl/sync_control_vsync_provider.h +@@ -31,7 +31,7 @@ class SyncControlVSyncProvider : public gfx::VSyncProv + bool SupportGetVSyncParametersIfAvailable() const override; + + static constexpr bool IsSupported() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return true; + #else + return false; +@@ -46,7 +46,7 @@ class SyncControlVSyncProvider : public gfx::VSyncProv + virtual bool GetMscRate(int32_t* numerator, int32_t* denominator) = 0; + + private: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::TimeTicks last_timebase_; + uint64_t last_media_stream_counter_ = 0; + base::TimeDelta last_good_interval_; diff --git a/devel/electron36/files/patch-ui_gtk_gtk__compat.cc b/devel/electron36/files/patch-ui_gtk_gtk__compat.cc new file mode 100644 index 000000000000..5b0f11282517 --- /dev/null +++ b/devel/electron36/files/patch-ui_gtk_gtk__compat.cc @@ -0,0 +1,53 @@ +--- ui/gtk/gtk_compat.cc.orig 2025-05-15 14:01:16 UTC ++++ ui/gtk/gtk_compat.cc +@@ -65,22 +65,38 @@ void* GetLibGio() { + } + + void* GetLibGio() { ++#if BUILDFLAG(IS_BSD) ++ static void* libgio = DlOpen("libgio-2.0.so"); ++#else + static void* libgio = DlOpen("libgio-2.0.so.0"); ++#endif + return libgio; + } + + void* GetLibGdk3() { ++#if BUILDFLAG(IS_BSD) ++ static void* libgdk3 = DlOpen("libgdk-3.so"); ++#else + static void* libgdk3 = DlOpen("libgdk-3.so.0"); ++#endif + return libgdk3; + } + + void* GetLibGtk3(bool check = true) { ++#if BUILDFLAG(IS_BSD) ++ static void* libgtk3 = DlOpen("libgtk-3.so", check); ++#else + static void* libgtk3 = DlOpen("libgtk-3.so.0", check); ++#endif + return libgtk3; + } + + void* GetLibGtk4(bool check = true) { ++#if BUILDFLAG(IS_BSD) ++ static void* libgtk4 = DlOpen("libgtk-4.so", check); ++#else + static void* libgtk4 = DlOpen("libgtk-4.so.1", check); ++#endif + return libgtk4; + } + +@@ -146,7 +162,11 @@ void* GetLibGdkPixbuf() { + } // namespace + + void* GetLibGdkPixbuf() { ++#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"); ++#endif + return libgdk_pixbuf; + } + diff --git a/devel/electron36/files/patch-ui_gtk_printing_print__dialog__gtk.cc b/devel/electron36/files/patch-ui_gtk_printing_print__dialog__gtk.cc new file mode 100644 index 000000000000..167ec7ac4325 --- /dev/null +++ b/devel/electron36/files/patch-ui_gtk_printing_print__dialog__gtk.cc @@ -0,0 +1,11 @@ +--- ui/gtk/printing/print_dialog_gtk.cc.orig 2025-02-02 01:39:09 UTC ++++ ui/gtk/printing/print_dialog_gtk.cc +@@ -456,7 +456,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 | +- GTK_PRINT_CAPABILITY_REVERSE); ++ GTK_PRINT_CAPABILITY_REVERSE | GTK_PRINT_CAPABILITY_GENERATE_PS); + gtk_print_unix_dialog_set_manual_capabilities( + GTK_PRINT_UNIX_DIALOG(dialog_.get()), cap); + gtk_print_unix_dialog_set_embed_page_setup( diff --git a/devel/electron36/files/patch-ui_message__center_views_message__popup__view.cc b/devel/electron36/files/patch-ui_message__center_views_message__popup__view.cc new file mode 100644 index 000000000000..8c1a3e21027e --- /dev/null +++ b/devel/electron36/files/patch-ui_message__center_views_message__popup__view.cc @@ -0,0 +1,11 @@ +--- ui/message_center/views/message_popup_view.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/message_center/views/message_popup_view.cc +@@ -153,7 +153,7 @@ std::unique_ptr<views::Widget> MessagePopupView::Show( + views::Widget::InitParams::CLIENT_OWNS_WIDGET, + views::Widget::InitParams::TYPE_POPUP); + params.z_order = ui::ZOrderLevel::kFloatingWindow; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Make the widget explicitly activatable as TYPE_POPUP is not activatable by + // default but we need focus for the inline reply textarea. + params.activatable = views::Widget::InitParams::Activatable::kYes; diff --git a/devel/electron36/files/patch-ui_native__theme_features_native__theme__features.cc b/devel/electron36/files/patch-ui_native__theme_features_native__theme__features.cc new file mode 100644 index 000000000000..2f9541f2a981 --- /dev/null +++ b/devel/electron36/files/patch-ui_native__theme_features_native__theme__features.cc @@ -0,0 +1,20 @@ +--- ui/native_theme/features/native_theme_features.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/native_theme/features/native_theme_features.cc +@@ -59,7 +59,7 @@ bool IsFluentOverlayScrollbarEnabled() { + + bool IsFluentOverlayScrollbarEnabled() { + // Fluent scrollbars are only used for some OSes due to UI design guidelines. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled(features::kFluentOverlayScrollbar); + #else + return false; +@@ -68,7 +68,7 @@ bool IsFluentScrollbarEnabled() { + + bool IsFluentScrollbarEnabled() { + // Fluent scrollbars are only used for some OSes due to UI design guidelines. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled(features::kFluentScrollbar) || + IsFluentOverlayScrollbarEnabled(); + #else diff --git a/devel/electron36/files/patch-ui_native__theme_native__theme.h b/devel/electron36/files/patch-ui_native__theme_native__theme.h new file mode 100644 index 000000000000..02716cdbae2b --- /dev/null +++ b/devel/electron36/files/patch-ui_native__theme_native__theme.h @@ -0,0 +1,11 @@ +--- ui/native_theme/native_theme.h.orig 2025-02-02 01:39:08 UTC ++++ ui/native_theme/native_theme.h +@@ -61,7 +61,7 @@ class NATIVE_THEME_EXPORT NativeTheme { + // The part to be painted / sized. + enum Part { + kCheckbox, +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + kFrameTopArea, + #endif + kInnerSpinButton, diff --git a/devel/electron36/files/patch-ui_native__theme_native__theme__base.cc b/devel/electron36/files/patch-ui_native__theme_native__theme__base.cc new file mode 100644 index 000000000000..845ac638d1e6 --- /dev/null +++ b/devel/electron36/files/patch-ui_native__theme_native__theme__base.cc @@ -0,0 +1,11 @@ +--- ui/native_theme/native_theme_base.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/native_theme/native_theme_base.cc +@@ -240,7 +240,7 @@ void NativeThemeBase::Paint(cc::PaintCanvas* canvas, + std::get<ButtonExtraParams>(extra), color_scheme, + accent_color_opaque); + break; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case kFrameTopArea: + PaintFrameTopArea(canvas, state, rect, + std::get<FrameTopAreaExtraParams>(extra), color_scheme); diff --git a/devel/electron36/files/patch-ui_ozone_common_egl__util.cc b/devel/electron36/files/patch-ui_ozone_common_egl__util.cc new file mode 100644 index 000000000000..37f9c2ad659f --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_common_egl__util.cc @@ -0,0 +1,14 @@ +--- ui/ozone/common/egl_util.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/ozone/common/egl_util.cc +@@ -27,9 +27,9 @@ const base::FilePath::CharType kDefaultEglSoname[] = + FILE_PATH_LITERAL("libGLESv2.so"); + #else // BUILDFLAG(IS_FUCHSIA) + const base::FilePath::CharType kDefaultEglSoname[] = +- FILE_PATH_LITERAL("libEGL.so.1"); ++ FILE_PATH_LITERAL("libEGL.so"); + const base::FilePath::CharType kDefaultGlesSoname[] = +- FILE_PATH_LITERAL("libGLESv2.so.2"); ++ FILE_PATH_LITERAL("libGLESv2.so"); + #endif + const base::FilePath::CharType kAngleEglSoname[] = + FILE_PATH_LITERAL("libEGL.so"); diff --git a/devel/electron36/files/patch-ui_ozone_platform_headless_headless__surface__factory.cc b/devel/electron36/files/patch-ui_ozone_platform_headless_headless__surface__factory.cc new file mode 100644 index 000000000000..ce2f5ea30cab --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_headless_headless__surface__factory.cc @@ -0,0 +1,20 @@ +--- ui/ozone/platform/headless/headless_surface_factory.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/ozone/platform/headless/headless_surface_factory.cc +@@ -34,7 +34,7 @@ + #include "ui/ozone/platform/headless/headless_window_manager.h" + #include "ui/ozone/public/surface_ozone_canvas.h" + +-#if BUILDFLAG(ENABLE_VULKAN) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA)) ++#if BUILDFLAG(ENABLE_VULKAN) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)) + #include "ui/ozone/platform/headless/vulkan_implementation_headless.h" + #endif + +@@ -281,7 +281,7 @@ HeadlessSurfaceFactory::CreateVulkanImplementation( + HeadlessSurfaceFactory::CreateVulkanImplementation( + bool use_swiftshader, + bool allow_protected_memory) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + return std::make_unique<VulkanImplementationHeadless>(use_swiftshader); + #else + return nullptr; diff --git a/devel/electron36/files/patch-ui_ozone_platform_headless_ozone__platform__headless.cc b/devel/electron36/files/patch-ui_ozone_platform_headless_ozone__platform__headless.cc new file mode 100644 index 000000000000..effc98abd381 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_headless_ozone__platform__headless.cc @@ -0,0 +1,11 @@ +--- ui/ozone/platform/headless/ozone_platform_headless.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/ozone/platform/headless/ozone_platform_headless.cc +@@ -108,7 +108,7 @@ class OzonePlatformHeadlessImpl : public OzonePlatform + } + + // Desktop Linux, not CastOS. +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CASTOS) + const PlatformProperties& GetPlatformProperties() override { + static base::NoDestructor<OzonePlatform::PlatformProperties> properties; + static bool initialized = false; diff --git a/devel/electron36/files/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc b/devel/electron36/files/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc new file mode 100644 index 000000000000..3ef445463d98 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc @@ -0,0 +1,29 @@ +--- ui/ozone/platform/headless/vulkan_implementation_headless.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/ozone/platform/headless/vulkan_implementation_headless.cc +@@ -116,7 +116,7 @@ VulkanImplementationHeadless::GetExternalSemaphoreHand + + 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; +@@ -126,7 +126,7 @@ bool VulkanImplementationHeadless::CanImportGpuMemoryB + 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) && +@@ -149,7 +149,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; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (gmb_handle.native_pixmap_handle.modifier != + gfx::NativePixmapHandle::kNoModifier) { + tiling = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT; diff --git a/devel/electron36/files/patch-ui_ozone_platform_wayland_common_wayland__util.cc b/devel/electron36/files/patch-ui_ozone_platform_wayland_common_wayland__util.cc new file mode 100644 index 000000000000..9fad253ec101 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_wayland_common_wayland__util.cc @@ -0,0 +1,18 @@ +--- ui/ozone/platform/wayland/common/wayland_util.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/ozone/platform/wayland/common/wayland_util.cc +@@ -424,6 +424,7 @@ void RecordConnectionMetrics(wl_display* display) { + {"weston", WaylandCompositor::kWeston}, + }; + ++#if !BUILDFLAG(IS_BSD) + const int fd = wl_display_get_fd(display); + if (fd == -1) { + return WaylandCompositor::kUnknown; +@@ -449,6 +450,7 @@ void RecordConnectionMetrics(wl_display* display) { + return compositor; + } + } ++#endif + + return WaylandCompositor::kOther; + }; diff --git a/devel/electron36/files/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc b/devel/electron36/files/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc new file mode 100644 index 000000000000..b238570624d8 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc @@ -0,0 +1,14 @@ +--- ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc.orig 2022-03-25 21:59:56 UTC ++++ ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc +@@ -38,7 +38,11 @@ bool VulkanImplementationWayland::InitializeVulkanInst + + path = path.Append("libvk_swiftshader.so"); + } else { ++#if BUILDFLAG(IS_BSD) ++ path = base::FilePath("libvulkan.so"); ++#else + path = base::FilePath("libvulkan.so.1"); ++#endif + } + + return vulkan_instance_.Initialize(path, required_extensions, {}); diff --git a/devel/electron36/files/patch-ui_ozone_platform_wayland_host_wayland__frame__manager.cc b/devel/electron36/files/patch-ui_ozone_platform_wayland_host_wayland__frame__manager.cc new file mode 100644 index 000000000000..09bb550c2c4e --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_wayland_host_wayland__frame__manager.cc @@ -0,0 +1,13 @@ +--- ui/ozone/platform/wayland/host/wayland_frame_manager.cc.orig 2025-05-05 19:42:33 UTC ++++ ui/ozone/platform/wayland/host/wayland_frame_manager.cc +@@ -461,8 +461,10 @@ std::optional<bool> WaylandFrameManager::ApplySurfaceC + surface->UpdateBufferDamageRegion( + gfx::ToEnclosingRectIgnoringError(surface_damage)); + ++#if !BUILDFLAG(IS_BSD) + if (!config.access_fence_handle.is_null()) + surface->set_acquire_fence(std::move(config.access_fence_handle)); ++#endif + + bool needs_commit = false; + diff --git a/devel/electron36/files/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc b/devel/electron36/files/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc new file mode 100644 index 000000000000..1b408b0e9068 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc @@ -0,0 +1,21 @@ +--- ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc +@@ -261,6 +261,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"; +@@ -273,6 +277,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/devel/electron36/files/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc b/devel/electron36/files/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc new file mode 100644 index 000000000000..767d3cd847b8 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc @@ -0,0 +1,14 @@ +--- ui/ozone/platform/x11/vulkan_implementation_x11.cc.orig 2024-04-15 20:34:30 UTC ++++ ui/ozone/platform/x11/vulkan_implementation_x11.cc +@@ -59,7 +59,11 @@ bool VulkanImplementationX11::InitializeVulkanInstance + + path = path.Append("libvk_swiftshader.so"); + } else { ++#if BUILDFLAG(IS_BSD) ++ path = base::FilePath("libvulkan.so"); ++#else + path = base::FilePath("libvulkan.so.1"); ++#endif + } + + return vulkan_instance_.Initialize(path, required_extensions, {}); diff --git a/devel/electron36/files/patch-ui_ozone_platform_x11_x11__screen__ozone.cc b/devel/electron36/files/patch-ui_ozone_platform_x11_x11__screen__ozone.cc new file mode 100644 index 000000000000..200d12b61e42 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_x11_x11__screen__ozone.cc @@ -0,0 +1,29 @@ +--- ui/ozone/platform/x11/x11_screen_ozone.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/ozone/platform/x11/x11_screen_ozone.cc +@@ -22,7 +22,7 @@ + #include "ui/ozone/platform/x11/x11_window.h" + #include "ui/ozone/platform/x11/x11_window_manager.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +@@ -97,7 +97,7 @@ X11ScreenOzone::X11ScreenOzone() + window_manager_(X11WindowManager::GetInstance()), + x11_display_manager_(std::make_unique<XDisplayManager>(this)) { + DCHECK(window_manager_); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (auto* linux_ui = ui::LinuxUi::instance()) { + display_scale_factor_observer_.Observe(linux_ui); + } +@@ -267,7 +267,7 @@ void X11ScreenOzone::OnEvent(const x11::Event& xev) { + x11_display_manager_->OnEvent(xev); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void X11ScreenOzone::OnDeviceScaleFactorChanged() { + x11_display_manager_->DispatchDelayedDisplayListUpdate(); + } diff --git a/devel/electron36/files/patch-ui_ozone_platform_x11_x11__screen__ozone.h b/devel/electron36/files/patch-ui_ozone_platform_x11_x11__screen__ozone.h new file mode 100644 index 000000000000..510446329839 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_x11_x11__screen__ozone.h @@ -0,0 +1,38 @@ +--- ui/ozone/platform/x11/x11_screen_ozone.h.orig 2024-04-15 20:34:30 UTC ++++ ui/ozone/platform/x11/x11_screen_ozone.h +@@ -16,7 +16,7 @@ + #include "ui/gfx/x/event.h" + #include "ui/ozone/public/platform_screen.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/device_scale_factor_observer.h" + #include "ui/linux/linux_ui.h" + #endif +@@ -29,7 +29,7 @@ class X11ScreenOzone : public PlatformScreen, + class X11ScreenOzone : public PlatformScreen, + public x11::EventObserver, + public XDisplayManager::Delegate +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + , + public DeviceScaleFactorObserver + #endif +@@ -97,7 +97,7 @@ class X11ScreenOzone : public PlatformScreen, + // ui::XDisplayManager::Delegate: + void OnXDisplayListUpdated() override; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // DeviceScaleFactorObserver: + void OnDeviceScaleFactorChanged() override; + #endif +@@ -109,7 +109,7 @@ class X11ScreenOzone : public PlatformScreen, + // Indicates that |this| is initialized. + bool initialized_ = false; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::ScopedObservation<ui::LinuxUi, DeviceScaleFactorObserver> + display_scale_factor_observer_{this}; + #endif diff --git a/devel/electron36/files/patch-ui_ozone_platform_x11_x11__window.cc b/devel/electron36/files/patch-ui_ozone_platform_x11_x11__window.cc new file mode 100644 index 000000000000..90196c417bc8 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_platform_x11_x11__window.cc @@ -0,0 +1,11 @@ +--- ui/ozone/platform/x11/x11_window.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/ozone/platform/x11/x11_window.cc +@@ -1459,7 +1459,7 @@ void X11Window::OnXWindowStateChanged() { + WindowTiledEdges tiled_state = GetTiledState(); + if (tiled_state != tiled_state_) { + tiled_state_ = tiled_state; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + platform_window_delegate_->OnWindowTiledStateChanged(tiled_state); + UpdateDecorationInsets(); + #endif diff --git a/devel/electron36/files/patch-ui_ozone_public_ozone__ui__controls__test__helper.h b/devel/electron36/files/patch-ui_ozone_public_ozone__ui__controls__test__helper.h new file mode 100644 index 000000000000..d1827c4ec9f5 --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_public_ozone__ui__controls__test__helper.h @@ -0,0 +1,11 @@ +--- ui/ozone/public/ozone_ui_controls_test_helper.h.orig 2025-04-22 20:15:27 UTC ++++ ui/ozone/public/ozone_ui_controls_test_helper.h +@@ -62,7 +62,7 @@ class OzoneUIControlsTestHelper { + // aura::Window. + virtual bool MustUseUiControlsForMoveCursorTo() = 0; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + virtual void ForceUseScreenCoordinatesOnce(); + #endif + }; diff --git a/devel/electron36/files/patch-ui_ozone_test_mock__platform__window__delegate.h b/devel/electron36/files/patch-ui_ozone_test_mock__platform__window__delegate.h new file mode 100644 index 000000000000..7e4efdabf0cf --- /dev/null +++ b/devel/electron36/files/patch-ui_ozone_test_mock__platform__window__delegate.h @@ -0,0 +1,11 @@ +--- ui/ozone/test/mock_platform_window_delegate.h.orig 2024-06-18 21:44:02 UTC ++++ ui/ozone/test/mock_platform_window_delegate.h +@@ -35,7 +35,7 @@ class MockPlatformWindowDelegate : public PlatformWind + MOCK_METHOD2(OnWindowStateChanged, + void(PlatformWindowState old_state, + PlatformWindowState new_state)); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + MOCK_METHOD1(OnWindowTiledStateChanged, + void(WindowTiledEdges new_tiled_edges)); + #endif diff --git a/devel/electron36/files/patch-ui_platform__window_platform__window__delegate.cc b/devel/electron36/files/patch-ui_platform__window_platform__window__delegate.cc new file mode 100644 index 000000000000..ce5cecc9ff6c --- /dev/null +++ b/devel/electron36/files/patch-ui_platform__window_platform__window__delegate.cc @@ -0,0 +1,11 @@ +--- ui/platform_window/platform_window_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/platform_window/platform_window_delegate.cc +@@ -56,7 +56,7 @@ gfx::Insets PlatformWindowDelegate::CalculateInsetsInD + return gfx::Insets(); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void PlatformWindowDelegate::OnWindowTiledStateChanged( + WindowTiledEdges new_tiled_edges) {} + #endif diff --git a/devel/electron36/files/patch-ui_platform__window_platform__window__delegate.h b/devel/electron36/files/patch-ui_platform__window_platform__window__delegate.h new file mode 100644 index 000000000000..8278605a68f7 --- /dev/null +++ b/devel/electron36/files/patch-ui_platform__window_platform__window__delegate.h @@ -0,0 +1,11 @@ +--- ui/platform_window/platform_window_delegate.h.orig 2025-05-05 19:42:33 UTC ++++ ui/platform_window/platform_window_delegate.h +@@ -144,7 +144,7 @@ class COMPONENT_EXPORT(PLATFORM_WINDOW) PlatformWindow + virtual void OnWindowStateChanged(PlatformWindowState old_state, + PlatformWindowState new_state) = 0; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Notifies the delegate that the tiled state of the window edges has changed. + virtual void OnWindowTiledStateChanged(WindowTiledEdges new_tiled_edges); + #endif diff --git a/devel/electron36/files/patch-ui_platform__window_platform__window__init__properties.h b/devel/electron36/files/patch-ui_platform__window_platform__window__init__properties.h new file mode 100644 index 000000000000..def1012ed094 --- /dev/null +++ b/devel/electron36/files/patch-ui_platform__window_platform__window__init__properties.h @@ -0,0 +1,20 @@ +--- ui/platform_window/platform_window_init_properties.h.orig 2025-04-22 20:15:27 UTC ++++ ui/platform_window/platform_window_init_properties.h +@@ -56,7 +56,7 @@ class ScenicWindowDelegate; + class ScenicWindowDelegate; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + class X11ExtensionDelegate; + #endif + +@@ -120,7 +120,7 @@ struct COMPONENT_EXPORT(PLATFORM_WINDOW) PlatformWindo + + PlatformWindowShadowType shadow_type = PlatformWindowShadowType::kDefault; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool prefer_dark_theme = false; + raw_ptr<gfx::ImageSkia> icon = nullptr; + std::optional<SkColor> background_color; diff --git a/devel/electron36/files/patch-ui_qt_BUILD.gn b/devel/electron36/files/patch-ui_qt_BUILD.gn new file mode 100644 index 000000000000..dc74da2ddb95 --- /dev/null +++ b/devel/electron36/files/patch-ui_qt_BUILD.gn @@ -0,0 +1,11 @@ +--- ui/qt/BUILD.gn.orig 2024-02-21 00:21:16 UTC ++++ ui/qt/BUILD.gn +@@ -20,7 +20,7 @@ config("qt_internal_config") { + + # It's OK to depend on the system libstdc++ since it's a dependency of QT, so + # it will get loaded into the process anyway. +- libs = [ "stdc++" ] ++ # libs = [ "stdc++" ] + + configs = [ + "//build/config/linux:runtime_library", diff --git a/devel/electron36/files/patch-ui_shell__dialogs_select__file__dialog.h b/devel/electron36/files/patch-ui_shell__dialogs_select__file__dialog.h new file mode 100644 index 000000000000..27d62eff8b2b --- /dev/null +++ b/devel/electron36/files/patch-ui_shell__dialogs_select__file__dialog.h @@ -0,0 +1,11 @@ +--- ui/shell_dialogs/select_file_dialog.h.orig 2024-10-28 21:05:17 UTC ++++ ui/shell_dialogs/select_file_dialog.h +@@ -224,7 +224,7 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog + const GURL* caller = nullptr); + bool HasMultipleFileTypeChoices(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set the label used for the file select button. + virtual void SetButtonLabel(const std::string& label) = 0; + diff --git a/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__bn.xtb b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__bn.xtb new file mode 100644 index 000000000000..1726e72f6580 --- /dev/null +++ b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__bn.xtb @@ -0,0 +1,11 @@ +--- ui/strings/translations/app_locale_settings_bn.xtb.orig 2022-09-24 10:57:32 UTC ++++ ui/strings/translations/app_locale_settings_bn.xtb +@@ -10,7 +10,7 @@ + <translation id="IDS_WEB_FONT_FAMILY">Vrinda</translation> + <translation id="IDS_WEB_FONT_FAMILY_XP">Vrinda</translation> + </if> +-<if expr="is_linux"> ++<if expr="is_posix"> + <translation id="IDS_WEB_FONT_FAMILY">Lohit Bengali</translation> + </if> + <if expr="is_chromeos"> diff --git a/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ja.xtb b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ja.xtb new file mode 100644 index 000000000000..36dfea3003d0 --- /dev/null +++ b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ja.xtb @@ -0,0 +1,11 @@ +--- ui/strings/translations/app_locale_settings_ja.xtb.orig 2022-09-24 10:57:32 UTC ++++ ui/strings/translations/app_locale_settings_ja.xtb +@@ -12,7 +12,7 @@ + <if expr="is_ios"> + <translation id="IDS_WEB_FONT_FAMILY">Helvetica,Hiragino Kaku Gothic ProN,sans-serif</translation> + </if> +-<if expr="is_linux"> ++<if expr="is_posix"> + <translation id="IDS_WEB_FONT_FAMILY">VL PGothic,Sazanami Gothic,Kochi Gothic,sans-serif</translation> + </if> + <if expr="is_chromeos"> diff --git a/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ko.xtb b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ko.xtb new file mode 100644 index 000000000000..48faa3043711 --- /dev/null +++ b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ko.xtb @@ -0,0 +1,11 @@ +--- ui/strings/translations/app_locale_settings_ko.xtb.orig 2022-09-24 10:57:32 UTC ++++ ui/strings/translations/app_locale_settings_ko.xtb +@@ -12,7 +12,7 @@ + <if expr="is_ios"> + <translation id="IDS_WEB_FONT_FAMILY">Helvetica,Apple SD Gothic Neo,AppleGothic,sans-serif</translation> + </if> +-<if expr="is_linux"> ++<if expr="is_posix"> + <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK KR,NanumGothic,UnDotum,Baekmuk Gulim,sans-serif</translation> + </if> + <if expr="is_chromeos"> diff --git a/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ml.xtb b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ml.xtb new file mode 100644 index 000000000000..00647e1e4e74 --- /dev/null +++ b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__ml.xtb @@ -0,0 +1,11 @@ +--- ui/strings/translations/app_locale_settings_ml.xtb.orig 2022-09-24 10:57:32 UTC ++++ ui/strings/translations/app_locale_settings_ml.xtb +@@ -9,7 +9,7 @@ + <translation id="IDS_WEB_FONT_FAMILY">'Segoe UI',Arial,AnjaliOldLipi,Rachana,Kartika</translation> + <translation id="IDS_WEB_FONT_FAMILY_XP">Arial,AnjaliOldLipi,Rachana,Kartika</translation> + </if> +-<if expr="is_linux"> ++<if expr="is_posix"> + <translation id="IDS_WEB_FONT_FAMILY">Arial,AnjaliOldLipi,Rachana,Kartika,sans-serif</translation> + </if> + <if expr="is_chromeos"> diff --git a/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__th.xtb b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__th.xtb new file mode 100644 index 000000000000..0aed42526f65 --- /dev/null +++ b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__th.xtb @@ -0,0 +1,11 @@ +--- ui/strings/translations/app_locale_settings_th.xtb.orig 2022-09-24 10:57:32 UTC ++++ ui/strings/translations/app_locale_settings_th.xtb +@@ -6,7 +6,7 @@ + <translation id="IDS_WEB_FONT_FAMILY">Tahoma,sans-serif</translation> + <translation id="IDS_WEB_FONT_FAMILY_XP">Tahoma,sans-serif</translation> + </if> +-<if expr="is_linux"> ++<if expr="is_posix"> + <translation id="IDS_WEB_FONT_FAMILY">Norasi,Waree,Garuda,Loma,sans-serif</translation> + </if> + <if expr="is_chromeos"> diff --git a/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb new file mode 100644 index 000000000000..e721fbf1758d --- /dev/null +++ b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb @@ -0,0 +1,11 @@ +--- ui/strings/translations/app_locale_settings_zh-CN.xtb.orig 2022-09-24 10:57:32 UTC ++++ ui/strings/translations/app_locale_settings_zh-CN.xtb +@@ -12,7 +12,7 @@ + <if expr="is_ios"> + <translation id="IDS_WEB_FONT_FAMILY">Helvetica,PingFang SC,STHeiti,sans-serif</translation> + </if> +-<if expr="is_linux"> ++<if expr="is_posix"> + <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK SC, WenQuanYi Zen Hei, sans-serif</translation> + </if> + <if expr="is_chromeos"> diff --git a/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb new file mode 100644 index 000000000000..f86698d8a9e1 --- /dev/null +++ b/devel/electron36/files/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb @@ -0,0 +1,11 @@ +--- ui/strings/translations/app_locale_settings_zh-TW.xtb.orig 2023-02-01 18:43:52 UTC ++++ ui/strings/translations/app_locale_settings_zh-TW.xtb +@@ -12,7 +12,7 @@ + <if expr="is_ios"> + <translation id="IDS_WEB_FONT_FAMILY">Helvetica,PingFang TC,Heiti TC,sans-serif</translation> + </if> +-<if expr="is_linux"> ++<if expr="is_posix"> + <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK TC, WenQuanYi Zen Hei, sans-serif</translation> + </if> + <if expr="is_chromeos"> diff --git a/devel/electron36/files/patch-ui_strings_ui__strings.grd b/devel/electron36/files/patch-ui_strings_ui__strings.grd new file mode 100644 index 000000000000..614edc731a6d --- /dev/null +++ b/devel/electron36/files/patch-ui_strings_ui__strings.grd @@ -0,0 +1,11 @@ +--- ui/strings/ui_strings.grd.orig 2025-01-27 17:37:37 UTC ++++ ui/strings/ui_strings.grd +@@ -767,7 +767,7 @@ need to be translated for each locale.--> + Win + </message> + </if> +- <if expr="is_linux"> ++ <if expr="is_posix"> + <message name="IDS_APP_SUPER_KEY" desc="Windows key on Windows keyboards, and Command key on Mac keyboards."> + Super + </message> diff --git a/devel/electron36/files/patch-ui_views_BUILD.gn b/devel/electron36/files/patch-ui_views_BUILD.gn new file mode 100644 index 000000000000..4777e75d38a3 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_BUILD.gn @@ -0,0 +1,10 @@ +--- ui/views/BUILD.gn.orig 2025-05-11 11:50:45 UTC ++++ ui/views/BUILD.gn +@@ -841,7 +841,6 @@ component("views") { + sources += [ "accessibility/widget_ax_tree_id_map.cc" ] + } + deps += [ +- "//components/crash/core/common:crash_key", + "//ui/aura", + "//ui/base/cursor/mojom:cursor_type_shared", + "//ui/events", diff --git a/devel/electron36/files/patch-ui_views_accessibility_view__accessibility.cc b/devel/electron36/files/patch-ui_views_accessibility_view__accessibility.cc new file mode 100644 index 000000000000..ba2b38d8142a --- /dev/null +++ b/devel/electron36/files/patch-ui_views_accessibility_view__accessibility.cc @@ -0,0 +1,20 @@ +--- ui/views/accessibility/view_accessibility.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/accessibility/view_accessibility.cc +@@ -34,7 +34,7 @@ + #include "ui/views/accessibility/view_ax_platform_node_delegate_win.h" + #elif BUILDFLAG(IS_MAC) + #include "ui/views/accessibility/view_ax_platform_node_delegate_mac.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/views/accessibility/view_ax_platform_node_delegate_auralinux.h" + #endif + +@@ -101,7 +101,7 @@ std::unique_ptr<ViewAccessibility> ViewAccessibility:: + return ViewAXPlatformNodeDelegateWin::CreatePlatformSpecific(view); + #elif BUILDFLAG(IS_MAC) + return ViewAXPlatformNodeDelegateMac::CreatePlatformSpecific(view); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return ViewAXPlatformNodeDelegateAuraLinux::CreatePlatformSpecific(view); + #endif + } diff --git a/devel/electron36/files/patch-ui_views_controls_prefix__selector.cc b/devel/electron36/files/patch-ui_views_controls_prefix__selector.cc new file mode 100644 index 000000000000..ab67728578ea --- /dev/null +++ b/devel/electron36/files/patch-ui_views_controls_prefix__selector.cc @@ -0,0 +1,11 @@ +--- ui/views/controls/prefix_selector.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/views/controls/prefix_selector.cc +@@ -192,7 +192,7 @@ bool PrefixSelector::ShouldDoLearning() { + return false; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool PrefixSelector::SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { diff --git a/devel/electron36/files/patch-ui_views_controls_prefix__selector.h b/devel/electron36/files/patch-ui_views_controls_prefix__selector.h new file mode 100644 index 000000000000..7176eb058fc5 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_controls_prefix__selector.h @@ -0,0 +1,11 @@ +--- ui/views/controls/prefix_selector.h.orig 2025-01-27 17:37:37 UTC ++++ ui/views/controls/prefix_selector.h +@@ -91,7 +91,7 @@ class VIEWS_EXPORT PrefixSelector : public ui::TextInp + ukm::SourceId GetClientSourceForMetrics() const override; + bool ShouldDoLearning() override; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron36/files/patch-ui_views_controls_textfield_textfield.cc b/devel/electron36/files/patch-ui_views_controls_textfield_textfield.cc new file mode 100644 index 000000000000..5b0ec5fe9c61 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_controls_textfield_textfield.cc @@ -0,0 +1,65 @@ +--- ui/views/controls/textfield/textfield.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/controls/textfield/textfield.cc +@@ -87,7 +87,7 @@ + #include "base/win/win_util.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/base/ime/linux/text_edit_command_auralinux.h" + #include "ui/base/ime/text_input_flags.h" + #include "ui/linux/linux_ui.h" +@@ -184,7 +184,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 +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return flags & ui::EF_CONTROL_DOWN; + #else + return false; +@@ -791,7 +791,7 @@ bool Textfield::OnKeyPressed(const ui::KeyEvent& event + return handled; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!handled) { + if (auto* linux_ui = ui::LinuxUi::instance()) { + const auto command = +@@ -976,7 +976,7 @@ bool Textfield::SkipDefaultKeyEventProcessing(const ui + } + + bool Textfield::SkipDefaultKeyEventProcessing(const ui::KeyEvent& event) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Skip any accelerator handling that conflicts with custom keybindings. + if (auto* linux_ui = ui::LinuxUi::instance()) { + if (IsTextEditCommandEnabled(linux_ui->GetTextEditCommandForEvent( +@@ -2062,7 +2062,7 @@ bool Textfield::ShouldDoLearning() { + return false; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/41452689): Implement this method to support Korean IME + // reconversion feature on native text fields (e.g. find bar). + bool Textfield::SetCompositionFromExistingText( +@@ -2580,7 +2580,7 @@ ui::TextEditCommand Textfield::GetCommandForKeyEvent( + #endif + return ui::TextEditCommand::DELETE_BACKWARD; + } +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Only erase by line break on Linux and ChromeOS. + if (shift) { + return ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE; +@@ -2588,7 +2588,7 @@ ui::TextEditCommand Textfield::GetCommandForKeyEvent( + #endif + return ui::TextEditCommand::DELETE_WORD_BACKWARD; + case ui::VKEY_DELETE: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Only erase by line break on Linux and ChromeOS. + if (shift && control) { + return ui::TextEditCommand::DELETE_TO_END_OF_LINE; diff --git a/devel/electron36/files/patch-ui_views_controls_textfield_textfield.h b/devel/electron36/files/patch-ui_views_controls_textfield_textfield.h new file mode 100644 index 000000000000..cc4d59e236eb --- /dev/null +++ b/devel/electron36/files/patch-ui_views_controls_textfield_textfield.h @@ -0,0 +1,20 @@ +--- ui/views/controls/textfield/textfield.h.orig 2025-04-22 20:15:27 UTC ++++ ui/views/controls/textfield/textfield.h +@@ -48,7 +48,7 @@ + #include "ui/views/view_observer.h" + #include "ui/views/word_lookup_client.h" + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <vector> + #endif + +@@ -475,7 +475,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; } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron36/files/patch-ui_views_corewm_tooltip__aura.cc b/devel/electron36/files/patch-ui_views_corewm_tooltip__aura.cc new file mode 100644 index 000000000000..01811130baa7 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_corewm_tooltip__aura.cc @@ -0,0 +1,11 @@ +--- ui/views/corewm/tooltip_aura.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/corewm/tooltip_aura.cc +@@ -42,7 +42,7 @@ bool CanUseTranslucentTooltipWidget() { + + // TODO(varkha): Update if native widget can be transparent on Linux. + bool CanUseTranslucentTooltipWidget() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return false; + #else + return true; diff --git a/devel/electron36/files/patch-ui_views_examples_widget__example.cc b/devel/electron36/files/patch-ui_views_examples_widget__example.cc new file mode 100644 index 000000000000..9375bf3c58d2 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_examples_widget__example.cc @@ -0,0 +1,11 @@ +--- ui/views/examples/widget_example.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/examples/widget_example.cc +@@ -51,7 +51,7 @@ void WidgetExample::CreateExampleView(View* container) + modal_button->SetCallback( + base::BindRepeating(&WidgetExample::CreateDialogWidget, + base::Unretained(this), modal_button, true)); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Windows does not support TYPE_CONTROL top-level widgets. + LabelButton* control_button = BuildButton( + container, GetStringUTF16(IDS_WIDGET_CHILD_WIDGET_BUTTON_LABEL)); diff --git a/devel/electron36/files/patch-ui_views_focus_focus__manager.cc b/devel/electron36/files/patch-ui_views_focus_focus__manager.cc new file mode 100644 index 000000000000..79c38ca73fd7 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_focus_focus__manager.cc @@ -0,0 +1,20 @@ +--- ui/views/focus/focus_manager.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/focus/focus_manager.cc +@@ -606,7 +606,7 @@ bool FocusManager::RedirectAcceleratorToBubbleAnchorWi + return false; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // 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 +@@ -621,7 +621,7 @@ bool FocusManager::RedirectAcceleratorToBubbleAnchorWi + const bool accelerator_processed = + focus_manager->ProcessAccelerator(accelerator); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Need to manually close the bubble widget on Linux. On Linux when the + // bubble is shown, the main widget remains active. Because of that when + // focus is set to the main widget to process accelerator, the main widget diff --git a/devel/electron36/files/patch-ui_views_style_platform__style.cc b/devel/electron36/files/patch-ui_views_style_platform__style.cc new file mode 100644 index 000000000000..1027344812ef --- /dev/null +++ b/devel/electron36/files/patch-ui_views_style_platform__style.cc @@ -0,0 +1,20 @@ +--- ui/views/style/platform_style.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/style/platform_style.cc +@@ -23,7 +23,7 @@ + #include "ui/views/controls/focusable_border.h" + #include "ui/views/controls/scrollbar/scroll_bar_views.h" + +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/views/controls/scrollbar/overlay_scroll_bar.h" + #endif + #endif +@@ -35,7 +35,7 @@ std::unique_ptr<ScrollBar> PlatformStyle::CreateScroll + // static + std::unique_ptr<ScrollBar> PlatformStyle::CreateScrollBar( + ScrollBar::Orientation orientation) { +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<OverlayScrollBar>(orientation); + #else + return std::make_unique<ScrollBarViews>(orientation); diff --git a/devel/electron36/files/patch-ui_views_style_platform__style.h b/devel/electron36/files/patch-ui_views_style_platform__style.h new file mode 100644 index 000000000000..5a84651c4cfb --- /dev/null +++ b/devel/electron36/files/patch-ui_views_style_platform__style.h @@ -0,0 +1,11 @@ +--- ui/views/style/platform_style.h.orig 2025-04-22 20:15:27 UTC ++++ ui/views/style/platform_style.h +@@ -84,7 +84,7 @@ class VIEWS_EXPORT PlatformStyle { + // Default setting at bubble creation time for whether arrow will be adjusted + // for bubbles going off-screen to bring more bubble area into view. Linux + // clips bubble windows that extend outside their parent window bounds. +- static constexpr bool kAdjustBubbleIfOffscreen = !BUILDFLAG(IS_LINUX); ++ static constexpr bool kAdjustBubbleIfOffscreen = (!BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)); + + // Default focus behavior on the platform. + static constexpr View::FocusBehavior kDefaultFocusBehavior = diff --git a/devel/electron36/files/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc b/devel/electron36/files/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc new file mode 100644 index 000000000000..94ce57f7b2b5 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc @@ -0,0 +1,11 @@ +--- ui/views/test/ui_controls_factory_desktop_aura_ozone.cc.orig 2025-01-27 17:37:37 UTC ++++ ui/views/test/ui_controls_factory_desktop_aura_ozone.cc +@@ -237,7 +237,7 @@ bool SendMouseClick(MouseButton type, gfx::NativeWindo + window_hint); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // static + void ForceUseScreenCoordinatesOnce() { + g_ozone_ui_controls_test_helper->ForceUseScreenCoordinatesOnce(); diff --git a/devel/electron36/files/patch-ui_views_views__delegate.cc b/devel/electron36/files/patch-ui_views_views__delegate.cc new file mode 100644 index 000000000000..8841b2903147 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_views__delegate.cc @@ -0,0 +1,11 @@ +--- ui/views/views_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/views_delegate.cc +@@ -101,7 +101,7 @@ bool ViewsDelegate::IsWindowInMetro(gfx::NativeWindow + return false; + } + #elif BUILDFLAG(ENABLE_DESKTOP_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + gfx::ImageSkia* ViewsDelegate::GetDefaultWindowIcon() const { + return nullptr; + } diff --git a/devel/electron36/files/patch-ui_views_views__delegate.h b/devel/electron36/files/patch-ui_views_views__delegate.h new file mode 100644 index 000000000000..454079fc89c0 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_views__delegate.h @@ -0,0 +1,11 @@ +--- ui/views/views_delegate.h.orig 2025-01-27 17:37:37 UTC ++++ ui/views/views_delegate.h +@@ -139,7 +139,7 @@ class VIEWS_EXPORT ViewsDelegate { + // environment. + virtual bool IsWindowInMetro(gfx::NativeWindow window) const; + #elif BUILDFLAG(ENABLE_DESKTOP_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + virtual gfx::ImageSkia* GetDefaultWindowIcon() const; + #endif + diff --git a/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc b/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc new file mode 100644 index 000000000000..7d8ea3b3e28f --- /dev/null +++ b/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc @@ -0,0 +1,11 @@ +--- ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc +@@ -203,7 +203,7 @@ DragOperation DesktopDragDropClientOzone::StartDragAnd + return selected_operation_; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void DesktopDragDropClientOzone::UpdateDragImage(const gfx::ImageSkia& image, + const gfx::Vector2d& offset) { + DCHECK(drag_handler_); diff --git a/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h b/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h new file mode 100644 index 000000000000..fe4491452870 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h @@ -0,0 +1,20 @@ +--- ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.h.orig 2025-01-27 17:37:37 UTC ++++ ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.h +@@ -67,7 +67,7 @@ class VIEWS_EXPORT DesktopDragDropClientOzone + // The offset of |drag_widget_| relative to the mouse position. + gfx::Vector2d offset; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The last received drag location. The drag widget is moved asynchronously + // so its position is updated when the UI thread has time for that. When + // the first change to the location happens, a call to UpdateDragWidget() +@@ -88,7 +88,7 @@ class VIEWS_EXPORT DesktopDragDropClientOzone + const gfx::Point& root_location, + int allowed_operations, + ui::mojom::DragEventSource source) override; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void UpdateDragImage(const gfx::ImageSkia& image, + const gfx::Vector2d& offset) override; + #endif diff --git a/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc b/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc new file mode 100644 index 000000000000..a3732d66f82b --- /dev/null +++ b/devel/electron36/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc @@ -0,0 +1,29 @@ +--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc +@@ -50,7 +50,7 @@ + #include "ui/wm/core/window_util.h" + #include "ui/wm/public/window_move_client.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone_linux.h" + #endif + +@@ -353,7 +353,7 @@ DesktopWindowTreeHostPlatform::CreateDragDropClient() + DesktopWindowTreeHostPlatform::CreateDragDropClient() { + ui::WmDragHandler* drag_handler = ui::GetWmDragHandler(*(platform_window())); + std::unique_ptr<DesktopDragDropClientOzone> drag_drop_client = +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::make_unique<DesktopDragDropClientOzoneLinux>(window(), drag_handler); + #else + std::make_unique<DesktopDragDropClientOzone>(window(), drag_handler); +@@ -1185,7 +1185,7 @@ bool DesktopWindowTreeHostPlatform::RotateFocusForWidg + // DesktopWindowTreeHost: + + // Linux subclasses this host and adds some Linux specific bits. +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // static + DesktopWindowTreeHost* DesktopWindowTreeHost::Create( + internal::NativeWidgetDelegate* native_widget_delegate, diff --git a/devel/electron36/files/patch-ui_views_widget_root__view.cc b/devel/electron36/files/patch-ui_views_widget_root__view.cc new file mode 100644 index 000000000000..6dac5391bd9b --- /dev/null +++ b/devel/electron36/files/patch-ui_views_widget_root__view.cc @@ -0,0 +1,11 @@ +--- ui/views/widget/root_view.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/views/widget/root_view.cc +@@ -169,7 +169,7 @@ class AnnounceTextView : public View { + #if BUILDFLAG(IS_CHROMEOS) + // On ChromeOS, kAlert role can invoke an unnecessary event on reparenting. + GetViewAccessibility().SetRole(ax::mojom::Role::kStaticText); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/40658933): Use live regions (do not use alerts). + // May require setting kLiveStatus, kContainerLiveStatus to "polite". + GetViewAccessibility().SetRole(ax::mojom::Role::kAlert); diff --git a/devel/electron36/files/patch-ui_views_widget_widget.cc b/devel/electron36/files/patch-ui_views_widget_widget.cc new file mode 100644 index 000000000000..b083de34a03e --- /dev/null +++ b/devel/electron36/files/patch-ui_views_widget_widget.cc @@ -0,0 +1,20 @@ +--- ui/views/widget/widget.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/widget/widget.cc +@@ -63,7 +63,7 @@ + #include "ui/views/window/custom_frame_view.h" + #include "ui/views/window/dialog_delegate.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/linux/linux_ui.h" + #endif + +@@ -2453,7 +2453,7 @@ const ui::NativeTheme* Widget::GetNativeTheme() const + return parent_->GetNativeTheme(); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (auto* linux_ui_theme = + ui::LinuxUiTheme::GetForWindow(GetNativeWindow())) { + return linux_ui_theme->GetNativeTheme(); diff --git a/devel/electron36/files/patch-ui_views_widget_widget.h b/devel/electron36/files/patch-ui_views_widget_widget.h new file mode 100644 index 000000000000..0f7bf3d06e56 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_widget_widget.h @@ -0,0 +1,11 @@ +--- ui/views/widget/widget.h.orig 2025-05-11 11:50:46 UTC ++++ ui/views/widget/widget.h +@@ -487,7 +487,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWid + bool force_system_menu_for_frameless = false; + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Only used by X11, for root level windows. Specifies the res_name and + // res_class fields, respectively, of the WM_CLASS window property. Controls + // window grouping and desktop file matching in Linux window managers. diff --git a/devel/electron36/files/patch-ui_views_window_custom__frame__view.cc b/devel/electron36/files/patch-ui_views_window_custom__frame__view.cc new file mode 100644 index 000000000000..23f1b22ce014 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_window_custom__frame__view.cc @@ -0,0 +1,11 @@ +--- ui/views/window/custom_frame_view.cc.orig 2025-03-24 20:50:14 UTC ++++ ui/views/window/custom_frame_view.cc +@@ -279,7 +279,7 @@ int CustomFrameView::CaptionButtonY() const { + int CustomFrameView::CaptionButtonY() const { + // Maximized buttons start at window top so that even if their images aren't + // drawn flush with the screen edge, they still obey Fitts' Law. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return FrameBorderThickness(); + #else + return frame_->IsMaximized() ? FrameBorderThickness() : kFrameShadowThickness; diff --git a/devel/electron36/files/patch-ui_views_window_dialog__delegate.cc b/devel/electron36/files/patch-ui_views_window_dialog__delegate.cc new file mode 100644 index 000000000000..10842ad6278a --- /dev/null +++ b/devel/electron36/files/patch-ui_views_window_dialog__delegate.cc @@ -0,0 +1,11 @@ +--- ui/views/window/dialog_delegate.cc.orig 2025-04-22 20:15:27 UTC ++++ ui/views/window/dialog_delegate.cc +@@ -106,7 +106,7 @@ bool DialogDelegate::CanSupportCustomFrame(gfx::Native + + // static + bool DialogDelegate::CanSupportCustomFrame(gfx::NativeView parent) { +-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA) + // The new style doesn't support unparented dialogs on Linux desktop. + return parent != nullptr; + #else diff --git a/devel/electron36/files/patch-ui_views_window_frame__background.cc b/devel/electron36/files/patch-ui_views_window_frame__background.cc new file mode 100644 index 000000000000..9766c76c32d0 --- /dev/null +++ b/devel/electron36/files/patch-ui_views_window_frame__background.cc @@ -0,0 +1,11 @@ +--- ui/views/window/frame_background.cc.orig 2023-10-19 19:59:22 UTC ++++ ui/views/window/frame_background.cc +@@ -110,7 +110,7 @@ void FrameBackground::PaintMaximized(gfx::Canvas* canv + int width) const { + // Fill the top with the frame color first so we have a constant background + // for areas not covered by the theme image. +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(ENABLE_DESKTOP_AURA) + ui::NativeTheme::FrameTopAreaExtraParams frame_top_area; + frame_top_area.use_custom_frame = use_custom_frame_; diff --git a/devel/electron36/files/patch-v8_BUILD.gn b/devel/electron36/files/patch-v8_BUILD.gn new file mode 100644 index 000000000000..0981361a6ff4 --- /dev/null +++ b/devel/electron36/files/patch-v8_BUILD.gn @@ -0,0 +1,65 @@ +--- v8/BUILD.gn.orig 2025-04-22 20:15:27 UTC ++++ v8/BUILD.gn +@@ -1000,6 +1000,8 @@ external_v8_defines = [ + "V8_TARGET_OS_MACOS", + "V8_TARGET_OS_WIN", + "V8_TARGET_OS_CHROMEOS", ++ "V8_TARGET_OS_OPENBSD", ++ "V8_TARGET_OS_FREEBSD", + ] + + enabled_external_v8_defines = [ +@@ -1079,6 +1081,12 @@ if (target_os == "android") { + } else if (target_os == "chromeos") { + enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ] + enabled_external_v8_defines += [ "V8_TARGET_OS_CHROMEOS" ] ++} else if (target_os == "openbsd") { ++ enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ] ++ enabled_external_v8_defines += [ "V8_TARGET_OS_OPENBSD" ] ++} else if (target_os == "freebsd") { ++ enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ] ++ enabled_external_v8_defines += [ "V8_TARGET_OS_FREEBSD" ] + } + + disabled_external_v8_defines = external_v8_defines - enabled_external_v8_defines +@@ -2537,6 +2545,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", ++ ] ++ } + } + + if (v8_enable_turboshaft_csa) { +@@ -6631,7 +6645,7 @@ v8_component("v8_libbase") { + } + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-linux.cc", +@@ -6642,6 +6656,18 @@ v8_component("v8_libbase") { + "dl", + "rt", + ] ++ } else if (is_openbsd) { ++ sources += [ ++ "src/base/debug/stack_trace_posix.cc", ++ "src/base/platform/platform-openbsd.cc", ++ ] ++ libs = [ "execinfo" ] ++ } else if (is_freebsd) { ++ sources += [ ++ "src/base/debug/stack_trace_posix.cc", ++ "src/base/platform/platform-freebsd.cc", ++ ] ++ libs = [ "execinfo" ] + } else if (current_os == "aix") { + sources += [ + "src/base/debug/stack_trace_posix.cc", diff --git a/devel/electron36/files/patch-v8_include_v8-internal.h b/devel/electron36/files/patch-v8_include_v8-internal.h new file mode 100644 index 000000000000..2b2470f5f30c --- /dev/null +++ b/devel/electron36/files/patch-v8_include_v8-internal.h @@ -0,0 +1,11 @@ +--- v8/include/v8-internal.h.orig 2025-03-24 20:50:14 UTC ++++ v8/include/v8-internal.h +@@ -232,7 +232,7 @@ using SandboxedPointer_t = Address; + #ifdef V8_ENABLE_SANDBOX + + // Size of the sandbox, excluding the guard regions surrounding it. +-#if defined(V8_TARGET_OS_ANDROID) ++#if (defined(V8_TARGET_OS_ANDROID) || defined(V8_TARGET_OS_OPENBSD)) + // On Android, most 64-bit devices seem to be configured with only 39 bits of + // virtual address space for userspace. As such, limit the sandbox to 128GB (a + // quarter of the total available address space). diff --git a/devel/electron36/files/patch-v8_include_v8config.h b/devel/electron36/files/patch-v8_include_v8config.h new file mode 100644 index 000000000000..85e4528649a3 --- /dev/null +++ b/devel/electron36/files/patch-v8_include_v8config.h @@ -0,0 +1,45 @@ +--- v8/include/v8config.h.orig 2025-04-22 20:15:27 UTC ++++ v8/include/v8config.h +@@ -201,6 +201,8 @@ path. Add it with -I<path> to the command line + && !defined(V8_TARGET_OS_FUCHSIA) \ + && !defined(V8_TARGET_OS_IOS) \ + && !defined(V8_TARGET_OS_LINUX) \ ++ && !defined(V8_TARGET_OS_OPENBSD) \ ++ && !defined(V8_TARGET_OS_FREEBSD) \ + && !defined(V8_TARGET_OS_MACOS) \ + && !defined(V8_TARGET_OS_WIN) \ + && !defined(V8_TARGET_OS_CHROMEOS) +@@ -213,6 +215,8 @@ path. Add it with -I<path> to the command line + || defined(V8_TARGET_OS_FUCHSIA) \ + || defined(V8_TARGET_OS_IOS) \ + || defined(V8_TARGET_OS_LINUX) \ ++ || defined(V8_TARGET_OS_OPENBSD) \ ++ || defined(V8_TARGET_OS_FREEBSD) \ + || defined(V8_TARGET_OS_MACOS) \ + || defined(V8_TARGET_OS_WIN) \ + || defined(V8_TARGET_OS_CHROMEOS) +@@ -236,6 +240,16 @@ path. Add it with -I<path> to the command line + # define V8_TARGET_OS_LINUX + #endif + ++#ifdef V8_OS_OPENBSD ++# define V8_TARGET_OS_OPENBSD ++# define V8_TARGET_OS_BSD ++#endif ++ ++#ifdef V8_OS_FREEBSD ++# define V8_TARGET_OS_OPENBSD ++# define V8_TARGET_OS_BSD ++#endif ++ + #ifdef V8_OS_MACOS + # define V8_TARGET_OS_MACOS + #endif +@@ -383,6 +397,7 @@ path. Add it with -I<path> to the command line + #if (defined(_M_X64) || defined(__x86_64__) /* x64 (everywhere) */ \ + || ((defined(__AARCH64EL__) || defined(_M_ARM64)) /* arm64, but ... */ \ + && !defined(_WIN32))) /* not on windows */ \ ++ && !defined(__OpenBSD__) /* not on OpenBSD */ \ + && !defined(COMPONENT_BUILD) /* no component build */\ + && __clang_major__ >= 17 /* clang >= 17 */ + # define V8_HAS_ATTRIBUTE_PRESERVE_MOST (__has_attribute(preserve_most)) diff --git a/devel/electron36/files/patch-v8_src_api_api.cc b/devel/electron36/files/patch-v8_src_api_api.cc new file mode 100644 index 000000000000..8d0959c25064 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_api_api.cc @@ -0,0 +1,20 @@ +--- v8/src/api/api.cc.orig 2025-05-11 11:50:46 UTC ++++ v8/src/api/api.cc +@@ -153,7 +153,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> + +@@ -6502,7 +6502,7 @@ bool v8::V8::Initialize(const int build_config) { + return true; + } + +-#if V8_OS_LINUX || V8_OS_DARWIN ++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD + bool TryHandleWebAssemblyTrapPosix(int sig_code, siginfo_t* info, + void* context) { + #if V8_ENABLE_WEBASSEMBLY && V8_TRAP_HANDLER_SUPPORTED diff --git a/devel/electron36/files/patch-v8_src_base_atomicops.h b/devel/electron36/files/patch-v8_src_base_atomicops.h new file mode 100644 index 000000000000..09d81e53e794 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_base_atomicops.h @@ -0,0 +1,24 @@ +--- v8/src/base/atomicops.h.orig 2023-10-19 20:00:30 UTC ++++ v8/src/base/atomicops.h +@@ -57,10 +57,10 @@ using Atomic64 = SbAtomic64; + using Atomic8 = char; + using Atomic16 = int16_t; + using Atomic32 = int32_t; +-#if defined(V8_HOST_ARCH_64_BIT) ++#if defined(V8_HOST_ARCH_64_BIT) || defined(V8_OS_OPENBSD) + // We need to be able to go between Atomic64 and AtomicWord implicitly. This + // means Atomic64 and AtomicWord should be the same type on 64-bit. +-#if defined(__ILP32__) ++#if defined(__ILP32__) && !defined(V8_OS_OPENBSD) + using Atomic64 = int64_t; + #else + using Atomic64 = intptr_t; +@@ -266,7 +266,7 @@ inline Atomic32 SeqCst_Load(volatile const Atomic32* p + std::memory_order_seq_cst); + } + +-#if defined(V8_HOST_ARCH_64_BIT) ++#if defined(V8_HOST_ARCH_64_BIT) || defined(V8_OS_OPENBSD) + + inline Atomic64 Relaxed_CompareAndSwap(volatile Atomic64* ptr, + Atomic64 old_value, Atomic64 new_value) { diff --git a/devel/electron36/files/patch-v8_src_base_platform_memory.h b/devel/electron36/files/patch-v8_src_base_platform_memory.h new file mode 100644 index 000000000000..d1815112f0cc --- /dev/null +++ b/devel/electron36/files/patch-v8_src_base_platform_memory.h @@ -0,0 +1,18 @@ +--- v8/src/base/platform/memory.h.orig 2024-10-16 21:34:43 UTC ++++ v8/src/base/platform/memory.h +@@ -21,13 +21,13 @@ + #include <malloc/malloc.h> + #elif V8_OS_OPENBSD + #include <sys/malloc.h> +-#elif V8_OS_ZOS ++#elif (V8_OS_ZOS || V8_OS_BSD) + #include <stdlib.h> + #else + #include <malloc.h> + #endif + +-#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_ZOS && !V8_OS_OPENBSD) || V8_OS_WIN ++#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_ZOS && !V8_OS_BSD) || V8_OS_WIN + #define V8_HAS_MALLOC_USABLE_SIZE 1 + #endif + diff --git a/devel/electron36/files/patch-v8_src_base_platform_platform-freebsd.cc b/devel/electron36/files/patch-v8_src_base_platform_platform-freebsd.cc new file mode 100644 index 000000000000..5f462761158a --- /dev/null +++ b/devel/electron36/files/patch-v8_src_base_platform_platform-freebsd.cc @@ -0,0 +1,32 @@ +--- v8/src/base/platform/platform-freebsd.cc.orig 2022-02-07 13:39:41 UTC ++++ v8/src/base/platform/platform-freebsd.cc +@@ -43,14 +43,10 @@ TimezoneCache* OS::CreateTimezoneCache() { + return new PosixDefaultTimezoneCache(); + } + +-static unsigned StringToLong(char* buffer) { +- return static_cast<unsigned>(strtol(buffer, nullptr, 16)); +-} +- + std::vector<OS::SharedLibraryAddress> OS::GetSharedLibraryAddresses() { + std::vector<SharedLibraryAddress> result; + int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, getpid()}; +- size_t miblen = sizeof(mib) / sizeof(mib[0]); ++ unsigned int miblen = sizeof(mib) / sizeof(mib[0]); + size_t buffer_size; + if (sysctl(mib, miblen, nullptr, &buffer_size, nullptr, 0) == 0) { + // Overallocate the buffer by 1/3 to account for concurrent +@@ -82,8 +78,13 @@ std::vector<OS::SharedLibraryAddress> OS::GetSharedLib + lib_name = std::string(path); + } + result.push_back(SharedLibraryAddress( ++#if defined(__i386__) || defined(OS_FREEBSD) ++ lib_name, static_cast<uintptr_t>(map->kve_start), ++ static_cast<uintptr_t>(map->kve_end))); ++#else + lib_name, reinterpret_cast<uintptr_t>(map->kve_start), + reinterpret_cast<uintptr_t>(map->kve_end))); ++#endif + } + + start += ssize; diff --git a/devel/electron36/files/patch-v8_src_base_platform_platform-openbsd.cc b/devel/electron36/files/patch-v8_src_base_platform_platform-openbsd.cc new file mode 100644 index 000000000000..6261e6d3dc65 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_base_platform_platform-openbsd.cc @@ -0,0 +1,28 @@ +--- v8/src/base/platform/platform-openbsd.cc.orig 2024-08-14 20:58:07 UTC ++++ v8/src/base/platform/platform-openbsd.cc +@@ -6,6 +6,7 @@ + // POSIX-compatible parts, the implementation is in platform-posix.cc. + + #include <pthread.h> ++#include <pthread_np.h> + #include <semaphore.h> + #include <signal.h> + #include <stdlib.h> +@@ -121,6 +122,17 @@ void OS::AdjustSchedulingParams() {} + } + + void OS::AdjustSchedulingParams() {} ++ ++// static ++Stack::StackSlot Stack::ObtainCurrentThreadStackStart() { ++ stack_t ss; ++ void *base; ++ if (pthread_stackseg_np(pthread_self(), &ss) != 0) ++ return nullptr; ++ ++ base = (void*)((size_t) ss.ss_sp - ss.ss_size); ++ return reinterpret_cast<uint8_t*>(base) + ss.ss_size; ++} + + std::optional<OS::MemoryRange> OS::GetFirstFreeMemoryRangeWithin( + OS::Address boundary_start, OS::Address boundary_end, size_t minimum_size, diff --git a/devel/electron36/files/patch-v8_src_base_platform_platform-posix.cc b/devel/electron36/files/patch-v8_src_base_platform_platform-posix.cc new file mode 100644 index 000000000000..ff18bd8878d4 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_base_platform_platform-posix.cc @@ -0,0 +1,53 @@ +--- v8/src/base/platform/platform-posix.cc.orig 2025-04-22 20:15:27 UTC ++++ v8/src/base/platform/platform-posix.cc +@@ -76,7 +76,7 @@ + #include <sys/syscall.h> + #endif + +-#if V8_OS_FREEBSD || V8_OS_DARWIN || V8_OS_OPENBSD || V8_OS_SOLARIS ++#if V8_OS_FREEBSD || V8_OS_DARWIN || V8_OS_BSD || V8_OS_SOLARIS + #define MAP_ANONYMOUS MAP_ANON + #endif + +@@ -315,8 +315,15 @@ void OS::SetRandomMmapSeed(int64_t seed) { + } + } + ++#if V8_OS_OPENBSD ++// Allow OpenBSD's mmap to select a random address on OpenBSD + // static + void* OS::GetRandomMmapAddr() { ++ return nullptr; ++} ++#else ++// static ++void* OS::GetRandomMmapAddr() { + uintptr_t raw_addr; + { + MutexGuard guard(rng_mutex.Pointer()); +@@ -413,6 +420,7 @@ void* OS::GetRandomMmapAddr() { + #endif + return reinterpret_cast<void*>(raw_addr); + } ++#endif + + // TODO(bbudge) Move Cygwin and Fuchsia stuff into platform-specific files. + #if !V8_OS_CYGWIN && !V8_OS_FUCHSIA +@@ -701,7 +709,7 @@ bool OS::HasLazyCommits() { + #if !V8_OS_ZOS + // static + bool OS::HasLazyCommits() { +-#if V8_OS_AIX || V8_OS_LINUX || V8_OS_DARWIN ++#if V8_OS_AIX || V8_OS_LINUX || V8_OS_DARWIN || V8_OS_BSD + return true; + #else + // TODO(bbudge) Return true for all POSIX platforms. +@@ -1346,7 +1354,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) + + namespace { + #if DEBUG diff --git a/devel/electron36/files/patch-v8_src_base_sys-info.cc b/devel/electron36/files/patch-v8_src_base_sys-info.cc new file mode 100644 index 000000000000..6838c6308c66 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_base_sys-info.cc @@ -0,0 +1,11 @@ +--- v8/src/base/sys-info.cc.orig 2024-10-16 21:34:43 UTC ++++ v8/src/base/sys-info.cc +@@ -36,7 +36,7 @@ int SysInfo::NumberOfProcessors() { + // static + int SysInfo::NumberOfProcessors() { + #if V8_OS_OPENBSD +- int mib[2] = {CTL_HW, HW_NCPU}; ++ int mib[2] = {CTL_HW, HW_NCPUONLINE}; + int ncpu = 0; + size_t len = sizeof(ncpu); + if (sysctl(mib, arraysize(mib), &ncpu, &len, nullptr, 0) != 0) { diff --git a/devel/electron36/files/patch-v8_src_diagnostics_perf-jit.cc b/devel/electron36/files/patch-v8_src_diagnostics_perf-jit.cc new file mode 100644 index 000000000000..8047bb29a79f --- /dev/null +++ b/devel/electron36/files/patch-v8_src_diagnostics_perf-jit.cc @@ -0,0 +1,11 @@ +--- v8/src/diagnostics/perf-jit.cc.orig 2025-05-10 23:04:03 UTC ++++ v8/src/diagnostics/perf-jit.cc +@@ -31,7 +31,7 @@ + #include "src/flags/flags.h" + + // Only compile the {PerfJitLogger} on Linux & Darwin. +-#if V8_OS_LINUX || V8_OS_DARWIN ++#if defined(V8_OS_LINUX) || defined(V8_OS_DARWIN) || defined(V8_OS_BSD) + + #include <fcntl.h> + #include <sys/mman.h> diff --git a/devel/electron36/files/patch-v8_src_diagnostics_perf-jit.h b/devel/electron36/files/patch-v8_src_diagnostics_perf-jit.h new file mode 100644 index 000000000000..4981acef4fc9 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_diagnostics_perf-jit.h @@ -0,0 +1,11 @@ +--- v8/src/diagnostics/perf-jit.h.orig 2025-05-10 23:04:03 UTC ++++ v8/src/diagnostics/perf-jit.h +@@ -31,7 +31,7 @@ + #include "include/v8config.h" + + // {PerfJitLogger} is only implemented on Linux & Darwin. +-#if V8_OS_LINUX || V8_OS_DARWIN ++#if defined(V8_OS_LINUX) || defined(V8_OS_DARWIN) || defined(V8_OS_BSD) + + #include "src/logging/log.h" + diff --git a/devel/electron36/files/patch-v8_src_execution_isolate.cc b/devel/electron36/files/patch-v8_src_execution_isolate.cc new file mode 100644 index 000000000000..7c4ca7097e78 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_execution_isolate.cc @@ -0,0 +1,27 @@ +--- v8/src/execution/isolate.cc.orig 2025-04-22 20:15:27 UTC ++++ v8/src/execution/isolate.cc +@@ -173,6 +173,10 @@ + #include "src/execution/simulator-base.h" + #endif + ++#if defined(V8_OS_OPENBSD) ++#include <sys/mman.h> ++#endif ++ + 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_[]; +@@ -5114,6 +5118,13 @@ void Isolate::InitializeDefaultEmbeddedBlob() { + uint32_t code_size = DefaultEmbeddedBlobCodeSize(); + const uint8_t* data = DefaultEmbeddedBlobData(); + uint32_t data_size = DefaultEmbeddedBlobDataSize(); ++ ++#if defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32) ++ if (code_size > 0) { ++ mprotect(reinterpret_cast<void *>(const_cast<uint8_t *>(code)), ++ code_size, PROT_READ | PROT_EXEC); ++ } ++#endif + + if (StickyEmbeddedBlobCode() != nullptr) { + base::MutexGuard guard(current_embedded_blob_refcount_mutex_.Pointer()); diff --git a/devel/electron36/files/patch-v8_src_flags_flags.cc b/devel/electron36/files/patch-v8_src_flags_flags.cc new file mode 100644 index 000000000000..1b7313ad936c --- /dev/null +++ b/devel/electron36/files/patch-v8_src_flags_flags.cc @@ -0,0 +1,24 @@ +--- v8/src/flags/flags.cc.orig 2025-03-24 20:50:14 UTC ++++ v8/src/flags/flags.cc +@@ -16,6 +16,10 @@ + #include <set> + #include <sstream> + ++#if V8_OS_OPENBSD ++#include <sys/mman.h> ++#endif ++ + #include "src/base/hashing.h" + #include "src/base/lazy-instance.h" + #include "src/base/platform/platform.h" +@@ -823,6 +827,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/devel/electron36/files/patch-v8_src_libsampler_sampler.cc b/devel/electron36/files/patch-v8_src_libsampler_sampler.cc new file mode 100644 index 000000000000..7723f9685800 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_libsampler_sampler.cc @@ -0,0 +1,19 @@ +--- v8/src/libsampler/sampler.cc.orig 2025-04-22 20:15:27 UTC ++++ v8/src/libsampler/sampler.cc +@@ -520,6 +520,16 @@ 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_HOST_ARCH_ARM64 ++#ifdef __CHERI_PURE_CAPABILITY__ ++ state->pc = reinterpret_cast<void*>(mcontext.mc_capregs.cap_elr); ++ state->sp = reinterpret_cast<void*>(mcontext.mc_capregs.cap_sp); ++ state->fp = reinterpret_cast<void*>(mcontext.mc_capregs.cap_x[29]); ++#else // !__CHERI_PURE_CAPABILITY__ ++ state->pc = reinterpret_cast<void*>(mcontext.mc_gpregs.gp_elr); ++ state->sp = reinterpret_cast<void*>(mcontext.mc_gpregs.gp_sp); ++ state->fp = reinterpret_cast<void*>(mcontext.mc_gpregs.gp_x[29]); ++#endif // __CHERI_PURE_CAPABILITY__ + #endif // V8_HOST_ARCH_* + #elif V8_OS_NETBSD + #if V8_HOST_ARCH_IA32 diff --git a/devel/electron36/files/patch-v8_src_sandbox_sandbox.cc b/devel/electron36/files/patch-v8_src_sandbox_sandbox.cc new file mode 100644 index 000000000000..a7d71942bdec --- /dev/null +++ b/devel/electron36/files/patch-v8_src_sandbox_sandbox.cc @@ -0,0 +1,11 @@ +--- v8/src/sandbox/sandbox.cc.orig 2025-03-24 20:50:14 UTC ++++ v8/src/sandbox/sandbox.cc +@@ -59,7 +59,7 @@ static Address DetermineAddressSpaceLimit() { + } + #endif // V8_TARGET_ARCH_X64 + +-#if defined(V8_TARGET_ARCH_ARM64) && defined(V8_TARGET_OS_ANDROID) ++#if defined(V8_TARGET_ARCH_ARM64) && (defined(V8_TARGET_OS_ANDROID) || defined(V8_TARGET_OS_OPENBSD)) + // On Arm64 Android assume a 40-bit virtual address space (39 bits for + // userspace and kernel each) as that appears to be the most common + // configuration and there seems to be no easy way to retrieve the actual diff --git a/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc b/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc new file mode 100644 index 000000000000..c5130b064320 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc @@ -0,0 +1,11 @@ +--- v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc.orig 2024-08-14 20:58:28 UTC ++++ v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc +@@ -148,6 +148,8 @@ EmbeddedTargetOs ToEmbeddedTargetOs(const char* s) { + return EmbeddedTargetOs::kStarboard; + } else if (string == "zos") { + return EmbeddedTargetOs::kZOS; ++ } else if (string == "openbsd") { ++ return EmbeddedTargetOs::kOpenBSD; + } else { + return EmbeddedTargetOs::kGeneric; + } diff --git a/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h b/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h new file mode 100644 index 000000000000..5967c700ee07 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h @@ -0,0 +1,10 @@ +--- v8/src/snapshot/embedded/platform-embedded-file-writer-base.h.orig 2024-10-16 21:35:05 UTC ++++ v8/src/snapshot/embedded/platform-embedded-file-writer-base.h +@@ -36,6 +36,7 @@ enum class EmbeddedTargetOs { + kWin, + kStarboard, + kZOS, ++ kOpenBSD, + kGeneric, // Everything not covered above falls in here. + }; + diff --git a/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc b/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc new file mode 100644 index 000000000000..a00ffd2f1359 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc @@ -0,0 +1,42 @@ +--- v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc.orig 2023-08-10 01:51:23 UTC ++++ v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc +@@ -9,6 +9,10 @@ + + #include "src/objects/instruction-stream.h" + ++#if V8_OS_OPENBSD ++#include <sys/param.h> ++#endif ++ + namespace v8 { + namespace internal { + +@@ -35,6 +39,10 @@ const char* DirectiveAsString(DataDirective directive) + void PlatformEmbeddedFileWriterGeneric::SectionText() { + if (target_os_ == EmbeddedTargetOs::kChromeOS) { + fprintf(fp_, ".section .text.hot.embedded\n"); ++#if !defined(V8_TARGET_ARCH_IA32) ++ } else if (target_os_ == EmbeddedTargetOs::kOpenBSD) { ++ fprintf(fp_, ".section .openbsd.mutable,\"a\"\n"); ++#endif + } else { + fprintf(fp_, ".section .text\n"); + } +@@ -66,6 +74,8 @@ void PlatformEmbeddedFileWriterGeneric::AlignToCodeAli + // On these architectures and platforms, we remap the builtins, so need these + // to be aligned on a page boundary. + fprintf(fp_, ".balign 4096\n"); ++#elif defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32) ++ fprintf(fp_, ".balign %d\n", PAGE_SIZE); + #elif V8_TARGET_ARCH_X64 + // On x64 use 64-bytes code alignment to allow 64-bytes loop header alignment. + static_assert(64 >= kCodeAlignment); +@@ -86,6 +96,8 @@ void PlatformEmbeddedFileWriterGeneric::AlignToPageSiz + (V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM64) + // Since the builtins are remapped, need to pad until the next page boundary. + fprintf(fp_, ".balign 4096\n"); ++#elif defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32) ++ fprintf(fp_, ".balign %d\n", PAGE_SIZE); + #endif + } + diff --git a/devel/electron36/files/patch-v8_src_trap-handler_handler-inside-posix.cc b/devel/electron36/files/patch-v8_src_trap-handler_handler-inside-posix.cc new file mode 100644 index 000000000000..667aa78a93b5 --- /dev/null +++ b/devel/electron36/files/patch-v8_src_trap-handler_handler-inside-posix.cc @@ -0,0 +1,26 @@ +--- v8/src/trap-handler/handler-inside-posix.cc.orig 2024-04-15 20:35:27 UTC ++++ v8/src/trap-handler/handler-inside-posix.cc +@@ -61,6 +61,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 ++#elif V8_OS_OPENBSD ++#define CONTEXT_REG(reg, REG) &uc->sc_##reg + #else + #error "Unsupported platform." + #endif +@@ -80,8 +82,12 @@ bool IsKernelGeneratedSignal(siginfo_t* info) { + // si_code at its default of 0 for signals that don’t originate in hardware. + // The other conditions are only relevant for Linux. + return info->si_code > 0 && info->si_code != SI_USER && +- info->si_code != SI_QUEUE && info->si_code != SI_TIMER && +- info->si_code != SI_ASYNCIO && info->si_code != SI_MESGQ; ++ info->si_code != SI_QUEUE && info->si_code != SI_TIMER ++#ifdef V8_OS_OPENBSD ++ ; ++#else ++ && info->si_code != SI_ASYNCIO && info->si_code != SI_MESGQ; ++#endif + } + + class UnmaskOobSignalScope { diff --git a/devel/electron36/files/patch-v8_src_trap-handler_handler-inside-posix.h b/devel/electron36/files/patch-v8_src_trap-handler_handler-inside-posix.h new file mode 100644 index 000000000000..df777a8a205b --- /dev/null +++ b/devel/electron36/files/patch-v8_src_trap-handler_handler-inside-posix.h @@ -0,0 +1,11 @@ +--- v8/src/trap-handler/handler-inside-posix.h.orig 2022-04-21 18:48:31 UTC ++++ v8/src/trap-handler/handler-inside-posix.h +@@ -13,7 +13,7 @@ namespace v8 { + namespace internal { + namespace trap_handler { + +-#if V8_OS_LINUX || V8_OS_FREEBSD ++#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_OPENBSD + constexpr int kOobSignal = SIGSEGV; + #elif V8_OS_DARWIN + constexpr int kOobSignal = SIGBUS; diff --git a/devel/electron36/files/patch-v8_src_trap-handler_trap-handler.h b/devel/electron36/files/patch-v8_src_trap-handler_trap-handler.h new file mode 100644 index 000000000000..1adb9013fdcc --- /dev/null +++ b/devel/electron36/files/patch-v8_src_trap-handler_trap-handler.h @@ -0,0 +1,11 @@ +--- v8/src/trap-handler/trap-handler.h.orig 2025-03-24 20:50:14 UTC ++++ v8/src/trap-handler/trap-handler.h +@@ -18,7 +18,7 @@ namespace v8::internal::trap_handler { + // X64 on Linux, Windows, MacOS, FreeBSD. + #if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 && \ + ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_DARWIN || \ +- V8_OS_FREEBSD) ++ V8_OS_FREEBSD || V8_OS_OPENBSD) + #define V8_TRAP_HANDLER_SUPPORTED true + // Arm64 (non-simulator) on Linux, Windows, MacOS. + #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && \ diff --git a/devel/electron36/files/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h b/devel/electron36/files/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h new file mode 100644 index 000000000000..1f88a682c85f --- /dev/null +++ b/devel/electron36/files/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h @@ -0,0 +1,128 @@ +--- v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h.orig 2025-04-22 20:15:27 UTC ++++ v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h +@@ -579,7 +579,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis + } + + void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr, +- Register offset_reg, uint32_t offset_imm, ++ Register offset_reg, uintptr_t offset_imm, + LoadType type, uint32_t* protected_load_pc, + bool /* is_load_mem */, bool /* i64_offset */, + bool needs_shift) { +@@ -659,7 +659,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist + } + + void LiftoffAssembler::Store(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister src, ++ uintptr_t offset_imm, LiftoffRegister src, + StoreType type, LiftoffRegList pinned, + uint32_t* protected_store_pc, + bool /* is_store_mem */, bool /* i64_offset */) { +@@ -738,7 +738,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, + } + + void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr, +- Register offset_reg, uint32_t offset_imm, ++ Register offset_reg, uintptr_t offset_imm, + LoadType type, LiftoffRegList /* pinned */, + bool /* i64_offset */) { + if (type.value() != LoadType::kI64Load) { +@@ -756,7 +756,7 @@ void LiftoffAssembler::AtomicStore(Register dst_addr, + } + + void LiftoffAssembler::AtomicStore(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister src, ++ uintptr_t offset_imm, LiftoffRegister src, + StoreType type, LiftoffRegList pinned, + bool /* i64_offset */) { + DCHECK_LE(offset_imm, std::numeric_limits<int32_t>::max()); +@@ -826,7 +826,7 @@ inline void AtomicAddOrSubOrExchange32(LiftoffAssemble + + inline void AtomicAddOrSubOrExchange32(LiftoffAssembler* lasm, Binop binop, + Register dst_addr, Register offset_reg, +- uint32_t offset_imm, ++ uintptr_t offset_imm, + LiftoffRegister value, + LiftoffRegister result, StoreType type) { + DCHECK_EQ(value, result); +@@ -894,7 +894,7 @@ inline void AtomicBinop32(LiftoffAssembler* lasm, Bino + } + + inline void AtomicBinop32(LiftoffAssembler* lasm, Binop op, Register dst_addr, +- Register offset_reg, uint32_t offset_imm, ++ Register offset_reg, uintptr_t offset_imm, + LiftoffRegister value, LiftoffRegister result, + StoreType type) { + DCHECK_EQ(value, result); +@@ -1009,7 +1009,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino + } + + inline void AtomicBinop64(LiftoffAssembler* lasm, Binop op, Register dst_addr, +- Register offset_reg, uint32_t offset_imm, ++ Register offset_reg, uintptr_t offset_imm, + 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 +@@ -1105,7 +1105,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re + } // namespace liftoff + + void LiftoffAssembler::AtomicAdd(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type, + bool /* i64_offset */) { + if (type.value() == StoreType::kI64Store) { +@@ -1119,7 +1119,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re + } + + void LiftoffAssembler::AtomicSub(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type, + bool /* i64_offset */) { + if (type.value() == StoreType::kI64Store) { +@@ -1132,7 +1132,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re + } + + void LiftoffAssembler::AtomicAnd(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type, + bool /* i64_offset */) { + if (type.value() == StoreType::kI64Store) { +@@ -1146,7 +1146,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg + } + + void LiftoffAssembler::AtomicOr(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type, + bool /* i64_offset */) { + if (type.value() == StoreType::kI64Store) { +@@ -1160,7 +1160,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re + } + + void LiftoffAssembler::AtomicXor(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type, + bool /* i64_offset */) { + if (type.value() == StoreType::kI64Store) { +@@ -1174,7 +1174,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add + } + + void LiftoffAssembler::AtomicExchange(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, ++ uintptr_t offset_imm, + LiftoffRegister value, + LiftoffRegister result, StoreType type, + bool /* i64_offset */) { +@@ -1189,7 +1189,7 @@ void LiftoffAssembler::AtomicCompareExchange( + } + + void LiftoffAssembler::AtomicCompareExchange( +- Register dst_addr, Register offset_reg, uint32_t offset_imm, ++ Register dst_addr, Register offset_reg, uintptr_t offset_imm, + LiftoffRegister expected, LiftoffRegister new_value, LiftoffRegister result, + StoreType type, bool /* i64_offset */) { + // We expect that the offset has already been added to {dst_addr}, and no diff --git a/devel/electron36/files/patch-v8_tools_run.py b/devel/electron36/files/patch-v8_tools_run.py new file mode 100644 index 000000000000..c9b15f1c1347 --- /dev/null +++ b/devel/electron36/files/patch-v8_tools_run.py @@ -0,0 +1,11 @@ +--- v8/tools/run.py.orig 2024-10-16 21:35:16 UTC ++++ v8/tools/run.py +@@ -21,7 +21,7 @@ if cmd and cmd[0] == '--redirect-stdout': + kwargs = dict(stdout=subprocess.PIPE) + cmd = cmd[2:] + +-process = subprocess.Popen(cmd, **kwargs) ++process = subprocess.Popen(cmd, env={"LD_LIBRARY_PATH":"${WRKSRC}/out/Release"}, **kwargs) + stdout, _ = process.communicate() + if stdout_file: + with stdout_file.open('w') as f: diff --git a/devel/electron36/files/yarn.lock b/devel/electron36/files/yarn.lock new file mode 100644 index 000000000000..cb940d319816 --- /dev/null +++ b/devel/electron36/files/yarn.lock @@ -0,0 +1,8078 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@azure/abort-controller@^1.0.0": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.0.4.tgz#fd3c4d46c8ed67aace42498c8e2270960250eafd" + integrity sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw== + dependencies: + tslib "^2.0.0" + +"@azure/abort-controller@^2.0.0", "@azure/abort-controller@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d" + integrity sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA== + dependencies: + tslib "^2.6.2" + +"@azure/core-asynciterator-polyfill@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz#0dd3849fb8d97f062a39db0e5cadc9ffaf861fec" + integrity sha512-3rkP4LnnlWawl0LZptJOdXNrT/fHp2eQMadoasa6afspXdpGrtPZuAQc2PD0cpgyuoXtUWyC3tv7xfntjGS5Dw== + +"@azure/core-auth@^1.4.0", "@azure/core-auth@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.8.0.tgz#281b4a6d3309c3e7b15bcd967f01d4c79ae4a1d6" + integrity sha512-YvFMowkXzLbXNM11yZtVLhUCmuG0ex7JKOH366ipjmHBhL3vpDcPAeWF+jf0X+jVXwFqo3UhsWUq4kH0ZPdu/g== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-util" "^1.1.0" + tslib "^2.6.2" + +"@azure/core-client@^1.3.0", "@azure/core-client@^1.6.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.9.2.tgz#6fc69cee2816883ab6c5cdd653ee4f2ff9774f74" + integrity sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.4.0" + "@azure/core-rest-pipeline" "^1.9.1" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.6.1" + "@azure/logger" "^1.0.0" + tslib "^2.6.2" + +"@azure/core-http-compat@^2.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@azure/core-http-compat/-/core-http-compat-2.1.2.tgz#d1585ada24ba750dc161d816169b33b35f762f0d" + integrity sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-client" "^1.3.0" + "@azure/core-rest-pipeline" "^1.3.0" + +"@azure/core-lro@^2.2.0": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.2.4.tgz#42fbf4ae98093c59005206a4437ddcd057c57ca1" + integrity sha512-e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-tracing" "1.0.0-preview.13" + "@azure/logger" "^1.0.0" + tslib "^2.2.0" + +"@azure/core-paging@^1.1.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.2.1.tgz#1b884f563b6e49971e9a922da3c7a20931867b54" + integrity sha512-UtH5iMlYsvg+nQYIl4UHlvvSrsBjOlRF4fs0j7mxd3rWdAStrKYrh2durOpHs5C9yZbVhsVDaisoyaf/lL1EVA== + dependencies: + "@azure/core-asynciterator-polyfill" "^1.0.0" + tslib "^2.2.0" + +"@azure/core-rest-pipeline@^1.10.1", "@azure/core-rest-pipeline@^1.3.0", "@azure/core-rest-pipeline@^1.9.1": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.17.0.tgz#55dafa1093553c549ed6d8dbca69aa505c7b3aa3" + integrity sha512-62Vv8nC+uPId3j86XJ0WI+sBf0jlqTqPUFCBNrGtlaUeQUIXWV/D8GE5A1d+Qx8H7OQojn2WguC8kChD6v0shA== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.8.0" + "@azure/core-tracing" "^1.0.1" + "@azure/core-util" "^1.9.0" + "@azure/logger" "^1.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + tslib "^2.6.2" + +"@azure/core-tracing@1.0.0-preview.13": + version "1.0.0-preview.13" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz#55883d40ae2042f6f1e12b17dd0c0d34c536d644" + integrity sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ== + dependencies: + "@opentelemetry/api" "^1.0.1" + tslib "^2.2.0" + +"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1", "@azure/core-tracing@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.1.2.tgz#065dab4e093fb61899988a1cdbc827d9ad90b4ee" + integrity sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA== + dependencies: + tslib "^2.6.2" + +"@azure/core-util@^1.1.0", "@azure/core-util@^1.6.1", "@azure/core-util@^1.9.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.10.0.tgz#cf3163382d40343972848c914869864df5d44bdb" + integrity sha512-dqLWQsh9Nro1YQU+405POVtXnwrIVqPyfUzc4zXCbThTg7+vNNaiMkwbX9AMXKyoFYFClxmB3s25ZFr3+jZkww== + dependencies: + "@azure/abort-controller" "^2.0.0" + tslib "^2.6.2" + +"@azure/core-xml@^1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@azure/core-xml/-/core-xml-1.4.3.tgz#a74f37a0e584fee7e9adae19f51016d4b59e9ca2" + integrity sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA== + dependencies: + fast-xml-parser "^4.3.2" + tslib "^2.6.2" + +"@azure/logger@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96" + integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g== + dependencies: + tslib "^2.2.0" + +"@azure/storage-blob@^12.25.0": + version "12.25.0" + resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.25.0.tgz#fa9a1d2456cdf6526450a8b73059d2f2e9b1ec76" + integrity sha512-oodouhA3nCCIh843tMMbxty3WqfNT+Vgzj3Xo5jqR9UPnzq3d7mzLjlHAYz7lW+b4km3SIgz+NAgztvhm7Z6kQ== + dependencies: + "@azure/abort-controller" "^2.1.2" + "@azure/core-auth" "^1.4.0" + "@azure/core-client" "^1.6.2" + "@azure/core-http-compat" "^2.0.0" + "@azure/core-lro" "^2.2.0" + "@azure/core-paging" "^1.1.1" + "@azure/core-rest-pipeline" "^1.10.1" + "@azure/core-tracing" "^1.1.2" + "@azure/core-util" "^1.6.1" + "@azure/core-xml" "^1.4.3" + "@azure/logger" "^1.0.0" + events "^3.0.0" + tslib "^2.2.0" + +"@babel/code-frame@^7.0.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/code-frame@^7.21.4": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.7.tgz#438f2c524071531d643c6f0188e1e28f130cebc7" + integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== + dependencies: + "@babel/highlight" "^7.25.7" + picocolors "^1.0.0" + +"@babel/helper-validator-identifier@^7.24.5": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-identifier@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" + integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/highlight@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.7.tgz#20383b5f442aa606e7b5e3043b0b1aafe9f37de5" + integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== + dependencies: + "@babel/helper-validator-identifier" "^7.25.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@dsanders11/vscode-markdown-languageservice@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@dsanders11/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.3.0.tgz#18a561711609651371961b66db4cb8473ab25564" + integrity sha512-aFNWtK23dNicyLczBwIKkGUSVuMoZMzUovlwqj/hVZ3zRIBlXWYunByDxI67Pf1maA0TbxPjVfRqBQFALWjVHg== + dependencies: + "@vscode/l10n" "^0.0.10" + picomatch "^2.3.1" + vscode-languageserver-textdocument "^1.0.5" + vscode-languageserver-types "^3.17.1" + vscode-uri "^3.0.3" + +"@electron/asar@^3.2.13": + version "3.2.13" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.13.tgz#56565ea423ead184465adfa72663b2c70d9835f2" + integrity sha512-pY5z2qQSwbFzJsBdgfJIzXf5ElHTVMutC2dxh0FD60njknMu3n1NnTABOcQwbb5/v5soqE79m9UjaJryBf3epg== + dependencies: + "@types/glob" "^7.1.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + +"@electron/docs-parser@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@electron/docs-parser/-/docs-parser-2.0.0.tgz#b82ff30c0df0be41f83622a0497b0f04f7297686" + integrity sha512-4yQELWBXQFdst9udJyL+ubqB9Ig61gvFpHG3V8uJzAILzMjAGCTCED60mL4MGRJ6vTGg9dkp/wcMVw1vd7bAig== + dependencies: + "@types/markdown-it" "^14.1.2" + chai "^5.1.1" + chalk "^5.3.0" + lodash.camelcase "^4.3.0" + markdown-it "^14.1.0" + ora "^8.1.0" + pretty-ms "^9.1.0" + +"@electron/fiddle-core@^1.3.4": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@electron/fiddle-core/-/fiddle-core-1.3.4.tgz#29141a97ed0ec7ed1a96ee8bdcaacb60e1a39622" + integrity sha512-jjkZ1TTuyui/ZsEbUbrTllL5SUe1wIt91WANQTpiAygThcceQKy1756PUwHSy0WRKFL0VIke+WU+ki01vEVpQg== + dependencies: + "@electron/get" "^2.0.0" + debug "^4.3.3" + env-paths "^2.2.1" + extract-zip "^2.0.1" + fs-extra "^10.0.0" + getos "^3.2.1" + node-fetch "^2.6.1" + rimraf "^4.4.1" + semver "^7.3.5" + simple-git "^3.5.0" + +"@electron/get@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.2.tgz#ae2a967b22075e9c25aaf00d5941cd79c21efd7e" + integrity sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^11.8.5" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" + +"@electron/github-app-auth@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@electron/github-app-auth/-/github-app-auth-2.2.1.tgz#ee43ee7495717ff1a459b60f486384a3f584e955" + integrity sha512-CRacgsDnkWIbvdo80XTq5+//CnVzWl1Hd5rVaj7MEZ1B44NwGbh2G9KxzWToOaCCCa09mYIKkHHqLAKUXEc7NA== + dependencies: + "@octokit/auth-app" "^4.0.13" + "@octokit/rest" "^19.0.11" + +"@electron/lint-roller@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@electron/lint-roller/-/lint-roller-2.4.0.tgz#67ab5911400ec1e6a842153acc59613a9522d233" + integrity sha512-U1FDBpNxVbu9TlL8O0F9mmaEimINtdr6RB6gGNVm1aBqOvLs579w0k4aqyYqDIV20HHcuWh/287sll6ou8Pfcw== + dependencies: + "@dsanders11/vscode-markdown-languageservice" "^0.3.0" + ajv "^8.16.0" + balanced-match "^2.0.0" + glob "^8.1.0" + hast-util-from-html "^2.0.1" + markdown-it "^13.0.1" + markdownlint-cli "^0.40.0" + mdast-util-from-markdown "^1.3.0" + minimist "^1.2.8" + rimraf "^4.4.1" + standard "^17.0.0" + unist-util-visit "^4.1.2" + vscode-languageserver "^8.1.0" + vscode-languageserver-textdocument "^1.0.8" + vscode-uri "^3.0.7" + yaml "^2.4.5" + +"@electron/typescript-definitions@^9.1.2": + version "9.1.2" + resolved "https://registry.yarnpkg.com/@electron/typescript-definitions/-/typescript-definitions-9.1.2.tgz#a9b7bfaed60a528cf1f0ce4a30f01360a27839f2" + integrity sha512-BLxuLnvGqKUdesLXh9jB6Ll5Q4Vnb0NqJxuNY+GBz5Q8icxpW2EcHO7gIBpgX+t6sHdfRn9r6Wpwh/CKXoaJng== + dependencies: + "@types/node" "^20.11.25" + chalk "^5.3.0" + debug "^4.3.7" + lodash "^4.17.11" + ora "^8.1.0" + pretty-ms "^9.1.0" + +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.11.0", "@eslint-community/regexpp@^4.6.1": + version "4.11.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.1.tgz#a547badfc719eb3e5f4b556325e542fbe9d7a18f" + integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.1": + version "8.57.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" + integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== + +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== + dependencies: + "@humanwhocodes/object-schema" "^2.0.3" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@kwsites/file-exists@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99" + integrity sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw== + dependencies: + debug "^4.1.1" + +"@kwsites/promise-deferred@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919" + integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/config@^8.0.0": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-8.3.4.tgz#e2712c2215bb2659f39718b23bf7401f9ac1da59" + integrity sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw== + dependencies: + "@npmcli/map-workspaces" "^3.0.2" + "@npmcli/package-json" "^5.1.1" + ci-info "^4.0.0" + ini "^4.1.2" + nopt "^7.2.1" + proc-log "^4.2.0" + semver "^7.3.5" + walk-up-path "^3.0.1" + +"@npmcli/git@^5.0.0": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.8.tgz#8ba3ff8724192d9ccb2735a2aa5380a992c5d3d1" + integrity sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ== + dependencies: + "@npmcli/promise-spawn" "^7.0.0" + ini "^4.1.3" + lru-cache "^10.0.1" + npm-pick-manifest "^9.0.0" + proc-log "^4.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^4.0.0" + +"@npmcli/map-workspaces@^3.0.2": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6" + integrity sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA== + dependencies: + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" + +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== + +"@npmcli/package-json@^5.1.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.2.1.tgz#df69477b1023b81ff8503f2b9db4db4faea567ed" + integrity sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ== + dependencies: + "@npmcli/git" "^5.0.0" + glob "^10.2.2" + hosted-git-info "^7.0.0" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + proc-log "^4.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz#1d53d34ffeb5d151bfa8ec661bcccda8bbdfd532" + integrity sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ== + dependencies: + which "^4.0.0" + +"@octokit/auth-app@^4.0.13": + version "4.0.13" + resolved "https://registry.yarnpkg.com/@octokit/auth-app/-/auth-app-4.0.13.tgz#53323bee6bfefbb73ea544dd8e6a0144550e13e3" + integrity sha512-NBQkmR/Zsc+8fWcVIFrwDgNXS7f4XDrkd9LHdi9DPQw1NdGHLviLzRO2ZBwTtepnwHXW5VTrVU9eFGijMUqllg== + dependencies: + "@octokit/auth-oauth-app" "^5.0.0" + "@octokit/auth-oauth-user" "^2.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + deprecation "^2.3.1" + lru-cache "^9.0.0" + universal-github-app-jwt "^1.1.1" + universal-user-agent "^6.0.0" + +"@octokit/auth-oauth-app@^5.0.0": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.5.tgz#be2a93d72835133b4866ac4721aa628849475525" + integrity sha512-UPX1su6XpseaeLVCi78s9droxpGtBWIgz9XhXAx9VXabksoF0MyI5vaa1zo1njyYt6VaAjFisC2A2Wchcu2WmQ== + dependencies: + "@octokit/auth-oauth-device" "^4.0.0" + "@octokit/auth-oauth-user" "^2.0.0" + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + "@types/btoa-lite" "^1.0.0" + btoa-lite "^1.0.0" + universal-user-agent "^6.0.0" + +"@octokit/auth-oauth-device@^4.0.0": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.3.tgz#00ce77233517e0d7d39e42a02652f64337d9df81" + integrity sha512-KPTx5nMntKjNZzzltO3X4T68v22rd7Cp/TcLJXQE2U8aXPcZ9LFuww9q9Q5WUNSu3jwi3lRwzfkPguRfz1R8Vg== + dependencies: + "@octokit/oauth-methods" "^2.0.0" + "@octokit/request" "^6.0.0" + "@octokit/types" "^8.0.0" + universal-user-agent "^6.0.0" + +"@octokit/auth-oauth-user@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-user/-/auth-oauth-user-2.0.4.tgz#88f060ec678d7d493695af8d827e115dd064e212" + integrity sha512-HrbDzTPqz6GcGSOUkR+wSeF3vEqsb9NMsmPja/qqqdiGmlk/Czkxctc3KeWYogHonp62Ml4kjz2VxKawrFsadQ== + dependencies: + "@octokit/auth-oauth-device" "^4.0.0" + "@octokit/oauth-methods" "^2.0.0" + "@octokit/request" "^6.0.0" + "@octokit/types" "^8.0.0" + btoa-lite "^1.0.0" + universal-user-agent "^6.0.0" + +"@octokit/auth-token@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.3.tgz#ce7e48a3166731f26068d7a7a7996b5da58cbe0c" + integrity sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA== + dependencies: + "@octokit/types" "^9.0.0" + +"@octokit/auth-token@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" + integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== + +"@octokit/core@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.1.tgz#fee6341ad0ce60c29cc455e056cd5b500410a588" + integrity sha512-tEDxFx8E38zF3gT7sSMDrT1tGumDgsw5yPG6BBh/X+5ClIQfMH/Yqocxz1PnHx6CHyF6pxmovUTOfZAUvQ0Lvw== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/core@^5.0.2": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.2.0.tgz#ddbeaefc6b44a39834e1bb2e58a49a117672a7ea" + integrity sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg== + dependencies: + "@octokit/auth-token" "^4.0.0" + "@octokit/graphql" "^7.1.0" + "@octokit/request" "^8.3.1" + "@octokit/request-error" "^5.1.0" + "@octokit/types" "^13.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^7.0.0": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.3.tgz#0b96035673a9e3bedf8bab8f7335de424a2147ed" + integrity sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw== + dependencies: + "@octokit/types" "^8.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^9.0.1": + version "9.0.5" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.5.tgz#e6c0ee684e307614c02fc6ac12274c50da465c44" + integrity sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw== + dependencies: + "@octokit/types" "^13.1.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^5.0.0": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.5.tgz#a4cb3ea73f83b861893a6370ee82abb36e81afd2" + integrity sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ== + dependencies: + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.0.tgz#9bc1c5de92f026648131f04101cab949eeffe4e0" + integrity sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ== + dependencies: + "@octokit/request" "^8.3.0" + "@octokit/types" "^13.0.0" + universal-user-agent "^6.0.0" + +"@octokit/oauth-authorization-url@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz#029626ce87f3b31addb98cd0d2355c2381a1c5a1" + integrity sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg== + +"@octokit/oauth-methods@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@octokit/oauth-methods/-/oauth-methods-2.0.4.tgz#6abd9593ca7f91fe5068375a363bd70abd5516dc" + integrity sha512-RDSa6XL+5waUVrYSmOlYROtPq0+cfwppP4VaQY/iIei3xlFb0expH6YNsxNrZktcLhJWSpm9uzeom+dQrXlS3A== + dependencies: + "@octokit/oauth-authorization-url" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^8.0.0" + btoa-lite "^1.0.0" + +"@octokit/openapi-types@^14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-14.0.0.tgz#949c5019028c93f189abbc2fb42f333290f7134a" + integrity sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw== + +"@octokit/openapi-types@^16.0.0": + version "16.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-16.0.0.tgz#d92838a6cd9fb4639ca875ddb3437f1045cc625e" + integrity sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA== + +"@octokit/openapi-types@^17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-17.2.0.tgz#f1800b5f9652b8e1b85cc6dfb1e0dc888810bdb5" + integrity sha512-MazrFNx4plbLsGl+LFesMo96eIXkFgEtaKbnNpdh4aQ0VM10aoylFsTYP1AEjkeoRNZiiPe3T6Gl2Hr8dJWdlQ== + +"@octokit/openapi-types@^22.2.0": + version "22.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-22.2.0.tgz#75aa7dcd440821d99def6a60b5f014207ae4968e" + integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg== + +"@octokit/plugin-paginate-rest@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz#fe92d04b49f134165d6fbb716e765c2f313ad364" + integrity sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g== + dependencies: + "@octokit/types" "^13.5.0" + +"@octokit/plugin-paginate-rest@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" + integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== + dependencies: + "@octokit/tsconfig" "^1.0.2" + "@octokit/types" "^9.2.3" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-request-log@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz#98a3ca96e0b107380664708111864cb96551f958" + integrity sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA== + +"@octokit/plugin-rest-endpoint-methods@13.2.2": + version "13.2.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz#af8e5dd2cddfea576f92ffaf9cb84659f302a638" + integrity sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA== + dependencies: + "@octokit/types" "^13.5.0" + +"@octokit/plugin-rest-endpoint-methods@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.2.tgz#b77a8844601d3a394a02200cddb077f3ab841f38" + integrity sha512-R0oJ7j6f/AdqPLtB9qRXLO+wjI9pctUn8Ka8UGfGaFCcCv3Otx14CshQ89K4E88pmyYZS8p0rNTiprML/81jig== + dependencies: + "@octokit/types" "^9.2.3" + deprecation "^2.3.1" + +"@octokit/request-error@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.2.tgz#f74c0f163d19463b87528efe877216c41d6deb0a" + integrity sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg== + dependencies: + "@octokit/types" "^8.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request-error@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.0.tgz#ee4138538d08c81a60be3f320cd71063064a3b30" + integrity sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q== + dependencies: + "@octokit/types" "^13.1.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^6.0.0": + version "6.2.4" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.4.tgz#b00a7185865c72bdd432e63168b1e900953ded0c" + integrity sha512-at92SYQstwh7HH6+Kf3bFMnHrle7aIrC0r5rTP+Bb30118B6j1vI2/M4walh6qcQgfuLIKs8NUO5CytHTnUI3A== + dependencies: + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/request@^8.3.0", "@octokit/request@^8.3.1": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.4.0.tgz#7f4b7b1daa3d1f48c0977ad8fffa2c18adef8974" + integrity sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw== + dependencies: + "@octokit/endpoint" "^9.0.1" + "@octokit/request-error" "^5.1.0" + "@octokit/types" "^13.1.0" + universal-user-agent "^6.0.0" + +"@octokit/rest@^19.0.11": + version "19.0.11" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.11.tgz#2ae01634fed4bd1fca5b642767205ed3fd36177c" + integrity sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw== + dependencies: + "@octokit/core" "^4.2.1" + "@octokit/plugin-paginate-rest" "^6.1.2" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^7.1.2" + +"@octokit/rest@^20.0.2": + version "20.1.1" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.1.1.tgz#ec775864f53fb42037a954b9a40d4f5275b3dc95" + integrity sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw== + dependencies: + "@octokit/core" "^5.0.2" + "@octokit/plugin-paginate-rest" "11.3.1" + "@octokit/plugin-request-log" "^4.0.0" + "@octokit/plugin-rest-endpoint-methods" "13.2.2" + +"@octokit/tsconfig@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" + integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== + +"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.5.0": + version "13.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.5.0.tgz#4796e56b7b267ebc7c921dcec262b3d5bfb18883" + integrity sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ== + dependencies: + "@octokit/openapi-types" "^22.2.0" + +"@octokit/types@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.0.0.tgz#93f0b865786c4153f0f6924da067fe0bb7426a9f" + integrity sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg== + dependencies: + "@octokit/openapi-types" "^14.0.0" + +"@octokit/types@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.0.0.tgz#6050db04ddf4188ec92d60e4da1a2ce0633ff635" + integrity sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw== + dependencies: + "@octokit/openapi-types" "^16.0.0" + +"@octokit/types@^9.2.3": + version "9.2.3" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.2.3.tgz#d0af522f394d74b585cefb7efd6197ca44d183a9" + integrity sha512-MMeLdHyFIALioycq+LFcA71v0S2xpQUX2cw6pPbHQjaibcHYwLnmK/kMZaWuGfGfjBJZ3wRUq+dOaWsvrPJVvA== + dependencies: + "@octokit/openapi-types" "^17.2.0" + +"@opentelemetry/api@^1.0.1": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" + integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@primer/octicons@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@primer/octicons/-/octicons-10.0.0.tgz#81e94ed32545dfd3472c8625a5b345f3ea4c153d" + integrity sha512-iuQubq62zXZjPmaqrsfsCZUqIJgZhmA6W0tKzIKGRbkoLnff4TFFCL87hfIRATZ5qZPM4m8ioT8/bXI7WVa9WQ== + dependencies: + object-assign "^4.1.1" + +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sindresorhus/merge-streams@^2.1.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958" + integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@types/btoa-lite@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/btoa-lite/-/btoa-lite-1.0.0.tgz#e190a5a548e0b348adb0df9ac7fa5f1151c7cca4" + integrity sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg== + +"@types/cacheable-request@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" + integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/concat-stream@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-2.0.3.tgz#1f5c2ad26525716c181191f7ed53408f78eb758e" + integrity sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ== + dependencies: + "@types/node" "*" + +"@types/debug@^4.0.0": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + +"@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/glob@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/hast@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/is-empty@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.0.tgz#16bc578060c9b0b6953339eea906c255a375bf86" + integrity sha512-brJKf2boFhUxTDxlpI7cstwiUtA2ovm38UzFTi9aZI6//ARncaV+Q5ALjCaJqXaMtdZk/oPTJnSutugsZR6h8A== + +"@types/json-buffer@~3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" + integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== + +"@types/json-schema@^7.0.8": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/jsonwebtoken@^9.0.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz#29b1369c4774200d6d6f63135bf3d1ba3ef997a4" + integrity sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw== + dependencies: + "@types/node" "*" + +"@types/keyv@*": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/linkify-it@^5": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" + integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== + +"@types/markdown-it@^14.1.2": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" + integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== + dependencies: + "@types/linkify-it" "^5" + "@types/mdurl" "^2" + +"@types/mdast@^3.0.0": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.7.tgz#cba63d0cc11eb1605cea5c0ad76e02684394166b" + integrity sha512-YwR7OK8aPmaBvMMUi+pZXBNoW2unbVbfok4YRqGMJBe1dpDlzpRkJrYEYmvjxgs5JhuQmKfDexrN98u941Zasg== + dependencies: + "@types/unist" "*" + +"@types/mdast@^4.0.0": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/mdurl@^2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" + integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/minimist@^1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node@*": + version "12.6.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.1.tgz#d5544f6de0aae03eefbb63d5120f6c8be0691946" + integrity sha512-rp7La3m845mSESCgsJePNL/JQyhkOJA6G4vcwvVgkDAwHhGdq5GCumxmPjEk1MZf+8p5ZQAUE7tqgQRQTXN7uQ== + +"@types/node@^20.0.0": + version "20.16.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.12.tgz#61cc9be049584b472fa31e465aa0ab3c090dac56" + integrity sha512-LfPFB0zOeCeCNQV3i+67rcoVvoN5n0NVuR2vLG0O5ySQMgchuZlC4lgz546ZOJyDtj5KIgOxy+lacOimfqZAIA== + dependencies: + undici-types "~6.19.2" + +"@types/node@^20.11.25": + version "20.16.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.9.tgz#1217c6cc77c4f3aaf4a6c76fb56b790e81e48120" + integrity sha512-rkvIVJxsOfBejxK7I0FO5sa2WxFmJCzoDwcd88+fq/CUfynNywTo/1/T6hyFz22CyztsnLS9nVlHOnTI36RH5w== + dependencies: + undici-types "~6.19.2" + +"@types/node@^22.7.7": + version "22.7.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.7.tgz#6cd9541c3dccb4f7e8b141b491443f4a1570e307" + integrity sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q== + dependencies: + undici-types "~6.19.2" + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/semver@^7.5.8": + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + +"@types/stream-chain@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stream-chain/-/stream-chain-2.0.0.tgz#aed7fc21ac3686bc721aebbbd971f5a857e567e4" + integrity sha512-O3IRJcZi4YddlS8jgasH87l+rdNmad9uPAMmMZCfRVhumbWMX6lkBWnIqr9kokO5sx8LHp8peQ1ELhMZHbR0Gg== + dependencies: + "@types/node" "*" + +"@types/stream-json@^1.7.7": + version "1.7.7" + resolved "https://registry.yarnpkg.com/@types/stream-json/-/stream-json-1.7.7.tgz#8660101e15ee52e9a2370727334269ad7ec6a759" + integrity sha512-hHG7cLQ09H/m9i0jzL6UJAeLLxIWej90ECn0svO4T8J0nGcl89xZDQ2ujT4WKlvg0GWkcxJbjIDzW/v7BYUM6Q== + dependencies: + "@types/node" "*" + "@types/stream-chain" "*" + +"@types/supports-color@^8.0.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.1.tgz#1b44b1b096479273adf7f93c75fc4ecc40a61ee4" + integrity sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw== + +"@types/temp@^0.9.4": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@types/temp/-/temp-0.9.4.tgz#69bd4b0e8fc4d54db06bd1b613c19292d333350b" + integrity sha512-+VfWIwrlept2VBTj7Y2wQnI/Xfscy1u8Pyj/puYwss6V1IblXn1x7S0S9eFh6KyBolgLCm+rUFzhFAbdkR691g== + dependencies: + "@types/node" "*" + +"@types/text-table@^0.2.0": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@types/text-table/-/text-table-0.2.2.tgz#774c90cfcfbc8b4b0ebb00fecbe861dc8b1e8e26" + integrity sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg== + +"@types/unist@*", "@types/unist@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + +"@types/unist@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + +"@types/unist@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20" + integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== + +"@types/webpack-env@^1.18.5": + version "1.18.5" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.18.5.tgz#eccda0b04fe024bed505881e2e532f9c119169bf" + integrity sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA== + +"@types/webpack@^5.28.5": + version "5.28.5" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.5.tgz#0e9d9a15efa09bbda2cef41356ca4ac2031ea9a2" + integrity sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.7.0.tgz#d0070f206daad26253bf00ca5b80f9b54f9e2dd0" + integrity sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.7.0" + "@typescript-eslint/type-utils" "8.7.0" + "@typescript-eslint/utils" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@^8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.7.0.tgz#a567b0890d13db72c7348e1d88442ea8ab4e9173" + integrity sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ== + dependencies: + "@typescript-eslint/scope-manager" "8.7.0" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/typescript-estree" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.7.0.tgz#90ee7bf9bc982b9260b93347c01a8bc2b595e0b8" + integrity sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg== + dependencies: + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" + +"@typescript-eslint/type-utils@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.7.0.tgz#d56b104183bdcffcc434a23d1ce26cde5e42df93" + integrity sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ== + dependencies: + "@typescript-eslint/typescript-estree" "8.7.0" + "@typescript-eslint/utils" "8.7.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" + +"@typescript-eslint/types@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.7.0.tgz#21d987201c07b69ce7ddc03451d7196e5445ad19" + integrity sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w== + +"@typescript-eslint/typescript-estree@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.7.0.tgz#6c7db6baa4380b937fa81466c546d052f362d0e8" + integrity sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg== + dependencies: + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/utils@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.7.0.tgz#cef3f70708b5b5fd7ed8672fc14714472bd8a011" + integrity sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.7.0" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/typescript-estree" "8.7.0" + +"@typescript-eslint/visitor-keys@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.7.0.tgz#5e46f1777f9d69360a883c1a56ac3c511c9659a8" + integrity sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ== + dependencies: + "@typescript-eslint/types" "8.7.0" + eslint-visitor-keys "^3.4.3" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vscode/l10n@^0.0.10": + version "0.0.10" + resolved "https://registry.yarnpkg.com/@vscode/l10n/-/l10n-0.0.10.tgz#9c513107c690c0dd16e3ec61e453743de15ebdb0" + integrity sha512-E1OCmDcDWa0Ya7vtSjp/XfHFGqYJfh+YPC1RkATU71fTac+j1JjCcB3qwSzmlKAighx2WxhLlfhS0RwAN++PFQ== + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== + +"@webpack-cli/info@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== + +"@webpack-cli/serve@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.16.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz#2fb624fe0e84bccab00afee3d0006ed310f22f09" + integrity sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-includes@^3.1.5, array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.findlastindex@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +bail@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.1.tgz#d676736373a374058a935aec81b94c12ba815771" + integrity sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +balanced-match@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" + integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +boolean@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.21.10, browserslist@^4.23.3: + version "4.23.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== + dependencies: + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA== + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-from@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +builtins@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +caniuse-lite@^1.0.30001646: + version "1.0.30001659" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001659.tgz#f370c311ffbc19c4965d8ec0064a3625c8aaa7af" + integrity sha512-Qxxyfv3RdHAfJcXelgf0hU4DFUVXBGTjqrBUZLUh8AtlGnsDo+CnncYtTd95+ZKfnANUOzxyIQCuU/UeBZBYoA== + +chai@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.1.tgz#f035d9792a22b481ead1c65908d14bb62ec1c82c" + integrity sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA== + dependencies: + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" + +chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.0.0, chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +character-entities-legacy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz#57f4d00974c696e8f74e9f493e7fcb75b44d7ee7" + integrity sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA== + +character-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.0.tgz#508355fcc8c73893e0909efc1a44d28da2b6fdf3" + integrity sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA== + +character-reference-invalid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz#a0bdeb89c051fe7ed5d3158b2f06af06984f2813" + integrity sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g== + +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== + +check-for-leaks@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/check-for-leaks/-/check-for-leaks-1.2.1.tgz#4ac108ee3f8e6b99f5ad36f6b98cba1d7f4816d0" + integrity sha512-9OdOSRZY6N0w5JCdJpqsC5MkD6EPGYpHmhtf4l5nl3DRETDZshP6C1EGN/vVhHDTY6AsOK3NhdFfrMe3NWZl7g== + dependencies: + anymatch "^3.0.2" + minimist "^1.2.0" + parse-gitignore "^0.4.0" + walk-sync "^0.3.2" + +chokidar@^3.0.0: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" + integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== + +clean-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + integrity sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== + dependencies: + escape-string-regexp "^1.0.5" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== + dependencies: + restore-cursor "^5.0.0" + +cli-spinners@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@2.1.0, cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +co@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" + integrity sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.14: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^5.0.0, commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@~12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" + integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== + +compress-brotli@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" + integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== + dependencies: + "@types/json-buffer" "~3.0.0" + json-buffer "~3.0.1" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +core-js-compat@^3.37.0: + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" + integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== + dependencies: + browserslist "^4.23.3" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + +debug@^3.1.0, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dugite@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/dugite/-/dugite-2.7.1.tgz#277275fd490bddf20180e124d119f84f708dfb32" + integrity sha512-X7v7JngMG6RGHKCKKF0fdqYC9Xcw0CDes43an6dQW2N2dYNd/OOLq3BFszCOyOObgKnrmNVvyggk3O4WGJMpcA== + dependencies: + progress "^2.0.3" + tar "^6.1.11" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +electron-to-chromium@^1.5.4: + version "1.5.18" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.18.tgz#5fe62b9d21efbcfa26571066502d94f3ed97e495" + integrity sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ== + +emoji-regex@^10.2.1, emoji-regex@^10.3.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +enhanced-resolve@^5.17.1: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +ensure-posix-path@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce" + integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw== + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +entities@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + +env-paths@^2.2.0, env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +errno@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1, error-ex@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.5.4" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" + integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +escalade@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-compat-utils@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz#7fc92b776d185a70c4070d03fd26fde3d59652e4" + integrity sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q== + dependencies: + semver "^7.5.4" + +eslint-config-standard-jsx@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz#70852d395731a96704a592be5b0bfaccfeded239" + integrity sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ== + +eslint-config-standard@17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" + integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== + +eslint-config-standard@^17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" + integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== + +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.7.4: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-module-utils@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz#b99b211ca4318243f09661fae088f373ad5243c4" + integrity sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ== + dependencies: + debug "^3.2.7" + +eslint-plugin-es-x@^7.5.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz#a207aa08da37a7923f2a9599e6d3eb73f3f92b74" + integrity sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ== + dependencies: + "@eslint-community/eslint-utils" "^4.1.2" + "@eslint-community/regexpp" "^4.11.0" + eslint-compat-utils "^0.5.1" + +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-es@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" + integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-import@^2.26.0: + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" + has "^1.0.3" + is-core-module "^2.11.0" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-import@^2.30.0: + version "2.30.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449" + integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw== + dependencies: + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.9.0" + hasown "^2.0.2" + is-core-module "^2.15.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-mocha@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz#0aca8d709e7cddef566e0dc252f6b02e307a2b7e" + integrity sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw== + dependencies: + eslint-utils "^3.0.0" + globals "^13.24.0" + rambda "^7.4.0" + +eslint-plugin-n@^15.1.0: + version "15.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz#e29221d8f5174f84d18f2eb94765f2eeea033b90" + integrity sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== + dependencies: + builtins "^5.0.1" + eslint-plugin-es "^4.1.0" + eslint-utils "^3.0.0" + ignore "^5.1.1" + is-core-module "^2.11.0" + minimatch "^3.1.2" + resolve "^1.22.1" + semver "^7.3.8" + +eslint-plugin-n@^16.6.2: + version "16.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz#6a60a1a376870064c906742272074d5d0b412b0b" + integrity sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + builtins "^5.0.1" + eslint-plugin-es-x "^7.5.0" + get-tsconfig "^4.7.0" + globals "^13.24.0" + ignore "^5.2.4" + is-builtin-module "^3.2.1" + is-core-module "^2.12.1" + minimatch "^3.1.2" + resolve "^1.22.2" + semver "^7.5.3" + +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-promise@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" + integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== + +eslint-plugin-promise@^6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz#acd3fd7d55cead7a10f92cf698f36c0aafcd717a" + integrity sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ== + +eslint-plugin-react@^7.28.0: + version "7.32.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== + dependencies: + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.4" + semver "^6.3.0" + string.prototype.matchall "^4.0.8" + +eslint-plugin-standard@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz#c43f6925d669f177db46f095ea30be95476b1ee4" + integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg== + +eslint-plugin-unicorn@^55.0.0: + version "55.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-55.0.0.tgz#e2aeb397914799895702480970e7d148df5bcc7b" + integrity sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA== + dependencies: + "@babel/helper-validator-identifier" "^7.24.5" + "@eslint-community/eslint-utils" "^4.4.0" + ci-info "^4.0.0" + clean-regexp "^1.0.0" + core-js-compat "^3.37.0" + esquery "^1.5.0" + globals "^15.7.0" + indent-string "^4.0.0" + is-builtin-module "^3.2.1" + jsesc "^3.0.2" + pluralize "^8.0.0" + read-pkg-up "^7.0.1" + regexp-tree "^0.1.27" + regjsparser "^0.10.0" + semver "^7.6.1" + strip-indent "^3.0.0" + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.13.0, eslint@^8.57.1: + version "8.57.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" + integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.1" + "@humanwhocodes/config-array" "^0.13.0" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +events-to-array@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" + integrity sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y= + +events@^3.0.0, events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" + integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + +fast-xml-parser@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz#2882b7d01a6825dfdf909638f2de0256351def37" + integrity sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg== + dependencies: + strnum "^1.0.5" + +fastest-levenshtein@^1.0.12: + version "1.0.14" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz#9054384e4b7a78c88d01a4432dc18871af0ac859" + integrity sha512-tFfWHjnuUfKE186Tfgr+jtaFc0mZTApEgKDOeyN+FwOqRkO/zK/3h1AiRd8u8CY53owL3CUmGr/oI9p/RdyLTA== + +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + dependencies: + reusify "^1.0.4" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +folder-hash@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/folder-hash/-/folder-hash-2.1.2.tgz#7109f9cd0cbca271936d1b5544b156d6571e6cfd" + integrity sha512-PmMwEZyNN96EMshf7sek4OIB7ADNsHOJ7VIw7pO0PBI0BNfEsi7U8U56TBjjqqwQ0WuBv8se0HEfmbw5b/Rk+w== + dependencies: + debug "^3.1.0" + graceful-fs "~4.1.11" + minimatch "~3.0.4" + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + +get-func-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" + integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-stdin@~9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +get-tsconfig@^4.7.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471" + integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== + dependencies: + resolve-pkg-maps "^1.0.0" + +getos@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== + dependencies: + async "^3.2.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^10.0.0, glob@^10.2.2: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +glob@^9.2.0: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + +glob@~10.3.12: + version "10.3.12" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.6" + minimatch "^9.0.1" + minipass "^7.0.4" + path-scurry "^1.10.2" + +global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + dependencies: + boolean "^3.0.1" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globals@^13.24.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globals@^15.7.0: + version "15.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.9.0.tgz#e9de01771091ffbc37db5714dab484f9f69ff399" + integrity sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA== + +globalthis@^1.0.1, globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.1.tgz#a1b44841aa7f4c6d8af2bc39951109d77301959b" + integrity sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ== + dependencies: + "@sindresorhus/merge-streams" "^2.1.0" + fast-glob "^3.3.2" + ignore "^5.2.4" + path-type "^5.0.0" + slash "^5.1.0" + unicorn-magic "^0.1.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^11.8.5: + version "11.8.5" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" + integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graceful-fs@~4.1.11: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-flag@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-5.0.1.tgz#5483db2ae02a472d1d0691462fc587d1843cd940" + integrity sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hast-util-from-html@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-html/-/hast-util-from-html-2.0.1.tgz#9cd38ee81bf40b2607368b92a04b0905fa987488" + integrity sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g== + dependencies: + "@types/hast" "^3.0.0" + devlop "^1.1.0" + hast-util-from-parse5 "^8.0.0" + parse5 "^7.0.0" + vfile "^6.0.0" + vfile-message "^4.0.0" + +hast-util-from-parse5@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz#654a5676a41211e14ee80d1b1758c399a0327651" + integrity sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + hastscript "^8.0.0" + property-information "^6.0.0" + vfile "^6.0.0" + vfile-location "^5.0.0" + web-namespaces "^2.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hastscript@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-8.0.0.tgz#4ef795ec8dee867101b9f23cc830d4baf4fd781a" + integrity sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17" + integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w== + dependencies: + lru-cache "^10.0.1" + +http-cache-semantics@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@^7.0.0: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + dependencies: + agent-base "^7.0.2" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +husky@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" + integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.0.0, ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4, ignore@~5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +ignore@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +import-meta-resolve@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" + integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^4.1.2, ini@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795" + integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== + +ini@~4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.2.tgz#7f646dbd9caea595e61f88ef60bfff8b01f8130a" + integrity sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw== + +internal-slot@^1.0.3, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +is-alphabetical@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.0.tgz#ef6e2caea57c63450fffc7abb6cbdafc5eb96e96" + integrity sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w== + +is-alphanumerical@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz#0fbfeb6a72d21d91143b3d182bf6cf5909ee66f6" + integrity sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== + dependencies: + hasown "^2.0.2" + +is-core-module@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-decimal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.0.tgz#db1140337809fd043a056ae40a9bd1cdc563034c" + integrity sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw== + +is-empty@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" + integrity sha1-3pu1snhzigWgsJpX4ftNSjQan2s= + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz#8e1ec9f48fe3eabd90161109856a23e0907a65d5" + integrity sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug== + +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" + integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-unicode-supported@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + +is-unicode-supported@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz#09f0ab0de6d3744d48d265ebb98f65d11f2a9b3a" + integrity sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +jackspeak@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.2.7: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1, json-buffer@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da" + integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.1, json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.0.0, json5@^2.1.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@3.2.1, jsonc-parser@~3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" + integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonpointer@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +jsonwebtoken@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" + integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw== + dependencies: + jws "^3.2.2" + lodash "^4.17.21" + ms "^2.1.1" + semver "^7.3.8" + +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + dependencies: + array-includes "^3.1.5" + object.assign "^4.1.3" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keyv@^4.0.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.1.tgz#7970672f137d987945821b1a07b524ce5a4edd27" + integrity sha512-nwP7AQOxFzELXsNq3zCx/oh81zu4DHWwCE6W9RaeHb7OHO0JpmKS8n801ovVQC7PTsZDWtPA5j1QY+/WWtARYg== + dependencies: + compress-brotli "^1.3.8" + json-buffer "3.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +lines-and-columns@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== + +linkify-it@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" + integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== + dependencies: + uc.micro "^1.0.1" + +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + +lint-staged@^10.2.11: + version "10.2.11" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.11.tgz#713c80877f2dc8b609b05bc59020234e766c9720" + integrity sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA== + dependencies: + chalk "^4.0.0" + cli-truncate "2.1.0" + commander "^5.1.0" + cosmiconfig "^6.0.0" + debug "^4.1.1" + dedent "^0.7.0" + enquirer "^2.3.5" + execa "^4.0.1" + listr2 "^2.1.0" + log-symbols "^4.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" + +listr2@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.2.0.tgz#cb88631258abc578c7fb64e590fe5742f28e4aac" + integrity sha512-Q8qbd7rgmEwDo1nSyHaWQeztfGsdL6rb4uh7BA+Q80AZiDET5rVntiU1+13mu2ZTDVaBVbvAD1Db11rnu3l9sg== + dependencies: + chalk "^4.0.0" + cli-truncate "^2.1.0" + figures "^3.2.0" + indent-string "^4.0.0" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.5.5" + through "^2.3.8" + +load-json-file@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + +load-plugin@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-6.0.3.tgz#b0eb8ea2361744f0e54850ccbc4c8a2d94ffabe3" + integrity sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w== + dependencies: + "@npmcli/config" "^8.0.0" + import-meta-resolve "^4.0.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^1.0.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-symbols@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-6.0.0.tgz#bb95e5f05322651cac30c0feb6404f9f2a8a9439" + integrity sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw== + dependencies: + chalk "^5.3.0" + is-unicode-supported "^1.3.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +longest-streak@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.0.tgz#f127e2bded83caa6a35ac5f7a2f2b2f94b36f3dc" + integrity sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw== + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loupe@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.1.tgz#71d038d59007d890e3247c5db97c1ec5a92edc54" + integrity sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw== + dependencies: + get-func-name "^2.0.1" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^10.0.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-cache@^9.0.0, lru-cache@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" + integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== + +make-error@^1.1.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +markdown-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" + integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== + +markdown-it@14.1.0, markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + +markdown-it@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430" + integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q== + dependencies: + argparse "^2.0.1" + entities "~3.0.1" + linkify-it "^4.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdownlint-cli2-formatter-default@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.4.tgz#81e26b0a50409c0357c6f0d38d8246946b236fab" + integrity sha512-xm2rM0E+sWgjpPn1EesPXx5hIyrN2ddUnUwnbCsD/ONxYtw3PX6LydvdH6dciWAoFDpwzbHM1TO7uHfcMd6IYg== + +markdownlint-cli2@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/markdownlint-cli2/-/markdownlint-cli2-0.13.0.tgz#691cab01994295b4b8c87aa0485c0b1e0f792289" + integrity sha512-Pg4nF7HlopU97ZXtrcVISWp3bdsuc5M0zXyLp2/sJv2zEMlInrau0ZKK482fQURzVezJzWBpNmu4u6vGAhij+g== + dependencies: + globby "14.0.1" + js-yaml "4.1.0" + jsonc-parser "3.2.1" + markdownlint "0.34.0" + markdownlint-cli2-formatter-default "0.0.4" + micromatch "4.0.5" + +markdownlint-cli@^0.40.0: + version "0.40.0" + resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.40.0.tgz#57678cabd543c654d2ea88f752e9ac058b31c207" + integrity sha512-JXhI3dRQcaqwiFYpPz6VJ7aKYheD53GmTz9y4D/d0F1MbZDGOp9pqKlbOfUX/pHP/iAoeiE4wYRmk8/kjLakxA== + dependencies: + commander "~12.0.0" + get-stdin "~9.0.0" + glob "~10.3.12" + ignore "~5.3.1" + js-yaml "^4.1.0" + jsonc-parser "~3.2.1" + jsonpointer "5.0.1" + markdownlint "~0.34.0" + minimatch "~9.0.4" + run-con "~1.3.2" + toml "~3.0.0" + +markdownlint-micromark@0.1.9: + version "0.1.9" + resolved "https://registry.yarnpkg.com/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz#4876996b60d4dceb3a02f4eee2d3a366eb9569fa" + integrity sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA== + +markdownlint@0.34.0, markdownlint@~0.34.0: + version "0.34.0" + resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.34.0.tgz#bbc2047c952d1644269009a69ba227ed597b23fa" + integrity sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw== + dependencies: + markdown-it "14.1.0" + markdownlint-micromark "0.1.9" + +matcher-collection@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.1.2.tgz#1076f506f10ca85897b53d14ef54f90a5c426838" + integrity sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g== + dependencies: + minimatch "^3.0.2" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +mdast-comment-marker@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.1.tgz#9c9c18e1ed57feafc1965d92b028f37c3c8da70d" + integrity sha512-TWZDaUtPLwKX1pzDIY48MkSUQRDwX/HqbTB4m3iYdL/zosi/Z6Xqfdv0C0hNVKvzrPjZENrpWDt4p4odeVO0Iw== + +mdast-util-from-markdown@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz#0214124154f26154a2b3f9d401155509be45e894" + integrity sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-from-markdown@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz#32a6e8f512b416e1f51eb817fc64bd867ebcd9cc" + integrity sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-heading-style@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-1.0.5.tgz#81b2e60d76754198687db0e8f044e42376db0426" + integrity sha512-8zQkb3IUwiwOdUw6jIhnwM6DPyib+mgzQuHAe7j2Hy1rIarU4VUxe472bp9oktqULW3xqZE+Kz6OD4Gi7IA3vw== + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz#9813f1d6e0cdaac7c244ec8c6dabfdb2102ea2b4" + integrity sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.6.tgz#7d85421021343b33de1552fc71cb8e5b4ae7536d" + integrity sha512-868pp48gUPmZIhfKrLbaDneuzGiw3OTDjHc5M1kAepR2CWBJ+HpEsm252K4aXdiP5coVZaJPOqGtVU6Po8xnXg== + +mdast-util-to-string@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" + integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + +memory-fs@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromark-core-commonmark@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.0.tgz#b767fa7687c205c224175bf067796360a3830350" + integrity sha512-y9g7zymcKRBHM/aNBekstvs/Grpf+y4OEBULUTYvGZcusnp+JeOxmilJY4GMpo2/xY7iHQL9fjz5pD9pSAud9A== + dependencies: + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + parse-entities "^3.0.0" + +micromark-core-commonmark@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz#9a45510557d068605c6e9a80f282b2bb8581e43d" + integrity sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" + integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz#857c94debd2c873cba34e0445ab26b74f6a6ec07" + integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz#b316ec479b474232973ff13b49b576f84a6f2cbb" + integrity sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz#17c5c2e66ce39ad6f4fc4cbf40d972f9096f726a" + integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-space@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" + integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz#5e7afd5929c23b96566d0e1ae018ae4fcf81d030" + integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz#708f7a8044f34a898c0efdb4f55e4da66b537273" + integrity sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz#726140fc77892af524705d689e1cf06c8a83ea95" + integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" + integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz#9e92eb0f5468083381f923d9653632b3cfb5f763" + integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" + integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" + integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" + integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz#e51f4db85fb203a79dbfef23fd41b2f03dc2ef89" + integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" + integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-classify-character@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz#8c7537c20d0750b12df31f86e976d1d951165f34" + integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" + integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz#75d6ab65c58b7403616db8d6b31315013bfb7ee5" + integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" + integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz#2698bbb38f2a9ba6310e359f99fcb2b35a0d2bd5" + integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" + integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz#7dfa3a63c45aecaa17824e656bcdb01f9737154a" + integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-encode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz#c409ecf751a28aa9564b599db35640fccec4c068" + integrity sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg== + +micromark-util-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" + integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== + +micromark-util-html-tag-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" + integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== + +micromark-util-html-tag-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz#ae34b01cbe063363847670284c6255bb12138ec4" + integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== + +micromark-util-normalize-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" + integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz#91f9a4e65fe66cc80c53b35b0254ad67aa431d8b" + integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" + integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-resolve-all@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz#189656e7e1a53d0c86a38a652b284a252389f364" + integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" + integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" + integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz#6f006fa719af92776c75a264daaede0fb3943c6a" + integrity sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-subtokenize@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz#76129c49ac65da6e479c09d0ec4b5f29ec6eace5" + integrity sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz#91cdbcc9b2a827c0129a177d36241bcd3ccaa34d" + integrity sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ== + +micromark-util-symbol@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" + integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== + +micromark-util-types@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.0.tgz#0ebdfaea3fa7c15fc82b1e06ea1ef0152d0fb2f0" + integrity sha512-psf1WAaP1B77WpW4mBGDkTr+3RsPuDAgsvlP47GJzbH1jmjH8xjOx7Z6kp84L8oqHmy5pYO3Ev46odosZV+3AA== + +micromark-util-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" + integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== + +micromark@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.3.tgz#4c9f76fce8ba68eddf8730bb4fee2041d699d5b7" + integrity sha512-fWuHx+JKV4zA8WfCFor2DWP9XmsZkIiyWRGofr7P7IGfpRIlb7/C5wwusGsNyr1D8HI5arghZDG1Ikc0FBwS5Q== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + parse-entities "^3.0.0" + +micromark@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.0.tgz#84746a249ebd904d9658cfabc1e8e5f32cbc6249" + integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromatch@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.27: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" + integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0, minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.1, minimatch@~9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimatch@~3.0.4: + version "3.0.8" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.0.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.0: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" + integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: + version "7.1.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.0.tgz#b545f84af94e567386770159302ca113469c80b8" + integrity sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig== + +minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nan@nodejs/nan#e14bdcd1f72d62bca1d541b66da43130384ec213: + version "2.18.0" + resolved "https://codeload.github.com/nodejs/nan/tar.gz/e14bdcd1f72d62bca1d541b66da43130384ec213" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-fetch@^2.6.1: + version "2.6.8" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" + integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +nopt@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" + integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== + dependencies: + abbrev "^2.0.0" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz#a7bc22167fe24025412bcff0a9651eb768b03506" + integrity sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g== + dependencies: + hosted-git-info "^7.0.0" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-install-checks@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@^11.0.0: + version "11.0.3" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz#dae0c21199a99feca39ee4bfb074df3adac87e2d" + integrity sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^4.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-pick-manifest@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz#83562afde52b0b07cb6244361788d319ce7e8636" + integrity sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +null-loader@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.1.tgz#8e63bd3a2dd3c64236a4679428632edd0a6dbc6a" + integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +ora@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-8.1.0.tgz#c3db2f9f83a2bec9e8ab71fe3b9ae234d65ca3a8" + integrity sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ== + dependencies: + chalk "^5.3.0" + cli-cursor "^5.0.0" + cli-spinners "^2.9.2" + is-interactive "^2.0.0" + is-unicode-supported "^2.0.0" + log-symbols "^6.0.0" + stdin-discarder "^0.2.2" + string-width "^7.2.0" + strip-ansi "^7.1.0" + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-limit@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + dependencies: + p-try "^2.0.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-3.0.0.tgz#9ed6d6569b6cfc95ade058d683ddef239dad60dc" + integrity sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ== + dependencies: + character-entities "^2.0.0" + character-entities-legacy "^2.0.0" + character-reference-invalid "^2.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-gitignore@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/parse-gitignore/-/parse-gitignore-0.4.0.tgz#abf702e4b900524fff7902b683862857b63f93fe" + integrity sha1-q/cC5LkAUk//eQK2g4YoV7Y/k/4= + dependencies: + array-unique "^0.3.2" + is-glob "^3.1.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + +parse-json@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-7.1.1.tgz#68f7e6f0edf88c54ab14c00eb700b753b14e2120" + integrity sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw== + dependencies: + "@babel/code-frame" "^7.21.4" + error-ex "^1.3.2" + json-parse-even-better-errors "^3.0.0" + lines-and-columns "^2.0.3" + type-fest "^3.8.0" + +parse-ms@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4" + integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== + +parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6, path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-scurry@^1.6.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" + integrity sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg== + dependencies: + lru-cache "^9.1.1" + minipass "^5.0.0 || ^6.0.2" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picocolors@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picocolors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== + +picomatch@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== + +picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pkg-conf@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" + integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== + dependencies: + find-up "^3.0.0" + load-json-file "^5.2.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +pre-flight@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pre-flight/-/pre-flight-2.0.0.tgz#5e7c09aa49dbaeb28b21cc5c7d49b0ad1ee63a78" + integrity sha512-uqrCBHAzVogOyI/79jsxbveioqA9GUK5MBbrwifEHlCFhi3BkEkDYxFEzNxxfkUBl43Gnqkniw1ZKGaTf/YvAA== + dependencies: + chalk "^5.3.0" + semver "^7.6.3" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +pretty-ms@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-9.1.0.tgz#0ad44de6086454f48a168e5abb3c26f8db1b3253" + integrity sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw== + dependencies: + parse-ms "^4.0.0" + +proc-log@^4.0.0, proc-log@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" + integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10, process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@^6.12.3: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +rambda@^7.4.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.5.0.tgz#1865044c59bc0b16f63026c6e5a97e4b1bbe98fe" + integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +read-package-json-fast@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^2, readable-stream@^2.0.1, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.2: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +regexp-tree@^0.1.27: + version "0.1.27" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" + integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== + +regexp.prototype.flags@^1.4.3: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" + integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + +regjsparser@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.10.0.tgz#b1ed26051736b436f22fdec1c8f72635f9f44892" + integrity sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA== + dependencies: + jsesc "~0.5.0" + +remark-cli@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-12.0.1.tgz#991ede01adfdf0471177c381168105da4b93f99a" + integrity sha512-2NAEOACoTgo+e+YAaCTODqbrWyhMVmlUyjxNCkTrDRHHQvH6+NbrnqVvQaLH/Q8Ket3v90A43dgAJmXv8y5Tkw== + dependencies: + import-meta-resolve "^4.0.0" + markdown-extensions "^2.0.0" + remark "^15.0.0" + unified-args "^11.0.0" + +remark-lint-blockquote-indentation@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-2.0.1.tgz#27347959acf42a6c3e401488d8210e973576b254" + integrity sha512-uJ9az/Ms9AapnkWpLSCJfawBfnBI2Tn1yUsPNqIFv6YM98ymetItUMyP6ng9NFPqDvTQBbiarulkgoEo0wcafQ== + dependencies: + mdast-util-to-string "^1.0.2" + pluralize "^8.0.0" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-code-block-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-2.0.1.tgz#448b0f2660acfcdfff2138d125ff5b1c1279c0cb" + integrity sha512-eRhmnColmSxJhO61GHZkvO67SpHDshVxs2j3+Zoc5Y1a4zQT2133ZAij04XKaBFfsVLjhbY/+YOWxgvtjx2nmA== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-definition-case@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-2.0.1.tgz#10340eb2f87acff41140d52ad7e5b40b47e6690a" + integrity sha512-M+XlThtQwEJLQnQb5Gi6xZdkw92rGp7m2ux58WMw/Qlcg02WgHR/O0OcHPe5VO5hMJrtI+cGG5T0svsCgRZd3w== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-definition-spacing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-2.0.1.tgz#97f01bf9bf77a7bdf8013b124b7157dd90b07c64" + integrity sha512-xK9DOQO5MudITD189VyUiMHBIKltW1oc55L7Fti3i9DedXoBG7Phm+V9Mm7IdWzCVkquZVgVk63xQdqzSQRrSQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-emphasis-marker@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-2.0.1.tgz#1d5ca2070d4798d16c23120726158157796dc317" + integrity sha512-7mpbAUrSnHiWRyGkbXRL5kfSKY9Cs8cdob7Fw+Z02/pufXMF4yRWaegJ5NTUu1RE+SKlF44wtWWjvcIoyY6/aw== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-fenced-code-flag@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-2.0.1.tgz#2cb3ddb1157082c45760c7d01ca08e13376aaf62" + integrity sha512-+COnWHlS/h02FMxoZWxNlZW3Y8M0cQQpmx3aNCbG7xkyMyCKsMLg9EmRvYHHIbxQCuF3JT0WWx5AySqlc7d+NA== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-fenced-code-marker@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-2.0.1.tgz#7bbeb0fb45b0818a3c8a2d232cf0c723ade58ecf" + integrity sha512-lujpjm04enn3ma6lITlttadld6eQ1OWAEcT3qZzvFHp+zPraC0yr0eXlvtDN/0UH8mrln/QmGiZp3i8IdbucZg== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-file-extension@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-1.0.3.tgz#a7fc78fbf041e513c618b2cca0f2160ee37daa13" + integrity sha512-P5gzsxKmuAVPN7Kq1W0f8Ss0cFKfu+OlezYJWXf+5qOa+9Y5GqHEUOobPnsmNFZrVMiM7JoqJN2C9ZjrUx3N6Q== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-final-definition@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-2.1.0.tgz#b6e654c01ebcb1afc936d7b9cd74db8ec273e0bb" + integrity sha512-83K7n2icOHPfBzbR5Mr1o7cu8gOjD8FwJkFx/ly+rW+8SHfjCj4D3WOFGQ1xVdmHjfomBDXXDSNo2oiacADVXQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-hard-break-spaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-2.0.1.tgz#2149b55cda17604562d040c525a2a0d26aeb0f0f" + integrity sha512-Qfn/BMQFamHhtbfLrL8Co/dbYJFLRL4PGVXZ5wumkUO5f9FkZC2RsV+MD9lisvGTkJK0ZEJrVVeaPbUIFM0OAw== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-heading-increment@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-2.0.1.tgz#b578f251508a05d79bc2d1ae941e0620e23bf1d3" + integrity sha512-bYDRmv/lk3nuWXs2VSD1B4FneGT6v7a74FuVmb305hyEMmFSnneJvVgnOJxyKlbNlz12pq1IQ6MhlJBda/SFtQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-heading-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-2.0.1.tgz#8216fca67d97bbbeec8a19b6c71bfefc16549f72" + integrity sha512-IrFLNs0M5Vbn9qg51AYhGUfzgLAcDOjh2hFGMz3mx664dV6zLcNZOPSdJBBJq3JQR4gKpoXcNwN1+FFaIATj+A== + dependencies: + mdast-util-heading-style "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-link-title-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-2.0.1.tgz#51a595c69fcfa73a245a030dfaa3504938a1173a" + integrity sha512-+Q7Ew8qpOQzjqbDF6sUHmn9mKgje+m2Ho8Xz7cEnGIRaKJgtJzkn/dZqQM/az0gn3zaN6rOuwTwqw4EsT5EsIg== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + vfile-location "^3.0.0" + +remark-lint-list-item-content-indent@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-2.0.1.tgz#96387459440dcd61e522ab02bff138b32bfaa63a" + integrity sha512-OzUMqavxyptAdG7vWvBSMc9mLW9ZlTjbW4XGayzczd3KIr6Uwp3NEFXKx6MLtYIM/vwBqMrPQUrObOC7A2uBpQ== + dependencies: + pluralize "^8.0.0" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-list-item-indent@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-2.0.1.tgz#c6472514e17bc02136ca87936260407ada90bf8d" + integrity sha512-4IKbA9GA14Q9PzKSQI6KEHU/UGO36CSQEjaDIhmb9UOhyhuzz4vWhnSIsxyI73n9nl9GGRAMNUSGzr4pQUFwTA== + dependencies: + pluralize "^8.0.0" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-list-item-spacing@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-3.0.0.tgz#14c18fe8c0f19231edb5cf94abda748bb773110b" + integrity sha512-SRUVonwdN3GOSFb6oIYs4IfJxIVR+rD0nynkX66qEO49/qDDT1PPvkndis6Nyew5+t+2V/Db9vqllL6SWbnEtw== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-maximum-heading-length@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-2.0.1.tgz#56f240707a75b59bce3384ccc9da94548affa98f" + integrity sha512-1CjJ71YDqEpoOjUnc4wrwZV8ZGXWUIYRYeGoarAy3QKHepJL9M+zkdbOxZDfhc3tjVoDW/LWcgsW+DEpczgiMA== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-maximum-line-length@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-2.0.3.tgz#d0d15410637d61b031a83d7c78022ec46d6c858a" + integrity sha512-zyWHBFh1oPAy+gkaVFXiTHYP2WwriIeBtaarDqkweytw0+qmuikjVMJTWbQ3+XfYBreD7KKDM9SI79nkp0/IZQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-auto-link-without-protocol@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-2.0.1.tgz#f75e5c24adb42385593e0d75ca39987edb70b6c4" + integrity sha512-TFcXxzucsfBb/5uMqGF1rQA+WJJqm1ZlYQXyvJEXigEZ8EAxsxZGPb/gOQARHl/y0vymAuYxMTaChavPKaBqpQ== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-blockquote-without-marker@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-4.0.0.tgz#856fb64dd038fa8fc27928163caa24a30ff4d790" + integrity sha512-Y59fMqdygRVFLk1gpx2Qhhaw5IKOR9T38Wf7pjR07bEFBGUNfcoNVIFMd1TCJfCPQxUyJzzSqfZz/KT7KdUuiQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + vfile-location "^3.0.0" + +remark-lint-no-consecutive-blank-lines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-3.0.0.tgz#c8fe11095b8f031a1406da273722bd4a9174bf41" + integrity sha512-kmzLlOLrapBKEngwYFTdCZDmeOaze6adFPB7G0EdymD9V1mpAlnneINuOshRLEDKK5fAhXKiZXxdGIaMPkiXrA== + dependencies: + pluralize "^8.0.0" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-duplicate-headings@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-2.0.1.tgz#4a4b70e029155ebcfc03d8b2358c427b69a87576" + integrity sha512-F6AP0FJcHIlkmq0pHX0J5EGvLA9LfhuYTvnNO8y3kvflHeRjFkDyt2foz/taXR8OcLQR51n/jIJiwrrSMbiauw== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-stringify-position "^2.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-emphasis-as-heading@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-2.0.1.tgz#fcc064133fe00745943c334080fed822f72711ea" + integrity sha512-z86+yWtVivtuGIxIC4g9RuATbgZgOgyLcnaleonJ7/HdGTYssjJNyqCJweaWSLoaI0akBQdDwmtJahW5iuX3/g== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-file-name-articles@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.3.tgz#c712d06a24e24b0c4c3666cf3084a0052a2c2c17" + integrity sha512-YZDJDKUWZEmhrO6tHB0u0K0K2qJKxyg/kryr14OaRMvWLS62RgMn97sXPZ38XOSN7mOcCnl0k7/bClghJXx0sg== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-file-name-consecutive-dashes@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.3.tgz#6a96ddf60e18dcdb004533733f3ccbfd8ab076ae" + integrity sha512-7f4vyXn/ca5lAguWWC3eu5hi8oZ7etX7aQlnTSgQZeslnJCbVJm6V6prFJKAzrqbBzMicUXr5pZLBDoXyTvHHw== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-file-name-irregular-characters@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-1.0.3.tgz#6dcd8b51e00e10094585918cb8e7fc999df776c3" + integrity sha512-b4xIy1Yi8qZpM2vnMN+6gEujagPGxUBAs1judv6xJQngkl5d5zT8VQZsYsTGHku4NWHjjh3b7vK5mr0/yp4JSg== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-file-name-mixed-case@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-1.0.3.tgz#0ebe5eedd0191507d27ad6ac5eed1778cb33c2de" + integrity sha512-d7rJ4c8CzDbEbGafw2lllOY8k7pvnsO77t8cV4PHFylwQ3hmCdTHLuDvK87G3DaWCeKclp0PMyamfOgJWKMkPA== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-file-name-outer-dashes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.4.tgz#c6e22a5cc64df4e12fc31712a927e8039854a666" + integrity sha512-+bZvvme2Bm3Vp5L2iKuvGHYVmHKrTkkRt8JqJPGepuhvBvT4Q7+CgfKyMtC/hIjyl+IcuJQ2H0qPRzdicjy1wQ== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-heading-punctuation@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-2.0.1.tgz#face59f9a95c8aa278a8ee0c728bc44cd53ea9ed" + integrity sha512-lY/eF6GbMeGu4cSuxfGHyvaQQBIq/6T/o+HvAR5UfxSTxmxZFwbZneAI2lbeR1zPcqOU87NsZ5ZZzWVwdLpPBw== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-inline-padding@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-3.0.0.tgz#14c2722bcddc648297a54298107a922171faf6eb" + integrity sha512-3s9uW3Yux9RFC0xV81MQX3bsYs+UY7nPnRuMxeIxgcVwxQ4E/mTJd9QjXUwBhU9kdPtJ5AalngdmOW2Tgar8Cg== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-literal-urls@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-2.0.1.tgz#731908f9866c1880e6024dcee1269fb0f40335d6" + integrity sha512-IDdKtWOMuKVQIlb1CnsgBoyoTcXU3LppelDFAIZePbRPySVHklTtuK57kacgU5grc7gPM04bZV96eliGrRU7Iw== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-multiple-toplevel-headings@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-2.0.1.tgz#3ff2b505adf720f4ff2ad2b1021f8cfd50ad8635" + integrity sha512-VKSItR6c+u3OsE5pUiSmNusERNyQS9Nnji26ezoQ1uvy06k3RypIjmzQqJ/hCkSiF+hoyC3ibtrrGT8gorzCmQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-stringify-position "^2.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-shell-dollars@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-2.0.2.tgz#b2c6c3ed95e5615f8e5f031c7d271a18dc17618e" + integrity sha512-zhkHZOuyaD3r/TUUkkVqW0OxsR9fnSrAnHIF63nfJoAAUezPOu8D1NBsni6rX8H2DqGbPYkoeWrNsTwiKP0yow== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-shortcut-reference-image@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-2.0.1.tgz#d174d12a57e8307caf6232f61a795bc1d64afeaa" + integrity sha512-2jcZBdnN6ecP7u87gkOVFrvICLXIU5OsdWbo160FvS/2v3qqqwF2e/n/e7D9Jd+KTq1mR1gEVVuTqkWWuh3cig== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-shortcut-reference-link@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-2.0.1.tgz#8f963f81036e45cfb7061b3639e9c6952308bc94" + integrity sha512-pTZbslG412rrwwGQkIboA8wpBvcjmGFmvugIA+UQR+GfFysKtJ5OZMPGJ98/9CYWjw9Z5m0/EktplZ5TjFjqwA== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-table-indentation@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-3.0.0.tgz#f3c3fc24375069ec8e510f43050600fb22436731" + integrity sha512-+l7GovI6T+3LhnTtz/SmSRyOb6Fxy6tmaObKHrwb/GAebI/4MhFS1LVo3vbiP/RpPYtyQoFbbuXI55hqBG4ibQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + vfile-location "^3.0.0" + +remark-lint-ordered-list-marker-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-2.0.1.tgz#183c31967e6f2ae8ef00effad03633f7fd00ffaa" + integrity sha512-Cnpw1Dn9CHn+wBjlyf4qhPciiJroFOEGmyfX008sQ8uGoPZsoBVIJx76usnHklojSONbpjEDcJCjnOvfAcWW1A== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-ordered-list-marker-value@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-2.0.1.tgz#0de343de2efb41f01eae9f0f7e7d30fe43db5595" + integrity sha512-blt9rS7OKxZ2NW8tqojELeyNEwPhhTJGVa+YpUkdEH+KnrdcD7Nzhnj6zfLWOx6jFNZk3jpq5nvLFAPteHaNKg== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-rule-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-2.0.1.tgz#f59bd82e75d3eaabd0eee1c8c0f5513372eb553c" + integrity sha512-hz4Ff9UdlYmtO6Czz99WJavCjqCer7Cav4VopXt+yVIikObw96G5bAuLYcVS7hvMUGqC9ZuM02/Y/iq9n8pkAg== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-strong-marker@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-2.0.1.tgz#1ad8f190c6ac0f8138b638965ccf3bcd18f6d4e4" + integrity sha512-8X2IsW1jZ5FmW9PLfQjkL0OVy/J3xdXLcZrG1GTeQKQ91BrPFyEZqUM2oM6Y4S6LGtxWer+neZkPZNroZoRPBQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-table-cell-padding@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-3.0.0.tgz#a769ba1999984ff5f90294fb6ccb8aead7e8a12f" + integrity sha512-sEKrbyFZPZpxI39R8/r+CwUrin9YtyRwVn0SQkNQEZWZcIpylK+bvoKIldvLIXQPob+ZxklL0GPVRzotQMwuWQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-table-pipe-alignment@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-2.0.1.tgz#12b7e4c54473d69c9866cb33439c718d09cffcc5" + integrity sha512-O89U7bp0ja6uQkT2uQrNB76GaPvFabrHiUGhqEUnld21yEdyj7rgS57kn84lZNSuuvN1Oor6bDyCwWQGzzpoOQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-table-pipes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-3.0.0.tgz#b30b055d594cae782667eec91c6c5b35928ab259" + integrity sha512-QPokSazEdl0Y8ayUV9UB0Ggn3Jos/RAQwIo0z1KDGnJlGDiF80Jc6iU9RgDNUOjlpQffSLIfSVxH5VVYF/K3uQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-unordered-list-marker-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-2.0.1.tgz#e64692aa9594dbe7e945ae76ab2218949cd92477" + integrity sha512-8KIDJNDtgbymEvl3LkrXgdxPMTOndcux3BHhNGB2lU4UnxSpYeHsxcDgirbgU6dqCAfQfvMjPvfYk19QTF9WZA== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-8.0.0.tgz#6e40894f4a39eaea31fc4dd45abfaba948bf9a09" + integrity sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg== + dependencies: + remark-message-control "^6.0.0" + +remark-message-control@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-6.0.0.tgz#955b054b38c197c9f2e35b1d88a4912949db7fc5" + integrity sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA== + dependencies: + mdast-comment-marker "^1.0.0" + unified-message-control "^3.0.0" + +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-preset-lint-markdown-style-guide@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-4.0.0.tgz#976b6ffd7f37aa90868e081a69241fcde3a297d4" + integrity sha512-gczDlfZ28Fz0IN/oddy0AH4CiTu9S8d3pJWUsrnwFiafjhJjPGobGE1OD3bksi53md1Bp4K0fzo99YYfvB4Sjw== + dependencies: + remark-lint "^8.0.0" + remark-lint-blockquote-indentation "^2.0.0" + remark-lint-code-block-style "^2.0.0" + remark-lint-definition-case "^2.0.0" + remark-lint-definition-spacing "^2.0.0" + remark-lint-emphasis-marker "^2.0.0" + remark-lint-fenced-code-flag "^2.0.0" + remark-lint-fenced-code-marker "^2.0.0" + remark-lint-file-extension "^1.0.0" + remark-lint-final-definition "^2.0.0" + remark-lint-hard-break-spaces "^2.0.0" + remark-lint-heading-increment "^2.0.0" + remark-lint-heading-style "^2.0.0" + remark-lint-link-title-style "^2.0.0" + remark-lint-list-item-content-indent "^2.0.0" + remark-lint-list-item-indent "^2.0.0" + remark-lint-list-item-spacing "^3.0.0" + remark-lint-maximum-heading-length "^2.0.0" + remark-lint-maximum-line-length "^2.0.0" + remark-lint-no-auto-link-without-protocol "^2.0.0" + remark-lint-no-blockquote-without-marker "^4.0.0" + remark-lint-no-consecutive-blank-lines "^3.0.0" + remark-lint-no-duplicate-headings "^2.0.0" + remark-lint-no-emphasis-as-heading "^2.0.0" + remark-lint-no-file-name-articles "^1.0.0" + remark-lint-no-file-name-consecutive-dashes "^1.0.0" + remark-lint-no-file-name-irregular-characters "^1.0.0" + remark-lint-no-file-name-mixed-case "^1.0.0" + remark-lint-no-file-name-outer-dashes "^1.0.0" + remark-lint-no-heading-punctuation "^2.0.0" + remark-lint-no-inline-padding "^3.0.0" + remark-lint-no-literal-urls "^2.0.0" + remark-lint-no-multiple-toplevel-headings "^2.0.0" + remark-lint-no-shell-dollars "^2.0.0" + remark-lint-no-shortcut-reference-image "^2.0.0" + remark-lint-no-shortcut-reference-link "^2.0.0" + remark-lint-no-table-indentation "^3.0.0" + remark-lint-ordered-list-marker-style "^2.0.0" + remark-lint-ordered-list-marker-value "^2.0.0" + remark-lint-rule-style "^2.0.0" + remark-lint-strong-marker "^2.0.0" + remark-lint-table-cell-padding "^3.0.0" + remark-lint-table-pipe-alignment "^2.0.0" + remark-lint-table-pipes "^3.0.0" + remark-lint-unordered-list-marker-style "^2.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" + +remark@^15.0.0: + version "15.0.1" + resolved "https://registry.yarnpkg.com/remark/-/remark-15.0.1.tgz#ac7e7563260513b66426bc47f850e7aa5862c37c" + integrity sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A== + dependencies: + "@types/mdast" "^4.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.1.6: + version "1.21.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" + integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== + dependencies: + is-core-module "^2.8.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.10.0, resolve@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.10.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== + dependencies: + onetime "^7.0.0" + signal-exit "^4.1.0" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755" + integrity sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og== + dependencies: + glob "^9.2.0" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +run-con@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/run-con/-/run-con-1.3.2.tgz#755860a10ce326a96b509485fcea50b4d03754e8" + integrity sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg== + dependencies: + deep-extend "^0.6.0" + ini "~4.1.0" + minimist "^1.2.8" + strip-json-comments "~3.1.1" + +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +rxjs@^6.5.5: + version "6.6.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84" + integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg== + dependencies: + tslib "^1.9.0" + +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +"semver@2 || 3 || 4 || 5": + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.1.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.0.0, semver@^7.3.2, semver@^7.3.5, semver@^7.3.8: + version "7.5.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" + integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== + dependencies: + lru-cache "^6.0.0" + +semver@^7.1.1, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.1, semver@^7.6.3: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shx@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02" + integrity sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g== + dependencies: + minimist "^1.2.3" + shelljs "^0.8.5" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +simple-git@^3.5.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.16.0.tgz#421773e24680f5716999cc4a1d60127b4b6a9dec" + integrity sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw== + dependencies: + "@kwsites/file-exists" "^1.1.1" + "@kwsites/promise-deferred" "^1.1.1" + debug "^4.3.4" + +slash@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" + integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +sliced@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" + integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= + +source-map-support@^0.5.6: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.13" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" + integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +standard-engine@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-15.0.0.tgz#e37ca2e1a589ef85431043a3e87cb9ce95a4ca4e" + integrity sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA== + dependencies: + get-stdin "^8.0.0" + minimist "^1.2.6" + pkg-conf "^3.1.0" + xdg-basedir "^4.0.0" + +standard@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/standard/-/standard-17.0.0.tgz#85718ecd04dc4133908434660788708cca855aa1" + integrity sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA== + dependencies: + eslint "^8.13.0" + eslint-config-standard "17.0.0" + eslint-config-standard-jsx "^11.0.0" + eslint-plugin-import "^2.26.0" + eslint-plugin-n "^15.1.0" + eslint-plugin-promise "^6.0.0" + eslint-plugin-react "^7.28.0" + standard-engine "^15.0.0" + +stdin-discarder@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz#390037f44c4ae1a1ae535c5fe38dc3aba8d997be" + integrity sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ== + +stream-chain@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" + integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== + +stream-json@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.8.0.tgz#53f486b2e3b4496c506131f8d7260ba42def151c" + integrity sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw== + dependencies: + stream-chain "^2.2.5" + +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-6.1.0.tgz#96488d6ed23f9ad5d82d13522af9e4c4c3fd7518" + integrity sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^10.2.1" + strip-ansi "^7.0.1" + +string-width@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.0, strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.0.2.tgz#50f082888e4b0a4e2ccd2d0b4f9ef4efcd332485" + integrity sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q== + dependencies: + has-flag "^5.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tap-parser@~1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-1.2.2.tgz#5e2f6970611f079c7cf857de1dc7aa1b480de7a5" + integrity sha1-Xi9pcGEfB5x8+FfeHceqG0gN56U= + dependencies: + events-to-array "^1.0.1" + inherits "~2.0.1" + js-yaml "^3.2.7" + optionalDependencies: + readable-stream "^2" + +tap-xunit@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tap-xunit/-/tap-xunit-2.4.1.tgz#9823797b676ae5017f4e380bd70abb893b8e120e" + integrity sha512-qcZStDtjjYjMKAo7QNiCtOW256g3tuSyCSe5kNJniG1Q2oeOExJq4vm8CwboHZURpkXAHvtqMl4TVL7mcbMVVA== + dependencies: + duplexer "~0.1.1" + minimist "~1.2.0" + tap-parser "~1.2.2" + through2 "~2.0.0" + xmlbuilder "~4.2.0" + xtend "~4.0.0" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar@^6.1.11: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp@^0.9.4: + version "0.9.4" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620" + integrity sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA== + dependencies: + mkdirp "^0.5.1" + rimraf "~2.6.2" + +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.26.0: + version "5.32.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.32.0.tgz#ee811c0d2d6b741c1cc34a2bc5bcbfc1b5b1f96c" + integrity sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timers-browserify@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= + dependencies: + process "~0.11.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toml@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +trough@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.0.2.tgz#94a3aa9d5ce379fc561f6244905b3f36b7458d96" + integrity sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w== + +ts-api-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + +ts-loader@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.2.tgz#ee73ca9350f745799396fff8578ba29b1e95616b" + integrity sha512-oYT7wOTUawYXQ8XIDsRhziyW0KUEV38jISYlE+9adP6tDtG+O5GkRe4QKQXrHVH4mJJ88DysvEtvGP65wMLlhg== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + loader-utils "^1.0.2" + micromatch "^4.0.0" + semver "^6.0.0" + +ts-node@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.2.0.tgz#65a0ae2acce319ea4fd7ac8d7c9f1f90c5da6baf" + integrity sha512-ZNT+OEGfUNVMGkpIaDJJ44Zq3Yr0bkU/ugN1PHbU+/01Z7UV1fsELRiTx1KuQNvQ1A3pGh3y25iYF6jXgxV21A== + dependencies: + arrify "^1.0.0" + buffer-from "^1.1.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.6" + yn "^2.0.0" + +tsconfig-paths@^3.14.1: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tslib@^2.0.0, tslib@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tslib@^2.6.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^3.8.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^5.6.2: + version "5.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.2.tgz#d1de67b6bef77c41823f822df8f0b3bcff60a5a0" + integrity sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + +unified-args@^11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-11.0.1.tgz#5c82564616288b8d99feed7326c2223097d30726" + integrity sha512-WEQghE91+0s3xPVs0YW6a5zUduNLjmANswX7YbBfksHNDGMjHxaWCql4SR7c9q0yov/XiIEdk6r/LqfPjaYGcw== + dependencies: + "@types/text-table" "^0.2.0" + chalk "^5.0.0" + chokidar "^3.0.0" + comma-separated-tokens "^2.0.0" + json5 "^2.0.0" + minimist "^1.0.0" + strip-ansi "^7.0.0" + text-table "^0.2.0" + unified-engine "^11.0.0" + +unified-engine@^11.0.0: + version "11.2.1" + resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-11.2.1.tgz#8f9c05b3f262930666b1cdb83108c15dd39d6cdd" + integrity sha512-xBAdZ8UY2X4R9Hm6X6kMne4Nz0PlpOc1oE6DPeqJnewr5Imkb8uT5Eyvy1h7xNekPL3PSWh3ZJyNrMW6jnNQBg== + dependencies: + "@types/concat-stream" "^2.0.0" + "@types/debug" "^4.0.0" + "@types/is-empty" "^1.0.0" + "@types/node" "^20.0.0" + "@types/unist" "^3.0.0" + concat-stream "^2.0.0" + debug "^4.0.0" + extend "^3.0.0" + glob "^10.0.0" + ignore "^5.0.0" + is-empty "^1.0.0" + is-plain-obj "^4.0.0" + load-plugin "^6.0.0" + parse-json "^7.0.0" + trough "^2.0.0" + unist-util-inspect "^8.0.0" + vfile "^6.0.0" + vfile-message "^4.0.0" + vfile-reporter "^8.0.0" + vfile-statistics "^3.0.0" + yaml "^2.0.0" + +unified-lint-rule@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.4.tgz#be432d316db7ad801166041727b023ba18963e24" + integrity sha512-q9wY6S+d38xRAuWQVOMjBQYi7zGyKkY23ciNafB8JFVmDroyKjtytXHCg94JnhBCXrNqpfojo3+8D+gmF4zxJQ== + dependencies: + wrapped "^1.0.1" + +unified-message-control@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-3.0.3.tgz#d08c4564092a507668de71451a33c0d80e734bbd" + integrity sha512-oY5z2n8ugjpNHXOmcgrw0pQeJzavHS0VjPBP21tOcm7rc2C+5Q+kW9j5+gqtf8vfW/8sabbsK5+P+9QPwwEHDA== + dependencies: + unist-util-visit "^2.0.0" + vfile-location "^3.0.0" + +unified@^11.0.0: + version "11.0.5" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" + integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + +unist-util-generated@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.4.tgz#2261c033d9fc23fae41872cdb7663746e972c1a7" + integrity sha512-SA7Sys3h3X4AlVnxHdvN/qYdr4R38HzihoEVY2Q2BZu8NHWDnw5OGcC/tXWjQfd4iG+M6qRFNIRGqJmp2ez4Ww== + +unist-util-inspect@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-8.1.0.tgz#ff2729b543c483041b3c29cbe04c5460a406ee25" + integrity sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-is@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" + integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== + +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.3.tgz#fff942b879538b242096c148153826664b1ca373" + integrity sha512-28EpCBYFvnMeq9y/4w6pbnFmCUfzlsc41NJui5c51hOFjBA1fejcwc+5W4z2+0ECVbScG3dURS3JTVqwenzqZw== + +unist-util-stringify-position@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz#de2a2bc8d3febfa606652673a91455b6a36fb9f3" + integrity sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-stringify-position@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" + integrity sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +unist-util-visit@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +universal-github-app-jwt@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz#d57cee49020662a95ca750a057e758a1a7190e6e" + integrity sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w== + dependencies: + "@types/jsonwebtoken" "^9.0.0" + jsonwebtoken "^9.0.0" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url@^0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" + integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== + dependencies: + punycode "^1.4.1" + qs "^6.12.3" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8" + integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== + +vfile-location@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + +vfile-location@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.3.tgz#cb9eacd20f2b6426d19451e0eafa3d0a846225c3" + integrity sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg== + dependencies: + "@types/unist" "^3.0.0" + vfile "^6.0.0" + +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile-reporter@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-8.1.1.tgz#ac06a5a68f1b480609c443062dffea1cfa2d11b1" + integrity sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g== + dependencies: + "@types/supports-color" "^8.0.0" + string-width "^6.0.0" + supports-color "^9.0.0" + unist-util-stringify-position "^4.0.0" + vfile "^6.0.0" + vfile-message "^4.0.0" + vfile-sort "^4.0.0" + vfile-statistics "^3.0.0" + +vfile-sort@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-4.0.0.tgz#fa1929065b62fe5311e5391c9434f745e8641703" + integrity sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ== + dependencies: + vfile "^6.0.0" + vfile-message "^4.0.0" + +vfile-statistics@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-3.0.0.tgz#0f5cd00c611c1862b13a9b5bc5599efaf465f2cf" + integrity sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w== + dependencies: + vfile "^6.0.0" + vfile-message "^4.0.0" + +vfile@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.2.tgz#ef49548ea3d270097a67011921411130ceae7deb" + integrity sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +vscode-jsonrpc@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz#cb9989c65e219e18533cc38e767611272d274c94" + integrity sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw== + +vscode-languageserver-protocol@3.17.3: + version "3.17.3" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz#6d0d54da093f0c0ee3060b81612cce0f11060d57" + integrity sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA== + dependencies: + vscode-jsonrpc "8.1.0" + vscode-languageserver-types "3.17.3" + +vscode-languageserver-textdocument@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.7.tgz#16df468d5c2606103c90554ae05f9f3d335b771b" + integrity sha512-bFJH7UQxlXT8kKeyiyu41r22jCZXG8kuuVVA33OEJn1diWOZK5n8zBSPZFHVBOu8kXZ6h0LIRhf5UnCo61J4Hg== + +vscode-languageserver-textdocument@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0" + integrity sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q== + +vscode-languageserver-types@3.17.3: + version "3.17.3" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz#72d05e47b73be93acb84d6e311b5786390f13f64" + integrity sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA== + +vscode-languageserver-types@^3.17.1: + version "3.17.2" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz#b2c2e7de405ad3d73a883e91989b850170ffc4f2" + integrity sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA== + +vscode-languageserver@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-8.1.0.tgz#5024253718915d84576ce6662dd46a791498d827" + integrity sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw== + dependencies: + vscode-languageserver-protocol "3.17.3" + +vscode-uri@^3.0.3: + version "3.0.6" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.6.tgz#5e6e2e1a4170543af30151b561a41f71db1d6f91" + integrity sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ== + +vscode-uri@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8" + integrity sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA== + +walk-sync@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.4.tgz#cf78486cc567d3a96b5b2237c6108017a5ffb9a4" + integrity sha512-ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig== + dependencies: + ensure-posix-path "^1.0.0" + matcher-collection "^1.0.0" + +walk-up-path@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" + integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== + +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webpack-cli@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" + colorette "^2.0.14" + commander "^10.0.1" + cross-spawn "^7.0.3" + envinfo "^7.7.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^3.1.1" + rechoir "^0.8.0" + webpack-merge "^5.7.3" + +webpack-merge@^5.7.3: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5, webpack@^5.95.0: + version "5.95.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.95.0.tgz#8fd8c454fa60dad186fbe36c400a55848307b4c0" + integrity sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q== + dependencies: + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-attributes "^1.9.5" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrapped@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wrapped/-/wrapped-1.0.1.tgz#c783d9d807b273e9b01e851680a938c87c907242" + integrity sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI= + dependencies: + co "3.1.0" + sliced "^1.0.1" + +wrapper-webpack-plugin@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/wrapper-webpack-plugin/-/wrapper-webpack-plugin-2.2.2.tgz#a950b7fbc39ca103e468a7c06c225cb1e337ad3b" + integrity sha512-twLGZw0b2AEnz3LmsM/uCFRzGxE+XUlUPlJkCuHY3sI+uGO4dTJsgYee3ufWJaynAZYkpgQSKMSr49n9Yxalzg== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xmlbuilder@~4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + integrity sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU= + dependencies: + lodash "^4.0.0" + +xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.7.2: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yaml@^2.0.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.0.tgz#14059ad9d0b1680d0f04d3a60fe00f3a857303c3" + integrity sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ== + +yaml@^2.4.5: + version "2.4.5" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" + integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zwitch@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" + integrity sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA== diff --git a/devel/electron36/pkg-descr b/devel/electron36/pkg-descr new file mode 100644 index 000000000000..c91da5b3cd13 --- /dev/null +++ b/devel/electron36/pkg-descr @@ -0,0 +1,8 @@ +Build cross platform desktop apps with JavaScript, HTML, and CSS. + +It's easier than you think. + +If you can build a website, you can build a desktop app. Electron is a +framework for creating native applications with web technologies like +JavaScript, HTML, and CSS. It takes care of the hard parts so you can +focus on the core of your application. diff --git a/devel/electron36/pkg-plist b/devel/electron36/pkg-plist new file mode 100644 index 000000000000..0718ea4f2e5f --- /dev/null +++ b/devel/electron36/pkg-plist @@ -0,0 +1,211 @@ +bin/electron%%ELECTRON_VER_MAJOR%% +%%DATADIR%%/LICENSE +%%DATADIR%%/LICENSES.chromium.html +%%DATADIR%%/chrome_100_percent.pak +%%DATADIR%%/chrome_200_percent.pak +%%DRIVER%%%%DATADIR%%/chromedriver +%%DATADIR%%/electron +%%DATADIR%%/gen/electron/buildflags/buildflags.h +%%DATADIR%%/gen/v8/embedded.S +%%DATADIR%%/libEGL.so +%%DATADIR%%/libGLESv2.so +%%DATADIR%%/libffmpeg.so +%%NOT_AARCH64%%%%DATADIR%%/libvk_swiftshader.so +%%DATADIR%%/libvulkan.so +%%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%%/mksnapshot +%%DATADIR%%/node_headers/include/node/common.gypi +%%DATADIR%%/node_headers/include/node/config.gypi +%%DATADIR%%/node_headers/include/node/cppgc/allocation.h +%%DATADIR%%/node_headers/include/node/cppgc/common.h +%%DATADIR%%/node_headers/include/node/cppgc/cross-thread-persistent.h +%%DATADIR%%/node_headers/include/node/cppgc/custom-space.h +%%DATADIR%%/node_headers/include/node/cppgc/default-platform.h +%%DATADIR%%/node_headers/include/node/cppgc/explicit-management.h +%%DATADIR%%/node_headers/include/node/cppgc/garbage-collected.h +%%DATADIR%%/node_headers/include/node/cppgc/heap-consistency.h +%%DATADIR%%/node_headers/include/node/cppgc/heap-handle.h +%%DATADIR%%/node_headers/include/node/cppgc/heap-state.h +%%DATADIR%%/node_headers/include/node/cppgc/heap-statistics.h +%%DATADIR%%/node_headers/include/node/cppgc/heap.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/api-constants.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/atomic-entry-flag.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/base-page-handle.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/caged-heap-local-data.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/caged-heap.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/compiler-specific.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/conditional-stack-allocated.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/finalizer-trait.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/gc-info.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/logging.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/member-storage.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/name-trait.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/persistent-node.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/pointer-policies.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/write-barrier.h +%%DATADIR%%/node_headers/include/node/cppgc/liveness-broker.h +%%DATADIR%%/node_headers/include/node/cppgc/macros.h +%%DATADIR%%/node_headers/include/node/cppgc/member.h +%%DATADIR%%/node_headers/include/node/cppgc/name-provider.h +%%DATADIR%%/node_headers/include/node/cppgc/object-size-trait.h +%%DATADIR%%/node_headers/include/node/cppgc/persistent.h +%%DATADIR%%/node_headers/include/node/cppgc/platform.h +%%DATADIR%%/node_headers/include/node/cppgc/prefinalizer.h +%%DATADIR%%/node_headers/include/node/cppgc/process-heap-statistics.h +%%DATADIR%%/node_headers/include/node/cppgc/sentinel-pointer.h +%%DATADIR%%/node_headers/include/node/cppgc/source-location.h +%%DATADIR%%/node_headers/include/node/cppgc/testing.h +%%DATADIR%%/node_headers/include/node/cppgc/trace-trait.h +%%DATADIR%%/node_headers/include/node/cppgc/type-traits.h +%%DATADIR%%/node_headers/include/node/cppgc/visitor.h +%%DATADIR%%/node_headers/include/node/js_native_api.h +%%DATADIR%%/node_headers/include/node/js_native_api_types.h +%%DATADIR%%/node_headers/include/node/libplatform/libplatform-export.h +%%DATADIR%%/node_headers/include/node/libplatform/libplatform.h +%%DATADIR%%/node_headers/include/node/libplatform/v8-tracing.h +%%DATADIR%%/node_headers/include/node/node.h +%%DATADIR%%/node_headers/include/node/node_api.h +%%DATADIR%%/node_headers/include/node/node_api_types.h +%%DATADIR%%/node_headers/include/node/node_buffer.h +%%DATADIR%%/node_headers/include/node/node_object_wrap.h +%%DATADIR%%/node_headers/include/node/node_version.h +%%DATADIR%%/node_headers/include/node/uv.h +%%DATADIR%%/node_headers/include/node/uv/aix.h +%%DATADIR%%/node_headers/include/node/uv/bsd.h +%%DATADIR%%/node_headers/include/node/uv/darwin.h +%%DATADIR%%/node_headers/include/node/uv/errno.h +%%DATADIR%%/node_headers/include/node/uv/linux.h +%%DATADIR%%/node_headers/include/node/uv/os390.h +%%DATADIR%%/node_headers/include/node/uv/posix.h +%%DATADIR%%/node_headers/include/node/uv/sunos.h +%%DATADIR%%/node_headers/include/node/uv/threadpool.h +%%DATADIR%%/node_headers/include/node/uv/tree.h +%%DATADIR%%/node_headers/include/node/uv/unix.h +%%DATADIR%%/node_headers/include/node/uv/version.h +%%DATADIR%%/node_headers/include/node/uv/win.h +%%DATADIR%%/node_headers/include/node/v8-array-buffer.h +%%DATADIR%%/node_headers/include/node/v8-callbacks.h +%%DATADIR%%/node_headers/include/node/v8-container.h +%%DATADIR%%/node_headers/include/node/v8-context.h +%%DATADIR%%/node_headers/include/node/v8-cppgc.h +%%DATADIR%%/node_headers/include/node/v8-data.h +%%DATADIR%%/node_headers/include/node/v8-date.h +%%DATADIR%%/node_headers/include/node/v8-debug.h +%%DATADIR%%/node_headers/include/node/v8-embedder-heap.h +%%DATADIR%%/node_headers/include/node/v8-embedder-state-scope.h +%%DATADIR%%/node_headers/include/node/v8-exception.h +%%DATADIR%%/node_headers/include/node/v8-extension.h +%%DATADIR%%/node_headers/include/node/v8-external.h +%%DATADIR%%/node_headers/include/node/v8-forward.h +%%DATADIR%%/node_headers/include/node/v8-function-callback.h +%%DATADIR%%/node_headers/include/node/v8-function.h +%%DATADIR%%/node_headers/include/node/v8-handle-base.h +%%DATADIR%%/node_headers/include/node/v8-initialization.h +%%DATADIR%%/node_headers/include/node/v8-internal.h +%%DATADIR%%/node_headers/include/node/v8-isolate.h +%%DATADIR%%/node_headers/include/node/v8-json.h +%%DATADIR%%/node_headers/include/node/v8-local-handle.h +%%DATADIR%%/node_headers/include/node/v8-locker.h +%%DATADIR%%/node_headers/include/node/v8-maybe.h +%%DATADIR%%/node_headers/include/node/v8-memory-span.h +%%DATADIR%%/node_headers/include/node/v8-message.h +%%DATADIR%%/node_headers/include/node/v8-microtask-queue.h +%%DATADIR%%/node_headers/include/node/v8-microtask.h +%%DATADIR%%/node_headers/include/node/v8-object.h +%%DATADIR%%/node_headers/include/node/v8-persistent-handle.h +%%DATADIR%%/node_headers/include/node/v8-platform.h +%%DATADIR%%/node_headers/include/node/v8-primitive-object.h +%%DATADIR%%/node_headers/include/node/v8-primitive.h +%%DATADIR%%/node_headers/include/node/v8-profiler.h +%%DATADIR%%/node_headers/include/node/v8-promise.h +%%DATADIR%%/node_headers/include/node/v8-proxy.h +%%DATADIR%%/node_headers/include/node/v8-regexp.h +%%DATADIR%%/node_headers/include/node/v8-sandbox.h +%%DATADIR%%/node_headers/include/node/v8-script.h +%%DATADIR%%/node_headers/include/node/v8-snapshot.h +%%DATADIR%%/node_headers/include/node/v8-source-location.h +%%DATADIR%%/node_headers/include/node/v8-statistics.h +%%DATADIR%%/node_headers/include/node/v8-template.h +%%DATADIR%%/node_headers/include/node/v8-traced-handle.h +%%DATADIR%%/node_headers/include/node/v8-typed-array.h +%%DATADIR%%/node_headers/include/node/v8-unwinder.h +%%DATADIR%%/node_headers/include/node/v8-value-serializer.h +%%DATADIR%%/node_headers/include/node/v8-value.h +%%DATADIR%%/node_headers/include/node/v8-version.h +%%DATADIR%%/node_headers/include/node/v8-wasm.h +%%DATADIR%%/node_headers/include/node/v8-weak-callback-info.h +%%DATADIR%%/node_headers/include/node/v8.h +%%DATADIR%%/node_headers/include/node/v8config.h +%%DATADIR%%/node_headers/include/node/zconf.h +%%DATADIR%%/node_headers/include/node/zlib.h +%%DIST%%%%DATADIR%%/releases/SHASUMS256.txt +%%DIST%%%%AARCH64%%%%DATADIR%%/releases/chromedriver-v%%ELECTRON_VER%%-freebsd-arm64.zip +%%DIST%%%%AARCH64%%%%DATADIR%%/releases/electron-v%%ELECTRON_VER%%-freebsd-arm64.zip +%%DIST%%%%AARCH64%%%%DATADIR%%/releases/mksnapshot-v%%ELECTRON_VER%%-freebsd-arm64.zip +%%DIST%%%%AMD64%%%%DATADIR%%/releases/chromedriver-v%%ELECTRON_VER%%-freebsd-x64.zip +%%DIST%%%%AMD64%%%%DATADIR%%/releases/electron-v%%ELECTRON_VER%%-freebsd-x64.zip +%%DIST%%%%AMD64%%%%DATADIR%%/releases/mksnapshot-v%%ELECTRON_VER%%-freebsd-x64.zip +%%DIST%%%%I386%%%%DATADIR%%/releases/chromedriver-v%%ELECTRON_VER%%-freebsd-ia32.zip +%%DIST%%%%I386%%%%DATADIR%%/releases/electron-v%%ELECTRON_VER%%-freebsd-ia32.zip +%%DIST%%%%I386%%%%DATADIR%%/releases/mksnapshot-v%%ELECTRON_VER%%-freebsd-ia32.zip +%%DATADIR%%/resources.pak +%%DATADIR%%/resources/default_app.asar +%%DATADIR%%/snapshot_blob.bin +%%DATADIR%%/v8_context_snapshot.bin +%%DATADIR%%/v8_context_snapshot_generator +%%DATADIR%%/version +%%DATADIR%%/vk_swiftshader_icd.json diff --git a/devel/glaze/Makefile b/devel/glaze/Makefile index 88603865f66b..96450c2aff10 100644 --- a/devel/glaze/Makefile +++ b/devel/glaze/Makefile @@ -1,6 +1,6 @@ PORTNAME= glaze DISTVERSIONPREFIX= v -DISTVERSION= 5.1.0 +DISTVERSION= 5.1.1 CATEGORIES= devel textproc MAINTAINER= yuri@FreeBSD.org @@ -32,6 +32,6 @@ LDFLAGS+= -pthread NO_ARCH= yes -# tests as of 5.1.0: 100% tests passed, 0 tests failed out of 26 +# tests as of 5.1.1: 100% tests passed, 0 tests failed out of 26 .include <bsd.port.mk> diff --git a/devel/glaze/distinfo b/devel/glaze/distinfo index d658425a48d9..d39ee17fbf82 100644 --- a/devel/glaze/distinfo +++ b/devel/glaze/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744343351 -SHA256 (stephenberry-glaze-v5.1.0_GH0.tar.gz) = c91265728918f914a69a935e2d1dbca26d025170b6d338220fc83b698c913f80 -SIZE (stephenberry-glaze-v5.1.0_GH0.tar.gz) = 576307 +TIMESTAMP = 1747332693 +SHA256 (stephenberry-glaze-v5.1.1_GH0.tar.gz) = 7fed59aae4c09b27761c6c94e1e450ed30ddc4d7303ddc70591ec268d90512f5 +SIZE (stephenberry-glaze-v5.1.1_GH0.tar.gz) = 577933 diff --git a/devel/glrparser/Makefile b/devel/glrparser/Makefile index c88d65c25840..78502dd79ecb 100644 --- a/devel/glrparser/Makefile +++ b/devel/glrparser/Makefile @@ -8,6 +8,10 @@ MAINTAINER= ports@FreeBSD.org COMMENT= Parser which works with the GLR(0) algorithm WWW= https://nlp.fi.muni.cz/projekty/glr/ +BROKEN= Unfetchable +DEPRECATED= Unfetchable, unmaintained and upstream is gone +EXPIRATION_DATE=2025-06-30 + GNU_CONFIGURE= yes .include <bsd.port.mk> diff --git a/devel/glui/Makefile b/devel/glui/Makefile index baaa3aadd4cf..d2cea234c8e2 100644 --- a/devel/glui/Makefile +++ b/devel/glui/Makefile @@ -8,6 +8,9 @@ MAINTAINER= ports@FreeBSD.org COMMENT= GLUT-based C++ user interface library WWW= http://www.cs.unc.edu/~rademach/glui/ +DEPRECATED= Abandoned upstream, outdated, last release in 2015 and upstream activity in 2019 +EXPIRATION_DATE=2025-06-30 + USES= gl gmake tar:tgz xorg USE_GL= glut USE_XORG= xmu xext x11 xi diff --git a/devel/google-perftools/Makefile b/devel/google-perftools/Makefile index 6bc2d725cf7a..e19535841e92 100644 --- a/devel/google-perftools/Makefile +++ b/devel/google-perftools/Makefile @@ -1,6 +1,6 @@ PORTNAME= google-perftools DISTVERSIONPREFIX= gperftools- -DISTVERSION= 2.16 +DISTVERSION= 2.16.90 CATEGORIES= devel MASTER_SITES= https://github.com/gperftools/gperftools/releases/download/gperftools-${PORTVERSION}/ DISTNAME= gperftools-${PORTVERSION} @@ -90,7 +90,6 @@ post-build: @${ECHO} post-install: - ${MV} ${STAGEDIR}${PREFIX}/bin/pprof ${STAGEDIR}${PREFIX}/bin/perftools-pprof @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib*.so.* .include <bsd.port.post.mk> diff --git a/devel/google-perftools/distinfo b/devel/google-perftools/distinfo index 998f96d8e9db..094925f6059a 100644 --- a/devel/google-perftools/distinfo +++ b/devel/google-perftools/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1730785956 -SHA256 (gperftools-2.16.tar.gz) = f12624af5c5987f2cc830ee534f754c3c5961eec08004c26a8b80de015cf056f -SIZE (gperftools-2.16.tar.gz) = 2405927 +TIMESTAMP = 1747160617 +SHA256 (gperftools-2.16.90.tar.gz) = 8c7e811aefbb5ce5d486238bf77470199d1531bf4eadef89dc8cc0a310ed90cc +SIZE (gperftools-2.16.90.tar.gz) = 2807674 diff --git a/devel/google-perftools/files/patch-src_pprof b/devel/google-perftools/files/patch-src_pprof deleted file mode 100644 index accf0ec4f4cb..000000000000 --- a/devel/google-perftools/files/patch-src_pprof +++ /dev/null @@ -1,11 +0,0 @@ ---- src/pprof.orig 2017-07-06 15:20:46 UTC -+++ src/pprof -@@ -4520,7 +4520,7 @@ sub ParseLibraries { - my $finish; - my $offset; - my $lib; -- if ($l =~ /^($h)-($h)\s+..x.\s+($h)\s+\S+:\S+\s+\d+\s+(.+\.(so|dll|dylib|bundle|node)((\.\d+)+\w*(\.\d+){0,3})?)$/i) { -+ if ($l =~ /^($h)-($h)\s+..x.\s+($h)\s+\S+:\S+\s+\d+\s+(.+\.(so|dll|dylib|bundle|node)((\.\d+)+\w*(\.\d+){0,3})?)\s+[A-Z]+\s+[\-0-9]+$/i) { - # Full line from /proc/self/maps. Example: - # 40000000-40015000 r-xp 00000000 03:01 12845071 /lib/ld-2.3.2.so - $start = HexExtend($1); diff --git a/devel/google-perftools/pkg-plist b/devel/google-perftools/pkg-plist index 85b6f5bbe16c..a99b937540bb 100644 --- a/devel/google-perftools/pkg-plist +++ b/devel/google-perftools/pkg-plist @@ -1,5 +1,3 @@ -bin/perftools-pprof -bin/pprof-symbolize include/gperftools/heap-checker.h include/gperftools/heap-profiler.h include/gperftools/malloc_extension.h @@ -13,30 +11,29 @@ include/gperftools/tcmalloc.h %%PROFILER%%lib/libprofiler.a %%PROFILER%%lib/libprofiler.so %%PROFILER%%lib/libprofiler.so.0 -%%PROFILER%%lib/libprofiler.so.0.5.13 +%%PROFILER%%lib/libprofiler.so.0.5.14 lib/libtcmalloc.a lib/libtcmalloc.so lib/libtcmalloc.so.4 -lib/libtcmalloc.so.4.5.18 +lib/libtcmalloc.so.4.6.0 %%PROFILER%%lib/libtcmalloc_and_profiler.a %%PROFILER%%lib/libtcmalloc_and_profiler.so %%PROFILER%%lib/libtcmalloc_and_profiler.so.4 -%%PROFILER%%lib/libtcmalloc_and_profiler.so.4.6.13 +%%PROFILER%%lib/libtcmalloc_and_profiler.so.4.7.0 lib/libtcmalloc_debug.a lib/libtcmalloc_debug.so lib/libtcmalloc_debug.so.4 -lib/libtcmalloc_debug.so.4.5.18 +lib/libtcmalloc_debug.so.4.6.0 lib/libtcmalloc_minimal.a lib/libtcmalloc_minimal.so lib/libtcmalloc_minimal.so.4 -lib/libtcmalloc_minimal.so.4.5.18 +lib/libtcmalloc_minimal.so.4.6.0 lib/libtcmalloc_minimal_debug.a lib/libtcmalloc_minimal_debug.so lib/libtcmalloc_minimal_debug.so.4 -lib/libtcmalloc_minimal_debug.so.4.5.18 +lib/libtcmalloc_minimal_debug.so.4.6.0 %%PROFILER%%libdata/pkgconfig/libprofiler.pc libdata/pkgconfig/libtcmalloc.pc libdata/pkgconfig/libtcmalloc_debug.pc libdata/pkgconfig/libtcmalloc_minimal.pc libdata/pkgconfig/libtcmalloc_minimal_debug.pc -share/man/man1/pprof.1.gz diff --git a/devel/got/Makefile b/devel/got/Makefile index 707a42d262b4..8497aa98a7b4 100644 --- a/devel/got/Makefile +++ b/devel/got/Makefile @@ -1,5 +1,5 @@ PORTNAME= got -DISTVERSION= 0.111 +DISTVERSION= 0.112 CATEGORIES= devel MASTER_SITES= https://gameoftrees.org/releases/portable/ DISTNAME= got-portable-${DISTVERSION} diff --git a/devel/got/distinfo b/devel/got/distinfo index 99d3f0e51dec..c2e06fa42ff3 100644 --- a/devel/got/distinfo +++ b/devel/got/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745444709 -SHA256 (got-portable-0.111.tar.gz) = d096f76e91a700dd0d22fbaf9641c2b94f8a6de16f09b0f4939c9b96a9d878ce -SIZE (got-portable-0.111.tar.gz) = 1566105 +TIMESTAMP = 1747408088 +SHA256 (got-portable-0.112.tar.gz) = e336694fe91112bf8c804a574e46f796e1538793e931dd7c4c0a0413672afd89 +SIZE (got-portable-0.112.tar.gz) = 1568016 diff --git a/devel/grcov/Makefile b/devel/grcov/Makefile index 3d8216c32c70..957429efb713 100644 --- a/devel/grcov/Makefile +++ b/devel/grcov/Makefile @@ -1,6 +1,6 @@ PORTNAME= grcov DISTVERSIONPREFIX= v -DISTVERSION= 0.9.1 +DISTVERSION= 0.10.0 CATEGORIES= devel MAINTAINER= yuri@FreeBSD.org @@ -16,153 +16,155 @@ USE_GITHUB= yes GH_ACCOUNT= mozilla CARGO_CRATES= adler2-2.0.0 \ + ahash-0.8.12 \ aho-corasick-1.1.3 \ android-tzdata-0.1.1 \ android_system_properties-0.1.5 \ - anstream-0.6.15 \ - anstyle-1.0.8 \ - anstyle-parse-0.2.5 \ - anstyle-query-1.1.1 \ - anstyle-wincon-3.0.4 \ + anstream-0.6.18 \ + anstyle-1.0.10 \ + anstyle-parse-0.2.6 \ + anstyle-query-1.1.2 \ + anstyle-wincon-3.0.7 \ arbitrary-1.4.1 \ autocfg-1.4.0 \ - bitflags-2.6.0 \ + bitflags-2.9.1 \ block-buffer-0.10.4 \ - bstr-1.10.0 \ - bumpalo-3.16.0 \ + bstr-1.12.0 \ + bumpalo-3.17.0 \ bytecount-0.6.8 \ byteorder-1.5.0 \ - cc-1.1.30 \ + cc-1.2.22 \ cfb-0.7.3 \ cfg-if-1.0.0 \ - chrono-0.4.40 \ + chrono-0.4.41 \ chrono-tz-0.9.0 \ chrono-tz-build-0.3.0 \ - clap-4.5.35 \ - clap_builder-4.5.35 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ clap_derive-4.5.32 \ clap_lex-0.7.4 \ - colorchoice-1.0.2 \ + colorchoice-1.0.3 \ core-foundation-sys-0.8.7 \ cpp_demangle-0.4.4 \ - cpufeatures-0.2.14 \ + cpufeatures-0.2.17 \ crc32fast-1.4.2 \ - crossbeam-channel-0.5.14 \ - crossbeam-deque-0.8.5 \ + crossbeam-channel-0.5.15 \ + crossbeam-deque-0.8.6 \ crossbeam-epoch-0.9.18 \ crossbeam-utils-0.8.21 \ crypto-common-0.1.6 \ debugid-0.8.0 \ - deranged-0.3.11 \ + deranged-0.4.0 \ derive_arbitrary-1.4.1 \ - deunicode-1.6.0 \ + deunicode-1.6.2 \ diff-0.1.13 \ digest-0.10.7 \ - either-1.13.0 \ - equivalent-1.0.1 \ - errno-0.3.10 \ - fastrand-2.1.1 \ + either-1.15.0 \ + equivalent-1.0.2 \ + errno-0.3.12 \ + fastrand-2.3.0 \ flate2-1.1.1 \ fnv-1.0.7 \ generic-array-0.14.7 \ - getrandom-0.2.15 \ - getrandom-0.3.1 \ + getrandom-0.2.16 \ + getrandom-0.3.3 \ globset-0.4.16 \ globwalk-0.9.1 \ - hashbrown-0.15.0 \ + hashbrown-0.15.3 \ heck-0.5.0 \ hermit-abi-0.3.9 \ humansize-2.1.3 \ - iana-time-zone-0.1.61 \ + iana-time-zone-0.1.63 \ iana-time-zone-haiku-0.1.2 \ ignore-0.4.23 \ - indexmap-2.6.0 \ + indexmap-2.9.0 \ infer-0.19.0 \ is_terminal_polyfill-1.70.1 \ - itoa-1.0.11 \ - js-sys-0.3.72 \ + itoa-1.0.15 \ + js-sys-0.3.77 \ lazy_static-1.5.0 \ - libc-0.2.171 \ - libm-0.2.8 \ - libz-sys-1.1.20 \ - linux-raw-sys-0.4.14 \ - linux-raw-sys-0.9.3 \ - lockfree-object-pool-0.1.6 \ + libc-0.2.172 \ + libm-0.2.15 \ + libz-rs-sys-0.5.0 \ + libz-sys-1.1.22 \ + linux-raw-sys-0.9.4 \ log-0.4.27 \ md-5-0.10.6 \ memchr-2.7.4 \ memmap2-0.9.5 \ - miniz_oxide-0.8.5 \ + miniz_oxide-0.8.8 \ msvc-demangler-0.10.1 \ num-conv-0.1.0 \ num-traits-0.2.19 \ num_cpus-1.16.0 \ num_threads-0.1.7 \ once_cell-1.21.3 \ - papergrid-0.14.0 \ + papergrid-0.15.0 \ parse-zoneinfo-0.3.1 \ percent-encoding-2.3.1 \ - pest-2.7.14 \ - pest_derive-2.7.14 \ - pest_generator-2.7.14 \ - pest_meta-2.7.14 \ - phf-0.11.2 \ - phf_codegen-0.11.2 \ - phf_generator-0.11.2 \ - phf_shared-0.11.2 \ - pkg-config-0.3.31 \ + pest-2.8.0 \ + pest_derive-2.8.0 \ + pest_generator-2.8.0 \ + pest_meta-2.8.0 \ + phf-0.11.3 \ + phf_codegen-0.11.3 \ + phf_generator-0.11.3 \ + phf_shared-0.11.3 \ + pkg-config-0.3.32 \ powerfmt-0.2.0 \ - ppv-lite86-0.2.20 \ + ppv-lite86-0.2.21 \ pretty_assertions-1.4.1 \ proc-macro-error-attr2-2.0.0 \ proc-macro-error2-2.0.1 \ - proc-macro2-1.0.94 \ - quick-xml-0.37.4 \ - quote-1.0.37 \ + proc-macro2-1.0.95 \ + quick-xml-0.37.5 \ + quote-1.0.40 \ + r-efi-5.2.0 \ rand-0.8.5 \ rand_chacha-0.3.1 \ rand_core-0.6.4 \ rayon-1.10.0 \ rayon-core-1.12.1 \ regex-1.11.1 \ - regex-automata-0.4.8 \ + regex-automata-0.4.9 \ regex-syntax-0.8.5 \ rustc-demangle-0.1.24 \ rustc-hash-2.1.1 \ rustc_version-0.4.1 \ - rustix-0.38.37 \ - rustix-1.0.2 \ - ryu-1.0.18 \ + rustix-1.0.7 \ + rustversion-1.0.20 \ + ryu-1.0.20 \ same-file-1.0.6 \ semver-1.0.26 \ serde-1.0.219 \ serde_derive-1.0.219 \ serde_json-1.0.140 \ - sha2-0.10.8 \ + sha2-0.10.9 \ shlex-1.3.0 \ simd-adler32-0.3.7 \ simplelog-0.12.2 \ - siphasher-0.3.11 \ + siphasher-1.0.1 \ slug-0.1.6 \ smallvec-1.15.0 \ stable_deref_trait-1.2.0 \ strsim-0.11.1 \ - symbolic-common-12.14.1 \ - symbolic-demangle-12.14.1 \ - syn-2.0.100 \ - tabled-0.18.0 \ - tabled_derive-0.10.0 \ + symbolic-common-12.15.5 \ + symbolic-demangle-12.15.5 \ + syn-2.0.101 \ + tabled-0.19.0 \ + tabled_derive-0.11.0 \ tcmalloc-0.3.0 \ - tempfile-3.19.1 \ + tempfile-3.20.0 \ tera-1.20.0 \ termcolor-1.4.1 \ - terminal_size-0.4.0 \ - thiserror-1.0.64 \ - thiserror-impl-1.0.64 \ - time-0.3.36 \ - time-core-0.1.2 \ - time-macros-0.2.18 \ - typenum-1.17.0 \ + terminal_size-0.4.2 \ + testing_table-0.3.0 \ + thiserror-2.0.12 \ + thiserror-impl-2.0.12 \ + time-0.3.41 \ + time-core-0.1.4 \ + time-macros-0.2.22 \ + typenum-1.18.0 \ ucd-trie-0.1.7 \ unic-char-property-0.9.0 \ unic-char-range-0.9.0 \ @@ -170,7 +172,7 @@ CARGO_CRATES= adler2-2.0.0 \ unic-segment-0.9.0 \ unic-ucd-segment-0.9.0 \ unic-ucd-version-0.9.0 \ - unicode-ident-1.0.13 \ + unicode-ident-1.0.18 \ unicode-width-0.2.0 \ utf8parse-0.2.2 \ uuid-1.16.0 \ @@ -178,16 +180,19 @@ CARGO_CRATES= adler2-2.0.0 \ version_check-0.9.5 \ walkdir-2.5.0 \ wasi-0.11.0+wasi-snapshot-preview1 \ - wasi-0.13.3+wasi-0.2.2 \ - wasm-bindgen-0.2.95 \ - wasm-bindgen-backend-0.2.95 \ - wasm-bindgen-macro-0.2.95 \ - wasm-bindgen-macro-support-0.2.95 \ - wasm-bindgen-shared-0.2.95 \ + wasi-0.14.2+wasi-0.2.4 \ + wasm-bindgen-0.2.100 \ + wasm-bindgen-backend-0.2.100 \ + wasm-bindgen-macro-0.2.100 \ + wasm-bindgen-macro-support-0.2.100 \ + wasm-bindgen-shared-0.2.100 \ winapi-util-0.1.9 \ - windows-core-0.52.0 \ - windows-link-0.1.0 \ - windows-sys-0.52.0 \ + windows-core-0.61.1 \ + windows-implement-0.60.0 \ + windows-interface-0.59.1 \ + windows-link-0.1.1 \ + windows-result-0.3.3 \ + windows-strings-0.4.1 \ windows-sys-0.59.0 \ windows-targets-0.52.6 \ windows_aarch64_gnullvm-0.52.6 \ @@ -198,12 +203,13 @@ CARGO_CRATES= adler2-2.0.0 \ windows_x86_64_gnu-0.52.6 \ windows_x86_64_gnullvm-0.52.6 \ windows_x86_64_msvc-0.52.6 \ - wit-bindgen-rt-0.33.0 \ + wit-bindgen-rt-0.39.0 \ yansi-1.0.1 \ - zerocopy-0.7.35 \ - zerocopy-derive-0.7.35 \ - zip-2.6.1 \ - zopfli-0.8.1 + zerocopy-0.8.25 \ + zerocopy-derive-0.8.25 \ + zip-3.0.0 \ + zlib-rs-0.5.0 \ + zopfli-0.8.2 PLIST_FILES= bin/grcov diff --git a/devel/grcov/distinfo b/devel/grcov/distinfo index 96259328f637..00e66234d981 100644 --- a/devel/grcov/distinfo +++ b/devel/grcov/distinfo @@ -1,72 +1,74 @@ -TIMESTAMP = 1744790416 +TIMESTAMP = 1747368137 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 SIZE (rust/crates/adler2-2.0.0.crate) = 13529 +SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75 +SIZE (rust/crates/ahash-0.8.12.crate) = 43413 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311 SHA256 (rust/crates/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.6.15.crate) = 64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526 -SIZE (rust/crates/anstream-0.6.15.crate) = 29231 -SHA256 (rust/crates/anstyle-1.0.8.crate) = 1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1 -SIZE (rust/crates/anstyle-1.0.8.crate) = 15771 -SHA256 (rust/crates/anstyle-parse-0.2.5.crate) = eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb -SIZE (rust/crates/anstyle-parse-0.2.5.crate) = 22680 -SHA256 (rust/crates/anstyle-query-1.1.1.crate) = 6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a -SIZE (rust/crates/anstyle-query-1.1.1.crate) = 9891 -SHA256 (rust/crates/anstyle-wincon-3.0.4.crate) = 5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8 -SIZE (rust/crates/anstyle-wincon-3.0.4.crate) = 12234 +SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b +SIZE (rust/crates/anstream-0.6.18.crate) = 29681 +SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9 +SIZE (rust/crates/anstyle-1.0.10.crate) = 15725 +SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9 +SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343 +SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c +SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969 +SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e +SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400 SHA256 (rust/crates/arbitrary-1.4.1.crate) = dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223 SIZE (rust/crates/arbitrary-1.4.1.crate) = 36816 SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 -SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de -SIZE (rust/crates/bitflags-2.6.0.crate) = 45357 +SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967 +SIZE (rust/crates/bitflags-2.9.1.crate) = 47913 SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71 SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 -SHA256 (rust/crates/bstr-1.10.0.crate) = 40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c -SIZE (rust/crates/bstr-1.10.0.crate) = 380426 -SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c -SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677 +SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4 +SIZE (rust/crates/bstr-1.12.0.crate) = 351557 +SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf +SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 SHA256 (rust/crates/bytecount-0.6.8.crate) = 5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce SIZE (rust/crates/bytecount-0.6.8.crate) = 14694 SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 -SHA256 (rust/crates/cc-1.1.30.crate) = b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945 -SIZE (rust/crates/cc-1.1.30.crate) = 84509 +SHA256 (rust/crates/cc-1.2.22.crate) = 32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1 +SIZE (rust/crates/cc-1.2.22.crate) = 106294 SHA256 (rust/crates/cfb-0.7.3.crate) = d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f SIZE (rust/crates/cfb-0.7.3.crate) = 63277 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.40.crate) = 1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c -SIZE (rust/crates/chrono-0.4.40.crate) = 229824 +SHA256 (rust/crates/chrono-0.4.41.crate) = c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d +SIZE (rust/crates/chrono-0.4.41.crate) = 234621 SHA256 (rust/crates/chrono-tz-0.9.0.crate) = 93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb SIZE (rust/crates/chrono-tz-0.9.0.crate) = 361570 SHA256 (rust/crates/chrono-tz-build-0.3.0.crate) = 0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1 SIZE (rust/crates/chrono-tz-build-0.3.0.crate) = 6139 -SHA256 (rust/crates/clap-4.5.35.crate) = d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944 -SIZE (rust/crates/clap-4.5.35.crate) = 56970 -SHA256 (rust/crates/clap_builder-4.5.35.crate) = 2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9 -SIZE (rust/crates/clap_builder-4.5.35.crate) = 168525 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 -SHA256 (rust/crates/colorchoice-1.0.2.crate) = d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0 -SIZE (rust/crates/colorchoice-1.0.2.crate) = 7924 +SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990 +SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923 SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712 SHA256 (rust/crates/cpp_demangle-0.4.4.crate) = 96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d SIZE (rust/crates/cpp_demangle-0.4.4.crate) = 79650 -SHA256 (rust/crates/cpufeatures-0.2.14.crate) = 608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0 -SIZE (rust/crates/cpufeatures-0.2.14.crate) = 13165 +SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280 +SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466 SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 -SHA256 (rust/crates/crossbeam-channel-0.5.14.crate) = 06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471 -SIZE (rust/crates/crossbeam-channel-0.5.14.crate) = 92728 -SHA256 (rust/crates/crossbeam-deque-0.8.5.crate) = 613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d -SIZE (rust/crates/crossbeam-deque-0.8.5.crate) = 21726 +SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2 +SIZE (rust/crates/crossbeam-channel-0.5.15.crate) = 92716 +SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51 +SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471 SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875 SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28 @@ -75,76 +77,74 @@ SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760 SHA256 (rust/crates/debugid-0.8.0.crate) = bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d SIZE (rust/crates/debugid-0.8.0.crate) = 12757 -SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4 -SIZE (rust/crates/deranged-0.3.11.crate) = 18043 +SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e +SIZE (rust/crates/deranged-0.4.0.crate) = 23235 SHA256 (rust/crates/derive_arbitrary-1.4.1.crate) = 30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800 SIZE (rust/crates/derive_arbitrary-1.4.1.crate) = 11521 -SHA256 (rust/crates/deunicode-1.6.0.crate) = 339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00 -SIZE (rust/crates/deunicode-1.6.0.crate) = 170864 +SHA256 (rust/crates/deunicode-1.6.2.crate) = abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04 +SIZE (rust/crates/deunicode-1.6.2.crate) = 172772 SHA256 (rust/crates/diff-0.1.13.crate) = 56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8 SIZE (rust/crates/diff-0.1.13.crate) = 46216 SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 SIZE (rust/crates/digest-0.10.7.crate) = 19557 -SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0 -SIZE (rust/crates/either-1.13.0.crate) = 19169 -SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 -SIZE (rust/crates/equivalent-1.0.1.crate) = 6615 -SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d -SIZE (rust/crates/errno-0.3.10.crate) = 11824 -SHA256 (rust/crates/fastrand-2.1.1.crate) = e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6 -SIZE (rust/crates/fastrand-2.1.1.crate) = 14983 +SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719 +SIZE (rust/crates/either-1.15.0.crate) = 20114 +SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f +SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 +SHA256 (rust/crates/errno-0.3.12.crate) = cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18 +SIZE (rust/crates/errno-0.3.12.crate) = 12423 +SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be +SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 SHA256 (rust/crates/flate2-1.1.1.crate) = 7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece SIZE (rust/crates/flate2-1.1.1.crate) = 77224 SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 SIZE (rust/crates/fnv-1.0.7.crate) = 11266 SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a SIZE (rust/crates/generic-array-0.14.7.crate) = 15950 -SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 -SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 -SHA256 (rust/crates/getrandom-0.3.1.crate) = 43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8 -SIZE (rust/crates/getrandom-0.3.1.crate) = 42449 +SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592 +SIZE (rust/crates/getrandom-0.2.16.crate) = 40163 +SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4 +SIZE (rust/crates/getrandom-0.3.3.crate) = 49493 SHA256 (rust/crates/globset-0.4.16.crate) = 54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5 SIZE (rust/crates/globset-0.4.16.crate) = 26533 SHA256 (rust/crates/globwalk-0.9.1.crate) = 0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757 SIZE (rust/crates/globwalk-0.9.1.crate) = 12572 -SHA256 (rust/crates/hashbrown-0.15.0.crate) = 1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb -SIZE (rust/crates/hashbrown-0.15.0.crate) = 136460 +SHA256 (rust/crates/hashbrown-0.15.3.crate) = 84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3 +SIZE (rust/crates/hashbrown-0.15.3.crate) = 140413 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/humansize-2.1.3.crate) = 6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7 SIZE (rust/crates/humansize-2.1.3.crate) = 11953 -SHA256 (rust/crates/iana-time-zone-0.1.61.crate) = 235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220 -SIZE (rust/crates/iana-time-zone-0.1.61.crate) = 27685 +SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8 +SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919 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/ignore-0.4.23.crate) = 6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b SIZE (rust/crates/ignore-0.4.23.crate) = 55901 -SHA256 (rust/crates/indexmap-2.6.0.crate) = 707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da -SIZE (rust/crates/indexmap-2.6.0.crate) = 85204 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/infer-0.19.0.crate) = a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7 SIZE (rust/crates/infer-0.19.0.crate) = 19091 SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 -SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b -SIZE (rust/crates/itoa-1.0.11.crate) = 10563 -SHA256 (rust/crates/js-sys-0.3.72.crate) = 6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9 -SIZE (rust/crates/js-sys-0.3.72.crate) = 54096 +SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c +SIZE (rust/crates/itoa-1.0.15.crate) = 11231 +SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f +SIZE (rust/crates/js-sys-0.3.77.crate) = 55538 SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 -SHA256 (rust/crates/libc-0.2.171.crate) = c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6 -SIZE (rust/crates/libc-0.2.171.crate) = 785246 -SHA256 (rust/crates/libm-0.2.8.crate) = 4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058 -SIZE (rust/crates/libm-0.2.8.crate) = 113450 -SHA256 (rust/crates/libz-sys-1.1.20.crate) = d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472 -SIZE (rust/crates/libz-sys-1.1.20.crate) = 830422 -SHA256 (rust/crates/linux-raw-sys-0.4.14.crate) = 78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89 -SIZE (rust/crates/linux-raw-sys-0.4.14.crate) = 1826665 -SHA256 (rust/crates/linux-raw-sys-0.9.3.crate) = fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413 -SIZE (rust/crates/linux-raw-sys-0.9.3.crate) = 2311047 -SHA256 (rust/crates/lockfree-object-pool-0.1.6.crate) = 9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e -SIZE (rust/crates/lockfree-object-pool-0.1.6.crate) = 12309 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 +SHA256 (rust/crates/libm-0.2.15.crate) = f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de +SIZE (rust/crates/libm-0.2.15.crate) = 156108 +SHA256 (rust/crates/libz-rs-sys-0.5.0.crate) = 6489ca9bd760fe9642d7644e827b0c9add07df89857b0416ee15c1cc1a3b8c5a +SIZE (rust/crates/libz-rs-sys-0.5.0.crate) = 17014 +SHA256 (rust/crates/libz-sys-1.1.22.crate) = 8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d +SIZE (rust/crates/libz-sys-1.1.22.crate) = 841053 +SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12 +SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088 SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 SIZE (rust/crates/log-0.4.27.crate) = 48120 SHA256 (rust/crates/md-5-0.10.6.crate) = d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf @@ -153,8 +153,8 @@ SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf SIZE (rust/crates/memchr-2.7.4.crate) = 96670 SHA256 (rust/crates/memmap2-0.9.5.crate) = fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f SIZE (rust/crates/memmap2-0.9.5.crate) = 33280 -SHA256 (rust/crates/miniz_oxide-0.8.5.crate) = 8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5 -SIZE (rust/crates/miniz_oxide-0.8.5.crate) = 62237 +SHA256 (rust/crates/miniz_oxide-0.8.8.crate) = 3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a +SIZE (rust/crates/miniz_oxide-0.8.8.crate) = 67065 SHA256 (rust/crates/msvc-demangler-0.10.1.crate) = c4c25a3bb7d880e8eceab4822f3141ad0700d20f025991c1f03bd3d00219a5fc SIZE (rust/crates/msvc-demangler-0.10.1.crate) = 51322 SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9 @@ -167,46 +167,48 @@ SHA256 (rust/crates/num_threads-0.1.7.crate) = 5c7398b9c8b70908f6371f47ed3673790 SIZE (rust/crates/num_threads-0.1.7.crate) = 7455 SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 -SHA256 (rust/crates/papergrid-0.14.0.crate) = b915f831b85d984193fdc3d3611505871dc139b2534530fa01c1a6a6707b6723 -SIZE (rust/crates/papergrid-0.14.0.crate) = 57733 +SHA256 (rust/crates/papergrid-0.15.0.crate) = 30268a8d20c2c0d126b2b6610ab405f16517f6ba9f244d8c59ac2c512a8a1ce7 +SIZE (rust/crates/papergrid-0.15.0.crate) = 58592 SHA256 (rust/crates/parse-zoneinfo-0.3.1.crate) = 1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24 SIZE (rust/crates/parse-zoneinfo-0.3.1.crate) = 97290 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.14.crate) = 879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442 -SIZE (rust/crates/pest-2.7.14.crate) = 128275 -SHA256 (rust/crates/pest_derive-2.7.14.crate) = d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd -SIZE (rust/crates/pest_derive-2.7.14.crate) = 38801 -SHA256 (rust/crates/pest_generator-2.7.14.crate) = eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e -SIZE (rust/crates/pest_generator-2.7.14.crate) = 18413 -SHA256 (rust/crates/pest_meta-2.7.14.crate) = b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d -SIZE (rust/crates/pest_meta-2.7.14.crate) = 42079 -SHA256 (rust/crates/phf-0.11.2.crate) = ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc -SIZE (rust/crates/phf-0.11.2.crate) = 21569 -SHA256 (rust/crates/phf_codegen-0.11.2.crate) = e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a -SIZE (rust/crates/phf_codegen-0.11.2.crate) = 12977 -SHA256 (rust/crates/phf_generator-0.11.2.crate) = 48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0 -SIZE (rust/crates/phf_generator-0.11.2.crate) = 14190 -SHA256 (rust/crates/phf_shared-0.11.2.crate) = 90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b -SIZE (rust/crates/phf_shared-0.11.2.crate) = 14284 -SHA256 (rust/crates/pkg-config-0.3.31.crate) = 953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2 -SIZE (rust/crates/pkg-config-0.3.31.crate) = 20880 +SHA256 (rust/crates/pest-2.8.0.crate) = 198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6 +SIZE (rust/crates/pest-2.8.0.crate) = 128955 +SHA256 (rust/crates/pest_derive-2.8.0.crate) = d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5 +SIZE (rust/crates/pest_derive-2.8.0.crate) = 42196 +SHA256 (rust/crates/pest_generator-2.8.0.crate) = db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841 +SIZE (rust/crates/pest_generator-2.8.0.crate) = 18617 +SHA256 (rust/crates/pest_meta-2.8.0.crate) = 7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0 +SIZE (rust/crates/pest_meta-2.8.0.crate) = 42931 +SHA256 (rust/crates/phf-0.11.3.crate) = 1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078 +SIZE (rust/crates/phf-0.11.3.crate) = 23231 +SHA256 (rust/crates/phf_codegen-0.11.3.crate) = aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a +SIZE (rust/crates/phf_codegen-0.11.3.crate) = 13741 +SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d +SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431 +SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5 +SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199 +SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c +SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370 SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391 SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165 -SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04 -SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478 +SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9 +SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522 SHA256 (rust/crates/pretty_assertions-1.4.1.crate) = 3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d SIZE (rust/crates/pretty_assertions-1.4.1.crate) = 78952 SHA256 (rust/crates/proc-macro-error-attr2-2.0.0.crate) = 96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5 SIZE (rust/crates/proc-macro-error-attr2-2.0.0.crate) = 7745 SHA256 (rust/crates/proc-macro-error2-2.0.1.crate) = 11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802 SIZE (rust/crates/proc-macro-error2-2.0.1.crate) = 24807 -SHA256 (rust/crates/proc-macro2-1.0.94.crate) = a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84 -SIZE (rust/crates/proc-macro2-1.0.94.crate) = 52391 -SHA256 (rust/crates/quick-xml-0.37.4.crate) = a4ce8c88de324ff838700f36fb6ab86c96df0e3c4ab6ef3a9b2044465cce1369 -SIZE (rust/crates/quick-xml-0.37.4.crate) = 190389 -SHA256 (rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af -SIZE (rust/crates/quote-1.0.37.crate) = 28558 +SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 +SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 +SHA256 (rust/crates/quick-xml-0.37.5.crate) = 331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb +SIZE (rust/crates/quick-xml-0.37.5.crate) = 190481 +SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d +SIZE (rust/crates/quote-1.0.40.crate) = 31063 +SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5 +SIZE (rust/crates/r-efi-5.2.0.crate) = 64764 SHA256 (rust/crates/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 @@ -219,8 +221,8 @@ SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caa SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701 SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 SIZE (rust/crates/regex-1.11.1.crate) = 254170 -SHA256 (rust/crates/regex-automata-0.4.8.crate) = 368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3 -SIZE (rust/crates/regex-automata-0.4.8.crate) = 617784 +SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908 +SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525 SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541 SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f @@ -229,12 +231,12 @@ SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b6 SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154 SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92 SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245 -SHA256 (rust/crates/rustix-0.38.37.crate) = 8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811 -SIZE (rust/crates/rustix-0.38.37.crate) = 371243 -SHA256 (rust/crates/rustix-1.0.2.crate) = f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825 -SIZE (rust/crates/rustix-1.0.2.crate) = 411835 -SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f -SIZE (rust/crates/ryu-1.0.18.crate) = 47713 +SHA256 (rust/crates/rustix-1.0.7.crate) = c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266 +SIZE (rust/crates/rustix-1.0.7.crate) = 414500 +SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2 +SIZE (rust/crates/rustversion-1.0.20.crate) = 20666 +SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f +SIZE (rust/crates/ryu-1.0.20.crate) = 48738 SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 SIZE (rust/crates/same-file-1.0.6.crate) = 10183 SHA256 (rust/crates/semver-1.0.26.crate) = 56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0 @@ -245,16 +247,16 @@ SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21 SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 -SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8 -SIZE (rust/crates/sha2-0.10.8.crate) = 26357 +SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283 +SIZE (rust/crates/sha2-0.10.9.crate) = 29271 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (rust/crates/shlex-1.3.0.crate) = 18713 SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086 SHA256 (rust/crates/simplelog-0.12.2.crate) = 16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0 SIZE (rust/crates/simplelog-0.12.2.crate) = 21548 -SHA256 (rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d -SIZE (rust/crates/siphasher-0.3.11.crate) = 10442 +SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d +SIZE (rust/crates/siphasher-1.0.1.crate) = 10351 SHA256 (rust/crates/slug-0.1.6.crate) = 882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724 SIZE (rust/crates/slug-0.1.6.crate) = 6787 SHA256 (rust/crates/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9 @@ -263,38 +265,40 @@ SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8 SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054 SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f SIZE (rust/crates/strsim-0.11.1.crate) = 14266 -SHA256 (rust/crates/symbolic-common-12.14.1.crate) = 66135c8273581acaab470356f808a1c74a707fe7ec24728af019d7247e089e71 -SIZE (rust/crates/symbolic-common-12.14.1.crate) = 27929 -SHA256 (rust/crates/symbolic-demangle-12.14.1.crate) = 42bcacd080282a72e795864660b148392af7babd75691d5ae9a3b77e29c98c77 -SIZE (rust/crates/symbolic-demangle-12.14.1.crate) = 192200 -SHA256 (rust/crates/syn-2.0.100.crate) = b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0 -SIZE (rust/crates/syn-2.0.100.crate) = 297947 -SHA256 (rust/crates/tabled-0.18.0.crate) = 121d8171ee5687a4978d1b244f7d99c43e7385a272185a2f1e1fa4dc0979d444 -SIZE (rust/crates/tabled-0.18.0.crate) = 231662 -SHA256 (rust/crates/tabled_derive-0.10.0.crate) = 52d9946811baad81710ec921809e2af67ad77719418673b2a3794932d57b7538 -SIZE (rust/crates/tabled_derive-0.10.0.crate) = 12251 +SHA256 (rust/crates/symbolic-common-12.15.5.crate) = 6a1150bdda9314f6cfeeea801c23f5593c6e6a6c72e64f67e48d723a12b8efdb +SIZE (rust/crates/symbolic-common-12.15.5.crate) = 27926 +SHA256 (rust/crates/symbolic-demangle-12.15.5.crate) = 9f66537def48fbc704a92e4fdaab7833bc7cb2255faca8182592fb5fa617eb82 +SIZE (rust/crates/symbolic-demangle-12.15.5.crate) = 192344 +SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf +SIZE (rust/crates/syn-2.0.101.crate) = 299250 +SHA256 (rust/crates/tabled-0.19.0.crate) = 228d124371171cd39f0f454b58f73ddebeeef3cef3207a82ffea1c29465aea43 +SIZE (rust/crates/tabled-0.19.0.crate) = 226901 +SHA256 (rust/crates/tabled_derive-0.11.0.crate) = 0ea5d1b13ca6cff1f9231ffd62f15eefd72543dab5e468735f1a456728a02846 +SIZE (rust/crates/tabled_derive-0.11.0.crate) = 12860 SHA256 (rust/crates/tcmalloc-0.3.0.crate) = 375205113d84a1c5eeed67beaa0ce08e41be1a9d5acc3425ad2381fddd9d819b SIZE (rust/crates/tcmalloc-0.3.0.crate) = 6674 -SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf -SIZE (rust/crates/tempfile-3.19.1.crate) = 39634 +SHA256 (rust/crates/tempfile-3.20.0.crate) = e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1 +SIZE (rust/crates/tempfile-3.20.0.crate) = 42306 SHA256 (rust/crates/tera-1.20.0.crate) = ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee SIZE (rust/crates/tera-1.20.0.crate) = 104452 SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755 SIZE (rust/crates/termcolor-1.4.1.crate) = 18773 -SHA256 (rust/crates/terminal_size-0.4.0.crate) = 4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef -SIZE (rust/crates/terminal_size-0.4.0.crate) = 10036 -SHA256 (rust/crates/thiserror-1.0.64.crate) = d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84 -SIZE (rust/crates/thiserror-1.0.64.crate) = 21574 -SHA256 (rust/crates/thiserror-impl-1.0.64.crate) = 08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3 -SIZE (rust/crates/thiserror-impl-1.0.64.crate) = 16073 -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.18.crate) = 3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf -SIZE (rust/crates/time-macros-0.2.18.crate) = 24361 -SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825 -SIZE (rust/crates/typenum-1.17.0.crate) = 42849 +SHA256 (rust/crates/terminal_size-0.4.2.crate) = 45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed +SIZE (rust/crates/terminal_size-0.4.2.crate) = 9976 +SHA256 (rust/crates/testing_table-0.3.0.crate) = 0f8daae29995a24f65619e19d8d31dea5b389f3d853d8bf297bbf607cd0014cc +SIZE (rust/crates/testing_table-0.3.0.crate) = 3611 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 +SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40 +SIZE (rust/crates/time-0.3.41.crate) = 138369 +SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c +SIZE (rust/crates/time-core-0.1.4.crate) = 8422 +SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49 +SIZE (rust/crates/time-macros-0.2.22.crate) = 24604 +SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f +SIZE (rust/crates/typenum-1.18.0.crate) = 74871 SHA256 (rust/crates/ucd-trie-0.1.7.crate) = 2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971 SIZE (rust/crates/ucd-trie-0.1.7.crate) = 46795 SHA256 (rust/crates/unic-char-property-0.9.0.crate) = a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221 @@ -309,8 +313,8 @@ SHA256 (rust/crates/unic-ucd-segment-0.9.0.crate) = 2079c122a62205b421f499da10f3 SIZE (rust/crates/unic-ucd-segment-0.9.0.crate) = 39262 SHA256 (rust/crates/unic-ucd-version-0.9.0.crate) = 96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4 SIZE (rust/crates/unic-ucd-version-0.9.0.crate) = 2246 -SHA256 (rust/crates/unicode-ident-1.0.13.crate) = e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe -SIZE (rust/crates/unicode-ident-1.0.13.crate) = 43279 +SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 +SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 SHA256 (rust/crates/unicode-width-0.2.0.crate) = 1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd SIZE (rust/crates/unicode-width-0.2.0.crate) = 271509 SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 @@ -325,26 +329,32 @@ SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06 SIZE (rust/crates/walkdir-2.5.0.crate) = 23951 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/wasi-0.13.3+wasi-0.2.2.crate) = 26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2 -SIZE (rust/crates/wasi-0.13.3+wasi-0.2.2.crate) = 136754 -SHA256 (rust/crates/wasm-bindgen-0.2.95.crate) = 128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e -SIZE (rust/crates/wasm-bindgen-0.2.95.crate) = 43894 -SHA256 (rust/crates/wasm-bindgen-backend-0.2.95.crate) = cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358 -SIZE (rust/crates/wasm-bindgen-backend-0.2.95.crate) = 30487 -SHA256 (rust/crates/wasm-bindgen-macro-0.2.95.crate) = e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56 -SIZE (rust/crates/wasm-bindgen-macro-0.2.95.crate) = 6938 -SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.95.crate) = 26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68 -SIZE (rust/crates/wasm-bindgen-macro-support-0.2.95.crate) = 21331 -SHA256 (rust/crates/wasm-bindgen-shared-0.2.95.crate) = 65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d -SIZE (rust/crates/wasm-bindgen-shared-0.2.95.crate) = 7649 +SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3 +SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921 +SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5 +SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288 +SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6 +SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111 +SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407 +SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d +SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570 SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464 -SHA256 (rust/crates/windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9 -SIZE (rust/crates/windows-core-0.52.0.crate) = 42154 -SHA256 (rust/crates/windows-link-0.1.0.crate) = 6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3 -SIZE (rust/crates/windows-link-0.1.0.crate) = 6153 -SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d -SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877 +SHA256 (rust/crates/windows-core-0.61.1.crate) = 46ec44dc15085cea82cf9c78f85a9114c463a369786585ad2882d1ff0b0acf40 +SIZE (rust/crates/windows-core-0.61.1.crate) = 36762 +SHA256 (rust/crates/windows-implement-0.60.0.crate) = a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836 +SIZE (rust/crates/windows-implement-0.60.0.crate) = 15073 +SHA256 (rust/crates/windows-interface-0.59.1.crate) = bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8 +SIZE (rust/crates/windows-interface-0.59.1.crate) = 11735 +SHA256 (rust/crates/windows-link-0.1.1.crate) = 76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38 +SIZE (rust/crates/windows-link-0.1.1.crate) = 6154 +SHA256 (rust/crates/windows-result-0.3.3.crate) = 4b895b5356fc36103d0f64dd1e94dfa7ac5633f1c9dd6e80fe9ec4adef69e09d +SIZE (rust/crates/windows-result-0.3.3.crate) = 13431 +SHA256 (rust/crates/windows-strings-0.4.1.crate) = 2a7ab927b2637c19b3dbe0965e75d8f2d30bdd697a1516191cad2ec4df8fb28a +SIZE (rust/crates/windows-strings-0.4.1.crate) = 13976 SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 @@ -365,17 +375,19 @@ SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681 SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 -SHA256 (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c -SIZE (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3357 +SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 +SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049 SIZE (rust/crates/yansi-1.0.1.crate) = 75497 -SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 -SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645 -SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e -SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829 -SHA256 (rust/crates/zip-2.6.1.crate) = 1dcb24d0152526ae49b9b96c1dcf71850ca1e0b882e4e28ed898a93c41334744 -SIZE (rust/crates/zip-2.6.1.crate) = 112133 -SHA256 (rust/crates/zopfli-0.8.1.crate) = e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946 -SIZE (rust/crates/zopfli-0.8.1.crate) = 50972 -SHA256 (mozilla-grcov-v0.9.1_GH0.tar.gz) = 231ed3d9c1e51a09a361a2ab9838d812b1059fc833e0a3dd84b556f5eb386d05 -SIZE (mozilla-grcov-v0.9.1_GH0.tar.gz) = 2854641 +SHA256 (rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb +SIZE (rust/crates/zerocopy-0.8.25.crate) = 252714 +SHA256 (rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef +SIZE (rust/crates/zerocopy-derive-0.8.25.crate) = 87671 +SHA256 (rust/crates/zip-3.0.0.crate) = 12598812502ed0105f607f941c386f43d441e00148fce9dec3ca5ffb0bde9308 +SIZE (rust/crates/zip-3.0.0.crate) = 112450 +SHA256 (rust/crates/zlib-rs-0.5.0.crate) = 868b928d7949e09af2f6086dfc1e01936064cc7a819253bce650d4e2a2d63ba8 +SIZE (rust/crates/zlib-rs-0.5.0.crate) = 191547 +SHA256 (rust/crates/zopfli-0.8.2.crate) = edfc5ee405f504cd4984ecc6f14d02d55cfda60fa4b689434ef4102aae150cd7 +SIZE (rust/crates/zopfli-0.8.2.crate) = 51842 +SHA256 (mozilla-grcov-v0.10.0_GH0.tar.gz) = cfecfc03f195ccc81b847a5b395f7f5435a4cc9417c64bf215a8867874b0ab87 +SIZE (mozilla-grcov-v0.10.0_GH0.tar.gz) = 2860589 diff --git a/devel/hgreviewboard/Makefile b/devel/hgreviewboard/Makefile index b3811a3e717a..4db6d0d81e1f 100644 --- a/devel/hgreviewboard/Makefile +++ b/devel/hgreviewboard/Makefile @@ -14,6 +14,10 @@ WWW= http://www.review-board.org/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/COPYING +BROKEN= Unfetchable +DEPRECATED= Upstream is gone +EXPIRATION_DATE=2025-05-31 + RUN_DEPENDS= ${PY_MERCURIAL} \ rbt:devel/rbtools diff --git a/devel/hs-haskell-language-server/Makefile b/devel/hs-haskell-language-server/Makefile index 7c23243f4c4f..efb82edca721 100644 --- a/devel/hs-haskell-language-server/Makefile +++ b/devel/hs-haskell-language-server/Makefile @@ -52,6 +52,9 @@ USE_CABAL+= ${${f}_USE_CABAL} .endfor .endif +post-patch: + ${REINPLACE_CMD} 's|jobs: 1|jobs: 2|' ${CABAL_HOME}/.cabal/config + .include <bsd.port.pre.mk> .if ${ARCH} == aarch64 diff --git a/devel/hs-ormolu/Makefile b/devel/hs-ormolu/Makefile index 414a78954824..c839c2210a2f 100644 --- a/devel/hs-ormolu/Makefile +++ b/devel/hs-ormolu/Makefile @@ -44,4 +44,7 @@ USE_CABAL= Cabal-syntax-3.12.1.0 \ th-env-0.1.1 \ transformers-compat-0.7.2 +post-patch: + ${REINPLACE_CMD} 's|jobs: 1|jobs: 2|' ${CABAL_HOME}/.cabal/config + .include <bsd.port.mk> diff --git a/devel/hwloc2/Makefile b/devel/hwloc2/Makefile index f7a0f3d0aeb6..7f26e23d8ceb 100644 --- a/devel/hwloc2/Makefile +++ b/devel/hwloc2/Makefile @@ -1,5 +1,5 @@ PORTNAME= hwloc -DISTVERSION= 2.11.2 +DISTVERSION= 2.12.1 CATEGORIES= devel MASTER_SITES= https://download.open-mpi.org/release/hwloc/v${DISTVERSION:R}/ PKGNAMESUFFIX= 2 @@ -19,11 +19,11 @@ USE_GNOME= libxml2 USE_LDCONFIG= yes GNU_CONFIGURE= yes -CONFIGURE_ARGS= --enable-static \ +CONFIGURE_ARGS= --disable-cuda \ + --disable-gl \ --disable-opencl \ - --disable-cuda \ --disable-nvml \ - --disable-gl + --enable-static INSTALL_TARGET= install-strip TEST_TARGET= check @@ -44,7 +44,9 @@ CAIRO_USE= XORG=x11 CAIRO_CONFIGURE_ON= --enable-cairo --with-x CAIRO_CONFIGURE_OFF= --disable-cairo --without-x -DEBUG_CONFIGURE_ENABLE= debug # 'lstopo -' prints a lot of debug details when debug is enabled, this is separate from WITH_DEBUG=yes +# 'lstopo -' prints a lot of debug details when debug is enabled, +# this is separate from WITH_DEBUG=yes +DEBUG_CONFIGURE_ENABLE= debug L0_LIB_DEPENDS= libze_loader.so:devel/level-zero L0_CONFIGURE_ENABLE= levelzero @@ -59,6 +61,7 @@ PLIST_SUB+= X86="" post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR}/html - ${INSTALL_DATA} ${WRKSRC}/doc/doxygen-doc/html/* ${STAGEDIR}${DOCSDIR}/html/ + ${INSTALL_DATA} ${WRKSRC}/doc/doxygen-doc/html/* \ + ${STAGEDIR}${DOCSDIR}/html/ .include <bsd.port.post.mk> diff --git a/devel/hwloc2/distinfo b/devel/hwloc2/distinfo index 097a6be5e63b..28d05885ed76 100644 --- a/devel/hwloc2/distinfo +++ b/devel/hwloc2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1729378032 -SHA256 (hwloc-2.11.2.tar.bz2) = f7f88fecae067100f1a1a915b658add0f4f71561259482910a69baea22fe8409 -SIZE (hwloc-2.11.2.tar.bz2) = 5592269 +TIMESTAMP = 1747305776 +SHA256 (hwloc-2.12.1.tar.bz2) = 38a90328bb86259f9bb2fe1dc57fd841e111d1e6358012bef23dfd95d21dc66b +SIZE (hwloc-2.12.1.tar.bz2) = 5629846 diff --git a/devel/hwloc2/pkg-plist b/devel/hwloc2/pkg-plist index 4dcbab00d504..b94a8540f701 100644 --- a/devel/hwloc2/pkg-plist +++ b/devel/hwloc2/pkg-plist @@ -36,9 +36,21 @@ include/hwloc/shmem.h lib/libhwloc.a lib/libhwloc.so lib/libhwloc.so.15 -lib/libhwloc.so.15.8.1 +lib/libhwloc.so.15.10.0 libdata/pkgconfig/hwloc.pc %%CAIRO%%share/applications/lstopo.desktop +share/bash-completion/completions/hwloc +%%DATADIR%%/hwloc-ps.www/README +%%DATADIR%%/hwloc-ps.www/assets/index.html +%%DATADIR%%/hwloc-ps.www/assets/main.css +%%DATADIR%%/hwloc-ps.www/assets/script.js +%%DATADIR%%/hwloc-ps.www/assets/style.css +%%DATADIR%%/hwloc-ps.www/client.js +%%DATADIR%%/hwloc-ps.www/package.json +%%DATADIR%%/hwloc-valgrind.supp +%%DATADIR%%/hwloc.dtd +%%DATADIR%%/hwloc2-diff.dtd +%%DATADIR%%/hwloc2.dtd share/man/man1/hwloc-annotate.1.gz share/man/man1/hwloc-bind.1.gz share/man/man1/hwloc-calc.1.gz @@ -328,6 +340,8 @@ share/man/man3/hwloc_ibv_get_device_osdev_by_name.3.gz share/man/man3/hwloc_info_s.3.gz share/man/man3/hwloc_levelzero_get_device_cpuset.3.gz share/man/man3/hwloc_levelzero_get_device_osdev.3.gz +share/man/man3/hwloc_levelzero_get_sysman_device_cpuset.3.gz +share/man/man3/hwloc_levelzero_get_sysman_device_osdev.3.gz share/man/man3/hwloc_linux_get_tid_cpubind.3.gz share/man/man3/hwloc_linux_get_tid_last_cpu_location.3.gz share/man/man3/hwloc_linux_read_path_as_cpumask.3.gz @@ -436,6 +450,7 @@ share/man/man3/hwloc_topology_get_allowed_cpuset.3.gz share/man/man3/hwloc_topology_get_allowed_nodeset.3.gz share/man/man3/hwloc_topology_get_complete_cpuset.3.gz share/man/man3/hwloc_topology_get_complete_nodeset.3.gz +share/man/man3/hwloc_topology_get_default_nodeset.3.gz share/man/man3/hwloc_topology_get_depth.3.gz share/man/man3/hwloc_topology_get_flags.3.gz share/man/man3/hwloc_topology_get_topology_cpuset.3.gz @@ -522,15 +537,3 @@ share/man/man3/hwlocality_tinker.3.gz share/man/man3/hwlocality_windows.3.gz share/man/man3/hwlocality_xmlexport.3.gz share/man/man7/hwloc.7.gz -share/bash-completion/completions/hwloc -%%DATADIR%%/hwloc-ps.www/README -%%DATADIR%%/hwloc-ps.www/assets/index.html -%%DATADIR%%/hwloc-ps.www/assets/main.css -%%DATADIR%%/hwloc-ps.www/assets/script.js -%%DATADIR%%/hwloc-ps.www/assets/style.css -%%DATADIR%%/hwloc-ps.www/client.js -%%DATADIR%%/hwloc-ps.www/package.json -%%DATADIR%%/hwloc-valgrind.supp -%%DATADIR%%/hwloc.dtd -%%DATADIR%%/hwloc2-diff.dtd -%%DATADIR%%/hwloc2.dtd diff --git a/devel/inilib/Makefile b/devel/inilib/Makefile index 4d939e537256..3418635ab18c 100644 --- a/devel/inilib/Makefile +++ b/devel/inilib/Makefile @@ -7,6 +7,9 @@ MAINTAINER= ports@FreeBSD.org COMMENT= C++ lib which provides a method of saving the "state" of a program WWW= https://inilib.sourceforge.net/ +DEPRECATED= Abandonware, last update upstream in 2005 +EXPIRATION_DATE=2025-06-30 + GNU_CONFIGURE= yes .include <bsd.port.mk> diff --git a/devel/ireport/Makefile b/devel/ireport/Makefile index 7a39ae6479b9..44a9b356ad99 100644 --- a/devel/ireport/Makefile +++ b/devel/ireport/Makefile @@ -9,6 +9,10 @@ MAINTAINER= ports@FreeBSD.org COMMENT= Visual report builder/designer for JasperReports WWW= https://www.jasperforge.org/projects/ireport +BROKEN= Unfetchable +DEPRECATED= Outdated, unsupported upstream and unmaintained for years in tree +EXPIRATION_DATE=2025-06-30 + USES= dos2unix java DOS2UNIX_GLOB= *.txt NO_BUILD= yes diff --git a/devel/jenkins/Makefile b/devel/jenkins/Makefile index a97b458d3238..a48f46162ee6 100644 --- a/devel/jenkins/Makefile +++ b/devel/jenkins/Makefile @@ -1,5 +1,5 @@ PORTNAME= jenkins -PORTVERSION= 2.509 +PORTVERSION= 2.510 CATEGORIES= devel java MASTER_SITES= https://get.jenkins.io/war/${PORTVERSION}/ DISTNAME= jenkins diff --git a/devel/jenkins/distinfo b/devel/jenkins/distinfo index 69fe0c689cde..c358954ff96d 100644 --- a/devel/jenkins/distinfo +++ b/devel/jenkins/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746547929 -SHA256 (jenkins/2.509/jenkins.war) = 32c0cb0c9e030cb0472c80ed4e1e4eb252a10fbed59de8c987d6aaba6718b1b2 -SIZE (jenkins/2.509/jenkins.war) = 86878402 +TIMESTAMP = 1747161950 +SHA256 (jenkins/2.510/jenkins.war) = d927b218f024395fe341cbb7296ee40687ca5e5fba2866284ebf40aa9d1fefec +SIZE (jenkins/2.510/jenkins.war) = 86882700 diff --git a/devel/luv/Makefile b/devel/luv/Makefile index 1597cff172c6..60ac92875958 100644 --- a/devel/luv/Makefile +++ b/devel/luv/Makefile @@ -1,6 +1,6 @@ PORTNAME= luv #DISTVERSIONPREFIX= v -DISTVERSION= 1.51.0-0 +DISTVERSION= 1.51.0-1 CATEGORIES= devel MASTER_SITES= https://github.com/luvit/${PORTNAME}/releases/download/${DISTVERSION}/ diff --git a/devel/luv/distinfo b/devel/luv/distinfo index 505e6cdcd8d7..23a0c3ae6640 100644 --- a/devel/luv/distinfo +++ b/devel/luv/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746921848 -SHA256 (luv-1.51.0-0.tar.gz) = eb121ca0a26a417330eacf590f87ab30c426ab287e38a79a779e7e8708dc9aa3 -SIZE (luv-1.51.0-0.tar.gz) = 1528236 +TIMESTAMP = 1747469566 +SHA256 (luv-1.51.0-1.tar.gz) = dc706d9141c185bdce08b6fc8a9d4df05c3ac3676809ee4e9e37e1553d821237 +SIZE (luv-1.51.0-1.tar.gz) = 1528772 diff --git a/devel/magit-devel/Makefile b/devel/magit-devel/Makefile index 2b0239db8b22..bdee6a7560a5 100644 --- a/devel/magit-devel/Makefile +++ b/devel/magit-devel/Makefile @@ -1,6 +1,6 @@ PORTNAME= magit DISTVERSIONPREFIX= v -DISTVERSION= 4.3.3 +DISTVERSION= 4.3.5 DISTVERSIONSUFFIX= CATEGORIES= devel elisp PKGNAMESUFFIX= -devel${EMACS_PKGNAMESUFFIX} diff --git a/devel/magit-devel/distinfo b/devel/magit-devel/distinfo index 699397ce084b..03266d833e82 100644 --- a/devel/magit-devel/distinfo +++ b/devel/magit-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746095041 -SHA256 (magit-magit-v4.3.3_GH0.tar.gz) = 583d0e0afd09acd2bd81f6cb017fcb668ea1e399e89d99ddfcb94094cce87f3c -SIZE (magit-magit-v4.3.3_GH0.tar.gz) = 686945 +TIMESTAMP = 1747265089 +SHA256 (magit-magit-v4.3.5_GH0.tar.gz) = b5a1fc403a717378aabe0f786af41c21862e1117e19086bae91836e5a55b6f78 +SIZE (magit-magit-v4.3.5_GH0.tar.gz) = 687473 diff --git a/devel/magit/Makefile b/devel/magit/Makefile index 94d809113741..88d4ca2f1edc 100644 --- a/devel/magit/Makefile +++ b/devel/magit/Makefile @@ -1,6 +1,6 @@ PORTNAME= magit DISTVERSIONPREFIX= v -DISTVERSION= 4.3.3 +DISTVERSION= 4.3.5 CATEGORIES= devel elisp PKGNAMESUFFIX= ${EMACS_PKGNAMESUFFIX} diff --git a/devel/magit/distinfo b/devel/magit/distinfo index 5fb6c56c8c07..e3beece7e6b8 100644 --- a/devel/magit/distinfo +++ b/devel/magit/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746094674 -SHA256 (magit-magit-v4.3.3_GH0.tar.gz) = 583d0e0afd09acd2bd81f6cb017fcb668ea1e399e89d99ddfcb94094cce87f3c -SIZE (magit-magit-v4.3.3_GH0.tar.gz) = 686945 +TIMESTAMP = 1747264991 +SHA256 (magit-magit-v4.3.5_GH0.tar.gz) = b5a1fc403a717378aabe0f786af41c21862e1117e19086bae91836e5a55b6f78 +SIZE (magit-magit-v4.3.5_GH0.tar.gz) = 687473 diff --git a/devel/nuitka/Makefile b/devel/nuitka/Makefile index 8467eb73e778..378c6c7c0123 100644 --- a/devel/nuitka/Makefile +++ b/devel/nuitka/Makefile @@ -1,5 +1,5 @@ PORTNAME= nuitka -PORTVERSION= 2.6 +PORTVERSION= 2.7 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMESUFFIX= ${PYTHON_PKGNAMESUFFIX} diff --git a/devel/nuitka/distinfo b/devel/nuitka/distinfo index 797e1d4630c2..7e2fe656ae9e 100644 --- a/devel/nuitka/distinfo +++ b/devel/nuitka/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738090242 -SHA256 (Nuitka-2.6.tar.gz) = 7d67293d2fe6a481b5d244008af6fa7511a6f27d0664d1adec9305b6fabe9cc8 -SIZE (Nuitka-2.6.tar.gz) = 3858229 +TIMESTAMP = 1747212768 +SHA256 (Nuitka-2.7.tar.gz) = b0d5ad394cbfe93820116cfe94605e50bb20f5707b6fb41e09c421a7c9a2c53d +SIZE (Nuitka-2.7.tar.gz) = 3885354 diff --git a/devel/p5-Devel-Cover/Makefile b/devel/p5-Devel-Cover/Makefile index 16a33f55cab5..043b4fb68e81 100644 --- a/devel/p5-Devel-Cover/Makefile +++ b/devel/p5-Devel-Cover/Makefile @@ -1,5 +1,5 @@ PORTNAME= Devel-Cover -PORTVERSION= 1.47 +PORTVERSION= 1.48 CATEGORIES= devel perl5 MASTER_SITES= CPAN PKGNAMEPREFIX= p5- diff --git a/devel/p5-Devel-Cover/distinfo b/devel/p5-Devel-Cover/distinfo index d95b637aaac1..381226fcb98e 100644 --- a/devel/p5-Devel-Cover/distinfo +++ b/devel/p5-Devel-Cover/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746662559 -SHA256 (Devel-Cover-1.47.tar.gz) = 323ad5db2e64ec665e0deef7f2e7472610ee8cf98dafbad4e241b0f52918ee41 -SIZE (Devel-Cover-1.47.tar.gz) = 230482 +TIMESTAMP = 1747205639 +SHA256 (Devel-Cover-1.48.tar.gz) = 063b81a5095a6ac241485c44e059fb1ee5543929bc4da82ac0574981c973e18d +SIZE (Devel-Cover-1.48.tar.gz) = 230964 diff --git a/devel/p5-Tree-DAG_Node/Makefile b/devel/p5-Tree-DAG_Node/Makefile index d9178e19c8ad..1e72ad4429a4 100644 --- a/devel/p5-Tree-DAG_Node/Makefile +++ b/devel/p5-Tree-DAG_Node/Makefile @@ -1,5 +1,5 @@ PORTNAME= Tree-DAG_Node -PORTVERSION= 1.34 +PORTVERSION= 1.35 CATEGORIES= devel perl5 MASTER_SITES= CPAN PKGNAMEPREFIX= p5- @@ -14,6 +14,7 @@ LICENSE_FILE_ART10= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${RUN_DEPENDS} RUN_DEPENDS= p5-File-Slurp-Tiny>=0.003:devel/p5-File-Slurp-Tiny +TEST_DEPENDS= p5-File-Slurper>=0:devel/p5-File-Slurper USES= perl5 tar:tgz USE_PERL5= configure diff --git a/devel/p5-Tree-DAG_Node/distinfo b/devel/p5-Tree-DAG_Node/distinfo index 66f0693480ac..61d8447f7d26 100644 --- a/devel/p5-Tree-DAG_Node/distinfo +++ b/devel/p5-Tree-DAG_Node/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746328800 -SHA256 (Tree-DAG_Node-1.34.tgz) = 26845b628872ec1af020ac2e839ae036c59c9e26aab887efb6c75a819c675cb1 -SIZE (Tree-DAG_Node-1.34.tgz) = 65945 +TIMESTAMP = 1747207965 +SHA256 (Tree-DAG_Node-1.35.tgz) = 27467e3644c8dfbb08e26e6d698a75ef7c1b1a810bda9fca50f922eea5429eb1 +SIZE (Tree-DAG_Node-1.35.tgz) = 66530 diff --git a/devel/php-composer/Makefile b/devel/php-composer/Makefile index 97e61ea7eae9..c57b31628b81 100644 --- a/devel/php-composer/Makefile +++ b/devel/php-composer/Makefile @@ -1,5 +1,5 @@ PORTNAME= composer -DISTVERSION= 2.8.8 +DISTVERSION= 2.8.9 CATEGORIES= devel MASTER_SITES= https://getcomposer.org/download/${DISTVERSION}/ PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX} @@ -17,8 +17,6 @@ USES= cpe php:flavors CPE_VENDOR= getcomposer USE_PHP= ctype filter intl mbstring phar -CONFLICTS_INSTALL= php*-composer - NO_ARCH= yes NO_BUILD= yes NO_WRKSUBDIR= yes diff --git a/devel/php-composer/distinfo b/devel/php-composer/distinfo index 9c8ebbcc6bbb..3ab2bbc5dcbb 100644 --- a/devel/php-composer/distinfo +++ b/devel/php-composer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1743781095 -SHA256 (composer-2.8.8/composer.phar) = 957263e284b9f7a13d7f475dc65f3614d151b0c4dcc7e8761f7e7f749447fb68 -SIZE (composer-2.8.8/composer.phar) = 3114082 +TIMESTAMP = 1747152878 +SHA256 (composer-2.8.9/composer.phar) = 8e8829ec2b97fcb05158236984bc252bef902e7b8ff65555a1eeda4ec13fb82b +SIZE (composer-2.8.9/composer.phar) = 3125568 diff --git a/devel/py-apptools/Makefile b/devel/py-apptools/Makefile index 31c2499a90f0..f2abefa62c4d 100644 --- a/devel/py-apptools/Makefile +++ b/devel/py-apptools/Makefile @@ -4,7 +4,7 @@ CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} -MAINTAINER= eduardo@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Enthought application tools WWW= https://docs.enthought.com/apptools diff --git a/devel/py-e3-core/Makefile b/devel/py-e3-core/Makefile new file mode 100644 index 000000000000..f2989716fc88 --- /dev/null +++ b/devel/py-e3-core/Makefile @@ -0,0 +1,74 @@ +PORTNAME= e3-core +DISTVERSION= 22.10.0 +CATEGORIES= devel python +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= agh@riseup.net +COMMENT= Core framework for developing portable automated build systems +WWW= https://github.com/AdaCore/e3-core + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING3 + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61.0.0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}colorama>0:devel/py-colorama@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-dateutil>0:devel/py-python-dateutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyyaml>0:devel/py-pyyaml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests-cache>0:www/py-requests-cache@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests-toolbelt>0:www/py-requests-toolbelt@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}resolvelib>0:devel/py-resolvelib@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}stevedore>1.20.0:devel/py-stevedore@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tqdm>0:misc/py-tqdm@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ + bash>0:shells/bash +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}ansi2html>0:textproc/py-ansi2html@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ptyprocess>0:sysutils/py-ptyprocess@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytest-html>0:devel/py-pytest-html@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytest-socket>0:devel/py-pytest-socket@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests-mock>0:www/py-requests-mock@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ + git>0:devel/git \ + rsync>0:net/rsync + +USES= pytest python:3.9+ +USE_GITHUB= yes +GH_ACCOUNT= AdaCore +USE_PYTHON= autoplist concurrent pep517 + +PLIST_FILES+= ${PYTHON_SITELIBDIR}/e3/os/data/rlimit-${_RLIMIT_PLATFORM} + +_RLIMIT_PLATFORM= ${ARCH:S/amd64/x86_64/}-${OPSYS:tl} + +post-patch: +# Modify ${WRKSRC}/VERSION to reflect the complete upsteam version, to avoid +# dealing with Python Wheel shenanigans + ${REINPLACE_CMD} -e 's|${PORTVERSION:R}|${PORTVERSION}|' \ + ${WRKSRC}/VERSION + ${REINPLACE_CMD} -e 's|%%PYTHON_VER%%|${PYTHON_VER}|' \ + ${WRKSRC}/tests/tests_e3/os/process/main_test.py \ + ${WRKSRC}/tests/tests_e3/main/main_test.py + +pre-build: +# Build required rlimit binary, see GitHub issue 388 for context, +# https://github.com/AdaCore/e3-core/issues/388 + (cd ${WRKSRC}/tools/rlimit && \ + ${CC} -o rlimit-${_RLIMIT_PLATFORM} rlimit.c) + +post-install: + ${INSTALL_PROGRAM} ${WRKSRC}/tools/rlimit/rlimit-${_RLIMIT_PLATFORM} \ + ${STAGEDIR}${PYTHON_SITELIBDIR}/e3/os/data/ + +do-test: +# Tests require e3 to function + (cd ${WRKSRC} && \ + ${SETENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} \ + ${PYTHON_CMD} -m pytest) + +.include <bsd.port.mk> diff --git a/devel/py-e3-core/distinfo b/devel/py-e3-core/distinfo new file mode 100644 index 000000000000..37c5c737f8ff --- /dev/null +++ b/devel/py-e3-core/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1746773105 +SHA256 (AdaCore-e3-core-22.10.0_GH0.tar.gz) = 496b630569579c0b544e5455681076baeb6195d9ed03b4a7c7add9618d9e7127 +SIZE (AdaCore-e3-core-22.10.0_GH0.tar.gz) = 805122 diff --git a/devel/py-e3-core/files/patch-src_e3_fs.py b/devel/py-e3-core/files/patch-src_e3_fs.py new file mode 100644 index 000000000000..f5080935ec1d --- /dev/null +++ b/devel/py-e3-core/files/patch-src_e3_fs.py @@ -0,0 +1,11 @@ +--- src/e3/fs.py.orig 2025-03-28 13:21:34 UTC ++++ src/e3/fs.py +@@ -58,7 +58,7 @@ def cp( + if copy_attrs: + switches += " -p" + if recursive: +- switches += " -r" ++ switches += " -R" + logger.debug("cp %s %s->%s", switches, source, target) + + if recursive and not copy_attrs: diff --git a/devel/py-e3-core/files/patch-tests_tests__e3_env_main__test.py b/devel/py-e3-core/files/patch-tests_tests__e3_env_main__test.py new file mode 100644 index 000000000000..9b0ec2bfc2b6 --- /dev/null +++ b/devel/py-e3-core/files/patch-tests_tests__e3_env_main__test.py @@ -0,0 +1,12 @@ +--- tests/tests_e3/env/main_test.py.orig 2025-05-09 08:40:30 UTC ++++ tests/tests_e3/env/main_test.py +@@ -15,6 +15,9 @@ def test_autodetect(): + .replace("win32", "windows") + .replace("aix7", "aix") + .replace("sunos5", "solaris") ++ .replace("freebsd13", "freebsd") ++ .replace("freebsd14", "freebsd") ++ .replace("freebsd15", "freebsd") + ) + assert sys_platform in str(e3.platform.Platform.get()) + diff --git a/devel/py-e3-core/files/patch-tests_tests__e3_main_main__test.py b/devel/py-e3-core/files/patch-tests_tests__e3_main_main__test.py new file mode 100644 index 000000000000..e076278d8092 --- /dev/null +++ b/devel/py-e3-core/files/patch-tests_tests__e3_main_main__test.py @@ -0,0 +1,56 @@ +--- tests/tests_e3/main/main_test.py.orig 2025-05-09 10:12:19 UTC ++++ tests/tests_e3/main/main_test.py +@@ -19,7 +19,7 @@ def test_mainprog(): + f.write( + "\n".join( + ( +- "#!/usr/bin/env python", ++ "#!/usr/bin/env python%%PYTHON_VER%%", + "from e3.main import Main", + "import os", + 'm = Main(name="testmain")', +@@ -44,7 +44,7 @@ def to_rework_modules_logging_limitations(): + f.write( + "\n".join( + ( +- "#!/usr/bin/env python", ++ "#!/usr/bin/env python%%PYTHON_VER%%", + "from e3.main import Main", + "import requests", + "import logging", +@@ -79,7 +79,7 @@ def test_mainprog_with_console_logs(): + f.write( + "\n".join( + ( +- "#!/usr/bin/env python", ++ "#!/usr/bin/env python%%PYTHON_VER%%", + "from e3.main import Main", + "import os", + 'm = Main(name="testmain")', +@@ -111,7 +111,7 @@ def test_x86_64_windows_default(): + f.write( + "\n".join( + ( +- "#!/usr/bin/env python", ++ "#!/usr/bin/env python%%PYTHON_VER%%", + "from e3.main import Main", + "m = Main(platform_args=True, default_x86_64_on_windows=True)", + "m.parse_args()", +@@ -128,7 +128,7 @@ def test_default_env_callback(): + f.write( + "\n".join( + ( +- "#!/usr/bin/env python", ++ "#!/usr/bin/env python%%PYTHON_VER%%", + "from e3.main import Main", + "from e3.env import Env", + "def cb(args):", +@@ -157,7 +157,7 @@ def test_sigterm(): + f.write( + "\n".join( + ( +- "#!/usr/bin/env python", ++ "#!/usr/bin/env python%%PYTHON_VER%%", + "from e3.main import Main", + "import os", + "import signal", diff --git a/devel/py-e3-core/files/patch-tests_tests__e3_os_process_main__test.py b/devel/py-e3-core/files/patch-tests_tests__e3_os_process_main__test.py new file mode 100644 index 000000000000..a0399d54e93b --- /dev/null +++ b/devel/py-e3-core/files/patch-tests_tests__e3_os_process_main__test.py @@ -0,0 +1,11 @@ +--- tests/tests_e3/os/process/main_test.py.orig 2025-03-28 13:21:34 UTC ++++ tests/tests_e3/os/process/main_test.py +@@ -51,7 +51,7 @@ def test_run_shebang(caplog): + """Verify that the parse shebang option works.""" + prog_filename = os.path.join(os.getcwd(), "prog") + with open(prog_filename, "wb") as f: +- f.write(b"#!/usr/bin/env python\n") ++ f.write(b"#!/usr/bin/env python%%PYTHON_VER%%\n") + f.write(b"import sys\n") + f.write(b'print("running %s" % sys.argv[1])\n') + e3.os.fs.chmod("a+x", prog_filename) diff --git a/devel/py-e3-core/pkg-descr b/devel/py-e3-core/pkg-descr new file mode 100644 index 000000000000..d877b6bbd40f --- /dev/null +++ b/devel/py-e3-core/pkg-descr @@ -0,0 +1,3 @@ +The e3 Project is a Python framework to ease the development of portable +automated build systems (compilation, dependencies management, binary code +packaging, and automated testing). diff --git a/devel/py-pep8-naming/Makefile b/devel/py-pep8-naming/Makefile index 4143479a58d5..772376159664 100644 --- a/devel/py-pep8-naming/Makefile +++ b/devel/py-pep8-naming/Makefile @@ -1,5 +1,5 @@ PORTNAME= pep8-naming -DISTVERSION= 0.15.0 +DISTVERSION= 0.15.1 CATEGORIES= devel MASTER_SITES= PYPI DISTNAME= ${PORTNAME:C/-/_/}-${DISTVERSION} diff --git a/devel/py-pep8-naming/distinfo b/devel/py-pep8-naming/distinfo index fae4151f229e..1b9a4404d9d0 100644 --- a/devel/py-pep8-naming/distinfo +++ b/devel/py-pep8-naming/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746037501 -SHA256 (pep8_naming-0.15.0.tar.gz) = a637ee5144f7585c800b1fc6eeb996fa35a2ef0f2690880a9e1b29cb9f6e8359 -SIZE (pep8_naming-0.15.0.tar.gz) = 17567 +TIMESTAMP = 1747241048 +SHA256 (pep8_naming-0.15.1.tar.gz) = f6f4a499aba2deeda93c1f26ccc02f3da32b035c8b2db9696b730ef2c9639d29 +SIZE (pep8_naming-0.15.1.tar.gz) = 17640 diff --git a/devel/py-pytz/Makefile b/devel/py-pytz/Makefile index 1b94bf9f19e1..48a6d8c5b159 100644 --- a/devel/py-pytz/Makefile +++ b/devel/py-pytz/Makefile @@ -1,5 +1,5 @@ PORTNAME= pytz -PORTVERSION= 2024.2 +PORTVERSION= 2025.2 PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= devel python diff --git a/devel/py-pytz/distinfo b/devel/py-pytz/distinfo index b973beb96326..57201fe9b8f9 100644 --- a/devel/py-pytz/distinfo +++ b/devel/py-pytz/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1726021541 -SHA256 (pytz-2024.2.tar.gz) = 2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a -SIZE (pytz-2024.2.tar.gz) = 319692 +TIMESTAMP = 1747159018 +SHA256 (pytz-2025.2.tar.gz) = 360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 +SIZE (pytz-2025.2.tar.gz) = 320884 diff --git a/devel/py-spyder-kernels/Makefile b/devel/py-spyder-kernels/Makefile index cce736bc60e1..9800298d8b38 100644 --- a/devel/py-spyder-kernels/Makefile +++ b/devel/py-spyder-kernels/Makefile @@ -1,6 +1,5 @@ PORTNAME= spyder-kernels -DISTVERSION= 3.0.3 -PORTREVISION= 1 +DISTVERSION= 3.0.4 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/devel/py-spyder-kernels/distinfo b/devel/py-spyder-kernels/distinfo index cf916d65047f..ef53f37902c4 100644 --- a/devel/py-spyder-kernels/distinfo +++ b/devel/py-spyder-kernels/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1739041669 -SHA256 (spyder_kernels-3.0.3.tar.gz) = 63cf9da6ea533679a5a791211e958cb4a7ebb803f84086fbdc248c08a7914669 -SIZE (spyder_kernels-3.0.3.tar.gz) = 82519 +TIMESTAMP = 1747331662 +SHA256 (spyder_kernels-3.0.4.tar.gz) = 5ecf49db7e10bb9618ec9996ea67660b031773c2cd9054d441d8228115f4790c +SIZE (spyder_kernels-3.0.4.tar.gz) = 82866 diff --git a/devel/py-sqids/Makefile b/devel/py-sqids/Makefile index 4c8bf9bfc3e4..79839b7bdad0 100644 --- a/devel/py-sqids/Makefile +++ b/devel/py-sqids/Makefile @@ -1,5 +1,5 @@ PORTNAME= sqids -PORTVERSION= 0.5.1 +PORTVERSION= 0.5.2 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/devel/py-sqids/distinfo b/devel/py-sqids/distinfo index 0e3979c5ca05..3ad20679154b 100644 --- a/devel/py-sqids/distinfo +++ b/devel/py-sqids/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1735705267 -SHA256 (sqids-0.5.1.tar.gz) = d69d06b504e5be6fe9523c8bb56104cdd071c39ea96008312f3db1038b1f08be -SIZE (sqids-0.5.1.tar.gz) = 18138 +TIMESTAMP = 1747211814 +SHA256 (sqids-0.5.2.tar.gz) = 5ac08f0c5c9b6814bc2e7c79ee5931e0849d25d95c50e415771b022a44f58af9 +SIZE (sqids-0.5.2.tar.gz) = 18213 diff --git a/devel/py-ty/Makefile b/devel/py-ty/Makefile new file mode 100644 index 000000000000..800234f9179c --- /dev/null +++ b/devel/py-ty/Makefile @@ -0,0 +1,26 @@ +PORTNAME= ty +DISTVERSION= 0.0.1a4 +CATEGORIES= devel python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= tagattie@FreeBSD.org +COMMENT= Extremely fast Python type checker, written in Rust +WWW= https://github.com/astral-sh/ty + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1.0<2.0:devel/py-maturin@${PY_FLAVOR} + +USES= cargo python + +USE_PYTHON= autoplist concurrent pep517 + +CARGO_CARGOTOML=${WRKSRC}/ruff/Cargo.toml +CARGO_CARGOLOCK=${WRKSRC}/ruff/Cargo.lock +CARGO_BUILD= no +CARGO_INSTALL= no + +.include <bsd.port.mk> diff --git a/devel/py-ty/Makefile.crates b/devel/py-ty/Makefile.crates new file mode 100644 index 000000000000..bbb5319a97b0 --- /dev/null +++ b/devel/py-ty/Makefile.crates @@ -0,0 +1,442 @@ +CARGO_CRATES= adler2-2.0.0 \ + aho-corasick-1.1.3 \ + allocator-api2-0.2.21 \ + android-tzdata-0.1.1 \ + android_system_properties-0.1.5 \ + anes-0.1.6 \ + annotate-snippets-0.11.5 \ + anstream-0.6.18 \ + anstyle-1.0.10 \ + anstyle-lossy-1.1.3 \ + anstyle-parse-0.2.6 \ + anstyle-query-1.1.2 \ + anstyle-svg-0.1.7 \ + anstyle-wincon-3.0.7 \ + anyhow-1.0.98 \ + argfile-0.2.1 \ + arrayvec-0.7.6 \ + assert_fs-1.1.3 \ + autocfg-1.4.0 \ + base64-0.13.1 \ + bincode-1.3.3 \ + bitflags-1.3.2 \ + bitflags-2.9.0 \ + block-buffer-0.10.4 \ + boxcar-0.2.11 \ + bstr-1.12.0 \ + bumpalo-3.17.0 \ + byteorder-1.5.0 \ + cachedir-0.3.1 \ + camino-1.1.9 \ + cast-0.3.0 \ + castaway-0.2.3 \ + cc-1.2.16 \ + cfg-if-1.0.0 \ + cfg_aliases-0.2.1 \ + chrono-0.4.40 \ + ciborium-0.2.2 \ + ciborium-io-0.2.2 \ + ciborium-ll-0.2.2 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ + clap_complete-4.5.46 \ + clap_complete_command-0.6.1 \ + clap_complete_nushell-4.5.5 \ + clap_derive-4.5.32 \ + clap_lex-0.7.4 \ + clearscreen-4.0.1 \ + codspeed-2.9.1 \ + codspeed-criterion-compat-2.9.1 \ + codspeed-criterion-compat-walltime-2.9.1 \ + colorchoice-1.0.3 \ + colored-2.2.0 \ + colored-3.0.0 \ + compact_str-0.9.0 \ + console-0.15.11 \ + console_error_panic_hook-0.1.7 \ + console_log-1.0.0 \ + core-foundation-sys-0.8.7 \ + countme-3.0.1 \ + cpufeatures-0.2.17 \ + crc32fast-1.4.2 \ + criterion-0.5.1 \ + criterion-plot-0.5.0 \ + crossbeam-0.8.4 \ + crossbeam-channel-0.5.14 \ + crossbeam-deque-0.8.6 \ + crossbeam-epoch-0.9.18 \ + crossbeam-queue-0.3.12 \ + crossbeam-utils-0.8.21 \ + crunchy-0.2.3 \ + crypto-common-0.1.6 \ + ctrlc-3.4.7 \ + darling-0.20.10 \ + darling_core-0.20.10 \ + darling_macro-0.20.10 \ + dashmap-5.5.3 \ + dashmap-6.1.0 \ + diff-0.1.13 \ + difflib-0.4.0 \ + digest-0.10.7 \ + dir-test-0.4.1 \ + dir-test-macros-0.4.1 \ + dirs-5.0.1 \ + dirs-sys-0.4.1 \ + displaydoc-0.2.5 \ + doc-comment-0.3.3 \ + drop_bomb-0.1.5 \ + dunce-1.0.5 \ + dyn-clone-1.0.19 \ + either-1.15.0 \ + encode_unicode-1.0.0 \ + env_filter-0.1.3 \ + env_home-0.1.0 \ + env_logger-0.11.8 \ + equivalent-1.0.2 \ + errno-0.3.10 \ + escape8259-0.5.3 \ + escargot-0.5.13 \ + etcetera-0.10.0 \ + fastrand-2.3.0 \ + fern-0.7.1 \ + filetime-0.2.25 \ + flate2-1.1.0 \ + fnv-1.0.7 \ + foldhash-0.1.5 \ + form_urlencoded-1.2.1 \ + fs-err-2.11.0 \ + fsevent-sys-4.1.0 \ + generator-0.8.4 \ + generic-array-0.14.7 \ + getopts-0.2.21 \ + getrandom-0.2.15 \ + getrandom-0.3.3 \ + glob-0.3.2 \ + globset-0.4.16 \ + globwalk-0.9.1 \ + half-2.5.0 \ + hashbrown-0.14.5 \ + hashbrown-0.15.3 \ + hashlink-0.10.0 \ + heck-0.5.0 \ + hermit-abi-0.3.9 \ + hermit-abi-0.5.0 \ + home-0.5.11 \ + html-escape-0.2.13 \ + iana-time-zone-0.1.61 \ + iana-time-zone-haiku-0.1.2 \ + icu_collections-1.5.0 \ + icu_locid-1.5.0 \ + icu_locid_transform-1.5.0 \ + icu_locid_transform_data-1.5.0 \ + icu_normalizer-1.5.0 \ + icu_normalizer_data-1.5.0 \ + icu_properties-1.5.1 \ + icu_properties_data-1.5.0 \ + icu_provider-1.5.0 \ + icu_provider_macros-1.5.0 \ + ident_case-1.0.1 \ + idna-1.0.3 \ + idna_adapter-1.2.0 \ + ignore-0.4.23 \ + imara-diff-0.1.8 \ + imperative-1.0.6 \ + indexmap-2.9.0 \ + indicatif-0.17.11 \ + indoc-2.0.6 \ + inotify-0.11.0 \ + inotify-sys-0.1.5 \ + insta-1.42.2 \ + insta-cmd-0.6.0 \ + is-docker-0.2.0 \ + is-macro-0.3.7 \ + is-terminal-0.4.16 \ + is-wsl-0.4.0 \ + is_terminal_polyfill-1.70.1 \ + itertools-0.10.5 \ + itertools-0.13.0 \ + itertools-0.14.0 \ + itoa-1.0.15 \ + jiff-0.2.13 \ + jiff-static-0.2.13 \ + jiff-tzdb-0.1.4 \ + jiff-tzdb-platform-0.1.3 \ + jobserver-0.1.32 \ + jod-thread-0.1.2 \ + js-sys-0.3.77 \ + kqueue-1.0.8 \ + kqueue-sys-1.0.4 \ + lazy_static-1.5.0 \ + libc-0.2.172 \ + libcst-1.7.0 \ + libcst_derive-1.7.0 \ + libmimalloc-sys-0.1.42 \ + libredox-0.1.3 \ + libtest-mimic-0.7.3 \ + linked-hash-map-0.5.6 \ + linux-raw-sys-0.4.15 \ + linux-raw-sys-0.9.3 \ + litemap-0.7.5 \ + lock_api-0.4.12 \ + log-0.4.27 \ + loom-0.7.2 \ + lsp-server-0.7.8 \ + markdown-1.0.0 \ + matchers-0.1.0 \ + matches-0.1.10 \ + matchit-0.8.6 \ + memchr-2.7.4 \ + mimalloc-0.1.46 \ + minicov-0.3.7 \ + minimal-lexical-0.2.1 \ + miniz_oxide-0.8.5 \ + mio-1.0.3 \ + natord-1.0.9 \ + newtype-uuid-1.2.1 \ + nix-0.29.0 \ + nix-0.30.1 \ + nom-7.1.3 \ + normalize-line-endings-0.3.0 \ + notify-8.0.0 \ + notify-types-2.0.0 \ + nu-ansi-term-0.46.0 \ + num-traits-0.2.19 \ + num_cpus-1.16.0 \ + number_prefix-0.4.0 \ + once_cell-1.21.1 \ + oorandom-11.1.5 \ + option-ext-0.2.0 \ + ordermap-0.5.7 \ + os_pipe-1.2.1 \ + os_str_bytes-7.1.0 \ + overload-0.1.1 \ + parking_lot-0.12.3 \ + parking_lot_core-0.9.10 \ + paste-1.0.15 \ + path-absolutize-3.1.1 \ + path-dedot-3.1.1 \ + path-slash-0.2.1 \ + pathdiff-0.2.3 \ + peg-0.8.5 \ + peg-macros-0.8.5 \ + peg-runtime-0.8.5 \ + pep440_rs-0.7.3 \ + pep508_rs-0.9.2 \ + percent-encoding-2.3.1 \ + pest-2.7.15 \ + pest_derive-2.7.15 \ + pest_generator-2.7.15 \ + pest_meta-2.7.15 \ + phf-0.11.3 \ + phf_codegen-0.11.3 \ + phf_generator-0.11.3 \ + phf_shared-0.11.3 \ + pin-project-1.1.10 \ + pin-project-internal-1.1.10 \ + pin-project-lite-0.2.16 \ + pkg-config-0.3.32 \ + portable-atomic-1.11.0 \ + portable-atomic-util-0.2.4 \ + ppv-lite86-0.2.21 \ + predicates-3.1.3 \ + predicates-core-1.0.9 \ + predicates-tree-1.0.12 \ + pretty_assertions-1.4.1 \ + proc-macro2-1.0.95 \ + pyproject-toml-0.13.4 \ + quick-junit-0.5.1 \ + quick-xml-0.37.2 \ + quickcheck-1.0.3 \ + quickcheck_macros-1.0.0 \ + quote-1.0.40 \ + r-efi-5.2.0 \ + rand-0.8.5 \ + rand-0.9.1 \ + rand_chacha-0.3.1 \ + rand_chacha-0.9.0 \ + rand_core-0.6.4 \ + rand_core-0.9.3 \ + rayon-1.10.0 \ + rayon-core-1.12.1 \ + redox_syscall-0.5.10 \ + redox_users-0.4.6 \ + regex-1.11.1 \ + regex-automata-0.1.10 \ + regex-automata-0.4.9 \ + regex-syntax-0.6.29 \ + regex-syntax-0.8.5 \ + ron-0.7.1 \ + rust-stemmers-1.2.0 \ + rustc-hash-1.1.0 \ + rustc-hash-2.1.1 \ + rustc-stable-hash-0.1.2 \ + rustix-0.38.44 \ + rustix-1.0.2 \ + rustversion-1.0.20 \ + ryu-1.0.20 \ + same-file-1.0.6 \ + schemars-0.8.22 \ + schemars_derive-0.8.22 \ + scoped-tls-1.0.1 \ + scopeguard-1.2.0 \ + seahash-4.1.0 \ + serde-1.0.219 \ + serde-wasm-bindgen-0.6.5 \ + serde_derive-1.0.219 \ + serde_derive_internals-0.29.1 \ + serde_json-1.0.140 \ + serde_repr-0.1.20 \ + serde_spanned-0.6.8 \ + serde_test-1.0.177 \ + serde_with-3.12.0 \ + serde_with_macros-3.12.0 \ + sha2-0.10.8 \ + sharded-slab-0.1.7 \ + shellexpand-3.1.1 \ + shlex-1.3.0 \ + similar-2.7.0 \ + siphasher-1.0.1 \ + smallvec-1.15.0 \ + snapbox-0.6.21 \ + snapbox-macros-0.3.10 \ + stable_deref_trait-1.2.0 \ + static_assertions-1.1.0 \ + strip-ansi-escapes-0.2.1 \ + strsim-0.11.1 \ + strum-0.27.1 \ + strum_macros-0.27.1 \ + syn-1.0.109 \ + syn-2.0.101 \ + synstructure-0.13.1 \ + tempfile-3.19.1 \ + termcolor-1.4.1 \ + terminal_size-0.4.2 \ + terminfo-0.9.0 \ + termtree-0.5.1 \ + test-case-3.3.1 \ + test-case-core-3.3.1 \ + test-case-macros-3.3.1 \ + thin-vec-0.2.14 \ + thiserror-1.0.69 \ + thiserror-2.0.12 \ + thiserror-impl-1.0.69 \ + thiserror-impl-2.0.12 \ + thread_local-1.1.8 \ + threadpool-1.8.1 \ + tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7 \ + tikv-jemallocator-0.6.0 \ + tinystr-0.7.6 \ + tinytemplate-1.2.1 \ + tinyvec-1.9.0 \ + tinyvec_macros-0.1.1 \ + toml-0.8.22 \ + toml_datetime-0.6.9 \ + toml_edit-0.22.26 \ + toml_write-0.1.1 \ + tracing-0.1.41 \ + tracing-attributes-0.1.28 \ + tracing-core-0.1.33 \ + tracing-flame-0.2.0 \ + tracing-indicatif-0.3.9 \ + tracing-log-0.2.0 \ + tracing-subscriber-0.3.19 \ + tryfn-0.2.3 \ + typed-arena-2.0.2 \ + typenum-1.18.0 \ + ucd-trie-0.1.7 \ + unic-char-property-0.9.0 \ + unic-char-range-0.9.0 \ + unic-common-0.9.0 \ + unic-ucd-category-0.9.0 \ + unic-ucd-version-0.9.0 \ + unicode-id-0.3.5 \ + unicode-ident-1.0.18 \ + unicode-normalization-0.1.24 \ + unicode-width-0.1.14 \ + unicode-width-0.2.0 \ + unicode_names2-1.3.0 \ + unicode_names2_generator-1.3.0 \ + unscanny-0.1.0 \ + url-2.5.4 \ + urlencoding-2.1.3 \ + utf16_iter-1.0.5 \ + utf8-width-0.1.7 \ + utf8_iter-1.0.4 \ + utf8parse-0.2.2 \ + uuid-1.16.0 \ + uuid-macro-internal-1.16.0 \ + valuable-0.1.1 \ + version-ranges-0.1.1 \ + version_check-0.9.5 \ + vt100-0.15.2 \ + vte-0.11.1 \ + vte-0.14.1 \ + vte_generate_state_changes-0.1.2 \ + wait-timeout-0.2.1 \ + walkdir-2.5.0 \ + wasi-0.11.0+wasi-snapshot-preview1 \ + wasi-0.14.2+wasi-0.2.4 \ + wasm-bindgen-0.2.100 \ + wasm-bindgen-backend-0.2.100 \ + wasm-bindgen-futures-0.4.50 \ + wasm-bindgen-macro-0.2.100 \ + wasm-bindgen-macro-support-0.2.100 \ + wasm-bindgen-shared-0.2.100 \ + wasm-bindgen-test-0.3.50 \ + wasm-bindgen-test-macro-0.3.50 \ + web-sys-0.3.77 \ + web-time-1.1.0 \ + which-7.0.2 \ + wild-2.2.1 \ + winapi-0.3.9 \ + winapi-i686-pc-windows-gnu-0.4.0 \ + winapi-util-0.1.9 \ + winapi-x86_64-pc-windows-gnu-0.4.0 \ + windows-0.58.0 \ + windows-core-0.52.0 \ + windows-core-0.58.0 \ + windows-implement-0.58.0 \ + windows-interface-0.58.0 \ + windows-link-0.1.0 \ + windows-result-0.2.0 \ + windows-strings-0.1.0 \ + windows-sys-0.48.0 \ + windows-sys-0.52.0 \ + windows-sys-0.59.0 \ + windows-targets-0.48.5 \ + windows-targets-0.52.6 \ + windows_aarch64_gnullvm-0.48.5 \ + windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_msvc-0.48.5 \ + windows_aarch64_msvc-0.52.6 \ + windows_i686_gnu-0.48.5 \ + windows_i686_gnu-0.52.6 \ + windows_i686_gnullvm-0.52.6 \ + windows_i686_msvc-0.48.5 \ + windows_i686_msvc-0.52.6 \ + windows_x86_64_gnu-0.48.5 \ + windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnullvm-0.48.5 \ + windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_msvc-0.48.5 \ + windows_x86_64_msvc-0.52.6 \ + winnow-0.7.9 \ + winsafe-0.0.19 \ + wit-bindgen-rt-0.39.0 \ + write16-1.0.0 \ + writeable-0.5.5 \ + yansi-1.0.1 \ + yoke-0.7.5 \ + yoke-derive-0.7.5 \ + zerocopy-0.8.23 \ + zerocopy-derive-0.8.23 \ + zerofrom-0.1.6 \ + zerofrom-derive-0.1.6 \ + zerovec-0.10.4 \ + zerovec-derive-0.10.3 \ + zip-0.6.6 \ + zstd-0.11.2+zstd.1.5.2 \ + zstd-safe-5.0.2+zstd.1.5.2 \ + zstd-sys-2.0.14+zstd.1.5.7 \ + salsa,salsa-macro-rules,salsa-macros@git+https://github.com/salsa-rs/salsa.git?rev=7edce6e248f35c8114b4b021cdb474a3fb2813b3\#7edce6e248f35c8114b4b021cdb474a3fb2813b3 \ + lsp-types@git+https://github.com/astral-sh/lsp-types.git?rev=3512a9f\#3512a9f33eadc5402cfab1b8f7340824c8ca1439 diff --git a/devel/py-ty/distinfo b/devel/py-ty/distinfo new file mode 100644 index 000000000000..954282516758 --- /dev/null +++ b/devel/py-ty/distinfo @@ -0,0 +1,887 @@ +TIMESTAMP = 1747437956 +SHA256 (ty-0.0.1a4.tar.gz) = 6da8d3a946e93fc2ed6ee902e40768a78188c6452bebcd2d1192ed7661cef8c5 +SIZE (ty-0.0.1a4.tar.gz) = 2878803 +SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 +SIZE (rust/crates/adler2-2.0.0.crate) = 13529 +SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 +SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311 +SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923 +SIZE (rust/crates/allocator-api2-0.2.21.crate) = 63622 +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/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299 +SIZE (rust/crates/anes-0.1.6.crate) = 23857 +SHA256 (rust/crates/annotate-snippets-0.11.5.crate) = 710e8eae58854cdc1790fcb56cca04d712a17be849eeb81da2a724bf4bae2bc4 +SIZE (rust/crates/annotate-snippets-0.11.5.crate) = 34687 +SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b +SIZE (rust/crates/anstream-0.6.18.crate) = 29681 +SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9 +SIZE (rust/crates/anstyle-1.0.10.crate) = 15725 +SHA256 (rust/crates/anstyle-lossy-1.1.3.crate) = 934ff8719effd2023a48cf63e69536c1c3ced9d3895068f6f5cc9a4ff845e59b +SIZE (rust/crates/anstyle-lossy-1.1.3.crate) = 9983 +SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9 +SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343 +SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c +SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969 +SHA256 (rust/crates/anstyle-svg-0.1.7.crate) = d3607949e9f6de49ea4bafe12f5e4fd73613ebf24795e48587302a8cc0e4bb35 +SIZE (rust/crates/anstyle-svg-0.1.7.crate) = 12966 +SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e +SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400 +SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487 +SIZE (rust/crates/anyhow-1.0.98.crate) = 53334 +SHA256 (rust/crates/argfile-0.2.1.crate) = 0a1cc0ba69de57db40674c66f7cf2caee3981ddef084388482c95c0e2133e5e8 +SIZE (rust/crates/argfile-0.2.1.crate) = 9058 +SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50 +SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237 +SHA256 (rust/crates/assert_fs-1.1.3.crate) = a652f6cb1f516886fcfee5e7a5c078b9ade62cfcb889524efe5a64d682dd27a9 +SIZE (rust/crates/assert_fs-1.1.3.crate) = 20176 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/base64-0.13.1.crate) = 9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8 +SIZE (rust/crates/base64-0.13.1.crate) = 61002 +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.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd +SIZE (rust/crates/bitflags-2.9.0.crate) = 47654 +SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71 +SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 +SHA256 (rust/crates/boxcar-0.2.11.crate) = 6740c6e2fc6360fa57c35214c7493826aee95993926092606f27c983b40837be +SIZE (rust/crates/boxcar-0.2.11.crate) = 19937 +SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4 +SIZE (rust/crates/bstr-1.12.0.crate) = 351557 +SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf +SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 +SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b +SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 +SHA256 (rust/crates/cachedir-0.3.1.crate) = 4703f3937077db8fa35bee3c8789343c1aec2585f0146f09d658d4ccc0e8d873 +SIZE (rust/crates/cachedir-0.3.1.crate) = 8668 +SHA256 (rust/crates/camino-1.1.9.crate) = 8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3 +SIZE (rust/crates/camino-1.1.9.crate) = 37552 +SHA256 (rust/crates/cast-0.3.0.crate) = 37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5 +SIZE (rust/crates/cast-0.3.0.crate) = 11452 +SHA256 (rust/crates/castaway-0.2.3.crate) = 0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5 +SIZE (rust/crates/castaway-0.2.3.crate) = 11509 +SHA256 (rust/crates/cc-1.2.16.crate) = be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c +SIZE (rust/crates/cc-1.2.16.crate) = 103847 +SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd +SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 +SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724 +SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355 +SHA256 (rust/crates/chrono-0.4.40.crate) = 1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c +SIZE (rust/crates/chrono-0.4.40.crate) = 229824 +SHA256 (rust/crates/ciborium-0.2.2.crate) = 42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e +SIZE (rust/crates/ciborium-0.2.2.crate) = 35611 +SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757 +SIZE (rust/crates/ciborium-io-0.2.2.crate) = 6697 +SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9 +SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 +SHA256 (rust/crates/clap_complete-4.5.46.crate) = f5c5508ea23c5366f77e53f5a0070e5a84e51687ec3ef9e0464c86dc8d13ce98 +SIZE (rust/crates/clap_complete-4.5.46.crate) = 48021 +SHA256 (rust/crates/clap_complete_command-0.6.1.crate) = da8e198c052315686d36371e8a3c5778b7852fc75cc313e4e11eeb7a644a1b62 +SIZE (rust/crates/clap_complete_command-0.6.1.crate) = 7959 +SHA256 (rust/crates/clap_complete_nushell-4.5.5.crate) = c6a8b1593457dfc2fe539002b795710d022dc62a65bf15023f039f9760c7b18a +SIZE (rust/crates/clap_complete_nushell-4.5.5.crate) = 33986 +SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 +SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 +SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 +SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 +SHA256 (rust/crates/clearscreen-4.0.1.crate) = 8c41dc435a7b98e4608224bbf65282309f5403719df9113621b30f8b6f74e2f4 +SIZE (rust/crates/clearscreen-4.0.1.crate) = 153878 +SHA256 (rust/crates/codspeed-2.9.1.crate) = 60e744216bfa9add3b1f2505587cbbb837923232ed10963609f4a6e3cbd99c3e +SIZE (rust/crates/codspeed-2.9.1.crate) = 8588 +SHA256 (rust/crates/codspeed-criterion-compat-2.9.1.crate) = d5926ca63222a35b9a2299adcaafecf596efe20a9a2048e4a81cb2fc3463b4a8 +SIZE (rust/crates/codspeed-criterion-compat-2.9.1.crate) = 20936 +SHA256 (rust/crates/codspeed-criterion-compat-walltime-2.9.1.crate) = dbae4da05076cbc673e242400ac8f4353bdb686e48020edc6e36a5c36ae0878e +SIZE (rust/crates/codspeed-criterion-compat-walltime-2.9.1.crate) = 122453 +SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990 +SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923 +SHA256 (rust/crates/colored-2.2.0.crate) = 117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c +SIZE (rust/crates/colored-2.2.0.crate) = 35062 +SHA256 (rust/crates/colored-3.0.0.crate) = fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e +SIZE (rust/crates/colored-3.0.0.crate) = 34497 +SHA256 (rust/crates/compact_str-0.9.0.crate) = 3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a +SIZE (rust/crates/compact_str-0.9.0.crate) = 72135 +SHA256 (rust/crates/console-0.15.11.crate) = 054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8 +SIZE (rust/crates/console-0.15.11.crate) = 37822 +SHA256 (rust/crates/console_error_panic_hook-0.1.7.crate) = a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc +SIZE (rust/crates/console_error_panic_hook-0.1.7.crate) = 507196 +SHA256 (rust/crates/console_log-1.0.0.crate) = be8aed40e4edbf4d3b4431ab260b63fdc40f5780a4766824329ea0f1eefe3c0f +SIZE (rust/crates/console_log-1.0.0.crate) = 28943 +SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b +SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712 +SHA256 (rust/crates/countme-3.0.1.crate) = 7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636 +SIZE (rust/crates/countme-3.0.1.crate) = 10784 +SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280 +SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466 +SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 +SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 +SHA256 (rust/crates/criterion-0.5.1.crate) = f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f +SIZE (rust/crates/criterion-0.5.1.crate) = 110088 +SHA256 (rust/crates/criterion-plot-0.5.0.crate) = 6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1 +SIZE (rust/crates/criterion-plot-0.5.0.crate) = 22706 +SHA256 (rust/crates/crossbeam-0.8.4.crate) = 1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8 +SIZE (rust/crates/crossbeam-0.8.4.crate) = 10500 +SHA256 (rust/crates/crossbeam-channel-0.5.14.crate) = 06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471 +SIZE (rust/crates/crossbeam-channel-0.5.14.crate) = 92728 +SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51 +SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471 +SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e +SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875 +SHA256 (rust/crates/crossbeam-queue-0.3.12.crate) = 0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115 +SIZE (rust/crates/crossbeam-queue-0.3.12.crate) = 16270 +SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28 +SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691 +SHA256 (rust/crates/crunchy-0.2.3.crate) = 43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929 +SIZE (rust/crates/crunchy-0.2.3.crate) = 3775 +SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3 +SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760 +SHA256 (rust/crates/ctrlc-3.4.7.crate) = 46f93780a459b7d656ef7f071fe699c4d3d2cb201c4b24d085b6ddc505276e73 +SIZE (rust/crates/ctrlc-3.4.7.crate) = 14606 +SHA256 (rust/crates/darling-0.20.10.crate) = 6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989 +SIZE (rust/crates/darling-0.20.10.crate) = 32031 +SHA256 (rust/crates/darling_core-0.20.10.crate) = 95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5 +SIZE (rust/crates/darling_core-0.20.10.crate) = 65015 +SHA256 (rust/crates/darling_macro-0.20.10.crate) = d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806 +SIZE (rust/crates/darling_macro-0.20.10.crate) = 1874 +SHA256 (rust/crates/dashmap-5.5.3.crate) = 978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856 +SIZE (rust/crates/dashmap-5.5.3.crate) = 24061 +SHA256 (rust/crates/dashmap-6.1.0.crate) = 5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf +SIZE (rust/crates/dashmap-6.1.0.crate) = 24828 +SHA256 (rust/crates/diff-0.1.13.crate) = 56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8 +SIZE (rust/crates/diff-0.1.13.crate) = 46216 +SHA256 (rust/crates/difflib-0.4.0.crate) = 6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8 +SIZE (rust/crates/difflib-0.4.0.crate) = 7638 +SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 +SIZE (rust/crates/digest-0.10.7.crate) = 19557 +SHA256 (rust/crates/dir-test-0.4.1.crate) = 62c013fe825864f3e4593f36426c1fa7a74f5603f13ca8d1af7a990c1cd94a79 +SIZE (rust/crates/dir-test-0.4.1.crate) = 7119 +SHA256 (rust/crates/dir-test-macros-0.4.1.crate) = d42f54d7b4a6bc2400fe5b338e35d1a335787585375322f49c5d5fe7b243da7e +SIZE (rust/crates/dir-test-macros-0.4.1.crate) = 7349 +SHA256 (rust/crates/dirs-5.0.1.crate) = 44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225 +SIZE (rust/crates/dirs-5.0.1.crate) = 12255 +SHA256 (rust/crates/dirs-sys-0.4.1.crate) = 520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c +SIZE (rust/crates/dirs-sys-0.4.1.crate) = 10719 +SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0 +SIZE (rust/crates/displaydoc-0.2.5.crate) = 24219 +SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10 +SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123 +SHA256 (rust/crates/drop_bomb-0.1.5.crate) = 9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1 +SIZE (rust/crates/drop_bomb-0.1.5.crate) = 6859 +SHA256 (rust/crates/dunce-1.0.5.crate) = 92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813 +SIZE (rust/crates/dunce-1.0.5.crate) = 8244 +SHA256 (rust/crates/dyn-clone-1.0.19.crate) = 1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005 +SIZE (rust/crates/dyn-clone-1.0.19.crate) = 12896 +SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719 +SIZE (rust/crates/either-1.15.0.crate) = 20114 +SHA256 (rust/crates/encode_unicode-1.0.0.crate) = 34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0 +SIZE (rust/crates/encode_unicode-1.0.0.crate) = 56986 +SHA256 (rust/crates/env_filter-0.1.3.crate) = 186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0 +SIZE (rust/crates/env_filter-0.1.3.crate) = 15191 +SHA256 (rust/crates/env_home-0.1.0.crate) = c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe +SIZE (rust/crates/env_home-0.1.0.crate) = 9006 +SHA256 (rust/crates/env_logger-0.11.8.crate) = 13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f +SIZE (rust/crates/env_logger-0.11.8.crate) = 32538 +SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f +SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 +SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d +SIZE (rust/crates/errno-0.3.10.crate) = 11824 +SHA256 (rust/crates/escape8259-0.5.3.crate) = 5692dd7b5a1978a5aeb0ce83b7655c58ca8efdcb79d21036ea249da95afec2c6 +SIZE (rust/crates/escape8259-0.5.3.crate) = 4989 +SHA256 (rust/crates/escargot-0.5.13.crate) = 05a3ac187a16b5382fef8c69fd1bad123c67b7cf3932240a2d43dcdd32cded88 +SIZE (rust/crates/escargot-0.5.13.crate) = 20849 +SHA256 (rust/crates/etcetera-0.10.0.crate) = 26c7b13d0780cb82722fd59f6f57f925e143427e4a75313a6c77243bf5326ae6 +SIZE (rust/crates/etcetera-0.10.0.crate) = 14734 +SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be +SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 +SHA256 (rust/crates/fern-0.7.1.crate) = 4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29 +SIZE (rust/crates/fern-0.7.1.crate) = 304533 +SHA256 (rust/crates/filetime-0.2.25.crate) = 35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586 +SIZE (rust/crates/filetime-0.2.25.crate) = 14940 +SHA256 (rust/crates/flate2-1.1.0.crate) = 11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc +SIZE (rust/crates/flate2-1.1.0.crate) = 110650 +SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 +SIZE (rust/crates/fnv-1.0.7.crate) = 11266 +SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2 +SIZE (rust/crates/foldhash-0.1.5.crate) = 21901 +SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456 +SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969 +SHA256 (rust/crates/fs-err-2.11.0.crate) = 88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41 +SIZE (rust/crates/fs-err-2.11.0.crate) = 20449 +SHA256 (rust/crates/fsevent-sys-4.1.0.crate) = 76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2 +SIZE (rust/crates/fsevent-sys-4.1.0.crate) = 4620 +SHA256 (rust/crates/generator-0.8.4.crate) = cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd +SIZE (rust/crates/generator-0.8.4.crate) = 34400 +SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a +SIZE (rust/crates/generic-array-0.14.7.crate) = 15950 +SHA256 (rust/crates/getopts-0.2.21.crate) = 14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5 +SIZE (rust/crates/getopts-0.2.21.crate) = 18457 +SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 +SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 +SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4 +SIZE (rust/crates/getrandom-0.3.3.crate) = 49493 +SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2 +SIZE (rust/crates/glob-0.3.2.crate) = 22359 +SHA256 (rust/crates/globset-0.4.16.crate) = 54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5 +SIZE (rust/crates/globset-0.4.16.crate) = 26533 +SHA256 (rust/crates/globwalk-0.9.1.crate) = 0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757 +SIZE (rust/crates/globwalk-0.9.1.crate) = 12572 +SHA256 (rust/crates/half-2.5.0.crate) = 7db2ff139bba50379da6aa0766b52fdcb62cb5b263009b09ed58ba604e14bbd1 +SIZE (rust/crates/half-2.5.0.crate) = 59156 +SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 +SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 +SHA256 (rust/crates/hashbrown-0.15.3.crate) = 84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3 +SIZE (rust/crates/hashbrown-0.15.3.crate) = 140413 +SHA256 (rust/crates/hashlink-0.10.0.crate) = 7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1 +SIZE (rust/crates/hashlink-0.10.0.crate) = 29402 +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/hermit-abi-0.5.0.crate) = fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e +SIZE (rust/crates/hermit-abi-0.5.0.crate) = 17480 +SHA256 (rust/crates/home-0.5.11.crate) = 589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf +SIZE (rust/crates/home-0.5.11.crate) = 9926 +SHA256 (rust/crates/html-escape-0.2.13.crate) = 6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476 +SIZE (rust/crates/html-escape-0.2.13.crate) = 23345 +SHA256 (rust/crates/iana-time-zone-0.1.61.crate) = 235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220 +SIZE (rust/crates/iana-time-zone-0.1.61.crate) = 27685 +SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f +SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185 +SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526 +SIZE (rust/crates/icu_collections-1.5.0.crate) = 82762 +SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637 +SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131 +SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e +SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094 +SHA256 (rust/crates/icu_locid_transform_data-1.5.0.crate) = fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e +SIZE (rust/crates/icu_locid_transform_data-1.5.0.crate) = 44727 +SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f +SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113 +SHA256 (rust/crates/icu_normalizer_data-1.5.0.crate) = f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516 +SIZE (rust/crates/icu_normalizer_data-1.5.0.crate) = 50561 +SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5 +SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479 +SHA256 (rust/crates/icu_properties_data-1.5.0.crate) = 67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569 +SIZE (rust/crates/icu_properties_data-1.5.0.crate) = 227993 +SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9 +SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722 +SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6 +SIZE (rust/crates/icu_provider_macros-1.5.0.crate) = 6436 +SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39 +SIZE (rust/crates/ident_case-1.0.1.crate) = 3492 +SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e +SIZE (rust/crates/idna-1.0.3.crate) = 142515 +SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 +SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 +SHA256 (rust/crates/ignore-0.4.23.crate) = 6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b +SIZE (rust/crates/ignore-0.4.23.crate) = 55901 +SHA256 (rust/crates/imara-diff-0.1.8.crate) = 17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2 +SIZE (rust/crates/imara-diff-0.1.8.crate) = 155787 +SHA256 (rust/crates/imperative-1.0.6.crate) = 29a1f6526af721f9aec9ceed7ab8ebfca47f3399d08b80056c2acca3fcb694a9 +SIZE (rust/crates/imperative-1.0.6.crate) = 13221 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 +SHA256 (rust/crates/indicatif-0.17.11.crate) = 183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235 +SIZE (rust/crates/indicatif-0.17.11.crate) = 66577 +SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd +SIZE (rust/crates/indoc-2.0.6.crate) = 17164 +SHA256 (rust/crates/inotify-0.11.0.crate) = f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3 +SIZE (rust/crates/inotify-0.11.0.crate) = 26241 +SHA256 (rust/crates/inotify-sys-0.1.5.crate) = e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb +SIZE (rust/crates/inotify-sys-0.1.5.crate) = 6965 +SHA256 (rust/crates/insta-1.42.2.crate) = 50259abbaa67d11d2bcafc7ba1d094ed7a0c70e3ce893f0d0997f73558cb3084 +SIZE (rust/crates/insta-1.42.2.crate) = 100430 +SHA256 (rust/crates/insta-cmd-0.6.0.crate) = ffeeefa927925cced49ccb01bf3e57c9d4cd132df21e576eb9415baeab2d3de6 +SIZE (rust/crates/insta-cmd-0.6.0.crate) = 12385 +SHA256 (rust/crates/is-docker-0.2.0.crate) = 928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3 +SIZE (rust/crates/is-docker-0.2.0.crate) = 2664 +SHA256 (rust/crates/is-macro-0.3.7.crate) = 1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4 +SIZE (rust/crates/is-macro-0.3.7.crate) = 9060 +SHA256 (rust/crates/is-terminal-0.4.16.crate) = e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9 +SIZE (rust/crates/is-terminal-0.4.16.crate) = 7811 +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.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf +SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 +SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473 +SIZE (rust/crates/itertools-0.10.5.crate) = 115354 +SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186 +SIZE (rust/crates/itertools-0.13.0.crate) = 146261 +SHA256 (rust/crates/itertools-0.14.0.crate) = 2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285 +SIZE (rust/crates/itertools-0.14.0.crate) = 152715 +SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c +SIZE (rust/crates/itoa-1.0.15.crate) = 11231 +SHA256 (rust/crates/jiff-0.2.13.crate) = f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806 +SIZE (rust/crates/jiff-0.2.13.crate) = 707842 +SHA256 (rust/crates/jiff-static-0.2.13.crate) = f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48 +SIZE (rust/crates/jiff-static-0.2.13.crate) = 76123 +SHA256 (rust/crates/jiff-tzdb-0.1.4.crate) = c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524 +SIZE (rust/crates/jiff-tzdb-0.1.4.crate) = 62435 +SHA256 (rust/crates/jiff-tzdb-platform-0.1.3.crate) = 875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8 +SIZE (rust/crates/jiff-tzdb-platform-0.1.3.crate) = 3179 +SHA256 (rust/crates/jobserver-0.1.32.crate) = 48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0 +SIZE (rust/crates/jobserver-0.1.32.crate) = 27549 +SHA256 (rust/crates/jod-thread-0.1.2.crate) = 8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae +SIZE (rust/crates/jod-thread-0.1.2.crate) = 6322 +SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f +SIZE (rust/crates/js-sys-0.3.77.crate) = 55538 +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 +SIZE (rust/crates/kqueue-sys-1.0.4.crate) = 7160 +SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe +SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 +SHA256 (rust/crates/libcst-1.7.0.crate) = ad9e315e3f679e61b9095ffd5e509de78b8a4ea3bba9d772f6fb243209f808d4 +SIZE (rust/crates/libcst-1.7.0.crate) = 110265 +SHA256 (rust/crates/libcst_derive-1.7.0.crate) = bfa96ed35d0dccc67cf7ba49350cb86de3dcb1d072a7ab28f99117f19d874953 +SIZE (rust/crates/libcst_derive-1.7.0.crate) = 11152 +SHA256 (rust/crates/libmimalloc-sys-0.1.42.crate) = ec9d6fac27761dabcd4ee73571cdb06b7022dc99089acbe5435691edffaac0f4 +SIZE (rust/crates/libmimalloc-sys-0.1.42.crate) = 224614 +SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d +SIZE (rust/crates/libredox-0.1.3.crate) = 6068 +SHA256 (rust/crates/libtest-mimic-0.7.3.crate) = cc0bda45ed5b3a2904262c1bb91e526127aa70e7ef3758aba2ef93cf896b9b58 +SIZE (rust/crates/libtest-mimic-0.7.3.crate) = 27276 +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.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab +SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898 +SHA256 (rust/crates/linux-raw-sys-0.9.3.crate) = fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413 +SIZE (rust/crates/linux-raw-sys-0.9.3.crate) = 2311047 +SHA256 (rust/crates/litemap-0.7.5.crate) = 23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856 +SIZE (rust/crates/litemap-0.7.5.crate) = 29962 +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.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 +SIZE (rust/crates/log-0.4.27.crate) = 48120 +SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca +SIZE (rust/crates/loom-0.7.2.crate) = 73989 +SHA256 (rust/crates/lsp-server-0.7.8.crate) = 9462c4dc73e17f971ec1f171d44bfffb72e65a130117233388a0ebc7ec5656f9 +SIZE (rust/crates/lsp-server-0.7.8.crate) = 16836 +SHA256 (rust/crates/markdown-1.0.0.crate) = a5cab8f2cadc416a82d2e783a1946388b31654d391d1c7d92cc1f03e295b1deb +SIZE (rust/crates/markdown-1.0.0.crate) = 219012 +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.8.6.crate) = 2f926ade0c4e170215ae43342bf13b9310a437609c81f29f86c5df6657582ef9 +SIZE (rust/crates/matchit-0.8.6.crate) = 38353 +SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 +SIZE (rust/crates/memchr-2.7.4.crate) = 96670 +SHA256 (rust/crates/mimalloc-0.1.46.crate) = 995942f432bbb4822a7e9c3faa87a695185b0d09273ba85f097b54f4e458f2af +SIZE (rust/crates/mimalloc-0.1.46.crate) = 4601 +SHA256 (rust/crates/minicov-0.3.7.crate) = f27fe9f1cc3c22e1687f9446c2083c4c5fc7f0bcf1c7a86bdbded14985895b4b +SIZE (rust/crates/minicov-0.3.7.crate) = 43788 +SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a +SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841 +SHA256 (rust/crates/miniz_oxide-0.8.5.crate) = 8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5 +SIZE (rust/crates/miniz_oxide-0.8.5.crate) = 62237 +SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd +SIZE (rust/crates/mio-1.0.3.crate) = 103703 +SHA256 (rust/crates/natord-1.0.9.crate) = 308d96db8debc727c3fd9744aac51751243420e46edf401010908da7f8d5e57c +SIZE (rust/crates/natord-1.0.9.crate) = 3866 +SHA256 (rust/crates/newtype-uuid-1.2.1.crate) = ee3224f0e8be7c2a1ebc77ef9c3eecb90f55c6594399ee825de964526b3c9056 +SIZE (rust/crates/newtype-uuid-1.2.1.crate) = 15941 +SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46 +SIZE (rust/crates/nix-0.29.0.crate) = 318248 +SHA256 (rust/crates/nix-0.30.1.crate) = 74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6 +SIZE (rust/crates/nix-0.30.1.crate) = 342015 +SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a +SIZE (rust/crates/nom-7.1.3.crate) = 117570 +SHA256 (rust/crates/normalize-line-endings-0.3.0.crate) = 61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be +SIZE (rust/crates/normalize-line-endings-0.3.0.crate) = 5737 +SHA256 (rust/crates/notify-8.0.0.crate) = 2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943 +SIZE (rust/crates/notify-8.0.0.crate) = 35590 +SHA256 (rust/crates/notify-types-2.0.0.crate) = 5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d +SIZE (rust/crates/notify-types-2.0.0.crate) = 14495 +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-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/number_prefix-0.4.0.crate) = 830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3 +SIZE (rust/crates/number_prefix-0.4.0.crate) = 6922 +SHA256 (rust/crates/once_cell-1.21.1.crate) = d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc +SIZE (rust/crates/once_cell-1.21.1.crate) = 34256 +SHA256 (rust/crates/oorandom-11.1.5.crate) = d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e +SIZE (rust/crates/oorandom-11.1.5.crate) = 23750 +SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d +SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 +SHA256 (rust/crates/ordermap-0.5.7.crate) = 7d31b8b7a99f71bdff4235faf9ce9eada0ad3562c8fbeb7d607d9f41a6ec569d +SIZE (rust/crates/ordermap-0.5.7.crate) = 64981 +SHA256 (rust/crates/os_pipe-1.2.1.crate) = 5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982 +SIZE (rust/crates/os_pipe-1.2.1.crate) = 10691 +SHA256 (rust/crates/os_str_bytes-7.1.0.crate) = c86e2db86dd008b4c88c77a9bb83d9286bf77204e255bb3fda3b2eebcae66b62 +SIZE (rust/crates/os_str_bytes-7.1.0.crate) = 28150 +SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39 +SIZE (rust/crates/overload-0.1.1.crate) = 24439 +SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27 +SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860 +SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8 +SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406 +SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a +SIZE (rust/crates/paste-1.0.15.crate) = 18374 +SHA256 (rust/crates/path-absolutize-3.1.1.crate) = e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5 +SIZE (rust/crates/path-absolutize-3.1.1.crate) = 6605 +SHA256 (rust/crates/path-dedot-3.1.1.crate) = 07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397 +SIZE (rust/crates/path-dedot-3.1.1.crate) = 6596 +SHA256 (rust/crates/path-slash-0.2.1.crate) = 1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42 +SIZE (rust/crates/path-slash-0.2.1.crate) = 8821 +SHA256 (rust/crates/pathdiff-0.2.3.crate) = df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3 +SIZE (rust/crates/pathdiff-0.2.3.crate) = 7495 +SHA256 (rust/crates/peg-0.8.5.crate) = 9928cfca101b36ec5163e70049ee5368a8a1c3c6efc9ca9c5f9cc2f816152477 +SIZE (rust/crates/peg-0.8.5.crate) = 22411 +SHA256 (rust/crates/peg-macros-0.8.5.crate) = 6298ab04c202fa5b5d52ba03269fb7b74550b150323038878fe6c372d8280f71 +SIZE (rust/crates/peg-macros-0.8.5.crate) = 30601 +SHA256 (rust/crates/peg-runtime-0.8.5.crate) = 132dca9b868d927b35b5dd728167b2dee150eb1ad686008fc71ccb298b776fca +SIZE (rust/crates/peg-runtime-0.8.5.crate) = 4458 +SHA256 (rust/crates/pep440_rs-0.7.3.crate) = 31095ca1f396e3de32745f42b20deef7bc09077f918b085307e8eab6ddd8fb9c +SIZE (rust/crates/pep440_rs-0.7.3.crate) = 44342 +SHA256 (rust/crates/pep508_rs-0.9.2.crate) = faee7227064121fcadcd2ff788ea26f0d8f2bd23a0574da11eca23bc935bcc05 +SIZE (rust/crates/pep508_rs-0.9.2.crate) = 70842 +SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e +SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235 +SHA256 (rust/crates/pest-2.7.15.crate) = 8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc +SIZE (rust/crates/pest-2.7.15.crate) = 127895 +SHA256 (rust/crates/pest_derive-2.7.15.crate) = 816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e +SIZE (rust/crates/pest_derive-2.7.15.crate) = 40745 +SHA256 (rust/crates/pest_generator-2.7.15.crate) = 7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b +SIZE (rust/crates/pest_generator-2.7.15.crate) = 18417 +SHA256 (rust/crates/pest_meta-2.7.15.crate) = e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea +SIZE (rust/crates/pest_meta-2.7.15.crate) = 42121 +SHA256 (rust/crates/phf-0.11.3.crate) = 1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078 +SIZE (rust/crates/phf-0.11.3.crate) = 23231 +SHA256 (rust/crates/phf_codegen-0.11.3.crate) = aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a +SIZE (rust/crates/phf_codegen-0.11.3.crate) = 13741 +SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d +SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431 +SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5 +SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199 +SHA256 (rust/crates/pin-project-1.1.10.crate) = 677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a +SIZE (rust/crates/pin-project-1.1.10.crate) = 56348 +SHA256 (rust/crates/pin-project-internal-1.1.10.crate) = 6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861 +SIZE (rust/crates/pin-project-internal-1.1.10.crate) = 29162 +SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b +SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504 +SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c +SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370 +SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e +SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 +SHA256 (rust/crates/portable-atomic-util-0.2.4.crate) = d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507 +SIZE (rust/crates/portable-atomic-util-0.2.4.crate) = 47043 +SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9 +SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522 +SHA256 (rust/crates/predicates-3.1.3.crate) = a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573 +SIZE (rust/crates/predicates-3.1.3.crate) = 24063 +SHA256 (rust/crates/predicates-core-1.0.9.crate) = 727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa +SIZE (rust/crates/predicates-core-1.0.9.crate) = 8618 +SHA256 (rust/crates/predicates-tree-1.0.12.crate) = 72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c +SIZE (rust/crates/predicates-tree-1.0.12.crate) = 8392 +SHA256 (rust/crates/pretty_assertions-1.4.1.crate) = 3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d +SIZE (rust/crates/pretty_assertions-1.4.1.crate) = 78952 +SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 +SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 +SHA256 (rust/crates/pyproject-toml-0.13.4.crate) = 643af57c3f36ba90a8b53e972727d8092f7408a9ebfbaf4c3d2c17b07c58d835 +SIZE (rust/crates/pyproject-toml-0.13.4.crate) = 10535 +SHA256 (rust/crates/quick-junit-0.5.1.crate) = 3ed1a693391a16317257103ad06a88c6529ac640846021da7c435a06fffdacd7 +SIZE (rust/crates/quick-junit-0.5.1.crate) = 21088 +SHA256 (rust/crates/quick-xml-0.37.2.crate) = 165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003 +SIZE (rust/crates/quick-xml-0.37.2.crate) = 188017 +SHA256 (rust/crates/quickcheck-1.0.3.crate) = 588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6 +SIZE (rust/crates/quickcheck-1.0.3.crate) = 28069 +SHA256 (rust/crates/quickcheck_macros-1.0.0.crate) = b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9 +SIZE (rust/crates/quickcheck_macros-1.0.0.crate) = 5275 +SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d +SIZE (rust/crates/quote-1.0.40.crate) = 31063 +SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5 +SIZE (rust/crates/r-efi-5.2.0.crate) = 64764 +SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 +SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand-0.9.1.crate) = 9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97 +SIZE (rust/crates/rand-0.9.1.crate) = 97986 +SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 +SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb +SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258 +SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c +SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 +SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38 +SIZE (rust/crates/rand_core-0.9.3.crate) = 24543 +SHA256 (rust/crates/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.5.10.crate) = 0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1 +SIZE (rust/crates/redox_syscall-0.5.10.crate) = 30226 +SHA256 (rust/crates/redox_users-0.4.6.crate) = ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43 +SIZE (rust/crates/redox_users-0.4.6.crate) = 15585 +SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 +SIZE (rust/crates/regex-1.11.1.crate) = 254170 +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.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908 +SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525 +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.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c +SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541 +SHA256 (rust/crates/ron-0.7.1.crate) = 88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a +SIZE (rust/crates/ron-0.7.1.crate) = 53572 +SHA256 (rust/crates/rust-stemmers-1.2.0.crate) = e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54 +SIZE (rust/crates/rust-stemmers-1.2.0.crate) = 2351301 +SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 +SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331 +SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d +SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154 +SHA256 (rust/crates/rustc-stable-hash-0.1.2.crate) = 781442f29170c5c93b7185ad559492601acdc71d5bb0706f5868094f45cfcd08 +SIZE (rust/crates/rustc-stable-hash-0.1.2.crate) = 20359 +SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154 +SIZE (rust/crates/rustix-0.38.44.crate) = 379347 +SHA256 (rust/crates/rustix-1.0.2.crate) = f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825 +SIZE (rust/crates/rustix-1.0.2.crate) = 411835 +SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2 +SIZE (rust/crates/rustversion-1.0.20.crate) = 20666 +SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f +SIZE (rust/crates/ryu-1.0.20.crate) = 48738 +SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 +SIZE (rust/crates/same-file-1.0.6.crate) = 10183 +SHA256 (rust/crates/schemars-0.8.22.crate) = 3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615 +SIZE (rust/crates/schemars-0.8.22.crate) = 59214 +SHA256 (rust/crates/schemars_derive-0.8.22.crate) = 32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d +SIZE (rust/crates/schemars_derive-0.8.22.crate) = 19542 +SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294 +SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202 +SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 +SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 +SHA256 (rust/crates/seahash-4.1.0.crate) = 1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b +SIZE (rust/crates/seahash-4.1.0.crate) = 31976 +SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6 +SIZE (rust/crates/serde-1.0.219.crate) = 78983 +SHA256 (rust/crates/serde-wasm-bindgen-0.6.5.crate) = 8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b +SIZE (rust/crates/serde-wasm-bindgen-0.6.5.crate) = 21098 +SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 +SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 +SHA256 (rust/crates/serde_derive_internals-0.29.1.crate) = 18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711 +SIZE (rust/crates/serde_derive_internals-0.29.1.crate) = 26189 +SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 +SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 +SHA256 (rust/crates/serde_repr-0.1.20.crate) = 175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c +SIZE (rust/crates/serde_repr-0.1.20.crate) = 12627 +SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1 +SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330 +SHA256 (rust/crates/serde_test-1.0.177.crate) = 7f901ee573cab6b3060453d2d5f0bae4e6d628c23c0a962ff9b5f1d7c8d4f1ed +SIZE (rust/crates/serde_test-1.0.177.crate) = 18671 +SHA256 (rust/crates/serde_with-3.12.0.crate) = d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa +SIZE (rust/crates/serde_with-3.12.0.crate) = 148666 +SHA256 (rust/crates/serde_with_macros-3.12.0.crate) = 8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e +SIZE (rust/crates/serde_with_macros-3.12.0.crate) = 32089 +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/shellexpand-3.1.1.crate) = 8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb +SIZE (rust/crates/shellexpand-3.1.1.crate) = 25904 +SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 +SIZE (rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (rust/crates/similar-2.7.0.crate) = bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa +SIZE (rust/crates/similar-2.7.0.crate) = 53928 +SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d +SIZE (rust/crates/siphasher-1.0.1.crate) = 10351 +SHA256 (rust/crates/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9 +SIZE (rust/crates/smallvec-1.15.0.crate) = 38113 +SHA256 (rust/crates/snapbox-0.6.21.crate) = 96dcfc4581e3355d70ac2ee14cfdf81dce3d85c85f1ed9e2c1d3013f53b3436b +SIZE (rust/crates/snapbox-0.6.21.crate) = 55301 +SHA256 (rust/crates/snapbox-macros-0.3.10.crate) = 16569f53ca23a41bb6f62e0a5084aa1661f4814a67fa33696a79073e03a664af +SIZE (rust/crates/snapbox-macros-0.3.10.crate) = 7129 +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/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f +SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480 +SHA256 (rust/crates/strip-ansi-escapes-0.2.1.crate) = 2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025 +SIZE (rust/crates/strip-ansi-escapes-0.2.1.crate) = 8273 +SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f +SIZE (rust/crates/strsim-0.11.1.crate) = 14266 +SHA256 (rust/crates/strum-0.27.1.crate) = f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32 +SIZE (rust/crates/strum-0.27.1.crate) = 7467 +SHA256 (rust/crates/strum_macros-0.27.1.crate) = c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8 +SIZE (rust/crates/strum_macros-0.27.1.crate) = 29670 +SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 +SIZE (rust/crates/syn-1.0.109.crate) = 237611 +SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf +SIZE (rust/crates/syn-2.0.101.crate) = 299250 +SHA256 (rust/crates/synstructure-0.13.1.crate) = c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971 +SIZE (rust/crates/synstructure-0.13.1.crate) = 18327 +SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf +SIZE (rust/crates/tempfile-3.19.1.crate) = 39634 +SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755 +SIZE (rust/crates/termcolor-1.4.1.crate) = 18773 +SHA256 (rust/crates/terminal_size-0.4.2.crate) = 45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed +SIZE (rust/crates/terminal_size-0.4.2.crate) = 9976 +SHA256 (rust/crates/terminfo-0.9.0.crate) = d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662 +SIZE (rust/crates/terminfo-0.9.0.crate) = 45420 +SHA256 (rust/crates/termtree-0.5.1.crate) = 8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683 +SIZE (rust/crates/termtree-0.5.1.crate) = 8498 +SHA256 (rust/crates/test-case-3.3.1.crate) = eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8 +SIZE (rust/crates/test-case-3.3.1.crate) = 8797 +SHA256 (rust/crates/test-case-core-3.3.1.crate) = adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f +SIZE (rust/crates/test-case-core-3.3.1.crate) = 14327 +SHA256 (rust/crates/test-case-macros-3.3.1.crate) = 5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb +SIZE (rust/crates/test-case-macros-3.3.1.crate) = 4961 +SHA256 (rust/crates/thin-vec-0.2.14.crate) = 144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d +SIZE (rust/crates/thin-vec-0.2.14.crate) = 35087 +SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 +SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 +SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 +SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 +SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c +SIZE (rust/crates/thread_local-1.1.8.crate) = 13962 +SHA256 (rust/crates/threadpool-1.8.1.crate) = d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa +SIZE (rust/crates/threadpool-1.8.1.crate) = 14408 +SHA256 (rust/crates/tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7.crate) = cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d +SIZE (rust/crates/tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7.crate) = 897133 +SHA256 (rust/crates/tikv-jemallocator-0.6.0.crate) = 4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865 +SIZE (rust/crates/tikv-jemallocator-0.6.0.crate) = 13700 +SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f +SIZE (rust/crates/tinystr-0.7.6.crate) = 16971 +SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc +SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490 +SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71 +SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137 +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.8.22.crate) = 05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae +SIZE (rust/crates/toml-0.8.22.crate) = 76224 +SHA256 (rust/crates/toml_datetime-0.6.9.crate) = 3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3 +SIZE (rust/crates/toml_datetime-0.6.9.crate) = 12622 +SHA256 (rust/crates/toml_edit-0.22.26.crate) = 310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e +SIZE (rust/crates/toml_edit-0.22.26.crate) = 121714 +SHA256 (rust/crates/toml_write-0.1.1.crate) = bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076 +SIZE (rust/crates/toml_write-0.1.1.crate) = 17467 +SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0 +SIZE (rust/crates/tracing-0.1.41.crate) = 82448 +SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d +SIZE (rust/crates/tracing-attributes-0.1.28.crate) = 33280 +SHA256 (rust/crates/tracing-core-0.1.33.crate) = e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c +SIZE (rust/crates/tracing-core-0.1.33.crate) = 63434 +SHA256 (rust/crates/tracing-flame-0.2.0.crate) = 0bae117ee14789185e129aaee5d93750abe67fdc5a9a62650452bfe4e122a3a9 +SIZE (rust/crates/tracing-flame-0.2.0.crate) = 9062 +SHA256 (rust/crates/tracing-indicatif-0.3.9.crate) = 8201ca430e0cd893ef978226fd3516c06d9c494181c8bf4e5b32e30ed4b40aa1 +SIZE (rust/crates/tracing-indicatif-0.3.9.crate) = 28017 +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.19.crate) = e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008 +SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345 +SHA256 (rust/crates/tryfn-0.2.3.crate) = 5fe242ee9e646acec9ab73a5c540e8543ed1b107f0ce42be831e0775d423c396 +SIZE (rust/crates/tryfn-0.2.3.crate) = 8481 +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.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f +SIZE (rust/crates/typenum-1.18.0.crate) = 74871 +SHA256 (rust/crates/ucd-trie-0.1.7.crate) = 2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971 +SIZE (rust/crates/ucd-trie-0.1.7.crate) = 46795 +SHA256 (rust/crates/unic-char-property-0.9.0.crate) = a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221 +SIZE (rust/crates/unic-char-property-0.9.0.crate) = 6809 +SHA256 (rust/crates/unic-char-range-0.9.0.crate) = 0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc +SIZE (rust/crates/unic-char-range-0.9.0.crate) = 7020 +SHA256 (rust/crates/unic-common-0.9.0.crate) = 80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc +SIZE (rust/crates/unic-common-0.9.0.crate) = 2558 +SHA256 (rust/crates/unic-ucd-category-0.9.0.crate) = 1b8d4591f5fcfe1bd4453baaf803c40e1b1e69ff8455c47620440b46efef91c0 +SIZE (rust/crates/unic-ucd-category-0.9.0.crate) = 25480 +SHA256 (rust/crates/unic-ucd-version-0.9.0.crate) = 96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4 +SIZE (rust/crates/unic-ucd-version-0.9.0.crate) = 2246 +SHA256 (rust/crates/unicode-id-0.3.5.crate) = 10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561 +SIZE (rust/crates/unicode-id-0.3.5.crate) = 16807 +SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 +SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 +SHA256 (rust/crates/unicode-normalization-0.1.24.crate) = 5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956 +SIZE (rust/crates/unicode-normalization-0.1.24.crate) = 126536 +SHA256 (rust/crates/unicode-width-0.1.14.crate) = 7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af +SIZE (rust/crates/unicode-width-0.1.14.crate) = 271615 +SHA256 (rust/crates/unicode-width-0.2.0.crate) = 1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd +SIZE (rust/crates/unicode-width-0.2.0.crate) = 271509 +SHA256 (rust/crates/unicode_names2-1.3.0.crate) = d1673eca9782c84de5f81b82e4109dcfb3611c8ba0d52930ec4a9478f547b2dd +SIZE (rust/crates/unicode_names2-1.3.0.crate) = 330829 +SHA256 (rust/crates/unicode_names2_generator-1.3.0.crate) = b91e5b84611016120197efd7dc93ef76774f4e084cd73c9fb3ea4a86c570c56e +SIZE (rust/crates/unicode_names2_generator-1.3.0.crate) = 14019 +SHA256 (rust/crates/unscanny-0.1.0.crate) = e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47 +SIZE (rust/crates/unscanny-0.1.0.crate) = 10338 +SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60 +SIZE (rust/crates/url-2.5.4.crate) = 81097 +SHA256 (rust/crates/urlencoding-2.1.3.crate) = daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da +SIZE (rust/crates/urlencoding-2.1.3.crate) = 6538 +SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246 +SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736 +SHA256 (rust/crates/utf8-width-0.1.7.crate) = 86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3 +SIZE (rust/crates/utf8-width-0.1.7.crate) = 2977 +SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be +SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437 +SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 +SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499 +SHA256 (rust/crates/uuid-1.16.0.crate) = 458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9 +SIZE (rust/crates/uuid-1.16.0.crate) = 58549 +SHA256 (rust/crates/uuid-macro-internal-1.16.0.crate) = 72dcd78c4f979627a754f5522cea6e6a25e55139056535fe6e69c506cd64a862 +SIZE (rust/crates/uuid-macro-internal-1.16.0.crate) = 9645 +SHA256 (rust/crates/valuable-0.1.1.crate) = ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65 +SIZE (rust/crates/valuable-0.1.1.crate) = 28679 +SHA256 (rust/crates/version-ranges-0.1.1.crate) = f8d079415ceb2be83fc355adbadafe401307d5c309c7e6ade6638e6f9f42f42d +SIZE (rust/crates/version-ranges-0.1.1.crate) = 13740 +SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a +SIZE (rust/crates/version_check-0.9.5.crate) = 15554 +SHA256 (rust/crates/vt100-0.15.2.crate) = 84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de +SIZE (rust/crates/vt100-0.15.2.crate) = 30404 +SHA256 (rust/crates/vte-0.11.1.crate) = f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197 +SIZE (rust/crates/vte-0.11.1.crate) = 40455 +SHA256 (rust/crates/vte-0.14.1.crate) = 231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077 +SIZE (rust/crates/vte-0.14.1.crate) = 57382 +SHA256 (rust/crates/vte_generate_state_changes-0.1.2.crate) = 2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e +SIZE (rust/crates/vte_generate_state_changes-0.1.2.crate) = 6503 +SHA256 (rust/crates/wait-timeout-0.2.1.crate) = 09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11 +SIZE (rust/crates/wait-timeout-0.2.1.crate) = 11435 +SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b +SIZE (rust/crates/walkdir-2.5.0.crate) = 23951 +SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423 +SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131 +SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3 +SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921 +SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5 +SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288 +SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6 +SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111 +SHA256 (rust/crates/wasm-bindgen-futures-0.4.50.crate) = 555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61 +SIZE (rust/crates/wasm-bindgen-futures-0.4.50.crate) = 16181 +SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407 +SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d +SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570 +SHA256 (rust/crates/wasm-bindgen-test-0.3.50.crate) = 66c8d5e33ca3b6d9fa3b4676d774c5778031d27a578c2b007f905acf816152c3 +SIZE (rust/crates/wasm-bindgen-test-0.3.50.crate) = 22228 +SHA256 (rust/crates/wasm-bindgen-test-macro-0.3.50.crate) = 17d5042cc5fa009658f9a7333ef24291b1291a25b6382dd68862a7f3b969f69b +SIZE (rust/crates/wasm-bindgen-test-macro-0.3.50.crate) = 11089 +SHA256 (rust/crates/web-sys-0.3.77.crate) = 33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2 +SIZE (rust/crates/web-sys-0.3.77.crate) = 638246 +SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb +SIZE (rust/crates/web-time-1.1.0.crate) = 18026 +SHA256 (rust/crates/which-7.0.2.crate) = 2774c861e1f072b3aadc02f8ba886c26ad6321567ecc294c935434cad06f1283 +SIZE (rust/crates/which-7.0.2.crate) = 21099 +SHA256 (rust/crates/wild-2.2.1.crate) = a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1 +SIZE (rust/crates/wild-2.2.1.crate) = 8080 +SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 +SIZE (rust/crates/winapi-0.3.9.crate) = 1200382 +SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 +SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815 +SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb +SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464 +SHA256 (rust/crates/winapi-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.58.0.crate) = dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6 +SIZE (rust/crates/windows-0.58.0.crate) = 9744521 +SHA256 (rust/crates/windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9 +SIZE (rust/crates/windows-core-0.52.0.crate) = 42154 +SHA256 (rust/crates/windows-core-0.58.0.crate) = 6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99 +SIZE (rust/crates/windows-core-0.58.0.crate) = 41022 +SHA256 (rust/crates/windows-implement-0.58.0.crate) = 2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b +SIZE (rust/crates/windows-implement-0.58.0.crate) = 10491 +SHA256 (rust/crates/windows-interface-0.58.0.crate) = 053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515 +SIZE (rust/crates/windows-interface-0.58.0.crate) = 11246 +SHA256 (rust/crates/windows-link-0.1.0.crate) = 6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3 +SIZE (rust/crates/windows-link-0.1.0.crate) = 6153 +SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e +SIZE (rust/crates/windows-result-0.2.0.crate) = 12756 +SHA256 (rust/crates/windows-strings-0.1.0.crate) = 4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10 +SIZE (rust/crates/windows-strings-0.1.0.crate) = 13832 +SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9 +SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884 +SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d +SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877 +SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b +SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 +SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c +SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904 +SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 +SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8 +SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 +SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc +SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483 +SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 +SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e +SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891 +SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b +SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 +SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406 +SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300 +SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 +SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e +SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619 +SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 +SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc +SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d +SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538 +SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412 +SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec +SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 +SHA256 (rust/crates/winnow-0.7.9.crate) = d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3 +SIZE (rust/crates/winnow-0.7.9.crate) = 174763 +SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904 +SIZE (rust/crates/winsafe-0.0.19.crate) = 492820 +SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 +SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 +SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 +SIZE (rust/crates/write16-1.0.0.crate) = 7218 +SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 +SIZE (rust/crates/writeable-0.5.5.crate) = 22354 +SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049 +SIZE (rust/crates/yansi-1.0.1.crate) = 75497 +SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40 +SIZE (rust/crates/yoke-0.7.5.crate) = 29673 +SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154 +SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525 +SHA256 (rust/crates/zerocopy-0.8.23.crate) = fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6 +SIZE (rust/crates/zerocopy-0.8.23.crate) = 239977 +SHA256 (rust/crates/zerocopy-derive-0.8.23.crate) = 6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154 +SIZE (rust/crates/zerocopy-derive-0.8.23.crate) = 83885 +SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5 +SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669 +SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502 +SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305 +SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079 +SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 +SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 +SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 +SHA256 (rust/crates/zip-0.6.6.crate) = 760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261 +SIZE (rust/crates/zip-0.6.6.crate) = 65789 +SHA256 (rust/crates/zstd-0.11.2+zstd.1.5.2.crate) = 20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4 +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.14+zstd.1.5.7.crate) = 8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5 +SIZE (rust/crates/zstd-sys-2.0.14+zstd.1.5.7.crate) = 764660 +SHA256 (salsa-rs-salsa-7edce6e248f35c8114b4b021cdb474a3fb2813b3_GH0.tar.gz) = 1dd42e23b2db5bf3808427483275909a9fe4b60e3bed31c552717bb4a4fa0e05 +SIZE (salsa-rs-salsa-7edce6e248f35c8114b4b021cdb474a3fb2813b3_GH0.tar.gz) = 660115 +SHA256 (astral-sh-lsp-types-3512a9f33eadc5402cfab1b8f7340824c8ca1439_GH0.tar.gz) = 410f889792e86186b6299ad534446510207a9e2e55b78301b77fc8b661b46913 +SIZE (astral-sh-lsp-types-3512a9f33eadc5402cfab1b8f7340824c8ca1439_GH0.tar.gz) = 71124 diff --git a/devel/py-ty/pkg-descr b/devel/py-ty/pkg-descr new file mode 100644 index 000000000000..6fe411f747a5 --- /dev/null +++ b/devel/py-ty/pkg-descr @@ -0,0 +1,2 @@ +An extremely fast Python type checker and language server, written in +Rust. diff --git a/devel/py-versioningit/Makefile b/devel/py-versioningit/Makefile index c580b875e302..df94fb039f88 100644 --- a/devel/py-versioningit/Makefile +++ b/devel/py-versioningit/Makefile @@ -1,5 +1,5 @@ PORTNAME= versioningit -PORTVERSION= 3.1.2 +PORTVERSION= 3.1.3 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/devel/py-versioningit/distinfo b/devel/py-versioningit/distinfo index a3332d15eb08..ed16767326f3 100644 --- a/devel/py-versioningit/distinfo +++ b/devel/py-versioningit/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1722340380 -SHA256 (versioningit-3.1.2.tar.gz) = 4db83ed99f56b07d83940bee3445ca46ca120d13b6b304cdb5fb44e5aa4edec0 -SIZE (versioningit-3.1.2.tar.gz) = 213047 +TIMESTAMP = 1747250371 +SHA256 (versioningit-3.1.3.tar.gz) = 1b7f3c2d3e9c7b737e7d2664c3445a61a121e3de7610e8e781b483f5d88e3618 +SIZE (versioningit-3.1.3.tar.gz) = 213327 diff --git a/devel/sdl3/Makefile b/devel/sdl3/Makefile index ed458824cced..e27cb09101a4 100644 --- a/devel/sdl3/Makefile +++ b/devel/sdl3/Makefile @@ -1,6 +1,6 @@ PORTNAME= sdl3 DISTVERSIONPREFIX= release- -DISTVERSION= 3.2.12 +DISTVERSION= 3.2.14 CATEGORIES= devel MAINTAINER= amdmi3@FreeBSD.org diff --git a/devel/sdl3/distinfo b/devel/sdl3/distinfo index b5e687778099..e34681029ed1 100644 --- a/devel/sdl3/distinfo +++ b/devel/sdl3/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746129381 -SHA256 (libsdl-org-SDL-release-3.2.12_GH0.tar.gz) = e8202c117b5a4eaa48f27790d29aa7c4c0ab0421fe7bdfe95dc9c4f8eae1580b -SIZE (libsdl-org-SDL-release-3.2.12_GH0.tar.gz) = 16117560 +TIMESTAMP = 1747247946 +SHA256 (libsdl-org-SDL-release-3.2.14_GH0.tar.gz) = 3c69da8ca4a7bb5f3490eb818ec8ed6fd80d34b04040c896adc4da0f72c8b019 +SIZE (libsdl-org-SDL-release-3.2.14_GH0.tar.gz) = 16118273 diff --git a/devel/shedskin/Makefile b/devel/shedskin/Makefile index e234ad9baae6..e67109f4be8d 100644 --- a/devel/shedskin/Makefile +++ b/devel/shedskin/Makefile @@ -7,7 +7,8 @@ DISTNAME= ${PORTNAME:S/-/_/g}-${PORTVERSION} MAINTAINER= yuri@FreeBSD.org COMMENT= Restricted Python-to-C++ compiler -WWW= https://shedskin.github.io/ +WWW= https://shedskin.github.io/ \ + https://github.com/shedskin/shedskin LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE diff --git a/devel/sope/Makefile b/devel/sope/Makefile index f12ec3dcc653..47094cb74a51 100644 --- a/devel/sope/Makefile +++ b/devel/sope/Makefile @@ -1,5 +1,5 @@ PORTNAME= sope -PORTVERSION= 5.12.0 +PORTVERSION= 5.12.1 CATEGORIES= devel gnustep MASTER_SITES= https://packages.sogo.nu/sources/ DISTNAME= SOPE-${PORTVERSION} diff --git a/devel/sope/distinfo b/devel/sope/distinfo index f7d37515776f..278ed40a9872 100644 --- a/devel/sope/distinfo +++ b/devel/sope/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742969542 -SHA256 (SOPE-5.12.0.tar.gz) = acabd014d1107de93fd7aa2604203c6fef50a38e04e6252a2ff4c2571ec081dd -SIZE (SOPE-5.12.0.tar.gz) = 2305547 +TIMESTAMP = 1747459176 +SHA256 (SOPE-5.12.1.tar.gz) = 78514dc002762f43dd25973d907fb8503ea57e9ead932a1aa8123b64516b4151 +SIZE (SOPE-5.12.1.tar.gz) = 2305637 diff --git a/devel/yyjson/Makefile b/devel/yyjson/Makefile index 162c0f2103e6..d3e822ffdd61 100644 --- a/devel/yyjson/Makefile +++ b/devel/yyjson/Makefile @@ -1,5 +1,5 @@ PORTNAME= yyjson -PORTVERSION= 0.11.0 +PORTVERSION= 0.11.1 CATEGORIES= devel MAINTAINER= pkubaj@FreeBSD.org @@ -8,7 +8,7 @@ WWW= https://github.com/ibireme/yyjson LICENSE= MIT -USES= cmake +USES= cmake pathfix USE_GITHUB= yes GH_ACCOUNT= ibireme diff --git a/devel/yyjson/distinfo b/devel/yyjson/distinfo index 6188bbaf49aa..d705aee8e37c 100644 --- a/devel/yyjson/distinfo +++ b/devel/yyjson/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746618350 -SHA256 (ibireme-yyjson-0.11.0_GH0.tar.gz) = 0cc453318ff299ab61ec233b5b92dd474dee39028ad77904b19a45a79651574e -SIZE (ibireme-yyjson-0.11.0_GH0.tar.gz) = 1591254 +TIMESTAMP = 1747160338 +SHA256 (ibireme-yyjson-0.11.1_GH0.tar.gz) = 610a38a5e59192063f5f581ce0c3c1869971c458ea11b58dfe00d1c8269e255d +SIZE (ibireme-yyjson-0.11.1_GH0.tar.gz) = 1592503 diff --git a/devel/yyjson/pkg-plist b/devel/yyjson/pkg-plist index c74889ae3312..c320e8b644ef 100644 --- a/devel/yyjson/pkg-plist +++ b/devel/yyjson/pkg-plist @@ -3,5 +3,5 @@ lib/cmake/yyjson/yyjson-config-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/yyjson/yyjson-config.cmake lib/libyyjson.so lib/libyyjson.so.0 -lib/libyyjson.so.0.11.0 +lib/libyyjson.so.0.11.1 libdata/pkgconfig/yyjson.pc diff --git a/dns/dnsmasq-devel/Makefile b/dns/dnsmasq-devel/Makefile index a67abc5da302..514310f91525 100644 --- a/dns/dnsmasq-devel/Makefile +++ b/dns/dnsmasq-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= dnsmasq -DISTVERSION= 2.92test7 # remember to bump PORTEPOCH when going from test to rc! +DISTVERSION= 2.92test8 # remember to bump PORTEPOCH when going from test to rc! # Leave the PORTREVISION in even if 0 to avoid accidental PORTEPOCH bumps: PORTREVISION= 0 PORTEPOCH= 6 diff --git a/dns/dnsmasq-devel/distinfo b/dns/dnsmasq-devel/distinfo index c0c87c161929..ee91889d0874 100644 --- a/dns/dnsmasq-devel/distinfo +++ b/dns/dnsmasq-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747062230 -SHA256 (dnsmasq-2.92test7.tar.xz) = 9784d8bd8208c8e2143d87f370948401af9526e18868a789887a35bf26757ac8 -SIZE (dnsmasq-2.92test7.tar.xz) = 577780 +TIMESTAMP = 1747340710 +SHA256 (dnsmasq-2.92test8.tar.xz) = e90733490881e198bc898cfe558bf64dcfeb7908d24428bb885e91aee2e3207e +SIZE (dnsmasq-2.92test8.tar.xz) = 582144 diff --git a/editors/emacs-devel/Makefile b/editors/emacs-devel/Makefile index 1d924855771f..26e9efca785b 100644 --- a/editors/emacs-devel/Makefile +++ b/editors/emacs-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= emacs -DISTVERSION= 31.0.50.20250503 +DISTVERSION= 31.0.50.20250515 PORTEPOCH= 3 CATEGORIES= editors PKGNAMESUFFIX= -devel @@ -24,7 +24,7 @@ USES= autoreconf:build cpe gmake localbase:ldflags makeinfo ncurses \ CPE_VENDOR= gnu USE_GITHUB= yes GH_ACCOUNT= emacs-mirror -GH_TAGNAME= f180e4c9cb6 +GH_TAGNAME= db198e0e59b GNU_CONFIGURE= yes CONFIGURE_ARGS= --disable-build-details \ diff --git a/editors/emacs-devel/distinfo b/editors/emacs-devel/distinfo index cb3f18b18dbd..737429f8904c 100644 --- a/editors/emacs-devel/distinfo +++ b/editors/emacs-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746247240 -SHA256 (emacs-mirror-emacs-31.0.50.20250503-f180e4c9cb6_GH0.tar.gz) = ebc6cef6615b50de315cfa62e04cbf9fc1ea45705891e87ad8e9f33fae6c42df -SIZE (emacs-mirror-emacs-31.0.50.20250503-f180e4c9cb6_GH0.tar.gz) = 52092643 +TIMESTAMP = 1747328902 +SHA256 (emacs-mirror-emacs-31.0.50.20250515-db198e0e59b_GH0.tar.gz) = 70d09e0a7a0564dc7ad6e619361d7bf3fc683666271fe5979ddd7fc3b5f8ed2e +SIZE (emacs-mirror-emacs-31.0.50.20250515-db198e0e59b_GH0.tar.gz) = 52116050 diff --git a/editors/focuswriter/Makefile b/editors/focuswriter/Makefile index 3f7661baea5d..bdb4f79f764e 100644 --- a/editors/focuswriter/Makefile +++ b/editors/focuswriter/Makefile @@ -1,11 +1,8 @@ PORTNAME= focuswriter -DISTVERSION= 1.8.11 +DISTVERSION= 1.8.12 CATEGORIES= editors MASTER_SITES= https://gottcode.org/${PORTNAME}/ -PATCH_SITES= https://github.com/gottcode/focuswriter/commit/ -PATCHFILES+= dd74ed4559a141653a06e7984c1251b992925775.patch:-p1 # Fix build with Qt >= 6.9.0 - MAINTAINER= eduardo@FreeBSD.org COMMENT= Simple, distraction-free writing environment WWW= https://gottcode.org/focuswriter/ diff --git a/editors/focuswriter/distinfo b/editors/focuswriter/distinfo index dd2512b71eb0..d506bfa1c9ad 100644 --- a/editors/focuswriter/distinfo +++ b/editors/focuswriter/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1745045245 -SHA256 (focuswriter-1.8.11.tar.bz2) = 89db786aa6919962068971defd8106da4a4decd43f2525dce48bc9f95bbfd3f7 -SIZE (focuswriter-1.8.11.tar.bz2) = 10477272 -SHA256 (dd74ed4559a141653a06e7984c1251b992925775.patch) = 36eaf5daf791ac0377d92602abcb0d3a1bd09e23019a1405f42ac5043d9f7b7f -SIZE (dd74ed4559a141653a06e7984c1251b992925775.patch) = 1264 +TIMESTAMP = 1747249884 +SHA256 (focuswriter-1.8.12.tar.bz2) = 83e43700d40d7d2af90c1ddfcfb595aba1b800bd5bc10232b94e87c5dd871d2b +SIZE (focuswriter-1.8.12.tar.bz2) = 10475452 diff --git a/editors/vscode/Makefile b/editors/vscode/Makefile index 8314477d478b..cafb8b6b53d2 100644 --- a/editors/vscode/Makefile +++ b/editors/vscode/Makefile @@ -1,5 +1,5 @@ PORTNAME= vscode -DISTVERSION= 1.100.0 +DISTVERSION= 1.100.2 CATEGORIES= editors MASTER_SITES= https://github.com/tagattie/FreeBSD-VSCode/releases/download/${DISTVERSION}/:node_modules DISTFILES= vscode-node-modules-${DISTVERSION}${EXTRACT_SUFX}:node_modules \ @@ -69,7 +69,7 @@ USES= desktop-file-utils gl gmake gnome iconv:wchar_t jpeg \ USE_GITHUB= yes GH_ACCOUNT= microsoft -SOURCE_COMMIT_HASH= 19e0f9e681ecb8e5c09d8784acaa601316ca4571 +SOURCE_COMMIT_HASH= 848b80aeb52026648a8ff9f7c45a9b0a80641e2e BINARY_ALIAS= python=${PYTHON_CMD} diff --git a/editors/vscode/distinfo b/editors/vscode/distinfo index 1224192a7a29..48911ac3d902 100644 --- a/editors/vscode/distinfo +++ b/editors/vscode/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1747008146 -SHA256 (vscode/vscode-node-modules-1.100.0.tar.gz) = beabbf93996c0ccc72466888195cdb28325551d2e7db7d995819146823559bd2 -SIZE (vscode/vscode-node-modules-1.100.0.tar.gz) = 400256201 -SHA256 (vscode/vscode-marketplace-exts-1.100.0.tar.gz) = 9af890bc9edcb20e700ef2794b8bd04c0b4f41fdc356c47a342f86770896be89 -SIZE (vscode/vscode-marketplace-exts-1.100.0.tar.gz) = 1709305 -SHA256 (vscode/microsoft-vscode-1.100.0_GH0.tar.gz) = b47bb68595466c9182fa5cdcc1d3298486e5f914fd9892cd11ce1a5eb254cea7 -SIZE (vscode/microsoft-vscode-1.100.0_GH0.tar.gz) = 22647257 +TIMESTAMP = 1747369448 +SHA256 (vscode/vscode-node-modules-1.100.2.tar.gz) = b9246cba227bc2bd827a9be7e45a13f65b6b68d4df5039517b314765c44ecf51 +SIZE (vscode/vscode-node-modules-1.100.2.tar.gz) = 400199168 +SHA256 (vscode/vscode-marketplace-exts-1.100.2.tar.gz) = 88553d52d84916e8f91fa57ccd00d78f5f91fb533cb7b403746b32f08ebb8fbf +SIZE (vscode/vscode-marketplace-exts-1.100.2.tar.gz) = 1709308 +SHA256 (vscode/microsoft-vscode-1.100.2_GH0.tar.gz) = de57439ffcdfe70020d6c2397b0d62089cc01fe7fe612a65649cbaa5360a6a81 +SIZE (vscode/microsoft-vscode-1.100.2_GH0.tar.gz) = 22647395 diff --git a/editors/xmlcopyeditor/files/patch-src_wraplibxml.cpp b/editors/xmlcopyeditor/files/patch-src_wraplibxml.cpp index dd59b228708c..e5071186ce18 100644 --- a/editors/xmlcopyeditor/files/patch-src_wraplibxml.cpp +++ b/editors/xmlcopyeditor/files/patch-src_wraplibxml.cpp @@ -1,9 +1,38 @@ -Fix with >libxml2-2.12 -https://sourceforge.net/p/xml-copy-editor/bugs/239/ +Fix with libxml2-2.14 +https://sourceforge.net/p/xml-copy-editor/bugs/242/ ---- src/wraplibxml.cpp.orig 2025-01-23 10:31:01 UTC +--- src/wraplibxml.cpp.orig 2025-05-15 17:09:04 UTC +++ src/wraplibxml.cpp -@@ -706,7 +706,7 @@ wxString WrapLibxml::getLastError() +@@ -54,7 +54,11 @@ class Initializer (public) + xmlLoadCatalog ( CONV ( catalogPath ) ); + ::catalog = xmlLoadACatalog ( CONV ( catalogPath ) ); + ++#if LIBXML_VERSION < 21400 + initGenericErrorDefaultFunc ( NULL ); ++#else ++ xmlSetGenericErrorFunc ( NULL, NULL ); ++#endif + } + + ~Initializer () +@@ -472,7 +476,7 @@ std::string WrapLibxml::dumpXPathObject ( xmlXPathObje + case XPATH_STRING: + sstream << obj->stringval; + break; +- ++#if LIBXML_VERSION < 21400 + case XPATH_POINT: + xmlBufferPtr bufferPtr; + bufferPtr = xmlBufferCreate(); +@@ -486,6 +490,7 @@ std::string WrapLibxml::dumpXPathObject ( xmlXPathObje + + case XPATH_RANGE: + case XPATH_LOCATIONSET: ++#endif + case XPATH_XSLT_TREE: + default: + FILE *fp = tmpfile(); +@@ -706,7 +711,7 @@ wxString WrapLibxml::getLastError() wxString WrapLibxml::getLastError() { @@ -12,7 +41,7 @@ https://sourceforge.net/p/xml-copy-editor/bugs/239/ if ( !err ) return nonParserError; -@@ -722,7 +722,7 @@ std::pair<int, int> WrapLibxml::getErrorPosition() +@@ -722,7 +727,7 @@ std::pair<int, int> WrapLibxml::getErrorPosition() std::pair<int, int> WrapLibxml::getErrorPosition() { diff --git a/emulators/Makefile b/emulators/Makefile index 8c5cb1a960c2..16651319508e 100644 --- a/emulators/Makefile +++ b/emulators/Makefile @@ -157,16 +157,19 @@ SUBDIR += vice SUBDIR += virtualbox-ose SUBDIR += virtualbox-ose-70 + SUBDIR += virtualbox-ose-71 SUBDIR += virtualbox-ose-additions SUBDIR += virtualbox-ose-additions-legacy SUBDIR += virtualbox-ose-additions-nox11 SUBDIR += virtualbox-ose-additions-nox11-legacy SUBDIR += virtualbox-ose-kmod SUBDIR += virtualbox-ose-kmod-70 + SUBDIR += virtualbox-ose-kmod-71 SUBDIR += virtualbox-ose-kmod-legacy SUBDIR += virtualbox-ose-legacy SUBDIR += virtualbox-ose-nox11 SUBDIR += virtualbox-ose-nox11-70 + SUBDIR += virtualbox-ose-nox11-71 SUBDIR += virtualbox-ose-nox11-legacy SUBDIR += visualboyadvance-m SUBDIR += vmips diff --git a/emulators/virtualbox-ose-70/Makefile b/emulators/virtualbox-ose-70/Makefile index 26c32ab3d9e4..482fc5725a82 100644 --- a/emulators/virtualbox-ose-70/Makefile +++ b/emulators/virtualbox-ose-70/Makefile @@ -1,6 +1,6 @@ PORTNAME= virtualbox-ose DISTVERSION= 7.0.26 -PORTREVISION?= 1 +PORTREVISION?= 2 CATEGORIES= emulators MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \ LOCAL/vvd:docs @@ -28,7 +28,7 @@ LIB_DEPENDS= libpng.so:graphics/png \ libcurl.so:ftp/curl RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod-70 -USES= compiler:c++14-lang cpe gnome iconv qt:5 pkgconfig ssl tar:bzip2 +USES= compiler:c++14-lang cpe gnome iconv pkgconfig qt:5 ssl tar:bzip2 CPE_VENDOR= oracle CPE_PRODUCT= vm_virtualbox USE_BINUTILS= yes diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp new file mode 100644 index 000000000000..aa74b95e2303 --- /dev/null +++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp @@ -0,0 +1,20 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA.cpp.orig 2025-04-11 12:09:20 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA.cpp +@@ -178,7 +178,7 @@ + # ifdef RT_OS_DARWIN + # include "DevVGA-SVGA3d-cocoa.h" + # endif +-# ifdef RT_OS_LINUX ++# if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + # ifdef IN_RING3 + # include "DevVGA-SVGA3d-glLdr.h" + # endif +@@ -7153,7 +7153,7 @@ static void vmsvgaR3PowerOnDevice(PPDMDEVINS pDevIns, + } + # endif + +-# if defined(VBOX_WITH_VMSVGA3D) && defined(RT_OS_LINUX) ++# if defined(VBOX_WITH_VMSVGA3D) && (defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)) + if (pThis->svga.f3DEnabled) + { + /* The FIFO thread may use X API for accelerated screen output. */ diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp new file mode 100644 index 000000000000..8592bccdc8fc --- /dev/null +++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp @@ -0,0 +1,11 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp.orig 2025-04-11 12:09:20 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp +@@ -3111,7 +3111,7 @@ static DECLCALLBACK(int) vmsvga3dBackInit(PPDMDEVINS p + RT_NOREF(pDevIns, pThis); + + int rc; +-#ifdef RT_OS_LINUX /** @todo Remove, this is currently needed for loading the X11 library in order to call XInitThreads(). */ ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) /** @todo Remove, this is currently needed for loading the X11 library in order to call XInitThreads(). */ + rc = glLdrInit(pDevIns); + if (RT_FAILURE(rc)) + { diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp index c9574654562d..caa97030f41c 100644 --- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp +++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp @@ -1,6 +1,6 @@ ---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2021-01-07 15:39:16 UTC +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2025-04-11 12:09:20 UTC +++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp -@@ -186,7 +186,7 @@ int glLdrInit(PPDMDEVINS pDevIns) +@@ -196,7 +196,7 @@ int glLdrInit(PPDMDEVINS pDevIns) pfn_wglDeleteContext = 0; pfn_wglMakeCurrent = 0; pfn_wglShareLists = 0; @@ -9,7 +9,7 @@ pfn_XConfigureWindow = 0; pfn_XCloseDisplay = 0; pfn_XCreateColormap = 0; -@@ -296,7 +296,7 @@ int glLdrInit(PPDMDEVINS pDevIns) +@@ -306,7 +306,7 @@ int glLdrInit(PPDMDEVINS pDevIns) GLGETPROC_(wglDeleteContext, ""); GLGETPROC_(wglMakeCurrent, ""); GLGETPROC_(wglShareLists, ""); @@ -18,7 +18,7 @@ X11GETPROC_(XConfigureWindow); X11GETPROC_(XCloseDisplay); X11GETPROC_(XCreateColormap); -@@ -397,7 +397,7 @@ int glLdrInit(PPDMDEVINS pDevIns) +@@ -407,7 +407,7 @@ int glLdrInit(PPDMDEVINS pDevIns) GLGETPROC_(glVertexPointer, ""); GLGETPROC_(glViewport, ""); diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h index 3069950947cd..ea1c170e8f17 100644 --- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h +++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h @@ -1,6 +1,6 @@ ---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2021-01-07 15:39:17 UTC +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2025-04-11 12:09:20 UTC +++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h -@@ -338,7 +338,7 @@ GLPFN BOOL (WINAPI *pfn_wglMakeCurrent)(HDC, HGLRC); +@@ -346,7 +346,7 @@ GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC); GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC); #define wglShareLists pfn_wglShareLists diff --git a/emulators/virtualbox-ose-71/Makefile b/emulators/virtualbox-ose-71/Makefile new file mode 100644 index 000000000000..b754e9555191 --- /dev/null +++ b/emulators/virtualbox-ose-71/Makefile @@ -0,0 +1,422 @@ +PORTNAME= virtualbox-ose +DISTVERSION= 7.1.8 +PORTREVISION?= 0 +CATEGORIES= emulators +MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \ + LOCAL/vvd:docs +PKGNAMESUFFIX?= -71 +DISTFILES= VirtualBox-${DISTVERSION}${EXTRACT_SUFX}:src \ + VirtualBox-docs-${DISTVERSION}${EXTRACT_SUFX}:docs +EXTRACT_ONLY= VirtualBox-${DISTVERSION}${EXTRACT_SUFX} \ + VirtualBox-docs-${DISTVERSION}${EXTRACT_SUFX} + +MAINTAINER= vbox@FreeBSD.org +COMMENT= General-purpose full virtualizer for x86 hardware +WWW= https://www.virtualbox.org/ + +LICENSE= GPLv2 +LICENSE_FILE= ${WRKSRC}/COPYING + +ONLY_FOR_ARCHS= amd64 + +BUILD_DEPENDS= gtar:archivers/gtar \ + kmk:devel/kBuild \ + libIDL-config-2:devel/libIDL \ + yasm:devel/yasm \ + xsltproc:textproc/libxslt +LIB_DEPENDS= libpng.so:graphics/png \ + libcurl.so:ftp/curl +RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod-71 + +USES= compiler:c++17-lang cpe gnome iconv pkgconfig qt:6 ssl tar:bzip2 +CPE_VENDOR= oracle +CPE_PRODUCT= vm_virtualbox +USE_BINUTILS= yes +USE_GNOME= libxml2 +USE_QT= tools:build +USE_RC_SUBR= vboxheadless vboxwatchdog + +HAS_CONFIGURE= yes +CONFIGURE_ARGS= --disable-java --passive-mesa --disable-docs +CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}" + +CONFLICTS_INSTALL= virtualbox-ose-legacy \ + virtualbox-ose-nox11-legacy \ + virtualbox-ose \ + virtualbox-ose-nox11 \ + virtualbox-ose-70 \ + virtualbox-ose-nox11-70 + +PORTSCOUT= limit:^7\.1\. +SUB_FILES= pkg-message +SUB_LIST= VBOXDIR=${VBOX_DIR} \ + VBOX_ETC=${VBOX_ETC} \ + VBOXGROUP=${VBOXGROUP} \ + VBOXUSER=${VBOXUSER} \ + VBOXWSUSER=${VBOXWSUSER} + +WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION} + +VBOXUSER?= vboxusers +VBOXWSUSER?= vboxusers +VBOXGROUP?= vboxusers +USERS= ${VBOXUSER} +GROUPS= ${VBOXGROUP} +VBOX_DIR= ${PREFIX}/${VBOX_DIR_REL} +VBOX_DIR_REL= lib/virtualbox +VBOX_ETC= ${PREFIX}/etc/vbox +VBOX_LINKS= VBoxVRDP +VBOX_PROGS= VBoxAutostart VBoxBalloonCtrl VBoxBugReport VBoxHeadless \ + VBoxManage +VBOX_UTILS= VBoxExtPackHelperApp VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT \ + VBoxSVC + +PLIST_SUB= GUEST_VER=${DISTVERSION} \ + PYTHON_VERU=${PYTHON_VER:S/./_/}${PYTHON_ABIVER} \ + VBOXGROUP=${VBOXGROUP} + +SLAVE_PORT?= no + +OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS OGG PULSEAUDIO \ + PYTHON QT6 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC VORBIS VPX \ + WEBSERVICE X11 +OPTIONS_DEFAULT= AIO DBUS QT6 UDPTUNNEL VNC WEBSERVICE X11 +.if ${SLAVE_PORT} == no +OPTIONS_DEFAULT+= PYTHON +.endif +# Since version 6.1.24 pulseaudio is broken at runtime, preventing +# virtual machines from starting if configured to use it. +OPTIONS_EXCLUDE+= PULSEAUDIO +OPTIONS_SUB= yes + +AIO_DESC= Enable Asyncronous IO support (check pkg-message) +DEBUG_DESC= Debug symbols, additional logs and assertions +GUESTADDITIONS_DESC= Build with Guest Additions +NLS_DESC= Native language support (requires QT6) +OGG_DESC= Use libogg from audio/libogg instead of bundled one +QT6_DESC= Build with QT6 frontend (requires X11) +R0LOGGING_DESC= Enable R0 logging (requires DEBUG) +UDPTUNNEL_DESC= Build with UDP tunnel support +VBOXIMG_DESC= Build vboximg-mount (requires fuse-libs) +VDE_DESC= Build with VDE support +VNC_DESC= Build with VNC support +VORBIS_DESC= Use libvorbis from audio/libvorbis instead of bundled one +VPX_DESC= Use libvpx for video recording +WEBSERVICE_DESC= Build Webservice + +ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib +ALSA_CONFIGURE_OFF= --disable-alsa +DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus +DBUS_CONFIGURE_OFF= --disable-dbus +DEBUG_CONFIGURE_ON= --build-debug +NLS_IMPLIES= QT6 +OGG_LIB_DEPENDS= libogg.so:audio/libogg +OGG_CONFIGURE_ON= --enable-libogg +PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio +PULSEAUDIO_CONFIGURE_OFF= --disable-pulse +PYTHON_USES= python +PYTHON_USES_OFF= python:build +PYTHON_USE= PYTHON=distutils,noegginfo,noflavors +PYTHON_CONFIGURE_OFF= --disable-python +PYTHON_VARS= pydistutils_pkgname=vboxapi pydistutils_pkgversion=1.0 +QT6_IMPLIES= X11 +QT6_USES= gl qmake:no_env qt:6 xorg +QT6_USE= QT=base,scxml,tools,translations \ + XORG=xcb GL=gl +QT6_CONFIGURE_OFF= --disable-qt +R0LOGGING_IMPLIES= DEBUG +UDPTUNNEL_CONFIGURE_OFF= --disable-udptunnel +VBOXIMG_LIB_DEPENDS= libfuse.so.2:filesystems/fusefs-libs +VDE_RUN_DEPENDS= vde_switch:net/vde2 +VDE_CONFIGURE_ON= --enable-vde +VNC_LIB_DEPENDS= libvncserver.so:net/libvncserver +VNC_CONFIGURE_ON= --enable-vnc +VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis \ + libvorbisenc.so:audio/libvorbis +VORBIS_CONFIGURE_ON= --enable-libvorbis +VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx +VPX_CONFIGURE_OFF= --disable-libvpx +WEBSERVICE_BUILD_DEPENDS= soapcpp2:devel/gsoap +X11_USES= sdl xorg +X11_USE= SDL=sdl XORG=x11,xcursor,xext,xinerama,xmu,xorgproto,xt +X11_CONFIGURE_OFF= --build-headless + +ENV= +.export ENV + +.include <bsd.port.options.mk> + +.if ${SLAVE_PORT} == no +CONFLICTS_INSTALL+= virtualbox-ose-nox11-71 +.else +CONFLICTS_INSTALL+= virtualbox-ose-71 +.endif + +.if ${PORT_OPTIONS:MDEBUG} +KMK_BUILDTYPE= debug +KMK_FLAGS+= BUILD_TYPE=debug +.else +KMK_BUILDTYPE= release +.endif + +.if ${PORT_OPTIONS:MGUESTADDITIONS} +GUESTADDITIONS= VBoxGuestAdditions_${DISTVERSION}.iso +DISTFILES+= ${GUESTADDITIONS}:src +LICENSE+= Additions +LICENSE_COMB= multi +LICENSE_NAME_Additions= Guest Additions +LICENSE_PERMS_Additions= auto-accept +LICENSE_DISTFILES_Additions= ${GUESTADDITIONS} +.endif + +.if ${PORT_OPTIONS:MQT6} +PLIST_SUB+= QT="" +VBOX_PROGS+= VirtualBox VirtualBoxVM +VBOX_WITH_QT= 1 +.else +PLIST_SUB+= QT="@comment " +.endif + +.if ${PORT_OPTIONS:MWEBSERVICE} +USE_RC_SUBR+= vboxinit vboxwebsrv +VBOX_LINKS+= vboxwebsrv +VBOX_UTILS+= vboxwebsrv webtest +.endif + +.if ${PORT_OPTIONS:MX11} +#VBOX_PROGS+= VBoxSDL +.endif + +.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} +PLIST_SUB+= SDK="" +.else +PLIST_SUB+= SDK="@comment " +.endif + +.if ${PORT_OPTIONS:MVBOXIMG} +EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-vboximg-Config.kmk +VBOX_UTILS+= vboximg-mount +PLIST_SUB+= VBOXIMG="" +.else +PLIST_SUB+= VBOXIMG="@comment " +.endif + +KMK_ARCH= freebsd.${ARCH} +PLIST_SUB+= ARCH="${KMK_ARCH}" + +KMK_BUILDDIR= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE} +KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys VBOX_WITHOUT_DOCS=1 VBOX_GCC_std=-std=c++17 +KMK_FLAGS+= -j${MAKE_JOBS_NUMBER} + +.include <bsd.port.pre.mk> + +.if ${CHOSEN_COMPILER_TYPE} == clang +PATCH_DEPENDS+= ${LOCALBASE}/share/kBuild/tools/GXX3.kmk:devel/kBuild +.endif + +.if ${PYTHON_MAJOR_VER} >= 3 +PLIST_SUB+= PYTHON_PYCDIR=/__pycache__/ \ + PYTHON_PYCEXT=.cpython-${PYTHON_SUFFIX}.pyc +.else +PLIST_SUB+= PYTHON_PYCDIR=/ \ + PYTHON_PYCEXT=.pyc +.endif + +.if ${SSL_DEFAULT} != base +CONFIGURE_ARGS+= --with-openssl-dir="${OPENSSLBASE}" +.endif + +post-patch: + @${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE_ARCH = ${VBOX_DIR}' > \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_PATH_DOCBOOK = ${DBKXSLDIR}' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_PATH_DOCBOOK_DTD = ${DBKXMLDIR}' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_PATH_SHARED_LIBS = ${VBOX_DIR}' >> \ + ${WRKSRC}/LocalConfig.kmk + # Please keep this even if using Clang to avoid repeated regressions. + # PR 245048 + @${ECHO_CMD} "VBOX_WITH_RUNPATH = ${_GCC_RUNTIME:D${_GCC_RUNTIME}\:}${VBOX_DIR}" >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk +.if ${SSL_DEFAULT} != base + @${ECHO_CMD} 'VBOX_WITH_ALT_HASH_CODE = 1' >> ${WRKSRC}/LocalConfig.kmk +.endif + @${ECHO_CMD} 'VBOX_WITH_EXTPACK_VBOXDTRACE =' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_VBOXDRV =' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_TESTCASES =' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'SDK_VBOX_LIBPNG_INCS = ${PREFIX}/include/libpng' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'SDK_VBOX_LIBPNG_LIBS = png' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_QT}' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_QT}' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_VALIDATIONKIT =' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_BLD_PYTHON = ${LOCALBASE}/bin/${PYTHON_VERSION}' >> \ + ${WRKSRC}/LocalConfig.kmk +.if ${PORT_OPTIONS:MR0LOGGING} + @${ECHO_CMD} 'VBOX_WITH_R0_LOGGING = 1' >> ${WRKSRC}/LocalConfig.kmk +.endif +.if ${PORT_OPTIONS:MWEBSERVICE} + @${ECHO_CMD} 'VBOX_WITH_WEBSERVICES = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_GSOAP_INSTALLED = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_PATH_GSOAP = ${PREFIX}/lib/gsoap' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_PATH_GSOAP_BIN = ${PREFIX}/bin' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_PATH_GSOAP_IMPORT = ${PREFIX}/share/gsoap/import' >> \ + ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_GCC_PEDANTIC_CXX = -Wshadow $$(VBOX_GCC_WARN) -Wno-long-long' >> \ + ${WRKSRC}/LocalConfig.kmk +.endif +.if empty(PORT_OPTIONS:MX11) + @${ECHO} 'VBOX_WITH_VMSVGA3D =' >> ${WRKSRC}/LocalConfig.kmk +.endif +.if ${CHOSEN_COMPILER_TYPE} == clang + @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \ + -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk + @${REINPLACE_CMD} -e 's| -fpermissive||' ${WRKSRC}/Config.kmk \ + ${WRKSRC}/src/VBox/Main/webservice/Makefile.kmk + @${ECHO_CMD} 'TOOL_VBoxGccFreeBSD_LD = ${CXX}' >> ${WRKSRC}/LocalConfig.kmk + @${SED} -e 's|GXX3|VBoxGccFreeBSD|g' \ + ${LOCALBASE}/share/kBuild/tools/GXX3.kmk > \ + ${WRKSRC}/tools/kBuildTools/VBoxGccFreeBSD.kmk +.endif + # Causes a "reinplace" QA warning with default LOCALBASE + @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ + ${WRKSRC}/Config.kmk ${WRKSRC}/configure \ + ${WRKSRC}/kBuild/header.kmk ${WRKSRC}/kBuild/units/qt4.kmk \ + ${WRKSRC}/kBuild/units/qt5.kmk ${WRKSRC}/kBuild/units/qt6.kmk ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \ + ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py + @${REINPLACE_CMD} \ + -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \ + -e 's|SUPPYTHONLIBS=.*|SUPPYTHONLIBS="${PYTHON_VERSION}${PYTHON_ABIVER}"|' \ + ${WRKSRC}/configure +.if empty(ICONV_LIB) + @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \ + ${WRKSRC}/src/VBox/Runtime/Makefile.kmk + @${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk +.endif + @${REINPLACE_CMD} -e 's|%%VBOX_DIR%%|${VBOX_DIR}|g' \ + -e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \ + -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ + ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh + @${REINPLACE_CMD} -e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \ + ${WRKSRC}/src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp + @${REINPLACE_CMD} \ + -e 's|^versions =.*|versions = ["${PYTHON_VER}${PYTHON_ABIVER}"]|' \ + ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py + +post-patch-AIO-off: + @${REINPLACE_CMD} 's|r3/freebsd/fileaio-freebsd.cpp|r3/posix/fileaio-posix.cpp|' \ + ${WRKSRC}/src/VBox/Runtime/Makefile.kmk + +do-build: + cd ${WRKSRC} && ${SH} -c '. ${WRKSRC}/env.sh && \ + ${SETENV} ${MAKE_ENV} ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}' +.if ${PORT_OPTIONS:MPYTHON} + ${PYTHON_CMD} -mcompileall \ + ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom +.endif + +do-install: +.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} + ${MKDIR} ${STAGEDIR}${DATADIR}/sdk +.endif + cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom && \ + ${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR} + + ${MKDIR} ${STAGEDIR}${PREFIX}/include/virtualbox + cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/include && \ + ${COPYTREE_SHARE} "*" ${STAGEDIR}${PREFIX}/include/virtualbox + + ${MKDIR} ${STAGEDIR}${VBOX_DIR} + cd ${KMK_BUILDDIR}/bin && ${COPYTREE_SHARE} \ + "*.fd *.r0 *.so components" ${STAGEDIR}${VBOX_DIR} +.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} + ${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR} +.endif + + ${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh \ + ${STAGEDIR}${VBOX_DIR} +.for f in ${VBOX_PROGS} ${VBOX_UTILS} + ${INSTALL_PROGRAM} ${KMK_BUILDDIR}/bin/${f} ${STAGEDIR}${VBOX_DIR} +.endfor +.for f in ${VBOX_PROGS} ${VBOX_LINKS} + ${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f} +.endfor +.for f in ${VBOX_PROGS} + ${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f:tl} +.endfor + +.if ${PORT_OPTIONS:MGUESTADDITIONS} + ${MKDIR} ${STAGEDIR}${VBOX_DIR}/additions + ${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} \ + ${STAGEDIR}${VBOX_DIR}/additions/ + ${RLN} ${STAGEDIR}${VBOX_DIR}/additions/${GUESTADDITIONS} \ + ${STAGEDIR}${VBOX_DIR}/additions/VBoxGuestAdditions.iso +.endif + +.if ${PORT_OPTIONS:MDOCS} + ${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKDIR}/VirtualBox-docs-${DISTVERSION}/UserManual.pdf \ + ${STAGEDIR}${DOCSDIR} +.endif + +.if ${PORT_OPTIONS:MNLS} + cd ${KMK_BUILDDIR}/obj/VirtualBox/qtnls && \ + ${COPYTREE_SHARE} "*.qm" ${STAGEDIR}${DATADIR}/nls +.endif + +.if ${PORT_OPTIONS:MPYTHON} + cd ${KMK_BUILDDIR}/bin/sdk/installer/python && \ + ${SETENV} VBOX_INSTALL_PATH="${VBOX_DIR}" \ + ${PYTHON_CMD} vboxapisetup.py install --root=${STAGEDIR} + + @${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom + cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom && \ + ${COPYTREE_SHARE} "*" ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom + @${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python + ${RLN} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom \ + ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python +.endif + +.if ${PORT_OPTIONS:MQT6} + ${INSTALL_DATA} \ + ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png \ + ${STAGEDIR}${PREFIX}/share/pixmaps/VBox.png + ${INSTALL_DATA} \ + ${FILESDIR}/virtualbox.desktop \ + ${STAGEDIR}${PREFIX}/share/applications/virtualbox.desktop +.endif + +.if ${PORT_OPTIONS:MVNC} + ${MKDIR} ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH} + ${INSTALL_DATA} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/ExtPack* \ + ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/ + ${INSTALL_LIB} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/${KMK_ARCH}/* \ + ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH}/ +.endif + +.if ${PORT_OPTIONS:MVBOXIMG} + ${LN} -fs ../${VBOX_DIR_REL}/vboximg-mount ${STAGEDIR}${PREFIX}/bin/ +.endif + +.if ${PORT_OPTIONS:MWEBSERVICE} + ${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/webservice + ${INSTALL_DATA} ${KMK_BUILDDIR}/obj/webservice/vboxweb.wsdl \ + ${STAGEDIR}${DATADIR}/sdk/bindings/webservice/ +.endif + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/virtualbox/*.so \ + ${STAGEDIR}${PREFIX}/lib/virtualbox/components/*.so + +.include <bsd.port.post.mk> diff --git a/emulators/virtualbox-ose-71/distinfo b/emulators/virtualbox-ose-71/distinfo new file mode 100644 index 000000000000..a824ff5859c4 --- /dev/null +++ b/emulators/virtualbox-ose-71/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1746902441 +SHA256 (VirtualBox-7.1.8.tar.bz2) = 3f7132c55ac6c5f50585bfaa115d29e30b47ccf535cb0a12ff50214ddae2f63d +SIZE (VirtualBox-7.1.8.tar.bz2) = 215541146 +SHA256 (VirtualBox-docs-7.1.8.tar.bz2) = b4c24e5deeb87e99d0cc8e60d24878d5ca50436b8c1069f777c711edca776173 +SIZE (VirtualBox-docs-7.1.8.tar.bz2) = 10110834 +SHA256 (VBoxGuestAdditions_7.1.8.iso) = 0001ed19cc389f04723c9b911338559b9b74bea0d24edf794d8d2ce5b5cb14e0 +SIZE (VBoxGuestAdditions_7.1.8.iso) = 61380608 diff --git a/emulators/virtualbox-ose-71/files/extrapatch-Config.kmk b/emulators/virtualbox-ose-71/files/extrapatch-Config.kmk new file mode 100644 index 000000000000..775508d23b1b --- /dev/null +++ b/emulators/virtualbox-ose-71/files/extrapatch-Config.kmk @@ -0,0 +1,11 @@ +--- Config.kmk.orig 2021-04-28 16:21:25 UTC ++++ Config.kmk +@@ -4931,7 +4931,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS + | xargs -J% objcopy % $(out) + + ## Strip debug info (comment out if debugging or something). +- objcopy --strip-debug $(out) ++# objcopy --strip-debug $(out) + endef + else # x86 + TOOL_FREEBSDKMODLD_LINK_SYSMOD_OUTPUT = $(outbase).kld diff --git a/emulators/virtualbox-ose-71/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile b/emulators/virtualbox-ose-71/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile new file mode 100644 index 000000000000..67361da543f7 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile @@ -0,0 +1,11 @@ +--- src/VBox/HostDrivers/Support/freebsd/Makefile.orig 2012-10-18 16:23:16.000000000 +0200 ++++ src/VBox/HostDrivers/Support/freebsd/Makefile 2012-10-20 08:13:07.301179212 +0200 +@@ -27,7 +27,7 @@ + + KMOD = vboxdrv + +-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS ++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DDEBUG + + .if (${MACHINE_ARCH} == "i386") + CFLAGS += -DRT_ARCH_X86 diff --git a/emulators/virtualbox-ose-71/files/extrapatch-vboximg-Config.kmk b/emulators/virtualbox-ose-71/files/extrapatch-vboximg-Config.kmk new file mode 100644 index 000000000000..d84209faa8cd --- /dev/null +++ b/emulators/virtualbox-ose-71/files/extrapatch-vboximg-Config.kmk @@ -0,0 +1,11 @@ +--- Config.kmk.orig 2023-10-12 15:43:35.000000000 +0700 ++++ Config.kmk 2023-10-30 22:11:09.119922000 +0700 +@@ -869,7 +869,7 @@ + # windows versions (only define when buildling win.x86). + #VBOX_WITH_MORE_NT4_COMPAT_BINARIES = 1 + # Set this to enable building of the vboximg-mount FUSE mounting utility. +-if1of ($(KBUILD_TARGET), darwin linux) ++if1of ($(KBUILD_TARGET), darwin freebsd linux) + VBOX_WITH_VBOXIMGMOUNT = 1 + endif + # Set this to enable packaging the fuse related bits into our installer. diff --git a/emulators/virtualbox-ose-71/files/patch-Config.kmk b/emulators/virtualbox-ose-71/files/patch-Config.kmk new file mode 100644 index 000000000000..7aaf90147847 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-Config.kmk @@ -0,0 +1,402 @@ +--- Config.kmk.orig 2025-05-10 18:43:02 UTC ++++ Config.kmk +@@ -610,11 +610,11 @@ endif + # Enable OSS audio support. + VBOX_WITH_AUDIO_OSS = 1 + endif +-if1of ($(KBUILD_TARGET), linux) ++if1of ($(KBUILD_TARGET), freebsd linux) + # Enable ALSA audio support. + VBOX_WITH_AUDIO_ALSA = 1 + endif +-if1of ($(KBUILD_TARGET), linux) ++if1of ($(KBUILD_TARGET), freebsd linux) + # Enable PulseAudio audio support. + VBOX_WITH_AUDIO_PULSE = 1 + endif +@@ -627,11 +627,11 @@ VBOX_WITH_PCI_PASSTHROUGH = + # (disabled with 6.1, since it's not complete/useful enough) + VBOX_WITH_PCI_PASSTHROUGH = + # Enable statically linked dbus support. +-if1of ($(KBUILD_TARGET), linux solaris) ++if1of ($(KBUILD_TARGET), freebsd linux solaris) + VBOX_WITH_DBUS = 1 + endif + # Enable building PAM modules. +-if1of ($(KBUILD_TARGET), linux solaris) ++if1of ($(KBUILD_TARGET), freebsd linux solaris) + VBOX_WITH_PAM = 1 + endif + # Enable internal networking. +@@ -639,7 +639,7 @@ VBOX_WITH_VMSVGA = 1 + # Enable vmsvga (svga2) graphics device variant, 2D part + VBOX_WITH_VMSVGA = 1 + # Enable vmsvga (svga2) graphics device variant, 3D part +-if1of ($(KBUILD_TARGET), darwin linux win) ++if1of ($(KBUILD_TARGET), darwin freebsd linux win) + VBOX_WITH_VMSVGA3D = 1 + endif + # Enable vmsvga (svga2) graphics device variant, 3D part, VGPU10 DX commands +@@ -825,7 +825,7 @@ VBOX_WITH_VBOXMANAGE_NLS = 1 + #endif + # Set this to prefix all C symbols in XPCOM, to avoid dynamic linking problems + # caused by our XPCOM library polluting the symbol namespace for system libs. +-if1of ($(KBUILD_TARGET), linux solaris) ++if1of ($(KBUILD_TARGET), freebsd linux solaris) + VBOX_WITH_XPCOM_NAMESPACE_CLEANUP = 1 + endif + # The webservices api. +@@ -1357,10 +1357,6 @@ endif + endif + endif + +-ifeq ($(KBUILD_TARGET),freebsd) +- VBOX_WITH_DOCS = +-endif +- + ifeq ($(KBUILD_TARGET),haiku) + VBOX_WITH_VRDP_RDESKTOP = + # Permanent (no working SDL). +@@ -1545,7 +1541,7 @@ ifdef VBOX_OSE + # not yet + VBOX_WITH_PLUGIN_CRYPT = + VBOX_WITH_DRAG_AND_DROP_PROMISES = +- ifn1of ($(KBUILD_TARGET), linux) ++ ifn1of ($(KBUILD_TARGET), freebsd linux) + VBOX_WITH_DOCS = + VBOX_WITH_DOCS_PACKING = + endif +@@ -3680,19 +3676,7 @@ ifndef VBOX_GCC_std + # + ## @todo consider maxing this out. + ifndef VBOX_GCC_std +- if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64) # Go straight for c++17 here. + VBOX_GCC_std := -std=c++17 +- # else if "$(VBOX_CLANG_VERSION_CXX)" vge 60000 # Most language features complete by v6. Lib stuff was less complete in v6, but hopefully acceptable for out purposes. +- #VBOX_GCC_std := -std=c++17 +- else if "$(VBOX_CLANG_VERSION_CXX)" vge 50000 # darwin Xcode 5 allegedly knows what C++11 is +- VBOX_GCC_std := -std=c++11 +- # else if "$(VBOX_GCC_VERSION_CXX)" vge 70000 # Language feature P0512R0 was v8, rest v7 or earlier. Most lib stuff present in 7, complete in v12. +- #VBOX_GCC_std := -std=gnu++17 +- else if "$(VBOX_GCC_VERSION_CXX)" vge 40800 +- VBOX_GCC_std := -std=c++11 +- else if "$(VBOX_GCC_VERSION_CXX)" vge 40600 +- VBOX_GCC_std := -std=c++0x +- endif + endif + ifndef VBOX_VCC_std + if $(VBOX_VCC_TOOL_STEM) >= VCC141 # since 2017 15.3 +@@ -5682,11 +5666,11 @@ ifeq ($(VBOX_LDR_FMT),elf) + # Solaris driver signing. + TEMPLATE_VBoxR0_POST_CMDS = $(VBOX_SIGN_DRIVER_CMDS) + else +- TEMPLATE_VBoxR0_LDFLAGS = -nostdlib -Bsymbolic -g ++ TEMPLATE_VBoxR0_LDFLAGS = -nostdlib -Bsymbolic -g -fuse-ld=bfd + ## @todo WTF doesn't the globals work? Debug info is supposed to be split everywhere. GRR + TEMPLATE_VBoxR0_LD_DEBUG = split + endif +- if "$(KBUILD_TARGET)" == "linux" && !defined(VBOX_WITH_KMOD_WRAPPED_R0_MODS) ++ if ( "$(KBUILD_TARGET)" == "linux" || "$(KBUILD_TARGET)" == "freebsd") && !defined(VBOX_WITH_KMOD_WRAPPED_R0_MODS) + VBOX_WITH_VBOXR0_AS_DLL = 1 + TEMPLATE_VBoxR0_DLLSUFF = .r0 + TEMPLATE_VBoxR0_CFLAGS += -fPIC +@@ -5697,7 +5681,7 @@ ifeq ($(VBOX_LDR_FMT),elf) + else + TEMPLATE_VBoxR0_CFLAGS.amd64 += -mcmodel=kernel + TEMPLATE_VBoxR0_CXXFLAGS.amd64 += -mcmodel=kernel +- endif ++endif + ifdef VBOX_WITH_KMOD_WRAPPED_R0_MODS # For BTF/pahold issue we use -g1 + TEMPLATE_VBoxR0_DEFS += VBOX_WITH_KMOD_WRAPPED_R0_MODS + TEMPLATE_VBoxR0_LDFLAGS.linux += $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/VBoxR0-wrapped.lds +@@ -6081,7 +6065,7 @@ ifeq ($(KBUILD_TARGET),freebsd) + # x86 FreeBSD (6.2 or something): + # cc -O2 -fno-strict-aliasing -pipe -Werror -D_KERNEL -DKLD_MODULE \ + # -nostdinc -I- -I. -I@ -I@/contrib/altq -I@/../include -I/usr/include \ +- # -finline-limit=8000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 \ ++ # -fno-common -mno-align-long-strings \ + # -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -ffreestanding -Wall -Wredundant-decls -Wnested-externs \ + # -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions \ + # -std=c99 -c ../my.c +@@ -6092,7 +6076,7 @@ ifeq ($(KBUILD_TARGET),freebsd) + # + # AMD64 FreeBSD (7.1): + # cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq \ +- # -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common \ ++ # --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common \ + # -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \ + # -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding \ + # -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign \ +@@ -6174,7 +6158,7 @@ ifeq ($(KBUILD_TARGET),freebsd) + | xargs -J% objcopy % $(outbase).kld + + # Link the final .ko (a shared object). +- ld $(flags) -Bshareable -o $(out) $(outbase).kld ++ ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld + endef + endif # x86 + +@@ -6209,7 +6193,7 @@ ifeq ($(KBUILD_TARGET),netbsd) + $(VBOX_GCC_fdiagnostics-show-option) \ + -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \ + -Wimplicit-function-declaration -Werror-implicit-function-declaration \ +- -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \ ++ -O2 -ffreestanding -fno-strict-aliasing -fno-common \ + $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ + -nostdinc -std=c99 -msoft-float + TEMPLATE_VBoxR0Drv_CFLAGS.x86 = -m32 -mno-mmx -mno-sse -mno-avx \ +@@ -6220,7 +6204,7 @@ ifeq ($(KBUILD_TARGET),netbsd) + -fno-asynchronous-unwind-tables -mno-fp-ret-in-387 + TEMPLATE_VBoxR0Drv_CXXFLAGS = -fno-exceptions -fno-rtti \ + $(VBOX_GCC_WARN) -Wpointer-arith -Winline \ +- -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \ ++ -O2 -fno-strict-aliasing -fno-common \ + $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ + -nostdinc -msoft-float + TEMPLATE_VBoxR0Drv_CXXFLAGS.x86 = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86) +@@ -6528,11 +6512,11 @@ else # the gcc guys + TEMPLATE_VBoxR3Exe_LIBS = pthread m rt dl + else ifeq ($(KBUILD_TARGET),os2) + TEMPLATE_VBoxR3Exe_TOOL = GXX3OMF +- TEMPLATE_VBoxR3Exe_LIBS = socket iconv ++ TEMPLATE_VBoxR3Exe_LIBS = socket + else ifeq ($(KBUILD_TARGET),darwin) + TEMPLATE_VBoxR3Exe_TOOL = $(VBOX_GCC_TOOL) + TEMPLATE_VBoxR3Exe_LIBS = +- TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG # Avoid 3rd party libiconv (from macports). ++ TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG # Avoid 3rd party lib (from macports). + TEMPLATE_VBoxR3Exe_SDKS.darwin = $(VBOX_DARWIN_DEF_SDK_SDKS) + TEMPLATE_VBoxR3Exe_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_DEFS) + TEMPLATE_VBoxR3Exe_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common +@@ -6549,17 +6533,26 @@ else # the gcc guys + else ifeq ($(KBUILD_TARGET),haiku) + TEMPLATE_VBoxR3Exe_TOOL = GXX3 + TEMPLATE_VBoxR3Exe_POST_CMDS = $(VBOX_HAIKU_XRES_SETVER_CMDS) +- TEMPLATE_VBoxR3Exe_LIBS = network iconv stdc++ supc++ ++ TEMPLATE_VBoxR3Exe_LIBS = network stdc++ supc++ + TEMPLATE_VBoxR3Exe_LIBPATH += \ + /boot/common/lib + # Haiku uses PIC by default... + TEMPLATE_VBoxR3Exe_CFLAGS += -fno-pic + TEMPLATE_VBoxR3Exe_CXXFLAGS += -fno-pic + TEMPLATE_VBoxR3Exe_LDFLAGS += -fno-pic +- else if1of ($(KBUILD_TARGET), freebsd openbsd) ++ else ifeq ($(KBUILD_TARGET), freebsd) + TEMPLATE_VBoxR3Exe_TOOL = GXX3 + TEMPLATE_VBoxR3Exe_LIBS = pthread ++ TEMPLATE_VBoxR3Exe_LDFLAGS = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) ++ TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd.x86 = -Wl,-z,notext + TEMPLATE_VBoxR3Exe_INCS += \ ++ /usr/local/include ++ TEMPLATE_VBoxR3Exe_LIBPATH += \ ++ /usr/local/lib ++ else ifeq ($(KBUILD_TARGET), openbsd) ++ TEMPLATE_VBoxR3Exe_TOOL = GXX3 ++ TEMPLATE_VBoxR3Exe_LIBS = pthread ++ TEMPLATE_VBoxR3Exe_INCS += \ + /usr/include \ + /usr/X11R6/include \ + /usr/local/include +@@ -6578,7 +6571,7 @@ else # the gcc guys + /usr/X11R7/lib + else ifeq ($(KBUILD_TARGET),solaris) + TEMPLATE_VBoxR3Exe_TOOL = GXX3PLAIN +- TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG _REENTRANT # Avoid the GNU libiconv, for now at least. ++ TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG _REENTRANT # Avoid the GNU lib, for now at least. + if $(VBOX_GCC_VERSION_CC) < 30500 + TEMPLATE_VBoxR3Exe_CFLAGS += -std=gnu99 + endif +@@ -6594,6 +6587,7 @@ else # the gcc guys + TEMPLATE_VBoxR3Exe_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' + endif + ifdef VBOX_WITH_ORIGIN ++ TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) + TEMPLATE_VBoxR3Exe_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) + endif + endif +@@ -6808,7 +6802,7 @@ else + ifdef VBOX_WITH_NOCRT_STATIC + TEMPLATE_VBoxR3StaticBase_DEFS += RT_WITH_NOCRT_WRAPPERS + endif +- ifn1of ($(KBUILD_TARGET), darwin linux solaris) ++ ifn1of ($(KBUILD_TARGET), darwin freebsd linux solaris) + # The gcc guys sans darwin, linux and solaris (don't depend on statically compiled system libs there) + TEMPLATE_VBoxR3StaticBase_CFLAGS = $(TEMPLATE_VBoxR3Exe_CFLAGS) -static + TEMPLATE_VBoxR3StaticBase_CXXFLAGS = $(TEMPLATE_VBoxR3Exe_CXXFLAGS) -static +@@ -6876,7 +6870,7 @@ else + $(SDK_VBoxZlib_LIBS) \ + $(SDK_VBoxLibLzma_LIBS) + if1of ($(KBUILD_TARGET), darwin freebsd) +- TEMPLATE_VBoxR3Static_LIBS += iconv ++ TEMPLATE_VBoxR3Static_LIBS += + else ifeq ($(KBUILD_TARGET),solaris) + TEMPLATE_VBoxR3Static_LIBS += kstat + endif +@@ -7048,6 +7042,7 @@ else ifn1of ($(KBUILD_TARGET), os2) + else ifn1of ($(KBUILD_TARGET), os2) + ifneq ($(KBUILD_TYPE),asan) # Keep RPATH in asan builds so we can find libasan.so.X and libubsan.so.Y. + TEMPLATE_VBoxR3HardenedExe_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3Exe_LDFLAGS)) ++ TEMPLATE_VBoxR3HardenedExe_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd)) + TEMPLATE_VBoxR3HardenedExe_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.linux)) + endif + endif +@@ -7079,6 +7074,7 @@ ifn1of ($(KBUILD_TARGET), win os2) + $(if-expr !defined(VBOX_WITHOUT_WINDOWS_KERNEL_CODE_SIGNING_CERT),-IntegrityCheck,) + ifn1of ($(KBUILD_TARGET), win os2) + TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3TstDll_LDFLAGS)) ++ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd)) + TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.linux)) + endif + +@@ -7102,6 +7098,7 @@ ifndef VBOX_WITH_HARDENING + TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' + endif + ifdef VBOX_WITH_ORIGIN ++ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) + TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) + endif + endif +@@ -7454,7 +7451,7 @@ else # the GCC guys: + endif + TEMPLATE_VBoxMainExe_CXXFLAGS = -g $(VBOX_GCC_pipe) \ + $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_Wno-class-memaccess) -Wshadow \ +- -fshort-wchar -fpermissive -fexceptions -frtti $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing \ ++ -fshort-wchar -fexceptions -frtti $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing \ + $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK) \ + $(VBOX_GCC_SANITIZER_FLAGS) + if !defined("VBOX_GCC_Wno-delete-non-virtual-dtor") && defined("VBOX_GCC_Wno-non-virtual-dtor") +@@ -7518,10 +7515,19 @@ else # the GCC guys: + else ifeq ($(KBUILD_TARGET),haiku) + TEMPLATE_VBoxMainExe_TOOL = GXX3 + TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME) network stdc++ supc++ +- else if1of ($(KBUILD_TARGET), freebsd openbsd) ++ else ifeq ($(KBUILD_TARGET), freebsd) + TEMPLATE_VBoxMainExe_TOOL = GXX3 + TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME) ++ TEMPLATE_VBoxMainExe_LDFLAGS = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) ++ TEMPLATE_VBoxMainExe_LDFLAGS.freebsd.x86 = -Wl,-z,notext + TEMPLATE_VBoxMainExe_INCS += \ ++ /usr/local/include ++ TEMPLATE_VBoxMainExe_LIBPATH += \ ++ /usr/local/lib ++ else ifeq ($(KBUILD_TARGET), openbsd) ++ TEMPLATE_VBoxMainExe_TOOL = GXX3 ++ TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME) ++ TEMPLATE_VBoxMainExe_INCS += \ + /usr/include \ + /usr/X11R6/include \ + /usr/local/include +@@ -7553,6 +7559,7 @@ else # the GCC guys: + TEMPLATE_VBoxMainExe_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' + endif + ifdef VBOX_WITH_ORIGIN ++ TEMPLATE_VBoxMainExe_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) + TEMPLATE_VBoxMainExe_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) + endif + +@@ -8181,14 +8188,13 @@ ifdef VBOX_WITH_QTGUI + TEMPLATE_VBoxQtGuiExe_LIBPATH += \ + $(VBOX_LIBPATH_X11) + ifeq ($(KBUILD_TARGET),freebsd) ++ TEMPLATE_VBoxQtGuiExe_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) ++ TEMPLATE_VBoxQtGuiExe_LDFLAGS.freebsd.x86 = -Wl,-z,notext + TEMPLATE_VBoxQtGuiExe_INCS += \ +- /usr/include \ +- /usr/X11R6/include \ + /usr/local/include + TEMPLATE_VBoxQtGuiExe_LIBPATH += \ +- /usr/lib \ +- /usr/X11R6/lib \ + /usr/local/lib ++ TEMPLATE_VBoxQtGuiExe_LIBS += /usr/local/lib/qt6/libQt6PrintSupport.so + endif + ifeq ($(KBUILD_TARGET),solaris) + TEMPLATE_VBoxQtGuiExe_LDFLAGS.solaris = -Wl,-z,ignore # Same as VBOX_LD_as_needed. +@@ -8460,7 +8466,7 @@ else + TEMPLATE_VBoxBldProg_LIBS = pthread m rt dl + else ifeq ($(KBUILD_HOST),os2) + TEMPLATE_VBoxBldProg_TOOL = GXX3OMF +- TEMPLATE_VBoxBldProg_LIBS = socket iconv ++ TEMPLATE_VBoxBldProg_LIBS = socket + else ifeq ($(KBUILD_HOST),darwin) + TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL) + if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.7" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "7" +@@ -8500,13 +8506,20 @@ else + TEMPLATE_VBoxBldProg_LIBS = + else ifeq ($(KBUILD_HOST),haiku) + TEMPLATE_VBoxBldProg_TOOL = GXX3 +- TEMPLATE_VBoxBldProg_LIBS = network iconv ++ TEMPLATE_VBoxBldProg_LIBS = network + TEMPLATE_VBoxBldProg_LIBPATH += \ + /boot/common/lib +- else if1of ($(KBUILD_HOST), freebsd openbsd) ++ else ifeq ($(KBUILD_HOST), freebsd) + TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL) + TEMPLATE_VBoxBldProg_LIBS = pthread + TEMPLATE_VBoxBldProg_INCS += \ ++ /usr/local/include ++ TEMPLATE_VBoxBldProg_LIBPATH += \ ++ /usr/local/lib ++ else ifeq ($(KBUILD_HOST), openbsd) ++ TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL) ++ TEMPLATE_VBoxBldProg_LIBS = pthread ++ TEMPLATE_VBoxBldProg_INCS += \ + /usr/include \ + /usr/X11R6/include \ + /usr/local/include +@@ -8553,11 +8566,11 @@ TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \ + $(TEMPLATE_VBoxBldProg_LIBS) + TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \ + $(TEMPLATE_VBoxAdvBldProg_LIBS) \ +- iconv \ ++ \ + $(TEMPLATE_VBoxBldProg_LIBS.darwin) + TEMPLATE_VBoxAdvBldProg_LIBS.freebsd = \ + $(TEMPLATE_VBoxAdvBldProg_LIBS) \ +- iconv \ ++ \ + rt \ + $(TEMPLATE_VBoxBldProg_LIBS.freebsd) + TEMPLATE_VBoxAdvBldProg_LIBS.linux = \ +@@ -8648,6 +8661,7 @@ else # the gcc guys + # Do not inherit sanitizer flags from VBoxR3Exe in guest executables. Deal with them separately. + TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.debug = $(NO_SUCH_VARIABLE) + TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.debug = $(NO_SUCH_VARIABLE) ++ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS.freebsd)) + TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS.linux)) + TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.debug = $(NO_SUCH_VARIABLE) + TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS)) +@@ -8671,7 +8685,7 @@ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd) + ifeq ($(KBUILD_TARGET),linux) # As few libs as possible on linux. + TEMPLATE_VBoxGuestR3ExeBase_LIBS = pthread rt m dl + else if1of ($(KBUILD_TARGET), darwin freebsd openbsd) +- TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) iconv ++ TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) + else ifeq ($(KBUILD_TARGET),solaris) + TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) nsl + endif +@@ -8684,6 +8698,7 @@ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux = $(TEMP + $(VBOX_GCC_fno-stack-protector) + TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux = $(TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.linux) + # The GNU_HASH ELF tag is not supported by older systems. ++TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.freebsd += $(VBOX_LD_hash_style_sysv) + TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux += $(VBOX_LD_hash_style_sysv) + + +@@ -8929,6 +8944,7 @@ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET + TEMPLATE_VBoxGuestR3XFree86Mod_CXXFLAGS.linux = $(VBOX_GCC_fno-stack-protector) # Remove symvers.h + TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) + # The GNU_HASH ELF tag is not supported by older glibc dynamic linkers. ++TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.freebsd = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) + TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.linux = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) + TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE) + TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS := -r +@@ -8970,7 +8986,7 @@ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET) = + TEMPLATE_VBoxGuestR3XOrgMod_LIBS = $(VBOX_LIB_VBGL_R3_XORG) + TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE) + TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) +-TEMPLATE_VBoxGuestR3XOrgMod_LIBS.freebsd += iconv ++TEMPLATE_VBoxGuestR3XOrgMod_LIBS.freebsd += + + + # diff --git a/emulators/virtualbox-ose-71/files/patch-configure b/emulators/virtualbox-ose-71/files/patch-configure new file mode 100644 index 000000000000..3645d1236ea8 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-configure @@ -0,0 +1,138 @@ +--- configure.orig 2025-04-14 17:41:37 UTC ++++ configure +@@ -158,10 +158,14 @@ if [ "$OS" = "freebsd" ]; then + if [ "$OS" = "freebsd" ]; then + INCCURL="-I/usr/local/include" + LIBCURL="-L/usr/local/lib -lcurl" ++ INCALSA="-I/usr/local/include" ++ LIBALSA="-L/usr/local/lib" + INCPULSE="-I/usr/local/include" + LIBPULSE="-L/usr/local/lib" + INCPNG="-I/usr/local/include" + LIBPNG="-L/usr/local/lib -lpng" ++ INCVNCSERVER="-I/usr/local/include" ++ LIBVNCSERVER="-L/usr/local/lib" + else + INCCURL="" + LIBCURL="-lcurl" +@@ -1211,6 +1215,9 @@ extern "C" int main(int argc, char** argv) + printf("found version %d.%d.%d", + SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL); + #if SDL_VERSION_ATLEAST(1,2,7) ++#if !defined(SDL_VIDEO_DRIVER_X11) ++#error SDL must be compiled with X11 support ++#endif + printf(", OK.\n"); + return 0; + #else +@@ -1295,7 +1302,7 @@ EOF + #endif + } + EOF +- if test_compile "-lasound" asound asound; then ++ if test_compile "$INCALSA $LIBALSA -lasound" asound asound; then + test_execute + fi + } +@@ -1599,6 +1606,7 @@ EOF + SDKQT6=$PATH_SDK_QT6 + fi + FLGQT6="-framework QtCore -std=c++17 -Wl,-rpath,`L_to_PATH "$LIBQT6"`" ++ FLGQT6="$FLGQT6 -std=c++11" + else + log_failure "Qt6 framework not found (can be disabled using --disable-qt)" + fail +@@ -1875,9 +1883,9 @@ check_libvorbis() + if which_wrapper pkg-config > /dev/null; then + libvorbis_ver=`pkg-config vorbis --modversion 2>> $LOG` + if [ $? -eq 0 ]; then +- FLGVRB=`pkg-config vorbis --cflags` ++ FLGVRB=`pkg-config vorbis vorbisenc --cflags` + INCVRB=`strip_I "$FLGVRB"` +- LIBVRB=`pkg-config vorbis --libs` ++ LIBVRB=`pkg-config vorbis vorbisenc --libs` + fi + cat > $ODIR.tmp_src.cc << EOF + #include <cstdio> +@@ -1927,7 +1935,7 @@ EOF + return 0; + } + EOF +- [ -n "$INCOGG" ] && I_INCVRB=`prefix_I "$INCOGG"` ++ [ -n "$INCOGG" ] && I_INCOGG=`prefix_I "$INCOGG"` + if test_compile "$LIBOGG $I_INCOGG" ogg ogg nofatal; then + if test_execute; then + cnf_append "SDK_VBoxLibOgg_INCS" "$INCOGG" +@@ -2194,8 +2202,8 @@ EOF + echo "compiling the following source file:" >> $LOG + cat $ODIR.tmp_src.cc >> $LOG + echo "using the following command line:" >> $LOG +- echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG +- $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so >> $LOG 2>&1 ++ echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread" >> $LOG ++ $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread >> $LOG 2>&1 + if [ $? -eq 0 ]; then + found=1 + break +@@ -2311,7 +2319,7 @@ check_gsoap() + else + cnf_append "VBOX_GSOAP_CXX_SOURCES" "" + fi +- cnf_append "VBOX_GSOAP_CXX_LIBS" "`strip_l "$GSOAP_CXX_LIBS"`" ++ cnf_append "VBOX_GSOAP_CXX_LIBS" "`strip_l "$GSOAP_CXX_LIBS"` z" + gsoap_version=`pkg-config gsoapssl++ --modversion` + log_success "found version $gsoap_version" + return +@@ -2687,7 +2695,7 @@ for option in "$@"; do + --with-openssl-dir=*) + OPENSSLDIR=`echo $option | cut -d'=' -f2` + INCCRYPTO="-I${OPENSSLDIR}/include" +- LIBCRYPTO="${OPENSSLDIR}/lib/libssl.a ${OPENSSLDIR}/lib/libcrypto.a" ++ LIBCRYPTO="-L${OPENSSLDIR}/lib -lssl -lcrypto" + # On Darwin (at least for macports) static OpenSSL also needs zlib. + [ "$OS" = "darwin" ] && LIBCRYPTO="$LIBCRYPTO ${OPENSSLDIR}/lib/libz.a" + # On Linux static OpenSSL typically needs a few additional libraries. +@@ -3054,12 +3062,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then + [ $WITH_JAVA -eq 1 ] && check_java + + # PulseAudio +- if [ $WITH_PULSE -eq 1 ]; then +- check_pulse +- elif [ $WITH_PULSE -eq 0 ]; then # Force disabling PulseAudio. +- cnf_append "VBOX_WITH_AUDIO_PULSE" "" +- elif [ $WITH_PULSE -eq 2 ]; then # --enable-pulse was passed, force PulseAudio. +- cnf_append "VBOX_WITH_AUDIO_PULSE" "1" ++ if [ "$OS" = "linux" -o "$OS" = "freebsd" -o "$OS" = "netbsd" ]; then ++ if [ $WITH_ALSA -eq 1 ]; then ++ check_alsa ++ else ++ cnf_append "VBOX_WITH_AUDIO_ALSA" "" ++ fi ++ if [ $WITH_PULSE -eq 1 ]; then ++ check_pulse ++ elif [ $WITH_PULSE -eq 0 ]; then # Force disabling PulseAudio. ++ cnf_append "VBOX_WITH_AUDIO_PULSE" "" ++ elif [ $WITH_PULSE -eq 2 ]; then # --enable-pulse was passed, force PulseAudio. ++ cnf_append "VBOX_WITH_AUDIO_PULSE" "1" ++ fi ++ if [ $WITH_DBUS -eq 0 ]; then ++ cnf_append "VBOX_WITH_DBUS" "" ++ fi + fi + fi + +@@ -3075,14 +3093,6 @@ if [ "$OS" = "linux" ]; then + cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1" + fi + if [ $ONLY_ADDITIONS -eq 0 ]; then +- if [ $WITH_ALSA -eq 1 ]; then +- check_alsa +- else +- cnf_append "VBOX_WITH_AUDIO_ALSA" "" +- fi +- if [ $WITH_DBUS -eq 0 ]; then +- cnf_append "VBOX_WITH_DBUS" "" +- fi + if [ $WITH_DEVMAPPER -eq 1 ]; then + check_libdevmapper + else diff --git a/emulators/virtualbox-ose-71/files/patch-doc_manual_en__US_dita_UserManual.ditamap b/emulators/virtualbox-ose-71/files/patch-doc_manual_en__US_dita_UserManual.ditamap new file mode 100644 index 000000000000..93550ddbf766 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-doc_manual_en__US_dita_UserManual.ditamap @@ -0,0 +1,11 @@ +--- doc/manual/en_US/dita/UserManual.ditamap.orig 2025-04-14 17:41:38 UTC ++++ doc/manual/en_US/dita/UserManual.ditamap +@@ -613,7 +613,7 @@ + <topicref href="topics/security-model.dita"/> + <topicref href="topics/secure-config-vms.dita"> + <topicref href="topics/security-networking.dita"/> +- <topicref href="topics/security-of-remote-vms.dita"/> ++<!-- <topicref href="topics/security-of-remote-vms.dita"/> --> + <topicref href="topics/security-vrdp-auth.dita"/> + <topicref href="topics/security_clipboard.dita"/> + <topicref href="topics/security-shared-folders.dita"/> diff --git a/emulators/virtualbox-ose-71/files/patch-include-iprt-x86.h b/emulators/virtualbox-ose-71/files/patch-include-iprt-x86.h new file mode 100644 index 000000000000..ca73a306df88 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-include-iprt-x86.h @@ -0,0 +1,19 @@ +--- include/iprt/x86.h.orig 2021-04-20 04:22:23 UTC ++++ include/iprt/x86.h +@@ -38,6 +38,16 @@ + # pragma D depends_on library vbox-types.d + #endif + ++/* Workaround for FreeBSD machine/specialreg.h defining MSRs */ ++#ifdef RT_OS_FREEBSD ++# undef MSR_P5_MC_ADDR ++# undef MSR_P5_MC_TYPE ++# undef MSR_IA32_PLATFORM_ID ++# undef MSR_BBL_CR_CTL3 ++# undef MSR_IA32_MISC_ENABLE ++# undef MSR_IA32_FEATURE_CONTROL ++#endif ++ + /** Workaround for Solaris sys/regset.h defining CS, DS and sys/controlregs.h + * defining MSR_IA32_FLUSH_CMD */ + #ifdef RT_OS_SOLARIS diff --git a/emulators/virtualbox-ose-71/files/patch-include_VBox_com_array.h b/emulators/virtualbox-ose-71/files/patch-include_VBox_com_array.h new file mode 100644 index 000000000000..9d65058e6b50 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-include_VBox_com_array.h @@ -0,0 +1,36 @@ +--- include/VBox/com/array.h.orig 2021-01-07 15:31:25 UTC ++++ include/VBox/com/array.h +@@ -171,7 +171,7 @@ + + #include "VBox/com/defs.h" + +-#if RT_GNUC_PREREQ(4, 6) || (defined(_MSC_VER) && (_MSC_VER >= 1600)) ++#if RT_GNUC_PREREQ(4, 6) || (defined(_MSC_VER) && (_MSC_VER >= 1600)) || defined(_LIBCPP_VERSION) + /** @def VBOX_WITH_TYPE_TRAITS + * Type traits are a C++ 11 feature, so not available everywhere (yet). + * Only GCC 4.6 or newer and MSVC++ 16.0 (Visual Studio 2010) or newer. +@@ -960,12 +960,12 @@ class SafeArray : public Traits (public) + { + /** @todo r=klaus should do this as a AssertCompile, but cannot find a way which works. */ + Assert(sizeof(T) <= sizeof(Zeroes)); +- AssertReturn(m.arr != NULL, *(T *)&Zeroes[0]); +- AssertReturn(aIdx < size(), *(T *)&Zeroes[0]); ++ AssertReturn(m.arr != NULL, *((T *)1)); ++ AssertReturn(aIdx < size(), *((T *)1)); + #ifdef VBOX_WITH_XPCOM + return m.arr[aIdx]; + #else +- AssertReturn(m.raw != NULL, *(T *)&Zeroes[0]); ++ AssertReturn(m.raw != NULL, *((T *)1)); + return m.raw[aIdx]; + #endif + } +@@ -980,7 +980,7 @@ class SafeArray : public Traits (public) + #ifdef VBOX_WITH_XPCOM + return m.arr[aIdx]; + #else +- AssertReturn(m.raw != NULL, *(const T *)&Zeroes[0]); ++ AssertReturn(m.raw != NULL, *((T *)1)); + return m.raw[aIdx]; + #endif + } diff --git a/emulators/virtualbox-ose-71/files/patch-include_VBox_sup.h b/emulators/virtualbox-ose-71/files/patch-include_VBox_sup.h new file mode 100644 index 000000000000..9cf3fabe63f1 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-include_VBox_sup.h @@ -0,0 +1,11 @@ +--- include/VBox/sup.h.orig 2024-12-27 04:08:45.986426000 +0100 ++++ include/VBox/sup.h 2024-12-27 04:09:08.925387000 +0100 +@@ -2248,7 +2248,7 @@ + + SUPR0DECL(void) SUPR0BadContext(PSUPDRVSESSION pSession, const char *pszFile, uint32_t uLine, const char *pszExpr); + +-#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD) ++#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) + /** + * Translates a physical address to a virtual mapping (valid up to end of page). + * @returns VBox status code. diff --git a/emulators/virtualbox-ose-71/files/patch-include_iprt_string.h b/emulators/virtualbox-ose-71/files/patch-include_iprt_string.h new file mode 100644 index 000000000000..95119057d1ca --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-include_iprt_string.h @@ -0,0 +1,14 @@ +--- include/iprt/string.h.orig 2021-01-07 15:31:33 UTC ++++ include/iprt/string.h +@@ -46,6 +46,11 @@ + #elif defined(RT_OS_FREEBSD) && defined(_KERNEL) + RT_C_DECLS_BEGIN + # include <sys/libkern.h> ++ /* ++ * Kludge for the FreeBSD kernel: ++ * sys/libkern.h includes sys/param.h via sys/systm.h since r335879. ++ */ ++# undef PVM + RT_C_DECLS_END + + #elif defined(RT_OS_NETBSD) && defined(_KERNEL) diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c new file mode 100644 index 000000000000..e790f372f95f --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c @@ -0,0 +1,284 @@ +--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2022-10-06 19:03:06.000000000 +0200 ++++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2024-12-26 15:28:38.066230000 +0100 +@@ -55,6 +55,7 @@ + #include <sys/uio.h> + #include <sys/bus.h> + #include <sys/poll.h> ++#include <sys/proc.h> + #include <sys/selinfo.h> + #include <sys/queue.h> + #include <sys/lock.h> +@@ -71,6 +72,7 @@ + #include <VBox/version.h> + #include <VBox/log.h> + #include <iprt/assert.h> ++#include <iprt/err.h> + #include <iprt/initterm.h> + #include <iprt/process.h> + #include <iprt/string.h> +@@ -112,8 +114,6 @@ + struct resource *pIrqRes; + /** Pointer to the IRQ handler. */ + void *pfnIrqHandler; +- /** VMMDev version */ +- uint32_t u32Version; + }; + + +@@ -123,8 +123,7 @@ + /* + * Character device file handlers. + */ +-static d_fdopen_t vgdrvFreeBSDOpen; +-static d_close_t vgdrvFreeBSDClose; ++static d_open_t vgdrvFreeBSDOpen; + static d_ioctl_t vgdrvFreeBSDIOCtl; + static int vgdrvFreeBSDIOCtlSlow(PVBOXGUESTSESSION pSession, u_long ulCmd, caddr_t pvData, struct thread *pTd); + static d_write_t vgdrvFreeBSDWrite; +@@ -155,8 +154,7 @@ + { + .d_version = D_VERSION, + .d_flags = D_TRACKCLOSE | D_NEEDMINOR, +- .d_fdopen = vgdrvFreeBSDOpen, +- .d_close = vgdrvFreeBSDClose, ++ .d_open = vgdrvFreeBSDOpen, + .d_ioctl = vgdrvFreeBSDIOCtl, + .d_read = vgdrvFreeBSDRead, + .d_write = vgdrvFreeBSDWrite, +@@ -164,81 +162,28 @@ + .d_name = "vboxguest" + }; + ++/** Device structure. */ ++static struct cdev *g_pDev; ++ + /** Device extention & session data association structure. */ + static VBOXGUESTDEVEXT g_DevExt; + +-/** List of cloned device. Managed by the kernel. */ +-static struct clonedevs *g_pvgdrvFreeBSDClones; +-/** The dev_clone event handler tag. */ +-static eventhandler_tag g_vgdrvFreeBSDEHTag; + /** Reference counter */ + static volatile uint32_t cUsers; + /** selinfo structure used for polling. */ + static struct selinfo g_SelInfo; + +-/** +- * DEVFS event handler. +- */ +-static void vgdrvFreeBSDClone(void *pvArg, struct ucred *pCred, char *pszName, int cchName, struct cdev **ppDev) ++static void vgdrvFreeBSDDtr(void *pSession) + { +- int iUnit; +- int rc; +- +- Log(("vgdrvFreeBSDClone: pszName=%s ppDev=%p\n", pszName, ppDev)); +- +- /* +- * One device node per user, si_drv1 points to the session. +- * /dev/vboxguest<N> where N = {0...255}. +- */ +- if (!ppDev) +- return; +- if (strcmp(pszName, "vboxguest") == 0) +- iUnit = -1; +- else if (dev_stdclone(pszName, NULL, "vboxguest", &iUnit) != 1) +- return; +- if (iUnit >= 256) +- { +- Log(("vgdrvFreeBSDClone: iUnit=%d >= 256 - rejected\n", iUnit)); +- return; +- } +- +- Log(("vgdrvFreeBSDClone: pszName=%s iUnit=%d\n", pszName, iUnit)); +- +- rc = clone_create(&g_pvgdrvFreeBSDClones, &g_vgdrvFreeBSDChrDevSW, &iUnit, ppDev, 0); +- Log(("vgdrvFreeBSDClone: clone_create -> %d; iUnit=%d\n", rc, iUnit)); +- if (rc) +- { +- *ppDev = make_dev(&g_vgdrvFreeBSDChrDevSW, +- iUnit, +- UID_ROOT, +- GID_WHEEL, +- 0664, +- "vboxguest%d", iUnit); +- if (*ppDev) +- { +- dev_ref(*ppDev); +- (*ppDev)->si_flags |= SI_CHEAPCLONE; +- Log(("vgdrvFreeBSDClone: Created *ppDev=%p iUnit=%d si_drv1=%p si_drv2=%p\n", +- *ppDev, iUnit, (*ppDev)->si_drv1, (*ppDev)->si_drv2)); +- (*ppDev)->si_drv1 = (*ppDev)->si_drv2 = NULL; +- } +- else +- Log(("vgdrvFreeBSDClone: make_dev iUnit=%d failed\n", iUnit)); +- } +- else +- Log(("vgdrvFreeBSDClone: Existing *ppDev=%p iUnit=%d si_drv1=%p si_drv2=%p\n", +- *ppDev, iUnit, (*ppDev)->si_drv1, (*ppDev)->si_drv2)); ++ VGDrvCommonCloseSession(&g_DevExt, pSession); ++ ASMAtomicDecU32(&cUsers); + } + + /** + * File open handler + * + */ +-#if __FreeBSD_version >= 700000 +-static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOpen, struct thread *pTd, struct file *pFd) +-#else +-static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOpen, struct thread *pTd) +-#endif ++static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOpen, int DevType, struct thread *pTd) + { + int rc; + PVBOXGUESTSESSION pSession; +@@ -250,12 +195,6 @@ + LogFlow(("vgdrvFreeBSDOpen:\n")); + + /* +- * Try grab it (we don't grab the giant, remember). +- */ +- if (!ASMAtomicCmpXchgPtr(&pDev->si_drv1, (void *)0x42, NULL)) +- return EBUSY; +- +- /* + * Create a new session. + */ + fRequestor = VMMDEV_REQUESTOR_USERMODE | VMMDEV_REQUESTOR_TRUST_NOT_GIVEN; +@@ -272,47 +211,20 @@ + rc = VGDrvCommonCreateUserSession(&g_DevExt, fRequestor, &pSession); + if (RT_SUCCESS(rc)) + { +- if (ASMAtomicCmpXchgPtr(&pDev->si_drv1, pSession, (void *)0x42)) +- { +- Log(("vgdrvFreeBSDOpen: success - g_DevExt=%p pSession=%p rc=%d pid=%d\n", &g_DevExt, pSession, rc, (int)RTProcSelf())); ++ Log(("vgdrvFreeBSDOpen: success - g_DevExt=%p pSession=%p rc=%d pid=%d\n", &g_DevExt, pSession, rc, (int)RTProcSelf())); ++ rc = devfs_set_cdevpriv(pSession, vgdrvFreeBSDDtr); ++ if (rc) ++ VGDrvCommonCloseSession(&g_DevExt, pSession); ++ else + ASMAtomicIncU32(&cUsers); +- return 0; +- } +- +- VGDrvCommonCloseSession(&g_DevExt, pSession); ++ return rc; + } + + LogRel(("vgdrvFreeBSDOpen: failed. rc=%d\n", rc)); + return RTErrConvertToErrno(rc); + } + +-/** +- * File close handler +- * +- */ +-static int vgdrvFreeBSDClose(struct cdev *pDev, int fFile, int DevType, struct thread *pTd) +-{ +- PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1; +- Log(("vgdrvFreeBSDClose: fFile=%#x pSession=%p\n", fFile, pSession)); + +- /* +- * Close the session if it's still hanging on to the device... +- */ +- if (RT_VALID_PTR(pSession)) +- { +- VGDrvCommonCloseSession(&g_DevExt, pSession); +- if (!ASMAtomicCmpXchgPtr(&pDev->si_drv1, NULL, pSession)) +- Log(("vgdrvFreeBSDClose: si_drv1=%p expected %p!\n", pDev->si_drv1, pSession)); +- ASMAtomicDecU32(&cUsers); +- /* Don't use destroy_dev here because it may sleep resulting in a hanging user process. */ +- destroy_dev_sched(pDev); +- } +- else +- Log(("vgdrvFreeBSDClose: si_drv1=%p!\n", pSession)); +- return 0; +-} +- +- + /** + * I/O control request. + * +@@ -326,8 +238,12 @@ + static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd) + { + PVBOXGUESTSESSION pSession; +- devfs_get_cdevpriv((void **)&pSession); ++ int rc; + ++ rc = devfs_get_cdevpriv((void **)&pSession); ++ if (rc) ++ return rc; ++ + /* + * Deal with the fast ioctl path first. + */ +@@ -526,8 +442,10 @@ + + LogFlow(("vgdrvFreeBSDPoll: fEvents=%d\n", fEvents)); + +- PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1; +- if (RT_UNLIKELY(!RT_VALID_PTR(pSession))) { ++ ++ rc = devfs_get_cdevpriv((void **)&pSession); ++ if (rc) ++ { + Log(("vgdrvFreeBSDPoll: no state data for %s\n", devtoname(pDev))); + return (fEvents & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM)); + } +@@ -568,11 +486,8 @@ + /* + * Reverse what we did in vgdrvFreeBSDAttach. + */ +- if (g_vgdrvFreeBSDEHTag != NULL) +- EVENTHANDLER_DEREGISTER(dev_clone, g_vgdrvFreeBSDEHTag); ++ destroy_dev(g_pDev); + +- clone_cleanup(&g_pvgdrvFreeBSDClones); +- + vgdrvFreeBSDRemoveIRQ(pDevice, pState); + + if (pState->pVMMDevMemRes) +@@ -737,18 +652,21 @@ + VGDrvCommonProcessOptionsFromHost(&g_DevExt); + + /* +- * Configure device cloning. ++ * Configure device. + */ +- clone_setup(&g_pvgdrvFreeBSDClones); +- g_vgdrvFreeBSDEHTag = EVENTHANDLER_REGISTER(dev_clone, vgdrvFreeBSDClone, 0, 1000); +- if (g_vgdrvFreeBSDEHTag) ++ g_pDev = make_dev(&g_vgdrvFreeBSDChrDevSW, ++ 0, ++ UID_ROOT, ++ GID_WHEEL, ++ 0664, ++ "vboxguest"); ++ if (g_pDev) + { + printf(DEVICE_NAME ": loaded successfully\n"); + return 0; + } + +- printf(DEVICE_NAME ": EVENTHANDLER_REGISTER(dev_clone,,,) failed\n"); +- clone_cleanup(&g_pvgdrvFreeBSDClones); ++ printf(DEVICE_NAME ": make_dev failed\n"); + vgdrvFreeBSDRemoveIRQ(pDevice, pState); + } + else +@@ -792,8 +710,12 @@ + sizeof(struct VBoxGuestDeviceState), + }; + ++#if __FreeBSD_version >= 1400058 ++DRIVER_MODULE(vboxguest, pci, vgdrvFreeBSDDriver, 0, 0); ++#else + static devclass_t vgdrvFreeBSDClass; + + DRIVER_MODULE(vboxguest, pci, vgdrvFreeBSDDriver, vgdrvFreeBSDClass, 0, 0); ++#endif + MODULE_VERSION(vboxguest, 1); + diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile new file mode 100644 index 000000000000..476346a59b13 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile @@ -0,0 +1,27 @@ +--- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2019-04-16 10:09:09 UTC ++++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile +@@ -25,7 +25,7 @@ + # + KMOD = vboxguest + +-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS ++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_GUEST -DIN_GUEST_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS + + .if (${MACHINE_ARCH} == "i386") + CFLAGS += -DRT_ARCH_X86 +@@ -80,6 +80,7 @@ SRCS += \ + handletable.c \ + handletablectx.c \ + once.c \ ++ term.c \ + thread.c + + .PATH: ${.CURDIR}/common/string +@@ -147,6 +148,7 @@ SRCS += \ + + .PATH: ${.CURDIR}/r0drv + SRCS += \ ++ alloc-ef-r0drv.c \ + alloc-r0drv.c \ + initterm-r0drv.c \ + memobj-r0drv.c \ diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest new file mode 100644 index 000000000000..faecf870532b --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-files_vboxguest @@ -0,0 +1,34 @@ +--- src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest.orig 2019-01-25 18:12:28 UTC ++++ src/VBox/Additions/common/VBoxGuest/freebsd/files_vboxguest +@@ -63,6 +63,7 @@ FILES_VBOXGUEST_NOBIN=" \ + ${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \ + ${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \ + ${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \ ++ ${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \ + ${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \ + ${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \ + ${PATH_ROOT}/include/iprt/crc.h=>include/iprt/crc.h \ +@@ -111,6 +112,7 @@ FILES_VBOXGUEST_NOBIN=" \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.h=>common/misc/handletable.h \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \ ++ ${PATH_ROOT}/src/VBox/Runtime/common/misc/term.cpp=>common/misc/term.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp=>common/misc/RTAssertMsg1Weak.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp=>common/misc/RTAssertMsg2.c \ +@@ -181,6 +183,7 @@ FILES_VBOXGUEST_NOBIN=" \ + ${PATH_ROOT}/src/VBox/Runtime/generic/errvars-generic.cpp=>generic/errvars-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/generic/timer-generic.cpp=>generic/timer-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/generic/mppresent-generic.cpp=>generic/mppresent-generic.c \ ++ ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-ef-r0drv.cpp=>r0drv/alloc-ef-r0drv.c \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.cpp=>r0drv/alloc-r0drv.c \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.h=>r0drv/alloc-r0drv.h \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/initterm-r0drv.cpp=>r0drv/initterm-r0drv.c \ +@@ -207,6 +210,7 @@ FILES_VBOXGUEST_NOBIN=" \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h=>r0drv/freebsd/sleepqueue-r0drv-freebsd.h \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/semspinmutex-r0drv-generic.c=>r0drv/generic/semspinmutex-r0drv-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/mpnotification-r0drv-generic.cpp=>r0drv/generic/mpnotification-r0drv-generic.c \ ++ ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/threadctxhooks-r0drv-generic.cpp=>r0drv/generic/threadctxhooks-r0drv-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp=>r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/memobj-r0drv.cpp=>r0drv/memobj-r0drv.c \ + ${PATH_ROOT}/src/VBox/Runtime/VBox/log-vbox.cpp=>VBox/log-vbox.c \ diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient new file mode 100644 index 000000000000..56225943a922 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-98vboxadd-xclient @@ -0,0 +1,25 @@ +--- src/VBox/Additions/x11/Installer/98vboxadd-xclient.orig 2025-01-21 19:49:30.000000000 +0700 ++++ src/VBox/Additions/x11/Installer/98vboxadd-xclient 2025-01-23 00:43:43.597269000 +0700 +@@ -42,15 +42,15 @@ + # not use "exit" here as this script is "source"d, not executed. + + # Check wheather X11 or Wayland version of VBoxClient should be started. +- vbox_wl_check=$(/usr/bin/vboxwl --check 2> /dev/null) ++ vbox_wl_check=$(/usr/local/bin/vboxwl --check 2> /dev/null) + if test "$vbox_wl_check" = "WL"; then +- /usr/bin/VBoxClient --wayland ++ /usr/local/bin/VBoxClient --wayland + else +- /usr/bin/VBoxClient --clipboard +- /usr/bin/VBoxClient --seamless +- /usr/bin/VBoxClient --draganddrop ++ /usr/local/bin/VBoxClient --clipboard ++ /usr/local/bin/VBoxClient --seamless ++ /usr/local/bin/VBoxClient --draganddrop + fi + +- /usr/bin/VBoxClient --checkhostversion +- /usr/bin/VBoxClient --vmsvga-session # In case VMSVGA emulation is enabled ++ /usr/local/bin/VBoxClient --checkhostversion ++ /usr/local/bin/VBoxClient --vmsvga-session # In case VMSVGA emulation is enabled + fi diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop new file mode 100644 index 000000000000..a76eb7616038 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Additions-x11-Installer-vboxclient.desktop @@ -0,0 +1,10 @@ +--- src/VBox/Additions/x11/Installer/vboxclient.desktop.orig 2020-05-13 19:37:09 UTC ++++ src/VBox/Additions/x11/Installer/vboxclient.desktop +@@ -8,6 +8,6 @@ Comment[C]=VirtualBox User Session Services + Comment=VirtualBox User Session Services + Comment[it]=Servizi di sessione utente di VirtualBox + Comment[pl]=Usługi sesji użytkownika VirtualBox +-Exec=/usr/bin/VBoxClient-all ++Exec=/usr/local/bin/VBoxClient-all + X-GNOME-Autostart-enabled=true + X-KDE-autostart-after=panel diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-DrvNATlibslirp.cpp b/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-DrvNATlibslirp.cpp new file mode 100644 index 000000000000..11ee43504054 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-DrvNATlibslirp.cpp @@ -0,0 +1,10 @@ +--- src/VBox/Devices/Network/DrvNATlibslirp.cpp.orig 2025-01-25 00:56:57.537046000 +0700 ++++ src/VBox/Devices/Network/DrvNATlibslirp.cpp 2025-01-25 00:58:05.112538000 +0700 +@@ -57,6 +57,7 @@ + + #ifdef RT_OS_FREEBSD + # include <netinet/in.h> ++# include <sys/socket.h> + #endif + + #include <iprt/asm.h> diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h b/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h new file mode 100644 index 000000000000..b6ed2d2915db --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h @@ -0,0 +1,12 @@ +--- src/VBox/Devices/Network/slirp/bsd/sys/mbuf.h.orig 2020-05-13 19:42:23 UTC ++++ src/VBox/Devices/Network/slirp/bsd/sys/mbuf.h +@@ -245,6 +245,9 @@ struct mbuf { + #define M_FRAG 0x00000800 /* packet is a fragment of a larger packet */ + #define M_FIRSTFRAG 0x00001000 /* packet is first fragment */ + #define M_LASTFRAG 0x00002000 /* packet is last fragment */ ++#ifdef M_SKIP_FIREWALL ++#undef M_SKIP_FIREWALL ++#endif + #define M_SKIP_FIREWALL 0x00004000 /* skip firewall processing */ + #define M_FREELIST 0x00008000 /* mbuf is on the free list */ + #define M_VLANTAG 0x00010000 /* ether_vtag is valid */ diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk new file mode 100644 index 000000000000..5b96ab56a61b --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk @@ -0,0 +1,20 @@ +--- src/VBox/HostDrivers/VBoxNetAdp/Makefile.kmk.orig 2019-05-13 13:33:07 UTC ++++ src/VBox/HostDrivers/VBoxNetAdp/Makefile.kmk +@@ -206,10 +206,14 @@ $$(VBoxNetAdp-src_0_OUTDIR)/Makefile: \ + $$(if $$(eq $$(VBoxNetAdp/freebsd/Makefile_VBOX_HARDENED),$$(VBOX_WITH_HARDENING)),,FORCE) \ + | $$(dir $$@) + $(QUIET)$(RM) -f -- $@ +- ifndef VBOX_WITH_HARDENING +- $(QUIET)$(SED) -e "s;VBOX_WITH_HARDENING;;g" --output $@ $< +- else + $(QUIET)$(CP) -f $< $@ ++ ifndef VBOX_WITH_HARDENING ++ $(QUIET)$(SED) -e "s;-DVBOX_WITH_HARDENING;;g" --output $@.tmp $@ ++ $(QUIET)$(MV) -f $@.tmp $@ ++ endif ++ ifndef VBOX_WITH_NETFLT_VIMAGE ++ $(QUIET)$(SED) -e "s;-DVIMAGE;;g" --output $@.tmp $@ ++ $(QUIET)$(MV) -f $@.tmp $@ + endif + + endif # freebsd diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt b/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt new file mode 100644 index 000000000000..dc4e779fb6b0 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt @@ -0,0 +1,10 @@ +--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/files_vboxnetflt.orig 2022-10-06 19:11:15.000000000 +0200 ++++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/files_vboxnetflt 2024-12-26 15:41:50.870345000 +0100 +@@ -72,6 +72,7 @@ + ${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \ + ${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \ + ${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \ ++ ${PATH_ROOT}/include/iprt/x86.h=>include/iprt/x86.h \ + ${PATH_ROOT}/include/iprt/x86-helpers.h=>include/iprt/x86-helpers.h \ + ${PATH_ROOT}/include/iprt/nocrt/limits.h=>include/iprt/nocrt/limits.h \ + ${PATH_ROOT}/include/VBox/cdefs.h=>include/VBox/cdefs.h \ diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-Makefile.kmk new file mode 100644 index 000000000000..45546433c627 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-Makefile.kmk @@ -0,0 +1,14 @@ +--- src/VBox/Installer/Makefile.kmk.orig 2020-05-13 19:44:01 UTC ++++ src/VBox/Installer/Makefile.kmk +@@ -41,9 +41,11 @@ ifndef VBOX_ONLY_SDK + if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_HOST)" == "win" + include $(PATH_SUB_CURRENT)/win/Makefile.kmk + endif ++if 0 + if "$(KBUILD_TARGET)" == "freebsd" && "$(KBUILD_HOST)" == "freebsd" + include $(PATH_SUB_CURRENT)/freebsd/Makefile.kmk + endif ++endif + endif + + include $(PATH_SUB_CURRENT)/common/Makefile.kmk diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-freebsd-VBox.sh b/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-freebsd-VBox.sh new file mode 100644 index 000000000000..b4c177a54d1c --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Installer-freebsd-VBox.sh @@ -0,0 +1,77 @@ +--- src/VBox/Installer/freebsd/VBox.sh.orig 2016-08-27 05:10:34 UTC ++++ src/VBox/Installer/freebsd/VBox.sh +@@ -0,0 +1,74 @@ ++#!/bin/sh ++# ++# Oracle VM VirtualBox startup script, FreeBSD hosts. ++# ++# Copyright (C) 2006-2012 Oracle Corporation ++# ++# This file is part of VirtualBox Open Source Edition (OSE), as ++# available from http://www.virtualbox.org. This file is free software; ++# you can redistribute it and/or modify it under the terms of the GNU ++# General Public License (GPL) as published by the Free Software ++# Foundation, in version 2 as it comes in the "COPYING" file of the ++# VirtualBox OSE distribution. VirtualBox OSE is distributed in the ++# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. ++# ++ ++PATH="/sbin:/bin:/usr/sbin:/usr/bin:%%LOCALBASE%%/sbin:%%LOCALBASE%%/bin" ++CONFIG="%%VBOX_ETC%%/vbox.cfg" ++ ++test -r "${CONFIG}" && ++ . "${CONFIG}" ++test -z "${INSTALL_DIR}" && ++ if test -d %%VBOX_DIR%% && ++ test -f %%VBOX_DIR%%/VBoxRT.so; then ++ INSTALL_DIR=%%VBOX_DIR%% ++ else ++ >&2 echo "Could not find VirtualBox installation. Please reinstall." ++ exit 1 ++ fi ++ ++if [ -d /etc/vbox ]; then ++ >&2 cat <<-EOH ++ WARNING: Directory /etc/vbox found, but ignored. VirtualBox ++ configuration files are stored in %%VBOX_ETC%%/. ++ EOH ++fi ++ ++# workaround for the KDE dialog problem ++KDE_FORK_SLAVES=1; export KDE_FORK_SLAVES ++ ++APP=`basename $0` ++case "$APP" in ++ VirtualBox|virtualbox) ++ exec "$INSTALL_DIR/VirtualBox" "$@" ++ ;; ++ VirtualBoxVM|virtualboxvm) ++ exec "$INSTALL_DIR/VirtualBoxVM" "$@" ++ ;; ++ VBoxManage|vboxmanage) ++ exec "$INSTALL_DIR/VBoxManage" "$@" ++ ;; ++ VBoxSDL|vboxsdl) ++ exec "$INSTALL_DIR/VBoxSDL" "$@" ++ ;; ++ VBoxVRDP|VBoxHeadless|vboxheadless) ++ exec "$INSTALL_DIR/VBoxHeadless" "$@" ++ ;; ++ VBoxAutostart|vboxautostart) ++ exec "$INSTALL_DIR/VBoxAutostart" "$@" ++ ;; ++ VBoxBalloonCtrl|vboxballoonctrl) ++ exec "$INSTALL_DIR/VBoxBalloonCtrl" "$@" ++ ;; ++ VBoxBugReport|vboxbugreport) ++ exec "$INSTALL_DIR/VBoxBugReport" "$@" ++ ;; ++ vboxwebsrv) ++ exec "$INSTALL_DIR/vboxwebsrv" "$@" ++ ;; ++ *) ++ >&2 echo "Unknown application - $APP" ++ exit 1 ++ ;; ++esac ++exit 0 diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp b/emulators/virtualbox-ose-71/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp new file mode 100644 index 000000000000..4cd8b7492ed9 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp @@ -0,0 +1,11 @@ +--- src/VBox/Main/src-server/VirtualBoxImpl.cpp.orig 2021-01-07 15:41:43 UTC ++++ src/VBox/Main/src-server/VirtualBoxImpl.cpp +@@ -2663,7 +2663,7 @@ int VirtualBox::i_encryptSettingBytes(const uint8_t *a + if (aCiphertextSize < 32) + return VERR_INVALID_PARAMETER; + +- AssertCompile(sizeof(m->SettingsCipherKey) >= 32); ++ // AssertCompile(sizeof(m->SettingsCipherKey) >= 32); + + /* store the first 8 bytes of the cipherkey for verification */ + for (i = 0, j = 0; i < 8; i++, j++) diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk new file mode 100644 index 000000000000..f13be222ea9a --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk @@ -0,0 +1,14 @@ +--- src/VBox/Runtime/Makefile.kmk.orig 2021-01-07 15:41:50 UTC ++++ src/VBox/Runtime/Makefile.kmk +@@ -177,6 +177,11 @@ $(IPRT_OUT_DIR)/oiddb.h.ts +| $(IPRT_OUT_DIR)/oiddb.h: + + + # ++# Set the defines that utf8-posix.cpp needs. It's used by several targets. ++# ++r3/posix/utf8-posix.cpp_DEFS.freebsd = $(VBOX_ICONV_DEFS) ++ ++# + # Unicode Specification reader used to regenerate unidata-*.cpp. + # + uniread_TEMPLATE = VBoxBldProg diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h new file mode 100644 index 000000000000..c18492ebdf9b --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h @@ -0,0 +1,39 @@ +Without the first part of this patch, any waits for periods shorter than a +single tick return immediately leading to a lot of unnecessary spinning. For +example, I observe that my guest's idle loop does a lot of sleeps with periods +slightly shorter than 1 ms (1/hz), e.g. 900us. All that waiting turns into pure +spinning and VirtualBox eats 100% of a core. + +The clamping improves the situation significantly. Also, it (approximately) +follows what tvtohz does. The rest of the patch just chases an upstream +KPI change. + +Submitted by: Andriy Gapon <avg@FreeBSD.org> +--- src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h.orig 2024-07-29 13:10:32 UTC ++++ src/VBox/Runtime/r0drv/freebsd/sleepqueue-r0drv-freebsd.h +@@ -84,6 +84,8 @@ DECLINLINE(uint32_t) rtR0SemBsdWaitUpdateTimeout(PRTR0 + uint64_t cTicks = ASMMultU64ByU32DivByU32(uTimeout, hz, UINT32_C(1000000000)); + if (cTicks >= INT_MAX) + return RTSEMWAIT_FLAGS_INDEFINITE; ++ else if (cTicks == 0 && uTimeout > 0) ++ pWait->iTimeout = 1; + else + pWait->iTimeout = (int)cTicks; + #endif +@@ -300,10 +302,16 @@ DECLINLINE(void) rtR0SemBsdSignal(void *pvWaitChan) + DECLINLINE(void) rtR0SemBsdSignal(void *pvWaitChan) + { + sleepq_lock(pvWaitChan); ++#if __FreeBSD_version < 1500022 + int fWakeupSwapProc = sleepq_signal(pvWaitChan, SLEEPQ_CONDVAR, 0, 0); ++#else ++ sleepq_signal(pvWaitChan, SLEEPQ_CONDVAR, 0, 0); ++#endif + sleepq_release(pvWaitChan); ++#if __FreeBSD_version < 1500022 + if (fWakeupSwapProc) + kick_proc0(); ++#endif + } + + /** diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp new file mode 100644 index 000000000000..70b459e94da7 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_VBoxService_VBoxServiceVMInfo.cpp @@ -0,0 +1,71 @@ +--- src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp.orig 2021-01-07 15:34:20 UTC ++++ src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp +@@ -67,8 +67,8 @@ + # include <net/if.h> + # include <pwd.h> /* getpwuid */ + # include <unistd.h> +-# if !defined(RT_OS_OS2) && !defined(RT_OS_FREEBSD) && !defined(RT_OS_HAIKU) +-# include <utmpx.h> /** @todo FreeBSD 9 should have this. */ ++# if !defined(RT_OS_OS2) && !defined(RT_OS_HAIKU) ++# include <utmpx.h> + # endif + # ifdef RT_OS_OS2 + # include <net/if_dl.h> +@@ -528,7 +528,7 @@ static void vgsvcVMInfoWriteFixedProperties(void) + } + + +-#if defined(VBOX_WITH_DBUS) && defined(RT_OS_LINUX) /* Not yet for Solaris/FreeBSB. */ ++#if defined(VBOX_WITH_DBUS) && (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) /* Not yet for Solaris. */ + /* + * Simple wrapper to work around compiler-specific va_list madness. + */ +@@ -555,12 +555,6 @@ static int vgsvcVMInfoWriteUsers(void) + #ifdef RT_OS_WINDOWS + rc = VGSvcVMInfoWinWriteUsers(&g_VMInfoPropCache, &pszUserList, &cUsersInList); + +-#elif defined(RT_OS_FREEBSD) +- /** @todo FreeBSD: Port logged on user info retrieval. +- * However, FreeBSD 9 supports utmpx, so we could use the code +- * block below (?). */ +- rc = VERR_NOT_IMPLEMENTED; +- + #elif defined(RT_OS_HAIKU) + /** @todo Haiku: Port logged on user info retrieval. */ + rc = VERR_NOT_IMPLEMENTED; +@@ -586,7 +580,7 @@ static int vgsvcVMInfoWriteUsers(void) + while ( (ut_user = getutxent()) + && RT_SUCCESS(rc)) + { +-# ifdef RT_OS_DARWIN /* No ut_user->ut_session on Darwin */ ++# if defined(RT_OS_DARWIN) || defined(RT_OS_FREEBSD) /* No ut_user->ut_session on Darwin/FreeBSD */ + VGSvcVerbose(4, "Found entry '%s' (type: %d, PID: %RU32)\n", ut_user->ut_user, ut_user->ut_type, ut_user->ut_pid); + # else + VGSvcVerbose(4, "Found entry '%s' (type: %d, PID: %RU32, session: %RU32)\n", +@@ -621,7 +615,7 @@ static int vgsvcVMInfoWriteUsers(void) + } + + # ifdef VBOX_WITH_DBUS +-# if defined(RT_OS_LINUX) /* Not yet for Solaris/FreeBSB. */ ++# if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) /* Not yet for Solaris. */ + DBusError dbErr; + DBusConnection *pConnection = NULL; + int rc2 = RTDBusLoadLib(); +@@ -830,7 +824,7 @@ static int vgsvcVMInfoWriteUsers(void) + if ( fHaveLibDbus + && dbus_error_is_set(&dbErr)) + dbus_error_free(&dbErr); +-# endif /* RT_OS_LINUX */ ++# endif /* RT_OS_LINUX || RT_OS_FREEBSD */ + # endif /* VBOX_WITH_DBUS */ + + /** @todo Fedora/others: Handle systemd-loginctl. */ +@@ -867,7 +861,7 @@ static int vgsvcVMInfoWriteUsers(void) + RTMemFree(papszUsers); + + endutxent(); /* Close utmpx file. */ +-#endif /* !RT_OS_WINDOWS && !RT_OS_FREEBSD && !RT_OS_HAIKU && !RT_OS_OS2 */ ++#endif /* !RT_OS_WINDOWS && !RT_OS_HAIKU && !RT_OS_OS2 */ + + Assert(RT_FAILURE(rc) || cUsersInList == 0 || (pszUserList && *pszUserList)); + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp new file mode 100644 index 000000000000..bd667880358f --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_common_pam_pam__vbox.cpp @@ -0,0 +1,20 @@ +--- src/VBox/Additions/common/pam/pam_vbox.cpp.orig 2021-01-07 15:34:21 UTC ++++ src/VBox/Additions/common/pam/pam_vbox.cpp +@@ -104,7 +104,7 @@ static void pam_vbox_writesyslog(char *pszBuf) + openlog("pam_vbox", LOG_PID, LOG_AUTHPRIV); + syslog(LOG_ERR, "%s", pszBuf); + closelog(); +-#elif defined(RT_OS_SOLARIS) ++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_SOLARIS) + syslog(LOG_ERR, "pam_vbox: %s\n", pszBuf); + #endif + } +@@ -183,7 +183,7 @@ static int vbox_set_msg(pam_handle_t *hPAM, int iStyle + + pam_message msg; + msg.msg_style = iStyle; +-#ifdef RT_OS_SOLARIS ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_SOLARIS) + msg.msg = (char*)pszText; + #else + msg.msg = pszText; diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile new file mode 100644 index 000000000000..c38d8013a6d6 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile @@ -0,0 +1,38 @@ +--- src/VBox/Additions/freebsd/Makefile.orig 2020-05-13 19:37:06 UTC ++++ src/VBox/Additions/freebsd/Makefile +@@ -30,6 +30,14 @@ all: + cp vboxvfs/vboxvfs.ko .; \ + fi; \ + fi ++ @echo ++ @if [ -d mount_vboxvfs ]; then \ ++ echo "=== Building mount_vboxvfs binary ==="; \ ++ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C mount_vboxvfs clean obj depend all; \ ++ if [ -f mount_vboxvfs ]; then \ ++ cp mount_vboxvfs/mount_vboxvfs .; \ ++ fi; \ ++ fi + + + install: +@@ -37,13 +45,19 @@ install: + @if [ -d vboxvfs ]; then \ + $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvfs install; \ + fi ++ @if [ -d mount_vboxvfs ]; then \ ++ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C mount_vboxvfs install; \ ++ fi + + clean: + @$(MAKE) -C vboxguest clean + @if [ -d vboxvfs ]; then \ + $(MAKE) -C vboxvfs clean; \ + fi +- rm -f vboxguest.*o vboxvfs.*o ++ @if [ -d mount_vboxvfs ]; then \ ++ $(MAKE) -C mount_vboxvfs clean; \ ++ fi ++ rm -f vboxguest.*o vboxvfs.*o mount_vboxvfs + + load: + @/sbin/kldunload vboxvfs || true diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile.kmk new file mode 100644 index 000000000000..f9d19d679e4a --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_Makefile.kmk @@ -0,0 +1,31 @@ +--- src/VBox/Additions/freebsd/Makefile.kmk.orig 2021-01-07 15:34:22 UTC ++++ src/VBox/Additions/freebsd/Makefile.kmk +@@ -23,8 +23,9 @@ $(error "The FreeBSD guest additions installer can onl + endif + + # Include sub-makefiles. +-#include $(PATH_SUB_CURRENT)/vboxvfs/Makefile.kmk +-include $(PATH_SUB_CURRENT)/drm/Makefile.kmk ++include $(PATH_SUB_CURRENT)/vboxvfs/Makefile.kmk ++#include $(PATH_SUB_CURRENT)/drm/Makefile.kmk ++include $(PATH_SUB_CURRENT)/mount_vboxvfs/Makefile.kmk + + # + # Globals +@@ -66,11 +67,14 @@ VBOX_FBSD_ADD_STRIP_BIN = \ + vboxvideo_drv_14.so \ + vboxvideo_drv_15.so \ + vboxvideo_drv_16.so \ +- vboxvideo_drv_17.so ++ vboxvideo_drv_17.so \ ++ $(if $(VBOX_WITH_PAM),pam_vbox.so,) \ ++ VBoxOGL.so \ ++ mount_vboxvfs + + VBOX_FBSD_ADD_MODULES = \ + vboxguest \ +- vboxvideo_drm ++ vboxvfs + + # + # All the bin files that go into the archives. diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c new file mode 100644 index 000000000000..d4e5f3fc5a33 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_drm_vboxvideo__drm.c @@ -0,0 +1,17 @@ +--- src/VBox/Additions/freebsd/drm/vboxvideo_drm.c.orig 2022-07-26 18:05:21 UTC ++++ src/VBox/Additions/freebsd/drm/vboxvideo_drm.c +@@ -154,10 +154,14 @@ static driver_t vboxvideo_driver = { + sizeof(struct drm_device) + }; + ++#if __FreeBSD_version >= 1400058 ++DRIVER_MODULE(vboxvideo, vgapci, vboxvideo_driver, 0, 0); ++#else + extern devclass_t drm_devclass; + #if __FreeBSD_version >= 700010 + DRIVER_MODULE(vboxvideo, vgapci, vboxvideo_driver, drm_devclass, 0, 0); + #else + DRIVER_MODULE(vboxvideo, pci, vboxvideo_driver, drm_devclass, 0, 0); ++#endif + #endif + MODULE_DEPEND(vboxvideo, drm, 1, 1, 1); diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk new file mode 100644 index 000000000000..270472c045e3 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_Makefile.kmk @@ -0,0 +1,31 @@ +--- src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk.orig 2025-05-11 03:54:13 UTC ++++ src/VBox/Additions/freebsd/mount_vboxvfs/Makefile.kmk +@@ -0,0 +1,28 @@ ++# $Id: Makefile.kmk $ ++## @file ++# Sub-Makefile for the FreeBSD Shared folder mount utility. ++# ++ ++SUB_DEPTH = ../../../../.. ++include $(KBUILD_PATH)/subheader.kmk ++ ++ifneq ($(KBUILD_HOST),freebsd) ++$(error "The FreeBSD guest additions can only be built on FreeBSD!") ++endif ++ ++MOUNT= $(VBOX_FREEBSD_SRC)/../sbin/mount ++ ++CFLAGS+=-I$(MOUNT) ++ ++PROGRAMS += mount_vboxvfs ++mount_vboxvfs_TEMPLATE = NewVBoxGuestR3Exe ++mount_vboxvfs_SOURCES = mount_vboxvfs.c ++ ++ifdef HAVE_MNTOPTS_IN_LIBUTIL ++mount_vboxvfs_LIBS = util ++else ++mount_vboxvfs_SOURCES += $(MOUNT)/getmntopts.c ++endif ++ ++include $(FILE_KBUILD_SUB_FOOTER) ++ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.8 b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.8 new file mode 100644 index 000000000000..88460e155de3 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.8 @@ -0,0 +1,56 @@ +--- src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.8.orig 1970-01-01 01:00:00.000000000 +0100 ++++ src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.8 2017-07-12 19:24:26.106029000 +0200 +@@ -0,0 +1,53 @@ ++.\" ++.\" Copyright (c) 1992, 1993, 1994 ++.\" The Regents of the University of California. All rights reserved. ++.\" ++.\" Redistribution and use in source and binary forms, with or without ++.\" modification, are permitted provided that the following conditions ++.\" are met: ++.\" 1. Redistributions of source code must retain the above copyright ++.\" notice, this list of conditions and the following disclaimer. ++.\" 2. Redistributions in binary form must reproduce the above copyright ++.\" notice, this list of conditions and the following disclaimer in the ++.\" documentation and/or other materials provided with the distribution. ++.\" 4. Neither the name of the University nor the names of its contributors ++.\" may be used to endorse or promote products derived from this software ++.\" without specific prior written permission. ++.\" ++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++.\" SUCH DAMAGE. ++.\" ++.Dd August 5, 2013 ++.Dt MOUNT_VBOXFS 8 ++.Os ++.Sh NAME ++.Nm mount_vboxfs ++.Nd "Mount the VirtualBox shared folder NAME from the host system to MOUNTPOINT" ++.Sh SYNOPSIS ++.Nm ++.Op Fl o Ar options ++.Ar NAME ++.Ar MOUNTPOINT ++.Sh DESCRIPTION ++The ++.Nm ++Mount the VirtualBox shared folder NAME from the host system to MOUNTPOINT ++.Pp ++The options are as follows: ++.Bl -tag -width indent ++.Fl w ++mount the shared folder writably (the default) ++.Fl r ++mount the shared folder read-only ++.Fl o ++OPTION[,OPTION...] use the mount options specified ++.El diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c new file mode 100644 index 000000000000..7dd7e6271e03 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_mount__vboxvfs_mount__vboxvfs.c @@ -0,0 +1,171 @@ +--- src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ src/VBox/Additions/freebsd/mount_vboxvfs/mount_vboxvfs.c 2017-07-12 19:24:26.106029000 +0200 +@@ -0,0 +1,168 @@ ++/* ++* Copyright (c) 1992, 1993, 1994 ++* The Regents of the University of California. All rights reserved. ++* ++* Redistribution and use in source and binary forms, with or without ++* modification, are permitted provided that the following conditions ++* are met: ++* 1. Redistributions of source code must retain the above copyright ++* notice, this list of conditions and the following disclaimer. ++* 2. Redistributions in binary form must reproduce the above copyright ++* notice, this list of conditions and the following disclaimer in the ++* documentation and/or other materials provided with the distribution. ++* 4. Neither the name of the University nor the names of its contributors ++* may be used to endorse or promote products derived from this software ++* without specific prior written permission. ++* ++* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++* SUCH DAMAGE. ++*/ ++ ++#include <sys/cdio.h> ++#include <sys/stat.h> ++#include <sys/file.h> ++#include <sys/iconv.h> ++#include <sys/param.h> ++#include <sys/linker.h> ++#include <sys/module.h> ++#include <sys/mount.h> ++#include <sys/uio.h> ++ ++#include <err.h> ++#include <errno.h> ++#include <stdlib.h> ++#include <stdio.h> ++#include <string.h> ++#include <sysexits.h> ++#include <unistd.h> ++ ++#include "mntopts.h" ++ ++#define MAX_HOST_NAME 256 ++static char mount_point[MAXPATHLEN + 1]; ++static char vboxfs_vfsname[] = "vboxvfs"; ++static struct mntopt mopts[] = { ++ MOPT_STDOPTS, ++ MOPT_END ++}; ++ ++static void usage(void) __dead2; ++ ++static void ++usage(void) ++{ ++ fprintf(stderr, ++ "Usage: [OPTIONS] NAME MOUNTPOINT\n" ++ "Mount the VirtualBox shared folder NAME to MOUNTPOINT.\n" ++ "\nOptions:\n" ++ " -w mount the shared folder writable \n" ++ " -r mount the shared folder read-only (the default)\n"); ++ exit(1); ++} ++ ++int ++main(int argc, char *argv[]) ++{ ++ struct iovec *iov; ++ struct stat st; ++ char *host_name; ++ char errmsg[255]; ++ uid_t uid; ++ gid_t gid; ++ mode_t dir_mode, file_mode; ++ int iovlen; ++ int ronly = 0; ++ int error, ch; ++ int mntflags = 0; ++ ++ iov = NULL; ++ iovlen = 0; ++ errmsg[0] = '\0'; ++ uid = (uid_t)-1; ++ gid = (gid_t)-1; ++ file_mode = 0; ++ dir_mode = 0; ++ ++ while ((ch = getopt(argc, argv, "rwo:h")) != -1) ++ switch(ch) { ++ default: ++ fprintf(stderr, "unknown option `%c:%#x'\n", ch, ch); ++ return (1); ++ ++ case '?': ++ case 'h': ++ usage(); ++ case 'r': ++ ronly = 1; ++ break; ++ case 'w': ++ ronly = 0; ++ break; ++ case 'o': ++ getmntopts(optarg, mopts, &mntflags, 0); ++ break; ++ } ++ ++ if (argc - optind < 2) ++ usage(); ++ ++ host_name = argv[optind]; ++ realpath(argv[optind+1], mount_point); ++ ++ if (stat(mount_point, &st) == -1) ++ err(EX_OSERR, "could not find mount point %s", mount_point); ++ ++ if (!S_ISDIR(st.st_mode)) { ++ errno = ENOTDIR; ++ err(EX_OSERR, "can't mount on %s", mount_point); ++ } ++ ++ if (strlen(host_name) > MAX_HOST_NAME - 1) ++ err(EX_OSERR, "host name is too big %s", host_name); ++ ++ if (ronly == 0) ++ mntflags |= MNT_ASYNC; ++ if (uid == (uid_t)-1) ++ uid = st.st_uid; ++ if (gid == (gid_t)-1) ++ gid = st.st_gid; ++ if (file_mode == 0) ++ file_mode = st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO); ++ if (dir_mode == 0) { ++ dir_mode = file_mode; ++ if (dir_mode & S_IRUSR) ++ dir_mode |= S_IXUSR; ++ if (dir_mode & S_IRGRP) ++ dir_mode |= S_IXGRP; ++ if (dir_mode & S_IROTH) ++ dir_mode |= S_IXOTH; ++ } ++ ++ build_iovec(&iov, &iovlen, "fstype", vboxfs_vfsname, (size_t)-1); ++ build_iovec(&iov, &iovlen, "fspath", mount_point, (size_t)-1); ++ build_iovec(&iov, &iovlen, "from", host_name, (size_t)-1); ++ build_iovec_argf(&iov, &iovlen, "uid", "%d", uid); ++ build_iovec_argf(&iov, &iovlen, "gid", "%d", gid); ++ build_iovec_argf(&iov, &iovlen, "file_mode", "%o", file_mode); ++ build_iovec_argf(&iov, &iovlen, "dir_mode", "%o", dir_mode); ++ build_iovec(&iov, &iovlen, "errmsg", errmsg, sizeof(errmsg)); ++ ++ error = nmount(iov, iovlen, mntflags); ++ if (error == -1) { ++ if (errmsg[0] != '\0') ++ err(1, "%s: error: %s", mount_point, errmsg); ++ else ++ err(1, "%s: error %d", mount_point, error); ++ } ++ ++ return (0); ++} diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c new file mode 100644 index 000000000000..fb4d7fac8c06 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_bcmp.c @@ -0,0 +1,12 @@ +--- src/VBox/Additions/freebsd/vboxvfs/bcmp.c.orig 2021-02-21 19:09:22 UTC ++++ src/VBox/Additions/freebsd/vboxvfs/bcmp.c +@@ -0,0 +1,9 @@ ++#include <sys/types.h> ++ ++int bcmp(const void *b1, const void *b2, size_t len); ++ ++int ++bcmp(const void *b1, const void *b2, size_t len) ++{ ++ return __builtin_memcmp((b1), (b2), (len)); ++} diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h new file mode 100644 index 000000000000..858e894c7b6b --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h @@ -0,0 +1,428 @@ +--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs.h.orig 2021-01-07 15:34:22 UTC ++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs.h +@@ -1,8 +1,3 @@ +-/* $Id: vboxvfs.h $ */ +-/** @file +- * Description. +- */ +- + /* + * Copyright (C) 2010-2020 Oracle Corporation + * +@@ -24,72 +19,378 @@ + #define VBOXVFS_VFSNAME "vboxvfs" + #define VBOXVFS_VERSION 1 + +-#define MAX_HOST_NAME 256 +-#define MAX_NLS_NAME 32 ++#define MAX_HOST_NAME 256 ++#define MAX_NLS_NAME 32 ++//#define MODEMASK 07777 /* mode bits plus permission bits */ ++/** Helper macros */ ++#define VFSTOVBOXFS(mp) ((struct vboxfs_mnt *)((mp)->mnt_data)) ++#define VP_TO_VBOXFS_NODE(vp) ((struct vboxfs_node *)(vp)->v_data) ++#define VBOXTOV(np) ((struct vnode *)(np)->n_vnode) + +-struct vboxvfs_mount_info { +- char name[MAX_HOST_NAME]; +- char nls_name[MAX_NLS_NAME]; +- int uid; +- int gid; +- int ttl; +-}; ++#define ROOTDIR_INO 1 ++#define THEFILE_INO 2 ++#define THEFILE_NAME "thefile" + ++#define VBOXFS_NODE_LOCK(node) mtx_lock(&(node)->sf_interlock) ++#define VBOXFS_NODE_UNLOCK(node) mtx_unlock(&(node)->sf_interlock) ++#define VBOXFS_NODE_MTX(node) (&(node)->sf_interlock) ++#define VBOXFS_NODE_ASSERT_LOCKED(node) mtx_assert(VBOXFS_NODE_MTX(node), \ ++ MA_OWNED) ++ ++#ifdef INVARIANTS ++#define VBOXFS_ASSERT_LOCKED(node) do { \ ++ MPASS(node != NULL); \ ++ MPASS(node->sf_vnode != NULL); \ ++ if (!VOP_ISLOCKED(node->sf_vnode) && \ ++ !mtx_owned(VBOXFS_NODE_MTX(node))) \ ++ panic("vboxfs: node is not locked: %p", node); \ ++ } while (0) ++#define VBOXFS_ASSERT_ELOCKED(node) do { \ ++ MPASS((node) != NULL); \ ++ MPASS((node)->sf_vnode != NULL); \ ++ mtx_assert(VBOXFS_NODE_MTX(node), MA_OWNED); \ ++ ASSERT_VOP_LOCKED((node)->sf_vnode, "vboxfs"); \ ++ } while (0) ++#else ++#define VBOXFS_ASSERT_LOCKED(node) (void)0 ++#define VBOXFS_ASSERT_ELOCKED(node) (void)0 ++#endif ++ ++#define VBOXFS_VNODE_ALLOCATING 1 ++#define VBOXFS_VNODE_WANT 2 ++#define VBOXFS_VNODE_DOOMED 4 ++#define VBOXFS_VNODE_WRECLAIM 8 ++ ++MALLOC_DECLARE(M_VBOXVFS); ++ + #ifdef _KERNEL ++#ifndef FREEBSD_STYLE ++#include "../../../../../include/iprt/nocrt/limits.h" ++#include "../../../../../include/iprt/alloc.h" ++#include "../../../../../include/iprt/asm.h" ++#include "../../../../../include/iprt/asm-amd64-x86.h" ++#include "../../../../../include/iprt/asm-math.h" ++#include "../../../../../include/iprt/assert.h" ++#include "../../../../../include/iprt/cdefs.h" ++#include "../../../../../include/iprt/err.h" ++#include "../../../../../include/iprt/fs.h" ++#include "../../../../../include/iprt/log.h" ++#include "../../../../../include/iprt/mem.h" ++#include "../../../../../include/iprt/param.h" ++#include "../../../../../include/iprt/path.h" ++#include "../../../../../include/iprt/semaphore.h" ++#include "../../../../../include/iprt/stdarg.h" ++#include "../../../../../include/iprt/stdint.h" ++#include "../../../../../include/iprt/string.h" ++#include "../../../../../include/iprt/time.h" ++#include "../../../../../include/iprt/types.h" ++#include "../../../../../include/iprt/uni.h" + +-#include <VBox/VBoxGuestLibSharedFolders.h> ++#else ++ ++#include "iprt/nocrt/limits.h" ++#include "iprt/alloc.h" ++#include "iprt/asm.h" ++#include "iprt/asm-amd64-x86.h" ++#include "iprt/asm-math.h" ++#include "iprt/assert.h" ++#include "iprt/cdefs.h" ++#include "iprt/err.h" ++#include "iprt/fs.h" ++#include "iprt/log.h" ++#include "iprt/mem.h" ++#include "iprt/param.h" ++#include "iprt/path.h" ++#include "iprt/semaphore.h" ++#include "iprt/stdarg.h" ++#include "iprt/stdint.h" ++#include "iprt/string.h" ++#include "iprt/time.h" ++#include "iprt/types.h" ++#include "iprt/uni.h" ++ ++#include "common/VBoxGuestLib/SysHlp.h" ++ ++#endif /* !FREEBSD_STYLE */ ++ + #include <sys/mount.h> + #include <sys/vnode.h> ++#include <sys/_timespec.h> + +-struct vboxvfsmount { +- uid_t uid; +- gid_t gid; +- mode_t file_mode; +- mode_t dir_mode; +- struct mount *mp; +- struct ucred *owner; +- u_int flags; +- long nextino; +- int caseopt; +- int didrele; ++#include <VBox/VBoxGuestLibSharedFolders.h> ++ ++#if __FreeBSD_version >= 1400093 ++typedef __enum_uint8(vtype) enum_vtype_t; ++#else ++typedef enum vtype enum_vtype_t; ++#endif ++ ++#define VBOXVFS_DEBUG(lvl, ...) do { \ ++ if (vboxvfs_debug >= (lvl)) { \ ++ printf("VBOXVFS[%u]: ", lvl); \ ++ printf(__VA_ARGS__); \ ++ printf("\n"); \ ++ } \ ++} while (0) ++ ++/* ++ * representation of an active mount point ++ */ ++struct sfp_mount { ++ VBGLSFMAP map; + }; + +-/* structs - stolen from the linux shared module code */ ++/* ++ * Mount / Unmount a shared folder. ++ * ++ * sfprov_mount() takes as input the connection pointer and the name of ++ * the shared folder. On success, it returns zero and supplies an ++ * sfp_mount_t handle. On failure it returns any relevant errno value. ++ * ++ * sfprov_unmount() unmounts the mounted file system. It returns 0 on ++ * success and any relevant errno on failure. ++ */ ++typedef struct sfp_mount sfp_mount_t; ++ ++struct sfp_file { ++ SHFLHANDLE handle; ++ VBGLSFMAP map; /* need this again for the close operation */ ++}; ++ ++typedef struct sfp_file sfp_file_t; ++ ++/* ++ * File operations: open/close/read/write/etc. ++ * ++ * open/create can return any relevant errno, however ENOENT ++ * generally means that the host file didn't exist. ++ */ ++typedef struct sffs_stat { ++ mode_t sf_mode; ++ off_t sf_size; ++ off_t sf_alloc; ++ struct timespec sf_atime; ++ struct timespec sf_mtime; ++ struct timespec sf_ctime; ++} sffs_stat_t; ++ ++/* ++ * Read directory entries. ++ */ ++/* ++ * a singly linked list of buffers, each containing an array of stat's+dirent's. ++ * sf_len is length of the sf_entries array, in bytes. ++ */ ++typedef struct sffs_dirents { ++ struct sffs_dirents *sf_next; ++ long long sf_len; ++ struct sffs_dirent { ++ sffs_stat_t sf_stat; ++ struct dirent sf_entry; /* this is variable length */ ++ off_t sf_off; ++ } sf_entries[1]; ++} sffs_dirents_t; ++ ++/* ++ * Shared Folders filesystem per-mount data structure. ++ */ ++struct vboxfs_mnt { ++ struct mount *sf_vfsp; /* filesystem's vfs struct */ ++ sfp_mount_t *sf_handle; /* guest-host communication handle */ ++ uid_t sf_uid; /* owner of all shared folders */ ++ gid_t sf_gid; /* group of all shared folders */ ++ mode_t sf_dmode; /* mode of all directories */ ++ mode_t sf_fmode; /* mode of all files */ ++ mode_t sf_dmask; /* mask of all directories */ ++ mode_t sf_fmask; /* mask of all files */ ++ int sf_stat_ttl; /* ttl for stat caches (in ms) */ ++ int sf_fsync; /* whether to honor fsync or not */ ++ uint64_t sf_ino; /* per FS ino generator */ ++ uma_zone_t sf_node_pool; ++ struct vboxfs_node *sf_root; ++}; ++ ++/* ++ * vboxfs_node is the file system dependent vnode data for vboxfs. ++ * vboxfs_node's also track all files ever accessed, both open and closed. ++ * It duplicates some of the information in vnode, since it holds ++ * information for files that may have been completely closed. ++ * ++ */ ++struct vboxfs_node { ++ struct vboxfs_mnt *vboxfsmp; /* containing mounted file system */ ++ char *sf_path; /* full pathname to file or dir */ ++ uint64_t sf_ino; /* assigned unique ID number */ ++ struct vnode *sf_vnode; /* vnode if active */ ++ sfp_file_t *sf_file; /* non NULL if open */ ++ struct vboxfs_node *sf_parent; /* parent sfnode of this one */ ++ uint32_t sf_opencnt; /* sf_file reference counter */ ++ uint16_t sf_children; /* number of children sfnodes */ ++ uint8_t sf_type; /* VDIR or VREG */ ++ uint8_t sf_vpstate; /* XXX: ADD COMMENT */ ++ uint8_t sf_is_stale; /* this is stale and should be purged */ ++ sffs_stat_t sf_stat; /* cached file attrs for this node */ ++ uint64_t sf_stat_time; /* last-modified time of sf_stat */ ++ sffs_dirents_t *sf_dir_list; /* list of entries for this directory */ ++ ++ /* interlock to protect sf_vpstate, sf_file and sf_opencnt */ ++ struct mtx sf_interlock; ++}; ++ ++struct vboxfs_mount_info { ++ char name[MAX_HOST_NAME]; /* share name */ ++ char nls_name[MAX_NLS_NAME];/* name of an I/O charset */ ++ int uid; /* user ID for all entries, default 0=root */ ++ int gid; /* group ID for all entries, default 0=root */ ++ int ttl; /* time to live */ ++ int dmode; /* mode for directories if != 0xffffffff */ ++ int fmode; /* mode for regular files if != 0xffffffff */ ++ int dmask; /* umask applied to directories */ ++ int fmask; /* umask applied to regular files */ ++}; ++ + struct sf_glob_info { +- VBGLSFMAP map; +-/* struct nls_table *nls;*/ +- int ttl; +- int uid; +- int gid; +- struct vnode *vnode_root; ++ VBGLSFMAP map; ++/* struct nls_table *nls;*/ ++ int ttl; ++ int uid; ++ int gid; ++ struct vnode *vnode_root; + }; + ++/** Per-file system mount instance data. */ ++typedef struct vboxfs_globinfo ++{ ++ VBGLSFMAP Map; ++ int Ttl; ++ int Uid; ++ int Gid; ++ struct mount *pVFS; ++ struct vboxfs_node *pVNodeRoot; ++} vboxfs_globinfo_t; ++ + struct sf_inode_info { +- SHFLSTRING *path; +- int force_restat; ++ SHFLSTRING *path; ++ int force_restat; + }; + + #if 0 + struct sf_dir_info { +- struct list_head info_list; ++ struct list_head info_list; + }; + #endif + + struct sf_dir_buf { +- size_t nb_entries; +- size_t free_bytes; +- size_t used_bytes; +- void *buf; ++ size_t nb_entries; ++ size_t free_bytes; ++ size_t used_bytes; ++ void *buf; + #if 0 +- struct list_head head; ++ struct list_head head; + #endif + }; + + struct sf_reg_info { +- SHFLHANDLE handle; ++ SHFLHANDLE handle; + }; + ++int vboxfs_alloc_vp(struct mount *, struct vboxfs_node *, int, ++ struct vnode **); ++void vboxfs_free_vp(struct vnode *); ++ ++int vboxfs_alloc_node(struct mount *, struct vboxfs_mnt *, const char*, ++ enum_vtype_t, uid_t, gid_t, mode_t, struct vboxfs_node *, ++ struct vboxfs_node **); ++void vboxfs_free_node(struct vboxfs_mnt *, struct vboxfs_node *); ++ ++/* ++ * These are the provider interfaces used by sffs to access the underlying ++ * shared file system. ++ */ ++#define SFPROV_VERSION 1 ++ ++/* ++ * Initialization and termination. ++ * sfprov_connect() is called once before any other interfaces and returns ++ * a handle used in further calls. The argument should be SFPROV_VERSION ++ * from above. On failure it returns a NULL pointer. ++ * ++ * sfprov_disconnect() must only be called after all sf file systems have been ++ * unmounted. ++ */ ++typedef struct sfp_connection sfp_connection_t; ++ ++extern sfp_connection_t *sfprov_connect(int); ++extern void sfprov_disconnect(void); ++ ++extern int sfprov_mount(char *, sfp_mount_t **); ++extern int sfprov_unmount(sfp_mount_t *); ++ ++/* ++ * query information about a mounted file system ++ */ ++typedef struct sffs_fsinfo { ++ uint64_t blksize; ++ uint64_t blksused; ++ uint64_t blksavail; ++ uint32_t maxnamesize; ++ uint32_t readonly; ++ uint32_t serial; ++} sffs_fsinfo_t; ++ ++extern int sfprov_get_fsinfo(sfp_mount_t *, sffs_fsinfo_t *); ++ ++extern int sfprov_create(sfp_mount_t *, char *path, mode_t mode, ++ sffs_stat_t *stat); ++extern int sfprov_open(sfp_mount_t *, char *path, sfp_file_t **fp); ++extern int sfprov_close(sfp_file_t *fp); ++extern int sfprov_read(sfp_file_t *, char * buffer, uint64_t offset, ++ uint32_t *numbytes, int buflocked); ++extern int sfprov_write(sfp_file_t *, char * buffer, uint64_t offset, ++ uint32_t *numbytes, int buflocked); ++extern int sfprov_fsync(sfp_file_t *fp); ++ ++ ++/* ++ * get/set information about a file (or directory) using pathname ++ */ ++extern int sfprov_get_mode(sfp_mount_t *, char *, mode_t *); ++extern int sfprov_get_size(sfp_mount_t *, char *, uint64_t *); ++extern int sfprov_get_atime(sfp_mount_t *, char *, struct timespec *); ++extern int sfprov_get_mtime(sfp_mount_t *, char *, struct timespec *); ++extern int sfprov_get_ctime(sfp_mount_t *, char *, struct timespec *); ++extern int sfprov_get_attr(sfp_mount_t *, char *, sffs_stat_t *); ++extern int sfprov_set_attr(sfp_mount_t *, char *, mode_t, ++ struct timespec, struct timespec, struct timespec); ++extern int sfprov_set_size(sfp_mount_t *, char *, uint64_t); ++ ++ ++/* ++ * File/Directory operations ++ */ ++extern int sfprov_trunc(sfp_mount_t *, char *); ++extern int sfprov_remove(sfp_mount_t *, char *path, u_int is_link); ++extern int sfprov_mkdir(sfp_mount_t *, char *path, mode_t mode, ++ sffs_stat_t *stat); ++extern int sfprov_rmdir(sfp_mount_t *, char *path); ++extern int sfprov_rename(sfp_mount_t *, char *from, char *to, u_int is_dir); ++ ++ ++/* ++ * Symbolic link operations ++ */ ++extern int sfprov_set_show_symlinks(void); ++extern int sfprov_readlink(sfp_mount_t *, char *path, char *target, ++ size_t tgt_size); ++extern int sfprov_symlink(sfp_mount_t *, char *linkname, char *target, ++ sffs_stat_t *stat); ++ ++#define SFFS_DIRENTS_SIZE 8192 ++#define SFFS_DIRENTS_OFF (offsetof(sffs_dirents_t, sf_entries[0])) ++ ++extern int sfprov_readdir(sfp_mount_t *mnt, char *path, ++ sffs_dirents_t **dirents); ++ + #endif /* KERNEL */ + + #endif /* !GA_INCLUDED_SRC_freebsd_vboxvfs_vboxvfs_h */ +- diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c new file mode 100644 index 000000000000..e606c4f1de6f --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c @@ -0,0 +1,1015 @@ +--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_prov.c.orig 2024-08-15 13:18:37.777504000 +0900 ++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_prov.c 2024-08-15 13:18:37.777446000 +0900 +@@ -0,0 +1,1012 @@ ++/* ++ * Copyright (C) 2008-2016 Oracle Corporation ++ * ++ * This file is part of VirtualBox Open Source Edition (OSE), as ++ * available from http://www.virtualbox.org. This file is free software; ++ * you can redistribute it and/or modify it under the terms of the GNU ++ * General Public License (GPL) as published by the Free Software ++ * Foundation, in version 2 as it comes in the "COPYING" file of the ++ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the ++ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. ++ * ++ * The contents of this file may alternatively be used under the terms ++ * of the Common Development and Distribution License Version 1.0 ++ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the ++ * VirtualBox OSE distribution, in which case the provisions of the ++ * CDDL are applicable instead of those of the GPL. ++ * ++ * You may elect to license modified versions of this file under the ++ * terms and conditions of either the GPL or the CDDL or both. ++ */ ++ ++/* ++ * Provider interfaces for shared folder file system. ++ */ ++ ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <sys/param.h> ++#include <sys/systm.h> ++#include <sys/kernel.h> ++#include <sys/malloc.h> ++#include <sys/mount.h> ++#include <sys/vnode.h> ++#include <sys/dirent.h> ++#include <sys/proc.h> ++#include <vm/vm.h> ++#include <vm/pmap.h> ++#include <vm/vm_kern.h> ++#include <vm/vm_map.h> ++#include <vm/vm_object.h> ++#include <vm/vm_extern.h> ++#include <vm/uma.h> ++#include "vboxvfs.h" ++ ++#define DIRENT_RECLEN(namelen) \ ++ ((offsetof(struct dirent, d_name[0]) + 1 + (namelen) + 7) & ~ 7) ++#define DIRENT_NAMELEN(reclen) \ ++ ((reclen) - (offsetof(struct dirent, d_name[0]))) ++ ++static VBGLSFCLIENT vbox_client; ++ ++extern u_int vboxvfs_debug; ++ ++static int ++sfprov_vbox2errno(int rc) ++{ ++ if (rc == VERR_ACCESS_DENIED) ++ return (EACCES); ++ if (rc == VERR_INVALID_NAME) ++ return (ENOENT); ++ return (RTErrConvertToErrno(rc)); ++} ++ ++/* ++ * utility to create strings ++ */ ++static SHFLSTRING * ++sfprov_string(char *path, int *sz) ++{ ++ SHFLSTRING *str; ++ int len = strlen(path); ++ ++ *sz = len + 1 + sizeof (*str) - sizeof (str->String); ++ str = malloc(*sz, M_VBOXVFS, M_WAITOK | M_ZERO); ++ str->u16Size = len + 1; ++ str->u16Length = len; ++ strcpy(str->String.utf8, path); ++ return (str); ++} ++ ++sfp_connection_t * ++sfprov_connect(int version) ++{ ++ /* only one version for now, so must match */ ++ int error = -1; ++ ++ if (version != SFPROV_VERSION) { ++ printf("%s: version mismatch (%d, expected %d)\n", __func__, ++ version, SFPROV_VERSION); ++ return (NULL); ++ } ++ ++ if (RT_FAILURE(VbglR0SfInit())) ++ return (NULL); ++ ++ if (RT_FAILURE(VbglR0SfConnect(&vbox_client))) { ++ VbglR0SfTerm(); ++ return (NULL); ++ } ++ ++ if (RT_FAILURE(VbglR0SfSetUtf8(&vbox_client))) { ++ VbglR0SfDisconnect(&vbox_client); ++ VbglR0SfTerm(); ++ return (NULL); ++ } ++ return ((sfp_connection_t *)&vbox_client); ++} ++ ++void ++sfprov_disconnect() ++{ ++ VbglR0SfDisconnect(&vbox_client); ++ VbglR0SfTerm(); ++} ++ ++int ++sfprov_mount(char *path, sfp_mount_t **mnt) ++{ ++ sfp_mount_t *m; ++ SHFLSTRING *str; ++ int size; ++ int rc; ++ ++ VBOXVFS_DEBUG(1, "%s: Enter", __FUNCTION__); ++ VBOXVFS_DEBUG(1, "%s: path: [%s]", __FUNCTION__, path); ++ ++ m = malloc(sizeof (*m), M_VBOXVFS, M_WAITOK | M_ZERO); ++ str = sfprov_string(path, &size); ++ ++ int error; ++ rc = VbglR0SfMapFolder(&vbox_client, str, &m->map); ++ if (RT_FAILURE(rc)) { ++ free(m, M_VBOXVFS); ++ *mnt = NULL; ++ error = sfprov_vbox2errno(rc); ++ } else { ++ *mnt = m; ++ error = 0; ++ } ++ free(str, M_VBOXVFS); ++ printf("%s(%s): error=%d rc=%d\n", __func__, path, error, rc); ++ return (error); ++} ++ ++int ++sfprov_unmount(sfp_mount_t *mnt) ++{ ++ int rc; ++ ++ rc = VbglR0SfUnmapFolder(&vbox_client, &mnt->map); ++ if (RT_FAILURE(rc)) { ++ printf("sfprov_unmount: VbglR0SfUnmapFolder() failed rc=%d\n", rc); ++ rc = sfprov_vbox2errno(rc); ++ } else { ++ rc = 0; ++ } ++ ++ free(mnt, M_VBOXVFS); ++ return (rc); ++} ++ ++/* ++ * query information about a mounted file system ++ */ ++int ++sfprov_get_fsinfo(sfp_mount_t *mnt, sffs_fsinfo_t *fsinfo) ++{ ++ int rc; ++ SHFLVOLINFO info; ++ uint32_t bytes = sizeof(SHFLVOLINFO); ++ size_t bytesused; ++ ++ rc = VbglR0SfFsInfo(&vbox_client, &mnt->map, 0, ++ (SHFL_INFO_GET | SHFL_INFO_VOLUME), &bytes, (SHFLDIRINFO *)&info); ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ ++ fsinfo->blksize = info.ulBytesPerAllocationUnit; ++ bytesused = ++ info.ullTotalAllocationBytes - info.ullAvailableAllocationBytes; ++ fsinfo->blksused = bytesused / info.ulBytesPerAllocationUnit; ++ fsinfo->blksavail = info.ullAvailableAllocationBytes / ++ info.ulBytesPerAllocationUnit; ++ fsinfo->maxnamesize = info.fsProperties.cbMaxComponent; ++ fsinfo->readonly = info.fsProperties.fReadOnly; ++ fsinfo->serial = info.ulSerial; ++ return (0); ++} ++ ++/* ++ * file/directory information conversions. ++ */ ++static void ++sfprov_fmode_from_mode(RTFMODE *fMode, mode_t mode) ++{ ++ RTFMODE m = 0; ++ ++#define mode_set(r) ((mode & (S_##r)) ? RTFS_UNIX_##r : 0) ++ m = mode_set (ISUID); ++ m |= mode_set (ISGID); ++ m |= (mode & S_ISVTX) ? RTFS_UNIX_ISTXT : 0; ++ m |= mode_set (IRUSR); ++ m |= mode_set (IWUSR); ++ m |= mode_set (IXUSR); ++ m |= mode_set (IRGRP); ++ m |= mode_set (IWGRP); ++ m |= mode_set (IXGRP); ++ m |= mode_set (IROTH); ++ m |= mode_set (IWOTH); ++ m |= mode_set (IXOTH); ++ ++ if (S_ISDIR(mode)) ++ m |= RTFS_TYPE_DIRECTORY; ++ else if (S_ISREG(mode)) ++ m |= RTFS_TYPE_FILE; ++ else if (S_ISFIFO(mode)) ++ m |= RTFS_TYPE_FIFO; ++ else if (S_ISCHR(mode)) ++ m |= RTFS_TYPE_DEV_CHAR; ++ else if (S_ISBLK(mode)) ++ m |= RTFS_TYPE_DEV_BLOCK; ++ else if (S_ISLNK(mode)) ++ m |= RTFS_TYPE_SYMLINK; ++ else if (S_ISSOCK(mode)) ++ m |= RTFS_TYPE_SOCKET; ++ else ++ m |= RTFS_TYPE_FILE; ++ ++ *fMode = m; ++} ++ ++static void ++sfprov_mode_from_fmode(mode_t *mode, RTFMODE fMode) ++{ ++ mode_t m = 0; ++ ++ if (RTFS_IS_DIRECTORY(fMode)) ++ m |= S_IFDIR; ++ else if (RTFS_IS_FILE(fMode)) ++ m |= S_IFREG; ++ else if (RTFS_IS_FIFO(fMode)) ++ m |= S_IFIFO; ++ else if (RTFS_IS_DEV_CHAR(fMode)) ++ m |= S_IFCHR; ++ else if (RTFS_IS_DEV_BLOCK(fMode)) ++ m |= S_IFBLK; ++ else if (RTFS_IS_SYMLINK(fMode)) ++ m |= S_IFLNK; ++ else if (RTFS_IS_SOCKET(fMode)) ++ m |= S_IFSOCK; ++ ++ if (fMode & RTFS_UNIX_IRUSR) ++ m |= S_IRUSR; ++ if (fMode & RTFS_UNIX_IWUSR) ++ m |= S_IWUSR; ++ if (fMode & RTFS_UNIX_IXUSR) ++ m |= S_IXUSR; ++ if (fMode & RTFS_UNIX_IRGRP) ++ m |= S_IRGRP; ++ if (fMode & RTFS_UNIX_IWGRP) ++ m |= S_IWGRP; ++ if (fMode & RTFS_UNIX_IXGRP) ++ m |= S_IXGRP; ++ if (fMode & RTFS_UNIX_IROTH) ++ m |= S_IROTH; ++ if (fMode & RTFS_UNIX_IWOTH) ++ m |= S_IWOTH; ++ if (fMode & RTFS_UNIX_IXOTH) ++ m |= S_IXOTH; ++ if (fMode & RTFS_UNIX_ISUID) ++ m |= S_ISUID; ++ if (fMode & RTFS_UNIX_ISGID) ++ m |= S_ISGID; ++ if (fMode & RTFS_UNIX_ISTXT) ++ m |= S_ISVTX; ++ *mode = m; ++} ++ ++static void ++sfprov_ftime_from_timespec(struct timespec *time, RTTIMESPEC *ts) ++{ ++ uint64_t nanosec = RTTimeSpecGetNano(ts); ++ time->tv_sec = nanosec / UINT64_C(1000000000); ++ time->tv_nsec = nanosec % UINT64_C(1000000000); ++} ++ ++static void ++sfprov_stat_from_info(sffs_stat_t *stat, SHFLFSOBJINFO *info) ++{ ++ sfprov_mode_from_fmode(&stat->sf_mode, info->Attr.fMode); ++ stat->sf_size = info->cbObject; ++ stat->sf_alloc = info->cbAllocated; ++ sfprov_ftime_from_timespec(&stat->sf_atime, &info->AccessTime); ++ sfprov_ftime_from_timespec(&stat->sf_mtime, &info->ModificationTime); ++ sfprov_ftime_from_timespec(&stat->sf_ctime, &info->ChangeTime); ++} ++ ++/* ++ * File operations: open/close/read/write/etc. ++ * ++ * open/create can return any relevant errno, however ENOENT ++ * generally means that the host file didn't exist. ++ */ ++int ++sfprov_create( ++ sfp_mount_t *mnt, ++ char *path, ++ mode_t mode, ++ sffs_stat_t *stat) ++{ ++ int rc; ++ SHFLCREATEPARMS parms; ++ SHFLSTRING *str; ++ int size; ++ sfp_file_t *newfp; ++ ++ str = sfprov_string(path, &size); ++ parms.Handle = SHFL_HANDLE_NIL; ++ parms.Info.cbObject = 0; ++ sfprov_fmode_from_mode(&parms.Info.Attr.fMode, mode); ++ parms.CreateFlags = SHFL_CF_ACT_CREATE_IF_NEW | ++ SHFL_CF_ACT_REPLACE_IF_EXISTS | SHFL_CF_ACCESS_READWRITE; ++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms); ++ free(str, M_VBOXVFS); ++ ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ if (parms.Handle == SHFL_HANDLE_NIL) { ++ if (parms.Result == SHFL_FILE_EXISTS) ++ return (EEXIST); ++ return (ENOENT); ++ } ++ (void)VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle); ++ sfprov_stat_from_info(stat, &parms.Info); ++ return (0); ++} ++ ++int ++sfprov_open(sfp_mount_t *mnt, char *path, sfp_file_t **fp) ++{ ++ int rc; ++ SHFLCREATEPARMS parms; ++ SHFLSTRING *str; ++ int size; ++ sfp_file_t *newfp; ++ ++ /* ++ * First we attempt to open it read/write. If that fails we ++ * try read only. ++ */ ++ bzero(&parms, sizeof(parms)); ++ str = sfprov_string(path, &size); ++ parms.Handle = SHFL_HANDLE_NIL; ++ parms.Info.cbObject = 0; ++ parms.CreateFlags = SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READWRITE; ++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms); ++ if (RT_FAILURE(rc) && rc != VERR_ACCESS_DENIED) { ++ free(str, M_VBOXVFS); ++ return (sfprov_vbox2errno(rc)); ++ } ++ if (parms.Handle == SHFL_HANDLE_NIL) { ++ if (parms.Result == SHFL_PATH_NOT_FOUND || ++ parms.Result == SHFL_FILE_NOT_FOUND) { ++ free(str, M_VBOXVFS); ++ return (ENOENT); ++ } ++ parms.CreateFlags = ++ SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READ; ++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms); ++ if (RT_FAILURE(rc)) { ++ free(str, M_VBOXVFS); ++ return (sfprov_vbox2errno(rc)); ++ } ++ if (parms.Handle == SHFL_HANDLE_NIL) { ++ free(str, M_VBOXVFS); ++ return (ENOENT); ++ } ++ } ++ else ++ free(str, M_VBOXVFS); ++ newfp = malloc(sizeof(sfp_file_t), M_VBOXVFS, M_WAITOK | M_ZERO); ++ newfp->handle = parms.Handle; ++ newfp->map = mnt->map; ++ *fp = newfp; ++ return (0); ++} ++ ++int ++sfprov_trunc(sfp_mount_t *mnt, char *path) ++{ ++ int rc; ++ SHFLCREATEPARMS parms; ++ SHFLSTRING *str; ++ int size; ++ ++ /* ++ * open it read/write. ++ */ ++ str = sfprov_string(path, &size); ++ parms.Handle = 0; ++ parms.Info.cbObject = 0; ++ parms.CreateFlags = SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READWRITE | ++ SHFL_CF_ACT_OVERWRITE_IF_EXISTS; ++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms); ++ free(str, M_VBOXVFS); ++ ++ if (RT_FAILURE(rc)) { ++ return (sfprov_vbox2errno(rc)); ++ } ++ (void)VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle); ++ return (0); ++} ++ ++int ++sfprov_close(sfp_file_t *fp) ++{ ++ int rc; ++ ++ rc = VbglR0SfClose(&vbox_client, &fp->map, fp->handle); ++ free(fp, M_VBOXVFS); ++ return (0); ++} ++ ++int ++sfprov_read(sfp_file_t *fp, char *buffer, uint64_t offset, uint32_t *numbytes, ++ int buflocked) ++{ ++ int rc; ++ ++ rc = VbglR0SfRead(&vbox_client, &fp->map, fp->handle, offset, ++ numbytes, (uint8_t *)buffer, buflocked); ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ return (0); ++} ++ ++int ++sfprov_write(sfp_file_t *fp, char *buffer, uint64_t offset, uint32_t *numbytes, ++ int buflocked) ++{ ++ int rc; ++ ++ rc = VbglR0SfWrite(&vbox_client, &fp->map, fp->handle, offset, ++ numbytes, (uint8_t *)buffer, buflocked); ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ return (0); ++} ++ ++int ++sfprov_fsync(sfp_file_t *fp) ++{ ++ int rc; ++ ++ rc = VbglR0SfFlush(&vbox_client, &fp->map, fp->handle); ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ return (0); ++} ++ ++ ++static int ++sfprov_getinfo(sfp_mount_t *mnt, char *path, PSHFLFSOBJINFO info) ++{ ++ int rc; ++ SHFLCREATEPARMS parms; ++ SHFLSTRING *str; ++ int size; ++ ++ str = sfprov_string(path, &size); ++ parms.Handle = 0; ++ parms.Info.cbObject = 0; ++ parms.CreateFlags = SHFL_CF_LOOKUP | SHFL_CF_ACT_FAIL_IF_NEW; ++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms); ++ free(str, M_VBOXVFS); ++ ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ if (parms.Result != SHFL_FILE_EXISTS) ++ return (ENOENT); ++ *info = parms.Info; ++ return (0); ++} ++ ++/* ++ * get information about a file (or directory) ++ */ ++int ++sfprov_get_mode(sfp_mount_t *mnt, char *path, mode_t *mode) ++{ ++ int rc; ++ SHFLFSOBJINFO info; ++ ++ rc = sfprov_getinfo(mnt, path, &info); ++ if (rc) ++ return (rc); ++ sfprov_mode_from_fmode(mode, info.Attr.fMode); ++ return (0); ++} ++ ++int ++sfprov_get_size(sfp_mount_t *mnt, char *path, uint64_t *size) ++{ ++ int rc; ++ SHFLFSOBJINFO info; ++ ++ rc = sfprov_getinfo(mnt, path, &info); ++ if (rc) ++ return (rc); ++ *size = info.cbObject; ++ return (0); ++} ++ ++ ++int ++sfprov_get_atime(sfp_mount_t *mnt, char *path, struct timespec *time) ++{ ++ int rc; ++ SHFLFSOBJINFO info; ++ ++ rc = sfprov_getinfo(mnt, path, &info); ++ if (rc) ++ return (rc); ++ sfprov_ftime_from_timespec(time, &info.AccessTime); ++ return (0); ++} ++ ++int ++sfprov_get_mtime(sfp_mount_t *mnt, char *path, struct timespec *time) ++{ ++ int rc; ++ SHFLFSOBJINFO info; ++ ++ rc = sfprov_getinfo(mnt, path, &info); ++ if (rc) ++ return (rc); ++ sfprov_ftime_from_timespec(time, &info.ModificationTime); ++ return (0); ++} ++ ++int ++sfprov_get_ctime(sfp_mount_t *mnt, char *path, struct timespec *time) ++{ ++ int rc; ++ SHFLFSOBJINFO info; ++ ++ rc = sfprov_getinfo(mnt, path, &info); ++ if (rc) ++ return (rc); ++ sfprov_ftime_from_timespec(time, &info.ChangeTime); ++ return (0); ++} ++ ++int ++sfprov_get_attr(sfp_mount_t *mnt, char *path, sffs_stat_t *attr) ++{ ++ int rc; ++ SHFLFSOBJINFO info; ++ ++ rc = sfprov_getinfo(mnt, path, &info); ++ if (rc) ++ return (rc); ++ sfprov_stat_from_info(attr, &info); ++ return (0); ++} ++ ++static void ++sfprov_timespec_from_ftime(RTTIMESPEC *ts, struct timespec time) ++{ ++ uint64_t nanosec = UINT64_C(1000000000) * time.tv_sec + time.tv_nsec; ++ RTTimeSpecSetNano(ts, nanosec); ++} ++ ++int ++sfprov_set_attr( ++ sfp_mount_t *mnt, ++ char *path, ++ mode_t mode, ++ struct timespec atime, ++ struct timespec mtime, ++ struct timespec ctime) ++{ ++ int rc, err; ++ SHFLCREATEPARMS parms; ++ SHFLSTRING *str; ++ SHFLFSOBJINFO info; ++ uint32_t bytes; ++ int str_size; ++ ++ str = sfprov_string(path, &str_size); ++ parms.Handle = 0; ++ parms.Info.cbObject = 0; ++ parms.CreateFlags = SHFL_CF_ACT_OPEN_IF_EXISTS ++ | SHFL_CF_ACT_FAIL_IF_NEW ++ | SHFL_CF_ACCESS_ATTR_WRITE; ++ ++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms); ++ ++ if (RT_FAILURE(rc)) { ++ printf("sfprov_set_attr: VbglR0SfCreate(%s) failed rc=%d\n", ++ path, rc); ++ err = sfprov_vbox2errno(rc); ++ goto fail2; ++ } ++ if (parms.Result != SHFL_FILE_EXISTS) { ++ err = ENOENT; ++ goto fail1; ++ } ++ ++ RT_ZERO(info); ++#if 0 ++ if (mask & AT_MODE) ++ sfprov_fmode_from_mode(&info.Attr.fMode, mode); ++ if (mask & AT_ATIME) ++ sfprov_timespec_from_ftime(&info.AccessTime, atime); ++ if (mask & AT_MTIME) ++ sfprov_timespec_from_ftime(&info.ModificationTime, mtime); ++ if (mask & AT_CTIME) ++ sfprov_timespec_from_ftime(&info.ChangeTime, ctime); ++#endif ++ bytes = sizeof(info); ++ rc = VbglR0SfFsInfo(&vbox_client, &mnt->map, parms.Handle, ++ (SHFL_INFO_SET | SHFL_INFO_FILE), &bytes, (SHFLDIRINFO *)&info); ++ if (RT_FAILURE(rc)) { ++ if (rc != VERR_ACCESS_DENIED && rc != VERR_WRITE_PROTECT) ++ { ++ printf("sfprov_set_attr: VbglR0SfFsInfo(%s, FILE) failed rc=%d\n", ++ path, rc); ++ } ++ err = sfprov_vbox2errno(rc); ++ goto fail1; ++ } ++ ++ err = 0; ++ ++fail1: ++ rc = VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle); ++ if (RT_FAILURE(rc)) { ++ printf("sfprov_set_attr: VbglR0SfClose(%s) failed rc=%d\n", ++ path, rc); ++ } ++fail2: ++ free(str, M_VBOXVFS); ++ return err; ++} ++ ++int ++sfprov_set_size(sfp_mount_t *mnt, char *path, uint64_t size) ++{ ++ int rc, err; ++ SHFLCREATEPARMS parms; ++ SHFLSTRING *str; ++ SHFLFSOBJINFO info; ++ uint32_t bytes; ++ int str_size; ++ ++ str = sfprov_string(path, &str_size); ++ parms.Handle = 0; ++ parms.Info.cbObject = 0; ++ parms.CreateFlags = SHFL_CF_ACT_OPEN_IF_EXISTS ++ | SHFL_CF_ACT_FAIL_IF_NEW ++ | SHFL_CF_ACCESS_WRITE; ++ ++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms); ++ ++ if (RT_FAILURE(rc)) { ++ printf("sfprov_set_size: VbglR0SfCreate(%s) failed rc=%d\n", ++ path, rc); ++ err = sfprov_vbox2errno(rc); ++ goto fail2; ++ } ++ if (parms.Result != SHFL_FILE_EXISTS) { ++ err = ENOENT; ++ goto fail1; ++ } ++ ++ RT_ZERO(info); ++ info.cbObject = size; ++ bytes = sizeof(info); ++ rc = VbglR0SfFsInfo(&vbox_client, &mnt->map, parms.Handle, ++ (SHFL_INFO_SET | SHFL_INFO_SIZE), &bytes, (SHFLDIRINFO *)&info); ++ if (RT_FAILURE(rc)) { ++ printf("sfprov_set_size: VbglR0SfFsInfo(%s, SIZE) failed rc=%d\n", ++ path, rc); ++ err = sfprov_vbox2errno(rc); ++ goto fail1; ++ } ++ ++ err = 0; ++ ++fail1: ++ rc = VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle); ++ if (RT_FAILURE(rc)) { ++ printf("sfprov_set_size: VbglR0SfClose(%s) failed rc=%d\n", ++ path, rc); ++ } ++fail2: ++ free(str, M_VBOXVFS); ++ return err; ++} ++ ++/* ++ * Directory operations ++ */ ++int ++sfprov_mkdir( ++ sfp_mount_t *mnt, ++ char *path, ++ mode_t mode, ++ sffs_stat_t *stat) ++{ ++ int rc; ++ SHFLCREATEPARMS parms; ++ SHFLSTRING *str; ++ int size; ++ ++ str = sfprov_string(path, &size); ++ parms.Handle = SHFL_HANDLE_NIL; ++ parms.Info.cbObject = 0; ++ sfprov_fmode_from_mode(&parms.Info.Attr.fMode, mode); ++ parms.CreateFlags = SHFL_CF_DIRECTORY | SHFL_CF_ACT_CREATE_IF_NEW | ++ SHFL_CF_ACT_FAIL_IF_EXISTS | SHFL_CF_ACCESS_READ; ++ rc = VbglR0SfCreate(&vbox_client, &mnt->map, str, &parms); ++ free(str, M_VBOXVFS); ++ ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ if (parms.Handle == SHFL_HANDLE_NIL) { ++ if (parms.Result == SHFL_FILE_EXISTS) ++ return (EEXIST); ++ return (ENOENT); ++ } ++ (void)VbglR0SfClose(&vbox_client, &mnt->map, parms.Handle); ++ sfprov_stat_from_info(stat, &parms.Info); ++ return (0); ++} ++ ++int ++sfprov_set_show_symlinks(void) ++{ ++ int rc; ++ ++ rc = VbglR0SfSetSymlinks(&vbox_client); ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ ++ return (0); ++} ++ ++int ++sfprov_remove(sfp_mount_t *mnt, char *path, u_int is_link) ++{ ++ int rc; ++ SHFLSTRING *str; ++ int size; ++ ++ str = sfprov_string(path, &size); ++ rc = VbglR0SfRemove(&vbox_client, &mnt->map, str, ++ SHFL_REMOVE_FILE | (is_link ? SHFL_REMOVE_SYMLINK : 0)); ++ free(str, M_VBOXVFS); ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ return (0); ++} ++ ++int ++sfprov_readlink( ++ sfp_mount_t *mnt, ++ char *path, ++ char *target, ++ size_t tgt_size) ++{ ++ int rc; ++ SHFLSTRING *str; ++ int size; ++ ++ str = sfprov_string(path, &size); ++ ++ rc = VbglR0SfReadLink(&vbox_client, &mnt->map, str, (uint32_t) tgt_size, ++ target); ++ if (RT_FAILURE(rc)) ++ rc = sfprov_vbox2errno(rc); ++ ++ free(str, M_VBOXVFS); ++ return (rc); ++} ++ ++int ++sfprov_symlink( ++ sfp_mount_t *mnt, ++ char *linkname, ++ char *target, ++ sffs_stat_t *stat) ++{ ++ int rc; ++ SHFLSTRING *lnk, *tgt; ++ int lnk_size, tgt_size; ++ SHFLFSOBJINFO info; ++ ++ lnk = sfprov_string(linkname, &lnk_size); ++ tgt = sfprov_string(target, &tgt_size); ++ ++ rc = VbglR0SfSymlink(&vbox_client, &mnt->map, lnk, tgt, &info); ++ if (RT_FAILURE(rc)) { ++ rc = sfprov_vbox2errno(rc); ++ goto done; ++ } ++ ++ if (stat != NULL) ++ sfprov_stat_from_info(stat, &info); ++ ++done: ++ free(lnk, M_VBOXVFS); ++ free(tgt, M_VBOXVFS); ++ ++ return (rc); ++} ++ ++int ++sfprov_rmdir(sfp_mount_t *mnt, char *path) ++{ ++ int rc; ++ SHFLSTRING *str; ++ int size; ++ ++ str = sfprov_string(path, &size); ++ rc = VbglR0SfRemove(&vbox_client, &mnt->map, str, SHFL_REMOVE_DIR); ++ free(str, M_VBOXVFS); ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ return (0); ++} ++ ++int ++sfprov_rename(sfp_mount_t *mnt, char *from, char *to, u_int is_dir) ++{ ++ int rc; ++ SHFLSTRING *old, *new; ++ int old_size, new_size; ++ ++ old = sfprov_string(from, &old_size); ++ new = sfprov_string(to, &new_size); ++ rc = VbglR0SfRename(&vbox_client, &mnt->map, old, new, ++ (is_dir ? SHFL_RENAME_DIR : SHFL_RENAME_FILE) | ++ SHFL_RENAME_REPLACE_IF_EXISTS); ++ free(old, M_VBOXVFS); ++ free(new, M_VBOXVFS); ++ if (RT_FAILURE(rc)) ++ return (sfprov_vbox2errno(rc)); ++ return (0); ++} ++ ++/* ++ * Read all filenames in a directory. ++ * ++ * - success - all entries read and returned ++ * - ENOENT - Couldn't open the directory for reading ++ * - EINVAL - Internal error of some kind ++ * ++ * On successful return, *dirents points to a list of sffs_dirents_t; ++ * for each dirent, all fields except the d_ino will be set appropriately. ++ * The caller is responsible for freeing the dirents buffer. ++ */ ++int ++sfprov_readdir( ++ sfp_mount_t *mnt, ++ char *path, ++ sffs_dirents_t **dirents) ++{ ++ int error; ++ char *cp; ++ int len; ++ SHFLSTRING *mask_str = NULL; /* must be path with "/" appended */ ++ int mask_size; ++ sfp_file_t *fp; ++ uint32_t infobuff_alloc = 16384; ++ SHFLDIRINFO *infobuff = NULL, *info; ++ uint32_t numbytes; ++ uint32_t nents; ++ uint32_t size; ++ off_t offset; ++ sffs_dirents_t *cur_buf; ++ struct sffs_dirent *dirent; ++ unsigned short reclen; ++ unsigned short entlen; ++ ++ *dirents = NULL; ++ ++ error = sfprov_open(mnt, path, &fp); ++ if (error != 0) ++ return (ENOENT); ++ ++ /* ++ * Allocate the first dirents buffers. ++ */ ++ *dirents = malloc(SFFS_DIRENTS_SIZE, M_VBOXVFS, M_WAITOK | M_ZERO); ++ if (*dirents == NULL) { ++ error = (ENOSPC); ++ goto done; ++ } ++ cur_buf = *dirents; ++ cur_buf->sf_next = NULL; ++ cur_buf->sf_len = 0; ++ ++ /* ++ * Create mask that VBox expects. This needs to be the directory path, ++ * plus a "*" wildcard to get all files. ++ */ ++ len = strlen(path) + 3; ++ cp = malloc(len, M_VBOXVFS, M_WAITOK | M_ZERO); ++ if (cp == NULL) { ++ error = (ENOSPC); ++ goto done; ++ } ++ strcpy(cp, path); ++ strcat(cp, "/*"); ++ mask_str = sfprov_string(cp, &mask_size); ++ free(cp, M_VBOXVFS); ++ ++ /* ++ * Now loop using VbglR0SfDirInfo ++ */ ++ infobuff = malloc(infobuff_alloc, M_VBOXVFS, M_WAITOK | M_ZERO); ++ if (infobuff == NULL) { ++ error = (ENOSPC); ++ goto done; ++ } ++ ++ offset = 0; ++ for (;;) { ++ numbytes = infobuff_alloc; ++ error = VbglR0SfDirInfo(&vbox_client, &fp->map, fp->handle, ++ mask_str, 0, 0, &numbytes, infobuff, &nents); ++ ++ switch (error) { ++ case VINF_SUCCESS: ++ /* fallthrough */ ++ case VERR_NO_MORE_FILES: ++ break; ++ case VERR_NO_TRANSLATION: ++ /* XXX ??? */ ++ break; ++ default: ++ error = sfprov_vbox2errno(error); ++ goto done; ++ } ++ ++ /* ++ * Create the dirent_t's and save the stats for each name ++ */ ++ for (info = infobuff; (char *) info < (char *) infobuff + numbytes; nents--) { ++ size_t buflen; ++ ++ /* expand buffers if we need more space */ ++ reclen = DIRENT_RECLEN(strlen(info->name.String.utf8)); ++ entlen = sizeof(struct sffs_dirent) + reclen; ++ buflen = SFFS_DIRENTS_OFF + cur_buf->sf_len + entlen; ++ if (buflen > SFFS_DIRENTS_SIZE) { ++ cur_buf->sf_next = malloc(SFFS_DIRENTS_SIZE, ++ M_VBOXVFS, M_WAITOK | M_ZERO); ++ if (cur_buf->sf_next == NULL) { ++ error = ENOSPC; ++ goto done; ++ } ++ cur_buf = cur_buf->sf_next; ++ cur_buf->sf_next = NULL; ++ cur_buf->sf_len = 0; ++ } ++ ++ /* create the dirent with the name, offset, and len */ ++ dirent = (struct sffs_dirent *) ++ (((char *) &cur_buf->sf_entries[0]) + cur_buf->sf_len); ++ strncpy(&dirent->sf_entry.d_name[0], ++ info->name.String.utf8, DIRENT_NAMELEN(reclen)); ++ dirent->sf_entry.d_reclen = reclen; ++ dirent->sf_entry.d_namlen = strlen(info->name.String.utf8); ++ dirent->sf_entry.d_name[dirent->sf_entry.d_namlen] = 0; ++ offset += entlen; ++ dirent->sf_off = offset; ++ ++ /* save the stats */ ++ sfprov_stat_from_info(&dirent->sf_stat, &info->Info); ++ ++ /* next info */ ++ cur_buf->sf_len += entlen; ++ size = offsetof (SHFLDIRINFO, name.String) + info->name.u16Size; ++ info = (SHFLDIRINFO *) ((uintptr_t) info + size); ++ } ++ KASSERT(nents == 0, ("nents != 0")); ++ KASSERT((char *) info == (char *) infobuff + numbytes, "(char *) info != (char *) infobuff + numbytes"); ++ ++ if (error == VERR_NO_MORE_FILES) ++ break; ++ } ++ error = 0; ++ ++done: ++ if (error != 0) { ++ while (*dirents) { ++ cur_buf = (*dirents)->sf_next; ++ free(*dirents, M_VBOXVFS); ++ *dirents = cur_buf; ++ } ++ } ++ if (infobuff != NULL) ++ free(infobuff, M_VBOXVFS); ++ if (mask_str != NULL) ++ free(mask_str, M_VBOXVFS); ++ sfprov_close(fp); ++ ++ return (error); ++} diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c new file mode 100644 index 000000000000..8fa76bdf2b8a --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c @@ -0,0 +1,645 @@ +--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c.orig 2021-04-28 16:24:46 UTC ++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vfsops.c +@@ -1,8 +1,3 @@ +-/* $Id: vboxvfs_vfsops.c $ */ +-/** @file +- * Description. +- */ +- + /* + * Copyright (C) 2008-2020 Oracle Corporation + * +@@ -14,245 +9,478 @@ + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ +- +-#include "vboxvfs.h" ++#include <sys/types.h> + #include <sys/param.h> + #include <sys/systm.h> + #include <sys/proc.h> + #include <sys/bio.h> + #include <sys/buf.h> ++#include <sys/conf.h> ++#include <sys/dirent.h> + #include <sys/kernel.h> + #include <sys/sysctl.h> + #include <sys/vnode.h> + #include <sys/mount.h> ++#include <sys/namei.h> ++#include <sys/fcntl.h> ++#include <sys/priv.h> + #include <sys/stat.h> + #include <sys/malloc.h> + #include <sys/module.h> ++#include <sys/sbuf.h> + +-#include <iprt/mem.h> ++#include <geom/geom.h> ++#include <geom/geom_vfs.h> +- ++#include <vm/uma.h> ++#include "vboxvfs.h" ++ + #define VFSMP2SFGLOBINFO(mp) ((struct sf_glob_info *)mp->mnt_data) + +-static int vboxvfs_version = VBOXVFS_VERSION; ++#ifdef MALLOC_DECLARE ++MALLOC_DEFINE(M_VBOXVFS, "vboxvfs", "VBOX VFS"); ++#endif + +-SYSCTL_NODE(_vfs, OID_AUTO, vboxvfs, CTLFLAG_RW, 0, "VirtualBox shared filesystem"); +-SYSCTL_INT(_vfs_vboxvfs, OID_AUTO, version, CTLFLAG_RD, &vboxvfs_version, 0, ""); ++static sfp_connection_t *sfprov = NULL; + +-/* global connection to the host service. */ +-static VBGLSFCLIENT g_vboxSFClient; ++static int vboxfs_version = VBOXVFS_VERSION; ++u_int vboxvfs_debug = 1; + +-static vfs_init_t vboxvfs_init; +-static vfs_uninit_t vboxvfs_uninit; +-static vfs_cmount_t vboxvfs_cmount; +-static vfs_mount_t vboxvfs_mount; +-static vfs_root_t vboxvfs_root; +-static vfs_quotactl_t vboxvfs_quotactl; +-static vfs_statfs_t vboxvfs_statfs; +-static vfs_unmount_t vboxvfs_unmount; ++SYSCTL_NODE(_vfs, OID_AUTO, vboxfs, CTLFLAG_RW, 0, "VirtualBox shared filesystem"); ++SYSCTL_INT(_vfs_vboxfs, OID_AUTO, version, CTLFLAG_RD, &vboxfs_version, 0, ""); ++SYSCTL_UINT(_vfs_vboxfs, OID_AUTO, debug, CTLFLAG_RW, &vboxvfs_debug, 0, "Debug level"); + +-static struct vfsops vboxvfs_vfsops = { +- .vfs_init = vboxvfs_init, +- .vfs_cmount = vboxvfs_cmount, +- .vfs_mount = vboxvfs_mount, +- .vfs_quotactl = vboxvfs_quotactl, +- .vfs_root = vboxvfs_root, +- .vfs_statfs = vboxvfs_statfs, +- .vfs_sync = vfs_stdsync, +- .vfs_uninit = vboxvfs_uninit, +- .vfs_unmount = vboxvfs_unmount, ++static vfs_init_t vboxfs_init; ++static vfs_uninit_t vboxfs_uninit; ++static vfs_cmount_t vboxfs_cmount; ++static vfs_mount_t vboxfs_mount; ++static vfs_root_t vboxfs_root; ++static vfs_quotactl_t vboxfs_quotactl; ++static vfs_statfs_t vboxfs_statfs; ++static vfs_unmount_t vboxfs_unmount; ++ ++static struct vfsops vboxfs_vfsops = { ++ .vfs_init = vboxfs_init, ++ .vfs_cmount = vboxfs_cmount, ++ .vfs_mount = vboxfs_mount, ++ .vfs_quotactl = vboxfs_quotactl, ++ .vfs_root = vboxfs_root, ++ .vfs_statfs = vboxfs_statfs, ++ .vfs_sync = vfs_stdsync, ++ .vfs_uninit = vboxfs_uninit, ++ .vfs_unmount = vboxfs_unmount + }; + + +-VFS_SET(vboxvfs_vfsops, vboxvfs, VFCF_NETWORK); ++VFS_SET(vboxfs_vfsops, vboxvfs, VFCF_NETWORK); + MODULE_DEPEND(vboxvfs, vboxguest, 1, 1, 1); + +-static int vboxvfs_cmount(struct mntarg *ma, void * data, int flags, struct thread *td) ++/* ++ * Allocates a new node of type 'type' inside the 'tmp' mount point, with ++ * its owner set to 'uid', its group to 'gid' and its mode set to 'mode', ++ * using the credentials of the process 'p'. ++ * ++ * If the node type is set to 'VDIR', then the parent parameter must point ++ * to the parent directory of the node being created. It may only be NULL ++ * while allocating the root node. ++ * ++ * If the node type is set to 'VBLK' or 'VCHR', then the rdev parameter ++ * specifies the device the node represents. ++ * ++ * If the node type is set to 'VLNK', then the parameter target specifies ++ * the file name of the target file for the symbolic link that is being ++ * created. ++ * ++ * Note that new nodes are retrieved from the available list if it has ++ * items or, if it is empty, from the node pool as long as there is enough ++ * space to create them. ++ * ++ * Returns zero on success or an appropriate error code on failure. ++ */ ++int ++vboxfs_alloc_node(struct mount *mp, struct vboxfs_mnt *vsfmp, const char *fullpath, ++ enum_vtype_t type, uid_t uid, gid_t gid, mode_t mode, struct vboxfs_node *parent, ++ struct vboxfs_node **node) + { +- struct vboxvfs_mount_info args; +- int rc = 0; ++ struct vboxfs_node *nnode; + +- printf("%s: Enter\n", __FUNCTION__); ++ if ((mp->mnt_kern_flag & MNTK_UNMOUNT) != 0) { ++ /* ++ * When a new tmpfs node is created for fully ++ * constructed mount point, there must be a parent ++ * node, which vnode is locked exclusively. As ++ * consequence, if the unmount is executing in ++ * parallel, vflush() cannot reclaim the parent vnode. ++ * Due to this, the check for MNTK_UNMOUNT flag is not ++ * racy: if we did not see MNTK_UNMOUNT flag, then tmp ++ * cannot be destroyed until node construction is ++ * finished and the parent vnode unlocked. ++ * ++ * Tmpfs does not need to instantiate new nodes during ++ * unmount. ++ */ ++ return (EBUSY); ++ } + +- rc = copyin(data, &args, sizeof(struct vboxvfs_mount_info)); +- if (rc) +- return rc; ++ nnode = (struct vboxfs_node *)uma_zalloc_arg( ++ vsfmp->sf_node_pool, vsfmp, M_WAITOK); + +- ma = mount_argf(ma, "uid", "%d", args.uid); +- ma = mount_argf(ma, "gid", "%d", args.gid); +- ma = mount_arg(ma, "from", args.name, -1); ++ /* Generic initialization. */ ++ nnode->sf_type = type; ++ nnode->sf_ino = vsfmp->sf_ino++; ++ nnode->sf_path = strdup(fullpath, M_VBOXVFS); ++ nnode->sf_parent = parent; ++ nnode->vboxfsmp = vsfmp; + +- rc = kernel_mount(ma, flags); ++ /* Type-specific initialization. */ ++ switch (nnode->sf_type) { ++ case VBLK: ++ case VCHR: ++ case VDIR: ++ case VFIFO: ++ case VSOCK: ++ case VLNK: ++ case VREG: ++ break; + +- printf("%s: Leave rc=%d\n", __FUNCTION__, rc); ++ default: ++ panic("vboxfs_alloc_node: type %p %d", nnode, (int)nnode->sf_type); ++ } + +- return rc; ++ *node = nnode; ++ return 0; + } + +-static const char *vboxvfs_opts[] = { +- "uid", "gid", "from", "fstype", "fspath", "errmsg", NULL +-}; +- +-static int vboxvfs_mount(struct mount *mp, struct thread *td) ++void ++vboxfs_free_node(struct vboxfs_mnt *vboxfs, struct vboxfs_node *node) + { +- int rc; +- char *pszShare; +- int cbShare, cbOption; +- int uid = 0, gid = 0; +- struct sf_glob_info *pShFlGlobalInfo; +- SHFLSTRING *pShFlShareName = NULL; +- int cbShFlShareName; + +- printf("%s: Enter\n", __FUNCTION__); ++#ifdef INVARIANTS ++ TMPFS_NODE_LOCK(node); ++ MPASS(node->sf_vnode == NULL); ++ MPASS((node->sf_vpstate & TMPFS_VNODE_ALLOCATING) == 0); ++ TMPFS_NODE_UNLOCK(node); ++#endif ++ if (node->sf_path) ++ free(node->sf_path, M_VBOXVFS); + +- if (mp->mnt_flag & (MNT_UPDATE | MNT_ROOTFS)) +- return EOPNOTSUPP; ++ uma_zfree(vboxfs->sf_node_pool, node); ++} + +- if (vfs_filteropt(mp->mnt_optnew, vboxvfs_opts)) +- { +- vfs_mount_error(mp, "%s", "Invalid option"); +- return EINVAL; +- } ++static int ++vboxfs_cmount(struct mntarg *ma, void *data, uint64_t flags) ++{ ++ struct vboxfs_mount_info args; ++ int error = 0; + +- rc = vfs_getopt(mp->mnt_optnew, "from", (void **)&pszShare, &cbShare); +- if (rc || pszShare[cbShare-1] != '\0' || cbShare > 0xfffe) +- return EINVAL; ++ if (data == NULL) ++ return (EINVAL); ++ error = copyin(data, &args, sizeof(struct vboxfs_mount_info)); ++ if (error) ++ return (error); + +- rc = vfs_getopt(mp->mnt_optnew, "gid", (void **)&gid, &cbOption); +- if ((rc != ENOENT) && (rc || cbOption != sizeof(gid))) +- return EINVAL; ++ ma = mount_argf(ma, "uid", "%d", args.uid); ++ ma = mount_argf(ma, "gid", "%d", args.gid); ++ ma = mount_argf(ma, "file_mode", "%d", args.fmode); ++ ma = mount_argf(ma, "dir_mode", "%d", args.dmode); ++ ma = mount_arg(ma, "from", args.name, -1); + +- rc = vfs_getopt(mp->mnt_optnew, "uid", (void **)&uid, &cbOption); +- if ((rc != ENOENT) && (rc || cbOption != sizeof(uid))) +- return EINVAL; ++ return (kernel_mount(ma, flags)); ++} + +- pShFlGlobalInfo = RTMemAllocZ(sizeof(struct sf_glob_info)); +- if (!pShFlGlobalInfo) +- return ENOMEM; ++static const char *vboxfs_opts[] = { ++ "fstype", ++ "fspath", ++ "from", ++ "uid", ++ "gid", ++ "file_mode", ++ "dir_mode", ++ "errmsg", ++ NULL ++}; + +- cbShFlShareName = offsetof (SHFLSTRING, String.utf8) + cbShare + 1; +- pShFlShareName = RTMemAllocZ(cbShFlShareName); +- if (!pShFlShareName) +- return VERR_NO_MEMORY; ++#define VBOX_INTOPT(optname, val, base) do { \ ++ char *ep, *optarg = NULL; \ ++ if (vfs_getopt(opts, optname, (void **)&optarg, NULL) == 0) { \ ++ if (optarg != NULL && *optarg == '\0') \ ++ optarg = NULL; \ ++ if (optarg != NULL) \ ++ val = strtoul(optarg, &ep, base); \ ++ if (optarg == NULL || *ep != '\0') { \ ++ struct sbuf *sb = sbuf_new_auto(); \ ++ sbuf_printf(sb, "Invalid %s: \"%s\"", optname, \ ++ optarg); \ ++ sbuf_finish(sb); \ ++ vfs_mount_error(mp, sbuf_data(sb)); \ ++ sbuf_delete(sb); \ ++ return (EINVAL); \ ++ } \ ++ } \ ++} while (0) + +- pShFlShareName->u16Length = cbShare; +- pShFlShareName->u16Size = cbShare + 1; +- memcpy (pShFlShareName->String.utf8, pszShare, cbShare + 1); ++static int ++vboxfs_node_ctor(void *mem, int size, void *arg, int flags) ++{ ++ struct vboxfs_node *node = (struct vboxfs_node *)mem; + +- rc = VbglR0SfMapFolder (&g_vboxSFClient, pShFlShareName, &pShFlGlobalInfo->map); +- RTMemFree(pShFlShareName); ++ node->sf_vnode = NULL; ++ node->sf_vpstate = 0; + +- if (RT_FAILURE (rc)) +- { +- RTMemFree(pShFlGlobalInfo); +- printf("VbglR0SfMapFolder failed rc=%d\n", rc); +- return EPROTO; +- } ++ return (0); ++} + +- pShFlGlobalInfo->uid = uid; +- pShFlGlobalInfo->gid = gid; ++static void ++vboxfs_node_dtor(void *mem, int size, void *arg) ++{ ++ struct vboxfs_node *node = (struct vboxfs_node *)mem; ++ node->sf_type = VNON; ++} + +- mp->mnt_data = pShFlGlobalInfo; ++static int ++vboxfs_node_init(void *mem, int size, int flags) ++{ ++ struct vboxfs_node *node = (struct vboxfs_node *)mem; ++ node->sf_ino = 0; + +- /** @todo root vnode. */ ++ mtx_init(&node->sf_interlock, "tmpfs node interlock", NULL, MTX_DEF); + +- vfs_getnewfsid(mp); +- vfs_mountedfrom(mp, pszShare); ++ return (0); ++} + +- printf("%s: Leave rc=0\n", __FUNCTION__); ++static void ++vboxfs_node_fini(void *mem, int size) ++{ ++ struct vboxfs_node *node = (struct vboxfs_node *)mem; + +- return 0; ++ mtx_destroy(&node->sf_interlock); + } + +-static int vboxvfs_unmount(struct mount *mp, int mntflags, struct thread *td) ++static int ++vboxfs_mount(struct mount *mp) + { +- struct sf_glob_info *pShFlGlobalInfo = VFSMP2SFGLOBINFO(mp); +- int rc; +- int flags = 0; ++ struct vboxfs_mnt *vboxfsmp = NULL; ++ struct vfsoptlist *opts = mp->mnt_optnew; ++ sfp_mount_t *handle = NULL; ++ int readonly = 0; ++ sffs_fsinfo_t fsinfo; ++ int error, share_len; ++ char *share_name; ++ mode_t file_mode = 0, dir_mode = 0; ++ uid_t uid = 0; ++ gid_t gid = 0; ++ struct vboxfs_node *root; + +- rc = VbglR0SfUnmapFolder(&g_vboxSFClient, &pShFlGlobalInfo->map); +- if (RT_FAILURE(rc)) +- printf("Failed to unmap shared folder\n"); ++ if (mp->mnt_flag & (MNT_UPDATE | MNT_ROOTFS)) ++ return (EOPNOTSUPP); + +- if (mntflags & MNT_FORCE) +- flags |= FORCECLOSE; ++ if (vfs_filteropt(opts, vboxfs_opts)) { ++ vfs_mount_error(mp, "%s", "Invalid option"); ++ return (EINVAL); ++ } + +- /* There is 1 extra root vnode reference (vnode_root). */ +- rc = vflush(mp, 1, flags, td); +- if (rc) +- return rc; ++ VBOX_INTOPT("uid", uid, 10); ++ VBOX_INTOPT("gid", gid, 10); ++ VBOX_INTOPT("file_mode", file_mode, 8); ++ VBOX_INTOPT("dir_mode", dir_mode, 8); ++ VBOX_INTOPT("ro", readonly, 10); + ++ error = vfs_getopt(opts, "from", (void **)&share_name, &share_len); ++ if (error != 0 || share_len == 0) { ++ vfs_mount_error(mp, "Invalid from"); ++ return (EINVAL); ++ } + +- RTMemFree(pShFlGlobalInfo); +- mp->mnt_data = NULL; ++ vboxfsmp = malloc(sizeof(struct vboxfs_mnt), M_VBOXVFS, M_WAITOK | M_ZERO); ++ vboxfsmp->sf_uid = uid; ++ vboxfsmp->sf_gid = gid; ++ vboxfsmp->sf_fmode = file_mode & (S_IRWXU | S_IRWXG | S_IRWXO); ++ vboxfsmp->sf_dmode = dir_mode & (S_IRWXU | S_IRWXG | S_IRWXO); ++ vboxfsmp->sf_ino = 3; ++ vboxfsmp->sf_stat_ttl = 200; + +- return 0; ++ /* Invoke Hypervisor mount interface before proceeding */ ++ error = sfprov_mount(share_name, &handle); ++ if (error) ++ return (error); ++ ++ /* Determine whether the filesystem must be read-only. */ ++ error = sfprov_get_fsinfo(handle, &fsinfo); ++ if (error != 0) { ++ sfprov_unmount(handle); ++ return (error); ++ } ++ if (readonly == 0) ++ readonly = (fsinfo.readonly != 0); ++ ++ vboxfsmp->sf_handle = handle; ++ vboxfsmp->sf_vfsp = mp; ++ ++ vboxfsmp->sf_node_pool = uma_zcreate("VBOXFS node", ++ sizeof(struct vboxfs_node), ++ vboxfs_node_ctor, vboxfs_node_dtor, ++ vboxfs_node_init, vboxfs_node_fini, ++ UMA_ALIGN_PTR, 0); ++ ++ /* Allocate the root node. */ ++ error = vboxfs_alloc_node(mp, vboxfsmp, "", VDIR, 0, ++ 0, 0755, NULL, &root); ++ ++ if (error != 0 || root == NULL) { ++ uma_zdestroy(vboxfsmp->sf_node_pool); ++ free(vboxfsmp, M_VBOXVFS); ++ return error; ++ } ++ ++ root->sf_parent = root; ++ vboxfsmp->sf_root = root; ++ ++ MNT_ILOCK(mp); ++ mp->mnt_data = vboxfsmp; ++ mp->mnt_stat.f_fsid.val[0] = fsinfo.serial; ++ mp->mnt_stat.f_fsid.val[1] = 0; ++ mp->mnt_flag |= MNT_LOCAL; ++ if (readonly != 0) ++ mp->mnt_flag |= MNT_RDONLY; ++ ++ mp->mnt_kern_flag |= MNTK_LOOKUP_SHARED | MNTK_EXTENDED_SHARED; ++ MNT_IUNLOCK(mp); ++ vfs_mountedfrom(mp, share_name); ++ ++ return (0); + } + +-static int vboxvfs_root(struct mount *mp, int flags, struct vnode **vpp, struct thread *td) ++/* ++ * Unmount a shared folder. ++ * ++ * vboxfs_unmount umounts the mounted file system. It return 0 ++ * on sucess and any relevant errno on failure. ++ */ ++static int ++vboxfs_unmount(struct mount *mp, int mntflags) + { +- int rc = 0; +- struct sf_glob_info *pShFlGlobalInfo = VFSMP2SFGLOBINFO(mp); +- struct vnode *vp; ++ struct vboxfs_mnt *vboxfsmp; ++ struct thread *td; ++ int error; ++ int flags; + +- printf("%s: Enter\n", __FUNCTION__); ++ vboxfsmp = VFSTOVBOXFS(mp); ++ td = curthread; ++ flags = 0; ++ if (mntflags & MNT_FORCE) ++ flags |= FORCECLOSE; + +- vp = pShFlGlobalInfo->vnode_root; +- VREF(vp); ++ error = vflush(mp, 0, flags, td); ++ if (error) ++ return (error); + +- vn_lock(vp, flags | LK_RETRY, td); +- *vpp = vp; ++ /* Invoke Hypervisor unmount interface before proceeding */ ++ error = sfprov_unmount(vboxfsmp->sf_handle); ++ if (error != 0) { ++ /* TBD anything here? */ ++ } + +- printf("%s: Leave\n", __FUNCTION__); ++ uma_zdestroy(vboxfsmp->sf_node_pool); + +- return rc; ++ free(vboxfsmp, M_VBOXVFS); ++ MNT_ILOCK(mp); ++ mp->mnt_data = NULL; ++ mp->mnt_flag &= ~MNT_LOCAL; ++ MNT_IUNLOCK(mp); ++ ++ return (0); + } + +-static int vboxvfs_quotactl(struct mount *mp, int cmd, uid_t uid, void *arg, struct thread *td) ++static int ++vboxfs_root(struct mount *mp, int flags, struct vnode **vpp) + { +- return EOPNOTSUPP; ++ int error; ++ error = vboxfs_alloc_vp(mp, VFSTOVBOXFS(mp)->sf_root, flags, vpp); ++ ++ if (!error) ++ (*vpp)->v_vflag |= VV_ROOT; ++ ++ return error; + } + +-int vboxvfs_init(struct vfsconf *vfsp) ++/* ++ * Do operation associated with quotas, not supported ++ */ ++static int ++vboxfs_quotactl(struct mount *mp, int cmd, uid_t uid, void *arg ++#if __FreeBSD_version >= 1400018 ++ , bool *mp_busy ++#endif ++ ) + { +- int rc; ++ return (EOPNOTSUPP); ++} + +- /* Initialize the R0 guest library. */ +- rc = VbglR0SfInit(); +- if (RT_FAILURE(rc)) +- return ENXIO; ++/* ++ * Initialize the filesystem globals. ++ */ ++static int ++vboxfs_init(struct vfsconf *vfsp) ++{ ++ int error; + +- /* Connect to the host service. */ +- rc = VbglR0SfConnect(&g_vboxSFClient); +- if (RT_FAILURE(rc)) +- { +- printf("Failed to get connection to host! rc=%d\n", rc); +- VbglR0SfTerm(); +- return ENXIO; +- } ++ DROP_GIANT(); + +- rc = VbglR0SfSetUtf8(&g_vboxSFClient); +- if (RT_FAILURE (rc)) +- { +- printf("VbglR0SfSetUtf8 failed, rc=%d\n", rc); +- VbglR0SfDisconnect(&g_vboxSFClient); +- VbglR0SfTerm(); +- return EPROTO; +- } ++ sfprov = sfprov_connect(SFPROV_VERSION); ++ if (sfprov == NULL) { ++ printf("%s: couldn't connect to sf provider", __func__); ++ return (ENODEV); ++ } + +- printf("Successfully loaded shared folder module\n"); ++ error = sfprov_set_show_symlinks(); ++ if (error != 0) ++ printf("%s: host unable to show symlinks, error=%d\n", ++ __func__, error); + +- return 0; ++ PICKUP_GIANT(); ++ return (0); + } + +-int vboxvfs_uninit(struct vfsconf *vfsp) ++/* ++ * Undo the work of vboxfs_init(). ++ */ ++static int ++vboxfs_uninit(struct vfsconf *vfsp) + { +- VbglR0SfDisconnect(&g_vboxSFClient); +- VbglR0SfTerm(); + +- return 0; ++ DROP_GIANT(); ++ sfprov_disconnect(); ++ PICKUP_GIANT(); ++ return (0); + } + +-int vboxvfs_statfs(struct mount *mp, struct statfs *sbp, struct thread *td) ++/* ++ * Get filesystem statistics. ++ */ ++static int ++vboxfs_statfs(struct mount *mp, struct statfs *sbp) + { +- return 0; ++ struct vboxfs_mnt *vboxfsmp; ++ sffs_fsinfo_t fsinfo; ++ int error; ++ ++ vboxfsmp = VFSTOVBOXFS(mp); ++ ++ error = sfprov_get_fsinfo(vboxfsmp->sf_handle, &fsinfo); ++ if (error != 0) ++ return (error); ++ ++ sbp->f_iosize = fsinfo.blksize; ++ sbp->f_bsize = fsinfo.blksize; ++ ++ sbp->f_bfree = fsinfo.blksavail; ++ sbp->f_bavail = fsinfo.blksavail; ++ sbp->f_files = fsinfo.blksavail / 4; /* some kind of reasonable value */ ++ sbp->f_ffree = fsinfo.blksavail / 4; ++ ++ sbp->f_blocks = fsinfo.blksused + sbp->f_bavail; ++ sbp->f_fsid.val[0] = mp->mnt_stat.f_fsid.val[0]; ++ sbp->f_fsid.val[1] = mp->mnt_stat.f_fsid.val[1]; ++ sbp->f_namemax = fsinfo.maxnamesize; ++ ++ return (0); + } diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c new file mode 100644 index 000000000000..edd43c7c03c7 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c @@ -0,0 +1,1543 @@ +--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c.orig 2023-07-12 15:59:35 UTC ++++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c +@@ -14,228 +14,1416 @@ + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ +- +-#include "vboxvfs.h" + #include <sys/param.h> + #include <sys/systm.h> + #include <sys/namei.h> + #include <sys/kernel.h> +-#include <sys/proc.h> ++#include <sys/types.h> ++#include <sys/malloc.h> ++#include <sys/stat.h> + #include <sys/bio.h> ++#include <sys/conf.h> + #include <sys/buf.h> +-#include <sys/fcntl.h> ++#include <sys/iconv.h> + #include <sys/mount.h> +-#include <sys/unistd.h> + #include <sys/vnode.h> +-#include <sys/limits.h> +-#include <sys/lockf.h> +-#include <sys/stat.h> ++#include <sys/dirent.h> ++#include <sys/queue.h> ++#include <sys/unistd.h> ++#include <sys/endian.h> + +-#include <vm/vm.h> +-#include <vm/vm_extern.h> ++#include <vm/uma.h> + ++#include "vboxvfs.h" ++ ++#if __FreeBSD_version < 1300063 ++#define VN_IS_DOOMED(vp) (((vp)->v_iflag & VI_DOOMED) != 0) ++#endif ++ + /* + * Prototypes for VBOXVFS vnode operations + */ +-static vop_create_t vboxvfs_create; +-static vop_mknod_t vboxvfs_mknod; +-static vop_open_t vboxvfs_open; +-static vop_close_t vboxvfs_close; +-static vop_access_t vboxvfs_access; +-static vop_getattr_t vboxvfs_getattr; +-static vop_setattr_t vboxvfs_setattr; +-static vop_read_t vboxvfs_read; +-static vop_write_t vboxvfs_write; +-static vop_fsync_t vboxvfs_fsync; +-static vop_remove_t vboxvfs_remove; +-static vop_link_t vboxvfs_link; +-static vop_lookup_t vboxvfs_lookup; +-static vop_rename_t vboxvfs_rename; +-static vop_mkdir_t vboxvfs_mkdir; +-static vop_rmdir_t vboxvfs_rmdir; +-static vop_symlink_t vboxvfs_symlink; +-static vop_readdir_t vboxvfs_readdir; +-static vop_strategy_t vboxvfs_strategy; +-static vop_print_t vboxvfs_print; +-static vop_pathconf_t vboxvfs_pathconf; +-static vop_advlock_t vboxvfs_advlock; +-static vop_getextattr_t vboxvfs_getextattr; +-static vop_ioctl_t vboxvfs_ioctl; +-static vop_getpages_t vboxvfs_getpages; +-static vop_inactive_t vboxvfs_inactive; +-static vop_putpages_t vboxvfs_putpages; +-static vop_reclaim_t vboxvfs_reclaim; ++static vop_create_t vboxfs_create; ++static vop_open_t vboxfs_open; ++static vop_close_t vboxfs_close; ++static vop_access_t vboxfs_access; ++static vop_getattr_t vboxfs_getattr; ++static vop_setattr_t vboxfs_setattr; ++static vop_read_t vboxfs_read; ++static vop_readlink_t vboxfs_readlink; ++static vop_write_t vboxfs_write; ++static vop_fsync_t vboxfs_fsync; ++static vop_remove_t vboxfs_remove; ++static vop_link_t vboxfs_link; ++static vop_lookup_t vboxfs_lookup; ++static vop_cachedlookup_t vboxfs_cachedlookup; ++static vop_rename_t vboxfs_rename; ++static vop_mkdir_t vboxfs_mkdir; ++static vop_rmdir_t vboxfs_rmdir; ++static vop_symlink_t vboxfs_symlink; ++static vop_readdir_t vboxfs_readdir; ++static vop_print_t vboxfs_print; ++static vop_pathconf_t vboxfs_pathconf; ++static vop_advlock_t vboxfs_advlock; ++static vop_ioctl_t vboxfs_ioctl; ++static vop_inactive_t vboxfs_inactive; ++static vop_reclaim_t vboxfs_reclaim; ++static vop_vptofh_t vboxfs_vptofh; + +-struct vop_vector vboxvfs_vnodeops = { +- .vop_default = &default_vnodeops, ++struct vop_vector vboxfs_vnodeops = { ++ .vop_default = &default_vnodeops, + +- .vop_access = vboxvfs_access, +- .vop_advlock = vboxvfs_advlock, +- .vop_close = vboxvfs_close, +- .vop_create = vboxvfs_create, +- .vop_fsync = vboxvfs_fsync, +- .vop_getattr = vboxvfs_getattr, +- .vop_getextattr = vboxvfs_getextattr, +- .vop_getpages = vboxvfs_getpages, +- .vop_inactive = vboxvfs_inactive, +- .vop_ioctl = vboxvfs_ioctl, +- .vop_link = vboxvfs_link, +- .vop_lookup = vboxvfs_lookup, +- .vop_mkdir = vboxvfs_mkdir, +- .vop_mknod = vboxvfs_mknod, +- .vop_open = vboxvfs_open, +- .vop_pathconf = vboxvfs_pathconf, +- .vop_print = vboxvfs_print, +- .vop_putpages = vboxvfs_putpages, +- .vop_read = vboxvfs_read, +- .vop_readdir = vboxvfs_readdir, +- .vop_reclaim = vboxvfs_reclaim, +- .vop_remove = vboxvfs_remove, +- .vop_rename = vboxvfs_rename, +- .vop_rmdir = vboxvfs_rmdir, +- .vop_setattr = vboxvfs_setattr, +- .vop_strategy = vboxvfs_strategy, +- .vop_symlink = vboxvfs_symlink, +- .vop_write = vboxvfs_write, ++ .vop_access = vboxfs_access, ++ .vop_advlock = VOP_EOPNOTSUPP, ++ .vop_close = vboxfs_close, ++ .vop_create = vboxfs_create, ++ .vop_fsync = vboxfs_fsync, ++ .vop_getattr = vboxfs_getattr, ++ .vop_getextattr = VOP_EOPNOTSUPP, ++ .vop_inactive = vboxfs_inactive, ++ .vop_ioctl = vboxfs_ioctl, ++ .vop_link = vboxfs_link, ++ .vop_lookup = vboxfs_lookup, ++ .vop_cachedlookup = vboxfs_cachedlookup, ++ .vop_mkdir = vboxfs_mkdir, ++ .vop_mknod = VOP_EOPNOTSUPP, ++ .vop_open = vboxfs_open, ++ .vop_pathconf = vboxfs_pathconf, ++ .vop_print = vboxfs_print, ++ .vop_read = vboxfs_read, ++ .vop_readdir = vboxfs_readdir, ++ .vop_readlink = vboxfs_readlink, ++ .vop_reclaim = vboxfs_reclaim, ++ .vop_remove = vboxfs_remove, ++ .vop_rename = vboxfs_rename, ++ .vop_rmdir = vboxfs_rmdir, ++ .vop_setattr = vboxfs_setattr, ++ .vop_vptofh = vboxfs_vptofh, ++ .vop_symlink = vboxfs_symlink, ++ .vop_write = vboxfs_write, ++ .vop_bmap = VOP_EOPNOTSUPP + }; ++#if __FreeBSD_version > 1300068 ++VFS_VOP_VECTOR_REGISTER(vboxfs_vnodeops); ++#endif + +-static int vboxvfs_access(struct vop_access_args *ap) ++static uint64_t ++vsfnode_cur_time_usec(void) + { +- return 0; ++ struct timeval now; ++ ++ getmicrotime(&now); ++ ++ return (now.tv_sec*1000 + now.tv_usec); + } + +-static int vboxvfs_open(struct vop_open_args *ap) ++static int ++vsfnode_stat_cached(struct vboxfs_node *np) + { +- return 0; ++ return (vsfnode_cur_time_usec() - np->sf_stat_time) < ++ np->vboxfsmp->sf_stat_ttl * 1000UL; + } + +-static int vboxvfs_close(struct vop_close_args *ap) ++static int ++vsfnode_update_stat_cache(struct vboxfs_node *np) + { +- return 0; ++ int error; ++ ++ error = sfprov_get_attr(np->vboxfsmp->sf_handle, np->sf_path, ++ &np->sf_stat); ++#if 0 ++ if (error == ENOENT) ++ sfnode_make_stale(node); ++#endif ++ if (error == 0) ++ np->sf_stat_time = vsfnode_cur_time_usec(); ++ ++ return (error); + } + +-static int vboxvfs_getattr(struct vop_getattr_args *ap) ++/* ++ * Need to clear v_object for insmntque failure. ++ */ ++static void ++vboxfs_insmntque_dtr(struct vnode *vp, void *dtr_arg) + { +- return 0; ++ ++ // XXX: vboxfs_destroy_vobject(vp, vp->v_object); ++ vp->v_object = NULL; ++ vp->v_data = NULL; ++ vp->v_op = &dead_vnodeops; ++ vgone(vp); ++ vput(vp); + } + +-static int vboxvfs_setattr(struct vop_setattr_args *ap) ++/* ++ * Allocates a new vnode for the node node or returns a new reference to ++ * an existing one if the node had already a vnode referencing it. The ++ * resulting locked vnode is returned in *vpp. ++ * ++ * Returns zero on success or an appropriate error code on failure. ++ */ ++int ++vboxfs_alloc_vp(struct mount *mp, struct vboxfs_node *node, int lkflag, ++ struct vnode **vpp) + { +- return 0; ++ struct vnode *vp; ++ int error; ++ ++ error = 0; ++loop: ++ VBOXFS_NODE_LOCK(node); ++loop1: ++ if ((vp = node->sf_vnode) != NULL) { ++ MPASS((node->sf_vpstate & VBOXFS_VNODE_DOOMED) == 0); ++ VI_LOCK(vp); ++ if ((node->sf_type == VDIR && node->sf_parent == NULL) || ++ (VN_IS_DOOMED(vp) && ++ (lkflag & LK_NOWAIT) != 0)) { ++ VI_UNLOCK(vp); ++ VBOXFS_NODE_UNLOCK(node); ++ error = ENOENT; ++ vp = NULL; ++ goto out; ++ } ++ if (VN_IS_DOOMED(vp)) { ++ VI_UNLOCK(vp); ++ node->sf_vpstate |= VBOXFS_VNODE_WRECLAIM; ++ while ((node->sf_vpstate & VBOXFS_VNODE_WRECLAIM) != 0) { ++ msleep(&node->sf_vnode, VBOXFS_NODE_MTX(node), ++ 0, "vsfE", 0); ++ } ++ goto loop1; ++ } ++ VBOXFS_NODE_UNLOCK(node); ++#if __FreeBSD_version < 1300109 ++ error = vget(vp, lkflag | LK_INTERLOCK, curthread); ++#else ++ error = vget(vp, lkflag | LK_INTERLOCK); ++#endif ++ if (error == ENOENT) ++ goto loop; ++ if (error != 0) { ++ vp = NULL; ++ goto out; ++ } ++ ++ /* ++ * Make sure the vnode is still there after ++ * getting the interlock to avoid racing a free. ++ */ ++ if (node->sf_vnode == NULL || node->sf_vnode != vp) { ++ vput(vp); ++ goto loop; ++ } ++ ++ goto out; ++ } ++ ++ if ((node->sf_vpstate & VBOXFS_VNODE_DOOMED) || ++ (node->sf_type == VDIR && node->sf_parent == NULL)) { ++ VBOXFS_NODE_UNLOCK(node); ++ error = ENOENT; ++ vp = NULL; ++ goto out; ++ } ++ ++ /* ++ * otherwise lock the vp list while we call getnewvnode ++ * since that can block. ++ */ ++ if (node->sf_vpstate & VBOXFS_VNODE_ALLOCATING) { ++ node->sf_vpstate |= VBOXFS_VNODE_WANT; ++ error = msleep((caddr_t) &node->sf_vpstate, ++ VBOXFS_NODE_MTX(node), PDROP | PCATCH, ++ "vboxfs_alloc_vp", 0); ++ if (error) ++ return error; ++ ++ goto loop; ++ } else ++ node->sf_vpstate |= VBOXFS_VNODE_ALLOCATING; ++ ++ VBOXFS_NODE_UNLOCK(node); ++ ++ /* Get a new vnode and associate it with our node. */ ++ error = getnewvnode("vboxfs", mp, &vboxfs_vnodeops, &vp); ++ if (error != 0) ++ goto unlock; ++ MPASS(vp != NULL); ++ ++ /* lkflag is ignored, the lock is exclusive */ ++ (void) vn_lock(vp, lkflag | LK_RETRY); ++ ++ vp->v_data = node; ++ vp->v_type = node->sf_type; ++ ++ /* Type-specific initialization. */ ++ switch (node->sf_type) { ++ case VBLK: ++ /* FALLTHROUGH */ ++ case VCHR: ++ /* FALLTHROUGH */ ++ case VLNK: ++ /* FALLTHROUGH */ ++ case VSOCK: ++ /* FALLTHROUGH */ ++ case VFIFO: ++ /* FALLTHROUGH */ ++ case VREG: ++ break; ++ case VDIR: ++ MPASS(node->sf_parent != NULL); ++ if (node->sf_parent == node) ++ vp->v_vflag |= VV_ROOT; ++ break; ++ ++ default: ++ panic("vboxfs_alloc_vp: type %p %d", node, (int)node->sf_type); ++ } ++ ++ if (vp->v_type != VFIFO) ++ VN_LOCK_ASHARE(vp); ++ ++#if __FreeBSD_version < 1400051 ++ error = insmntque1(vp, mp, vboxfs_insmntque_dtr, NULL); ++#else ++ error = insmntque(vp, mp); ++#endif ++ if (error) { ++#if __FreeBSD_version >= 1400051 ++ vboxfs_insmntque_dtr(vp, NULL); ++#endif ++ vp = NULL; ++ } ++ ++unlock: ++ VBOXFS_NODE_LOCK(node); ++ ++ MPASS(node->sf_vpstate & VBOXFS_VNODE_ALLOCATING); ++ node->sf_vpstate &= ~VBOXFS_VNODE_ALLOCATING; ++ node->sf_vnode = vp; ++ ++ if (node->sf_vpstate & VBOXFS_VNODE_WANT) { ++ node->sf_vpstate &= ~VBOXFS_VNODE_WANT; ++ VBOXFS_NODE_UNLOCK(node); ++ wakeup((caddr_t) &node->sf_vpstate); ++ } else ++ VBOXFS_NODE_UNLOCK(node); ++ ++out: ++ *vpp = vp; ++ ++#ifdef INVARIANTS ++ if (error == 0) { ++ MPASS(*vpp != NULL && VOP_ISLOCKED(*vpp)); ++ VBOXFS_NODE_LOCK(node); ++ MPASS(*vpp == node->sf_vnode); ++ VBOXFS_NODE_UNLOCK(node); ++ } ++#endif ++ ++ return error; + } + +-static int vboxvfs_read(struct vop_read_args *ap) ++/* ++ * Destroys the association between the vnode vp and the node it ++ * references. ++ */ ++void ++vboxfs_free_vp(struct vnode *vp) + { +- return 0; ++ struct vboxfs_node *node; ++ ++ node = VP_TO_VBOXFS_NODE(vp); ++ ++ VBOXFS_NODE_ASSERT_LOCKED(node); ++ node->sf_vnode = NULL; ++ if ((node->sf_vpstate & VBOXFS_VNODE_WRECLAIM) != 0) ++ wakeup(&node->sf_vnode); ++ node->sf_vpstate &= ~VBOXFS_VNODE_WRECLAIM; ++ vp->v_data = NULL; + } + +-static int vboxvfs_write(struct vop_write_args *ap) ++/* ++ * Allocate new vboxfs_node and vnode for given file ++ */ ++static int ++vboxfs_alloc_file(struct vboxfs_mnt *vboxfsmp, const char *fullpath, ++ enum_vtype_t type, mode_t mode, struct vboxfs_node *parent, ++ int lkflag, struct vnode **vpp) + { +- return 0; ++ int error; ++ struct vboxfs_node *unode; ++ ++ error = vboxfs_alloc_node(vboxfsmp->sf_vfsp, vboxfsmp, fullpath, type, ++ vboxfsmp->sf_uid, vboxfsmp->sf_gid, mode, parent, &unode); ++ ++ if (error) ++ goto out; ++ ++ error = vboxfs_alloc_vp(vboxfsmp->sf_vfsp, unode, lkflag, vpp); ++ if (error) ++ vboxfs_free_node(vboxfsmp, unode); ++ ++out: ++ return (error); + } + +-static int vboxvfs_create(struct vop_create_args *ap) ++static int ++vboxfs_vn_get_ino_alloc(struct mount *mp, void *arg, int lkflags, ++ struct vnode **rvp) + { +- return 0; ++ ++ return (vboxfs_alloc_vp(mp, arg, lkflags, rvp)); + } + +-static int vboxvfs_remove(struct vop_remove_args *ap) ++/* ++ * Construct a new pathname given an sfnode plus an optional tail ++ * component of length len ++ * This handles ".." and "." ++ */ ++static char * ++sfnode_construct_path(struct vboxfs_node *node, char *tail, int len) + { +- return 0; ++ char *p; ++ size_t dstsz; ++ ++ if (len <= 2 && tail[0] == '.' && (len == 1 || tail[1] == '.')) ++ panic("construct path for %s", tail); ++ dstsz = strlen(node->sf_path) + 1 + len + 1; ++ p = malloc(dstsz, M_VBOXVFS, M_WAITOK); ++ strcpy(p, node->sf_path); ++ strcat(p, "/"); ++ strlcat(p, tail, dstsz); ++ return (p); + } + +-static int vboxvfs_rename(struct vop_rename_args *ap) ++static int ++vboxfs_access(struct vop_access_args *ap) + { +- return 0; ++ struct vnode *vp = ap->a_vp; ++ accmode_t accmode = ap->a_accmode; ++ struct vboxfs_node *node; ++ int error; ++ mode_t m; ++ ++ MPASS(VOP_ISLOCKED(vp)); ++ ++ node = VP_TO_VBOXFS_NODE(vp); ++ ++ if ((accmode & VWRITE) && (vp->v_mount->mnt_flag & MNT_RDONLY)) { ++ switch (vp->v_type) { ++ case VDIR: ++ case VLNK: ++ case VREG: ++ return (EROFS); ++ /* NOT REACHED */ ++ default: ++ break; ++ } ++ } ++ ++ if (vsfnode_stat_cached(node)) ++ error = 0; ++ else ++ error = vsfnode_update_stat_cache(node); ++ m = (error == 0) ? node->sf_stat.sf_mode : 0; ++ ++#if __FreeBSD_version < 1300105 ++ return (vaccess(vp->v_type, m, node->vboxfsmp->sf_uid, ++ node->vboxfsmp->sf_gid, accmode, ap->a_cred, NULL)); ++#else ++ return (vaccess(vp->v_type, m, node->vboxfsmp->sf_uid, ++ node->vboxfsmp->sf_gid, accmode, ap->a_cred)); ++#endif + } + +-static int vboxvfs_link(struct vop_link_args *ap) ++/* ++ * Clears the (cached) directory listing for the node. ++ */ ++static void ++vfsnode_clear_dir_list(struct vboxfs_node *np) + { +- return EOPNOTSUPP; ++ while (np->sf_dir_list != NULL) { ++ sffs_dirents_t *next = np->sf_dir_list->sf_next; ++ free(np->sf_dir_list, M_VBOXVFS); ++ np->sf_dir_list = next; ++ } + } + +-static int vboxvfs_symlink(struct vop_symlink_args *ap) ++static int ++vboxfs_get_sfp_file(struct vboxfs_node *np) + { +- return EOPNOTSUPP; ++ sfp_file_t *fp; ++ int error; ++ ++ fp = NULL; ++ VBOXFS_NODE_LOCK(np); ++ for (;;) { ++ if (np->sf_file != NULL) { ++ if (fp != NULL) ++ (void) sfprov_close(fp); ++ np->sf_opencnt++; ++ fp = np->sf_file; ++ break; ++ } else if (fp != NULL) { ++ np->sf_file = fp; ++ KASSERT(np->sf_opencnt == 0, ++ ("np %p opencnt (%d) must be zero.", ++ np, np->sf_opencnt)); ++ np->sf_opencnt = 1; ++ break; ++ } ++ VBOXFS_NODE_UNLOCK(np); ++ error = sfprov_open(np->vboxfsmp->sf_handle, np->sf_path, &fp); ++ if (error != 0) ++ return (error); ++ VBOXFS_NODE_LOCK(np); ++ } ++ VBOXFS_NODE_UNLOCK(np); ++ ++ return (0); + } + +-static int vboxvfs_mknod(struct vop_mknod_args *ap) ++static void ++vboxfs_put_sfp_file(struct vboxfs_node *np) + { +- return EOPNOTSUPP; ++ VBOXFS_NODE_LOCK(np); ++ np->sf_opencnt--; ++ if (np->sf_opencnt == 0) { ++ (void) sfprov_close(np->sf_file); ++ np->sf_file = NULL; ++ } ++ VBOXFS_NODE_UNLOCK(np); + } + +-static int vboxvfs_mkdir(struct vop_mkdir_args *ap) ++static int ++vboxfs_open(struct vop_open_args *ap) + { +- return 0; ++ struct vboxfs_node *np; ++ int error; ++ ++ MPASS(VOP_ISLOCKED(vp)); ++ ++ np = VP_TO_VBOXFS_NODE(ap->a_vp); ++ error = vboxfs_get_sfp_file(np); ++ if (error != 0) ++ goto out; ++ ++ vnode_create_vobject(ap->a_vp, 0, ap->a_td); ++out: ++ MPASS(VOP_ISLOCKED(vp)); ++ ++ return (error); + } + +-static int vboxvfs_rmdir(struct vop_rmdir_args *ap) ++static void ++vfsnode_invalidate_stat_cache(struct vboxfs_node *np) + { +- return 0; ++ np->sf_stat_time = 0; + } + +-static int vboxvfs_readdir(struct vop_readdir_args *ap) ++static int ++vboxfs_close(struct vop_close_args *ap) + { +- return 0; ++ struct vnode *vp = ap->a_vp; ++ struct vboxfs_node *np; ++ ++ np = VP_TO_VBOXFS_NODE(vp); ++ ++ /* ++ * Free the directory entries for the node. We do this on this call ++ * here because the directory node may not become inactive for a long ++ * time after the readdir is over. Case in point, if somebody cd's into ++ * the directory then it won't become inactive until they cd away again. ++ * In such a case we would end up with the directory listing not getting ++ * updated (i.e. the result of 'ls' always being the same) until they ++ * change the working directory. ++ */ ++ vfsnode_clear_dir_list(np); ++ ++ vfsnode_invalidate_stat_cache(np); ++ ++ vboxfs_put_sfp_file(np); ++ ++ return (0); + } + +-static int vboxvfs_fsync(struct vop_fsync_args *ap) ++static int ++vboxfs_getattr(struct vop_getattr_args *ap) + { +- return 0; ++ struct vnode *vp = ap->a_vp; ++ struct vattr *vap = ap->a_vap; ++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp); ++ struct vboxfs_mnt *mp = np->vboxfsmp; ++ mode_t mode; ++ int error = 0; ++ ++ mode = 0; ++ vap->va_type = vp->v_type; ++ ++ vap->va_nlink = 1; /* number of references to file */ ++ vap->va_uid = mp->sf_uid; /* owner user id */ ++ vap->va_gid = mp->sf_gid; /* owner group id */ ++ vap->va_rdev = NODEV; /* device the special file represents */ ++ vap->va_gen = VNOVAL; /* generation number of file */ ++ vap->va_flags = 0; /* flags defined for file */ ++ vap->va_filerev = 0; /* file modification number */ ++ vap->va_vaflags = 0; /* operations flags */ ++ vap->va_fileid = np->sf_ino; /* file id */ ++ vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0]; ++ if (vap->va_fileid == 0) ++ vap->va_fileid = 2; ++ ++ vap->va_atime.tv_sec = VNOVAL; ++ vap->va_atime.tv_nsec = VNOVAL; ++ vap->va_mtime.tv_sec = VNOVAL; ++ vap->va_mtime.tv_nsec = VNOVAL; ++ vap->va_ctime.tv_sec = VNOVAL; ++ vap->va_ctime.tv_nsec = VNOVAL; ++ ++ if (!vsfnode_stat_cached(np)) { ++ error = vsfnode_update_stat_cache(np); ++ if (error != 0) ++ goto done; ++ } ++ ++ vap->va_atime = np->sf_stat.sf_atime; ++ vap->va_mtime = np->sf_stat.sf_mtime; ++ vap->va_ctime = np->sf_stat.sf_ctime; ++ ++ mode = np->sf_stat.sf_mode; ++ ++ vap->va_mode = mode; ++ if (S_ISDIR(mode)) { ++ vap->va_type = VDIR; /* vnode type (for create) */ ++ vap->va_mode = mp->sf_dmode != 0 ? (mp->sf_dmode & 0777) : vap->va_mode; ++ vap->va_mode &= ~mp->sf_dmask; ++ vap->va_mode |= S_IFDIR; ++ } else if (S_ISREG(mode)) { ++ vap->va_type = VREG; ++ vap->va_mode = mp->sf_fmode != 0 ? (mp->sf_fmode & 0777) : vap->va_mode; ++ vap->va_mode &= ~mp->sf_fmask; ++ vap->va_mode |= S_IFREG; ++ } else if (S_ISFIFO(mode)) ++ vap->va_type = VFIFO; ++ else if (S_ISCHR(mode)) ++ vap->va_type = VCHR; ++ else if (S_ISBLK(mode)) ++ vap->va_type = VBLK; ++ else if (S_ISLNK(mode)) { ++ vap->va_type = VLNK; ++ vap->va_mode = mp->sf_fmode != 0 ? (mp->sf_fmode & 0777) : vap->va_mode; ++ vap->va_mode &= ~mp->sf_fmask; ++ vap->va_mode |= S_IFLNK; ++ } else if (S_ISSOCK(mode)) ++ vap->va_type = VSOCK; ++ ++ vap->va_size = np->sf_stat.sf_size; ++ vap->va_blocksize = 512; ++ /* bytes of disk space held by file */ ++ vap->va_bytes = (np->sf_stat.sf_alloc + 511) / 512; ++ ++done: ++ return (error); + } + +-static int vboxvfs_print (struct vop_print_args *ap) ++static int ++vboxfs_setattr(struct vop_setattr_args *ap) + { +- return 0; ++ struct vnode *vp = ap->a_vp; ++ struct vattr *vap = ap->a_vap; ++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp); ++ int error; ++ mode_t mode; ++ ++ mode = vap->va_mode; ++ if (vp->v_type == VREG) ++ mode |= S_IFREG; ++ else if (vp->v_type == VDIR) ++ mode |= S_IFDIR; ++ else if (vp->v_type == VBLK) ++ mode |= S_IFBLK; ++ else if (vp->v_type == VCHR) ++ mode |= S_IFCHR; ++ else if (vp->v_type == VLNK) ++ mode |= S_IFLNK; ++ else if (vp->v_type == VFIFO) ++ mode |= S_IFIFO; ++ else if (vp->v_type == VSOCK) ++ mode |= S_IFSOCK; ++ ++ vfsnode_invalidate_stat_cache(np); ++ ++ error = sfprov_set_attr(np->vboxfsmp->sf_handle, np->sf_path, ++ mode, vap->va_atime, vap->va_mtime, vap->va_ctime); ++#if 0 ++ if (error == ENOENT) ++ sfnode_make_stale(np); ++#endif ++ if (vap->va_size != (u_quad_t)VNOVAL) { ++ switch (vp->v_type) { ++ case VDIR: ++ return (EISDIR); ++ case VLNK: ++ /* FALLTHROUGH */ ++ case VREG: ++ error = sfprov_set_size(np->vboxfsmp->sf_handle, np->sf_path, vap->va_size); ++ break; ++ case VCHR: ++ /* FALLTHROUGH */ ++ case VBLK: ++ /* FALLTHROUGH */ ++ case VSOCK: ++ /* FALLTHROUGH */ ++ case VFIFO: ++ /* FALLTHROUGH */ ++ case VNON: ++ /* FALLTHROUGH */ ++ case VBAD: ++ /* FALLTHROUGH */ ++ case VMARKER: ++ return (0); ++ } ++ } ++ ++ return (error); + } + +-static int vboxvfs_pathconf (struct vop_pathconf_args *ap) ++#define blkoff(vboxfsmp, loc) ((loc) & (vboxfsmp)->bmask) ++ ++static int ++vboxfs_read(struct vop_read_args *ap) + { +- return 0; ++ struct vnode *vp = ap->a_vp; ++ struct uio *uio = ap->a_uio; ++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp); ++ int error = 0; ++ uint32_t bytes; ++ uint32_t done; ++ unsigned long offset; ++ ssize_t total; ++ void *tmpbuf; ++ ++ if (vp->v_type == VDIR) ++ return (EISDIR); ++ ++ if (vp->v_type != VREG) ++ return (EINVAL); ++ ++ if (uio->uio_offset < 0) ++ return (EINVAL); ++ ++ total = uio->uio_resid; ++ if (total == 0) ++ return (0); ++ ++ /* ++ * XXXGONZO: this is just to get things working ++ * should be optimized ++ */ ++ tmpbuf = contigmalloc(PAGE_SIZE, M_DEVBUF, M_WAITOK, 0, ~0, PAGE_SIZE, 0); ++ if (tmpbuf == 0) ++ return (ENOMEM); ++ ++ /* ++ * XXX VOP_READ() is called without VOP_OPEN() on exec case. ++ * We need to ensure the file is opened here. ++ */ ++ error = vboxfs_get_sfp_file(np); ++ if (error != 0) /* Maybe removed on the host. */ ++ return (EIO); ++ do { ++ offset = uio->uio_offset; ++ done = bytes = min(PAGE_SIZE, uio->uio_resid); ++ error = sfprov_read(np->sf_file, tmpbuf, ++ offset, &done, 0); ++ if (error == 0 && done > 0) ++ error = uiomove(tmpbuf, done, uio); ++ } while (error == 0 && uio->uio_resid > 0 && done > 0); ++ vboxfs_put_sfp_file(np); ++ ++ contigfree(tmpbuf, PAGE_SIZE, M_DEVBUF); ++ ++ /* a partial read is never an error */ ++ if (total != uio->uio_resid) ++ error = 0; ++ ++ return (error); + } + +-static int vboxvfs_strategy (struct vop_strategy_args *ap) ++static int ++vboxfs_write(struct vop_write_args *ap) + { +- return 0; ++ struct vnode *vp = ap->a_vp; ++ struct uio *uio = ap->a_uio; ++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(vp); ++ int error = 0; ++ uint32_t bytes; ++ uint32_t done; ++ unsigned long offset; ++ ssize_t total; ++ void *tmpbuf; ++ ++ if (vp->v_type == VDIR) ++ return (EISDIR); ++ ++ if (vp->v_type != VREG) ++ return (EINVAL); ++ ++ if (uio->uio_offset < 0) ++ return (EINVAL); ++ ++ total = uio->uio_resid; ++ if (total == 0) ++ return (0); ++ ++ /* ++ * XXXGONZO: this is just to get things working ++ * should be optimized ++ */ ++ tmpbuf = contigmalloc(PAGE_SIZE, M_DEVBUF, M_WAITOK, 0, ~0, PAGE_SIZE, 0); ++ if (tmpbuf == 0) ++ return (ENOMEM); ++ ++ do { ++ offset = uio->uio_offset; ++ bytes = min(PAGE_SIZE, uio->uio_resid); ++ error = uiomove(tmpbuf, bytes, uio); ++ if (error != 0) ++ break; ++ done = bytes; ++ error = sfprov_write(np->sf_file, tmpbuf, ++ offset, &done, 0); ++ if (error != 0) ++ break; ++ total -= done; ++ if (done != bytes) ++ uio->uio_resid += bytes - done; ++ } while (error == 0 && uio->uio_resid > 0 && done > 0); ++ ++ contigfree(tmpbuf, PAGE_SIZE, M_DEVBUF); ++ ++ /* a partial write is never an error */ ++ if (total != uio->uio_resid) ++ error = 0; ++ ++ return (error); + } + +-static int vboxvfs_ioctl(struct vop_ioctl_args *ap) ++static int ++vboxfs_create(struct vop_create_args *ap) + { +- return ENOTTY; ++ struct vnode *dvp = ap->a_dvp; ++ struct vnode **vpp = ap->a_vpp; ++ struct componentname *cnp = ap->a_cnp; ++ struct vattr *vap = ap->a_vap; ++ sffs_stat_t stat; ++ char *fullpath = NULL; ++ struct vboxfs_node *dir = VP_TO_VBOXFS_NODE(dvp); ++ int error; ++ struct vboxfs_mnt *vboxfsmp = dir->vboxfsmp; ++ ++ MPASS(vap->va_type == VREG); ++ ++ fullpath = sfnode_construct_path(dir, cnp->cn_nameptr, cnp->cn_namelen); ++ error = sfprov_create(dir->vboxfsmp->sf_handle, fullpath, vap->va_mode, ++ &stat); ++ ++ if (error) ++ goto out; ++ ++ error = vboxfs_alloc_file(vboxfsmp, fullpath, VREG, vap->va_mode, dir, cnp->cn_lkflags, vpp); ++ ++out: ++ if (fullpath) ++ free(fullpath, M_VBOXVFS); ++ ++ if (error == 0) { ++ vfsnode_clear_dir_list(dir); ++ if ((cnp->cn_flags & MAKEENTRY) != 0) ++ cache_enter(dvp, *vpp, cnp); ++ } ++ ++ return (error); + } + +-static int vboxvfs_getextattr(struct vop_getextattr_args *ap) ++static int ++vboxfs_remove(struct vop_remove_args *ap) + { +- return 0; ++ struct vnode *dvp = ap->a_dvp; ++ struct vnode *vp = ap->a_vp; ++ struct vboxfs_node *np, *dir; ++ ++ int error; ++ ++ MPASS(VOP_ISLOCKED(dvp)); ++ MPASS(VOP_ISLOCKED(vp)); ++ ++ error = 0; ++ ++ np = VP_TO_VBOXFS_NODE(vp); ++ dir = VP_TO_VBOXFS_NODE(vp); ++ ++ error = sfprov_remove(np->vboxfsmp->sf_handle, np->sf_path, ++ np->sf_type == VLNK); ++ ++#if 0 ++ if (error == ENOENT || error == 0) ++ sfnode_make_stale(np); ++#endif ++ ++ if (error == 0) ++ vfsnode_clear_dir_list(dir); ++ ++out: ++ return (error); + } + +-static int vboxvfs_advlock(struct vop_advlock_args *ap) ++static int ++vboxfs_rename(struct vop_rename_args *ap) + { +- return 0; ++ struct vnode *fvp; ++ struct vnode *fdvp; ++ struct vnode *tvp; ++ struct vnode *tdvp; ++ struct componentname *fcnp; ++ struct componentname *tcnp; ++ struct vboxfs_node *np; ++ int ret; ++ ++ fvp = ap->a_fvp; ++ fdvp = ap->a_fdvp; ++ tvp = ap->a_tvp; ++ tdvp = ap->a_tdvp; ++ fcnp = ap->a_fcnp; ++ tcnp = ap->a_tcnp; ++ ++ /* Check for cross-device rename */ ++ if ((fvp->v_mount != tdvp->v_mount) || ++ (tvp && (fvp->v_mount != tvp->v_mount))) { ++ ret = EXDEV; ++ goto out; ++ } ++ np = VP_TO_VBOXFS_NODE(fvp); ++ if (np == NULL) ++ return (0); ++ ret = sfprov_rename(np->vboxfsmp->sf_handle, ++ fcnp->cn_nameptr, tcnp->cn_nameptr, fvp->v_type == VDIR); ++out: ++ if (tdvp == tvp) ++ vrele(tdvp); ++ else ++ vput(tdvp); ++ if (tvp) ++ vput(tvp); ++ vrele(fdvp); ++ vrele(fvp); ++ return (ret); + } + +-static int vboxvfs_lookup(struct vop_lookup_args *ap) ++static int ++vboxfs_link(struct vop_link_args *ap) + { +- return 0; ++ return (EOPNOTSUPP); + } + +-static int vboxvfs_inactive(struct vop_inactive_args *ap) ++static int ++vboxfs_symlink(struct vop_symlink_args *ap) + { +- return 0; ++ struct vnode *dvp = ap->a_dvp; ++ struct vnode **vpp = ap->a_vpp; ++ struct componentname *cnp = ap->a_cnp; ++ struct vattr *vap = ap->a_vap; ++ sffs_stat_t stat; ++ char *fullpath = NULL; ++ struct vboxfs_node *dir = VP_TO_VBOXFS_NODE(dvp); ++ int error; ++ struct vboxfs_mnt *vboxfsmp = dir->vboxfsmp; ++ ++ MPASS(vap->va_type == VLNK); ++ ++ fullpath = sfnode_construct_path(dir, cnp->cn_nameptr, cnp->cn_namelen); ++ error = sfprov_symlink(dir->vboxfsmp->sf_handle, fullpath, ap->a_target, &stat); ++ ++ if (error) ++ goto out; ++ ++ error = vboxfs_alloc_file(vboxfsmp, fullpath, VLNK, vap->va_mode, dir, cnp->cn_lkflags, vpp); ++ ++out: ++ if (fullpath) ++ free(fullpath, M_VBOXVFS); ++ ++ if (error == 0) ++ vfsnode_clear_dir_list(dir); ++ ++ return (error); + } + +-static int vboxvfs_reclaim(struct vop_reclaim_args *ap) ++static int ++vboxfs_mkdir(struct vop_mkdir_args *ap) + { +- return 0; ++ struct vnode *dvp = ap->a_dvp; ++ struct vnode **vpp = ap->a_vpp; ++ struct componentname *cnp = ap->a_cnp; ++ struct vattr *vap = ap->a_vap; ++ sffs_stat_t stat; ++ char *fullpath = NULL; ++ struct vboxfs_node *dir = VP_TO_VBOXFS_NODE(dvp); ++ int error; ++ struct vboxfs_mnt *vboxfsmp = dir->vboxfsmp; ++ ++ MPASS(vap->va_type == VDIR); ++ ++ fullpath = sfnode_construct_path(dir, cnp->cn_nameptr, cnp->cn_namelen); ++ error = sfprov_mkdir(dir->vboxfsmp->sf_handle, fullpath, vap->va_mode, ++ &stat); ++ ++ if (error) ++ goto out; ++ ++ error = vboxfs_alloc_file(vboxfsmp, fullpath, VDIR, vap->va_mode, dir, cnp->cn_lkflags, vpp); ++ ++out: ++ if (fullpath) ++ free(fullpath, M_VBOXVFS); ++ ++ if (error == 0) ++ vfsnode_clear_dir_list(dir); ++ ++ return (error); + } + +-static int vboxvfs_getpages(struct vop_getpages_args *ap) ++static int ++vboxfs_rmdir(struct vop_rmdir_args *ap) + { +- return 0; ++ struct vnode *dvp = ap->a_dvp; ++ struct vnode *vp = ap->a_vp; ++ struct vboxfs_node *np, *dir; ++ ++ int error; ++ ++ MPASS(VOP_ISLOCKED(dvp)); ++ MPASS(VOP_ISLOCKED(vp)); ++ ++ error = 0; ++ ++ np = VP_TO_VBOXFS_NODE(vp); ++ dir = VP_TO_VBOXFS_NODE(vp); ++ ++ error = sfprov_rmdir(np->vboxfsmp->sf_handle, np->sf_path); ++ ++#if 0 ++ if (error == ENOENT || error == 0) ++ sfnode_make_stale(np); ++#endif ++ ++ if (error == 0) ++ vfsnode_clear_dir_list(dir); ++ ++out: ++ return (error); + } + +-static int vboxvfs_putpages(struct vop_putpages_args *ap) ++static int ++vboxfs_readdir(struct vop_readdir_args *ap) + { +- return 0; ++ int *eofp = ap->a_eofflag; ++ struct vnode *vp = ap->a_vp; ++ struct uio *uio = ap->a_uio; ++ struct vboxfs_node *dir = VP_TO_VBOXFS_NODE(vp); ++ struct vboxfs_node *node = NULL; ++ struct sffs_dirent *dirent = NULL; ++ sffs_dirents_t *cur_buf; ++ off_t offset = 0; ++ off_t orig_off = uio->uio_offset; ++ int error = 0; ++ int dummy_eof; ++ ++ if (vp->v_type != VDIR) ++ return (ENOTDIR); ++ ++ if (eofp == NULL) ++ eofp = &dummy_eof; ++ *eofp = 0; ++ ++ /* ++ * Get the directory entry names from the host. This gets all ++ * entries. These are stored in a linked list of sffs_dirents_t ++ * buffers, each of which contains a list of dirent64_t's. ++ */ ++ if (dir->sf_dir_list == NULL) { ++ error = sfprov_readdir(dir->vboxfsmp->sf_handle, dir->sf_path, ++ &dir->sf_dir_list); ++ if (error != 0) ++ goto done; ++ } ++ ++ /* ++ * Validate and skip to the desired offset. ++ */ ++ cur_buf = dir->sf_dir_list; ++ offset = 0; ++ ++ while (cur_buf != NULL && offset + cur_buf->sf_len <= uio->uio_offset) { ++ offset += cur_buf->sf_len; ++ cur_buf = cur_buf->sf_next; ++ } ++ ++ if (cur_buf == NULL && offset != uio->uio_offset) { ++ error = EINVAL; ++ goto done; ++ } ++ ++ if (cur_buf != NULL && offset != uio->uio_offset) { ++ off_t off = offset; ++ int step; ++ dirent = &cur_buf->sf_entries[0]; ++ ++ while (off < uio->uio_offset) { ++ if (dirent->sf_off == uio->uio_offset) ++ break; ++ step = sizeof(struct sffs_dirent) + dirent->sf_entry.d_reclen; ++ dirent = (struct sffs_dirent *) (((char *) dirent) + step); ++ off += step; ++ } ++ ++ if (off >= uio->uio_offset) { ++ error = EINVAL; ++ goto done; ++ } ++ } ++ ++ offset = uio->uio_offset - offset; ++ ++ /* ++ * Lookup each of the names, so that we have ino's, and copy to ++ * result buffer. ++ */ ++ while (cur_buf != NULL) { ++ if (offset >= cur_buf->sf_len) { ++ cur_buf = cur_buf->sf_next; ++ offset = 0; ++ continue; ++ } ++ ++ dirent = (struct sffs_dirent *) ++ (((char *) &cur_buf->sf_entries[0]) + offset); ++ if (dirent->sf_entry.d_reclen > uio->uio_resid) ++ break; ++ ++ if (strcmp(dirent->sf_entry.d_name, ".") == 0) { ++ node = dir; ++ } else if (strcmp(dirent->sf_entry.d_name, "..") == 0) { ++ node = dir->sf_parent; ++ if (node == NULL) ++ node = dir; ++ } else { ++#if 0 ++ node = vsfnode_lookup(dir, dirent->sf_entry.d_name, VNON, ++ 0, &dirent->sf_stat, vsfnode_cur_time_usec(), NULL); ++ if (node == NULL) ++ panic("sffs_readdir() lookup failed"); ++#endif ++ } ++ ++ if (node) ++ dirent->sf_entry.d_fileno = node->sf_ino; ++ else ++ dirent->sf_entry.d_fileno = 0xdeadbeef; ++ ++ error = uiomove(&dirent->sf_entry, dirent->sf_entry.d_reclen, uio); ++ if (error != 0) ++ break; ++ ++ uio->uio_offset = dirent->sf_off; ++ offset += sizeof(struct sffs_dirent) + dirent->sf_entry.d_reclen; ++ } ++ ++ if (error == 0 && cur_buf == NULL) ++ *eofp = 1; ++done: ++ if (error != 0) ++ uio->uio_offset = orig_off; ++ return (error); + } + ++static int ++vboxfs_readlink(struct vop_readlink_args *v) ++{ ++ struct vnode *vp = v->a_vp; ++ struct uio *uio = v->a_uio; ++ ++ int error; ++ struct vboxfs_node *np; ++ void *tmpbuf; ++ ++ MPASS(uio->uio_offset == 0); ++ MPASS(vp->v_type == VLNK); ++ ++ np = VP_TO_VBOXFS_NODE(vp); ++ ++ tmpbuf = contigmalloc(MAXPATHLEN, M_DEVBUF, M_WAITOK, 0, ~0, 1, 0); ++ if (tmpbuf == NULL) ++ return (ENOMEM); ++ ++ error = sfprov_readlink(np->vboxfsmp->sf_handle, np->sf_path, tmpbuf, ++ MAXPATHLEN); ++ if (error) ++ goto done; ++ ++ error = uiomove(tmpbuf, strlen(tmpbuf), uio); ++ ++done: ++ if (tmpbuf) ++ contigfree(tmpbuf, MAXPATHLEN, M_DEVBUF); ++ return (error); ++} ++ ++static int ++vboxfs_fsync(struct vop_fsync_args *ap) ++{ ++ struct vnode *vp; ++ struct vboxfs_node *np; ++ int ret; ++ ++ vp = ap->a_vp; ++ np = VP_TO_VBOXFS_NODE(vp); ++ if (np == NULL) ++ return (0); ++ ret = sfprov_fsync(np->sf_file); ++ return (ret); ++} ++ ++static int ++vboxfs_print(struct vop_print_args *ap) ++{ ++ struct vnode *vp = ap->a_vp; ++ struct vboxfs_node *np; ++ ++ np = VP_TO_VBOXFS_NODE(vp); ++ ++ if (np == NULL) { ++ printf("No vboxfs_node data\n"); ++ return (0); ++ } ++ ++ printf("\tpath = %s, parent = %p", np->sf_path, ++ np->sf_parent ? np->sf_parent : NULL); ++ printf("\n"); ++ return (0); ++} ++ ++static int ++vboxfs_pathconf(struct vop_pathconf_args *ap) ++{ ++ register_t *retval = ap->a_retval; ++ int error = 0; ++ ++ switch (ap->a_name) { ++ case _PC_LINK_MAX: ++ *retval = 65535; ++ break; ++ case _PC_NAME_MAX: ++ *retval = NAME_MAX; ++ break; ++ case _PC_PATH_MAX: ++ *retval = PATH_MAX; ++ break; ++ default: ++ error = EINVAL; ++ break; ++ } ++ return (error); ++} ++ ++/* ++ * File specific ioctls. ++ */ ++static int ++vboxfs_ioctl(struct vop_ioctl_args *ap) ++{ ++ return (ENOTTY); ++} ++ ++/* ++ * Lookup an entry in a directory and create a new vnode if found. ++ */ ++static int ++vboxfs_lookup1(struct vnode *dvp, struct vnode **vpp, ++ struct componentname *cnp) ++{ ++ char *nameptr = cnp->cn_nameptr; /* the name of the file or directory */ ++ struct vnode *tdp = NULL; ++ struct vboxfs_node *node = VP_TO_VBOXFS_NODE(dvp); ++ struct vboxfs_mnt *vboxfsmp = node->vboxfsmp; ++ u_long nameiop = cnp->cn_nameiop; ++ u_long flags = cnp->cn_flags; ++ sffs_stat_t stat; ++ //long namelen; ++ ino_t id = 0; ++ int ltype, type, error = 0; ++ int lkflags = cnp->cn_lkflags; ++ char *fullpath = NULL; ++ ++ *vpp = NULLVP; ++ error = ENOENT; ++ if (cnp->cn_flags & ISDOTDOT) { ++ error = vn_vget_ino_gen(dvp, vboxfs_vn_get_ino_alloc, ++ node->sf_parent, cnp->cn_lkflags, vpp); ++ error = ENOENT; ++ if (error != 0) ++ goto out; ++ ++ } else if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') { ++ VREF(dvp); ++ *vpp = dvp; ++ error = 0; ++ } else { ++ mode_t m; ++ type = VNON; ++ fullpath = sfnode_construct_path(node, cnp->cn_nameptr, cnp->cn_namelen); ++ error = sfprov_get_attr(node->vboxfsmp->sf_handle, ++ fullpath, &stat); ++ // stat_time = vsfnode_cur_time_usec(); ++ ++ m = stat.sf_mode; ++ if (error != 0) { ++ /* The entry was not found in the directory. ++ * This is OK if we are creating or renaming an ++ * entry and are working on the last component of ++ * the path name. */ ++ if ((cnp->cn_flags & ISLASTCN) && ++ (cnp->cn_nameiop == CREATE || \ ++ cnp->cn_nameiop == RENAME || ++ (cnp->cn_nameiop == DELETE && ++ cnp->cn_flags & DOWHITEOUT && ++ cnp->cn_flags & ISWHITEOUT))) { ++ error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred, ++#if __FreeBSD_version < 1400037 ++ cnp->cn_thread); ++#else ++ curthread); ++#endif ++ if (error != 0) ++ goto out; ++ ++#if __FreeBSD_version < 1400068 ++ /* Keep the component name in the buffer for ++ * future uses. */ ++ cnp->cn_flags |= SAVENAME; ++#endif ++ ++ error = EJUSTRETURN; ++ } else ++ error = ENOENT; ++ } ++ else { ++ if (S_ISDIR(m)) ++ type = VDIR; ++ else if (S_ISREG(m)) ++ type = VREG; ++ else if (S_ISLNK(m)) ++ type = VLNK; ++ error = vboxfs_alloc_file(vboxfsmp, fullpath, type, 0755, node, cnp->cn_lkflags, vpp); ++ } ++ } ++ ++ if ((cnp->cn_flags & MAKEENTRY) != 0) ++ cache_enter(dvp, *vpp, cnp); ++out: ++ if (fullpath) ++ free(fullpath, M_VBOXVFS); ++ ++ return (error); ++} ++ ++static int ++vboxfs_cachedlookup(struct vop_cachedlookup_args *ap) ++{ ++ return (vboxfs_lookup1(ap->a_dvp, ap->a_vpp, ap->a_cnp)); ++} ++ ++static int ++vboxfs_lookup(struct vop_lookup_args *ap) ++{ ++ struct vnode *dvp = ap->a_dvp; ++ struct componentname *cnp = ap->a_cnp; ++ struct vboxfs_node *np = VP_TO_VBOXFS_NODE(dvp); ++ struct timespec mtime; ++ int flags = cnp->cn_flags; ++ int error; ++ ++ if (dvp->v_type != VDIR) ++ return (ENOTDIR); ++ ++ if ((flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) && ++ (cnp->cn_nameiop == DELETE || cnp->cn_nameiop == RENAME)) ++ return (EROFS); ++ ++ error = vn_dir_check_exec(dvp, cnp); ++ if (error != 0) ++ return (error); ++ ++ /* Check if the directory is unmodified on the host. */ ++ mtime = np->sf_stat.sf_mtime; ++ error = vsfnode_update_stat_cache(np); ++ if (error == 0) { ++ if (mtime.tv_sec == np->sf_stat.sf_mtime.tv_sec && ++ mtime.tv_nsec == np->sf_stat.sf_mtime.tv_nsec) ++ return (vfs_cache_lookup(ap)); ++ } ++ ++ cache_purge(dvp); ++ ++ return (vboxfs_lookup1(ap->a_dvp, ap->a_vpp, ap->a_cnp)); ++} ++ ++static int ++vboxfs_inactive(struct vop_inactive_args *ap) ++{ ++ return (0); ++} ++ ++static int ++vboxfs_reclaim(struct vop_reclaim_args *ap) ++{ ++ struct vnode *vp; ++ struct vboxfs_node *node; ++ struct vboxfs_mnt *vboxfsmp; ++ ++ vp = ap->a_vp; ++ node = VP_TO_VBOXFS_NODE(vp); ++ vboxfsmp = node->vboxfsmp; ++ ++ vnode_destroy_vobject(vp); ++ vp->v_object = NULL; ++ cache_purge(vp); ++ ++ VBOXFS_NODE_LOCK(node); ++ VBOXFS_ASSERT_ELOCKED(node); ++ vboxfs_free_vp(vp); ++ ++ /* If the node referenced by this vnode was deleted by the user, ++ * we must free its associated data structures (now that the vnode ++ * is being reclaimed). */ ++ if ((node->sf_vpstate & VBOXFS_VNODE_ALLOCATING) == 0) { ++ node->sf_vpstate = VBOXFS_VNODE_DOOMED; ++ VBOXFS_NODE_UNLOCK(node); ++ vboxfs_free_node(vboxfsmp, node); ++ } else ++ VBOXFS_NODE_UNLOCK(node); ++ ++ MPASS(vp->v_data == NULL); ++ ++ return (0); ++} ++ ++static int ++vboxfs_vptofh(struct vop_vptofh_args *ap) ++{ ++ ++ return (EOPNOTSUPP); ++} diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk new file mode 100644 index 000000000000..afb19c804d7a --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Additions_x11_vboxmouse_Makefile.kmk @@ -0,0 +1,29 @@ +--- src/VBox/Additions/x11/vboxmouse/Makefile.kmk.orig 2019-01-25 18:24:30 UTC ++++ src/VBox/Additions/x11/vboxmouse/Makefile.kmk +@@ -227,10 +227,22 @@ endif # neq ($(KBUILD_TARGET),linux) + + + ifdef VBOX_USE_SYSTEM_XORG_HEADERS +- # As vboxmouse_drv is not needed at all for X.Org Server 1.7 and later do not +- # build it in this case. +- DLLS := $(filter-out vboxmouse_drv_%,$(DLLS)) +- SYSMODS := $(filter-out vboxmouse_drv%,$(SYSMODS)) ++ ifeq ($(KBUILD_TARGET),freebsd) ++ DLLS += vboxmouse_drv_system ++ vboxmouse_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD ++ vboxmouse_drv_system_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC ++ vboxmouse_drv_system_INCS := \ ++ /usr/local/include/pixman-1 \ ++ /usr/local/include/xorg \ ++ $(PATH_SUB_CURRENT) ++ vboxmouse_drv_system_SOURCES = \ ++ vboxmouse.c ++ else ++ # As vboxmouse_drv is not needed at all for X.Org Server 1.7 and later do not ++ # build it in this case. ++ DLLS := $(filter-out vboxmouse_drv_%,$(DLLS)) ++ SYSMODS := $(filter-out vboxmouse_drv%,$(SYSMODS)) ++ endif + endif + + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp new file mode 100644 index 000000000000..5ce43e5ce2d0 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp @@ -0,0 +1,20 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA.cpp.orig 2025-04-14 17:55:41 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA.cpp +@@ -178,7 +178,7 @@ + # ifdef RT_OS_DARWIN + # include "DevVGA-SVGA3d-cocoa.h" + # endif +-# ifdef RT_OS_LINUX ++# if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + # ifdef IN_RING3 + # include "DevVGA-SVGA3d-glLdr.h" + # endif +@@ -7685,7 +7685,7 @@ static void vmsvgaR3PowerOnDevice(PPDMDEVINS pDevIns, + } + # endif + +-# if defined(VBOX_WITH_VMSVGA3D) && defined(RT_OS_LINUX) ++# if defined(VBOX_WITH_VMSVGA3D) && (defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)) + if (pThis->svga.f3DEnabled) + { + /* The FIFO thread may use X API for accelerated screen output. */ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp new file mode 100644 index 000000000000..3a0a22e2ef76 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp @@ -0,0 +1,11 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp.orig 2025-05-12 17:49:35 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp +@@ -3363,7 +3363,7 @@ static DECLCALLBACK(int) vmsvga3dBackInit(PPDMDEVINS p + RT_NOREF(pDevIns, pThis); + + int rc; +-#ifdef RT_OS_LINUX /** @todo Remove, this is currently needed for loading the X11 library in order to call XInitThreads(). */ ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) /** @todo Remove, this is currently needed for loading the X11 library in order to call XInitThreads(). */ + rc = glLdrInit(pDevIns); + if (RT_FAILURE(rc)) + { diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp new file mode 100644 index 000000000000..e9ae5d0b71f9 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp @@ -0,0 +1,29 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2025-04-14 17:55:41 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp +@@ -196,7 +196,7 @@ int glLdrInit(PPDMDEVINS pDevIns) + pfn_wglDeleteContext = 0; + pfn_wglMakeCurrent = 0; + pfn_wglShareLists = 0; +-#elif defined(RT_OS_LINUX) ++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + pfn_XConfigureWindow = 0; + pfn_XCloseDisplay = 0; + pfn_XCreateColormap = 0; +@@ -306,7 +306,7 @@ int glLdrInit(PPDMDEVINS pDevIns) + GLGETPROC_(wglDeleteContext, ""); + GLGETPROC_(wglMakeCurrent, ""); + GLGETPROC_(wglShareLists, ""); +-#elif defined(RT_OS_LINUX) ++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + X11GETPROC_(XConfigureWindow); + X11GETPROC_(XCloseDisplay); + X11GETPROC_(XCreateColormap); +@@ -407,7 +407,7 @@ int glLdrInit(PPDMDEVINS pDevIns) + GLGETPROC_(glVertexPointer, ""); + GLGETPROC_(glViewport, ""); + +-#ifdef RT_OS_LINUX ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + XInitThreads(); + #endif + return VINF_SUCCESS; diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h new file mode 100644 index 000000000000..52d86f546033 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h @@ -0,0 +1,11 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2025-04-14 17:55:41 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h +@@ -346,7 +346,7 @@ GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC); + GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC); + #define wglShareLists pfn_wglShareLists + +-#elif defined(RT_OS_LINUX) ++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + /* + * GLX + */ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp new file mode 100644 index 000000000000..74106db011ff --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-ogl.cpp @@ -0,0 +1,56 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp.orig 2025-04-14 17:55:42 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp +@@ -1198,7 +1198,7 @@ static DECLCALLBACK(int) vmsvga3dBackTerminate(PVGASTA + RTSemEventDestroy(pState->WndRequestSem); + #elif defined(RT_OS_DARWIN) + +-#elif defined(RT_OS_LINUX) ++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + /* signal to the thread that it is supposed to exit */ + pState->bTerminate = true; + /* wait for it to terminate */ +@@ -3216,7 +3216,7 @@ static DECLCALLBACK(int) vmsvga3dBackGenerateMipmaps(P + } + + +-#ifdef RT_OS_LINUX ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + /** + * X11 event handling thread. + * +@@ -3246,7 +3246,7 @@ static DECLCALLBACK(int) vmsvga3dXEventThread(RTTHREAD + } + return VINF_SUCCESS; + } +-#endif // RT_OS_LINUX ++#endif // RT_OS_FREEBSD || RT_OS_LINUX + + + /** +@@ -3484,7 +3484,7 @@ int vmsvga3dContextDefineOgl(PVGASTATECC pThisCC, uint + return VINF_SUCCESS; + } + +-#if defined(RT_OS_LINUX) ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + /* + * HW accelerated graphics output. + */ +@@ -3976,7 +3976,7 @@ static DECLCALLBACK(int) vmsvga3dBackSurfaceBlitToScre + return VINF_SUCCESS; + } + +-#else /* !RT_OS_LINUX */ ++#else /* !RT_OS_FREEBSD && !RT_OS_LINUX */ + + static DECLCALLBACK(int) vmsvga3dBackDefineScreen(PVGASTATE pThis, PVGASTATECC pThisCC, VMSVGASCREENOBJECT *pScreen) + { +@@ -4096,7 +4096,7 @@ static int vmsvga3dContextDestroyOgl(PVGASTATECC pThis + AssertRC(rc); + #elif defined(RT_OS_DARWIN) + vmsvga3dCocoaDestroyViewAndContext(pContext->cocoaView, pContext->cocoaContext); +-#elif defined(RT_OS_LINUX) ++#elif defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + glXMakeCurrent(pState->display, None, NULL); + glXDestroyContext(pState->display, pContext->glxContext); + XDestroyWindow(pState->display, pContext->window); diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Makefile.kmk new file mode 100644 index 000000000000..021d004d5a00 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_Makefile.kmk @@ -0,0 +1,44 @@ +--- src/VBox/Devices/Makefile.kmk.orig 2024-10-10 20:29:17.000000000 +0200 ++++ src/VBox/Devices/Makefile.kmk 2024-12-27 13:26:17.132294000 +0100 +@@ -132,6 +132,7 @@ + VBoxDDU_LDFLAGS.darwin += -framework IOKit + endif + ++ VBoxDDU_LDFLAGS.freebsd = $(VBOX_GCC_NO_UNDEFINED) + VBoxDDU_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED) + $(call VBOX_SET_VER_INFO_DLL,VBoxDDU,VirtualBox VMM Devices and Drivers Utilities) + +@@ -286,6 +287,7 @@ + -framework SystemConfiguration \ + -framework AVFoundation \ + -framework Foundation ++ VBoxDD_LDFLAGS.freebsd = $(VBOX_GCC_NO_UNDEFINED) + VBoxDD_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED) + + # --- Tracing bits. --- +@@ -331,7 +333,7 @@ + Graphics/DevVGA-SVGA-cmd.cpp + endif + ifdef VBOX_WITH_VMSVGA3D +- if1of ($(KBUILD_TARGET), linux win) ++ if1of ($(KBUILD_TARGET), linux win freebsd) + # Dynamically load 3D library (opengl32, libGL). + # This is a temporary solution. In future the 3D backend will be in a separate library. + VBOX_WITH_VMSVGA3D_DYNAMIC_LOAD = 1 +@@ -390,6 +392,7 @@ + Graphics/DevVGA-SVGA3d-glLdr.cpp + else + VBoxDD_LIBS.linux += X11 GL ++ VBoxDD_LIBS.freebsd += X11 GL + VBoxDD_LIBS.win += $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Opengl32.lib + endif + VBoxDD_LDFLAGS.darwin += -framework OpenGL +@@ -1701,6 +1704,8 @@ + VBoxSVGA3D_INCS = $(VBOX_GRAPHICS_INCS) + VBoxSVGA3D_INCS.win := \ + Graphics/shaderlib/libWineStub/include ++ VBoxSVGA3D_INCS.freebsd := \ ++ Graphics/shaderlib/wine/include + VBoxSVGA3D_INCS.linux := \ + Graphics/shaderlib/wine/include + VBoxSVGA3D_INCS.darwin := \ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk new file mode 100644 index 000000000000..d59d98da3b83 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_PC_ipxe_Makefile.kmk @@ -0,0 +1,29 @@ +--- src/VBox/Devices/PC/ipxe/Makefile.kmk.orig 2025-01-21 19:56:40.000000000 +0700 ++++ src/VBox/Devices/PC/ipxe/Makefile.kmk 2025-01-23 00:47:50.818978000 +0700 +@@ -45,7 +45,7 @@ + iPxeBiosBin_CLEAN = \ + $(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \ + +-if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 darwin.arm64 linux.arm64 os2.x86 solaris.amd64 win.amd64 win.arm64) ++if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 darwin.arm64 linux.arm64 os2.x86 solaris.amd64 win.amd64 win.arm64 linux.amd64 freebsd.amd64) + $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@) + $(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@) + $(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@ +@@ -131,7 +131,7 @@ + -falign-loops=1 \ + -Os \ + -falign-functions=1 \ +- -mpreferred-stack-boundary=2 \ ++ -mstack-alignment=2 \ + -mregparm=3 \ + -mrtd \ + -freg-struct-return \ +@@ -154,7 +154,7 @@ + -falign-jumps=1 \ + -falign-loops=1 \ + -falign-functions=1 \ +- -mpreferred-stack-boundary=2 \ ++ -mstack-alignment=2 \ + -mregparm=3 \ + -mrtd \ + -freg-struct-return \ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_USB_USBProxyDevice-freebsd.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_USB_USBProxyDevice-freebsd.cpp new file mode 100644 index 000000000000..045e328d5c48 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Devices_USB_USBProxyDevice-freebsd.cpp @@ -0,0 +1,11 @@ +--- src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp.orig 2024-01-11 12:23:15 UTC ++++ src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp +@@ -57,7 +57,7 @@ + #include "../USBProxyDevice.h" + + /** Maximum endpoints supported. */ +-#define USBFBSD_MAXENDPOINTS 127 ++#define USBFBSD_MAXENDPOINTS 126 + #define USBFBSD_MAXFRAMES 56 + + /** This really needs to be defined in vusb.h! */ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp new file mode 100644 index 000000000000..f364e261f40b --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp @@ -0,0 +1,58 @@ +--- src/VBox/ExtPacks/VNC/VBoxVNC.cpp.orig 2024-01-11 12:24:04 UTC ++++ src/VBox/ExtPacks/VNC/VBoxVNC.cpp +@@ -45,7 +45,7 @@ + + #ifdef LIBVNCSERVER_IPv6 + // enable manually! +-// #define VBOX_USE_IPV6 ++#define VBOX_USE_IPV6 + #endif + + +@@ -421,7 +421,7 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections + + // get address + char *pszTCPAddress = (char *)RTMemTmpAllocZ(VNC_ADDRESS_OPTION_MAX); +- rc = instance->mCallbacks->VRDECallbackProperty(instance->mCallback, ++ int rc = instance->mCallbacks->VRDECallbackProperty(instance->mCallback, + VRDE_QP_NETWORK_ADDRESS, + pszTCPAddress, + VNC_ADDRESS_OPTION_MAX, +@@ -582,19 +582,35 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections + pszServerAddress6 = szIPv6ListenAll; + } + +- if (pszVNCPort4 && uServerPort4 == 0) ++ if (strlen(pszVNCPort4) > 0 && uServerPort4 == 0) + { + rc = RTStrToUInt32Ex(pszVNCPort4, NULL, 10, &uServerPort4); + if (!RT_SUCCESS(rc) || uServerPort4 > 65535) + uServerPort4 = 0; + } + +- if (pszVNCPort6 && uServerPort6 == 0) ++ if (strlen(pszVNCPort6) > 0 && uServerPort6 == 0) + { + rc = RTStrToUInt32Ex(pszVNCPort6, NULL, 10, &uServerPort6); + if (!RT_SUCCESS(rc) || uServerPort6 > 65535) + uServerPort6 = 0; + } ++ ++/* Backward compatibility with set port in "TCP/Ports" only { */ ++ if (uServerPort4 == 0 && strlen(pszTCPPort) > 0) ++ { ++ rc = RTStrToUInt32Ex(pszTCPPort, NULL, 10, &uServerPort4); ++ if (!RT_SUCCESS(rc) || uServerPort4 > 65535) ++ uServerPort4 = 0; ++ } ++ ++ if (uServerPort6 == 0 && strlen(pszTCPPort) > 0) ++ { ++ rc = RTStrToUInt32Ex(pszTCPPort, NULL, 10, &uServerPort6); ++ if (!RT_SUCCESS(rc) || uServerPort6 > 65535) ++ uServerPort6 = 0; ++ } ++/* } */ + + if (uServerPort4 == 0 || uServerPort6 == 0) + vncServer->autoPort = 1; diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp new file mode 100644 index 000000000000..ca03e57922b4 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp @@ -0,0 +1,11 @@ +--- src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp.orig 2024-12-26 22:32:13.106542000 +0100 ++++ src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp 2024-12-26 22:32:32.805126000 +0100 +@@ -61,7 +61,7 @@ + # include <iprt/process.h> + #endif + +-#if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) ++#if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD) + # include <cerrno> + #endif + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp new file mode 100644 index 000000000000..fc1639b58302 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Frontends_VBoxManage_VBoxManageModifyVM.cpp @@ -0,0 +1,29 @@ +--- src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp.orig 2022-10-06 19:10:28.000000000 +0200 ++++ src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp 2024-12-26 16:08:30.624183000 +0100 +@@ -170,7 +170,7 @@ + MODIFYVM_UARTMODE, + MODIFYVM_UARTTYPE, + MODIFYVM_UART, +-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) + MODIFYVM_LPTMODE, + MODIFYVM_LPT, + #endif +@@ -382,7 +382,7 @@ + OPT2("--uart-mode", "--uartmode", MODIFYVM_UARTMODE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX), + OPT2("--uart-type", "--uarttype", MODIFYVM_UARTTYPE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX), + OPT1("--uart", MODIFYVM_UART, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX), +-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) ++#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) || defined(RT_OS_FREEBSD) + OPT2("--lpt-mode", "--lptmode", MODIFYVM_LPTMODE, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX), + OPT1("--lpt", MODIFYVM_LPT, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX), + #endif +@@ -2496,7 +2496,7 @@ + break; + } + +-#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS) + case MODIFYVM_LPTMODE: + { + ComPtr<IParallelPort> lpt; diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp new file mode 100644 index 000000000000..4139a88a9929 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrv.cpp @@ -0,0 +1,13 @@ +--- src/VBox/HostDrivers/Support/SUPDrv.cpp.orig 2024-12-27 08:34:02.157677000 +0100 ++++ src/VBox/HostDrivers/Support/SUPDrv.cpp 2024-12-27 08:34:25.419134000 +0100 +@@ -317,8 +317,8 @@ + SUPEXP_STK_BACK( 2, SUPR0PageFree), + SUPEXP_STK_BACK( 6, SUPR0PageMapKernel), + SUPEXP_STK_BACK( 6, SUPR0PageProtect), +-#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD) +- SUPEXP_STK_OKAY( 2, SUPR0HCPhysToVirt), /* only-linux, only-solaris, only-freebsd */ ++#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) ++ SUPEXP_STK_OKAY( 2, SUPR0HCPhysToVirt), /* only-linux, only-solaris */ + #endif + SUPEXP_STK_BACK( 2, SUPR0PrintfV), + SUPEXP_STK_BACK( 1, SUPR0GetSessionGVM), diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h new file mode 100644 index 000000000000..7376ad6fbddd --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_SUPDrvInternal.h @@ -0,0 +1,11 @@ +--- src/VBox/HostDrivers/Support/SUPDrvInternal.h.orig 2021-01-07 15:41:25 UTC ++++ src/VBox/HostDrivers/Support/SUPDrvInternal.h +@@ -217,7 +217,7 @@ + # define SUPDRV_WITHOUT_MSR_PROBER + #endif + +-#if 1 ++#if 0 + /** @def SUPDRV_USE_TSC_DELTA_THREAD + * Use a dedicated kernel thread to service TSC-delta measurement requests. + * @todo Test on servers with many CPUs and sockets. */ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile new file mode 100644 index 000000000000..a3b6a032b529 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_Makefile @@ -0,0 +1,30 @@ +--- src/VBox/HostDrivers/Support/freebsd/Makefile.orig 2025-01-21 19:58:52.000000000 +0700 ++++ src/VBox/HostDrivers/Support/freebsd/Makefile 2025-03-22 22:28:21.276497000 +0700 +@@ -93,6 +93,7 @@ + assert.c \ + handletable.c \ + handletablectx.c \ ++ handletablesimple.c \ + once.c \ + term.c \ + thread.c +@@ -117,7 +118,8 @@ + strprintf2-ellipsis.c \ + strtonum.c \ + memchr.c \ +- stringalloc.c ++ stringalloc.c \ ++ utf-8.c + + .PATH: ${.CURDIR}/common/rand + SRCS += \ +@@ -163,7 +165,8 @@ + rtStrFormatKernelAddress-generic.c \ + errvars-generic.c \ + mppresent-generic.c \ +- timer-generic.c ++ timer-generic.c \ ++ system-page-size-generic.c + + .PATH: ${.CURDIR}/r0drv + SRCS += \ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c new file mode 100644 index 000000000000..7faa07739f14 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c @@ -0,0 +1,234 @@ +--- src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c.orig 2025-01-21 14:06:14 UTC ++++ src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c +@@ -44,9 +44,13 @@ + #include <sys/fcntl.h> + #include <sys/conf.h> + #include <sys/uio.h> ++#include <vm/vm.h> + #include <vm/pmap.h> /* for pmap_map() */ ++#include <sys/mutex.h> ++#include <sys/smp.h> /* mp_maxcpus */ + + #include "../SUPDrvInternal.h" ++#include "freebsd/the-freebsd-kernel.h" + #include <VBox/version.h> + #include <iprt/initterm.h> + #include <iprt/string.h> +@@ -58,7 +62,15 @@ + #include <iprt/alloc.h> + #include <iprt/err.h> + #include <iprt/asm.h> ++#include <iprt/x86.h> + ++ ++#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV ++# include <machine/cpufunc.h> ++# include <machine/md_var.h> ++# include <machine/specialreg.h> ++#endif ++ + #ifdef VBOX_WITH_HARDENING + # define VBOXDRV_PERM 0600 + #else +@@ -77,7 +89,9 @@ static d_ioctl_t VBoxDrvFreeBSDIOCtl; + static d_open_t VBoxDrvFreeBSDOpenSys; + static void vboxdrvFreeBSDDtr(void *pvData); + static d_ioctl_t VBoxDrvFreeBSDIOCtl; ++static d_ioctl_t VBoxDrvFreeBSDIOCtlSMAP; + static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSession, u_long ulCmd, caddr_t pvData, struct thread *pTd); ++static bool VBoxDrvFreeBSDCpuHasSMAP(void); + + + /********************************************************************************************************************************* +@@ -94,7 +108,8 @@ static moduledata_t g_VBoxDrvFreeBSDModule = + }; + + /** Declare the module as a pseudo device. */ +-DECLARE_MODULE(vboxdrv, g_VBoxDrvFreeBSDModule, SI_SUB_PSEUDO, SI_ORDER_ANY); ++#define KERNEL_RELBRANCHEND (roundup(__FreeBSD_version, 500) - 1) ++DECLARE_MODULE_WITH_MAXVER(vboxdrv, g_VBoxDrvFreeBSDModule, SI_SUB_PSEUDO, SI_ORDER_ANY, KERNEL_RELBRANCHEND); + MODULE_VERSION(vboxdrv, 1); + + /** +@@ -141,6 +156,13 @@ static int VBoxDrvFreeBSDModuleEvent(struct module *pM + static int VBoxDrvFreeBSDModuleEvent(struct module *pMod, int enmEventType, void *pvArg) + { + int rc; ++ ++ /* Refuse to load if mp_maxcpus is wrong */ ++ if (MAXCPU != mp_maxcpus) { ++ printf("vboxdrv: MAXCPU != mp_maxcpus (%d != %d)\n", MAXCPU, mp_maxcpus); ++ return EINVAL; ++ } ++ + switch (enmEventType) + { + case MOD_LOAD: +@@ -183,6 +205,13 @@ static int VBoxDrvFreeBSDLoad(void) + rc = supdrvInitDevExt(&g_VBoxDrvFreeBSDDevExt, sizeof(SUPDRVSESSION)); + if (RT_SUCCESS(rc)) + { ++ if (VBoxDrvFreeBSDCpuHasSMAP()) ++ { ++ LogRel(("disabling SMAP for VBoxDrvFreeBSDIOCtl\n")); ++ g_VBoxDrvFreeBSDChrDevSwSys.d_ioctl = VBoxDrvFreeBSDIOCtlSMAP; ++ g_VBoxDrvFreeBSDChrDevSwUsr.d_ioctl = VBoxDrvFreeBSDIOCtlSMAP; ++ } ++ + /* + * Configure character devices. Add symbolic links for compatibility. + */ +@@ -322,7 +351,45 @@ static int VBoxDrvFreeBSDIOCtl(struct cdev *pDev, u_lo + return VBoxDrvFreeBSDIOCtlSlow(pSession, ulCmd, pvData, pTd); + } + ++/** ++ * Alternative Device I/O Control entry point on hosts with SMAP support. ++ * ++ * @returns depends... ++ * @param pDev The device. ++ * @param ulCmd The command. ++ * @param pvData Pointer to the data. ++ * @param fFile The file descriptor flags. ++ * @param pTd The calling thread. ++ */ ++static int VBoxDrvFreeBSDIOCtlSMAP(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd) ++{ ++ /* ++ * Allow VBox R0 code to touch R3 memory. Setting the AC bit disables the ++ * SMAP check. ++ */ ++ RTCCUINTREG fSavedEfl = ASMAddFlags(X86_EFL_AC); + ++ int rc = VBoxDrvFreeBSDIOCtl(pDev, ulCmd, pvData, fFile, pTd); ++ ++#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV ++ /* ++ * Before we restore AC and the rest of EFLAGS, check if the IOCtl handler code ++ * accidentially modified it or some other important flag. ++ */ ++ if (RT_UNLIKELY( (ASMGetFlags() & (X86_EFL_AC | X86_EFL_IF | X86_EFL_DF | X86_EFL_IOPL)) ++ != ((fSavedEfl & (X86_EFL_AC | X86_EFL_IF | X86_EFL_DF | X86_EFL_IOPL)) | X86_EFL_AC) )) ++ { ++ char szTmp[48]; ++ RTStrPrintf(szTmp, sizeof(szTmp), "ulCmd=%#x: %#x->%#x!", ulCmd, (uint32_t)fSavedEfl, (uint32_t)ASMGetFlags()); ++ supdrvBadContext(&g_VBoxDrvFreeBSDDevExt, "SUPDrv-freebsd.c", __LINE__, szTmp); ++ } ++#endif ++ ++ ASMSetFlags(fSavedEfl); ++ return rc; ++} ++ ++ + /** + * Deal with the 'slow' I/O control requests. + * +@@ -372,11 +439,10 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes + */ + SUPREQHDR Hdr; + pvUser = *(void **)pvData; +- int rc = copyin(pvUser, &Hdr, sizeof(Hdr)); +- if (RT_UNLIKELY(rc)) ++ if (RT_FAILURE(RTR0MemUserCopyFrom(&Hdr, (uintptr_t)pvUser, sizeof(Hdr)))) + { +- OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyin(%p,Hdr,) -> %#x; ulCmd=%#lx\n", pvUser, rc, ulCmd)); +- return rc; ++ OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyin(%p,Hdr,); ulCmd=%#lx\n", pvUser, ulCmd)); ++ return EFAULT; + } + if (RT_UNLIKELY((Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC)) + { +@@ -401,13 +467,12 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes + OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: failed to allocate buffer of %d bytes; ulCmd=%#lx\n", cbReq, ulCmd)); + return ENOMEM; + } +- rc = copyin(pvUser, pHdr, Hdr.cbIn); +- if (RT_UNLIKELY(rc)) ++ if (RT_FAILURE(RTR0MemUserCopyFrom(pHdr, (uintptr_t)pvUser, Hdr.cbIn))) + { +- OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyin(%p,%p,%#x) -> %#x; ulCmd=%#lx\n", +- pvUser, pHdr, Hdr.cbIn, rc, ulCmd)); ++ OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyin(%p,%p,%#x); ulCmd=%#lx\n", ++ pvUser, pHdr, Hdr.cbIn, ulCmd)); + RTMemTmpFree(pHdr); +- return rc; ++ return EFAULT; + } + if (Hdr.cbIn < cbReq) + RT_BZERO((uint8_t *)pHdr + Hdr.cbIn, cbReq - Hdr.cbIn); +@@ -435,9 +500,8 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes + OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: too much output! %#x > %#x; uCmd=%#lx!\n", cbOut, cbReq, ulCmd)); + cbOut = cbReq; + } +- rc = copyout(pHdr, pvUser, cbOut); +- if (RT_UNLIKELY(rc)) +- OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyout(%p,%p,%#x) -> %d; uCmd=%#lx!\n", pHdr, pvUser, cbOut, rc, ulCmd)); ++ if (RT_FAILURE(RTR0MemUserCopyTo((uintptr_t)pvUser, pHdr, cbOut))) ++ OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyout(%p,%p,%#x); uCmd=%#lx!\n", pHdr, pvUser, cbOut, ulCmd)); + + Log(("VBoxDrvFreeBSDIOCtlSlow: returns %d / %d ulCmd=%lx\n", 0, pHdr->rc, ulCmd)); + +@@ -540,8 +604,7 @@ bool VBOXCALL supdrvOSAreCpusOfflinedOnSuspend(void) + + bool VBOXCALL supdrvOSAreCpusOfflinedOnSuspend(void) + { +- /** @todo verify this. */ +- return false; ++ return true; + } + + +@@ -637,31 +700,44 @@ int VBOXCALL supdrvOSMsrProberModify(RTCPUID idCpu, + #endif /* SUPDRV_WITH_MSR_PROBER */ + + +-#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_ARM64) +-SUPR0DECL(int) SUPR0HCPhysToVirt(RTHCPHYS HCPhys, void **ppv) ++/** ++ * Check if the CPU has SMAP support. ++ */ ++static bool VBoxDrvFreeBSDCpuHasSMAP(void) + { +- AssertReturn(!(HCPhys & PAGE_OFFSET_MASK), VERR_INVALID_POINTER); +- AssertReturn(HCPhys != NIL_RTHCPHYS, VERR_INVALID_POINTER); +- *ppv = (void *)(uintptr_t)pmap_map(NULL, HCPhys, (HCPhys | PAGE_OFFSET_MASK) + 1, VM_PROT_WRITE | VM_PROT_READ); +- return VINF_SUCCESS; +-} ++#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV ++ if ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0) ++ return true; + #endif ++ return false; ++} + + + SUPR0DECL(int) SUPR0PrintfV(const char *pszFormat, va_list va) + { + char szMsg[256]; ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + RTStrPrintfV(szMsg, sizeof(szMsg), pszFormat, va); + szMsg[sizeof(szMsg) - 1] = '\0'; + + printf("%s", szMsg); ++ ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return 0; + } + + + SUPR0DECL(uint32_t) SUPR0GetKernelFeatures(void) + { +- return 0; ++ uint32_t fFlags = 0; ++#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV ++ if (g_VBoxDrvFreeBSDChrDevSwSys.d_ioctl == VBoxDrvFreeBSDIOCtlSMAP) ++ fFlags |= SUPKERNELFEATURES_SMAP; ++ else ++ Assert(!(ASMGetCR4() & X86_CR4_SMAP)); ++#endif ++ return fFlags; + } + + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp new file mode 100644 index 000000000000..95cbe0e2a32c --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPLib-freebsd.cpp @@ -0,0 +1,11 @@ +--- src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp.orig 2024-10-10 20:31:28.000000000 +0200 ++++ src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp 2024-11-17 18:27:46.400938000 +0100 +@@ -88,7 +88,7 @@ + /* + * Try open the BSD device. + */ +- const char * const *pszDeviceNm = fFlags & SUPR3INIT_F_UNRESTRICTED ? DEVICE_NAME_SYS : DEVICE_NAME_USR; ++ const char * pszDeviceNm = fFlags & SUPR3INIT_F_UNRESTRICTED ? DEVICE_NAME_SYS : DEVICE_NAME_USR; + int hDevice = open(pszDeviceNm, O_RDWR, 0); + if (hDevice < 0) + { diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv new file mode 100644 index 000000000000..c5abc9bfadd1 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_Support_freebsd_files__vboxdrv @@ -0,0 +1,34 @@ +--- src/VBox/HostDrivers/Support/freebsd//files_vboxdrv.orig 2025-01-21 19:58:53.000000000 +0700 ++++ src/VBox/HostDrivers/Support/freebsd//files_vboxdrv 2025-03-17 00:31:16.880317000 +0700 +@@ -71,6 +71,7 @@ + ${PATH_ROOT}/include/iprt/stdarg.h=>include/iprt/stdarg.h \ + ${PATH_ROOT}/include/iprt/stdint.h=>include/iprt/stdint.h \ + ${PATH_ROOT}/include/iprt/string.h=>include/iprt/string.h \ ++ ${PATH_ROOT}/include/iprt/system.h=>include/iprt/system.h \ + ${PATH_ROOT}/include/iprt/thread.h=>include/iprt/thread.h \ + ${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \ + ${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \ +@@ -133,6 +134,7 @@ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.cpp=>common/misc/handletable.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.h=>common/misc/handletable.h \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \ ++ ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablesimple.cpp=>common/misc/handletablesimple.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/term.cpp=>common/misc/term.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \ +@@ -154,6 +156,7 @@ + ${PATH_ROOT}/src/VBox/Runtime/common/string/strprintf2-ellipsis.cpp=>common/string/strprintf2-ellipsis.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/string/strtonum.cpp=>common/string/strtonum.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/string/memchr.cpp=>common/string/memchr.c \ ++ ${PATH_ROOT}/src/VBox/Runtime/common/string/utf-8.cpp=>common/string/utf-8.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/string/stringalloc.cpp=>common/string/stringalloc.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/rand/rand.cpp=>common/rand/rand.c \ + ${PATH_ROOT}/src/VBox/Runtime/common/rand/randadv.cpp=>common/rand/randadv.c \ +@@ -200,6 +203,7 @@ + ${PATH_ROOT}/src/VBox/Runtime/generic/RTMpOnPair-generic.cpp=>generic/RTMpOnPair-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/generic/errvars-generic.cpp=>generic/errvars-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/generic/mppresent-generic.cpp=>generic/mppresent-generic.c \ ++ ${PATH_ROOT}/src/VBox/Runtime/generic/system-page-size-generic.cpp=>generic/system-page-size-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/generic/timer-generic.cpp=>generic/timer-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/generic/uuid-generic.cpp=>generic/uuid-generic.c \ + ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.cpp=>r0drv/alloc-r0drv.c \ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile new file mode 100644 index 000000000000..e94dc6f85e27 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile @@ -0,0 +1,11 @@ +--- src/VBox/HostDrivers/VBoxNetAdp/freebsd/Makefile.orig 2019-05-13 13:33:07 UTC ++++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/Makefile +@@ -26,7 +26,7 @@ + + KMOD = vboxnetadp + +-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVIMAGE ++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DVIMAGE -Iinclude -I. -Ir0drv -w + + .if (${MACHINE_ARCH} == "i386") + CFLAGS += -DRT_ARCH_X86 diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c new file mode 100644 index 000000000000..8da432449fe1 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetAdp_freebsd_VBoxNetAdp-freebsd.c @@ -0,0 +1,147 @@ +--- src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c.orig 2024-01-11 12:25:08 UTC ++++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c +@@ -216,7 +216,11 @@ static void VBoxNetAdpFreeBSDNetinit(void *priv) + PVBOXNETADP pThis = priv; + struct ifnet *ifp = pThis->u.s.ifp; + ++#if __FreeBSD_version >= 1500000 ++ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0); ++#else + ifp->if_drv_flags |= IFF_DRV_RUNNING; ++#endif + } + + /** +@@ -226,25 +230,46 @@ static void VBoxNetAdpFreeBSDNetstart(struct ifnet *if + */ + static void VBoxNetAdpFreeBSDNetstart(struct ifnet *ifp) + { ++#if __FreeBSD_version >= 1500000 ++ PVBOXNETADP pThis = if_getsoftc(ifp); ++#else + PVBOXNETADP pThis = ifp->if_softc; ++#endif + struct mbuf *m; + ++#if __FreeBSD_version >= 1500000 ++ if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING) ++#else + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING) ++#endif + return; + ++#if __FreeBSD_version >= 1500000 ++ if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0); ++ while (!if_sendq_empty(ifp)) ++#else + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) ++#endif + { + #if __FreeBSD_version >= 1100036 + if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); + #else + ifp->if_opackets++; + #endif ++#if __FreeBSD_version >= 1500000 ++ m = if_dequeue(ifp); ++#else + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); ++#endif + BPF_MTAP(ifp, m); + m_freem(m); + } ++#if __FreeBSD_version >= 1500000 ++ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE); ++#else + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; ++#endif + } + + /** +@@ -257,6 +282,18 @@ static int VBoxNetAdpFreeBSDNetioctl(struct ifnet *ifp + switch (cmd) + { + case SIOCSIFFLAGS: ++#if __FreeBSD_version >= 1500000 ++ if (if_getflags(ifp) & IFF_UP) ++ { ++ if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) ++ if_init(ifp, if_getsoftc(ifp)); ++ } ++ else ++ { ++ if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) ++ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING); ++ } ++#else + if (ifp->if_flags & IFF_UP) + { + if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) +@@ -267,6 +304,7 @@ static int VBoxNetAdpFreeBSDNetioctl(struct ifnet *ifp + if (ifp->if_drv_flags & IFF_DRV_RUNNING) + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; + } ++#endif + break; + case SIOCGIFMEDIA: + { +@@ -301,7 +339,11 @@ int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMac + + int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMac) + { ++#if __FreeBSD_version >= 1500000 ++ if_t ifp; ++#else + struct ifnet *ifp; ++#endif + + VBOXCURVNET_SET_FROM_UCRED(); + ifp = if_alloc(IFT_ETHER); +@@ -309,6 +351,16 @@ int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMac + return VERR_NO_MEMORY; + + if_initname(ifp, VBOXNETADP_NAME, pThis->iUnit); ++#if __FreeBSD_version >= 1500000 ++ if_setsoftc(ifp, pThis); ++ if_setmtu(ifp, ETHERMTU); ++ if_setflagbits(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, 0); ++ if_setioctlfn(ifp, VBoxNetAdpFreeBSDNetioctl); ++ if_setstartfn(ifp, VBoxNetAdpFreeBSDNetstart); ++ if_setinitfn(ifp, VBoxNetAdpFreeBSDNetinit); ++ if_setsendqlen(ifp, IFQ_MAXLEN); ++ if_setsendqready(ifp); ++#else + ifp->if_softc = pThis; + ifp->if_mtu = ETHERMTU; + ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; +@@ -318,10 +370,17 @@ int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMac + IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN); + ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; + IFQ_SET_READY(&ifp->if_snd); ++#endif + ether_ifattach(ifp, (void *)pMac); ++#if __FreeBSD_version >= 1500000 ++ (void)if_setbaudrate(ifp, 0); ++ ++ strncpy(pThis->szName, if_name(ifp), VBOXNETADP_MAX_NAME_LEN); ++#else + ifp->if_baudrate = 0; + + strncpy(pThis->szName, ifp->if_xname, VBOXNETADP_MAX_NAME_LEN); ++#endif + pThis->u.s.ifp = ifp; + VBOXCURVNET_RESTORE(); + return 0; +@@ -332,7 +391,11 @@ void vboxNetAdpOsDestroy(PVBOXNETADP pThis) + struct ifnet *ifp; + + ifp = pThis->u.s.ifp; ++#if __FreeBSD_version >= 1500000 ++ VBOXCURVNET_SET(if_getvnet(ifp)); ++#else + VBOXCURVNET_SET(ifp->if_vnet); ++#endif + ether_ifdetach(ifp); + if_free(ifp); + VBOXCURVNET_RESTORE(); diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk new file mode 100644 index 000000000000..9c7ab624c52a --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk @@ -0,0 +1,11 @@ +--- src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk.orig 2019-05-13 13:33:07 UTC ++++ src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk +@@ -565,7 +565,7 @@ $(PATH_OUT)/opt_netgraph.h: + $(QUIET)$(RM) -f -- $@ + $(QUIET)$(CP) -f $< $@ + ifndef VBOX_WITH_HARDENING +- $(QUIET)$(SED) -e "s;VBOX_WITH_HARDENING;;g" --output $@.tmp $@ ++ $(QUIET)$(SED) -e "s;-DVBOX_WITH_HARDENING;;g" --output $@.tmp $@ + ${QUIET}$(MV) -f $@.tmp $@ + endif + ifndef VBOX_WITH_NETFLT_VIMAGE diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile new file mode 100644 index 000000000000..e819561ab9a8 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile @@ -0,0 +1,11 @@ +--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/Makefile.orig 2019-05-13 13:33:07 UTC ++++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/Makefile +@@ -26,7 +26,7 @@ + + KMOD = vboxnetflt + +-CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVIMAGE ++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DVIMAGE -Iinclude -I. -Ir0drv -w + + .if (${MACHINE_ARCH} == "i386") + CFLAGS += -DRT_ARCH_X86 diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c new file mode 100644 index 000000000000..6e3d40a42e43 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c @@ -0,0 +1,471 @@ +--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c.orig 2024-01-11 12:25:08 UTC ++++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c +@@ -52,6 +52,7 @@ + #include <net/if_dl.h> + #include <net/if_types.h> + #include <net/ethernet.h> ++#include <net/if_vlan_var.h> + + #include <netgraph/ng_message.h> + #include <netgraph/netgraph.h> +@@ -73,6 +74,7 @@ + + #define VBOXNETFLT_OS_SPECFIC 1 + #include "../VBoxNetFltInternal.h" ++#include "freebsd/the-freebsd-kernel.h" + + static int vboxnetflt_modevent(struct module *, int, void *); + static ng_constructor_t ng_vboxnetflt_constructor; +@@ -149,6 +151,7 @@ MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1); + */ + MODULE_VERSION(vboxnetflt, 1); + MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1); ++MODULE_DEPEND(ng_vboxnetflt, ng_ether, 1, 1, 1); + + /** + * The (common) global data. +@@ -181,8 +184,6 @@ static int vboxnetflt_modevent(struct module *pMod, in + printf("vboxNetFltInitGlobalsAndIdc failed %d\n", rc); + return RTErrConvertToErrno(rc); + } +- /* No MODULE_VERSION in ng_ether so we can't MODULE_DEPEND it */ +- kern_kldload(curthread, "ng_ether", NULL); + break; + + case MOD_UNLOAD: +@@ -334,12 +335,20 @@ static int ng_vboxnetflt_rcvdata(hook_p hook, item_p i + { + const node_p node = NG_HOOK_NODE(hook); + PVBOXNETFLTINS pThis = NG_NODE_PRIVATE(node); ++#if __FreeBSD_version >= 1500000 ++ if_t ifp = pThis->u.s.ifp; ++#else + struct ifnet *ifp = pThis->u.s.ifp; ++#endif + struct mbuf *m; + struct m_tag *mtag; + bool fActive; + ++#if __FreeBSD_version >= 1500000 ++ VBOXCURVNET_SET(if_getvnet(ifp)); ++#else + VBOXCURVNET_SET(ifp->if_vnet); ++#endif + fActive = vboxNetFltTryRetainBusyActive(pThis); + + NGI_GET_M(item, m); +@@ -361,7 +370,14 @@ static int ng_vboxnetflt_rcvdata(hook_p hook, item_p i + { + if (mtag != NULL || !fActive) + { ++#if __FreeBSD_version >= 1300049 ++ struct epoch_tracker et; ++ NET_EPOCH_ENTER(et); ++#endif + ether_demux(ifp, m); ++#if __FreeBSD_version >= 1300049 ++ NET_EPOCH_EXIT(et); ++#endif + if (fActive) + vboxNetFltRelease(pThis, true /*fBusy*/); + VBOXCURVNET_RESTORE(); +@@ -433,12 +449,22 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend + { + PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; + struct mbuf *m, *m0; ++#if __FreeBSD_version >= 1500000 ++ if_t ifp = pThis->u.s.ifp; ++#else + struct ifnet *ifp = pThis->u.s.ifp; ++#endif + unsigned int cSegs = 0; + bool fDropIt = false, fActive; ++ bool is_vl_tagged = false; ++ uint16_t vl_tag; + PINTNETSG pSG; + ++#if __FreeBSD_version >= 1500000 ++ VBOXCURVNET_SET(if_getvnet(ifp)); ++#else + VBOXCURVNET_SET(ifp->if_vnet); ++#endif + vboxNetFltRetain(pThis, true /* fBusy */); + for (;;) + { +@@ -448,6 +474,19 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend + if (m == NULL) + break; + ++ /* Prepend a VLAN header for consumption by the virtual switch */ ++ if (m->m_flags & M_VLANTAG) { ++ vl_tag = m->m_pkthdr.ether_vtag; ++ is_vl_tagged = true; ++ ++ m = ether_vlanencap(m, m->m_pkthdr.ether_vtag); ++ if (m == NULL) { ++ printf("vboxflt: unable to prepend VLAN header\n"); ++ break; ++ } ++ m->m_flags &= ~M_VLANTAG; ++ } ++ + for (m0 = m; m0 != NULL; m0 = m0->m_next) + if (m0->m_len > 0) + cSegs++; +@@ -462,10 +501,39 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend + vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0); + fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, NULL /* pvIf */, pSG, INTNETTRUNKDIR_WIRE); + RTMemTmpFree(pSG); ++ ++ /* Restore the VLAN flags before re-injecting the packet */ ++ if (is_vl_tagged && !fDropIt) { ++ struct ether_vlan_header *vl_hdr; ++ ++ /* This shouldn't fail, as the header was just prepended */ ++ if (m->m_len < sizeof(*vl_hdr) && (m = m_pullup(m, sizeof(*vl_hdr))) == NULL) { ++ printf("vboxflt: unable to pullup VLAN header\n"); ++ m_freem(m); ++ break; ++ } ++ ++ /* Copy the MAC dhost/shost over the 802.1q field */ ++ vl_hdr = mtod(m, struct ether_vlan_header *); ++ bcopy((char *)vl_hdr, (char *)vl_hdr + ETHER_VLAN_ENCAP_LEN, ETHER_HDR_LEN - ETHER_TYPE_LEN); ++ m_adj(m, ETHER_VLAN_ENCAP_LEN); ++ ++ m->m_pkthdr.ether_vtag = vl_tag; ++ m->m_flags |= M_VLANTAG; ++ } ++ + if (fDropIt) + m_freem(m); +- else ++ else { ++#if __FreeBSD_version >= 1300049 ++ struct epoch_tracker et; ++ NET_EPOCH_ENTER(et); ++#endif + ether_demux(ifp, m); ++#if __FreeBSD_version >= 1300049 ++ NET_EPOCH_EXIT(et); ++#endif ++ } + } + vboxNetFltRelease(pThis, true /* fBusy */); + VBOXCURVNET_RESTORE(); +@@ -478,12 +546,20 @@ static void vboxNetFltFreeBSDoutput(void *arg, int pen + { + PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)arg; + struct mbuf *m, *m0; ++#if __FreeBSD_version >= 1500000 ++ if_t ifp = pThis->u.s.ifp; ++#else + struct ifnet *ifp = pThis->u.s.ifp; ++#endif + unsigned int cSegs = 0; + bool fDropIt = false, fActive; + PINTNETSG pSG; + ++#if __FreeBSD_version >= 1500000 ++ VBOXCURVNET_SET(if_getvnet(ifp)); ++#else + VBOXCURVNET_SET(ifp->if_vnet); ++#endif + vboxNetFltRetain(pThis, true /* fBusy */); + for (;;) + { +@@ -521,26 +597,41 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p + */ + int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + NOREF(pvIfData); + + void (*input_f)(struct ifnet *, struct mbuf *); ++#if __FreeBSD_version >= 1500000 ++ if_t ifp; ++#else + struct ifnet *ifp; ++#endif + struct mbuf *m; + struct m_tag *mtag; + bool fActive; + int error; + + ifp = ASMAtomicUoReadPtrT(&pThis->u.s.ifp, struct ifnet *); ++#if __FreeBSD_version >= 1500000 ++ VBOXCURVNET_SET(if_getvnet(ifp)); ++#else + VBOXCURVNET_SET(ifp->if_vnet); ++#endif + + if (fDst & INTNETTRUNKDIR_WIRE) + { + m = vboxNetFltFreeBSDSGMBufFromSG(pThis, pSG); + if (m == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; ++ } + m = m_pullup(m, ETHER_HDR_LEN); + if (m == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; ++ } + + m->m_flags |= M_PKTHDR; + ether_output_frame(ifp, m); +@@ -550,10 +641,16 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p + { + m = vboxNetFltFreeBSDSGMBufFromSG(pThis, pSG); + if (m == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; ++ } + m = m_pullup(m, ETHER_HDR_LEN); + if (m == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; ++ } + /* + * Delivering packets to the host will be captured by the + * input hook. Tag the packet with a mbuf tag so that we +@@ -564,6 +661,7 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p + if (mtag == NULL) + { + m_freem(m); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -571,9 +669,21 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p + m_tag_prepend(m, mtag); + m->m_flags |= M_PKTHDR; + m->m_pkthdr.rcvif = ifp; ++#if __FreeBSD_version >= 1300049 ++ struct epoch_tracker et; ++ NET_EPOCH_ENTER(et); ++#endif ++#if __FreeBSD_version >= 1500000 ++ if_input(ifp, m); ++#else + ifp->if_input(ifp, m); ++#endif ++#if __FreeBSD_version >= 1300049 ++ NET_EPOCH_EXIT(et); ++#endif + } + VBOXCURVNET_RESTORE(); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -586,15 +696,23 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi + + int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, void *pvContext) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + char nam[NG_NODESIZ]; ++#if __FreeBSD_version >= 1500000 ++ if_t ifp; ++#else + struct ifnet *ifp; ++#endif + node_p node; + + VBOXCURVNET_SET_FROM_UCRED(); + NOREF(pvContext); + ifp = ifunit(pThis->szName); + if (ifp == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_INTNET_FLT_IF_NOT_FOUND; ++ } + + /* Create a new netgraph node for this instance */ + if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0) +@@ -604,7 +722,11 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi + + ASMAtomicUoWritePtr(&pThis->u.s.ifp, ifp); + pThis->u.s.node = node; ++#if __FreeBSD_version >= 1500000 ++ bcopy(if_getlladdr(ifp), &pThis->u.s.MacAddr, ETHER_ADDR_LEN); ++#else + bcopy(IF_LLADDR(ifp), &pThis->u.s.MacAddr, ETHER_ADDR_LEN); ++#endif + ASMAtomicUoWriteBool(&pThis->fDisconnectedFromHost, false); + + /* Initialize deferred input queue */ +@@ -638,16 +760,26 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi + vboxNetFltRelease(pThis, true /*fBusy*/); + } + VBOXCURVNET_RESTORE(); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + + return VINF_SUCCESS; + } + + bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThis) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++#if __FreeBSD_version >= 1500000 ++ if_t ifp, ifp0; ++#else + struct ifnet *ifp, *ifp0; ++#endif + + ifp = ASMAtomicUoReadPtrT(&pThis->u.s.ifp, struct ifnet *); ++#if __FreeBSD_version >= 1500000 ++ VBOXCURVNET_SET(if_getvnet(ifp)); ++#else + VBOXCURVNET_SET(ifp->if_vnet); ++#endif + /* + * Attempt to check if the interface is still there and re-initialize if + * something has changed. +@@ -660,6 +792,7 @@ bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThi + pThis->u.s.node = NULL; + } + VBOXCURVNET_RESTORE(); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + + if (ifp0 != NULL) + { +@@ -672,6 +805,7 @@ void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) + + void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin); + taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout); +@@ -684,6 +818,7 @@ void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) + ng_rmnode_self(pThis->u.s.node); + VBOXCURVNET_RESTORE(); + pThis->u.s.node = NULL; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + + int vboxNetFltOsPreInitInstance(PVBOXNETFLTINS pThis) +@@ -697,7 +832,12 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b + + void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, bool fActive) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++#if __FreeBSD_version >= 1500000 ++ if_t ifp; ++#else + struct ifnet *ifp; ++#endif + struct ifreq ifreq; + int error; + node_p node; +@@ -709,18 +849,30 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b + Log(("%s: fActive:%d\n", __func__, fActive)); + + ifp = ASMAtomicUoReadPtrT(&pThis->u.s.ifp, struct ifnet *); ++#if __FreeBSD_version >= 1500000 ++ VBOXCURVNET_SET(if_getvnet(ifp)); ++#else + VBOXCURVNET_SET(ifp->if_vnet); ++#endif + node = ASMAtomicUoReadPtrT(&pThis->u.s.node, node_p); + + memset(&ifreq, 0, sizeof(struct ifreq)); + /* Activate interface */ + if (fActive) + { ++#if __FreeBSD_version >= 1500000 ++ pThis->u.s.flags = if_getflags(ifp); ++#else + pThis->u.s.flags = ifp->if_flags; ++#endif + ifpromisc(ifp, 1); + + /* ng_ether nodes are named after the interface name */ ++#if __FreeBSD_version >= 1500000 ++ snprintf(path, sizeof(path), "%s:", if_name(ifp)); ++#else + snprintf(path, sizeof(path), "%s:", ifp->if_xname); ++#endif + + /* + * Send a netgraph connect message to the ng_ether node +@@ -730,9 +882,16 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b + NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_CONNECT, + sizeof(struct ngm_connect), M_NOWAIT); + if (msg == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return; ++ } + con = (struct ngm_connect *)msg->data; ++#if __FreeBSD_version >= 1500000 ++ snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:", if_name(ifp)); ++#else + snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:", ifp->if_xname); ++#endif + strlcpy(con->ourhook, "lower", NG_HOOKSIZ); + strlcpy(con->peerhook, "input", NG_HOOKSIZ); + NG_SEND_MSG_PATH(error, node, msg, path, 0); +@@ -744,10 +903,17 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b + NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_CONNECT, + sizeof(struct ngm_connect), M_NOWAIT); + if (msg == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return; ++ } + con = (struct ngm_connect *)msg->data; + snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:", ++#if __FreeBSD_version >= 1500000 ++ if_name(ifp)); ++#else + ifp->if_xname); ++#endif + strlcpy(con->ourhook, "upper", sizeof(con->ourhook)); + strlcpy(con->peerhook, "output", sizeof(con->peerhook)); + NG_SEND_MSG_PATH(error, node, msg, path, 0); +@@ -759,7 +925,11 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b + ifpromisc(ifp, 0); + + /* Disconnect msgs are addressed to ourself */ ++#if __FreeBSD_version >= 1500000 ++ snprintf(path, sizeof(path), "vboxnetflt_%s:", if_name(ifp)); ++#else + snprintf(path, sizeof(path), "vboxnetflt_%s:", ifp->if_xname); ++#endif + + /* + * Send a netgraph message to disconnect our 'input' hook +@@ -767,7 +937,10 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b + NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_RMHOOK, + sizeof(struct ngm_rmhook), M_NOWAIT); + if (msg == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return; ++ } + rm = (struct ngm_rmhook *)msg->data; + strlcpy(rm->ourhook, "input", NG_HOOKSIZ); + NG_SEND_MSG_PATH(error, node, msg, path, 0); +@@ -778,12 +951,16 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b + NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_RMHOOK, + sizeof(struct ngm_rmhook), M_NOWAIT); + if (msg == NULL) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return; ++ } + rm = (struct ngm_rmhook *)msg->data; + strlcpy(rm->ourhook, "output", NG_HOOKSIZ); + NG_SEND_MSG_PATH(error, node, msg, path, 0); + } + VBOXCURVNET_RESTORE(); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + + int vboxNetFltOsDisconnectIt(PVBOXNETFLTINS pThis) diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp new file mode 100644 index 000000000000..67573dc080a4 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp @@ -0,0 +1,11 @@ +--- src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp.orig 2022-01-13 18:57:40 UTC ++++ src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp +@@ -737,7 +737,7 @@ int Adapter::doIOCtl(unsigned long iCmd, VBOXNETADPREQ + * Global config file implementation * + *********************************************************************************************************************************/ + +-#define VBOX_GLOBAL_NETWORK_CONFIG_PATH "/etc/vbox/networks.conf" ++#define VBOX_GLOBAL_NETWORK_CONFIG_PATH "%%VBOX_ETC%%/networks.conf" + #define VBOXNET_DEFAULT_IPV4MASK "255.255.255.0" + + class NetworkAddress diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_Makefile.kmk new file mode 100644 index 000000000000..f5693ffb72b4 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_Makefile.kmk @@ -0,0 +1,10 @@ +--- src/VBox/Main/Makefile.kmk.orig 2024-10-10 20:31:38.000000000 +0200 ++++ src/VBox/Main/Makefile.kmk 2024-12-27 13:32:31.610875000 +0100 +@@ -761,6 +761,7 @@ + + VBoxSVC_SOURCES.freebsd = \ + src-server/freebsd/HostHardwareFreeBSD.cpp \ ++ $(if $(VBOX_WITH_DBUS),src-server/linux/HostPowerLinux.cpp) \ + src-server/HostDnsServiceResolvConf.cpp + + VBoxSVC_LDFLAGS.freebsd += -lcam diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_include_HostPower.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_include_HostPower.h new file mode 100644 index 000000000000..5718fe987ce4 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_include_HostPower.h @@ -0,0 +1,20 @@ +--- src/VBox/Main/include/HostPower.h.orig 2021-01-07 15:41:38 UTC ++++ src/VBox/Main/include/HostPower.h +@@ -31,7 +31,7 @@ + + #include <vector> + +-#ifdef RT_OS_LINUX ++#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) + # include <VBox/dbus.h> + #endif + +@@ -67,7 +67,7 @@ class HostPowerServiceWin : public HostPowerService (p + RTTHREAD mThread; + }; + # endif +-# if defined(RT_OS_LINUX) || defined(DOXYGEN_RUNNING) ++# if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) || defined(DOXYGEN_RUNNING) + /** + * The Linux hosted Power Service. + */ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_HostImpl.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_HostImpl.cpp new file mode 100644 index 000000000000..d4c018b2fc23 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_HostImpl.cpp @@ -0,0 +1,11 @@ +--- src/VBox/Main/src-server/HostImpl.cpp.orig 2021-01-07 15:41:42 UTC ++++ src/VBox/Main/src-server/HostImpl.cpp +@@ -286,7 +286,7 @@ HRESULT Host::init(VirtualBox *aParent) + + #if defined(RT_OS_WINDOWS) + m->pHostPowerService = new HostPowerServiceWin(m->pParent); +-#elif defined(RT_OS_LINUX) && defined(VBOX_WITH_DBUS) ++#elif (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) && defined(VBOX_WITH_DBUS) + m->pHostPowerService = new HostPowerServiceLinux(m->pParent); + #elif defined(RT_OS_DARWIN) + m->pHostPowerService = new HostPowerServiceDarwin(m->pParent); diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp new file mode 100644 index 000000000000..631547ac9cee --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp @@ -0,0 +1,24 @@ +--- src/VBox/Main/src-server/freebsd/PerformanceFreeBSD.cpp.orig 2017-07-27 13:18:27 UTC ++++ src/VBox/Main/src-server/freebsd/PerformanceFreeBSD.cpp +@@ -80,8 +80,10 @@ int CollectorFreeBSD::getHostMemoryUsage(ULONG *total, + cbParameter = sizeof(cPagesMemInactive); + if (!sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0)) + cProcessed++; ++#if __FreeBSD_version < 1200016 + cbParameter = sizeof(cPagesMemCached); + if (!sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0)) ++#endif + cProcessed++; + cbParameter = sizeof(cbPage); + if (!sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0)) +@@ -90,8 +92,8 @@ int CollectorFreeBSD::getHostMemoryUsage(ULONG *total, + if (cProcessed == 6) + { + *total = cbMemPhys / _1K; +- *used = cPagesMemUsed * (cbPage / _1K); +- *available = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * (cbPage / _1K); ++ *used = (uint64_t)cPagesMemUsed * (cbPage / _1K); ++ *available = ((uint64_t)cPagesMemFree + cPagesMemInactive + cPagesMemCached) * (cbPage / _1K); + } + else + rc = VERR_NOT_SUPPORTED; diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_Makefile.kmk new file mode 100644 index 000000000000..3133e4cbd207 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_Makefile.kmk @@ -0,0 +1,29 @@ +--- src/VBox/Runtime/Makefile.kmk.orig 2025-01-21 19:59:19.000000000 +0700 ++++ src/VBox/Runtime/Makefile.kmk 2025-03-23 20:54:34.250024000 +0700 +@@ -225,6 +225,9 @@ + $(QUIET)$(oiddb2c_1_TARGET) "$@" $(filter %.cfg,$^) + $(QUIET)$(CP) --changed -fv "$@" "$(IPRT_OUT_DIR)/oiddb.h" + ++# Set the defines that utf8-posix.cpp needs. It's used by several targets. ++# ++r3/posix/utf8-posix.cpp_DEFS.freebsd = $(VBOX_ICONV_DEFS) + + # + # Unicode Specification reader used to regenerate unidata-*.cpp. +@@ -1468,6 +1471,7 @@ + generic/RTProcDaemonize-generic.cpp \ + generic/RTProcIsRunningByName-generic.cpp \ + generic/RTThreadGetNativeState-generic.cpp \ ++ generic/system-page-size-generic.cpp \ + r3/freebsd/fileaio-freebsd.cpp \ + r3/freebsd/RTFileQuerySectorSize-freebsd.cpp \ + r3/freebsd/mp-freebsd.cpp \ +@@ -3011,6 +3015,8 @@ + /delayload:ole32.dll \ + /delayload:oleaut32.dll \ + /delayload:advapi32.dll ++VBoxRT_LDFLAGS.freebsd = \ ++ -Wl,--allow-multiple-definition + + if1of (VBoxRT, $(DLLS)) + $(call VBOX_SET_VER_INFO_DLL,VBoxRT,VirtualBox Runtime) diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c new file mode 100644 index 000000000000..0ae2d847c0f6 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c @@ -0,0 +1,58 @@ +--- src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c.orig 2024-10-10 20:32:14.000000000 +0200 ++++ src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c 2024-12-27 13:39:49.059878000 +0100 +@@ -88,6 +88,7 @@ + + DECLHIDDEN(int) rtR0MemAllocEx(size_t cb, uint32_t fFlags, PRTMEMHDR *ppHdr) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + size_t cbAllocated = cb; + PRTMEMHDR pHdr = (PRTMEMHDR)malloc(cb + sizeof(RTMEMHDR), M_IPRTHEAP, + fFlags & RTMEMHDR_FLAG_ZEROED ? M_NOWAIT | M_ZERO : M_NOWAIT); +@@ -99,21 +100,28 @@ + pHdr->cbReq = cb; + + *ppHdr = pHdr; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; +- } ++ } ++ ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + + + DECLHIDDEN(void) rtR0MemFree(PRTMEMHDR pHdr) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + pHdr->u32Magic += 1; + free(pHdr, M_IPRTHEAP); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + + + RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + void *pv; + + /* +@@ -138,6 +146,7 @@ + *pPhys = vtophys(pv); + Assert(!(*pPhys & PAGE_OFFSET_MASK)); + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return pv; + } + +@@ -147,7 +156,9 @@ + if (pv) + { + AssertMsg(!((uintptr_t)pv & PAGE_OFFSET_MASK), ("pv=%p\n", pv)); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + contigfree(pv, cb, M_IPRTCONT); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + } + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c new file mode 100644 index 000000000000..4c628cbe47a5 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c @@ -0,0 +1,29 @@ +--- src/VBox/Runtime/r0drv/freebsd/assert-r0drv-freebsd.c.orig 2021-01-07 15:42:08 UTC ++++ src/VBox/Runtime/r0drv/freebsd/assert-r0drv-freebsd.c +@@ -68,15 +68,18 @@ + + DECLHIDDEN(void) rtR0AssertNativeMsg1(const char *pszExpr, unsigned uLine, const char *pszFile, const char *pszFunction) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + printf("\r\n!!Assertion Failed!!\r\n" + "Expression: %s\r\n" + "Location : %s(%d) %s\r\n", + pszExpr, pszFile, uLine, pszFunction); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + + + DECLHIDDEN(void) rtR0AssertNativeMsg2V(bool fInitial, const char *pszFormat, va_list va) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + char szMsg[256]; + + RTStrPrintfV(szMsg, sizeof(szMsg) - 1, pszFormat, va); +@@ -84,6 +87,7 @@ DECLHIDDEN(void) rtR0AssertNativeMsg2V(bool fInitial, + printf("%s", szMsg); + + NOREF(fInitial); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c new file mode 100644 index 000000000000..4c0ed355709c --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c @@ -0,0 +1,408 @@ +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-04-14 17:59:13 UTC ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c +@@ -140,8 +140,10 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + + DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)pMem; + int rc; ++ vm_map_t pMap; + + switch (pMemFreeBSD->Core.enmType) + { +@@ -156,8 +158,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + + case RTR0MEMOBJTYPE_LOCK: + { +- vm_map_t pMap = kernel_map; +- + if (pMemFreeBSD->Core.u.Lock.R0Process != NIL_RTR0PROCESS) + pMap = &((struct proc *)pMemFreeBSD->Core.u.Lock.R0Process)->p_vmspace->vm_map; + +@@ -198,6 +198,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + case RTR0MEMOBJTYPE_PHYS_NC: + { + VM_OBJECT_WLOCK(pMemFreeBSD->pObject); ++#if __FreeBSD_version < 1500038 + vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0); + #if __FreeBSD_version < 1000000 + vm_page_lock_queues(); +@@ -211,6 +212,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + #if __FreeBSD_version < 1000000 + vm_page_unlock_queues(); + #endif ++#else /* __FreeBSD_version >= 1500038 */ ++ struct pctrie_iter pages; ++ vm_page_t page; ++ ++ vm_page_iter_init(&pages, pMemFreeBSD->pObject); ++ VM_RADIX_FORALL(page, &pages) ++ (void)vm_page_unwire_noq(page); ++#endif + VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); + vm_object_deallocate(pMemFreeBSD->pObject); + break; +@@ -221,6 +230,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + return VERR_INTERNAL_ERROR; + } + ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -330,7 +340,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOBJFRE + size_t cPages = atop(pMemFreeBSD->Core.cb); + int rc; + +- pMemFreeBSD->pObject = vm_object_allocate(OBJT_PHYS, cPages); ++ pMemFreeBSD->pObject = vm_pager_allocate(OBJT_PHYS, NULL, ++ pMemFreeBSD->Core.cb, VM_PROT_ALL, 0, curthread->td_ucred); + + /* No additional object reference for auto-deallocation upon unmapping. */ + #if __FreeBSD_version >= 1000055 +@@ -372,6 +383,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ + + DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PAGE, + NULL, cb, pszTag); + if (pMemFreeBSD) +@@ -381,8 +393,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJ + *ppMem = &pMemFreeBSD->Core; + else + rtR0MemObjDelete(&pMemFreeBSD->Core); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return rc; + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -396,6 +410,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI + + DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable, const char *pszTag) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb, pszTag); + if (pMemFreeBSD) + { +@@ -404,8 +419,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJI + *ppMem = &pMemFreeBSD->Core; + else + rtR0MemObjDelete(&pMemFreeBSD->Core); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return rc; + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -413,6 +430,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ + DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHigest, + bool fExecutable, const char *pszTag) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_CONT, + NULL, cb, pszTag); + if (pMemFreeBSD) +@@ -425,8 +443,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0MEMOBJ + } + else + rtR0MemObjDelete(&pMemFreeBSD->Core); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return rc; + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -434,6 +454,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB + static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJTYPE enmType, size_t cb, RTHCPHYS PhysHighest, + size_t uAlignment, bool fContiguous, int rcNoMem, const char *pszTag) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + /* create the object. */ + PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), enmType, NULL, cb, pszTag); + if (pMemFreeBSD) +@@ -441,7 +462,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB + vm_paddr_t const VmPhysAddrHigh = PhysHighest != NIL_RTHCPHYS ? PhysHighest : ~(vm_paddr_t)0; + u_long const cPages = atop(cb); + +- pMemFreeBSD->pObject = vm_object_allocate(OBJT_PHYS, cPages); ++ pMemFreeBSD->pObject = vm_pager_allocate(OBJT_PHYS, NULL, ++ pMemFreeBSD->Core.cb, VM_PROT_ALL, 0, curthread->td_ucred); + + int rc = rtR0MemObjFreeBSDPhysAllocHelper(pMemFreeBSD->pObject, cPages, VmPhysAddrHigh, + uAlignment, fContiguous, true, rcNoMem); +@@ -451,7 +473,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB + { + Assert(enmType == RTR0MEMOBJTYPE_PHYS); + VM_OBJECT_WLOCK(pMemFreeBSD->pObject); +- pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_page_find_least(pMemFreeBSD->pObject, 0)); ++ pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_radix_lookup_ge(&pMemFreeBSD->pObject->rtree, 0)); + VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); + pMemFreeBSD->Core.u.Phys.fAllocated = true; + } +@@ -464,8 +486,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOB + vm_object_deallocate(pMemFreeBSD->pObject); + rtR0MemObjDelete(&pMemFreeBSD->Core); + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return rc; + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -488,6 +512,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ + const char *pszTag) + { + AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + /* create the object. */ + PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PHYS, +@@ -499,8 +524,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJ + pMemFreeBSD->Core.u.Phys.PhysBase = Phys; + pMemFreeBSD->Core.u.Phys.uCachePolicy = uCachePolicy; + *ppMem = &pMemFreeBSD->Core; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -512,6 +539,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER + vm_offset_t AddrStart, size_t cb, uint32_t fAccess, + RTR0PROCESS R0Process, int fFlags, const char *pszTag) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + int rc; + NOREF(fAccess); + +@@ -521,21 +549,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTER + if (!pMemFreeBSD) + return VERR_NO_MEMORY; + +- /* +- * We could've used vslock here, but we don't wish to be subject to +- * resource usage restrictions, so we'll call vm_map_wire directly. +- */ +- rc = vm_map_wire(pVmMap, /* the map */ +- AddrStart, /* start */ +- AddrStart + cb, /* end */ +- fFlags); /* flags */ ++ if (pVmMap != kernel_map) { ++ /* ++ * We could've used vslock here, but we don't wish to be subject to ++ * resource usage restrictions, so we'll call vm_map_wire directly. ++ */ ++ rc = vm_map_wire(pVmMap, /* the map */ ++ AddrStart, /* start */ ++ AddrStart + cb, /* end */ ++ fFlags); /* flags */ ++ } ++ else ++ rc = KERN_SUCCESS; ++ + if (rc == KERN_SUCCESS) + { + pMemFreeBSD->Core.u.Lock.R0Process = R0Process; + *ppMem = &pMemFreeBSD->Core; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + rtR0MemObjDelete(&pMemFreeBSD->Core); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY;/** @todo fix mach -> vbox error conversion for freebsd. */ + } + +@@ -575,6 +610,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN + static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment, + RTR0PROCESS R0Process, vm_map_t pMap, const char *pszTag) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + int rc; + + /* +@@ -633,11 +669,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJIN + pMemFreeBSD->Core.pv = (void *)MapAddress; + pMemFreeBSD->Core.u.ResVirt.R0Process = R0Process; + *ppMem = &pMemFreeBSD->Core; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + + rc = VERR_NO_MEMORY; /** @todo fix translation (borrow from darwin) */ + rtR0MemObjDelete(&pMemFreeBSD->Core); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return rc; + + } +@@ -661,6 +699,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ + DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment, + unsigned fProt, size_t offSub, size_t cbSub, const char *pszTag) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + // AssertMsgReturn(!offSub && !cbSub, ("%#x %#x\n", offSub, cbSub), VERR_NOT_SUPPORTED); + AssertMsgReturn(pvFixed == (void *)-1, ("%p\n", pvFixed), VERR_NOT_SUPPORTED); + +@@ -715,6 +755,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ + Assert((vm_offset_t)pMemFreeBSD->Core.pv == Addr); + pMemFreeBSD->Core.u.Mapping.R0Process = NIL_RTR0PROCESS; + *ppMem = &pMemFreeBSD->Core; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + rc = vm_map_remove(kernel_map, Addr, Addr + cbSub); +@@ -723,6 +764,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJ + else + vm_object_deallocate(pMemToMapFreeBSD->pObject); + ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -730,6 +772,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN + DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, + unsigned fProt, RTR0PROCESS R0Process, size_t offSub, size_t cbSub, const char *pszTag) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + /* + * Check for unsupported stuff. + */ +@@ -787,44 +831,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJIN + + if (rc == KERN_SUCCESS) + { +- rc = vm_map_wire(pProcMap, AddrR3, AddrR3 + pMemToMap->cb, VM_MAP_WIRE_USER|VM_MAP_WIRE_NOHOLES); ++ rc = vm_map_wire(pProcMap, AddrR3, AddrR3 + cbSub, VM_MAP_WIRE_USER|VM_MAP_WIRE_NOHOLES); + AssertMsg(rc == KERN_SUCCESS, ("%#x\n", rc)); + +- rc = vm_map_inherit(pProcMap, AddrR3, AddrR3 + pMemToMap->cb, VM_INHERIT_SHARE); ++ rc = vm_map_inherit(pProcMap, AddrR3, AddrR3 + cbSub, VM_INHERIT_SHARE); + AssertMsg(rc == KERN_SUCCESS, ("%#x\n", rc)); + + /* + * Create a mapping object for it. + */ + PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(RTR0MEMOBJFREEBSD), RTR0MEMOBJTYPE_MAPPING, +- (void *)AddrR3, pMemToMap->cb, pszTag); ++ (void *)AddrR3, cbSub, pszTag); + if (pMemFreeBSD) + { + Assert((vm_offset_t)pMemFreeBSD->Core.pv == AddrR3); + pMemFreeBSD->Core.u.Mapping.R0Process = R0Process; + *ppMem = &pMemFreeBSD->Core; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +- rc = vm_map_remove(pProcMap, AddrR3, AddrR3 + pMemToMap->cb); ++ rc = vm_map_remove(pProcMap, AddrR3, AddrR3 + cbSub); + AssertMsg(rc == KERN_SUCCESS, ("Deleting mapping failed\n")); + } + else + vm_object_deallocate(pMemToMapFreeBSD->pObject); + ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + + + DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub, size_t cbSub, uint32_t fProt) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + vm_prot_t ProtectionFlags = 0; + vm_offset_t AddrStart = (uintptr_t)pMem->pv + offSub; + vm_offset_t AddrEnd = AddrStart + cbSub; + vm_map_t pVmMap = rtR0MemObjFreeBSDGetMap(pMem); + + if (!pVmMap) ++ { ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NOT_SUPPORTED; ++ } + + if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE) + ProtectionFlags = VM_PROT_NONE; +@@ -835,7 +885,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT + if ((fProt & RTMEM_PROT_EXEC) == RTMEM_PROT_EXEC) + ProtectionFlags |= VM_PROT_EXECUTE; + ++#if __FreeBSD_version >= 1300135 ++ int krc = vm_map_protect(pVmMap, AddrStart, AddrEnd, ProtectionFlags, 0, VM_MAP_PROTECT_SET_PROT); ++#else + int krc = vm_map_protect(pVmMap, AddrStart, AddrEnd, ProtectionFlags, FALSE); ++#endif ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + if (krc == KERN_SUCCESS) + return VINF_SUCCESS; + +@@ -860,11 +915,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P + + vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage); + +- struct proc *pProc = (struct proc *)pMemFreeBSD->Core.u.Lock.R0Process; +- struct vm_map *pProcMap = &pProc->p_vmspace->vm_map; +- pmap_t pPhysicalMap = vm_map_pmap(pProcMap); ++ if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS) ++ { ++ RTHCPHYS addr; ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ struct proc *pProc = (struct proc *)pMemFreeBSD->Core.u.Lock.R0Process; ++ struct vm_map *pProcMap = &pProc->p_vmspace->vm_map; ++ pmap_t pPhysicalMap = vm_map_pmap(pProcMap); + +- return pmap_extract(pPhysicalMap, pb); ++ addr = pmap_extract(pPhysicalMap, pb); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); ++ return addr; ++ } ++ return vtophys(pb); + } + + case RTR0MEMOBJTYPE_MAPPING: +@@ -873,11 +936,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P + + if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS) + { ++ RTHCPHYS addr; ++ IPRT_FREEBSD_SAVE_EFL_AC(); + struct proc *pProc = (struct proc *)pMemFreeBSD->Core.u.Mapping.R0Process; + struct vm_map *pProcMap = &pProc->p_vmspace->vm_map; + pmap_t pPhysicalMap = vm_map_pmap(pProcMap); + +- return pmap_extract(pPhysicalMap, pb); ++ addr = pmap_extract(pPhysicalMap, pb); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); ++ return addr; + } + return vtophys(pb); + } +@@ -888,9 +955,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P + { + RTHCPHYS addr; + ++ IPRT_FREEBSD_SAVE_EFL_AC(); + VM_OBJECT_WLOCK(pMemFreeBSD->pObject); + addr = VM_PAGE_TO_PHYS(vm_page_lookup(pMemFreeBSD->pObject, iPage)); + VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return addr; + } + +@@ -910,7 +979,7 @@ DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping + DECLHIDDEN(int) rtR0MemObjNativeZeroInitWithoutMapping(PRTR0MEMOBJINTERNAL pMem) + { + PRTR0MEMOBJFREEBSD const pMemFreeBsd = (PRTR0MEMOBJFREEBSD)pMem; +- size_t const cPages = pMemSolaris->Core.cb >> PAGE_SHIFT; ++ size_t const cPages = atop(pMemFreeBsd->Core.cb); + size_t iPage; + for (iPage = 0; iPage < cPages; iPage++) + { diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c new file mode 100644 index 000000000000..53bac187bde0 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c @@ -0,0 +1,22 @@ +--- src/VBox/Runtime/r0drv/freebsd/memuserkernel-r0drv-freebsd.c.orig 2018-10-15 14:31:31 UTC ++++ src/VBox/Runtime/r0drv/freebsd/memuserkernel-r0drv-freebsd.c +@@ -36,7 +36,9 @@ + + RTR0DECL(int) RTR0MemUserCopyFrom(void *pvDst, RTR3PTR R3PtrSrc, size_t cb) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + int rc = copyin((const void *)R3PtrSrc, pvDst, cb); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + if (RT_LIKELY(rc == 0)) + return VINF_SUCCESS; + return VERR_ACCESS_DENIED; +@@ -45,7 +47,9 @@ RTR0DECL(int) RTR0MemUserCopyFrom(void *pvDst, RTR3PTR + + RTR0DECL(int) RTR0MemUserCopyTo(RTR3PTR R3PtrDst, void const *pvSrc, size_t cb) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + int rc = copyout(pvSrc, (void *)R3PtrDst, cb); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + if (RT_LIKELY(rc == 0)) + return VINF_SUCCESS; + return VERR_ACCESS_DENIED; diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c new file mode 100644 index 000000000000..8c68cae63a34 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c @@ -0,0 +1,92 @@ +--- src/VBox/Runtime/r0drv/freebsd/mp-r0drv-freebsd.c.orig 2019-04-16 10:17:21 UTC ++++ src/VBox/Runtime/r0drv/freebsd/mp-r0drv-freebsd.c +@@ -147,7 +147,9 @@ RTDECL(RTCPUID) RTMpGetOnlineCount(void) + static void rtmpOnAllFreeBSDWrapper(void *pvArg) + { + PRTMPARGS pArgs = (PRTMPARGS)pvArg; ++ IPRT_FREEBSD_SAVE_EFL_AC(); + pArgs->pfnWorker(curcpu, pArgs->pvUser1, pArgs->pvUser2); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + + +@@ -159,7 +161,9 @@ RTDECL(int) RTMpOnAll(PFNRTMPWORKER pfnWorker, void *p + Args.pvUser2 = pvUser2; + Args.idCpu = NIL_RTCPUID; + Args.cHits = 0; ++ IPRT_FREEBSD_SAVE_EFL_AC(); + smp_rendezvous(NULL, rtmpOnAllFreeBSDWrapper, smp_no_rendezvous_barrier, &Args); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -175,7 +179,11 @@ static void rtmpOnOthersFreeBSDWrapper(void *pvArg) + PRTMPARGS pArgs = (PRTMPARGS)pvArg; + RTCPUID idCpu = curcpu; + if (pArgs->idCpu != idCpu) ++ { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + pArgs->pfnWorker(idCpu, pArgs->pvUser1, pArgs->pvUser2); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); ++ } + } + + +@@ -196,6 +204,7 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void + Args.pvUser2 = pvUser2; + Args.idCpu = RTMpCpuId(); + Args.cHits = 0; ++ IPRT_FREEBSD_SAVE_EFL_AC(); + #if __FreeBSD_version >= 700000 + # if __FreeBSD_version >= 900000 + Mask = all_cpus; +@@ -207,6 +216,7 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void + #else + smp_rendezvous(NULL, rtmpOnOthersFreeBSDWrapper, NULL, &Args); + #endif ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + return VINF_SUCCESS; + } +@@ -224,8 +234,10 @@ static void rtmpOnSpecificFreeBSDWrapper(void *pvArg) + RTCPUID idCpu = curcpu; + if (pArgs->idCpu == idCpu) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + pArgs->pfnWorker(idCpu, pArgs->pvUser1, pArgs->pvUser2); + ASMAtomicIncU32(&pArgs->cHits); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + } + } + +@@ -248,6 +260,7 @@ RTDECL(int) RTMpOnSpecific(RTCPUID idCpu, PFNRTMPWORKE + Args.pvUser2 = pvUser2; + Args.idCpu = idCpu; + Args.cHits = 0; ++ IPRT_FREEBSD_SAVE_EFL_AC(); + #if __FreeBSD_version >= 700000 + # if __FreeBSD_version >= 900000 + CPU_SETOF(idCpu, &Mask); +@@ -258,6 +271,7 @@ RTDECL(int) RTMpOnSpecific(RTCPUID idCpu, PFNRTMPWORKE + #else + smp_rendezvous(NULL, rtmpOnSpecificFreeBSDWrapper, NULL, &Args); + #endif ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return Args.cHits == 1 + ? VINF_SUCCESS + : VERR_CPU_NOT_FOUND; +@@ -287,12 +301,14 @@ RTDECL(int) RTMpPokeCpu(RTCPUID idCpu) + if (!RTMpIsCpuOnline(idCpu)) + return VERR_CPU_NOT_FOUND; + ++ IPRT_FREEBSD_SAVE_EFL_AC(); + # if __FreeBSD_version >= 900000 + CPU_SETOF(idCpu, &Mask); + # else + Mask = (cpumask_t)1 << idCpu; + # endif + smp_rendezvous_cpus(Mask, NULL, rtmpFreeBSDPokeCallback, smp_no_rendezvous_barrier, NULL); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + + return VINF_SUCCESS; + } diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c new file mode 100644 index 000000000000..c84313e2f5e2 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c @@ -0,0 +1,53 @@ +--- src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c.orig 2021-01-07 15:42:08 UTC ++++ src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c +@@ -101,7 +101,9 @@ RTDECL(int) RTSemEventCreateEx(PRTSEMEVENT phEventSem + Assert(!(fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK) || (fFlags & RTSEMEVENT_FLAGS_NO_LOCK_VAL)); + AssertPtrReturn(phEventSem, VERR_INVALID_POINTER); + ++ IPRT_FREEBSD_SAVE_EFL_AC(); + PRTSEMEVENTINTERNAL pThis = (PRTSEMEVENTINTERNAL)RTMemAllocZ(sizeof(*pThis)); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + if (!pThis) + return VERR_NO_MEMORY; + +@@ -152,10 +154,12 @@ RTDECL(int) RTSemEventDestroy(RTSEMEVENT hEventSem) + /* + * Invalidate it and signal the object just in case. + */ ++ IPRT_FREEBSD_SAVE_EFL_AC(); + ASMAtomicWriteU32(&pThis->u32Magic, ~RTSEMEVENT_MAGIC); + ASMAtomicWriteU32(&pThis->fState, 0); + rtR0SemBsdBroadcast(pThis); + rtR0SemEventBsdRelease(pThis); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -173,9 +177,11 @@ RTDECL(int) RTSemEventSignal(RTSEMEVENT hEventSem) + /* + * Signal the event object. + */ ++ IPRT_FREEBSD_SAVE_EFL_AC(); + ASMAtomicWriteU32(&pThis->fState, 1); + rtR0SemBsdSignal(pThis); + rtR0SemEventBsdRelease(pThis); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -199,6 +205,7 @@ static int rtR0SemEventWait(PRTSEMEVENTINTERNAL pThis, + AssertPtrReturn(pThis, VERR_INVALID_PARAMETER); + AssertMsgReturn(pThis->u32Magic == RTSEMEVENT_MAGIC, ("%p u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_PARAMETER); + AssertReturn(RTSEMWAIT_FLAGS_ARE_VALID(fFlags), VERR_INVALID_PARAMETER); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + rtR0SemEventBsdRetain(pThis); + + /* +@@ -248,6 +255,7 @@ static int rtR0SemEventWait(PRTSEMEVENTINTERNAL pThis, + } + + rtR0SemEventBsdRelease(pThis); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return rc; + } + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c new file mode 100644 index 000000000000..d3571a937b1f --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c @@ -0,0 +1,73 @@ +--- src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c.orig 2021-01-07 15:42:08 UTC ++++ src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c +@@ -120,7 +120,9 @@ RTDECL(int) RTSemEventMultiCreateEx(PRTSEMEVENTMULTI + PRTSEMEVENTMULTIINTERNAL pThis; + + AssertReturn(!(fFlags & ~RTSEMEVENTMULTI_FLAGS_NO_LOCK_VAL), VERR_INVALID_PARAMETER); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + pThis = (PRTSEMEVENTMULTIINTERNAL)RTMemAlloc(sizeof(*pThis)); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + if (pThis) + { + pThis->u32Magic = RTSEMEVENTMULTI_MAGIC; +@@ -176,10 +178,12 @@ RTDECL(int) RTSemEventMultiDestroy(RTSEMEVENTMULTI hE + /* + * Invalidate it and signal the object just in case. + */ ++ IPRT_FREEBSD_SAVE_EFL_AC(); + ASMAtomicWriteU32(&pThis->u32Magic, ~RTSEMEVENTMULTI_MAGIC); + ASMAtomicAndU32(&pThis->fStateAndGen, RTSEMEVENTMULTIBSD_GEN_MASK); + rtR0SemBsdBroadcast(pThis); + rtR0SemEventMultiBsdRelease(pThis); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -188,6 +192,7 @@ RTDECL(int) RTSemEventMultiSignal(RTSEMEVENTMULTI hEv + { + uint32_t fNew; + uint32_t fOld; ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + /* + * Validate input. +@@ -214,12 +219,15 @@ RTDECL(int) RTSemEventMultiSignal(RTSEMEVENTMULTI hEv + + rtR0SemBsdBroadcast(pThis); + rtR0SemEventMultiBsdRelease(pThis); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + + + RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI hEventMultiSem) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + /* + * Validate input. + */ +@@ -236,6 +244,7 @@ RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI hEve + ASMAtomicAndU32(&pThis->fStateAndGen, ~RTSEMEVENTMULTIBSD_STATE_MASK); + + rtR0SemEventMultiBsdRelease(pThis); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -252,6 +261,7 @@ RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI hEve + static int rtR0SemEventMultiBsdWait(PRTSEMEVENTMULTIINTERNAL pThis, uint32_t fFlags, uint64_t uTimeout, + PCRTLOCKVALSRCPOS pSrcPos) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + uint32_t fOrgStateAndGen; + int rc; + +@@ -311,6 +321,7 @@ static int rtR0SemEventMultiBsdWait(PRTSEMEVENTMULTIIN + } + + rtR0SemEventMultiBsdRelease(pThis); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return rc; + } + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c new file mode 100644 index 000000000000..aeab0a76e37c --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semfastmutex-r0drv-freebsd.c @@ -0,0 +1,59 @@ +--- src/VBox/Runtime/r0drv/freebsd/semfastmutex-r0drv-freebsd.c.orig 2021-01-07 15:42:08 UTC ++++ src/VBox/Runtime/r0drv/freebsd/semfastmutex-r0drv-freebsd.c +@@ -86,6 +86,7 @@ RTDECL(int) RTSemFastMutexCreate(PRTSEMFASTMUTEX phFa + { + AssertCompile(sizeof(RTSEMFASTMUTEXINTERNAL) > sizeof(void *)); + AssertPtrReturn(phFastMtx, VERR_INVALID_POINTER); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + PRTSEMFASTMUTEXINTERNAL pThis = (PRTSEMFASTMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); + if (pThis) +@@ -94,8 +95,10 @@ RTDECL(int) RTSemFastMutexCreate(PRTSEMFASTMUTEX phFa + sx_init_flags(&pThis->SxLock, "IPRT Fast Mutex Semaphore", SX_DUPOK); + + *phFastMtx = pThis; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -107,11 +110,13 @@ RTDECL(int) RTSemFastMutexDestroy(RTSEMFASTMUTEX hFas + return VINF_SUCCESS; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertMsgReturn(pThis->u32Magic == RTSEMFASTMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + ASMAtomicWriteU32(&pThis->u32Magic, RTSEMFASTMUTEX_MAGIC_DEAD); + sx_destroy(&pThis->SxLock); + RTMemFree(pThis); + ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -121,8 +126,11 @@ RTDECL(int) RTSemFastMutexRequest(RTSEMFASTMUTEX hFas + PRTSEMFASTMUTEXINTERNAL pThis = hFastMtx; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertMsgReturn(pThis->u32Magic == RTSEMFASTMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + sx_xlock(&pThis->SxLock); ++ ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -132,8 +140,11 @@ RTDECL(int) RTSemFastMutexRelease(RTSEMFASTMUTEX hFas + PRTSEMFASTMUTEXINTERNAL pThis = hFastMtx; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertMsgReturn(pThis->u32Magic == RTSEMFASTMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + sx_xunlock(&pThis->SxLock); ++ ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c new file mode 100644 index 000000000000..6345ae10c562 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c @@ -0,0 +1,80 @@ +--- src/VBox/Runtime/r0drv/freebsd/semmutex-r0drv-freebsd.c.orig 2018-10-15 14:31:31 UTC ++++ src/VBox/Runtime/r0drv/freebsd/semmutex-r0drv-freebsd.c +@@ -62,6 +62,7 @@ RTDECL(int) RTSemMutexCreate(PRTSEMMUTEX phMutexSem) + { + AssertCompile(sizeof(RTSEMMUTEXINTERNAL) > sizeof(void *)); + AssertPtrReturn(phMutexSem, VERR_INVALID_POINTER); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + PRTSEMMUTEXINTERNAL pThis = (PRTSEMMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); + if (pThis) +@@ -70,8 +71,10 @@ RTDECL(int) RTSemMutexCreate(PRTSEMMUTEX phMutexSem) + sx_init_flags(&pThis->SxLock, "IPRT Mutex Semaphore", SX_RECURSE); + + *phMutexSem = pThis; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VERR_NO_MEMORY; + } + +@@ -83,12 +86,14 @@ RTDECL(int) RTSemMutexDestroy(RTSEMMUTEX hMutexSem) + return VINF_SUCCESS; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertMsgReturn(pThis->u32Magic == RTSEMMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + AssertReturn(ASMAtomicCmpXchgU32(&pThis->u32Magic, RTSEMMUTEX_MAGIC_DEAD, RTSEMMUTEX_MAGIC), VERR_INVALID_HANDLE); + + sx_destroy(&pThis->SxLock); + RTMemFree(pThis); + ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -99,6 +104,7 @@ RTDECL(int) RTSemMutexRequest(RTSEMMUTEX hMutexSem, R + int rc; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertMsgReturn(pThis->u32Magic == RTSEMMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + if (cMillies == RT_INDEFINITE_WAIT) + { +@@ -133,6 +139,7 @@ RTDECL(int) RTSemMutexRequest(RTSEMMUTEX hMutexSem, R + } while (RTTimeSystemMilliTS() - StartTS < cMillies); + } + ++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC(); + return VINF_SUCCESS; + } + +@@ -149,6 +156,7 @@ RTDECL(int) RTSemMutexRequestNoResume(RTSEMMUTEX hMut + int rc; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertMsgReturn(pThis->u32Magic == RTSEMMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + if (cMillies == RT_INDEFINITE_WAIT) + { +@@ -186,6 +194,7 @@ RTDECL(int) RTSemMutexRequestNoResume(RTSEMMUTEX hMut + } while (RTTimeSystemMilliTS() - StartTS < cMillies); + } + ++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC(); + return VINF_SUCCESS; + } + +@@ -201,8 +210,11 @@ RTDECL(int) RTSemMutexRelease(RTSEMMUTEX hMutexSem) + PRTSEMMUTEXINTERNAL pThis = hMutexSem; + AssertPtrReturn(pThis, VERR_INVALID_HANDLE); + AssertMsgReturn(pThis->u32Magic == RTSEMMUTEX_MAGIC, ("%p: u32Magic=%RX32\n", pThis, pThis->u32Magic), VERR_INVALID_HANDLE); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + sx_xunlock(&pThis->SxLock); ++ ++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC(); + return VINF_SUCCESS; + } + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c new file mode 100644 index 000000000000..4a86a2e38eb2 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c @@ -0,0 +1,30 @@ +--- src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c.orig 2021-01-07 15:42:09 UTC ++++ src/VBox/Runtime/r0drv/freebsd/spinlock-r0drv-freebsd.c +@@ -106,7 +106,9 @@ RTDECL(int) RTSpinlockCreate(PRTSPINLOCK pSpinlock, u + * Allocate. + */ + AssertCompile(sizeof(RTSPINLOCKINTERNAL) > sizeof(void *)); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + PRTSPINLOCKINTERNAL pThis = (PRTSPINLOCKINTERNAL)RTMemAllocZ(sizeof(*pThis)); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + if (!pThis) + return VERR_NO_MEMORY; + +@@ -140,7 +142,9 @@ RTDECL(int) RTSpinlockDestroy(RTSPINLOCK Spinlock) + * Make the lock invalid and release the memory. + */ + ASMAtomicIncU32(&pThis->u32Magic); ++ IPRT_FREEBSD_SAVE_EFL_AC(); + RTMemFree(pThis); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -166,6 +170,7 @@ RTDECL(void) RTSpinlockAcquire(RTSPINLOCK Spinlock) + { + RT_ASSERT_PREEMPT_CPUID_SPIN_ACQUIRED(pThis); + pThis->fIntSaved = fIntSaved; ++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC_EX(fIntSaved); + return; + } + if (--c <= 0) diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h new file mode 100644 index 000000000000..c783814425f5 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_the-freebsd-kernel.h @@ -0,0 +1,48 @@ +--- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2025-04-14 17:59:14 UTC ++++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h +@@ -97,6 +97,7 @@ + #include <sys/smp.h> + #include <sys/sleepqueue.h> + #include <sys/sx.h> ++#include <sys/vmmeter.h> /* vm_cnt */ + #include <vm/vm.h> + #include <vm/pmap.h> /* for vtophys */ + #include <vm/vm_map.h> +@@ -104,10 +105,11 @@ + #include <vm/vm_kern.h> + #include <vm/vm_param.h> /* KERN_SUCCESS ++ */ + #include <vm/vm_page.h> ++#include <vm/vm_pager.h> + #include <vm/vm_phys.h> /* vm_phys_alloc_* */ + #include <vm/vm_extern.h> /* kmem_alloc_attr */ + #include <vm/vm_pageout.h> /* vm_contig_grow_cache */ +-#include <sys/vmmeter.h> /* cnt */ ++#include <vm/vm_radix.h> + #include <sys/resourcevar.h> + #include <machine/cpu.h> + +@@ -165,6 +167,24 @@ + */ + #if 0 /** @todo Not available yet. */ + # define USE_KMEM_ALLOC_PROT ++#endif ++ ++/** ++ * Macros for preserving EFLAGS.AC (despair / paranoid) ++ */ ++#if __FreeBSD_version >= 1200076 && defined(RT_ARCH_AMD64) ++# include <iprt/asm-amd64-x86.h> ++# include <iprt/x86.h> ++# define IPRT_FREEBSD_SAVE_EFL_AC() RTCCUINTREG const fSavedEfl = ASMGetFlags() ++# define IPRT_FREEBSD_RESTORE_EFL_AC() ASMSetFlags(fSavedEfl) ++# define IPRT_FREEBSD_RESTORE_EFL_ONLY_AC() ASMChangeFlags(~X86_EFL_AC, fSavedEfl & X86_EFL_AC) ++# define IPRT_FREEBSD_RESTORE_EFL_ONLY_AC_EX(f) ASMChangeFlags(~X86_EFL_AC, (f) & X86_EFL_AC) ++# define VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV ++#else ++# define IPRT_FREEBSD_SAVE_EFL_AC() do { } while (0) ++# define IPRT_FREEBSD_RESTORE_EFL_AC() do { } while (0) ++# define IPRT_FREEBSD_RESTORE_EFL_ONLY_AC() do { } while (0) ++# define IPRT_FREEBSD_RESTORE_EFL_ONLY_AC_EX(f) do { } while (0) + #endif + + #endif /* !IPRT_INCLUDED_SRC_r0drv_freebsd_the_freebsd_kernel_h */ diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c new file mode 100644 index 000000000000..c1ba2d811cde --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c @@ -0,0 +1,91 @@ +--- src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c.orig 2021-04-20 04:32:44 UTC ++++ src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c +@@ -49,7 +49,6 @@ RTDECL(RTNATIVETHREAD) RTThreadNativeSelf(void) + static int rtR0ThreadFbsdSleepCommon(RTMSINTERVAL cMillies) + { + int rc; +- int cTicks; + + /* + * 0 ms sleep -> yield. +@@ -60,30 +59,34 @@ static int rtR0ThreadFbsdSleepCommon(RTMSINTERVAL cMil + return VINF_SUCCESS; + } + ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + /* + * Translate milliseconds into ticks and go to sleep. + */ + if (cMillies != RT_INDEFINITE_WAIT) + { +- if (hz == 1000) +- cTicks = cMillies; +- else if (hz == 100) +- cTicks = cMillies / 10; +- else +- { +- int64_t cTicks64 = ((uint64_t)cMillies * hz) / 1000; +- cTicks = (int)cTicks64; +- if (cTicks != cTicks64) +- cTicks = INT_MAX; +- } ++ struct timeval tv; ++ ++ tv.tv_sec = cMillies / 1000; ++ tv.tv_usec = cMillies * 1000; ++ ++ rc = tsleep_sbt((void *)RTThreadSleep, ++ PZERO | PCATCH, ++ "iprtsl", /* max 6 chars */ ++ tvtosbt(tv), ++ 0, ++ C_ABSOLUTE); + } + else +- cTicks = 0; /* requires giant lock! */ +- +- rc = tsleep((void *)RTThreadSleep, +- PZERO | PCATCH, +- "iprtsl", /* max 6 chars */ +- cTicks); ++ { ++ /* requires giant lock! */ ++ rc = tsleep((void *)RTThreadSleep, ++ PZERO | PCATCH, ++ "iprts0", /* max 6 chars */ ++ 0); ++ } ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + switch (rc) + { + case 0: +@@ -114,11 +117,13 @@ RTDECL(int) RTThreadSleepNoLog(RTMSINTERVAL cMillies) + + RTDECL(bool) RTThreadYield(void) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + #if __FreeBSD_version >= 900032 + kern_yield(curthread->td_user_pri); + #else + uio_yield(); + #endif ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return false; /** @todo figure this one ... */ + } + +@@ -167,12 +172,14 @@ RTDECL(void) RTThreadPreemptDisable(PRTTHREADPREEMPTST + + RTDECL(void) RTThreadPreemptRestore(PRTTHREADPREEMPTSTATE pState) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); /* paranoia */ + AssertPtr(pState); + Assert(pState->u32Reserved == 42); + pState->u32Reserved = 0; + + RT_ASSERT_PREEMPT_CPUID_RESTORE(pState); + critical_exit(); ++ IPRT_FREEBSD_RESTORE_EFL_ONLY_AC(); /* paranoia */ + } + + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c new file mode 100644 index 000000000000..c9cd05c42397 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c @@ -0,0 +1,35 @@ +--- src/VBox/Runtime/r0drv/freebsd/thread2-r0drv-freebsd.c.orig 2021-01-07 15:42:09 UTC ++++ src/VBox/Runtime/r0drv/freebsd/thread2-r0drv-freebsd.c +@@ -94,6 +94,8 @@ DECLHIDDEN(int) rtThreadNativeSetPriority(PRTTHREADINT + return VERR_INVALID_PARAMETER; + } + ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + #if __FreeBSD_version < 700000 + /* Do like they're doing in subr_ntoskrnl.c... */ + mtx_lock_spin(&sched_lock); +@@ -110,6 +112,7 @@ DECLHIDDEN(int) rtThreadNativeSetPriority(PRTTHREADINT + thread_unlock(curthread); + #endif + ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -159,6 +162,7 @@ static void rtThreadNativeMain(void *pvThreadInt) + + DECLHIDDEN(int) rtThreadNativeCreate(PRTTHREADINT pThreadInt, PRTNATIVETHREAD pNativeThread) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); + int rc; + struct proc *pProc; + +@@ -174,6 +178,7 @@ DECLHIDDEN(int) rtThreadNativeCreate(PRTTHREADINT pThr + } + else + rc = RTErrConvertFromErrno(rc); ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return rc; + } + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c new file mode 100644 index 000000000000..399328e16faa --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c @@ -0,0 +1,43 @@ +--- src/VBox/Runtime/r0drv/freebsd/time-r0drv-freebsd.c.orig 2021-01-07 15:42:09 UTC ++++ src/VBox/Runtime/r0drv/freebsd/time-r0drv-freebsd.c +@@ -64,16 +64,23 @@ + + RTDECL(uint64_t) RTTimeNanoTS(void) + { +- struct timespec tsp; +- nanouptime(&tsp); +- return tsp.tv_sec * RT_NS_1SEC_64 +- + tsp.tv_nsec; ++ struct bintime bt; ++ uint64_t ns; ++ binuptime(&bt); ++ ns = RT_NS_1SEC_64 * bt.sec; ++ ns += (RT_NS_1SEC_64 * (uint32_t)(bt.frac >> 32)) >> 32; ++ return ns; + } + + + RTDECL(uint64_t) RTTimeMilliTS(void) + { +- return RTTimeNanoTS() / RT_NS_1MS; ++ struct bintime bt; ++ uint64_t ms; ++ binuptime(&bt); ++ ms = RT_MS_1SEC_64 * bt.sec; ++ ms += (RT_MS_1SEC_64 * (uint32_t)(bt.frac >> 32)) >> 32; ++ return ms; + } + + +@@ -91,8 +98,7 @@ RTDECL(uint64_t) RTTimeSystemMilliTS(void) + + RTDECL(PRTTIMESPEC) RTTimeNow(PRTTIMESPEC pTime) + { +- struct timespec tsp; +- nanotime(&tsp); +- return RTTimeSpecSetTimespec(pTime, &tsp); ++ struct timespec ts; ++ nanotime(&ts); ++ return RTTimeSpecSetTimespec(pTime, &ts); + } +- diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c new file mode 100644 index 000000000000..ee5b90f13c51 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c @@ -0,0 +1,68 @@ +--- src/VBox/Runtime/r0drv/freebsd/timer-r0drv-freebsd.c.orig 2021-01-07 15:42:09 UTC ++++ src/VBox/Runtime/r0drv/freebsd/timer-r0drv-freebsd.c +@@ -116,6 +116,7 @@ static void rtTimerFreeBSDCallback(void *pvTimer); + RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_t u64NanoInterval, uint32_t fFlags, PFNRTTIMER pfnTimer, void *pvUser) + { + *ppTimer = NULL; ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + /* + * Validate flags. +@@ -145,6 +146,7 @@ RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_ + callout_init(&pTimer->Callout, CALLOUT_MPSAFE); + + *ppTimer = pTimer; ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -165,6 +167,8 @@ DECLINLINE(bool) rtTimerIsValid(PRTTIMER pTimer) + + RTDECL(int) RTTimerDestroy(PRTTIMER pTimer) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + /* It's ok to pass NULL pointer. */ + if (pTimer == /*NIL_RTTIMER*/ NULL) + return VINF_SUCCESS; +@@ -177,6 +181,8 @@ RTDECL(int) RTTimerDestroy(PRTTIMER pTimer) + pTimer->u32Magic++; + callout_stop(&pTimer->Callout); + RTMemFree(pTimer); ++ ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + +@@ -184,6 +190,7 @@ RTDECL(int) RTTimerDestroy(PRTTIMER pTimer) + RTDECL(int) RTTimerStart(PRTTIMER pTimer, uint64_t u64First) + { + struct timeval tv; ++ IPRT_FREEBSD_SAVE_EFL_AC(); + + if (!rtTimerIsValid(pTimer)) + return VERR_INVALID_HANDLE; +@@ -207,12 +214,15 @@ RTDECL(int) RTTimerStart(PRTTIMER pTimer, uint64_t u64 + tv.tv_usec = (u64First % 1000000000) / 1000; + callout_reset(&pTimer->Callout, tvtohz(&tv), rtTimerFreeBSDCallback, pTimer); + ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + + + RTDECL(int) RTTimerStop(PRTTIMER pTimer) + { ++ IPRT_FREEBSD_SAVE_EFL_AC(); ++ + if (!rtTimerIsValid(pTimer)) + return VERR_INVALID_HANDLE; + if (pTimer->fSuspended) +@@ -224,6 +234,7 @@ RTDECL(int) RTTimerStop(PRTTIMER pTimer) + pTimer->fSuspended = true; + callout_stop(&pTimer->Callout); + ++ IPRT_FREEBSD_RESTORE_EFL_AC(); + return VINF_SUCCESS; + } + diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp new file mode 100644 index 000000000000..87ae993446a3 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp @@ -0,0 +1,39 @@ +--- src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp.orig 2025-04-14 17:59:18 UTC ++++ src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp +@@ -75,7 +75,6 @@ RTDECL(int) RTSystemQueryAvailableRam(uint64_t *pcb) + u_int cPagesMemFree = 0; + u_int cPagesMemInactive = 0; + u_int cPagesMemCached = 0; +- u_int cPagesMemUsed = 0; + int cbPage = 0; + size_t cbParameter; + int cProcessed = 0; +@@ -83,25 +82,23 @@ RTDECL(int) RTSystemQueryAvailableRam(uint64_t *pcb) + cbParameter = sizeof(cPagesMemFree); + if (sysctlbyname("vm.stats.vm.v_free_count", &cPagesMemFree, &cbParameter, NULL, 0)) + rc = RTErrConvertFromErrno(errno); +- cbParameter = sizeof(cPagesMemUsed); +- if ( RT_SUCCESS(rc) +- && sysctlbyname("vm.stats.vm.v_active_count", &cPagesMemUsed, &cbParameter, NULL, 0)) +- rc = RTErrConvertFromErrno(errno); + cbParameter = sizeof(cPagesMemInactive); + if ( RT_SUCCESS(rc) + && sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0)) + rc = RTErrConvertFromErrno(errno); ++#if __FreeBSD_version < 1200016 + cbParameter = sizeof(cPagesMemCached); + if ( RT_SUCCESS(rc) + && sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0)) + rc = RTErrConvertFromErrno(errno); ++#endif + cbParameter = sizeof(cbPage); + if ( RT_SUCCESS(rc) + && sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0)) + rc = RTErrConvertFromErrno(errno); + + if (RT_SUCCESS(rc)) +- *pcb = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * cbPage; ++ *pcb = ((uint64_t)cPagesMemFree + cPagesMemInactive + cPagesMemCached) * cbPage; + + return rc; + } diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp new file mode 100644 index 000000000000..83cabcb77b97 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_Runtime_r3_posix_process-creation-posix.cpp @@ -0,0 +1,38 @@ +--- src/VBox/Runtime/r3/posix/process-creation-posix.cpp.orig 2022-01-13 18:58:24 UTC ++++ src/VBox/Runtime/r3/posix/process-creation-posix.cpp +@@ -30,7 +30,7 @@ + *********************************************************************************************************************************/ + #define LOG_GROUP RTLOGGROUP_PROCESS + #include <iprt/cdefs.h> +-#ifdef RT_OS_LINUX ++#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) + # define IPRT_WITH_DYNAMIC_CRYPT_R + #endif + #if (defined(RT_OS_LINUX) || defined(RT_OS_OS2)) && !defined(_GNU_SOURCE) +@@ -69,7 +69,7 @@ + # include <shadow.h> + #endif + +-#if defined(RT_OS_LINUX) || defined(RT_OS_OS2) ++#if defined(RT_OS_LINUX) || defined(RT_OS_OS2) || defined(RT_OS_FREEBSD) + /* While Solaris has posix_spawn() of course we don't want to use it as + * we need to have the child in a different process contract, no matter + * whether it is started detached or not. */ +@@ -157,7 +157,7 @@ + # define IPRT_LIBPAM_FILE_3 "libpam.1.dylib" + # define IPRT_LIBPAM_FILE_3_FIRST_VER 0 + # define IPRT_LIBPAM_FILE_3_END_VER 0 +-# elif RT_OS_LINUX ++# elif RT_OS_LINUX || RT_OS_FREEBSD + # define IPRT_LIBPAM_FILE_1 "libpam.so.0" + # define IPRT_LIBPAM_FILE_1_FIRST_VER 0 + # define IPRT_LIBPAM_FILE_1_END_VER 0 +@@ -572,7 +572,7 @@ static int rtCheckCredentials(const char *pszUser, con + if (pPw->pw_passwd && *pPw->pw_passwd) + # endif + { +-# if defined(RT_OS_LINUX) || defined(RT_OS_OS2) ++# if defined(RT_OS_LINUX) || defined(RT_OS_OS2) || defined(RT_OS_FREEBSD) + # ifdef IPRT_WITH_DYNAMIC_CRYPT_R + size_t const cbCryptData = RT_MAX(sizeof(struct crypt_data) * 2, _256K); + # else diff --git a/emulators/virtualbox-ose-71/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp b/emulators/virtualbox-ose-71/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp new file mode 100644 index 000000000000..b04b05811f86 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp @@ -0,0 +1,59 @@ +--- src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp.orig 2021-04-19 21:33:04.000000000 -0700 ++++ src/VBox/VMM/VMMR3/PDMAsyncCompletionFileNormal.cpp 2021-05-18 11:45:08.396136000 -0700 +@@ -27,6 +27,13 @@ + #include <iprt/string.h> + #include <iprt/assert.h> + #include <VBox/log.h> ++/* TBR: we need a complicated crawl through the data structure to get the AIO system limits ++ to check when considering growing the number of active AIO requests.... */ ++/* We need the PDMInternal *before* the UVM, or it isn't visible afterwards. (src/VBox/VMM/include/PDMInternal.h) */ ++#include <PDMInternal.h> ++#include <VBox/vmm/uvm.h> ++#include <VBox/vmm/vm.h> ++/* TBR: end of extra includes. */ + + #include "PDMAsyncCompletionFileInternal.h" + +@@ -1120,8 +1127,40 @@ + */ + pdmacFileAioMgrNormalBalanceLoad(pAioMgr); + #else +- /* Grow the I/O manager */ +- pAioMgr->enmState = PDMACEPFILEMGRSTATE_GROWING; ++ /* TBR: Check the global AIO system limit before growing. ++ This is the complicateds crawl through the data structure mentioned ++ near the start of this file. ++ There HAS to be a better way and better time to get this limit! */ ++ PPDMASYNCCOMPLETIONEPCLASS pEpClass = NULL; ++ PCPDMASYNCCOMPLETIONEPCLASSOPS pEndpointOps = NULL; ++ PDMASYNCCOMPLETIONEPCLASSTYPE enmClassType; ++ PPDMASYNCCOMPLETIONEPCLASSFILE pEpClassFile = NULL; ++ PVM pVM = NULL; ++ PUVM pUVM = NULL; ++ unsigned int aio_system_reqests_max = RTFILEAIO_UNLIMITED_REQS; ++ pEpClass = pEndpoint->Core.pEpClass; ++ AssertMsg((NULL != pEpClass),("ep->class is NULL")); ++ pEndpointOps = pEpClass->pEndpointOps; ++ AssertMsg((NULL != pEndpointOps),("ep->class->ops is NULL")); ++ enmClassType = pEndpointOps->enmClassType; ++ AssertMsg((PDMASYNCCOMPLETIONEPCLASSTYPE_FILE == enmClassType), ++ ("ep->class->ops->type != PDMASYNCCOMPLETIONEPCLASSTYPE_FILE")); ++ pVM = pEpClass->pVM; ++ AssertMsg((NULL != pVM),("ep->class->VM is NULL")); ++ pUVM = pVM->pUVM; ++ AssertMsg((NULL != pUVM),("ep->class->VM->UVM is NULL")); ++ pEpClassFile = (PPDMASYNCCOMPLETIONEPCLASSFILE) (pUVM->pdm.s.apAsyncCompletionEndpointClass[enmClassType]); ++ AssertMsg((NULL != pEpClassFile),("ep->class->VM->UVM->pdn[globals] is NULL")); ++ aio_system_reqests_max = pEpClassFile->cReqsOutstandingMax; ++#if 0 ++ /* A one time check during development to verify getting the right number. */ ++ AssertMsg((256 != aio_system_reqests_max), ++ ("aio_system_reqests_max != 256 (val=%u)",aio_system_reqests_max)); ++#endif ++ if (RT_UNLIKELY( aio_system_reqests_max == RTFILEAIO_UNLIMITED_REQS ++ || (pAioMgr->cRequestsActiveMax+PDMACEPFILEMGR_REQS_STEP) <= aio_system_reqests_max)) ++ /* Grow the I/O manager */ ++ pAioMgr->enmState = PDMACEPFILEMGRSTATE_GROWING; + #endif + } + } diff --git a/emulators/virtualbox-ose-71/files/patch-src_VMM_Config.kmk b/emulators/virtualbox-ose-71/files/patch-src_VMM_Config.kmk new file mode 100644 index 000000000000..1c44352c9409 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_VMM_Config.kmk @@ -0,0 +1,11 @@ +--- src/VBox/VMM/Config.kmk.orig 2024-12-27 03:55:34.269311000 +0100 ++++ src/VBox/VMM/Config.kmk 2024-12-27 03:42:41.858673000 +0100 +@@ -91,7 +91,7 @@ + VMM_COMMON_DEFS += VBOX_WITH_NATIVE_NEM VBOX_WITH_NEM_R0 + endif + endif +-if1of ($(KBUILD_TARGET), freebsd linux solaris) # Hosts that implements SUPR0HCPhysToVirt. ++if1of ($(KBUILD_TARGET), linux solaris) # Hosts that implements SUPR0HCPhysToVirt. + VMM_COMMON_DEFS += VBOX_WITH_LINEAR_HOST_PHYS_MEM + endif + diff --git a/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_Makefile.kmk new file mode 100644 index 000000000000..c87ba535edb0 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_Makefile.kmk @@ -0,0 +1,11 @@ +--- src/libs/xpcom18a4/Makefile.kmk.orig 2021-01-07 15:44:04 UTC ++++ src/libs/xpcom18a4/Makefile.kmk +@@ -985,6 +985,8 @@ VBoxXPCOM_LIBS = \ + $(VBox-xpcom-proxy_1_TARGET) \ + $(VBox-xpcom-nspr_1_TARGET) \ + $(VBoxXPCOMGlue_s_1_TARGET) ++VBoxXPCOM_LIBS.freebsd = \ ++ pthread + VBoxXPCOM_LIBS.linux = \ + pthread dl + diff --git a/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c new file mode 100644 index 000000000000..4d556c7cf5a0 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c @@ -0,0 +1,13 @@ +--- src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptsynch.c.orig 2025-01-21 20:03:59.000000000 +0700 ++++ src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptsynch.c 2025-01-23 01:00:59.324267000 +0700 +@@ -45,6 +45,10 @@ + #include <string.h> + #include <pthread.h> + #include <sys/time.h> ++#ifdef FREEBSD ++#include <sys/param.h> ++#endif ++ + #include <errno.h> + + #include <iprt/asm.h> diff --git a/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h new file mode 100644 index 000000000000..13af9aa6bffa --- /dev/null +++ b/emulators/virtualbox-ose-71/files/patch-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h @@ -0,0 +1,17 @@ +--- src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.h.orig 2020-05-13 19:46:34 UTC ++++ src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.h +@@ -72,14 +72,6 @@ + #define STATFS statfs + #endif + +-// so we can statfs on freebsd +-#if defined(__FreeBSD__) +- #define HAVE_SYS_STATFS_H +- #define STATFS statfs +- #include <sys/param.h> +- #include <sys/mount.h> +-#endif +- + class NS_COM nsLocalFile : public nsILocalFile + { + public: diff --git a/emulators/virtualbox-ose-71/files/pkg-message.in b/emulators/virtualbox-ose-71/files/pkg-message.in new file mode 100644 index 000000000000..27c14e0a2e2a --- /dev/null +++ b/emulators/virtualbox-ose-71/files/pkg-message.in @@ -0,0 +1,120 @@ +[ +{ type: install + message: <<EOM +VirtualBox was installed. + +You need to load the vboxdrv kernel module via /boot/loader.conf: + +vboxdrv_load="YES" + +You also have to add all users to your vboxusers group in order to use vbox. + +% pw groupmod vboxusers -m jerry + +Reboot the machine to load the needed kernel modules. + + +Bridging Support: +================= + +For bridged networking please add the following line to your /etc/rc.conf: + +vboxnet_enable="YES" + + +USB Support: +============ + +For USB support your user needs to be in the operator group and needs read +and write permissions to the USB device. + +% pw groupmod operator -m jerry + +Add the following to /etc/devfs.rules (create if it doesn't exist): + +[system=10] +add path 'usb/*' mode 0660 group operator + +To load these new rule add the following to /etc/rc.conf: + +devfs_system_ruleset="system" + +Then restart devfs to load the new rules: + +% /etc/rc.d/devfs restart + + +Troubleshooting: +================ + +Running VirtualBox as non-root user may fail with a fatal error +NS_ERROR_FACTORY_NOT_REGISTERED. In this case delete /tmp/.vbox-*-ipc file. + +If you experience "Network: write Failed: Cannot allocate memory" errors +try to increase net.graph.maxdata in /boot/loader.conf + +If you are using AIO, then increase these limits (https://bugs.freebsd.org/168298): +vfs.aio.max_buf_aio=8192 +vfs.aio.max_aio_queue_per_proc=65536 +vfs.aio.max_aio_per_proc=8192 +vfs.aio.max_aio_queue=65536 +To check if AIO is used use: kldstat -v | grep aio + +If you are experiencing VMs freezes with an error in VBox.log such as: +" +00:01:29.590192 AssertLogRel /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.44 +/src/VBox/VMM/VMMR3/PGMPhys.cpp(5148) int PGMR3PhysAllocateHandyPages(PVM): RT_SUCCESS(rc) +00:01:29.590221 87/128: idPage=0x3d400 HCPhysGCPhys=000000027eaed000 rc=VERR_NO_MEMORY +00:01:29.590247 Changing the VM state from 'RUNNING' to 'GURU_MEDITATION' +00:01:29.590261 Console: Machine state changed to 'GuruMeditation' +00:01:29.590695 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +00:01:29.590696 !! +00:01:29.590697 !! VCPU0: Guru Meditation -8 (VERR_NO_MEMORY) +" +and see a lot of free RAM, then increase sysctl vm.max_user_wired +(https://bugs.freebsd.org/252227). +For dedicated VM servers, a good start is: +("RAM in GB" - max(1, "RAM in GB" / 32)) * 1024*1024*1024 / PAGE_SIZE +PAGE_SIZE on x86 is 4096. +Examples with different RAM sizes in GB: + 16: ( 16-max(1, 16/32)*1024*1024*1024/4096 = 3932160 => 15GB + 32: ( 32-max(1, 32/32)*1024*1024*1024/4096 = 8126464 => 31GB + 48: ( 48-max(1, 48/32)*1024*1024*1024/4096 = 12189696 => 46.5GB + 64: ( 64-max(1, 64/32)*1024*1024*1024/4096 = 16252928 => 62GB +128: (128-max(1,128/32)*1024*1024*1024/4096 = 32505856 => 124GB +256: (256-max(1,256/32)*1024*1024*1024/4096 = 65011712 => 248GB + +When assigning IP addresses in host-only mode from ranges outside +of VirtualBox's defaults, the respective ranges need to be listed +in %%VBOX_ETC%%/networks.conf (https://bugs.freebsd.org/259399). + +Check the wiki page for known issues and troubleshooting: +https://wiki.freebsd.org/VirtualBox + +Please report any problems to emulation@. Thanks! +EOM +} +{ type: upgrade + maximum_version: 6.1.22 + message: <<EOM +The PULSEAUDIO option has been forcibly disabled since VirtualBox +version 6.1.24 due to a bug in it preventing virtual machines +configured to use it from starting. + +When upgrading from a previous version please reconfigure any virtual +machines using the Pulseaudio host audio driver to use another +supported one. +EOM +} +{ type: upgrade + minimum_version: 6.1.26 + maximum_version: 6.1.32_1 + message: <<EOM +To comply to hier(7) requirements, networks.conf's location changed +to %%VBOX_ETC%%/networks.conf. + +In case /etc/vbox/networks.conf exists, it needs to be moved to +%%VBOX_ETC%% and /etc/vbox should be deleted. +EOM +} +] diff --git a/emulators/virtualbox-ose-71/files/vboxheadless.in b/emulators/virtualbox-ose-71/files/vboxheadless.in new file mode 100644 index 000000000000..5ddc5fc21d6c --- /dev/null +++ b/emulators/virtualbox-ose-71/files/vboxheadless.in @@ -0,0 +1,140 @@ +#!/bin/sh + +# PROVIDE: vboxheadless +# REQUIRE: LOGIN vboxnet +# KEYWORD: shutdown +# +# Add the following line to /etc/rc.conf[.local] to enable vboxheadless +# +# vboxheadless_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable vboxheadless. +# vboxheadless_machines (str): Space separated list of machines +# vboxheadless_user (str): Default user account to run with. +# (default: %%VBOXUSER%%) +# vboxheadless_stop (str): Default stop cmd for VBoxManage controlvm. +# (default: savestate) +# vboxheadless_delay (int): Default startup/shutdown delay in seconds. +# (default: 0) +# vboxheadless_<machine>_name (str): Virtualbox machine name or UUID. +# vboxheadless_<machine>_user (str): User account to run with. +# vboxheadless_<machine>_flags (str): Additional flags for VBoxHeadless. +# vboxheadless_<machine>_stop (str): Stop command for VBoxManage controlvm. +# vboxheadless_<machine>_delay (int): Startup and shutdown delay in seconds. + +. /etc/rc.subr + +name="vboxheadless" +rcvar=vboxheadless_enable +rc_fast="YES" + +command="%%VBOXDIR%%/VBoxHeadless" +pidbase="/var/run/${name}" + +start_cmd="${name}_start" +stop_cmd="${name}_stop" +status_cmd="${name}_status" + +vboxheadless_start() +{ + local machine mpidfile pid vmname vmuser vmflags vmdelay + + echo "Starting Virtual Machines:" + for machine in ${vboxheadless_machines}; do + mpidfile="${pidbase}_${machine}.pid" + pid=$(check_pidfile $mpidfile $command) + eval vmname="\${vboxheadless_${machine}_name:-${machine}}" + eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}" + eval vmflags="\${vboxheadless_${machine}_flags:-}" + eval vmdelay="\${vboxheadless_${machine}_delay:-${vboxheadless_delay}}" + + HOME=$(/usr/sbin/pw usershow -7 -n "${vmuser}" | /usr/bin/cut -d: -f6) + + /usr/bin/printf "%25s " "${vmname}" + + /usr/bin/su ${vmuser} -c "%%VBOXDIR%%/VBoxManage showvminfo '${vmname}' >/dev/null" 2>/dev/null + + if [ $? != 0 ]; then + echo "Unknown machine" + continue + fi + + if [ -n "${pid}" ]; then + echo "Already running? (pid=${pid})" + continue + fi + + /bin/sleep ${vmdelay} + /usr/bin/install -o ${vmuser} -g %%VBOXGROUP%% -m 644 /dev/null ${mpidfile} + /usr/sbin/daemon -f -p ${mpidfile} -u ${vmuser} ${command} --startvm "${vmname}" ${vmflags} + echo "Started" + done +} + +vboxheadless_stop() +{ + local machine mpidfile pid pids vmname vmuser vmstop vmdelay + + echo "Saving states for Virtual Machines:" + for machine in ${vboxheadless_machines}; do + mpidfile="${pidbase}_${machine}.pid" + pid=$(check_pidfile $mpidfile $command) + eval vmname="\${vboxheadless_${machine}_name:-${machine}}" + eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}" + eval vmstop="\${vboxheadless_${machine}_stop:-${vboxheadless_stop}}" + eval vmdelay="\${vboxheadless_${machine}_delay:-${vboxheadless_delay}}" + + /usr/bin/printf "%25s " "${vmname}" + + if [ -n "${pid}" ]; then + pids="${pids} ${pid}" + /bin/sleep ${vmdelay} + /usr/bin/su ${vmuser} -c "%%VBOXDIR%%/VBoxManage controlvm '${vmname}' ${vmstop} >/dev/null &" 2>/dev/null + fi + done + if [ -n "${pids}" ]; then + wait_for_pids $pids >/dev/null + echo "Stopped" + else + echo "Not running?" + fi +} + +vboxheadless_status() +{ + local machine mpidfile pid vmname vmuser + + /usr/bin/printf "%25s %s\n" "Machine" "Status" + /usr/bin/printf "%25s %s\n" "-------------------------" "------------" + + for machine in ${vboxheadless_machines}; do + mpidfile="${pidbase}_${machine}.pid" + pid=$(check_pidfile $mpidfile $command) + eval vmname="\${vboxheadless_${machine}_name:-${machine}}" + eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}" + + /usr/bin/su ${vmuser} -c "%%VBOXDIR%%/VBoxManage showvminfo '${vmname}' >/dev/null" 2>/dev/null + + if [ $? != 0 ]; then + /usr/bin/printf "%20s %s\n" "${vmname}" "Unknown Machine" + elif [ -n "${pid}" ]; then + /usr/bin/printf "%25s %s\n" "${vmname}" "Running" + else + /usr/bin/printf "%25s %s\n" "${vmname}" "Powered Off" + fi + done +} + +load_rc_config $name + +: ${vboxheadless_enable="NO"} +: ${vboxheadless_user="%%VBOXUSER%%"} +: ${vboxheadless_stop="savestate"} +: ${vboxheadless_delay="0"} + +cmd_arg="$1" ; shift + +if [ -n "$*" ]; then + vboxheadless_machines="$*" +fi + +run_rc_command "${cmd_arg}" diff --git a/emulators/virtualbox-ose-71/files/vboxinit.in b/emulators/virtualbox-ose-71/files/vboxinit.in new file mode 100644 index 000000000000..13ec9614827d --- /dev/null +++ b/emulators/virtualbox-ose-71/files/vboxinit.in @@ -0,0 +1,91 @@ +#!/bin/sh + +# PROVIDE: vboxinit +# REQUIRE: LOGIN vboxnet vboxwebsrv sshd +# KEYWORD: shutdown +# +# Add the following line to /etc/rc.conf[.local] to enable vboxinit +# +# vboxinit_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable vboxinit. +# stop and faststop are always enabled. +# vboxinit_user (str): Default user account to run with. +# (default: %%VBOXUSER%%) +# vboxinit_home (str): Default home directory to run with. +# (default: home of user ${vboxinit_user} +# vboxinit_stop (str): Default stop cmd for VBoxManage controlvm. +# (default: savestate) +# vboxinit_start_delay (int): Default startup delay in seconds. +# (default: 0) +# vboxinit_stop_delay (int): Default shutdown delay in seconds. +# (default: 0) +# +# Set the "Startup Mode" to "Automatic" for the virtual machine in +# phpvirtualbox to automatically start the virtual machine during OS boot. +# + +. /etc/rc.subr + +name="vboxinit" +rcvar="${name}_enable" + +start_cmd="${name}_start" +stop_cmd="${name}_stop" +status_cmd="${name}_status" +restart_cmd="${name}_restart" + +vboxinit_start() +{ + # Get a list of all machines with autorun enabled in phpvirtualbox + ${su_command} "${command} list vms | /usr/bin/tr -d '{}\"'" | while read VMNAME UUID; do + STARTUP=$(${su_command} "${command} getextradata ${UUID} 'pvbx/startupMode'" | /usr/bin/cut -d' ' -f2) + if [ "${STARTUP}" == "auto" ]; then + echo "${name}: starting machine ${VMNAME} ..." + ${su_command} "${command} startvm ${UUID} --type headless" + sleep "${vboxinit_start_delay}" + fi + done +} + +vboxinit_stop() +{ + # Get all running machines + ${su_command} "${command} list runningvms | /usr/bin/tr -d '{}\"'" | while read VMNAME UUID; do + echo "${name}: stopping machine ${VMNAME} with action '${vboxinit_stop}' ..." + ${su_command} "${command} controlvm ${UUID} ${vboxinit_stop}" + sleep "${vboxinit_stop_delay}" + done +} + +vboxinit_status() +{ + # List all running machines + ${su_command} "${command} list runningvms" +} + +vboxinit_restart() +{ + vboxinit_stop + vboxinit_start +} + +load_rc_config $name + +: ${vboxinit_enable="NO"} +: ${vboxinit_user="%%VBOXUSER%%"} +: ${vboxinit_home=$(/usr/sbin/pw usershow -7 -n "${vboxinit_user}" | /usr/bin/cut -d: -f6)} +: ${vboxinit_stop="savestate"} +: ${vboxinit_start_delay="0"} +: ${vboxinit_stop_delay="0"} +HOME=${vboxinit_home} +USER=${vboxinit_user} +export HOME USER + +command="%%VBOXDIR%%/VBoxManage" +su_command="/usr/bin/su -m ${vboxinit_user} -c" + +if [ "x$1" = "xstop" ] || [ "x$1" = "xfaststop" ]; then + vboxinit_enable="YES" +fi + +run_rc_command "$1" diff --git a/emulators/virtualbox-ose-71/files/vboxwatchdog.in b/emulators/virtualbox-ose-71/files/vboxwatchdog.in new file mode 100644 index 000000000000..c21bc03b3523 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/vboxwatchdog.in @@ -0,0 +1,51 @@ +#!/bin/sh + +# PROVIDE: vboxwatchdog +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following line to /etc/rc.conf[.local] to enable vboxwatchdog +# +# vboxwatchdog_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable vboxwatchdog. +# vboxwatchdog_user (str): User account to run with. +# vboxwatchdog_flags (str): Custom flags for VBoxWatchdog. + +. /etc/rc.subr + +name=vboxwatchdog +rcvar=vboxwatchdog_enable + +command="%%VBOXDIR%%/VBoxBalloonCtrl" +pidfile="/var/run/${name}.pid" + +start_cmd="${name}_start" + +vboxwatchdog_start() +{ + local pid + + HOME=$(/usr/sbin/pw usershow -7 -n "${vboxwatchdog_user}" | /usr/bin/cut -d: -f6) + pid=$(check_pidfile $pidfile $command) + + if [ -n "${pid}" ]; then + echo "${name} already running? (pid=${pid})." + return 1 + fi + + # prevent inheriting this setting to VBoxSVC + unset VBOX_RELEASE_LOG_DEST + + echo -n "Starting ${name}" + /usr/bin/install -o ${vboxwatchdog_user} -g %%VBOXGROUP%% -m 644 /dev/null ${pidfile} + /usr/sbin/daemon -f -p ${pidfile} -u ${vboxwatchdog_user} ${command} ${vboxwatchdog_flags} + echo '.' +} + +load_rc_config $name + +: ${vboxwatchdog_enable="NO"} +: ${vboxwatchdog_user="%%VBOXUSER%%"} +: ${vboxwatchdog_flags=""} + +run_rc_command "$1" diff --git a/emulators/virtualbox-ose-71/files/vboxwebsrv.in b/emulators/virtualbox-ose-71/files/vboxwebsrv.in new file mode 100644 index 000000000000..a7e1e38e3090 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/vboxwebsrv.in @@ -0,0 +1,47 @@ +#!/bin/sh + +# PROVIDE: vboxwebsrv +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following line to /etc/rc.conf[.local] to enable vboxwebsrv +# +# vboxwebsrv_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable vboxwebsrv. +# vboxwebsrv_user (str): User account to run with. +# vboxwebsrv_flags (str): Custom flags for vboxwebsrv. + +. /etc/rc.subr + +name=vboxwebsrv +rcvar=vboxwebsrv_enable + +command="%%VBOXDIR%%/vboxwebsrv" +pidfile="/var/run/${name}.pid" + +start_cmd="${name}_start" + +vboxwebsrv_start() +{ + local pid + + HOME=$(/usr/sbin/pw usershow -7 -n "${vboxwebsrv_user}" | /usr/bin/cut -d: -f6) + pid=$(check_pidfile $pidfile $command) + + if [ -n "${pid}" ]; then + echo "${name} already running? (pid=${pid})." + return 1 + fi + + echo -n "Starting ${name}" + /usr/bin/install -o ${vboxwebsrv_user} -g %%VBOXGROUP%% -m 644 /dev/null ${pidfile} + /usr/sbin/daemon -f -p ${pidfile} -u ${vboxwebsrv_user} ${command} ${vboxwebsrv_flags} + echo '.' +} + +load_rc_config $name + +: ${vboxwebsrv_enable="NO"} +: ${vboxwebsrv_user="%%VBOXWSUSER%%"} + +run_rc_command "$1" diff --git a/emulators/virtualbox-ose-71/files/virtualbox.desktop b/emulators/virtualbox-ose-71/files/virtualbox.desktop new file mode 100644 index 000000000000..b0d09e2128b7 --- /dev/null +++ b/emulators/virtualbox-ose-71/files/virtualbox.desktop @@ -0,0 +1,17 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Name=Oracle VM VirtualBox +GenericName=Virtual Machine +Type=Application +Exec=VirtualBox +TryExec=VirtualBox +Icon=VBox +Categories=Emulator;System; +Comment=Run several virtual systems on a single host computer +Comment[de]=Windows und andere Betriebssysteme unter FreeBSD ausführen +Comment[it]=Esegui più macchine virtuali su un singolo computer +Comment[ko]=가상 머신 +Comment[pl]=Uruchamianie wielu systemów wirtualnych na jednym komputerze gospodarza +Comment[ru]=Запуск нескольких виртуальных машин на одном компьютере +Comment[sv]=Kör flera virtuella system på en enda värddator diff --git a/emulators/virtualbox-ose-71/pkg-descr b/emulators/virtualbox-ose-71/pkg-descr new file mode 100644 index 000000000000..1ba975e84e68 --- /dev/null +++ b/emulators/virtualbox-ose-71/pkg-descr @@ -0,0 +1,8 @@ +Oracle VM VirtualBox is a hosted hypervisor for x86 virtualisation. +Supported guests include BSD, Haiku, Linux, OS/2, ReactOS, Solaris and +Windows. + +Guest Additions are available from: emulators/virtualbox-ose-additions + +For the Extension Pack: FreeBSD is not a supported host platform. +Installation of the Pack will not extend the feature set. diff --git a/emulators/virtualbox-ose-71/pkg-plist b/emulators/virtualbox-ose-71/pkg-plist new file mode 100644 index 000000000000..426fd6b55c60 --- /dev/null +++ b/emulators/virtualbox-ose-71/pkg-plist @@ -0,0 +1,449 @@ +bin/VBoxAutostart +bin/VBoxBalloonCtrl +bin/VBoxBugReport +bin/VBoxHeadless +bin/VBoxManage +bin/VBoxVRDP +%%QT%%bin/VirtualBox +%%QT%%bin/VirtualBoxVM +bin/vboxautostart +bin/vboxballoonctrl +bin/vboxbugreport +bin/vboxheadless +%%VBOXIMG%%bin/vboximg-mount +bin/vboxmanage +%%WEBSERVICE%%bin/vboxwebsrv +%%QT%%bin/virtualbox +%%QT%%bin/virtualboxvm +include/virtualbox/VirtualBox_XPCOM.h +include/virtualbox/ipcIClientObserver.h +include/virtualbox/ipcIDConnectService.h +include/virtualbox/ipcIMessageObserver.h +include/virtualbox/ipcIService.h +include/virtualbox/ipcd/ipcCID.h +include/virtualbox/ipcd/ipcdclient.h +include/virtualbox/nsIArray.h +include/virtualbox/nsIAtom.h +include/virtualbox/nsIAtomService.h +include/virtualbox/nsIBinaryInputStream.h +include/virtualbox/nsIBinaryOutputStream.h +include/virtualbox/nsICategoryManager.h +include/virtualbox/nsIClassInfo.h +include/virtualbox/nsICollection.h +include/virtualbox/nsIComponentLoader.h +include/virtualbox/nsIComponentLoaderManager.h +include/virtualbox/nsIComponentManager.h +include/virtualbox/nsIComponentManagerObsolete.h +include/virtualbox/nsIComponentRegistrar.h +include/virtualbox/nsIDebug.h +include/virtualbox/nsIDirectoryEnumerator.h +include/virtualbox/nsIDirectoryService.h +include/virtualbox/nsIEnumerator.h +include/virtualbox/nsIErrorService.h +include/virtualbox/nsIEventQueue.h +include/virtualbox/nsIEventQueueService.h +include/virtualbox/nsIEventTarget.h +include/virtualbox/nsIException.h +include/virtualbox/nsIExceptionService.h +include/virtualbox/nsIFactory.h +include/virtualbox/nsIFile.h +include/virtualbox/nsIHashable.h +include/virtualbox/nsIInputStream.h +include/virtualbox/nsIInterfaceInfo.h +include/virtualbox/nsIInterfaceInfoManager.h +include/virtualbox/nsIInterfaceRequestor.h +include/virtualbox/nsILocalFile.h +include/virtualbox/nsILocalFileMac.h +include/virtualbox/nsIModule.h +include/virtualbox/nsINativeComponentLoader.h +include/virtualbox/nsIObjectInputStream.h +include/virtualbox/nsIObjectOutputStream.h +include/virtualbox/nsIObserver.h +include/virtualbox/nsIObserverService.h +include/virtualbox/nsIOutputStream.h +include/virtualbox/nsIProgrammingLanguage.h +include/virtualbox/nsIProperties.h +include/virtualbox/nsIProxyObjectManager.h +include/virtualbox/nsIRunnable.h +include/virtualbox/nsISerializable.h +include/virtualbox/nsIServiceManager.h +include/virtualbox/nsISimpleEnumerator.h +include/virtualbox/nsIStringEnumerator.h +include/virtualbox/nsISupports.h +include/virtualbox/nsISupportsArray.h +include/virtualbox/nsISupportsIterators.h +include/virtualbox/nsISupportsPrimitives.h +include/virtualbox/nsITraceRefcnt.h +include/virtualbox/nsIVariant.h +include/virtualbox/nsIWeakReference.h +include/virtualbox/nsIXPTLoader.h +include/virtualbox/nsprpub/nspr.h +include/virtualbox/nsprpub/plarena.h +include/virtualbox/nsprpub/plarenas.h +include/virtualbox/nsprpub/plhash.h +include/virtualbox/nsprpub/prbit.h +include/virtualbox/nsprpub/prcpucfg.h +include/virtualbox/nsprpub/prlong.h +include/virtualbox/nsprpub/prmem.h +include/virtualbox/nsprpub/prmon.h +include/virtualbox/nsprpub/prtime.h +include/virtualbox/nsprpub/prtypes.h +include/virtualbox/nsrootidl.h +include/virtualbox/string/nsAString.h +include/virtualbox/string/nsAlgorithm.h +include/virtualbox/string/nsCharTraits.h +include/virtualbox/string/nsDependentString.h +include/virtualbox/string/nsDependentSubstring.h +include/virtualbox/string/nsEmbedString.h +include/virtualbox/string/nsLiteralString.h +include/virtualbox/string/nsObsoleteAString.h +include/virtualbox/string/nsPrintfCString.h +include/virtualbox/string/nsPromiseFlatString.h +include/virtualbox/string/nsReadableUtils.h +include/virtualbox/string/nsString.h +include/virtualbox/string/nsStringAPI.h +include/virtualbox/string/nsStringFwd.h +include/virtualbox/string/nsStringIterator.h +include/virtualbox/string/nsSubstring.h +include/virtualbox/string/nsSubstringTuple.h +include/virtualbox/string/nsTAString.h +include/virtualbox/string/nsTDependentString.h +include/virtualbox/string/nsTDependentSubstring.h +include/virtualbox/string/nsTObsoleteAString.h +include/virtualbox/string/nsTPromiseFlatString.h +include/virtualbox/string/nsTString.h +include/virtualbox/string/nsTSubstring.h +include/virtualbox/string/nsTSubstringTuple.h +include/virtualbox/string/nsUTF8Utils.h +include/virtualbox/string/nsXPIDLString.h +include/virtualbox/string/string-template-def-char.h +include/virtualbox/string/string-template-def-unichar.h +include/virtualbox/string/string-template-undef.h +include/virtualbox/xpcom/nsAgg.h +include/virtualbox/xpcom/nsAppDirectoryServiceDefs.h +include/virtualbox/xpcom/nsArray.h +include/virtualbox/xpcom/nsArrayEnumerator.h +include/virtualbox/xpcom/nsAtomService.h +include/virtualbox/xpcom/nsAutoLock.h +include/virtualbox/xpcom/nsAutoPtr.h +include/virtualbox/xpcom/nsBaseHashtable.h +include/virtualbox/xpcom/nsCOMArray.h +include/virtualbox/xpcom/nsCOMPtr.h +include/virtualbox/xpcom/nsCRT.h +include/virtualbox/xpcom/nsCategoryManagerUtils.h +include/virtualbox/xpcom/nsClassHashtable.h +include/virtualbox/xpcom/nsComponentManagerObsolete.h +include/virtualbox/xpcom/nsComponentManagerUtils.h +include/virtualbox/xpcom/nsDataHashtable.h +include/virtualbox/xpcom/nsDebug.h +include/virtualbox/xpcom/nsDebugImpl.h +include/virtualbox/xpcom/nsDeque.h +include/virtualbox/xpcom/nsDirectoryService.h +include/virtualbox/xpcom/nsDirectoryServiceDefs.h +include/virtualbox/xpcom/nsDirectoryServiceUtils.h +include/virtualbox/xpcom/nsDoubleHashtable.h +include/virtualbox/xpcom/nsEnumeratorUtils.h +include/virtualbox/xpcom/nsError.h +include/virtualbox/xpcom/nsEventQueueUtils.h +include/virtualbox/xpcom/nsGenericFactory.h +include/virtualbox/xpcom/nsHashKeys.h +include/virtualbox/xpcom/nsHashSets.h +include/virtualbox/xpcom/nsHashtable.h +include/virtualbox/xpcom/nsID.h +include/virtualbox/xpcom/nsIGenericFactory.h +include/virtualbox/xpcom/nsIID.h +include/virtualbox/xpcom/nsIInterfaceRequestorUtils.h +include/virtualbox/xpcom/nsIServiceManagerObsolete.h +include/virtualbox/xpcom/nsIServiceManagerUtils.h +include/virtualbox/xpcom/nsISupportsBase.h +include/virtualbox/xpcom/nsISupportsImpl.h +include/virtualbox/xpcom/nsISupportsUtils.h +include/virtualbox/xpcom/nsIWeakReferenceUtils.h +include/virtualbox/xpcom/nsInt64.h +include/virtualbox/xpcom/nsInterfaceHashtable.h +include/virtualbox/xpcom/nsLocalFile.h +include/virtualbox/xpcom/nsLocalFileUnix.h +include/virtualbox/xpcom/nsMemory.h +include/virtualbox/xpcom/nsModule.h +include/virtualbox/xpcom/nsNativeCharsetUtils.h +include/virtualbox/xpcom/nsNativeComponentLoader.h +include/virtualbox/xpcom/nsObserverService.h +include/virtualbox/xpcom/nsObsoleteModuleLoading.h +include/virtualbox/xpcom/nsProxiedService.h +include/virtualbox/xpcom/nsProxyEvent.h +include/virtualbox/xpcom/nsProxyRelease.h +include/virtualbox/xpcom/nsRefPtrHashtable.h +include/virtualbox/xpcom/nsStaticAtom.h +include/virtualbox/xpcom/nsStaticComponent.h +include/virtualbox/xpcom/nsStringEnumerator.h +include/virtualbox/xpcom/nsStringIO.h +include/virtualbox/xpcom/nsSupportsArray.h +include/virtualbox/xpcom/nsSupportsPrimitives.h +include/virtualbox/xpcom/nsTHashtable.h +include/virtualbox/xpcom/nsTraceRefcnt.h +include/virtualbox/xpcom/nsTraceRefcntImpl.h +include/virtualbox/xpcom/nsVariant.h +include/virtualbox/xpcom/nsVoidArray.h +include/virtualbox/xpcom/nsWeakPtr.h +include/virtualbox/xpcom/nsWeakReference.h +include/virtualbox/xpcom/nsXPCOM.h +include/virtualbox/xpcom/nsXPCOMCID.h +include/virtualbox/xpcom/nsXPCOMGlue.h +include/virtualbox/xpcom/nscore.h +include/virtualbox/xpcom/pldhash.h +include/virtualbox/xpcom/plevent.h +include/virtualbox/xpcom/xcDll.h +include/virtualbox/xpcom/xpcom-config.h +include/virtualbox/xpcom/xpt_arena.h +include/virtualbox/xpcom/xpt_struct.h +include/virtualbox/xpcom/xpt_xdr.h +include/virtualbox/xpcom/xptcall.h +include/virtualbox/xpcom/xptcstubsdecl.inc +include/virtualbox/xpcom/xptcstubsdef.inc +include/virtualbox/xpcom/xptinfo.h +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/PKG-INFO +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/SOURCES.txt +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/dependency_links.txt +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/requires.txt +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1-py%%PYTHON_VER%%.egg-info/top_level.txt +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi%%PYTHON_PYCDIR%%VirtualBox_constants%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/__init__.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/__init__.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/components.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%components%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/nsError.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%nsError%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/primitives.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%primitives%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%vboxxpcom%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%xpcom_consts%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/xpt.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%xpt%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/client%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%enumerator%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/factory.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%factory%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/loader.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%loader%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/module.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%module%%PYTHON_PYCEXT%% +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/policy.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%policy%%PYTHON_PYCEXT%% +%%QT%%lib/virtualbox/DbgPlugInDiggers.so +lib/virtualbox/VBox.sh +lib/virtualbox/VBoxAuth.so +lib/virtualbox/VBoxAuthSimple.so +lib/virtualbox/VBoxAutostart +lib/virtualbox/VBoxBalloonCtrl +lib/virtualbox/VBoxBugReport +lib/virtualbox/VBoxDD.so +lib/virtualbox/VBoxDD2.so +lib/virtualbox/VBoxDDR0.r0 +lib/virtualbox/VBoxDDU.so +%%QT%%lib/virtualbox/UICommon.so +%%QT%%lib/virtualbox/VBoxDbg.so +%%QT%%lib/virtualbox/VBoxDragAndDropSvc.so +lib/virtualbox/VBoxEFI32.fd +lib/virtualbox/VBoxEFI64.fd +lib/virtualbox/VBoxExtPackHelperApp +lib/virtualbox/VBoxGuestControlSvc.so +lib/virtualbox/VBoxGuestPropSvc.so +@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxHeadless +lib/virtualbox/VBoxHeadless.so +lib/virtualbox/VBoxHostChannel.so +%%QT%%lib/virtualbox/VBoxKeyboard.so +lib/virtualbox/VBoxManage +@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxNetAdpCtl +@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxNetDHCP +lib/virtualbox/VBoxNetDHCP.so +@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VBoxNetNAT +lib/virtualbox/VBoxNetNAT.so +%%PYTHON%%lib/virtualbox/VBoxPython3.so +%%PYTHON%%lib/virtualbox/VBoxPython3m.so +lib/virtualbox/VBoxRT.so +lib/virtualbox/VBoxSVC +%%X11%%lib/virtualbox/VBoxSVGA3D.so +lib/virtualbox/VBoxSharedClipboard.so +lib/virtualbox/VBoxSharedFolders.so +lib/virtualbox/VBoxTraceLogDecoders.so +lib/virtualbox/VBoxVMM.so +lib/virtualbox/VBoxVMMPreload.so +lib/virtualbox/VBoxXPCOM.so +lib/virtualbox/VBoxXPCOMC.so +lib/virtualbox/VBoxXPCOMIPCD.so +lib/virtualbox/VMMR0.r0 +%%QT%%lib/virtualbox/VirtualBox +%%QT%%@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VirtualBoxVM +%%QT%%lib/virtualbox/VirtualBoxVM.so +%%SDK%%lib/virtualbox/sdk +%%VBOXIMG%%lib/virtualbox/vboximg-mount +%%WEBSERVICE%%lib/virtualbox/vboxwebsrv +%%WEBSERVICE%%lib/virtualbox/webtest +%%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack-license.html +%%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack-license.rtf +%%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack-license.txt +%%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack.xml +%%VNC%%lib/virtualbox/ExtensionPacks/VNC/%%ARCH%%/VBoxVNC.so +%%VNC%%lib/virtualbox/ExtensionPacks/VNC/%%ARCH%%/VBoxVNCMain.so +%%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions.iso +%%GUESTADDITIONS%%lib/virtualbox/additions/VBoxGuestAdditions_%%GUEST_VER%%.iso +lib/virtualbox/components/VBoxC.so +lib/virtualbox/components/VBoxSVCM.so +lib/virtualbox/components/VBoxXPCOMBase.xpt +lib/virtualbox/components/VBoxXPCOMIPCC.so +lib/virtualbox/components/VirtualBox_XPCOM.xpt +%%QT%%share/applications/virtualbox.desktop +%%DOCS%%%%DOCSDIR%%/UserManual.pdf +%%QT%%share/pixmaps/VBox.png +%%DATADIR%%/idl/VirtualBox_XPCOM.idl +%%DATADIR%%/idl/ipcIClientObserver.idl +%%DATADIR%%/idl/ipcIDConnectService.idl +%%DATADIR%%/idl/ipcIMessageObserver.idl +%%DATADIR%%/idl/ipcIService.idl +%%DATADIR%%/idl/nsIArray.idl +%%DATADIR%%/idl/nsIAtom.idl +%%DATADIR%%/idl/nsIAtomService.idl +%%DATADIR%%/idl/nsIBinaryInputStream.idl +%%DATADIR%%/idl/nsIBinaryOutputStream.idl +%%DATADIR%%/idl/nsICategoryManager.idl +%%DATADIR%%/idl/nsIClassInfo.idl +%%DATADIR%%/idl/nsICollection.idl +%%DATADIR%%/idl/nsIComponentLoader.idl +%%DATADIR%%/idl/nsIComponentLoaderManager.idl +%%DATADIR%%/idl/nsIComponentManager.idl +%%DATADIR%%/idl/nsIComponentManagerObsolete.idl +%%DATADIR%%/idl/nsIComponentRegistrar.idl +%%DATADIR%%/idl/nsIDebug.idl +%%DATADIR%%/idl/nsIDirectoryEnumerator.idl +%%DATADIR%%/idl/nsIDirectoryService.idl +%%DATADIR%%/idl/nsIEnumerator.idl +%%DATADIR%%/idl/nsIErrorService.idl +%%DATADIR%%/idl/nsIEventQueue.idl +%%DATADIR%%/idl/nsIEventQueueService.idl +%%DATADIR%%/idl/nsIEventTarget.idl +%%DATADIR%%/idl/nsIException.idl +%%DATADIR%%/idl/nsIExceptionService.idl +%%DATADIR%%/idl/nsIFactory.idl +%%DATADIR%%/idl/nsIFile.idl +%%DATADIR%%/idl/nsIHashable.idl +%%DATADIR%%/idl/nsIInputStream.idl +%%DATADIR%%/idl/nsIInterfaceInfo.idl +%%DATADIR%%/idl/nsIInterfaceInfoManager.idl +%%DATADIR%%/idl/nsIInterfaceRequestor.idl +%%DATADIR%%/idl/nsILocalFile.idl +%%DATADIR%%/idl/nsILocalFileMac.idl +%%DATADIR%%/idl/nsIModule.idl +%%DATADIR%%/idl/nsINativeComponentLoader.idl +%%DATADIR%%/idl/nsIObjectInputStream.idl +%%DATADIR%%/idl/nsIObjectOutputStream.idl +%%DATADIR%%/idl/nsIObserver.idl +%%DATADIR%%/idl/nsIObserverService.idl +%%DATADIR%%/idl/nsIOutputStream.idl +%%DATADIR%%/idl/nsIProgrammingLanguage.idl +%%DATADIR%%/idl/nsIProperties.idl +%%DATADIR%%/idl/nsIProxyObjectManager.idl +%%DATADIR%%/idl/nsIRunnable.idl +%%DATADIR%%/idl/nsISerializable.idl +%%DATADIR%%/idl/nsIServiceManager.idl +%%DATADIR%%/idl/nsISimpleEnumerator.idl +%%DATADIR%%/idl/nsIStringEnumerator.idl +%%DATADIR%%/idl/nsISupports.idl +%%DATADIR%%/idl/nsISupportsArray.idl +%%DATADIR%%/idl/nsISupportsIterators.idl +%%DATADIR%%/idl/nsISupportsPrimitives.idl +%%DATADIR%%/idl/nsITraceRefcnt.idl +%%DATADIR%%/idl/nsIVariant.idl +%%DATADIR%%/idl/nsIWeakReference.idl +%%DATADIR%%/idl/nsIXPTLoader.idl +%%DATADIR%%/idl/nsrootidl.idl +%%NLS%%%%DATADIR%%/nls/VirtualBox_bg.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_ca.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_ca_VA.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_cs.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_da.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_de.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_el.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_en.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_es.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_eu.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_fa.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_fi.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_fr.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_gl.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_he.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_hr_HR.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_hu.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_id.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_it.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_ja.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_ka.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_km_KH.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_ko.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_lt.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_nl.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_pl.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_pt.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_pt_BR.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_ro.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_ru.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_sk.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_sl.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_sr.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_sv.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_th.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_tr.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_uk.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_CN.qm +%%NLS%%%%DATADIR%%/nls/VirtualBox_zh_TW.qm +%%NLS%%%%DATADIR%%/nls/qt_bg.qm +%%NLS%%%%DATADIR%%/nls/qt_ca.qm +%%NLS%%%%DATADIR%%/nls/qt_ca_VA.qm +%%NLS%%%%DATADIR%%/nls/qt_cs.qm +%%NLS%%%%DATADIR%%/nls/qt_da.qm +%%NLS%%%%DATADIR%%/nls/qt_de.qm +%%NLS%%%%DATADIR%%/nls/qt_el.qm +%%NLS%%%%DATADIR%%/nls/qt_en.qm +%%NLS%%%%DATADIR%%/nls/qt_es.qm +%%NLS%%%%DATADIR%%/nls/qt_eu.qm +%%NLS%%%%DATADIR%%/nls/qt_fa.qm +%%NLS%%%%DATADIR%%/nls/qt_fi.qm +%%NLS%%%%DATADIR%%/nls/qt_fr.qm +%%NLS%%%%DATADIR%%/nls/qt_gl.qm +%%NLS%%%%DATADIR%%/nls/qt_he.qm +%%NLS%%%%DATADIR%%/nls/qt_hr_HR.qm +%%NLS%%%%DATADIR%%/nls/qt_hu.qm +%%NLS%%%%DATADIR%%/nls/qt_id.qm +%%NLS%%%%DATADIR%%/nls/qt_it.qm +%%NLS%%%%DATADIR%%/nls/qt_ja.qm +%%NLS%%%%DATADIR%%/nls/qt_ka.qm +%%NLS%%%%DATADIR%%/nls/qt_km_KH.qm +%%NLS%%%%DATADIR%%/nls/qt_ko.qm +%%NLS%%%%DATADIR%%/nls/qt_lt.qm +%%NLS%%%%DATADIR%%/nls/qt_nl.qm +%%NLS%%%%DATADIR%%/nls/qt_pl.qm +%%NLS%%%%DATADIR%%/nls/qt_pt.qm +%%NLS%%%%DATADIR%%/nls/qt_pt_BR.qm +%%NLS%%%%DATADIR%%/nls/qt_ro.qm +%%NLS%%%%DATADIR%%/nls/qt_ru.qm +%%NLS%%%%DATADIR%%/nls/qt_sk.qm +%%NLS%%%%DATADIR%%/nls/qt_sl.qm +%%NLS%%%%DATADIR%%/nls/qt_sr.qm +%%NLS%%%%DATADIR%%/nls/qt_sv.qm +%%NLS%%%%DATADIR%%/nls/qt_th.qm +%%NLS%%%%DATADIR%%/nls/qt_tr.qm +%%NLS%%%%DATADIR%%/nls/qt_uk.qm +%%NLS%%%%DATADIR%%/nls/qt_zh_CN.qm +%%NLS%%%%DATADIR%%/nls/qt_zh_TW.qm +%%DATADIR%%/samples/Makefile +%%DATADIR%%/samples/tstVBoxAPIXPCOM.cpp +%%WEBSERVICE%%%%DATADIR%%/sdk/bindings/webservice/vboxweb.wsdl +%%PYTHON%%%%DATADIR%%/sdk/bindings/xpcom/python/xpcom diff --git a/emulators/virtualbox-ose-kmod-71/Makefile b/emulators/virtualbox-ose-kmod-71/Makefile new file mode 100644 index 000000000000..d0be19651145 --- /dev/null +++ b/emulators/virtualbox-ose-kmod-71/Makefile @@ -0,0 +1,112 @@ +PORTNAME= virtualbox-ose +DISTVERSION= 7.1.8 +CATEGORIES= emulators +MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/ +PKGNAMESUFFIX= -kmod-71 +DISTNAME= VirtualBox-${DISTVERSION} + +MAINTAINER= vbox@FreeBSD.org +COMMENT= VirtualBox kernel module for FreeBSD +WWW= https://www.virtualbox.org/ + +LICENSE= GPLv2 +LICENSE_FILE= ${WRKSRC}/COPYING + +ONLY_FOR_ARCHS= amd64 + +BUILD_DEPENDS= kmk:devel/kBuild + +USES= cpe compiler:c++17-lang kmod tar:bzip2 +CPE_VENDOR= oracle +CPE_PRODUCT= vm_virtualbox +USE_RC_SUBR= vboxnet + +HAS_CONFIGURE= yes +CONFIGURE_ARGS+= --build-headless +CONFIGURE_ARGS+= --disable-alsa \ + --disable-dbus \ + --disable-docs \ + --disable-libvpx \ + --disable-pulse \ + --disable-python \ + --disable-sdl-ttf \ + --disable-xpcom +CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}" + +CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \ + virtualbox-ose-kmod \ + virtualbox-ose-kmod-70 + +PATCHDIR= ${.CURDIR}/../${PORTNAME}-71/files +PORTSCOUT= limit:^7\.1\. +SUB_FILES= pkg-message +SUB_LIST= OPSYS=${OPSYS} OSREL=${OSREL} + +WRKSRC= ${WRKDIR}/VirtualBox-${DISTVERSION} + +OPTIONS_DEFINE= DEBUG VIMAGE +OPTIONS_DEFAULT= VIMAGE +OPTIONS_SUB= yes +DEBUG_DESC= Debug symbols, additional logs and assertions +VIMAGE_DESC= VIMAGE virtual networking support + +.include <bsd.port.options.mk> + +VBOX_BIN= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/src +VBOX_KMODS= vboxdrv \ + vboxnetadp \ + vboxnetflt + +BUILD_WRKSRC= ${VBOX_BIN} + +KMK_BUILDTYPE= release +KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys +KMK_FLAGS= HostDrivers-scripts vboxdrv-src VBoxNetFlt-src VBoxNetAdp-src + +.if ${PORT_OPTIONS:MDEBUG} +KMK_FLAGS+= BUILD_TYPE=debug +KMK_BUILDTYPE= debug +EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-Config.kmk \ + ${PATCHDIR}/extrapatch-src-VBox-HostDrivers-Support-freebsd-Makefile +MAKE_ARGS+= DEBUG_FLAGS="-O1 -g" +.endif + +.if ${ARCH} == i386 +KMK_ARCH= freebsd.x86 +.else +KMK_ARCH= freebsd.${ARCH} +.endif + +.include <bsd.port.pre.mk> + +SYMBOLSUFFIX= debug +PLIST_SUB+= SYMBOLSUFFIX=${SYMBOLSUFFIX} + +post-patch: + @${ECHO_CMD} 'VBOX_WITH_VBOXDRV = 1' > ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_NETFLT = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_NETADP = 1' >> ${WRKSRC}/LocalConfig.kmk + @${ECHO_CMD} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk +.if ${PORT_OPTIONS:MVIMAGE} + @${ECHO_CMD} 'VBOX_WITH_NETFLT_VIMAGE = 1' >> ${WRKSRC}/LocalConfig.kmk +.endif + @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g; s|which \$$\*|which \$$1|g' \ + ${WRKSRC}/Config.kmk ${WRKSRC}/configure + @${REINPLACE_CMD} \ + -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \ + ${WRKSRC}/configure + +pre-build: + cd ${WRKSRC}/src/VBox/HostDrivers && ${SH} -c \ + '. ${WRKSRC}/env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}' + +do-install: + ${MKDIR} ${STAGEDIR}${KMODDIR} +.for i in ${VBOX_KMODS} + ${INSTALL_KLD} ${VBOX_BIN}/${i}/${i}.ko ${STAGEDIR}${KMODDIR} +.if ${PORT_OPTIONS:MDEBUG} + ${INSTALL_KLD} ${VBOX_BIN}/${i}/${i}.ko.${SYMBOLSUFFIX} ${STAGEDIR}${KMODDIR} +.endif +.endfor + +.include <bsd.port.post.mk> diff --git a/emulators/virtualbox-ose-kmod-71/distinfo b/emulators/virtualbox-ose-kmod-71/distinfo new file mode 100644 index 000000000000..f4e19502a240 --- /dev/null +++ b/emulators/virtualbox-ose-kmod-71/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1744988632 +SHA256 (VirtualBox-7.1.8.tar.bz2) = 3f7132c55ac6c5f50585bfaa115d29e30b47ccf535cb0a12ff50214ddae2f63d +SIZE (VirtualBox-7.1.8.tar.bz2) = 215541146 diff --git a/emulators/virtualbox-ose-kmod-71/files/pkg-message.in b/emulators/virtualbox-ose-kmod-71/files/pkg-message.in new file mode 100644 index 000000000000..4e03cc0b5ec7 --- /dev/null +++ b/emulators/virtualbox-ose-kmod-71/files/pkg-message.in @@ -0,0 +1,10 @@ +[ +{ type: install + message: <<EOM +The vboxdrv kernel module uses internal kernel APIs. + +To avoid crashes due to kernel incompatibility, this module will only +load on %%OPSYS%% %%OSREL%% kernels. +EOM +} +] diff --git a/emulators/virtualbox-ose-kmod-71/files/vboxnet.in b/emulators/virtualbox-ose-kmod-71/files/vboxnet.in new file mode 100644 index 000000000000..af3d18884273 --- /dev/null +++ b/emulators/virtualbox-ose-kmod-71/files/vboxnet.in @@ -0,0 +1,67 @@ +#!/bin/sh + +# PROVIDE: vboxnet +# BEFORE: NETWORKING +# REQUIRE: FILESYSTEMS +# KEYWORD: nojail + +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# vboxnet_enable (bool): Set to NO by default. +# Set it to YES to load network related kernel modules on startup + +. /etc/rc.subr + +name="vboxnet" +rcvar=vboxnet_enable +start_cmd="vboxnet_start" +stop_cmd="vboxnet_stop" + +vboxnet_modules="vboxdrv vboxnetflt:ng_vboxnetflt vboxnetadp" + +vboxnet_start() +{ + local _k _m + + for _m in ${vboxnet_modules}; do + _k=${_m%:*} + _m=${_m#*:} + if ! kldstat -q -m ${_m}; then + if ! kldload ${_k} > /dev/null 2>&1; then + warn "Can't load ${_k} module." + return 1 + fi + fi + done + + # initialize configured host-only interfaces + LD_LIBRARY_PATH=%%PREFIX%%/lib %%PREFIX%%/bin/VBoxManage list hostonlyifs >/dev/null +} + +vboxnet_stop() +{ + local _k _m _r + + _r= + for _m in ${vboxnet_modules}; do + _r="${_m} ${_r}" + done + for _m in ${_r}; do + _k=${_m%:*} + _m=${_m#*:} + if kldstat -q -m ${_m}; then + if ! kldunload ${_k} > /dev/null 2>&1; then + warn "Can't unload ${_k} module." + return 1 + fi + fi + done +} + +load_rc_config $name + +: ${vboxnet_enable="NO"} + +run_rc_command "$1" diff --git a/emulators/virtualbox-ose-kmod-71/pkg-descr b/emulators/virtualbox-ose-kmod-71/pkg-descr new file mode 100644 index 000000000000..d11d42a81c78 --- /dev/null +++ b/emulators/virtualbox-ose-kmod-71/pkg-descr @@ -0,0 +1,5 @@ +VirtualBox is a family of powerful x86 virtualization products for +enterprise as well as home use. Not only is VirtualBox an extremely +feature rich, high performance product for enterprise customers, it +is also the only professional solution that is freely available as +Open Source Software under the terms of the GNU General Public License. diff --git a/emulators/virtualbox-ose-kmod-71/pkg-plist b/emulators/virtualbox-ose-kmod-71/pkg-plist new file mode 100644 index 000000000000..b08a5706a028 --- /dev/null +++ b/emulators/virtualbox-ose-kmod-71/pkg-plist @@ -0,0 +1,6 @@ +/%%KMODDIR%%/vboxdrv.ko +%%DEBUG%%/%%KMODDIR%%/vboxdrv.ko.%%SYMBOLSUFFIX%% +/%%KMODDIR%%/vboxnetadp.ko +%%DEBUG%%/%%KMODDIR%%/vboxnetadp.ko.%%SYMBOLSUFFIX%% +/%%KMODDIR%%/vboxnetflt.ko +%%DEBUG%%/%%KMODDIR%%/vboxnetflt.ko.%%SYMBOLSUFFIX%% diff --git a/emulators/virtualbox-ose-nox11-70/Makefile b/emulators/virtualbox-ose-nox11-70/Makefile index ae6cac9a31c3..278eadfa1f23 100644 --- a/emulators/virtualbox-ose-nox11-70/Makefile +++ b/emulators/virtualbox-ose-nox11-70/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 1 +PORTREVISION= 2 PKGNAMESUFFIX= -nox11-70 MASTERDIR= ${.CURDIR}/../virtualbox-ose-70 diff --git a/emulators/virtualbox-ose-nox11-71/Makefile b/emulators/virtualbox-ose-nox11-71/Makefile new file mode 100644 index 000000000000..bd1a0035d424 --- /dev/null +++ b/emulators/virtualbox-ose-nox11-71/Makefile @@ -0,0 +1,11 @@ +PORTREVISION= 0 +PKGNAMESUFFIX= -nox11-71 + +MASTERDIR= ${.CURDIR}/../virtualbox-ose-71 + +OPTIONS_EXCLUDE= ALSA DBUS DEBUG GUESTADDITIONS DOCS NLS OGG PULSEAUDIO \ + QT6 VORBIS VPX X11 + +SLAVE_PORT= yes + +.include "${MASTERDIR}/Makefile" diff --git a/emulators/virtualbox-ose-nox11/Makefile b/emulators/virtualbox-ose-nox11/Makefile index c9a9c1f951e3..27bd5629cbb9 100644 --- a/emulators/virtualbox-ose-nox11/Makefile +++ b/emulators/virtualbox-ose-nox11/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 12 +PORTREVISION= 14 PKGNAMESUFFIX= -nox11 MASTERDIR= ${.CURDIR}/../virtualbox-ose diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile index e79e170b28a5..d868733954cb 100644 --- a/emulators/virtualbox-ose/Makefile +++ b/emulators/virtualbox-ose/Makefile @@ -1,6 +1,6 @@ PORTNAME= virtualbox-ose DISTVERSION= 6.1.50 -PORTREVISION?= 13 +PORTREVISION?= 14 CATEGORIES= emulators MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \ LOCAL/bofh/emulators/virtualbox-ose:docs diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp new file mode 100644 index 000000000000..949c413d4ba3 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp @@ -0,0 +1,20 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA.cpp.orig 2024-01-11 12:18:20 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA.cpp +@@ -169,7 +169,7 @@ + # ifdef RT_OS_DARWIN + # include "DevVGA-SVGA3d-cocoa.h" + # endif +-# ifdef RT_OS_LINUX ++# if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + # ifdef IN_RING3 + #include "DevVGA-SVGA3d-glLdr.h" + # endif +@@ -3520,7 +3520,7 @@ static DECLCALLBACK(int) vmsvgaR3FifoLoop(PPDMDEVINS p + PVMSVGAR3STATE pSVGAState = pThisCC->svga.pSvgaR3State; + int rc; + +-# if defined(VBOX_WITH_VMSVGA3D) && defined(RT_OS_LINUX) ++# if defined(VBOX_WITH_VMSVGA3D) && (defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX)) + if (pThis->svga.f3DEnabled) + { + /* The FIFO thread may use X API for accelerated screen output. */ diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp index c9574654562d..4bee4df8ce47 100644 --- a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp +++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.cpp @@ -1,4 +1,4 @@ ---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2021-01-07 15:39:16 UTC +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp.orig 2024-01-11 12:18:21 UTC +++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp @@ -186,7 +186,7 @@ int glLdrInit(PPDMDEVINS pDevIns) pfn_wglDeleteContext = 0; diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h index 3069950947cd..34edb2b49799 100644 --- a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h +++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-glLdr.h @@ -1,6 +1,6 @@ ---- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2021-01-07 15:39:17 UTC +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h.orig 2024-01-11 12:18:21 UTC +++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h -@@ -338,7 +338,7 @@ GLPFN BOOL (WINAPI *pfn_wglMakeCurrent)(HDC, HGLRC); +@@ -338,7 +338,7 @@ GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC); GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC); #define wglShareLists pfn_wglShareLists diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-internal.h b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-internal.h new file mode 100644 index 000000000000..1378f39b6a59 --- /dev/null +++ b/emulators/virtualbox-ose/files/patch-src_VBox_Devices_Graphics_DevVGA-SVGA3d-internal.h @@ -0,0 +1,11 @@ +--- src/VBox/Devices/Graphics/DevVGA-SVGA3d-internal.h.orig 2024-01-11 12:18:21 UTC ++++ src/VBox/Devices/Graphics/DevVGA-SVGA3d-internal.h +@@ -1175,7 +1175,7 @@ typedef struct VMSVGAHWSCREEN + typedef struct VMSVGAHWSCREEN + { + uint32_t u32Reserved0; +-#if defined(RT_OS_LINUX) ++#if defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) + /* OpenGL context, which is used for the screen updates. */ + GLXContext glxctx; + diff --git a/emulators/wine/Makefile b/emulators/wine/Makefile index fbe10774a157..ef7c336b6551 100644 --- a/emulators/wine/Makefile +++ b/emulators/wine/Makefile @@ -1,5 +1,6 @@ PORTNAME= wine DISTVERSION= 10.0 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= emulators MASTER_SITES= https://dl.winehq.org/wine/source/10.0/ diff --git a/emulators/wine/pkg-plist b/emulators/wine/pkg-plist index 0bfd77c65e01..23a7da444d60 100644 --- a/emulators/wine/pkg-plist +++ b/emulators/wine/pkg-plist @@ -2691,10 +2691,10 @@ lib/wine/%%WINEARCH%%-windows/xolehlp.dll lib/wine/%%WINEARCH%%-windows/xpsprint.dll lib/wine/%%WINEARCH%%-windows/xpssvcs.dll share/applications/wine.desktop -%%WINE32%%share/man/de.UTF-8/man1/wine.1.gz +share/man/de.UTF-8/man1/wine.1.gz share/man/de.UTF-8/man1/winemaker.1.gz share/man/de.UTF-8/man1/wineserver.1.gz -%%WINE32%%share/man/fr.UTF-8/man1/wine.1.gz +share/man/fr.UTF-8/man1/wine.1.gz share/man/fr.UTF-8/man1/winemaker.1.gz share/man/fr.UTF-8/man1/wineserver.1.gz share/man/man1/msiexec.1.gz @@ -2702,7 +2702,7 @@ share/man/man1/notepad.1.gz share/man/man1/regedit.1.gz share/man/man1/regsvr32.1.gz share/man/man1/widl.1.gz -%%WINE32%%share/man/man1/wine.1.gz +share/man/man1/wine.1.gz share/man/man1/wineboot.1.gz share/man/man1/winebuild.1.gz share/man/man1/winecfg.1.gz @@ -2719,7 +2719,7 @@ share/man/man1/winepath.1.gz share/man/man1/wineserver.1.gz share/man/man1/wmc.1.gz share/man/man1/wrc.1.gz -%%WINE32%%share/man/pl.UTF-8/man1/wine.1.gz +share/man/pl.UTF-8/man1/wine.1.gz %%DATADIR%%/nls/c_037.nls %%DATADIR%%/nls/c_10000.nls %%DATADIR%%/nls/c_10001.nls diff --git a/filesystems/vzvol/Makefile b/filesystems/vzvol/Makefile index 98aa8be7bc74..964435b99e2d 100644 --- a/filesystems/vzvol/Makefile +++ b/filesystems/vzvol/Makefile @@ -11,6 +11,9 @@ WWW= https://github.com/RainbowHackerHorse/vzvol LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE +DEPRECATED= Abandoned upstream, no activity in 5+ years and multiple unresolved issue reports upstream +EXPIRATION_DATE=2025-06-30 + GROUPS= operator USE_GITHUB= yes diff --git a/games/NBlood/Makefile b/games/NBlood/Makefile index 119c8fd4ecb1..28ce708efbcb 100644 --- a/games/NBlood/Makefile +++ b/games/NBlood/Makefile @@ -1,5 +1,5 @@ PORTNAME= NBlood -DISTVERSION= r14220 +DISTVERSION= r14230 CATEGORIES= games MAINTAINER= pkubaj@FreeBSD.org diff --git a/games/NBlood/distinfo b/games/NBlood/distinfo index 1bc100c966d5..549bf41ddd6d 100644 --- a/games/NBlood/distinfo +++ b/games/NBlood/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745834051 -SHA256 (nukeykt-NBlood-r14220_GH0.tar.gz) = 57e2cc6ae1b7c2097973081ce55c9e67915d8e88ce567807b9cc07ec657fe1ae -SIZE (nukeykt-NBlood-r14220_GH0.tar.gz) = 36811394 +TIMESTAMP = 1747215784 +SHA256 (nukeykt-NBlood-r14230_GH0.tar.gz) = 532579f7438d680b4eb996be8b69f245734222b491e0b66e594c3e9e5e58514c +SIZE (nukeykt-NBlood-r14230_GH0.tar.gz) = 36828557 diff --git a/games/anki/Makefile b/games/anki/Makefile index 74ba65ebf447..0aa9f2fc69fc 100644 --- a/games/anki/Makefile +++ b/games/anki/Makefile @@ -1,5 +1,5 @@ PORTNAME= anki -DISTVERSION= 25.02.4 +DISTVERSION= 25.02.5 # Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes CATEGORIES= games education python MASTER_SITES= LOCAL/kai/:yarncache @@ -44,8 +44,8 @@ USES= cargo desktop-file-utils ninja nodejs:build pyqt:6 python \ USE_GITHUB= yes GH_ACCOUNT= ankitects # Translation files -GH_TUPLE= ankitects:anki-core-i18n:42ccadb:ftlrslib \ - ankitects:anki-desktop-ftl:b3562ed:ftlextra +GH_TUPLE= ankitects:anki-core-i18n:3c0418a:ftlrslib \ + ankitects:anki-desktop-ftl:a4d7503:ftlextra USE_PYQT= pyqt6 sip:build webengine @@ -84,7 +84,7 @@ MPV_RUN_DEPENDS= mpv:multimedia/mpv # Should contain the most recent commit that reflects ${DISTVERSION} and must # be exactly 8 digits otherwise the check for newer versions won't work as # expected. -_MY_BUILDHASH= a5c33ad0 +_MY_BUILDHASH= 29192d15 # Remove ${CARGO_BUILD_TARGET} from ${CARGO_ENV} to avoid problems with # hardcoded paths as the "runner" build system expects its components # in ${WRKSRC}/out/rust/debug diff --git a/games/anki/distinfo b/games/anki/distinfo index f64a68431120..cb1eda798fa2 100644 --- a/games/anki/distinfo +++ b/games/anki/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1745476269 -SHA256 (anki-yarn-cache-25.02.4.tar.gz) = cce87f048f2a323b2498a54a439f971b30184077293c0d97df725cf6dbd72048 -SIZE (anki-yarn-cache-25.02.4.tar.gz) = 833899548 +TIMESTAMP = 1747326620 +SHA256 (anki-yarn-cache-25.02.5.tar.gz) = 74ffd18f19963abcf5e7f8d2cc461404f9132a4090823365aaf73306ffd9f265 +SIZE (anki-yarn-cache-25.02.5.tar.gz) = 834016686 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -1419,9 +1419,9 @@ SHA256 (ankitects-rust-url-bb930b8d089f4d30d7d19c12e54e66191de47b88_GH0.tar.gz) SIZE (ankitects-rust-url-bb930b8d089f4d30d7d19c12e54e66191de47b88_GH0.tar.gz) = 394844 SHA256 (ankitects-linkcheck-184b2ca50ed39ca43da13f0b830a463861adb9ca_GH0.tar.gz) = 58ac773ba2e7c76a9ec3f59ee9571576d76e74d58c4974a1d606d6976e1be70e SIZE (ankitects-linkcheck-184b2ca50ed39ca43da13f0b830a463861adb9ca_GH0.tar.gz) = 19408 -SHA256 (ankitects-anki-25.02.4_GH0.tar.gz) = 94bcc31d446a36491f6aee0c15936821b34aa2639aeb6a014a93c5f32d5c1581 -SIZE (ankitects-anki-25.02.4_GH0.tar.gz) = 2430814 -SHA256 (ankitects-anki-core-i18n-42ccadb_GH0.tar.gz) = b18b5c18ee3bace8e12515e2df201fbf38a2ccce9ec867cc9ba610860bfc3a52 -SIZE (ankitects-anki-core-i18n-42ccadb_GH0.tar.gz) = 1570338 -SHA256 (ankitects-anki-desktop-ftl-b3562ed_GH0.tar.gz) = af1c5af23b22660c897ab7b67619e3deb0ff7933f9d34fcfa43c7c1902ec6a87 -SIZE (ankitects-anki-desktop-ftl-b3562ed_GH0.tar.gz) = 237910 +SHA256 (ankitects-anki-25.02.5_GH0.tar.gz) = 4cd7d54dddd42466af82724505ad5ee436d3fcdcaff3375116cbbba639de502b +SIZE (ankitects-anki-25.02.5_GH0.tar.gz) = 2433426 +SHA256 (ankitects-anki-core-i18n-3c0418a_GH0.tar.gz) = 194617701c092d6d96bec0f12c25b2da53707233bafe374420fd31a4d2a157e5 +SIZE (ankitects-anki-core-i18n-3c0418a_GH0.tar.gz) = 1596162 +SHA256 (ankitects-anki-desktop-ftl-a4d7503_GH0.tar.gz) = 1137e9e88855bd23362adff70c7258e49dcbf79085a5d60f29bf630820a35542 +SIZE (ankitects-anki-desktop-ftl-a4d7503_GH0.tar.gz) = 239093 diff --git a/games/anki/pkg-plist b/games/anki/pkg-plist index 023fd7dd51a0..eb4773b4948c 100644 --- a/games/anki/pkg-plist +++ b/games/anki/pkg-plist @@ -562,6 +562,7 @@ share/man/man1/anki.1.gz %%DATADIR%%/aqt/tts.py %%DATADIR%%/aqt/undo.py %%DATADIR%%/aqt/update.py +%%DATADIR%%/aqt/url_schemes.py %%DATADIR%%/aqt/utils.py %%DATADIR%%/aqt/webview.py %%DATADIR%%/aqt/widgetgallery.py diff --git a/games/dxx-rebirth/Makefile b/games/dxx-rebirth/Makefile index 51c0c26d5df2..2eabaf2975a2 100644 --- a/games/dxx-rebirth/Makefile +++ b/games/dxx-rebirth/Makefile @@ -1,5 +1,5 @@ PORTNAME= dxx-rebirth -PORTVERSION= 20240706 +PORTVERSION= 20250329 CATEGORIES= games MAINTAINER= pkubaj@FreeBSD.org @@ -21,7 +21,7 @@ USES= gl localbase:ldflags pkgconfig scons sdl tar:xz USE_GCC= yes USE_GL= gl glu USE_GITHUB= yes -GH_TAGNAME= 898f9ca +GH_TAGNAME= ddc84fa USE_SDL= image2 mixer2 sdl2 MAKE_ARGS= ignore_unknown_variables=1 sdl2=1 diff --git a/games/dxx-rebirth/distinfo b/games/dxx-rebirth/distinfo index 817791a3d4bd..30ea7d9b68e5 100644 --- a/games/dxx-rebirth/distinfo +++ b/games/dxx-rebirth/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1721082769 -SHA256 (dxx-rebirth-dxx-rebirth-20240706-898f9ca_GH0.tar.gz) = a6596163d78998169cc47e460db97f5c02b637c6e2ee53dd8967c73272db1d17 -SIZE (dxx-rebirth-dxx-rebirth-20240706-898f9ca_GH0.tar.gz) = 2088049 +TIMESTAMP = 1747417041 +SHA256 (dxx-rebirth-dxx-rebirth-20250329-ddc84fa_GH0.tar.gz) = 92f2895b88d83203f24d07e56e109e44bcdc37c109af6f6b63a64e1d517bbff6 +SIZE (dxx-rebirth-dxx-rebirth-20250329-ddc84fa_GH0.tar.gz) = 2258254 diff --git a/games/ecwolf/Makefile b/games/ecwolf/Makefile index e73102ea66de..8d208b83f612 100644 --- a/games/ecwolf/Makefile +++ b/games/ecwolf/Makefile @@ -5,6 +5,9 @@ PORTREVISION= 3 CATEGORIES= games MASTER_SITES= http://maniacsvault.net/ecwolf/files/ecwolf/1.x/ +PATCH_SITES= https://bitbucket.org/ecwolf/ecwolf/commits/400aaf96a36a14ab8eab18a670ba6439046f3bb0/ +PATCHFILES= raw:-p1 + MAINTAINER= pkubaj@FreeBSD.org COMMENT= Source port for Wolfenstein 3D, Spear of Destiny WWW= https://maniacsvault.net/ecwolf/ diff --git a/games/ecwolf/distinfo b/games/ecwolf/distinfo index 35fed9bdc7e3..b5c341365765 100644 --- a/games/ecwolf/distinfo +++ b/games/ecwolf/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1677436927 +TIMESTAMP = 1747478477 SHA256 (ecwolf-1.4.1-src.tar.xz) = 8ebd495d2806c9d0e736656970e736730a005d3b43c7f5729f52c812b22f9e2d SIZE (ecwolf-1.4.1-src.tar.xz) = 14701860 +SHA256 (raw) = f061278a17260923df27d471422d35be239f5618e9160573ee4153071b8fd938 +SIZE (raw) = 550 diff --git a/games/freeciv-nox11/Makefile b/games/freeciv-nox11/Makefile index 426104bc205a..c63c92a22c3f 100644 --- a/games/freeciv-nox11/Makefile +++ b/games/freeciv-nox11/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 1 +PORTREVISION= 0 PKGNAMESUFFIX= -nox11 MASTERDIR= ${.CURDIR}/../freeciv diff --git a/games/freeciv/Makefile b/games/freeciv/Makefile index c37119773664..f6319a2e15c9 100644 --- a/games/freeciv/Makefile +++ b/games/freeciv/Makefile @@ -1,5 +1,6 @@ PORTNAME= freeciv -PORTVERSION= 3.1.4 +PORTVERSION= 3.1.5 +PORTREVISION?= 0 CATEGORIES= games MASTER_SITES= SF/freeciv/Freeciv%20${PORTVERSION:R}/${PORTVERSION} \ http://files.freeciv.org/stable/ @@ -14,10 +15,17 @@ LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= bash:shells/bash LIB_DEPENDS= libcurl.so:ftp/curl \ libicuuc.so:devel/icu \ - libltdl.so:devel/libltdl + libltdl.so:devel/libltdl \ + libzstd.so:archivers/zstd +LIB_DEPENDS+= ${LIB_DEPENDS_${ARCH}} +LIB_DEPENDS_aarch64= libunwind.so:devel/libunwind +LIB_DEPENDS_amd64= libunwind.so:devel/libunwind +LIB_DEPENDS_i386= libunwind.so:devel/libunwind +LIB_DEPENDS_powerpc64= libunwind.so:devel/libunwind +LIB_DEPENDS_powerpc64le=libunwind.so:devel/libunwind USES= autoreconf compiler:c++11-lang cpe desktop-file-utils gmake \ - iconv:wchar_t libtool lua:53 pkgconfig readline shebangfix ssl tar:xz + iconv:wchar_t libtool lua:54 pkgconfig readline shebangfix ssl tar:xz SHEBANG_FILES= bootstrap/*.sh data/flags/convert* scripts/mapimg2anim \ scripts/setup_auth_server.sh translations/*.sh @@ -39,14 +47,15 @@ LDFLAGS+= -Wl,--as-needed ${ICONV_LIB} PORTDATA= * OPTIONS_DEFINE= DOCS IPV6 NLS -OPTIONS_DEFAULT= QT5 SQLITE3 +OPTIONS_DEFAULT= QT SQLITE3 OPTIONS_MULTI= DB UI OPTIONS_MULTI_DB= MYSQL PGSQL SQLITE3 -OPTIONS_MULTI_UI= GTK3 GTK4 QT5 SDL +OPTIONS_MULTI_UI= GTK3 GTK4 QT SDL OPTIONS_SUB= yes DB_DESC= Database support UI_DESC= GUI clients +QT_DESC= QT GUI clients GTK3_USES= gnome sdl GTK3_USE= GNOME=cairo,gdkpixbuf,glib20,gtk30,pango \ @@ -75,14 +84,15 @@ PGSQL_USES= pgsql PGSQL_CONFIGURE_ON= --with-postgres-prefix=${LOCALBASE} PGSQL_VARS= _FREECIV_DB+=postgres -QT5_USES= qt:5 sdl -QT5_USE= QT=core,gui,widgets,buildtools:build \ +QT_USES= qt:6 sdl +QT_USE= QT=base,tools:build \ SDL=mixer2 -QT5_CONFIGURE_ON= --with-qt5=yes \ - --with-qt5-includes=${LOCALBASE}/${QT_INCDIR_REL} \ - --with-qt5-libs=${LOCALBASE}/${QT_LIBDIR_REL} -QT5_CONFIGURE_ENABLE= ruledit -QT5_VARS= _FREECIV_CLIENT+=qt \ +QT_CONFIGURE_ON= --with-qt6=yes \ + --with-qt6-includes=${LOCALBASE}/${QT_INCDIR_REL} \ + --with-qt6-libs=${LOCALBASE}/${QT_LIBDIR_REL} +QT_CONFIGURE_ENV= MOCCMD=${MOC} +QT_CONFIGURE_ENABLE= ruledit +QT_VARS= _FREECIV_CLIENT+=qt \ _FREECIV_MP+=qt SDL_USES= sdl diff --git a/games/freeciv/distinfo b/games/freeciv/distinfo index 7519d0ad323f..6cb803f16ac7 100644 --- a/games/freeciv/distinfo +++ b/games/freeciv/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742855068 -SHA256 (freeciv-3.1.4.tar.xz) = 14999bb903c4507cc287d5a8dd1b89eee623bb41b4e01e0836567fb5f13296e4 -SIZE (freeciv-3.1.4.tar.xz) = 46674900 +TIMESTAMP = 1747411889 +SHA256 (freeciv-3.1.5.tar.xz) = 0d9f687ff950a77a9fa0af66108a7f67da717fd40c3a0ca4c0a4f4a3f0214b33 +SIZE (freeciv-3.1.5.tar.xz) = 46870140 diff --git a/games/freeciv/files/patch-m4_sdl2-client.m4 b/games/freeciv/files/patch-m4_sdl2-client.m4 deleted file mode 100644 index 5f48eef0e82e..000000000000 --- a/games/freeciv/files/patch-m4_sdl2-client.m4 +++ /dev/null @@ -1,11 +0,0 @@ ---- m4/sdl2-client.m4.orig 2019-06-15 17:19:23 UTC -+++ m4/sdl2-client.m4 -@@ -82,7 +82,7 @@ AC_DEFUN([FC_SDL2_PROJECT], - ac_save_LIBS="$LIBS" - CPPFLAGS="$CPPFLAGS $SDL2_CFLAGS" - CFLAGS="$CFLAGS $SDL2_CFLAGS" -- LIBS="$LIBS $SDL2_LIBS" -+ LIBS="$LIBS $SDL2_LIBS -lm" - AC_CHECK_LIB([$1], [$2], - [sdl2_lib_found="yes"], [sdl2_lib_found="no" - sdl2_h_found="no"]) diff --git a/games/freeciv/pkg-plist b/games/freeciv/pkg-plist index e31877207f97..7357e7ad349e 100644 --- a/games/freeciv/pkg-plist +++ b/games/freeciv/pkg-plist @@ -5,10 +5,10 @@ bin/freeciv-mp-cli %%GTK3%%bin/freeciv-mp-gtk3 %%GTK4%%bin/freeciv-mp-gtk4 -%%QT5%%bin/freeciv-mp-qt -%%QT5%%bin/freeciv-qt -%%QT5%%bin/freeciv-ruledit -%%QT5%%bin/freeciv-ruleup +%%QT%%bin/freeciv-mp-qt +%%QT%%bin/freeciv-qt +%%QT%%bin/freeciv-ruledit +%%QT%%bin/freeciv-ruleup %%SDL%%bin/freeciv-sdl2 bin/freeciv-server %%ETCDIR%%/database.lua @@ -23,9 +23,9 @@ lib/libfreeciv.so.0.0.0 %%GTK3%%share/applications/org.freeciv.gtk3.mp.desktop %%GTK4%%share/applications/org.freeciv.gtk4.desktop %%GTK4%%share/applications/org.freeciv.gtk4.mp.desktop -%%QT5%%share/applications/org.freeciv.qt.desktop -%%QT5%%share/applications/org.freeciv.qt.mp.desktop -%%QT5%%share/applications/org.freeciv.ruledit.desktop +%%QT%%share/applications/org.freeciv.qt.desktop +%%QT%%share/applications/org.freeciv.qt.mp.desktop +%%QT%%share/applications/org.freeciv.ruledit.desktop %%SDL%%share/applications/org.freeciv.sdl2.desktop share/applications/org.freeciv.server.desktop %%PORTDOCS%%%%DOCSDIR%%/ABOUT-NLS @@ -68,149 +68,149 @@ share/applications/org.freeciv.server.desktop %%PORTDOCS%%%%DOCSDIR%%/doxygen.md %%CLIENT%%share/icons/hicolor/128x128/apps/freeciv-client.png %%CLIENT%%share/icons/hicolor/128x128/apps/freeciv-modpack.png -%%QT5%%share/icons/hicolor/128x128/apps/freeciv-ruledit.png +%%QT%%share/icons/hicolor/128x128/apps/freeciv-ruledit.png share/icons/hicolor/128x128/apps/freeciv-server.png %%CLIENT%%share/icons/hicolor/16x16/apps/freeciv-client.png %%CLIENT%%share/icons/hicolor/16x16/apps/freeciv-modpack.png -%%QT5%%share/icons/hicolor/16x16/apps/freeciv-ruledit.png +%%QT%%share/icons/hicolor/16x16/apps/freeciv-ruledit.png share/icons/hicolor/16x16/apps/freeciv-server.png %%CLIENT%%share/icons/hicolor/32x32/apps/freeciv-client.png %%CLIENT%%share/icons/hicolor/32x32/apps/freeciv-modpack.png -%%QT5%%share/icons/hicolor/32x32/apps/freeciv-ruledit.png +%%QT%%share/icons/hicolor/32x32/apps/freeciv-ruledit.png share/icons/hicolor/32x32/apps/freeciv-server.png %%CLIENT%%share/icons/hicolor/48x48/apps/freeciv-client.png %%CLIENT%%share/icons/hicolor/48x48/apps/freeciv-modpack.png -%%QT5%%share/icons/hicolor/48x48/apps/freeciv-ruledit.png +%%QT%%share/icons/hicolor/48x48/apps/freeciv-ruledit.png share/icons/hicolor/48x48/apps/freeciv-server.png %%CLIENT%%share/icons/hicolor/64x64/apps/freeciv-client.png %%CLIENT%%share/icons/hicolor/64x64/apps/freeciv-modpack.png -%%QT5%%share/icons/hicolor/64x64/apps/freeciv-ruledit.png +%%QT%%share/icons/hicolor/64x64/apps/freeciv-ruledit.png share/icons/hicolor/64x64/apps/freeciv-server.png %%NLS%%share/locale/ar/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/ar/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/ar/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/ar/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/bg/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/bg/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/bg/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/bg/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/ca/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/ca/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/ca/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/ca/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/cs/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/cs/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/cs/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/cs/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/da/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/da/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/da/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/da/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/de/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/de/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/de/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/de/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/el/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/el/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/el/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/el/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/en_GB/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/en_GB/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/en_GB/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/en_GB/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/eo/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/eo/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/eo/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/eo/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/es/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/es/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/es/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/es/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/es_419/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/es_419/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/es_419/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/es_419/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/et/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/et/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/et/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/et/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/fa/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/fa/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/fa/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/fa/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/fi/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/fi/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/fi/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/fi/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/fr/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/fr/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/fr/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/fr/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/ga/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/ga/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/ga/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/ga/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/gd/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/gd/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/gd/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/gd/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/gl_ES/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/gl_ES/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/gl_ES/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/gl_ES/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/he/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/he/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/he/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/he/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/hu/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/hu/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/hu/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/hu/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/id/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/id/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/id/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/id/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/it/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/it/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/it/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/it/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/ja/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/ja/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/ja/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/ja/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/ko/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/ko/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/ko/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/ko/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/lt/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/lt/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/lt/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/lt/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/nb/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/nb/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/nb/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/nb/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/nl/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/nl/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/nl/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/nl/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/pl/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/pl/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/pl/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/pl/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/pt/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/pt/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/pt/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/pt/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/pt_BR/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/pt_BR/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/pt_BR/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/pt_BR/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/ro/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/ro/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/ro/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/ro/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/ru/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/ru/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/ru/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/ru/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/sk/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/sk/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/sk/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/sk/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/sr/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/sr/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/sr/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/sr/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/sv/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/sv/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/sv/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/sv/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/tr/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/tr/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/tr/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/tr/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/uk/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/uk/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/uk/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/uk/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/zh_CN/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/zh_CN/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/zh_CN/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/zh_CN/LC_MESSAGES/freeciv-core.mo %%NLS%%share/locale/zh_TW/LC_MESSAGES/freeciv-nations.mo -%%QT5%%%%NLS%%share/locale/zh_TW/LC_MESSAGES/freeciv-ruledit.mo +%%QT%%%%NLS%%share/locale/zh_TW/LC_MESSAGES/freeciv-ruledit.mo %%NLS%%share/locale/zh_TW/LC_MESSAGES/freeciv-core.mo %%GTK3%%share/metainfo/org.freeciv.gtk3.metainfo.xml %%GTK3%%share/metainfo/org.freeciv.gtk322.metainfo.xml %%GTK3%%share/metainfo/org.freeciv.gtk3.mp.metainfo.xml %%GTK4%%share/metainfo/org.freeciv.gtk4.metainfo.xml %%GTK4%%share/metainfo/org.freeciv.gtk4.mp.metainfo.xml -%%QT5%%share/metainfo/org.freeciv.qt.metainfo.xml -%%QT5%%share/metainfo/org.freeciv.qt.mp.metainfo.xml -%%QT5%%share/metainfo/org.freeciv.ruledit.metainfo.xml +%%QT%%share/metainfo/org.freeciv.qt.metainfo.xml +%%QT%%share/metainfo/org.freeciv.qt.mp.metainfo.xml +%%QT%%share/metainfo/org.freeciv.ruledit.metainfo.xml %%SDL%%share/metainfo/org.freeciv.sdl2.metainfo.xml share/metainfo/org.freeciv.server.metainfo.xml share/man/man6/freeciv.6.gz @@ -223,14 +223,14 @@ share/man/man6/freeciv-modpack.6.gz share/man/man6/freeciv-mp-cli.6.gz %%GTK3%%share/man/man6/freeciv-mp-gtk3.6.gz %%GTK4%%share/man/man6/freeciv-mp-gtk4.6.gz -%%QT5%%share/man/man6/freeciv-mp-qt.6.gz -%%QT5%%share/man/man6/freeciv-qt.6.gz -%%QT5%%share/man/man6/freeciv-ruledit.6.gz -%%QT5%%share/man/man6/freeciv-ruleup.6.gz +%%QT%%share/man/man6/freeciv-mp-qt.6.gz +%%QT%%share/man/man6/freeciv-qt.6.gz +%%QT%%share/man/man6/freeciv-ruledit.6.gz +%%QT%%share/man/man6/freeciv-ruleup.6.gz @comment share/man/man6/freeciv-sdl.6.gz %%SDL%%share/man/man6/freeciv-sdl2.6.gz share/man/man6/freeciv-server.6.gz @comment share/man/man6/freeciv-xaw.6.gz %%CLIENT%%share/pixmaps/freeciv-client.png %%CLIENT%%share/pixmaps/freeciv-modpack.png -%%QT5%%share/pixmaps/freeciv-ruledit.png +%%QT%%share/pixmaps/freeciv-ruledit.png diff --git a/games/simutrans/Makefile b/games/simutrans/Makefile index c4b6f7aa8d1b..718f5d45194b 100644 --- a/games/simutrans/Makefile +++ b/games/simutrans/Makefile @@ -23,7 +23,7 @@ CMAKE_ON= CMAKE_DISABLE_FIND_PACKAGE_CCache \ CMAKE_DISABLE_FIND_PACKAGE_Subversion CMAKE_ARGS= -DSIMUTRANS_USE_REVISION=1 -PORTSCOUT= skipv:nightly +PORTSCOUT= skipv:Nightly PORTDATA= * PORTDOCS= change_request.txt \ diff --git a/games/veloren-weekly/Makefile b/games/veloren-weekly/Makefile index 2669f39552fb..2cc7838a2ba6 100644 --- a/games/veloren-weekly/Makefile +++ b/games/veloren-weekly/Makefile @@ -1,5 +1,5 @@ PORTNAME= veloren -PORTVERSION= s20250507 +PORTVERSION= s20250512 CATEGORIES= games wayland PKGNAMESUFFIX= -weekly @@ -25,7 +25,7 @@ RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-pl USES= cargo xorg USE_XORG= xcb USE_GITLAB= yes -GL_TAGNAME= v0.17.0-745-g8c44357c9d # git describe --match='v[0-9]*' weekly +GL_TAGNAME= v0.17.0-757-gbb8fb2f27b # git describe --match='v[0-9]*' weekly CARGO_ENV= VELOREN_USERDATA_STRATEGY=system SHADERC_LIB_DIR="${LOCALBASE}/lib" PLIST_FILES= bin/${PORTNAME}-server-cli \ bin/${PORTNAME}-voxygen \ diff --git a/games/veloren-weekly/distinfo b/games/veloren-weekly/distinfo index 1709b6e575d2..e352df43fc72 100644 --- a/games/veloren-weekly/distinfo +++ b/games/veloren-weekly/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746620641 +TIMESTAMP = 1747050574 SHA256 (rust/crates/ab_glyph-0.2.29.crate) = ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0 SIZE (rust/crates/ab_glyph-0.2.29.crate) = 20011 SHA256 (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046 @@ -1869,5 +1869,5 @@ SHA256 (xMAC94x-portpicker-rs-df6b37872f3586ac3b21d08b56c8ec7cd92fb172_GH0.tar.g SIZE (xMAC94x-portpicker-rs-df6b37872f3586ac3b21d08b56c8ec7cd92fb172_GH0.tar.gz) = 2210 SHA256 (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 43f0faa196eb33341c8e9952da17876649dd3aade44fd357a3a098eaaeb78e9d SIZE (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 808402 -SHA256 (veloren-v0.17.0-745-g8c44357c9d.tar.bz2) = 5f64699e7d5ed14c9b025fde2eb5216e15ce81fd4ed6e3daa9a42576ff914db6 -SIZE (veloren-v0.17.0-745-g8c44357c9d.tar.bz2) = 325793526 +SHA256 (veloren-v0.17.0-757-gbb8fb2f27b.tar.bz2) = 414e6636875197d9ae2b21082f042702baafcfbd4a60cb6324fe68425e45c3fc +SIZE (veloren-v0.17.0-757-gbb8fb2f27b.tar.bz2) = 325789273 diff --git a/graphics/R-cran-s2/Makefile b/graphics/R-cran-s2/Makefile index 29eafe93f6d7..defc56d35361 100644 --- a/graphics/R-cran-s2/Makefile +++ b/graphics/R-cran-s2/Makefile @@ -1,6 +1,5 @@ PORTNAME= s2 -DISTVERSION= 1.1.7 -PORTREVISION= 1 +DISTVERSION= 1.1.8 CATEGORIES= graphics DISTNAME= ${PORTNAME}_${PORTVERSION} @@ -16,8 +15,9 @@ NOT_FOR_ARCHS_REASON= is currently 64-bit only CRAN_DEPENDS= R-cran-Rcpp>0:devel/R-cran-Rcpp \ R-cran-wk>=0.6.0:math/R-cran-wk BUILD_DEPENDS= ${CRAN_DEPENDS} +LIB_DEPENDS= libabsl_base.so:devel/abseil RUN_DEPENDS= ${CRAN_DEPENDS} -USES= cran:auto-plist,compiles +USES= cran:auto-plist,compiles pkgconfig ssl .include <bsd.port.mk> diff --git a/graphics/R-cran-s2/distinfo b/graphics/R-cran-s2/distinfo index 652cae1ecedb..1fd11434d3dd 100644 --- a/graphics/R-cran-s2/distinfo +++ b/graphics/R-cran-s2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1722077122 -SHA256 (s2_1.1.7.tar.gz) = 30762c7150dd72e2f4a3d50e64b8b73b2d59b73275687ba3eea7a6e07f786878 -SIZE (s2_1.1.7.tar.gz) = 2381288 +TIMESTAMP = 1747217289 +SHA256 (s2_1.1.8.tar.gz) = 4366c00a58471544d34b1ab405206d23c9cfc305468316961fab45f9912a8191 +SIZE (s2_1.1.8.tar.gz) = 2966956 diff --git a/graphics/drawio/Makefile b/graphics/drawio/Makefile index b0ce5a413699..bb15150f7cf7 100644 --- a/graphics/drawio/Makefile +++ b/graphics/drawio/Makefile @@ -1,6 +1,6 @@ PORTNAME= drawio PORTVERSION= 26.2.15 -PORTREVISION= 1 +PORTREVISION= 2 DISTVERSIONPREFIX= x86_64- CATEGORIES= graphics MASTER_SITES= https://github.com/jgraph/drawio-desktop/releases/download/v${PORTVERSION}/ diff --git a/graphics/drm-515-kmod/Makefile b/graphics/drm-515-kmod/Makefile index 2c23997facb2..2917f30356a7 100644 --- a/graphics/drm-515-kmod/Makefile +++ b/graphics/drm-515-kmod/Makefile @@ -1,6 +1,6 @@ PORTNAME= drm-515-kmod PORTVERSION= ${DRM_KMOD_DISTVERSION} -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= graphics kld .include "Makefile.version" diff --git a/graphics/drm-515-kmod/Makefile.version b/graphics/drm-515-kmod/Makefile.version index 670d46ea6312..0e6c5f0ada35 100644 --- a/graphics/drm-515-kmod/Makefile.version +++ b/graphics/drm-515-kmod/Makefile.version @@ -2,4 +2,4 @@ # # This will be included from consumers such as nvidia-drm DRM_KMOD_DISTVERSION= 5.15.160 -DRM_KMOD_GH_TAGNAME= drm_v5.15.160_2 +DRM_KMOD_GH_TAGNAME= drm_v5.15.160_3 diff --git a/graphics/drm-515-kmod/distinfo b/graphics/drm-515-kmod/distinfo index 1a3e5e95b531..53e2eef10486 100644 --- a/graphics/drm-515-kmod/distinfo +++ b/graphics/drm-515-kmod/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1741855709 -SHA256 (freebsd-drm-kmod-5.15.160-drm_v5.15.160_2_GH0.tar.gz) = 85914f9a39c6919d9a725a3252ea541d11394c3051a3600707fa6d865a082728 -SIZE (freebsd-drm-kmod-5.15.160-drm_v5.15.160_2_GH0.tar.gz) = 26098303 +TIMESTAMP = 1747290809 +SHA256 (freebsd-drm-kmod-5.15.160-drm_v5.15.160_3_GH0.tar.gz) = e6eef2927f3d683be0faf286b2723fecf962ef2e48a2be87326a83579f82a55b +SIZE (freebsd-drm-kmod-5.15.160-drm_v5.15.160_3_GH0.tar.gz) = 26098374 diff --git a/graphics/gdal/Makefile b/graphics/gdal/Makefile index c052c8d6b747..2ad5c425d161 100644 --- a/graphics/gdal/Makefile +++ b/graphics/gdal/Makefile @@ -1,6 +1,6 @@ PORTNAME= gdal PORTVERSION= 3.10.3 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= graphics geography MASTER_SITES= https://download.osgeo.org/gdal/${PORTVERSION}/ \ LOCAL/sunpoet diff --git a/graphics/mesa-devel/Makefile b/graphics/mesa-devel/Makefile index 980fdc61cc58..1953c9080369 100644 --- a/graphics/mesa-devel/Makefile +++ b/graphics/mesa-devel/Makefile @@ -1,6 +1,6 @@ PORTNAME= mesa -DISTVERSION= 25.1-branchpoint-1019 -DISTVERSIONSUFFIX= -g7c4f501e99d +DISTVERSION= 25.1-branchpoint-1349 +DISTVERSIONSUFFIX= -g2212865ce0d CATEGORIES= graphics PKGNAMESUFFIX= -devel diff --git a/graphics/mesa-devel/distinfo b/graphics/mesa-devel/distinfo index 2962a3fa9e15..e7893035a620 100644 --- a/graphics/mesa-devel/distinfo +++ b/graphics/mesa-devel/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1746829179 -SHA256 (mesa-25.1-branchpoint-1019-g7c4f501e99d.tar.bz2) = f266d28154515c30ff70333ecaae7437a63286f151f46196ecc5549c6bf1a967 -SIZE (mesa-25.1-branchpoint-1019-g7c4f501e99d.tar.bz2) = 58328948 +TIMESTAMP = 1747436634 +SHA256 (mesa-25.1-branchpoint-1349-g2212865ce0d.tar.bz2) = 64794888118ec3d6f4d02204efa497f95082966bf99caad78f7869c6e842394a +SIZE (mesa-25.1-branchpoint-1349-g2212865ce0d.tar.bz2) = 58361711 SHA256 (700efacda59c.patch) = 0d567fe737ad1404e1f12d7cd018826d9095c23835f1ed5aaa1c81cb58d3d008 SIZE (700efacda59c.patch) = 983 SHA256 (2930dcbb3329.patch) = f90ab77950ba1a56d165f0bc8a3cbd9c5f624bb5c67d1c7f337316027e8295e8 diff --git a/graphics/nvidia-drm-515-kmod/Makefile b/graphics/nvidia-drm-515-kmod/Makefile index d5a90446b443..b300b5bd3ffc 100644 --- a/graphics/nvidia-drm-515-kmod/Makefile +++ b/graphics/nvidia-drm-515-kmod/Makefile @@ -1,5 +1,5 @@ PORTNAME= nvidia-drm-515-kmod -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= graphics BUILD_DEPENDS+= ${KMODDIR}/drm.ko:graphics/drm-515-kmod diff --git a/graphics/nvidia-drm-515-kmod/distinfo b/graphics/nvidia-drm-515-kmod/distinfo index 852fb8a00713..59d223d8ae19 100644 --- a/graphics/nvidia-drm-515-kmod/distinfo +++ b/graphics/nvidia-drm-515-kmod/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1745331417 +TIMESTAMP = 1747290835 SHA256 (NVIDIA-FreeBSD-x86_64-570.144.tar.xz) = 7912c9f101b29fec10c434b1389b1403489fa3008fae67d1b76ef3d9f4b5388f SIZE (NVIDIA-FreeBSD-x86_64-570.144.tar.xz) = 260506500 -SHA256 (freebsd-drm-kmod-drm_v5.15.160_2_GH0.tar.gz) = 85914f9a39c6919d9a725a3252ea541d11394c3051a3600707fa6d865a082728 -SIZE (freebsd-drm-kmod-drm_v5.15.160_2_GH0.tar.gz) = 26098303 +SHA256 (freebsd-drm-kmod-drm_v5.15.160_3_GH0.tar.gz) = e6eef2927f3d683be0faf286b2723fecf962ef2e48a2be87326a83579f82a55b +SIZE (freebsd-drm-kmod-drm_v5.15.160_3_GH0.tar.gz) = 26098374 diff --git a/graphics/pdfpc/Makefile b/graphics/pdfpc/Makefile index 68aec8ce3f26..281a46852c78 100644 --- a/graphics/pdfpc/Makefile +++ b/graphics/pdfpc/Makefile @@ -1,8 +1,8 @@ PORTNAME= pdfpc -DISTVERSION= 4.6.0 +DISTVERSION= 4.7.0 CATEGORIES= graphics DISTVERSIONPREFIX= v -PORTREVISION= 9 +PORTREVISION= 1 MAINTAINER= bapt@FreeBSD.org COMMENT= Keynote-like multi-monitor presentation viewer @@ -18,8 +18,8 @@ LIB_DEPENDS= libgee-0.8.so:devel/libgee \ libmarkdown.so:textproc/discount \ libpoppler-glib.so:graphics/poppler-glib \ libqrencode.so:graphics/libqrencode \ - libsoup-2.4.so:devel/libsoup \ - libwebkit2gtk-4.0.so:www/webkit2-gtk@40 + libsoup-3.0.so:devel/libsoup3 \ + libwebkit2gtk-4.1.so:www/webkit2-gtk@41 USES= cmake compiler:c11 gnome gstreamer pkgconfig vala:build xorg USE_GNOME= cairo gdkpixbuf gtk30 diff --git a/graphics/pdfpc/distinfo b/graphics/pdfpc/distinfo index 6beb209bea60..62f381565bfa 100644 --- a/graphics/pdfpc/distinfo +++ b/graphics/pdfpc/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1673903720 -SHA256 (pdfpc-pdfpc-v4.6.0_GH0.tar.gz) = 3b1a393f36a1b0ddc29a3d5111d8707f25fb2dd2d93b0401ff1c66fa95f50294 -SIZE (pdfpc-pdfpc-v4.6.0_GH0.tar.gz) = 7766521 +TIMESTAMP = 1747395263 +SHA256 (pdfpc-pdfpc-v4.7.0_GH0.tar.gz) = 0083a958a2e9288a15c31aabb76b3eadf104672b4e815017f31ffa0d87db02ec +SIZE (pdfpc-pdfpc-v4.7.0_GH0.tar.gz) = 7768713 diff --git a/graphics/pdfpc/files/patch-src_classes_drawings_drawing__commands.vala b/graphics/pdfpc/files/patch-src_classes_drawings_drawing__commands.vala deleted file mode 100644 index 5453aafedfce..000000000000 --- a/graphics/pdfpc/files/patch-src_classes_drawings_drawing__commands.vala +++ /dev/null @@ -1,27 +0,0 @@ ---- src/classes/drawings/drawing_commands.vala.orig 2023-08-08 00:11:53 UTC -+++ src/classes/drawings/drawing_commands.vala -@@ -54,8 +54,8 @@ namespace pdfpc { - } - - public void clear() { -- this.drawing_commands = new List<DrawingCommand>(); -- this.redo_commands = new List<DrawingCommand>(); -+ this.drawing_commands = new List<DrawingCommand?>(); -+ this.redo_commands = new List<DrawingCommand?>(); - } - - public void add_line(bool is_eraser, -@@ -70,7 +70,7 @@ namespace pdfpc { - - // After adding a new line you can no longer redo the old - // path. -- this.redo_commands = new List<DrawingCommand>(); // clear -+ this.redo_commands = new List<DrawingCommand?>(); // clear - - bool new_path = true; - double epsilon = 1e-4; // Less than 0.1 pixel for a 1000x1000 img -@@ -171,4 +171,3 @@ namespace pdfpc { - } - } - } -- diff --git a/graphics/pikchr/Makefile b/graphics/pikchr/Makefile index 67dc011f9081..755b88b3e717 100644 --- a/graphics/pikchr/Makefile +++ b/graphics/pikchr/Makefile @@ -1,5 +1,5 @@ PORTNAME= pikchr -PORTVERSION= 0.0.s20240731 +PORTVERSION= 0.0.s20250512 CATEGORIES= graphics textproc MASTER_SITES= https://pikchr.org/home/tarball/${CHECKIN}/ DISTNAME= ${PORTNAME}-${CHECKIN}${ARCHIVE_SUFX} @@ -10,7 +10,7 @@ WWW= https://pikchr.org LICENSE= BSD0CLAUSE -CHECKIN= 1e14a4118c +CHECKIN= 2972d1d24849d4c3 MAKE_ARGS= CC="${CC}" CFLAGS="${CFLAGS}" PLIST_FILES= bin/${PORTNAME} diff --git a/graphics/pikchr/distinfo b/graphics/pikchr/distinfo index 006a6a170a8d..78cceefe592e 100644 --- a/graphics/pikchr/distinfo +++ b/graphics/pikchr/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1728572409 -SHA256 (pikchr-1e14a4118c.tar.gz) = 017fd5a667d4b1f10ec2ad640be99c3f0306ff91ed20b2d12678c9c3e56b6bfe -SIZE (pikchr-1e14a4118c.tar.gz) = 271870 +TIMESTAMP = 1747395638 +SHA256 (pikchr-2972d1d24849d4c3.tar.gz) = d4bca3de228ea3f7a4e89a99de2c3602fd015c2b1887a36090567ce9ee5449b5 +SIZE (pikchr-2972d1d24849d4c3.tar.gz) = 217877 diff --git a/graphics/png/Makefile b/graphics/png/Makefile index 03c30aa7a3a7..654a279c1807 100644 --- a/graphics/png/Makefile +++ b/graphics/png/Makefile @@ -1,5 +1,5 @@ PORTNAME= png -DISTVERSION= 1.6.47 +DISTVERSION= 1.6.48 CATEGORIES= graphics MASTER_SITES= SF/lib${PORTNAME}/lib${PORTNAME}16/${DISTVERSION}/ PATCH_SITES= SF/lib${PORTNAME}-apng/lib${PORTNAME}16/${DISTVERSION}/ @@ -20,8 +20,10 @@ USES= cmake:testing cpe pathfix tar:xz CPE_PRODUCT= libpng USE_LDCONFIG= yes +CMAKE_TESTING_ON= PNG_TESTS + +CMAKE_ARGS= -DPNG_DEBUG_POSTFIX="" CMAKE_OFF= PNG_TESTS -CMAKE_TESTING_ON= PNG_TESTS OPTIONS_DEFINE= APNG SIMD OPTIONS_DEFAULT=APNG @@ -48,11 +50,8 @@ CFLAGS+= -maltivec -mvsx .if ${PORT_OPTIONS:MAPNG} || make(makesum) #PATCHFILES= ${DISTNAME}-apng.patch.gz:-p1 # Keep this because you normally need to keep patch version in sync with release -PATCHFILES= lib${PORTNAME}-${DISTVERSION}-apng.patch.gz:-p1 +#PATCHFILES= lib${PORTNAME}-${DISTVERSION}-apng.patch.gz:-p1 +PATCHFILES= lib${PORTNAME}-1.6.47-apng.patch.gz:-p1 .endif -post-patch: - @${REINPLACE_CMD} -e 's|PNG_DEBUG_POSTFIX "d"|PNG_DEBUG_POSTFIX ""|g' \ - ${PATCH_WRKSRC}/CMakeLists.txt - .include <bsd.port.mk> diff --git a/graphics/png/distinfo b/graphics/png/distinfo index a66c13642c31..e77a941bef41 100644 --- a/graphics/png/distinfo +++ b/graphics/png/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1741992460 -SHA256 (libpng-1.6.47.tar.xz) = b213cb381fbb1175327bd708a77aab708a05adde7b471bc267bd15ac99893631 -SIZE (libpng-1.6.47.tar.xz) = 1054664 +TIMESTAMP = 1746218765 +SHA256 (libpng-1.6.48.tar.xz) = 46fd06ff37db1db64c0dc288d78a3f5efd23ad9ac41561193f983e20937ece03 +SIZE (libpng-1.6.48.tar.xz) = 1054968 SHA256 (libpng-1.6.47-apng.patch.gz) = 5b086fafe7e12784b28693e19a5bcf68677a8c52947115712a56c3d123944f6f SIZE (libpng-1.6.47-apng.patch.gz) = 10697 diff --git a/graphics/png/pkg-plist b/graphics/png/pkg-plist index 19083caeb7d6..25c09fa0b79e 100644 --- a/graphics/png/pkg-plist +++ b/graphics/png/pkg-plist @@ -19,7 +19,7 @@ lib/libpng/libpng16.cmake lib/libpng16.a lib/libpng16.so lib/libpng16.so.16 -lib/libpng16.so.16.47.0 +lib/libpng16.so.16.48.0 libdata/pkgconfig/libpng.pc libdata/pkgconfig/libpng16.pc share/man/man3/libpng.3.gz diff --git a/graphics/qgis/Makefile b/graphics/qgis/Makefile index 27be8ddcfd36..b4436721bb8f 100644 --- a/graphics/qgis/Makefile +++ b/graphics/qgis/Makefile @@ -1,5 +1,5 @@ PORTNAME= qgis -DISTVERSION= 3.42.2 +DISTVERSION= 3.42.3 CATEGORIES= graphics geography MASTER_SITES= https://qgis.org/downloads/ @@ -134,7 +134,8 @@ CMAKE_ARGS+= -DCMAKE_BUILD_TYPE:STRING=Release \ -DQGIS_MANUAL_SUBDIR:PATH=share/man CMAKE_ON= USE_OPENCL WITH_ASTYLE WITH_BINDINGS WITH_COPC \ WITH_CUSTOM_WIDGETS WITH_DRACO WITH_EPT \ - WITH_INTERNAL_LAZPERF WITH_INTERNAL_MDAL WITH_POSTGRESQL + WITH_INTERNAL_LAZPERF WITH_INTERNAL_MDAL \ + WITH_POSTGRESQL WITH_QTWEBENGINE CMAKE_OFF= BUILD_WITH_QT6 ENABLE_TESTS USE_CCACHE WITH_QTWEBKIT \ WITH_QWTPOLAR diff --git a/graphics/qgis/distinfo b/graphics/qgis/distinfo index d2bbd18ebdc1..c758619a584f 100644 --- a/graphics/qgis/distinfo +++ b/graphics/qgis/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745050208 -SHA256 (qgis-3.42.2.tar.bz2) = ce63863990da409de09606651252a3811b1cbee017ce8e8fbf2fd20a64778883 -SIZE (qgis-3.42.2.tar.bz2) = 185264347 +TIMESTAMP = 1747492643 +SHA256 (qgis-3.42.3.tar.bz2) = 677d465a26be245a1230941f005c8e51567604dd6b42387bd41fc8b7eb7a8d3a +SIZE (qgis-3.42.3.tar.bz2) = 188579717 diff --git a/graphics/qgis/pkg-plist b/graphics/qgis/pkg-plist index 69b8f43400c4..e5af4fcdf3cf 100644 --- a/graphics/qgis/pkg-plist +++ b/graphics/qgis/pkg-plist @@ -1968,6 +1968,7 @@ include/qgis/qgsvtpkvectortiledataprovider.h include/qgis/qgsvtpkvectortileguiprovider.h include/qgis/qgsvtpkvectortilesourcewidget.h include/qgis/qgsweakrelation.h +include/qgis/qgswebenginepage.h include/qgis/qgswebframe.h include/qgis/qgswebpage.h include/qgis/qgswebview.h @@ -3811,12 +3812,10 @@ share/metainfo/org.qgis.qgis.appdata.xml %%DATADIR%%/i18n/qgis_cs.qm %%DATADIR%%/i18n/qgis_da.qm %%DATADIR%%/i18n/qgis_de.qm -%%DATADIR%%/i18n/qgis_el.qm %%DATADIR%%/i18n/qgis_en_US.qm %%DATADIR%%/i18n/qgis_es.qm %%DATADIR%%/i18n/qgis_et.qm %%DATADIR%%/i18n/qgis_eu.qm -%%DATADIR%%/i18n/qgis_fa.qm %%DATADIR%%/i18n/qgis_fi.qm %%DATADIR%%/i18n/qgis_fr.qm %%DATADIR%%/i18n/qgis_gl.qm @@ -3825,7 +3824,6 @@ share/metainfo/org.qgis.qgis.appdata.xml %%DATADIR%%/i18n/qgis_it.qm %%DATADIR%%/i18n/qgis_ja.qm %%DATADIR%%/i18n/qgis_ko.qm -%%DATADIR%%/i18n/qgis_ky.qm %%DATADIR%%/i18n/qgis_lt.qm %%DATADIR%%/i18n/qgis_lv.qm %%DATADIR%%/i18n/qgis_nb.qm diff --git a/graphics/satty/Makefile b/graphics/satty/Makefile index 30b8c045d172..2ce5af84083b 100644 --- a/graphics/satty/Makefile +++ b/graphics/satty/Makefile @@ -1,6 +1,6 @@ PORTNAME= satty DISTVERSIONPREFIX= v -DISTVERSION= 0.18.1 +DISTVERSION= 0.19.0 CATEGORIES= graphics wayland MASTER_SITES= CRATESIO diff --git a/graphics/satty/Makefile.crates b/graphics/satty/Makefile.crates index 60134078d96f..f2393cf69b9e 100644 --- a/graphics/satty/Makefile.crates +++ b/graphics/satty/Makefile.crates @@ -13,21 +13,21 @@ CARGO_CRATES= addr2line-0.24.2 \ autocfg-1.4.0 \ backtrace-0.3.75 \ bitflags-1.3.2 \ - bitflags-2.9.0 \ + bitflags-2.9.1 \ bumpalo-3.17.0 \ bytemuck-1.23.0 \ bytemuck_derive-1.9.3 \ byteorder-1.5.0 \ byteorder-lite-0.1.0 \ bytes-1.10.1 \ - cairo-rs-0.20.7 \ - cairo-sys-rs-0.20.7 \ + cairo-rs-0.20.10 \ + cairo-sys-rs-0.20.10 \ cc-1.2.22 \ cfg-expr-0.17.2 \ cfg-if-1.0.0 \ chrono-0.4.41 \ - clap-4.5.37 \ - clap_builder-4.5.37 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ clap_complete-4.5.50 \ clap_complete_fig-4.5.2 \ clap_complete_nushell-4.5.5 \ @@ -57,22 +57,22 @@ CARGO_CRATES= addr2line-0.24.2 \ futures-sink-0.3.31 \ futures-task-0.3.31 \ futures-util-0.3.31 \ - gdk-pixbuf-0.20.9 \ - gdk-pixbuf-sys-0.20.7 \ + gdk-pixbuf-0.20.10 \ + gdk-pixbuf-sys-0.20.10 \ gdk4-0.9.6 \ gdk4-sys-0.9.6 \ getrandom-0.2.16 \ gimli-0.31.1 \ - gio-0.20.9 \ - gio-sys-0.20.9 \ + gio-0.20.10 \ + gio-sys-0.20.10 \ gl_generator-0.9.0 \ - glib-0.20.9 \ - glib-macros-0.20.7 \ - glib-sys-0.20.9 \ + glib-0.20.10 \ + glib-macros-0.20.10 \ + glib-sys-0.20.10 \ glow-0.16.0 \ - gobject-sys-0.20.9 \ - graphene-rs-0.20.9 \ - graphene-sys-0.20.7 \ + gobject-sys-0.20.10 \ + graphene-rs-0.20.10 \ + graphene-sys-0.20.10 \ gsk4-0.9.6 \ gsk4-sys-0.9.6 \ gtk4-0.9.6 \ @@ -97,7 +97,7 @@ CARGO_CRATES= addr2line-0.24.2 \ libadwaita-0.7.2 \ libadwaita-sys-0.7.2 \ libc-0.2.172 \ - libloading-0.8.6 \ + libloading-0.8.7 \ libm-0.2.15 \ lock_api-0.4.12 \ log-0.4.27 \ @@ -110,8 +110,8 @@ CARGO_CRATES= addr2line-0.24.2 \ num-traits-0.2.19 \ object-0.36.7 \ once_cell-1.21.3 \ - pango-0.20.9 \ - pango-sys-0.20.9 \ + pango-0.20.10 \ + pango-sys-0.20.10 \ parking_lot-0.12.3 \ parking_lot_core-0.9.10 \ pin-project-lite-0.2.16 \ @@ -199,14 +199,23 @@ CARGO_CRATES= addr2line-0.24.2 \ windows-sys-0.52.0 \ windows-sys-0.59.0 \ windows-targets-0.52.6 \ + windows-targets-0.53.0 \ windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_gnullvm-0.53.0 \ windows_aarch64_msvc-0.52.6 \ + windows_aarch64_msvc-0.53.0 \ windows_i686_gnu-0.52.6 \ + windows_i686_gnu-0.53.0 \ windows_i686_gnullvm-0.52.6 \ + windows_i686_gnullvm-0.53.0 \ windows_i686_msvc-0.52.6 \ + windows_i686_msvc-0.53.0 \ windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnu-0.53.0 \ windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_gnullvm-0.53.0 \ windows_x86_64_msvc-0.52.6 \ + windows_x86_64_msvc-0.53.0 \ winnow-0.7.10 \ xdg-3.0.0 \ xml-rs-0.7.0 \ diff --git a/graphics/satty/distinfo b/graphics/satty/distinfo index 5149dc911c9a..c47bd8ce968f 100644 --- a/graphics/satty/distinfo +++ b/graphics/satty/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746880577 +TIMESTAMP = 1747336749 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -29,8 +29,8 @@ SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e2 SIZE (rust/crates/backtrace-0.3.75.crate) = 92665 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 -SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd -SIZE (rust/crates/bitflags-2.9.0.crate) = 47654 +SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967 +SIZE (rust/crates/bitflags-2.9.1.crate) = 47913 SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 SHA256 (rust/crates/bytemuck-1.23.0.crate) = 9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c @@ -43,10 +43,10 @@ SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b SIZE (rust/crates/byteorder-lite-0.1.0.crate) = 15909 SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a SIZE (rust/crates/bytes-1.10.1.crate) = 76779 -SHA256 (rust/crates/cairo-rs-0.20.7.crate) = ae50b5510d86cf96ac2370e66d8dc960882f3df179d6a5a1e52bd94a1416c0f7 -SIZE (rust/crates/cairo-rs-0.20.7.crate) = 52722 -SHA256 (rust/crates/cairo-sys-rs-0.20.7.crate) = f18b6bb8e43c7eb0f2aac7976afe0c61b6f5fc2ab7bc4c139537ea56c92290df -SIZE (rust/crates/cairo-sys-rs-0.20.7.crate) = 11934 +SHA256 (rust/crates/cairo-rs-0.20.10.crate) = b58e62a27cd02fb3f63f82bb31fdda7e6c43141497cbe97e8816d7c914043f55 +SIZE (rust/crates/cairo-rs-0.20.10.crate) = 57584 +SHA256 (rust/crates/cairo-sys-rs-0.20.10.crate) = 059cc746549898cbfd9a47754288e5a958756650ef4652bbb6c5f71a6bda4f8b +SIZE (rust/crates/cairo-sys-rs-0.20.10.crate) = 14424 SHA256 (rust/crates/cc-1.2.22.crate) = 32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1 SIZE (rust/crates/cc-1.2.22.crate) = 106294 SHA256 (rust/crates/cfg-expr-0.17.2.crate) = 8d4ba6e40bd1184518716a6e1a781bf9160e286d219ccdb8ab2612e74cfe4789 @@ -55,10 +55,10 @@ SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582eb SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 SHA256 (rust/crates/chrono-0.4.41.crate) = c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d SIZE (rust/crates/chrono-0.4.41.crate) = 234621 -SHA256 (rust/crates/clap-4.5.37.crate) = eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071 -SIZE (rust/crates/clap-4.5.37.crate) = 56962 -SHA256 (rust/crates/clap_builder-4.5.37.crate) = efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2 -SIZE (rust/crates/clap_builder-4.5.37.crate) = 168761 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 SHA256 (rust/crates/clap_complete-4.5.50.crate) = c91d3baa3bcd889d60e6ef28874126a0b384fd225ab83aa6d8a801c519194ce1 SIZE (rust/crates/clap_complete-4.5.50.crate) = 48292 SHA256 (rust/crates/clap_complete_fig-4.5.2.crate) = d494102c8ff3951810c72baf96910b980fb065ca5d3101243e6a8dc19747c86b @@ -117,10 +117,10 @@ SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c SIZE (rust/crates/futures-task-0.3.31.crate) = 11217 SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81 SIZE (rust/crates/futures-util-0.3.31.crate) = 162124 -SHA256 (rust/crates/gdk-pixbuf-0.20.9.crate) = 7563afd6ff0a221edfbb70a78add5075b8d9cb48e637a40a24c3ece3fea414d0 -SIZE (rust/crates/gdk-pixbuf-0.20.9.crate) = 21619 -SHA256 (rust/crates/gdk-pixbuf-sys-0.20.7.crate) = 67f2587c9202bf997476bbba6aaed4f78a11538a2567df002a5f57f5331d0b5c -SIZE (rust/crates/gdk-pixbuf-sys-0.20.7.crate) = 9852 +SHA256 (rust/crates/gdk-pixbuf-0.20.10.crate) = 2fd242894c084f4beed508a56952750bce3e96e85eb68fdc153637daa163e10c +SIZE (rust/crates/gdk-pixbuf-0.20.10.crate) = 21618 +SHA256 (rust/crates/gdk-pixbuf-sys-0.20.10.crate) = 5b34f3b580c988bd217e9543a2de59823fafae369d1a055555e5f95a8b130b96 +SIZE (rust/crates/gdk-pixbuf-sys-0.20.10.crate) = 13317 SHA256 (rust/crates/gdk4-0.9.6.crate) = 4850c9d9c1aecd1a3eb14fadc1cdb0ac0a2298037e116264c7473e1740a32d60 SIZE (rust/crates/gdk4-0.9.6.crate) = 97926 SHA256 (rust/crates/gdk4-sys-0.9.6.crate) = 6f6eb95798e2b46f279cf59005daf297d5b69555428f185650d71974a910473a @@ -129,26 +129,26 @@ SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433 SIZE (rust/crates/getrandom-0.2.16.crate) = 40163 SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f SIZE (rust/crates/gimli-0.31.1.crate) = 279515 -SHA256 (rust/crates/gio-0.20.9.crate) = a4f00c70f8029d84ea7572dd0e1aaa79e5329667b4c17f329d79ffb1e6277487 -SIZE (rust/crates/gio-0.20.9.crate) = 220512 -SHA256 (rust/crates/gio-sys-0.20.9.crate) = 160eb5250a26998c3e1b54e6a3d4ea15c6c7762a6062a19a7b63eff6e2b33f9e -SIZE (rust/crates/gio-sys-0.20.9.crate) = 86086 +SHA256 (rust/crates/gio-0.20.10.crate) = ab2a654c887546d14fdb214cc04641cd30450c9b4fa4525fd989d25fd5a5561e +SIZE (rust/crates/gio-0.20.10.crate) = 221061 +SHA256 (rust/crates/gio-sys-0.20.10.crate) = 521e93a7e56fc89e84aea9a52cfc9436816a4b363b030260b699950ff1336c83 +SIZE (rust/crates/gio-sys-0.20.10.crate) = 86258 SHA256 (rust/crates/gl_generator-0.9.0.crate) = 7a795170cbd85b5a7baa58d6d7525cae6a03e486859860c220f7ebbbdd379d0a SIZE (rust/crates/gl_generator-0.9.0.crate) = 21595 -SHA256 (rust/crates/glib-0.20.9.crate) = 707b819af8059ee5395a2de9f2317d87a53dbad8846a2f089f0bb44703f37686 -SIZE (rust/crates/glib-0.20.9.crate) = 293359 -SHA256 (rust/crates/glib-macros-0.20.7.crate) = 715601f8f02e71baef9c1f94a657a9a77c192aea6097cf9ae7e5e177cd8cde68 -SIZE (rust/crates/glib-macros-0.20.7.crate) = 72089 -SHA256 (rust/crates/glib-sys-0.20.9.crate) = a8928869a44cfdd1fccb17d6746e4ff82c8f82e41ce705aa026a52ca8dc3aefb -SIZE (rust/crates/glib-sys-0.20.9.crate) = 67109 +SHA256 (rust/crates/glib-0.20.10.crate) = c501c495842c2b23cdacead803a5a343ca2a5d7a7ddaff14cc5f6cf22cfb92c2 +SIZE (rust/crates/glib-0.20.10.crate) = 293754 +SHA256 (rust/crates/glib-macros-0.20.10.crate) = ebe6dc9ce29887c4b3b74d78d5ba473db160a258ae7ed883d23632ac7fed7bc9 +SIZE (rust/crates/glib-macros-0.20.10.crate) = 76345 +SHA256 (rust/crates/glib-sys-0.20.10.crate) = 8ab79e1ed126803a8fb827e3de0e2ff95191912b8db65cee467edb56fc4cc215 +SIZE (rust/crates/glib-sys-0.20.10.crate) = 67282 SHA256 (rust/crates/glow-0.16.0.crate) = c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08 SIZE (rust/crates/glow-0.16.0.crate) = 162118 -SHA256 (rust/crates/gobject-sys-0.20.9.crate) = c773a3cb38a419ad9c26c81d177d96b4b08980e8bdbbf32dace883e96e96e7e3 -SIZE (rust/crates/gobject-sys-0.20.9.crate) = 22509 -SHA256 (rust/crates/graphene-rs-0.20.9.crate) = 3cbc5911bfb32d68dcfa92c9510c462696c2f715548fcd7f3f1be424c739de19 -SIZE (rust/crates/graphene-rs-0.20.9.crate) = 21946 -SHA256 (rust/crates/graphene-sys-0.20.7.crate) = 11a68d39515bf340e879b72cecd4a25c1332557757ada6e8aba8654b4b81d23a -SIZE (rust/crates/graphene-sys-0.20.7.crate) = 11684 +SHA256 (rust/crates/gobject-sys-0.20.10.crate) = ec9aca94bb73989e3cfdbf8f2e0f1f6da04db4d291c431f444838925c4c63eda +SIZE (rust/crates/gobject-sys-0.20.10.crate) = 22623 +SHA256 (rust/crates/graphene-rs-0.20.10.crate) = 6b86dfad7d14251c9acaf1de63bc8754b7e3b4e5b16777b6f5a748208fe9519b +SIZE (rust/crates/graphene-rs-0.20.10.crate) = 21951 +SHA256 (rust/crates/graphene-sys-0.20.10.crate) = df583a85ba2d5e15e1797e40d666057b28bc2f60a67c9c24145e6db2cc3861ea +SIZE (rust/crates/graphene-sys-0.20.10.crate) = 14946 SHA256 (rust/crates/gsk4-0.9.6.crate) = 61f5e72f931c8c9f65fbfc89fe0ddc7746f147f822f127a53a9854666ac1f855 SIZE (rust/crates/gsk4-0.9.6.crate) = 37149 SHA256 (rust/crates/gsk4-sys-0.9.6.crate) = 755059de55fa6f85a46bde8caf03e2184c96bfda1f6206163c72fb0ea12436dc @@ -197,8 +197,8 @@ SHA256 (rust/crates/libadwaita-sys-0.7.2.crate) = 6680988058c2558baf3f548a370e4e SIZE (rust/crates/libadwaita-sys-0.7.2.crate) = 35416 SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa SIZE (rust/crates/libc-0.2.172.crate) = 791646 -SHA256 (rust/crates/libloading-0.8.6.crate) = fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34 -SIZE (rust/crates/libloading-0.8.6.crate) = 28922 +SHA256 (rust/crates/libloading-0.8.7.crate) = 6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c +SIZE (rust/crates/libloading-0.8.7.crate) = 30374 SHA256 (rust/crates/libm-0.2.15.crate) = f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de SIZE (rust/crates/libm-0.2.15.crate) = 156108 SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17 @@ -223,10 +223,10 @@ SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b665 SIZE (rust/crates/object-0.36.7.crate) = 329938 SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 -SHA256 (rust/crates/pango-0.20.9.crate) = 6b1f5dc1b8cf9bc08bfc0843a04ee0fa2e78f1e1fa4b126844a383af4f25f0ec -SIZE (rust/crates/pango-0.20.9.crate) = 49656 -SHA256 (rust/crates/pango-sys-0.20.9.crate) = 0dbb9b751673bd8fe49eb78620547973a1e719ed431372122b20abd12445bab5 -SIZE (rust/crates/pango-sys-0.20.9.crate) = 28371 +SHA256 (rust/crates/pango-0.20.10.crate) = d88d37c161f2848f0d9382597f0168484c9335ac800995f3956641abb7002938 +SIZE (rust/crates/pango-0.20.10.crate) = 49735 +SHA256 (rust/crates/pango-sys-0.20.10.crate) = 186909673fc09be354555c302c0b3dcf753cd9fa08dcb8077fa663c80fb243fa +SIZE (rust/crates/pango-sys-0.20.10.crate) = 28457 SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27 SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860 SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8 @@ -401,22 +401,40 @@ SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b3 SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows-targets-0.53.0.crate) = b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b +SIZE (rust/crates/windows-targets-0.53.0.crate) = 7020 SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764 +SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443 SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c +SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446 SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3 +SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973 SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11 +SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056 SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d +SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450 SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba +SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585 SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57 +SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434 SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 +SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486 +SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400 SHA256 (rust/crates/winnow-0.7.10.crate) = c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec SIZE (rust/crates/winnow-0.7.10.crate) = 176073 SHA256 (rust/crates/xdg-3.0.0.crate) = 2fb433233f2df9344722454bc7e96465c9d03bff9d77c248f9e7523fe79585b5 @@ -435,5 +453,5 @@ SHA256 (rust/crates/zvariant_derive-4.2.0.crate) = 73e2ba546bda683a90652bac4a279 SIZE (rust/crates/zvariant_derive-4.2.0.crate) = 11057 SHA256 (rust/crates/zvariant_utils-2.1.0.crate) = c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340 SIZE (rust/crates/zvariant_utils-2.1.0.crate) = 7043 -SHA256 (gabm-Satty-v0.18.1_GH0.tar.gz) = 9dc519e572982956db2e7165ab2931c19fe0e88db133a3776d4293ddcd13ca49 -SIZE (gabm-Satty-v0.18.1_GH0.tar.gz) = 1010763 +SHA256 (gabm-Satty-v0.19.0_GH0.tar.gz) = 03244dd0d181dfccb6b88c199ae1eef9f1197af5cc421c4ead955f80493c4491 +SIZE (gabm-Satty-v0.19.0_GH0.tar.gz) = 1014230 diff --git a/graphics/timg/Makefile b/graphics/timg/Makefile index 79f6f8b10af4..f52a84d6f907 100644 --- a/graphics/timg/Makefile +++ b/graphics/timg/Makefile @@ -1,6 +1,6 @@ PORTNAME= timg DISTVERSIONPREFIX= v -DISTVERSION= 1.6.1 +DISTVERSION= 1.6.2 CATEGORIES= graphics MAINTAINER= uzsolt@FreeBSD.org diff --git a/graphics/timg/distinfo b/graphics/timg/distinfo index 7ae1bbfd7890..e19aa0d616cb 100644 --- a/graphics/timg/distinfo +++ b/graphics/timg/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1735920930 -SHA256 (hzeller-timg-v1.6.1_GH0.tar.gz) = 08147c41ce4cea61b6c494ad746e743b7c4501cfd247bec5134e8ede773bf2af -SIZE (hzeller-timg-v1.6.1_GH0.tar.gz) = 1166886 +TIMESTAMP = 1747384824 +SHA256 (hzeller-timg-v1.6.2_GH0.tar.gz) = a5fb4443f55552d15a8b22b9ca4cb5874eb1a988d3b98fe31d61d19b2c7b9e56 +SIZE (hzeller-timg-v1.6.2_GH0.tar.gz) = 1223894 diff --git a/graphics/vulkan-validation-layers/Makefile b/graphics/vulkan-validation-layers/Makefile index b230f78096df..6d6bcce05656 100644 --- a/graphics/vulkan-validation-layers/Makefile +++ b/graphics/vulkan-validation-layers/Makefile @@ -1,6 +1,6 @@ PORTNAME= vulkan-validation-layers DISTVERSIONPREFIX= v -DISTVERSION= 1.4.314 +DISTVERSION= 1.4.315 CATEGORIES= graphics MAINTAINER= jbeich@FreeBSD.org @@ -21,12 +21,6 @@ GH_PROJECT= Vulkan-ValidationLayers GH_TUPLE= KhronosGroup:SPIRV-Headers:1.5.4.raytracing.fixed-411-gaa6cef1:headers/SPIRV-Headers CMAKE_OFF= BUILD_TESTS -.if ${DISTVERSION:E} < 315 -GH_TUPLE+= KhronosGroup:Vulkan-Headers:${DISTVERSIONFULL}:vkheaders/Vulkan-Headers \ - KhronosGroup:Vulkan-Utility-Libraries:${DISTVERSIONFULL}:vkutils/Vulkan-Utility-Libraries -CFLAGS+= -I${WRKSRC_vkheaders}/include -I${WRKSRC_vkutils}/include -.endif - OPTIONS_DEFINE= WAYLAND XCB XLIB OPTIONS_DEFAULT=WAYLAND XCB XLIB diff --git a/graphics/vulkan-validation-layers/distinfo b/graphics/vulkan-validation-layers/distinfo index e661b488f0f1..a0ccb8af3601 100644 --- a/graphics/vulkan-validation-layers/distinfo +++ b/graphics/vulkan-validation-layers/distinfo @@ -1,9 +1,5 @@ -TIMESTAMP = 1746485755 -SHA256 (KhronosGroup-Vulkan-ValidationLayers-v1.4.314_GH0.tar.gz) = 147e52f6782119170621b71c55e2ff72fc653f088b6ebc99e0ea27f7ebd89d04 -SIZE (KhronosGroup-Vulkan-ValidationLayers-v1.4.314_GH0.tar.gz) = 6359689 +TIMESTAMP = 1746859355 +SHA256 (KhronosGroup-Vulkan-ValidationLayers-v1.4.315_GH0.tar.gz) = 9e85fcd793fb1ee871ea8e293cb1f9736473614be23dd03a0dec8a5d1cee918c +SIZE (KhronosGroup-Vulkan-ValidationLayers-v1.4.315_GH0.tar.gz) = 6361546 SHA256 (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-411-gaa6cef1_GH0.tar.gz) = 3ac06fbcb63382f5dd2e24d45e8d2e93981858a07c38a4edf24f47f9d7fd254e SIZE (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-411-gaa6cef1_GH0.tar.gz) = 547604 -SHA256 (KhronosGroup-Vulkan-Headers-v1.4.314_GH0.tar.gz) = da32bccb312ddbc69519ee248ea222723083441e9d59bde4381c76bde8ad9dba -SIZE (KhronosGroup-Vulkan-Headers-v1.4.314_GH0.tar.gz) = 2638206 -SHA256 (KhronosGroup-Vulkan-Utility-Libraries-v1.4.314_GH0.tar.gz) = aad807bfe8fe5b1a442204c9daf935be9e3b9973004b05e5df98ca94ea9f0882 -SIZE (KhronosGroup-Vulkan-Utility-Libraries-v1.4.314_GH0.tar.gz) = 581048 diff --git a/irc/halloy/Makefile b/irc/halloy/Makefile index 2038f4d0fd48..141e9f24ae5d 100644 --- a/irc/halloy/Makefile +++ b/irc/halloy/Makefile @@ -1,5 +1,5 @@ PORTNAME= halloy -DISTVERSION= 2025.4 +DISTVERSION= 2025.5 CATEGORIES= irc MAINTAINER= pokeysquirrel@gmail.com diff --git a/irc/halloy/Makefile.crates b/irc/halloy/Makefile.crates index 1c8bdcef652b..ef9597aa94f3 100644 --- a/irc/halloy/Makefile.crates +++ b/irc/halloy/Makefile.crates @@ -62,6 +62,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \ base64-0.13.1 \ base64-0.22.1 \ base64ct-1.6.0 \ + bincode-1.3.3 \ bindgen-0.70.1 \ bit-set-0.8.0 \ bit-vec-0.8.0 \ @@ -123,7 +124,7 @@ CARGO_CRATES= ab_glyph-0.2.29 \ core-graphics-types-0.2.0 \ coreaudio-rs-0.11.3 \ coreaudio-sys-0.2.16 \ - cosmic-text-0.13.2 \ + cosmic-text-0.14.2 \ cpal-0.15.3 \ cpufeatures-0.2.16 \ crc32fast-1.4.2 \ @@ -420,10 +421,10 @@ CARGO_CRATES= ab_glyph-0.2.29 \ once_cell-1.20.3 \ oneshot-fused-workaround-0.2.1 \ open-5.3.2 \ - openssl-0.10.68 \ + openssl-0.10.72 \ openssl-macros-0.1.1 \ openssl-probe-0.1.5 \ - openssl-sys-0.9.104 \ + openssl-sys-0.9.108 \ option-ext-0.2.0 \ orbclient-0.3.48 \ ordered-float-2.10.1 \ @@ -851,6 +852,6 @@ CARGO_CRATES= ab_glyph-0.2.29 \ zvariant_derive-5.2.0 \ zvariant_utils-3.1.0 \ dpi,winit@git+https://github.com/iced-rs/winit.git?rev=11414b6aa45699f038114e61b4ddf5102b2d3b4b\#11414b6aa45699f038114e61b4ddf5102b2d3b4b \ + cryoglyph@git+https://github.com/iced-rs/cryoglyph.git?rev=a456d1c17bbcf33afcca41d9e5e299f9f1193819\#a456d1c17bbcf33afcca41d9e5e299f9f1193819 \ dark-light@git+https://github.com/rust-dark-light/dark-light?rev=8e1f745f91e1e805fa772a83e4744afe95d70aa1\#8e1f745f91e1e805fa772a83e4744afe95d70aa1 \ - iced,iced_core,iced_futures,iced_graphics,iced_renderer,iced_runtime,iced_tiny_skia,iced_wgpu,iced_widget,iced_winit@git+https://github.com/iced-rs/iced?rev=1b22d7d5fcdf519a3cac7a3cfd14398a3108c3b8\#1b22d7d5fcdf519a3cac7a3cfd14398a3108c3b8 \ - cryoglyph@git+https://github.com/iced-rs/cryoglyph.git?rev=be2defe4a13fd7c97c6f4c81e8e085463eb578dc\#be2defe4a13fd7c97c6f4c81e8e085463eb578dc + iced,iced_beacon,iced_core,iced_debug,iced_devtools,iced_futures,iced_graphics,iced_program,iced_renderer,iced_runtime,iced_tiny_skia,iced_wgpu,iced_widget,iced_winit@git+https://github.com/iced-rs/iced?rev=aa633f6832c93d81fc829bcd351b369f0aada282\#aa633f6832c93d81fc829bcd351b369f0aada282 diff --git a/irc/halloy/distinfo b/irc/halloy/distinfo index bd62ca333d7e..33bfa3e3c1d7 100644 --- a/irc/halloy/distinfo +++ b/irc/halloy/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1744150666 +TIMESTAMP = 1747058932 SHA256 (rust/crates/ab_glyph-0.2.29.crate) = ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0 SIZE (rust/crates/ab_glyph-0.2.29.crate) = 20011 SHA256 (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046 @@ -127,6 +127,8 @@ SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f 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/bincode-1.3.3.crate) = b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad +SIZE (rust/crates/bincode-1.3.3.crate) = 28958 SHA256 (rust/crates/bindgen-0.70.1.crate) = f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f SIZE (rust/crates/bindgen-0.70.1.crate) = 226363 SHA256 (rust/crates/bit-set-0.8.0.crate) = 08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3 @@ -249,8 +251,8 @@ SHA256 (rust/crates/coreaudio-rs-0.11.3.crate) = 321077172d79c662f64f5071a031207 SIZE (rust/crates/coreaudio-rs-0.11.3.crate) = 42844 SHA256 (rust/crates/coreaudio-sys-0.2.16.crate) = 2ce857aa0b77d77287acc1ac3e37a05a8c95a2af3647d23b15f263bdaeb7562b SIZE (rust/crates/coreaudio-sys-0.2.16.crate) = 5480 -SHA256 (rust/crates/cosmic-text-0.13.2.crate) = e418dd4f5128c3e93eab12246391c54a20c496811131f85754dc8152ee207892 -SIZE (rust/crates/cosmic-text-0.13.2.crate) = 1896921 +SHA256 (rust/crates/cosmic-text-0.14.2.crate) = da46a9d5a8905cc538a4a5bceb6a4510de7a51049c5588c0114efce102bcbbe8 +SIZE (rust/crates/cosmic-text-0.14.2.crate) = 1910697 SHA256 (rust/crates/cpal-0.15.3.crate) = 873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779 SIZE (rust/crates/cpal-0.15.3.crate) = 100083 SHA256 (rust/crates/cpufeatures-0.2.16.crate) = 16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3 @@ -843,14 +845,14 @@ SHA256 (rust/crates/oneshot-fused-workaround-0.2.1.crate) = 8e2f833c92b3bb159dde SIZE (rust/crates/oneshot-fused-workaround-0.2.1.crate) = 2520 SHA256 (rust/crates/open-5.3.2.crate) = e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95 SIZE (rust/crates/open-5.3.2.crate) = 26342 -SHA256 (rust/crates/openssl-0.10.68.crate) = 6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5 -SIZE (rust/crates/openssl-0.10.68.crate) = 276578 +SHA256 (rust/crates/openssl-0.10.72.crate) = fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da +SIZE (rust/crates/openssl-0.10.72.crate) = 283852 SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601 SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227 -SHA256 (rust/crates/openssl-sys-0.9.104.crate) = 45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741 -SIZE (rust/crates/openssl-sys-0.9.104.crate) = 72287 +SHA256 (rust/crates/openssl-sys-0.9.108.crate) = e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847 +SIZE (rust/crates/openssl-sys-0.9.108.crate) = 78190 SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 SHA256 (rust/crates/orbclient-0.3.48.crate) = ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43 @@ -1705,11 +1707,11 @@ SHA256 (rust/crates/zvariant_utils-3.1.0.crate) = ddd46446ea2a1f353bfda53e35f176 SIZE (rust/crates/zvariant_utils-3.1.0.crate) = 13991 SHA256 (iced-rs-winit-11414b6aa45699f038114e61b4ddf5102b2d3b4b_GH0.tar.gz) = bee38ace5cbe9299770dd50d9b0b6a30a96924955cef3bada321489a0b446169 SIZE (iced-rs-winit-11414b6aa45699f038114e61b4ddf5102b2d3b4b_GH0.tar.gz) = 607146 +SHA256 (iced-rs-cryoglyph-a456d1c17bbcf33afcca41d9e5e299f9f1193819_GH0.tar.gz) = 857e8382fd6eb9c511ff8b7aa18aec81f07b326fe1ed4d5a146d3162279385ba +SIZE (iced-rs-cryoglyph-a456d1c17bbcf33afcca41d9e5e299f9f1193819_GH0.tar.gz) = 221785 SHA256 (rust-dark-light-dark-light-8e1f745f91e1e805fa772a83e4744afe95d70aa1_GH0.tar.gz) = 8cae94eb1834d67a002b02c759deb607f054d29a14bab8a1747d2515ba807471 SIZE (rust-dark-light-dark-light-8e1f745f91e1e805fa772a83e4744afe95d70aa1_GH0.tar.gz) = 5285 -SHA256 (iced-rs-iced-1b22d7d5fcdf519a3cac7a3cfd14398a3108c3b8_GH0.tar.gz) = 12239d746615867e7dc41f76d19c5a790dde8a7617940c608027e04d361348e3 -SIZE (iced-rs-iced-1b22d7d5fcdf519a3cac7a3cfd14398a3108c3b8_GH0.tar.gz) = 5215204 -SHA256 (iced-rs-cryoglyph-be2defe4a13fd7c97c6f4c81e8e085463eb578dc_GH0.tar.gz) = 88d8425516e72e070a47967a2ca03ab1a4e44b8cd54b2e4945dff91a321dd389 -SIZE (iced-rs-cryoglyph-be2defe4a13fd7c97c6f4c81e8e085463eb578dc_GH0.tar.gz) = 221775 -SHA256 (squidowl-halloy-2025.4_GH0.tar.gz) = f19f01f0e31739bfbafaaf63e7d01e9d1de2813127715f6243a1bcb4e041a8c1 -SIZE (squidowl-halloy-2025.4_GH0.tar.gz) = 15681933 +SHA256 (iced-rs-iced-aa633f6832c93d81fc829bcd351b369f0aada282_GH0.tar.gz) = e9a6ed7e95da32980d4f64578a1de9bc50646ecb3c5112c46752b5fb387a4c53 +SIZE (iced-rs-iced-aa633f6832c93d81fc829bcd351b369f0aada282_GH0.tar.gz) = 5224300 +SHA256 (squidowl-halloy-2025.5_GH0.tar.gz) = ee348b830db85fcea09616a45271551fa7a382513184170a84ef9dc8b720a88d +SIZE (squidowl-halloy-2025.5_GH0.tar.gz) = 15703732 diff --git a/irc/halloy/files/patch-data_src_shortcut.rs b/irc/halloy/files/patch-data_src_shortcut.rs new file mode 100644 index 000000000000..df985cd6d0f2 --- /dev/null +++ b/irc/halloy/files/patch-data_src_shortcut.rs @@ -0,0 +1,13 @@ +--- data/src/shortcut.rs.orig 2025-05-06 21:46:52 UTC ++++ data/src/shortcut.rs +@@ -146,9 +146,7 @@ impl KeyBind { + default!(toggle_topic, "t", COMMAND | ALT); + #[cfg(target_os = "macos")] + default!(toggle_fullscreen, "f", COMMAND | CTRL); +- #[cfg(target_os = "linux")] +- default!(toggle_fullscreen, F11); +- #[cfg(target_os = "windows")] ++ #[cfg(not(target_os = "macos"))] + default!(toggle_fullscreen, F11); + default!(command_bar, "k", COMMAND); + default!(reload_configuration, "r", COMMAND); diff --git a/irc/weechat/Makefile b/irc/weechat/Makefile index 8581028762de..a2297bf9fe2e 100644 --- a/irc/weechat/Makefile +++ b/irc/weechat/Makefile @@ -1,5 +1,5 @@ PORTNAME= weechat -PORTVERSION= 4.6.2 +PORTVERSION= 4.6.3 CATEGORIES= irc MASTER_SITES= https://weechat.org/files/src/ diff --git a/irc/weechat/distinfo b/irc/weechat/distinfo index 0b094432a522..1b7085e436cf 100644 --- a/irc/weechat/distinfo +++ b/irc/weechat/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745150286 -SHA256 (weechat-4.6.2.tar.xz) = 0fa0242a18116fe27f746dbb822121805da6bb5dbd40750d42c63306e4896628 -SIZE (weechat-4.6.2.tar.xz) = 2763244 +TIMESTAMP = 1746958439 +SHA256 (weechat-4.6.3.tar.xz) = 5c0b5efa969b873c4be582019b18523ee403e7430b8223825bcdb44a89f5815d +SIZE (weechat-4.6.3.tar.xz) = 2763576 diff --git a/java/linux-oracle-jdk18/Makefile b/java/linux-oracle-jdk18/Makefile index a16add1f3044..6696d0c7b62f 100644 --- a/java/linux-oracle-jdk18/Makefile +++ b/java/linux-oracle-jdk18/Makefile @@ -47,7 +47,7 @@ DOWNLOAD_URL= http://www.oracle.com/technetwork/java/javase/downloads/index.htm APP_HOME= ${PREFIX}/${PKGNAMEPREFIX}${PORTNAME}${JDK_INTERNAL_VERSION} BIN_DIRS= bin jre/bin -LIB_DIRS= ${BIN_DIRS:S|bin$|lib|} +_LIB_DIRS= ${BIN_DIRS:S|bin$|lib|} SHEBANG_FILES= ${BIN_DIRS:S|$|/jcontrol|} bash_CMD= ${SH} @@ -103,6 +103,6 @@ do-install: @${MKDIR} ${STAGEDIR}${APP_HOME} @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${APP_HOME} @cd ${STAGEDIR}${APP_HOME} && \ - ${CHMOD} ${BINMODE} ${BIN_DIRS:S|$|/*|} ${LIB_DIRS:S|$|/jexec|} + ${CHMOD} ${BINMODE} ${BIN_DIRS:S|$|/*|} ${_LIB_DIRS:S|$|/jexec|} .include <bsd.port.post.mk> diff --git a/lang/clisp/Makefile b/lang/clisp/Makefile index 4111cf206abc..f0b722473566 100644 --- a/lang/clisp/Makefile +++ b/lang/clisp/Makefile @@ -1,6 +1,6 @@ PORTNAME= clisp PORTVERSION= 2.49.95+20241228 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= lang lisp MAINTAINER= kiri@TrueFC.org @@ -16,9 +16,8 @@ LIB_DEPENDS= libffcall.so:devel/libffcall \ libunistring.so:devel/libunistring RUN_DEPENDS= cl-freebsd-asdf-init>=0:devel/cl-freebsd-asdf-init -USES= compiler gettext ghostscript iconv localbase:ldflags ncurses \ +USES= gettext ghostscript iconv localbase:ldflags ncurses \ pkgconfig -USE_GCC= yes USE_GITLAB= yes GL_ACCOUNT= gnu-clisp GL_PROJECT= clisp @@ -37,11 +36,6 @@ CONFIGURE_TARGET= ${ARCH:S/amd64/x86_64/}-portbld-freebsd${OSREL} MAKE_ENV= ${CONFIGURE_ENV} MAKE_JOBS_UNSAFE= yes -# Complaints if the environment changes between build stages. -CFLAGS+= -fpermissive -LDFLAGS+= ${LDFLAGS_${CHOSEN_COMPILER_TYPE}} -LDFLAGS_gcc= -lthr - SUB_FILES= pkg-message BUILD_WRKSRC= ${WRKSRC}/src diff --git a/lang/erlang-java/Makefile b/lang/erlang-java/Makefile index 2ad087117d8d..021d6bada23b 100644 --- a/lang/erlang-java/Makefile +++ b/lang/erlang-java/Makefile @@ -1,6 +1,6 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- -DISTVERSION= 26.2.5.6 +DISTVERSION= 26.2.5.12 PORTEPOCH= 1 CATEGORIES= lang parallel java PKGNAMESUFFIX= -java @@ -19,7 +19,12 @@ USE_GITHUB= yes GH_PROJECT= otp USE_PERL5= build -GNU_CONFIGURE= yes +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --enable-threads \ + --with-javac \ + --without-odbc \ + --without-wx +CONFIGURE_ENV+= ac_cv_prog_JAVAC="${JAVAC}" MAKE_JOBS_UNSAFE= yes PLIST_SUB= APP_VERSION=${APP_VERSION} @@ -27,12 +32,6 @@ PLIST_SUB= APP_VERSION=${APP_VERSION} APP_VERSION= 1.14 APP_DIR= ${PREFIX}/lib/erlang/lib/jinterface-${APP_VERSION} -CONFIGURE_ARGS+= --enable-threads \ - --with-javac \ - --without-odbc \ - --without-wx -CONFIGURE_ENV+= ac_cv_prog_JAVAC="${JAVAC}" - pre-configure: @if [ ! $$(${CAT} ${WRKSRC}/lib/jinterface/vsn.mk | ${GREP} -E "JINTERFACE_VSN *=" | ${CUT} -w -f3) = ${APP_VERSION} ]; then \ ${ECHO_MSG} "===> APP_VERSION (${APP_VERSION}) in Makefile does not match value in lib/jinterface/vsn.mk"; exit 1; \ diff --git a/lang/erlang-java/distinfo b/lang/erlang-java/distinfo index cae88659e67a..879367d3eb43 100644 --- a/lang/erlang-java/distinfo +++ b/lang/erlang-java/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1734692938 -SHA256 (erlang/erlang-otp-OTP-26.2.5.6_GH0.tar.gz) = 371e59b98de59822e45fdbe50c18c8d8dd4c872990e7aaaba8a819e167186d03 -SIZE (erlang/erlang-otp-OTP-26.2.5.6_GH0.tar.gz) = 62531972 +TIMESTAMP = 1747434358 +SHA256 (erlang/erlang-otp-OTP-26.2.5.12_GH0.tar.gz) = 93c97a3e14c3700eaaf2182b078fd35f8492da215327bd9c78a1f047946129f7 +SIZE (erlang/erlang-otp-OTP-26.2.5.12_GH0.tar.gz) = 62551765 diff --git a/lang/erlang-runtime25/Makefile b/lang/erlang-runtime25/Makefile index 79bd9da78b92..b2b7fe3d686b 100644 --- a/lang/erlang-runtime25/Makefile +++ b/lang/erlang-runtime25/Makefile @@ -1,7 +1,6 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- -DISTVERSION= 25.3.2.15 -PORTREVISION= 1 +DISTVERSION= 25.3.2.21 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime25 DIST_SUBDIR= erlang @@ -68,9 +67,9 @@ CHUNKS_MAKE_ARGS+= docs DOC_TARGETS=chunks DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" +JAVA_USES= java JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" -JAVA_USES= java KQUEUE_CONFIGURE_ENABLE= kernel-poll ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags diff --git a/lang/erlang-runtime25/distinfo b/lang/erlang-runtime25/distinfo index f6d6db937962..6e3e1f403320 100644 --- a/lang/erlang-runtime25/distinfo +++ b/lang/erlang-runtime25/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1729069053 -SHA256 (erlang/erlang-otp-OTP-25.3.2.15_GH0.tar.gz) = 8c7f8d390be1aa6ab89f712feed5fef927ca151bf66f8bb52e97a8cf34225cfb -SIZE (erlang/erlang-otp-OTP-25.3.2.15_GH0.tar.gz) = 60953027 +TIMESTAMP = 1747434403 +SHA256 (erlang/erlang-otp-OTP-25.3.2.21_GH0.tar.gz) = 6761432927a9be4f5c13c4019acd6fa3d2f4363198f790947328023aece1986f +SIZE (erlang/erlang-otp-OTP-25.3.2.21_GH0.tar.gz) = 60978586 SHA256 (erlang/erlang-corba-5.2.1_GH0.tar.gz) = e96e9dc710c0ab3282ca5045434f5bc5ff493c22ba63fcfd764ce4d6a13a7c8f SIZE (erlang/erlang-corba-5.2.1_GH0.tar.gz) = 1400553 diff --git a/lang/erlang-runtime25/files/patch-Makefile.in b/lang/erlang-runtime25/files/patch-Makefile.in index 4c30ccecd02f..7dcae6e3bf6b 100644 --- a/lang/erlang-runtime25/files/patch-Makefile.in +++ b/lang/erlang-runtime25/files/patch-Makefile.in @@ -1,6 +1,6 @@ ---- Makefile.in.orig 2015-06-23 18:56:21 UTC +--- Makefile.in.orig 2025-05-08 11:08:25 UTC +++ Makefile.in -@@ -60,7 +60,7 @@ bindir = @bindir@ +@@ -60,7 +60,7 @@ libdir = @libdir@ libdir = @libdir@ # Where Erlang/OTP is located @@ -9,7 +9,7 @@ erlang_libdir = $(libdir)$(libdir_suffix) erlang_bindir = $(erlang_libdir)/bin -@@ -1013,7 +1013,7 @@ $(TEST_DIRS): +@@ -1136,7 +1136,7 @@ $(TEST_DIRS): # # Order is important here, don't change it! # diff --git a/lang/erlang-runtime25/files/patch-erts_etc_unix_run__erl.c b/lang/erlang-runtime25/files/patch-erts_etc_unix_run__erl.c index b76c5127d2a8..114fa638557f 100644 --- a/lang/erlang-runtime25/files/patch-erts_etc_unix_run__erl.c +++ b/lang/erlang-runtime25/files/patch-erts_etc_unix_run__erl.c @@ -1,8 +1,8 @@ ---- erts/etc/unix/run_erl.c.orig 2015-03-31 12:32:52 UTC +--- erts/etc/unix/run_erl.c.orig 2025-05-08 11:08:25 UTC +++ erts/etc/unix/run_erl.c -@@ -73,9 +73,6 @@ - #ifdef HAVE_UTMP_H - # include <utmp.h> +@@ -81,9 +81,6 @@ + #ifdef HAVE_LIBUTIL_H + # include <libutil.h> #endif -#ifdef HAVE_UTIL_H -# include <util.h> diff --git a/lang/erlang-runtime25/files/patch-lib_crypto_c__src_Makefile.in b/lang/erlang-runtime25/files/patch-lib_crypto_c__src_Makefile.in index 8397bcac2200..6ffda4699a9b 100644 --- a/lang/erlang-runtime25/files/patch-lib_crypto_c__src_Makefile.in +++ b/lang/erlang-runtime25/files/patch-lib_crypto_c__src_Makefile.in @@ -1,6 +1,6 @@ ---- lib/crypto/c_src/Makefile.in.orig 2021-05-27 09:40:45 UTC +--- lib/crypto/c_src/Makefile.in.orig 2025-05-08 11:08:25 UTC +++ lib/crypto/c_src/Makefile.in -@@ -136,7 +136,7 @@ endif +@@ -147,7 +147,7 @@ ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) endif ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) diff --git a/lang/erlang-runtime25/files/patch-lib_stdlib_src_calendar.erl b/lang/erlang-runtime25/files/patch-lib_stdlib_src_calendar.erl index 34b753d85b27..52854bdbd959 100644 --- a/lang/erlang-runtime25/files/patch-lib_stdlib_src_calendar.erl +++ b/lang/erlang-runtime25/files/patch-lib_stdlib_src_calendar.erl @@ -1,6 +1,6 @@ ---- lib/stdlib/src/calendar.erl.orig 2015-03-31 12:32:52 UTC +--- lib/stdlib/src/calendar.erl.orig 2025-04-16 13:06:44 UTC +++ lib/stdlib/src/calendar.erl -@@ -279,11 +279,19 @@ local_time_to_universal_time(DateTime, I +@@ -297,11 +297,19 @@ local_time_to_universal_time(DateTime, IsDst) -> DateTime1 :: datetime1970(), DateTime :: datetime1970(). local_time_to_universal_time_dst(DateTime) -> diff --git a/lang/erlang-runtime26/Makefile b/lang/erlang-runtime26/Makefile index 0d2b8f7ea672..e429d65a3101 100644 --- a/lang/erlang-runtime26/Makefile +++ b/lang/erlang-runtime26/Makefile @@ -1,7 +1,6 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- -DISTVERSION= 26.2.5.4 -PORTREVISION= 1 +DISTVERSION= 26.2.5.12 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime26 DIST_SUBDIR= erlang @@ -66,9 +65,9 @@ WX_DESC= Enable WX application DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" +JAVA_USES= java JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" -JAVA_USES= java KQUEUE_CONFIGURE_ENABLE= kernel-poll ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags diff --git a/lang/erlang-runtime26/distinfo b/lang/erlang-runtime26/distinfo index 8839346516eb..9344ce6f4e95 100644 --- a/lang/erlang-runtime26/distinfo +++ b/lang/erlang-runtime26/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1728493154 -SHA256 (erlang/erlang-otp-OTP-26.2.5.4_GH0.tar.gz) = daa29766431e91489367e87f2ec34e65ce05a0f2dd48bf666829951e636f6016 -SIZE (erlang/erlang-otp-OTP-26.2.5.4_GH0.tar.gz) = 62516279 +TIMESTAMP = 1747434405 +SHA256 (erlang/erlang-otp-OTP-26.2.5.12_GH0.tar.gz) = 93c97a3e14c3700eaaf2182b078fd35f8492da215327bd9c78a1f047946129f7 +SIZE (erlang/erlang-otp-OTP-26.2.5.12_GH0.tar.gz) = 62551765 SHA256 (erlang/erlang-corba-5.2.1_GH0.tar.gz) = e96e9dc710c0ab3282ca5045434f5bc5ff493c22ba63fcfd764ce4d6a13a7c8f SIZE (erlang/erlang-corba-5.2.1_GH0.tar.gz) = 1400553 diff --git a/lang/erlang-runtime26/files/patch-Makefile.in b/lang/erlang-runtime26/files/patch-Makefile.in index bf067367931e..46e9032eb2b9 100644 --- a/lang/erlang-runtime26/files/patch-Makefile.in +++ b/lang/erlang-runtime26/files/patch-Makefile.in @@ -1,6 +1,6 @@ ---- Makefile.in.orig 2015-06-23 18:56:21 UTC +--- Makefile.in.orig 2025-05-08 11:07:43 UTC +++ Makefile.in -@@ -60,7 +60,7 @@ bindir = @bindir@ +@@ -60,7 +60,7 @@ libdir = @libdir@ libdir = @libdir@ # Where Erlang/OTP is located @@ -9,7 +9,7 @@ erlang_libdir = $(libdir)$(libdir_suffix) erlang_bindir = $(erlang_libdir)/bin -@@ -1013,7 +1013,7 @@ $(TEST_DIRS): +@@ -883,7 +883,7 @@ $(TEST_DIRS): # # Order is important here, don't change it! # diff --git a/lang/erlang-runtime26/files/patch-erts_etc_unix_run__erl.c b/lang/erlang-runtime26/files/patch-erts_etc_unix_run__erl.c index b76c5127d2a8..ea3ad151d030 100644 --- a/lang/erlang-runtime26/files/patch-erts_etc_unix_run__erl.c +++ b/lang/erlang-runtime26/files/patch-erts_etc_unix_run__erl.c @@ -1,8 +1,8 @@ ---- erts/etc/unix/run_erl.c.orig 2015-03-31 12:32:52 UTC +--- erts/etc/unix/run_erl.c.orig 2025-05-08 11:07:43 UTC +++ erts/etc/unix/run_erl.c -@@ -73,9 +73,6 @@ - #ifdef HAVE_UTMP_H - # include <utmp.h> +@@ -81,9 +81,6 @@ + #ifdef HAVE_LIBUTIL_H + # include <libutil.h> #endif -#ifdef HAVE_UTIL_H -# include <util.h> diff --git a/lang/erlang-runtime26/files/patch-lib_crypto_c__src_Makefile.in b/lang/erlang-runtime26/files/patch-lib_crypto_c__src_Makefile.in index 8397bcac2200..786f226d0b8d 100644 --- a/lang/erlang-runtime26/files/patch-lib_crypto_c__src_Makefile.in +++ b/lang/erlang-runtime26/files/patch-lib_crypto_c__src_Makefile.in @@ -1,6 +1,6 @@ ---- lib/crypto/c_src/Makefile.in.orig 2021-05-27 09:40:45 UTC +--- lib/crypto/c_src/Makefile.in.orig 2025-05-08 11:07:43 UTC +++ lib/crypto/c_src/Makefile.in -@@ -136,7 +136,7 @@ endif +@@ -147,7 +147,7 @@ ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) endif ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) diff --git a/lang/erlang-runtime26/files/patch-lib_stdlib_src_calendar.erl b/lang/erlang-runtime26/files/patch-lib_stdlib_src_calendar.erl index 34b753d85b27..0a0d961d04b4 100644 --- a/lang/erlang-runtime26/files/patch-lib_stdlib_src_calendar.erl +++ b/lang/erlang-runtime26/files/patch-lib_stdlib_src_calendar.erl @@ -1,6 +1,6 @@ ---- lib/stdlib/src/calendar.erl.orig 2015-03-31 12:32:52 UTC +--- lib/stdlib/src/calendar.erl.orig 2025-05-08 11:07:43 UTC +++ lib/stdlib/src/calendar.erl -@@ -279,11 +279,19 @@ local_time_to_universal_time(DateTime, I +@@ -297,11 +297,19 @@ local_time_to_universal_time_dst(DateTime) -> DateTime1 :: datetime1970(), DateTime :: datetime1970(). local_time_to_universal_time_dst(DateTime) -> diff --git a/lang/erlang-runtime27/Makefile b/lang/erlang-runtime27/Makefile index 29b3e9d77f33..c2a996342579 100644 --- a/lang/erlang-runtime27/Makefile +++ b/lang/erlang-runtime27/Makefile @@ -1,7 +1,6 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- -DISTVERSION= 27.1.2 -PORTREVISION= 1 +DISTVERSION= 27.3.4 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime${PORTVERSION:C/\..*//} DIST_SUBDIR= erlang @@ -66,9 +65,9 @@ WX_DESC= Enable WX application DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" +JAVA_USES= java JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" -JAVA_USES= java KQUEUE_CONFIGURE_ENABLE= kernel-poll ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags diff --git a/lang/erlang-runtime27/distinfo b/lang/erlang-runtime27/distinfo index 28dd45385a76..1b2187e11c72 100644 --- a/lang/erlang-runtime27/distinfo +++ b/lang/erlang-runtime27/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1729162594 -SHA256 (erlang/erlang-otp-OTP-27.1.2_GH0.tar.gz) = 365208d47f9590f27c0814ccd7ee7aec0e1b6ba2fe9d875e356edb5d9b054541 -SIZE (erlang/erlang-otp-OTP-27.1.2_GH0.tar.gz) = 62185618 +TIMESTAMP = 1747434437 +SHA256 (erlang/erlang-otp-OTP-27.3.4_GH0.tar.gz) = a05fa5c952fdf1718121d4ca3fd0c96fcb8b54ed61e37862417478d7b6c89232 +SIZE (erlang/erlang-otp-OTP-27.3.4_GH0.tar.gz) = 62259420 SHA256 (erlang/erlang-corba-5.2.1_GH0.tar.gz) = e96e9dc710c0ab3282ca5045434f5bc5ff493c22ba63fcfd764ce4d6a13a7c8f SIZE (erlang/erlang-corba-5.2.1_GH0.tar.gz) = 1400553 diff --git a/lang/erlang-runtime27/files/patch-Makefile.in b/lang/erlang-runtime27/files/patch-Makefile.in index b09184b13882..89ef010aa720 100644 --- a/lang/erlang-runtime27/files/patch-Makefile.in +++ b/lang/erlang-runtime27/files/patch-Makefile.in @@ -1,6 +1,6 @@ ---- Makefile.in.orig 2015-06-23 18:56:21 UTC +--- Makefile.in.orig 2025-05-08 11:03:33 UTC +++ Makefile.in -@@ -60,7 +60,7 @@ bindir = @bindir@ +@@ -60,7 +60,7 @@ libdir = @libdir@ libdir = @libdir@ # Where Erlang/OTP is located @@ -9,7 +9,7 @@ erlang_libdir = $(libdir)$(libdir_suffix) erlang_bindir = $(erlang_libdir)/bin -@@ -1013,7 +1013,7 @@ $(TEST_DIRS): +@@ -851,7 +851,7 @@ $(TEST_DIRS): # # Order is important here, don't change it! # diff --git a/lang/erlang-runtime27/files/patch-erts_etc_unix_run__erl.c b/lang/erlang-runtime27/files/patch-erts_etc_unix_run__erl.c index b76c5127d2a8..5b245ccbf7a3 100644 --- a/lang/erlang-runtime27/files/patch-erts_etc_unix_run__erl.c +++ b/lang/erlang-runtime27/files/patch-erts_etc_unix_run__erl.c @@ -1,8 +1,8 @@ ---- erts/etc/unix/run_erl.c.orig 2015-03-31 12:32:52 UTC +--- erts/etc/unix/run_erl.c.orig 2025-05-08 11:03:33 UTC +++ erts/etc/unix/run_erl.c -@@ -73,9 +73,6 @@ - #ifdef HAVE_UTMP_H - # include <utmp.h> +@@ -81,9 +81,6 @@ + #ifdef HAVE_LIBUTIL_H + # include <libutil.h> #endif -#ifdef HAVE_UTIL_H -# include <util.h> diff --git a/lang/erlang-runtime27/files/patch-lib_crypto_c__src_Makefile.in b/lang/erlang-runtime27/files/patch-lib_crypto_c__src_Makefile.in index 8397bcac2200..68119530b896 100644 --- a/lang/erlang-runtime27/files/patch-lib_crypto_c__src_Makefile.in +++ b/lang/erlang-runtime27/files/patch-lib_crypto_c__src_Makefile.in @@ -1,6 +1,6 @@ ---- lib/crypto/c_src/Makefile.in.orig 2021-05-27 09:40:45 UTC +--- lib/crypto/c_src/Makefile.in.orig 2025-05-08 11:03:33 UTC +++ lib/crypto/c_src/Makefile.in -@@ -136,7 +136,7 @@ endif +@@ -147,7 +147,7 @@ ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) endif ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) diff --git a/lang/erlang-runtime27/files/patch-lib_stdlib_src_calendar.erl b/lang/erlang-runtime27/files/patch-lib_stdlib_src_calendar.erl index 34b753d85b27..2bdfe48e1a04 100644 --- a/lang/erlang-runtime27/files/patch-lib_stdlib_src_calendar.erl +++ b/lang/erlang-runtime27/files/patch-lib_stdlib_src_calendar.erl @@ -1,6 +1,6 @@ ---- lib/stdlib/src/calendar.erl.orig 2015-03-31 12:32:52 UTC +--- lib/stdlib/src/calendar.erl.orig 2025-05-08 11:03:33 UTC +++ lib/stdlib/src/calendar.erl -@@ -279,11 +279,19 @@ local_time_to_universal_time(DateTime, I +@@ -444,11 +444,19 @@ local_time_to_universal_time_dst(DateTime) -> DateTime1 :: datetime1970(), DateTime :: datetime1970(). local_time_to_universal_time_dst(DateTime) -> diff --git a/lang/erlang-wx/Makefile b/lang/erlang-wx/Makefile index 87f190858721..3433aaf1ba97 100644 --- a/lang/erlang-wx/Makefile +++ b/lang/erlang-wx/Makefile @@ -1,6 +1,6 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- -DISTVERSION= 26.2.5.6 +DISTVERSION= 26.2.5.12 PORTEPOCH= 1 CATEGORIES= lang parallel PKGNAMESUFFIX= -wx diff --git a/lang/erlang-wx/distinfo b/lang/erlang-wx/distinfo index bed19027d5a0..20a78d316756 100644 --- a/lang/erlang-wx/distinfo +++ b/lang/erlang-wx/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1735923237 -SHA256 (erlang/erlang-otp-OTP-26.2.5.6_GH0.tar.gz) = 371e59b98de59822e45fdbe50c18c8d8dd4c872990e7aaaba8a819e167186d03 -SIZE (erlang/erlang-otp-OTP-26.2.5.6_GH0.tar.gz) = 62531972 +TIMESTAMP = 1747434361 +SHA256 (erlang/erlang-otp-OTP-26.2.5.12_GH0.tar.gz) = 93c97a3e14c3700eaaf2182b078fd35f8492da215327bd9c78a1f047946129f7 +SIZE (erlang/erlang-otp-OTP-26.2.5.12_GH0.tar.gz) = 62551765 diff --git a/lang/erlang/Makefile b/lang/erlang/Makefile index 5c4d433991b8..36e234bc0808 100644 --- a/lang/erlang/Makefile +++ b/lang/erlang/Makefile @@ -1,6 +1,6 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- -DISTVERSION= 26.2.5.6 +DISTVERSION= 26.2.5.12 PORTEPOCH= 4 CATEGORIES= lang parallel java DIST_SUBDIR= erlang @@ -16,7 +16,6 @@ CPE_VENDOR= erlang CPE_PRODUCT= erlang/otp USE_GITHUB= nodefault -MAKE_ENV+= ERL_LIBS=${WRKSRC}/lib GH_ACCOUNT= erlang:otp,corba GH_PROJECT= otp:otp corba:corba GH_TAGNAME= 5.2.1:corba @@ -29,6 +28,7 @@ CONFIGURE_ARGS= --enable-dirty-schedulers \ --enable-smp-support \ --enable-threads MAKE_ARGS= all +MAKE_ENV+= ERL_LIBS=${WRKSRC}/lib _ERLANG_LIB= ${PORTNAME} diff --git a/lang/erlang/distinfo b/lang/erlang/distinfo index 6f85f9238081..ee9aa2179c8b 100644 --- a/lang/erlang/distinfo +++ b/lang/erlang/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1734692992 -SHA256 (erlang/erlang-otp-OTP-26.2.5.6_GH0.tar.gz) = 371e59b98de59822e45fdbe50c18c8d8dd4c872990e7aaaba8a819e167186d03 -SIZE (erlang/erlang-otp-OTP-26.2.5.6_GH0.tar.gz) = 62531972 +TIMESTAMP = 1747434292 +SHA256 (erlang/erlang-otp-OTP-26.2.5.12_GH0.tar.gz) = 93c97a3e14c3700eaaf2182b078fd35f8492da215327bd9c78a1f047946129f7 +SIZE (erlang/erlang-otp-OTP-26.2.5.12_GH0.tar.gz) = 62551765 SHA256 (erlang/erlang-corba-5.2.1_GH0.tar.gz) = e96e9dc710c0ab3282ca5045434f5bc5ff493c22ba63fcfd764ce4d6a13a7c8f SIZE (erlang/erlang-corba-5.2.1_GH0.tar.gz) = 1400553 diff --git a/lang/erlang/files/patch-lib_crypto_c__src_Makefile.in b/lang/erlang/files/patch-lib_crypto_c__src_Makefile.in index 8397bcac2200..786f226d0b8d 100644 --- a/lang/erlang/files/patch-lib_crypto_c__src_Makefile.in +++ b/lang/erlang/files/patch-lib_crypto_c__src_Makefile.in @@ -1,6 +1,6 @@ ---- lib/crypto/c_src/Makefile.in.orig 2021-05-27 09:40:45 UTC +--- lib/crypto/c_src/Makefile.in.orig 2025-05-08 11:07:43 UTC +++ lib/crypto/c_src/Makefile.in -@@ -136,7 +136,7 @@ endif +@@ -147,7 +147,7 @@ ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) endif ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) diff --git a/lang/gcc12-devel/Makefile b/lang/gcc12-devel/Makefile index c7df2f37cb79..3d946a255f3b 100644 --- a/lang/gcc12-devel/Makefile +++ b/lang/gcc12-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= gcc -PORTVERSION= 12.4.1.s20250417 +PORTVERSION= 12.4.1.s20250507 CATEGORIES= lang MASTER_SITES= GCC/snapshots/${DIST_VERSION} PKGNAMESUFFIX= ${SUFFIX}-devel diff --git a/lang/gcc12-devel/distinfo b/lang/gcc12-devel/distinfo index b3ea6d046794..2a9cc8f196c2 100644 --- a/lang/gcc12-devel/distinfo +++ b/lang/gcc12-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744964672 -SHA256 (gcc-12-20250417.tar.xz) = e1e3160b8c3c51f628532ec3a80c1b571f9d5103739ccb22a5c3ce8a777e2c3f -SIZE (gcc-12-20250417.tar.xz) = 79924416 +TIMESTAMP = 1746778562 +SHA256 (gcc-12-20250507.tar.xz) = 20682265f35ec31be4b032ee177056dd62162cf49fe9563f0c3551f5a5ba8235 +SIZE (gcc-12-20250507.tar.xz) = 79936088 diff --git a/lang/gcc13-devel/Makefile b/lang/gcc13-devel/Makefile index 12715c5e60bc..424716dff121 100644 --- a/lang/gcc13-devel/Makefile +++ b/lang/gcc13-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= gcc -PORTVERSION= 13.3.1.s20250424 +PORTVERSION= 13.3.1.s20250508 CATEGORIES= lang MASTER_SITES= GCC/snapshots/${DIST_VERSION} PKGNAMESUFFIX= ${SUFFIX}-devel diff --git a/lang/gcc13-devel/distinfo b/lang/gcc13-devel/distinfo index b4d4762dd5dd..d2da8f60ef32 100644 --- a/lang/gcc13-devel/distinfo +++ b/lang/gcc13-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745914194 -SHA256 (gcc-13-20250424.tar.xz) = ef2ed6f6aad4033719bf30b17b15b907a5bb6cc393264bfdb36ee502c1cdb21f -SIZE (gcc-13-20250424.tar.xz) = 84551016 +TIMESTAMP = 1746778764 +SHA256 (gcc-13-20250508.tar.xz) = ce961b0bb5b2279479ebf3600112438228275411be1bfa922c636c4538e9c067 +SIZE (gcc-13-20250508.tar.xz) = 84567972 diff --git a/lang/gcc14-devel/Makefile b/lang/gcc14-devel/Makefile index 380cba0092b3..7c11b48a7ea6 100644 --- a/lang/gcc14-devel/Makefile +++ b/lang/gcc14-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= gcc -PORTVERSION= 14.2.1.s20250425 +PORTVERSION= 14.2.1.s20250509 PORTEPOCH= 1 CATEGORIES= lang MASTER_SITES= GCC/snapshots/${DIST_VERSION} diff --git a/lang/gcc14-devel/distinfo b/lang/gcc14-devel/distinfo index 7eb9e3c68123..b2660258b661 100644 --- a/lang/gcc14-devel/distinfo +++ b/lang/gcc14-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745915178 -SHA256 (gcc-14-20250425.tar.xz) = 1994adadb9fa0ddcdadb0a1d0ac44a7530542b352272b8467e8b9f12aacbe97e -SIZE (gcc-14-20250425.tar.xz) = 88293272 +TIMESTAMP = 1746893372 +SHA256 (gcc-14-20250509.tar.xz) = d7ace0e4304334f80bb6341710397ed182df214c008eabebd5fb13d941f508c4 +SIZE (gcc-14-20250509.tar.xz) = 88289160 diff --git a/lang/gcc15-devel/Makefile b/lang/gcc15-devel/Makefile index 4eed868d47df..20158b2696b5 100644 --- a/lang/gcc15-devel/Makefile +++ b/lang/gcc15-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= gcc -PORTVERSION= 15.1.1.s20250426 +PORTVERSION= 15.1.1.s20250510 CATEGORIES= lang MASTER_SITES= GCC/snapshots/${DIST_VERSION} PKGNAMESUFFIX= ${SUFFIX}-devel diff --git a/lang/gcc15-devel/distinfo b/lang/gcc15-devel/distinfo index c25e126fa010..2f262e809632 100644 --- a/lang/gcc15-devel/distinfo +++ b/lang/gcc15-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745914552 -SHA256 (gcc-15-20250426.tar.xz) = 5da29d2cff64251a61fbcc62bf6245710f05d2ccf8f49c8138142da700b699e7 -SIZE (gcc-15-20250426.tar.xz) = 92081764 +TIMESTAMP = 1747124841 +SHA256 (gcc-15-20250510.tar.xz) = d019003a5caadf35df04d22f6d398d602ff16318db928443aab0a6b7f756843f +SIZE (gcc-15-20250510.tar.xz) = 92092512 diff --git a/lang/gcc16-devel/Makefile b/lang/gcc16-devel/Makefile index a16af13a1f09..a57e6b356b3e 100644 --- a/lang/gcc16-devel/Makefile +++ b/lang/gcc16-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= gcc -PORTVERSION= 16.0.0.s20250427 +PORTVERSION= 16.0.0.s20250511 CATEGORIES= lang MASTER_SITES= GCC/snapshots/${DIST_VERSION} PKGNAMESUFFIX= ${SUFFIX}-devel diff --git a/lang/gcc16-devel/distinfo b/lang/gcc16-devel/distinfo index 6fcbe70fb548..891629dc8103 100644 --- a/lang/gcc16-devel/distinfo +++ b/lang/gcc16-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745932552 -SHA256 (gcc-16-20250427.tar.xz) = 545b46c123dcc303c2bcd319ceda174733c30cd4574f8ed732f582c3aba7af5e -SIZE (gcc-16-20250427.tar.xz) = 92158556 +TIMESTAMP = 1747125019 +SHA256 (gcc-16-20250511.tar.xz) = 4086bd9369a82d087d1bd60e2fdd926ee0401115a52542d962c085bf99f41a24 +SIZE (gcc-16-20250511.tar.xz) = 92224236 diff --git a/lang/perl5-devel/Makefile b/lang/perl5-devel/Makefile index aa7ac59f3022..54ee0d670a79 100644 --- a/lang/perl5-devel/Makefile +++ b/lang/perl5-devel/Makefile @@ -1,6 +1,6 @@ PORTNAME= perl DISTVERSION= ${PERL_VERSION} -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= lang devel perl5 MASTER_SITES= CPAN/../../src/5.0 DIST_SUBDIR= perl @@ -272,6 +272,10 @@ post-patch: /^if.*nopods.*versiononly || /s/.*/if (1) {/' \ ${WRKSRC}/installperl .endif + cd ${PATCHDIR}; for patch in patch-*; do \ + ${AWK} -v patch="$$patch" 'seen == 1 && /,NULL/ {print ",\"FreeBSD:" patch "\""} {print} /local_patches\[\]/ { seen=1 }' ${WRKSRC}/patchlevel.h > ${WRKDIR}/patchlevel.h; \ + mv -f ${WRKDIR}/patchlevel.h ${WRKSRC}/patchlevel.h ; \ + done post-install: @${REINPLACE_CMD} -e '/^lddlflags/s|-L${WRKSRC} ||' \ diff --git a/lang/perl5.36/Makefile b/lang/perl5.36/Makefile index 8b892008deac..e78640530593 100644 --- a/lang/perl5.36/Makefile +++ b/lang/perl5.36/Makefile @@ -1,6 +1,6 @@ PORTNAME= perl DISTVERSION= ${PERL_VERSION} -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= lang devel perl5 MASTER_SITES= CPAN/../../src/5.0 DIST_SUBDIR= perl @@ -14,9 +14,8 @@ LICENSE_COMB= dual LICENSE_FILE_ART10= ${WRKSRC}/Artistic LICENSE_FILE_GPLv1+ = ${WRKSRC}/Copying -# Uncomment when the default Perl is switched to 5.38+ -#DEPRECATED= Support end three years after .0 release, please upgrade to a more recent version of Perl -#EXPIRATION_DATE=2025-05-28 +DEPRECATED= Support end three years after .0 release, please upgrade to a more recent version of Perl +EXPIRATION_DATE=2025-05-28 USES= cpe tar:xz @@ -246,6 +245,10 @@ post-patch: /^if.*nopods.*versiononly || /s/.*/if (1) {/' \ ${WRKSRC}/installperl .endif + cd ${PATCHDIR}; for patch in patch-*; do \ + ${AWK} -v patch="$$patch" 'seen == 1 && /,NULL/ {print ",\"FreeBSD:" patch "\""} {print} /local_patches\[\]/ { seen=1 }' ${WRKSRC}/patchlevel.h > ${WRKDIR}/patchlevel.h; \ + mv -f ${WRKDIR}/patchlevel.h ${WRKSRC}/patchlevel.h ; \ + done post-install: @${REINPLACE_CMD} -e '/^lddlflags/s|-L${WRKSRC} ||' \ diff --git a/lang/perl5.38/Makefile b/lang/perl5.38/Makefile index 7e7a1b7515cf..cd8c47263346 100644 --- a/lang/perl5.38/Makefile +++ b/lang/perl5.38/Makefile @@ -1,5 +1,6 @@ PORTNAME= perl DISTVERSION= ${PERL_VERSION} +PORTREVISION= 1 CATEGORIES= lang devel perl5 MASTER_SITES= https://cpan.metacpan.org/authors/id/S/SH/SHAY/ CPAN/../../src/5.0 DIST_SUBDIR= perl @@ -13,9 +14,8 @@ LICENSE_COMB= dual LICENSE_FILE_ART10= ${WRKSRC}/Artistic LICENSE_FILE_GPLv1+ = ${WRKSRC}/Copying -# Uncomment when the default Perl is switched to 5.40+ -#DEPRECATED= Support end three years after .0 release, please upgrade to a more recent version of Perl -#EXPIRATION_DATE= 2026-07-03 +DEPRECATED= Support end three years after .0 release, please upgrade to a more recent version of Perl +EXPIRATION_DATE= 2026-07-03 USES= cpe tar:xz @@ -244,6 +244,10 @@ post-patch: /^if.*nopods.*versiononly || /s/.*/if (1) {/' \ ${WRKSRC}/installperl .endif + cd ${PATCHDIR}; for patch in patch-*; do \ + ${AWK} -v patch="$$patch" 'seen == 1 && /,NULL/ {print ",\"FreeBSD:" patch "\""} {print} /local_patches\[\]/ { seen=1 }' ${WRKSRC}/patchlevel.h > ${WRKDIR}/patchlevel.h; \ + mv -f ${WRKDIR}/patchlevel.h ${WRKSRC}/patchlevel.h ; \ + done post-install: @${REINPLACE_CMD} -e '/^lddlflags/s|-L${WRKSRC} ||' \ diff --git a/lang/perl5.40/Makefile b/lang/perl5.40/Makefile index 5010360ae6c1..59644a99c946 100644 --- a/lang/perl5.40/Makefile +++ b/lang/perl5.40/Makefile @@ -1,5 +1,6 @@ PORTNAME= perl DISTVERSION= ${PERL_VERSION} +PORTREVISION= 2 CATEGORIES= lang devel perl5 MASTER_SITES= https://cpan.metacpan.org/authors/id/S/SH/SHAY/ CPAN/../../src/5.0 DIST_SUBDIR= perl @@ -242,6 +243,10 @@ post-patch: /^if.*nopods.*versiononly || /s/.*/if (1) {/' \ ${WRKSRC}/installperl .endif + cd ${PATCHDIR}; for patch in patch-*; do \ + ${AWK} -v patch="$$patch" 'seen == 1 && /,NULL/ {print ",\"FreeBSD:" patch "\""} {print} /local_patches\[\]/ { seen=1 }' ${WRKSRC}/patchlevel.h > ${WRKDIR}/patchlevel.h; \ + mv -f ${WRKDIR}/patchlevel.h ${WRKSRC}/patchlevel.h ; \ + done post-install: @${REINPLACE_CMD} -e '/^lddlflags/s|-L${WRKSRC} ||' \ diff --git a/lang/perl5.40/files/patch-cpan_JSON-PP_bin_json__pp b/lang/perl5.40/files/patch-cpan_JSON-PP_bin_json__pp new file mode 100644 index 000000000000..304bcab403bf --- /dev/null +++ b/lang/perl5.40/files/patch-cpan_JSON-PP_bin_json__pp @@ -0,0 +1,11 @@ +--- cpan/JSON-PP/bin/json_pp.orig 2025-05-15 13:39:16 UTC ++++ cpan/JSON-PP/bin/json_pp +@@ -2,7 +2,7 @@ use strict; + + BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; +-use Getopt::Long; ++use Getopt::Long qw( :config no_ignore_case ); + use Encode (); + + use JSON::PP (); diff --git a/lang/quickjs-ng/Makefile b/lang/quickjs-ng/Makefile index 401c3af51810..62959d4f9aa5 100644 --- a/lang/quickjs-ng/Makefile +++ b/lang/quickjs-ng/Makefile @@ -1,5 +1,5 @@ PORTNAME= quickjs -DISTVERSION= 0.10.0 +DISTVERSION= 0.10.1 DISTVERSIONPREFIX= v CATEGORIES= lang devel PKGNAMESUFFIX= -ng diff --git a/lang/quickjs-ng/distinfo b/lang/quickjs-ng/distinfo index c1ce7d5bc652..ebc7e2cef2f3 100644 --- a/lang/quickjs-ng/distinfo +++ b/lang/quickjs-ng/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746467397 -SHA256 (quickjs-ng-quickjs-v0.10.0_GH0.tar.gz) = c54007e6ce9893b0074d53feac47c64a362900df20493110800c9e1f5c43427b -SIZE (quickjs-ng-quickjs-v0.10.0_GH0.tar.gz) = 783751 +TIMESTAMP = 1747389930 +SHA256 (quickjs-ng-quickjs-v0.10.1_GH0.tar.gz) = 4e917eea3bb6051a0551fdd3aac45199ff705fa08920c15b824a08c5fbb032e4 +SIZE (quickjs-ng-quickjs-v0.10.1_GH0.tar.gz) = 784402 diff --git a/lang/quickjs-ng/files/patch-CMakeLists.txt b/lang/quickjs-ng/files/patch-CMakeLists.txt deleted file mode 100644 index 72d0174b9d0e..000000000000 --- a/lang/quickjs-ng/files/patch-CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ ---- CMakeLists.txt.orig 2025-05-01 21:30:10 UTC -+++ CMakeLists.txt -@@ -39,8 +39,6 @@ if(NOT MSVC AND NOT IOS) - - xcheck_add_c_compiler_flag(-Wall) - if(NOT MSVC AND NOT IOS) -- xcheck_add_c_compiler_flag(-Werror) -- xcheck_add_c_compiler_flag(-Wextra) - endif() - xcheck_add_c_compiler_flag(-Wformat=2) - xcheck_add_c_compiler_flag(-Wno-implicit-fallthrough) -@@ -418,10 +416,12 @@ if(NOT IOS) - - if(NOT IOS) - file(STRINGS quickjs.h quickjs_h REGEX QJS_VERSION) -- string(REGEX MATCHALL "([0-9])" QJS_VERSION "${quickjs_h}") -- list(GET QJS_VERSION 0 QJS_VERSION_MAJOR) -- list(GET QJS_VERSION 1 QJS_VERSION_MINOR) -- list(GET QJS_VERSION 2 QJS_VERSION_PATCH) -+ string(REGEX MATCH "QJS_VERSION_MAJOR ([0-9]*)" _ "${quickjs_h}") -+ set(QJS_VERSION_MAJOR ${CMAKE_MATCH_1}) -+ string(REGEX MATCH "QJS_VERSION_MINOR ([0-9]*)" _ "${quickjs_h}") -+ set(QJS_VERSION_MINOR ${CMAKE_MATCH_1}) -+ string(REGEX MATCH "QJS_VERSION_PATCH ([0-9]*)" _ "${quickjs_h}") -+ set(QJS_VERSION_PATCH ${CMAKE_MATCH_1}) - set_target_properties(qjs PROPERTIES - VERSION ${QJS_VERSION_MAJOR}.${QJS_VERSION_MINOR}.${QJS_VERSION_PATCH} - SOVERSION ${QJS_VERSION_MAJOR} diff --git a/lang/ruby34/distinfo b/lang/ruby34/distinfo index 225374338ff7..55af1251f0c3 100644 --- a/lang/ruby34/distinfo +++ b/lang/ruby34/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744946573 -SHA256 (ruby/ruby-3.4.3.tar.xz) = 174dcd8c516694f833fd3c93ea227fa6c3321464577a3882a6fc7e4fe20237fd -SIZE (ruby/ruby-3.4.3.tar.xz) = 17230984 +TIMESTAMP = 1747263779 +SHA256 (ruby/ruby-3.4.4.tar.xz) = f76d63efe9499dedd8526b74365c0c811af00dc9feb0bed7f5356488476e28f4 +SIZE (ruby/ruby-3.4.4.tar.xz) = 17255388 diff --git a/mail/Makefile b/mail/Makefile index 80443466c193..6c286492fe1f 100644 --- a/mail/Makefile +++ b/mail/Makefile @@ -188,6 +188,7 @@ SUBDIR += libspf2 SUBDIR += libsrs2 SUBDIR += libsrs_alt + SUBDIR += libtlsrpt SUBDIR += libvmime SUBDIR += linux-r7-organizer SUBDIR += linux-r7-organizer-pro diff --git a/mail/getmail6/Makefile b/mail/getmail6/Makefile index 31f13cf593a7..f2b82906777f 100644 --- a/mail/getmail6/Makefile +++ b/mail/getmail6/Makefile @@ -1,7 +1,6 @@ PORTNAME= getmail6 DISTVERSIONPREFIX= v -DISTVERSION= 6.19.07 -PORTREVISION= 1 +DISTVERSION= 6.19.08 CATEGORIES= mail python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/mail/getmail6/distinfo b/mail/getmail6/distinfo index b3ed9f6b64b5..598a163efd13 100644 --- a/mail/getmail6/distinfo +++ b/mail/getmail6/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1737883763 -SHA256 (getmail6-getmail6-v6.19.07_GH0.tar.gz) = afc7c7dd061fccab2968b4b0a30ea025c7123a4722ea0a73fb6e3f9e6d8250cd -SIZE (getmail6-getmail6-v6.19.07_GH0.tar.gz) = 217481 +TIMESTAMP = 1747415247 +SHA256 (getmail6-getmail6-v6.19.08_GH0.tar.gz) = f0e00a679b21d274179418f8f931defa92352d92fa3a8ad651d0de6b5e93ae77 +SIZE (getmail6-getmail6-v6.19.08_GH0.tar.gz) = 220470 diff --git a/mail/libtlsrpt/Makefile b/mail/libtlsrpt/Makefile new file mode 100644 index 000000000000..4db7b262ce90 --- /dev/null +++ b/mail/libtlsrpt/Makefile @@ -0,0 +1,21 @@ +PORTNAME= libtlsrpt +DISTVERSION= 0.5.0 +PORTREVISION= 1 +CATEGORIES= mail +MASTER_SITES= https://github.com/sys4/${PORTNAME}/releases/download/v${DISTVERSION}/ + +MAINTAINER= matthew@FreeBSD.org +COMMENT= Low-level C Library to implement TLSRPT into a MTA +WWW= https://github.com/sys4/libtlsrpt + +LICENSE= LGPL3+ +LICENSE_FILE= ${WRKSRC}/COPYING + +USES= libtool +USE_LDCONFIG= yes + +GNU_CONFIGURE= yes + +INSTALL_TARGET= install-strip + +.include <bsd.port.mk> diff --git a/mail/libtlsrpt/distinfo b/mail/libtlsrpt/distinfo new file mode 100644 index 000000000000..275141d21018 --- /dev/null +++ b/mail/libtlsrpt/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1747474361 +SHA256 (libtlsrpt-0.5.0.tar.gz) = 90a266d6be3dc3390342614e1f54e1eddf13b0ea208b900740ec01f28f30cd9f +SIZE (libtlsrpt-0.5.0.tar.gz) = 350824 diff --git a/mail/libtlsrpt/pkg-descr b/mail/libtlsrpt/pkg-descr new file mode 100644 index 000000000000..e1e3a23c3ca9 --- /dev/null +++ b/mail/libtlsrpt/pkg-descr @@ -0,0 +1,6 @@ +The libtlsrpt project provides a low-level C Library which implements +functions that help generate TLSRPT datagrams. Included into a MTA it +assists the MTA in collecting and sending these datagrams to a TLSRPT +reporting service where they can be collected, summarized and finally +sent to a mail platform that requests TLSRPT reports as defined in in +RFC 8460. diff --git a/mail/libtlsrpt/pkg-plist b/mail/libtlsrpt/pkg-plist new file mode 100644 index 000000000000..8204218f7ff7 --- /dev/null +++ b/mail/libtlsrpt/pkg-plist @@ -0,0 +1,23 @@ +include/tlsrpt.h +include/tlsrpt_version.h +lib/libtlsrpt.a +lib/libtlsrpt.so +lib/libtlsrpt.so.0 +lib/libtlsrpt.so.0.0.0 +share/man/man3/tlsrpt_add_delivery_request_failure.3.gz +share/man/man3/tlsrpt_add_mx_host_pattern.3.gz +share/man/man3/tlsrpt_add_policy_string.3.gz +share/man/man3/tlsrpt_cancel_delivery_request.3.gz +share/man/man3/tlsrpt_close.3.gz +share/man/man3/tlsrpt_errno_from_error_code.3.gz +share/man/man3/tlsrpt_error_code_is_internal.3.gz +share/man/man3/tlsrpt_finish_delivery_request.3.gz +share/man/man3/tlsrpt_finish_policy.3.gz +share/man/man3/tlsrpt_get_socket.3.gz +share/man/man3/tlsrpt_init_delivery_request.3.gz +share/man/man3/tlsrpt_init_policy.3.gz +share/man/man3/tlsrpt_open.3.gz +share/man/man3/tlsrpt_set_blocking.3.gz +share/man/man3/tlsrpt_set_malloc_and_free.3.gz +share/man/man3/tlsrpt_set_nonblocking.3.gz +share/man/man3/tlsrpt_strerror.3.gz diff --git a/mail/nextcloud-mail/Makefile b/mail/nextcloud-mail/Makefile index 99904f3bbb69..8185ba7a7618 100644 --- a/mail/nextcloud-mail/Makefile +++ b/mail/nextcloud-mail/Makefile @@ -1,5 +1,5 @@ PORTNAME= mail -PORTVERSION= 5.0.5 +PORTVERSION= 5.0.7 DISTVERSIONPREFIX= v CATEGORIES= mail diff --git a/mail/nextcloud-mail/distinfo b/mail/nextcloud-mail/distinfo index b955b391a2b9..bd4f6ecd98d7 100644 --- a/mail/nextcloud-mail/distinfo +++ b/mail/nextcloud-mail/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746950445 -SHA256 (nextcloud/mail-v5.0.5.tar.gz) = 9077688403da743b4f2756b775b907be39d0a6c634decd1ea7dd5328a7b65101 -SIZE (nextcloud/mail-v5.0.5.tar.gz) = 26645605 +TIMESTAMP = 1747334002 +SHA256 (nextcloud/mail-v5.0.7.tar.gz) = b838a0ef2496971ed6a98ce307d1f8e69ddaf447d417163712cd1db28eae409b +SIZE (nextcloud/mail-v5.0.7.tar.gz) = 26647531 diff --git a/mail/thunderbird-esr/Makefile b/mail/thunderbird-esr/Makefile index ec5252b434e7..efa73f1b9bae 100644 --- a/mail/thunderbird-esr/Makefile +++ b/mail/thunderbird-esr/Makefile @@ -1,5 +1,5 @@ PORTNAME= thunderbird -DISTVERSION= 128.10.0 +DISTVERSION= 128.10.1 CATEGORIES= mail news net-im wayland MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source diff --git a/mail/thunderbird-esr/distinfo b/mail/thunderbird-esr/distinfo index 7df3506a8d8a..f996561407c7 100644 --- a/mail/thunderbird-esr/distinfo +++ b/mail/thunderbird-esr/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745576318 -SHA256 (thunderbird-128.10.0esr.source.tar.xz) = ef73b0bef19d05211ebb0cf6c7450e95cead2df9dc2c02c0ceb356a30e629675 -SIZE (thunderbird-128.10.0esr.source.tar.xz) = 681806200 +TIMESTAMP = 1747170898 +SHA256 (thunderbird-128.10.1esr.source.tar.xz) = 4439ba90816d7c8ab8ad7f8fdd63b0cbfd4ca0b86d1e6a90d2d6e1ea31e0007e +SIZE (thunderbird-128.10.1esr.source.tar.xz) = 677156592 diff --git a/math/R-cran-Rmpfr/Makefile b/math/R-cran-Rmpfr/Makefile index 62c6eca7fcbb..c309b1ac5faa 100644 --- a/math/R-cran-Rmpfr/Makefile +++ b/math/R-cran-Rmpfr/Makefile @@ -1,5 +1,5 @@ PORTNAME= Rmpfr -DISTVERSION= 1.0-0 +DISTVERSION= 1.1-0 CATEGORIES= math DISTNAME= ${PORTNAME}_${DISTVERSION} diff --git a/math/R-cran-Rmpfr/distinfo b/math/R-cran-Rmpfr/distinfo index 38faae8516f6..9dcf4ed25f35 100644 --- a/math/R-cran-Rmpfr/distinfo +++ b/math/R-cran-Rmpfr/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1732351079 -SHA256 (Rmpfr_1.0-0.tar.gz) = 9f82423a802855903939244a40f5616519a685a505900efdf36837505e077a50 -SIZE (Rmpfr_1.0-0.tar.gz) = 615875 +TIMESTAMP = 1747455080 +SHA256 (Rmpfr_1.1-0.tar.gz) = ae3e148dc7f003960a81fd4f2b8285c8f8b951be3f34fc2779dfca20b1af141f +SIZE (Rmpfr_1.1-0.tar.gz) = 618436 diff --git a/math/intx/Makefile b/math/intx/Makefile index 188dc53c8408..85201668f5f9 100644 --- a/math/intx/Makefile +++ b/math/intx/Makefile @@ -1,6 +1,6 @@ PORTNAME= intx DISTVERSIONPREFIX= v -DISTVERSION= 0.12.1 +DISTVERSION= 0.13.0 CATEGORIES= math MAINTAINER= eduardo@FreeBSD.org diff --git a/math/intx/distinfo b/math/intx/distinfo index b5dbca355fcb..ccf72d3ada61 100644 --- a/math/intx/distinfo +++ b/math/intx/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1728545011 -SHA256 (chfast-intx-v0.12.1_GH0.tar.gz) = 279a9aa1e46e60f72eb0eb4ea92fec786e02b35069942ed161be7dcfb6700dd8 -SIZE (chfast-intx-v0.12.1_GH0.tar.gz) = 57809 +TIMESTAMP = 1747423212 +SHA256 (chfast-intx-v0.13.0_GH0.tar.gz) = 849577814e6feb9d4fc3f66f99698eee51dc4b7e3e035c1a2cb76e0d9c52c2e5 +SIZE (chfast-intx-v0.13.0_GH0.tar.gz) = 57498 diff --git a/math/lcalc/Makefile b/math/lcalc/Makefile index c4dc68f3cd21..c2ade72e45b3 100644 --- a/math/lcalc/Makefile +++ b/math/lcalc/Makefile @@ -1,37 +1,39 @@ PORTNAME= lcalc -PORTVERSION= 2.1.0 +DISTVERSION= 2.1.0 +PORTREVISION= 1 CATEGORIES= math -MASTER_SITES= ftp://ftp.fu-berlin.de/unix/misc/sage/spkg/upstream/lcalc/ +MASTER_SITES= https://mirror.csclub.uwaterloo.ca/sage/spkg/upstream/${PORTNAME}/ \ + https://mirror.lyrahosting.com/sagemath/spkg/upstream/${PORTNAME}/ \ + https://mirror.dogado.de/sage/spkg/upstream/${PORTNAME}/ \ + http://files.sagemath.org/spkg/upstream/${PORTNAME}/ MAINTAINER= thierry@FreeBSD.org COMMENT= L-function c++ class library and the CLI program lcalc WWW= https://gitlab.com/sagemath/lcalc LICENSE= GPLv2+ +LICENSE_FILE= ${WRKSRC}/doc/COPYING BUILD_DEPENDS= gengetopt:devel/gengetopt -LIB_DEPENDS= libgmp.so:math/gmp \ - libmpfr.so:math/mpfr \ - libpari.so:math/pari +LIB_DEPENDS= libpari.so:math/pari -#USE_GITLAB= yes -#GL_ACCOUNT= sagemath - -USES= autoreconf compiler:c++11-lang gmake libtool localbase \ - pkgconfig tar:xz +USES= compiler:c++11-lang gmake libtool localbase pkgconfig tar:xz +USE_LDCONFIG= yes GNU_CONFIGURE= yes -CONFIGURE_ARGS= --with-pari + INSTALL_TARGET= install-strip TEST_TARGET= check -USE_LDCONFIG= yes + +CONFIGURE_ARGS= --with-pari \ + --with-pkgconfigdir=${PREFIX}/libdata/pkgconfig OPTIONS_DEFINE= DOCS EXAMPLES -pre-configure: -.for dir in . data - ${REINPLACE_CMD} -e 's|@docdir@/examples|${EXAMPLESDIR}|' \ - ${WRKSRC}/doc/examples/${dir}/Makefile.am -.endfor +post-configure: + ${REINPLACE_CMD} -e 's|$$(DESTDIR)$$(docdir)|${STAGEDIR}${EXAMPLESDIR}|g' \ + ${PATCH_WRKSRC}/doc/examples/Makefile + ${REINPLACE_CMD} -e 's|$$(DESTDIR)$$(docdir)|${STAGEDIR}${EXAMPLESDIR}/data|g' \ + ${PATCH_WRKSRC}/doc/examples/*/Makefile .include <bsd.port.mk> diff --git a/math/libsharp2/Makefile b/math/libsharp2/Makefile index cd0d2a2a3644..0b72adecf3ce 100644 --- a/math/libsharp2/Makefile +++ b/math/libsharp2/Makefile @@ -9,6 +9,9 @@ WWW= https://gitlab.mpcdf.mpg.de/mtr/libsharp LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING +DEPRECATED= Deprecated upstream in 2021, upstream recommends migrating to ducc0 +EXPIRATION_DATE=2025-06-30 + USES= autoreconf gmake libtool USE_GITLAB= yes diff --git a/math/libxlsxwriter/Makefile b/math/libxlsxwriter/Makefile index 47019c9f27ab..93c6a3aab6d5 100644 --- a/math/libxlsxwriter/Makefile +++ b/math/libxlsxwriter/Makefile @@ -1,6 +1,6 @@ PORTNAME= libxlsxwriter DISTVERSIONPREFIX= v -DISTVERSION= 1.2.1 +DISTVERSION= 1.2.2 CATEGORIES= math devel MAINTAINER= bapt@FreeBSD.org diff --git a/math/libxlsxwriter/distinfo b/math/libxlsxwriter/distinfo index 96e4d3e27a96..28309bf9e79d 100644 --- a/math/libxlsxwriter/distinfo +++ b/math/libxlsxwriter/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1741521284 -SHA256 (jmcnamara-libxlsxwriter-v1.2.1_GH0.tar.gz) = f3a43fb6b4dab2d65bcbce56088f58c94a8ae7fb5746106c069d77ef87794a24 -SIZE (jmcnamara-libxlsxwriter-v1.2.1_GH0.tar.gz) = 21839118 +TIMESTAMP = 1747298703 +SHA256 (jmcnamara-libxlsxwriter-v1.2.2_GH0.tar.gz) = 8ab0aced8a6e82f12f567b48d2cb3ca7b925893126607a619666da467e9ac14f +SIZE (jmcnamara-libxlsxwriter-v1.2.2_GH0.tar.gz) = 21904390 diff --git a/math/libxlsxwriter/pkg-plist b/math/libxlsxwriter/pkg-plist index 401603aabf9d..932a4ecc039b 100644 --- a/math/libxlsxwriter/pkg-plist +++ b/math/libxlsxwriter/pkg-plist @@ -34,5 +34,5 @@ include/xlsxwriter/workbook.h include/xlsxwriter/worksheet.h include/xlsxwriter/xmlwriter.h lib/libxlsxwriter.so -lib/libxlsxwriter.so.8 +lib/libxlsxwriter.so.9 libdata/pkgconfig/xlsxwriter.pc diff --git a/math/sc-im/Makefile b/math/sc-im/Makefile index 2bac6946f089..0f67d23a97e0 100644 --- a/math/sc-im/Makefile +++ b/math/sc-im/Makefile @@ -1,6 +1,7 @@ PORTNAME= sc-im DISTVERSIONPREFIX= v DISTVERSION= 0.8.4 +PORTREVISION= 1 CATEGORIES= math MAINTAINER= bapt@FreeBSD.org @@ -13,7 +14,7 @@ LIB_DEPENDS= libxlsreader.so:math/libxls \ libxlsxwriter.so:math/libxlsxwriter \ libzip.so:archivers/libzip -USES= compiler:c11 gmake gnome lua:51 ncurses pkgconfig +USES= compiler:c11 gmake gnome lua ncurses pkgconfig USE_GITHUB= yes GH_ACCOUNT= andmarti1424 USE_GNOME= libxml2 @@ -21,7 +22,7 @@ USE_GNOME= libxml2 WRKSRC_SUBDIR= src CFLAGS+= -DXLSX_EXPORT -DXLS LIBS+= -lxlsreader -lxlsxwriter -MAKE_ENV+= LDLIBS="${LIBS}" +MAKE_ENV+= LDLIBS="${LIBS}" LUA_PKGNAME=lua-${LUA_VER} MAKE_ARGS+= CC="${CC}" prefix="${PREFIX}" MANDIR="${PREFIX}/share/man/man1" post-install: diff --git a/misc/compat13x/Makefile b/misc/compat13x/Makefile index f826b491abd2..ecc8fb0898c6 100644 --- a/misc/compat13x/Makefile +++ b/misc/compat13x/Makefile @@ -1,6 +1,5 @@ PORTNAME= compat13x -PORTVERSION= 13.5.1305000.20250330 -PORTREVISION= 2 +PORTVERSION= 13.5.1305000.20250516 CATEGORIES= misc MASTER_SITES= LOCAL/arrowd PKGNAMESUFFIX= -${ARCH} @@ -20,6 +19,13 @@ TARGET32_DIR= ${PREFIX}/lib32/compat USE_LDCONFIG= ${TARGET_DIR} NO_SHLIB_REQUIRES_GLOB= *:32 +COMPAT_LIBS= libcrypto.so.111 \ + libdialog.so.9 \ + libnv.so.0 \ + libssl.so.111 + +.include "${.CURDIR}/../compat4x/Makefile.makedist" + .include <bsd.port.pre.mk> .if ${OSREL:R} < 13 diff --git a/misc/compat13x/distinfo b/misc/compat13x/distinfo index fb6d30943f4b..3530110000a3 100644 --- a/misc/compat13x/distinfo +++ b/misc/compat13x/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1743323485 -SHA256 (compat13x-aarch64-13.5.1305000.20250330.tar.xz) = 374ddf4c54c950513d49fd45b30e3f36a8beaa35b11e0d9914de7fab87b45f54 -SIZE (compat13x-aarch64-13.5.1305000.20250330.tar.xz) = 1146356 -SHA256 (compat13x-amd64-13.5.1305000.20250330.tar.xz) = cca95592bad5d1ce50412ef848db1059669c6f6c8a36719c4ef6eec156ea5104 -SIZE (compat13x-amd64-13.5.1305000.20250330.tar.xz) = 2335984 -SHA256 (compat13x-i386-13.5.1305000.20250330.tar.xz) = dbfaedfd1cb9eb703109bf2c8ebb2ebf8477f9e3dd28d411fed42131665587f8 -SIZE (compat13x-i386-13.5.1305000.20250330.tar.xz) = 1248196 +TIMESTAMP = 1747389524 +SHA256 (compat13x-aarch64-13.5.1305000.20250516.tar.xz) = da6774b0ecc1d9493e208dea4f247f1c23f359e22437b3ba60c07ec6674b7c49 +SIZE (compat13x-aarch64-13.5.1305000.20250516.tar.xz) = 1319304 +SHA256 (compat13x-amd64-13.5.1305000.20250516.tar.xz) = 0a1e1990bd75ae1ca682fc919eb1ebdf1765708076287fb5e51b73a1b47c4497 +SIZE (compat13x-amd64-13.5.1305000.20250516.tar.xz) = 2700856 +SHA256 (compat13x-i386-13.5.1305000.20250516.tar.xz) = 585221d7b33ea788ce96ac1a18a3d3cc6a820dd64a0c275ed15aedf23541dea7 +SIZE (compat13x-i386-13.5.1305000.20250516.tar.xz) = 1437620 diff --git a/misc/compat13x/pkg-plist.aarch64 b/misc/compat13x/pkg-plist.aarch64 index 56fe0dda5ab0..9dbf2f634e46 100644 --- a/misc/compat13x/pkg-plist.aarch64 +++ b/misc/compat13x/pkg-plist.aarch64 @@ -1,4 +1,5 @@ lib/compat/libcrypto.so.111 -@comment lib/compat/libmd.so.6 +lib/compat/libdialog.so.9 +@comment lib/compat/libncursesw.so.9 lib/compat/libnv.so.0 lib/compat/libssl.so.111 diff --git a/misc/compat13x/pkg-plist.amd64 b/misc/compat13x/pkg-plist.amd64 index de92382731bc..4ea5ff3d48e0 100644 --- a/misc/compat13x/pkg-plist.amd64 +++ b/misc/compat13x/pkg-plist.amd64 @@ -1,8 +1,10 @@ lib/compat/libcrypto.so.111 -@comment lib/compat/libmd.so.6 +lib/compat/libdialog.so.9 +@comment lib/compat/libncursesw.so.9 lib/compat/libnv.so.0 lib/compat/libssl.so.111 lib32/compat/libcrypto.so.111 -@comment lib32/compat/libmd.so.6 +lib32/compat/libdialog.so.9 +@comment lib32/compat/libncursesw.so.9 lib32/compat/libnv.so.0 lib32/compat/libssl.so.111 diff --git a/misc/compat13x/pkg-plist.i386 b/misc/compat13x/pkg-plist.i386 index 56fe0dda5ab0..9dbf2f634e46 100644 --- a/misc/compat13x/pkg-plist.i386 +++ b/misc/compat13x/pkg-plist.i386 @@ -1,4 +1,5 @@ lib/compat/libcrypto.so.111 -@comment lib/compat/libmd.so.6 +lib/compat/libdialog.so.9 +@comment lib/compat/libncursesw.so.9 lib/compat/libnv.so.0 lib/compat/libssl.so.111 diff --git a/misc/compat4x/Makefile.makedist b/misc/compat4x/Makefile.makedist new file mode 100644 index 000000000000..0e011f3ddeb3 --- /dev/null +++ b/misc/compat4x/Makefile.makedist @@ -0,0 +1,14 @@ +_VER= ${PORTVERSION:C/\..*//g}.${PORTVERSION:C/[^\.]*\.//:C/\..*//g} + +makedist: +.for lib in ${COMPAT_LIBS} + ${ECHO_CMD} ${lib} >> /tmp/compat-libs +.endfor +.for arch in ${ONLY_FOR_ARCHS} + cd /tmp && ${SH} ${PORTSDIR}/Tools/scripts/gen-compat.sh ${_VER} ${arch} /tmp/compat-libs +.endfor + @${ECHO_CMD} + @${ECHO_CMD} Now run + @${ECHO_CMD} 'mv /tmp/${PORTNAME}-* ${PORTSDIR}/distfiles/' + @${ECHO_CMD} adjust PORTVERSION accordingly and run + @${ECHO_CMD} ${MAKE} -C ${.CURDIR} makesum diff --git a/misc/freebsd-release-manifests/Makefile b/misc/freebsd-release-manifests/Makefile index f9e766c81355..3e7794d0af5d 100644 --- a/misc/freebsd-release-manifests/Makefile +++ b/misc/freebsd-release-manifests/Makefile @@ -1,5 +1,5 @@ PORTNAME= freebsd-release-manifests -DISTVERSION= 20250509 +DISTVERSION= 20250516 CATEGORIES= misc MASTER_SITES= # DISTFILES= # diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/amd64-amd64-14.3-BETA2 b/misc/freebsd-release-manifests/files/MANIFESTS/amd64-amd64-14.3-BETA2 deleted file mode 100644 index b949659cad61..000000000000 --- a/misc/freebsd-release-manifests/files/MANIFESTS/amd64-amd64-14.3-BETA2 +++ /dev/null @@ -1,9 +0,0 @@ -base-dbg.txz 22663383103cf53aa83981178af9ae03b83586aaac5eb38b83c711987b2af4a6 1716 base_dbg "Base system (Debugging)" off -base.txz b18c6675aca14f52b7ffab819049f13bb716906c3f785bc18c5dc7d1d88b01fb 29919 base "Base system (MANDATORY)" on -kernel-dbg.txz d37de4e150faf578fa88489442057ac552079ba90d7d4e2c407b75696d4439ca 846 kernel_dbg "Kernel (Debugging)" on -kernel.txz 46c69f4da7a9a902ba17408e2d09a402c5776e62175e955f50482e11451c7498 857 kernel "Kernel (MANDATORY)" on -lib32-dbg.txz bd7a0ae89b6402dc02c06e087cbf13995ce38eae75c178bcd61ec3ebc0c3f2bf 257 lib32_dbg "32-bit compatibility libraries (Debugging)" off -lib32.txz a91f21aac48d4d2b973ccfafb006225dd29aeb50ae471895d1533af0168b2661 729 lib32 "32-bit compatibility libraries" on -ports.txz cdc8b0040a6359b441d6624fc8e3b50429e179ad5c4a60c9f2e6b961b59af09d 205781 ports "Ports tree" off -src.txz 8fb934bdd4a23be6f8231b0c9e26a772bb054bfbec9e6f3ea5a9ccbc56dc0170 109606 src "System source tree" off -tests.txz 9b5032de4c3dc6019ef5195ff8486edfc275c644cbc980a4d21f0c7818322fe5 7263 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/amd64-amd64-14.3-BETA3 b/misc/freebsd-release-manifests/files/MANIFESTS/amd64-amd64-14.3-BETA3 new file mode 100644 index 000000000000..f1cf669de701 --- /dev/null +++ b/misc/freebsd-release-manifests/files/MANIFESTS/amd64-amd64-14.3-BETA3 @@ -0,0 +1,9 @@ +base-dbg.txz fcb8f6a26e907a9868906b53d2308b3b268ce3f50188fa4b8bb4f33a74e6ab34 1716 base_dbg "Base system (Debugging)" off +base.txz dbef21f918c387495ea9013fcadffe2d19026b0b881ac5e4268f761eadbe0642 29923 base "Base system (MANDATORY)" on +kernel-dbg.txz 100862438672c22b8d6dabbace065e41b1c9afc3ccc28b07b75b4077637589b7 846 kernel_dbg "Kernel (Debugging)" on +kernel.txz c0d492f5e8c9d22812bdfeb7aa005a10a3175ab998af42c993bafe7f1bc17da1 857 kernel "Kernel (MANDATORY)" on +lib32-dbg.txz 82af287a4e114f5e5730c7f32fcc1bb1856d37c62e9a875788f77de98ce98459 257 lib32_dbg "32-bit compatibility libraries (Debugging)" off +lib32.txz f94a5274fb78a120c62d669521cc5b9463302438d52973181a51f27f1d6923c4 729 lib32 "32-bit compatibility libraries" on +ports.txz 9677d221e326b5e2aa1f01492234f987ff11c2a8b1c8e82f57cfef72eb9504eb 205817 ports "Ports tree" off +src.txz 7a6ff265f1d97de3cdb17c54523c81ac6039414f41c42a0e4e0cc6b23be3ab54 109606 src "System source tree" off +tests.txz 7683cd3df66f953bd6e2117b9c043f247491fcc8249f210194a202680d765346 7263 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/arm64-aarch64-14.3-BETA2 b/misc/freebsd-release-manifests/files/MANIFESTS/arm64-aarch64-14.3-BETA2 deleted file mode 100644 index d5883978a3c6..000000000000 --- a/misc/freebsd-release-manifests/files/MANIFESTS/arm64-aarch64-14.3-BETA2 +++ /dev/null @@ -1,9 +0,0 @@ -base-dbg.txz ec825fc7989188a9a4fd0641ccbbb905b80c408c7c45499d2306335a9b06d156 1699 base_dbg "Base system (Debugging)" off -base.txz 5481e6ba231d109030e49f52a01d4f0d1cae6c77cb85fb91d1745860e25ace66 29632 base "Base system (MANDATORY)" on -kernel-dbg.txz 4f2d10fd4f5194b7f56b334302bd9770362957acd7af896368e1bd3f4997a913 702 kernel_dbg "Kernel (Debugging)" on -kernel.txz 67291306a428db50a2c008e6f0106fbf5c28bc64d31fe6161cb28317659b257f 775 kernel "Kernel (MANDATORY)" on -lib32-dbg.txz f8f3be839e85c511c58993e1a3140bf3c5ecb599594a22c87bb09802eea4d8b2 248 lib32_dbg "32-bit compatibility libraries (Debugging)" off -lib32.txz f0e40dbb9bedeff75709d293c1f2bacdf9604b9d990fe6c6f7acbbd3db582eb5 710 lib32 "32-bit compatibility libraries" on -ports.txz cdc8b0040a6359b441d6624fc8e3b50429e179ad5c4a60c9f2e6b961b59af09d 205781 ports "Ports tree" off -src.txz 8fb934bdd4a23be6f8231b0c9e26a772bb054bfbec9e6f3ea5a9ccbc56dc0170 109606 src "System source tree" off -tests.txz 248f75084651e690777ba820a36e5c8776a41e29fa0618d3c0b626b13f768c2a 7261 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/arm64-aarch64-14.3-BETA3 b/misc/freebsd-release-manifests/files/MANIFESTS/arm64-aarch64-14.3-BETA3 new file mode 100644 index 000000000000..bd8e9c1dfa9e --- /dev/null +++ b/misc/freebsd-release-manifests/files/MANIFESTS/arm64-aarch64-14.3-BETA3 @@ -0,0 +1,9 @@ +base-dbg.txz adb182558fb1f04f7ca79c900ad91af77124fdca9ed9925ac9122c024e12b2da 1699 base_dbg "Base system (Debugging)" off +base.txz e64068a7ec7165b950690e991786cb0c48decc056ed29d11f4f63fe83c5003db 29636 base "Base system (MANDATORY)" on +kernel-dbg.txz 5829f8c76203f229b49cd863dede4a182af6102a7ceccaa832b6040e46bbdea5 702 kernel_dbg "Kernel (Debugging)" on +kernel.txz 18d9f1c6482cf97eb1cb3ad6ce7ea93882f0168078ea55250c711bfe10c5e093 775 kernel "Kernel (MANDATORY)" on +lib32-dbg.txz 1126174084b9987e5c9bedab1e5794168212a5f34446bc0bc671db8ca9917f56 248 lib32_dbg "32-bit compatibility libraries (Debugging)" off +lib32.txz a16b1ef507094404235c63f709b3bdf718a7eff428557334378b821a928a3c40 710 lib32 "32-bit compatibility libraries" on +ports.txz 9677d221e326b5e2aa1f01492234f987ff11c2a8b1c8e82f57cfef72eb9504eb 205817 ports "Ports tree" off +src.txz 7a6ff265f1d97de3cdb17c54523c81ac6039414f41c42a0e4e0cc6b23be3ab54 109606 src "System source tree" off +tests.txz 1afa0b427886b0c5a711147722b139f07c0386de76fa98226a25575dfdc03d41 7261 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/i386-i386-14.3-BETA2 b/misc/freebsd-release-manifests/files/MANIFESTS/i386-i386-14.3-BETA2 deleted file mode 100644 index 1527a7ec1f51..000000000000 --- a/misc/freebsd-release-manifests/files/MANIFESTS/i386-i386-14.3-BETA2 +++ /dev/null @@ -1,7 +0,0 @@ -base-dbg.txz 25050bedfbf42ad262f80e0f0227d5f4257624076e1fa6722112e765bb0d5e3c 1691 base_dbg "Base system (Debugging)" off -base.txz e62ccb9893fc2f50390bcf667f957019faf13aebb84c73503105c8e561467efc 29716 base "Base system (MANDATORY)" on -kernel-dbg.txz 57f3cf03da0630d998e56887b073f62c437e065c69636979081a59dd3798c6c2 808 kernel_dbg "Kernel (Debugging)" on -kernel.txz 7f99025ec65ec80fbd57745914023bdf5fde9f43a14b46f9efb923053cae8a44 818 kernel "Kernel (MANDATORY)" on -ports.txz cdc8b0040a6359b441d6624fc8e3b50429e179ad5c4a60c9f2e6b961b59af09d 205781 ports "Ports tree" off -src.txz 8fb934bdd4a23be6f8231b0c9e26a772bb054bfbec9e6f3ea5a9ccbc56dc0170 109606 src "System source tree" off -tests.txz 76b7ce616fc565d06ebd7b2fcd93fbb0ae84d8d311662c4a9ccabb4058a5227b 7261 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/i386-i386-14.3-BETA3 b/misc/freebsd-release-manifests/files/MANIFESTS/i386-i386-14.3-BETA3 new file mode 100644 index 000000000000..a00de70245bf --- /dev/null +++ b/misc/freebsd-release-manifests/files/MANIFESTS/i386-i386-14.3-BETA3 @@ -0,0 +1,7 @@ +base-dbg.txz 4a7a2ccf5d1302e3aa440b2d3cc4f0a40186fdcb7095ad2d30cbe16fc8d0bc65 1691 base_dbg "Base system (Debugging)" off +base.txz abe5403e738abcc004bfb4268904de6a3d0d37481fb255401c9e20b3c477f91f 29720 base "Base system (MANDATORY)" on +kernel-dbg.txz a47ab8f7a380ba90d9b82c257bed0b137830433e00d1622f1d4505620fb7e8a1 808 kernel_dbg "Kernel (Debugging)" on +kernel.txz 938a128860ccff6df6d53946717e47e2843234fc29dc7b05b4992ac13b5e5554 818 kernel "Kernel (MANDATORY)" on +ports.txz 9677d221e326b5e2aa1f01492234f987ff11c2a8b1c8e82f57cfef72eb9504eb 205817 ports "Ports tree" off +src.txz 7a6ff265f1d97de3cdb17c54523c81ac6039414f41c42a0e4e0cc6b23be3ab54 109606 src "System source tree" off +tests.txz 8772183939b0a44289384f59a6be99c5ec184c25824a19c902ab7fa36b123815 7261 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc-14.3-BETA2 b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc-14.3-BETA2 deleted file mode 100644 index a50cce0e3756..000000000000 --- a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc-14.3-BETA2 +++ /dev/null @@ -1,7 +0,0 @@ -base-dbg.txz 7fce31fdf7f08d064d7394670e33c847a006fe64e0b99ffab43ed0c05ee8212b 1670 base_dbg "Base system (Debugging)" off -base.txz a7115c39e1cb7e5b0ac0218977db78a38cddd8e627883a5619b21f209374b991 29389 base "Base system (MANDATORY)" on -kernel-dbg.txz 9d08dd4b6560fed0a0c0b7bbcc17bf80847d2d0cc8eabe9867091deded3abd38 622 kernel_dbg "Kernel (Debugging)" on -kernel.txz 57777fabcf4d4afb77ae1cfa3e675d43c6aa20c521b856d7d8df64ffe313326c 631 kernel "Kernel (MANDATORY)" on -ports.txz cdc8b0040a6359b441d6624fc8e3b50429e179ad5c4a60c9f2e6b961b59af09d 205781 ports "Ports tree" off -src.txz 8fb934bdd4a23be6f8231b0c9e26a772bb054bfbec9e6f3ea5a9ccbc56dc0170 109606 src "System source tree" off -tests.txz 4bca7b8df15cdda9670c424c8e55b2fd23898374c7edebfa391bb160211a2114 7250 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc-14.3-BETA3 b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc-14.3-BETA3 new file mode 100644 index 000000000000..180a9d4752ac --- /dev/null +++ b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc-14.3-BETA3 @@ -0,0 +1,7 @@ +base-dbg.txz 7bb7ef0c1d802f9ec4d103b70bd16e3eda2c5e9277df8e1fa137f9c49a27110f 1670 base_dbg "Base system (Debugging)" off +base.txz 9aeda6d186c81e94a3791ec4d545aff14a8a8a27eec51d3c09100371fbb6d42b 29393 base "Base system (MANDATORY)" on +kernel-dbg.txz 0554b629f6c66fe7675478542194a054e95117e74c2eb5259af3102e0e66443d 622 kernel_dbg "Kernel (Debugging)" on +kernel.txz 84b5349819765dcbf47dfede7b5fb4dcd12ddcca28adb547b8eb6c9a07b41f6d 631 kernel "Kernel (MANDATORY)" on +ports.txz 9677d221e326b5e2aa1f01492234f987ff11c2a8b1c8e82f57cfef72eb9504eb 205817 ports "Ports tree" off +src.txz 7a6ff265f1d97de3cdb17c54523c81ac6039414f41c42a0e4e0cc6b23be3ab54 109606 src "System source tree" off +tests.txz 7148a182715734987d0b8247173a5e2d5150e52531752b18000123bf0f91f2ce 7250 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64-14.3-BETA2 b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64-14.3-BETA2 deleted file mode 100644 index 2505a6cf8afe..000000000000 --- a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64-14.3-BETA2 +++ /dev/null @@ -1,9 +0,0 @@ -base-dbg.txz bec0998fa2ba3e44ae612cd87913fa7b71bba8877e61a560206b7759bfa42279 1689 base_dbg "Base system (Debugging)" off -base.txz 63d211276626b6b10dc1dc94112ad31367567d958b3718978942bdef554ca77e 29444 base "Base system (MANDATORY)" on -kernel-dbg.txz 196c0126205e134445ee435a973525f93115a1d314bfb1c8eb8a140e3f522f8e 649 kernel_dbg "Kernel (Debugging)" on -kernel.txz 34a0145b8bd9d94c9fb5aab64403fadbf4591234e12e86fa0f931a82b57e1b3b 658 kernel "Kernel (MANDATORY)" on -lib32-dbg.txz f2212e6034af08a6873822f6f8353edcde58b601b1e06783b72ee4ac511a73b8 247 lib32_dbg "32-bit compatibility libraries (Debugging)" off -lib32.txz 2c7e66f470c224f92d9f973867eb89be94c46838fa8ebc0adce3eb593c308d2e 708 lib32 "32-bit compatibility libraries" on -ports.txz cdc8b0040a6359b441d6624fc8e3b50429e179ad5c4a60c9f2e6b961b59af09d 205781 ports "Ports tree" off -src.txz 8fb934bdd4a23be6f8231b0c9e26a772bb054bfbec9e6f3ea5a9ccbc56dc0170 109606 src "System source tree" off -tests.txz d57bfb1c6bcabb372c9b2f6b0f96b127c2653d4068198de2d56b16d7934124e9 7251 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64-14.3-BETA3 b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64-14.3-BETA3 new file mode 100644 index 000000000000..1f8dd277fd6a --- /dev/null +++ b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64-14.3-BETA3 @@ -0,0 +1,9 @@ +base-dbg.txz 37595220386ef032052ac144ded2bf359bb0be148a0423156e2454969a8dfc33 1689 base_dbg "Base system (Debugging)" off +base.txz 31025d5854f291de01994a5ae43dc93f8ff13faacc610a60f764aed3999b491d 29448 base "Base system (MANDATORY)" on +kernel-dbg.txz 7fbad89f29319fd0c9509131c178a711a9d1c45010b7af978fdc0b12e9e225d6 649 kernel_dbg "Kernel (Debugging)" on +kernel.txz d099e14408d3c1c7445964764f3b5e7693bbced1cc736581bba8f2f1c64b0603 658 kernel "Kernel (MANDATORY)" on +lib32-dbg.txz e7487d77cfc0e2c117baad74bbec0f192a1d3682431c95f8a36fa842469eaebf 247 lib32_dbg "32-bit compatibility libraries (Debugging)" off +lib32.txz aae602fb527af3bc5c9491255159f789dd41351135f7b14cfc53f5df81abced0 708 lib32 "32-bit compatibility libraries" on +ports.txz 9677d221e326b5e2aa1f01492234f987ff11c2a8b1c8e82f57cfef72eb9504eb 205817 ports "Ports tree" off +src.txz 7a6ff265f1d97de3cdb17c54523c81ac6039414f41c42a0e4e0cc6b23be3ab54 109606 src "System source tree" off +tests.txz 232dedacbd58910494bda3a9718529d1217785dea8bca5a4d7588549063bc978 7251 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64le-14.3-BETA2 b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64le-14.3-BETA2 deleted file mode 100644 index 757c615bb153..000000000000 --- a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64le-14.3-BETA2 +++ /dev/null @@ -1,7 +0,0 @@ -base-dbg.txz 4cca24d88f78e3fe2cf2acd58a8ec40a72a51d1a2edbb5f261324bcb5cbda228 1676 base_dbg "Base system (Debugging)" off -base.txz 8f18fb2ef3faf5c274652df74864a01ee196fea6e5c788d11ac1111ba4cdd527 29425 base "Base system (MANDATORY)" on -kernel-dbg.txz 64b891c8e201c180218f80acd8b610ab32953c999907b318c087efc6a287b424 648 kernel_dbg "Kernel (Debugging)" on -kernel.txz 001f662e00066c3851c1218f5dadd51538b6e4d6bcf7df07e0bad8501bb5b0a4 657 kernel "Kernel (MANDATORY)" on -ports.txz cdc8b0040a6359b441d6624fc8e3b50429e179ad5c4a60c9f2e6b961b59af09d 205781 ports "Ports tree" off -src.txz 8fb934bdd4a23be6f8231b0c9e26a772bb054bfbec9e6f3ea5a9ccbc56dc0170 109606 src "System source tree" off -tests.txz ff5f313edfb113c94e247ecc63d4e460aa2ca5fb26607b6bd70702faabe7ccd0 7262 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64le-14.3-BETA3 b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64le-14.3-BETA3 new file mode 100644 index 000000000000..ef2890bb992d --- /dev/null +++ b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpc64le-14.3-BETA3 @@ -0,0 +1,7 @@ +base-dbg.txz 4ea1be9b7322fcb8d19ec9fd45322246aa18f9e0a3d30940725608488300c783 1676 base_dbg "Base system (Debugging)" off +base.txz 82ce97bfae937cd00a97ded6a339171939a639e967088e065157dfb342525978 29429 base "Base system (MANDATORY)" on +kernel-dbg.txz 5872214bc9e74db7b6e614a120361cef8286b3c4ca97fc099ad96f8966813ab4 648 kernel_dbg "Kernel (Debugging)" on +kernel.txz 2efd49b0adebf3660fb55f30d0e5fd39d90ff3e0f955bb25be1768dc8089ffaf 657 kernel "Kernel (MANDATORY)" on +ports.txz 9677d221e326b5e2aa1f01492234f987ff11c2a8b1c8e82f57cfef72eb9504eb 205817 ports "Ports tree" off +src.txz 7a6ff265f1d97de3cdb17c54523c81ac6039414f41c42a0e4e0cc6b23be3ab54 109606 src "System source tree" off +tests.txz 880fb80e017c14c13d2c266615efe249fd1e73569dbb600d6883806a0b3c6412 7262 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpcspe-14.3-BETA2 b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpcspe-14.3-BETA2 deleted file mode 100644 index 03966f0889df..000000000000 --- a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpcspe-14.3-BETA2 +++ /dev/null @@ -1,7 +0,0 @@ -base-dbg.txz 217941437911b3a2bc8d81d791ca6a193b38f94834f33d1aa26e749db170af15 1669 base_dbg "Base system (Debugging)" off -base.txz 5358ba27abd93bd92f9555a2d51bd4457d01eb01013396d42c1c00f89048b45b 29384 base "Base system (MANDATORY)" on -kernel-dbg.txz 0f0abba2dc3094b1ab1640fc7368291c5035ca5cc58f19ee1205c1496e30166e 602 kernel_dbg "Kernel (Debugging)" on -kernel.txz b0a3d1341c871024ccc37d66322e78b6a8bf2daa2324b923e8b396d3c18d3a57 611 kernel "Kernel (MANDATORY)" on -ports.txz cdc8b0040a6359b441d6624fc8e3b50429e179ad5c4a60c9f2e6b961b59af09d 205781 ports "Ports tree" off -src.txz 8fb934bdd4a23be6f8231b0c9e26a772bb054bfbec9e6f3ea5a9ccbc56dc0170 109606 src "System source tree" off -tests.txz 97a930de7306e059ecc643e1b5e6617ad9d57fe7cabbe36fabe7c94051a465d5 7250 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpcspe-14.3-BETA3 b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpcspe-14.3-BETA3 new file mode 100644 index 000000000000..077d1572daec --- /dev/null +++ b/misc/freebsd-release-manifests/files/MANIFESTS/powerpc-powerpcspe-14.3-BETA3 @@ -0,0 +1,7 @@ +base-dbg.txz 06c523d0ae24e519bfc8876d518c769b5bade811fc1f44b2b7ff5fbe3ca45e08 1669 base_dbg "Base system (Debugging)" off +base.txz 5196f6ce91b8dc91212831ca16a1e95a6b99049b2707571828144fd6f885b1b0 29388 base "Base system (MANDATORY)" on +kernel-dbg.txz 690618e7f3c796c7322dcc0b38dd493bf910e6b865077a4ccf0354f5d7f45315 602 kernel_dbg "Kernel (Debugging)" on +kernel.txz 355e8fc1ad87c3a273261bcf357363215a91a91edf57739a097d79b304a27af9 611 kernel "Kernel (MANDATORY)" on +ports.txz 9677d221e326b5e2aa1f01492234f987ff11c2a8b1c8e82f57cfef72eb9504eb 205817 ports "Ports tree" off +src.txz 7a6ff265f1d97de3cdb17c54523c81ac6039414f41c42a0e4e0cc6b23be3ab54 109606 src "System source tree" off +tests.txz fac55f8a445a0f72f3b042a6e56728ad669a94b842b951e465e37c387a6b7bc6 7250 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/riscv-riscv64-14.3-BETA2 b/misc/freebsd-release-manifests/files/MANIFESTS/riscv-riscv64-14.3-BETA2 deleted file mode 100644 index e46e6d7df5cf..000000000000 --- a/misc/freebsd-release-manifests/files/MANIFESTS/riscv-riscv64-14.3-BETA2 +++ /dev/null @@ -1,7 +0,0 @@ -base-dbg.txz da0e31b8c46f5687576967e49a4fc4a2ccf7cb1d7726a46e133bb1be28bee81e 1675 base_dbg "Base system (Debugging)" off -base.txz 8c5646d3e0c5fb5b338cba340921dc3b2a4073808423f798801b38c22ff7b36f 29446 base "Base system (MANDATORY)" on -kernel-dbg.txz d505c15fbd31d2bacc487cdb778f752d9ac283c34c843e51cefd8aebc409053f 617 kernel_dbg "Kernel (Debugging)" on -kernel.txz 98eda38c8b5208bbca2e79222bbb1ec64552f1083450fa4ed476fe14bead84a0 629 kernel "Kernel (MANDATORY)" on -ports.txz cdc8b0040a6359b441d6624fc8e3b50429e179ad5c4a60c9f2e6b961b59af09d 205781 ports "Ports tree" off -src.txz 8fb934bdd4a23be6f8231b0c9e26a772bb054bfbec9e6f3ea5a9ccbc56dc0170 109606 src "System source tree" off -tests.txz 51401b2a00035c2df6d7a998662fb5618a4162f66da51252becd45f2a20bd25d 7262 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/files/MANIFESTS/riscv-riscv64-14.3-BETA3 b/misc/freebsd-release-manifests/files/MANIFESTS/riscv-riscv64-14.3-BETA3 new file mode 100644 index 000000000000..53f61c0a5f8c --- /dev/null +++ b/misc/freebsd-release-manifests/files/MANIFESTS/riscv-riscv64-14.3-BETA3 @@ -0,0 +1,7 @@ +base-dbg.txz 10a3168705823aa763527bf112efa534db84388a9490d13907730745bfe67ee3 1675 base_dbg "Base system (Debugging)" off +base.txz 739f55e4f34657ea26bb5a6780ca300dcc6ba5f9388911925d4282a081959594 29450 base "Base system (MANDATORY)" on +kernel-dbg.txz b4a7e0b12e385ede35b11afa3d6f9833002f1f54223efd7af8a8d4174b026314 617 kernel_dbg "Kernel (Debugging)" on +kernel.txz abaf42ede2564e4005d0ff7c6ba02be819b282942644f57b8ffc896a12840fbc 629 kernel "Kernel (MANDATORY)" on +ports.txz 9677d221e326b5e2aa1f01492234f987ff11c2a8b1c8e82f57cfef72eb9504eb 205817 ports "Ports tree" off +src.txz 7a6ff265f1d97de3cdb17c54523c81ac6039414f41c42a0e4e0cc6b23be3ab54 109606 src "System source tree" off +tests.txz 40a5b3c35198b97d53484f85bac5ced8d5d6ab4813b8e359f1f51f91b60dcc92 7262 tests "Test suite" off diff --git a/misc/freebsd-release-manifests/pkg-plist b/misc/freebsd-release-manifests/pkg-plist index 0ec70a4983b8..6fb22ecb7881 100644 --- a/misc/freebsd-release-manifests/pkg-plist +++ b/misc/freebsd-release-manifests/pkg-plist @@ -3,46 +3,46 @@ %%DATADIR%%/MANIFESTS/amd64-amd64-13.5-RELEASE %%DATADIR%%/MANIFESTS/amd64-amd64-14.1-RELEASE %%DATADIR%%/MANIFESTS/amd64-amd64-14.2-RELEASE -%%DATADIR%%/MANIFESTS/amd64-amd64-14.3-BETA2 +%%DATADIR%%/MANIFESTS/amd64-amd64-14.3-BETA3 %%DATADIR%%/MANIFESTS/arm64-aarch64-13.3-RELEASE %%DATADIR%%/MANIFESTS/arm64-aarch64-13.4-RELEASE %%DATADIR%%/MANIFESTS/arm64-aarch64-13.5-RELEASE %%DATADIR%%/MANIFESTS/arm64-aarch64-14.1-RELEASE %%DATADIR%%/MANIFESTS/arm64-aarch64-14.2-RELEASE -%%DATADIR%%/MANIFESTS/arm64-aarch64-14.3-BETA2 +%%DATADIR%%/MANIFESTS/arm64-aarch64-14.3-BETA3 %%DATADIR%%/MANIFESTS/i386-i386-13.3-RELEASE %%DATADIR%%/MANIFESTS/i386-i386-13.4-RELEASE %%DATADIR%%/MANIFESTS/i386-i386-13.5-RELEASE %%DATADIR%%/MANIFESTS/i386-i386-14.1-RELEASE %%DATADIR%%/MANIFESTS/i386-i386-14.2-RELEASE -%%DATADIR%%/MANIFESTS/i386-i386-14.3-BETA2 +%%DATADIR%%/MANIFESTS/i386-i386-14.3-BETA3 %%DATADIR%%/MANIFESTS/powerpc-powerpc-13.3-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc-13.4-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc-13.5-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc-14.1-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc-14.2-RELEASE -%%DATADIR%%/MANIFESTS/powerpc-powerpc-14.3-BETA2 +%%DATADIR%%/MANIFESTS/powerpc-powerpc-14.3-BETA3 %%DATADIR%%/MANIFESTS/powerpc-powerpc64-13.3-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc64-13.4-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc64-13.5-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc64-14.1-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc64-14.2-RELEASE -%%DATADIR%%/MANIFESTS/powerpc-powerpc64-14.3-BETA2 +%%DATADIR%%/MANIFESTS/powerpc-powerpc64-14.3-BETA3 %%DATADIR%%/MANIFESTS/powerpc-powerpc64le-13.3-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc64le-13.4-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc64le-13.5-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc64le-14.1-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpc64le-14.2-RELEASE -%%DATADIR%%/MANIFESTS/powerpc-powerpc64le-14.3-BETA2 +%%DATADIR%%/MANIFESTS/powerpc-powerpc64le-14.3-BETA3 %%DATADIR%%/MANIFESTS/powerpc-powerpcspe-13.3-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpcspe-13.4-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpcspe-13.5-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpcspe-14.1-RELEASE %%DATADIR%%/MANIFESTS/powerpc-powerpcspe-14.2-RELEASE -%%DATADIR%%/MANIFESTS/powerpc-powerpcspe-14.3-BETA2 +%%DATADIR%%/MANIFESTS/powerpc-powerpcspe-14.3-BETA3 %%DATADIR%%/MANIFESTS/riscv-riscv64-13.3-RELEASE %%DATADIR%%/MANIFESTS/riscv-riscv64-13.4-RELEASE %%DATADIR%%/MANIFESTS/riscv-riscv64-13.5-RELEASE %%DATADIR%%/MANIFESTS/riscv-riscv64-14.1-RELEASE %%DATADIR%%/MANIFESTS/riscv-riscv64-14.2-RELEASE -%%DATADIR%%/MANIFESTS/riscv-riscv64-14.3-BETA2 +%%DATADIR%%/MANIFESTS/riscv-riscv64-14.3-BETA3 diff --git a/misc/llama-cpp/Makefile b/misc/llama-cpp/Makefile index edcfc0829cf0..e880ababbdc1 100644 --- a/misc/llama-cpp/Makefile +++ b/misc/llama-cpp/Makefile @@ -1,6 +1,6 @@ PORTNAME= llama-cpp DISTVERSIONPREFIX= b -DISTVERSION= 5287 +DISTVERSION= 5371 CATEGORIES= misc # machine-learning MAINTAINER= yuri@FreeBSD.org diff --git a/misc/llama-cpp/distinfo b/misc/llama-cpp/distinfo index 5682dec0737a..065e1989894b 100644 --- a/misc/llama-cpp/distinfo +++ b/misc/llama-cpp/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1746510097 -SHA256 (ggerganov-llama.cpp-b5287_GH0.tar.gz) = 2b62ce01b09300aa5ed628e520ea56a72aff64fda92c02c2576880e0810225a4 -SIZE (ggerganov-llama.cpp-b5287_GH0.tar.gz) = 21099950 +TIMESTAMP = 1747201270 +SHA256 (ggerganov-llama.cpp-b5371_GH0.tar.gz) = cce50220507565b78423fc45a1c534dc088289ab898517a379fdbf733ffd72bf +SIZE (ggerganov-llama.cpp-b5371_GH0.tar.gz) = 21147325 SHA256 (nomic-ai-kompute-4565194_GH0.tar.gz) = 95b52d2f0514c5201c7838348a9c3c9e60902ea3c6c9aa862193a212150b2bfc SIZE (nomic-ai-kompute-4565194_GH0.tar.gz) = 13540496 diff --git a/misc/llama-cpp/pkg-plist b/misc/llama-cpp/pkg-plist index fb952a574b2e..5b36c5809aaa 100644 --- a/misc/llama-cpp/pkg-plist +++ b/misc/llama-cpp/pkg-plist @@ -8,14 +8,13 @@ bin/convert_hf_to_gguf.py %%EXAMPLES%%bin/llama-embedding %%EXAMPLES%%bin/llama-eval-callback %%EXAMPLES%%bin/llama-export-lora +%%EXAMPLES%%bin/llama-finetune %%EXAMPLES%%bin/llama-gen-docs %%EXAMPLES%%bin/llama-gguf %%EXAMPLES%%bin/llama-gguf-hash %%EXAMPLES%%bin/llama-gguf-split %%EXAMPLES%%bin/llama-gritlm %%EXAMPLES%%bin/llama-imatrix -%%EXAMPLES%%bin/llama-infill -%%EXAMPLES%%bin/llama-llava-clip-quantize-cli %%EXAMPLES%%bin/llama-lookahead %%EXAMPLES%%bin/llama-lookup %%EXAMPLES%%bin/llama-lookup-create @@ -63,6 +62,5 @@ lib/libggml-cpu.so %%VULKAN%%lib/libggml-vulkan.so lib/libggml.so lib/libllama.so -%%EXAMPLES%%lib/libllava_shared.so lib/libmtmd_shared.so libdata/pkgconfig/llama.pc diff --git a/misc/py-gguf/Makefile b/misc/py-gguf/Makefile index b03b9d096471..b4b655f4ac86 100644 --- a/misc/py-gguf/Makefile +++ b/misc/py-gguf/Makefile @@ -1,5 +1,5 @@ PORTNAME= gguf -DISTVERSION= 0.16.2.${GH_TAGNAME:S/b//} # the base version is in pyproject.toml, updated by post-patch +DISTVERSION= 0.16.3.${GH_TAGNAME:S/b//} # the base version is in pyproject.toml, updated by post-patch CATEGORIES= misc python # machine-learning #MASTER_SITES= PYPI # the PYPI version is way behind of llama-cpp PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -24,7 +24,7 @@ USE_PYTHON= pep517 autoplist pytest USE_GITHUB= yes GH_ACCOUNT= ggml-org GH_PROJECT= llama.cpp -GH_TAGNAME= b5287 +GH_TAGNAME= b5401 WRKSRC= ${WRKDIR}/${GH_PROJECT}-${GH_TAGNAME}/gguf-py diff --git a/misc/py-gguf/distinfo b/misc/py-gguf/distinfo index 71d363f1c2b8..ef894882703d 100644 --- a/misc/py-gguf/distinfo +++ b/misc/py-gguf/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746512008 -SHA256 (ggml-org-llama.cpp-0.16.2.5287-b5287_GH0.tar.gz) = 2b62ce01b09300aa5ed628e520ea56a72aff64fda92c02c2576880e0810225a4 -SIZE (ggml-org-llama.cpp-0.16.2.5287-b5287_GH0.tar.gz) = 21099950 +TIMESTAMP = 1747374589 +SHA256 (ggml-org-llama.cpp-0.16.3.5401-b5401_GH0.tar.gz) = 140f105308371c79e5a7f2f0e111481c24ff1342e44cae2bc0cedd2808d8e24c +SIZE (ggml-org-llama.cpp-0.16.3.5401-b5401_GH0.tar.gz) = 21781878 diff --git a/misc/py-huggingface-hub/Makefile b/misc/py-huggingface-hub/Makefile index cb4886d5d197..fade2278c42a 100644 --- a/misc/py-huggingface-hub/Makefile +++ b/misc/py-huggingface-hub/Makefile @@ -1,5 +1,5 @@ PORTNAME= huggingface-hub -DISTVERSION= 0.30.2 +DISTVERSION= 0.31.2 CATEGORIES= misc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/misc/py-huggingface-hub/distinfo b/misc/py-huggingface-hub/distinfo index 37e93b4cd46f..78f57ab03615 100644 --- a/misc/py-huggingface-hub/distinfo +++ b/misc/py-huggingface-hub/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744633929 -SHA256 (huggingface_hub-0.30.2.tar.gz) = 9a7897c5b6fd9dad3168a794a8998d6378210f5b9688d0dfc180b1a228dc2466 -SIZE (huggingface_hub-0.30.2.tar.gz) = 400868 +TIMESTAMP = 1747481418 +SHA256 (huggingface_hub-0.31.2.tar.gz) = 7053561376ed7f6ffdaecf09cc54d70dc784ac6315fa4bb9b93e19662b029675 +SIZE (huggingface_hub-0.31.2.tar.gz) = 403025 diff --git a/misc/py-instructor/Makefile b/misc/py-instructor/Makefile index 11ff7d5970bf..e590a09b5f41 100644 --- a/misc/py-instructor/Makefile +++ b/misc/py-instructor/Makefile @@ -1,5 +1,5 @@ PORTNAME= instructor -DISTVERSION= 1.8.1 +DISTVERSION= 1.8.2 CATEGORIES= misc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/misc/py-instructor/distinfo b/misc/py-instructor/distinfo index 93ce5eb93284..84dbd6d953ec 100644 --- a/misc/py-instructor/distinfo +++ b/misc/py-instructor/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747038054 -SHA256 (instructor-1.8.1.tar.gz) = 2c3db9cabeff7cbe066b8eba393c1126e6250131b659023963047187afc3b56b -SIZE (instructor-1.8.1.tar.gz) = 69245759 +TIMESTAMP = 1747482211 +SHA256 (instructor-1.8.2.tar.gz) = fddf7828a0296913d7dc2dddbd1d1a925962f240a9537127482d536aaf75fec6 +SIZE (instructor-1.8.2.tar.gz) = 69245788 diff --git a/misc/units/Makefile b/misc/units/Makefile index b2f5ab394d41..eccb25dc0f29 100644 --- a/misc/units/Makefile +++ b/misc/units/Makefile @@ -6,7 +6,7 @@ PKGNAMESUFFIX= -library MAINTAINER= yuri@FreeBSD.org COMMENT= C++ library for working with units of measurement -WWW= https://units.readthedocs.io/en/latest\ \ +WWW= https://units.readthedocs.io/en/latest \ https://github.com/LLNL/units LICENSE= BSD3CLAUSE diff --git a/multimedia/ab-av1/Makefile b/multimedia/ab-av1/Makefile index acc4b1278955..78481d09647f 100644 --- a/multimedia/ab-av1/Makefile +++ b/multimedia/ab-av1/Makefile @@ -1,6 +1,6 @@ PORTNAME= ab-av1 DISTVERSIONPREFIX= v -DISTVERSION= 0.10.0 +DISTVERSION= 0.10.1 CATEGORIES= multimedia MAINTAINER= jbeich@FreeBSD.org diff --git a/multimedia/ab-av1/Makefile.crates b/multimedia/ab-av1/Makefile.crates index abc3cc5ddefc..a8e2fe1e48fa 100644 --- a/multimedia/ab-av1/Makefile.crates +++ b/multimedia/ab-av1/Makefile.crates @@ -13,16 +13,16 @@ CARGO_CRATES= addr2line-0.24.2 \ autocfg-1.4.0 \ backtrace-0.3.75 \ bitflags-1.3.2 \ - bitflags-2.9.0 \ + bitflags-2.9.1 \ blake3-1.8.2 \ bumpalo-3.17.0 \ byteorder-1.5.0 \ bytes-1.10.1 \ - cc-1.2.22 \ + cc-1.2.23 \ cfg-if-1.0.0 \ - clap-4.5.37 \ + clap-4.5.38 \ clap-verbosity-flag-3.0.2 \ - clap_builder-4.5.37 \ + clap_builder-4.5.38 \ clap_complete-4.5.50 \ clap_derive-4.5.32 \ clap_lex-0.7.4 \ @@ -38,7 +38,7 @@ CARGO_CRATES= addr2line-0.24.2 \ encode_unicode-1.0.0 \ env_filter-0.1.3 \ env_logger-0.11.8 \ - errno-0.3.11 \ + errno-0.3.12 \ fastrand-2.3.0 \ ffprobe-0.4.0 \ fs2-0.4.3 \ diff --git a/multimedia/ab-av1/distinfo b/multimedia/ab-av1/distinfo index b48cadbb19fb..4d354e6a6295 100644 --- a/multimedia/ab-av1/distinfo +++ b/multimedia/ab-av1/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746894576 +TIMESTAMP = 1747488858 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -29,8 +29,8 @@ SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e2 SIZE (rust/crates/backtrace-0.3.75.crate) = 92665 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 -SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd -SIZE (rust/crates/bitflags-2.9.0.crate) = 47654 +SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967 +SIZE (rust/crates/bitflags-2.9.1.crate) = 47913 SHA256 (rust/crates/blake3-1.8.2.crate) = 3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0 SIZE (rust/crates/blake3-1.8.2.crate) = 205967 SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf @@ -39,16 +39,16 @@ SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353 SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a SIZE (rust/crates/bytes-1.10.1.crate) = 76779 -SHA256 (rust/crates/cc-1.2.22.crate) = 32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1 -SIZE (rust/crates/cc-1.2.22.crate) = 106294 +SHA256 (rust/crates/cc-1.2.23.crate) = 5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766 +SIZE (rust/crates/cc-1.2.23.crate) = 106527 SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 -SHA256 (rust/crates/clap-4.5.37.crate) = eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071 -SIZE (rust/crates/clap-4.5.37.crate) = 56962 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 SHA256 (rust/crates/clap-verbosity-flag-3.0.2.crate) = 2678fade3b77aa3a8ff3aae87e9c008d3fb00473a41c71fbf74e91c8c7b37e84 SIZE (rust/crates/clap-verbosity-flag-3.0.2.crate) = 14866 -SHA256 (rust/crates/clap_builder-4.5.37.crate) = efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2 -SIZE (rust/crates/clap_builder-4.5.37.crate) = 168761 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 SHA256 (rust/crates/clap_complete-4.5.50.crate) = c91d3baa3bcd889d60e6ef28874126a0b384fd225ab83aa6d8a801c519194ce1 SIZE (rust/crates/clap_complete-4.5.50.crate) = 48292 SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 @@ -79,8 +79,8 @@ SHA256 (rust/crates/env_filter-0.1.3.crate) = 186e05a59d4c50738528153b83b0b0194d SIZE (rust/crates/env_filter-0.1.3.crate) = 15191 SHA256 (rust/crates/env_logger-0.11.8.crate) = 13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f SIZE (rust/crates/env_logger-0.11.8.crate) = 32538 -SHA256 (rust/crates/errno-0.3.11.crate) = 976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e -SIZE (rust/crates/errno-0.3.11.crate) = 12048 +SHA256 (rust/crates/errno-0.3.12.crate) = cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18 +SIZE (rust/crates/errno-0.3.12.crate) = 12423 SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 SHA256 (rust/crates/ffprobe-0.4.0.crate) = 8ffef835e1f9ac151db5bb2adbb95c9dfe1f315f987f011dd89cd655b4e9a52c @@ -279,5 +279,5 @@ SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681 SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 -SHA256 (alexheretic-ab-av1-v0.10.0_GH0.tar.gz) = 39f952847a7b57b0ad02f8c479ffcdc6de3fb86155375d2b0c3b5a14a212159f -SIZE (alexheretic-ab-av1-v0.10.0_GH0.tar.gz) = 58956 +SHA256 (alexheretic-ab-av1-v0.10.1_GH0.tar.gz) = 837c3016f6eeca3ea174bdaffcc9bb29cc4917a05f43367579b8b0d7bf68db15 +SIZE (alexheretic-ab-av1-v0.10.1_GH0.tar.gz) = 59126 diff --git a/multimedia/celluloid/Makefile b/multimedia/celluloid/Makefile index da685af785e3..187d220143ee 100644 --- a/multimedia/celluloid/Makefile +++ b/multimedia/celluloid/Makefile @@ -1,5 +1,5 @@ PORTNAME= celluloid -DISTVERSION= 0.28 +DISTVERSION= 0.29 CATEGORIES= multimedia MASTER_SITES= https://github.com/${PORTNAME}-player/${PORTNAME}/releases/download/v${DISTVERSION}/ @@ -19,4 +19,7 @@ USE_GNOME= gdkpixbuf gtk40 libadwaita GLIB_SCHEMAS= io.github.celluloid_player.Celluloid.gschema.xml SHEBANG_FILES= meson-post-install.py src/generate-authors.py +do-test: + cd ${BUILD_WRKSRC} && ${DO_MAKE_BUILD} test + .include <bsd.port.mk> diff --git a/multimedia/celluloid/distinfo b/multimedia/celluloid/distinfo index 15e010d2be83..8f1e06b0a73c 100644 --- a/multimedia/celluloid/distinfo +++ b/multimedia/celluloid/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1743777276 -SHA256 (celluloid-0.28.tar.xz) = 5b36fdf0dfff873d149655064350e370872dc54226dd2cbfcc02fa0c107e533a -SIZE (celluloid-0.28.tar.xz) = 358184 +TIMESTAMP = 1747507527 +SHA256 (celluloid-0.29.tar.xz) = 5b9991557cc2764a8281a24aa726a645287eb075cde0f0ae7c737965264a119c +SIZE (celluloid-0.29.tar.xz) = 362568 diff --git a/multimedia/jellyfin-media-player/Makefile b/multimedia/jellyfin-media-player/Makefile index 89dc92c82e16..22b6266e143c 100644 --- a/multimedia/jellyfin-media-player/Makefile +++ b/multimedia/jellyfin-media-player/Makefile @@ -1,6 +1,7 @@ PORTNAME= jellyfin-media-player DISTVERSIONPREFIX= v DISTVERSION= 1.12.0 +PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= bapt@FreeBSD.org @@ -17,7 +18,7 @@ USE_GITHUB= yes GH_ACCOUNT= jellyfin USE_QT= core gui network webengine webchannel dbus qmake buildtools \ - xml x11extras + quickcontrols xml x11extras USE_SDL= sdl2 USE_XORG= xext diff --git a/multimedia/jellyfin/Makefile b/multimedia/jellyfin/Makefile index 70653762967c..20d9e1c65195 100644 --- a/multimedia/jellyfin/Makefile +++ b/multimedia/jellyfin/Makefile @@ -1,5 +1,5 @@ PORTNAME= jellyfin -DISTVERSION= 10.10.6 +DISTVERSION= 10.10.7 CATEGORIES= multimedia DISTFILES+= ${PREFETCH_FILE}:prefetch EXTRACT_ONLY+= ${PORTNAME}-${PORTNAME}-${GH_TAGNAME}_GH0.tar.gz \ @@ -71,7 +71,7 @@ ICU4N:60.1.0-alpha.356 \ IDisposableAnalyzers:4.0.8 \ J2N:2.0.0 \ Jellyfin.XmlTv:10.8.0 \ -LrcParser:2024.728.2 \ +LrcParser:2025.228.1 \ MetaBrainz.Common.Json:6.0.2 \ MetaBrainz.Common:3.0.0 \ MetaBrainz.MusicBrainz:6.1.0 \ @@ -373,7 +373,7 @@ runtime.unix.system.io.filesystem:4.3.0 \ runtime.unix.system.net.primitives:4.3.0 \ runtime.unix.system.private.uri:4.3.0 \ runtime.unix.system.runtime.extensions:4.3.0 \ -z440.atl.core:6.16.0 \ +z440.atl.core:6.20.0 \ Ude.NetStandard:1.2.0 \ SUB_FILES= jellyfin pkg-message diff --git a/multimedia/jellyfin/distinfo b/multimedia/jellyfin/distinfo index 172aec81e7b5..962112673f67 100644 --- a/multimedia/jellyfin/distinfo +++ b/multimedia/jellyfin/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1740486325 -SHA256 (jellyfin-10.10.6-node-modules.tar.gz) = 08589793cfbdce28eded95d5cc3ff2bcf1803c5d972c4848c9d28ee3691e93cb -SIZE (jellyfin-10.10.6-node-modules.tar.gz) = 462459348 +TIMESTAMP = 1747300383 +SHA256 (jellyfin-10.10.7-node-modules.tar.gz) = 08589793cfbdce28eded95d5cc3ff2bcf1803c5d972c4848c9d28ee3691e93cb +SIZE (jellyfin-10.10.7-node-modules.tar.gz) = 462459348 SHA256 (nuget/asynckeyedlock.7.0.2.nupkg) = 5053ed6bcc96b6e161a5fcbb3a9064503427c8ef133835c4134cc0eae6f3d503 SIZE (nuget/asynckeyedlock.7.0.2.nupkg) = 357035 SHA256 (nuget/autofixture.4.18.1.nupkg) = ade3fe6a86223dc223e066c22218dde7f3a1b9654b0ad0f884ab8b3c77b61172 @@ -71,8 +71,8 @@ SHA256 (nuget/jellyfin.xmltv.10.8.0.nupkg) = fdefc9430f5bca0005cd90bead44c9a7860 SIZE (nuget/jellyfin.xmltv.10.8.0.nupkg) = 38910 SHA256 (nuget/libse.4.0.8.nupkg) = 035ee4e46a4cb58dd14aa6400de3f8462f4b2979156bd8c7a38f938a99fb06cf SIZE (nuget/libse.4.0.8.nupkg) = 1933266 -SHA256 (nuget/lrcparser.2024.728.2.nupkg) = 7efd0e9027d711c5c9a99725ef40a1dcf76eba89a084f0b62ec70753b9c5b677 -SIZE (nuget/lrcparser.2024.728.2.nupkg) = 35205 +SHA256 (nuget/lrcparser.2025.228.1.nupkg) = d69e3bd565f6e6b6296f43ffab7b048f7e6f2cb6bc42fa2401b2cee3b0fbc133 +SIZE (nuget/lrcparser.2025.228.1.nupkg) = 35207 SHA256 (nuget/metabrainz.common.3.0.0.nupkg) = 3fe5d34217dfa925489f465b0b936997cd31971d50607a0bd32db4293bca472d SIZE (nuget/metabrainz.common.3.0.0.nupkg) = 54538 SHA256 (nuget/metabrainz.common.json.6.0.2.nupkg) = e08705f71659988dc7ed6022b8dda42bad413174b8821d93d96ac2aa4c10857f @@ -671,11 +671,11 @@ SHA256 (nuget/xunit.runner.visualstudio.2.5.8.nupkg) = ef5117c5e477ca26530160959 SIZE (nuget/xunit.runner.visualstudio.2.5.8.nupkg) = 580504 SHA256 (nuget/xunit.skippablefact.1.4.13.nupkg) = a4bb71d3fda84ca60ed58d5583793f1258b63961d3e6ea2b19d069dae5ef15fc SIZE (nuget/xunit.skippablefact.1.4.13.nupkg) = 46061 -SHA256 (nuget/z440.atl.core.6.16.0.nupkg) = 27c3abcedfc7f3822c70767da7b8448daedb9307ae2ec64daaef57ce652340cd -SIZE (nuget/z440.atl.core.6.16.0.nupkg) = 792382 +SHA256 (nuget/z440.atl.core.6.20.0.nupkg) = f0b74b536c20751db56c45d3070efe45d6cb601334bc745984abf66698952f8e +SIZE (nuget/z440.atl.core.6.20.0.nupkg) = 795606 SHA256 (nuget/zlib.net-mutliplatform.1.0.8.nupkg) = d5c2e464927e2f267eb3978c09c4e500d9c5dbe53bce680d861567da8febe33d SIZE (nuget/zlib.net-mutliplatform.1.0.8.nupkg) = 82188 -SHA256 (jellyfin-jellyfin-v10.10.6_GH0.tar.gz) = 77aad87db2bf59bf25d1496c5fa92c92c93738d1a80fc6d53308db5850bf2818 -SIZE (jellyfin-jellyfin-v10.10.6_GH0.tar.gz) = 1612176 -SHA256 (jellyfin-jellyfin-web-v10.10.6_GH0.tar.gz) = 690ed4f2e65137028896dbd77be41d5968d87203911ea5da53fa513bd370d2c7 -SIZE (jellyfin-jellyfin-web-v10.10.6_GH0.tar.gz) = 4688912 +SHA256 (jellyfin-jellyfin-v10.10.7_GH0.tar.gz) = 797db59e50e33ecf85562f6c49651963bd5f00dd9cb74bf89dd905513c8207ec +SIZE (jellyfin-jellyfin-v10.10.7_GH0.tar.gz) = 1612838 +SHA256 (jellyfin-jellyfin-web-v10.10.7_GH0.tar.gz) = a2d85672e6423350dd16450d8f49ad933ac18ad9b72a240b829439bd0c748466 +SIZE (jellyfin-jellyfin-web-v10.10.7_GH0.tar.gz) = 4689038 diff --git a/multimedia/jellyfin/pkg-plist b/multimedia/jellyfin/pkg-plist index c62a0eb9f6ba..df841cc7ae5e 100644 --- a/multimedia/jellyfin/pkg-plist +++ b/multimedia/jellyfin/pkg-plist @@ -793,7 +793,7 @@ jellyfin/jellyfin-web/32894.1e1322489c09cd3f42bc.chunk.js jellyfin/jellyfin-web/32896.b3c1273f2a5bc0e1175b.chunk.js jellyfin/jellyfin-web/32942.59c21f977b19f19136f0.chunk.js jellyfin/jellyfin-web/32942.9a50ff90b2b3ace4a016.css -jellyfin/jellyfin-web/32947.90df32c8d3f53a21694e.chunk.js +jellyfin/jellyfin-web/32947.d78442e50a162dbce2bb.chunk.js jellyfin/jellyfin-web/32dce158afd873414aa7.woff2 jellyfin/jellyfin-web/32f05218512836e57e15.woff2 jellyfin/jellyfin-web/33188.735cade0964576a82a27.chunk.js @@ -1741,8 +1741,8 @@ jellyfin/jellyfin-web/90207.a89eedd3cd4076d19d32.chunk.js jellyfin/jellyfin-web/90285.214e8119655fedae83bf.chunk.js jellyfin/jellyfin-web/9050afe28ce54a1a4cec.woff2 jellyfin/jellyfin-web/9070.dd7d6859f3953302cc63.chunk.js -jellyfin/jellyfin-web/90742.9bc4825e3be97071537f.chunk.js -jellyfin/jellyfin-web/90742.9bc4825e3be97071537f.chunk.js.LICENSE.txt +jellyfin/jellyfin-web/90742.7af9e651a0156bc53b1f.chunk.js +jellyfin/jellyfin-web/90742.7af9e651a0156bc53b1f.chunk.js.LICENSE.txt jellyfin/jellyfin-web/90746293bb9849eb999a.woff2 jellyfin/jellyfin-web/90810.19be4944e7a0c3ff5c5f.chunk.js jellyfin/jellyfin-web/909b9f77026830e8c4a0.woff2 @@ -2500,7 +2500,7 @@ jellyfin/jellyfin-web/lyrics-html.db9cbaac9c5d9410629e.chunk.js jellyfin/jellyfin-web/lyrics-types.f5753181408e55e324d3.chunk.js jellyfin/jellyfin-web/lyrics.26b6e6745440158c640e.css jellyfin/jellyfin-web/lyrics.d98217e9559116b4b882.chunk.js -jellyfin/jellyfin-web/main.jellyfin.10f804f8ccd54d000c70.css +jellyfin/jellyfin-web/main.jellyfin.7d6eaeb032d03eb0ae47.css jellyfin/jellyfin-web/main.jellyfin.bundle.js jellyfin/jellyfin-web/main.jellyfin.bundle.js.LICENSE.txt jellyfin/jellyfin-web/manifest.json @@ -2626,7 +2626,7 @@ jellyfin/jellyfin-web/playback-queue.c653d5bd7506c141c6c5.css jellyfin/jellyfin-web/playback-trickplay.3dc9df5b5fe7403094b4.chunk.js jellyfin/jellyfin-web/playback-video-index-html.fb812af814e8c8697a00.chunk.js jellyfin/jellyfin-web/playback-video.b8faed552e6c7ee0a388.css -jellyfin/jellyfin-web/plugins-plugin.a7b5c7e03ccf04725ec5.chunk.js +jellyfin/jellyfin-web/plugins-plugin.f94d938bdddf3ed4eea5.chunk.js jellyfin/jellyfin-web/pr-json.ebd2934674c4ff6f095b.chunk.js jellyfin/jellyfin-web/pt-br-json.a7287a851710323a3ad7.chunk.js jellyfin/jellyfin-web/pt-json.1819a488d7b7123510d9.chunk.js diff --git a/multimedia/kew/Makefile b/multimedia/kew/Makefile index c6dd995599d7..2ac312901f06 100644 --- a/multimedia/kew/Makefile +++ b/multimedia/kew/Makefile @@ -1,6 +1,6 @@ PORTNAME= kew DISTVERSIONPREFIX= v -DISTVERSION= 3.2.0 +DISTVERSION= 3.3.2 CATEGORIES= multimedia MAINTAINER= yuri@FreeBSD.org diff --git a/multimedia/kew/distinfo b/multimedia/kew/distinfo index a37e50d3bd1d..6303c1b82d00 100644 --- a/multimedia/kew/distinfo +++ b/multimedia/kew/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745472344 -SHA256 (ravachol-kew-v3.2.0_GH0.tar.gz) = 40756969ded1a9737424e13b62c75b77d08443102b575719c778b5dc7fa71cfc -SIZE (ravachol-kew-v3.2.0_GH0.tar.gz) = 1177573 +TIMESTAMP = 1747375496 +SHA256 (ravachol-kew-v3.3.2_GH0.tar.gz) = fb9370e78da2861cbae9ebf2b16e77a4fbba964999fd19e311184b50b117a6ca +SIZE (ravachol-kew-v3.3.2_GH0.tar.gz) = 1171697 diff --git a/multimedia/mediamtx/Makefile b/multimedia/mediamtx/Makefile index 17372698db8b..b1141942cc0b 100644 --- a/multimedia/mediamtx/Makefile +++ b/multimedia/mediamtx/Makefile @@ -1,6 +1,6 @@ PORTNAME= mediamtx DISTVERSIONPREFIX= v -DISTVERSION= 1.12.0 +DISTVERSION= 1.12.2 CATEGORIES= multimedia net MASTER_SITES+= https://github.com/video-dev/hls.js/releases/download/v1.6.2/ DISTFILES+= release.zip diff --git a/multimedia/mediamtx/distinfo b/multimedia/mediamtx/distinfo index c42843bf315f..6c49be33a60a 100644 --- a/multimedia/mediamtx/distinfo +++ b/multimedia/mediamtx/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1744742593 -SHA256 (go/multimedia_mediamtx/mediamtx-v1.12.0/release.zip) = d9c80634bcf683fb3b56c9bc2587a5d1dd883901d7278602abb87458c8d5eaf7 -SIZE (go/multimedia_mediamtx/mediamtx-v1.12.0/release.zip) = 5402144 -SHA256 (go/multimedia_mediamtx/mediamtx-v1.12.0/v1.12.0.mod) = e3abffb48da4f3b2b4ff60bf19c00cee2ad78f95f2ab52bf01c012e1a9ec741c -SIZE (go/multimedia_mediamtx/mediamtx-v1.12.0/v1.12.0.mod) = 4238 -SHA256 (go/multimedia_mediamtx/mediamtx-v1.12.0/v1.12.0.zip) = 6cab73c0bf4a68896cda980b21d04f03ebce351e3fe1e8d86b4020aef646e596 -SIZE (go/multimedia_mediamtx/mediamtx-v1.12.0/v1.12.0.zip) = 614087 +TIMESTAMP = 1746574256 +SHA256 (go/multimedia_mediamtx/mediamtx-v1.12.2/release.zip) = d9c80634bcf683fb3b56c9bc2587a5d1dd883901d7278602abb87458c8d5eaf7 +SIZE (go/multimedia_mediamtx/mediamtx-v1.12.2/release.zip) = 5402144 +SHA256 (go/multimedia_mediamtx/mediamtx-v1.12.2/v1.12.2.mod) = c1205066a1085e67ae531237d0021ebfb291fc917778928caf93be42eb2beabc +SIZE (go/multimedia_mediamtx/mediamtx-v1.12.2/v1.12.2.mod) = 4238 +SHA256 (go/multimedia_mediamtx/mediamtx-v1.12.2/v1.12.2.zip) = 42fe25a9bcede0eb87c5b525a162820b2fba770e094e8a2ae588ff082ae98249 +SIZE (go/multimedia_mediamtx/mediamtx-v1.12.2/v1.12.2.zip) = 617687 diff --git a/multimedia/v4l_compat/Makefile b/multimedia/v4l_compat/Makefile index 0a6032ed5f51..66b4a01df078 100644 --- a/multimedia/v4l_compat/Makefile +++ b/multimedia/v4l_compat/Makefile @@ -1,5 +1,5 @@ PORTNAME= v4l_compat -PORTREVISION= 6 +PORTREVISION= 7 COMMENT= Video4Linux IOCTL header files WWW= https://linuxtv.org @@ -12,8 +12,8 @@ DESCR= ${.CURDIR}/pkg-descr PLIST= ${.CURDIR}/pkg-plist BASE_HEADERS= \ - linux/cec.h \ linux/cec-funcs.h \ + linux/cec.h \ linux/const.h \ linux/dvb/audio.h \ linux/dvb/ca.h \ @@ -25,17 +25,19 @@ BASE_HEADERS= \ linux/dvb/video.h \ linux/ivtv.h \ linux/lirc.h \ - linux/media.h \ linux/media-bus-format.h \ + linux/media.h \ linux/uvcvideo.h \ linux/v4l2-common.h \ linux/v4l2-controls.h \ linux/v4l2-mediabus.h \ linux/v4l2-subdev.h \ - linux/videodev2.h + linux/videodev2.h \ + linux/usb/video.h do-install: @${MKDIR} ${STAGEDIR}${PREFIX}/include/linux/dvb + @${MKDIR} ${STAGEDIR}${PREFIX}/include/linux/usb .for F in ${BASE_HEADERS} ${INSTALL_DATA} \ diff --git a/multimedia/v4l_compat/pkg-plist b/multimedia/v4l_compat/pkg-plist index 7a86862f9936..4955f54ce566 100644 --- a/multimedia/v4l_compat/pkg-plist +++ b/multimedia/v4l_compat/pkg-plist @@ -1,5 +1,5 @@ -include/linux/cec.h include/linux/cec-funcs.h +include/linux/cec.h include/linux/const.h include/linux/dvb/audio.h include/linux/dvb/ca.h @@ -11,9 +11,10 @@ include/linux/dvb/version.h include/linux/dvb/video.h include/linux/ivtv.h include/linux/lirc.h -include/linux/media.h include/linux/media-bus-format.h +include/linux/media.h include/linux/types.h +include/linux/usb/video.h include/linux/uvcvideo.h include/linux/v4l2-common.h include/linux/v4l2-controls.h diff --git a/net-im/conduit/Makefile b/net-im/conduit/Makefile index 566c4875fc53..53ba3a74c145 100644 --- a/net-im/conduit/Makefile +++ b/net-im/conduit/Makefile @@ -1,7 +1,6 @@ PORTNAME= conduit DISTVERSIONPREFIX= v -DISTVERSION= 0.9.0 -PORTREVISION= 5 +DISTVERSION= 0.10.3 CATEGORIES= net-im PKGNAMEPREFIX= matrix- @@ -15,6 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_i386= fails to build BUILD_DEPENDS= ${LOCALBASE}/llvm${LLVM_DEFAULT}/lib/libclang.so:devel/llvm${LLVM_DEFAULT} +LIB_DEPENDS= librocksdb.so:databases/rocksdb RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss USES= cargo gmake @@ -32,7 +32,7 @@ DBDIR= /var/db/${PORTNAME} USE_GITLAB= yes GL_ACCOUNT= famedly -GL_TAGNAME= f8d7ef04e664580e882bac852877b68e7bd3ab1e +GL_TAGNAME= ff7b2af80db5e5dd2dddc02e42e8fd27abb6955f .include <bsd.port.pre.mk> @@ -44,7 +44,7 @@ CARGO_ENV+= CARGO_PROFILE_RELEASE_LTO=false post-patch: @${REINPLACE_CMD} -e 's,/etc/conduit.toml,${PREFIX}/etc/conduit.toml,' \ ${WRKSRC}/src/main.rs - @${REINPLACE_CMD} -e 's,/var/lib/conduit,${DBDIR},' \ + @${REINPLACE_CMD} -e 's,/var/lib/matrix-conduit,${DBDIR},' \ ${WRKSRC}/conduit-example.toml post-install: diff --git a/net-im/conduit/Makefile.crates b/net-im/conduit/Makefile.crates index 9178ad29cef0..1e7628946c1f 100644 --- a/net-im/conduit/Makefile.crates +++ b/net-im/conduit/Makefile.crates @@ -1,49 +1,50 @@ -CARGO_CRATES= addr2line-0.22.0 \ +CARGO_CRATES= addr2line-0.24.2 \ adler-1.0.2 \ - ahash-0.8.11 \ + adler2-2.0.0 \ aho-corasick-1.1.3 \ - anstyle-1.0.7 \ + android-tzdata-0.1.1 \ + android_system_properties-0.1.5 \ + anstyle-1.0.10 \ anyhow-1.0.86 \ arc-swap-1.7.1 \ arrayref-0.3.7 \ arrayvec-0.7.4 \ as_variant-1.2.0 \ assign-1.1.1 \ - async-stream-0.3.5 \ - async-stream-impl-0.3.5 \ - async-trait-0.1.80 \ + async-trait-0.1.88 \ atomic-0.6.0 \ atomic-waker-1.1.2 \ - autocfg-1.3.0 \ - axum-0.6.20 \ - axum-0.7.5 \ - axum-core-0.3.4 \ - axum-core-0.4.3 \ - axum-extra-0.9.3 \ + autocfg-1.4.0 \ + axum-0.7.9 \ + axum-core-0.4.5 \ + axum-extra-0.9.6 \ axum-server-0.6.0 \ - backtrace-0.3.72 \ + backtrace-0.3.74 \ base64-0.21.7 \ base64-0.22.1 \ base64ct-1.6.0 \ - bindgen-0.69.4 \ + bindgen-0.69.5 \ bitflags-1.3.2 \ - bitflags-2.5.0 \ + bitflags-2.9.0 \ blake2b_simd-1.0.2 \ block-buffer-0.10.4 \ - bumpalo-3.16.0 \ - bytemuck-1.16.0 \ + bumpalo-3.17.0 \ + bytemuck-1.22.0 \ byteorder-1.5.0 \ - bytes-1.6.0 \ + byteorder-lite-0.1.0 \ + bytes-1.10.1 \ + bytesize-2.0.1 \ bzip2-sys-0.1.11+1.0.8 \ - cc-1.0.98 \ + cc-1.2.21 \ cexpr-0.6.0 \ cfg-if-1.0.0 \ - cfg_aliases-0.1.1 \ + cfg_aliases-0.2.1 \ + chrono-0.4.40 \ clang-sys-1.8.1 \ - clap-4.5.4 \ - clap_builder-4.5.2 \ - clap_derive-4.5.4 \ - clap_lex-0.7.0 \ + clap-4.5.37 \ + clap_builder-4.5.37 \ + clap_derive-4.5.32 \ + clap_lex-0.7.4 \ color_quant-1.1.0 \ const-oid-0.9.6 \ const_panic-0.2.8 \ @@ -51,10 +52,10 @@ CARGO_CRATES= addr2line-0.22.0 \ core-foundation-0.9.4 \ core-foundation-sys-0.8.6 \ cpufeatures-0.2.12 \ - crc-3.2.1 \ - crc-catalog-2.4.0 \ crc32fast-1.4.2 \ + critical-section-1.2.0 \ crossbeam-channel-0.5.13 \ + crossbeam-epoch-0.9.18 \ crossbeam-utils-0.8.20 \ crypto-common-0.1.6 \ curve25519-dalek-4.1.2 \ @@ -62,121 +63,139 @@ CARGO_CRATES= addr2line-0.22.0 \ data-encoding-2.6.0 \ date_header-1.0.5 \ der-0.7.9 \ - deranged-0.3.11 \ + deranged-0.4.0 \ digest-0.10.7 \ - directories-5.0.1 \ - dirs-sys-0.4.1 \ + directories-6.0.0 \ + dirs-sys-0.5.0 \ + displaydoc-0.2.5 \ ed25519-2.2.3 \ ed25519-dalek-2.1.1 \ either-1.12.0 \ + encoding_rs-0.8.35 \ enum-as-inner-0.6.0 \ - equivalent-1.0.1 \ + equivalent-1.0.2 \ fallible-iterator-0.3.0 \ fallible-streaming-iterator-0.1.9 \ + fastrand-2.3.0 \ fdeflate-0.3.4 \ fiat-crypto-0.2.9 \ figment-0.10.19 \ flate2-1.0.30 \ fnv-1.0.7 \ + foldhash-0.1.5 \ form_urlencoded-1.2.1 \ - fs2-0.4.3 \ - 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 \ + futures-channel-0.3.31 \ + futures-core-0.3.31 \ + futures-executor-0.3.31 \ + futures-io-0.3.31 \ + futures-macro-0.3.31 \ + futures-sink-0.3.31 \ + futures-task-0.3.31 \ + futures-util-0.3.31 \ + generator-0.8.4 \ generic-array-0.14.7 \ - getrandom-0.2.15 \ + getrandom-0.2.16 \ + getrandom-0.3.2 \ gif-0.13.1 \ - gimli-0.29.0 \ - glob-0.3.1 \ - h2-0.3.26 \ - h2-0.4.5 \ + gimli-0.31.1 \ + glob-0.3.2 \ + h2-0.4.8 \ hashbrown-0.12.3 \ - hashbrown-0.14.5 \ - hashlink-0.9.1 \ + hashbrown-0.15.3 \ + hashlink-0.10.0 \ headers-0.4.0 \ headers-core-0.3.0 \ heck-0.4.1 \ heck-0.5.0 \ hermit-abi-0.3.9 \ - hickory-proto-0.24.1 \ - hickory-resolver-0.24.1 \ + hex-0.4.3 \ + hickory-proto-0.25.2 \ + hickory-resolver-0.25.2 \ hmac-0.12.1 \ hostname-0.3.1 \ - http-0.2.12 \ - http-1.1.0 \ + http-1.3.1 \ http-auth-0.1.9 \ - http-body-0.4.6 \ - http-body-1.0.0 \ + http-body-1.0.1 \ http-body-util-0.1.1 \ - httparse-1.9.4 \ + httparse-1.10.1 \ httpdate-1.0.3 \ - hyper-0.14.29 \ - hyper-1.3.1 \ + humantime-2.2.0 \ + humantime-serde-1.1.1 \ + hyper-1.6.0 \ hyper-rustls-0.26.0 \ - hyper-timeout-0.4.1 \ + hyper-timeout-0.5.1 \ hyper-util-0.1.5 \ - idna-0.4.0 \ - idna-0.5.0 \ + iana-time-zone-0.1.63 \ + iana-time-zone-haiku-0.1.2 \ + icu_collections-2.0.0 \ + icu_locale_core-2.0.0 \ + icu_normalizer-2.0.0 \ + icu_normalizer_data-2.0.0 \ + icu_properties-2.0.0 \ + icu_properties_data-2.0.0 \ + icu_provider-2.0.0 \ + idna-1.0.3 \ + idna_adapter-1.2.1 \ image-0.25.1 \ + image-webp-0.1.3 \ indexmap-1.9.3 \ - indexmap-2.2.6 \ + indexmap-2.9.0 \ inlinable_string-0.1.15 \ ipconfig-0.3.2 \ ipnet-2.9.0 \ itertools-0.12.1 \ - itoa-1.0.11 \ - jobserver-0.1.31 \ - js-sys-0.3.69 \ + itoa-1.0.15 \ + jobserver-0.1.33 \ + js-sys-0.3.74 \ js_int-0.2.2 \ js_option-0.1.1 \ - jsonwebtoken-9.3.0 \ + jsonwebtoken-9.3.1 \ konst-0.3.9 \ konst_kernel-0.3.9 \ - lazy_static-1.4.0 \ + lazy_static-1.5.0 \ lazycell-1.3.0 \ - libc-0.2.155 \ + libc-0.2.172 \ libloading-0.8.3 \ libredox-0.1.3 \ - libsqlite3-sys-0.28.0 \ + libsqlite3-sys-0.33.0 \ libz-sys-1.1.18 \ linked-hash-map-0.5.6 \ + litemap-0.8.0 \ lock_api-0.4.12 \ - log-0.4.21 \ + log-0.4.27 \ + loom-0.7.2 \ lru-cache-0.1.2 \ - lz4-sys-1.9.4 \ + lz4-sys-1.11.1+lz4-1.10.0 \ maplit-1.0.2 \ match_cfg-0.1.0 \ matchers-0.1.0 \ matchit-0.7.3 \ - memchr-2.7.2 \ + memchr-2.7.4 \ mime-0.3.17 \ minimal-lexical-0.2.1 \ - miniz_oxide-0.7.3 \ - mio-0.8.11 \ - nix-0.28.0 \ + miniz_oxide-0.7.4 \ + miniz_oxide-0.8.8 \ + mio-1.0.3 \ + moka-0.12.10 \ + multer-3.1.0 \ + nix-0.30.1 \ nom-7.1.3 \ nu-ansi-term-0.46.0 \ - num-bigint-0.4.5 \ + num-bigint-0.4.6 \ num-conv-0.1.0 \ num-integer-0.1.46 \ num-traits-0.2.19 \ num_cpus-1.16.0 \ - object-0.35.0 \ - once_cell-1.19.0 \ + object-0.36.7 \ + once_cell-1.21.3 \ openssl-probe-0.1.5 \ - opentelemetry-0.22.0 \ - opentelemetry-jaeger-propagator-0.1.0 \ - opentelemetry-otlp-0.15.0 \ - opentelemetry-proto-0.5.0 \ - opentelemetry-semantic-conventions-0.14.0 \ - opentelemetry_sdk-0.22.1 \ + opentelemetry-0.29.1 \ + opentelemetry-http-0.29.0 \ + opentelemetry-jaeger-propagator-0.29.0 \ + opentelemetry-otlp-0.29.0 \ + opentelemetry-proto-0.29.0 \ + opentelemetry_sdk-0.29.0 \ option-ext-0.2.0 \ - ordered-float-4.2.0 \ overload-0.1.1 \ parking_lot-0.12.3 \ parking_lot_core-0.9.10 \ @@ -184,41 +203,47 @@ CARGO_CRATES= addr2line-0.22.0 \ pear_codegen-0.2.9 \ pem-3.0.4 \ percent-encoding-2.3.1 \ - persy-1.5.0 \ pin-project-1.1.5 \ pin-project-internal-1.1.5 \ - pin-project-lite-0.2.14 \ + pin-project-lite-0.2.16 \ pin-utils-0.1.0 \ pkcs8-0.10.2 \ - pkg-config-0.3.30 \ + pkg-config-0.3.32 \ platforms-3.4.0 \ png-0.17.13 \ + portable-atomic-1.11.0 \ + potential_utf-0.1.2 \ powerfmt-0.2.0 \ - ppv-lite86-0.2.17 \ + ppv-lite86-0.2.21 \ proc-macro-crate-3.1.0 \ - proc-macro2-1.0.85 \ + proc-macro2-1.0.95 \ proc-macro2-diagnostics-0.10.1 \ - prost-0.12.6 \ - prost-derive-0.12.6 \ + prost-0.13.5 \ + prost-derive-0.13.5 \ quick-error-1.2.3 \ - quote-1.0.36 \ + quick-error-2.0.1 \ + quote-1.0.40 \ + r-efi-5.2.0 \ rand-0.8.5 \ + rand-0.9.1 \ rand_chacha-0.3.1 \ + rand_chacha-0.9.0 \ rand_core-0.6.4 \ - redox_syscall-0.5.1 \ - redox_users-0.4.5 \ - regex-1.10.4 \ + rand_core-0.9.3 \ + redox_syscall-0.5.7 \ + redox_users-0.5.0 \ + regex-1.11.1 \ regex-automata-0.1.10 \ - regex-automata-0.4.6 \ + regex-automata-0.4.9 \ regex-syntax-0.6.29 \ - regex-syntax-0.8.3 \ + regex-syntax-0.8.5 \ reqwest-0.12.4 \ resolv-conf-0.7.0 \ - ring-0.17.8 \ - rusqlite-0.31.0 \ + ring-0.17.14 \ + rusqlite-0.35.0 \ rust-argon2-2.1.0 \ - rust-librocksdb-sys-0.21.0+9.1.1 \ - rust-rocksdb-0.25.0 \ + rust-librocksdb-sys-0.37.0+10.2.1 \ + rust-rocksdb-0.41.0 \ rustc-demangle-0.1.24 \ rustc-hash-1.1.0 \ rustc_version-0.4.0 \ @@ -226,24 +251,25 @@ CARGO_CRATES= addr2line-0.22.0 \ rustls-0.22.4 \ rustls-native-certs-0.7.0 \ rustls-pemfile-2.1.2 \ - rustls-pki-types-1.7.0 \ + rustls-pki-types-1.12.0 \ rustls-webpki-0.101.7 \ rustls-webpki-0.102.4 \ rustversion-1.0.17 \ - ryu-1.0.18 \ + ryu-1.0.20 \ schannel-0.1.23 \ + scoped-tls-1.0.1 \ scopeguard-1.2.0 \ sct-0.7.1 \ - sd-notify-0.4.1 \ + sd-notify-0.4.5 \ security-framework-2.11.0 \ security-framework-sys-2.11.0 \ semver-1.0.23 \ - serde-1.0.203 \ - serde_derive-1.0.203 \ - serde_html_form-0.2.6 \ - serde_json-1.0.117 \ + serde-1.0.219 \ + serde_derive-1.0.219 \ + serde_html_form-0.2.7 \ + serde_json-1.0.140 \ serde_path_to_error-0.1.16 \ - serde_spanned-0.6.6 \ + serde_spanned-0.6.8 \ serde_urlencoded-0.7.1 \ serde_yaml-0.9.34+deprecated \ sha-1-0.10.1 \ @@ -251,80 +277,85 @@ CARGO_CRATES= addr2line-0.22.0 \ sha2-0.10.8 \ sharded-slab-0.1.7 \ shlex-1.3.0 \ - signal-hook-registry-1.4.2 \ + signal-hook-registry-1.4.5 \ signature-2.2.0 \ simd-adler32-0.3.7 \ simple_asn1-0.6.2 \ slab-0.4.9 \ - smallvec-1.13.2 \ - socket2-0.5.7 \ + smallvec-1.15.0 \ + socket2-0.5.9 \ spin-0.9.8 \ spki-0.7.3 \ + stable_deref_trait-1.2.0 \ subslice-0.2.3 \ subtle-2.5.0 \ - syn-2.0.66 \ + syn-2.0.101 \ sync_wrapper-0.1.2 \ sync_wrapper-1.0.1 \ - thiserror-1.0.61 \ - thiserror-impl-1.0.61 \ + synstructure-0.13.2 \ + tagptr-0.2.0 \ + thiserror-1.0.69 \ + thiserror-2.0.12 \ + thiserror-impl-1.0.69 \ + thiserror-impl-2.0.12 \ thread_local-1.1.8 \ threadpool-1.8.1 \ - tikv-jemalloc-sys-0.5.4+5.3.0-patched \ - tikv-jemallocator-0.5.4 \ - time-0.3.36 \ - time-core-0.1.2 \ - time-macros-0.2.18 \ + tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7 \ + tikv-jemallocator-0.6.0 \ + time-0.3.41 \ + time-core-0.1.4 \ + time-macros-0.2.22 \ + tinystr-0.8.1 \ tinyvec-1.6.0 \ tinyvec_macros-0.1.1 \ - tokio-1.38.0 \ - tokio-io-timeout-1.2.0 \ - tokio-macros-2.3.0 \ + tokio-1.45.0 \ + tokio-macros-2.5.0 \ tokio-rustls-0.24.1 \ tokio-rustls-0.25.0 \ tokio-socks-0.5.1 \ - tokio-stream-0.1.15 \ - tokio-util-0.7.11 \ - toml-0.8.14 \ - toml_datetime-0.6.6 \ + tokio-stream-0.1.17 \ + tokio-util-0.7.15 \ + toml-0.8.22 \ + toml_datetime-0.6.9 \ toml_edit-0.21.1 \ - toml_edit-0.22.14 \ - tonic-0.11.0 \ + toml_edit-0.22.26 \ + toml_write-0.1.1 \ + tonic-0.12.3 \ tower-0.4.13 \ + tower-0.5.2 \ tower-http-0.5.2 \ - tower-layer-0.3.2 \ - tower-service-0.3.2 \ - tracing-0.1.40 \ - tracing-attributes-0.1.27 \ - tracing-core-0.1.32 \ + tower-layer-0.3.3 \ + tower-service-0.3.3 \ + tracing-0.1.41 \ + tracing-attributes-0.1.28 \ + tracing-core-0.1.33 \ tracing-flame-0.2.0 \ tracing-log-0.2.0 \ - tracing-opentelemetry-0.23.0 \ - tracing-subscriber-0.3.18 \ + tracing-opentelemetry-0.30.0 \ + tracing-subscriber-0.3.19 \ try-lock-0.2.5 \ typenum-1.17.0 \ typewit-1.9.0 \ typewit_proc_macros-1.8.1 \ uncased-0.9.10 \ - unicode-bidi-0.3.15 \ - unicode-ident-1.0.12 \ - unicode-normalization-0.1.23 \ + unicode-ident-1.0.18 \ unsafe-libyaml-0.2.11 \ - unsigned-varint-0.8.0 \ untrusted-0.9.0 \ - url-2.5.0 \ - urlencoding-2.1.3 \ + url-2.5.4 \ + utf8_iter-1.0.4 \ uuid-1.8.0 \ valuable-0.1.0 \ vcpkg-0.2.15 \ - version_check-0.9.4 \ + version_check-0.9.5 \ want-0.3.1 \ wasi-0.11.0+wasi-snapshot-preview1 \ - wasm-bindgen-0.2.92 \ - wasm-bindgen-backend-0.2.92 \ + wasi-0.14.2+wasi-0.2.4 \ + wasm-bindgen-0.2.97 \ + wasm-bindgen-backend-0.2.97 \ wasm-bindgen-futures-0.4.42 \ - wasm-bindgen-macro-0.2.92 \ - wasm-bindgen-macro-support-0.2.92 \ - wasm-bindgen-shared-0.2.92 \ + wasm-bindgen-macro-0.2.97 \ + wasm-bindgen-macro-support-0.2.97 \ + wasm-bindgen-shared-0.2.97 \ web-sys-0.3.69 \ web-time-1.1.0 \ weezl-0.1.8 \ @@ -333,35 +364,56 @@ CARGO_CRATES= addr2line-0.22.0 \ winapi-0.3.9 \ winapi-i686-pc-windows-gnu-0.4.0 \ winapi-x86_64-pc-windows-gnu-0.4.0 \ + windows-0.58.0 \ + windows-core-0.58.0 \ + windows-core-0.61.0 \ + windows-implement-0.58.0 \ + windows-implement-0.60.0 \ + windows-interface-0.58.0 \ + windows-interface-0.59.1 \ + windows-link-0.1.1 \ + windows-result-0.2.0 \ + windows-result-0.3.2 \ + windows-strings-0.1.0 \ + windows-strings-0.4.0 \ windows-sys-0.48.0 \ windows-sys-0.52.0 \ + windows-sys-0.59.0 \ windows-targets-0.48.5 \ - windows-targets-0.52.5 \ + windows-targets-0.52.6 \ windows_aarch64_gnullvm-0.48.5 \ - windows_aarch64_gnullvm-0.52.5 \ + windows_aarch64_gnullvm-0.52.6 \ windows_aarch64_msvc-0.48.5 \ - windows_aarch64_msvc-0.52.5 \ + windows_aarch64_msvc-0.52.6 \ windows_i686_gnu-0.48.5 \ - windows_i686_gnu-0.52.5 \ - windows_i686_gnullvm-0.52.5 \ + windows_i686_gnu-0.52.6 \ + windows_i686_gnullvm-0.52.6 \ windows_i686_msvc-0.48.5 \ - windows_i686_msvc-0.52.5 \ + windows_i686_msvc-0.52.6 \ windows_x86_64_gnu-0.48.5 \ - windows_x86_64_gnu-0.52.5 \ + windows_x86_64_gnu-0.52.6 \ windows_x86_64_gnullvm-0.48.5 \ - windows_x86_64_gnullvm-0.52.5 \ + windows_x86_64_gnullvm-0.52.6 \ windows_x86_64_msvc-0.48.5 \ - windows_x86_64_msvc-0.52.5 \ + windows_x86_64_msvc-0.52.6 \ winnow-0.5.40 \ - winnow-0.6.11 \ + winnow-0.7.10 \ winreg-0.50.0 \ winreg-0.52.0 \ + wit-bindgen-rt-0.39.0 \ + writeable-0.6.1 \ yansi-1.0.1 \ - zerocopy-0.7.34 \ - zerocopy-derive-0.7.34 \ + yoke-0.8.0 \ + yoke-derive-0.8.0 \ + zerocopy-0.8.25 \ + zerocopy-derive-0.8.25 \ + zerofrom-0.1.6 \ + zerofrom-derive-0.1.6 \ zeroize-1.8.1 \ - zigzag-0.1.0 \ + zerotrie-0.2.2 \ + zerovec-0.11.2 \ + zerovec-derive-0.11.1 \ zstd-sys-2.0.10+zstd.1.5.6 \ zune-core-0.4.12 \ zune-jpeg-0.4.11 \ - ruma,ruma-appservice-api,ruma-client-api,ruma-common,ruma-events,ruma-federation-api,ruma-identifiers-validation,ruma-identity-service-api,ruma-macros,ruma-push-gateway-api,ruma-server-util,ruma-signatures,ruma-state-res@git+https://github.com/ruma/ruma\#c06af4385e0e30c48a8e9ca3d488da32102d0db9 + ruma,ruma-appservice-api,ruma-client-api,ruma-common,ruma-events,ruma-federation-api,ruma-identifiers-validation,ruma-macros,ruma-push-gateway-api,ruma-signatures,ruma-state-res@git+https://github.com/ruma/ruma.git\#38d471de01ce2f37f1d8fb5cb1752769cf97bd2f diff --git a/net-im/conduit/distinfo b/net-im/conduit/distinfo index 50e8d1f41334..d75b360ce034 100644 --- a/net-im/conduit/distinfo +++ b/net-im/conduit/distinfo @@ -1,14 +1,18 @@ -TIMESTAMP = 1728295916 -SHA256 (rust/crates/addr2line-0.22.0.crate) = 6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678 -SIZE (rust/crates/addr2line-0.22.0.crate) = 39156 +TIMESTAMP = 1747203465 +SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 +SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe SIZE (rust/crates/adler-1.0.2.crate) = 12778 -SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011 -SIZE (rust/crates/ahash-0.8.11.crate) = 43607 +SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 +SIZE (rust/crates/adler2-2.0.0.crate) = 13529 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311 -SHA256 (rust/crates/anstyle-1.0.7.crate) = 038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b -SIZE (rust/crates/anstyle-1.0.7.crate) = 15709 +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/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9 +SIZE (rust/crates/anstyle-1.0.10.crate) = 15725 SHA256 (rust/crates/anyhow-1.0.86.crate) = b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da SIZE (rust/crates/anyhow-1.0.86.crate) = 46741 SHA256 (rust/crates/arc-swap-1.7.1.crate) = 69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457 @@ -21,76 +25,74 @@ SHA256 (rust/crates/as_variant-1.2.0.crate) = f38fa22307249f86fb7fad906fcae77f25 SIZE (rust/crates/as_variant-1.2.0.crate) = 7881 SHA256 (rust/crates/assign-1.1.1.crate) = 5f093eed78becd229346bf859eec0aa4dd7ddde0757287b2b4107a1f09c80002 SIZE (rust/crates/assign-1.1.1.crate) = 4335 -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.80.crate) = c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca -SIZE (rust/crates/async-trait-0.1.80.crate) = 28775 +SHA256 (rust/crates/async-trait-0.1.88.crate) = e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5 +SIZE (rust/crates/async-trait-0.1.88.crate) = 32084 SHA256 (rust/crates/atomic-0.6.0.crate) = 8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994 SIZE (rust/crates/atomic-0.6.0.crate) = 12919 SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0 SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422 -SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0 -SIZE (rust/crates/autocfg-1.3.0.crate) = 16524 -SHA256 (rust/crates/axum-0.6.20.crate) = 3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf -SIZE (rust/crates/axum-0.6.20.crate) = 146227 -SHA256 (rust/crates/axum-0.7.5.crate) = 3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf -SIZE (rust/crates/axum-0.7.5.crate) = 151429 -SHA256 (rust/crates/axum-core-0.3.4.crate) = 759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c -SIZE (rust/crates/axum-core-0.3.4.crate) = 21088 -SHA256 (rust/crates/axum-core-0.4.3.crate) = a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3 -SIZE (rust/crates/axum-core-0.4.3.crate) = 21877 -SHA256 (rust/crates/axum-extra-0.9.3.crate) = 0be6ea09c9b96cb5076af0de2e383bd2bc0c18f827cf1967bdd353e0b910d733 -SIZE (rust/crates/axum-extra-0.9.3.crate) = 42641 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/axum-0.7.9.crate) = edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f +SIZE (rust/crates/axum-0.7.9.crate) = 155272 +SHA256 (rust/crates/axum-core-0.4.5.crate) = 09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199 +SIZE (rust/crates/axum-core-0.4.5.crate) = 22183 +SHA256 (rust/crates/axum-extra-0.9.6.crate) = c794b30c904f0a1c2fb7740f7df7f7972dfaa14ef6f57cb6178dc63e5dca2f04 +SIZE (rust/crates/axum-extra-0.9.6.crate) = 47663 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.72.crate) = 17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11 -SIZE (rust/crates/backtrace-0.3.72.crate) = 87877 +SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a +SIZE (rust/crates/backtrace-0.3.74.crate) = 88516 SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567 SIZE (rust/crates/base64-0.21.7.crate) = 82576 SHA256 (rust/crates/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/bindgen-0.69.4.crate) = a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0 -SIZE (rust/crates/bindgen-0.69.4.crate) = 221092 +SHA256 (rust/crates/bindgen-0.69.5.crate) = 271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088 +SIZE (rust/crates/bindgen-0.69.5.crate) = 221128 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 -SHA256 (rust/crates/bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1 -SIZE (rust/crates/bitflags-2.5.0.crate) = 43821 +SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd +SIZE (rust/crates/bitflags-2.9.0.crate) = 47654 SHA256 (rust/crates/blake2b_simd-1.0.2.crate) = 23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780 SIZE (rust/crates/blake2b_simd-1.0.2.crate) = 34165 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.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c -SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677 -SHA256 (rust/crates/bytemuck-1.16.0.crate) = 78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5 -SIZE (rust/crates/bytemuck-1.16.0.crate) = 48015 +SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf +SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 +SHA256 (rust/crates/bytemuck-1.22.0.crate) = b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540 +SIZE (rust/crates/bytemuck-1.22.0.crate) = 52451 SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 -SHA256 (rust/crates/bytes-1.6.0.crate) = 514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9 -SIZE (rust/crates/bytes-1.6.0.crate) = 60605 +SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495 +SIZE (rust/crates/byteorder-lite-0.1.0.crate) = 15909 +SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a +SIZE (rust/crates/bytes-1.10.1.crate) = 76779 +SHA256 (rust/crates/bytesize-2.0.1.crate) = a3c8f83209414aacf0eeae3cf730b18d6981697fba62f200fcfb92b9f082acba +SIZE (rust/crates/bytesize-2.0.1.crate) = 18922 SHA256 (rust/crates/bzip2-sys-0.1.11+1.0.8.crate) = 736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc SIZE (rust/crates/bzip2-sys-0.1.11+1.0.8.crate) = 633444 -SHA256 (rust/crates/cc-1.0.98.crate) = 41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f -SIZE (rust/crates/cc-1.0.98.crate) = 76780 +SHA256 (rust/crates/cc-1.2.21.crate) = 8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0 +SIZE (rust/crates/cc-1.2.21.crate) = 106117 SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766 SIZE (rust/crates/cexpr-0.6.0.crate) = 17966 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/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724 +SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355 +SHA256 (rust/crates/chrono-0.4.40.crate) = 1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c +SIZE (rust/crates/chrono-0.4.40.crate) = 229824 SHA256 (rust/crates/clang-sys-1.8.1.crate) = 0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4 SIZE (rust/crates/clang-sys-1.8.1.crate) = 44009 -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.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/clap-4.5.37.crate) = eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071 +SIZE (rust/crates/clap-4.5.37.crate) = 56962 +SHA256 (rust/crates/clap_builder-4.5.37.crate) = efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2 +SIZE (rust/crates/clap_builder-4.5.37.crate) = 168761 +SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 +SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 +SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 +SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b SIZE (rust/crates/color_quant-1.1.0.crate) = 6649 SHA256 (rust/crates/const-oid-0.9.6.crate) = c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8 @@ -105,14 +107,14 @@ 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/crc-3.2.1.crate) = 69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636 -SIZE (rust/crates/crc-3.2.1.crate) = 15070 -SHA256 (rust/crates/crc-catalog-2.4.0.crate) = 19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5 -SIZE (rust/crates/crc-catalog-2.4.0.crate) = 10155 SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 +SHA256 (rust/crates/critical-section-1.2.0.crate) = 790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b +SIZE (rust/crates/critical-section-1.2.0.crate) = 19133 SHA256 (rust/crates/crossbeam-channel-0.5.13.crate) = 33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2 SIZE (rust/crates/crossbeam-channel-0.5.13.crate) = 91174 +SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e +SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875 SHA256 (rust/crates/crossbeam-utils-0.8.20.crate) = 22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80 SIZE (rust/crates/crossbeam-utils-0.8.20.crate) = 42487 SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3 @@ -127,28 +129,34 @@ SHA256 (rust/crates/date_header-1.0.5.crate) = 0c03c416ed1a30fbb027ef484ba6ab6f8 SIZE (rust/crates/date_header-1.0.5.crate) = 12001 SHA256 (rust/crates/der-0.7.9.crate) = f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0 SIZE (rust/crates/der-0.7.9.crate) = 85173 -SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4 -SIZE (rust/crates/deranged-0.3.11.crate) = 18043 +SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e +SIZE (rust/crates/deranged-0.4.0.crate) = 23235 SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 SIZE (rust/crates/digest-0.10.7.crate) = 19557 -SHA256 (rust/crates/directories-5.0.1.crate) = 9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35 -SIZE (rust/crates/directories-5.0.1.crate) = 15833 -SHA256 (rust/crates/dirs-sys-0.4.1.crate) = 520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c -SIZE (rust/crates/dirs-sys-0.4.1.crate) = 10719 +SHA256 (rust/crates/directories-6.0.0.crate) = 16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d +SIZE (rust/crates/directories-6.0.0.crate) = 17842 +SHA256 (rust/crates/dirs-sys-0.5.0.crate) = e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab +SIZE (rust/crates/dirs-sys-0.5.0.crate) = 10157 +SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0 +SIZE (rust/crates/displaydoc-0.2.5.crate) = 24219 SHA256 (rust/crates/ed25519-2.2.3.crate) = 115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53 SIZE (rust/crates/ed25519-2.2.3.crate) = 17802 SHA256 (rust/crates/ed25519-dalek-2.1.1.crate) = 4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871 SIZE (rust/crates/ed25519-dalek-2.1.1.crate) = 85736 SHA256 (rust/crates/either-1.12.0.crate) = 3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b SIZE (rust/crates/either-1.12.0.crate) = 18974 +SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3 +SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050 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/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 -SIZE (rust/crates/equivalent-1.0.1.crate) = 6615 +SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f +SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 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-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be +SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 SHA256 (rust/crates/fdeflate-0.3.4.crate) = 4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645 SIZE (rust/crates/fdeflate-0.3.4.crate) = 25001 SHA256 (rust/crates/fiat-crypto-0.2.9.crate) = 28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d @@ -159,46 +167,48 @@ SHA256 (rust/crates/flate2-1.0.30.crate) = 5f54427cfd1c7829e2a139fcefea601bf088e 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/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2 +SIZE (rust/crates/foldhash-0.1.5.crate) = 21901 SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456 SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969 -SHA256 (rust/crates/fs2-0.4.3.crate) = 9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213 -SIZE (rust/crates/fs2-0.4.3.crate) = 13138 -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/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10 +SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971 +SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e +SIZE (rust/crates/futures-core-0.3.31.crate) = 14318 +SHA256 (rust/crates/futures-executor-0.3.31.crate) = 1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f +SIZE (rust/crates/futures-executor-0.3.31.crate) = 17965 +SHA256 (rust/crates/futures-io-0.3.31.crate) = 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6 +SIZE (rust/crates/futures-io-0.3.31.crate) = 9047 +SHA256 (rust/crates/futures-macro-0.3.31.crate) = 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650 +SIZE (rust/crates/futures-macro-0.3.31.crate) = 11341 +SHA256 (rust/crates/futures-sink-0.3.31.crate) = e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7 +SIZE (rust/crates/futures-sink-0.3.31.crate) = 7958 +SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988 +SIZE (rust/crates/futures-task-0.3.31.crate) = 11217 +SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81 +SIZE (rust/crates/futures-util-0.3.31.crate) = 162124 +SHA256 (rust/crates/generator-0.8.4.crate) = cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd +SIZE (rust/crates/generator-0.8.4.crate) = 34400 SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a SIZE (rust/crates/generic-array-0.14.7.crate) = 15950 -SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 -SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 +SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592 +SIZE (rust/crates/getrandom-0.2.16.crate) = 40163 +SHA256 (rust/crates/getrandom-0.3.2.crate) = 73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0 +SIZE (rust/crates/getrandom-0.3.2.crate) = 49140 SHA256 (rust/crates/gif-0.13.1.crate) = 3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2 SIZE (rust/crates/gif-0.13.1.crate) = 36408 -SHA256 (rust/crates/gimli-0.29.0.crate) = 40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd -SIZE (rust/crates/gimli-0.29.0.crate) = 275756 -SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b -SIZE (rust/crates/glob-0.3.1.crate) = 18880 -SHA256 (rust/crates/h2-0.3.26.crate) = 81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8 -SIZE (rust/crates/h2-0.3.26.crate) = 168315 -SHA256 (rust/crates/h2-0.4.5.crate) = fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab -SIZE (rust/crates/h2-0.4.5.crate) = 174166 +SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f +SIZE (rust/crates/gimli-0.31.1.crate) = 279515 +SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2 +SIZE (rust/crates/glob-0.3.2.crate) = 22359 +SHA256 (rust/crates/h2-0.4.8.crate) = 5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2 +SIZE (rust/crates/h2-0.4.8.crate) = 174535 SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888 SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968 -SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 -SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 -SHA256 (rust/crates/hashlink-0.9.1.crate) = 6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af -SIZE (rust/crates/hashlink-0.9.1.crate) = 28928 +SHA256 (rust/crates/hashbrown-0.15.3.crate) = 84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3 +SIZE (rust/crates/hashbrown-0.15.3.crate) = 140413 +SHA256 (rust/crates/hashlink-0.10.0.crate) = 7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1 +SIZE (rust/crates/hashlink-0.10.0.crate) = 29402 SHA256 (rust/crates/headers-0.4.0.crate) = 322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9 SIZE (rust/crates/headers-0.4.0.crate) = 68864 SHA256 (rust/crates/headers-core-0.3.0.crate) = 54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4 @@ -209,50 +219,70 @@ SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d3 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/hickory-proto-0.24.1.crate) = 07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512 -SIZE (rust/crates/hickory-proto-0.24.1.crate) = 374410 -SHA256 (rust/crates/hickory-resolver-0.24.1.crate) = 28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243 -SIZE (rust/crates/hickory-resolver-0.24.1.crate) = 91134 +SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 +SIZE (rust/crates/hex-0.4.3.crate) = 13299 +SHA256 (rust/crates/hickory-proto-0.25.2.crate) = f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502 +SIZE (rust/crates/hickory-proto-0.25.2.crate) = 417616 +SHA256 (rust/crates/hickory-resolver-0.25.2.crate) = dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a +SIZE (rust/crates/hickory-resolver-0.25.2.crate) = 91883 SHA256 (rust/crates/hmac-0.12.1.crate) = 6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e SIZE (rust/crates/hmac-0.12.1.crate) = 42657 SHA256 (rust/crates/hostname-0.3.1.crate) = 3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867 SIZE (rust/crates/hostname-0.3.1.crate) = 9272 -SHA256 (rust/crates/http-0.2.12.crate) = 601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1 -SIZE (rust/crates/http-0.2.12.crate) = 101964 -SHA256 (rust/crates/http-1.1.0.crate) = 21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258 -SIZE (rust/crates/http-1.1.0.crate) = 103144 +SHA256 (rust/crates/http-1.3.1.crate) = f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565 +SIZE (rust/crates/http-1.3.1.crate) = 106063 SHA256 (rust/crates/http-auth-0.1.9.crate) = 643c9bbf6a4ea8a656d6b4cd53d34f79e3f841ad5203c1a55fb7d761923bc255 SIZE (rust/crates/http-auth-0.1.9.crate) = 39318 -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-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184 +SIZE (rust/crates/http-body-1.0.1.crate) = 6125 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/httparse-1.9.4.crate) = 0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9 -SIZE (rust/crates/httparse-1.9.4.crate) = 38555 +SHA256 (rust/crates/httparse-1.10.1.crate) = 6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87 +SIZE (rust/crates/httparse-1.10.1.crate) = 45190 SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9 SIZE (rust/crates/httpdate-1.0.3.crate) = 10639 -SHA256 (rust/crates/hyper-0.14.29.crate) = f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33 -SIZE (rust/crates/hyper-0.14.29.crate) = 198107 -SHA256 (rust/crates/hyper-1.3.1.crate) = fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d -SIZE (rust/crates/hyper-1.3.1.crate) = 148763 +SHA256 (rust/crates/humantime-2.2.0.crate) = 9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f +SIZE (rust/crates/humantime-2.2.0.crate) = 20646 +SHA256 (rust/crates/humantime-serde-1.1.1.crate) = 57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c +SIZE (rust/crates/humantime-serde-1.1.1.crate) = 7886 +SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80 +SIZE (rust/crates/hyper-1.6.0.crate) = 153923 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/hyper-timeout-0.5.1.crate) = 3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793 +SIZE (rust/crates/hyper-timeout-0.5.1.crate) = 17727 SHA256 (rust/crates/hyper-util-0.1.5.crate) = 7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56 SIZE (rust/crates/hyper-util-0.1.5.crate) = 69740 -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/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8 +SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919 +SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f +SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185 +SHA256 (rust/crates/icu_collections-2.0.0.crate) = 200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47 +SIZE (rust/crates/icu_collections-2.0.0.crate) = 83033 +SHA256 (rust/crates/icu_locale_core-2.0.0.crate) = 0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a +SIZE (rust/crates/icu_locale_core-2.0.0.crate) = 74430 +SHA256 (rust/crates/icu_normalizer-2.0.0.crate) = 436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979 +SIZE (rust/crates/icu_normalizer-2.0.0.crate) = 61543 +SHA256 (rust/crates/icu_normalizer_data-2.0.0.crate) = 00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3 +SIZE (rust/crates/icu_normalizer_data-2.0.0.crate) = 68101 +SHA256 (rust/crates/icu_properties-2.0.0.crate) = 2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a +SIZE (rust/crates/icu_properties-2.0.0.crate) = 58065 +SHA256 (rust/crates/icu_properties_data-2.0.0.crate) = 8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04 +SIZE (rust/crates/icu_properties_data-2.0.0.crate) = 159069 +SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af +SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966 +SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e +SIZE (rust/crates/idna-1.0.3.crate) = 142515 +SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344 +SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389 SHA256 (rust/crates/image-0.25.1.crate) = fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11 SIZE (rust/crates/image-0.25.1.crate) = 9176733 +SHA256 (rust/crates/image-webp-0.1.3.crate) = f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904 +SIZE (rust/crates/image-webp-0.1.3.crate) = 50444 SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99 SIZE (rust/crates/indexmap-1.9.3.crate) = 54653 -SHA256 (rust/crates/indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26 -SIZE (rust/crates/indexmap-2.2.6.crate) = 82420 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/inlinable_string-0.1.15.crate) = c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb SIZE (rust/crates/inlinable_string-0.1.15.crate) = 19290 SHA256 (rust/crates/ipconfig-0.3.2.crate) = b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f @@ -261,46 +291,50 @@ SHA256 (rust/crates/ipnet-2.9.0.crate) = 8f518f335dce6725a761382244631d86cf0ccb2 SIZE (rust/crates/ipnet-2.9.0.crate) = 27627 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 -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/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c +SIZE (rust/crates/itoa-1.0.15.crate) = 11231 +SHA256 (rust/crates/jobserver-0.1.33.crate) = 38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a +SIZE (rust/crates/jobserver-0.1.33.crate) = 29136 +SHA256 (rust/crates/js-sys-0.3.74.crate) = a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705 +SIZE (rust/crates/js-sys-0.3.74.crate) = 54505 SHA256 (rust/crates/js_int-0.2.2.crate) = d937f95470b270ce8b8950207715d71aa8e153c0d44c6684d59397ed4949160a SIZE (rust/crates/js_int-0.2.2.crate) = 11634 SHA256 (rust/crates/js_option-0.1.1.crate) = 68421373957a1593a767013698dbf206e2b221eefe97a44d98d18672ff38423c SIZE (rust/crates/js_option-0.1.1.crate) = 3624 -SHA256 (rust/crates/jsonwebtoken-9.3.0.crate) = b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f -SIZE (rust/crates/jsonwebtoken-9.3.0.crate) = 48987 +SHA256 (rust/crates/jsonwebtoken-9.3.1.crate) = 5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde +SIZE (rust/crates/jsonwebtoken-9.3.1.crate) = 49398 SHA256 (rust/crates/konst-0.3.9.crate) = 50a0ba6de5f7af397afff922f22c149ff605c766cd3269cf6c1cd5e466dbe3b9 SIZE (rust/crates/konst-0.3.9.crate) = 80192 SHA256 (rust/crates/konst_kernel-0.3.9.crate) = be0a455a1719220fd6adf756088e1c69a85bf14b6a9e24537a5cc04f503edb2b SIZE (rust/crates/konst_kernel-0.3.9.crate) = 22239 -SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646 -SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443 +SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe +SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55 SIZE (rust/crates/lazycell-1.3.0.crate) = 12502 -SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c -SIZE (rust/crates/libc-0.2.155.crate) = 743539 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 SHA256 (rust/crates/libloading-0.8.3.crate) = 0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19 SIZE (rust/crates/libloading-0.8.3.crate) = 28480 SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d SIZE (rust/crates/libredox-0.1.3.crate) = 6068 -SHA256 (rust/crates/libsqlite3-sys-0.28.0.crate) = 0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f -SIZE (rust/crates/libsqlite3-sys-0.28.0.crate) = 4975624 +SHA256 (rust/crates/libsqlite3-sys-0.33.0.crate) = 947e6816f7825b2b45027c2c32e7085da9934defa535de4a6a46b10a4d5257fa +SIZE (rust/crates/libsqlite3-sys-0.33.0.crate) = 5182864 SHA256 (rust/crates/libz-sys-1.1.18.crate) = c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e SIZE (rust/crates/libz-sys-1.1.18.crate) = 817891 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/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956 +SIZE (rust/crates/litemap-0.8.0.crate) = 34344 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/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 +SIZE (rust/crates/log-0.4.27.crate) = 48120 +SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca +SIZE (rust/crates/loom-0.7.2.crate) = 73989 SHA256 (rust/crates/lru-cache-0.1.2.crate) = 31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c SIZE (rust/crates/lru-cache-0.1.2.crate) = 9307 -SHA256 (rust/crates/lz4-sys-1.9.4.crate) = 57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900 -SIZE (rust/crates/lz4-sys-1.9.4.crate) = 354842 +SHA256 (rust/crates/lz4-sys-1.11.1+lz4-1.10.0.crate) = 6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6 +SIZE (rust/crates/lz4-sys-1.11.1+lz4-1.10.0.crate) = 391317 SHA256 (rust/crates/maplit-1.0.2.crate) = 3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d SIZE (rust/crates/maplit-1.0.2.crate) = 8871 SHA256 (rust/crates/match_cfg-0.1.0.crate) = ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4 @@ -309,24 +343,30 @@ SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f 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.7.2.crate) = 6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d -SIZE (rust/crates/memchr-2.7.2.crate) = 96220 +SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 +SIZE (rust/crates/memchr-2.7.4.crate) = 96670 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.3.crate) = 87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae -SIZE (rust/crates/miniz_oxide-0.7.3.crate) = 55774 -SHA256 (rust/crates/mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c -SIZE (rust/crates/mio-0.8.11.crate) = 102983 -SHA256 (rust/crates/nix-0.28.0.crate) = ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4 -SIZE (rust/crates/nix-0.28.0.crate) = 311086 +SHA256 (rust/crates/miniz_oxide-0.7.4.crate) = b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08 +SIZE (rust/crates/miniz_oxide-0.7.4.crate) = 56119 +SHA256 (rust/crates/miniz_oxide-0.8.8.crate) = 3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a +SIZE (rust/crates/miniz_oxide-0.8.8.crate) = 67065 +SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd +SIZE (rust/crates/mio-1.0.3.crate) = 103703 +SHA256 (rust/crates/moka-0.12.10.crate) = a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926 +SIZE (rust/crates/moka-0.12.10.crate) = 253622 +SHA256 (rust/crates/multer-3.1.0.crate) = 83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b +SIZE (rust/crates/multer-3.1.0.crate) = 25980 +SHA256 (rust/crates/nix-0.30.1.crate) = 74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6 +SIZE (rust/crates/nix-0.30.1.crate) = 342015 SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a SIZE (rust/crates/nom-7.1.3.crate) = 117570 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.5.crate) = c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7 -SIZE (rust/crates/num-bigint-0.4.5.crate) = 102281 +SHA256 (rust/crates/num-bigint-0.4.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9 +SIZE (rust/crates/num-bigint-0.4.6.crate) = 102801 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 @@ -335,28 +375,26 @@ SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0 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.35.0.crate) = b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e -SIZE (rust/crates/object-0.35.0.crate) = 317792 -SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92 -SIZE (rust/crates/once_cell-1.19.0.crate) = 33046 +SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87 +SIZE (rust/crates/object-0.36.7.crate) = 329938 +SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d +SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227 -SHA256 (rust/crates/opentelemetry-0.22.0.crate) = 900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf -SIZE (rust/crates/opentelemetry-0.22.0.crate) = 67855 -SHA256 (rust/crates/opentelemetry-jaeger-propagator-0.1.0.crate) = beb4ec62efc537b60aaa89b92624f986f2523d3a609079f3511cc8ee73490826 -SIZE (rust/crates/opentelemetry-jaeger-propagator-0.1.0.crate) = 11368 -SHA256 (rust/crates/opentelemetry-otlp-0.15.0.crate) = 1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb -SIZE (rust/crates/opentelemetry-otlp-0.15.0.crate) = 29315 -SHA256 (rust/crates/opentelemetry-proto-0.5.0.crate) = 3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4 -SIZE (rust/crates/opentelemetry-proto-0.5.0.crate) = 151331 -SHA256 (rust/crates/opentelemetry-semantic-conventions-0.14.0.crate) = f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910 -SIZE (rust/crates/opentelemetry-semantic-conventions-0.14.0.crate) = 32064 -SHA256 (rust/crates/opentelemetry_sdk-0.22.1.crate) = 9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e -SIZE (rust/crates/opentelemetry_sdk-0.22.1.crate) = 128633 +SHA256 (rust/crates/opentelemetry-0.29.1.crate) = 9e87237e2775f74896f9ad219d26a2081751187eb7c9f5c58dde20a23b95d16c +SIZE (rust/crates/opentelemetry-0.29.1.crate) = 87644 +SHA256 (rust/crates/opentelemetry-http-0.29.0.crate) = 46d7ab32b827b5b495bd90fa95a6cb65ccc293555dcc3199ae2937d2d237c8ed +SIZE (rust/crates/opentelemetry-http-0.29.0.crate) = 9899 +SHA256 (rust/crates/opentelemetry-jaeger-propagator-0.29.0.crate) = cae2eb16c37705755c3e09332bebdcac9b37ca1539b3ac2d2f43a154401514ae +SIZE (rust/crates/opentelemetry-jaeger-propagator-0.29.0.crate) = 12108 +SHA256 (rust/crates/opentelemetry-otlp-0.29.0.crate) = d899720fe06916ccba71c01d04ecd77312734e2de3467fd30d9d580c8ce85656 +SIZE (rust/crates/opentelemetry-otlp-0.29.0.crate) = 34601 +SHA256 (rust/crates/opentelemetry-proto-0.29.0.crate) = 8c40da242381435e18570d5b9d50aca2a4f4f4d8e146231adb4e7768023309b3 +SIZE (rust/crates/opentelemetry-proto-0.29.0.crate) = 166952 +SHA256 (rust/crates/opentelemetry_sdk-0.29.0.crate) = afdefb21d1d47394abc1ba6c57363ab141be19e27cc70d0e422b7f303e4d290b +SIZE (rust/crates/opentelemetry_sdk-0.29.0.crate) = 202883 SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 -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 SIZE (rust/crates/overload-0.1.1.crate) = 24439 SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27 @@ -371,76 +409,88 @@ SHA256 (rust/crates/pem-3.0.4.crate) = 8e459365e590736a54c3fa561947c84837534b8e9 SIZE (rust/crates/pem-3.0.4.crate) = 13040 SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235 -SHA256 (rust/crates/persy-1.5.0.crate) = 9ef4b7250ab3a90ded0e284b2633469c23ef01ea868fe7cbb64e2f0a7d6f6d02 -SIZE (rust/crates/persy-1.5.0.crate) = 146143 SHA256 (rust/crates/pin-project-1.1.5.crate) = b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3 SIZE (rust/crates/pin-project-1.1.5.crate) = 54214 SHA256 (rust/crates/pin-project-internal-1.1.5.crate) = 2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965 SIZE (rust/crates/pin-project-internal-1.1.5.crate) = 28280 -SHA256 (rust/crates/pin-project-lite-0.2.14.crate) = bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02 -SIZE (rust/crates/pin-project-lite-0.2.14.crate) = 28817 +SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b +SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504 SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580 SHA256 (rust/crates/pkcs8-0.10.2.crate) = f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7 SIZE (rust/crates/pkcs8-0.10.2.crate) = 26360 -SHA256 (rust/crates/pkg-config-0.3.30.crate) = d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec -SIZE (rust/crates/pkg-config-0.3.30.crate) = 20613 +SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c +SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370 SHA256 (rust/crates/platforms-3.4.0.crate) = db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7 SIZE (rust/crates/platforms-3.4.0.crate) = 29298 SHA256 (rust/crates/png-0.17.13.crate) = 06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1 SIZE (rust/crates/png-0.17.13.crate) = 103176 +SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e +SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 +SHA256 (rust/crates/potential_utf-0.1.2.crate) = e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585 +SIZE (rust/crates/potential_utf-0.1.2.crate) = 9613 SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391 SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165 -SHA256 (rust/crates/ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de -SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242 +SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9 +SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522 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-macro2-1.0.85.crate) = 22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23 -SIZE (rust/crates/proc-macro2-1.0.85.crate) = 48988 +SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 +SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 SHA256 (rust/crates/proc-macro2-diagnostics-0.10.1.crate) = af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8 SIZE (rust/crates/proc-macro2-diagnostics-0.10.1.crate) = 12219 -SHA256 (rust/crates/prost-0.12.6.crate) = deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29 -SIZE (rust/crates/prost-0.12.6.crate) = 21552 -SHA256 (rust/crates/prost-derive-0.12.6.crate) = 81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1 -SIZE (rust/crates/prost-derive-0.12.6.crate) = 19556 +SHA256 (rust/crates/prost-0.13.5.crate) = 2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5 +SIZE (rust/crates/prost-0.13.5.crate) = 32469 +SHA256 (rust/crates/prost-derive-0.13.5.crate) = 8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d +SIZE (rust/crates/prost-derive-0.13.5.crate) = 20600 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.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7 -SIZE (rust/crates/quote-1.0.36.crate) = 28507 +SHA256 (rust/crates/quick-error-2.0.1.crate) = a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3 +SIZE (rust/crates/quick-error-2.0.1.crate) = 14265 +SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d +SIZE (rust/crates/quote-1.0.40.crate) = 31063 +SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5 +SIZE (rust/crates/r-efi-5.2.0.crate) = 64764 SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand-0.9.1.crate) = 9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97 +SIZE (rust/crates/rand-0.9.1.crate) = 97986 SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb +SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258 SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 -SHA256 (rust/crates/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/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38 +SIZE (rust/crates/rand_core-0.9.3.crate) = 24543 +SHA256 (rust/crates/redox_syscall-0.5.7.crate) = 9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f +SIZE (rust/crates/redox_syscall-0.5.7.crate) = 26249 +SHA256 (rust/crates/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b +SIZE (rust/crates/redox_users-0.5.0.crate) = 15586 +SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 +SIZE (rust/crates/regex-1.11.1.crate) = 254170 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-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908 +SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525 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.3.crate) = adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56 -SIZE (rust/crates/regex-syntax-0.8.3.crate) = 347497 +SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c +SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541 SHA256 (rust/crates/reqwest-0.12.4.crate) = 566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10 SIZE (rust/crates/reqwest-0.12.4.crate) = 170627 SHA256 (rust/crates/resolv-conf-0.7.0.crate) = 52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00 SIZE (rust/crates/resolv-conf-0.7.0.crate) = 17352 -SHA256 (rust/crates/ring-0.17.8.crate) = c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d -SIZE (rust/crates/ring-0.17.8.crate) = 4188554 -SHA256 (rust/crates/rusqlite-0.31.0.crate) = b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae -SIZE (rust/crates/rusqlite-0.31.0.crate) = 152252 +SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7 +SIZE (rust/crates/ring-0.17.14.crate) = 1502610 +SHA256 (rust/crates/rusqlite-0.35.0.crate) = a22715a5d6deef63c637207afbe68d0c72c3f8d0022d7cf9714c442d6157606b +SIZE (rust/crates/rusqlite-0.35.0.crate) = 166186 SHA256 (rust/crates/rust-argon2-2.1.0.crate) = 9d9848531d60c9cbbcf9d166c885316c24bc0e2a9d3eba0956bb6cbbd79bc6e8 SIZE (rust/crates/rust-argon2-2.1.0.crate) = 26904 -SHA256 (rust/crates/rust-librocksdb-sys-0.21.0+9.1.1.crate) = 75cb7b9cd5ce3b3ce0757ceab2240f7471826780b8700845c0cfd418cb7e398d -SIZE (rust/crates/rust-librocksdb-sys-0.21.0+9.1.1.crate) = 5494424 -SHA256 (rust/crates/rust-rocksdb-0.25.0.crate) = 2bcfb31b5bf2e3274686ebfdf9a946e9a327a3bc54adc7e5cda9f4fdcc4b55f1 -SIZE (rust/crates/rust-rocksdb-0.25.0.crate) = 145910 +SHA256 (rust/crates/rust-librocksdb-sys-0.37.0+10.2.1.crate) = 4951352c7a5abbf230a7563d6dae95ea2ea834b70f06de90b8f083debc977f8f +SIZE (rust/crates/rust-librocksdb-sys-0.37.0+10.2.1.crate) = 5813694 +SHA256 (rust/crates/rust-rocksdb-0.41.0.crate) = e04453858c1d03683f6e142026dbf30c387f71c7bb0f017b408d96364c0acdbd +SIZE (rust/crates/rust-rocksdb-0.41.0.crate) = 166759 SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047 SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 @@ -455,42 +505,44 @@ SHA256 (rust/crates/rustls-native-certs-0.7.0.crate) = 8f1fb85efa936c42c6d5fc28d 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.7.0.crate) = 976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d -SIZE (rust/crates/rustls-pki-types-1.7.0.crate) = 29555 +SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79 +SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740 SHA256 (rust/crates/rustls-webpki-0.101.7.crate) = 8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765 SIZE (rust/crates/rustls-webpki-0.101.7.crate) = 168808 SHA256 (rust/crates/rustls-webpki-0.102.4.crate) = ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e SIZE (rust/crates/rustls-webpki-0.102.4.crate) = 200657 SHA256 (rust/crates/rustversion-1.0.17.crate) = 955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6 SIZE (rust/crates/rustversion-1.0.17.crate) = 17621 -SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f -SIZE (rust/crates/ryu-1.0.18.crate) = 47713 +SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f +SIZE (rust/crates/ryu-1.0.20.crate) = 48738 SHA256 (rust/crates/schannel-0.1.23.crate) = fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534 SIZE (rust/crates/schannel-0.1.23.crate) = 41667 +SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294 +SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202 SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 SHA256 (rust/crates/sct-0.7.1.crate) = da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414 SIZE (rust/crates/sct-0.7.1.crate) = 27501 -SHA256 (rust/crates/sd-notify-0.4.1.crate) = 621e3680f3e07db4c9c2c3fb07c6223ab2fab2e54bd3c04c3ae037990f428c32 -SIZE (rust/crates/sd-notify-0.4.1.crate) = 10085 +SHA256 (rust/crates/sd-notify-0.4.5.crate) = b943eadf71d8b69e661330cb0e2656e31040acf21ee7708e2c238a0ec6af2bf4 +SIZE (rust/crates/sd-notify-0.4.5.crate) = 12582 SHA256 (rust/crates/security-framework-2.11.0.crate) = c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0 SIZE (rust/crates/security-framework-2.11.0.crate) = 80191 SHA256 (rust/crates/security-framework-sys-2.11.0.crate) = 317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7 SIZE (rust/crates/security-framework-sys-2.11.0.crate) = 18718 SHA256 (rust/crates/semver-1.0.23.crate) = 61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b SIZE (rust/crates/semver-1.0.23.crate) = 30622 -SHA256 (rust/crates/serde-1.0.203.crate) = 7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094 -SIZE (rust/crates/serde-1.0.203.crate) = 77935 -SHA256 (rust/crates/serde_derive-1.0.203.crate) = 500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba -SIZE (rust/crates/serde_derive-1.0.203.crate) = 55867 -SHA256 (rust/crates/serde_html_form-0.2.6.crate) = 8de514ef58196f1fc96dcaef80fe6170a1ce6215df9687a93fe8300e773fefc5 -SIZE (rust/crates/serde_html_form-0.2.6.crate) = 14480 -SHA256 (rust/crates/serde_json-1.0.117.crate) = 455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3 -SIZE (rust/crates/serde_json-1.0.117.crate) = 146921 +SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6 +SIZE (rust/crates/serde-1.0.219.crate) = 78983 +SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 +SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 +SHA256 (rust/crates/serde_html_form-0.2.7.crate) = 9d2de91cf02bbc07cde38891769ccd5d4f073d22a40683aa4bc7a95781aaa2c4 +SIZE (rust/crates/serde_html_form-0.2.7.crate) = 17915 +SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 +SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 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.6.crate) = 79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0 -SIZE (rust/crates/serde_spanned-0.6.6.crate) = 9120 +SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1 +SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330 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.9.34+deprecated.crate) = 6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47 @@ -505,8 +557,8 @@ SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e82 SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (rust/crates/shlex-1.3.0.crate) = 18713 -SHA256 (rust/crates/signal-hook-registry-1.4.2.crate) = a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1 -SIZE (rust/crates/signal-hook-registry-1.4.2.crate) = 18064 +SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410 +SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004 SHA256 (rust/crates/signature-2.2.0.crate) = 77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de SIZE (rust/crates/signature-2.2.0.crate) = 15531 SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe @@ -515,94 +567,108 @@ SHA256 (rust/crates/simple_asn1-0.6.2.crate) = adc4e5204eb1910f40f9cfa375f6f05b6 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.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/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9 +SIZE (rust/crates/smallvec-1.15.0.crate) = 38113 +SHA256 (rust/crates/socket2-0.5.9.crate) = 4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef +SIZE (rust/crates/socket2-0.5.9.crate) = 57432 SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67 SIZE (rust/crates/spin-0.9.8.crate) = 38958 SHA256 (rust/crates/spki-0.7.3.crate) = d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d SIZE (rust/crates/spki-0.7.3.crate) = 16409 +SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3 +SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054 SHA256 (rust/crates/subslice-0.2.3.crate) = e0a8e4809a3bb02de01f1f7faf1ba01a83af9e8eabcd4d31dd6e413d14d56aae SIZE (rust/crates/subslice-0.2.3.crate) = 25975 SHA256 (rust/crates/subtle-2.5.0.crate) = 81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc SIZE (rust/crates/subtle-2.5.0.crate) = 13909 -SHA256 (rust/crates/syn-2.0.66.crate) = c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5 -SIZE (rust/crates/syn-2.0.66.crate) = 264855 +SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf +SIZE (rust/crates/syn-2.0.101.crate) = 299250 SHA256 (rust/crates/sync_wrapper-0.1.2.crate) = 2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160 SIZE (rust/crates/sync_wrapper-0.1.2.crate) = 6933 SHA256 (rust/crates/sync_wrapper-1.0.1.crate) = a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394 SIZE (rust/crates/sync_wrapper-1.0.1.crate) = 6939 -SHA256 (rust/crates/thiserror-1.0.61.crate) = c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709 -SIZE (rust/crates/thiserror-1.0.61.crate) = 21264 -SHA256 (rust/crates/thiserror-impl-1.0.61.crate) = 46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533 -SIZE (rust/crates/thiserror-impl-1.0.61.crate) = 15786 +SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2 +SIZE (rust/crates/synstructure-0.13.2.crate) = 18950 +SHA256 (rust/crates/tagptr-0.2.0.crate) = 7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417 +SIZE (rust/crates/tagptr-0.2.0.crate) = 13320 +SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 +SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 +SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 +SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c SIZE (rust/crates/thread_local-1.1.8.crate) = 13962 SHA256 (rust/crates/threadpool-1.8.1.crate) = d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa SIZE (rust/crates/threadpool-1.8.1.crate) = 14408 -SHA256 (rust/crates/tikv-jemalloc-sys-0.5.4+5.3.0-patched.crate) = 9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1 -SIZE (rust/crates/tikv-jemalloc-sys-0.5.4+5.3.0-patched.crate) = 884765 -SHA256 (rust/crates/tikv-jemallocator-0.5.4.crate) = 965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca -SIZE (rust/crates/tikv-jemallocator-0.5.4.crate) = 13101 -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.18.crate) = 3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf -SIZE (rust/crates/time-macros-0.2.18.crate) = 24361 +SHA256 (rust/crates/tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7.crate) = cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d +SIZE (rust/crates/tikv-jemalloc-sys-0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7.crate) = 897133 +SHA256 (rust/crates/tikv-jemallocator-0.6.0.crate) = 4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865 +SIZE (rust/crates/tikv-jemallocator-0.6.0.crate) = 13700 +SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40 +SIZE (rust/crates/time-0.3.41.crate) = 138369 +SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c +SIZE (rust/crates/time-core-0.1.4.crate) = 8422 +SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49 +SIZE (rust/crates/time-macros-0.2.22.crate) = 24604 +SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b +SIZE (rust/crates/tinystr-0.8.1.crate) = 23333 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.38.0.crate) = ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a -SIZE (rust/crates/tokio-1.38.0.crate) = 774094 -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.3.0.crate) = 5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a -SIZE (rust/crates/tokio-macros-2.3.0.crate) = 11753 +SHA256 (rust/crates/tokio-1.45.0.crate) = 2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165 +SIZE (rust/crates/tokio-1.45.0.crate) = 800721 +SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 +SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 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-socks-0.5.1.crate) = 51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0 SIZE (rust/crates/tokio-socks-0.5.1.crate) = 16137 -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.11.crate) = 9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1 -SIZE (rust/crates/tokio-util-0.7.11.crate) = 113421 -SHA256 (rust/crates/toml-0.8.14.crate) = 6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335 -SIZE (rust/crates/toml-0.8.14.crate) = 50645 -SHA256 (rust/crates/toml_datetime-0.6.6.crate) = 4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf -SIZE (rust/crates/toml_datetime-0.6.6.crate) = 11698 +SHA256 (rust/crates/tokio-stream-0.1.17.crate) = eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047 +SIZE (rust/crates/tokio-stream-0.1.17.crate) = 38477 +SHA256 (rust/crates/tokio-util-0.7.15.crate) = 66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df +SIZE (rust/crates/tokio-util-0.7.15.crate) = 124255 +SHA256 (rust/crates/toml-0.8.22.crate) = 05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae +SIZE (rust/crates/toml-0.8.22.crate) = 76224 +SHA256 (rust/crates/toml_datetime-0.6.9.crate) = 3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3 +SIZE (rust/crates/toml_datetime-0.6.9.crate) = 12622 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.14.crate) = f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38 -SIZE (rust/crates/toml_edit-0.22.14.crate) = 103761 -SHA256 (rust/crates/tonic-0.11.0.crate) = 76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13 -SIZE (rust/crates/tonic-0.11.0.crate) = 92841 +SHA256 (rust/crates/toml_edit-0.22.26.crate) = 310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e +SIZE (rust/crates/toml_edit-0.22.26.crate) = 121714 +SHA256 (rust/crates/toml_write-0.1.1.crate) = bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076 +SIZE (rust/crates/toml_write-0.1.1.crate) = 17467 +SHA256 (rust/crates/tonic-0.12.3.crate) = 877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52 +SIZE (rust/crates/tonic-0.12.3.crate) = 99380 SHA256 (rust/crates/tower-0.4.13.crate) = b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c SIZE (rust/crates/tower-0.4.13.crate) = 106906 +SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9 +SIZE (rust/crates/tower-0.5.2.crate) = 109417 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 -SIZE (rust/crates/tower-service-0.3.2.crate) = 6847 -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/tower-layer-0.3.3.crate) = 121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e +SIZE (rust/crates/tower-layer-0.3.3.crate) = 6180 +SHA256 (rust/crates/tower-service-0.3.3.crate) = 8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3 +SIZE (rust/crates/tower-service-0.3.3.crate) = 6950 +SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0 +SIZE (rust/crates/tracing-0.1.41.crate) = 82448 +SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d +SIZE (rust/crates/tracing-attributes-0.1.28.crate) = 33280 +SHA256 (rust/crates/tracing-core-0.1.33.crate) = e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c +SIZE (rust/crates/tracing-core-0.1.33.crate) = 63434 SHA256 (rust/crates/tracing-flame-0.2.0.crate) = 0bae117ee14789185e129aaee5d93750abe67fdc5a9a62650452bfe4e122a3a9 SIZE (rust/crates/tracing-flame-0.2.0.crate) = 9062 SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3 SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561 -SHA256 (rust/crates/tracing-opentelemetry-0.23.0.crate) = a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284 -SIZE (rust/crates/tracing-opentelemetry-0.23.0.crate) = 138411 -SHA256 (rust/crates/tracing-subscriber-0.3.18.crate) = ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b -SIZE (rust/crates/tracing-subscriber-0.3.18.crate) = 196312 +SHA256 (rust/crates/tracing-opentelemetry-0.30.0.crate) = fd8e764bd6f5813fd8bebc3117875190c5b0415be8f7f8059bffb6ecd979c444 +SIZE (rust/crates/tracing-opentelemetry-0.30.0.crate) = 143579 +SHA256 (rust/crates/tracing-subscriber-0.3.19.crate) = e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008 +SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345 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 @@ -613,46 +679,42 @@ SHA256 (rust/crates/typewit_proc_macros-1.8.1.crate) = e36a83ea2b3c704935a01b464 SIZE (rust/crates/typewit_proc_macros-1.8.1.crate) = 1944 SHA256 (rust/crates/uncased-0.9.10.crate) = e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697 SIZE (rust/crates/uncased-0.9.10.crate) = 10872 -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-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 +SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 SHA256 (rust/crates/unsafe-libyaml-0.2.11.crate) = 673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861 SIZE (rust/crates/unsafe-libyaml-0.2.11.crate) = 62101 -SHA256 (rust/crates/unsigned-varint-0.8.0.crate) = eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06 -SIZE (rust/crates/unsigned-varint-0.8.0.crate) = 15955 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/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60 +SIZE (rust/crates/url-2.5.4.crate) = 81097 +SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be +SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437 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 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/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a +SIZE (rust/crates/version_check-0.9.5.crate) = 15554 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.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/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3 +SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921 +SHA256 (rust/crates/wasm-bindgen-0.2.97.crate) = d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c +SIZE (rust/crates/wasm-bindgen-0.2.97.crate) = 45515 +SHA256 (rust/crates/wasm-bindgen-backend-0.2.97.crate) = 8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd +SIZE (rust/crates/wasm-bindgen-backend-0.2.97.crate) = 31099 SHA256 (rust/crates/wasm-bindgen-futures-0.4.42.crate) = 76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0 SIZE (rust/crates/wasm-bindgen-futures-0.4.42.crate) = 15380 -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/wasm-bindgen-macro-0.2.97.crate) = 705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051 +SIZE (rust/crates/wasm-bindgen-macro-0.2.97.crate) = 7146 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.97.crate) = 98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.97.crate) = 22824 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.97.crate) = 6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49 +SIZE (rust/crates/wasm-bindgen-shared-0.2.97.crate) = 7771 SHA256 (rust/crates/web-sys-0.3.69.crate) = 77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef SIZE (rust/crates/web-sys-0.3.69.crate) = 728877 SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb @@ -669,69 +731,111 @@ SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9 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-0.58.0.crate) = dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6 +SIZE (rust/crates/windows-0.58.0.crate) = 9744521 +SHA256 (rust/crates/windows-core-0.58.0.crate) = 6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99 +SIZE (rust/crates/windows-core-0.58.0.crate) = 41022 +SHA256 (rust/crates/windows-core-0.61.0.crate) = 4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980 +SIZE (rust/crates/windows-core-0.61.0.crate) = 36707 +SHA256 (rust/crates/windows-implement-0.58.0.crate) = 2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b +SIZE (rust/crates/windows-implement-0.58.0.crate) = 10491 +SHA256 (rust/crates/windows-implement-0.60.0.crate) = a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836 +SIZE (rust/crates/windows-implement-0.60.0.crate) = 15073 +SHA256 (rust/crates/windows-interface-0.58.0.crate) = 053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515 +SIZE (rust/crates/windows-interface-0.58.0.crate) = 11246 +SHA256 (rust/crates/windows-interface-0.59.1.crate) = bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8 +SIZE (rust/crates/windows-interface-0.59.1.crate) = 11735 +SHA256 (rust/crates/windows-link-0.1.1.crate) = 76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38 +SIZE (rust/crates/windows-link-0.1.1.crate) = 6154 +SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e +SIZE (rust/crates/windows-result-0.2.0.crate) = 12756 +SHA256 (rust/crates/windows-result-0.3.2.crate) = c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252 +SIZE (rust/crates/windows-result-0.3.2.crate) = 13399 +SHA256 (rust/crates/windows-strings-0.1.0.crate) = 4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10 +SIZE (rust/crates/windows-strings-0.1.0.crate) = 13832 +SHA256 (rust/crates/windows-strings-0.4.0.crate) = 7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97 +SIZE (rust/crates/windows-strings-0.4.0.crate) = 13939 SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9 SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884 SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877 +SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b +SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904 -SHA256 (rust/crates/windows-targets-0.52.5.crate) = 6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb -SIZE (rust/crates/windows-targets-0.52.5.crate) = 6376 +SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 +SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8 SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492 -SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263 -SIZE (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 433266 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 +SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483 -SHA256 (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6 -SIZE (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 827944 +SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 +SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891 -SHA256 (rust/crates/windows_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_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b +SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 +SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406 SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300 -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_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 +SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619 -SHA256 (rust/crates/windows_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_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 +SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486 -SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596 -SIZE (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 433246 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d +SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538 SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412 -SHA256 (rust/crates/windows_x86_64_msvc-0.52.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0 -SIZE (rust/crates/windows_x86_64_msvc-0.52.5.crate) = 827905 +SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec +SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 SHA256 (rust/crates/winnow-0.5.40.crate) = f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876 SIZE (rust/crates/winnow-0.5.40.crate) = 159316 -SHA256 (rust/crates/winnow-0.6.11.crate) = 56c52728401e1dc672a56e81e593e912aa54c78f40246869f78359a2bf24d29d -SIZE (rust/crates/winnow-0.6.11.crate) = 160331 +SHA256 (rust/crates/winnow-0.7.10.crate) = c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec +SIZE (rust/crates/winnow-0.7.10.crate) = 176073 SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1 SIZE (rust/crates/winreg-0.50.0.crate) = 29703 SHA256 (rust/crates/winreg-0.52.0.crate) = a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5 SIZE (rust/crates/winreg-0.52.0.crate) = 30148 +SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 +SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 +SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb +SIZE (rust/crates/writeable-0.6.1.crate) = 24068 SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049 SIZE (rust/crates/yansi-1.0.1.crate) = 75497 -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/yoke-0.8.0.crate) = 5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc +SIZE (rust/crates/yoke-0.8.0.crate) = 28726 +SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6 +SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521 +SHA256 (rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb +SIZE (rust/crates/zerocopy-0.8.25.crate) = 252714 +SHA256 (rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef +SIZE (rust/crates/zerocopy-derive-0.8.25.crate) = 87671 +SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5 +SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669 +SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502 +SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305 SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde SIZE (rust/crates/zeroize-1.8.1.crate) = 20029 -SHA256 (rust/crates/zigzag-0.1.0.crate) = 70b40401a28d86ce16a330b863b86fd7dbee4d7c940587ab09ab8c019f9e3fdf -SIZE (rust/crates/zigzag-0.1.0.crate) = 2085 +SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595 +SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423 +SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428 +SIZE (rust/crates/zerovec-0.11.2.crate) = 124500 +SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f +SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294 SHA256 (rust/crates/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 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a SIZE (rust/crates/zune-core-0.4.12.crate) = 17355 SHA256 (rust/crates/zune-jpeg-0.4.11.crate) = ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448 SIZE (rust/crates/zune-jpeg-0.4.11.crate) = 61815 -SHA256 (ruma-ruma-c06af4385e0e30c48a8e9ca3d488da32102d0db9_GH0.tar.gz) = d5310eaf4e8d5c7d26adf54f48f25f6ad2adc76936640cc48a9920fd3eca10f6 -SIZE (ruma-ruma-c06af4385e0e30c48a8e9ca3d488da32102d0db9_GH0.tar.gz) = 710358 -SHA256 (famedly-conduit-f8d7ef04e664580e882bac852877b68e7bd3ab1e_GL0.tar.gz) = 0e409471693d4dfcdc3a35cd4b14fcd1306d810c575bbc7f385414a331fb2a16 -SIZE (famedly-conduit-f8d7ef04e664580e882bac852877b68e7bd3ab1e_GL0.tar.gz) = 309404 +SHA256 (ruma-ruma-38d471de01ce2f37f1d8fb5cb1752769cf97bd2f_GH0.tar.gz) = 5940229d77d32b5ffdbe96fca8cbb0f60e22e36fdae02aafb7ce555aed87337d +SIZE (ruma-ruma-38d471de01ce2f37f1d8fb5cb1752769cf97bd2f_GH0.tar.gz) = 736668 +SHA256 (famedly-conduit-ff7b2af80db5e5dd2dddc02e42e8fd27abb6955f_GL0.tar.gz) = 3b7268d8e96d1acdb58cb01d7f03945242d70ceb676acb41a51e8fddcd48bd83 +SIZE (famedly-conduit-ff7b2af80db5e5dd2dddc02e42e8fd27abb6955f_GL0.tar.gz) = 346320 diff --git a/net-im/dissent/Makefile b/net-im/dissent/Makefile index b88626fe69e8..84a56fd37b58 100644 --- a/net-im/dissent/Makefile +++ b/net-im/dissent/Makefile @@ -1,7 +1,6 @@ PORTNAME= dissent DISTVERSIONPREFIX= v -DISTVERSION= 0.0.32 -PORTREVISION= 2 +DISTVERSION= 0.0.34 CATEGORIES= net-im MAINTAINER= nxjoseph@protonmail.com @@ -14,7 +13,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.md LIB_DEPENDS= libgraphene-1.0.so:graphics/graphene \ libspelling-1.so:x11-toolkits/libspelling -USES= gnome go:1.22,modules gstreamer pkgconfig +USES= gnome go:1.24,modules gstreamer pkgconfig USE_GNOME= cairo gdkpixbuf gtk40 gtksourceview5 libadwaita USE_GSTREAMER= bad good ugly GO_MODULE= libdb.so/dissent diff --git a/net-im/dissent/distinfo b/net-im/dissent/distinfo index d5e9e889207c..c564ada31c63 100644 --- a/net-im/dissent/distinfo +++ b/net-im/dissent/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1737743530 -SHA256 (go/net-im_dissent/dissent-v0.0.32/v0.0.32.mod) = 66ae8707c26c1a6bb9f1426c7f72415877af7fe8e4943f5646d0ed52e9d5a7d0 -SIZE (go/net-im_dissent/dissent-v0.0.32/v0.0.32.mod) = 2123 -SHA256 (go/net-im_dissent/dissent-v0.0.32/v0.0.32.zip) = 8d5fb8045f955ac587a381205387ab01c449abb501e745235c585f1db6d70a10 -SIZE (go/net-im_dissent/dissent-v0.0.32/v0.0.32.zip) = 4219755 +TIMESTAMP = 1747142599 +SHA256 (go/net-im_dissent/dissent-v0.0.34/v0.0.34.mod) = e690ac4b0fad8a0012908aea7ac7bd0e80bd5cb6d343b88d4e21f171782bf180 +SIZE (go/net-im_dissent/dissent-v0.0.34/v0.0.34.mod) = 2182 +SHA256 (go/net-im_dissent/dissent-v0.0.34/v0.0.34.zip) = 533378abf7496b7a6d4be9aea87ebf9eb37144803904b0a0e528f5206fcfa13a +SIZE (go/net-im_dissent/dissent-v0.0.34/v0.0.34.zip) = 4224070 diff --git a/net-im/signal-desktop/Makefile b/net-im/signal-desktop/Makefile index 1488c4f6a468..f92338f33295 100644 --- a/net-im/signal-desktop/Makefile +++ b/net-im/signal-desktop/Makefile @@ -1,7 +1,7 @@ PORTNAME= signal-desktop DISTVERSIONPREFIX= v DISTVERSION= 7.52.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net-im MASTER_SITES= LOCAL/mikael/signal-desktop/:npm \ https://registry.npmjs.org/@esbuild/freebsd-arm64/-/:esbuildarm64 \ diff --git a/net-im/tdlib/Makefile b/net-im/tdlib/Makefile index 35be46ff1810..77fe4f5caaad 100644 --- a/net-im/tdlib/Makefile +++ b/net-im/tdlib/Makefile @@ -1,7 +1,7 @@ PORTNAME= tdlib DISTVERSIONPREFIX= v DISTVERSION= 1.8.48 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net-im devel MAINTAINER= yuri@FreeBSD.org @@ -29,10 +29,10 @@ post-patch: post-install: # see https://github.com/tdlib/td/issues/3328 @cd ${WRKSRC}/td && \ - ${COPYTREE_SHARE} telegram ${STAGEDIR}${PREFIX}/include/td + ${COPYTREE_SHARE} telegram ${STAGEDIR}${PREFIX}/include/td "-name *\.h -o -name *\.hpp" @cd ${WRKSRC}/tdutils/td && \ - ${COPYTREE_SHARE} utils ${STAGEDIR}${PREFIX}/include/td + ${COPYTREE_SHARE} utils ${STAGEDIR}${PREFIX}/include/td "-name *\.h -o -name *\.hpp" @cd ${WRKSRC}/tde2e/td && \ - ${COPYTREE_SHARE} e2e ${STAGEDIR}${PREFIX}/include/td + ${COPYTREE_SHARE} e2e ${STAGEDIR}${PREFIX}/include/td "-name *\.h -o -name *\.hpp" .include <bsd.port.mk> diff --git a/net-im/tdlib/pkg-plist b/net-im/tdlib/pkg-plist index a07b996bb35e..bdf48af6106a 100644 --- a/net-im/tdlib/pkg-plist +++ b/net-im/tdlib/pkg-plist @@ -1,863 +1,520 @@ -include/td/e2e/BitString.cpp include/td/e2e/BitString.h -include/td/e2e/Blockchain.cpp include/td/e2e/Blockchain.h -include/td/e2e/Blockchain.md -include/td/e2e/Call.cpp include/td/e2e/Call.h -include/td/e2e/CheckSharedSecret.cpp include/td/e2e/CheckSharedSecret.h include/td/e2e/Container.h -include/td/e2e/DecryptedKey.cpp include/td/e2e/DecryptedKey.h -include/td/e2e/EncryptedKey.cpp include/td/e2e/EncryptedKey.h -include/td/e2e/EncryptedStorage.cpp include/td/e2e/EncryptedStorage.h -include/td/e2e/Encryption.md -include/td/e2e/Keys.cpp include/td/e2e/Keys.h -include/td/e2e/MessageEncryption.cpp include/td/e2e/MessageEncryption.h -include/td/e2e/Mnemonic.cpp include/td/e2e/Mnemonic.h -include/td/e2e/QRHandshake.cpp include/td/e2e/QRHandshake.h -include/td/e2e/TestBlockchain.cpp include/td/e2e/TestBlockchain.h -include/td/e2e/Trie.cpp include/td/e2e/Trie.h -include/td/e2e/bip39.cpp include/td/e2e/bip39.h -include/td/e2e/e2e_api.cpp include/td/e2e/e2e_api.h include/td/e2e/e2e_errors.h -include/td/e2e/encryption_test.py include/td/e2e/utils.h include/td/telegram/AccentColorId.h include/td/telegram/AccessRights.h -include/td/telegram/AccountManager.cpp include/td/telegram/AccountManager.h include/td/telegram/AffectedHistory.h -include/td/telegram/AffiliateType.cpp include/td/telegram/AffiliateType.h -include/td/telegram/AlarmManager.cpp include/td/telegram/AlarmManager.h -include/td/telegram/AnimationsManager.cpp include/td/telegram/AnimationsManager.h include/td/telegram/AnimationsManager.hpp -include/td/telegram/Application.cpp include/td/telegram/Application.h -include/td/telegram/AttachMenuManager.cpp include/td/telegram/AttachMenuManager.h -include/td/telegram/AudiosManager.cpp include/td/telegram/AudiosManager.h include/td/telegram/AudiosManager.hpp -include/td/telegram/AuthManager.cpp include/td/telegram/AuthManager.h include/td/telegram/AuthManager.hpp -include/td/telegram/AutoDownloadSettings.cpp include/td/telegram/AutoDownloadSettings.h -include/td/telegram/AutosaveManager.cpp include/td/telegram/AutosaveManager.h include/td/telegram/BackgroundId.h -include/td/telegram/BackgroundInfo.cpp include/td/telegram/BackgroundInfo.h include/td/telegram/BackgroundInfo.hpp -include/td/telegram/BackgroundManager.cpp include/td/telegram/BackgroundManager.h -include/td/telegram/BackgroundType.cpp include/td/telegram/BackgroundType.h include/td/telegram/BackgroundType.hpp -include/td/telegram/BaseTheme.cpp include/td/telegram/BaseTheme.h -include/td/telegram/Birthdate.cpp include/td/telegram/Birthdate.h include/td/telegram/Birthdate.hpp include/td/telegram/BlockListId.h -include/td/telegram/BoostManager.cpp include/td/telegram/BoostManager.h -include/td/telegram/BotCommand.cpp include/td/telegram/BotCommand.h -include/td/telegram/BotCommandScope.cpp include/td/telegram/BotCommandScope.h -include/td/telegram/BotInfoManager.cpp include/td/telegram/BotInfoManager.h -include/td/telegram/BotMenuButton.cpp include/td/telegram/BotMenuButton.h -include/td/telegram/BotQueries.cpp include/td/telegram/BotQueries.h -include/td/telegram/BotRecommendationManager.cpp include/td/telegram/BotRecommendationManager.h -include/td/telegram/BotVerification.cpp include/td/telegram/BotVerification.h include/td/telegram/BotVerification.hpp -include/td/telegram/BotVerifierSettings.cpp include/td/telegram/BotVerifierSettings.h include/td/telegram/BotVerifierSettings.hpp -include/td/telegram/BusinessAwayMessage.cpp include/td/telegram/BusinessAwayMessage.h include/td/telegram/BusinessAwayMessage.hpp -include/td/telegram/BusinessAwayMessageSchedule.cpp include/td/telegram/BusinessAwayMessageSchedule.h include/td/telegram/BusinessAwayMessageSchedule.hpp -include/td/telegram/BusinessBotManageBar.cpp include/td/telegram/BusinessBotManageBar.h -include/td/telegram/BusinessBotRights.cpp include/td/telegram/BusinessBotRights.h include/td/telegram/BusinessBotRights.hpp -include/td/telegram/BusinessChatLink.cpp include/td/telegram/BusinessChatLink.h -include/td/telegram/BusinessConnectedBot.cpp include/td/telegram/BusinessConnectedBot.h include/td/telegram/BusinessConnectedBot.hpp include/td/telegram/BusinessConnectionId.h -include/td/telegram/BusinessConnectionManager.cpp include/td/telegram/BusinessConnectionManager.h -include/td/telegram/BusinessGreetingMessage.cpp include/td/telegram/BusinessGreetingMessage.h include/td/telegram/BusinessGreetingMessage.hpp -include/td/telegram/BusinessInfo.cpp include/td/telegram/BusinessInfo.h include/td/telegram/BusinessInfo.hpp -include/td/telegram/BusinessIntro.cpp include/td/telegram/BusinessIntro.h include/td/telegram/BusinessIntro.hpp -include/td/telegram/BusinessManager.cpp include/td/telegram/BusinessManager.h -include/td/telegram/BusinessRecipients.cpp include/td/telegram/BusinessRecipients.h include/td/telegram/BusinessRecipients.hpp -include/td/telegram/BusinessWorkHours.cpp include/td/telegram/BusinessWorkHours.h include/td/telegram/BusinessWorkHours.hpp -include/td/telegram/CallActor.cpp include/td/telegram/CallActor.h -include/td/telegram/CallDiscardReason.cpp include/td/telegram/CallDiscardReason.h include/td/telegram/CallId.h -include/td/telegram/CallManager.cpp include/td/telegram/CallManager.h -include/td/telegram/CallbackQueriesManager.cpp include/td/telegram/CallbackQueriesManager.h include/td/telegram/ChainId.h include/td/telegram/ChannelId.h -include/td/telegram/ChannelParticipantFilter.cpp include/td/telegram/ChannelParticipantFilter.h -include/td/telegram/ChannelRecommendationManager.cpp include/td/telegram/ChannelRecommendationManager.h include/td/telegram/ChannelType.h include/td/telegram/ChatId.h -include/td/telegram/ChatManager.cpp include/td/telegram/ChatManager.h -include/td/telegram/ChatReactions.cpp include/td/telegram/ChatReactions.h include/td/telegram/ChatReactions.hpp -include/td/telegram/Client.cpp include/td/telegram/Client.h -include/td/telegram/ClientActor.cpp include/td/telegram/ClientActor.h -include/td/telegram/ClientDotNet.cpp -include/td/telegram/ClientJson.cpp include/td/telegram/ClientJson.h -include/td/telegram/CommonDialogManager.cpp include/td/telegram/CommonDialogManager.h -include/td/telegram/ConfigManager.cpp include/td/telegram/ConfigManager.h -include/td/telegram/ConnectionState.cpp include/td/telegram/ConnectionState.h -include/td/telegram/ConnectionStateManager.cpp include/td/telegram/ConnectionStateManager.h -include/td/telegram/Contact.cpp include/td/telegram/Contact.h -include/td/telegram/CountryInfoManager.cpp include/td/telegram/CountryInfoManager.h include/td/telegram/CustomEmojiId.h -include/td/telegram/DelayDispatcher.cpp include/td/telegram/DelayDispatcher.h -include/td/telegram/Dependencies.cpp include/td/telegram/Dependencies.h -include/td/telegram/DeviceTokenManager.cpp include/td/telegram/DeviceTokenManager.h -include/td/telegram/DhCache.cpp include/td/telegram/DhCache.h include/td/telegram/DhConfig.h -include/td/telegram/DialogAction.cpp include/td/telegram/DialogAction.h -include/td/telegram/DialogActionBar.cpp include/td/telegram/DialogActionBar.h -include/td/telegram/DialogActionManager.cpp include/td/telegram/DialogActionManager.h -include/td/telegram/DialogAdministrator.cpp include/td/telegram/DialogAdministrator.h include/td/telegram/DialogBoostLinkInfo.h include/td/telegram/DialogDate.h -include/td/telegram/DialogDb.cpp include/td/telegram/DialogDb.h -include/td/telegram/DialogEventLog.cpp include/td/telegram/DialogEventLog.h -include/td/telegram/DialogFilter.cpp include/td/telegram/DialogFilter.h include/td/telegram/DialogFilter.hpp include/td/telegram/DialogFilterDialogInfo.h include/td/telegram/DialogFilterId.h -include/td/telegram/DialogFilterInviteLink.cpp include/td/telegram/DialogFilterInviteLink.h -include/td/telegram/DialogFilterManager.cpp include/td/telegram/DialogFilterManager.h -include/td/telegram/DialogId.cpp include/td/telegram/DialogId.h -include/td/telegram/DialogInviteLink.cpp include/td/telegram/DialogInviteLink.h include/td/telegram/DialogInviteLink.hpp -include/td/telegram/DialogInviteLinkManager.cpp include/td/telegram/DialogInviteLinkManager.h include/td/telegram/DialogListId.h -include/td/telegram/DialogLocation.cpp include/td/telegram/DialogLocation.h -include/td/telegram/DialogManager.cpp include/td/telegram/DialogManager.h -include/td/telegram/DialogNotificationSettings.cpp include/td/telegram/DialogNotificationSettings.h include/td/telegram/DialogNotificationSettings.hpp -include/td/telegram/DialogParticipant.cpp include/td/telegram/DialogParticipant.h -include/td/telegram/DialogParticipantFilter.cpp include/td/telegram/DialogParticipantFilter.h -include/td/telegram/DialogParticipantManager.cpp include/td/telegram/DialogParticipantManager.h -include/td/telegram/DialogSource.cpp include/td/telegram/DialogSource.h -include/td/telegram/Dimensions.cpp include/td/telegram/Dimensions.h include/td/telegram/Dimensions.hpp -include/td/telegram/DisallowedGiftsSettings.cpp include/td/telegram/DisallowedGiftsSettings.h include/td/telegram/DisallowedGiftsSettings.hpp -include/td/telegram/Document.cpp include/td/telegram/Document.h include/td/telegram/Document.hpp -include/td/telegram/DocumentsManager.cpp include/td/telegram/DocumentsManager.h include/td/telegram/DocumentsManager.hpp -include/td/telegram/DownloadManager.cpp include/td/telegram/DownloadManager.h -include/td/telegram/DownloadManagerCallback.cpp include/td/telegram/DownloadManagerCallback.h -include/td/telegram/DraftMessage.cpp include/td/telegram/DraftMessage.h include/td/telegram/DraftMessage.hpp -include/td/telegram/EmailVerification.cpp include/td/telegram/EmailVerification.h -include/td/telegram/EmojiGroup.cpp include/td/telegram/EmojiGroup.h include/td/telegram/EmojiGroup.hpp -include/td/telegram/EmojiGroupType.cpp include/td/telegram/EmojiGroupType.h -include/td/telegram/EmojiStatus.cpp include/td/telegram/EmojiStatus.h include/td/telegram/EncryptedFile.h -include/td/telegram/FactCheck.cpp include/td/telegram/FactCheck.h include/td/telegram/FactCheck.hpp -include/td/telegram/FileReferenceManager.cpp include/td/telegram/FileReferenceManager.h include/td/telegram/FileReferenceManager.hpp include/td/telegram/FolderId.h -include/td/telegram/ForumTopic.cpp include/td/telegram/ForumTopic.h include/td/telegram/ForumTopic.hpp -include/td/telegram/ForumTopicEditedData.cpp include/td/telegram/ForumTopicEditedData.h include/td/telegram/ForumTopicEditedData.hpp -include/td/telegram/ForumTopicIcon.cpp include/td/telegram/ForumTopicIcon.h include/td/telegram/ForumTopicIcon.hpp -include/td/telegram/ForumTopicInfo.cpp include/td/telegram/ForumTopicInfo.h include/td/telegram/ForumTopicInfo.hpp -include/td/telegram/ForumTopicManager.cpp include/td/telegram/ForumTopicManager.h -include/td/telegram/Game.cpp include/td/telegram/Game.h include/td/telegram/Game.hpp -include/td/telegram/GameManager.cpp include/td/telegram/GameManager.h -include/td/telegram/GitCommitHash.cpp.in include/td/telegram/GitCommitHash.h -include/td/telegram/GiveawayParameters.cpp include/td/telegram/GiveawayParameters.h include/td/telegram/GiveawayParameters.hpp -include/td/telegram/Global.cpp include/td/telegram/Global.h -include/td/telegram/GlobalPrivacySettings.cpp include/td/telegram/GlobalPrivacySettings.h include/td/telegram/GroupCallId.h -include/td/telegram/GroupCallJoinParameters.cpp include/td/telegram/GroupCallJoinParameters.h -include/td/telegram/GroupCallManager.cpp include/td/telegram/GroupCallManager.h -include/td/telegram/GroupCallParticipant.cpp include/td/telegram/GroupCallParticipant.h -include/td/telegram/GroupCallParticipantOrder.cpp include/td/telegram/GroupCallParticipantOrder.h -include/td/telegram/GroupCallVideoPayload.cpp include/td/telegram/GroupCallVideoPayload.h -include/td/telegram/HashtagHints.cpp include/td/telegram/HashtagHints.h -include/td/telegram/InlineMessageManager.cpp include/td/telegram/InlineMessageManager.h -include/td/telegram/InlineQueriesManager.cpp include/td/telegram/InlineQueriesManager.h -include/td/telegram/InputBusinessChatLink.cpp include/td/telegram/InputBusinessChatLink.h -include/td/telegram/InputDialogId.cpp include/td/telegram/InputDialogId.h -include/td/telegram/InputGroupCall.cpp include/td/telegram/InputGroupCall.h -include/td/telegram/InputGroupCallId.cpp include/td/telegram/InputGroupCallId.h -include/td/telegram/InputInvoice.cpp include/td/telegram/InputInvoice.h include/td/telegram/InputInvoice.hpp -include/td/telegram/InputMessageText.cpp include/td/telegram/InputMessageText.h include/td/telegram/InputMessageText.hpp -include/td/telegram/JsonValue.cpp include/td/telegram/JsonValue.h include/td/telegram/LabeledPricePart.h -include/td/telegram/LanguagePackManager.cpp include/td/telegram/LanguagePackManager.h -include/td/telegram/LinkManager.cpp include/td/telegram/LinkManager.h -include/td/telegram/Location.cpp include/td/telegram/Location.h -include/td/telegram/Log.cpp include/td/telegram/Log.h -include/td/telegram/LogDotNet.cpp -include/td/telegram/Logging.cpp include/td/telegram/Logging.h -include/td/telegram/MediaArea.cpp include/td/telegram/MediaArea.h include/td/telegram/MediaArea.hpp -include/td/telegram/MediaAreaCoordinates.cpp include/td/telegram/MediaAreaCoordinates.h include/td/telegram/MediaAreaCoordinates.hpp -include/td/telegram/MessageContent.cpp include/td/telegram/MessageContent.h -include/td/telegram/MessageContentType.cpp include/td/telegram/MessageContentType.h include/td/telegram/MessageCopyOptions.h -include/td/telegram/MessageDb.cpp include/td/telegram/MessageDb.h include/td/telegram/MessageEffectId.h -include/td/telegram/MessageEntity.cpp include/td/telegram/MessageEntity.h include/td/telegram/MessageEntity.hpp -include/td/telegram/MessageExtendedMedia.cpp include/td/telegram/MessageExtendedMedia.h include/td/telegram/MessageExtendedMedia.hpp -include/td/telegram/MessageForwardInfo.cpp include/td/telegram/MessageForwardInfo.h include/td/telegram/MessageForwardInfo.hpp include/td/telegram/MessageFullId.h -include/td/telegram/MessageId.cpp include/td/telegram/MessageId.h -include/td/telegram/MessageImportManager.cpp include/td/telegram/MessageImportManager.h -include/td/telegram/MessageInputReplyTo.cpp include/td/telegram/MessageInputReplyTo.h include/td/telegram/MessageInputReplyTo.hpp include/td/telegram/MessageLinkInfo.h -include/td/telegram/MessageOrigin.cpp include/td/telegram/MessageOrigin.h include/td/telegram/MessageOrigin.hpp -include/td/telegram/MessageQueryManager.cpp include/td/telegram/MessageQueryManager.h -include/td/telegram/MessageQuote.cpp include/td/telegram/MessageQuote.h include/td/telegram/MessageQuote.hpp -include/td/telegram/MessageReaction.cpp include/td/telegram/MessageReaction.h include/td/telegram/MessageReaction.hpp -include/td/telegram/MessageReactor.cpp include/td/telegram/MessageReactor.h include/td/telegram/MessageReactor.hpp -include/td/telegram/MessageReplyHeader.cpp include/td/telegram/MessageReplyHeader.h -include/td/telegram/MessageReplyInfo.cpp include/td/telegram/MessageReplyInfo.h include/td/telegram/MessageReplyInfo.hpp -include/td/telegram/MessageSearchFilter.cpp include/td/telegram/MessageSearchFilter.h -include/td/telegram/MessageSearchOffset.cpp include/td/telegram/MessageSearchOffset.h -include/td/telegram/MessageSelfDestructType.cpp include/td/telegram/MessageSelfDestructType.h -include/td/telegram/MessageSender.cpp include/td/telegram/MessageSender.h -include/td/telegram/MessageSource.cpp include/td/telegram/MessageSource.h -include/td/telegram/MessageThreadDb.cpp include/td/telegram/MessageThreadDb.h include/td/telegram/MessageThreadInfo.h -include/td/telegram/MessageTtl.cpp include/td/telegram/MessageTtl.h -include/td/telegram/MessageViewer.cpp include/td/telegram/MessageViewer.h -include/td/telegram/MessagesInfo.cpp include/td/telegram/MessagesInfo.h -include/td/telegram/MessagesManager.cpp include/td/telegram/MessagesManager.h include/td/telegram/MinChannel.h include/td/telegram/MinChannel.hpp -include/td/telegram/MissingInvitee.cpp include/td/telegram/MissingInvitee.h -include/td/telegram/NewPasswordState.cpp include/td/telegram/NewPasswordState.h include/td/telegram/Notification.h include/td/telegram/NotificationGroupFromDatabase.h include/td/telegram/NotificationGroupId.h -include/td/telegram/NotificationGroupInfo.cpp include/td/telegram/NotificationGroupInfo.h include/td/telegram/NotificationGroupInfo.hpp include/td/telegram/NotificationGroupKey.h -include/td/telegram/NotificationGroupType.cpp include/td/telegram/NotificationGroupType.h include/td/telegram/NotificationId.h -include/td/telegram/NotificationManager.cpp include/td/telegram/NotificationManager.h include/td/telegram/NotificationObjectFullId.h include/td/telegram/NotificationObjectId.h -include/td/telegram/NotificationSettingsManager.cpp include/td/telegram/NotificationSettingsManager.h -include/td/telegram/NotificationSettingsScope.cpp include/td/telegram/NotificationSettingsScope.h -include/td/telegram/NotificationSound.cpp include/td/telegram/NotificationSound.h include/td/telegram/NotificationSoundType.h -include/td/telegram/NotificationType.cpp include/td/telegram/NotificationType.h -include/td/telegram/OnlineManager.cpp include/td/telegram/OnlineManager.h -include/td/telegram/OptionManager.cpp include/td/telegram/OptionManager.h -include/td/telegram/OrderInfo.cpp include/td/telegram/OrderInfo.h include/td/telegram/OrderInfo.hpp -include/td/telegram/OrderedMessage.cpp include/td/telegram/OrderedMessage.h -include/td/telegram/Outline.cpp include/td/telegram/Outline.h -include/td/telegram/PaidReactionType.cpp include/td/telegram/PaidReactionType.h include/td/telegram/PaidReactionType.hpp -include/td/telegram/PasswordManager.cpp include/td/telegram/PasswordManager.h -include/td/telegram/Payments.cpp include/td/telegram/Payments.h -include/td/telegram/PeerColor.cpp include/td/telegram/PeerColor.h -include/td/telegram/PeopleNearbyManager.cpp include/td/telegram/PeopleNearbyManager.h -include/td/telegram/PhoneNumberManager.cpp include/td/telegram/PhoneNumberManager.h -include/td/telegram/Photo.cpp include/td/telegram/Photo.h include/td/telegram/Photo.hpp include/td/telegram/PhotoFormat.h -include/td/telegram/PhotoSize.cpp include/td/telegram/PhotoSize.h include/td/telegram/PhotoSize.hpp -include/td/telegram/PhotoSizeSource.cpp include/td/telegram/PhotoSizeSource.h include/td/telegram/PhotoSizeSource.hpp include/td/telegram/PhotoSizeType.h include/td/telegram/PhotoSizeType.hpp include/td/telegram/PollId.h include/td/telegram/PollId.hpp -include/td/telegram/PollManager.cpp include/td/telegram/PollManager.h include/td/telegram/PollManager.hpp -include/td/telegram/Premium.cpp include/td/telegram/Premium.h -include/td/telegram/PremiumGiftOption.cpp include/td/telegram/PremiumGiftOption.h include/td/telegram/PremiumGiftOption.hpp -include/td/telegram/PrivacyManager.cpp include/td/telegram/PrivacyManager.h -include/td/telegram/PromoDataManager.cpp include/td/telegram/PromoDataManager.h include/td/telegram/PtsManager.h include/td/telegram/PublicDialogType.h -include/td/telegram/QueryCombiner.cpp include/td/telegram/QueryCombiner.h -include/td/telegram/QueryMerger.cpp include/td/telegram/QueryMerger.h -include/td/telegram/QuickReplyManager.cpp include/td/telegram/QuickReplyManager.h include/td/telegram/QuickReplyMessageFullId.h include/td/telegram/QuickReplyShortcutId.h -include/td/telegram/ReactionListType.cpp include/td/telegram/ReactionListType.h -include/td/telegram/ReactionManager.cpp include/td/telegram/ReactionManager.h include/td/telegram/ReactionManager.hpp -include/td/telegram/ReactionNotificationSettings.cpp include/td/telegram/ReactionNotificationSettings.h include/td/telegram/ReactionNotificationSettings.hpp -include/td/telegram/ReactionNotificationsFrom.cpp include/td/telegram/ReactionNotificationsFrom.h include/td/telegram/ReactionNotificationsFrom.hpp -include/td/telegram/ReactionType.cpp include/td/telegram/ReactionType.h include/td/telegram/ReactionType.hpp include/td/telegram/ReactionUnavailabilityReason.h -include/td/telegram/RecentDialogList.cpp include/td/telegram/RecentDialogList.h -include/td/telegram/ReferralProgramInfo.cpp include/td/telegram/ReferralProgramInfo.h include/td/telegram/ReferralProgramInfo.hpp -include/td/telegram/ReferralProgramManager.cpp include/td/telegram/ReferralProgramManager.h -include/td/telegram/ReferralProgramParameters.cpp include/td/telegram/ReferralProgramParameters.h include/td/telegram/ReferralProgramParameters.hpp -include/td/telegram/ReferralProgramSortOrder.cpp include/td/telegram/ReferralProgramSortOrder.h -include/td/telegram/RepliedMessageInfo.cpp include/td/telegram/RepliedMessageInfo.h include/td/telegram/RepliedMessageInfo.hpp -include/td/telegram/ReplyMarkup.cpp include/td/telegram/ReplyMarkup.h include/td/telegram/ReplyMarkup.hpp -include/td/telegram/ReportReason.cpp include/td/telegram/ReportReason.h include/td/telegram/RequestActor.h -include/td/telegram/RequestedDialogType.cpp include/td/telegram/RequestedDialogType.h include/td/telegram/RequestedDialogType.hpp -include/td/telegram/Requests.cpp include/td/telegram/Requests.h -include/td/telegram/RestrictionReason.cpp include/td/telegram/RestrictionReason.h -include/td/telegram/SavedMessagesManager.cpp include/td/telegram/SavedMessagesManager.h -include/td/telegram/SavedMessagesTopicId.cpp include/td/telegram/SavedMessagesTopicId.h include/td/telegram/ScheduledServerMessageId.h -include/td/telegram/ScopeNotificationSettings.cpp include/td/telegram/ScopeNotificationSettings.h include/td/telegram/ScopeNotificationSettings.hpp -include/td/telegram/SecretChatActor.cpp include/td/telegram/SecretChatActor.h -include/td/telegram/SecretChatDb.cpp include/td/telegram/SecretChatDb.h include/td/telegram/SecretChatId.h include/td/telegram/SecretChatLayer.h -include/td/telegram/SecretChatsManager.cpp include/td/telegram/SecretChatsManager.h -include/td/telegram/SecretInputMedia.cpp include/td/telegram/SecretInputMedia.h -include/td/telegram/SecureManager.cpp include/td/telegram/SecureManager.h -include/td/telegram/SecureStorage.cpp include/td/telegram/SecureStorage.h -include/td/telegram/SecureValue.cpp include/td/telegram/SecureValue.h include/td/telegram/SecureValue.hpp -include/td/telegram/SendCodeHelper.cpp include/td/telegram/SendCodeHelper.h include/td/telegram/SendCodeHelper.hpp -include/td/telegram/SentEmailCode.cpp include/td/telegram/SentEmailCode.h -include/td/telegram/SequenceDispatcher.cpp include/td/telegram/SequenceDispatcher.h include/td/telegram/ServerMessageId.h include/td/telegram/SetWithPosition.h -include/td/telegram/SharedDialog.cpp include/td/telegram/SharedDialog.h include/td/telegram/SharedDialog.hpp -include/td/telegram/SpecialStickerSetType.cpp include/td/telegram/SpecialStickerSetType.h -include/td/telegram/SponsoredMessageManager.cpp include/td/telegram/SponsoredMessageManager.h -include/td/telegram/StarAmount.cpp include/td/telegram/StarAmount.h include/td/telegram/StarAmount.hpp -include/td/telegram/StarGift.cpp include/td/telegram/StarGift.h include/td/telegram/StarGift.hpp -include/td/telegram/StarGiftAttribute.cpp include/td/telegram/StarGiftAttribute.h include/td/telegram/StarGiftAttribute.hpp -include/td/telegram/StarGiftId.cpp include/td/telegram/StarGiftId.h include/td/telegram/StarGiftId.hpp -include/td/telegram/StarGiftManager.cpp include/td/telegram/StarGiftManager.h -include/td/telegram/StarGiftSettings.cpp include/td/telegram/StarGiftSettings.h include/td/telegram/StarGiftSettings.hpp -include/td/telegram/StarManager.cpp include/td/telegram/StarManager.h -include/td/telegram/StarSubscription.cpp include/td/telegram/StarSubscription.h -include/td/telegram/StarSubscriptionPricing.cpp include/td/telegram/StarSubscriptionPricing.h include/td/telegram/StarSubscriptionPricing.hpp -include/td/telegram/StateManager.cpp include/td/telegram/StateManager.h -include/td/telegram/StatisticsManager.cpp include/td/telegram/StatisticsManager.h -include/td/telegram/StickerFormat.cpp include/td/telegram/StickerFormat.h -include/td/telegram/StickerListType.cpp include/td/telegram/StickerListType.h -include/td/telegram/StickerMaskPosition.cpp include/td/telegram/StickerMaskPosition.h include/td/telegram/StickerMaskPosition.hpp -include/td/telegram/StickerPhotoSize.cpp include/td/telegram/StickerPhotoSize.h include/td/telegram/StickerPhotoSize.hpp -include/td/telegram/StickerSetId.cpp include/td/telegram/StickerSetId.h -include/td/telegram/StickerType.cpp include/td/telegram/StickerType.h -include/td/telegram/StickersManager.cpp include/td/telegram/StickersManager.h include/td/telegram/StickersManager.hpp -include/td/telegram/StorageManager.cpp include/td/telegram/StorageManager.h -include/td/telegram/StoryContent.cpp include/td/telegram/StoryContent.h -include/td/telegram/StoryContentType.cpp include/td/telegram/StoryContentType.h -include/td/telegram/StoryDb.cpp include/td/telegram/StoryDb.h -include/td/telegram/StoryForwardInfo.cpp include/td/telegram/StoryForwardInfo.h include/td/telegram/StoryForwardInfo.hpp include/td/telegram/StoryFullId.h include/td/telegram/StoryId.h -include/td/telegram/StoryInteractionInfo.cpp include/td/telegram/StoryInteractionInfo.h include/td/telegram/StoryInteractionInfo.hpp include/td/telegram/StoryListId.h -include/td/telegram/StoryManager.cpp include/td/telegram/StoryManager.h include/td/telegram/StoryNotificationSettings.h -include/td/telegram/StoryStealthMode.cpp include/td/telegram/StoryStealthMode.h include/td/telegram/StoryStealthMode.hpp -include/td/telegram/StoryViewer.cpp include/td/telegram/StoryViewer.h -include/td/telegram/SuggestedAction.cpp include/td/telegram/SuggestedAction.h include/td/telegram/SuggestedAction.hpp -include/td/telegram/SuggestedActionManager.cpp include/td/telegram/SuggestedActionManager.h -include/td/telegram/Support.cpp include/td/telegram/Support.h -include/td/telegram/SynchronousRequests.cpp include/td/telegram/SynchronousRequests.h -include/td/telegram/TargetDialogTypes.cpp include/td/telegram/TargetDialogTypes.h -include/td/telegram/Td.cpp include/td/telegram/Td.h include/td/telegram/TdCallback.h -include/td/telegram/TdDb.cpp include/td/telegram/TdDb.h -include/td/telegram/TermsOfService.cpp include/td/telegram/TermsOfService.h include/td/telegram/TermsOfService.hpp -include/td/telegram/TermsOfServiceManager.cpp include/td/telegram/TermsOfServiceManager.h -include/td/telegram/ThemeManager.cpp include/td/telegram/ThemeManager.h -include/td/telegram/ThemeSettings.cpp include/td/telegram/ThemeSettings.h include/td/telegram/ThemeSettings.hpp -include/td/telegram/TimeZoneManager.cpp include/td/telegram/TimeZoneManager.h -include/td/telegram/TopDialogCategory.cpp include/td/telegram/TopDialogCategory.h -include/td/telegram/TopDialogManager.cpp include/td/telegram/TopDialogManager.h -include/td/telegram/TranscriptionInfo.cpp include/td/telegram/TranscriptionInfo.h include/td/telegram/TranscriptionInfo.hpp -include/td/telegram/TranscriptionManager.cpp include/td/telegram/TranscriptionManager.h -include/td/telegram/TranslationManager.cpp include/td/telegram/TranslationManager.h include/td/telegram/UniqueId.h -include/td/telegram/UpdatesManager.cpp include/td/telegram/UpdatesManager.h include/td/telegram/UserId.h -include/td/telegram/UserManager.cpp include/td/telegram/UserManager.h -include/td/telegram/UserPrivacySetting.cpp include/td/telegram/UserPrivacySetting.h -include/td/telegram/UserPrivacySettingRule.cpp include/td/telegram/UserPrivacySettingRule.h -include/td/telegram/UserStarGift.cpp include/td/telegram/UserStarGift.h -include/td/telegram/Usernames.cpp include/td/telegram/Usernames.h -include/td/telegram/Venue.cpp include/td/telegram/Venue.h -include/td/telegram/VerificationStatus.cpp include/td/telegram/VerificationStatus.h include/td/telegram/Version.h -include/td/telegram/VideoNotesManager.cpp include/td/telegram/VideoNotesManager.h include/td/telegram/VideoNotesManager.hpp -include/td/telegram/VideosManager.cpp include/td/telegram/VideosManager.h include/td/telegram/VideosManager.hpp -include/td/telegram/VoiceNotesManager.cpp include/td/telegram/VoiceNotesManager.h include/td/telegram/VoiceNotesManager.hpp -include/td/telegram/WebApp.cpp include/td/telegram/WebApp.h include/td/telegram/WebApp.hpp -include/td/telegram/WebAppManager.cpp include/td/telegram/WebAppManager.h -include/td/telegram/WebAppOpenParameters.cpp include/td/telegram/WebAppOpenParameters.h -include/td/telegram/WebPageBlock.cpp include/td/telegram/WebPageBlock.h include/td/telegram/WebPageId.h -include/td/telegram/WebPagesManager.cpp include/td/telegram/WebPagesManager.h -include/td/telegram/cli.cpp -include/td/telegram/files/FileBitmask.cpp include/td/telegram/files/FileBitmask.h include/td/telegram/files/FileData.h include/td/telegram/files/FileData.hpp -include/td/telegram/files/FileDb.cpp include/td/telegram/files/FileDb.h include/td/telegram/files/FileDbId.h -include/td/telegram/files/FileDownloadManager.cpp include/td/telegram/files/FileDownloadManager.h -include/td/telegram/files/FileDownloader.cpp include/td/telegram/files/FileDownloader.h -include/td/telegram/files/FileEncryptionKey.cpp include/td/telegram/files/FileEncryptionKey.h -include/td/telegram/files/FileFromBytes.cpp include/td/telegram/files/FileFromBytes.h -include/td/telegram/files/FileGcParameters.cpp include/td/telegram/files/FileGcParameters.h -include/td/telegram/files/FileGcWorker.cpp include/td/telegram/files/FileGcWorker.h -include/td/telegram/files/FileGenerateManager.cpp include/td/telegram/files/FileGenerateManager.h -include/td/telegram/files/FileHashUploader.cpp include/td/telegram/files/FileHashUploader.h include/td/telegram/files/FileId.h include/td/telegram/files/FileId.hpp -include/td/telegram/files/FileLoadManager.cpp include/td/telegram/files/FileLoadManager.h include/td/telegram/files/FileLoaderActor.h -include/td/telegram/files/FileLoaderUtils.cpp include/td/telegram/files/FileLoaderUtils.h include/td/telegram/files/FileLocation.h include/td/telegram/files/FileLocation.hpp -include/td/telegram/files/FileManager.cpp include/td/telegram/files/FileManager.h include/td/telegram/files/FileManager.hpp include/td/telegram/files/FileSourceId.h include/td/telegram/files/FileSourceId.hpp -include/td/telegram/files/FileStats.cpp include/td/telegram/files/FileStats.h -include/td/telegram/files/FileStatsWorker.cpp include/td/telegram/files/FileStatsWorker.h -include/td/telegram/files/FileType.cpp include/td/telegram/files/FileType.h include/td/telegram/files/FileUploadId.h -include/td/telegram/files/FileUploadManager.cpp include/td/telegram/files/FileUploadManager.h -include/td/telegram/files/FileUploader.cpp include/td/telegram/files/FileUploader.h -include/td/telegram/files/PartsManager.cpp include/td/telegram/files/PartsManager.h -include/td/telegram/files/ResourceManager.cpp include/td/telegram/files/ResourceManager.h -include/td/telegram/files/ResourceState.cpp include/td/telegram/files/ResourceState.h include/td/telegram/logevent/LogEvent.h -include/td/telegram/logevent/LogEventHelper.cpp include/td/telegram/logevent/LogEventHelper.h include/td/telegram/logevent/SecretChatEvent.h -include/td/telegram/misc.cpp include/td/telegram/misc.h -include/td/telegram/net/AuthDataShared.cpp include/td/telegram/net/AuthDataShared.h include/td/telegram/net/AuthKeyState.h -include/td/telegram/net/ConnectionCreator.cpp include/td/telegram/net/ConnectionCreator.h -include/td/telegram/net/DcAuthManager.cpp include/td/telegram/net/DcAuthManager.h include/td/telegram/net/DcId.h include/td/telegram/net/DcOptions.h -include/td/telegram/net/DcOptionsSet.cpp include/td/telegram/net/DcOptionsSet.h -include/td/telegram/net/MtprotoHeader.cpp include/td/telegram/net/MtprotoHeader.h -include/td/telegram/net/NetActor.cpp include/td/telegram/net/NetActor.h -include/td/telegram/net/NetQuery.cpp include/td/telegram/net/NetQuery.h include/td/telegram/net/NetQueryCounter.h -include/td/telegram/net/NetQueryCreator.cpp include/td/telegram/net/NetQueryCreator.h -include/td/telegram/net/NetQueryDelayer.cpp include/td/telegram/net/NetQueryDelayer.h -include/td/telegram/net/NetQueryDispatcher.cpp include/td/telegram/net/NetQueryDispatcher.h -include/td/telegram/net/NetQueryStats.cpp include/td/telegram/net/NetQueryStats.h -include/td/telegram/net/NetQueryVerifier.cpp include/td/telegram/net/NetQueryVerifier.h -include/td/telegram/net/NetStatsManager.cpp include/td/telegram/net/NetStatsManager.h include/td/telegram/net/NetType.h -include/td/telegram/net/Proxy.cpp include/td/telegram/net/Proxy.h -include/td/telegram/net/PublicRsaKeySharedCdn.cpp include/td/telegram/net/PublicRsaKeySharedCdn.h -include/td/telegram/net/PublicRsaKeySharedMain.cpp include/td/telegram/net/PublicRsaKeySharedMain.h -include/td/telegram/net/PublicRsaKeyWatchdog.cpp include/td/telegram/net/PublicRsaKeyWatchdog.h -include/td/telegram/net/Session.cpp include/td/telegram/net/Session.h -include/td/telegram/net/SessionMultiProxy.cpp include/td/telegram/net/SessionMultiProxy.h -include/td/telegram/net/SessionProxy.cpp include/td/telegram/net/SessionProxy.h include/td/telegram/net/TempAuthKeyWatchdog.h include/td/telegram/td_api.h include/td/telegram/td_api.hpp -include/td/telegram/td_c_client.cpp include/td/telegram/td_c_client.h -include/td/telegram/td_emscripten.cpp -include/td/telegram/td_json_client.cpp include/td/telegram/td_json_client.h -include/td/telegram/td_log.cpp include/td/telegram/td_log.h include/td/telegram/tdjson_export.h include/td/tl/TlObject.h include/td/utils/AesCtrByteFlow.h -include/td/utils/AsyncFileLog.cpp include/td/utils/AsyncFileLog.h include/td/utils/AtomicRead.h -include/td/utils/BigNum.cpp include/td/utils/BigNum.h include/td/utils/BufferedFd.h include/td/utils/BufferedReader.h -include/td/utils/BufferedUdp.cpp include/td/utils/BufferedUdp.h include/td/utils/ByteFlow.h include/td/utils/CancellationToken.h @@ -870,26 +527,19 @@ include/td/utils/Container.h include/td/utils/Context.h include/td/utils/DecTree.h include/td/utils/Destructor.h -include/td/utils/Ed25519.cpp include/td/utils/Ed25519.h include/td/utils/Enumerator.h include/td/utils/EpochBasedMemoryReclamation.h -include/td/utils/ExitGuard.cpp include/td/utils/ExitGuard.h -include/td/utils/FileLog.cpp include/td/utils/FileLog.h include/td/utils/FlatHashMap.h include/td/utils/FlatHashMapChunks.h include/td/utils/FlatHashSet.h -include/td/utils/FlatHashTable.cpp include/td/utils/FlatHashTable.h include/td/utils/FloodControlFast.h -include/td/utils/FloodControlGlobal.cpp include/td/utils/FloodControlGlobal.h include/td/utils/FloodControlStrict.h -include/td/utils/Gzip.cpp include/td/utils/Gzip.h -include/td/utils/GzipByteFlow.cpp include/td/utils/GzipByteFlow.h include/td/utils/Hash.h include/td/utils/HashMap.h @@ -897,21 +547,15 @@ include/td/utils/HashSet.h include/td/utils/HashTableUtils.h include/td/utils/HazardPointers.h include/td/utils/Heap.h -include/td/utils/Hints.cpp include/td/utils/Hints.h -include/td/utils/HttpDate.cpp include/td/utils/HttpDate.h -include/td/utils/HttpUrl.cpp include/td/utils/HttpUrl.h -include/td/utils/JsonBuilder.cpp include/td/utils/JsonBuilder.h include/td/utils/List.h include/td/utils/MapNode.h include/td/utils/MemoryLog.h -include/td/utils/MimeType.cpp include/td/utils/MimeType.h include/td/utils/MovableValue.h -include/td/utils/MpmcQueue.cpp include/td/utils/MpmcQueue.h include/td/utils/MpmcWaiter.h include/td/utils/MpscLinkQueue.h @@ -920,50 +564,37 @@ include/td/utils/Named.h include/td/utils/NullLog.h include/td/utils/ObjectPool.h include/td/utils/Observer.h -include/td/utils/OptionParser.cpp include/td/utils/OptionParser.h include/td/utils/OrderedEventsProcessor.h include/td/utils/Parser.h -include/td/utils/PathView.cpp include/td/utils/PathView.h include/td/utils/Promise.h -include/td/utils/Random.cpp include/td/utils/Random.h include/td/utils/ScopeGuard.h include/td/utils/SetNode.h include/td/utils/SharedObjectPool.h -include/td/utils/SharedSlice.cpp include/td/utils/SharedSlice.h include/td/utils/Slice-decl.h -include/td/utils/Slice.cpp include/td/utils/Slice.h include/td/utils/SliceBuilder.h include/td/utils/Span.h include/td/utils/SpinLock.h -include/td/utils/StackAllocator.cpp include/td/utils/StackAllocator.h -include/td/utils/Status.cpp include/td/utils/Status.h include/td/utils/StealingQueue.h include/td/utils/Storer.h include/td/utils/StorerBase.h -include/td/utils/StringBuilder.cpp include/td/utils/StringBuilder.h include/td/utils/ThreadLocalStorage.h include/td/utils/ThreadSafeCounter.h -include/td/utils/Time.cpp include/td/utils/Time.h include/td/utils/TimedStat.h -include/td/utils/Timer.cpp include/td/utils/Timer.h include/td/utils/TlDowncastHelper.h include/td/utils/TlStorerToString.h -include/td/utils/TsCerr.cpp include/td/utils/TsCerr.h -include/td/utils/TsFileLog.cpp include/td/utils/TsFileLog.h include/td/utils/TsList.h -include/td/utils/TsLog.cpp include/td/utils/TsLog.h include/td/utils/UInt.h include/td/utils/Variant.h @@ -973,129 +604,82 @@ include/td/utils/WaitFreeHashSet.h include/td/utils/WaitFreeVector.h include/td/utils/algorithm.h include/td/utils/as.h -include/td/utils/base64.cpp include/td/utils/base64.h include/td/utils/benchmark.h include/td/utils/bits.h -include/td/utils/buffer.cpp include/td/utils/buffer.h -include/td/utils/check.cpp include/td/utils/check.h include/td/utils/common.h -include/td/utils/config.h.in -include/td/utils/crypto.cpp include/td/utils/crypto.h -include/td/utils/emoji.cpp include/td/utils/emoji.h -include/td/utils/filesystem.cpp include/td/utils/filesystem.h -include/td/utils/find_boundary.cpp include/td/utils/find_boundary.h include/td/utils/fixed_vector.h include/td/utils/format.h include/td/utils/int_types.h include/td/utils/invoke.h -include/td/utils/logging.cpp include/td/utils/logging.h -include/td/utils/misc.cpp include/td/utils/misc.h include/td/utils/optional.h include/td/utils/overloaded.h -include/td/utils/port/Clocks.cpp include/td/utils/port/Clocks.h include/td/utils/port/CxCli.h include/td/utils/port/EventFd.h include/td/utils/port/EventFdBase.h -include/td/utils/port/FileFd.cpp include/td/utils/port/FileFd.h include/td/utils/port/FromApp.h -include/td/utils/port/IPAddress.cpp include/td/utils/port/IPAddress.h include/td/utils/port/IoSlice.h -include/td/utils/port/MemoryMapping.cpp include/td/utils/port/MemoryMapping.h include/td/utils/port/Mutex.h include/td/utils/port/Poll.h include/td/utils/port/PollBase.h -include/td/utils/port/PollFlags.cpp include/td/utils/port/PollFlags.h include/td/utils/port/RwMutex.h -include/td/utils/port/ServerSocketFd.cpp include/td/utils/port/ServerSocketFd.h -include/td/utils/port/SocketFd.cpp include/td/utils/port/SocketFd.h -include/td/utils/port/Stat.cpp include/td/utils/port/Stat.h -include/td/utils/port/StdStreams.cpp include/td/utils/port/StdStreams.h -include/td/utils/port/UdpSocketFd.cpp include/td/utils/port/UdpSocketFd.h include/td/utils/port/config.h -include/td/utils/port/detail/Epoll.cpp include/td/utils/port/detail/Epoll.h -include/td/utils/port/detail/EventFdBsd.cpp include/td/utils/port/detail/EventFdBsd.h -include/td/utils/port/detail/EventFdLinux.cpp include/td/utils/port/detail/EventFdLinux.h -include/td/utils/port/detail/EventFdWindows.cpp include/td/utils/port/detail/EventFdWindows.h -include/td/utils/port/detail/Iocp.cpp include/td/utils/port/detail/Iocp.h -include/td/utils/port/detail/KQueue.cpp include/td/utils/port/detail/KQueue.h -include/td/utils/port/detail/NativeFd.cpp include/td/utils/port/detail/NativeFd.h -include/td/utils/port/detail/Poll.cpp include/td/utils/port/detail/Poll.h include/td/utils/port/detail/PollableFd.h -include/td/utils/port/detail/Select.cpp include/td/utils/port/detail/Select.h -include/td/utils/port/detail/ThreadIdGuard.cpp include/td/utils/port/detail/ThreadIdGuard.h -include/td/utils/port/detail/ThreadPthread.cpp include/td/utils/port/detail/ThreadPthread.h include/td/utils/port/detail/ThreadStl.h -include/td/utils/port/detail/WineventPoll.cpp include/td/utils/port/detail/WineventPoll.h include/td/utils/port/detail/skip_eintr.h -include/td/utils/port/path.cpp include/td/utils/port/path.h -include/td/utils/port/platform.cpp include/td/utils/port/platform.h -include/td/utils/port/rlimit.cpp include/td/utils/port/rlimit.h -include/td/utils/port/signals.cpp include/td/utils/port/signals.h -include/td/utils/port/sleep.cpp include/td/utils/port/sleep.h -include/td/utils/port/stacktrace.cpp include/td/utils/port/stacktrace.h include/td/utils/port/thread.h -include/td/utils/port/thread_local.cpp include/td/utils/port/thread_local.h -include/td/utils/port/uname.cpp include/td/utils/port/uname.h -include/td/utils/port/user.cpp include/td/utils/port/user.h -include/td/utils/port/wstring_convert.cpp include/td/utils/port/wstring_convert.h include/td/utils/queue.h include/td/utils/simple_tests.h -include/td/utils/tests.cpp include/td/utils/tests.h include/td/utils/tl_helpers.h -include/td/utils/tl_parsers.cpp include/td/utils/tl_parsers.h include/td/utils/tl_storers.h -include/td/utils/translit.cpp include/td/utils/translit.h include/td/utils/type_traits.h include/td/utils/uint128.h -include/td/utils/unicode.cpp include/td/utils/unicode.h include/td/utils/unique_ptr.h include/td/utils/unique_value_ptr.h -include/td/utils/utf8.cpp include/td/utils/utf8.h lib/cmake/Td/TdConfig.cmake lib/cmake/Td/TdConfigVersion.cmake diff --git a/net-mgmt/fence-agents/Makefile b/net-mgmt/fence-agents/Makefile index 276441a228ce..3574273f858f 100644 --- a/net-mgmt/fence-agents/Makefile +++ b/net-mgmt/fence-agents/Makefile @@ -4,7 +4,7 @@ DISTVERSION= 4.12.1 PORTREVISION= 1 CATEGORIES= net-mgmt -MAINTAINER= bapt@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= OCF Compliant Fence Agents WWW= https://github.com/ClusterLabs/fence-agents diff --git a/net-mgmt/librenms/Makefile b/net-mgmt/librenms/Makefile index 7b69e1c90f46..db8ee52889af 100644 --- a/net-mgmt/librenms/Makefile +++ b/net-mgmt/librenms/Makefile @@ -1,5 +1,5 @@ PORTNAME= librenms -PORTVERSION= 25.4.0 +PORTVERSION= 25.5.0 PORTEPOCH= 1 CATEGORIES= net-mgmt MASTER_SITES= LOCAL/dvl:vendor @@ -128,7 +128,7 @@ _SCRIPT_FILES= daily.sh lnms # _RELEASE_TIMESTAMP is used for a patch inside the vendor code # it represents the release date via: git show --pretty='%H|%ct' -s 1.42.01 # It sits here so you remember to update it with each release -_RELEASE_TIMESTAMP= 1744632679 +_RELEASE_TIMESTAMP= 1747410665 _ROOT_DIRS= LibreNMS app bootstrap config database doc html \ includes lang licenses mibs misc resources routes \ scripts tests @@ -144,7 +144,8 @@ _OTHER_DIRS= database/seeders/config html/plugins html/js/lang \ resources/views/overview/custom tests/Browser/console \ tests/Browser/source tests/Browser/screenshots \ vendor/librenms/laravel-vue-i18n-generator/tests/output \ - vendor/symfony/string/Resources/bin + vendor/symfony/mime/Resources/bin \ + vendor/symfony/string/Resources/bin post-patch: ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ diff --git a/net-mgmt/librenms/distinfo b/net-mgmt/librenms/distinfo index 79969f5a3ccc..d32103c524b2 100644 --- a/net-mgmt/librenms/distinfo +++ b/net-mgmt/librenms/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1744640227 -SHA256 (librenms-vendor-25.4.0.tar.gz) = bf3dbdf5d4247cec4a86ad0a5089b62424e7a562c66a2f37d80af410d0df27b9 -SIZE (librenms-vendor-25.4.0.tar.gz) = 27494031 -SHA256 (librenms-librenms-25.4.0_GH0.tar.gz) = 1ee0d8c942dd86f7fb9a11746c9e69003dbcc37ed3725560c1e9bac7bc0ef159 -SIZE (librenms-librenms-25.4.0_GH0.tar.gz) = 68962755 +TIMESTAMP = 1747426836 +SHA256 (librenms-vendor-25.5.0.tar.gz) = 440a27dcf8167a4adebf967ad4bd75866fb9b0178d4cb5158fe579ef72c5d09f +SIZE (librenms-vendor-25.5.0.tar.gz) = 27644603 +SHA256 (librenms-librenms-25.5.0_GH0.tar.gz) = 5895c35ec795c64f412a2a2aa5fe9bfae66ccc5d0ef2f0258265f4d11727021b +SIZE (librenms-librenms-25.5.0_GH0.tar.gz) = 70132766 diff --git a/net-mgmt/mysqld_exporter/Makefile b/net-mgmt/mysqld_exporter/Makefile index cb66e8e904be..1a6435ead5d8 100644 --- a/net-mgmt/mysqld_exporter/Makefile +++ b/net-mgmt/mysqld_exporter/Makefile @@ -1,7 +1,6 @@ PORTNAME= mysqld_exporter -PORTVERSION= 0.12.1 -DISTVERSIONPREFIX=v -PORTREVISION= 25 +DISTVERSIONPREFIX= v +DISTVERSION= 0.17.2 CATEGORIES= net-mgmt MAINTAINER= mr.deadlystorm@gmail.com @@ -9,21 +8,13 @@ COMMENT= Prometheus exporter for MySQL server metrics WWW= https://github.com/prometheus/mysqld_exporter LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE -USES= go:modules -USE_GITHUB= yes - -GH_ACCOUNT= prometheus -GH_TUPLE= golang:sys:v0.6.0:sys - -GO_PKGNAME= github.com/${GH_ACCOUNT}/${PORTNAME} +USES= go:1.23,modules +GO_MODULE= github.com/prometheus/mysqld_exporter PLIST_FILES= bin/mysqld_exporter - USE_RC_SUBR= mysqld_exporter - -pre-patch: - ${RM} -r ${WRKSRC}/vendor/golang.org/x/sys - ${LN} -s ${WRKDIR}/sys-* ${WRKSRC}/vendor/golang.org/x/sys +SUB_FILES= pkg-message .include <bsd.port.mk> diff --git a/net-mgmt/mysqld_exporter/distinfo b/net-mgmt/mysqld_exporter/distinfo index 51d9709cc110..8e6fd9160f11 100644 --- a/net-mgmt/mysqld_exporter/distinfo +++ b/net-mgmt/mysqld_exporter/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1679705787 -SHA256 (prometheus-mysqld_exporter-v0.12.1_GH0.tar.gz) = 8fdd21c629963f5275ac772f59e8d32bafc8aee1ae61cf8ae996f30c92cbc360 -SIZE (prometheus-mysqld_exporter-v0.12.1_GH0.tar.gz) = 1910780 -SHA256 (golang-sys-v0.6.0_GH0.tar.gz) = b4f6d17c7a128f76169964b437cb66b3f2dbf9a33361928ec19dfecf7b03fc54 -SIZE (golang-sys-v0.6.0_GH0.tar.gz) = 1434234 +TIMESTAMP = 1744045231 +SHA256 (go/net-mgmt_mysqld_exporter/mysqld_exporter-v0.17.2/v0.17.2.mod) = c3ba33fc11f23aab46bfb72efc4ac968c8ce8111a24922370d7ff95f20fd9a6f +SIZE (go/net-mgmt_mysqld_exporter/mysqld_exporter-v0.17.2/v0.17.2.mod) = 1737 +SHA256 (go/net-mgmt_mysqld_exporter/mysqld_exporter-v0.17.2/v0.17.2.zip) = 798f38caf66342ac72a1b0984633ede719d9b8b35a8a480c8250e2cf37828480 +SIZE (go/net-mgmt_mysqld_exporter/mysqld_exporter-v0.17.2/v0.17.2.zip) = 191673 diff --git a/net-mgmt/mysqld_exporter/files/mysqld_exporter.in b/net-mgmt/mysqld_exporter/files/mysqld_exporter.in index 32a517c10ccc..e411fbaf9668 100644 --- a/net-mgmt/mysqld_exporter/files/mysqld_exporter.in +++ b/net-mgmt/mysqld_exporter/files/mysqld_exporter.in @@ -16,13 +16,14 @@ # mysqld_exporter_args (string): Set extra arguments to pass to mysqld_exporter # Default is "". # mysqld_exporter_listen_address (string):Set ip:port that mysqld_exporter will listen on -# Default is ":9100". -# mysqld_exporter_conffile (string): Set configuration file path for mysqld_exporter -# Default is "". +# Default is ":9104". +# mysqld_exporter_config (string): Set configuration file path for mysqld_exporter +# Default is "%%PREFIX%%/etc/my.cnf". . /etc/rc.subr name=mysqld_exporter +desc="mysqld_exporter for use with Prometheus" rcvar=mysqld_exporter_enable load_rc_config $name @@ -32,24 +33,17 @@ load_rc_config $name : ${mysqld_exporter_group:="nobody"} : ${mysqld_exporter_args:=""} : ${mysqld_exporter_listen_address:=":9104"} -if [ -f "%%ETCDIR%%/my.cnf" ]; then -: ${mysqld_exporter_conffile:="%%ETCDIR%%/my.cnf"} -else -: ${mysqld_exporter_conffile:=""} -fi +: ${mysqld_exporter_config:="%%PREFIX%%/etc/my.cnf"} -if [ -z ${mysqld_exporter_conffile} ]; then -conf_arg="" -else -conf_arg="--config.my-cnf=${mysqld_exporter_conffile}" -fi +conf_file="--config.my-cnf=${mysqld_exporter_config}" pidfile=/var/run/mysqld_exporter.pid command="/usr/sbin/daemon" procname="%%PREFIX%%/bin/mysqld_exporter" -command_args="-p ${pidfile} /usr/bin/env ${procname} \ +command_args="-f -p ${pidfile} -T ${name} \ + /usr/bin/env ${procname} \ --web.listen-address=${mysqld_exporter_listen_address} \ - ${conf_arg} \ + ${conf_file} \ ${mysqld_exporter_args}" start_precmd=mysqld_exporter_startprecmd @@ -58,8 +52,9 @@ mysqld_exporter_startprecmd() { if [ ! -e ${pidfile} ]; then install -o ${mysqld_exporter_user} -g ${mysqld_exporter_group} /dev/null ${pidfile}; + else + chown ${mysqld_exporter_user}:${mysqld_exporter_group} ${pidfile}; fi } -load_rc_config $name run_rc_command "$1" diff --git a/net-mgmt/mysqld_exporter/files/patch-go.mod b/net-mgmt/mysqld_exporter/files/patch-go.mod deleted file mode 100644 index 8972c6d4e4f1..000000000000 --- a/net-mgmt/mysqld_exporter/files/patch-go.mod +++ /dev/null @@ -1,45 +0,0 @@ ---- go.mod.orig 2023-03-25 01:00:23 UTC -+++ go.mod -@@ -1,25 +1,33 @@ - module github.com/prometheus/mysqld_exporter - -+go 1.17 -+ - require ( - github.com/DATA-DOG/go-sqlmock v1.3.3 -+ github.com/go-sql-driver/mysql v1.4.1 -+ github.com/prometheus/client_golang v1.0.0 -+ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 -+ github.com/prometheus/common v0.6.0 -+ github.com/satori/go.uuid v1.2.0 -+ github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a -+ gopkg.in/alecthomas/kingpin.v2 v2.2.6 -+ gopkg.in/ini.v1 v1.44.0 -+) -+ -+require ( - github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect - github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 // indirect -- github.com/go-sql-driver/mysql v1.4.1 -+ github.com/beorn7/perks v1.0.0 // indirect - github.com/golang/protobuf v1.3.2 // indirect - github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c // indirect -+ github.com/jtolds/gls v4.20.0+incompatible // indirect - github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect - github.com/kr/pretty v0.1.0 // indirect -- github.com/prometheus/client_golang v1.0.0 -- github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 -- github.com/prometheus/common v0.6.0 -+ github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/prometheus/procfs v0.0.3 // indirect -- github.com/satori/go.uuid v1.2.0 - github.com/sirupsen/logrus v1.4.2 // indirect - github.com/smartystreets/assertions v1.0.0 // indirect -- github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a -- golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb // indirect -+ golang.org/x/sys v0.6.0 // indirect - google.golang.org/appengine v1.6.1 // indirect -- gopkg.in/alecthomas/kingpin.v2 v2.2.6 - gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect -- gopkg.in/ini.v1 v1.44.0 - ) diff --git a/net-mgmt/mysqld_exporter/files/patch-go.sum b/net-mgmt/mysqld_exporter/files/patch-go.sum deleted file mode 100644 index 87677ff57ed0..000000000000 --- a/net-mgmt/mysqld_exporter/files/patch-go.sum +++ /dev/null @@ -1,101 +0,0 @@ ---- go.sum.orig 2023-03-25 01:00:26 UTC -+++ go.sum -@@ -1,10 +1,8 @@ - github.com/DATA-DOG/go-sqlmock v1.3.3 h1:CWUqKXe0s8A2z6qCgkP4Kru7wC11YoAnoupUKFDnH08= - github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= --github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= - github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= - github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= - github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= --github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY= - github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= - github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E= - github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -@@ -20,11 +18,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7Fu - github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= - github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= - github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= --github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= - github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= --github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= - github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= --github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= - github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= - github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= - github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -@@ -36,7 +31,6 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvty - github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= - github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= - github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= --github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= - github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= - github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= - github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -@@ -54,26 +48,21 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857- - github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= - github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= - github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= --github.com/prometheus/client_golang v0.9.1 h1:K47Rk0v/fkEfwfQet2KWhscE0cJzjgCCDBG2KHZoVno= - github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= - github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM= - github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= --github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= - github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= - github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= - github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= --github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= - github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= - github.com/prometheus/common v0.6.0 h1:kRhiuYSXR3+uv2IbVbZhUxK5zVD/2pp3Gd2PpvPkpEo= - github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= - github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= --github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs= - github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= - github.com/prometheus/procfs v0.0.3 h1:CTwfnzjQ+8dS6MhHHu4YswVAD99sL2wjPqP+VkURmKE= - github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= - github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= - github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= --github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= - github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= - github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= - github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -@@ -84,11 +73,9 @@ github.com/smartystreets/goconvey v0.0.0-2019033003261 - github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= - github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= - github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= --github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= - github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= - github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= - github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= --golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I= - golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= - golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= - golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -@@ -97,20 +84,19 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go - golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= - golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= - golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= - golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= --golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5 h1:mzjBh+S5frKOsOBobWIMAbXavqjmgO17k/2puhcFR94= - golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= - golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= - golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= - golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb h1:fgwFCsaw9buMuxNd6+DQfAuSFqbNiQZpcgJQAgJsK6k= - golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -+golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= - golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= - golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -@@ -125,5 +111,4 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h - gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/ini.v1 v1.44.0 h1:YRJzTUp0kSYWUVFF5XAbDFfyiqwsl0Vb9R8TVP5eRi0= - gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= --gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= - gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/net-mgmt/mysqld_exporter/files/patch-vendor_modules.txt b/net-mgmt/mysqld_exporter/files/patch-vendor_modules.txt deleted file mode 100644 index 2ef533f9a37d..000000000000 --- a/net-mgmt/mysqld_exporter/files/patch-vendor_modules.txt +++ /dev/null @@ -1,98 +0,0 @@ ---- vendor/modules.txt.orig 2023-03-25 01:01:20 UTC -+++ vendor/modules.txt -@@ -1,60 +1,87 @@ - # github.com/DATA-DOG/go-sqlmock v1.3.3 -+## explicit - github.com/DATA-DOG/go-sqlmock - # github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 -+## explicit - github.com/alecthomas/template - github.com/alecthomas/template/parse - # github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 -+## explicit - github.com/alecthomas/units - # github.com/beorn7/perks v1.0.0 -+## explicit; go 1.12 - github.com/beorn7/perks/quantile - # github.com/go-sql-driver/mysql v1.4.1 -+## explicit - github.com/go-sql-driver/mysql - # github.com/golang/protobuf v1.3.2 -+## explicit - github.com/golang/protobuf/proto - # github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c -+## explicit - github.com/gopherjs/gopherjs/js - # github.com/jtolds/gls v4.20.0+incompatible -+## explicit - github.com/jtolds/gls - # github.com/konsorten/go-windows-terminal-sequences v1.0.2 -+## explicit - github.com/konsorten/go-windows-terminal-sequences -+# github.com/kr/pretty v0.1.0 -+## explicit - # github.com/matttproud/golang_protobuf_extensions v1.0.1 -+## explicit - github.com/matttproud/golang_protobuf_extensions/pbutil - # github.com/prometheus/client_golang v1.0.0 -+## explicit - github.com/prometheus/client_golang/prometheus --github.com/prometheus/client_golang/prometheus/promhttp - github.com/prometheus/client_golang/prometheus/internal -+github.com/prometheus/client_golang/prometheus/promhttp - # github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 -+## explicit; go 1.9 - github.com/prometheus/client_model/go - # github.com/prometheus/common v0.6.0 --github.com/prometheus/common/log --github.com/prometheus/common/version -+## explicit - github.com/prometheus/common/expfmt --github.com/prometheus/common/model - github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg -+github.com/prometheus/common/log -+github.com/prometheus/common/model -+github.com/prometheus/common/version - # github.com/prometheus/procfs v0.0.3 -+## explicit - github.com/prometheus/procfs - github.com/prometheus/procfs/internal/fs - # github.com/satori/go.uuid v1.2.0 -+## explicit - github.com/satori/go.uuid - # github.com/sirupsen/logrus v1.4.2 -+## explicit - github.com/sirupsen/logrus - # github.com/smartystreets/assertions v1.0.0 -+## explicit; go 1.12 - github.com/smartystreets/assertions - github.com/smartystreets/assertions/internal/go-diff/diffmatchpatch - github.com/smartystreets/assertions/internal/go-render/render - github.com/smartystreets/assertions/internal/oglematchers - # github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a -+## explicit - github.com/smartystreets/goconvey/convey --github.com/smartystreets/goconvey/convey/reporting - github.com/smartystreets/goconvey/convey/gotest --# golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb --golang.org/x/sys/windows --golang.org/x/sys/windows/svc/eventlog -+github.com/smartystreets/goconvey/convey/reporting -+# golang.org/x/sys v0.6.0 -+## explicit; go 1.17 -+golang.org/x/sys/internal/unsafeheader - golang.org/x/sys/unix -+golang.org/x/sys/windows - golang.org/x/sys/windows/registry -+golang.org/x/sys/windows/svc/eventlog - # google.golang.org/appengine v1.6.1 -+## explicit - google.golang.org/appengine/cloudsql - # gopkg.in/alecthomas/kingpin.v2 v2.2.6 -+## explicit - gopkg.in/alecthomas/kingpin.v2 -+# gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 -+## explicit - # gopkg.in/ini.v1 v1.44.0 -+## explicit - gopkg.in/ini.v1 diff --git a/net-mgmt/mysqld_exporter/files/pkg-message.in b/net-mgmt/mysqld_exporter/files/pkg-message.in new file mode 100644 index 000000000000..15d06e3cad2f --- /dev/null +++ b/net-mgmt/mysqld_exporter/files/pkg-message.in @@ -0,0 +1,23 @@ +[ +{ type: install + message: <<EOM +To start mysqld_exporter, create a configuration file at: + + %%PREFIX%%/etc/my.cnf + +with default MySQL credentials, such as: + + [client] + host = localhost + port = 3306 + user = mysqld_exporter + password = foo123 + +then run "sysrc mysqld_exporter_enable=yes" to enable. + +For more configuration options, visit: + + https://github.com/prometheus/mysqld_exporter +EOM +} +] diff --git a/net-mgmt/mysqld_exporter/pkg-descr b/net-mgmt/mysqld_exporter/pkg-descr index c4c77e9a314d..1e544b53415a 100644 --- a/net-mgmt/mysqld_exporter/pkg-descr +++ b/net-mgmt/mysqld_exporter/pkg-descr @@ -1 +1,7 @@ -node_exporter is a prometheus exporter for MySQL server metrics +mysqld_exporter is a Prometheus exporter for MySQL server metrics. + +This exporter also supports Prometheus' multi-target scraping pattern, which +enables a single running instance of the exporter to collect metrics from +multiple MySQL targets. For more information see: + + https://github.com/prometheus/mysqld_exporter diff --git a/net-mgmt/netbox/Makefile b/net-mgmt/netbox/Makefile index 5a7eb500a08d..76693de8e122 100644 --- a/net-mgmt/netbox/Makefile +++ b/net-mgmt/netbox/Makefile @@ -1,6 +1,6 @@ PORTNAME= netbox DISTVERSIONPREFIX= v -DISTVERSION= 4.2.8 +DISTVERSION= 4.2.9 CATEGORIES= net-mgmt python MAINTAINER= kai@FreeBSD.org diff --git a/net-mgmt/netbox/distinfo b/net-mgmt/netbox/distinfo index ef85ad45eb52..4fcd1ab605bd 100644 --- a/net-mgmt/netbox/distinfo +++ b/net-mgmt/netbox/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745381694 -SHA256 (netbox-community-netbox-v4.2.8_GH0.tar.gz) = 48efbad61f1da1af6b7eb0cd5beef0a293260ec0b4b537d10463705985492b3d -SIZE (netbox-community-netbox-v4.2.8_GH0.tar.gz) = 18569289 +TIMESTAMP = 1747310868 +SHA256 (netbox-community-netbox-v4.2.9_GH0.tar.gz) = 785e2c0838e5f31ebbcc81b1f53a1dd48b7056100f7b229e3dc137959da0874d +SIZE (netbox-community-netbox-v4.2.9_GH0.tar.gz) = 18575314 diff --git a/net-mgmt/netbox/pkg-plist b/net-mgmt/netbox/pkg-plist index 0014055e1213..8e69b760791b 100644 --- a/net-mgmt/netbox/pkg-plist +++ b/net-mgmt/netbox/pkg-plist @@ -109,6 +109,7 @@ %%DATADIR%%/core/migrations/0010_gfk_indexes.py %%DATADIR%%/core/migrations/0011_move_objectchange.py %%DATADIR%%/core/migrations/0012_job_object_type_optional.py +%%DATADIR%%/core/migrations/0013_job_data_encoder.py %%DATADIR%%/core/migrations/__init__.py %%DATADIR%%/core/models/__init__.py %%DATADIR%%/core/models/change_logging.py diff --git a/net-mgmt/prometheus-bird-exporter/Makefile b/net-mgmt/prometheus-bird-exporter/Makefile new file mode 100644 index 000000000000..eb52d0c8a58f --- /dev/null +++ b/net-mgmt/prometheus-bird-exporter/Makefile @@ -0,0 +1,26 @@ +PORTNAME= prometheus-bird-exporter +DISTVERSION= 1.4.3 +CATEGORIES= net-mgmt + +MAINTAINER= ivy@FreeBSD.org +COMMENT= Prometheus state exporter for BIRD routing daemon +WWW= https://github.com/czerwonk/bird_exporter + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go:modules + +USE_GITHUB= yes +GH_ACCOUNT= czerwonk +GH_PROJECT= bird_exporter + +USE_RC_SUBR= bird_exporter + +GO_MODULE= github.com/czerwonk/bird_exporter +GO_MOD_DIST= https://raw.githubusercontent.com/czerwonk/bird_exporter/refs/tags/${DISTVERSION}/ +GO_TARGET= .:bird_exporter + +PLIST_FILES= ${PREFIX}/bin/bird_exporter + +.include <bsd.port.mk> diff --git a/net-mgmt/prometheus-bird-exporter/distinfo b/net-mgmt/prometheus-bird-exporter/distinfo new file mode 100644 index 000000000000..60ce7ec5f586 --- /dev/null +++ b/net-mgmt/prometheus-bird-exporter/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1740738528 +SHA256 (go/net-mgmt_prometheus-bird-exporter/czerwonk-bird_exporter-1.4.3_GH0/go.mod) = a1cb316ad9848531d1179c0f29927d738c21aa87f81505386326927319b1b391 +SIZE (go/net-mgmt_prometheus-bird-exporter/czerwonk-bird_exporter-1.4.3_GH0/go.mod) = 979 +SHA256 (go/net-mgmt_prometheus-bird-exporter/czerwonk-bird_exporter-1.4.3_GH0/czerwonk-bird_exporter-1.4.3_GH0.tar.gz) = 75bf25dc979f2bbc4dd95e31b25a9b2defd43d2ee5d9e790ef7e70c355443243 +SIZE (go/net-mgmt_prometheus-bird-exporter/czerwonk-bird_exporter-1.4.3_GH0/czerwonk-bird_exporter-1.4.3_GH0.tar.gz) = 109110 diff --git a/net-mgmt/prometheus-bird-exporter/files/bird_exporter.in b/net-mgmt/prometheus-bird-exporter/files/bird_exporter.in new file mode 100644 index 000000000000..5050bc0cbee4 --- /dev/null +++ b/net-mgmt/prometheus-bird-exporter/files/bird_exporter.in @@ -0,0 +1,56 @@ +#!/bin/sh + +# PROVIDE: bird_exporter +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# bird_exporter_enable (bool): Set to NO by default. +# Set it to YES to enable bird_exporter. +# bird_exporter_user (string): Set user that bird_exporter will run under +# Default is "root". +# bird_exporter_group (string): Set group that bird_exporter will run under +# Default is "wheel". +# bird_exporter_args (string): Set extra arguments to pass to bird_exporter +# Default is "-bird.v2 -format.new". +# bird_exporter_listen_address (string):Set ip:port that bird_exporter will listen on +# Default is "localhost:9324". + +. /etc/rc.subr + +name=bird_exporter +rcvar=bird_exporter_enable + +load_rc_config $name + +: ${bird_exporter_enable:="NO"} +: ${bird_exporter_user:="root"} +: ${bird_exporter_group:="wheel"} +: ${bird_exporter_args:="-bird.v2 -format.new"} +: ${bird_exporter_listen_address:="localhost:9324"} +: ${bird_exporter_socket:="/var/run/bird.ctl"} + +pidfile=/var/run/bird_exporter.pid +command="/usr/sbin/daemon" +procname="%%PREFIX%%/bin/bird_exporter" +command_args="-f -p ${pidfile} -t ${name} \ + /usr/bin/env ${procname} \ + -web.listen-address=${bird_exporter_listen_address} \ + ${bird_exporter_args}" + +start_precmd=bird_exporter_startprecmd + +bird_exporter_startprecmd() +{ + if [ ! -e ${pidfile} ]; then + install \ + -o ${bird_exporter_user} \ + -g ${bird_exporter_group} \ + /dev/null ${pidfile}; + fi +} + +load_rc_config $name +run_rc_command "$1" diff --git a/net-mgmt/prometheus-bird-exporter/pkg-descr b/net-mgmt/prometheus-bird-exporter/pkg-descr new file mode 100644 index 000000000000..dc37e974a6ce --- /dev/null +++ b/net-mgmt/prometheus-bird-exporter/pkg-descr @@ -0,0 +1,2 @@ +bird_exporter is a metric exporter for the BIRD routing daemon to use with +Prometheus. diff --git a/net-p2p/cardano-node/Makefile b/net-p2p/cardano-node/Makefile index 9748bc37ac28..d0156d2da880 100644 --- a/net-p2p/cardano-node/Makefile +++ b/net-p2p/cardano-node/Makefile @@ -12,6 +12,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE NOT_FOR_ARCHS= i386 +BUILD_DEPENDS= ghc-9.6.7:lang/ghc96 LIB_DEPENDS= libsecp256k1.so:math/secp256k1 \ libblst.so:security/blst RUN_DEPENDS= ${LOCALBASE}/share/rc-subr-jail/rc.subr.jail:ports-mgmt/rc-subr-jail diff --git a/net/Makefile b/net/Makefile index ad7a7d673d57..8b6f8ba0d8c0 100644 --- a/net/Makefile +++ b/net/Makefile @@ -111,6 +111,7 @@ SUBDIR += datapipe SUBDIR += dbeacon SUBDIR += delegate + SUBDIR += deltachat-rpc-server SUBDIR += deviceatlas-enterprise-c SUBDIR += dgd SUBDIR += dgd-kernel diff --git a/net/bsdec2-image-upload/Makefile b/net/bsdec2-image-upload/Makefile index 121249644ed2..e3e3e932cfd9 100644 --- a/net/bsdec2-image-upload/Makefile +++ b/net/bsdec2-image-upload/Makefile @@ -1,5 +1,5 @@ PORTNAME= bsdec2-image-upload -PORTVERSION= 1.4.8 +PORTVERSION= 1.4.9 CATEGORIES= net MASTER_SITES= http://freebsd-ec2-dist.s3.amazonaws.com/ diff --git a/net/bsdec2-image-upload/distinfo b/net/bsdec2-image-upload/distinfo index c6f736c2b8ee..6b5f2ee5e78e 100644 --- a/net/bsdec2-image-upload/distinfo +++ b/net/bsdec2-image-upload/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1714092095 -SHA256 (bsdec2-image-upload-1.4.8.tgz) = bedf6b3218663d47006ca1abc66151a732c73268cc9a48dbead29e05394096ac -SIZE (bsdec2-image-upload-1.4.8.tgz) = 34713 +TIMESTAMP = 1747257402 +SHA256 (bsdec2-image-upload-1.4.9.tgz) = 96b96b26c84405321cb97ae582359cdbdf30a0f2cb87c3cabeddbad569286c85 +SIZE (bsdec2-image-upload-1.4.9.tgz) = 35072 diff --git a/net/deltachat-rpc-server/Makefile b/net/deltachat-rpc-server/Makefile new file mode 100644 index 000000000000..f62fbf01cea7 --- /dev/null +++ b/net/deltachat-rpc-server/Makefile @@ -0,0 +1,28 @@ +PORTNAME= deltachat-rpc-server +DISTVERSIONPREFIX= v +DISTVERSION= 1.159.3 +CATEGORIES= net + +MAINTAINER= feld@FreeBSD.org +COMMENT= JSON-RPC server for DeltaChat +WWW= https://github.com/chatmail/core + +LICENSE= MPL20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= cargo gmake perl5 ssl + +USE_PERL5= build + +USE_GITHUB= yes +GH_ACCOUNT= chatmail +GH_PROJECT= core + +CARGO_BUILD_ARGS+= --locked -p ${PORTNAME} + +PLIST_FILES= bin/${PORTNAME} + +do-install: + ${INSTALL_PROGRAM} ${WRKDIR}/target/release/${PORTNAME} ${STAGEDIR}${PREFIX}/bin + +.include <bsd.port.mk> diff --git a/net/deltachat-rpc-server/Makefile.crates b/net/deltachat-rpc-server/Makefile.crates new file mode 100644 index 000000000000..85a97bc209a7 --- /dev/null +++ b/net/deltachat-rpc-server/Makefile.crates @@ -0,0 +1,699 @@ +CARGO_CRATES= addr2line-0.22.0 \ + adler-1.0.2 \ + aead-0.5.2 \ + aes-0.8.4 \ + aes-gcm-0.10.3 \ + aes-kw-0.2.1 \ + ahash-0.8.11 \ + aho-corasick-1.1.3 \ + alloc-no-stdlib-2.0.4 \ + alloc-stdlib-0.2.2 \ + allocator-api2-0.2.21 \ + android-tzdata-0.1.1 \ + android_system_properties-0.1.5 \ + anes-0.1.6 \ + anstyle-1.0.6 \ + anyhow-1.0.97 \ + argon2-0.5.3 \ + arrayref-0.3.9 \ + arrayvec-0.7.6 \ + asn1-rs-0.6.2 \ + asn1-rs-derive-0.5.1 \ + asn1-rs-impl-0.2.0 \ + async-broadcast-0.7.2 \ + async-channel-1.9.0 \ + async-channel-2.3.1 \ + async-compression-0.4.21 \ + async-imap-0.10.4 \ + async-lock-3.4.0 \ + async-native-tls-0.5.0 \ + async-recursion-1.1.1 \ + async-smtp-0.10.1 \ + async-trait-0.1.86 \ + async_zip-0.0.17 \ + atomic-waker-1.1.2 \ + attohttpc-0.24.1 \ + autocfg-1.4.0 \ + backoff-0.4.0 \ + backtrace-0.3.73 \ + base16ct-0.2.0 \ + base64-0.22.1 \ + base64ct-1.6.0 \ + bitfield-0.17.0 \ + bitflags-1.3.2 \ + bitflags-2.8.0 \ + blake2-0.10.6 \ + blake3-1.8.0 \ + block-buffer-0.10.4 \ + block-padding-0.3.3 \ + blowfish-0.9.1 \ + bolero-0.8.0 \ + bolero-afl-0.8.0 \ + bolero-engine-0.8.1 \ + bolero-generator-0.8.0 \ + bolero-generator-derive-0.8.0 \ + bolero-honggfuzz-0.8.0 \ + bolero-kani-0.8.0 \ + bolero-libfuzzer-0.8.0 \ + bounded-integer-0.5.8 \ + brotli-7.0.0 \ + brotli-decompressor-4.0.2 \ + bstr-1.11.3 \ + buffer-redux-1.0.2 \ + bumpalo-3.17.0 \ + byte_string-1.0.0 \ + bytemuck-1.21.0 \ + byteorder-1.5.0 \ + byteorder-lite-0.1.0 \ + bytes-1.10.1 \ + camellia-0.1.0 \ + camino-1.1.9 \ + cargo-platform-0.1.8 \ + cargo_metadata-0.14.2 \ + cast-0.3.0 \ + cast5-0.11.1 \ + cc-1.2.14 \ + cesu8-1.1.0 \ + cfb-mode-0.8.2 \ + cfg-if-1.0.0 \ + cfg_aliases-0.2.1 \ + chacha20-0.9.1 \ + chacha20poly1305-0.10.1 \ + charset-0.1.5 \ + chrono-0.4.40 \ + ciborium-0.2.2 \ + ciborium-io-0.2.2 \ + ciborium-ll-0.2.2 \ + cipher-0.4.4 \ + clap-4.5.13 \ + clap_builder-4.5.13 \ + clap_lex-0.7.4 \ + clipboard-win-5.4.0 \ + cmac-0.7.2 \ + cobs-0.2.3 \ + color_quant-1.1.0 \ + combine-4.6.7 \ + concurrent-queue-2.5.0 \ + const-oid-0.9.6 \ + constant_time_eq-0.3.1 \ + convert_case-0.5.0 \ + cordyceps-0.3.2 \ + core-foundation-0.9.4 \ + core-foundation-0.10.0 \ + core-foundation-sys-0.8.7 \ + cpufeatures-0.2.17 \ + crc-3.2.1 \ + crc-catalog-2.4.0 \ + crc24-0.1.6 \ + crc32fast-1.4.2 \ + criterion-0.5.1 \ + criterion-plot-0.5.0 \ + crossbeam-channel-0.5.15 \ + crossbeam-deque-0.8.6 \ + crossbeam-epoch-0.9.18 \ + crossbeam-utils-0.8.21 \ + crossterm-0.28.1 \ + crossterm_winapi-0.9.1 \ + crunchy-0.2.3 \ + crypto-bigint-0.5.5 \ + crypto-common-0.1.6 \ + crypto_box-0.9.1 \ + crypto_secretbox-0.1.1 \ + ctr-0.9.2 \ + curve25519-dalek-4.1.3 \ + curve25519-dalek-derive-0.1.1 \ + darling-0.20.10 \ + darling_core-0.20.10 \ + darling_macro-0.20.10 \ + data-encoding-2.8.0 \ + dbl-0.3.2 \ + der-0.7.9 \ + der-parser-9.0.0 \ + der_derive-0.7.3 \ + deranged-0.3.11 \ + derive_builder-0.20.2 \ + derive_builder_core-0.20.2 \ + derive_builder_macro-0.20.2 \ + derive_more-1.0.0 \ + derive_more-impl-1.0.0 \ + des-0.8.1 \ + diatomic-waker-0.2.3 \ + diff-0.1.13 \ + digest-0.10.7 \ + dirs-6.0.0 \ + dirs-sys-0.5.0 \ + displaydoc-0.2.4 \ + dlopen2-0.5.0 \ + document-features-0.2.11 \ + dsa-0.6.3 \ + dyn-clone-1.0.18 \ + dynosaur-0.2.0 \ + dynosaur_derive-0.2.0 \ + eax-0.5.0 \ + ecdsa-0.16.9 \ + ed25519-2.2.3 \ + ed25519-dalek-2.1.1 \ + either-1.13.0 \ + elliptic-curve-0.13.8 \ + embedded-io-0.4.0 \ + embedded-io-0.6.1 \ + encoding_rs-0.8.35 \ + endian-type-0.1.2 \ + entities-1.0.1 \ + enum-as-inner-0.6.0 \ + enumflags2-0.7.11 \ + enumflags2_derive-0.7.11 \ + equivalent-1.0.2 \ + erased-serde-0.3.31 \ + erased_set-0.8.0 \ + errno-0.3.10 \ + error-code-3.3.1 \ + escaper-0.1.1 \ + event-listener-2.5.3 \ + event-listener-5.4.0 \ + event-listener-strategy-0.5.3 \ + fallible-iterator-0.3.0 \ + fallible-streaming-iterator-0.1.9 \ + fast-socks5-0.10.0 \ + fastrand-2.3.0 \ + fd-lock-4.0.4 \ + fdeflate-0.3.7 \ + ff-0.13.0 \ + fiat-crypto-0.2.9 \ + filetime-0.2.23 \ + fixedbitset-0.5.7 \ + flate2-1.0.28 \ + flume-0.11.1 \ + fnv-1.0.7 \ + foreign-types-0.3.2 \ + foreign-types-shared-0.1.1 \ + form_urlencoded-1.2.1 \ + futures-0.3.31 \ + futures-buffered-0.2.9 \ + futures-channel-0.3.31 \ + futures-concurrency-7.6.3 \ + futures-core-0.3.31 \ + futures-executor-0.3.31 \ + futures-io-0.3.31 \ + futures-lite-2.6.0 \ + futures-macro-0.3.31 \ + futures-sink-0.3.31 \ + futures-task-0.3.31 \ + futures-util-0.3.31 \ + generator-0.7.5 \ + generator-0.8.4 \ + generic-array-0.14.7 \ + getrandom-0.2.12 \ + getrandom-0.3.1 \ + ghash-0.5.1 \ + gif-0.13.1 \ + gimli-0.29.0 \ + glob-0.3.2 \ + group-0.13.0 \ + h2-0.4.7 \ + half-2.4.0 \ + hashbrown-0.14.5 \ + hashlink-0.9.1 \ + heck-0.4.1 \ + heck-0.5.0 \ + hermit-abi-0.3.9 \ + hex-0.4.3 \ + hickory-proto-0.25.0-alpha.5 \ + hickory-resolver-0.25.0-alpha.5 \ + hkdf-0.12.4 \ + hmac-0.12.1 \ + hmac-sha1-0.2.2 \ + hmac-sha256-1.1.8 \ + home-0.5.11 \ + hostname-0.4.0 \ + hostname-validator-1.1.1 \ + http-0.2.12 \ + http-1.1.0 \ + http-body-1.0.1 \ + http-body-util-0.1.3 \ + httparse-1.10.0 \ + httpdate-1.0.3 \ + human-panic-2.0.2 \ + humansize-2.1.3 \ + hyper-1.6.0 \ + hyper-rustls-0.27.5 \ + hyper-util-0.1.11 \ + iana-time-zone-0.1.61 \ + iana-time-zone-haiku-0.1.2 \ + icu_collections-1.5.0 \ + icu_locid-1.5.0 \ + icu_locid_transform-1.5.0 \ + icu_locid_transform_data-1.5.0 \ + icu_normalizer-1.5.0 \ + icu_normalizer_data-1.5.0 \ + icu_properties-1.5.1 \ + icu_properties_data-1.5.0 \ + icu_provider-1.5.0 \ + icu_provider_macros-1.5.0 \ + idea-0.5.1 \ + ident_case-1.0.1 \ + idna-1.0.3 \ + idna_adapter-1.2.0 \ + igd-next-0.15.1 \ + image-0.25.6 \ + image-webp-0.2.1 \ + imap-proto-0.16.5 \ + indexmap-2.2.5 \ + inout-0.1.3 \ + instant-0.1.13 \ + ipconfig-0.3.2 \ + ipnet-2.11.0 \ + iroh-0.33.0 \ + iroh-base-0.33.0 \ + iroh-blake3-1.4.5 \ + iroh-gossip-0.33.0 \ + iroh-metrics-0.31.0 \ + iroh-net-report-0.33.0 \ + iroh-quinn-0.13.0 \ + iroh-quinn-proto-0.13.0 \ + iroh-quinn-udp-0.5.7 \ + iroh-relay-0.33.0 \ + is-terminal-0.4.12 \ + iter-read-1.1.0 \ + itertools-0.10.5 \ + itoa-1.0.10 \ + jni-0.21.1 \ + jni-sys-0.3.0 \ + js-sys-0.3.77 \ + k256-0.13.4 \ + kamadak-exif-0.6.1 \ + keccak-0.1.5 \ + lazy_static-1.5.0 \ + libc-0.2.171 \ + libm-0.2.11 \ + libredox-0.1.3 \ + libsqlite3-sys-0.30.1 \ + linux-raw-sys-0.4.14 \ + linux-raw-sys-0.9.3 \ + litemap-0.7.4 \ + litrs-0.4.1 \ + lock_api-0.4.12 \ + log-0.4.27 \ + loom-0.5.6 \ + loom-0.7.2 \ + lru-0.12.3 \ + lru_time_cache-0.11.11 \ + mail-builder-0.4.2 \ + mailparse-0.16.1 \ + matchers-0.1.0 \ + md-5-0.10.6 \ + md5-0.7.0 \ + memchr-2.7.4 \ + mime-0.3.17 \ + minimal-lexical-0.2.1 \ + miniz_oxide-0.7.4 \ + mio-1.0.3 \ + moka-0.12.10 \ + mutate_once-0.1.1 \ + n0-future-0.1.2 \ + nanorand-0.7.0 \ + native-tls-0.2.14 \ + netdev-0.31.0 \ + netlink-packet-core-0.7.0 \ + netlink-packet-route-0.17.1 \ + netlink-packet-route-0.19.0 \ + netlink-packet-utils-0.5.2 \ + netlink-proto-0.11.5 \ + netlink-sys-0.8.7 \ + netwatch-0.3.0 \ + nibble_vec-0.1.0 \ + nix-0.26.4 \ + nix-0.27.1 \ + nix-0.29.0 \ + no-std-net-0.6.0 \ + nom-7.1.3 \ + ntapi-0.4.1 \ + nu-ansi-term-0.46.0 \ + num-bigint-0.4.6 \ + num-bigint-dig-0.8.4 \ + num-conv-0.1.0 \ + num-derive-0.4.2 \ + num-integer-0.1.46 \ + num-iter-0.1.45 \ + num-traits-0.2.19 \ + num_cpus-1.16.0 \ + num_enum-0.7.3 \ + num_enum_derive-0.7.3 \ + object-0.36.7 \ + ocb3-0.1.0 \ + oid-registry-0.7.1 \ + once_cell-1.21.3 \ + oorandom-11.1.4 \ + opaque-debug-0.3.1 \ + openssl-0.10.72 \ + openssl-macros-0.1.1 \ + openssl-probe-0.1.6 \ + openssl-sys-0.9.107 \ + option-ext-0.2.0 \ + os_info-3.10.0 \ + overload-0.1.1 \ + p256-0.13.2 \ + p384-0.13.1 \ + p521-0.13.3 \ + parking-2.2.1 \ + parking_lot-0.12.3 \ + parking_lot_core-0.9.9 \ + password-hash-0.5.0 \ + paste-1.0.15 \ + pem-3.0.4 \ + pem-rfc7468-0.7.0 \ + percent-encoding-2.3.1 \ + pest-2.7.15 \ + pest_derive-2.7.10 \ + pest_generator-2.7.10 \ + pest_meta-2.7.15 \ + pgp-0.15.0 \ + pin-project-1.1.10 \ + pin-project-internal-1.1.10 \ + pin-project-lite-0.2.16 \ + pin-utils-0.1.0 \ + pkarr-2.2.1 \ + pkcs1-0.7.5 \ + pkcs8-0.10.2 \ + pkg-config-0.3.31 \ + plotters-0.3.7 \ + plotters-backend-0.3.7 \ + plotters-svg-0.3.7 \ + pnet_base-0.34.0 \ + pnet_macros-0.34.0 \ + pnet_macros_support-0.34.0 \ + pnet_packet-0.34.0 \ + png-0.17.13 \ + poly1305-0.8.0 \ + polyval-0.6.2 \ + portable-atomic-1.10.0 \ + portmapper-0.3.1 \ + postcard-1.1.1 \ + postcard-derive-0.1.2 \ + powerfmt-0.2.0 \ + ppv-lite86-0.2.20 \ + precis-core-0.1.9 \ + precis-profiles-0.1.10 \ + precis-tools-0.1.8 \ + pretty-hex-0.3.0 \ + pretty_assertions-1.4.1 \ + primeorder-0.13.6 \ + proc-macro-crate-3.2.0 \ + proc-macro-error-attr2-2.0.0 \ + proc-macro-error2-2.0.1 \ + proc-macro2-1.0.93 \ + proptest-1.6.0 \ + qr2term-0.3.3 \ + qrcode-0.14.1 \ + qrcodegen-1.8.0 \ + quick-error-2.0.1 \ + quick-xml-0.37.4 \ + quinn-0.11.6 \ + quinn-proto-0.11.9 \ + quinn-udp-0.5.10 \ + quote-1.0.40 \ + quoted-string-parser-0.1.0 \ + quoted_printable-0.5.1 \ + radix_trie-0.2.1 \ + rand-0.8.5 \ + rand-0.9.0 \ + rand_chacha-0.3.1 \ + rand_chacha-0.9.0 \ + rand_core-0.6.4 \ + rand_core-0.9.3 \ + rand_xorshift-0.3.0 \ + rayon-1.10.0 \ + rayon-core-1.12.1 \ + rcgen-0.13.2 \ + redox_syscall-0.3.5 \ + redox_syscall-0.4.1 \ + redox_users-0.5.0 \ + regex-1.10.6 \ + regex-automata-0.1.10 \ + regex-automata-0.4.6 \ + regex-lite-0.1.6 \ + regex-syntax-0.6.29 \ + regex-syntax-0.8.2 \ + reqwest-0.12.9 \ + resolv-conf-0.7.1 \ + rfc6979-0.4.0 \ + ring-0.17.13 \ + ring-compat-0.8.0 \ + ripemd-0.1.3 \ + rsa-0.9.7 \ + rtnetlink-0.13.1 \ + rtnetlink-0.14.1 \ + rusqlite-0.32.1 \ + rust-hsluv-0.1.4 \ + rustc-demangle-0.1.24 \ + rustc-hash-2.1.1 \ + rustc_version-0.4.1 \ + rusticata-macros-4.1.0 \ + rustix-0.38.44 \ + rustix-1.0.5 \ + rustls-0.23.23 \ + rustls-native-certs-0.8.1 \ + rustls-pemfile-2.2.0 \ + rustls-pki-types-1.11.0 \ + rustls-platform-verifier-0.5.0 \ + rustls-platform-verifier-android-0.1.1 \ + rustls-webpki-0.102.8 \ + rustversion-1.0.14 \ + rustyline-15.0.0 \ + ryu-1.0.19 \ + salsa20-0.10.2 \ + same-file-1.0.6 \ + sanitize-filename-0.5.0 \ + schannel-0.1.27 \ + schemars-0.8.22 \ + schemars_derive-0.8.22 \ + scoped-tls-1.0.1 \ + scopeguard-1.2.0 \ + sec1-0.7.3 \ + security-framework-2.11.1 \ + security-framework-3.2.0 \ + security-framework-sys-2.14.0 \ + self_cell-1.1.0 \ + semver-1.0.25 \ + send_wrapper-0.6.0 \ + sendfd-0.4.3 \ + serde-1.0.219 \ + serde-error-0.1.3 \ + serde_derive-1.0.219 \ + serde_derive_internals-0.29.0 \ + serde_json-1.0.140 \ + serde_spanned-0.6.7 \ + serde_urlencoded-0.7.1 \ + serdect-0.2.0 \ + sha-1-0.10.1 \ + sha1-0.10.6 \ + sha1-checked-0.10.0 \ + sha2-0.10.8 \ + sha3-0.10.8 \ + shadowsocks-1.23.1 \ + shadowsocks-crypto-0.6.1 \ + sharded-slab-0.1.7 \ + shlex-1.3.0 \ + signal-hook-registry-1.4.2 \ + signature-2.2.0 \ + simd-adler32-0.3.7 \ + simple-dns-0.6.2 \ + slab-0.4.9 \ + smallvec-1.14.0 \ + smawk-0.3.2 \ + socket2-0.5.9 \ + spin-0.9.8 \ + spin-0.10.0 \ + spki-0.7.3 \ + stable_deref_trait-1.2.0 \ + stop-token-0.7.0 \ + strsim-0.11.1 \ + struct_iterable-0.1.1 \ + struct_iterable_derive-0.1.0 \ + struct_iterable_internal-0.1.1 \ + strum-0.26.2 \ + strum-0.27.1 \ + strum_macros-0.26.2 \ + strum_macros-0.27.1 \ + stun-rs-0.1.9 \ + subtle-2.6.1 \ + surge-ping-0.8.1 \ + syn-1.0.109 \ + syn-2.0.100 \ + sync_wrapper-1.0.0 \ + synstructure-0.13.1 \ + sysinfo-0.26.9 \ + system-configuration-0.6.1 \ + system-configuration-sys-0.6.0 \ + tagger-4.3.5 \ + tagptr-0.2.0 \ + tempfile-3.19.1 \ + testdir-0.9.3 \ + textwrap-0.16.2 \ + thiserror-1.0.69 \ + thiserror-2.0.12 \ + thiserror-impl-1.0.69 \ + thiserror-impl-2.0.12 \ + thread_local-1.1.8 \ + time-0.3.37 \ + time-core-0.1.2 \ + time-macros-0.2.19 \ + tinystr-0.7.6 \ + tinytemplate-1.2.1 \ + tinyvec-1.6.0 \ + tinyvec_macros-0.1.1 \ + tokio-1.44.2 \ + tokio-io-timeout-1.2.0 \ + tokio-macros-2.5.0 \ + tokio-rustls-0.26.2 \ + tokio-stream-0.1.17 \ + tokio-tar-0.3.1 \ + tokio-tfo-0.3.1 \ + tokio-tungstenite-0.24.0 \ + tokio-tungstenite-wasm-0.4.0 \ + tokio-util-0.7.14 \ + toml-0.8.19 \ + toml_datetime-0.6.8 \ + toml_edit-0.22.20 \ + tower-service-0.3.3 \ + tracing-0.1.41 \ + tracing-attributes-0.1.28 \ + tracing-core-0.1.33 \ + tracing-log-0.2.0 \ + tracing-subscriber-0.3.19 \ + trait-variant-0.1.2 \ + try-lock-0.2.5 \ + tungstenite-0.24.0 \ + twofish-0.7.1 \ + typenum-1.18.0 \ + typescript-type-def-0.5.13 \ + typescript-type-def-derive-0.5.13 \ + ucd-parse-0.1.13 \ + ucd-trie-0.1.6 \ + unarray-0.1.4 \ + unicode-ident-1.0.12 \ + unicode-linebreak-0.1.5 \ + unicode-normalization-0.1.24 \ + unicode-segmentation-1.11.0 \ + unicode-width-0.2.0 \ + unicode-xid-0.2.4 \ + universal-hash-0.5.1 \ + untrusted-0.9.0 \ + ureq-2.10.0 \ + url-2.5.4 \ + utf-8-0.7.6 \ + utf16_iter-1.0.5 \ + utf8_iter-1.0.4 \ + utf8parse-0.2.2 \ + uuid-1.16.0 \ + valuable-0.1.1 \ + vcpkg-0.2.15 \ + version_check-0.9.5 \ + walkdir-2.5.0 \ + want-0.3.1 \ + wasi-0.11.0+wasi-snapshot-preview1 \ + wasi-0.13.3+wasi-0.2.2 \ + wasite-0.1.0 \ + wasm-bindgen-0.2.100 \ + wasm-bindgen-backend-0.2.100 \ + wasm-bindgen-futures-0.4.42 \ + wasm-bindgen-macro-0.2.100 \ + wasm-bindgen-macro-support-0.2.100 \ + wasm-bindgen-shared-0.2.100 \ + wasm-streams-0.4.1 \ + web-sys-0.3.69 \ + web-time-1.1.0 \ + webpki-root-certs-0.26.8 \ + webpki-roots-0.26.8 \ + weezl-0.1.8 \ + whoami-1.5.0 \ + widestring-1.0.2 \ + 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-0.48.0 \ + windows-0.52.0 \ + windows-0.58.0 \ + windows-0.59.0 \ + windows-core-0.52.0 \ + windows-core-0.58.0 \ + windows-core-0.59.0 \ + windows-implement-0.58.0 \ + windows-implement-0.59.0 \ + windows-interface-0.58.0 \ + windows-interface-0.59.0 \ + windows-link-0.1.0 \ + windows-registry-0.2.0 \ + windows-result-0.2.0 \ + windows-result-0.3.0 \ + windows-strings-0.1.0 \ + windows-strings-0.3.0 \ + windows-sys-0.45.0 \ + windows-sys-0.48.0 \ + windows-sys-0.52.0 \ + windows-sys-0.59.0 \ + windows-targets-0.42.2 \ + windows-targets-0.48.5 \ + windows-targets-0.52.6 \ + windows-targets-0.53.0 \ + windows_aarch64_gnullvm-0.42.2 \ + windows_aarch64_gnullvm-0.48.5 \ + windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_gnullvm-0.53.0 \ + windows_aarch64_msvc-0.42.2 \ + windows_aarch64_msvc-0.48.5 \ + windows_aarch64_msvc-0.52.6 \ + windows_aarch64_msvc-0.53.0 \ + windows_i686_gnu-0.42.2 \ + windows_i686_gnu-0.48.5 \ + windows_i686_gnu-0.52.6 \ + windows_i686_gnu-0.53.0 \ + windows_i686_gnullvm-0.52.6 \ + windows_i686_gnullvm-0.53.0 \ + windows_i686_msvc-0.42.2 \ + windows_i686_msvc-0.48.5 \ + windows_i686_msvc-0.52.6 \ + windows_i686_msvc-0.53.0 \ + windows_x86_64_gnu-0.42.2 \ + windows_x86_64_gnu-0.48.5 \ + windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnu-0.53.0 \ + windows_x86_64_gnullvm-0.42.2 \ + windows_x86_64_gnullvm-0.48.5 \ + windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_gnullvm-0.53.0 \ + windows_x86_64_msvc-0.42.2 \ + windows_x86_64_msvc-0.48.5 \ + windows_x86_64_msvc-0.52.6 \ + windows_x86_64_msvc-0.53.0 \ + winnow-0.6.26 \ + winreg-0.50.0 \ + wit-bindgen-rt-0.33.0 \ + wmi-0.14.5 \ + write16-1.0.0 \ + writeable-0.5.5 \ + x25519-dalek-2.0.1 \ + x509-parser-0.16.0 \ + xattr-1.4.0 \ + xml-rs-0.8.25 \ + xmltree-0.10.3 \ + yansi-1.0.1 \ + yasna-0.5.2 \ + yerpc-0.6.4 \ + yerpc_derive-0.6.3 \ + yoke-0.7.5 \ + yoke-derive-0.7.5 \ + z32-1.3.0 \ + zerocopy-0.7.32 \ + zerocopy-0.8.23 \ + zerocopy-derive-0.7.32 \ + zerocopy-derive-0.8.23 \ + zerofrom-0.1.5 \ + zerofrom-derive-0.1.5 \ + zeroize-1.8.1 \ + zeroize_derive-1.4.2 \ + zerovec-0.10.4 \ + zerovec-derive-0.10.3 \ + zune-core-0.4.12 \ + zune-jpeg-0.4.14 diff --git a/net/deltachat-rpc-server/distinfo b/net/deltachat-rpc-server/distinfo new file mode 100644 index 000000000000..aa0a2384c96f --- /dev/null +++ b/net/deltachat-rpc-server/distinfo @@ -0,0 +1,1401 @@ +TIMESTAMP = 1746574812 +SHA256 (rust/crates/addr2line-0.22.0.crate) = 6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678 +SIZE (rust/crates/addr2line-0.22.0.crate) = 39156 +SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe +SIZE (rust/crates/adler-1.0.2.crate) = 12778 +SHA256 (rust/crates/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/aes-kw-0.2.1.crate) = 69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c +SIZE (rust/crates/aes-kw-0.2.1.crate) = 14088 +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 +SIZE (rust/crates/alloc-stdlib-0.2.2.crate) = 6693 +SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923 +SIZE (rust/crates/allocator-api2-0.2.21.crate) = 63622 +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/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299 +SIZE (rust/crates/anes-0.1.6.crate) = 23857 +SHA256 (rust/crates/anstyle-1.0.6.crate) = 8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc +SIZE (rust/crates/anstyle-1.0.6.crate) = 14604 +SHA256 (rust/crates/anyhow-1.0.97.crate) = dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f +SIZE (rust/crates/anyhow-1.0.97.crate) = 52221 +SHA256 (rust/crates/argon2-0.5.3.crate) = 3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072 +SIZE (rust/crates/argon2-0.5.3.crate) = 28795 +SHA256 (rust/crates/arrayref-0.3.9.crate) = 76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb +SIZE (rust/crates/arrayref-0.3.9.crate) = 9186 +SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50 +SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237 +SHA256 (rust/crates/asn1-rs-0.6.2.crate) = 5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048 +SIZE (rust/crates/asn1-rs-0.6.2.crate) = 90647 +SHA256 (rust/crates/asn1-rs-derive-0.5.1.crate) = 965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490 +SIZE (rust/crates/asn1-rs-derive-0.5.1.crate) = 9692 +SHA256 (rust/crates/asn1-rs-impl-0.2.0.crate) = 7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7 +SIZE (rust/crates/asn1-rs-impl-0.2.0.crate) = 2261 +SHA256 (rust/crates/async-broadcast-0.7.2.crate) = 435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532 +SIZE (rust/crates/async-broadcast-0.7.2.crate) = 22746 +SHA256 (rust/crates/async-channel-1.9.0.crate) = 81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35 +SIZE (rust/crates/async-channel-1.9.0.crate) = 13664 +SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a +SIZE (rust/crates/async-channel-2.3.1.crate) = 14576 +SHA256 (rust/crates/async-compression-0.4.21.crate) = c0cf008e5e1a9e9e22a7d3c9a4992e21a350290069e36d8fb72304ed17e8f2d2 +SIZE (rust/crates/async-compression-0.4.21.crate) = 112809 +SHA256 (rust/crates/async-imap-0.10.4.crate) = ca726c61b73c471f531b65e83e161776ba62c2b6ba4ec73d51fad357009ed00a +SIZE (rust/crates/async-imap-0.10.4.crate) = 63331 +SHA256 (rust/crates/async-lock-3.4.0.crate) = ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18 +SIZE (rust/crates/async-lock-3.4.0.crate) = 34446 +SHA256 (rust/crates/async-native-tls-0.5.0.crate) = 9343dc5acf07e79ff82d0c37899f079db3534d99f189a1837c8e549c99405bec +SIZE (rust/crates/async-native-tls-0.5.0.crate) = 24719 +SHA256 (rust/crates/async-recursion-1.1.1.crate) = 3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11 +SIZE (rust/crates/async-recursion-1.1.1.crate) = 14874 +SHA256 (rust/crates/async-smtp-0.10.1.crate) = 7c2d87bfab790b8b5b718a65bbcca6187f0d091270ea21f8c12fa03ce3823aba +SIZE (rust/crates/async-smtp-0.10.1.crate) = 31295 +SHA256 (rust/crates/async-trait-0.1.86.crate) = 644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d +SIZE (rust/crates/async-trait-0.1.86.crate) = 31946 +SHA256 (rust/crates/async_zip-0.0.17.crate) = 00b9f7252833d5ed4b00aa9604b563529dd5e11de9c23615de2dcdf91eb87b52 +SIZE (rust/crates/async_zip-0.0.17.crate) = 109081 +SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0 +SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422 +SHA256 (rust/crates/attohttpc-0.24.1.crate) = 8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2 +SIZE (rust/crates/attohttpc-0.24.1.crate) = 60895 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/backoff-0.4.0.crate) = b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1 +SIZE (rust/crates/backoff-0.4.0.crate) = 26738 +SHA256 (rust/crates/backtrace-0.3.73.crate) = 5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a +SIZE (rust/crates/backtrace-0.3.73.crate) = 87617 +SHA256 (rust/crates/base16ct-0.2.0.crate) = 4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf +SIZE (rust/crates/base16ct-0.2.0.crate) = 10240 +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/bitfield-0.17.0.crate) = f798d2d157e547aa99aab0967df39edd0b70307312b6f8bd2848e6abe40896e0 +SIZE (rust/crates/bitfield-0.17.0.crate) = 19883 +SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a +SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 +SHA256 (rust/crates/bitflags-2.8.0.crate) = 8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36 +SIZE (rust/crates/bitflags-2.8.0.crate) = 47482 +SHA256 (rust/crates/blake2-0.10.6.crate) = 46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe +SIZE (rust/crates/blake2-0.10.6.crate) = 47234 +SHA256 (rust/crates/blake3-1.8.0.crate) = 34a796731680be7931955498a16a10b2270c7762963d5d570fdbfe02dcbf314f +SIZE (rust/crates/blake3-1.8.0.crate) = 205397 +SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71 +SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 +SHA256 (rust/crates/block-padding-0.3.3.crate) = a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93 +SIZE (rust/crates/block-padding-0.3.3.crate) = 8504 +SHA256 (rust/crates/blowfish-0.9.1.crate) = e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7 +SIZE (rust/crates/blowfish-0.9.1.crate) = 16734 +SHA256 (rust/crates/bolero-0.8.0.crate) = 3387d308f66ed222bdbb19c6ba06b1517168c4e45dc64051c5f1b4845db2901c +SIZE (rust/crates/bolero-0.8.0.crate) = 6447 +SHA256 (rust/crates/bolero-afl-0.8.0.crate) = 973bc6341b6a865dee93f17b78de4a100551014a527798ff1d7265d3bc0f7d89 +SIZE (rust/crates/bolero-afl-0.8.0.crate) = 107085 +SHA256 (rust/crates/bolero-engine-0.8.1.crate) = 5c506a476cea9e95f58c264b343ee279c353d93ceaebe98cbfb16e74bfaee2e2 +SIZE (rust/crates/bolero-engine-0.8.1.crate) = 10915 +SHA256 (rust/crates/bolero-generator-0.8.0.crate) = 48d52eca8714d110e581cf17eeacf0d1a0d409d38a9e9ce07efeda6125f7febb +SIZE (rust/crates/bolero-generator-0.8.0.crate) = 17190 +SHA256 (rust/crates/bolero-generator-derive-0.8.0.crate) = 3b3c57c2a0967ad1a09ba4c2bf8f1c6b6db2f71e8c0db4fa280c65a0f6c249c3 +SIZE (rust/crates/bolero-generator-derive-0.8.0.crate) = 3952 +SHA256 (rust/crates/bolero-honggfuzz-0.8.0.crate) = 7996a3fa8d93652358b9b3b805233807168f49740a8bf91a531cd61e4da65355 +SIZE (rust/crates/bolero-honggfuzz-0.8.0.crate) = 615662 +SHA256 (rust/crates/bolero-kani-0.8.0.crate) = 206879993fffa1cf2c703b1ef93b0febfa76bae85a0a5d4ae0ee6d99a2e3b74e +SIZE (rust/crates/bolero-kani-0.8.0.crate) = 2111 +SHA256 (rust/crates/bolero-libfuzzer-0.8.0.crate) = cdc5547411b84703d9020914f15a7d709cfb738c72b5e0f5a499fe56b8465c98 +SIZE (rust/crates/bolero-libfuzzer-0.8.0.crate) = 120566 +SHA256 (rust/crates/bounded-integer-0.5.8.crate) = 102dbef1187b1893e6dfe05a774e79fd52265f49f214f6879c8ff49f52c8188b +SIZE (rust/crates/bounded-integer-0.5.8.crate) = 15878 +SHA256 (rust/crates/brotli-7.0.0.crate) = cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd +SIZE (rust/crates/brotli-7.0.0.crate) = 1356970 +SHA256 (rust/crates/brotli-decompressor-4.0.2.crate) = 74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37 +SIZE (rust/crates/brotli-decompressor-4.0.2.crate) = 193388 +SHA256 (rust/crates/bstr-1.11.3.crate) = 531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0 +SIZE (rust/crates/bstr-1.11.3.crate) = 351536 +SHA256 (rust/crates/buffer-redux-1.0.2.crate) = 4e8acf87c5b9f5897cd3ebb9a327f420e0cae9dd4e5c1d2e36f2c84c571a58f1 +SIZE (rust/crates/buffer-redux-1.0.2.crate) = 26604 +SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf +SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 +SHA256 (rust/crates/byte_string-1.0.0.crate) = 11aade7a05aa8c3a351cedc44c3fc45806430543382fcc4743a9b757a2a0b4ed +SIZE (rust/crates/byte_string-1.0.0.crate) = 8678 +SHA256 (rust/crates/bytemuck-1.21.0.crate) = ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3 +SIZE (rust/crates/bytemuck-1.21.0.crate) = 51553 +SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b +SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 +SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495 +SIZE (rust/crates/byteorder-lite-0.1.0.crate) = 15909 +SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a +SIZE (rust/crates/bytes-1.10.1.crate) = 76779 +SHA256 (rust/crates/camellia-0.1.0.crate) = 3264e2574e9ef2b53ce6f536dea83a69ac0bc600b762d1523ff83fe07230ce30 +SIZE (rust/crates/camellia-0.1.0.crate) = 89085 +SHA256 (rust/crates/camino-1.1.9.crate) = 8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3 +SIZE (rust/crates/camino-1.1.9.crate) = 37552 +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.14.2.crate) = 4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa +SIZE (rust/crates/cargo_metadata-0.14.2.crate) = 17469 +SHA256 (rust/crates/cast-0.3.0.crate) = 37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5 +SIZE (rust/crates/cast-0.3.0.crate) = 11452 +SHA256 (rust/crates/cast5-0.11.1.crate) = 26b07d673db1ccf000e90f54b819db9e75a8348d6eb056e9b8ab53231b7a9911 +SIZE (rust/crates/cast5-0.11.1.crate) = 37018 +SHA256 (rust/crates/cc-1.2.14.crate) = 0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9 +SIZE (rust/crates/cc-1.2.14.crate) = 103164 +SHA256 (rust/crates/cesu8-1.1.0.crate) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c +SIZE (rust/crates/cesu8-1.1.0.crate) = 10555 +SHA256 (rust/crates/cfb-mode-0.8.2.crate) = 738b8d467867f80a71351933f70461f5b56f24d5c93e0cf216e59229c968d330 +SIZE (rust/crates/cfb-mode-0.8.2.crate) = 25334 +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.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724 +SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355 +SHA256 (rust/crates/chacha20-0.9.1.crate) = c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818 +SIZE (rust/crates/chacha20-0.9.1.crate) = 23424 +SHA256 (rust/crates/chacha20poly1305-0.10.1.crate) = 10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35 +SIZE (rust/crates/chacha20poly1305-0.10.1.crate) = 68485 +SHA256 (rust/crates/charset-0.1.5.crate) = f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e +SIZE (rust/crates/charset-0.1.5.crate) = 15918 +SHA256 (rust/crates/chrono-0.4.40.crate) = 1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c +SIZE (rust/crates/chrono-0.4.40.crate) = 229824 +SHA256 (rust/crates/ciborium-0.2.2.crate) = 42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e +SIZE (rust/crates/ciborium-0.2.2.crate) = 35611 +SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757 +SIZE (rust/crates/ciborium-io-0.2.2.crate) = 6697 +SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9 +SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695 +SHA256 (rust/crates/cipher-0.4.4.crate) = 773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad +SIZE (rust/crates/cipher-0.4.4.crate) = 19073 +SHA256 (rust/crates/clap-4.5.13.crate) = 0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc +SIZE (rust/crates/clap-4.5.13.crate) = 56267 +SHA256 (rust/crates/clap_builder-4.5.13.crate) = 64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99 +SIZE (rust/crates/clap_builder-4.5.13.crate) = 164093 +SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 +SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 +SHA256 (rust/crates/clipboard-win-5.4.0.crate) = 15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892 +SIZE (rust/crates/clipboard-win-5.4.0.crate) = 20559 +SHA256 (rust/crates/cmac-0.7.2.crate) = 8543454e3c3f5126effff9cd44d562af4e31fb8ce1cc0d3dcd8f084515dbc1aa +SIZE (rust/crates/cmac-0.7.2.crate) = 44847 +SHA256 (rust/crates/cobs-0.2.3.crate) = 67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15 +SIZE (rust/crates/cobs-0.2.3.crate) = 12576 +SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b +SIZE (rust/crates/color_quant-1.1.0.crate) = 6649 +SHA256 (rust/crates/combine-4.6.7.crate) = ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd +SIZE (rust/crates/combine-4.6.7.crate) = 134808 +SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973 +SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654 +SHA256 (rust/crates/const-oid-0.9.6.crate) = c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8 +SIZE (rust/crates/const-oid-0.9.6.crate) = 45382 +SHA256 (rust/crates/constant_time_eq-0.3.1.crate) = 7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6 +SIZE (rust/crates/constant_time_eq-0.3.1.crate) = 11561 +SHA256 (rust/crates/convert_case-0.5.0.crate) = fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8 +SIZE (rust/crates/convert_case-0.5.0.crate) = 17902 +SHA256 (rust/crates/cordyceps-0.3.2.crate) = ec10f0a762d93c4498d2e97a333805cb6250d60bead623f71d8034f9a4152ba3 +SIZE (rust/crates/cordyceps-0.3.2.crate) = 49791 +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-0.10.0.crate) = b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63 +SIZE (rust/crates/core-foundation-0.10.0.crate) = 27023 +SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b +SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712 +SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280 +SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466 +SHA256 (rust/crates/crc-3.2.1.crate) = 69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636 +SIZE (rust/crates/crc-3.2.1.crate) = 15070 +SHA256 (rust/crates/crc-catalog-2.4.0.crate) = 19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5 +SIZE (rust/crates/crc-catalog-2.4.0.crate) = 10155 +SHA256 (rust/crates/crc24-0.1.6.crate) = fd121741cf3eb82c08dd3023eb55bf2665e5f60ec20f89760cf836ae4562e6a0 +SIZE (rust/crates/crc24-0.1.6.crate) = 2378 +SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 +SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 +SHA256 (rust/crates/criterion-0.5.1.crate) = f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f +SIZE (rust/crates/criterion-0.5.1.crate) = 110088 +SHA256 (rust/crates/criterion-plot-0.5.0.crate) = 6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1 +SIZE (rust/crates/criterion-plot-0.5.0.crate) = 22706 +SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2 +SIZE (rust/crates/crossbeam-channel-0.5.15.crate) = 92716 +SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51 +SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471 +SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e +SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875 +SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28 +SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691 +SHA256 (rust/crates/crossterm-0.28.1.crate) = 829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6 +SIZE (rust/crates/crossterm-0.28.1.crate) = 132275 +SHA256 (rust/crates/crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b +SIZE (rust/crates/crossterm_winapi-0.9.1.crate) = 16027 +SHA256 (rust/crates/crunchy-0.2.3.crate) = 43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929 +SIZE (rust/crates/crunchy-0.2.3.crate) = 3775 +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/crypto_box-0.9.1.crate) = 16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009 +SIZE (rust/crates/crypto_box-0.9.1.crate) = 16702 +SHA256 (rust/crates/crypto_secretbox-0.1.1.crate) = b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1 +SIZE (rust/crates/crypto_secretbox-0.1.1.crate) = 11377 +SHA256 (rust/crates/ctr-0.9.2.crate) = 0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835 +SIZE (rust/crates/ctr-0.9.2.crate) = 18344 +SHA256 (rust/crates/curve25519-dalek-4.1.3.crate) = 97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be +SIZE (rust/crates/curve25519-dalek-4.1.3.crate) = 306017 +SHA256 (rust/crates/curve25519-dalek-derive-0.1.1.crate) = f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3 +SIZE (rust/crates/curve25519-dalek-derive-0.1.1.crate) = 11723 +SHA256 (rust/crates/darling-0.20.10.crate) = 6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989 +SIZE (rust/crates/darling-0.20.10.crate) = 32031 +SHA256 (rust/crates/darling_core-0.20.10.crate) = 95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5 +SIZE (rust/crates/darling_core-0.20.10.crate) = 65015 +SHA256 (rust/crates/darling_macro-0.20.10.crate) = d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806 +SIZE (rust/crates/darling_macro-0.20.10.crate) = 1874 +SHA256 (rust/crates/data-encoding-2.8.0.crate) = 575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010 +SIZE (rust/crates/data-encoding-2.8.0.crate) = 21394 +SHA256 (rust/crates/dbl-0.3.2.crate) = bd2735a791158376708f9347fe8faba9667589d82427ef3aed6794a8981de3d9 +SIZE (rust/crates/dbl-0.3.2.crate) = 6336 +SHA256 (rust/crates/der-0.7.9.crate) = f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0 +SIZE (rust/crates/der-0.7.9.crate) = 85173 +SHA256 (rust/crates/der-parser-9.0.0.crate) = 5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553 +SIZE (rust/crates/der-parser-9.0.0.crate) = 63191 +SHA256 (rust/crates/der_derive-0.7.3.crate) = 8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18 +SIZE (rust/crates/der_derive-0.7.3.crate) = 24657 +SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4 +SIZE (rust/crates/deranged-0.3.11.crate) = 18043 +SHA256 (rust/crates/derive_builder-0.20.2.crate) = 507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947 +SIZE (rust/crates/derive_builder-0.20.2.crate) = 36661 +SHA256 (rust/crates/derive_builder_core-0.20.2.crate) = 2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8 +SIZE (rust/crates/derive_builder_core-0.20.2.crate) = 31397 +SHA256 (rust/crates/derive_builder_macro-0.20.2.crate) = ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c +SIZE (rust/crates/derive_builder_macro-0.20.2.crate) = 6360 +SHA256 (rust/crates/derive_more-1.0.0.crate) = 4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05 +SIZE (rust/crates/derive_more-1.0.0.crate) = 64854 +SHA256 (rust/crates/derive_more-impl-1.0.0.crate) = cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22 +SIZE (rust/crates/derive_more-impl-1.0.0.crate) = 76182 +SHA256 (rust/crates/des-0.8.1.crate) = ffdd80ce8ce993de27e9f063a444a4d53ce8e8db4c1f00cc03af5ad5a9867a1e +SIZE (rust/crates/des-0.8.1.crate) = 38783 +SHA256 (rust/crates/diatomic-waker-0.2.3.crate) = ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c +SIZE (rust/crates/diatomic-waker-0.2.3.crate) = 18221 +SHA256 (rust/crates/diff-0.1.13.crate) = 56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8 +SIZE (rust/crates/diff-0.1.13.crate) = 46216 +SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 +SIZE (rust/crates/digest-0.10.7.crate) = 19557 +SHA256 (rust/crates/dirs-6.0.0.crate) = c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e +SIZE (rust/crates/dirs-6.0.0.crate) = 14190 +SHA256 (rust/crates/dirs-sys-0.5.0.crate) = e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab +SIZE (rust/crates/dirs-sys-0.5.0.crate) = 10157 +SHA256 (rust/crates/displaydoc-0.2.4.crate) = 487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d +SIZE (rust/crates/displaydoc-0.2.4.crate) = 23200 +SHA256 (rust/crates/dlopen2-0.5.0.crate) = 09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa +SIZE (rust/crates/dlopen2-0.5.0.crate) = 28703 +SHA256 (rust/crates/document-features-0.2.11.crate) = 95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d +SIZE (rust/crates/document-features-0.2.11.crate) = 14640 +SHA256 (rust/crates/dsa-0.6.3.crate) = 48bc224a9084ad760195584ce5abb3c2c34a225fa312a128ad245a6b412b7689 +SIZE (rust/crates/dsa-0.6.3.crate) = 25991 +SHA256 (rust/crates/dyn-clone-1.0.18.crate) = feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35 +SIZE (rust/crates/dyn-clone-1.0.18.crate) = 12871 +SHA256 (rust/crates/dynosaur-0.2.0.crate) = 277b2cb52d2df4acece06bb16bc0bb0a006970c7bf504eac2d310927a6f65890 +SIZE (rust/crates/dynosaur-0.2.0.crate) = 12914 +SHA256 (rust/crates/dynosaur_derive-0.2.0.crate) = 7a4102713839a8c01c77c165bc38ef2e83948f6397fa1e1dcfacec0f07b149d3 +SIZE (rust/crates/dynosaur_derive-0.2.0.crate) = 14719 +SHA256 (rust/crates/eax-0.5.0.crate) = 9954fabd903b82b9d7a68f65f97dc96dd9ad368e40ccc907a7c19d53e6bfac28 +SIZE (rust/crates/eax-0.5.0.crate) = 14882 +SHA256 (rust/crates/ecdsa-0.16.9.crate) = ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca +SIZE (rust/crates/ecdsa-0.16.9.crate) = 31406 +SHA256 (rust/crates/ed25519-2.2.3.crate) = 115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53 +SIZE (rust/crates/ed25519-2.2.3.crate) = 17802 +SHA256 (rust/crates/ed25519-dalek-2.1.1.crate) = 4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871 +SIZE (rust/crates/ed25519-dalek-2.1.1.crate) = 85736 +SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0 +SIZE (rust/crates/either-1.13.0.crate) = 19169 +SHA256 (rust/crates/elliptic-curve-0.13.8.crate) = b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47 +SIZE (rust/crates/elliptic-curve-0.13.8.crate) = 63198 +SHA256 (rust/crates/embedded-io-0.4.0.crate) = ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced +SIZE (rust/crates/embedded-io-0.4.0.crate) = 12901 +SHA256 (rust/crates/embedded-io-0.6.1.crate) = edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d +SIZE (rust/crates/embedded-io-0.6.1.crate) = 13133 +SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3 +SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050 +SHA256 (rust/crates/endian-type-0.1.2.crate) = c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d +SIZE (rust/crates/endian-type-0.1.2.crate) = 2340 +SHA256 (rust/crates/entities-1.0.1.crate) = b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca +SIZE (rust/crates/entities-1.0.1.crate) = 24795 +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/enumflags2-0.7.11.crate) = ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147 +SIZE (rust/crates/enumflags2-0.7.11.crate) = 17500 +SHA256 (rust/crates/enumflags2_derive-0.7.11.crate) = fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79 +SIZE (rust/crates/enumflags2_derive-0.7.11.crate) = 8524 +SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f +SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 +SHA256 (rust/crates/erased-serde-0.3.31.crate) = 6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c +SIZE (rust/crates/erased-serde-0.3.31.crate) = 24182 +SHA256 (rust/crates/erased_set-0.8.0.crate) = a02a5d186d7bf1cb21f1f95e1a9cfa5c1f2dcd803a47aad454423ceec13525c5 +SIZE (rust/crates/erased_set-0.8.0.crate) = 4501 +SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d +SIZE (rust/crates/errno-0.3.10.crate) = 11824 +SHA256 (rust/crates/error-code-3.3.1.crate) = a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f +SIZE (rust/crates/error-code-3.3.1.crate) = 7646 +SHA256 (rust/crates/escaper-0.1.1.crate) = a53eb97b7349ba1bdb31839eceafe9aaae8f1d8d944dc589b67fb0b26e1c1666 +SIZE (rust/crates/escaper-0.1.1.crate) = 56475 +SHA256 (rust/crates/event-listener-2.5.3.crate) = 0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0 +SIZE (rust/crates/event-listener-2.5.3.crate) = 15392 +SHA256 (rust/crates/event-listener-5.4.0.crate) = 3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae +SIZE (rust/crates/event-listener-5.4.0.crate) = 43452 +SHA256 (rust/crates/event-listener-strategy-0.5.3.crate) = 3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2 +SIZE (rust/crates/event-listener-strategy-0.5.3.crate) = 10920 +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/fast-socks5-0.10.0.crate) = d09fe4a491909a716088083eeb5bcc25427330fdbcd4ecd3dfa5469b3da795df +SIZE (rust/crates/fast-socks5-0.10.0.crate) = 35324 +SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be +SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 +SHA256 (rust/crates/fd-lock-4.0.4.crate) = 0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78 +SIZE (rust/crates/fd-lock-4.0.4.crate) = 15522 +SHA256 (rust/crates/fdeflate-0.3.7.crate) = 1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c +SIZE (rust/crates/fdeflate-0.3.7.crate) = 27188 +SHA256 (rust/crates/ff-0.13.0.crate) = ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449 +SIZE (rust/crates/ff-0.13.0.crate) = 17688 +SHA256 (rust/crates/fiat-crypto-0.2.9.crate) = 28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d +SIZE (rust/crates/fiat-crypto-0.2.9.crate) = 495390 +SHA256 (rust/crates/filetime-0.2.23.crate) = 1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd +SIZE (rust/crates/filetime-0.2.23.crate) = 14942 +SHA256 (rust/crates/fixedbitset-0.5.7.crate) = 1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99 +SIZE (rust/crates/fixedbitset-0.5.7.crate) = 26537 +SHA256 (rust/crates/flate2-1.0.28.crate) = 46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e +SIZE (rust/crates/flate2-1.0.28.crate) = 73690 +SHA256 (rust/crates/flume-0.11.1.crate) = da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095 +SIZE (rust/crates/flume-0.11.1.crate) = 67947 +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 +SIZE (rust/crates/foreign-types-0.3.2.crate) = 7504 +SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b +SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672 +SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456 +SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969 +SHA256 (rust/crates/futures-0.3.31.crate) = 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876 +SIZE (rust/crates/futures-0.3.31.crate) = 54953 +SHA256 (rust/crates/futures-buffered-0.2.9.crate) = 34acda8ae8b63fbe0b2195c998b180cff89a8212fb2622a78b572a9f1c6f7684 +SIZE (rust/crates/futures-buffered-0.2.9.crate) = 30905 +SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10 +SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971 +SHA256 (rust/crates/futures-concurrency-7.6.3.crate) = 0eb68017df91f2e477ed4bea586c59eaecaa47ed885a770d0444e21e62572cd2 +SIZE (rust/crates/futures-concurrency-7.6.3.crate) = 79990 +SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e +SIZE (rust/crates/futures-core-0.3.31.crate) = 14318 +SHA256 (rust/crates/futures-executor-0.3.31.crate) = 1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f +SIZE (rust/crates/futures-executor-0.3.31.crate) = 17965 +SHA256 (rust/crates/futures-io-0.3.31.crate) = 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6 +SIZE (rust/crates/futures-io-0.3.31.crate) = 9047 +SHA256 (rust/crates/futures-lite-2.6.0.crate) = f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532 +SIZE (rust/crates/futures-lite-2.6.0.crate) = 45157 +SHA256 (rust/crates/futures-macro-0.3.31.crate) = 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650 +SIZE (rust/crates/futures-macro-0.3.31.crate) = 11341 +SHA256 (rust/crates/futures-sink-0.3.31.crate) = e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7 +SIZE (rust/crates/futures-sink-0.3.31.crate) = 7958 +SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988 +SIZE (rust/crates/futures-task-0.3.31.crate) = 11217 +SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81 +SIZE (rust/crates/futures-util-0.3.31.crate) = 162124 +SHA256 (rust/crates/generator-0.7.5.crate) = 5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e +SIZE (rust/crates/generator-0.7.5.crate) = 29947 +SHA256 (rust/crates/generator-0.8.4.crate) = cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd +SIZE (rust/crates/generator-0.8.4.crate) = 34400 +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.3.1.crate) = 43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8 +SIZE (rust/crates/getrandom-0.3.1.crate) = 42449 +SHA256 (rust/crates/ghash-0.5.1.crate) = f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1 +SIZE (rust/crates/ghash-0.5.1.crate) = 9482 +SHA256 (rust/crates/gif-0.13.1.crate) = 3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2 +SIZE (rust/crates/gif-0.13.1.crate) = 36408 +SHA256 (rust/crates/gimli-0.29.0.crate) = 40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd +SIZE (rust/crates/gimli-0.29.0.crate) = 275756 +SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2 +SIZE (rust/crates/glob-0.3.2.crate) = 22359 +SHA256 (rust/crates/group-0.13.0.crate) = f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63 +SIZE (rust/crates/group-0.13.0.crate) = 16526 +SHA256 (rust/crates/h2-0.4.7.crate) = ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e +SIZE (rust/crates/h2-0.4.7.crate) = 174114 +SHA256 (rust/crates/half-2.4.0.crate) = b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e +SIZE (rust/crates/half-2.4.0.crate) = 50666 +SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 +SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 +SHA256 (rust/crates/hashlink-0.9.1.crate) = 6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af +SIZE (rust/crates/hashlink-0.9.1.crate) = 28928 +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/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 +SIZE (rust/crates/hex-0.4.3.crate) = 13299 +SHA256 (rust/crates/hickory-proto-0.25.0-alpha.5.crate) = 1d00147af6310f4392a31680db52a3ed45a2e0f68eb18e8c3fe5537ecc96d9e2 +SIZE (rust/crates/hickory-proto-0.25.0-alpha.5.crate) = 405101 +SHA256 (rust/crates/hickory-resolver-0.25.0-alpha.5.crate) = 5762f69ebdbd4ddb2e975cd24690bf21fe6b2604039189c26acddbc427f12887 +SIZE (rust/crates/hickory-resolver-0.25.0-alpha.5.crate) = 89327 +SHA256 (rust/crates/hkdf-0.12.4.crate) = 7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7 +SIZE (rust/crates/hkdf-0.12.4.crate) = 171163 +SHA256 (rust/crates/hmac-0.12.1.crate) = 6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e +SIZE (rust/crates/hmac-0.12.1.crate) = 42657 +SHA256 (rust/crates/hmac-sha1-0.2.2.crate) = 6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88 +SIZE (rust/crates/hmac-sha1-0.2.2.crate) = 3234 +SHA256 (rust/crates/hmac-sha256-1.1.8.crate) = 4a8575493d277c9092b988c780c94737fb9fd8651a1001e16bee3eccfc1baedb +SIZE (rust/crates/hmac-sha256-1.1.8.crate) = 6332 +SHA256 (rust/crates/home-0.5.11.crate) = 589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf +SIZE (rust/crates/home-0.5.11.crate) = 9926 +SHA256 (rust/crates/hostname-0.4.0.crate) = f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba +SIZE (rust/crates/hostname-0.4.0.crate) = 10632 +SHA256 (rust/crates/hostname-validator-1.1.1.crate) = f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2 +SIZE (rust/crates/hostname-validator-1.1.1.crate) = 2377 +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-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184 +SIZE (rust/crates/http-body-1.0.1.crate) = 6125 +SHA256 (rust/crates/http-body-util-0.1.3.crate) = b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a +SIZE (rust/crates/http-body-util-0.1.3.crate) = 16975 +SHA256 (rust/crates/httparse-1.10.0.crate) = f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a +SIZE (rust/crates/httparse-1.10.0.crate) = 44882 +SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9 +SIZE (rust/crates/httpdate-1.0.3.crate) = 10639 +SHA256 (rust/crates/human-panic-2.0.2.crate) = 80b84a66a325082740043a6c28bbea400c129eac0d3a27673a1de971e44bf1f7 +SIZE (rust/crates/human-panic-2.0.2.crate) = 12620 +SHA256 (rust/crates/humansize-2.1.3.crate) = 6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7 +SIZE (rust/crates/humansize-2.1.3.crate) = 11953 +SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80 +SIZE (rust/crates/hyper-1.6.0.crate) = 153923 +SHA256 (rust/crates/hyper-rustls-0.27.5.crate) = 2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2 +SIZE (rust/crates/hyper-rustls-0.27.5.crate) = 34660 +SHA256 (rust/crates/hyper-util-0.1.11.crate) = 497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2 +SIZE (rust/crates/hyper-util-0.1.11.crate) = 75973 +SHA256 (rust/crates/iana-time-zone-0.1.61.crate) = 235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220 +SIZE (rust/crates/iana-time-zone-0.1.61.crate) = 27685 +SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f +SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185 +SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526 +SIZE (rust/crates/icu_collections-1.5.0.crate) = 82762 +SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637 +SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131 +SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e +SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094 +SHA256 (rust/crates/icu_locid_transform_data-1.5.0.crate) = fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e +SIZE (rust/crates/icu_locid_transform_data-1.5.0.crate) = 44727 +SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f +SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113 +SHA256 (rust/crates/icu_normalizer_data-1.5.0.crate) = f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516 +SIZE (rust/crates/icu_normalizer_data-1.5.0.crate) = 50561 +SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5 +SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479 +SHA256 (rust/crates/icu_properties_data-1.5.0.crate) = 67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569 +SIZE (rust/crates/icu_properties_data-1.5.0.crate) = 227993 +SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9 +SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722 +SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6 +SIZE (rust/crates/icu_provider_macros-1.5.0.crate) = 6436 +SHA256 (rust/crates/idea-0.5.1.crate) = 075557004419d7f2031b8bb7f44bb43e55a83ca7b63076a8fb8fe75753836477 +SIZE (rust/crates/idea-0.5.1.crate) = 23243 +SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39 +SIZE (rust/crates/ident_case-1.0.1.crate) = 3492 +SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e +SIZE (rust/crates/idna-1.0.3.crate) = 142515 +SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 +SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 +SHA256 (rust/crates/igd-next-0.15.1.crate) = 76b0d7d4541def58a37bf8efc559683f21edce7c82f0d866c93ac21f7e098f93 +SIZE (rust/crates/igd-next-0.15.1.crate) = 36501 +SHA256 (rust/crates/image-0.25.6.crate) = db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a +SIZE (rust/crates/image-0.25.6.crate) = 242367 +SHA256 (rust/crates/image-webp-0.2.1.crate) = b77d01e822461baa8409e156015a1d91735549f0f2c17691bd2d996bef238f7f +SIZE (rust/crates/image-webp-0.2.1.crate) = 60662 +SHA256 (rust/crates/imap-proto-0.16.5.crate) = de555d9526462b6f9ece826a26fb7c67eca9a0245bd9ff84fa91972a5d5d8856 +SIZE (rust/crates/imap-proto-0.16.5.crate) = 35791 +SHA256 (rust/crates/indexmap-2.2.5.crate) = 7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4 +SIZE (rust/crates/indexmap-2.2.5.crate) = 81498 +SHA256 (rust/crates/inout-0.1.3.crate) = a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5 +SIZE (rust/crates/inout-0.1.3.crate) = 10743 +SHA256 (rust/crates/instant-0.1.13.crate) = e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222 +SIZE (rust/crates/instant-0.1.13.crate) = 6305 +SHA256 (rust/crates/ipconfig-0.3.2.crate) = b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f +SIZE (rust/crates/ipconfig-0.3.2.crate) = 24468 +SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130 +SIZE (rust/crates/ipnet-2.11.0.crate) = 29718 +SHA256 (rust/crates/iroh-0.33.0.crate) = a4ffd6af2e000f04972068c0318e0d8fa90ee9cfcb2bc6124db38591500e0278 +SIZE (rust/crates/iroh-0.33.0.crate) = 218327 +SHA256 (rust/crates/iroh-base-0.33.0.crate) = 011d271a95b41218d22bdaf3352f29ef1dd7d6be644ca8543941655bec5f3d35 +SIZE (rust/crates/iroh-base-0.33.0.crate) = 18409 +SHA256 (rust/crates/iroh-blake3-1.4.5.crate) = efbba31f40a650f58fa28dd585a8ca76d8ae3ba63aacab4c8269004a0c803930 +SIZE (rust/crates/iroh-blake3-1.4.5.crate) = 164941 +SHA256 (rust/crates/iroh-gossip-0.33.0.crate) = b3d4c7e330bf3d29576d443003e31a2d30d97b29ee13521af2634926d831c01d +SIZE (rust/crates/iroh-gossip-0.33.0.crate) = 105725 +SHA256 (rust/crates/iroh-metrics-0.31.0.crate) = 571d177e20f0848a643a2c0f662be0e08968f8743b0776941f83a2152b87a180 +SIZE (rust/crates/iroh-metrics-0.31.0.crate) = 24424 +SHA256 (rust/crates/iroh-net-report-0.33.0.crate) = 7d2652f42eadc63458e36c0a422569f338639dc0b5bb469db0eb4a382b4e295c +SIZE (rust/crates/iroh-net-report-0.33.0.crate) = 72109 +SHA256 (rust/crates/iroh-quinn-0.13.0.crate) = 76c6245c9ed906506ab9185e8d7f64857129aee4f935e899f398a3bd3b70338d +SIZE (rust/crates/iroh-quinn-0.13.0.crate) = 78548 +SHA256 (rust/crates/iroh-quinn-proto-0.13.0.crate) = 929d5d8fa77d5c304d3ee7cae9aede31f13908bd049f9de8c7c0094ad6f7c535 +SIZE (rust/crates/iroh-quinn-proto-0.13.0.crate) = 224474 +SHA256 (rust/crates/iroh-quinn-udp-0.5.7.crate) = c53afaa1049f7c83ea1331f5ebb9e6ebc5fdd69c468b7a22dd598b02c9bcc973 +SIZE (rust/crates/iroh-quinn-udp-0.5.7.crate) = 25601 +SHA256 (rust/crates/iroh-relay-0.33.0.crate) = c930ccc4dfd0196b531344e3d0f83a0f82c45b170406e04a2491cba571faec5b +SIZE (rust/crates/iroh-relay-0.33.0.crate) = 110778 +SHA256 (rust/crates/is-terminal-0.4.12.crate) = f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b +SIZE (rust/crates/is-terminal-0.4.12.crate) = 7470 +SHA256 (rust/crates/iter-read-1.1.0.crate) = 071ed4cc1afd86650602c7b11aa2e1ce30762a1c27193201cb5cee9c6ebb1294 +SIZE (rust/crates/iter-read-1.1.0.crate) = 9173 +SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473 +SIZE (rust/crates/itertools-0.10.5.crate) = 115354 +SHA256 (rust/crates/itoa-1.0.10.crate) = b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c +SIZE (rust/crates/itoa-1.0.10.crate) = 10534 +SHA256 (rust/crates/jni-0.21.1.crate) = 1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97 +SIZE (rust/crates/jni-0.21.1.crate) = 105028 +SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130 +SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232 +SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f +SIZE (rust/crates/js-sys-0.3.77.crate) = 55538 +SHA256 (rust/crates/k256-0.13.4.crate) = f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b +SIZE (rust/crates/k256-0.13.4.crate) = 93562 +SHA256 (rust/crates/kamadak-exif-0.6.1.crate) = 1130d80c7374efad55a117d715a3af9368f0fa7a2c54573afc15a188cd984837 +SIZE (rust/crates/kamadak-exif-0.6.1.crate) = 57852 +SHA256 (rust/crates/keccak-0.1.5.crate) = ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654 +SIZE (rust/crates/keccak-0.1.5.crate) = 13120 +SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe +SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 +SHA256 (rust/crates/libc-0.2.171.crate) = c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6 +SIZE (rust/crates/libc-0.2.171.crate) = 785246 +SHA256 (rust/crates/libm-0.2.11.crate) = 8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa +SIZE (rust/crates/libm-0.2.11.crate) = 111477 +SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d +SIZE (rust/crates/libredox-0.1.3.crate) = 6068 +SHA256 (rust/crates/libsqlite3-sys-0.30.1.crate) = 2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149 +SIZE (rust/crates/libsqlite3-sys-0.30.1.crate) = 5122296 +SHA256 (rust/crates/linux-raw-sys-0.4.14.crate) = 78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89 +SIZE (rust/crates/linux-raw-sys-0.4.14.crate) = 1826665 +SHA256 (rust/crates/linux-raw-sys-0.9.3.crate) = fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413 +SIZE (rust/crates/linux-raw-sys-0.9.3.crate) = 2311047 +SHA256 (rust/crates/litemap-0.7.4.crate) = 4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104 +SIZE (rust/crates/litemap-0.7.4.crate) = 28257 +SHA256 (rust/crates/litrs-0.4.1.crate) = b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5 +SIZE (rust/crates/litrs-0.4.1.crate) = 42603 +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.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 +SIZE (rust/crates/log-0.4.27.crate) = 48120 +SHA256 (rust/crates/loom-0.5.6.crate) = ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5 +SIZE (rust/crates/loom-0.5.6.crate) = 72186 +SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca +SIZE (rust/crates/loom-0.7.2.crate) = 73989 +SHA256 (rust/crates/lru-0.12.3.crate) = d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc +SIZE (rust/crates/lru-0.12.3.crate) = 15009 +SHA256 (rust/crates/lru_time_cache-0.11.11.crate) = 9106e1d747ffd48e6be5bb2d97fa706ed25b144fbee4d5c02eae110cd8d6badd +SIZE (rust/crates/lru_time_cache-0.11.11.crate) = 15051 +SHA256 (rust/crates/mail-builder-0.4.2.crate) = 5666db60ccc742381c715c8daf303e60d266f1d1c8b123ab3fe78b590edaf564 +SIZE (rust/crates/mail-builder-0.4.2.crate) = 23296 +SHA256 (rust/crates/mailparse-0.16.1.crate) = 60819a97ddcb831a5614eb3b0174f3620e793e97e09195a395bfa948fd68ed2f +SIZE (rust/crates/mailparse-0.16.1.crate) = 37588 +SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558 +SIZE (rust/crates/matchers-0.1.0.crate) = 6948 +SHA256 (rust/crates/md-5-0.10.6.crate) = d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf +SIZE (rust/crates/md-5-0.10.6.crate) = 16161 +SHA256 (rust/crates/md5-0.7.0.crate) = 490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771 +SIZE (rust/crates/md5-0.7.0.crate) = 6671 +SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 +SIZE (rust/crates/memchr-2.7.4.crate) = 96670 +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.4.crate) = b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08 +SIZE (rust/crates/miniz_oxide-0.7.4.crate) = 56119 +SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd +SIZE (rust/crates/mio-1.0.3.crate) = 103703 +SHA256 (rust/crates/moka-0.12.10.crate) = a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926 +SIZE (rust/crates/moka-0.12.10.crate) = 253622 +SHA256 (rust/crates/mutate_once-0.1.1.crate) = 16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b +SIZE (rust/crates/mutate_once-0.1.1.crate) = 4276 +SHA256 (rust/crates/n0-future-0.1.2.crate) = 399e11dc3b0e8d9d65b27170d22f5d779d52d9bed888db70d7e0c2c7ce3dfc52 +SIZE (rust/crates/n0-future-0.1.2.crate) = 16947 +SHA256 (rust/crates/nanorand-0.7.0.crate) = 6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3 +SIZE (rust/crates/nanorand-0.7.0.crate) = 18437 +SHA256 (rust/crates/native-tls-0.2.14.crate) = 87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e +SIZE (rust/crates/native-tls-0.2.14.crate) = 29385 +SHA256 (rust/crates/netdev-0.31.0.crate) = f901362e84cd407be6f8cd9d3a46bccf09136b095792785401ea7d283c79b91d +SIZE (rust/crates/netdev-0.31.0.crate) = 27896 +SHA256 (rust/crates/netlink-packet-core-0.7.0.crate) = 72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4 +SIZE (rust/crates/netlink-packet-core-0.7.0.crate) = 16718 +SHA256 (rust/crates/netlink-packet-route-0.17.1.crate) = 053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66 +SIZE (rust/crates/netlink-packet-route-0.17.1.crate) = 115709 +SHA256 (rust/crates/netlink-packet-route-0.19.0.crate) = 74c171cd77b4ee8c7708da746ce392440cb7bcf618d122ec9ecc607b12938bf4 +SIZE (rust/crates/netlink-packet-route-0.19.0.crate) = 137468 +SHA256 (rust/crates/netlink-packet-utils-0.5.2.crate) = 0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34 +SIZE (rust/crates/netlink-packet-utils-0.5.2.crate) = 7970 +SHA256 (rust/crates/netlink-proto-0.11.5.crate) = 72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60 +SIZE (rust/crates/netlink-proto-0.11.5.crate) = 23793 +SHA256 (rust/crates/netlink-sys-0.8.7.crate) = 16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23 +SIZE (rust/crates/netlink-sys-0.8.7.crate) = 23701 +SHA256 (rust/crates/netwatch-0.3.0.crate) = 64da82edf903649e6cb6a77b5a6f7fe01387d8865065d411d139018510880302 +SIZE (rust/crates/netwatch-0.3.0.crate) = 39256 +SHA256 (rust/crates/nibble_vec-0.1.0.crate) = 77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43 +SIZE (rust/crates/nibble_vec-0.1.0.crate) = 11796 +SHA256 (rust/crates/nix-0.26.4.crate) = 598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b +SIZE (rust/crates/nix-0.26.4.crate) = 279099 +SHA256 (rust/crates/nix-0.27.1.crate) = 2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053 +SIZE (rust/crates/nix-0.27.1.crate) = 286494 +SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46 +SIZE (rust/crates/nix-0.29.0.crate) = 318248 +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/ntapi-0.4.1.crate) = e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4 +SIZE (rust/crates/ntapi-0.4.1.crate) = 126552 +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.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9 +SIZE (rust/crates/num-bigint-0.4.6.crate) = 102801 +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-derive-0.4.2.crate) = ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202 +SIZE (rust/crates/num-derive-0.4.2.crate) = 14709 +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.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/num_enum-0.7.3.crate) = 4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179 +SIZE (rust/crates/num_enum-0.7.3.crate) = 18603 +SHA256 (rust/crates/num_enum_derive-0.7.3.crate) = af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56 +SIZE (rust/crates/num_enum_derive-0.7.3.crate) = 17092 +SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87 +SIZE (rust/crates/object-0.36.7.crate) = 329938 +SHA256 (rust/crates/ocb3-0.1.0.crate) = c196e0276c471c843dd5777e7543a36a298a4be942a2a688d8111cd43390dedb +SIZE (rust/crates/ocb3-0.1.0.crate) = 14025 +SHA256 (rust/crates/oid-registry-0.7.1.crate) = a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9 +SIZE (rust/crates/oid-registry-0.7.1.crate) = 15220 +SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d +SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 +SHA256 (rust/crates/oorandom-11.1.4.crate) = b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9 +SIZE (rust/crates/oorandom-11.1.4.crate) = 10201 +SHA256 (rust/crates/opaque-debug-0.3.1.crate) = c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381 +SIZE (rust/crates/opaque-debug-0.3.1.crate) = 7066 +SHA256 (rust/crates/openssl-0.10.72.crate) = fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da +SIZE (rust/crates/openssl-0.10.72.crate) = 283852 +SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c +SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601 +SHA256 (rust/crates/openssl-probe-0.1.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e +SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128 +SHA256 (rust/crates/openssl-sys-0.9.107.crate) = 8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07 +SIZE (rust/crates/openssl-sys-0.9.107.crate) = 78156 +SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d +SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 +SHA256 (rust/crates/os_info-3.10.0.crate) = 2a604e53c24761286860eba4e2c8b23a0161526476b1de520139d69cdb85a6b5 +SIZE (rust/crates/os_info-3.10.0.crate) = 22971 +SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39 +SIZE (rust/crates/overload-0.1.1.crate) = 24439 +SHA256 (rust/crates/p256-0.13.2.crate) = c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b +SIZE (rust/crates/p256-0.13.2.crate) = 63434 +SHA256 (rust/crates/p384-0.13.1.crate) = fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6 +SIZE (rust/crates/p384-0.13.1.crate) = 193022 +SHA256 (rust/crates/p521-0.13.3.crate) = 0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2 +SIZE (rust/crates/p521-0.13.3.crate) = 138499 +SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba +SIZE (rust/crates/parking-2.2.1.crate) = 10685 +SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27 +SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860 +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/password-hash-0.5.0.crate) = 346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166 +SIZE (rust/crates/password-hash-0.5.0.crate) = 26884 +SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a +SIZE (rust/crates/paste-1.0.15.crate) = 18374 +SHA256 (rust/crates/pem-3.0.4.crate) = 8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae +SIZE (rust/crates/pem-3.0.4.crate) = 13040 +SHA256 (rust/crates/pem-rfc7468-0.7.0.crate) = 88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412 +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.15.crate) = 8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc +SIZE (rust/crates/pest-2.7.15.crate) = 127895 +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.15.crate) = e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea +SIZE (rust/crates/pest_meta-2.7.15.crate) = 42121 +SHA256 (rust/crates/pgp-0.15.0.crate) = 30249ac8a98b356b473b04bc5358c75a260aa96a295d0743ce752fe7b173f235 +SIZE (rust/crates/pgp-0.15.0.crate) = 1636971 +SHA256 (rust/crates/pin-project-1.1.10.crate) = 677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a +SIZE (rust/crates/pin-project-1.1.10.crate) = 56348 +SHA256 (rust/crates/pin-project-internal-1.1.10.crate) = 6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861 +SIZE (rust/crates/pin-project-internal-1.1.10.crate) = 29162 +SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b +SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504 +SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 +SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580 +SHA256 (rust/crates/pkarr-2.2.1.crate) = 9d2197a648cb1c6d2d062d6456a6273ee82272b7d838da75e4a9a1232dfc4699 +SIZE (rust/crates/pkarr-2.2.1.crate) = 34076 +SHA256 (rust/crates/pkcs1-0.7.5.crate) = c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f +SIZE (rust/crates/pkcs1-0.7.5.crate) = 35790 +SHA256 (rust/crates/pkcs8-0.10.2.crate) = f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7 +SIZE (rust/crates/pkcs8-0.10.2.crate) = 26360 +SHA256 (rust/crates/pkg-config-0.3.31.crate) = 953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2 +SIZE (rust/crates/pkg-config-0.3.31.crate) = 20880 +SHA256 (rust/crates/plotters-0.3.7.crate) = 5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747 +SIZE (rust/crates/plotters-0.3.7.crate) = 149031 +SHA256 (rust/crates/plotters-backend-0.3.7.crate) = df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a +SIZE (rust/crates/plotters-backend-0.3.7.crate) = 13709 +SHA256 (rust/crates/plotters-svg-0.3.7.crate) = 51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670 +SIZE (rust/crates/plotters-svg-0.3.7.crate) = 6715 +SHA256 (rust/crates/pnet_base-0.34.0.crate) = fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c +SIZE (rust/crates/pnet_base-0.34.0.crate) = 10239 +SHA256 (rust/crates/pnet_macros-0.34.0.crate) = 688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804 +SIZE (rust/crates/pnet_macros-0.34.0.crate) = 29179 +SHA256 (rust/crates/pnet_macros_support-0.34.0.crate) = eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56 +SIZE (rust/crates/pnet_macros_support-0.34.0.crate) = 10735 +SHA256 (rust/crates/pnet_packet-0.34.0.crate) = a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba +SIZE (rust/crates/pnet_packet-0.34.0.crate) = 33979 +SHA256 (rust/crates/png-0.17.13.crate) = 06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1 +SIZE (rust/crates/png-0.17.13.crate) = 103176 +SHA256 (rust/crates/poly1305-0.8.0.crate) = 8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf +SIZE (rust/crates/poly1305-0.8.0.crate) = 32633 +SHA256 (rust/crates/polyval-0.6.2.crate) = 9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25 +SIZE (rust/crates/polyval-0.6.2.crate) = 18425 +SHA256 (rust/crates/portable-atomic-1.10.0.crate) = 280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6 +SIZE (rust/crates/portable-atomic-1.10.0.crate) = 174760 +SHA256 (rust/crates/portmapper-0.3.1.crate) = 5469b29e6ce2a27bfc9382720b5f0768993afec9e53b133d8248c8b09406156a +SIZE (rust/crates/portmapper-0.3.1.crate) = 37123 +SHA256 (rust/crates/postcard-1.1.1.crate) = 170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8 +SIZE (rust/crates/postcard-1.1.1.crate) = 35639 +SHA256 (rust/crates/postcard-derive-0.1.2.crate) = 0239fa9c1d225d4b7eb69925c25c5e082307a141e470573fbbe3a817ce6a7a37 +SIZE (rust/crates/postcard-derive-0.1.2.crate) = 4650 +SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391 +SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165 +SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04 +SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478 +SHA256 (rust/crates/precis-core-0.1.9.crate) = d73e9dd26361c32e7cd13d1032bb01c4e26a23287274e8a4e2f228cf2c9ff77b +SIZE (rust/crates/precis-core-0.1.9.crate) = 455170 +SHA256 (rust/crates/precis-profiles-0.1.10.crate) = bde4bd6624c60cb0abe2bea1dbdbb9085f629a853861e64df4abb099f8076ad4 +SIZE (rust/crates/precis-profiles-0.1.10.crate) = 284559 +SHA256 (rust/crates/precis-tools-0.1.8.crate) = 016da884bc4c2c4670211641abef402d15fa2b06c6e9088ff270dac93675aee2 +SIZE (rust/crates/precis-tools-0.1.8.crate) = 18278 +SHA256 (rust/crates/pretty-hex-0.3.0.crate) = c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5 +SIZE (rust/crates/pretty-hex-0.3.0.crate) = 6677 +SHA256 (rust/crates/pretty_assertions-1.4.1.crate) = 3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d +SIZE (rust/crates/pretty_assertions-1.4.1.crate) = 78952 +SHA256 (rust/crates/primeorder-0.13.6.crate) = 353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6 +SIZE (rust/crates/primeorder-0.13.6.crate) = 21296 +SHA256 (rust/crates/proc-macro-crate-3.2.0.crate) = 8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b +SIZE (rust/crates/proc-macro-crate-3.2.0.crate) = 11164 +SHA256 (rust/crates/proc-macro-error-attr2-2.0.0.crate) = 96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5 +SIZE (rust/crates/proc-macro-error-attr2-2.0.0.crate) = 7745 +SHA256 (rust/crates/proc-macro-error2-2.0.1.crate) = 11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802 +SIZE (rust/crates/proc-macro-error2-2.0.1.crate) = 24807 +SHA256 (rust/crates/proc-macro2-1.0.93.crate) = 60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99 +SIZE (rust/crates/proc-macro2-1.0.93.crate) = 52388 +SHA256 (rust/crates/proptest-1.6.0.crate) = 14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50 +SIZE (rust/crates/proptest-1.6.0.crate) = 203276 +SHA256 (rust/crates/qr2term-0.3.3.crate) = 6867c60b38e9747a079a19614dbb5981a53f21b9a56c265f3bfdf6011a50a957 +SIZE (rust/crates/qr2term-0.3.3.crate) = 43409 +SHA256 (rust/crates/qrcode-0.14.1.crate) = d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec +SIZE (rust/crates/qrcode-0.14.1.crate) = 66224 +SHA256 (rust/crates/qrcodegen-1.8.0.crate) = 4339fc7a1021c9c1621d87f5e3505f2805c8c105420ba2f2a4df86814590c142 +SIZE (rust/crates/qrcodegen-1.8.0.crate) = 15014 +SHA256 (rust/crates/quick-error-2.0.1.crate) = a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3 +SIZE (rust/crates/quick-error-2.0.1.crate) = 14265 +SHA256 (rust/crates/quick-xml-0.37.4.crate) = a4ce8c88de324ff838700f36fb6ab86c96df0e3c4ab6ef3a9b2044465cce1369 +SIZE (rust/crates/quick-xml-0.37.4.crate) = 190389 +SHA256 (rust/crates/quinn-0.11.6.crate) = 62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef +SIZE (rust/crates/quinn-0.11.6.crate) = 78222 +SHA256 (rust/crates/quinn-proto-0.11.9.crate) = a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d +SIZE (rust/crates/quinn-proto-0.11.9.crate) = 209286 +SHA256 (rust/crates/quinn-udp-0.5.10.crate) = e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944 +SIZE (rust/crates/quinn-udp-0.5.10.crate) = 30920 +SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d +SIZE (rust/crates/quote-1.0.40.crate) = 31063 +SHA256 (rust/crates/quoted-string-parser-0.1.0.crate) = 0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9 +SIZE (rust/crates/quoted-string-parser-0.1.0.crate) = 3623 +SHA256 (rust/crates/quoted_printable-0.5.1.crate) = 640c9bd8497b02465aeef5375144c26062e0dcd5939dfcbb0f5db76cb8c17c73 +SIZE (rust/crates/quoted_printable-0.5.1.crate) = 8322 +SHA256 (rust/crates/radix_trie-0.2.1.crate) = c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd +SIZE (rust/crates/radix_trie-0.2.1.crate) = 251366 +SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 +SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand-0.9.0.crate) = 3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94 +SIZE (rust/crates/rand-0.9.0.crate) = 97798 +SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 +SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb +SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258 +SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c +SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 +SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38 +SIZE (rust/crates/rand_core-0.9.3.crate) = 24543 +SHA256 (rust/crates/rand_xorshift-0.3.0.crate) = d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f +SIZE (rust/crates/rand_xorshift-0.3.0.crate) = 9121 +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/rcgen-0.13.2.crate) = 75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2 +SIZE (rust/crates/rcgen-0.13.2.crate) = 77836 +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/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b +SIZE (rust/crates/redox_users-0.5.0.crate) = 15586 +SHA256 (rust/crates/regex-1.10.6.crate) = 4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619 +SIZE (rust/crates/regex-1.10.6.crate) = 253894 +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-lite-0.1.6.crate) = 53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a +SIZE (rust/crates/regex-lite-0.1.6.crate) = 95278 +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/reqwest-0.12.9.crate) = a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f +SIZE (rust/crates/reqwest-0.12.9.crate) = 179807 +SHA256 (rust/crates/resolv-conf-0.7.1.crate) = 48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4 +SIZE (rust/crates/resolv-conf-0.7.1.crate) = 17501 +SHA256 (rust/crates/rfc6979-0.4.0.crate) = f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2 +SIZE (rust/crates/rfc6979-0.4.0.crate) = 9140 +SHA256 (rust/crates/ring-0.17.13.crate) = 70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee +SIZE (rust/crates/ring-0.17.13.crate) = 1501917 +SHA256 (rust/crates/ring-compat-0.8.0.crate) = ccce7bae150b815f0811db41b8312fcb74bffa4cab9cee5429ee00f356dd5bd4 +SIZE (rust/crates/ring-compat-0.8.0.crate) = 180681 +SHA256 (rust/crates/ripemd-0.1.3.crate) = bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f +SIZE (rust/crates/ripemd-0.1.3.crate) = 16601 +SHA256 (rust/crates/rsa-0.9.7.crate) = 47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519 +SIZE (rust/crates/rsa-0.9.7.crate) = 80231 +SHA256 (rust/crates/rtnetlink-0.13.1.crate) = 7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0 +SIZE (rust/crates/rtnetlink-0.13.1.crate) = 42517 +SHA256 (rust/crates/rtnetlink-0.14.1.crate) = b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5 +SIZE (rust/crates/rtnetlink-0.14.1.crate) = 45416 +SHA256 (rust/crates/rusqlite-0.32.1.crate) = 7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e +SIZE (rust/crates/rusqlite-0.32.1.crate) = 155563 +SHA256 (rust/crates/rust-hsluv-0.1.4.crate) = efe2374f2385cdd8755a446f80b2a646de603c9d8539ca38734879b5c71e378b +SIZE (rust/crates/rust-hsluv-0.1.4.crate) = 1075873 +SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f +SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047 +SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d +SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154 +SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92 +SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245 +SHA256 (rust/crates/rusticata-macros-4.1.0.crate) = faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632 +SIZE (rust/crates/rusticata-macros-4.1.0.crate) = 11746 +SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154 +SIZE (rust/crates/rustix-0.38.44.crate) = 379347 +SHA256 (rust/crates/rustix-1.0.5.crate) = d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf +SIZE (rust/crates/rustix-1.0.5.crate) = 414160 +SHA256 (rust/crates/rustls-0.23.23.crate) = 47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395 +SIZE (rust/crates/rustls-0.23.23.crate) = 342561 +SHA256 (rust/crates/rustls-native-certs-0.8.1.crate) = 7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3 +SIZE (rust/crates/rustls-native-certs-0.8.1.crate) = 31129 +SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50 +SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849 +SHA256 (rust/crates/rustls-pki-types-1.11.0.crate) = 917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c +SIZE (rust/crates/rustls-pki-types-1.11.0.crate) = 63933 +SHA256 (rust/crates/rustls-platform-verifier-0.5.0.crate) = e012c45844a1790332c9386ed4ca3a06def221092eda277e6f079728f8ea99da +SIZE (rust/crates/rustls-platform-verifier-0.5.0.crate) = 56761 +SHA256 (rust/crates/rustls-platform-verifier-android-0.1.1.crate) = f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f +SIZE (rust/crates/rustls-platform-verifier-android-0.1.1.crate) = 13919 +SHA256 (rust/crates/rustls-webpki-0.102.8.crate) = 64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9 +SIZE (rust/crates/rustls-webpki-0.102.8.crate) = 204327 +SHA256 (rust/crates/rustversion-1.0.14.crate) = 7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4 +SIZE (rust/crates/rustversion-1.0.14.crate) = 17261 +SHA256 (rust/crates/rustyline-15.0.0.crate) = 2ee1e066dc922e513bda599c6ccb5f3bb2b0ea5870a579448f2622993f0a9a2f +SIZE (rust/crates/rustyline-15.0.0.crate) = 116346 +SHA256 (rust/crates/ryu-1.0.19.crate) = 6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd +SIZE (rust/crates/ryu-1.0.19.crate) = 48770 +SHA256 (rust/crates/salsa20-0.10.2.crate) = 97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213 +SIZE (rust/crates/salsa20-0.10.2.crate) = 12780 +SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 +SIZE (rust/crates/same-file-1.0.6.crate) = 10183 +SHA256 (rust/crates/sanitize-filename-0.5.0.crate) = 2ed72fbaf78e6f2d41744923916966c4fbe3d7c74e3037a8ee482f1115572603 +SIZE (rust/crates/sanitize-filename-0.5.0.crate) = 4043 +SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d +SIZE (rust/crates/schannel-0.1.27.crate) = 42772 +SHA256 (rust/crates/schemars-0.8.22.crate) = 3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615 +SIZE (rust/crates/schemars-0.8.22.crate) = 59214 +SHA256 (rust/crates/schemars_derive-0.8.22.crate) = 32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d +SIZE (rust/crates/schemars_derive-0.8.22.crate) = 19542 +SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294 +SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202 +SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 +SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 +SHA256 (rust/crates/sec1-0.7.3.crate) = d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc +SIZE (rust/crates/sec1-0.7.3.crate) = 17979 +SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02 +SIZE (rust/crates/security-framework-2.11.1.crate) = 80188 +SHA256 (rust/crates/security-framework-3.2.0.crate) = 271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316 +SIZE (rust/crates/security-framework-3.2.0.crate) = 86095 +SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32 +SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537 +SHA256 (rust/crates/self_cell-1.1.0.crate) = c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe +SIZE (rust/crates/self_cell-1.1.0.crate) = 16636 +SHA256 (rust/crates/semver-1.0.25.crate) = f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03 +SIZE (rust/crates/semver-1.0.25.crate) = 31291 +SHA256 (rust/crates/send_wrapper-0.6.0.crate) = cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73 +SIZE (rust/crates/send_wrapper-0.6.0.crate) = 10519 +SHA256 (rust/crates/sendfd-0.4.3.crate) = 604b71b8fc267e13bb3023a2c901126c8f349393666a6d98ac1ae5729b701798 +SIZE (rust/crates/sendfd-0.4.3.crate) = 11120 +SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6 +SIZE (rust/crates/serde-1.0.219.crate) = 78983 +SHA256 (rust/crates/serde-error-0.1.3.crate) = 342110fb7a5d801060c885da03bf91bfa7c7ca936deafcc64bb6706375605d47 +SIZE (rust/crates/serde-error-0.1.3.crate) = 2771 +SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 +SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 +SHA256 (rust/crates/serde_derive_internals-0.29.0.crate) = 330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3 +SIZE (rust/crates/serde_derive_internals-0.29.0.crate) = 26065 +SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 +SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 +SHA256 (rust/crates/serde_spanned-0.6.7.crate) = eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d +SIZE (rust/crates/serde_spanned-0.6.7.crate) = 9164 +SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd +SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822 +SHA256 (rust/crates/serdect-0.2.0.crate) = a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177 +SIZE (rust/crates/serdect-0.2.0.crate) = 11691 +SHA256 (rust/crates/sha-1-0.10.1.crate) = f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c +SIZE (rust/crates/sha-1-0.10.1.crate) = 12018 +SHA256 (rust/crates/sha1-0.10.6.crate) = e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba +SIZE (rust/crates/sha1-0.10.6.crate) = 13517 +SHA256 (rust/crates/sha1-checked-0.10.0.crate) = 89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423 +SIZE (rust/crates/sha1-checked-0.10.0.crate) = 783840 +SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8 +SIZE (rust/crates/sha2-0.10.8.crate) = 26357 +SHA256 (rust/crates/sha3-0.10.8.crate) = 75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60 +SIZE (rust/crates/sha3-0.10.8.crate) = 858216 +SHA256 (rust/crates/shadowsocks-1.23.1.crate) = e78db9c9912c90ea7487f49bc149b329b535806bfa12b740fbade73f573a3d9f +SIZE (rust/crates/shadowsocks-1.23.1.crate) = 100151 +SHA256 (rust/crates/shadowsocks-crypto-0.6.1.crate) = bda401a0ad32c82981d8862f2795713618de9bbf9768f03c17d9d145c6d805df +SIZE (rust/crates/shadowsocks-crypto-0.6.1.crate) = 32665 +SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6 +SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227 +SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 +SIZE (rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (rust/crates/signal-hook-registry-1.4.2.crate) = a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1 +SIZE (rust/crates/signal-hook-registry-1.4.2.crate) = 18064 +SHA256 (rust/crates/signature-2.2.0.crate) = 77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de +SIZE (rust/crates/signature-2.2.0.crate) = 15531 +SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe +SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086 +SHA256 (rust/crates/simple-dns-0.6.2.crate) = 01607fe2e61894468c6dc0b26103abb073fb08b79a3d9e4b6d76a1a341549958 +SIZE (rust/crates/simple-dns-0.6.2.crate) = 38285 +SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67 +SIZE (rust/crates/slab-0.4.9.crate) = 17108 +SHA256 (rust/crates/smallvec-1.14.0.crate) = 7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd +SIZE (rust/crates/smallvec-1.14.0.crate) = 35561 +SHA256 (rust/crates/smawk-0.3.2.crate) = b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c +SIZE (rust/crates/smawk-0.3.2.crate) = 13831 +SHA256 (rust/crates/socket2-0.5.9.crate) = 4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef +SIZE (rust/crates/socket2-0.5.9.crate) = 57432 +SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67 +SIZE (rust/crates/spin-0.9.8.crate) = 38958 +SHA256 (rust/crates/spin-0.10.0.crate) = d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591 +SIZE (rust/crates/spin-0.10.0.crate) = 39654 +SHA256 (rust/crates/spki-0.7.3.crate) = d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d +SIZE (rust/crates/spki-0.7.3.crate) = 16409 +SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3 +SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054 +SHA256 (rust/crates/stop-token-0.7.0.crate) = af91f480ee899ab2d9f8435bfdfc14d08a5754bd9d3fef1f1a1c23336aad6c8b +SIZE (rust/crates/stop-token-0.7.0.crate) = 6883 +SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f +SIZE (rust/crates/strsim-0.11.1.crate) = 14266 +SHA256 (rust/crates/struct_iterable-0.1.1.crate) = 849a064c6470a650b72e41fa6c057879b68f804d113af92900f27574828e7712 +SIZE (rust/crates/struct_iterable-0.1.1.crate) = 3233 +SHA256 (rust/crates/struct_iterable_derive-0.1.0.crate) = 8bb939ce88a43ea4e9d012f2f6b4cc789deb2db9d47bad697952a85d6978662c +SIZE (rust/crates/struct_iterable_derive-0.1.0.crate) = 2045 +SHA256 (rust/crates/struct_iterable_internal-0.1.1.crate) = e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a +SIZE (rust/crates/struct_iterable_internal-0.1.1.crate) = 1625 +SHA256 (rust/crates/strum-0.26.2.crate) = 5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29 +SIZE (rust/crates/strum-0.26.2.crate) = 7189 +SHA256 (rust/crates/strum-0.27.1.crate) = f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32 +SIZE (rust/crates/strum-0.27.1.crate) = 7467 +SHA256 (rust/crates/strum_macros-0.26.2.crate) = c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946 +SIZE (rust/crates/strum_macros-0.26.2.crate) = 27056 +SHA256 (rust/crates/strum_macros-0.27.1.crate) = c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8 +SIZE (rust/crates/strum_macros-0.27.1.crate) = 29670 +SHA256 (rust/crates/stun-rs-0.1.9.crate) = b79cc624c9a747353810310af44f1f03f71eb4561284a894acc0396e6d0de76e +SIZE (rust/crates/stun-rs-0.1.9.crate) = 69481 +SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292 +SIZE (rust/crates/subtle-2.6.1.crate) = 14562 +SHA256 (rust/crates/surge-ping-0.8.1.crate) = efbf95ce4c7c5b311d2ce3f088af2b93edef0f09727fa50fbe03c7a979afce77 +SIZE (rust/crates/surge-ping-0.8.1.crate) = 21311 +SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 +SIZE (rust/crates/syn-1.0.109.crate) = 237611 +SHA256 (rust/crates/syn-2.0.100.crate) = b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0 +SIZE (rust/crates/syn-2.0.100.crate) = 297947 +SHA256 (rust/crates/sync_wrapper-1.0.0.crate) = 384595c11a4e2969895cad5a8c4029115f5ab956a9e5ef4de79d11a426e5f20c +SIZE (rust/crates/sync_wrapper-1.0.0.crate) = 6912 +SHA256 (rust/crates/synstructure-0.13.1.crate) = c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971 +SIZE (rust/crates/synstructure-0.13.1.crate) = 18327 +SHA256 (rust/crates/sysinfo-0.26.9.crate) = 5c18a6156d1f27a9592ee18c1a846ca8dd5c258b7179fc193ae87c74ebb666f5 +SIZE (rust/crates/sysinfo-0.26.9.crate) = 137194 +SHA256 (rust/crates/system-configuration-0.6.1.crate) = 3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b +SIZE (rust/crates/system-configuration-0.6.1.crate) = 17935 +SHA256 (rust/crates/system-configuration-sys-0.6.0.crate) = 8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4 +SIZE (rust/crates/system-configuration-sys-0.6.0.crate) = 11090 +SHA256 (rust/crates/tagger-4.3.5.crate) = 094c9f64d6de9a8506b1e49b63a29333b37ed9e821ee04be694d431b3264c3c5 +SIZE (rust/crates/tagger-4.3.5.crate) = 5054 +SHA256 (rust/crates/tagptr-0.2.0.crate) = 7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417 +SIZE (rust/crates/tagptr-0.2.0.crate) = 13320 +SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf +SIZE (rust/crates/tempfile-3.19.1.crate) = 39634 +SHA256 (rust/crates/testdir-0.9.3.crate) = c9ffa013be124f7e8e648876190de818e3a87088ed97ccd414a398b403aec8c8 +SIZE (rust/crates/testdir-0.9.3.crate) = 18881 +SHA256 (rust/crates/textwrap-0.16.2.crate) = c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057 +SIZE (rust/crates/textwrap-0.16.2.crate) = 57077 +SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 +SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 +SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 +SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 +SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c +SIZE (rust/crates/thread_local-1.1.8.crate) = 13962 +SHA256 (rust/crates/time-0.3.37.crate) = 35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21 +SIZE (rust/crates/time-0.3.37.crate) = 123257 +SHA256 (rust/crates/time-core-0.1.2.crate) = ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3 +SIZE (rust/crates/time-core-0.1.2.crate) = 7191 +SHA256 (rust/crates/time-macros-0.2.19.crate) = 2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de +SIZE (rust/crates/time-macros-0.2.19.crate) = 24268 +SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f +SIZE (rust/crates/tinystr-0.7.6.crate) = 16971 +SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc +SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490 +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.44.2.crate) = e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48 +SIZE (rust/crates/tokio-1.44.2.crate) = 841618 +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.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 +SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 +SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b +SIZE (rust/crates/tokio-rustls-0.26.2.crate) = 31655 +SHA256 (rust/crates/tokio-stream-0.1.17.crate) = eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047 +SIZE (rust/crates/tokio-stream-0.1.17.crate) = 38477 +SHA256 (rust/crates/tokio-tar-0.3.1.crate) = 9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75 +SIZE (rust/crates/tokio-tar-0.3.1.crate) = 49485 +SHA256 (rust/crates/tokio-tfo-0.3.1.crate) = 3fb4382c6371e29365853d2b71e915d5398df46312a2158097d8bb3f54d0f1b4 +SIZE (rust/crates/tokio-tfo-0.3.1.crate) = 17188 +SHA256 (rust/crates/tokio-tungstenite-0.24.0.crate) = edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9 +SIZE (rust/crates/tokio-tungstenite-0.24.0.crate) = 28904 +SHA256 (rust/crates/tokio-tungstenite-wasm-0.4.0.crate) = e21a5c399399c3db9f08d8297ac12b500e86bca82e930253fdc62eaf9c0de6ae +SIZE (rust/crates/tokio-tungstenite-wasm-0.4.0.crate) = 22252 +SHA256 (rust/crates/tokio-util-0.7.14.crate) = 6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034 +SIZE (rust/crates/tokio-util-0.7.14.crate) = 118861 +SHA256 (rust/crates/toml-0.8.19.crate) = a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e +SIZE (rust/crates/toml-0.8.19.crate) = 50974 +SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41 +SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028 +SHA256 (rust/crates/toml_edit-0.22.20.crate) = 583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d +SIZE (rust/crates/toml_edit-0.22.20.crate) = 106726 +SHA256 (rust/crates/tower-service-0.3.3.crate) = 8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3 +SIZE (rust/crates/tower-service-0.3.3.crate) = 6950 +SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0 +SIZE (rust/crates/tracing-0.1.41.crate) = 82448 +SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d +SIZE (rust/crates/tracing-attributes-0.1.28.crate) = 33280 +SHA256 (rust/crates/tracing-core-0.1.33.crate) = e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c +SIZE (rust/crates/tracing-core-0.1.33.crate) = 63434 +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.19.crate) = e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008 +SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345 +SHA256 (rust/crates/trait-variant-0.1.2.crate) = 70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7 +SIZE (rust/crates/trait-variant-0.1.2.crate) = 6008 +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.24.0.crate) = 18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a +SIZE (rust/crates/tungstenite-0.24.0.crate) = 61527 +SHA256 (rust/crates/twofish-0.7.1.crate) = a78e83a30223c757c3947cd144a31014ff04298d8719ae10d03c31c0448c8013 +SIZE (rust/crates/twofish-0.7.1.crate) = 12156 +SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f +SIZE (rust/crates/typenum-1.18.0.crate) = 74871 +SHA256 (rust/crates/typescript-type-def-0.5.13.crate) = 233ee5e596f41dbaf8c3e48a60b128eadf89395ee9e45fcedc3281c077c5a014 +SIZE (rust/crates/typescript-type-def-0.5.13.crate) = 20176 +SHA256 (rust/crates/typescript-type-def-derive-0.5.13.crate) = 912e6d6fed61bac90cd957093b11b5330d756ad4e7b8f309f71ae04b546a8513 +SIZE (rust/crates/typescript-type-def-derive-0.5.13.crate) = 7281 +SHA256 (rust/crates/ucd-parse-0.1.13.crate) = c06ff81122fcbf4df4c1660b15f7e3336058e7aec14437c9f85c6b31a0f279b9 +SIZE (rust/crates/ucd-parse-0.1.13.crate) = 29550 +SHA256 (rust/crates/ucd-trie-0.1.6.crate) = ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9 +SIZE (rust/crates/ucd-trie-0.1.6.crate) = 45790 +SHA256 (rust/crates/unarray-0.1.4.crate) = eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94 +SIZE (rust/crates/unarray-0.1.4.crate) = 12895 +SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b +SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168 +SHA256 (rust/crates/unicode-linebreak-0.1.5.crate) = 3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f +SIZE (rust/crates/unicode-linebreak-0.1.5.crate) = 15324 +SHA256 (rust/crates/unicode-normalization-0.1.24.crate) = 5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956 +SIZE (rust/crates/unicode-normalization-0.1.24.crate) = 126536 +SHA256 (rust/crates/unicode-segmentation-1.11.0.crate) = d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202 +SIZE (rust/crates/unicode-segmentation-1.11.0.crate) = 102740 +SHA256 (rust/crates/unicode-width-0.2.0.crate) = 1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd +SIZE (rust/crates/unicode-width-0.2.0.crate) = 271509 +SHA256 (rust/crates/unicode-xid-0.2.4.crate) = f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c +SIZE (rust/crates/unicode-xid-0.2.4.crate) = 15352 +SHA256 (rust/crates/universal-hash-0.5.1.crate) = fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea +SIZE (rust/crates/universal-hash-0.5.1.crate) = 9146 +SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1 +SIZE (rust/crates/untrusted-0.9.0.crate) = 14447 +SHA256 (rust/crates/ureq-2.10.0.crate) = 72139d247e5f97a3eff96229a7ae85ead5328a39efe76f8bf5a06313d505b6ea +SIZE (rust/crates/ureq-2.10.0.crate) = 112894 +SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60 +SIZE (rust/crates/url-2.5.4.crate) = 81097 +SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9 +SIZE (rust/crates/utf-8-0.7.6.crate) = 10422 +SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246 +SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736 +SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be +SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437 +SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 +SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499 +SHA256 (rust/crates/uuid-1.16.0.crate) = 458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9 +SIZE (rust/crates/uuid-1.16.0.crate) = 58549 +SHA256 (rust/crates/valuable-0.1.1.crate) = ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65 +SIZE (rust/crates/valuable-0.1.1.crate) = 28679 +SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426 +SIZE (rust/crates/vcpkg-0.2.15.crate) = 228735 +SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a +SIZE (rust/crates/version_check-0.9.5.crate) = 15554 +SHA256 (rust/crates/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/wasi-0.13.3+wasi-0.2.2.crate) = 26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2 +SIZE (rust/crates/wasi-0.13.3+wasi-0.2.2.crate) = 136754 +SHA256 (rust/crates/wasite-0.1.0.crate) = b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b +SIZE (rust/crates/wasite-0.1.0.crate) = 2346 +SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5 +SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288 +SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6 +SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111 +SHA256 (rust/crates/wasm-bindgen-futures-0.4.42.crate) = 76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0 +SIZE (rust/crates/wasm-bindgen-futures-0.4.42.crate) = 15380 +SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407 +SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d +SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570 +SHA256 (rust/crates/wasm-streams-0.4.1.crate) = 4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd +SIZE (rust/crates/wasm-streams-0.4.1.crate) = 36513 +SHA256 (rust/crates/web-sys-0.3.69.crate) = 77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef +SIZE (rust/crates/web-sys-0.3.69.crate) = 728877 +SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb +SIZE (rust/crates/web-time-1.1.0.crate) = 18026 +SHA256 (rust/crates/webpki-root-certs-0.26.8.crate) = 09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4 +SIZE (rust/crates/webpki-root-certs-0.26.8.crate) = 177483 +SHA256 (rust/crates/webpki-roots-0.26.8.crate) = 2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9 +SIZE (rust/crates/webpki-roots-0.26.8.crate) = 257981 +SHA256 (rust/crates/weezl-0.1.8.crate) = 53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082 +SIZE (rust/crates/weezl-0.1.8.crate) = 42175 +SHA256 (rust/crates/whoami-1.5.0.crate) = 0fec781d48b41f8163426ed18e8fc2864c12937df9ce54c88ede7bd47270893e +SIZE (rust/crates/whoami-1.5.0.crate) = 24008 +SHA256 (rust/crates/widestring-1.0.2.crate) = 653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8 +SIZE (rust/crates/widestring-1.0.2.crate) = 79706 +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-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-0.52.0.crate) = e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be +SIZE (rust/crates/windows-0.52.0.crate) = 11843715 +SHA256 (rust/crates/windows-0.58.0.crate) = dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6 +SIZE (rust/crates/windows-0.58.0.crate) = 9744521 +SHA256 (rust/crates/windows-0.59.0.crate) = 7f919aee0a93304be7f62e8e5027811bbba96bcb1de84d6618be56e43f8a32a1 +SIZE (rust/crates/windows-0.59.0.crate) = 9429988 +SHA256 (rust/crates/windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9 +SIZE (rust/crates/windows-core-0.52.0.crate) = 42154 +SHA256 (rust/crates/windows-core-0.58.0.crate) = 6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99 +SIZE (rust/crates/windows-core-0.58.0.crate) = 41022 +SHA256 (rust/crates/windows-core-0.59.0.crate) = 810ce18ed2112484b0d4e15d022e5f598113e220c53e373fb31e67e21670c1ce +SIZE (rust/crates/windows-core-0.59.0.crate) = 37073 +SHA256 (rust/crates/windows-implement-0.58.0.crate) = 2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b +SIZE (rust/crates/windows-implement-0.58.0.crate) = 10491 +SHA256 (rust/crates/windows-implement-0.59.0.crate) = 83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1 +SIZE (rust/crates/windows-implement-0.59.0.crate) = 11373 +SHA256 (rust/crates/windows-interface-0.58.0.crate) = 053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515 +SIZE (rust/crates/windows-interface-0.58.0.crate) = 11246 +SHA256 (rust/crates/windows-interface-0.59.0.crate) = cb26fd936d991781ea39e87c3a27285081e3c0da5ca0fcbc02d368cc6f52ff01 +SIZE (rust/crates/windows-interface-0.59.0.crate) = 11751 +SHA256 (rust/crates/windows-link-0.1.0.crate) = 6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3 +SIZE (rust/crates/windows-link-0.1.0.crate) = 6153 +SHA256 (rust/crates/windows-registry-0.2.0.crate) = e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0 +SIZE (rust/crates/windows-registry-0.2.0.crate) = 10470 +SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e +SIZE (rust/crates/windows-result-0.2.0.crate) = 12756 +SHA256 (rust/crates/windows-result-0.3.0.crate) = d08106ce80268c4067c0571ca55a9b4e9516518eaa1a1fe9b37ca403ae1d1a34 +SIZE (rust/crates/windows-result-0.3.0.crate) = 13536 +SHA256 (rust/crates/windows-strings-0.1.0.crate) = 4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10 +SIZE (rust/crates/windows-strings-0.1.0.crate) = 13832 +SHA256 (rust/crates/windows-strings-0.3.0.crate) = b888f919960b42ea4e11c2f408fadb55f78a9f236d5eef084103c8ce52893491 +SIZE (rust/crates/windows-strings-0.3.0.crate) = 14464 +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-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d +SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877 +SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b +SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 +SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071 +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.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 +SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows-targets-0.53.0.crate) = b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b +SIZE (rust/crates/windows-targets-0.53.0.crate) = 7020 +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.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 +SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764 +SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443 +SHA256 (rust/crates/windows_aarch64_msvc-0.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.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 +SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c +SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446 +SHA256 (rust/crates/windows_i686_gnu-0.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.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b +SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3 +SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973 +SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 +SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11 +SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056 +SHA256 (rust/crates/windows_i686_msvc-0.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.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 +SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d +SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450 +SHA256 (rust/crates/windows_x86_64_gnu-0.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.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 +SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba +SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.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.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d +SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57 +SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434 +SHA256 (rust/crates/windows_x86_64_msvc-0.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.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec +SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 +SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486 +SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400 +SHA256 (rust/crates/winnow-0.6.26.crate) = 1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28 +SIZE (rust/crates/winnow-0.6.26.crate) = 167349 +SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1 +SIZE (rust/crates/winreg-0.50.0.crate) = 29703 +SHA256 (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c +SIZE (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3357 +SHA256 (rust/crates/wmi-0.14.5.crate) = 7787dacdd8e71cbc104658aade4009300777f9b5fda6a75f19145fedb8a18e71 +SIZE (rust/crates/wmi-0.14.5.crate) = 59683 +SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 +SIZE (rust/crates/write16-1.0.0.crate) = 7218 +SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 +SIZE (rust/crates/writeable-0.5.5.crate) = 22354 +SHA256 (rust/crates/x25519-dalek-2.0.1.crate) = c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277 +SIZE (rust/crates/x25519-dalek-2.0.1.crate) = 87820 +SHA256 (rust/crates/x509-parser-0.16.0.crate) = fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69 +SIZE (rust/crates/x509-parser-0.16.0.crate) = 92925 +SHA256 (rust/crates/xattr-1.4.0.crate) = e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909 +SIZE (rust/crates/xattr-1.4.0.crate) = 12995 +SHA256 (rust/crates/xml-rs-0.8.25.crate) = c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4 +SIZE (rust/crates/xml-rs-0.8.25.crate) = 54947 +SHA256 (rust/crates/xmltree-0.10.3.crate) = d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb +SIZE (rust/crates/xmltree-0.10.3.crate) = 9219 +SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049 +SIZE (rust/crates/yansi-1.0.1.crate) = 75497 +SHA256 (rust/crates/yasna-0.5.2.crate) = e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd +SIZE (rust/crates/yasna-0.5.2.crate) = 34859 +SHA256 (rust/crates/yerpc-0.6.4.crate) = 1dc24983fbe850227bfc1de89bf8cbfb3e2463afc322e0de2f155c4c23d06445 +SIZE (rust/crates/yerpc-0.6.4.crate) = 22067 +SHA256 (rust/crates/yerpc_derive-0.6.3.crate) = 4d8560d021437420316370db865e44c000bf86380b47cf05e49be9d652042bf5 +SIZE (rust/crates/yerpc_derive-0.6.3.crate) = 8197 +SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40 +SIZE (rust/crates/yoke-0.7.5.crate) = 29673 +SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154 +SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525 +SHA256 (rust/crates/z32-1.3.0.crate) = 2164e798d9e3d84ee2c91139ace54638059a3b23e361f5c11781c2c6459bde0f +SIZE (rust/crates/z32-1.3.0.crate) = 3996 +SHA256 (rust/crates/zerocopy-0.7.32.crate) = 74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be +SIZE (rust/crates/zerocopy-0.7.32.crate) = 151096 +SHA256 (rust/crates/zerocopy-0.8.23.crate) = fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6 +SIZE (rust/crates/zerocopy-0.8.23.crate) = 239977 +SHA256 (rust/crates/zerocopy-derive-0.7.32.crate) = 9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6 +SIZE (rust/crates/zerocopy-derive-0.7.32.crate) = 37623 +SHA256 (rust/crates/zerocopy-derive-0.8.23.crate) = 6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154 +SIZE (rust/crates/zerocopy-derive-0.8.23.crate) = 83885 +SHA256 (rust/crates/zerofrom-0.1.5.crate) = cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e +SIZE (rust/crates/zerofrom-0.1.5.crate) = 5091 +SHA256 (rust/crates/zerofrom-derive-0.1.5.crate) = 595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808 +SIZE (rust/crates/zerofrom-derive-0.1.5.crate) = 8285 +SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde +SIZE (rust/crates/zeroize-1.8.1.crate) = 20029 +SHA256 (rust/crates/zeroize_derive-1.4.2.crate) = ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69 +SIZE (rust/crates/zeroize_derive-1.4.2.crate) = 11141 +SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079 +SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 +SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 +SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 +SHA256 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a +SIZE (rust/crates/zune-core-0.4.12.crate) = 17355 +SHA256 (rust/crates/zune-jpeg-0.4.14.crate) = 99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028 +SIZE (rust/crates/zune-jpeg-0.4.14.crate) = 63388 +SHA256 (chatmail-core-v1.159.3_GH0.tar.gz) = 260e38f439b245af9b6698181cc1926d7e6bbfe8e5b6daddabfdf78f63915267 +SIZE (chatmail-core-v1.159.3_GH0.tar.gz) = 3235834 diff --git a/net/deltachat-rpc-server/files/patch-Cargo.lock b/net/deltachat-rpc-server/files/patch-Cargo.lock new file mode 100644 index 000000000000..a31abbe2e7df --- /dev/null +++ b/net/deltachat-rpc-server/files/patch-Cargo.lock @@ -0,0 +1,142 @@ +--- Cargo.lock.orig 2025-05-06 23:38:45 UTC ++++ Cargo.lock +@@ -1653,9 +1653,9 @@ name = "dynosaur" + + [[package]] + name = "dynosaur" +-version = "0.1.3" ++version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "b1b7ff6b5c4d1df9f75c6bcce5cebfa480a448d298b0c83a07b3f5bb318ad10f" ++checksum = "277b2cb52d2df4acece06bb16bc0bb0a006970c7bf504eac2d310927a6f65890" + dependencies = [ + "dynosaur_derive", + "trait-variant", +@@ -1663,9 +1663,9 @@ name = "dynosaur_derive" + + [[package]] + name = "dynosaur_derive" +-version = "0.1.3" ++version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a600ac649c596084163b9bcde422e9973a321dd190b9d8b15dde23986e53f425" ++checksum = "7a4102713839a8c01c77c165bc38ef2e83948f6397fa1e1dcfacec0f07b149d3" + dependencies = [ + "proc-macro2", + "quote", +@@ -1995,7 +1995,7 @@ dependencies = [ + "futures-core", + "futures-sink", + "nanorand", +- "spin", ++ "spin 0.9.8", + ] + + [[package]] +@@ -3229,7 +3229,7 @@ dependencies = [ + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + dependencies = [ +- "spin", ++ "spin 0.9.8", + ] + + [[package]] +@@ -3261,7 +3261,6 @@ dependencies = [ + checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" + dependencies = [ + "cc", +- "openssl-sys", + "pkg-config", + "vcpkg", + ] +@@ -3893,15 +3892,6 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00 + checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + + [[package]] +-name = "openssl-src" +-version = "300.4.2+3.4.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2" +-dependencies = [ +- "cc", +-] +- +-[[package]] + name = "openssl-sys" + version = "0.9.107" + source = "registry+https://github.com/rust-lang/crates.io-index" +@@ -3909,7 +3899,6 @@ dependencies = [ + dependencies = [ + "cc", + "libc", +- "openssl-src", + "pkg-config", + "vcpkg", + ] +@@ -5491,9 +5480,9 @@ name = "shadowsocks" + + [[package]] + name = "shadowsocks" +-version = "1.22.0" ++version = "1.23.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "1678a9acd37add020f89bfe05d45b9b8a6e8ad5d09f54ac2af3e0dcf0557b481" ++checksum = "e78db9c9912c90ea7487f49bc149b329b535806bfa12b740fbade73f573a3d9f" + dependencies = [ + "aes", + "base64", +@@ -5509,14 +5498,14 @@ dependencies = [ + "once_cell", + "percent-encoding", + "pin-project", +- "rand 0.8.5", ++ "rand 0.9.0", + "sendfd", + "serde", + "serde_json", + "serde_urlencoded", + "shadowsocks-crypto", + "socket2", +- "spin", ++ "spin 0.10.0", + "thiserror 2.0.12", + "tokio", + "tokio-tfo", +@@ -5527,9 +5516,9 @@ name = "shadowsocks-crypto" + + [[package]] + name = "shadowsocks-crypto" +-version = "0.5.8" ++version = "0.6.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "bc77ecb3a97509d22751b76665894fcffad2d10df8758f4e3f20c92ccde6bf4f" ++checksum = "bda401a0ad32c82981d8862f2795713618de9bbf9768f03c17d9d145c6d805df" + dependencies = [ + "aes", + "aes-gcm", +@@ -5539,7 +5528,7 @@ dependencies = [ + "chacha20poly1305", + "hkdf", + "md-5", +- "rand 0.8.5", ++ "rand 0.9.0", + "ring-compat", + "sha1", + ] +@@ -5629,6 +5618,15 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98 + version = "0.9.8" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" ++dependencies = [ ++ "lock_api", ++] ++ ++[[package]] ++name = "spin" ++version = "0.10.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" + dependencies = [ + "lock_api", + ] diff --git a/net/deltachat-rpc-server/files/patch-Cargo.toml b/net/deltachat-rpc-server/files/patch-Cargo.toml new file mode 100644 index 000000000000..c9a8c5af7b23 --- /dev/null +++ b/net/deltachat-rpc-server/files/patch-Cargo.toml @@ -0,0 +1,20 @@ +--- Cargo.toml.orig 2025-04-24 13:44:06 UTC ++++ Cargo.toml +@@ -91,7 +91,7 @@ sha2 = "0.10" + serde = { workspace = true, features = ["derive"] } + sha-1 = "0.10" + sha2 = "0.10" +-shadowsocks = { version = "1.22.0", default-features = false, features = ["aead-cipher", "aead-cipher-2022"] } ++shadowsocks = { version = "1.23.1", default-features = false, features = ["aead-cipher", "aead-cipher-2022"] } + smallvec = "1.14.0" + strum = "0.27" + strum_macros = "0.27" +@@ -201,7 +201,7 @@ vendored = [ + default = ["vendored"] + internals = [] + vendored = [ +- "rusqlite/bundled-sqlcipher-vendored-openssl" ++ "rusqlite/bundled-sqlcipher" + ] + + [lints.rust] diff --git a/net/deltachat-rpc-server/pkg-descr b/net/deltachat-rpc-server/pkg-descr new file mode 100644 index 000000000000..5145f109426c --- /dev/null +++ b/net/deltachat-rpc-server/pkg-descr @@ -0,0 +1,4 @@ +deltachat-rpc-server provides the core functionality of DeltaChat as a +JSON-RPC service that can be interacted with using stdio. This +service is useful for building custom bots or integrations for the +DeltaChat platform. diff --git a/net/dumbpipe/Makefile b/net/dumbpipe/Makefile index 80bc58013d11..94ae37689993 100644 --- a/net/dumbpipe/Makefile +++ b/net/dumbpipe/Makefile @@ -1,6 +1,6 @@ PORTNAME= dumbpipe DISTVERSIONPREFIX= v -DISTVERSION= 0.26.0 +DISTVERSION= 0.27.0 CATEGORIES= net MAINTAINER= feld@FreeBSD.org diff --git a/net/dumbpipe/Makefile.crates b/net/dumbpipe/Makefile.crates index 5f3da0239d55..d17b17479b54 100644 --- a/net/dumbpipe/Makefile.crates +++ b/net/dumbpipe/Makefile.crates @@ -1,3 +1,9 @@ +===> License MIT accepted by the user +===> dumbpipe-0.27.0 depends on file: /usr/local/sbin/pkg - found +===> Fetching all distfiles required by dumbpipe-0.27.0 for building +===> Extracting for dumbpipe-0.27.0 +=> SHA256 Checksum OK for n0-computer-dumbpipe-v0.27.0_GH0.tar.gz. +===> Moving crates to /usr/local/poudriere/ports/default/net/dumbpipe/work/dumbpipe-0.27.0/cargo-crates CARGO_CRATES= addr2line-0.24.2 \ adler2-2.0.0 \ aead-0.5.2 \ @@ -14,14 +20,16 @@ CARGO_CRATES= addr2line-0.24.2 \ asn1-rs-0.6.2 \ asn1-rs-derive-0.5.1 \ asn1-rs-impl-0.2.0 \ - async-recursion-1.1.1 \ + async-compat-0.2.4 \ async-trait-0.1.86 \ + async_io_stream-0.3.3 \ atomic-waker-1.1.2 \ attohttpc-0.24.1 \ autocfg-1.4.0 \ backon-1.4.0 \ backtrace-0.3.74 \ base16ct-0.2.0 \ + base32-0.5.1 \ base64-0.22.1 \ base64ct-1.6.0 \ bitflags-1.3.2 \ @@ -54,6 +62,7 @@ CARGO_CRATES= addr2line-0.24.2 \ cpufeatures-0.2.17 \ crc-3.2.1 \ crc-catalog-2.4.0 \ + critical-section-1.2.0 \ crossbeam-channel-0.5.14 \ crossbeam-epoch-0.9.18 \ crossbeam-utils-0.8.21 \ @@ -75,6 +84,7 @@ CARGO_CRATES= addr2line-0.24.2 \ dlopen2-0.5.0 \ document-features-0.2.10 \ duct-0.13.7 \ + dyn-clone-1.0.19 \ ed25519-2.2.3 \ ed25519-dalek-2.1.1 \ embedded-io-0.4.0 \ @@ -83,17 +93,14 @@ CARGO_CRATES= addr2line-0.24.2 \ enumflags2-0.7.11 \ enumflags2_derive-0.7.11 \ equivalent-1.0.2 \ - erased-serde-0.3.31 \ - erased_set-0.8.0 \ fallible-iterator-0.3.0 \ fastrand-2.3.0 \ fiat-crypto-0.2.9 \ - flume-0.11.1 \ fnv-1.0.7 \ foldhash-0.1.4 \ form_urlencoded-1.2.1 \ futures-0.3.31 \ - futures-buffered-0.2.9 \ + futures-buffered-0.2.11 \ futures-channel-0.3.31 \ futures-core-0.3.31 \ futures-executor-0.3.31 \ @@ -107,17 +114,16 @@ CARGO_CRATES= addr2line-0.24.2 \ generator-0.8.4 \ generic-array-0.14.7 \ getrandom-0.2.15 \ - getrandom-0.3.1 \ + getrandom-0.3.3 \ gimli-0.31.1 \ glob-0.3.2 \ gloo-timers-0.3.0 \ h2-0.4.7 \ - hashbrown-0.14.5 \ hashbrown-0.15.2 \ heck-0.5.0 \ hex-0.4.3 \ - hickory-proto-0.25.0-alpha.5 \ - hickory-resolver-0.25.0-alpha.5 \ + hickory-proto-0.25.2 \ + hickory-resolver-0.25.2 \ hmac-0.12.1 \ hmac-sha1-0.2.2 \ hmac-sha256-1.1.8 \ @@ -131,7 +137,7 @@ CARGO_CRATES= addr2line-0.24.2 \ httpdate-1.0.3 \ hyper-1.6.0 \ hyper-rustls-0.27.5 \ - hyper-util-0.1.10 \ + hyper-util-0.1.11 \ iana-time-zone-0.1.61 \ iana-time-zone-haiku-0.1.2 \ icu_collections-1.5.0 \ @@ -146,27 +152,27 @@ CARGO_CRATES= addr2line-0.24.2 \ icu_provider_macros-1.5.0 \ idna-1.0.3 \ idna_adapter-1.2.0 \ - igd-next-0.15.1 \ + igd-next-0.16.1 \ indexmap-2.7.1 \ inout-0.1.3 \ instant-0.1.13 \ ipconfig-0.3.2 \ ipnet-2.11.0 \ - iroh-0.34.0 \ - iroh-base-0.34.0 \ - iroh-metrics-0.32.0 \ - iroh-net-report-0.34.0 \ + iroh-0.35.0 \ + iroh-base-0.35.0 \ + iroh-metrics-0.34.0 \ + iroh-metrics-derive-0.2.0 \ iroh-quinn-0.13.0 \ iroh-quinn-proto-0.13.0 \ iroh-quinn-udp-0.5.7 \ - iroh-relay-0.34.0 \ + iroh-relay-0.35.0 \ is_terminal_polyfill-1.70.1 \ itoa-1.0.14 \ jni-0.21.1 \ jni-sys-0.3.0 \ js-sys-0.3.77 \ lazy_static-1.5.0 \ - libc-0.2.169 \ + libc-0.2.172 \ litemap-0.7.4 \ litrs-0.4.1 \ lock_api-0.4.12 \ @@ -174,6 +180,7 @@ CARGO_CRATES= addr2line-0.24.2 \ loom-0.5.6 \ loom-0.7.2 \ lru-0.12.5 \ + lru-0.13.0 \ match_cfg-0.1.0 \ matchers-0.1.0 \ md5-0.7.0 \ @@ -183,22 +190,20 @@ CARGO_CRATES= addr2line-0.24.2 \ miniz_oxide-0.8.4 \ mio-1.0.3 \ moka-0.12.10 \ - n0-future-0.1.2 \ - nanorand-0.7.0 \ + n0-future-0.1.3 \ + nested_enum_utils-0.2.2 \ netdev-0.31.0 \ netlink-packet-core-0.7.0 \ netlink-packet-route-0.17.1 \ - netlink-packet-route-0.19.0 \ + netlink-packet-route-0.23.0 \ netlink-packet-utils-0.5.2 \ netlink-proto-0.11.5 \ netlink-sys-0.8.7 \ - netwatch-0.3.0 \ - netwatch-0.4.0 \ - nix-0.26.4 \ - nix-0.27.1 \ + netwatch-0.5.0 \ nix-0.29.0 \ no-std-net-0.6.0 \ nom-7.1.3 \ + ntimestamp-1.0.0 \ nu-ansi-term-0.46.0 \ num-bigint-0.4.6 \ num-conv-0.1.0 \ @@ -224,11 +229,12 @@ CARGO_CRATES= addr2line-0.24.2 \ pest_derive-2.7.15 \ pest_generator-2.7.15 \ pest_meta-2.7.15 \ + pharos-0.5.3 \ pin-project-1.1.9 \ pin-project-internal-1.1.9 \ pin-project-lite-0.2.16 \ pin-utils-0.1.0 \ - pkarr-2.3.1 \ + pkarr-3.7.1 \ pkcs8-0.10.2 \ pnet_base-0.34.0 \ pnet_macros-0.34.0 \ @@ -236,14 +242,14 @@ CARGO_CRATES= addr2line-0.24.2 \ pnet_packet-0.34.0 \ poly1305-0.8.0 \ portable-atomic-1.10.0 \ - portmapper-0.4.0 \ + portmapper-0.5.0 \ postcard-1.1.1 \ postcard-derive-0.1.2 \ powerfmt-0.2.0 \ ppv-lite86-0.2.20 \ - precis-core-0.1.10 \ - precis-profiles-0.1.11 \ - precis-tools-0.1.8 \ + precis-core-0.1.11 \ + precis-profiles-0.1.12 \ + precis-tools-0.1.9 \ proc-macro-crate-3.2.0 \ proc-macro2-1.0.93 \ quick-error-1.2.3 \ @@ -252,6 +258,7 @@ CARGO_CRATES= addr2line-0.24.2 \ quinn-udp-0.5.10 \ quote-1.0.38 \ quoted-string-parser-0.1.0 \ + r-efi-5.2.0 \ rand-0.8.5 \ rand-0.9.0 \ rand_chacha-0.3.1 \ @@ -266,11 +273,9 @@ CARGO_CRATES= addr2line-0.24.2 \ regex-lite-0.1.6 \ regex-syntax-0.6.29 \ regex-syntax-0.8.5 \ - reqwest-0.12.12 \ + reqwest-0.12.15 \ resolv-conf-0.7.0 \ ring-0.17.9 \ - rtnetlink-0.13.1 \ - rtnetlink-0.14.1 \ rustc-demangle-0.1.24 \ rustc-hash-2.1.1 \ rustc_version-0.4.1 \ @@ -294,32 +299,33 @@ CARGO_CRATES= addr2line-0.24.2 \ self_cell-1.1.0 \ semver-1.0.25 \ send_wrapper-0.6.0 \ - serde-1.0.217 \ - serde_derive-1.0.217 \ + serde-1.0.219 \ + serde_derive-1.0.219 \ serde_json-1.0.138 \ serde_urlencoded-0.7.1 \ serdect-0.2.0 \ sha1-0.10.6 \ + sha1_smol-1.0.1 \ sha2-0.10.8 \ sharded-slab-0.1.7 \ shared_child-1.0.1 \ shlex-1.3.0 \ signal-hook-registry-1.4.2 \ signature-2.2.0 \ + simdutf8-0.1.5 \ simple-dns-0.9.3 \ slab-0.4.9 \ smallvec-1.13.2 \ - socket2-0.5.8 \ + snafu-0.8.5 \ + snafu-derive-0.8.5 \ + socket2-0.5.9 \ spin-0.9.8 \ spki-0.7.3 \ stable_deref_trait-1.2.0 \ strsim-0.11.1 \ - struct_iterable-0.1.1 \ - struct_iterable_derive-0.1.0 \ - struct_iterable_internal-0.1.1 \ strum-0.26.3 \ strum_macros-0.26.4 \ - stun-rs-0.1.9 \ + stun-rs-0.1.11 \ subtle-2.6.1 \ surge-ping-0.8.1 \ syn-1.0.109 \ @@ -340,13 +346,12 @@ CARGO_CRATES= addr2line-0.24.2 \ tinystr-0.7.6 \ tinyvec-1.8.1 \ tinyvec_macros-0.1.1 \ - tokio-1.43.0 \ + tokio-1.45.0 \ tokio-macros-2.5.0 \ tokio-rustls-0.26.1 \ tokio-stream-0.1.17 \ - tokio-tungstenite-0.24.0 \ - tokio-tungstenite-wasm-0.4.0 \ - tokio-util-0.7.13 \ + tokio-util-0.7.15 \ + tokio-websockets-0.11.4 \ toml_datetime-0.6.8 \ toml_edit-0.22.24 \ tower-0.5.2 \ @@ -358,7 +363,6 @@ CARGO_CRATES= addr2line-0.24.2 \ tracing-log-0.2.0 \ tracing-subscriber-0.3.19 \ try-lock-0.2.5 \ - tungstenite-0.24.0 \ typenum-1.17.0 \ ucd-parse-0.1.13 \ ucd-trie-0.1.7 \ @@ -367,9 +371,7 @@ CARGO_CRATES= addr2line-0.24.2 \ unicode-xid-0.2.6 \ universal-hash-0.5.1 \ untrusted-0.9.0 \ - ureq-2.12.1 \ url-2.5.4 \ - utf-8-0.7.6 \ utf16_iter-1.0.5 \ utf8_iter-1.0.4 \ utf8parse-0.2.2 \ @@ -379,7 +381,7 @@ CARGO_CRATES= addr2line-0.24.2 \ walkdir-2.5.0 \ want-0.3.1 \ wasi-0.11.0+wasi-snapshot-preview1 \ - wasi-0.13.3+wasi-0.2.2 \ + wasi-0.14.2+wasi-0.2.4 \ wasm-bindgen-0.2.100 \ wasm-bindgen-backend-0.2.100 \ wasm-bindgen-futures-0.4.50 \ @@ -406,7 +408,7 @@ CARGO_CRATES= addr2line-0.24.2 \ windows-implement-0.59.0 \ windows-interface-0.58.0 \ windows-interface-0.59.0 \ - windows-registry-0.2.0 \ + windows-registry-0.4.0 \ windows-result-0.2.0 \ windows-result-0.3.0 \ windows-strings-0.1.0 \ @@ -451,10 +453,11 @@ CARGO_CRATES= addr2line-0.24.2 \ windows_x86_64_msvc-0.53.0 \ winnow-0.7.2 \ winreg-0.50.0 \ - wit-bindgen-rt-0.33.0 \ + wit-bindgen-rt-0.39.0 \ wmi-0.14.5 \ write16-1.0.0 \ writeable-0.5.5 \ + ws_stream_wasm-0.7.4 \ x509-parser-0.16.0 \ xml-rs-0.8.25 \ xmltree-0.10.3 \ diff --git a/net/dumbpipe/distinfo b/net/dumbpipe/distinfo index cecaf9deaa21..796cb7af8f6d 100644 --- a/net/dumbpipe/distinfo +++ b/net/dumbpipe/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1744346483 +TIMESTAMP = 1747162850 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -31,10 +31,12 @@ SHA256 (rust/crates/asn1-rs-derive-0.5.1.crate) = 965c2d33e53cb6b267e148a4cb0760 SIZE (rust/crates/asn1-rs-derive-0.5.1.crate) = 9692 SHA256 (rust/crates/asn1-rs-impl-0.2.0.crate) = 7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7 SIZE (rust/crates/asn1-rs-impl-0.2.0.crate) = 2261 -SHA256 (rust/crates/async-recursion-1.1.1.crate) = 3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11 -SIZE (rust/crates/async-recursion-1.1.1.crate) = 14874 +SHA256 (rust/crates/async-compat-0.2.4.crate) = 7bab94bde396a3f7b4962e396fdad640e241ed797d4d8d77fc8c237d14c58fc0 +SIZE (rust/crates/async-compat-0.2.4.crate) = 11279 SHA256 (rust/crates/async-trait-0.1.86.crate) = 644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d SIZE (rust/crates/async-trait-0.1.86.crate) = 31946 +SHA256 (rust/crates/async_io_stream-0.3.3.crate) = b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c +SIZE (rust/crates/async_io_stream-0.3.3.crate) = 15111 SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0 SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422 SHA256 (rust/crates/attohttpc-0.24.1.crate) = 8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2 @@ -47,6 +49,8 @@ SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4 SIZE (rust/crates/backtrace-0.3.74.crate) = 88516 SHA256 (rust/crates/base16ct-0.2.0.crate) = 4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf SIZE (rust/crates/base16ct-0.2.0.crate) = 10240 +SHA256 (rust/crates/base32-0.5.1.crate) = 022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076 +SIZE (rust/crates/base32-0.5.1.crate) = 9238 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 @@ -111,6 +115,8 @@ SHA256 (rust/crates/crc-3.2.1.crate) = 69e6e4d7b33a94f0991c26729976b10ebde1d34c3 SIZE (rust/crates/crc-3.2.1.crate) = 15070 SHA256 (rust/crates/crc-catalog-2.4.0.crate) = 19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5 SIZE (rust/crates/crc-catalog-2.4.0.crate) = 10155 +SHA256 (rust/crates/critical-section-1.2.0.crate) = 790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b +SIZE (rust/crates/critical-section-1.2.0.crate) = 19133 SHA256 (rust/crates/crossbeam-channel-0.5.14.crate) = 06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471 SIZE (rust/crates/crossbeam-channel-0.5.14.crate) = 92728 SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e @@ -153,6 +159,8 @@ SHA256 (rust/crates/document-features-0.2.10.crate) = cb6969eaabd2421f8a2775cfd2 SIZE (rust/crates/document-features-0.2.10.crate) = 14005 SHA256 (rust/crates/duct-0.13.7.crate) = e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c SIZE (rust/crates/duct-0.13.7.crate) = 30055 +SHA256 (rust/crates/dyn-clone-1.0.19.crate) = 1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005 +SIZE (rust/crates/dyn-clone-1.0.19.crate) = 12896 SHA256 (rust/crates/ed25519-2.2.3.crate) = 115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53 SIZE (rust/crates/ed25519-2.2.3.crate) = 17802 SHA256 (rust/crates/ed25519-dalek-2.1.1.crate) = 4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871 @@ -169,18 +177,12 @@ SHA256 (rust/crates/enumflags2_derive-0.7.11.crate) = fc4caf64a58d7a6d65ab00639b SIZE (rust/crates/enumflags2_derive-0.7.11.crate) = 8524 SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 -SHA256 (rust/crates/erased-serde-0.3.31.crate) = 6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c -SIZE (rust/crates/erased-serde-0.3.31.crate) = 24182 -SHA256 (rust/crates/erased_set-0.8.0.crate) = a02a5d186d7bf1cb21f1f95e1a9cfa5c1f2dcd803a47aad454423ceec13525c5 -SIZE (rust/crates/erased_set-0.8.0.crate) = 4501 SHA256 (rust/crates/fallible-iterator-0.3.0.crate) = 2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649 SIZE (rust/crates/fallible-iterator-0.3.0.crate) = 19639 SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 SHA256 (rust/crates/fiat-crypto-0.2.9.crate) = 28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d SIZE (rust/crates/fiat-crypto-0.2.9.crate) = 495390 -SHA256 (rust/crates/flume-0.11.1.crate) = da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095 -SIZE (rust/crates/flume-0.11.1.crate) = 67947 SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 SIZE (rust/crates/fnv-1.0.7.crate) = 11266 SHA256 (rust/crates/foldhash-0.1.4.crate) = a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f @@ -189,8 +191,8 @@ SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969 SHA256 (rust/crates/futures-0.3.31.crate) = 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876 SIZE (rust/crates/futures-0.3.31.crate) = 54953 -SHA256 (rust/crates/futures-buffered-0.2.9.crate) = 34acda8ae8b63fbe0b2195c998b180cff89a8212fb2622a78b572a9f1c6f7684 -SIZE (rust/crates/futures-buffered-0.2.9.crate) = 30905 +SHA256 (rust/crates/futures-buffered-0.2.11.crate) = fe940397c8b744b9c2c974791c2c08bca2c3242ce0290393249e98f215a00472 +SIZE (rust/crates/futures-buffered-0.2.11.crate) = 43021 SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10 SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971 SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e @@ -217,8 +219,8 @@ 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.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 -SHA256 (rust/crates/getrandom-0.3.1.crate) = 43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8 -SIZE (rust/crates/getrandom-0.3.1.crate) = 42449 +SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4 +SIZE (rust/crates/getrandom-0.3.3.crate) = 49493 SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f SIZE (rust/crates/gimli-0.31.1.crate) = 279515 SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2 @@ -227,18 +229,16 @@ SHA256 (rust/crates/gloo-timers-0.3.0.crate) = bbb143cf96099802033e0d4f4963b19fd SIZE (rust/crates/gloo-timers-0.3.0.crate) = 5530 SHA256 (rust/crates/h2-0.4.7.crate) = ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e SIZE (rust/crates/h2-0.4.7.crate) = 174114 -SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 -SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289 SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478 SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea SIZE (rust/crates/heck-0.5.0.crate) = 11517 SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 SIZE (rust/crates/hex-0.4.3.crate) = 13299 -SHA256 (rust/crates/hickory-proto-0.25.0-alpha.5.crate) = 1d00147af6310f4392a31680db52a3ed45a2e0f68eb18e8c3fe5537ecc96d9e2 -SIZE (rust/crates/hickory-proto-0.25.0-alpha.5.crate) = 405101 -SHA256 (rust/crates/hickory-resolver-0.25.0-alpha.5.crate) = 5762f69ebdbd4ddb2e975cd24690bf21fe6b2604039189c26acddbc427f12887 -SIZE (rust/crates/hickory-resolver-0.25.0-alpha.5.crate) = 89327 +SHA256 (rust/crates/hickory-proto-0.25.2.crate) = f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502 +SIZE (rust/crates/hickory-proto-0.25.2.crate) = 417616 +SHA256 (rust/crates/hickory-resolver-0.25.2.crate) = dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a +SIZE (rust/crates/hickory-resolver-0.25.2.crate) = 91883 SHA256 (rust/crates/hmac-0.12.1.crate) = 6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e SIZE (rust/crates/hmac-0.12.1.crate) = 42657 SHA256 (rust/crates/hmac-sha1-0.2.2.crate) = 6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88 @@ -265,8 +265,8 @@ SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71 SIZE (rust/crates/hyper-1.6.0.crate) = 153923 SHA256 (rust/crates/hyper-rustls-0.27.5.crate) = 2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2 SIZE (rust/crates/hyper-rustls-0.27.5.crate) = 34660 -SHA256 (rust/crates/hyper-util-0.1.10.crate) = df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4 -SIZE (rust/crates/hyper-util-0.1.10.crate) = 72887 +SHA256 (rust/crates/hyper-util-0.1.11.crate) = 497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2 +SIZE (rust/crates/hyper-util-0.1.11.crate) = 75973 SHA256 (rust/crates/iana-time-zone-0.1.61.crate) = 235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220 SIZE (rust/crates/iana-time-zone-0.1.61.crate) = 27685 SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f @@ -295,8 +295,8 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f SIZE (rust/crates/idna-1.0.3.crate) = 142515 SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 -SHA256 (rust/crates/igd-next-0.15.1.crate) = 76b0d7d4541def58a37bf8efc559683f21edce7c82f0d866c93ac21f7e098f93 -SIZE (rust/crates/igd-next-0.15.1.crate) = 36501 +SHA256 (rust/crates/igd-next-0.16.1.crate) = d06464e726471718db9ad3fefc020529fabcde03313a0fc3967510e2db5add12 +SIZE (rust/crates/igd-next-0.16.1.crate) = 38531 SHA256 (rust/crates/indexmap-2.7.1.crate) = 8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652 SIZE (rust/crates/indexmap-2.7.1.crate) = 88644 SHA256 (rust/crates/inout-0.1.3.crate) = a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5 @@ -307,22 +307,22 @@ SHA256 (rust/crates/ipconfig-0.3.2.crate) = b58db92f96b720de98181bbbe63c831e8700 SIZE (rust/crates/ipconfig-0.3.2.crate) = 24468 SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130 SIZE (rust/crates/ipnet-2.11.0.crate) = 29718 -SHA256 (rust/crates/iroh-0.34.0.crate) = 6b7224d4eeec6c8b5b1a9b2347a4dff3588834a7fb17233044bff3e90e7b293d -SIZE (rust/crates/iroh-0.34.0.crate) = 219225 -SHA256 (rust/crates/iroh-base-0.34.0.crate) = 02bf2374c0f1d01cde6e60de7505e42a604acda1a1bb3f7be19806e466055517 -SIZE (rust/crates/iroh-base-0.34.0.crate) = 18047 -SHA256 (rust/crates/iroh-metrics-0.32.0.crate) = c0f7cd1ffe3b152a5f4f4c1880e01e07d96001f20e02cc143cb7842987c616b3 -SIZE (rust/crates/iroh-metrics-0.32.0.crate) = 34357 -SHA256 (rust/crates/iroh-net-report-0.34.0.crate) = 63407d73331e8e38980be7e39b1db8e173fc28545b3ea0c48c9a718f95877b8e -SIZE (rust/crates/iroh-net-report-0.34.0.crate) = 73156 +SHA256 (rust/crates/iroh-0.35.0.crate) = 6ca758f4ce39ae3f07de922be6c73de6a48a07f39554e78b5745585652ce38f5 +SIZE (rust/crates/iroh-0.35.0.crate) = 268884 +SHA256 (rust/crates/iroh-base-0.35.0.crate) = f91ac4aaab68153d726c4e6b39c30f9f9253743f0e25664e52f4caeb46f48d11 +SIZE (rust/crates/iroh-base-0.35.0.crate) = 18115 +SHA256 (rust/crates/iroh-metrics-0.34.0.crate) = f70466f14caff7420a14373676947e25e2917af6a5b1bec45825beb2bf1eb6a7 +SIZE (rust/crates/iroh-metrics-0.34.0.crate) = 40400 +SHA256 (rust/crates/iroh-metrics-derive-0.2.0.crate) = 8d12f5c45c4ed2436302a4e03cad9a0ad34b2962ad0c5791e1019c0ee30eeb09 +SIZE (rust/crates/iroh-metrics-derive-0.2.0.crate) = 2945 SHA256 (rust/crates/iroh-quinn-0.13.0.crate) = 76c6245c9ed906506ab9185e8d7f64857129aee4f935e899f398a3bd3b70338d SIZE (rust/crates/iroh-quinn-0.13.0.crate) = 78548 SHA256 (rust/crates/iroh-quinn-proto-0.13.0.crate) = 929d5d8fa77d5c304d3ee7cae9aede31f13908bd049f9de8c7c0094ad6f7c535 SIZE (rust/crates/iroh-quinn-proto-0.13.0.crate) = 224474 SHA256 (rust/crates/iroh-quinn-udp-0.5.7.crate) = c53afaa1049f7c83ea1331f5ebb9e6ebc5fdd69c468b7a22dd598b02c9bcc973 SIZE (rust/crates/iroh-quinn-udp-0.5.7.crate) = 25601 -SHA256 (rust/crates/iroh-relay-0.34.0.crate) = 21d282c04a71a83a90b8fe6872ba30ae341853255aa908375a3e6181f7215d7b -SIZE (rust/crates/iroh-relay-0.34.0.crate) = 110794 +SHA256 (rust/crates/iroh-relay-0.35.0.crate) = c63f122cdfaa4b4e0e7d6d3921d2b878f42a0c6d3ee5a29456dc3f5ab5ec931f +SIZE (rust/crates/iroh-relay-0.35.0.crate) = 113963 SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 SHA256 (rust/crates/itoa-1.0.14.crate) = d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674 @@ -335,8 +335,8 @@ SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec9374296 SIZE (rust/crates/js-sys-0.3.77.crate) = 55538 SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 -SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a -SIZE (rust/crates/libc-0.2.169.crate) = 757901 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 SHA256 (rust/crates/litemap-0.7.4.crate) = 4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104 SIZE (rust/crates/litemap-0.7.4.crate) = 28257 SHA256 (rust/crates/litrs-0.4.1.crate) = b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5 @@ -351,6 +351,8 @@ SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb767 SIZE (rust/crates/loom-0.7.2.crate) = 73989 SHA256 (rust/crates/lru-0.12.5.crate) = 234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38 SIZE (rust/crates/lru-0.12.5.crate) = 16047 +SHA256 (rust/crates/lru-0.13.0.crate) = 227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465 +SIZE (rust/crates/lru-0.13.0.crate) = 16305 SHA256 (rust/crates/match_cfg-0.1.0.crate) = ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4 SIZE (rust/crates/match_cfg-0.1.0.crate) = 7153 SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558 @@ -369,38 +371,34 @@ SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6 SIZE (rust/crates/mio-1.0.3.crate) = 103703 SHA256 (rust/crates/moka-0.12.10.crate) = a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926 SIZE (rust/crates/moka-0.12.10.crate) = 253622 -SHA256 (rust/crates/n0-future-0.1.2.crate) = 399e11dc3b0e8d9d65b27170d22f5d779d52d9bed888db70d7e0c2c7ce3dfc52 -SIZE (rust/crates/n0-future-0.1.2.crate) = 16947 -SHA256 (rust/crates/nanorand-0.7.0.crate) = 6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3 -SIZE (rust/crates/nanorand-0.7.0.crate) = 18437 +SHA256 (rust/crates/n0-future-0.1.3.crate) = 7bb0e5d99e681ab3c938842b96fcb41bf8a7bb4bfdb11ccbd653a7e83e06c794 +SIZE (rust/crates/n0-future-0.1.3.crate) = 23690 +SHA256 (rust/crates/nested_enum_utils-0.2.2.crate) = 43fa9161ed44d30e9702fe42bd78693bceac0fed02f647da749f36109023d3a3 +SIZE (rust/crates/nested_enum_utils-0.2.2.crate) = 12817 SHA256 (rust/crates/netdev-0.31.0.crate) = f901362e84cd407be6f8cd9d3a46bccf09136b095792785401ea7d283c79b91d SIZE (rust/crates/netdev-0.31.0.crate) = 27896 SHA256 (rust/crates/netlink-packet-core-0.7.0.crate) = 72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4 SIZE (rust/crates/netlink-packet-core-0.7.0.crate) = 16718 SHA256 (rust/crates/netlink-packet-route-0.17.1.crate) = 053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66 SIZE (rust/crates/netlink-packet-route-0.17.1.crate) = 115709 -SHA256 (rust/crates/netlink-packet-route-0.19.0.crate) = 74c171cd77b4ee8c7708da746ce392440cb7bcf618d122ec9ecc607b12938bf4 -SIZE (rust/crates/netlink-packet-route-0.19.0.crate) = 137468 +SHA256 (rust/crates/netlink-packet-route-0.23.0.crate) = 0800eae8638a299eaa67476e1c6b6692922273e0f7939fd188fc861c837b9cd2 +SIZE (rust/crates/netlink-packet-route-0.23.0.crate) = 174634 SHA256 (rust/crates/netlink-packet-utils-0.5.2.crate) = 0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34 SIZE (rust/crates/netlink-packet-utils-0.5.2.crate) = 7970 SHA256 (rust/crates/netlink-proto-0.11.5.crate) = 72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60 SIZE (rust/crates/netlink-proto-0.11.5.crate) = 23793 SHA256 (rust/crates/netlink-sys-0.8.7.crate) = 16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23 SIZE (rust/crates/netlink-sys-0.8.7.crate) = 23701 -SHA256 (rust/crates/netwatch-0.3.0.crate) = 64da82edf903649e6cb6a77b5a6f7fe01387d8865065d411d139018510880302 -SIZE (rust/crates/netwatch-0.3.0.crate) = 39256 -SHA256 (rust/crates/netwatch-0.4.0.crate) = 0b7879c2cfdf30d92f2be89efa3169b3d78107e3ab7f7b9a37157782569314e1 -SIZE (rust/crates/netwatch-0.4.0.crate) = 46769 -SHA256 (rust/crates/nix-0.26.4.crate) = 598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b -SIZE (rust/crates/nix-0.26.4.crate) = 279099 -SHA256 (rust/crates/nix-0.27.1.crate) = 2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053 -SIZE (rust/crates/nix-0.27.1.crate) = 286494 +SHA256 (rust/crates/netwatch-0.5.0.crate) = 67eeaa5f7505c93c5a9b35ba84fd21fb8aa3f24678c76acfe8716af7862fb07a +SIZE (rust/crates/netwatch-0.5.0.crate) = 48462 SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46 SIZE (rust/crates/nix-0.29.0.crate) = 318248 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/ntimestamp-1.0.0.crate) = c50f94c405726d3e0095e89e72f75ce7f6587b94a8bd8dc8054b73f65c0fd68c +SIZE (rust/crates/ntimestamp-1.0.0.crate) = 5925 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.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9 @@ -451,6 +449,8 @@ SHA256 (rust/crates/pest_generator-2.7.15.crate) = 7d1396fd3a870fc7838768d171b46 SIZE (rust/crates/pest_generator-2.7.15.crate) = 18417 SHA256 (rust/crates/pest_meta-2.7.15.crate) = e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea SIZE (rust/crates/pest_meta-2.7.15.crate) = 42121 +SHA256 (rust/crates/pharos-0.5.3.crate) = e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414 +SIZE (rust/crates/pharos-0.5.3.crate) = 26028 SHA256 (rust/crates/pin-project-1.1.9.crate) = dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d SIZE (rust/crates/pin-project-1.1.9.crate) = 56299 SHA256 (rust/crates/pin-project-internal-1.1.9.crate) = f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67 @@ -459,8 +459,8 @@ SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9a SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504 SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580 -SHA256 (rust/crates/pkarr-2.3.1.crate) = 92eff194c72f00f3076855b413ad2d940e3a6e307fa697e5c7733e738341aed4 -SIZE (rust/crates/pkarr-2.3.1.crate) = 34844 +SHA256 (rust/crates/pkarr-3.7.1.crate) = e32222ae3d617bf92414db29085f8a959a4515effce916e038e9399a335a0d6d +SIZE (rust/crates/pkarr-3.7.1.crate) = 66806 SHA256 (rust/crates/pkcs8-0.10.2.crate) = f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7 SIZE (rust/crates/pkcs8-0.10.2.crate) = 26360 SHA256 (rust/crates/pnet_base-0.34.0.crate) = fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c @@ -475,8 +475,8 @@ SHA256 (rust/crates/poly1305-0.8.0.crate) = 8159bd90725d2df49889a078b54f4f79e87f SIZE (rust/crates/poly1305-0.8.0.crate) = 32633 SHA256 (rust/crates/portable-atomic-1.10.0.crate) = 280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6 SIZE (rust/crates/portable-atomic-1.10.0.crate) = 174760 -SHA256 (rust/crates/portmapper-0.4.0.crate) = b715da165f399be093fecb2ca774b00713a3b32f6b27e0752fbf255e3be622af -SIZE (rust/crates/portmapper-0.4.0.crate) = 37085 +SHA256 (rust/crates/portmapper-0.5.0.crate) = 7d6db66007eac4a0ec8331d0d20c734bd64f6445d64bbaf0d0a27fea7a054e36 +SIZE (rust/crates/portmapper-0.5.0.crate) = 39101 SHA256 (rust/crates/postcard-1.1.1.crate) = 170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8 SIZE (rust/crates/postcard-1.1.1.crate) = 35639 SHA256 (rust/crates/postcard-derive-0.1.2.crate) = 0239fa9c1d225d4b7eb69925c25c5e082307a141e470573fbbe3a817ce6a7a37 @@ -485,12 +485,12 @@ 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.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04 SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478 -SHA256 (rust/crates/precis-core-0.1.10.crate) = 25a414cabc93f5f45d53463e73b3d89d3c5c0dc4a34dbf6901f0c6358f017203 -SIZE (rust/crates/precis-core-0.1.10.crate) = 455279 -SHA256 (rust/crates/precis-profiles-0.1.11.crate) = f58e2841ef58164e2626464d4fde67fa301d5e2c78a10300c1756312a03b169f -SIZE (rust/crates/precis-profiles-0.1.11.crate) = 284789 -SHA256 (rust/crates/precis-tools-0.1.8.crate) = 016da884bc4c2c4670211641abef402d15fa2b06c6e9088ff270dac93675aee2 -SIZE (rust/crates/precis-tools-0.1.8.crate) = 18278 +SHA256 (rust/crates/precis-core-0.1.11.crate) = 9c2e7b31f132e0c6f8682cfb7bf4a5340dbe925b7986618d0826a56dfe0c8e56 +SIZE (rust/crates/precis-core-0.1.11.crate) = 464133 +SHA256 (rust/crates/precis-profiles-0.1.12.crate) = dc4f67f78f50388f03494794766ba824a704db16fb5d400fe8d545fa7bc0d3f1 +SIZE (rust/crates/precis-profiles-0.1.12.crate) = 324842 +SHA256 (rust/crates/precis-tools-0.1.9.crate) = 6cc1eb2d5887ac7bfd2c0b745764db89edb84b856e4214e204ef48ef96d10c4a +SIZE (rust/crates/precis-tools-0.1.9.crate) = 27293 SHA256 (rust/crates/proc-macro-crate-3.2.0.crate) = 8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b SIZE (rust/crates/proc-macro-crate-3.2.0.crate) = 11164 SHA256 (rust/crates/proc-macro2-1.0.93.crate) = 60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99 @@ -507,6 +507,8 @@ SHA256 (rust/crates/quote-1.0.38.crate) = 0e4dccaaaf89514f546c693ddc140f729f958c SIZE (rust/crates/quote-1.0.38.crate) = 31252 SHA256 (rust/crates/quoted-string-parser-0.1.0.crate) = 0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9 SIZE (rust/crates/quoted-string-parser-0.1.0.crate) = 3623 +SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5 +SIZE (rust/crates/r-efi-5.2.0.crate) = 64764 SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 SIZE (rust/crates/rand-0.8.5.crate) = 87113 SHA256 (rust/crates/rand-0.9.0.crate) = 3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94 @@ -535,16 +537,12 @@ SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4 SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752 SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541 -SHA256 (rust/crates/reqwest-0.12.12.crate) = 43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da -SIZE (rust/crates/reqwest-0.12.12.crate) = 193321 +SHA256 (rust/crates/reqwest-0.12.15.crate) = d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb +SIZE (rust/crates/reqwest-0.12.15.crate) = 199320 SHA256 (rust/crates/resolv-conf-0.7.0.crate) = 52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00 SIZE (rust/crates/resolv-conf-0.7.0.crate) = 17352 SHA256 (rust/crates/ring-0.17.9.crate) = e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24 SIZE (rust/crates/ring-0.17.9.crate) = 1474639 -SHA256 (rust/crates/rtnetlink-0.13.1.crate) = 7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0 -SIZE (rust/crates/rtnetlink-0.13.1.crate) = 42517 -SHA256 (rust/crates/rtnetlink-0.14.1.crate) = b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5 -SIZE (rust/crates/rtnetlink-0.14.1.crate) = 45416 SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047 SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d @@ -591,10 +589,10 @@ SHA256 (rust/crates/semver-1.0.25.crate) = f79dfe2d285b0488816f30e700a7438c5a73d SIZE (rust/crates/semver-1.0.25.crate) = 31291 SHA256 (rust/crates/send_wrapper-0.6.0.crate) = cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73 SIZE (rust/crates/send_wrapper-0.6.0.crate) = 10519 -SHA256 (rust/crates/serde-1.0.217.crate) = 02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70 -SIZE (rust/crates/serde-1.0.217.crate) = 79019 -SHA256 (rust/crates/serde_derive-1.0.217.crate) = 5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0 -SIZE (rust/crates/serde_derive-1.0.217.crate) = 57749 +SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6 +SIZE (rust/crates/serde-1.0.219.crate) = 78983 +SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 +SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 SHA256 (rust/crates/serde_json-1.0.138.crate) = d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949 SIZE (rust/crates/serde_json-1.0.138.crate) = 154769 SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd @@ -603,6 +601,8 @@ SHA256 (rust/crates/serdect-0.2.0.crate) = a84f14a19e9a014bb9f4512488d9829a68e04 SIZE (rust/crates/serdect-0.2.0.crate) = 11691 SHA256 (rust/crates/sha1-0.10.6.crate) = e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba SIZE (rust/crates/sha1-0.10.6.crate) = 13517 +SHA256 (rust/crates/sha1_smol-1.0.1.crate) = bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d +SIZE (rust/crates/sha1_smol-1.0.1.crate) = 9809 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 @@ -615,14 +615,20 @@ SHA256 (rust/crates/signal-hook-registry-1.4.2.crate) = a9e9e0b4211b72e7b8b6e85c SIZE (rust/crates/signal-hook-registry-1.4.2.crate) = 18064 SHA256 (rust/crates/signature-2.2.0.crate) = 77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de SIZE (rust/crates/signature-2.2.0.crate) = 15531 +SHA256 (rust/crates/simdutf8-0.1.5.crate) = e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e +SIZE (rust/crates/simdutf8-0.1.5.crate) = 28488 SHA256 (rust/crates/simple-dns-0.9.3.crate) = dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a SIZE (rust/crates/simple-dns-0.9.3.crate) = 52975 SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67 SIZE (rust/crates/slab-0.4.9.crate) = 17108 SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67 SIZE (rust/crates/smallvec-1.13.2.crate) = 35216 -SHA256 (rust/crates/socket2-0.5.8.crate) = c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8 -SIZE (rust/crates/socket2-0.5.8.crate) = 56309 +SHA256 (rust/crates/snafu-0.8.5.crate) = 223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019 +SIZE (rust/crates/snafu-0.8.5.crate) = 69415 +SHA256 (rust/crates/snafu-derive-0.8.5.crate) = 03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917 +SIZE (rust/crates/snafu-derive-0.8.5.crate) = 28537 +SHA256 (rust/crates/socket2-0.5.9.crate) = 4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef +SIZE (rust/crates/socket2-0.5.9.crate) = 57432 SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67 SIZE (rust/crates/spin-0.9.8.crate) = 38958 SHA256 (rust/crates/spki-0.7.3.crate) = d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d @@ -631,18 +637,12 @@ SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8 SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054 SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f SIZE (rust/crates/strsim-0.11.1.crate) = 14266 -SHA256 (rust/crates/struct_iterable-0.1.1.crate) = 849a064c6470a650b72e41fa6c057879b68f804d113af92900f27574828e7712 -SIZE (rust/crates/struct_iterable-0.1.1.crate) = 3233 -SHA256 (rust/crates/struct_iterable_derive-0.1.0.crate) = 8bb939ce88a43ea4e9d012f2f6b4cc789deb2db9d47bad697952a85d6978662c -SIZE (rust/crates/struct_iterable_derive-0.1.0.crate) = 2045 -SHA256 (rust/crates/struct_iterable_internal-0.1.1.crate) = e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a -SIZE (rust/crates/struct_iterable_internal-0.1.1.crate) = 1625 SHA256 (rust/crates/strum-0.26.3.crate) = 8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06 SIZE (rust/crates/strum-0.26.3.crate) = 7237 SHA256 (rust/crates/strum_macros-0.26.4.crate) = 4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be SIZE (rust/crates/strum_macros-0.26.4.crate) = 27531 -SHA256 (rust/crates/stun-rs-0.1.9.crate) = b79cc624c9a747353810310af44f1f03f71eb4561284a894acc0396e6d0de76e -SIZE (rust/crates/stun-rs-0.1.9.crate) = 69481 +SHA256 (rust/crates/stun-rs-0.1.11.crate) = fb921f10397d5669e1af6455e9e2d367bf1f9cebcd6b1dd1dc50e19f6a9ac2ac +SIZE (rust/crates/stun-rs-0.1.11.crate) = 73853 SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292 SIZE (rust/crates/subtle-2.6.1.crate) = 14562 SHA256 (rust/crates/surge-ping-0.8.1.crate) = efbf95ce4c7c5b311d2ce3f088af2b93edef0f09727fa50fbe03c7a979afce77 @@ -683,20 +683,18 @@ SHA256 (rust/crates/tinyvec-1.8.1.crate) = 022db8904dfa342efe721985167e9fcd16c29 SIZE (rust/crates/tinyvec-1.8.1.crate) = 47269 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.43.0.crate) = 3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e -SIZE (rust/crates/tokio-1.43.0.crate) = 817422 +SHA256 (rust/crates/tokio-1.45.0.crate) = 2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165 +SIZE (rust/crates/tokio-1.45.0.crate) = 800721 SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 SHA256 (rust/crates/tokio-rustls-0.26.1.crate) = 5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37 SIZE (rust/crates/tokio-rustls-0.26.1.crate) = 31214 SHA256 (rust/crates/tokio-stream-0.1.17.crate) = eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047 SIZE (rust/crates/tokio-stream-0.1.17.crate) = 38477 -SHA256 (rust/crates/tokio-tungstenite-0.24.0.crate) = edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9 -SIZE (rust/crates/tokio-tungstenite-0.24.0.crate) = 28904 -SHA256 (rust/crates/tokio-tungstenite-wasm-0.4.0.crate) = e21a5c399399c3db9f08d8297ac12b500e86bca82e930253fdc62eaf9c0de6ae -SIZE (rust/crates/tokio-tungstenite-wasm-0.4.0.crate) = 22252 -SHA256 (rust/crates/tokio-util-0.7.13.crate) = d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078 -SIZE (rust/crates/tokio-util-0.7.13.crate) = 115191 +SHA256 (rust/crates/tokio-util-0.7.15.crate) = 66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df +SIZE (rust/crates/tokio-util-0.7.15.crate) = 124255 +SHA256 (rust/crates/tokio-websockets-0.11.4.crate) = 9fcaf159b4e7a376b05b5bfd77bfd38f3324f5fce751b4213bfc7eaa47affb4e +SIZE (rust/crates/tokio-websockets-0.11.4.crate) = 348475 SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41 SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028 SHA256 (rust/crates/toml_edit-0.22.24.crate) = 17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474 @@ -719,8 +717,6 @@ SHA256 (rust/crates/tracing-subscriber-0.3.19.crate) = e8189decb5ac0fa7bc8b96b7c SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345 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.24.0.crate) = 18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a -SIZE (rust/crates/tungstenite-0.24.0.crate) = 61527 SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825 SIZE (rust/crates/typenum-1.17.0.crate) = 42849 SHA256 (rust/crates/ucd-parse-0.1.13.crate) = c06ff81122fcbf4df4c1660b15f7e3336058e7aec14437c9f85c6b31a0f279b9 @@ -737,12 +733,8 @@ SHA256 (rust/crates/universal-hash-0.5.1.crate) = fc1de2c688dc15305988b563c38540 SIZE (rust/crates/universal-hash-0.5.1.crate) = 9146 SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1 SIZE (rust/crates/untrusted-0.9.0.crate) = 14447 -SHA256 (rust/crates/ureq-2.12.1.crate) = 02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d -SIZE (rust/crates/ureq-2.12.1.crate) = 115366 SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60 SIZE (rust/crates/url-2.5.4.crate) = 81097 -SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9 -SIZE (rust/crates/utf-8-0.7.6.crate) = 10422 SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246 SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736 SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be @@ -761,8 +753,8 @@ SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3da 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/wasi-0.13.3+wasi-0.2.2.crate) = 26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2 -SIZE (rust/crates/wasi-0.13.3+wasi-0.2.2.crate) = 136754 +SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3 +SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921 SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5 SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288 SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6 @@ -815,8 +807,8 @@ SHA256 (rust/crates/windows-interface-0.58.0.crate) = 053c4c462dc91d3b1504c6fe5a SIZE (rust/crates/windows-interface-0.58.0.crate) = 11246 SHA256 (rust/crates/windows-interface-0.59.0.crate) = cb26fd936d991781ea39e87c3a27285081e3c0da5ca0fcbc02d368cc6f52ff01 SIZE (rust/crates/windows-interface-0.59.0.crate) = 11751 -SHA256 (rust/crates/windows-registry-0.2.0.crate) = e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0 -SIZE (rust/crates/windows-registry-0.2.0.crate) = 10470 +SHA256 (rust/crates/windows-registry-0.4.0.crate) = 4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3 +SIZE (rust/crates/windows-registry-0.4.0.crate) = 12572 SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e SIZE (rust/crates/windows-result-0.2.0.crate) = 12756 SHA256 (rust/crates/windows-result-0.3.0.crate) = d08106ce80268c4067c0571ca55a9b4e9516518eaa1a1fe9b37ca403ae1d1a34 @@ -905,14 +897,16 @@ SHA256 (rust/crates/winnow-0.7.2.crate) = 59690dea168f2198d1a3b0cac23b8063efcd11 SIZE (rust/crates/winnow-0.7.2.crate) = 170989 SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1 SIZE (rust/crates/winreg-0.50.0.crate) = 29703 -SHA256 (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c -SIZE (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3357 +SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 +SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 SHA256 (rust/crates/wmi-0.14.5.crate) = 7787dacdd8e71cbc104658aade4009300777f9b5fda6a75f19145fedb8a18e71 SIZE (rust/crates/wmi-0.14.5.crate) = 59683 SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 SIZE (rust/crates/write16-1.0.0.crate) = 7218 SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 SIZE (rust/crates/writeable-0.5.5.crate) = 22354 +SHA256 (rust/crates/ws_stream_wasm-0.7.4.crate) = 7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5 +SIZE (rust/crates/ws_stream_wasm-0.7.4.crate) = 23942 SHA256 (rust/crates/x509-parser-0.16.0.crate) = fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69 SIZE (rust/crates/x509-parser-0.16.0.crate) = 92925 SHA256 (rust/crates/xml-rs-0.8.25.crate) = c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4 @@ -945,5 +939,5 @@ SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19d SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 -SHA256 (n0-computer-dumbpipe-v0.26.0_GH0.tar.gz) = d129d85a9c157e93c72558c203e71736026edbd987b9639918783d6342516f4c -SIZE (n0-computer-dumbpipe-v0.26.0_GH0.tar.gz) = 41777 +SHA256 (n0-computer-dumbpipe-v0.27.0_GH0.tar.gz) = d7e84636100494e81dedbfa79c34fe73f9c7ddfc30f566ca6f0e73705b46c658 +SIZE (n0-computer-dumbpipe-v0.27.0_GH0.tar.gz) = 41640 diff --git a/net/freerdp3/Makefile b/net/freerdp3/Makefile index 9d042d3acc3a..f9d7dbf3a0d0 100644 --- a/net/freerdp3/Makefile +++ b/net/freerdp3/Makefile @@ -1,10 +1,16 @@ PORTNAME= freerdp DISTVERSION= 3.15.0 +PORTREVISION= 1 CATEGORIES= net comms MASTER_SITES= https://pub.freerdp.com/releases/ \ https://github.com/FreeRDP/FreeRDP/releases/download/${DISTVERSION}/ PKGNAMESUFFIX= 3 +PATCH_SITES= https://github.com/FreeRDP/FreeRDP/commit/ +# Fix realm usage for Heimdal: https://bugs.freebsd.org/286816 +PATCHFILES+= 8c2be5fd53501c129042ec8205ca2ff1bae90cda.patch:-p1 +PATCHFILES+= 374707d4fa609e5434f2166b5c11df655f6ff952.patch:-p1 + MAINTAINER= vvd@FreeBSD.org COMMENT= Free implementation of Remote Desktop Protocol WWW= https://www.freerdp.com/ diff --git a/net/freerdp3/distinfo b/net/freerdp3/distinfo index c4c838dbdd62..b71c876354d5 100644 --- a/net/freerdp3/distinfo +++ b/net/freerdp3/distinfo @@ -1,3 +1,7 @@ -TIMESTAMP = 1744722609 +TIMESTAMP = 1747401167 SHA256 (freerdp-3.15.0.tar.gz) = e8cd58decef4c970faea2fbea675970eea60e440ebe8033c54889acb83787371 SIZE (freerdp-3.15.0.tar.gz) = 10444672 +SHA256 (8c2be5fd53501c129042ec8205ca2ff1bae90cda.patch) = 9ad6bcef07b0b17bdcb86ee0c516f5842146def42288a206b7ab5cfb75052e7a +SIZE (8c2be5fd53501c129042ec8205ca2ff1bae90cda.patch) = 946 +SHA256 (374707d4fa609e5434f2166b5c11df655f6ff952.patch) = 997ba5dd88b223c897741a3a8f0cc134cdf53131459d6402e62958075dda2142 +SIZE (374707d4fa609e5434f2166b5c11df655f6ff952.patch) = 4571 diff --git a/net/gerbera/Makefile b/net/gerbera/Makefile index f39e25400ce7..444ad43a32f1 100644 --- a/net/gerbera/Makefile +++ b/net/gerbera/Makefile @@ -1,8 +1,12 @@ PORTNAME= gerbera DISTVERSIONPREFIX= v DISTVERSION= 2.5.0 +PORTREVISION= 1 CATEGORIES= net multimedia +PATCH_SITES= https://github.com/gerbera/gerbera/commit/ +PATCHFILES= 2ff1b35372854b5856f244fe1277abb987c7418c.patch:-p1 + MAINTAINER= diizzy@FreeBSD.org COMMENT= Media server compatible with DLNA and UPnP WWW= https://gerbera.io/ diff --git a/net/gerbera/distinfo b/net/gerbera/distinfo index cacc5e1c0754..2d677b46963b 100644 --- a/net/gerbera/distinfo +++ b/net/gerbera/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1741381325 +TIMESTAMP = 1747426124 SHA256 (gerbera-gerbera-v2.5.0_GH0.tar.gz) = e1dd2c710758fbb9f4db6f1afc461bdd1b6c55ef29147d450ab6d90624177f09 SIZE (gerbera-gerbera-v2.5.0_GH0.tar.gz) = 9873077 +SHA256 (2ff1b35372854b5856f244fe1277abb987c7418c.patch) = 49e0738f53ad8dfebf91d3ce1d0187afbf56912ecccbe8644a820c80e56b8807 +SIZE (2ff1b35372854b5856f244fe1277abb987c7418c.patch) = 1564 diff --git a/net/google-cloud-sdk/Makefile b/net/google-cloud-sdk/Makefile index 2c206ed92861..af50ec2f875a 100644 --- a/net/google-cloud-sdk/Makefile +++ b/net/google-cloud-sdk/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-sdk -DISTVERSION= 521.0.0 +DISTVERSION= 522.0.0 CATEGORIES= net MASTER_SITES= https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/ DISTNAME= google-cloud-sdk-${PORTVERSION}-linux-x86_64 diff --git a/net/google-cloud-sdk/distinfo b/net/google-cloud-sdk/distinfo index b426c478a21c..0f27573e40f3 100644 --- a/net/google-cloud-sdk/distinfo +++ b/net/google-cloud-sdk/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746605334 -SHA256 (google-cloud-sdk-521.0.0-linux-x86_64.tar.gz) = 84af8b5ff6c416963b65f85715450408bf85c9c2b27c237d5c2d31b66698ce3c -SIZE (google-cloud-sdk-521.0.0-linux-x86_64.tar.gz) = 148653868 +TIMESTAMP = 1747219017 +SHA256 (google-cloud-sdk-522.0.0-linux-x86_64.tar.gz) = 4cea65b3129b193dcbed03ae0504ca46f10b776a4ffb73c1a0530abe84f5d184 +SIZE (google-cloud-sdk-522.0.0-linux-x86_64.tar.gz) = 148716792 diff --git a/net/jose/Makefile b/net/jose/Makefile index d8c9bc583c5d..034b4b98ef4d 100644 --- a/net/jose/Makefile +++ b/net/jose/Makefile @@ -1,5 +1,6 @@ PORTNAME= jose DISTVERSION= 14 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= https://github.com/latchset/${PORTNAME}/releases/download/v${DISTVERSION}/ diff --git a/net/jose/files/patch-lib_meson.build b/net/jose/files/patch-lib_meson.build new file mode 100644 index 000000000000..26e763f161a9 --- /dev/null +++ b/net/jose/files/patch-lib_meson.build @@ -0,0 +1,11 @@ +--- lib/meson.build.orig 2025-03-24 16:00:40 UTC ++++ lib/meson.build +@@ -4,7 +4,7 @@ if host_machine.system() == 'freebsd' + + if host_machine.system() == 'freebsd' + if not cc.links(code, args: flags + ',--undefined-version' , name: '-Wl,--version-script=...') +- flags = [ '-export-symbols-regex=^jose_.*' ] ++ # flags = [ '-export-symbols-regex=^jose_.*' ] + endif + else + if not cc.links(code, args: flags, name: '-Wl,--version-script=...') diff --git a/net/miniupnpd/Makefile b/net/miniupnpd/Makefile index fa092ff3beef..228ad522fa7f 100644 --- a/net/miniupnpd/Makefile +++ b/net/miniupnpd/Makefile @@ -1,10 +1,14 @@ PORTNAME= miniupnpd DISTVERSION= 2.3.9 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= net MASTER_SITES= http://miniupnp.free.fr/files/ \ https://github.com/miniupnp/miniupnp/releases/download/${PORTNAME}_${DISTVERSION:S|.|_|g}/ +PATCH_SITES= https://github.com/miniupnp/miniupnp/commit/ +PATCHFILES= 7949a7a.patch:-p2 + MAINTAINER= squat@squat.no COMMENT= Lightweight UPnP IGD & PCP/NAT-PMP daemon which uses pf WWW= http://miniupnp.free.fr/ diff --git a/net/miniupnpd/distinfo b/net/miniupnpd/distinfo index 7c57bc76cb0c..3407938ec81e 100644 --- a/net/miniupnpd/distinfo +++ b/net/miniupnpd/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1745338102 +TIMESTAMP = 1747298117 SHA256 (miniupnpd-2.3.9.tar.gz) = 66cb3c3d697ab2bb3a61d3c48628166d6ba328d7c2dbeb95898fdf2a3202af7b SIZE (miniupnpd-2.3.9.tar.gz) = 302607 +SHA256 (7949a7a.patch) = fab2b96b4eeb36438400c96aeef7375b41de920067068a5ef02ef6708c1e8b6f +SIZE (7949a7a.patch) = 3173 diff --git a/net/netatalk4/Makefile b/net/netatalk4/Makefile index 9faec4ab9744..7e1f7efd3b77 100644 --- a/net/netatalk4/Makefile +++ b/net/netatalk4/Makefile @@ -1,5 +1,5 @@ PORTNAME= netatalk -PORTVERSION= 4.2.2 +PORTVERSION= 4.2.3 CATEGORIES= net MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/netatalk-${PORTVERSION:S/./-/g}/ PKGNAMESUFFIX= 4 @@ -99,7 +99,7 @@ post-patch: # ${WRKSRC}/contrib/shell_utils/afpstats post-install: - ${INSTALL_SCRIPT} ${BUILD_WRKSRC}/contrib/macusers/macusers \ + ${INSTALL_SCRIPT} ${BUILD_WRKSRC}/contrib/shell_utils/macusers \ ${STAGEDIR}${PREFIX}/bin/macusers .if ${PORT_OPTIONS:MPAM} diff --git a/net/netatalk4/distinfo b/net/netatalk4/distinfo index da344a9a8cd4..80356081f953 100644 --- a/net/netatalk4/distinfo +++ b/net/netatalk4/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745940170 -SHA256 (netatalk-4.2.2.tar.xz) = 8f772804ce4322a4e8fb159528209450927e9df067daa5cc02ab59b35f4b450c -SIZE (netatalk-4.2.2.tar.xz) = 934984 +TIMESTAMP = 1747314701 +SHA256 (netatalk-4.2.3.tar.xz) = 10a3c3a4c11acec657df9c33c69a6269e319dba759c5e1dfa41ee5a3f1b80c43 +SIZE (netatalk-4.2.3.tar.xz) = 934796 diff --git a/net/py-aiostalk/Makefile b/net/py-aiostalk/Makefile index e05bd0443763..227305893890 100644 --- a/net/py-aiostalk/Makefile +++ b/net/py-aiostalk/Makefile @@ -1,5 +1,5 @@ PORTNAME= aiostalk -DISTVERSION= 1.3 +DISTVERSION= 1.3.1 CATEGORIES= net python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -16,4 +16,6 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}greenstalk>=0:net/py-greenstalk@${PY_FLAVOR} USES= python USE_PYTHON= autoplist distutils +NO_ARCH= yes + .include <bsd.port.mk> diff --git a/net/py-aiostalk/distinfo b/net/py-aiostalk/distinfo index 6d87131417d4..9873e2ba6c5e 100644 --- a/net/py-aiostalk/distinfo +++ b/net/py-aiostalk/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1743208973 -SHA256 (aiostalk-1.3.tar.gz) = 024d366a3347c60ce044f3566d83575c5697c6f4a04947428606140ff5a3788b -SIZE (aiostalk-1.3.tar.gz) = 5258 +TIMESTAMP = 1747431472 +SHA256 (aiostalk-1.3.1.tar.gz) = a2ce935e04051671489b6e5bec88188e5ebad3450dedb9f13a47356c458fa03d +SIZE (aiostalk-1.3.1.tar.gz) = 5353 diff --git a/net/py-greenstalk/Makefile b/net/py-greenstalk/Makefile index c0f3bca4734b..cda44795944f 100644 --- a/net/py-greenstalk/Makefile +++ b/net/py-greenstalk/Makefile @@ -1,5 +1,5 @@ PORTNAME= greenstalk -DISTVERSION= 2.0.2 +DISTVERSION= 2.1.0 CATEGORIES= net python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -12,9 +12,12 @@ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PY_SETUPTOOLS} \ + ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} USES= python USE_PYTHON= autoplist pep517 +NO_ARCH= yes + .include <bsd.port.mk> diff --git a/net/py-greenstalk/distinfo b/net/py-greenstalk/distinfo index 64dd87854e5d..63a5d476b055 100644 --- a/net/py-greenstalk/distinfo +++ b/net/py-greenstalk/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1743207566 -SHA256 (greenstalk-2.0.2.tar.gz) = 3ebde5fc9ecf986f96f6779fd6d15a53f33d432c52a2e28012e100a99ee154a4 -SIZE (greenstalk-2.0.2.tar.gz) = 6809 +TIMESTAMP = 1747431511 +SHA256 (greenstalk-2.1.0.tar.gz) = a731ca15bc3b03dfffc438db08c96d0c4e8ce5f472403573e40a1939791c12a7 +SIZE (greenstalk-2.1.0.tar.gz) = 6674 diff --git a/net/py-pyzmq/Makefile b/net/py-pyzmq/Makefile index 5d7ae910f2b8..bfd0de970bfe 100644 --- a/net/py-pyzmq/Makefile +++ b/net/py-pyzmq/Makefile @@ -5,7 +5,7 @@ CATEGORIES= net devel MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} -MAINTAINER= novel@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Python bindings for ZeroMQ WWW= https://github.com/zeromq/pyzmq diff --git a/net/sendme/Makefile b/net/sendme/Makefile index 04322fab640f..d8e7414eb6ef 100644 --- a/net/sendme/Makefile +++ b/net/sendme/Makefile @@ -1,6 +1,6 @@ PORTNAME= sendme DISTVERSIONPREFIX= v -DISTVERSION= 0.25.0 +DISTVERSION= 0.26.0 CATEGORIES= net MAINTAINER= feld@FreeBSD.org diff --git a/net/sendme/Makefile.crates b/net/sendme/Makefile.crates index f26a79425476..23745d5e2774 100644 --- a/net/sendme/Makefile.crates +++ b/net/sendme/Makefile.crates @@ -1,3 +1,9 @@ +===> License APACHE20 MIT accepted by the user +===> sendme-0.26.0 depends on file: /usr/local/sbin/pkg - found +===> Fetching all distfiles required by sendme-0.26.0 for building +===> Extracting for sendme-0.26.0 +=> SHA256 Checksum OK for n0-computer-sendme-v0.26.0_GH0.tar.gz. +===> Moving crates to /usr/local/poudriere/ports/default/net/sendme/work/sendme-0.26.0/cargo-crates CARGO_CRATES= addr2line-0.24.2 \ adler2-2.0.0 \ aead-0.5.2 \ @@ -19,20 +25,23 @@ CARGO_CRATES= addr2line-0.24.2 \ asn1-rs-derive-0.5.1 \ asn1-rs-impl-0.2.0 \ async-channel-2.3.1 \ - async-recursion-1.1.1 \ + async-compat-0.2.4 \ async-trait-0.1.86 \ + async_io_stream-0.3.3 \ atomic-waker-1.1.2 \ attohttpc-0.24.1 \ autocfg-1.4.0 \ backon-1.4.0 \ backtrace-0.3.74 \ - bao-tree-0.13.0 \ + bao-tree-0.15.1 \ base16ct-0.2.0 \ + base32-0.5.1 \ base64-0.22.1 \ base64ct-1.6.0 \ binary-merge-0.1.2 \ bitflags-1.3.2 \ bitflags-2.8.0 \ + blake3-1.8.2 \ block-buffer-0.10.4 \ block2-0.5.1 \ bounded-integer-0.5.8 \ @@ -42,7 +51,6 @@ CARGO_CRATES= addr2line-0.24.2 \ byteorder-lite-0.1.0 \ bytes-1.10.0 \ cc-1.2.14 \ - cesu8-1.1.0 \ cfg-if-1.0.0 \ cfg_aliases-0.2.1 \ chacha20-0.9.1 \ @@ -55,14 +63,12 @@ CARGO_CRATES= addr2line-0.24.2 \ clipboard-win-5.4.0 \ cobs-0.2.3 \ colorchoice-1.0.3 \ - combine-4.6.7 \ concurrent-queue-2.5.0 \ console-0.15.10 \ const-oid-0.9.6 \ constant_time_eq-0.3.1 \ cordyceps-0.3.2 \ core-foundation-0.9.4 \ - core-foundation-0.10.0 \ core-foundation-sys-0.8.7 \ core-graphics-0.23.2 \ core-graphics-types-0.1.3 \ @@ -70,6 +76,7 @@ CARGO_CRATES= addr2line-0.24.2 \ crc-3.2.1 \ crc-catalog-2.4.0 \ crc32fast-1.4.2 \ + critical-section-1.2.0 \ crossbeam-channel-0.5.14 \ crossbeam-epoch-0.9.18 \ crossbeam-utils-0.8.21 \ @@ -91,8 +98,8 @@ CARGO_CRATES= addr2line-0.24.2 \ displaydoc-0.2.5 \ dlopen2-0.5.0 \ document-features-0.2.10 \ - dtoa-1.0.9 \ duct-0.13.7 \ + dyn-clone-1.0.19 \ ecdsa-0.16.9 \ ed25519-2.2.3 \ ed25519-dalek-2.1.1 \ @@ -104,8 +111,6 @@ CARGO_CRATES= addr2line-0.24.2 \ enumflags2-0.7.11 \ enumflags2_derive-0.7.11 \ equivalent-1.0.2 \ - erased-serde-0.3.31 \ - erased_set-0.8.0 \ errno-0.3.10 \ error-code-3.3.1 \ event-listener-5.4.0 \ @@ -124,7 +129,7 @@ CARGO_CRATES= addr2line-0.24.2 \ foreign-types-shared-0.3.1 \ form_urlencoded-1.2.1 \ futures-0.3.31 \ - futures-buffered-0.2.9 \ + futures-buffered-0.2.11 \ futures-channel-0.3.31 \ futures-core-0.3.31 \ futures-executor-0.3.31 \ @@ -142,7 +147,7 @@ CARGO_CRATES= addr2line-0.24.2 \ generic-array-0.14.7 \ gethostname-0.4.3 \ getrandom-0.2.15 \ - getrandom-0.3.1 \ + getrandom-0.3.3 \ gimli-0.31.1 \ glob-0.3.2 \ gloo-timers-0.3.0 \ @@ -154,8 +159,8 @@ CARGO_CRATES= addr2line-0.24.2 \ heck-0.5.0 \ hermit-abi-0.3.9 \ hex-0.4.3 \ - hickory-proto-0.25.0-alpha.5 \ - hickory-resolver-0.25.0-alpha.5 \ + hickory-proto-0.25.2 \ + hickory-resolver-0.25.2 \ hmac-0.12.1 \ hmac-sha1-0.2.2 \ hmac-sha256-1.1.8 \ @@ -169,7 +174,7 @@ CARGO_CRATES= addr2line-0.24.2 \ httpdate-1.0.3 \ hyper-1.6.0 \ hyper-rustls-0.27.5 \ - hyper-util-0.1.10 \ + hyper-util-0.1.11 \ iana-time-zone-0.1.61 \ iana-time-zone-haiku-0.1.2 \ icu_collections-1.5.0 \ @@ -184,7 +189,7 @@ CARGO_CRATES= addr2line-0.24.2 \ icu_provider_macros-1.5.0 \ idna-1.0.3 \ idna_adapter-1.2.0 \ - igd-next-0.15.1 \ + igd-next-0.16.1 \ image-0.25.5 \ indexmap-2.7.1 \ indicatif-0.17.11 \ @@ -193,25 +198,22 @@ CARGO_CRATES= addr2line-0.24.2 \ instant-0.1.13 \ ipconfig-0.3.2 \ ipnet-2.11.0 \ - iroh-0.34.0 \ - iroh-base-0.34.0 \ - iroh-blake3-1.4.5 \ - iroh-blobs-0.34.0 \ - iroh-io-0.6.1 \ - iroh-metrics-0.32.0 \ - iroh-net-report-0.34.0 \ + iroh-0.35.0 \ + iroh-base-0.35.0 \ + iroh-blobs-0.35.0 \ + iroh-io-0.6.2 \ + iroh-metrics-0.34.0 \ + iroh-metrics-derive-0.2.0 \ iroh-quinn-0.13.0 \ iroh-quinn-proto-0.13.0 \ iroh-quinn-udp-0.5.7 \ - iroh-relay-0.34.0 \ + iroh-relay-0.35.0 \ is_terminal_polyfill-1.70.1 \ itoa-1.0.14 \ - jni-0.21.1 \ - jni-sys-0.3.0 \ jpeg-decoder-0.3.1 \ js-sys-0.3.77 \ lazy_static-1.5.0 \ - libc-0.2.169 \ + libc-0.2.172 \ libm-0.2.11 \ linux-raw-sys-0.4.15 \ litemap-0.7.4 \ @@ -221,6 +223,7 @@ CARGO_CRATES= addr2line-0.24.2 \ loom-0.5.6 \ loom-0.7.2 \ lru-0.12.5 \ + lru-0.13.0 \ match_cfg-0.1.0 \ matchers-0.1.0 \ md5-0.7.0 \ @@ -230,23 +233,22 @@ CARGO_CRATES= addr2line-0.24.2 \ miniz_oxide-0.8.4 \ mio-1.0.3 \ moka-0.12.10 \ - n0-future-0.1.2 \ + n0-future-0.1.3 \ nanorand-0.7.0 \ nested_enum_utils-0.1.0 \ + nested_enum_utils-0.2.2 \ netdev-0.31.0 \ netlink-packet-core-0.7.0 \ netlink-packet-route-0.17.1 \ - netlink-packet-route-0.19.0 \ + netlink-packet-route-0.23.0 \ netlink-packet-utils-0.5.2 \ netlink-proto-0.11.5 \ netlink-sys-0.8.7 \ - netwatch-0.3.0 \ - netwatch-0.4.0 \ - nix-0.26.4 \ - nix-0.27.1 \ + netwatch-0.5.0 \ nix-0.29.0 \ no-std-net-0.6.0 \ nom-7.1.3 \ + ntimestamp-1.0.0 \ nu-ansi-term-0.46.0 \ num-bigint-0.4.6 \ num-bigint-dig-0.8.4 \ @@ -272,7 +274,6 @@ CARGO_CRATES= addr2line-0.24.2 \ once_cell-1.20.3 \ oneshot-0.1.10 \ opaque-debug-0.3.1 \ - openssl-probe-0.1.6 \ os_pipe-1.2.1 \ overload-0.1.1 \ p256-0.13.2 \ @@ -289,11 +290,12 @@ CARGO_CRATES= addr2line-0.24.2 \ pest_derive-2.7.15 \ pest_generator-2.7.15 \ pest_meta-2.7.15 \ + pharos-0.5.3 \ pin-project-1.1.9 \ pin-project-internal-1.1.9 \ pin-project-lite-0.2.16 \ pin-utils-0.1.0 \ - pkarr-2.3.1 \ + pkarr-3.7.1 \ pkcs1-0.7.5 \ pkcs8-0.10.2 \ pnet_base-0.34.0 \ @@ -303,31 +305,30 @@ CARGO_CRATES= addr2line-0.24.2 \ png-0.17.16 \ poly1305-0.8.0 \ portable-atomic-1.10.0 \ - portmapper-0.4.0 \ + portmapper-0.5.0 \ positioned-io-0.3.3 \ postcard-1.1.1 \ postcard-derive-0.1.2 \ powerfmt-0.2.0 \ ppv-lite86-0.2.20 \ - precis-core-0.1.10 \ - precis-profiles-0.1.11 \ - precis-tools-0.1.8 \ + precis-core-0.1.11 \ + precis-profiles-0.1.12 \ + precis-tools-0.1.9 \ primeorder-0.13.6 \ proc-macro-crate-3.2.0 \ proc-macro-error-0.4.12 \ proc-macro-error-attr-0.4.12 \ proc-macro-hack-0.5.20+deprecated \ proc-macro2-1.0.93 \ - prometheus-client-0.22.3 \ - prometheus-client-derive-encode-0.4.2 \ - quic-rpc-0.19.0 \ - quic-rpc-derive-0.19.0 \ + quic-rpc-0.20.0 \ + quic-rpc-derive-0.20.0 \ quick-error-1.2.3 \ quinn-0.11.6 \ quinn-proto-0.11.9 \ quinn-udp-0.5.10 \ quote-1.0.38 \ quoted-string-parser-0.1.0 \ + r-efi-5.2.0 \ rand-0.8.5 \ rand-0.9.0 \ rand_chacha-0.3.1 \ @@ -347,45 +348,38 @@ CARGO_CRATES= addr2line-0.24.2 \ regex-lite-0.1.6 \ regex-syntax-0.6.29 \ regex-syntax-0.8.5 \ - reqwest-0.12.12 \ + reqwest-0.12.15 \ resolv-conf-0.7.0 \ rfc6979-0.4.0 \ ring-0.17.9 \ rsa-0.9.8 \ - rtnetlink-0.13.1 \ - rtnetlink-0.14.1 \ rustc-demangle-0.1.24 \ rustc-hash-2.1.1 \ rustc_version-0.4.1 \ rusticata-macros-4.1.0 \ rustix-0.38.44 \ rustls-0.23.23 \ - rustls-native-certs-0.8.1 \ rustls-pemfile-2.2.0 \ rustls-pki-types-1.11.0 \ - rustls-platform-verifier-0.5.0 \ - rustls-platform-verifier-android-0.1.1 \ rustls-webpki-0.102.8 \ rustversion-1.0.19 \ ryu-1.0.19 \ salsa20-0.10.2 \ same-file-1.0.6 \ - schannel-0.1.27 \ scoped-tls-1.0.1 \ scopeguard-1.2.0 \ sec1-0.7.3 \ - security-framework-3.2.0 \ - security-framework-sys-2.14.0 \ self_cell-1.1.0 \ semver-1.0.25 \ send_wrapper-0.6.0 \ - serde-1.0.217 \ + serde-1.0.219 \ serde-error-0.1.3 \ - serde_derive-1.0.217 \ + serde_derive-1.0.219 \ serde_json-1.0.138 \ serde_urlencoded-0.7.1 \ serdect-0.2.0 \ sha1-0.10.6 \ + sha1_smol-1.0.1 \ sha2-0.10.8 \ sharded-slab-0.1.7 \ shared_child-1.0.1 \ @@ -393,10 +387,13 @@ CARGO_CRATES= addr2line-0.24.2 \ signal-hook-registry-1.4.2 \ signature-2.2.0 \ simd-adler32-0.3.7 \ + simdutf8-0.1.5 \ simple-dns-0.9.3 \ slab-0.4.9 \ smallvec-1.13.2 \ - socket2-0.5.8 \ + snafu-0.8.5 \ + snafu-derive-0.8.5 \ + socket2-0.5.9 \ spin-0.9.8 \ spki-0.7.3 \ ssh-cipher-0.2.0 \ @@ -404,12 +401,9 @@ CARGO_CRATES= addr2line-0.24.2 \ ssh-key-0.6.7 \ stable_deref_trait-1.2.0 \ strsim-0.11.1 \ - struct_iterable-0.1.1 \ - struct_iterable_derive-0.1.0 \ - struct_iterable_internal-0.1.1 \ strum-0.26.3 \ strum_macros-0.26.4 \ - stun-rs-0.1.9 \ + stun-rs-0.1.11 \ subtle-2.6.1 \ surge-ping-0.8.1 \ syn-1.0.109 \ @@ -433,13 +427,12 @@ CARGO_CRATES= addr2line-0.24.2 \ tinystr-0.7.6 \ tinyvec-1.8.1 \ tinyvec_macros-0.1.1 \ - tokio-1.43.0 \ + tokio-1.45.0 \ tokio-macros-2.5.0 \ tokio-rustls-0.26.1 \ tokio-stream-0.1.17 \ - tokio-tungstenite-0.24.0 \ - tokio-tungstenite-wasm-0.4.0 \ - tokio-util-0.7.13 \ + tokio-util-0.7.15 \ + tokio-websockets-0.11.4 \ toml_datetime-0.6.8 \ toml_edit-0.22.24 \ tower-0.5.2 \ @@ -454,7 +447,6 @@ CARGO_CRATES= addr2line-0.24.2 \ tracing-test-0.2.5 \ tracing-test-macro-0.2.5 \ try-lock-0.2.5 \ - tungstenite-0.24.0 \ typenum-1.17.0 \ ucd-parse-0.1.13 \ ucd-trie-0.1.7 \ @@ -464,9 +456,7 @@ CARGO_CRATES= addr2line-0.24.2 \ unicode-xid-0.2.6 \ universal-hash-0.5.1 \ untrusted-0.9.0 \ - ureq-2.12.1 \ url-2.5.4 \ - utf-8-0.7.6 \ utf16_iter-1.0.5 \ utf8_iter-1.0.4 \ utf8parse-0.2.2 \ @@ -476,7 +466,7 @@ CARGO_CRATES= addr2line-0.24.2 \ walkdir-2.5.0 \ want-0.3.1 \ wasi-0.11.0+wasi-snapshot-preview1 \ - wasi-0.13.3+wasi-0.2.2 \ + wasi-0.14.2+wasi-0.2.4 \ wasm-bindgen-0.2.100 \ wasm-bindgen-backend-0.2.100 \ wasm-bindgen-futures-0.4.50 \ @@ -486,7 +476,6 @@ CARGO_CRATES= addr2line-0.24.2 \ wasm-streams-0.4.2 \ web-sys-0.3.77 \ web-time-1.1.0 \ - webpki-root-certs-0.26.8 \ webpki-roots-0.26.8 \ weezl-0.1.8 \ widestring-1.1.0 \ @@ -504,55 +493,47 @@ CARGO_CRATES= addr2line-0.24.2 \ windows-implement-0.59.0 \ windows-interface-0.58.0 \ windows-interface-0.59.0 \ - windows-registry-0.2.0 \ + windows-registry-0.4.0 \ windows-result-0.2.0 \ windows-result-0.3.0 \ windows-strings-0.1.0 \ windows-strings-0.3.0 \ - windows-sys-0.45.0 \ windows-sys-0.48.0 \ windows-sys-0.52.0 \ windows-sys-0.59.0 \ - windows-targets-0.42.2 \ windows-targets-0.48.5 \ windows-targets-0.52.6 \ windows-targets-0.53.0 \ - windows_aarch64_gnullvm-0.42.2 \ windows_aarch64_gnullvm-0.48.5 \ windows_aarch64_gnullvm-0.52.6 \ windows_aarch64_gnullvm-0.53.0 \ - windows_aarch64_msvc-0.42.2 \ windows_aarch64_msvc-0.48.5 \ windows_aarch64_msvc-0.52.6 \ windows_aarch64_msvc-0.53.0 \ - windows_i686_gnu-0.42.2 \ windows_i686_gnu-0.48.5 \ windows_i686_gnu-0.52.6 \ windows_i686_gnu-0.53.0 \ windows_i686_gnullvm-0.52.6 \ windows_i686_gnullvm-0.53.0 \ - windows_i686_msvc-0.42.2 \ windows_i686_msvc-0.48.5 \ windows_i686_msvc-0.52.6 \ windows_i686_msvc-0.53.0 \ - windows_x86_64_gnu-0.42.2 \ windows_x86_64_gnu-0.48.5 \ windows_x86_64_gnu-0.52.6 \ windows_x86_64_gnu-0.53.0 \ - windows_x86_64_gnullvm-0.42.2 \ windows_x86_64_gnullvm-0.48.5 \ windows_x86_64_gnullvm-0.52.6 \ windows_x86_64_gnullvm-0.53.0 \ - windows_x86_64_msvc-0.42.2 \ windows_x86_64_msvc-0.48.5 \ windows_x86_64_msvc-0.52.6 \ windows_x86_64_msvc-0.53.0 \ winnow-0.7.2 \ winreg-0.50.0 \ - wit-bindgen-rt-0.33.0 \ + wit-bindgen-rt-0.39.0 \ wmi-0.14.5 \ write16-1.0.0 \ writeable-0.5.5 \ + ws_stream_wasm-0.7.4 \ x11rb-0.13.1 \ x11rb-protocol-0.13.1 \ x509-parser-0.16.0 \ diff --git a/net/sendme/distinfo b/net/sendme/distinfo index ce13813d30d5..459d1e96e2b2 100644 --- a/net/sendme/distinfo +++ b/net/sendme/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1744348485 +TIMESTAMP = 1747162831 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -41,10 +41,12 @@ SHA256 (rust/crates/asn1-rs-impl-0.2.0.crate) = 7b18050c2cd6fe86c3a76584ef5e0baf SIZE (rust/crates/asn1-rs-impl-0.2.0.crate) = 2261 SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a SIZE (rust/crates/async-channel-2.3.1.crate) = 14576 -SHA256 (rust/crates/async-recursion-1.1.1.crate) = 3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11 -SIZE (rust/crates/async-recursion-1.1.1.crate) = 14874 +SHA256 (rust/crates/async-compat-0.2.4.crate) = 7bab94bde396a3f7b4962e396fdad640e241ed797d4d8d77fc8c237d14c58fc0 +SIZE (rust/crates/async-compat-0.2.4.crate) = 11279 SHA256 (rust/crates/async-trait-0.1.86.crate) = 644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d SIZE (rust/crates/async-trait-0.1.86.crate) = 31946 +SHA256 (rust/crates/async_io_stream-0.3.3.crate) = b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c +SIZE (rust/crates/async_io_stream-0.3.3.crate) = 15111 SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0 SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422 SHA256 (rust/crates/attohttpc-0.24.1.crate) = 8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2 @@ -55,10 +57,12 @@ SHA256 (rust/crates/backon-1.4.0.crate) = 49fef586913a57ff189f25c9b3d034356a5bf6 SIZE (rust/crates/backon-1.4.0.crate) = 38683 SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a SIZE (rust/crates/backtrace-0.3.74.crate) = 88516 -SHA256 (rust/crates/bao-tree-0.13.0.crate) = f1f7a89a8ee5889d2593ae422ce6e1bb03e48a0e8a16e4fa0882dfcbe7e182ef -SIZE (rust/crates/bao-tree-0.13.0.crate) = 229463 +SHA256 (rust/crates/bao-tree-0.15.1.crate) = ff16d65e48353db458be63ee395c03028f24564fd48668389bd65fd945f5ac36 +SIZE (rust/crates/bao-tree-0.15.1.crate) = 233465 SHA256 (rust/crates/base16ct-0.2.0.crate) = 4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf SIZE (rust/crates/base16ct-0.2.0.crate) = 10240 +SHA256 (rust/crates/base32-0.5.1.crate) = 022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076 +SIZE (rust/crates/base32-0.5.1.crate) = 9238 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 @@ -69,6 +73,8 @@ SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c9 SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 SHA256 (rust/crates/bitflags-2.8.0.crate) = 8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36 SIZE (rust/crates/bitflags-2.8.0.crate) = 47482 +SHA256 (rust/crates/blake3-1.8.2.crate) = 3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0 +SIZE (rust/crates/blake3-1.8.2.crate) = 205967 SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71 SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 SHA256 (rust/crates/block2-0.5.1.crate) = 2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f @@ -87,8 +93,6 @@ SHA256 (rust/crates/bytes-1.10.0.crate) = f61dac84819c6588b558454b194026eb1f09c2 SIZE (rust/crates/bytes-1.10.0.crate) = 76656 SHA256 (rust/crates/cc-1.2.14.crate) = 0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9 SIZE (rust/crates/cc-1.2.14.crate) = 103164 -SHA256 (rust/crates/cesu8-1.1.0.crate) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c -SIZE (rust/crates/cesu8-1.1.0.crate) = 10555 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.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724 @@ -113,8 +117,6 @@ SHA256 (rust/crates/cobs-0.2.3.crate) = 67ba02a97a2bd10f4b59b25c7973101c79642302 SIZE (rust/crates/cobs-0.2.3.crate) = 12576 SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990 SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923 -SHA256 (rust/crates/combine-4.6.7.crate) = ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd -SIZE (rust/crates/combine-4.6.7.crate) = 134808 SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973 SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654 SHA256 (rust/crates/console-0.15.10.crate) = ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b @@ -127,8 +129,6 @@ SHA256 (rust/crates/cordyceps-0.3.2.crate) = ec10f0a762d93c4498d2e97a333805cb625 SIZE (rust/crates/cordyceps-0.3.2.crate) = 49791 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-0.10.0.crate) = b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63 -SIZE (rust/crates/core-foundation-0.10.0.crate) = 27023 SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712 SHA256 (rust/crates/core-graphics-0.23.2.crate) = c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081 @@ -143,6 +143,8 @@ SHA256 (rust/crates/crc-catalog-2.4.0.crate) = 19d374276b40fb8bbdee95aef7c7fa6b5 SIZE (rust/crates/crc-catalog-2.4.0.crate) = 10155 SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 +SHA256 (rust/crates/critical-section-1.2.0.crate) = 790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b +SIZE (rust/crates/critical-section-1.2.0.crate) = 19133 SHA256 (rust/crates/crossbeam-channel-0.5.14.crate) = 06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471 SIZE (rust/crates/crossbeam-channel-0.5.14.crate) = 92728 SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e @@ -185,10 +187,10 @@ SHA256 (rust/crates/dlopen2-0.5.0.crate) = 09b4f5f101177ff01b8ec4ecc81eead416a8a SIZE (rust/crates/dlopen2-0.5.0.crate) = 28703 SHA256 (rust/crates/document-features-0.2.10.crate) = cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0 SIZE (rust/crates/document-features-0.2.10.crate) = 14005 -SHA256 (rust/crates/dtoa-1.0.9.crate) = dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653 -SIZE (rust/crates/dtoa-1.0.9.crate) = 17002 SHA256 (rust/crates/duct-0.13.7.crate) = e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c SIZE (rust/crates/duct-0.13.7.crate) = 30055 +SHA256 (rust/crates/dyn-clone-1.0.19.crate) = 1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005 +SIZE (rust/crates/dyn-clone-1.0.19.crate) = 12896 SHA256 (rust/crates/ecdsa-0.16.9.crate) = ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca SIZE (rust/crates/ecdsa-0.16.9.crate) = 31406 SHA256 (rust/crates/ed25519-2.2.3.crate) = 115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53 @@ -211,10 +213,6 @@ SHA256 (rust/crates/enumflags2_derive-0.7.11.crate) = fc4caf64a58d7a6d65ab00639b SIZE (rust/crates/enumflags2_derive-0.7.11.crate) = 8524 SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 -SHA256 (rust/crates/erased-serde-0.3.31.crate) = 6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c -SIZE (rust/crates/erased-serde-0.3.31.crate) = 24182 -SHA256 (rust/crates/erased_set-0.8.0.crate) = a02a5d186d7bf1cb21f1f95e1a9cfa5c1f2dcd803a47aad454423ceec13525c5 -SIZE (rust/crates/erased_set-0.8.0.crate) = 4501 SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d SIZE (rust/crates/errno-0.3.10.crate) = 11824 SHA256 (rust/crates/error-code-3.3.1.crate) = a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f @@ -251,8 +249,8 @@ SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969 SHA256 (rust/crates/futures-0.3.31.crate) = 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876 SIZE (rust/crates/futures-0.3.31.crate) = 54953 -SHA256 (rust/crates/futures-buffered-0.2.9.crate) = 34acda8ae8b63fbe0b2195c998b180cff89a8212fb2622a78b572a9f1c6f7684 -SIZE (rust/crates/futures-buffered-0.2.9.crate) = 30905 +SHA256 (rust/crates/futures-buffered-0.2.11.crate) = fe940397c8b744b9c2c974791c2c08bca2c3242ce0290393249e98f215a00472 +SIZE (rust/crates/futures-buffered-0.2.11.crate) = 43021 SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10 SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971 SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e @@ -287,8 +285,8 @@ SHA256 (rust/crates/gethostname-0.4.3.crate) = 0176e0459c2e4a1fe232f984bca6890e6 SIZE (rust/crates/gethostname-0.4.3.crate) = 9336 SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 -SHA256 (rust/crates/getrandom-0.3.1.crate) = 43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8 -SIZE (rust/crates/getrandom-0.3.1.crate) = 42449 +SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4 +SIZE (rust/crates/getrandom-0.3.3.crate) = 49493 SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f SIZE (rust/crates/gimli-0.31.1.crate) = 279515 SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2 @@ -311,10 +309,10 @@ SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066a SIZE (rust/crates/hermit-abi-0.3.9.crate) = 16165 SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 SIZE (rust/crates/hex-0.4.3.crate) = 13299 -SHA256 (rust/crates/hickory-proto-0.25.0-alpha.5.crate) = 1d00147af6310f4392a31680db52a3ed45a2e0f68eb18e8c3fe5537ecc96d9e2 -SIZE (rust/crates/hickory-proto-0.25.0-alpha.5.crate) = 405101 -SHA256 (rust/crates/hickory-resolver-0.25.0-alpha.5.crate) = 5762f69ebdbd4ddb2e975cd24690bf21fe6b2604039189c26acddbc427f12887 -SIZE (rust/crates/hickory-resolver-0.25.0-alpha.5.crate) = 89327 +SHA256 (rust/crates/hickory-proto-0.25.2.crate) = f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502 +SIZE (rust/crates/hickory-proto-0.25.2.crate) = 417616 +SHA256 (rust/crates/hickory-resolver-0.25.2.crate) = dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a +SIZE (rust/crates/hickory-resolver-0.25.2.crate) = 91883 SHA256 (rust/crates/hmac-0.12.1.crate) = 6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e SIZE (rust/crates/hmac-0.12.1.crate) = 42657 SHA256 (rust/crates/hmac-sha1-0.2.2.crate) = 6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88 @@ -341,8 +339,8 @@ SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71 SIZE (rust/crates/hyper-1.6.0.crate) = 153923 SHA256 (rust/crates/hyper-rustls-0.27.5.crate) = 2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2 SIZE (rust/crates/hyper-rustls-0.27.5.crate) = 34660 -SHA256 (rust/crates/hyper-util-0.1.10.crate) = df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4 -SIZE (rust/crates/hyper-util-0.1.10.crate) = 72887 +SHA256 (rust/crates/hyper-util-0.1.11.crate) = 497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2 +SIZE (rust/crates/hyper-util-0.1.11.crate) = 75973 SHA256 (rust/crates/iana-time-zone-0.1.61.crate) = 235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220 SIZE (rust/crates/iana-time-zone-0.1.61.crate) = 27685 SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f @@ -371,8 +369,8 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f SIZE (rust/crates/idna-1.0.3.crate) = 142515 SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 -SHA256 (rust/crates/igd-next-0.15.1.crate) = 76b0d7d4541def58a37bf8efc559683f21edce7c82f0d866c93ac21f7e098f93 -SIZE (rust/crates/igd-next-0.15.1.crate) = 36501 +SHA256 (rust/crates/igd-next-0.16.1.crate) = d06464e726471718db9ad3fefc020529fabcde03313a0fc3967510e2db5add12 +SIZE (rust/crates/igd-next-0.16.1.crate) = 38531 SHA256 (rust/crates/image-0.25.5.crate) = cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b SIZE (rust/crates/image-0.25.5.crate) = 241073 SHA256 (rust/crates/indexmap-2.7.1.crate) = 8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652 @@ -389,44 +387,38 @@ SHA256 (rust/crates/ipconfig-0.3.2.crate) = b58db92f96b720de98181bbbe63c831e8700 SIZE (rust/crates/ipconfig-0.3.2.crate) = 24468 SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130 SIZE (rust/crates/ipnet-2.11.0.crate) = 29718 -SHA256 (rust/crates/iroh-0.34.0.crate) = 6b7224d4eeec6c8b5b1a9b2347a4dff3588834a7fb17233044bff3e90e7b293d -SIZE (rust/crates/iroh-0.34.0.crate) = 219225 -SHA256 (rust/crates/iroh-base-0.34.0.crate) = 02bf2374c0f1d01cde6e60de7505e42a604acda1a1bb3f7be19806e466055517 -SIZE (rust/crates/iroh-base-0.34.0.crate) = 18047 -SHA256 (rust/crates/iroh-blake3-1.4.5.crate) = efbba31f40a650f58fa28dd585a8ca76d8ae3ba63aacab4c8269004a0c803930 -SIZE (rust/crates/iroh-blake3-1.4.5.crate) = 164941 -SHA256 (rust/crates/iroh-blobs-0.34.0.crate) = c8d7a6872c7ec4a2613d0386b4dc19b5f3cf4822d81361c5136a63fd56ba2372 -SIZE (rust/crates/iroh-blobs-0.34.0.crate) = 260433 -SHA256 (rust/crates/iroh-io-0.6.1.crate) = 17e302c5ad649c6a7aa9ae8468e1c4dc2469321af0c6de7341c1be1bdaab434b -SIZE (rust/crates/iroh-io-0.6.1.crate) = 20616 -SHA256 (rust/crates/iroh-metrics-0.32.0.crate) = c0f7cd1ffe3b152a5f4f4c1880e01e07d96001f20e02cc143cb7842987c616b3 -SIZE (rust/crates/iroh-metrics-0.32.0.crate) = 34357 -SHA256 (rust/crates/iroh-net-report-0.34.0.crate) = 63407d73331e8e38980be7e39b1db8e173fc28545b3ea0c48c9a718f95877b8e -SIZE (rust/crates/iroh-net-report-0.34.0.crate) = 73156 +SHA256 (rust/crates/iroh-0.35.0.crate) = 6ca758f4ce39ae3f07de922be6c73de6a48a07f39554e78b5745585652ce38f5 +SIZE (rust/crates/iroh-0.35.0.crate) = 268884 +SHA256 (rust/crates/iroh-base-0.35.0.crate) = f91ac4aaab68153d726c4e6b39c30f9f9253743f0e25664e52f4caeb46f48d11 +SIZE (rust/crates/iroh-base-0.35.0.crate) = 18115 +SHA256 (rust/crates/iroh-blobs-0.35.0.crate) = 817b785193b73c34ef1f2dcb5ddf8729ecef9b72a8fc0e706ee6d7a9bf8766a6 +SIZE (rust/crates/iroh-blobs-0.35.0.crate) = 261266 +SHA256 (rust/crates/iroh-io-0.6.2.crate) = e0a5feb781017b983ff1b155cd1faf8174da2acafd807aa482876da2d7e6577a +SIZE (rust/crates/iroh-io-0.6.2.crate) = 29683 +SHA256 (rust/crates/iroh-metrics-0.34.0.crate) = f70466f14caff7420a14373676947e25e2917af6a5b1bec45825beb2bf1eb6a7 +SIZE (rust/crates/iroh-metrics-0.34.0.crate) = 40400 +SHA256 (rust/crates/iroh-metrics-derive-0.2.0.crate) = 8d12f5c45c4ed2436302a4e03cad9a0ad34b2962ad0c5791e1019c0ee30eeb09 +SIZE (rust/crates/iroh-metrics-derive-0.2.0.crate) = 2945 SHA256 (rust/crates/iroh-quinn-0.13.0.crate) = 76c6245c9ed906506ab9185e8d7f64857129aee4f935e899f398a3bd3b70338d SIZE (rust/crates/iroh-quinn-0.13.0.crate) = 78548 SHA256 (rust/crates/iroh-quinn-proto-0.13.0.crate) = 929d5d8fa77d5c304d3ee7cae9aede31f13908bd049f9de8c7c0094ad6f7c535 SIZE (rust/crates/iroh-quinn-proto-0.13.0.crate) = 224474 SHA256 (rust/crates/iroh-quinn-udp-0.5.7.crate) = c53afaa1049f7c83ea1331f5ebb9e6ebc5fdd69c468b7a22dd598b02c9bcc973 SIZE (rust/crates/iroh-quinn-udp-0.5.7.crate) = 25601 -SHA256 (rust/crates/iroh-relay-0.34.0.crate) = 21d282c04a71a83a90b8fe6872ba30ae341853255aa908375a3e6181f7215d7b -SIZE (rust/crates/iroh-relay-0.34.0.crate) = 110794 +SHA256 (rust/crates/iroh-relay-0.35.0.crate) = c63f122cdfaa4b4e0e7d6d3921d2b878f42a0c6d3ee5a29456dc3f5ab5ec931f +SIZE (rust/crates/iroh-relay-0.35.0.crate) = 113963 SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 SHA256 (rust/crates/itoa-1.0.14.crate) = d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674 SIZE (rust/crates/itoa-1.0.14.crate) = 11210 -SHA256 (rust/crates/jni-0.21.1.crate) = 1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97 -SIZE (rust/crates/jni-0.21.1.crate) = 105028 -SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130 -SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232 SHA256 (rust/crates/jpeg-decoder-0.3.1.crate) = f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0 SIZE (rust/crates/jpeg-decoder-0.3.1.crate) = 744364 SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f SIZE (rust/crates/js-sys-0.3.77.crate) = 55538 SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 -SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a -SIZE (rust/crates/libc-0.2.169.crate) = 757901 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 SHA256 (rust/crates/libm-0.2.11.crate) = 8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa SIZE (rust/crates/libm-0.2.11.crate) = 111477 SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab @@ -445,6 +437,8 @@ SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb767 SIZE (rust/crates/loom-0.7.2.crate) = 73989 SHA256 (rust/crates/lru-0.12.5.crate) = 234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38 SIZE (rust/crates/lru-0.12.5.crate) = 16047 +SHA256 (rust/crates/lru-0.13.0.crate) = 227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465 +SIZE (rust/crates/lru-0.13.0.crate) = 16305 SHA256 (rust/crates/match_cfg-0.1.0.crate) = ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4 SIZE (rust/crates/match_cfg-0.1.0.crate) = 7153 SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558 @@ -463,40 +457,38 @@ SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6 SIZE (rust/crates/mio-1.0.3.crate) = 103703 SHA256 (rust/crates/moka-0.12.10.crate) = a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926 SIZE (rust/crates/moka-0.12.10.crate) = 253622 -SHA256 (rust/crates/n0-future-0.1.2.crate) = 399e11dc3b0e8d9d65b27170d22f5d779d52d9bed888db70d7e0c2c7ce3dfc52 -SIZE (rust/crates/n0-future-0.1.2.crate) = 16947 +SHA256 (rust/crates/n0-future-0.1.3.crate) = 7bb0e5d99e681ab3c938842b96fcb41bf8a7bb4bfdb11ccbd653a7e83e06c794 +SIZE (rust/crates/n0-future-0.1.3.crate) = 23690 SHA256 (rust/crates/nanorand-0.7.0.crate) = 6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3 SIZE (rust/crates/nanorand-0.7.0.crate) = 18437 SHA256 (rust/crates/nested_enum_utils-0.1.0.crate) = 8f256ef99e7ac37428ef98c89bef9d84b590172de4bbfbe81b68a4cd3abadb32 SIZE (rust/crates/nested_enum_utils-0.1.0.crate) = 9284 +SHA256 (rust/crates/nested_enum_utils-0.2.2.crate) = 43fa9161ed44d30e9702fe42bd78693bceac0fed02f647da749f36109023d3a3 +SIZE (rust/crates/nested_enum_utils-0.2.2.crate) = 12817 SHA256 (rust/crates/netdev-0.31.0.crate) = f901362e84cd407be6f8cd9d3a46bccf09136b095792785401ea7d283c79b91d SIZE (rust/crates/netdev-0.31.0.crate) = 27896 SHA256 (rust/crates/netlink-packet-core-0.7.0.crate) = 72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4 SIZE (rust/crates/netlink-packet-core-0.7.0.crate) = 16718 SHA256 (rust/crates/netlink-packet-route-0.17.1.crate) = 053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66 SIZE (rust/crates/netlink-packet-route-0.17.1.crate) = 115709 -SHA256 (rust/crates/netlink-packet-route-0.19.0.crate) = 74c171cd77b4ee8c7708da746ce392440cb7bcf618d122ec9ecc607b12938bf4 -SIZE (rust/crates/netlink-packet-route-0.19.0.crate) = 137468 +SHA256 (rust/crates/netlink-packet-route-0.23.0.crate) = 0800eae8638a299eaa67476e1c6b6692922273e0f7939fd188fc861c837b9cd2 +SIZE (rust/crates/netlink-packet-route-0.23.0.crate) = 174634 SHA256 (rust/crates/netlink-packet-utils-0.5.2.crate) = 0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34 SIZE (rust/crates/netlink-packet-utils-0.5.2.crate) = 7970 SHA256 (rust/crates/netlink-proto-0.11.5.crate) = 72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60 SIZE (rust/crates/netlink-proto-0.11.5.crate) = 23793 SHA256 (rust/crates/netlink-sys-0.8.7.crate) = 16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23 SIZE (rust/crates/netlink-sys-0.8.7.crate) = 23701 -SHA256 (rust/crates/netwatch-0.3.0.crate) = 64da82edf903649e6cb6a77b5a6f7fe01387d8865065d411d139018510880302 -SIZE (rust/crates/netwatch-0.3.0.crate) = 39256 -SHA256 (rust/crates/netwatch-0.4.0.crate) = 0b7879c2cfdf30d92f2be89efa3169b3d78107e3ab7f7b9a37157782569314e1 -SIZE (rust/crates/netwatch-0.4.0.crate) = 46769 -SHA256 (rust/crates/nix-0.26.4.crate) = 598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b -SIZE (rust/crates/nix-0.26.4.crate) = 279099 -SHA256 (rust/crates/nix-0.27.1.crate) = 2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053 -SIZE (rust/crates/nix-0.27.1.crate) = 286494 +SHA256 (rust/crates/netwatch-0.5.0.crate) = 67eeaa5f7505c93c5a9b35ba84fd21fb8aa3f24678c76acfe8716af7862fb07a +SIZE (rust/crates/netwatch-0.5.0.crate) = 48462 SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46 SIZE (rust/crates/nix-0.29.0.crate) = 318248 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/ntimestamp-1.0.0.crate) = c50f94c405726d3e0095e89e72f75ce7f6587b94a8bd8dc8054b73f65c0fd68c +SIZE (rust/crates/ntimestamp-1.0.0.crate) = 5925 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.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9 @@ -547,8 +539,6 @@ SHA256 (rust/crates/oneshot-0.1.10.crate) = 79d72a7c0f743d2ebb0a2ad1d219db75fdc7 SIZE (rust/crates/oneshot-0.1.10.crate) = 41033 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.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e -SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128 SHA256 (rust/crates/os_pipe-1.2.1.crate) = 5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982 SIZE (rust/crates/os_pipe-1.2.1.crate) = 10691 SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39 @@ -581,6 +571,8 @@ SHA256 (rust/crates/pest_generator-2.7.15.crate) = 7d1396fd3a870fc7838768d171b46 SIZE (rust/crates/pest_generator-2.7.15.crate) = 18417 SHA256 (rust/crates/pest_meta-2.7.15.crate) = e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea SIZE (rust/crates/pest_meta-2.7.15.crate) = 42121 +SHA256 (rust/crates/pharos-0.5.3.crate) = e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414 +SIZE (rust/crates/pharos-0.5.3.crate) = 26028 SHA256 (rust/crates/pin-project-1.1.9.crate) = dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d SIZE (rust/crates/pin-project-1.1.9.crate) = 56299 SHA256 (rust/crates/pin-project-internal-1.1.9.crate) = f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67 @@ -589,8 +581,8 @@ SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9a SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504 SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580 -SHA256 (rust/crates/pkarr-2.3.1.crate) = 92eff194c72f00f3076855b413ad2d940e3a6e307fa697e5c7733e738341aed4 -SIZE (rust/crates/pkarr-2.3.1.crate) = 34844 +SHA256 (rust/crates/pkarr-3.7.1.crate) = e32222ae3d617bf92414db29085f8a959a4515effce916e038e9399a335a0d6d +SIZE (rust/crates/pkarr-3.7.1.crate) = 66806 SHA256 (rust/crates/pkcs1-0.7.5.crate) = c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f SIZE (rust/crates/pkcs1-0.7.5.crate) = 35790 SHA256 (rust/crates/pkcs8-0.10.2.crate) = f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7 @@ -609,8 +601,8 @@ SHA256 (rust/crates/poly1305-0.8.0.crate) = 8159bd90725d2df49889a078b54f4f79e87f SIZE (rust/crates/poly1305-0.8.0.crate) = 32633 SHA256 (rust/crates/portable-atomic-1.10.0.crate) = 280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6 SIZE (rust/crates/portable-atomic-1.10.0.crate) = 174760 -SHA256 (rust/crates/portmapper-0.4.0.crate) = b715da165f399be093fecb2ca774b00713a3b32f6b27e0752fbf255e3be622af -SIZE (rust/crates/portmapper-0.4.0.crate) = 37085 +SHA256 (rust/crates/portmapper-0.5.0.crate) = 7d6db66007eac4a0ec8331d0d20c734bd64f6445d64bbaf0d0a27fea7a054e36 +SIZE (rust/crates/portmapper-0.5.0.crate) = 39101 SHA256 (rust/crates/positioned-io-0.3.3.crate) = ccabfeeb89c73adf4081f0dca7f8e28dbda90981a222ceea37f619e93ea6afe9 SIZE (rust/crates/positioned-io-0.3.3.crate) = 487765 SHA256 (rust/crates/postcard-1.1.1.crate) = 170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8 @@ -621,12 +613,12 @@ 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.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04 SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478 -SHA256 (rust/crates/precis-core-0.1.10.crate) = 25a414cabc93f5f45d53463e73b3d89d3c5c0dc4a34dbf6901f0c6358f017203 -SIZE (rust/crates/precis-core-0.1.10.crate) = 455279 -SHA256 (rust/crates/precis-profiles-0.1.11.crate) = f58e2841ef58164e2626464d4fde67fa301d5e2c78a10300c1756312a03b169f -SIZE (rust/crates/precis-profiles-0.1.11.crate) = 284789 -SHA256 (rust/crates/precis-tools-0.1.8.crate) = 016da884bc4c2c4670211641abef402d15fa2b06c6e9088ff270dac93675aee2 -SIZE (rust/crates/precis-tools-0.1.8.crate) = 18278 +SHA256 (rust/crates/precis-core-0.1.11.crate) = 9c2e7b31f132e0c6f8682cfb7bf4a5340dbe925b7986618d0826a56dfe0c8e56 +SIZE (rust/crates/precis-core-0.1.11.crate) = 464133 +SHA256 (rust/crates/precis-profiles-0.1.12.crate) = dc4f67f78f50388f03494794766ba824a704db16fb5d400fe8d545fa7bc0d3f1 +SIZE (rust/crates/precis-profiles-0.1.12.crate) = 324842 +SHA256 (rust/crates/precis-tools-0.1.9.crate) = 6cc1eb2d5887ac7bfd2c0b745764db89edb84b856e4214e204ef48ef96d10c4a +SIZE (rust/crates/precis-tools-0.1.9.crate) = 27293 SHA256 (rust/crates/primeorder-0.13.6.crate) = 353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6 SIZE (rust/crates/primeorder-0.13.6.crate) = 21296 SHA256 (rust/crates/proc-macro-crate-3.2.0.crate) = 8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b @@ -639,14 +631,10 @@ SHA256 (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = dc375e1527247fe1a SIZE (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = 15045 SHA256 (rust/crates/proc-macro2-1.0.93.crate) = 60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99 SIZE (rust/crates/proc-macro2-1.0.93.crate) = 52388 -SHA256 (rust/crates/prometheus-client-0.22.3.crate) = 504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca -SIZE (rust/crates/prometheus-client-0.22.3.crate) = 62725 -SHA256 (rust/crates/prometheus-client-derive-encode-0.4.2.crate) = 440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8 -SIZE (rust/crates/prometheus-client-derive-encode-0.4.2.crate) = 3662 -SHA256 (rust/crates/quic-rpc-0.19.0.crate) = 89561e5343bcad1c9f84321d9d9bd1619128ad44293faad55a0001b0e52d312b -SIZE (rust/crates/quic-rpc-0.19.0.crate) = 98031 -SHA256 (rust/crates/quic-rpc-derive-0.19.0.crate) = 0a99f334af6f23b3de91f6df9ac17237e8b533b676f596c69dcb3b58c3cf8dea -SIZE (rust/crates/quic-rpc-derive-0.19.0.crate) = 10032 +SHA256 (rust/crates/quic-rpc-0.20.0.crate) = 18bad98bd048264ceb1361ff9d77a031535d8c1e3fe8f12c6966ec825bf68eb7 +SIZE (rust/crates/quic-rpc-0.20.0.crate) = 97788 +SHA256 (rust/crates/quic-rpc-derive-0.20.0.crate) = abf13f1bced5f2f2642d9d89a29d75f2d81ab34c4acfcb434c209d6094b9b2b7 +SIZE (rust/crates/quic-rpc-derive-0.20.0.crate) = 9962 SHA256 (rust/crates/quick-error-1.2.3.crate) = a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0 SIZE (rust/crates/quick-error-1.2.3.crate) = 15066 SHA256 (rust/crates/quinn-0.11.6.crate) = 62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef @@ -659,6 +647,8 @@ SHA256 (rust/crates/quote-1.0.38.crate) = 0e4dccaaaf89514f546c693ddc140f729f958c SIZE (rust/crates/quote-1.0.38.crate) = 31252 SHA256 (rust/crates/quoted-string-parser-0.1.0.crate) = 0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9 SIZE (rust/crates/quoted-string-parser-0.1.0.crate) = 3623 +SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5 +SIZE (rust/crates/r-efi-5.2.0.crate) = 64764 SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 SIZE (rust/crates/rand-0.8.5.crate) = 87113 SHA256 (rust/crates/rand-0.9.0.crate) = 3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94 @@ -697,8 +687,8 @@ SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4 SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752 SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541 -SHA256 (rust/crates/reqwest-0.12.12.crate) = 43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da -SIZE (rust/crates/reqwest-0.12.12.crate) = 193321 +SHA256 (rust/crates/reqwest-0.12.15.crate) = d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb +SIZE (rust/crates/reqwest-0.12.15.crate) = 199320 SHA256 (rust/crates/resolv-conf-0.7.0.crate) = 52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00 SIZE (rust/crates/resolv-conf-0.7.0.crate) = 17352 SHA256 (rust/crates/rfc6979-0.4.0.crate) = f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2 @@ -707,10 +697,6 @@ SHA256 (rust/crates/ring-0.17.9.crate) = e75ec5e92c4d8aede845126adc3880462345416 SIZE (rust/crates/ring-0.17.9.crate) = 1474639 SHA256 (rust/crates/rsa-0.9.8.crate) = 78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b SIZE (rust/crates/rsa-0.9.8.crate) = 85741 -SHA256 (rust/crates/rtnetlink-0.13.1.crate) = 7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0 -SIZE (rust/crates/rtnetlink-0.13.1.crate) = 42517 -SHA256 (rust/crates/rtnetlink-0.14.1.crate) = b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5 -SIZE (rust/crates/rtnetlink-0.14.1.crate) = 45416 SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047 SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d @@ -723,16 +709,10 @@ SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65 SIZE (rust/crates/rustix-0.38.44.crate) = 379347 SHA256 (rust/crates/rustls-0.23.23.crate) = 47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395 SIZE (rust/crates/rustls-0.23.23.crate) = 342561 -SHA256 (rust/crates/rustls-native-certs-0.8.1.crate) = 7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3 -SIZE (rust/crates/rustls-native-certs-0.8.1.crate) = 31129 SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50 SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849 SHA256 (rust/crates/rustls-pki-types-1.11.0.crate) = 917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c SIZE (rust/crates/rustls-pki-types-1.11.0.crate) = 63933 -SHA256 (rust/crates/rustls-platform-verifier-0.5.0.crate) = e012c45844a1790332c9386ed4ca3a06def221092eda277e6f079728f8ea99da -SIZE (rust/crates/rustls-platform-verifier-0.5.0.crate) = 56761 -SHA256 (rust/crates/rustls-platform-verifier-android-0.1.1.crate) = f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f -SIZE (rust/crates/rustls-platform-verifier-android-0.1.1.crate) = 13919 SHA256 (rust/crates/rustls-webpki-0.102.8.crate) = 64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9 SIZE (rust/crates/rustls-webpki-0.102.8.crate) = 204327 SHA256 (rust/crates/rustversion-1.0.19.crate) = f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4 @@ -743,30 +723,24 @@ SHA256 (rust/crates/salsa20-0.10.2.crate) = 97a22f5af31f73a954c10289c93e8a50cc23 SIZE (rust/crates/salsa20-0.10.2.crate) = 12780 SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 SIZE (rust/crates/same-file-1.0.6.crate) = 10183 -SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d -SIZE (rust/crates/schannel-0.1.27.crate) = 42772 SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294 SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202 SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 SHA256 (rust/crates/sec1-0.7.3.crate) = d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc SIZE (rust/crates/sec1-0.7.3.crate) = 17979 -SHA256 (rust/crates/security-framework-3.2.0.crate) = 271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316 -SIZE (rust/crates/security-framework-3.2.0.crate) = 86095 -SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32 -SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537 SHA256 (rust/crates/self_cell-1.1.0.crate) = c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe SIZE (rust/crates/self_cell-1.1.0.crate) = 16636 SHA256 (rust/crates/semver-1.0.25.crate) = f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03 SIZE (rust/crates/semver-1.0.25.crate) = 31291 SHA256 (rust/crates/send_wrapper-0.6.0.crate) = cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73 SIZE (rust/crates/send_wrapper-0.6.0.crate) = 10519 -SHA256 (rust/crates/serde-1.0.217.crate) = 02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70 -SIZE (rust/crates/serde-1.0.217.crate) = 79019 +SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6 +SIZE (rust/crates/serde-1.0.219.crate) = 78983 SHA256 (rust/crates/serde-error-0.1.3.crate) = 342110fb7a5d801060c885da03bf91bfa7c7ca936deafcc64bb6706375605d47 SIZE (rust/crates/serde-error-0.1.3.crate) = 2771 -SHA256 (rust/crates/serde_derive-1.0.217.crate) = 5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0 -SIZE (rust/crates/serde_derive-1.0.217.crate) = 57749 +SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 +SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 SHA256 (rust/crates/serde_json-1.0.138.crate) = d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949 SIZE (rust/crates/serde_json-1.0.138.crate) = 154769 SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd @@ -775,6 +749,8 @@ SHA256 (rust/crates/serdect-0.2.0.crate) = a84f14a19e9a014bb9f4512488d9829a68e04 SIZE (rust/crates/serdect-0.2.0.crate) = 11691 SHA256 (rust/crates/sha1-0.10.6.crate) = e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba SIZE (rust/crates/sha1-0.10.6.crate) = 13517 +SHA256 (rust/crates/sha1_smol-1.0.1.crate) = bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d +SIZE (rust/crates/sha1_smol-1.0.1.crate) = 9809 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 @@ -789,14 +765,20 @@ SHA256 (rust/crates/signature-2.2.0.crate) = 77549399552de45a898a580c1b41d445bf7 SIZE (rust/crates/signature-2.2.0.crate) = 15531 SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086 +SHA256 (rust/crates/simdutf8-0.1.5.crate) = e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e +SIZE (rust/crates/simdutf8-0.1.5.crate) = 28488 SHA256 (rust/crates/simple-dns-0.9.3.crate) = dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a SIZE (rust/crates/simple-dns-0.9.3.crate) = 52975 SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67 SIZE (rust/crates/slab-0.4.9.crate) = 17108 SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67 SIZE (rust/crates/smallvec-1.13.2.crate) = 35216 -SHA256 (rust/crates/socket2-0.5.8.crate) = c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8 -SIZE (rust/crates/socket2-0.5.8.crate) = 56309 +SHA256 (rust/crates/snafu-0.8.5.crate) = 223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019 +SIZE (rust/crates/snafu-0.8.5.crate) = 69415 +SHA256 (rust/crates/snafu-derive-0.8.5.crate) = 03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917 +SIZE (rust/crates/snafu-derive-0.8.5.crate) = 28537 +SHA256 (rust/crates/socket2-0.5.9.crate) = 4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef +SIZE (rust/crates/socket2-0.5.9.crate) = 57432 SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67 SIZE (rust/crates/spin-0.9.8.crate) = 38958 SHA256 (rust/crates/spki-0.7.3.crate) = d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d @@ -811,18 +793,12 @@ SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8 SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054 SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f SIZE (rust/crates/strsim-0.11.1.crate) = 14266 -SHA256 (rust/crates/struct_iterable-0.1.1.crate) = 849a064c6470a650b72e41fa6c057879b68f804d113af92900f27574828e7712 -SIZE (rust/crates/struct_iterable-0.1.1.crate) = 3233 -SHA256 (rust/crates/struct_iterable_derive-0.1.0.crate) = 8bb939ce88a43ea4e9d012f2f6b4cc789deb2db9d47bad697952a85d6978662c -SIZE (rust/crates/struct_iterable_derive-0.1.0.crate) = 2045 -SHA256 (rust/crates/struct_iterable_internal-0.1.1.crate) = e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a -SIZE (rust/crates/struct_iterable_internal-0.1.1.crate) = 1625 SHA256 (rust/crates/strum-0.26.3.crate) = 8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06 SIZE (rust/crates/strum-0.26.3.crate) = 7237 SHA256 (rust/crates/strum_macros-0.26.4.crate) = 4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be SIZE (rust/crates/strum_macros-0.26.4.crate) = 27531 -SHA256 (rust/crates/stun-rs-0.1.9.crate) = b79cc624c9a747353810310af44f1f03f71eb4561284a894acc0396e6d0de76e -SIZE (rust/crates/stun-rs-0.1.9.crate) = 69481 +SHA256 (rust/crates/stun-rs-0.1.11.crate) = fb921f10397d5669e1af6455e9e2d367bf1f9cebcd6b1dd1dc50e19f6a9ac2ac +SIZE (rust/crates/stun-rs-0.1.11.crate) = 73853 SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292 SIZE (rust/crates/subtle-2.6.1.crate) = 14562 SHA256 (rust/crates/surge-ping-0.8.1.crate) = efbf95ce4c7c5b311d2ce3f088af2b93edef0f09727fa50fbe03c7a979afce77 @@ -869,20 +845,18 @@ SHA256 (rust/crates/tinyvec-1.8.1.crate) = 022db8904dfa342efe721985167e9fcd16c29 SIZE (rust/crates/tinyvec-1.8.1.crate) = 47269 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.43.0.crate) = 3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e -SIZE (rust/crates/tokio-1.43.0.crate) = 817422 +SHA256 (rust/crates/tokio-1.45.0.crate) = 2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165 +SIZE (rust/crates/tokio-1.45.0.crate) = 800721 SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 SHA256 (rust/crates/tokio-rustls-0.26.1.crate) = 5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37 SIZE (rust/crates/tokio-rustls-0.26.1.crate) = 31214 SHA256 (rust/crates/tokio-stream-0.1.17.crate) = eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047 SIZE (rust/crates/tokio-stream-0.1.17.crate) = 38477 -SHA256 (rust/crates/tokio-tungstenite-0.24.0.crate) = edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9 -SIZE (rust/crates/tokio-tungstenite-0.24.0.crate) = 28904 -SHA256 (rust/crates/tokio-tungstenite-wasm-0.4.0.crate) = e21a5c399399c3db9f08d8297ac12b500e86bca82e930253fdc62eaf9c0de6ae -SIZE (rust/crates/tokio-tungstenite-wasm-0.4.0.crate) = 22252 -SHA256 (rust/crates/tokio-util-0.7.13.crate) = d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078 -SIZE (rust/crates/tokio-util-0.7.13.crate) = 115191 +SHA256 (rust/crates/tokio-util-0.7.15.crate) = 66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df +SIZE (rust/crates/tokio-util-0.7.15.crate) = 124255 +SHA256 (rust/crates/tokio-websockets-0.11.4.crate) = 9fcaf159b4e7a376b05b5bfd77bfd38f3324f5fce751b4213bfc7eaa47affb4e +SIZE (rust/crates/tokio-websockets-0.11.4.crate) = 348475 SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41 SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028 SHA256 (rust/crates/toml_edit-0.22.24.crate) = 17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474 @@ -911,8 +885,6 @@ SHA256 (rust/crates/tracing-test-macro-0.2.5.crate) = 04659ddb06c87d233c566112c1 SIZE (rust/crates/tracing-test-macro-0.2.5.crate) = 7665 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.24.0.crate) = 18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a -SIZE (rust/crates/tungstenite-0.24.0.crate) = 61527 SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825 SIZE (rust/crates/typenum-1.17.0.crate) = 42849 SHA256 (rust/crates/ucd-parse-0.1.13.crate) = c06ff81122fcbf4df4c1660b15f7e3336058e7aec14437c9f85c6b31a0f279b9 @@ -931,12 +903,8 @@ SHA256 (rust/crates/universal-hash-0.5.1.crate) = fc1de2c688dc15305988b563c38540 SIZE (rust/crates/universal-hash-0.5.1.crate) = 9146 SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1 SIZE (rust/crates/untrusted-0.9.0.crate) = 14447 -SHA256 (rust/crates/ureq-2.12.1.crate) = 02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d -SIZE (rust/crates/ureq-2.12.1.crate) = 115366 SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60 SIZE (rust/crates/url-2.5.4.crate) = 81097 -SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9 -SIZE (rust/crates/utf-8-0.7.6.crate) = 10422 SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246 SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736 SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be @@ -955,8 +923,8 @@ SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3da 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/wasi-0.13.3+wasi-0.2.2.crate) = 26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2 -SIZE (rust/crates/wasi-0.13.3+wasi-0.2.2.crate) = 136754 +SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3 +SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921 SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5 SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288 SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6 @@ -975,8 +943,6 @@ SHA256 (rust/crates/web-sys-0.3.77.crate) = 33b6dd2ef9186f1f2072e409e99cd22a9753 SIZE (rust/crates/web-sys-0.3.77.crate) = 638246 SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb SIZE (rust/crates/web-time-1.1.0.crate) = 18026 -SHA256 (rust/crates/webpki-root-certs-0.26.8.crate) = 09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4 -SIZE (rust/crates/webpki-root-certs-0.26.8.crate) = 177483 SHA256 (rust/crates/webpki-roots-0.26.8.crate) = 2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9 SIZE (rust/crates/webpki-roots-0.26.8.crate) = 257981 SHA256 (rust/crates/weezl-0.1.8.crate) = 53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082 @@ -1011,8 +977,8 @@ SHA256 (rust/crates/windows-interface-0.58.0.crate) = 053c4c462dc91d3b1504c6fe5a SIZE (rust/crates/windows-interface-0.58.0.crate) = 11246 SHA256 (rust/crates/windows-interface-0.59.0.crate) = cb26fd936d991781ea39e87c3a27285081e3c0da5ca0fcbc02d368cc6f52ff01 SIZE (rust/crates/windows-interface-0.59.0.crate) = 11751 -SHA256 (rust/crates/windows-registry-0.2.0.crate) = e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0 -SIZE (rust/crates/windows-registry-0.2.0.crate) = 10470 +SHA256 (rust/crates/windows-registry-0.4.0.crate) = 4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3 +SIZE (rust/crates/windows-registry-0.4.0.crate) = 12572 SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e SIZE (rust/crates/windows-result-0.2.0.crate) = 12756 SHA256 (rust/crates/windows-result-0.3.0.crate) = d08106ce80268c4067c0571ca55a9b4e9516518eaa1a1fe9b37ca403ae1d1a34 @@ -1021,40 +987,30 @@ SHA256 (rust/crates/windows-strings-0.1.0.crate) = 4cd9b125c486025df0eabcb585e62 SIZE (rust/crates/windows-strings-0.1.0.crate) = 13832 SHA256 (rust/crates/windows-strings-0.3.0.crate) = b888f919960b42ea4e11c2f408fadb55f78a9f236d5eef084103c8ce52893491 SIZE (rust/crates/windows-strings-0.3.0.crate) = 14464 -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-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877 SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 -SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071 -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.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 SHA256 (rust/crates/windows-targets-0.53.0.crate) = b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b SIZE (rust/crates/windows-targets-0.53.0.crate) = 7020 -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.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764 SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443 -SHA256 (rust/crates/windows_aarch64_msvc-0.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.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446 -SHA256 (rust/crates/windows_i686_gnu-0.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.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b @@ -1065,32 +1021,24 @@ SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c56 SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11 SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056 -SHA256 (rust/crates/windows_i686_msvc-0.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.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450 -SHA256 (rust/crates/windows_x86_64_gnu-0.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.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585 -SHA256 (rust/crates/windows_x86_64_gnullvm-0.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.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57 SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434 -SHA256 (rust/crates/windows_x86_64_msvc-0.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.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec @@ -1101,14 +1049,16 @@ SHA256 (rust/crates/winnow-0.7.2.crate) = 59690dea168f2198d1a3b0cac23b8063efcd11 SIZE (rust/crates/winnow-0.7.2.crate) = 170989 SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1 SIZE (rust/crates/winreg-0.50.0.crate) = 29703 -SHA256 (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c -SIZE (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3357 +SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 +SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 SHA256 (rust/crates/wmi-0.14.5.crate) = 7787dacdd8e71cbc104658aade4009300777f9b5fda6a75f19145fedb8a18e71 SIZE (rust/crates/wmi-0.14.5.crate) = 59683 SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 SIZE (rust/crates/write16-1.0.0.crate) = 7218 SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 SIZE (rust/crates/writeable-0.5.5.crate) = 22354 +SHA256 (rust/crates/ws_stream_wasm-0.7.4.crate) = 7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5 +SIZE (rust/crates/ws_stream_wasm-0.7.4.crate) = 23942 SHA256 (rust/crates/x11rb-0.13.1.crate) = 5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12 SIZE (rust/crates/x11rb-0.13.1.crate) = 223916 SHA256 (rust/crates/x11rb-protocol-0.13.1.crate) = ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d @@ -1145,5 +1095,5 @@ SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19d SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 -SHA256 (n0-computer-sendme-v0.25.0_GH0.tar.gz) = d50c39cbe828947a5acf67f4c0d1db46017ff9e2fe2c8e77970dd515b1b024d7 -SIZE (n0-computer-sendme-v0.25.0_GH0.tar.gz) = 50891 +SHA256 (n0-computer-sendme-v0.26.0_GH0.tar.gz) = d41bd166e08b611d993e4bdf01c66610406fe93338783fe9a310eaf726fc337f +SIZE (n0-computer-sendme-v0.26.0_GH0.tar.gz) = 49297 diff --git a/net/syncthing/Makefile b/net/syncthing/Makefile index e4c4df0aa0ec..25cdfe2c307a 100644 --- a/net/syncthing/Makefile +++ b/net/syncthing/Makefile @@ -19,22 +19,23 @@ USE_RC_SUBR= syncthing syncthing-discosrv syncthing-relaysrv \ BINS= syncthing stdiscosrv strelaysrv strelaypoolsrv -.for x in ${BINS} -PLIST_FILES+= bin/${x} -.endfor +# Anonymize +MAKE_ENV+= BUILD_HOST=freebsd \ + BUILD_USER=ports -PORTDOCS= * +NO_CCACHE= yes +NO_WRKSUBDIR= yes USERS= syncthing GROUPS= syncthing -# Anonymize -MAKE_ENV+= BUILD_HOST=freebsd \ - BUILD_USER=ports +.for x in ${BINS} +PLIST_FILES+= bin/${x} +.endfor -OPTIONS_DEFINE= DOCS +PORTDOCS= * -NO_WRKSUBDIR= yes +OPTIONS_DEFINE= DOCS do-build: @( cd ${WRKSRC}/${PORTNAME} ; \ @@ -44,11 +45,6 @@ do-build: ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} run build.go -version v${DISTVERSION} -no-upgrade build strelaypoolsrv; \ ) -do-test: - @( cd ${WRKSRC}/${PORTNAME} ; \ - ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} run build.go -version v${DISTVERSION} -no-upgrade test ; \ - ) - do-install: .for x in ${BINS} ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}/${x} \ @@ -60,4 +56,8 @@ do-install: ${STAGEDIR}${DOCSDIR} .endfor +do-test: + @( cd ${WRKSRC}/${PORTNAME} ; \ + ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} run build.go -version v${DISTVERSION} -no-upgrade test ; \ + ) .include <bsd.port.mk> diff --git a/net/zmap/Makefile b/net/zmap/Makefile index d829817f1b74..d0e67aa7346a 100644 --- a/net/zmap/Makefile +++ b/net/zmap/Makefile @@ -11,23 +11,19 @@ WWW= https://zmap.io/ \ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= gengetopt>0:devel/gengetopt \ - gmake:devel/gmake -LIB_DEPENDS= libjson-c.so:devel/json-c \ +BUILD_DEPENDS= gengetopt>0:devel/gengetopt +LIB_DEPENDS= libgmp.so:math/gmp \ + libjson-c.so:devel/json-c \ libJudy.so:devel/judy \ - libgmp.so:math/gmp \ libpcap.so:net/libpcap \ libunistring.so:devel/libunistring -USES= cmake:insource pkgconfig -USE_GITHUB= yes +USES= cmake pkgconfig -CFLAGS+= -D_SYSTYPE_BSD +USE_GITHUB= yes CMAKE_ON= FORCE_CONF_INSTALL -MANPAGE= zblacklist.1 zmap.1 ztee.1 - post-patch: @${REINPLACE_CMD} -i '' -e 's|/etc/zmap|${LOCALBASE}/etc/zmap|g' -e 's|/usr/local|${LOCALBASE}|g' \ ${WRKSRC}/CMakeLists.txt @@ -39,8 +35,7 @@ post-patch: ${WRKSRC}/src/zmap.c post-install: -.for cnf in blocklist.conf zmap.conf - @${MV} ${STAGEDIR}${ETCDIR}/${cnf} ${STAGEDIR}${ETCDIR}/${cnf}.sample -.endfor + @${MV} ${STAGEDIR}${ETCDIR}/blocklist.conf ${STAGEDIR}${ETCDIR}/blocklist.conf.sample + @${MV} ${STAGEDIR}${ETCDIR}/zmap.conf ${STAGEDIR}${ETCDIR}/zmap.conf.sample .include <bsd.port.mk> diff --git a/news/inn-current/Makefile b/news/inn-current/Makefile index fc465e7a759f..26bb36633f90 100644 --- a/news/inn-current/Makefile +++ b/news/inn-current/Makefile @@ -5,7 +5,7 @@ MASTER_SITE_SUBDIR= inn/snapshots DISTNAME= inn-${BRANCH}-${SNAPSHOT} BRANCH= 2.8 -SNAPSHOT= 20250329 +SNAPSHOT= 20250509 CONFLICTS= inn-2.[0-9]* @@ -17,8 +17,8 @@ WRKSRC= ${WRKDIR}/${DISTNAME} CPE_PRODUCT= inn -INNLIB_LONG= 9.0.1 -LIBVER_LONG= 3.0.8 -LIBSTORAGEVER_LONG= 3.1.2 +INNLIB_LONG= 9.0.2 +LIBVER_LONG= 3.0.9 +LIBSTORAGEVER_LONG= 3.1.3 .include "${.CURDIR}/../inn/Makefile" diff --git a/news/inn-current/distinfo b/news/inn-current/distinfo index 0c5175cbb4d5..9f792b223ad9 100644 --- a/news/inn-current/distinfo +++ b/news/inn-current/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1743399468 -SHA256 (inn-2.8-20250329.tar.gz) = 3dbbf22d4f81991dcae4a759df6e5a4968169566a23a754af9072a0b50133914 -SIZE (inn-2.8-20250329.tar.gz) = 2834830 +TIMESTAMP = 1747222301 +SHA256 (inn-2.8-20250509.tar.gz) = 7eff22da102aac26653ddacc17560fb3b6bad2e609c14cba92e34cf0d6f9c83f +SIZE (inn-2.8-20250509.tar.gz) = 2835439 diff --git a/news/inn-current/pkg-plist b/news/inn-current/pkg-plist index a1d8bdc19d73..7991c26c826f 100644 --- a/news/inn-current/pkg-plist +++ b/news/inn-current/pkg-plist @@ -188,7 +188,6 @@ lib/libinnstorage.so.%%LIBSTORAGEVER_LONG%% @comment -------------------------------------------------------------- @cwd share/man/man1/convdate.1.gz -share/man/man1/delayer.1.gz share/man/man1/fastrm.1.gz share/man/man1/gencancel.1.gz share/man/man1/getlist.1.gz @@ -200,10 +199,8 @@ share/man/man1/nntpget.1.gz share/man/man1/pgpverify.1.gz share/man/man1/pullnews.1.gz share/man/man1/rnews.1.gz -share/man/man1/shlock.1.gz share/man/man1/shrinkfile.1.gz share/man/man1/simpleftp.1.gz -share/man/man1/sm.1.gz share/man/man3/INN::Config.3pm.gz share/man/man3/INN::Utils::Shlock.3pm.gz share/man/man3/INN::ovsqlite_client.3pm.gz @@ -263,6 +260,7 @@ share/man/man8/cnfsstat.8.gz share/man/man8/controlchan.8.gz share/man/man8/ctlinnd.8.gz share/man/man8/cvtbatch.8.gz +share/man/man8/delayer.8.gz share/man/man8/docheckgroups.8.gz share/man/man8/domain.8.gz share/man/man8/expire.8.gz @@ -309,6 +307,8 @@ share/man/man8/send-ihave.8.gz share/man/man8/send-uucp.8.gz share/man/man8/sendinpaths.8.gz share/man/man8/sendxbatches.8.gz +share/man/man8/shlock.8.gz +share/man/man8/sm.8.gz share/man/man8/tally.control.8.gz share/man/man8/tdx-util.8.gz share/man/man8/tinyleaf.8.gz diff --git a/ports-mgmt/pkg-devel/Makefile b/ports-mgmt/pkg-devel/Makefile index d35d37d0e5d2..c13f3ac5ee78 100644 --- a/ports-mgmt/pkg-devel/Makefile +++ b/ports-mgmt/pkg-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= pkg -DISTVERSION= 2.1.99.2 +DISTVERSION= 2.1.99.3 _PKG_VERSION= ${DISTVERSION} CATEGORIES= ports-mgmt PKGNAMESUFFIX= -devel @@ -12,7 +12,7 @@ LICENSE= BSD2CLAUSE USE_GITHUB= yes GH_ACCOUNT= freebsd -GH_TAGNAME= 20171d94b +GH_TAGNAME= 2db1f609a CFLAGS+= -O0 -g -Wno-error USE_LDCONFIG= ${PREFIX}/lib/compat/pkg diff --git a/ports-mgmt/pkg-devel/distinfo b/ports-mgmt/pkg-devel/distinfo index d493afd94361..911febe53dde 100644 --- a/ports-mgmt/pkg-devel/distinfo +++ b/ports-mgmt/pkg-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744881008 -SHA256 (freebsd-pkg-2.1.99.2-20171d94b_GH0.tar.gz) = 2f5e23542cf80c563990c4cd4475fd489ca4fc146f889cf4f2b3465b3ee32ed8 -SIZE (freebsd-pkg-2.1.99.2-20171d94b_GH0.tar.gz) = 16431848 +TIMESTAMP = 1747400455 +SHA256 (freebsd-pkg-2.1.99.3-2db1f609a_GH0.tar.gz) = 077483ab30e136e44c7ebbcb9f7f8935afd2b1abe04f2dc844ac97e64264a9b6 +SIZE (freebsd-pkg-2.1.99.3-2db1f609a_GH0.tar.gz) = 16427432 diff --git a/science/R-cran-eco/Makefile b/science/R-cran-eco/Makefile index 2967e9718267..8d881dd8cb0a 100644 --- a/science/R-cran-eco/Makefile +++ b/science/R-cran-eco/Makefile @@ -10,6 +10,9 @@ WWW= https://imai.princeton.edu/software/eco.html LICENSE= GPLv2 +DEPRECATED= Unsupported upstream +EXPIRATION_DATE=2025-06-14 + USES= cran:auto-plist,compiles .include <bsd.port.mk> diff --git a/science/dlib-cpp/Makefile b/science/dlib-cpp/Makefile index 617844a38ab6..98077e355d01 100644 --- a/science/dlib-cpp/Makefile +++ b/science/dlib-cpp/Makefile @@ -1,6 +1,6 @@ PORTNAME= dlib DISTVERSIONPREFIX=v -DISTVERSION= 19.24.8 +DISTVERSION= 19.24.9 CATEGORIES= science devel math PKGNAMESUFFIX= -cpp diff --git a/science/dlib-cpp/distinfo b/science/dlib-cpp/distinfo index 8f3862fa286a..0487c698a89c 100644 --- a/science/dlib-cpp/distinfo +++ b/science/dlib-cpp/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1741012083 -SHA256 (davisking-dlib-v19.24.8_GH0.tar.gz) = 819cfd28639fe80ca28039f591a15e01772b7ada479de4a002b95bcb8077ce80 -SIZE (davisking-dlib-v19.24.8_GH0.tar.gz) = 18965261 +TIMESTAMP = 1747489988 +SHA256 (davisking-dlib-v19.24.9_GH0.tar.gz) = 65ff8debc3ffea84430bdd4992982082caf505404e16d986b7493c00f96f44e9 +SIZE (davisking-dlib-v19.24.9_GH0.tar.gz) = 18971864 diff --git a/science/dlib-cpp/pkg-plist b/science/dlib-cpp/pkg-plist index 2efa18ced207..22217450563b 100644 --- a/science/dlib-cpp/pkg-plist +++ b/science/dlib-cpp/pkg-plist @@ -1051,6 +1051,8 @@ include/dlib/timer/timer_abstract.h include/dlib/timer/timer_heavy.h include/dlib/timing.h include/dlib/tokenizer.h +include/dlib/tokenizer/bpe_tokenizer.h +include/dlib/tokenizer/bpe_tokenizer_abstract.h include/dlib/tokenizer/tokenizer_kernel_1.h include/dlib/tokenizer/tokenizer_kernel_abstract.h include/dlib/tokenizer/tokenizer_kernel_c.h @@ -1082,7 +1084,7 @@ lib/cmake/dlib/dlib.cmake lib/cmake/dlib/dlibConfig.cmake lib/cmake/dlib/dlibConfigVersion.cmake lib/libdlib.so -lib/libdlib.so.19.24.8 +lib/libdlib.so.19.24.9 libdata/pkgconfig/dlib-1.pc @dir include/dlib/all @dir include/dlib/cmake_utils/test_for_avx diff --git a/science/py-dlib/Makefile b/science/py-dlib/Makefile index 520f5dc60851..f2135995472e 100644 --- a/science/py-dlib/Makefile +++ b/science/py-dlib/Makefile @@ -1,6 +1,5 @@ PORTNAME= dlib -DISTVERSION= 19.24.6 -PORTREVISION= 2 +DISTVERSION= 19.24.9 CATEGORIES= science devel math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/science/py-dlib/distinfo b/science/py-dlib/distinfo index 93f2a9e4be33..02631ed74b01 100644 --- a/science/py-dlib/distinfo +++ b/science/py-dlib/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1729934493 -SHA256 (dlib-19.24.6.tar.gz) = 77e3c28ac2c66141514b07cbb74b7c7f80381c019ce5fec99007980bc6490d7d -SIZE (dlib-19.24.6.tar.gz) = 3374495 +TIMESTAMP = 1747503281 +SHA256 (dlib-19.24.9.tar.gz) = 211a233d1883f6340719b8f5c6a51fad7446702a1d2c7024e4a5053e599f7fb5 +SIZE (dlib-19.24.9.tar.gz) = 3390387 diff --git a/science/py-dlib/files/patch-dlib_serialize.h b/science/py-dlib/files/patch-dlib_serialize.h deleted file mode 100644 index 94306df64159..000000000000 --- a/science/py-dlib/files/patch-dlib_serialize.h +++ /dev/null @@ -1,11 +0,0 @@ ---- dlib/serialize.h.orig 2024-02-17 21:44:22 UTC -+++ dlib/serialize.h -@@ -639,6 +639,8 @@ namespace dlib - USE_DEFAULT_INT_SERIALIZATION_FOR(wchar_t) - #endif - -+ USE_DEFAULT_INT_SERIALIZATION_FOR(char32_t) -+ - // ---------------------------------------------------------------------------------------- - - inline void serialize( diff --git a/science/py-dlib/files/patch-dlib_unicode_unicode.h b/science/py-dlib/files/patch-dlib_unicode_unicode.h deleted file mode 100644 index 4527fdc054b0..000000000000 --- a/science/py-dlib/files/patch-dlib_unicode_unicode.h +++ /dev/null @@ -1,11 +0,0 @@ ---- dlib/unicode/unicode.h.orig 2024-02-17 21:44:22 UTC -+++ dlib/unicode/unicode.h -@@ -16,7 +16,7 @@ namespace dlib - - // ---------------------------------------------------------------------------------------- - -- using unichar = uint32; -+ using unichar = char32_t; - using ustring = std::basic_string<unichar>; - - // ---------------------------------------------------------------------------------------- diff --git a/science/salome-configuration/Makefile b/science/salome-configuration/Makefile index 6afeb92ff2cd..e9e82543ac64 100644 --- a/science/salome-configuration/Makefile +++ b/science/salome-configuration/Makefile @@ -7,6 +7,10 @@ MAINTAINER= yuri@FreeBSD.org COMMENT= Salome Project: Multi-physics simulations: Configuration WWW= https://www.salome-platform.org/ +BROKEN= Unfetchable +DEPRECATED= Fails to fetch +EXPIRATION_DATE=2025-06-30 + FETCH_DEPENDS= git:devel/git GIT_URL= https://git.salome-platform.org/gitpub/tools/configuration.git # all Salome repositories: https://git.salome-platform.org/gitweb/ diff --git a/security/boringssl/Makefile b/security/boringssl/Makefile index b427ea2ca43b..6605e0b5f37c 100644 --- a/security/boringssl/Makefile +++ b/security/boringssl/Makefile @@ -1,5 +1,5 @@ PORTNAME= boringssl -PORTVERSION= 0.0.0.0.2025.05.07.01 +PORTVERSION= 0.0.0.0.2025.05.13.01 CATEGORIES= security EXTRACT_ONLY= ${GH_ACCOUNT}-${PORTNAME}-${PORTVERSION}-${GH_TAGNAME}_GH0.tar.gz @@ -19,7 +19,7 @@ CPE_VENDOR= google USE_GITHUB= yes GH_ACCOUNT= google -GH_TAGNAME= 864a235 +GH_TAGNAME= 8997380 CMAKE_ARGS+= -DBUILD_SHARED_LIBS=1 CFLAGS_i386= -msse2 diff --git a/security/boringssl/distinfo b/security/boringssl/distinfo index 6e865c3421a2..170d821b0d5f 100644 --- a/security/boringssl/distinfo +++ b/security/boringssl/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746707749 +TIMESTAMP = 1747212570 SHA256 (filippo.io/edwards25519/@v/v1.1.0.zip) = 9ac43a686d06fdebd719f7af3866c87eb069302272dfb131007adf471c308b65 SIZE (filippo.io/edwards25519/@v/v1.1.0.zip) = 55809 SHA256 (filippo.io/edwards25519/@v/v1.1.0.mod) = 099556fc4d7e6f5cb135efdd8b6bb4c0932e38ea058c53fc5fa5ce285572fb61 @@ -11,5 +11,5 @@ SHA256 (golang.org/x/sys/@v/v0.32.0.zip) = 85d47075d21fd7ef35d9a47fc73f2356fb3cd SIZE (golang.org/x/sys/@v/v0.32.0.zip) = 1991164 SHA256 (golang.org/x/sys/@v/v0.32.0.mod) = f67e3e18f4c08e60a7e80726ab36b691fdcea5b81ae1c696ff64caf518bcfe3d SIZE (golang.org/x/sys/@v/v0.32.0.mod) = 35 -SHA256 (google-boringssl-0.0.0.0.2025.05.07.01-864a235_GH0.tar.gz) = 5d35ccedd5ce74a11523ad4f08c1edb589697d22b11b644edae65f3592351f98 -SIZE (google-boringssl-0.0.0.0.2025.05.07.01-864a235_GH0.tar.gz) = 46144754 +SHA256 (google-boringssl-0.0.0.0.2025.05.13.01-8997380_GH0.tar.gz) = c385bc4309ecc58e04cf701d2e95a3dbc9c74e12cb3e5b9417b3df6cb2de790f +SIZE (google-boringssl-0.0.0.0.2025.05.13.01-8997380_GH0.tar.gz) = 46142079 diff --git a/security/gokey/Makefile b/security/gokey/Makefile index d52063e0f7b9..0bf965c28340 100644 --- a/security/gokey/Makefile +++ b/security/gokey/Makefile @@ -1,7 +1,6 @@ PORTNAME= gokey DISTVERSIONPREFIX= v -DISTVERSION= 0.1.2 -PORTREVISION= 18 +DISTVERSION= 0.1.3 CATEGORIES= security MAINTAINER= ports@FreeBSD.org @@ -12,8 +11,6 @@ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE USES= go:modules -USE_GITHUB= nodefault -GH_TUPLE= golang:sys:v0.6.0:sys GO_MODULE= github.com/cloudflare/gokey GO_TARGET= ./cmd/gokey @@ -24,10 +21,6 @@ PORTDOCS= README.md OPTIONS_DEFINE= DOCS -pre-build: - ${RM} -r ${WRKSRC}/vendor/golang.org/x/sys - ${LN} -s ${WRKDIR}/sys-* ${WRKSRC}/vendor/golang.org/x/sys - do-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/${PORTDOCS} ${STAGEDIR}${DOCSDIR} diff --git a/security/gokey/distinfo b/security/gokey/distinfo index 2c8ae8c5be3d..c73bec521cf1 100644 --- a/security/gokey/distinfo +++ b/security/gokey/distinfo @@ -1,7 +1,5 @@ -TIMESTAMP = 1679785309 -SHA256 (go/security_gokey/gokey-v0.1.2/v0.1.2.mod) = 950a88925784603d0a9b5af156afc7233601d33ddc237d01d6978f1c2f53e310 -SIZE (go/security_gokey/gokey-v0.1.2/v0.1.2.mod) = 167 -SHA256 (go/security_gokey/gokey-v0.1.2/v0.1.2.zip) = 44c0e33ce53a39d2c1aadb457478faacc46204e2a60c171d48c4c943d38df639 -SIZE (go/security_gokey/gokey-v0.1.2/v0.1.2.zip) = 25411 -SHA256 (go/security_gokey/gokey-v0.1.2/golang-sys-v0.6.0_GH0.tar.gz) = b4f6d17c7a128f76169964b437cb66b3f2dbf9a33361928ec19dfecf7b03fc54 -SIZE (go/security_gokey/gokey-v0.1.2/golang-sys-v0.6.0_GH0.tar.gz) = 1434234 +TIMESTAMP = 1747434941 +SHA256 (go/security_gokey/gokey-v0.1.3/v0.1.3.mod) = ad79ff30a189d8bc2b82304a17d2a9f4aa1f40244a806cf52ef851fbb977d722 +SIZE (go/security_gokey/gokey-v0.1.3/v0.1.3.mod) = 113 +SHA256 (go/security_gokey/gokey-v0.1.3/v0.1.3.zip) = e07dd6921bbea368a26b1445f42709837f1df2d9144739b14bb8c9e6fce944e4 +SIZE (go/security_gokey/gokey-v0.1.3/v0.1.3.zip) = 28472 diff --git a/security/gokey/files/patch-go.mod b/security/gokey/files/patch-go.mod index 5e7868a42b96..99bcac4b32fe 100644 --- a/security/gokey/files/patch-go.mod +++ b/security/gokey/files/patch-go.mod @@ -1,14 +1,14 @@ ---- go.mod.orig 2023-03-25 23:03:40 UTC +--- go.mod.orig 1979-11-29 16:00:00 UTC +++ go.mod -@@ -1,8 +1,10 @@ +@@ -1,8 +1,10 @@ module github.com/cloudflare/gokey module github.com/cloudflare/gokey -go 1.13 +go 1.17 require ( - golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 + golang.org/x/crypto v0.17.0 + golang.org/x/term v0.15.0 ) + -+require golang.org/x/sys v0.6.0 // indirect ++require golang.org/x/sys v0.15.0 // indirect diff --git a/security/gokey/files/patch-go.sum b/security/gokey/files/patch-go.sum deleted file mode 100644 index cff06eac8113..000000000000 --- a/security/gokey/files/patch-go.sum +++ /dev/null @@ -1,11 +0,0 @@ ---- go.sum.orig 2023-03-25 23:03:43 UTC -+++ go.sum -@@ -5,6 +5,8 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go - golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= - golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -+golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= - golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/security/gokey/files/patch-vendor_modules.txt b/security/gokey/files/patch-vendor_modules.txt index e871e87d957c..e169e8c39333 100644 --- a/security/gokey/files/patch-vendor_modules.txt +++ b/security/gokey/files/patch-vendor_modules.txt @@ -1,18 +1,16 @@ ---- vendor/modules.txt.orig 2023-03-25 23:04:26 UTC +--- vendor/modules.txt.orig 2025-05-16 22:37:27 UTC +++ vendor/modules.txt -@@ -1,11 +1,14 @@ - # golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d +@@ -1,10 +1,13 @@ + # golang.org/x/crypto v0.17.0 +## explicit; go 1.17 golang.org/x/crypto/ed25519 golang.org/x/crypto/hkdf golang.org/x/crypto/pbkdf2 --# golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 -+# golang.org/x/sys v0.6.0 + # golang.org/x/sys v0.15.0 +## explicit; go 1.17 - golang.org/x/sys/internal/unsafeheader golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows - # golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 -+## explicit; go 1.11 + # golang.org/x/term v0.15.0 ++## explicit; go 1.17 golang.org/x/term diff --git a/security/libp11/Makefile b/security/libp11/Makefile index 1ac2909bf055..7575e9c2ed49 100644 --- a/security/libp11/Makefile +++ b/security/libp11/Makefile @@ -1,5 +1,5 @@ PORTNAME= libp11 -PORTVERSION= 0.4.13 +PORTVERSION= 0.4.14 DISTVERSIONPREFIX= ${PORTNAME}- CATEGORIES= security devel @@ -35,7 +35,9 @@ CONFIGURE_ENV= LTLIB_CFLAGS="-I${LOCALBASE}/include" \ OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" -CONFIGURE_ARGS= --with-enginesdir=${PREFIX}/lib/engines +CONFIGURE_ARGS= --with-enginesdir=${PREFIX}/lib/engines \ + --with-modulesdir=${PREFIX}/lib/ossl-modules \ + --enable-static-engine INSTALL_TARGET= install-strip diff --git a/security/libp11/distinfo b/security/libp11/distinfo index def41ebc82a5..15ac552b5724 100644 --- a/security/libp11/distinfo +++ b/security/libp11/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1734366816 -SHA256 (OpenSC-libp11-libp11-0.4.13_GH0.tar.gz) = 5e8e258c6a8e33155c3a2bd2bd7d12a758f82b7bda1f92e8b77075d16edc9889 -SIZE (OpenSC-libp11-libp11-0.4.13_GH0.tar.gz) = 148443 +TIMESTAMP = 1747212917 +SHA256 (OpenSC-libp11-libp11-0.4.14_GH0.tar.gz) = 99405d1b46bf48a990892676b7bc5597692adc53fc50f7bb19e83d03bd394b94 +SIZE (OpenSC-libp11-libp11-0.4.14_GH0.tar.gz) = 172631 diff --git a/security/libp11/files/patch-configure.ac b/security/libp11/files/patch-configure.ac index 42b316830aa1..d427d911cbc4 100644 --- a/security/libp11/files/patch-configure.ac +++ b/security/libp11/files/patch-configure.ac @@ -1,6 +1,6 @@ ---- configure.ac.orig 2024-12-13 18:13:57 UTC +--- configure.ac.orig 2025-05-13 21:17:57 UTC +++ configure.ac -@@ -208,7 +208,7 @@ fi +@@ -246,7 +246,7 @@ fi [Default PKCS#11 module.]) fi diff --git a/security/libp11/files/patch-src_Makefile.am b/security/libp11/files/patch-src_Makefile.am new file mode 100644 index 000000000000..f8e9be42f65a --- /dev/null +++ b/security/libp11/files/patch-src_Makefile.am @@ -0,0 +1,13 @@ +--- src/Makefile.am.orig 2025-05-14 13:58:16 UTC ++++ src/Makefile.am +@@ -4,8 +4,8 @@ EXTRA_DIST = Makefile.mak libp11.rc.in pkcs11.rc.in + CLEANFILES = libp11.pc + EXTRA_DIST = Makefile.mak libp11.rc.in pkcs11.rc.in + +-noinst_HEADERS= libp11-int.h pkcs11.h p11_pthread.h +-include_HEADERS= libp11.h p11_err.h util.h ++noinst_HEADERS= libp11-int.h pkcs11.h p11_pthread.h util.h ++include_HEADERS= libp11.h p11_err.h + if ENABLE_STATIC_ENGINE + lib_LTLIBRARIES = libp11.la libpkcs11.la + else diff --git a/security/libp11/pkg-plist b/security/libp11/pkg-plist index 73bea38f97d3..79526fa0f30a 100644 --- a/security/libp11/pkg-plist +++ b/security/libp11/pkg-plist @@ -2,10 +2,12 @@ include/libp11.h include/p11_err.h lib/engines/libpkcs11.so lib/engines/pkcs11.so +lib/ossl-modules/libpkcs11.so +lib/ossl-modules/pkcs11prov.so lib/libp11.a lib/libp11.so lib/libp11.so.3 -lib/libp11.so.3.6.0 +lib/libp11.so.3.7.0 lib/libpkcs11.a lib/libpkcs11.so lib/libpkcs11.so.0 @@ -15,6 +17,9 @@ libdata/pkgconfig/libp11.pc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/README %%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/decrypt.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/eckeygen.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/getrandom.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/listkeys.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/listkeys_ext.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsakeygen.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/storecert.c diff --git a/security/py-netbox-secrets/Makefile b/security/py-netbox-secrets/Makefile index 72e83b741b37..79466b639c92 100644 --- a/security/py-netbox-secrets/Makefile +++ b/security/py-netbox-secrets/Makefile @@ -1,6 +1,5 @@ PORTNAME= netbox-secrets -DISTVERSION= 2.2.0 -PORTREVISION= 1 +DISTVERSION= 2.2.1 CATEGORIES= security python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -13,10 +12,12 @@ WWW= https://github.com/Onemind-Services-LLC/netbox-secrets LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE.md +BUILD_DEPENDS= ${PY_SETUPTOOLS} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycryptodome>0:security/py-pycryptodome@${PY_FLAVOR} USES= python -USE_PYTHON= autoplist distutils +USE_PYTHON= autoplist pep517 NO_ARCH= yes diff --git a/security/py-netbox-secrets/distinfo b/security/py-netbox-secrets/distinfo index 2a6f2505f573..25c5b104549d 100644 --- a/security/py-netbox-secrets/distinfo +++ b/security/py-netbox-secrets/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738929151 -SHA256 (netbox_secrets-2.2.0.tar.gz) = 6140dd46981c65a96bc174ac07905ae7355bdbdc3d144fc281a0cde0f6e096c8 -SIZE (netbox_secrets-2.2.0.tar.gz) = 57503 +TIMESTAMP = 1747310577 +SHA256 (netbox_secrets-2.2.1.tar.gz) = 26f817f9a9c03dcd34aaaa89d4744b2d15408d0e38f584aa6f2cb73bdd48958f +SIZE (netbox_secrets-2.2.1.tar.gz) = 57852 diff --git a/security/py-pyscard/Makefile b/security/py-pyscard/Makefile index 567e54d49654..5b28b62cce6a 100644 --- a/security/py-pyscard/Makefile +++ b/security/py-pyscard/Makefile @@ -1,6 +1,5 @@ PORTNAME= pyscard -PORTVERSION= 2.2.0 -PORTREVISION= 1 +PORTVERSION= 2.2.2 CATEGORIES= security python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/security/py-pyscard/distinfo b/security/py-pyscard/distinfo index f91b3fcf8330..dda449dfffbe 100644 --- a/security/py-pyscard/distinfo +++ b/security/py-pyscard/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1736166332 -SHA256 (pyscard-2.2.0.tar.gz) = 6aa194d4bb295e78a97056dd1d32273cc69ddbe3c852aad60a8578f04017a1bf -SIZE (pyscard-2.2.0.tar.gz) = 154847 +TIMESTAMP = 1747500433 +SHA256 (pyscard-2.2.2.tar.gz) = c77481fb86f4a17bc441d7b36551c1d36a9d3a48c4bb30ab8118886e6f275081 +SIZE (pyscard-2.2.2.tar.gz) = 156637 diff --git a/security/tpm2-tss/Makefile b/security/tpm2-tss/Makefile index f02c6c5417b2..8d60a2b418bc 100644 --- a/security/tpm2-tss/Makefile +++ b/security/tpm2-tss/Makefile @@ -1,6 +1,6 @@ PORTNAME= tpm2-tss DISTVERSION= 4.0.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= security MASTER_SITES= https://github.com/tpm2-software/tpm2-tss/releases/download/${DISTVERSION}/ diff --git a/security/tpm2-tss/files/patch-src_tss2-esys_esys__context.c b/security/tpm2-tss/files/patch-src_tss2-esys_esys__context.c new file mode 100644 index 000000000000..d613ac6e7e64 --- /dev/null +++ b/security/tpm2-tss/files/patch-src_tss2-esys_esys__context.c @@ -0,0 +1,11 @@ +--- src/tss2-esys/esys_context.c.orig 2025-02-22 22:43:21 UTC ++++ src/tss2-esys/esys_context.c +@@ -26,7 +26,7 @@ + * If not specified, load a TCTI in this order: + * Library libtss2-tcti-default.so (link to the preferred TCTI) + * Library libtss2-tcti-tabrmd.so (tabrmd) +- * Device /dev/tpmrm0 (kernel resident resource manager) ++ * Device /dev/tpmrm0 (kernel resident resource manager, SKIPPED on FreeBSD) + * Device /dev/tpm0 (hardware TPM) + * TCP socket localhost:2321 (TPM simulator) + * @param esys_context [out] The ESYS_CONTEXT. diff --git a/security/tpm2-tss/files/patch-src_tss2-tcti_tcti-device.c b/security/tpm2-tss/files/patch-src_tss2-tcti_tcti-device.c new file mode 100644 index 000000000000..52a165e2a191 --- /dev/null +++ b/security/tpm2-tss/files/patch-src_tss2-tcti_tcti-device.c @@ -0,0 +1,12 @@ +--- src/tss2-tcti/tcti-device.c.orig 2023-01-23 18:36:16.000000000 +0000 ++++ src/tss2-tcti/tcti-device.c 2025-05-08 08:40:29.255475000 +0000 +@@ -61,7 +61,9 @@ + #ifdef __VXWORKS__ + "/tpm0" + #else ++#ifndef __FreeBSD__ + "/dev/tpmrm0", ++#endif /* __FreeBSD__ */ + "/dev/tpm0", + #endif /* __VX_WORKS__ */ + }; diff --git a/security/tpm2-tss/files/patch-src_tss2-tcti_tctildr-dl.c b/security/tpm2-tss/files/patch-src_tss2-tcti_tctildr-dl.c new file mode 100644 index 000000000000..9353fa36c133 --- /dev/null +++ b/security/tpm2-tss/files/patch-src_tss2-tcti_tctildr-dl.c @@ -0,0 +1,16 @@ +--- src/tss2-tcti/tctildr-dl.c.orig 2025-02-22 22:43:21 UTC ++++ src/tss2-tcti/tctildr-dl.c +@@ -37,11 +37,13 @@ struct { + .file = "libtss2-tcti-tabrmd.so.0", + .description = "Access libtss2-tcti-tabrmd.so", + }, ++#if !defined(__FreeBSD__) + { + .file = "libtss2-tcti-device.so.0", + .conf = "/dev/tpmrm0", + .description = "Access libtss2-tcti-device.so.0 with /dev/tpmrm0", + }, ++#endif + { + .file = "libtss2-tcti-device.so.0", + .conf = "/dev/tpm0", diff --git a/security/tpm2-tss/files/patch-src_tss2-tcti_tctildr-nodl.c b/security/tpm2-tss/files/patch-src_tss2-tcti_tctildr-nodl.c new file mode 100644 index 000000000000..219dee0c0639 --- /dev/null +++ b/security/tpm2-tss/files/patch-src_tss2-tcti_tctildr-nodl.c @@ -0,0 +1,11 @@ +--- src/tss2-tcti/tctildr-nodl.c.orig 2025-02-22 22:43:21 UTC ++++ src/tss2-tcti/tctildr-nodl.c +@@ -67,7 +67,7 @@ struct { + .init = Tss2_Tcti_Tbs_Init, + .description = "Access to TBS", + }, +-#elif defined (__VXWORKS__) ++#elif defined (__VXWORKS__) || defined(__FreeBSD__) + { + .names = { + "libtss2-tcti-device.so.0", diff --git a/security/tpm2-tss/files/patch-test_unit_tctildr-nodl.c b/security/tpm2-tss/files/patch-test_unit_tctildr-nodl.c new file mode 100644 index 000000000000..99090001bd2b --- /dev/null +++ b/security/tpm2-tss/files/patch-test_unit_tctildr-nodl.c @@ -0,0 +1,14 @@ +--- test/unit/tctildr-nodl.c.orig 2025-02-22 22:43:21 UTC ++++ test/unit/tctildr-nodl.c +@@ -65,9 +65,11 @@ test_tctildr_get_default_all_fail (void **state) + /* device:/dev/tpm0 */ + will_return (__wrap_tcti_from_init, tcti_ctx); + will_return (__wrap_tcti_from_init, TEST_RC); ++#if !defined (__FreeBSD__) + /* device:/dev/tpmrm0 */ + will_return (__wrap_tcti_from_init, tcti_ctx); + will_return (__wrap_tcti_from_init, TEST_RC); ++#endif + /* swtpm */ + will_return (__wrap_tcti_from_init, tcti_ctx); + will_return (__wrap_tcti_from_init, TEST_RC); diff --git a/security/vuls/Makefile b/security/vuls/Makefile index a202c3f5fe81..1ade7a45b4e5 100644 --- a/security/vuls/Makefile +++ b/security/vuls/Makefile @@ -1,6 +1,6 @@ PORTNAME= vuls DISTVERSIONPREFIX=v -DISTVERSION= 0.31.1 +DISTVERSION= 0.32.0 CATEGORIES= security MAINTAINER= girgen@FreeBSD.org @@ -10,7 +10,7 @@ WWW= https://vuls.io LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/LICENSE -USES= go:1.23,modules +USES= go:1.24,modules GO_MODULE= github.com/future-architect/vuls GO_TARGET= ./cmd/${PORTNAME} diff --git a/security/vuls/distinfo b/security/vuls/distinfo index a567c9ed0f6c..171f6cc2ca7b 100644 --- a/security/vuls/distinfo +++ b/security/vuls/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1746696143 -SHA256 (go/security_vuls/vuls-v0.31.1/v0.31.1.mod) = 5b19a8a2789f1f93369c7bf24d38df8b345a7a871b2b229aec6349b9db98027e -SIZE (go/security_vuls/vuls-v0.31.1/v0.31.1.mod) = 20796 -SHA256 (go/security_vuls/vuls-v0.31.1/v0.31.1.zip) = 40312da1c3021023a0bee1822b8622713e48137b3ca29f14f4347c79a88ec425 -SIZE (go/security_vuls/vuls-v0.31.1/v0.31.1.zip) = 1376467 +TIMESTAMP = 1747479508 +SHA256 (go/security_vuls/vuls-v0.32.0/v0.32.0.mod) = e3091e79324dcdd3e3c2959a3b9fa4ab03fc4d53a0ce41a76fc793a68b57302e +SIZE (go/security_vuls/vuls-v0.32.0/v0.32.0.mod) = 20795 +SHA256 (go/security_vuls/vuls-v0.32.0/v0.32.0.zip) = 1eed06de6c88de618a25184d843010c76b30b77a8e554f028a2700a5e267266b +SIZE (go/security_vuls/vuls-v0.32.0/v0.32.0.zip) = 1389053 diff --git a/security/vuxml/vuln/2025.xml b/security/vuxml/vuln/2025.xml index 8bcfd16d2c2e..10fce3138813 100644 --- a/security/vuxml/vuln/2025.xml +++ b/security/vuxml/vuln/2025.xml @@ -1,3 +1,197 @@ + <vuln vid="46594aa3-32f7-11f0-a116-8447094a420f"> + <topic>WeeChat -- Multiple vulnerabilities</topic> + <affects> + <package> + <name>weechat</name> + <range><lt>4.6.3</lt></range> + </package> + </affects> + <description> + <body xmlns="http://www.w3.org/1999/xhtml"> + <p>The Weechat project reports:</p> + <blockquote cite="https://weechat.org/doc/weechat/security/"> + <p>Multiple integer and buffer overflows in WeeChat core.</p> + </blockquote> + </body> + </description> + <references> + <url>https://weechat.org/doc/weechat/security/</url> + </references> + <dates> + <discovery>2025-05-11</discovery> + <entry>2025-05-17</entry> + </dates> + </vuln> + + <vuln vid="79400d31-3166-11f0-8cb5-a8a1599412c6"> + <topic>chromium -- multiple security fixes</topic> + <affects> + <package> + <name>chromium</name> + <range><lt>136.0.7103.113</lt></range> + </package> + <package> + <name>ungoogled-chromium</name> + <range><lt>136.0.7103.113</lt></range> + </package> + </affects> + <description> + <body xmlns="http://www.w3.org/1999/xhtml"> + <p>Chrome Releases reports:</p> + <blockquote cite="https://chromereleases.googleblog.com/2025/05/stable-channel-update-for-desktop_14.html"> + <p>This update includes 4 security fixes:</p> + <ul> + <li>[415810136] High CVE-2025-4664: Insufficient policy enforcement in Loader. Source: X post from @slonser_ on 2025-05-05</li> + <li>[412578726] High CVE-2025-4609: Incorrect handle provided in unspecified circumstances in Mojo. Reported by Micky on 2025-04-22</li> + </ul> + </blockquote> + </body> + </description> + <references> + <cvename>CVE-2025-4664</cvename> + <cvename>CVE-2025-4609</cvename> + <url>https://chromereleases.googleblog.com/2025/05/stable-channel-update-for-desktop_14.html</url> + </references> + <dates> + <discovery>2025-05-14</discovery> + <entry>2025-05-15</entry> + </dates> + </vuln> + + <vuln vid="52efdd56-30bd-11f0-81be-b42e991fc52e"> + <topic>Mozilla -- memory safety bugs</topic> + <affects> + <package> + <name>firefox</name> + <range><lt>138.0,2</lt></range> + </package> + <package> + <name>firefox-esr</name> + <range><lt>128.10</lt></range> + </package> + <package> + <name>thunderbird</name> + <range><lt>138.0</lt></range> + </package> + </affects> + <description> + <body xmlns="http://www.w3.org/1999/xhtml"> + <p>security@mozilla.org reports:</p> + <blockquote cite="https://bugzilla.mozilla.org/buglist.cgi?bug_id=1951161%2C1952105"> + <p>Memory safety bugs present in Firefox 137, Thunderbird 137, + Firefox ESR 128.9, and Thunderbird 128.9. Some of these bugs + showed evidence of memory corruption and we presume that + with enough effort some of these could have been exploited + to run arbitrary code.</p> + </blockquote> + </body> + </description> + <references> + <cvename>CVE-2025-4091</cvename> + <url>https://nvd.nist.gov/vuln/detail/CVE-2025-4091</url> + </references> + <dates> + <discovery>2025-04-29</discovery> + <entry>2025-05-14</entry> + </dates> + </vuln> + + <vuln vid="4f17db64-30bd-11f0-81be-b42e991fc52e"> + <topic>Mozilla -- memory corruption</topic> + <affects> + <package> + <name>firefox-esr</name> + <range><lt>128.10</lt></range> + </package> + <package> + <name>thunderbird</name> + <range><lt>128.10</lt></range> + </package> + </affects> + <description> + <body xmlns="http://www.w3.org/1999/xhtml"> + <p>security@mozilla.org reports:</p> + <blockquote cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1894100"> + <p>Memory safety bug present in Firefox ESR 128.9, and + Thunderbird 128.9. This bug showed evidence of memory + corruption and we presume that with enough effort this could + have been exploited to run arbitrary code.</p> + </blockquote> + </body> + </description> + <references> + <cvename>CVE-2025-4093</cvename> + <url>https://nvd.nist.gov/vuln/detail/CVE-2025-4093</url> + </references> + <dates> + <discovery>2025-04-29</discovery> + <entry>2025-05-14</entry> + </dates> + </vuln> + + <vuln vid="6f10b49d-07b1-4be4-8abf-edf880b16ad2"> + <topic>vscode -- security feature bypass vulnerability</topic> + <affects> + <package> + <name>vscode</name> + <range><lt>1.100.1</lt></range> + </package> + </affects> + <description> + <body xmlns="http://www.w3.org/1999/xhtml"> + <p>VSCode developers report:</p> + <blockquote cite="https://github.com/microsoft/vscode/security/advisories/GHSA-742r-ggwg-vqxm"> + <p>A security feature bypass vulnerability exists in VS Code 1.100.0 and earlier versions where a maliciously crafted URL could be considered trusted when it should not have due to how VS Code handled glob patterns in the trusted domains feature. When paired with the #fetch tool in Chat, this scenario would require the attacker to convince an LLM (via prompt injection) to fetch the maliciously crafted URL but when fetched, the user would have no moment to confirm the flighting of the request.</p> + </blockquote> + </body> + </description> + <references> + <cvename>CVE-2025-21264</cvename> + <url>https://github.com/microsoft/vscode/security/advisories/GHSA-742r-ggwg-vqxm</url> + <url>https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-21264</url> + </references> + <dates> + <discovery>2025-05-13</discovery> + <entry>2025-05-14</entry> + </dates> + </vuln> + + <vuln vid="a96cd659-303e-11f0-94b5-54ee755069b5"> + <topic>libxslt -- multiple vulnerabilities</topic> + <affects> + <package> + <name>libxslt</name> + <range><lt>1.1.43</lt></range> + </package> + </affects> + <description> + <body xmlns="http://www.w3.org/1999/xhtml"> + <h1>[CVE-2024-55549] Fix UAF related to excluded namespaces</h1> + <blockquote cite="https://gitlab.gnome.org/GNOME/libxslt/-/issues/127"> + <p>xsltGetInheritedNsList in libxslt before 1.1.43 has a use-after-free issue related to exclusion of result prefixes.</p> + </blockquote> + <h1>[CVE-2025-24855] Fix use-after-free of XPath context node</h1> + <blockquote cite="https://gitlab.gnome.org/GNOME/libxslt/-/issues/128"> + <p>numbers.c in libxslt before 1.1.43 has a use-after-free because + , in nested XPath evaluations, an XPath context node can be + modified but never restored. This is related to + xsltNumberFormatGetValue, xsltEvalXPathPredicate, + xsltEvalXPathStringNs, and xsltComputeSortResultInternal.</p> + </blockquote> + </body> + </description> + <references> + <cvename>CVE-2024-55549</cvename> + <cvename>CVE-2025-24855</cvename> + <url>https://nvd.nist.gov/vuln/detail/CVE-2024-55549</url> + <url>https://nvd.nist.gov/vuln/detail/CVE-2025-24855</url> + </references> + <dates> + <discovery>2025-03-13</discovery> + <entry>2025-05-13</entry> + </dates> + </vuln> + <vuln vid="89c668d5-2f80-11f0-9632-641c67a117d8"> <topic>www/varnish7 -- Request Smuggling Attack</topic> <affects> diff --git a/security/wolfssl/Makefile b/security/wolfssl/Makefile index 837bebd08315..87fa1c88c8d7 100644 --- a/security/wolfssl/Makefile +++ b/security/wolfssl/Makefile @@ -1,5 +1,6 @@ PORTNAME= wolfssl PORTVERSION= 5.8.0 +PORTREVISION= 1 CATEGORIES= security devel MASTER_SITES= https://www.wolfssl.com/ \ LOCAL/fox @@ -35,9 +36,11 @@ CONFIGURE_ARGS= --disable-dependency-tracking \ --enable-static \ --enable-tls13 \ --enable-tls13-draft18 \ + --enable-haproxy \ + --enable-quic \ --enable-context-extra-user-data TEST_TARGET= check -CFLAGS+= -DWOLFSSL_ALT_NAMES +CFLAGS+= -DWOLFSSL_ALT_NAMES -DWOLFSSL_GETRANDOM=1 OPTIONS_DEFINE= DEBUG DOCS diff --git a/shells/fish/Makefile b/shells/fish/Makefile index 46eca7926d61..5575f818070b 100644 --- a/shells/fish/Makefile +++ b/shells/fish/Makefile @@ -1,8 +1,12 @@ PORTNAME= fish -DISTVERSION= 3.7.1 +DISTVERSION= 4.0.2 CATEGORIES= shells MASTER_SITES= https://github.com/fish-shell/fish-shell/releases/download/${PORTVERSION}/ +PATCH_SITES= https://github.com/fish-shell/fish-shell/pull/ +# https://github.com/fish-shell/fish-shell/pull/11486 +PATCHFILES+= 11486.patch:-p1 + MAINTAINER= asomers@FreeBSD.org COMMENT= User friendly command line shell WWW= https://fishshell.com/ @@ -10,14 +14,19 @@ WWW= https://fishshell.com/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING +BUILD_DEPENDS= ${RUST_DEFAULT}>=1.70.0:lang/${RUST_DEFAULT} LIB_DEPENDS= libpcre2-32.so:devel/pcre2 # The python dependency is only needed by shebangfix. At runtime python is # only needed by some optional scripts that aren't in PATH. -USES= cmake compiler:c++11-lang cpe localbase ncurses python:env \ - shebangfix tar:xz +USES= cargo cmake cpe localbase ncurses python:env shebangfix tar:xz +DISTFILES+= ${DISTNAME}${EXTRACT_SUFX} CPE_VENDOR= fishshell SHEBANG_FILES= share/tools/*.py share/tools/web_config/webconfig.py +# We need USES=cargo for fetching crates. But the actual build is done by +# cmake. +CARGO_BUILD= no +CARGO_INSTALL= no CONFLICTS_INSTALL= comms/mlan3 diff --git a/shells/fish/Makefile.crates b/shells/fish/Makefile.crates new file mode 100644 index 000000000000..edf2c9b1a2ac --- /dev/null +++ b/shells/fish/Makefile.crates @@ -0,0 +1,76 @@ +CARGO_CRATES= allocator-api2-0.2.18 \ + autocfg-1.4.0 \ + bitflags-2.6.0 \ + block-buffer-0.10.4 \ + cc-1.1.30 \ + cfg-if-1.0.0 \ + cfg_aliases-0.2.1 \ + cpufeatures-0.2.14 \ + crypto-common-0.1.6 \ + dashmap-5.5.3 \ + digest-0.10.7 \ + equivalent-1.0.1 \ + errno-0.3.9 \ + fnv-1.0.7 \ + foldhash-0.1.3 \ + generic-array-0.14.7 \ + hashbrown-0.14.5 \ + hashbrown-0.15.0 \ + jobserver-0.1.32 \ + lazy_static-1.5.0 \ + libc-0.2.159 \ + lock_api-0.4.12 \ + log-0.4.22 \ + lru-0.12.5 \ + memchr-2.7.4 \ + minimal-lexical-0.2.1 \ + nix-0.29.0 \ + nom-7.1.3 \ + num-traits-0.2.19 \ + once_cell-1.20.2 \ + parking_lot-0.12.3 \ + parking_lot_core-0.9.10 \ + phf-0.11.2 \ + phf_codegen-0.11.2 \ + phf_generator-0.11.2 \ + phf_shared-0.11.2 \ + pkg-config-0.3.31 \ + portable-atomic-1.9.0 \ + proc-macro2-1.0.87 \ + quote-1.0.37 \ + rand-0.8.5 \ + rand_core-0.6.4 \ + redox_syscall-0.5.7 \ + rsconf-0.2.2 \ + rust-embed-8.5.0 \ + rust-embed-impl-8.5.0 \ + rust-embed-utils-8.5.0 \ + same-file-1.0.6 \ + scopeguard-1.2.0 \ + serial_test-1.0.0 \ + serial_test_derive-1.0.0 \ + sha2-0.10.8 \ + shlex-1.3.0 \ + siphasher-0.3.11 \ + smallvec-1.13.2 \ + syn-1.0.109 \ + syn-2.0.79 \ + terminfo-0.9.0 \ + typenum-1.17.0 \ + unicode-ident-1.0.13 \ + version_check-0.9.5 \ + walkdir-2.5.0 \ + widestring-1.1.0 \ + winapi-util-0.1.9 \ + windows-sys-0.52.0 \ + windows-sys-0.59.0 \ + windows-targets-0.52.6 \ + windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_msvc-0.52.6 \ + windows_i686_gnu-0.52.6 \ + windows_i686_gnullvm-0.52.6 \ + windows_i686_msvc-0.52.6 \ + windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_msvc-0.52.6 \ + pcre2,pcre2-sys@git+https://github.com/fish-shell/rust-pcre2?tag=0.2.9-utf32\#85b7afba1a9d9bd445779800e5bcafeb732e4421 diff --git a/shells/fish/distinfo b/shells/fish/distinfo index 14eb4f7fb018..795c2ff3d1f4 100644 --- a/shells/fish/distinfo +++ b/shells/fish/distinfo @@ -1,3 +1,157 @@ -TIMESTAMP = 1712678789 -SHA256 (fish-3.7.1.tar.xz) = 614c9f5643cd0799df391395fa6bbc3649427bb839722ce3b114d3bbc1a3b250 -SIZE (fish-3.7.1.tar.xz) = 2965756 +TIMESTAMP = 1747413660 +SHA256 (fish-4.0.2.tar.xz) = 6e1ecdb164285fc057b2f35acbdc20815c1623099e7bb47bbfc011120adf7e83 +SIZE (fish-4.0.2.tar.xz) = 3055064 +SHA256 (rust/crates/allocator-api2-0.2.18.crate) = 5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f +SIZE (rust/crates/allocator-api2-0.2.18.crate) = 62504 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de +SIZE (rust/crates/bitflags-2.6.0.crate) = 45357 +SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71 +SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 +SHA256 (rust/crates/cc-1.1.30.crate) = b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945 +SIZE (rust/crates/cc-1.1.30.crate) = 84509 +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.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724 +SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355 +SHA256 (rust/crates/cpufeatures-0.2.14.crate) = 608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0 +SIZE (rust/crates/cpufeatures-0.2.14.crate) = 13165 +SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3 +SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760 +SHA256 (rust/crates/dashmap-5.5.3.crate) = 978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856 +SIZE (rust/crates/dashmap-5.5.3.crate) = 24061 +SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 +SIZE (rust/crates/digest-0.10.7.crate) = 19557 +SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 +SIZE (rust/crates/equivalent-1.0.1.crate) = 6615 +SHA256 (rust/crates/errno-0.3.9.crate) = 534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba +SIZE (rust/crates/errno-0.3.9.crate) = 10690 +SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 +SIZE (rust/crates/fnv-1.0.7.crate) = 11266 +SHA256 (rust/crates/foldhash-0.1.3.crate) = f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2 +SIZE (rust/crates/foldhash-0.1.3.crate) = 13712 +SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a +SIZE (rust/crates/generic-array-0.14.7.crate) = 15950 +SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 +SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 +SHA256 (rust/crates/hashbrown-0.15.0.crate) = 1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb +SIZE (rust/crates/hashbrown-0.15.0.crate) = 136460 +SHA256 (rust/crates/jobserver-0.1.32.crate) = 48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0 +SIZE (rust/crates/jobserver-0.1.32.crate) = 27549 +SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe +SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 +SHA256 (rust/crates/libc-0.2.159.crate) = 561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5 +SIZE (rust/crates/libc-0.2.159.crate) = 755366 +SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17 +SIZE (rust/crates/lock_api-0.4.12.crate) = 27591 +SHA256 (rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24 +SIZE (rust/crates/log-0.4.22.crate) = 44027 +SHA256 (rust/crates/lru-0.12.5.crate) = 234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38 +SIZE (rust/crates/lru-0.12.5.crate) = 16047 +SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 +SIZE (rust/crates/memchr-2.7.4.crate) = 96670 +SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a +SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841 +SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46 +SIZE (rust/crates/nix-0.29.0.crate) = 318248 +SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a +SIZE (rust/crates/nom-7.1.3.crate) = 117570 +SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 +SIZE (rust/crates/num-traits-0.2.19.crate) = 51631 +SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775 +SIZE (rust/crates/once_cell-1.20.2.crate) = 33394 +SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27 +SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860 +SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8 +SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406 +SHA256 (rust/crates/phf-0.11.2.crate) = ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc +SIZE (rust/crates/phf-0.11.2.crate) = 21569 +SHA256 (rust/crates/phf_codegen-0.11.2.crate) = e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a +SIZE (rust/crates/phf_codegen-0.11.2.crate) = 12977 +SHA256 (rust/crates/phf_generator-0.11.2.crate) = 48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0 +SIZE (rust/crates/phf_generator-0.11.2.crate) = 14190 +SHA256 (rust/crates/phf_shared-0.11.2.crate) = 90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b +SIZE (rust/crates/phf_shared-0.11.2.crate) = 14284 +SHA256 (rust/crates/pkg-config-0.3.31.crate) = 953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2 +SIZE (rust/crates/pkg-config-0.3.31.crate) = 20880 +SHA256 (rust/crates/portable-atomic-1.9.0.crate) = cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2 +SIZE (rust/crates/portable-atomic-1.9.0.crate) = 166365 +SHA256 (rust/crates/proc-macro2-1.0.87.crate) = b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a +SIZE (rust/crates/proc-macro2-1.0.87.crate) = 49121 +SHA256 (rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af +SIZE (rust/crates/quote-1.0.37.crate) = 28558 +SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 +SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c +SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 +SHA256 (rust/crates/redox_syscall-0.5.7.crate) = 9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f +SIZE (rust/crates/redox_syscall-0.5.7.crate) = 26249 +SHA256 (rust/crates/rsconf-0.2.2.crate) = bd2af859f1af0401e7fc7577739c87b0d239d8a5da400d717183bca92336bcdc +SIZE (rust/crates/rsconf-0.2.2.crate) = 16338 +SHA256 (rust/crates/rust-embed-8.5.0.crate) = fa66af4a4fdd5e7ebc276f115e895611a34739a9c1c01028383d612d550953c0 +SIZE (rust/crates/rust-embed-8.5.0.crate) = 904054 +SHA256 (rust/crates/rust-embed-impl-8.5.0.crate) = 6125dbc8867951125eec87294137f4e9c2c96566e61bf72c45095a7c77761478 +SIZE (rust/crates/rust-embed-impl-8.5.0.crate) = 6004 +SHA256 (rust/crates/rust-embed-utils-8.5.0.crate) = 2e5347777e9aacb56039b0e1f28785929a8a3b709e87482e7442c72e7c12529d +SIZE (rust/crates/rust-embed-utils-8.5.0.crate) = 3445 +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 +SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 +SHA256 (rust/crates/serial_test-1.0.0.crate) = 538c30747ae860d6fb88330addbbd3e0ddbe46d662d032855596d8a8ca260611 +SIZE (rust/crates/serial_test-1.0.0.crate) = 7912 +SHA256 (rust/crates/serial_test_derive-1.0.0.crate) = 079a83df15f85d89a68d64ae1238f142f172b1fa915d0d76b26a7cba1b659a69 +SIZE (rust/crates/serial_test_derive-1.0.0.crate) = 5715 +SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8 +SIZE (rust/crates/sha2-0.10.8.crate) = 26357 +SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 +SIZE (rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d +SIZE (rust/crates/siphasher-0.3.11.crate) = 10442 +SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67 +SIZE (rust/crates/smallvec-1.13.2.crate) = 35216 +SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 +SIZE (rust/crates/syn-1.0.109.crate) = 237611 +SHA256 (rust/crates/syn-2.0.79.crate) = 89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590 +SIZE (rust/crates/syn-2.0.79.crate) = 268981 +SHA256 (rust/crates/terminfo-0.9.0.crate) = d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662 +SIZE (rust/crates/terminfo-0.9.0.crate) = 45420 +SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825 +SIZE (rust/crates/typenum-1.17.0.crate) = 42849 +SHA256 (rust/crates/unicode-ident-1.0.13.crate) = e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe +SIZE (rust/crates/unicode-ident-1.0.13.crate) = 43279 +SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a +SIZE (rust/crates/version_check-0.9.5.crate) = 15554 +SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b +SIZE (rust/crates/walkdir-2.5.0.crate) = 23951 +SHA256 (rust/crates/widestring-1.1.0.crate) = 7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311 +SIZE (rust/crates/widestring-1.1.0.crate) = 85046 +SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb +SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464 +SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d +SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877 +SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b +SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 +SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 +SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 +SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 +SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b +SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 +SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 +SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 +SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d +SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec +SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 +SHA256 (fish-shell-rust-pcre2-0.2.9-utf32_GH0.tar.gz) = e5af06d7b737b66f7476a223e8a6cd1e2b1ca834b38b3de58901d4dbcf0a054d +SIZE (fish-shell-rust-pcre2-0.2.9-utf32_GH0.tar.gz) = 742431 +SHA256 (11486.patch) = 4033a9c91b740ff83ea7e9b011aaff8fd59c77a093559c44d510bc1295fd2a78 +SIZE (11486.patch) = 597 diff --git a/shells/fish/pkg-plist b/shells/fish/pkg-plist index 5e357787dc88..db757e21729c 100644 --- a/shells/fish/pkg-plist +++ b/shells/fish/pkg-plist @@ -24,6 +24,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/accept.fish %%DATADIR%%/completions/ack.fish %%DATADIR%%/completions/acpi.fish +%%DATADIR%%/completions/actionlint.fish %%DATADIR%%/completions/adb.fish %%DATADIR%%/completions/adduser.fish %%DATADIR%%/completions/adiff.fish @@ -80,6 +81,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/argparse.fish %%DATADIR%%/completions/ark.fish %%DATADIR%%/completions/arp.fish +%%DATADIR%%/completions/arping.fish %%DATADIR%%/completions/as.fish %%DATADIR%%/completions/asciidoctor.fish %%DATADIR%%/completions/asciinema.fish @@ -103,6 +105,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/badblocks.fish %%DATADIR%%/completions/base64.fish %%DATADIR%%/completions/basename.fish +%%DATADIR%%/completions/batsh.fish %%DATADIR%%/completions/bb-wrapper.fish %%DATADIR%%/completions/bc.fish %%DATADIR%%/completions/bd.fish @@ -120,8 +123,10 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/break.fish %%DATADIR%%/completions/brew.fish %%DATADIR%%/completions/brightnessctl.fish +%%DATADIR%%/completions/bru.fish %%DATADIR%%/completions/btdownloadcurses.py.fish %%DATADIR%%/completions/btdownloadheadless.py.fish +%%DATADIR%%/completions/btrbk.fish %%DATADIR%%/completions/btrfs.fish %%DATADIR%%/completions/builtin.fish %%DATADIR%%/completions/bundle.fish @@ -141,6 +146,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/cancel.fish %%DATADIR%%/completions/canto.fish %%DATADIR%%/completions/cargo.fish +%%DATADIR%%/completions/cascadia.fish %%DATADIR%%/completions/castnow.fish %%DATADIR%%/completions/cat.fish %%DATADIR%%/completions/cd.fish @@ -168,6 +174,8 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/cmd.fish %%DATADIR%%/completions/cmdkey.fish %%DATADIR%%/completions/cobra-cli.fish +%%DATADIR%%/completions/code-exploration.fish +%%DATADIR%%/completions/code-insiders.fish %%DATADIR%%/completions/code.fish %%DATADIR%%/completions/color.fish %%DATADIR%%/completions/colordiff.fish @@ -201,6 +209,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/csh.fish %%DATADIR%%/completions/csharp.fish %%DATADIR%%/completions/csi.fish +%%DATADIR%%/completions/csvlens.fish %%DATADIR%%/completions/cupsaccept.fish %%DATADIR%%/completions/cupsdisable.fish %%DATADIR%%/completions/cupsenable.fish @@ -218,7 +227,9 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/dconf.fish %%DATADIR%%/completions/dd.fish %%DATADIR%%/completions/defaults.fish +%%DATADIR%%/completions/delta.fish %%DATADIR%%/completions/deno.fish +%%DATADIR%%/completions/devspace.fish %%DATADIR%%/completions/df.fish %%DATADIR%%/completions/dhclient.fish %%DATADIR%%/completions/dhcpcd.fish @@ -249,6 +260,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/dscacheutil.fish %%DATADIR%%/completions/du.fish %%DATADIR%%/completions/dua.fish +%%DATADIR%%/completions/duf.fish %%DATADIR%%/completions/dumpcap.fish %%DATADIR%%/completions/duply.fish %%DATADIR%%/completions/dvipdf.fish @@ -263,6 +275,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/eix.fish %%DATADIR%%/completions/elatex.fish %%DATADIR%%/completions/elixir.fish +%%DATADIR%%/completions/elm.fish %%DATADIR%%/completions/elvish.fish %%DATADIR%%/completions/emacs.fish %%DATADIR%%/completions/emaint.fish @@ -302,7 +315,9 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/findstr.fish %%DATADIR%%/completions/firefox-developer-edition.fish %%DATADIR%%/completions/firefox.fish +%%DATADIR%%/completions/firejail.fish %%DATADIR%%/completions/firewall-cmd.fish +%%DATADIR%%/completions/fish-lsp.fish %%DATADIR%%/completions/fish.fish %%DATADIR%%/completions/fish_add_path.fish %%DATADIR%%/completions/fish_config.fish @@ -312,7 +327,9 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/fish_opt.fish %%DATADIR%%/completions/flac.fish %%DATADIR%%/completions/flatpak.fish +%%DATADIR%%/completions/flux.fish %%DATADIR%%/completions/fluxbox-remote.fish +%%DATADIR%%/completions/folderify.fish %%DATADIR%%/completions/for.fish %%DATADIR%%/completions/forfiles.fish %%DATADIR%%/completions/fortune.fish @@ -331,14 +348,18 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/gacutil.fish %%DATADIR%%/completions/gapplication.fish %%DATADIR%%/completions/gcc.fish +%%DATADIR%%/completions/gcloud.fish %%DATADIR%%/completions/gdb.fish +%%DATADIR%%/completions/gdbserver.fish %%DATADIR%%/completions/gdbus.fish %%DATADIR%%/completions/gem.fish %%DATADIR%%/completions/gendarme.fish %%DATADIR%%/completions/gh.fish %%DATADIR%%/completions/gimp.fish %%DATADIR%%/completions/gio.fish +%%DATADIR%%/completions/git-lfs.fish %%DATADIR%%/completions/git-sizer.fish +%%DATADIR%%/completions/git-subtree.fish %%DATADIR%%/completions/git.fish %%DATADIR%%/completions/gitk.fish %%DATADIR%%/completions/gnome-extensions.fish @@ -367,6 +388,9 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/grub-mkrescue.fish %%DATADIR%%/completions/grunt.fish %%DATADIR%%/completions/gsettings.fish +%%DATADIR%%/completions/gsutil.fish +%%DATADIR%%/completions/guild.fish +%%DATADIR%%/completions/guile.fish %%DATADIR%%/completions/gunzip.fish %%DATADIR%%/completions/gv.fish %%DATADIR%%/completions/gvim.fish @@ -391,6 +415,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/hwinfo.fish %%DATADIR%%/completions/i3-msg.fish %%DATADIR%%/completions/ibmcloud.fish +%%DATADIR%%/completions/ibus.fish %%DATADIR%%/completions/icdiff.fish %%DATADIR%%/completions/iconv.fish %%DATADIR%%/completions/id.fish @@ -400,6 +425,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/ifconfig.fish %%DATADIR%%/completions/ifdata.fish %%DATADIR%%/completions/ifdown.fish +%%DATADIR%%/completions/iftop.fish %%DATADIR%%/completions/ifup.fish %%DATADIR%%/completions/ikdasm.fish %%DATADIR%%/completions/ilasm.fish @@ -419,11 +445,15 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/jbake.fish %%DATADIR%%/completions/jest.fish %%DATADIR%%/completions/jhipster.fish +%%DATADIR%%/completions/jj.fish +%%DATADIR%%/completions/jnv.fish %%DATADIR%%/completions/jobs.fish %%DATADIR%%/completions/john.fish %%DATADIR%%/completions/journalctl.fish %%DATADIR%%/completions/jq.fish %%DATADIR%%/completions/julia.fish +%%DATADIR%%/completions/just.fish +%%DATADIR%%/completions/jv.fish %%DATADIR%%/completions/k3d.fish %%DATADIR%%/completions/kak.fish %%DATADIR%%/completions/kb.fish @@ -439,17 +469,21 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/kldunload.fish %%DATADIR%%/completions/kmutil.fish %%DATADIR%%/completions/konsole.fish +%%DATADIR%%/completions/kops.fish %%DATADIR%%/completions/krita.fish %%DATADIR%%/completions/ksh.fish %%DATADIR%%/completions/kubectl.fish +%%DATADIR%%/completions/kustomize.fish %%DATADIR%%/completions/latex.fish %%DATADIR%%/completions/latexmk.fish %%DATADIR%%/completions/launchctl.fish +%%DATADIR%%/completions/lazygit.fish %%DATADIR%%/completions/ldapsearch.fish %%DATADIR%%/completions/lein.fish %%DATADIR%%/completions/less.fish %%DATADIR%%/completions/light.fish %%DATADIR%%/completions/lightdm.fish +%%DATADIR%%/completions/llm.fish %%DATADIR%%/completions/ln.fish %%DATADIR%%/completions/loadkeys.fish %%DATADIR%%/completions/localectl.fish @@ -468,6 +502,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/lprm.fish %%DATADIR%%/completions/lpstat.fish %%DATADIR%%/completions/ls.fish +%%DATADIR%%/completions/lsb_%%CMAKE_BUILD_TYPE%%.fish %%DATADIR%%/completions/lsblk.fish %%DATADIR%%/completions/lscpu.fish %%DATADIR%%/completions/lsof.fish @@ -483,6 +518,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/m4.fish %%DATADIR%%/completions/machinectl.fish %%DATADIR%%/completions/magento.fish +%%DATADIR%%/completions/magick.fish %%DATADIR%%/completions/make.fish %%DATADIR%%/completions/makedepend.fish %%DATADIR%%/completions/makensis.fish @@ -513,6 +549,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/mkfs.vfat.fish %%DATADIR%%/completions/mkinitcpio.fish %%DATADIR%%/completions/mkpasswd.fish +%%DATADIR%%/completions/mksquashfs.fish %%DATADIR%%/completions/mktemp.fish %%DATADIR%%/completions/mkvextract.fish %%DATADIR%%/completions/mocha.fish @@ -566,6 +603,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/node.fish %%DATADIR%%/completions/nodeenv.fish %%DATADIR%%/completions/not.fish +%%DATADIR%%/completions/notify-send.fish %%DATADIR%%/completions/npm.fish %%DATADIR%%/completions/nu.fish %%DATADIR%%/completions/nvim.fish @@ -607,6 +645,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/path.fish %%DATADIR%%/completions/patool.fish %%DATADIR%%/completions/pbget.fish +%%DATADIR%%/completions/pbpaste.fish %%DATADIR%%/completions/pdfelatex.fish %%DATADIR%%/completions/pdfetex.fish %%DATADIR%%/completions/pdflatex.fish @@ -703,6 +742,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/renice.fish %%DATADIR%%/completions/resolvectl.fish %%DATADIR%%/completions/return.fish +%%DATADIR%%/completions/reuse.fish %%DATADIR%%/completions/rfkill.fish %%DATADIR%%/completions/rgrep.fish %%DATADIR%%/completions/rm.fish @@ -726,6 +766,8 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/rsync.fish %%DATADIR%%/completions/ruby-build.fish %%DATADIR%%/completions/ruby.fish +%%DATADIR%%/completions/ruff.fish +%%DATADIR%%/completions/run0.fish %%DATADIR%%/completions/rustc.fish %%DATADIR%%/completions/rustup.fish %%DATADIR%%/completions/s3cmd.fish @@ -776,6 +818,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/sqlsharp.fish %%DATADIR%%/completions/src.fish %%DATADIR%%/completions/ssh-copy-id.fish +%%DATADIR%%/completions/ssh-keygen.fish %%DATADIR%%/completions/ssh.fish %%DATADIR%%/completions/sshfs.fish %%DATADIR%%/completions/stack.fish @@ -800,6 +843,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/systemd-cryptenroll.fish %%DATADIR%%/completions/systemd-nspawn.fish %%DATADIR%%/completions/tail.fish +%%DATADIR%%/completions/tailscale.fish %%DATADIR%%/completions/tar.fish %%DATADIR%%/completions/tcpdump.fish %%DATADIR%%/completions/tcsh.fish @@ -807,7 +851,9 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/telnet.fish %%DATADIR%%/completions/termite.fish %%DATADIR%%/completions/terraform.fish +%%DATADIR%%/completions/test-spice.fish %%DATADIR%%/completions/test.fish +%%DATADIR%%/completions/tex-fmt.fish %%DATADIR%%/completions/tex.fish %%DATADIR%%/completions/tig.fish %%DATADIR%%/completions/time.fish @@ -816,6 +862,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/tmutil.fish %%DATADIR%%/completions/tmux.fish %%DATADIR%%/completions/tmuxinator.fish +%%DATADIR%%/completions/tofu.fish %%DATADIR%%/completions/tokei.fish %%DATADIR%%/completions/toot.fish %%DATADIR%%/completions/top.fish @@ -840,12 +887,14 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/ttx.fish %%DATADIR%%/completions/tuned-adm.fish %%DATADIR%%/completions/type.fish +%%DATADIR%%/completions/typst.fish %%DATADIR%%/completions/udevadm.fish %%DATADIR%%/completions/udisksctl.fish %%DATADIR%%/completions/ulimit.fish %%DATADIR%%/completions/umask.fish %%DATADIR%%/completions/umount.fish %%DATADIR%%/completions/uname.fish +%%DATADIR%%/completions/unbuffer.fish %%DATADIR%%/completions/unexpand.fish %%DATADIR%%/completions/uniq.fish %%DATADIR%%/completions/unlz4.fish @@ -861,6 +910,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/usermod.fish %%DATADIR%%/completions/vagrant.fish %%DATADIR%%/completions/valgrind.fish +%%DATADIR%%/completions/validate-spice.fish %%DATADIR%%/completions/vared.fish %%DATADIR%%/completions/vbc.fish %%DATADIR%%/completions/vi.fish @@ -873,11 +923,14 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/w.fish %%DATADIR%%/completions/wait.fish %%DATADIR%%/completions/wajig.fish +%%DATADIR%%/completions/warp-cli.fish %%DATADIR%%/completions/watch.fish %%DATADIR%%/completions/watchexec.fish %%DATADIR%%/completions/wc.fish +%%DATADIR%%/completions/web-ext.fish %%DATADIR%%/completions/wesnoth.fish %%DATADIR%%/completions/wg-quick.fish +%%DATADIR%%/completions/wg.fish %%DATADIR%%/completions/wget.fish %%DATADIR%%/completions/whatis.fish %%DATADIR%%/completions/which.fish @@ -890,8 +943,10 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/wine.fish %%DATADIR%%/completions/wineboot.fish %%DATADIR%%/completions/winemaker.fish +%%DATADIR%%/completions/winetricks.fish %%DATADIR%%/completions/wireshark.fish %%DATADIR%%/completions/wish.fish +%%DATADIR%%/completions/wlr-randr.fish %%DATADIR%%/completions/wpa_cli.fish %%DATADIR%%/completions/wpctl.fish %%DATADIR%%/completions/wslpath.fish @@ -913,6 +968,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/xbps-uchroot.fish %%DATADIR%%/completions/xbps-uhelper.fish %%DATADIR%%/completions/xclip.fish +%%DATADIR%%/completions/xcodes.fish %%DATADIR%%/completions/xdg-mime.fish %%DATADIR%%/completions/xdvi.fish %%DATADIR%%/completions/xed.fish @@ -939,11 +995,13 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/xxhsum.fish %%DATADIR%%/completions/xz.fish %%DATADIR%%/completions/yadm.fish +%%DATADIR%%/completions/yajsv.fish %%DATADIR%%/completions/yaourt.fish %%DATADIR%%/completions/yarn.fish %%DATADIR%%/completions/yash.fish %%DATADIR%%/completions/yast2.fish %%DATADIR%%/completions/ykman.fish +%%DATADIR%%/completions/yo.fish %%DATADIR%%/completions/yum.fish %%DATADIR%%/completions/zabbix_agent2.fish %%DATADIR%%/completions/zabbix_agentd.fish @@ -954,6 +1012,8 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/completions/zabbix_server.fish %%DATADIR%%/completions/zabbix_web_service.fish %%DATADIR%%/completions/zcat.fish +%%DATADIR%%/completions/zed-preview.fish +%%DATADIR%%/completions/zed.fish %%DATADIR%%/completions/zef.fish %%DATADIR%%/completions/zfs.fish %%DATADIR%%/completions/zig.fish @@ -971,12 +1031,16 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/config.fish %%DATADIR%%/functions/N_.fish %%DATADIR%%/functions/__fish_any_arg_in.fish +%%DATADIR%%/functions/__fish_anyeditor.fish %%DATADIR%%/functions/__fish_anypager.fish %%DATADIR%%/functions/__fish_anypython.fish %%DATADIR%%/functions/__fish_append.fish %%DATADIR%%/functions/__fish_apropos.fish %%DATADIR%%/functions/__fish_argcomplete_complete.fish +%%DATADIR%%/functions/__fish_cache_sourced_completions.fish %%DATADIR%%/functions/__fish_cancel_commandline.fish +%%DATADIR%%/functions/__fish_change_key_bindings.fish +%%DATADIR%%/functions/__fish_cmd__complete_args.fish %%DATADIR%%/functions/__fish_commandline_is_singlequoted.fish %%DATADIR%%/functions/__fish_complete_atool_archive_contents.fish %%DATADIR%%/functions/__fish_complete_bittorrent.fish @@ -987,6 +1051,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/functions/__fish_complete_convert_options.fish %%DATADIR%%/functions/__fish_complete_directories.fish %%DATADIR%%/functions/__fish_complete_docutils.fish +%%DATADIR%%/functions/__fish_complete_freedesktop_icons.fish %%DATADIR%%/functions/__fish_complete_ftp.fish %%DATADIR%%/functions/__fish_complete_gpg.fish %%DATADIR%%/functions/__fish_complete_gpg_key_id.fish @@ -997,6 +1062,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/functions/__fish_complete_list.fish %%DATADIR%%/functions/__fish_complete_lpr.fish %%DATADIR%%/functions/__fish_complete_lpr_option.fish +%%DATADIR%%/functions/__fish_complete_magick.fish %%DATADIR%%/functions/__fish_complete_man.fish %%DATADIR%%/functions/__fish_complete_mount_opts.fish %%DATADIR%%/functions/__fish_complete_mysql.fish @@ -1020,16 +1086,20 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/functions/__fish_complete_zfs_ro_properties.fish %%DATADIR%%/functions/__fish_complete_zfs_rw_properties.fish %%DATADIR%%/functions/__fish_complete_zfs_write_once_properties.fish +%%DATADIR%%/functions/__fish_concat_completions.fish %%DATADIR%%/functions/__fish_config_interactive.fish %%DATADIR%%/functions/__fish_contains_opt.fish %%DATADIR%%/functions/__fish_crux_packages.fish %%DATADIR%%/functions/__fish_cursor_konsole.fish %%DATADIR%%/functions/__fish_cursor_xterm.fish %%DATADIR%%/functions/__fish_describe_command.fish +%%DATADIR%%/functions/__fish_echo.fish +%%DATADIR%%/functions/__fish_edit_command_if_at_cursor.fish %%DATADIR%%/functions/__fish_first_token.fish %%DATADIR%%/functions/__fish_git_prompt.fish %%DATADIR%%/functions/__fish_gnu_complete.fish %%DATADIR%%/functions/__fish_hg_prompt.fish +%%DATADIR%%/functions/__fish_indent.fish %%DATADIR%%/functions/__fish_is_first_arg.fish %%DATADIR%%/functions/__fish_is_first_token.fish %%DATADIR%%/functions/__fish_is_git_repository.fish @@ -1050,6 +1120,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/functions/__fish_number_of_cmd_args_wo_opts.fish %%DATADIR%%/functions/__fish_paginate.fish %%DATADIR%%/functions/__fish_parent_directories.fish +%%DATADIR%%/functions/__fish_paste.fish %%DATADIR%%/functions/__fish_prepend_sudo.fish %%DATADIR%%/functions/__fish_prev_arg_in.fish %%DATADIR%%/functions/__fish_preview_current_file.fish @@ -1099,6 +1170,7 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/functions/__fish_print_zfs_snapshots.fish %%DATADIR%%/functions/__fish_ps.fish %%DATADIR%%/functions/__fish_pwd.fish +%%DATADIR%%/functions/__fish_reg__complete_keys.fish %%DATADIR%%/functions/__fish_seen_argument.fish %%DATADIR%%/functions/__fish_seen_subcommand_from.fish %%DATADIR%%/functions/__fish_set_locale.fish @@ -1169,9 +1241,11 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/functions/ll.fish %%DATADIR%%/functions/ls.fish %%DATADIR%%/functions/man.fish +%%DATADIR%%/functions/nextd-or-forward-token.fish %%DATADIR%%/functions/nextd.fish %%DATADIR%%/functions/open.fish %%DATADIR%%/functions/popd.fish +%%DATADIR%%/functions/prevd-or-backward-token.fish %%DATADIR%%/functions/prevd.fish %%DATADIR%%/functions/prompt_hostname.fish %%DATADIR%%/functions/prompt_login.fish @@ -1189,24 +1263,13 @@ libdata/pkgconfig/fish.pc %%DATADIR%%/groff/fish.tmac %%DATADIR%%/tools/create_manpage_completions.py %%DATADIR%%/tools/deroff.py -%%DATADIR%%/tools/web_config/delete.png %%DATADIR%%/tools/web_config/favicon.png -%%DATADIR%%/tools/web_config/fishconfig_print.css %%DATADIR%%/tools/web_config/fishconfig.css +%%DATADIR%%/tools/web_config/fishconfig_print.css %%DATADIR%%/tools/web_config/index.html -%%DATADIR%%/tools/web_config/js/angular-route.js -%%DATADIR%%/tools/web_config/js/angular-sanitize.js -%%DATADIR%%/tools/web_config/js/angular.js -%%DATADIR%%/tools/web_config/js/app.js +%%DATADIR%%/tools/web_config/js/alpine.js %%DATADIR%%/tools/web_config/js/colorutils.js -%%DATADIR%%/tools/web_config/js/controllers.js -%%DATADIR%%/tools/web_config/js/filters.js -%%DATADIR%%/tools/web_config/partials/bindings.html -%%DATADIR%%/tools/web_config/partials/colors.html -%%DATADIR%%/tools/web_config/partials/functions.html -%%DATADIR%%/tools/web_config/partials/history.html -%%DATADIR%%/tools/web_config/partials/prompt.html -%%DATADIR%%/tools/web_config/partials/variables.html +%%DATADIR%%/tools/web_config/js/main.js %%DATADIR%%/tools/web_config/sample_prompts/acidhub.fish %%DATADIR%%/tools/web_config/sample_prompts/arrow.fish %%DATADIR%%/tools/web_config/sample_prompts/astronaut.fish @@ -1277,6 +1340,7 @@ libdata/pkgconfig/fish.pc %%MANPAGES%%%%DATADIR%%/man/man1/eval.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/exec.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/exit.1.gz +%%MANPAGES%%%%DATADIR%%/man/man1/export.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/false.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fg.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish_vi_key_bindings.1.gz @@ -1287,7 +1351,7 @@ libdata/pkgconfig/fish.pc %%MANPAGES%%%%DATADIR%%/man/man1/fish-interactive.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish-language.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish-prompt-tutorial.1.gz -%%MANPAGES%%%%DATADIR%%/man/man1/fish-releasenotes.1.gz +%%MANPAGES%%%%DATADIR%%/man/man1/fish-%%CMAKE_BUILD_TYPE%%notes.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish-tutorial.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish_add_path.1.gz @@ -1308,6 +1372,7 @@ libdata/pkgconfig/fish.pc %%MANPAGES%%%%DATADIR%%/man/man1/fish_opt.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish_prompt.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish_right_prompt.1.gz +%%MANPAGES%%%%DATADIR%%/man/man1/fish_should_add_to_history.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish_status_to_signal.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish_svn_prompt.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/fish_title.1.gz @@ -1375,6 +1440,14 @@ libdata/pkgconfig/fish.pc %%MANPAGES%%%%DATADIR%%/man/man1/vared.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/wait.1.gz %%MANPAGES%%%%DATADIR%%/man/man1/while.1.gz +%%MANPAGES%%share/man/man1/fish-completions.1.gz +%%MANPAGES%%share/man/man1/fish-doc.1.gz +%%MANPAGES%%share/man/man1/fish-faq.1.gz +%%MANPAGES%%share/man/man1/fish-for-bash-users.1.gz +%%MANPAGES%%share/man/man1/fish-interactive.1.gz +%%MANPAGES%%share/man/man1/fish-language.1.gz +%%MANPAGES%%share/man/man1/fish-prompt-tutorial.1.gz +%%MANPAGES%%share/man/man1/fish-tutorial.1.gz %%MANPAGES%%share/man/man1/fish.1.gz %%MANPAGES%%share/man/man1/fish_indent.1.gz %%MANPAGES%%share/man/man1/fish_key_reader.1.gz diff --git a/shells/nu_plugin_formats/Makefile.crates b/shells/nu_plugin_formats/Makefile.crates index 57d3a3eb5eb5..21fb90222f01 100644 --- a/shells/nu_plugin_formats/Makefile.crates +++ b/shells/nu_plugin_formats/Makefile.crates @@ -18,7 +18,7 @@ CARGO_CRATES= adler2-2.0.0 \ bumpalo-3.16.0 \ byteorder-1.5.0 \ bytes-1.10.0 \ - bytesize-1.3.2 \ + bytesize-1.3.3 \ cc-1.2.16 \ cexpr-0.6.0 \ cfg-if-1.0.0 \ @@ -63,11 +63,11 @@ CARGO_CRATES= adler2-2.0.0 \ iana-time-zone-0.1.61 \ iana-time-zone-haiku-0.1.2 \ ical-0.11.0 \ - indexmap-2.7.0 \ + indexmap-2.9.0 \ interprocess-2.2.2 \ inventory-0.3.15 \ is_ci-1.2.0 \ - is_debug-1.0.2 \ + is_debug-1.1.0 \ itertools-0.13.0 \ itoa-1.0.14 \ js-sys-0.3.76 \ @@ -91,20 +91,20 @@ CARGO_CRATES= adler2-2.0.0 \ nom-7.1.3 \ ntapi-0.4.1 \ nu-ansi-term-0.50.1 \ - nu-cmd-lang-0.103.0 \ - nu-derive-value-0.103.0 \ - nu-engine-0.103.0 \ - nu-glob-0.103.0 \ - nu-parser-0.103.0 \ - nu-path-0.103.0 \ - nu-plugin-0.103.0 \ - nu-plugin-core-0.103.0 \ - nu-plugin-engine-0.103.0 \ - nu-plugin-protocol-0.103.0 \ - nu-plugin-test-support-0.103.0 \ - nu-protocol-0.103.0 \ - nu-system-0.103.0 \ - nu-utils-0.103.0 \ + nu-cmd-lang-0.104.0 \ + nu-derive-value-0.104.0 \ + nu-engine-0.104.0 \ + nu-glob-0.104.0 \ + nu-parser-0.104.0 \ + nu-path-0.104.0 \ + nu-plugin-0.104.0 \ + nu-plugin-core-0.104.0 \ + nu-plugin-engine-0.104.0 \ + nu-plugin-protocol-0.104.0 \ + nu-plugin-test-support-0.104.0 \ + nu-protocol-0.104.0 \ + nu-system-0.104.0 \ + nu-utils-0.104.0 \ num-conv-0.1.0 \ num-format-0.4.4 \ num-traits-0.2.19 \ @@ -154,7 +154,7 @@ CARGO_CRATES= adler2-2.0.0 \ serde-1.0.216 \ serde_derive-1.0.216 \ serde_json-1.0.133 \ - shadow-rs-0.38.0 \ + shadow-rs-1.1.1 \ shlex-1.3.0 \ signal-hook-0.3.17 \ signal-hook-mio-0.2.4 \ @@ -174,9 +174,9 @@ CARGO_CRATES= adler2-2.0.0 \ terminal_size-0.4.1 \ textwrap-0.16.1 \ thiserror-1.0.69 \ - thiserror-2.0.6 \ + thiserror-2.0.12 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.6 \ + thiserror-impl-2.0.12 \ time-0.3.37 \ time-core-0.1.2 \ time-macros-0.2.19 \ @@ -185,6 +185,9 @@ CARGO_CRATES= adler2-2.0.0 \ typeid-1.0.2 \ typetag-0.2.18 \ typetag-impl-0.2.18 \ + tz-rs-0.7.0 \ + tzdb-0.7.2 \ + tzdb_data-0.2.1 \ unicase-2.8.0 \ unicode-ident-1.0.14 \ unicode-linebreak-0.1.5 \ diff --git a/shells/nu_plugin_formats/distinfo b/shells/nu_plugin_formats/distinfo index d30c371c946a..521fe81a164f 100644 --- a/shells/nu_plugin_formats/distinfo +++ b/shells/nu_plugin_formats/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1742766201 -SHA256 (nu_plugin_formats-0.103.0.tar.gz) = 7feeecd05c7f36bf4a167f4eff93d4775ca23eaa768bbc6818049fc326e005ec -SIZE (nu_plugin_formats-0.103.0.tar.gz) = 22608 +TIMESTAMP = 1747177937 +SHA256 (nu_plugin_formats-0.104.0.tar.gz) = bf192da1c43bd013ed2e7f09c0935d4156ce4e4a2b50f8a7277ae4a448b50e5e +SIZE (nu_plugin_formats-0.104.0.tar.gz) = 22766 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 SIZE (rust/crates/adler2-2.0.0.crate) = 13529 SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011 @@ -41,8 +41,8 @@ SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353 SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 SHA256 (rust/crates/bytes-1.10.0.crate) = f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9 SIZE (rust/crates/bytes-1.10.0.crate) = 76656 -SHA256 (rust/crates/bytesize-1.3.2.crate) = 2d2c12f985c78475a6b8d629afd0c360260ef34cfef52efccdcfd31972f81c2e -SIZE (rust/crates/bytesize-1.3.2.crate) = 11575 +SHA256 (rust/crates/bytesize-1.3.3.crate) = 2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659 +SIZE (rust/crates/bytesize-1.3.3.crate) = 11594 SHA256 (rust/crates/cc-1.2.16.crate) = be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c SIZE (rust/crates/cc-1.2.16.crate) = 103847 SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766 @@ -131,16 +131,16 @@ SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba5 SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185 SHA256 (rust/crates/ical-0.11.0.crate) = 9b7cab7543a8b7729a19e2c04309f902861293dcdae6558dfbeb634454d279f6 SIZE (rust/crates/ical-0.11.0.crate) = 29407 -SHA256 (rust/crates/indexmap-2.7.0.crate) = 62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f -SIZE (rust/crates/indexmap-2.7.0.crate) = 85335 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/interprocess-2.2.2.crate) = 894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb SIZE (rust/crates/interprocess-2.2.2.crate) = 114885 SHA256 (rust/crates/inventory-0.3.15.crate) = f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767 SIZE (rust/crates/inventory-0.3.15.crate) = 13967 SHA256 (rust/crates/is_ci-1.2.0.crate) = 7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45 SIZE (rust/crates/is_ci-1.2.0.crate) = 4521 -SHA256 (rust/crates/is_debug-1.0.2.crate) = e8ea828c9d6638a5bd3d8b14e37502b4d56cae910ccf8a5b7f51c7a0eb1d0508 -SIZE (rust/crates/is_debug-1.0.2.crate) = 2640 +SHA256 (rust/crates/is_debug-1.1.0.crate) = 1fe266d2e243c931d8190177f20bf7f24eed45e96f39e87dc49a27b32d12d407 +SIZE (rust/crates/is_debug-1.1.0.crate) = 3398 SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186 SIZE (rust/crates/itertools-0.13.0.crate) = 146261 SHA256 (rust/crates/itoa-1.0.14.crate) = d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674 @@ -187,34 +187,34 @@ SHA256 (rust/crates/ntapi-0.4.1.crate) = e8a3895c6391c39d7fe7ebc444a87eb2991b2a0 SIZE (rust/crates/ntapi-0.4.1.crate) = 126552 SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399 SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536 -SHA256 (rust/crates/nu-cmd-lang-0.103.0.crate) = 8cea93e3f189c944a246221d7c8ed8e57b23379bf9bb0d31ea7964ff2b56020d -SIZE (rust/crates/nu-cmd-lang-0.103.0.crate) = 45435 -SHA256 (rust/crates/nu-derive-value-0.103.0.crate) = 8f1f5198366892552a9a827a61a27e31543a0827c55ccfb6bf060489cec80d25 -SIZE (rust/crates/nu-derive-value-0.103.0.crate) = 13996 -SHA256 (rust/crates/nu-engine-0.103.0.crate) = 0cb715bb4c18e4259d21c5b710f04f7190c9803211e2a0baa31ec3a5841daa56 -SIZE (rust/crates/nu-engine-0.103.0.crate) = 69023 -SHA256 (rust/crates/nu-glob-0.103.0.crate) = 904fa576593ed75439eec561f62824bbe55f4a05f1c8239309a939d43e0ad704 -SIZE (rust/crates/nu-glob-0.103.0.crate) = 28776 -SHA256 (rust/crates/nu-parser-0.103.0.crate) = daac6d76c123d2534bcbc67ed065c4a78a54cf034e09332ed648a85339c11f91 -SIZE (rust/crates/nu-parser-0.103.0.crate) = 118259 -SHA256 (rust/crates/nu-path-0.103.0.crate) = e6e3a55f26e42d1f98fbb4f41fa4fcc7dee1f61f13c5eabda5ca90e78825b2fa -SIZE (rust/crates/nu-path-0.103.0.crate) = 28869 -SHA256 (rust/crates/nu-plugin-0.103.0.crate) = 5f35f2290c077441edfde50745b501ba5ffad11217d5d01168cf1ab1b0e4c03d -SIZE (rust/crates/nu-plugin-0.103.0.crate) = 39573 -SHA256 (rust/crates/nu-plugin-core-0.103.0.crate) = 5ba6f1d1c7f6ca9852c26e8e65a0f530b8fa3a1237a6c62de089ccaf6c1645fe -SIZE (rust/crates/nu-plugin-core-0.103.0.crate) = 39670 -SHA256 (rust/crates/nu-plugin-engine-0.103.0.crate) = edc79cff665e4434153c97bd7065608f6649cf3a45cb1576d39a58a111c87c9f -SIZE (rust/crates/nu-plugin-engine-0.103.0.crate) = 51503 -SHA256 (rust/crates/nu-plugin-protocol-0.103.0.crate) = 88bef165a59909561b349fb3eda7e16afae8f8d06d6c99527b4545c086b51f87 -SIZE (rust/crates/nu-plugin-protocol-0.103.0.crate) = 26703 -SHA256 (rust/crates/nu-plugin-test-support-0.103.0.crate) = 91b913effb3fc1b17338a9d3dacddd81ec907a65c94fbd050685366d60d4a773 -SIZE (rust/crates/nu-plugin-test-support-0.103.0.crate) = 23362 -SHA256 (rust/crates/nu-protocol-0.103.0.crate) = ca35b5860d171e8e0994d42373f62fc99fb7a0b205e5d8a38897e2869d5f6ab7 -SIZE (rust/crates/nu-protocol-0.103.0.crate) = 228512 -SHA256 (rust/crates/nu-system-0.103.0.crate) = 70bb9b1c59acd274bd36b4879e1e03491a3ee2f24689a9070c66fbd8aed23b27 -SIZE (rust/crates/nu-system-0.103.0.crate) = 30772 -SHA256 (rust/crates/nu-utils-0.103.0.crate) = 2f01345a3c94f75397020250286c536e1b306cb714b2931c1a1c9a3318254793 -SIZE (rust/crates/nu-utils-0.103.0.crate) = 32382 +SHA256 (rust/crates/nu-cmd-lang-0.104.0.crate) = e66adfeda88f8e27bcb25d068d9e6e8b3a94c2bf988a9c30e8e3b2045867aefe +SIZE (rust/crates/nu-cmd-lang-0.104.0.crate) = 46346 +SHA256 (rust/crates/nu-derive-value-0.104.0.crate) = 5fd0d8e358b6440d01fe4e617f180aea826bade72efb54f5dc1c22e0e8038b6f +SIZE (rust/crates/nu-derive-value-0.104.0.crate) = 13996 +SHA256 (rust/crates/nu-engine-0.104.0.crate) = 0c2b01483e3d09460375f0c0da7a83b6dc26fb319ca09c55d0665087b2d587c7 +SIZE (rust/crates/nu-engine-0.104.0.crate) = 69242 +SHA256 (rust/crates/nu-glob-0.104.0.crate) = 202ce25889336061efea24e69d4e0de7147c15fd9892cdd70533500d47db8364 +SIZE (rust/crates/nu-glob-0.104.0.crate) = 18374 +SHA256 (rust/crates/nu-parser-0.104.0.crate) = cb0591ef4d4989c1930863d9d17d8fd2d70b03ec2d9caeca067e9626e05c49d9 +SIZE (rust/crates/nu-parser-0.104.0.crate) = 119009 +SHA256 (rust/crates/nu-path-0.104.0.crate) = 41c68c7c06898a5c4c9f10038da63759661cb8ac8f301ce7d159173a595c8258 +SIZE (rust/crates/nu-path-0.104.0.crate) = 28878 +SHA256 (rust/crates/nu-plugin-0.104.0.crate) = e00d2ccb35a1206c51740bea63b0deb72dc4c34ca6ceae6feac95f84d68370d2 +SIZE (rust/crates/nu-plugin-0.104.0.crate) = 39550 +SHA256 (rust/crates/nu-plugin-core-0.104.0.crate) = 30e416e6de2b62925ffc1924740a0e5340316a1630af3d2490d513bcb1f94e94 +SIZE (rust/crates/nu-plugin-core-0.104.0.crate) = 39724 +SHA256 (rust/crates/nu-plugin-engine-0.104.0.crate) = 14fb214ba23829ebfe61b9a5e0688cd5620922438d7d76a6f6b3e1151d07e82a +SIZE (rust/crates/nu-plugin-engine-0.104.0.crate) = 51488 +SHA256 (rust/crates/nu-plugin-protocol-0.104.0.crate) = be7edbdee451bb29150b5e8184660d79d0c0801a6748b9f712b758cb78110305 +SIZE (rust/crates/nu-plugin-protocol-0.104.0.crate) = 26744 +SHA256 (rust/crates/nu-plugin-test-support-0.104.0.crate) = b8acb62c21fd980e467162bc17a4e93a8435e28249256b52e58718278149978d +SIZE (rust/crates/nu-plugin-test-support-0.104.0.crate) = 23523 +SHA256 (rust/crates/nu-protocol-0.104.0.crate) = ab657b1947f1fad3c5052cb210fa311744736a4800a966ae21c4bc63de7c60ab +SIZE (rust/crates/nu-protocol-0.104.0.crate) = 231989 +SHA256 (rust/crates/nu-system-0.104.0.crate) = f47094aaab4f1e3a86c3960400d82a50fcabde907f964ae095963ec95669577a +SIZE (rust/crates/nu-system-0.104.0.crate) = 31114 +SHA256 (rust/crates/nu-utils-0.104.0.crate) = 327999b774d78b301a6b68c33d312a1a8047c59fb8971b6552ebf823251f1481 +SIZE (rust/crates/nu-utils-0.104.0.crate) = 32234 SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9 SIZE (rust/crates/num-conv-0.1.0.crate) = 7444 SHA256 (rust/crates/num-format-0.4.4.crate) = a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3 @@ -313,8 +313,8 @@ SHA256 (rust/crates/serde_derive-1.0.216.crate) = 46f859dbbf73865c6627ed570e7896 SIZE (rust/crates/serde_derive-1.0.216.crate) = 57674 SHA256 (rust/crates/serde_json-1.0.133.crate) = c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377 SIZE (rust/crates/serde_json-1.0.133.crate) = 150739 -SHA256 (rust/crates/shadow-rs-0.38.0.crate) = 69d433b5df1e1958a668457ebe4a9c5b7bcfe844f4eb2276ac43cf273baddd54 -SIZE (rust/crates/shadow-rs-0.38.0.crate) = 34481 +SHA256 (rust/crates/shadow-rs-1.1.1.crate) = 6d5625ed609cf66d7e505e7d487aca815626dc4ebb6c0dd07637ca61a44651a6 +SIZE (rust/crates/shadow-rs-1.1.1.crate) = 34850 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (rust/crates/shlex-1.3.0.crate) = 18713 SHA256 (rust/crates/signal-hook-0.3.17.crate) = 8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801 @@ -353,12 +353,12 @@ SHA256 (rust/crates/textwrap-0.16.1.crate) = 23d434d3f8967a09480fb04132ebe0a3e08 SIZE (rust/crates/textwrap-0.16.1.crate) = 56012 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.6.crate) = 8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47 -SIZE (rust/crates/thiserror-2.0.6.crate) = 28433 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 -SHA256 (rust/crates/thiserror-impl-2.0.6.crate) = d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312 -SIZE (rust/crates/thiserror-impl-2.0.6.crate) = 20946 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 SHA256 (rust/crates/time-0.3.37.crate) = 35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21 SIZE (rust/crates/time-0.3.37.crate) = 123257 SHA256 (rust/crates/time-core-0.1.2.crate) = ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3 @@ -375,6 +375,12 @@ SHA256 (rust/crates/typetag-0.2.18.crate) = 52ba3b6e86ffe0054b2c44f2d86407388b93 SIZE (rust/crates/typetag-0.2.18.crate) = 30145 SHA256 (rust/crates/typetag-impl-0.2.18.crate) = 70b20a22c42c8f1cd23ce5e34f165d4d37038f5b663ad20fb6adbdf029172483 SIZE (rust/crates/typetag-impl-0.2.18.crate) = 9137 +SHA256 (rust/crates/tz-rs-0.7.0.crate) = e1450bf2b99397e72070e7935c89facaa80092ac812502200375f1f7d33c71a1 +SIZE (rust/crates/tz-rs-0.7.0.crate) = 46486 +SHA256 (rust/crates/tzdb-0.7.2.crate) = 0be2ea5956f295449f47c0b825c5e109022ff1a6a53bb4f77682a87c2341fbf5 +SIZE (rust/crates/tzdb-0.7.2.crate) = 10188 +SHA256 (rust/crates/tzdb_data-0.2.1.crate) = 0604b35c1f390a774fdb138cac75a99981078895d24bcab175987440bbff803b +SIZE (rust/crates/tzdb_data-0.2.1.crate) = 246122 SHA256 (rust/crates/unicase-2.8.0.crate) = 7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df SIZE (rust/crates/unicase-2.8.0.crate) = 23843 SHA256 (rust/crates/unicode-ident-1.0.14.crate) = adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83 diff --git a/shells/nu_plugin_gstat/Makefile.crates b/shells/nu_plugin_gstat/Makefile.crates index b06ff3f7467d..6fac73d8fc5c 100644 --- a/shells/nu_plugin_gstat/Makefile.crates +++ b/shells/nu_plugin_gstat/Makefile.crates @@ -62,7 +62,7 @@ CARGO_CRATES= adler2-2.0.0 \ icu_provider_macros-1.5.0 \ idna-1.0.3 \ idna_adapter-1.2.0 \ - indexmap-2.7.0 \ + indexmap-2.9.0 \ interprocess-2.2.2 \ inventory-0.3.15 \ is_ci-1.2.0 \ @@ -94,22 +94,22 @@ CARGO_CRATES= adler2-2.0.0 \ nom-7.1.3 \ ntapi-0.4.1 \ nu-ansi-term-0.50.1 \ - nu-derive-value-0.103.0 \ - nu-engine-0.103.0 \ - nu-glob-0.103.0 \ - nu-path-0.103.0 \ - nu-plugin-0.103.0 \ - nu-plugin-core-0.103.0 \ - nu-plugin-protocol-0.103.0 \ - nu-protocol-0.103.0 \ - nu-system-0.103.0 \ - nu-utils-0.103.0 \ + nu-derive-value-0.104.0 \ + nu-engine-0.104.0 \ + nu-glob-0.104.0 \ + nu-path-0.104.0 \ + nu-plugin-0.104.0 \ + nu-plugin-core-0.104.0 \ + nu-plugin-protocol-0.104.0 \ + nu-protocol-0.104.0 \ + nu-system-0.104.0 \ + nu-utils-0.104.0 \ num-format-0.4.4 \ num-traits-0.2.19 \ omnipath-0.1.6 \ once_cell-1.20.2 \ openssl-probe-0.1.5 \ - openssl-sys-0.9.105 \ + openssl-sys-0.9.107 \ option-ext-0.2.0 \ os_pipe-1.2.1 \ owo-colors-4.1.0 \ @@ -166,9 +166,9 @@ CARGO_CRATES= adler2-2.0.0 \ terminal_size-0.4.1 \ textwrap-0.16.1 \ thiserror-1.0.69 \ - thiserror-2.0.6 \ + thiserror-2.0.12 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.6 \ + thiserror-impl-2.0.12 \ tinystr-0.7.6 \ typeid-1.0.2 \ typetag-0.2.18 \ diff --git a/shells/nu_plugin_gstat/distinfo b/shells/nu_plugin_gstat/distinfo index cdee5ed77919..21c48ccaa14d 100644 --- a/shells/nu_plugin_gstat/distinfo +++ b/shells/nu_plugin_gstat/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1742766203 -SHA256 (nu_plugin_gstat-0.103.0.tar.gz) = 0eaeffa8ce2ec575197cffcaf263bc43830c39c9ec349be4a903eac061b2497b -SIZE (nu_plugin_gstat-0.103.0.tar.gz) = 19563 +TIMESTAMP = 1747177940 +SHA256 (nu_plugin_gstat-0.104.0.tar.gz) = 246e4dec7f17628a69deadb9bbc7c5cffaf8cd4f3c1ad41263fae04891ffc3f5 +SIZE (nu_plugin_gstat-0.104.0.tar.gz) = 19552 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 SIZE (rust/crates/adler2-2.0.0.crate) = 13529 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 @@ -129,8 +129,8 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f SIZE (rust/crates/idna-1.0.3.crate) = 142515 SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 -SHA256 (rust/crates/indexmap-2.7.0.crate) = 62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f -SIZE (rust/crates/indexmap-2.7.0.crate) = 85335 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/interprocess-2.2.2.crate) = 894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb SIZE (rust/crates/interprocess-2.2.2.crate) = 114885 SHA256 (rust/crates/inventory-0.3.15.crate) = f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767 @@ -193,26 +193,26 @@ SHA256 (rust/crates/ntapi-0.4.1.crate) = e8a3895c6391c39d7fe7ebc444a87eb2991b2a0 SIZE (rust/crates/ntapi-0.4.1.crate) = 126552 SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399 SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536 -SHA256 (rust/crates/nu-derive-value-0.103.0.crate) = 8f1f5198366892552a9a827a61a27e31543a0827c55ccfb6bf060489cec80d25 -SIZE (rust/crates/nu-derive-value-0.103.0.crate) = 13996 -SHA256 (rust/crates/nu-engine-0.103.0.crate) = 0cb715bb4c18e4259d21c5b710f04f7190c9803211e2a0baa31ec3a5841daa56 -SIZE (rust/crates/nu-engine-0.103.0.crate) = 69023 -SHA256 (rust/crates/nu-glob-0.103.0.crate) = 904fa576593ed75439eec561f62824bbe55f4a05f1c8239309a939d43e0ad704 -SIZE (rust/crates/nu-glob-0.103.0.crate) = 28776 -SHA256 (rust/crates/nu-path-0.103.0.crate) = e6e3a55f26e42d1f98fbb4f41fa4fcc7dee1f61f13c5eabda5ca90e78825b2fa -SIZE (rust/crates/nu-path-0.103.0.crate) = 28869 -SHA256 (rust/crates/nu-plugin-0.103.0.crate) = 5f35f2290c077441edfde50745b501ba5ffad11217d5d01168cf1ab1b0e4c03d -SIZE (rust/crates/nu-plugin-0.103.0.crate) = 39573 -SHA256 (rust/crates/nu-plugin-core-0.103.0.crate) = 5ba6f1d1c7f6ca9852c26e8e65a0f530b8fa3a1237a6c62de089ccaf6c1645fe -SIZE (rust/crates/nu-plugin-core-0.103.0.crate) = 39670 -SHA256 (rust/crates/nu-plugin-protocol-0.103.0.crate) = 88bef165a59909561b349fb3eda7e16afae8f8d06d6c99527b4545c086b51f87 -SIZE (rust/crates/nu-plugin-protocol-0.103.0.crate) = 26703 -SHA256 (rust/crates/nu-protocol-0.103.0.crate) = ca35b5860d171e8e0994d42373f62fc99fb7a0b205e5d8a38897e2869d5f6ab7 -SIZE (rust/crates/nu-protocol-0.103.0.crate) = 228512 -SHA256 (rust/crates/nu-system-0.103.0.crate) = 70bb9b1c59acd274bd36b4879e1e03491a3ee2f24689a9070c66fbd8aed23b27 -SIZE (rust/crates/nu-system-0.103.0.crate) = 30772 -SHA256 (rust/crates/nu-utils-0.103.0.crate) = 2f01345a3c94f75397020250286c536e1b306cb714b2931c1a1c9a3318254793 -SIZE (rust/crates/nu-utils-0.103.0.crate) = 32382 +SHA256 (rust/crates/nu-derive-value-0.104.0.crate) = 5fd0d8e358b6440d01fe4e617f180aea826bade72efb54f5dc1c22e0e8038b6f +SIZE (rust/crates/nu-derive-value-0.104.0.crate) = 13996 +SHA256 (rust/crates/nu-engine-0.104.0.crate) = 0c2b01483e3d09460375f0c0da7a83b6dc26fb319ca09c55d0665087b2d587c7 +SIZE (rust/crates/nu-engine-0.104.0.crate) = 69242 +SHA256 (rust/crates/nu-glob-0.104.0.crate) = 202ce25889336061efea24e69d4e0de7147c15fd9892cdd70533500d47db8364 +SIZE (rust/crates/nu-glob-0.104.0.crate) = 18374 +SHA256 (rust/crates/nu-path-0.104.0.crate) = 41c68c7c06898a5c4c9f10038da63759661cb8ac8f301ce7d159173a595c8258 +SIZE (rust/crates/nu-path-0.104.0.crate) = 28878 +SHA256 (rust/crates/nu-plugin-0.104.0.crate) = e00d2ccb35a1206c51740bea63b0deb72dc4c34ca6ceae6feac95f84d68370d2 +SIZE (rust/crates/nu-plugin-0.104.0.crate) = 39550 +SHA256 (rust/crates/nu-plugin-core-0.104.0.crate) = 30e416e6de2b62925ffc1924740a0e5340316a1630af3d2490d513bcb1f94e94 +SIZE (rust/crates/nu-plugin-core-0.104.0.crate) = 39724 +SHA256 (rust/crates/nu-plugin-protocol-0.104.0.crate) = be7edbdee451bb29150b5e8184660d79d0c0801a6748b9f712b758cb78110305 +SIZE (rust/crates/nu-plugin-protocol-0.104.0.crate) = 26744 +SHA256 (rust/crates/nu-protocol-0.104.0.crate) = ab657b1947f1fad3c5052cb210fa311744736a4800a966ae21c4bc63de7c60ab +SIZE (rust/crates/nu-protocol-0.104.0.crate) = 231989 +SHA256 (rust/crates/nu-system-0.104.0.crate) = f47094aaab4f1e3a86c3960400d82a50fcabde907f964ae095963ec95669577a +SIZE (rust/crates/nu-system-0.104.0.crate) = 31114 +SHA256 (rust/crates/nu-utils-0.104.0.crate) = 327999b774d78b301a6b68c33d312a1a8047c59fb8971b6552ebf823251f1481 +SIZE (rust/crates/nu-utils-0.104.0.crate) = 32234 SHA256 (rust/crates/num-format-0.4.4.crate) = a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3 SIZE (rust/crates/num-format-0.4.4.crate) = 61509 SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 @@ -223,8 +223,8 @@ SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f9 SIZE (rust/crates/once_cell-1.20.2.crate) = 33394 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.105.crate) = 8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc -SIZE (rust/crates/openssl-sys-0.9.105.crate) = 72287 +SHA256 (rust/crates/openssl-sys-0.9.107.crate) = 8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07 +SIZE (rust/crates/openssl-sys-0.9.107.crate) = 78156 SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 SHA256 (rust/crates/os_pipe-1.2.1.crate) = 5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982 @@ -337,12 +337,12 @@ SHA256 (rust/crates/textwrap-0.16.1.crate) = 23d434d3f8967a09480fb04132ebe0a3e08 SIZE (rust/crates/textwrap-0.16.1.crate) = 56012 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.6.crate) = 8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47 -SIZE (rust/crates/thiserror-2.0.6.crate) = 28433 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 -SHA256 (rust/crates/thiserror-impl-2.0.6.crate) = d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312 -SIZE (rust/crates/thiserror-impl-2.0.6.crate) = 20946 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f SIZE (rust/crates/tinystr-0.7.6.crate) = 16971 SHA256 (rust/crates/typeid-1.0.2.crate) = 0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e diff --git a/shells/nu_plugin_inc/Makefile.crates b/shells/nu_plugin_inc/Makefile.crates index 2d999154b43e..e513e8e85970 100644 --- a/shells/nu_plugin_inc/Makefile.crates +++ b/shells/nu_plugin_inc/Makefile.crates @@ -47,7 +47,7 @@ CARGO_CRATES= adler2-2.0.0 \ hex-0.4.3 \ iana-time-zone-0.1.61 \ iana-time-zone-haiku-0.1.2 \ - indexmap-2.7.0 \ + indexmap-2.9.0 \ interprocess-2.2.2 \ inventory-0.3.15 \ is_ci-1.2.0 \ @@ -74,16 +74,16 @@ CARGO_CRATES= adler2-2.0.0 \ nom-7.1.3 \ ntapi-0.4.1 \ nu-ansi-term-0.50.1 \ - nu-derive-value-0.103.0 \ - nu-engine-0.103.0 \ - nu-glob-0.103.0 \ - nu-path-0.103.0 \ - nu-plugin-0.103.0 \ - nu-plugin-core-0.103.0 \ - nu-plugin-protocol-0.103.0 \ - nu-protocol-0.103.0 \ - nu-system-0.103.0 \ - nu-utils-0.103.0 \ + nu-derive-value-0.104.0 \ + nu-engine-0.104.0 \ + nu-glob-0.104.0 \ + nu-path-0.104.0 \ + nu-plugin-0.104.0 \ + nu-plugin-core-0.104.0 \ + nu-plugin-protocol-0.104.0 \ + nu-protocol-0.104.0 \ + nu-system-0.104.0 \ + nu-utils-0.104.0 \ num-format-0.4.4 \ num-traits-0.2.19 \ omnipath-0.1.6 \ @@ -140,9 +140,9 @@ CARGO_CRATES= adler2-2.0.0 \ terminal_size-0.4.1 \ textwrap-0.16.1 \ thiserror-1.0.69 \ - thiserror-2.0.6 \ + thiserror-2.0.12 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.6 \ + thiserror-impl-2.0.12 \ typeid-1.0.2 \ typetag-0.2.18 \ typetag-impl-0.2.18 \ diff --git a/shells/nu_plugin_inc/distinfo b/shells/nu_plugin_inc/distinfo index bd40523814e4..e919b04ae2e9 100644 --- a/shells/nu_plugin_inc/distinfo +++ b/shells/nu_plugin_inc/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1742766205 -SHA256 (nu_plugin_inc-0.103.0.tar.gz) = 3c6e772067e0969f7187fbe0ee26d6f950784ed42fa901ceaee27ce7020cfae8 -SIZE (nu_plugin_inc-0.103.0.tar.gz) = 15019 +TIMESTAMP = 1747177942 +SHA256 (nu_plugin_inc-0.104.0.tar.gz) = db8cbc30677cc482a0180f2be3bd2a026ddc1132ce3d0bb2f9a065e2e31547c2 +SIZE (nu_plugin_inc-0.104.0.tar.gz) = 15008 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 SIZE (rust/crates/adler2-2.0.0.crate) = 13529 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 @@ -99,8 +99,8 @@ SHA256 (rust/crates/iana-time-zone-0.1.61.crate) = 235e081f3925a06703c2d0117ea8b SIZE (rust/crates/iana-time-zone-0.1.61.crate) = 27685 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/indexmap-2.7.0.crate) = 62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f -SIZE (rust/crates/indexmap-2.7.0.crate) = 85335 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/interprocess-2.2.2.crate) = 894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb SIZE (rust/crates/interprocess-2.2.2.crate) = 114885 SHA256 (rust/crates/inventory-0.3.15.crate) = f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767 @@ -153,26 +153,26 @@ SHA256 (rust/crates/ntapi-0.4.1.crate) = e8a3895c6391c39d7fe7ebc444a87eb2991b2a0 SIZE (rust/crates/ntapi-0.4.1.crate) = 126552 SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399 SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536 -SHA256 (rust/crates/nu-derive-value-0.103.0.crate) = 8f1f5198366892552a9a827a61a27e31543a0827c55ccfb6bf060489cec80d25 -SIZE (rust/crates/nu-derive-value-0.103.0.crate) = 13996 -SHA256 (rust/crates/nu-engine-0.103.0.crate) = 0cb715bb4c18e4259d21c5b710f04f7190c9803211e2a0baa31ec3a5841daa56 -SIZE (rust/crates/nu-engine-0.103.0.crate) = 69023 -SHA256 (rust/crates/nu-glob-0.103.0.crate) = 904fa576593ed75439eec561f62824bbe55f4a05f1c8239309a939d43e0ad704 -SIZE (rust/crates/nu-glob-0.103.0.crate) = 28776 -SHA256 (rust/crates/nu-path-0.103.0.crate) = e6e3a55f26e42d1f98fbb4f41fa4fcc7dee1f61f13c5eabda5ca90e78825b2fa -SIZE (rust/crates/nu-path-0.103.0.crate) = 28869 -SHA256 (rust/crates/nu-plugin-0.103.0.crate) = 5f35f2290c077441edfde50745b501ba5ffad11217d5d01168cf1ab1b0e4c03d -SIZE (rust/crates/nu-plugin-0.103.0.crate) = 39573 -SHA256 (rust/crates/nu-plugin-core-0.103.0.crate) = 5ba6f1d1c7f6ca9852c26e8e65a0f530b8fa3a1237a6c62de089ccaf6c1645fe -SIZE (rust/crates/nu-plugin-core-0.103.0.crate) = 39670 -SHA256 (rust/crates/nu-plugin-protocol-0.103.0.crate) = 88bef165a59909561b349fb3eda7e16afae8f8d06d6c99527b4545c086b51f87 -SIZE (rust/crates/nu-plugin-protocol-0.103.0.crate) = 26703 -SHA256 (rust/crates/nu-protocol-0.103.0.crate) = ca35b5860d171e8e0994d42373f62fc99fb7a0b205e5d8a38897e2869d5f6ab7 -SIZE (rust/crates/nu-protocol-0.103.0.crate) = 228512 -SHA256 (rust/crates/nu-system-0.103.0.crate) = 70bb9b1c59acd274bd36b4879e1e03491a3ee2f24689a9070c66fbd8aed23b27 -SIZE (rust/crates/nu-system-0.103.0.crate) = 30772 -SHA256 (rust/crates/nu-utils-0.103.0.crate) = 2f01345a3c94f75397020250286c536e1b306cb714b2931c1a1c9a3318254793 -SIZE (rust/crates/nu-utils-0.103.0.crate) = 32382 +SHA256 (rust/crates/nu-derive-value-0.104.0.crate) = 5fd0d8e358b6440d01fe4e617f180aea826bade72efb54f5dc1c22e0e8038b6f +SIZE (rust/crates/nu-derive-value-0.104.0.crate) = 13996 +SHA256 (rust/crates/nu-engine-0.104.0.crate) = 0c2b01483e3d09460375f0c0da7a83b6dc26fb319ca09c55d0665087b2d587c7 +SIZE (rust/crates/nu-engine-0.104.0.crate) = 69242 +SHA256 (rust/crates/nu-glob-0.104.0.crate) = 202ce25889336061efea24e69d4e0de7147c15fd9892cdd70533500d47db8364 +SIZE (rust/crates/nu-glob-0.104.0.crate) = 18374 +SHA256 (rust/crates/nu-path-0.104.0.crate) = 41c68c7c06898a5c4c9f10038da63759661cb8ac8f301ce7d159173a595c8258 +SIZE (rust/crates/nu-path-0.104.0.crate) = 28878 +SHA256 (rust/crates/nu-plugin-0.104.0.crate) = e00d2ccb35a1206c51740bea63b0deb72dc4c34ca6ceae6feac95f84d68370d2 +SIZE (rust/crates/nu-plugin-0.104.0.crate) = 39550 +SHA256 (rust/crates/nu-plugin-core-0.104.0.crate) = 30e416e6de2b62925ffc1924740a0e5340316a1630af3d2490d513bcb1f94e94 +SIZE (rust/crates/nu-plugin-core-0.104.0.crate) = 39724 +SHA256 (rust/crates/nu-plugin-protocol-0.104.0.crate) = be7edbdee451bb29150b5e8184660d79d0c0801a6748b9f712b758cb78110305 +SIZE (rust/crates/nu-plugin-protocol-0.104.0.crate) = 26744 +SHA256 (rust/crates/nu-protocol-0.104.0.crate) = ab657b1947f1fad3c5052cb210fa311744736a4800a966ae21c4bc63de7c60ab +SIZE (rust/crates/nu-protocol-0.104.0.crate) = 231989 +SHA256 (rust/crates/nu-system-0.104.0.crate) = f47094aaab4f1e3a86c3960400d82a50fcabde907f964ae095963ec95669577a +SIZE (rust/crates/nu-system-0.104.0.crate) = 31114 +SHA256 (rust/crates/nu-utils-0.104.0.crate) = 327999b774d78b301a6b68c33d312a1a8047c59fb8971b6552ebf823251f1481 +SIZE (rust/crates/nu-utils-0.104.0.crate) = 32234 SHA256 (rust/crates/num-format-0.4.4.crate) = a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3 SIZE (rust/crates/num-format-0.4.4.crate) = 61509 SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 @@ -285,12 +285,12 @@ SHA256 (rust/crates/textwrap-0.16.1.crate) = 23d434d3f8967a09480fb04132ebe0a3e08 SIZE (rust/crates/textwrap-0.16.1.crate) = 56012 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.6.crate) = 8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47 -SIZE (rust/crates/thiserror-2.0.6.crate) = 28433 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 -SHA256 (rust/crates/thiserror-impl-2.0.6.crate) = d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312 -SIZE (rust/crates/thiserror-impl-2.0.6.crate) = 20946 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 SHA256 (rust/crates/typeid-1.0.2.crate) = 0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e SIZE (rust/crates/typeid-1.0.2.crate) = 8844 SHA256 (rust/crates/typetag-0.2.18.crate) = 52ba3b6e86ffe0054b2c44f2d86407388b933b16cb0a70eea3929420db1d9bbe diff --git a/shells/nu_plugin_polars/Makefile.crates b/shells/nu_plugin_polars/Makefile.crates index 87c0af950e39..547f8cb77edc 100644 --- a/shells/nu_plugin_polars/Makefile.crates +++ b/shells/nu_plugin_polars/Makefile.crates @@ -18,7 +18,7 @@ CARGO_CRATES= addr2line-0.24.2 \ anstyle-wincon-3.0.6 \ arbitrary-1.4.1 \ argminmax-0.6.2 \ - array-init-cursor-0.2.0 \ + array-init-cursor-0.2.1 \ arrayref-0.3.9 \ arrayvec-0.5.2 \ arrayvec-0.7.6 \ @@ -68,8 +68,8 @@ CARGO_CRATES= addr2line-0.24.2 \ byteorder-1.5.0 \ bytes-1.10.0 \ bytes-utils-0.1.4 \ - bytesize-1.3.2 \ - calamine-0.26.1 \ + bytesize-1.3.3 \ + calamine-0.27.0 \ castaway-0.2.3 \ cc-1.2.16 \ cexpr-0.6.0 \ @@ -99,7 +99,7 @@ CARGO_CRATES= addr2line-0.24.2 \ crc-2.1.0 \ crc-catalog-1.1.1 \ crc32fast-1.4.2 \ - crossbeam-channel-0.5.13 \ + crossbeam-channel-0.5.15 \ crossbeam-deque-0.8.5 \ crossbeam-epoch-0.9.18 \ crossbeam-queue-0.3.11 \ @@ -109,7 +109,7 @@ CARGO_CRATES= addr2line-0.24.2 \ crypto-common-0.1.6 \ csv-1.3.1 \ csv-core-0.1.11 \ - data-encoding-2.8.0 \ + data-encoding-2.9.0 \ deranged-0.3.11 \ derive_arbitrary-1.4.1 \ devicons-0.6.12 \ @@ -162,6 +162,7 @@ CARGO_CRATES= addr2line-0.24.2 \ fuzzy-matcher-0.3.7 \ generic-array-0.14.7 \ getrandom-0.2.15 \ + getrandom-0.3.1 \ gimli-0.31.1 \ glob-0.3.1 \ h2-0.3.26 \ @@ -180,7 +181,7 @@ CARGO_CRATES= addr2line-0.24.2 \ http-body-util-0.1.2 \ httparse-1.9.5 \ httpdate-1.0.3 \ - human-date-parser-0.2.0 \ + human-date-parser-0.3.1 \ humantime-2.1.0 \ hyper-0.14.31 \ hyper-1.5.1 \ @@ -202,7 +203,7 @@ CARGO_CRATES= addr2line-0.24.2 \ icu_provider_macros-1.5.0 \ idna-1.0.3 \ idna_adapter-1.2.0 \ - indexmap-2.7.0 \ + indexmap-2.9.0 \ indicatif-0.17.9 \ inotify-0.9.6 \ inotify-sys-0.1.5 \ @@ -212,7 +213,7 @@ CARGO_CRATES= addr2line-0.24.2 \ is-docker-0.2.0 \ is-wsl-0.4.0 \ is_ci-1.2.0 \ - is_debug-1.0.2 \ + is_debug-1.1.0 \ is_terminal_polyfill-1.70.1 \ itertools-0.11.0 \ itertools-0.13.0 \ @@ -257,32 +258,33 @@ CARGO_CRATES= addr2line-0.24.2 \ native-tls-0.2.12 \ nix-0.29.0 \ nom-7.1.3 \ + nom-8.0.0 \ notify-6.1.1 \ notify-debouncer-full-0.3.2 \ now-0.1.3 \ ntapi-0.4.1 \ nu-ansi-term-0.50.1 \ - nu-cmd-base-0.103.0 \ - nu-cmd-lang-0.103.0 \ - nu-color-config-0.103.0 \ - nu-command-0.103.0 \ - nu-derive-value-0.103.0 \ - nu-engine-0.103.0 \ - nu-glob-0.103.0 \ - nu-json-0.103.0 \ - nu-parser-0.103.0 \ - nu-path-0.103.0 \ - nu-plugin-0.103.0 \ - nu-plugin-core-0.103.0 \ - nu-plugin-engine-0.103.0 \ - nu-plugin-protocol-0.103.0 \ - nu-plugin-test-support-0.103.0 \ - nu-pretty-hex-0.103.0 \ - nu-protocol-0.103.0 \ - nu-system-0.103.0 \ - nu-table-0.103.0 \ - nu-term-grid-0.103.0 \ - nu-utils-0.103.0 \ + nu-cmd-base-0.104.0 \ + nu-cmd-lang-0.104.0 \ + nu-color-config-0.104.0 \ + nu-command-0.104.0 \ + nu-derive-value-0.104.0 \ + nu-engine-0.104.0 \ + nu-glob-0.104.0 \ + nu-json-0.104.0 \ + nu-parser-0.104.0 \ + nu-path-0.104.0 \ + nu-plugin-0.104.0 \ + nu-plugin-core-0.104.0 \ + nu-plugin-engine-0.104.0 \ + nu-plugin-protocol-0.104.0 \ + nu-plugin-test-support-0.104.0 \ + nu-pretty-hex-0.104.0 \ + nu-protocol-0.104.0 \ + nu-system-0.104.0 \ + nu-table-0.104.0 \ + nu-term-grid-0.104.0 \ + nu-utils-0.104.0 \ num-0.4.3 \ num-bigint-0.4.6 \ num-complex-0.4.6 \ @@ -294,17 +296,17 @@ CARGO_CRATES= addr2line-0.24.2 \ num-traits-0.2.19 \ num_threads-0.1.7 \ number_prefix-0.4.0 \ - nuon-0.103.0 \ + nuon-0.104.0 \ object-0.36.5 \ object_store-0.11.2 \ oem_cp-2.0.0 \ omnipath-0.1.6 \ once_cell-1.20.2 \ open-5.3.1 \ - openssl-0.10.70 \ + openssl-0.10.72 \ openssl-macros-0.1.1 \ openssl-probe-0.1.5 \ - openssl-sys-0.9.105 \ + openssl-sys-0.9.107 \ option-ext-0.2.0 \ os_display-0.1.3 \ os_pipe-1.2.1 \ @@ -314,11 +316,13 @@ CARGO_CRATES= addr2line-0.24.2 \ parking_lot-0.12.3 \ parking_lot_core-0.9.10 \ parse-zoneinfo-0.3.1 \ - parse_datetime-0.6.0 \ + parse_datetime-0.8.0 \ paste-1.0.15 \ pathdiff-0.2.3 \ percent-encoding-2.3.1 \ pest-2.7.15 \ + pest_consume-1.1.3 \ + pest_consume_macros-1.1.0 \ pest_derive-2.7.15 \ pest_generator-2.7.15 \ pest_meta-2.7.15 \ @@ -367,15 +371,17 @@ CARGO_CRATES= addr2line-0.24.2 \ pure-rust-locales-0.8.1 \ pwd-1.4.0 \ quick-error-2.0.1 \ - quick-xml-0.31.0 \ quick-xml-0.37.1 \ quinn-0.11.6 \ quinn-proto-0.11.9 \ quinn-udp-0.5.8 \ quote-1.0.37 \ rand-0.8.5 \ + rand-0.9.0 \ rand_chacha-0.3.1 \ + rand_chacha-0.9.0 \ rand_core-0.6.4 \ + rand_core-0.9.3 \ rand_distr-0.4.3 \ raw-cpuid-11.2.0 \ rayon-1.10.0 \ @@ -430,7 +436,7 @@ CARGO_CRATES= addr2line-0.24.2 \ serde_yaml-0.9.34+deprecated \ sha1_smol-1.0.1 \ sha2-0.10.8 \ - shadow-rs-0.38.0 \ + shadow-rs-1.1.1 \ shell-words-1.1.0 \ shlex-1.3.0 \ signal-hook-0.3.17 \ @@ -448,6 +454,7 @@ CARGO_CRATES= addr2line-0.24.2 \ snafu-derive-0.8.5 \ snap-1.1.1 \ socket2-0.5.8 \ + socks-0.3.4 \ sqlparser-0.53.0 \ stable_deref_trait-1.2.0 \ stacker-0.1.17 \ @@ -463,6 +470,7 @@ CARGO_CRATES= addr2line-0.24.2 \ supports-color-3.0.2 \ supports-hyperlinks-3.1.0 \ supports-unicode-3.0.0 \ + syn-1.0.109 \ syn-2.0.90 \ sync_wrapper-1.0.2 \ synstructure-0.13.1 \ @@ -473,9 +481,9 @@ CARGO_CRATES= addr2line-0.24.2 \ terminal_size-0.4.1 \ textwrap-0.16.1 \ thiserror-1.0.69 \ - thiserror-2.0.6 \ + thiserror-2.0.12 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.6 \ + thiserror-impl-2.0.12 \ thread_local-1.1.8 \ time-0.3.37 \ time-core-0.1.2 \ @@ -483,8 +491,8 @@ CARGO_CRATES= addr2line-0.24.2 \ tinystr-0.7.6 \ tinyvec-1.8.0 \ tinyvec_macros-0.1.1 \ - titlecase-3.4.0 \ - tokio-1.43.0 \ + titlecase-3.5.0 \ + tokio-1.44.2 \ tokio-macros-2.5.0 \ tokio-native-tls-0.3.1 \ tokio-rustls-0.24.1 \ @@ -502,6 +510,9 @@ CARGO_CRATES= addr2line-0.24.2 \ typenum-1.17.0 \ typetag-0.2.18 \ typetag-impl-0.2.18 \ + tz-rs-0.7.0 \ + tzdb-0.7.2 \ + tzdb_data-0.2.1 \ ucd-trie-0.1.7 \ umask-2.1.0 \ unicase-2.8.0 \ @@ -522,17 +533,17 @@ CARGO_CRATES= addr2line-0.24.2 \ utf16_iter-1.0.5 \ utf8_iter-1.0.4 \ utf8parse-0.2.2 \ - uu_cp-0.0.29 \ - uu_mkdir-0.0.29 \ - uu_mktemp-0.0.29 \ - uu_mv-0.0.29 \ - uu_touch-0.0.29 \ - uu_uname-0.0.29 \ - uu_whoami-0.0.29 \ - uucore-0.0.29 \ - uucore_procs-0.0.29 \ - uuhelp_parser-0.0.29 \ - uuid-1.12.0 \ + uu_cp-0.0.30 \ + uu_mkdir-0.0.30 \ + uu_mktemp-0.0.30 \ + uu_mv-0.0.30 \ + uu_touch-0.0.30 \ + uu_uname-0.0.30 \ + uu_whoami-0.0.30 \ + uucore-0.0.30 \ + uucore_procs-0.0.30 \ + uuhelp_parser-0.0.30 \ + uuid-1.16.0 \ v_htmlescape-0.15.8 \ value-trait-0.10.1 \ vcpkg-0.2.15 \ @@ -544,6 +555,7 @@ CARGO_CRATES= addr2line-0.24.2 \ walkdir-2.5.0 \ want-0.3.1 \ wasi-0.11.0+wasi-snapshot-preview1 \ + wasi-0.13.3+wasi-0.2.2 \ wasm-bindgen-0.2.99 \ wasm-bindgen-backend-0.2.99 \ wasm-bindgen-futures-0.4.49 \ @@ -597,6 +609,7 @@ CARGO_CRATES= addr2line-0.24.2 \ winnow-0.6.20 \ winreg-0.52.0 \ winsafe-0.0.19 \ + wit-bindgen-rt-0.33.0 \ write16-1.0.0 \ writeable-0.5.5 \ xattr-1.3.1 \ @@ -605,13 +618,15 @@ CARGO_CRATES= addr2line-0.24.2 \ yoke-0.7.5 \ yoke-derive-0.7.5 \ zerocopy-0.7.35 \ + zerocopy-0.8.23 \ zerocopy-derive-0.7.35 \ + zerocopy-derive-0.8.23 \ zerofrom-0.1.5 \ zerofrom-derive-0.1.5 \ zeroize-1.8.1 \ zerovec-0.10.4 \ zerovec-derive-0.10.3 \ - zip-2.4.1 \ + zip-2.5.0 \ zlib-rs-0.4.1 \ zopfli-0.8.1 \ zstd-0.13.2 \ diff --git a/shells/nu_plugin_polars/distinfo b/shells/nu_plugin_polars/distinfo index a269549dd1f0..52479a47122f 100644 --- a/shells/nu_plugin_polars/distinfo +++ b/shells/nu_plugin_polars/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1742766213 -SHA256 (nu_plugin_polars-0.103.0.tar.gz) = 2adc5616cc194ce1c72063f8ed988a6d99927dc7e4c560edb557db348f6cc613 -SIZE (nu_plugin_polars-0.103.0.tar.gz) = 142746 +TIMESTAMP = 1747177950 +SHA256 (nu_plugin_polars-0.104.0.tar.gz) = 65b5ff15782ac1b20ffbe91fc4b0034996800d35815d819f8584f3aaddfc80ea +SIZE (nu_plugin_polars-0.104.0.tar.gz) = 155724 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -41,8 +41,8 @@ SHA256 (rust/crates/arbitrary-1.4.1.crate) = dde20b3d026af13f561bdd0f15edf01fc73 SIZE (rust/crates/arbitrary-1.4.1.crate) = 36816 SHA256 (rust/crates/argminmax-0.6.2.crate) = 52424b59d69d69d5056d508b260553afd91c57e21849579cd1f50ee8b8b88eaa SIZE (rust/crates/argminmax-0.6.2.crate) = 55956 -SHA256 (rust/crates/array-init-cursor-0.2.0.crate) = bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76 -SIZE (rust/crates/array-init-cursor-0.2.0.crate) = 2590 +SHA256 (rust/crates/array-init-cursor-0.2.1.crate) = ed51fe0f224d1d4ea768be38c51f9f831dee9d05c163c11fba0b8c44387b1fc3 +SIZE (rust/crates/array-init-cursor-0.2.1.crate) = 7102 SHA256 (rust/crates/arrayref-0.3.9.crate) = 76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb SIZE (rust/crates/arrayref-0.3.9.crate) = 9186 SHA256 (rust/crates/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b @@ -141,10 +141,10 @@ SHA256 (rust/crates/bytes-1.10.0.crate) = f61dac84819c6588b558454b194026eb1f09c2 SIZE (rust/crates/bytes-1.10.0.crate) = 76656 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.2.crate) = 2d2c12f985c78475a6b8d629afd0c360260ef34cfef52efccdcfd31972f81c2e -SIZE (rust/crates/bytesize-1.3.2.crate) = 11575 -SHA256 (rust/crates/calamine-0.26.1.crate) = 138646b9af2c5d7f1804ea4bf93afc597737d2bd4f7341d67c48b03316976eb1 -SIZE (rust/crates/calamine-0.26.1.crate) = 89109 +SHA256 (rust/crates/bytesize-1.3.3.crate) = 2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659 +SIZE (rust/crates/bytesize-1.3.3.crate) = 11594 +SHA256 (rust/crates/calamine-0.27.0.crate) = 6d80f81ba5c68206b9027e62346d49dc26fb32ffc4fe6ef7022a8ae21d348ccb +SIZE (rust/crates/calamine-0.27.0.crate) = 89837 SHA256 (rust/crates/castaway-0.2.3.crate) = 0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5 SIZE (rust/crates/castaway-0.2.3.crate) = 11509 SHA256 (rust/crates/cc-1.2.16.crate) = be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c @@ -203,8 +203,8 @@ SHA256 (rust/crates/crc-catalog-1.1.1.crate) = ccaeedb56da03b09f598226e25e80088c SIZE (rust/crates/crc-catalog-1.1.1.crate) = 8698 SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 -SHA256 (rust/crates/crossbeam-channel-0.5.13.crate) = 33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2 -SIZE (rust/crates/crossbeam-channel-0.5.13.crate) = 91174 +SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2 +SIZE (rust/crates/crossbeam-channel-0.5.15.crate) = 92716 SHA256 (rust/crates/crossbeam-deque-0.8.5.crate) = 613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d SIZE (rust/crates/crossbeam-deque-0.8.5.crate) = 21726 SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e @@ -223,8 +223,8 @@ SHA256 (rust/crates/csv-1.3.1.crate) = acdc4883a9c96732e4733212c01447ebd805833b7 SIZE (rust/crates/csv-1.3.1.crate) = 888542 SHA256 (rust/crates/csv-core-0.1.11.crate) = 5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70 SIZE (rust/crates/csv-core-0.1.11.crate) = 25852 -SHA256 (rust/crates/data-encoding-2.8.0.crate) = 575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010 -SIZE (rust/crates/data-encoding-2.8.0.crate) = 21394 +SHA256 (rust/crates/data-encoding-2.9.0.crate) = 2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476 +SIZE (rust/crates/data-encoding-2.9.0.crate) = 21564 SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4 SIZE (rust/crates/deranged-0.3.11.crate) = 18043 SHA256 (rust/crates/derive_arbitrary-1.4.1.crate) = 30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800 @@ -329,6 +329,8 @@ 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.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 +SHA256 (rust/crates/getrandom-0.3.1.crate) = 43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8 +SIZE (rust/crates/getrandom-0.3.1.crate) = 42449 SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f SIZE (rust/crates/gimli-0.31.1.crate) = 279515 SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b @@ -365,8 +367,8 @@ SHA256 (rust/crates/httparse-1.9.5.crate) = 7d71d3574edd2771538b901e6549113b4006 SIZE (rust/crates/httparse-1.9.5.crate) = 39029 SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9 SIZE (rust/crates/httpdate-1.0.3.crate) = 10639 -SHA256 (rust/crates/human-date-parser-0.2.0.crate) = 1116cf4debfe770c12168458321c4a8591b71c4c19f7100de07c84cf81701c63 -SIZE (rust/crates/human-date-parser-0.2.0.crate) = 11931 +SHA256 (rust/crates/human-date-parser-0.3.1.crate) = 406f83c56de4b2c9183be52ae9a4fefa22c0e0c3d3d7ef80be26eaee11c7110e +SIZE (rust/crates/human-date-parser-0.3.1.crate) = 15566 SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4 SIZE (rust/crates/humantime-2.1.0.crate) = 16749 SHA256 (rust/crates/hyper-0.14.31.crate) = 8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85 @@ -409,8 +411,8 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f SIZE (rust/crates/idna-1.0.3.crate) = 142515 SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 -SHA256 (rust/crates/indexmap-2.7.0.crate) = 62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f -SIZE (rust/crates/indexmap-2.7.0.crate) = 85335 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/indicatif-0.17.9.crate) = cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281 SIZE (rust/crates/indicatif-0.17.9.crate) = 65246 SHA256 (rust/crates/inotify-0.9.6.crate) = f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff @@ -429,8 +431,8 @@ SHA256 (rust/crates/is-wsl-0.4.0.crate) = 173609498df190136aa7dea1a91db051746d33 SIZE (rust/crates/is-wsl-0.4.0.crate) = 3264 SHA256 (rust/crates/is_ci-1.2.0.crate) = 7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45 SIZE (rust/crates/is_ci-1.2.0.crate) = 4521 -SHA256 (rust/crates/is_debug-1.0.2.crate) = e8ea828c9d6638a5bd3d8b14e37502b4d56cae910ccf8a5b7f51c7a0eb1d0508 -SIZE (rust/crates/is_debug-1.0.2.crate) = 2640 +SHA256 (rust/crates/is_debug-1.1.0.crate) = 1fe266d2e243c931d8190177f20bf7f24eed45e96f39e87dc49a27b32d12d407 +SIZE (rust/crates/is_debug-1.1.0.crate) = 3398 SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 SHA256 (rust/crates/itertools-0.11.0.crate) = b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57 @@ -519,6 +521,8 @@ SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d SIZE (rust/crates/nix-0.29.0.crate) = 318248 SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a SIZE (rust/crates/nom-7.1.3.crate) = 117570 +SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405 +SIZE (rust/crates/nom-8.0.0.crate) = 135590 SHA256 (rust/crates/notify-6.1.1.crate) = 6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d SIZE (rust/crates/notify-6.1.1.crate) = 40117 SHA256 (rust/crates/notify-debouncer-full-0.3.2.crate) = fb7fd166739789c9ff169e654dc1501373db9d80a4c3f972817c8a4d7cf8f34e @@ -529,48 +533,48 @@ SHA256 (rust/crates/ntapi-0.4.1.crate) = e8a3895c6391c39d7fe7ebc444a87eb2991b2a0 SIZE (rust/crates/ntapi-0.4.1.crate) = 126552 SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399 SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536 -SHA256 (rust/crates/nu-cmd-base-0.103.0.crate) = b5e3fadfe7bf3383778c596df0bd11c166e8c363aa64133269c0ff695086c1d2 -SIZE (rust/crates/nu-cmd-base-0.103.0.crate) = 17418 -SHA256 (rust/crates/nu-cmd-lang-0.103.0.crate) = 8cea93e3f189c944a246221d7c8ed8e57b23379bf9bb0d31ea7964ff2b56020d -SIZE (rust/crates/nu-cmd-lang-0.103.0.crate) = 45435 -SHA256 (rust/crates/nu-color-config-0.103.0.crate) = bd3638911ec37bc7393abce308d45a8e3f0c35d74f55fbe1029b7a8e9edc6322 -SIZE (rust/crates/nu-color-config-0.103.0.crate) = 25583 -SHA256 (rust/crates/nu-command-0.103.0.crate) = 9e5514fc30fa130b9f36efeddc5725153b4bb0ace265b8e216db20690682d7ec -SIZE (rust/crates/nu-command-0.103.0.crate) = 625733 -SHA256 (rust/crates/nu-derive-value-0.103.0.crate) = 8f1f5198366892552a9a827a61a27e31543a0827c55ccfb6bf060489cec80d25 -SIZE (rust/crates/nu-derive-value-0.103.0.crate) = 13996 -SHA256 (rust/crates/nu-engine-0.103.0.crate) = 0cb715bb4c18e4259d21c5b710f04f7190c9803211e2a0baa31ec3a5841daa56 -SIZE (rust/crates/nu-engine-0.103.0.crate) = 69023 -SHA256 (rust/crates/nu-glob-0.103.0.crate) = 904fa576593ed75439eec561f62824bbe55f4a05f1c8239309a939d43e0ad704 -SIZE (rust/crates/nu-glob-0.103.0.crate) = 28776 -SHA256 (rust/crates/nu-json-0.103.0.crate) = 0da34885b46b3973e7a6d6a3e91a2014caa8cfdd7ea66d969fa1a8eec485cea9 -SIZE (rust/crates/nu-json-0.103.0.crate) = 35290 -SHA256 (rust/crates/nu-parser-0.103.0.crate) = daac6d76c123d2534bcbc67ed065c4a78a54cf034e09332ed648a85339c11f91 -SIZE (rust/crates/nu-parser-0.103.0.crate) = 118259 -SHA256 (rust/crates/nu-path-0.103.0.crate) = e6e3a55f26e42d1f98fbb4f41fa4fcc7dee1f61f13c5eabda5ca90e78825b2fa -SIZE (rust/crates/nu-path-0.103.0.crate) = 28869 -SHA256 (rust/crates/nu-plugin-0.103.0.crate) = 5f35f2290c077441edfde50745b501ba5ffad11217d5d01168cf1ab1b0e4c03d -SIZE (rust/crates/nu-plugin-0.103.0.crate) = 39573 -SHA256 (rust/crates/nu-plugin-core-0.103.0.crate) = 5ba6f1d1c7f6ca9852c26e8e65a0f530b8fa3a1237a6c62de089ccaf6c1645fe -SIZE (rust/crates/nu-plugin-core-0.103.0.crate) = 39670 -SHA256 (rust/crates/nu-plugin-engine-0.103.0.crate) = edc79cff665e4434153c97bd7065608f6649cf3a45cb1576d39a58a111c87c9f -SIZE (rust/crates/nu-plugin-engine-0.103.0.crate) = 51503 -SHA256 (rust/crates/nu-plugin-protocol-0.103.0.crate) = 88bef165a59909561b349fb3eda7e16afae8f8d06d6c99527b4545c086b51f87 -SIZE (rust/crates/nu-plugin-protocol-0.103.0.crate) = 26703 -SHA256 (rust/crates/nu-plugin-test-support-0.103.0.crate) = 91b913effb3fc1b17338a9d3dacddd81ec907a65c94fbd050685366d60d4a773 -SIZE (rust/crates/nu-plugin-test-support-0.103.0.crate) = 23362 -SHA256 (rust/crates/nu-pretty-hex-0.103.0.crate) = a10a0548f4b881bffbd4b383b531e3338868eb2ef0cd9c421eedf427a4c1e9d6 -SIZE (rust/crates/nu-pretty-hex-0.103.0.crate) = 9701 -SHA256 (rust/crates/nu-protocol-0.103.0.crate) = ca35b5860d171e8e0994d42373f62fc99fb7a0b205e5d8a38897e2869d5f6ab7 -SIZE (rust/crates/nu-protocol-0.103.0.crate) = 228512 -SHA256 (rust/crates/nu-system-0.103.0.crate) = 70bb9b1c59acd274bd36b4879e1e03491a3ee2f24689a9070c66fbd8aed23b27 -SIZE (rust/crates/nu-system-0.103.0.crate) = 30772 -SHA256 (rust/crates/nu-table-0.103.0.crate) = c9b35a78b1bcf4fb967590b78d4bef3245a071cb4f9534bba13254eb495761a3 -SIZE (rust/crates/nu-table-0.103.0.crate) = 39208 -SHA256 (rust/crates/nu-term-grid-0.103.0.crate) = f16be75e959343a65be5e2604902184b72448a21ce4fba22de9cc52371b76e8c -SIZE (rust/crates/nu-term-grid-0.103.0.crate) = 11983 -SHA256 (rust/crates/nu-utils-0.103.0.crate) = 2f01345a3c94f75397020250286c536e1b306cb714b2931c1a1c9a3318254793 -SIZE (rust/crates/nu-utils-0.103.0.crate) = 32382 +SHA256 (rust/crates/nu-cmd-base-0.104.0.crate) = 1ae53525607e64c6c51ca3f217cd94d793f2553e728c0e0c38ac7daa1066dd96 +SIZE (rust/crates/nu-cmd-base-0.104.0.crate) = 17415 +SHA256 (rust/crates/nu-cmd-lang-0.104.0.crate) = e66adfeda88f8e27bcb25d068d9e6e8b3a94c2bf988a9c30e8e3b2045867aefe +SIZE (rust/crates/nu-cmd-lang-0.104.0.crate) = 46346 +SHA256 (rust/crates/nu-color-config-0.104.0.crate) = 8e844ab91dcb93f7387f28820c63849c11f6ca41657f3885efe6b7fe6f0ffd8c +SIZE (rust/crates/nu-color-config-0.104.0.crate) = 25575 +SHA256 (rust/crates/nu-command-0.104.0.crate) = 8ab3937ddd17e4ff4d5a80901bae3072d90d4f27a0028ed08fd937095dfceb64 +SIZE (rust/crates/nu-command-0.104.0.crate) = 640220 +SHA256 (rust/crates/nu-derive-value-0.104.0.crate) = 5fd0d8e358b6440d01fe4e617f180aea826bade72efb54f5dc1c22e0e8038b6f +SIZE (rust/crates/nu-derive-value-0.104.0.crate) = 13996 +SHA256 (rust/crates/nu-engine-0.104.0.crate) = 0c2b01483e3d09460375f0c0da7a83b6dc26fb319ca09c55d0665087b2d587c7 +SIZE (rust/crates/nu-engine-0.104.0.crate) = 69242 +SHA256 (rust/crates/nu-glob-0.104.0.crate) = 202ce25889336061efea24e69d4e0de7147c15fd9892cdd70533500d47db8364 +SIZE (rust/crates/nu-glob-0.104.0.crate) = 18374 +SHA256 (rust/crates/nu-json-0.104.0.crate) = 6e80c87a04bb9cd342ec97254f977b9e08ea762a330b2f0d0c9317bfa9408b12 +SIZE (rust/crates/nu-json-0.104.0.crate) = 29947 +SHA256 (rust/crates/nu-parser-0.104.0.crate) = cb0591ef4d4989c1930863d9d17d8fd2d70b03ec2d9caeca067e9626e05c49d9 +SIZE (rust/crates/nu-parser-0.104.0.crate) = 119009 +SHA256 (rust/crates/nu-path-0.104.0.crate) = 41c68c7c06898a5c4c9f10038da63759661cb8ac8f301ce7d159173a595c8258 +SIZE (rust/crates/nu-path-0.104.0.crate) = 28878 +SHA256 (rust/crates/nu-plugin-0.104.0.crate) = e00d2ccb35a1206c51740bea63b0deb72dc4c34ca6ceae6feac95f84d68370d2 +SIZE (rust/crates/nu-plugin-0.104.0.crate) = 39550 +SHA256 (rust/crates/nu-plugin-core-0.104.0.crate) = 30e416e6de2b62925ffc1924740a0e5340316a1630af3d2490d513bcb1f94e94 +SIZE (rust/crates/nu-plugin-core-0.104.0.crate) = 39724 +SHA256 (rust/crates/nu-plugin-engine-0.104.0.crate) = 14fb214ba23829ebfe61b9a5e0688cd5620922438d7d76a6f6b3e1151d07e82a +SIZE (rust/crates/nu-plugin-engine-0.104.0.crate) = 51488 +SHA256 (rust/crates/nu-plugin-protocol-0.104.0.crate) = be7edbdee451bb29150b5e8184660d79d0c0801a6748b9f712b758cb78110305 +SIZE (rust/crates/nu-plugin-protocol-0.104.0.crate) = 26744 +SHA256 (rust/crates/nu-plugin-test-support-0.104.0.crate) = b8acb62c21fd980e467162bc17a4e93a8435e28249256b52e58718278149978d +SIZE (rust/crates/nu-plugin-test-support-0.104.0.crate) = 23523 +SHA256 (rust/crates/nu-pretty-hex-0.104.0.crate) = 64523a7b09e51d4af0a7569ed476e931b5a2b931d07633c417f4ab09be4d9864 +SIZE (rust/crates/nu-pretty-hex-0.104.0.crate) = 9700 +SHA256 (rust/crates/nu-protocol-0.104.0.crate) = ab657b1947f1fad3c5052cb210fa311744736a4800a966ae21c4bc63de7c60ab +SIZE (rust/crates/nu-protocol-0.104.0.crate) = 231989 +SHA256 (rust/crates/nu-system-0.104.0.crate) = f47094aaab4f1e3a86c3960400d82a50fcabde907f964ae095963ec95669577a +SIZE (rust/crates/nu-system-0.104.0.crate) = 31114 +SHA256 (rust/crates/nu-table-0.104.0.crate) = 2248c1b5c2f5e95eb6be6e02715e3a88673f0781d5bff207f4eed5aea666cf44 +SIZE (rust/crates/nu-table-0.104.0.crate) = 38412 +SHA256 (rust/crates/nu-term-grid-0.104.0.crate) = 42aca5245e6d1d25a5ef223f2b4a2d8592d22064b868d822cfe7307de112c735 +SIZE (rust/crates/nu-term-grid-0.104.0.crate) = 11978 +SHA256 (rust/crates/nu-utils-0.104.0.crate) = 327999b774d78b301a6b68c33d312a1a8047c59fb8971b6552ebf823251f1481 +SIZE (rust/crates/nu-utils-0.104.0.crate) = 32234 SHA256 (rust/crates/num-0.4.3.crate) = 35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23 SIZE (rust/crates/num-0.4.3.crate) = 9575 SHA256 (rust/crates/num-bigint-0.4.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9 @@ -593,8 +597,8 @@ SHA256 (rust/crates/num_threads-0.1.7.crate) = 5c7398b9c8b70908f6371f47ed3673790 SIZE (rust/crates/num_threads-0.1.7.crate) = 7455 SHA256 (rust/crates/number_prefix-0.4.0.crate) = 830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3 SIZE (rust/crates/number_prefix-0.4.0.crate) = 6922 -SHA256 (rust/crates/nuon-0.103.0.crate) = 19acc9cc8769e6428c244229bcd042c222088cca8c6ebb045df630e79922cd16 -SIZE (rust/crates/nuon-0.103.0.crate) = 20508 +SHA256 (rust/crates/nuon-0.104.0.crate) = 6ad155fee37ed58420483d38c40cd9bea88160e281e1d04c1592525c8f8da9a5 +SIZE (rust/crates/nuon-0.104.0.crate) = 20515 SHA256 (rust/crates/object-0.36.5.crate) = aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e SIZE (rust/crates/object-0.36.5.crate) = 327435 SHA256 (rust/crates/object_store-0.11.2.crate) = 3cfccb68961a56facde1163f9319e0d15743352344e7808a11795fb99698dcaf @@ -607,14 +611,14 @@ SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f9 SIZE (rust/crates/once_cell-1.20.2.crate) = 33394 SHA256 (rust/crates/open-5.3.1.crate) = 3ecd52f0b8d15c40ce4820aa251ed5de032e5d91fab27f7db2f40d42a8bdf69c SIZE (rust/crates/open-5.3.1.crate) = 25229 -SHA256 (rust/crates/openssl-0.10.70.crate) = 61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6 -SIZE (rust/crates/openssl-0.10.70.crate) = 277545 +SHA256 (rust/crates/openssl-0.10.72.crate) = fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da +SIZE (rust/crates/openssl-0.10.72.crate) = 283852 SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601 SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227 -SHA256 (rust/crates/openssl-sys-0.9.105.crate) = 8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc -SIZE (rust/crates/openssl-sys-0.9.105.crate) = 72287 +SHA256 (rust/crates/openssl-sys-0.9.107.crate) = 8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07 +SIZE (rust/crates/openssl-sys-0.9.107.crate) = 78156 SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 SHA256 (rust/crates/os_display-0.1.3.crate) = 7a6229bad892b46b0dcfaaeb18ad0d2e56400f5aaea05b768bde96e73676cf75 @@ -633,8 +637,8 @@ SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627 SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406 SHA256 (rust/crates/parse-zoneinfo-0.3.1.crate) = 1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24 SIZE (rust/crates/parse-zoneinfo-0.3.1.crate) = 97290 -SHA256 (rust/crates/parse_datetime-0.6.0.crate) = a8720474e3dd4af20cea8716703498b9f3b690f318fa9d9d9e2e38eaf44b96d0 -SIZE (rust/crates/parse_datetime-0.6.0.crate) = 12822 +SHA256 (rust/crates/parse_datetime-0.8.0.crate) = 4bffd1156cebf13f681d7769924d3edfb9d9d71ba206a8d8e8e7eb9df4f4b1e7 +SIZE (rust/crates/parse_datetime-0.8.0.crate) = 17808 SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a SIZE (rust/crates/paste-1.0.15.crate) = 18374 SHA256 (rust/crates/pathdiff-0.2.3.crate) = df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3 @@ -643,6 +647,10 @@ SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235 SHA256 (rust/crates/pest-2.7.15.crate) = 8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc SIZE (rust/crates/pest-2.7.15.crate) = 127895 +SHA256 (rust/crates/pest_consume-1.1.3.crate) = 79447402d15d18e7142e14c72f2e63fa3d155be1bc5b70b3ccbb610ac55f536b +SIZE (rust/crates/pest_consume-1.1.3.crate) = 11828 +SHA256 (rust/crates/pest_consume_macros-1.1.0.crate) = 9d8630a7a899cb344ec1c16ba0a6b24240029af34bdc0a21f84e411d7f793f29 +SIZE (rust/crates/pest_consume_macros-1.1.0.crate) = 6962 SHA256 (rust/crates/pest_derive-2.7.15.crate) = 816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e SIZE (rust/crates/pest_derive-2.7.15.crate) = 40745 SHA256 (rust/crates/pest_generator-2.7.15.crate) = 7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b @@ -739,8 +747,6 @@ SHA256 (rust/crates/pwd-1.4.0.crate) = 72c71c0c79b9701efe4e1e4b563b2016dd4ee789e SIZE (rust/crates/pwd-1.4.0.crate) = 4145 SHA256 (rust/crates/quick-error-2.0.1.crate) = a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3 SIZE (rust/crates/quick-error-2.0.1.crate) = 14265 -SHA256 (rust/crates/quick-xml-0.31.0.crate) = 1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33 -SIZE (rust/crates/quick-xml-0.31.0.crate) = 172236 SHA256 (rust/crates/quick-xml-0.37.1.crate) = f22f29bdff3987b4d8632ef95fd6424ec7e4e0a57e2f4fc63e489e75357f6a03 SIZE (rust/crates/quick-xml-0.37.1.crate) = 187839 SHA256 (rust/crates/quinn-0.11.6.crate) = 62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef @@ -753,10 +759,16 @@ SHA256 (rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2 SIZE (rust/crates/quote-1.0.37.crate) = 28558 SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand-0.9.0.crate) = 3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94 +SIZE (rust/crates/rand-0.9.0.crate) = 97798 SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb +SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258 SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 +SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38 +SIZE (rust/crates/rand_core-0.9.3.crate) = 24543 SHA256 (rust/crates/rand_distr-0.4.3.crate) = 32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31 SIZE (rust/crates/rand_distr-0.4.3.crate) = 58255 SHA256 (rust/crates/raw-cpuid-11.2.0.crate) = 1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0 @@ -865,8 +877,8 @@ SHA256 (rust/crates/sha1_smol-1.0.1.crate) = bbfa15b3dddfee50a0fff136974b3e1bde5 SIZE (rust/crates/sha1_smol-1.0.1.crate) = 9809 SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8 SIZE (rust/crates/sha2-0.10.8.crate) = 26357 -SHA256 (rust/crates/shadow-rs-0.38.0.crate) = 69d433b5df1e1958a668457ebe4a9c5b7bcfe844f4eb2276ac43cf273baddd54 -SIZE (rust/crates/shadow-rs-0.38.0.crate) = 34481 +SHA256 (rust/crates/shadow-rs-1.1.1.crate) = 6d5625ed609cf66d7e505e7d487aca815626dc4ebb6c0dd07637ca61a44651a6 +SIZE (rust/crates/shadow-rs-1.1.1.crate) = 34850 SHA256 (rust/crates/shell-words-1.1.0.crate) = 24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde SIZE (rust/crates/shell-words-1.1.0.crate) = 9871 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 @@ -901,6 +913,8 @@ SHA256 (rust/crates/snap-1.1.1.crate) = 1b6b67fb9a61334225b5b790716f609cd58395f8 SIZE (rust/crates/snap-1.1.1.crate) = 33763 SHA256 (rust/crates/socket2-0.5.8.crate) = c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8 SIZE (rust/crates/socket2-0.5.8.crate) = 56309 +SHA256 (rust/crates/socks-0.3.4.crate) = f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b +SIZE (rust/crates/socks-0.3.4.crate) = 13172 SHA256 (rust/crates/sqlparser-0.53.0.crate) = 05a528114c392209b3264855ad491fcce534b94a38771b0a0b97a79379275ce8 SIZE (rust/crates/sqlparser-0.53.0.crate) = 266820 SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3 @@ -931,6 +945,8 @@ SHA256 (rust/crates/supports-hyperlinks-3.1.0.crate) = 804f44ed3c63152de6a9f90ac SIZE (rust/crates/supports-hyperlinks-3.1.0.crate) = 8235 SHA256 (rust/crates/supports-unicode-3.0.0.crate) = b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2 SIZE (rust/crates/supports-unicode-3.0.0.crate) = 7825 +SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 +SIZE (rust/crates/syn-1.0.109.crate) = 237611 SHA256 (rust/crates/syn-2.0.90.crate) = 919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31 SIZE (rust/crates/syn-2.0.90.crate) = 290584 SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263 @@ -951,12 +967,12 @@ SHA256 (rust/crates/textwrap-0.16.1.crate) = 23d434d3f8967a09480fb04132ebe0a3e08 SIZE (rust/crates/textwrap-0.16.1.crate) = 56012 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.6.crate) = 8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47 -SIZE (rust/crates/thiserror-2.0.6.crate) = 28433 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 -SHA256 (rust/crates/thiserror-impl-2.0.6.crate) = d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312 -SIZE (rust/crates/thiserror-impl-2.0.6.crate) = 20946 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 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.37.crate) = 35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21 @@ -971,10 +987,10 @@ SHA256 (rust/crates/tinyvec-1.8.0.crate) = 445e881f4f6d382d5f27c034e25eb92edd7c7 SIZE (rust/crates/tinyvec-1.8.0.crate) = 46796 SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20 SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865 -SHA256 (rust/crates/titlecase-3.4.0.crate) = ef6b5cbe1316986025d8f662ff6945a0c85f2ca8ca13f04b5e0829ddb0d047f2 -SIZE (rust/crates/titlecase-3.4.0.crate) = 11552 -SHA256 (rust/crates/tokio-1.43.0.crate) = 3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e -SIZE (rust/crates/tokio-1.43.0.crate) = 817422 +SHA256 (rust/crates/titlecase-3.5.0.crate) = a1fad07d425f7245932d6deb5009e2c83d9642617b47750ffc3363815e269435 +SIZE (rust/crates/titlecase-3.5.0.crate) = 11847 +SHA256 (rust/crates/tokio-1.44.2.crate) = e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48 +SIZE (rust/crates/tokio-1.44.2.crate) = 841618 SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 SHA256 (rust/crates/tokio-native-tls-0.3.1.crate) = bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2 @@ -1009,6 +1025,12 @@ SHA256 (rust/crates/typetag-0.2.18.crate) = 52ba3b6e86ffe0054b2c44f2d86407388b93 SIZE (rust/crates/typetag-0.2.18.crate) = 30145 SHA256 (rust/crates/typetag-impl-0.2.18.crate) = 70b20a22c42c8f1cd23ce5e34f165d4d37038f5b663ad20fb6adbdf029172483 SIZE (rust/crates/typetag-impl-0.2.18.crate) = 9137 +SHA256 (rust/crates/tz-rs-0.7.0.crate) = e1450bf2b99397e72070e7935c89facaa80092ac812502200375f1f7d33c71a1 +SIZE (rust/crates/tz-rs-0.7.0.crate) = 46486 +SHA256 (rust/crates/tzdb-0.7.2.crate) = 0be2ea5956f295449f47c0b825c5e109022ff1a6a53bb4f77682a87c2341fbf5 +SIZE (rust/crates/tzdb-0.7.2.crate) = 10188 +SHA256 (rust/crates/tzdb_data-0.2.1.crate) = 0604b35c1f390a774fdb138cac75a99981078895d24bcab175987440bbff803b +SIZE (rust/crates/tzdb_data-0.2.1.crate) = 246122 SHA256 (rust/crates/ucd-trie-0.1.7.crate) = 2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971 SIZE (rust/crates/ucd-trie-0.1.7.crate) = 46795 SHA256 (rust/crates/umask-2.1.0.crate) = ec9a46c2549e35c054e0ffe281a3a6ec0007793db4df106604d37ed3f4d73d1c @@ -1049,28 +1071,28 @@ SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59 SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437 SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499 -SHA256 (rust/crates/uu_cp-0.0.29.crate) = 235439f8efcff799cbdb90992cb5b1845dce903c1569efc8d9b46417c83f5aa8 -SIZE (rust/crates/uu_cp-0.0.29.crate) = 43378 -SHA256 (rust/crates/uu_mkdir-0.0.29.crate) = ea0a30620d88a7ea16b522e1fe63ebb61f87f05fd63ade00938a024807356952 -SIZE (rust/crates/uu_mkdir-0.0.29.crate) = 8333 -SHA256 (rust/crates/uu_mktemp-0.0.29.crate) = e1db7648ff064cdfe8a0e6ef9546de3b03e34cefa270b783de7736a8470473cc -SIZE (rust/crates/uu_mktemp-0.0.29.crate) = 11859 -SHA256 (rust/crates/uu_mv-0.0.29.crate) = 92ab8c17ac7153adaa0176924319827cfb240cf48e4260283facfdb37e776071 -SIZE (rust/crates/uu_mv-0.0.29.crate) = 14918 -SHA256 (rust/crates/uu_touch-0.0.29.crate) = 3adc774c7961272cd2feeb95f2bf2e0b8f7b8ccd5fbcf49727d0de1eab804b67 -SIZE (rust/crates/uu_touch-0.0.29.crate) = 15950 -SHA256 (rust/crates/uu_uname-0.0.29.crate) = 95a942626aec03d4f4d972b10e00f9ddcdced1933658076eccafea5a20fdafb8 -SIZE (rust/crates/uu_uname-0.0.29.crate) = 7271 -SHA256 (rust/crates/uu_whoami-0.0.29.crate) = a812f7a838c9375c15ed13b66048df2c632c1ac3ec613dabb28c648019c6d018 -SIZE (rust/crates/uu_whoami-0.0.29.crate) = 6344 -SHA256 (rust/crates/uucore-0.0.29.crate) = 50e0dc1598d959a08f24cea4d9e992f7ca874bd4ac80746683272afd37603b5e -SIZE (rust/crates/uucore-0.0.29.crate) = 127128 -SHA256 (rust/crates/uucore_procs-0.0.29.crate) = 27d3de33ab2b56c0437cca084a2aeb1d46c56d138ab6341c009a90018a9a1c5f -SIZE (rust/crates/uucore_procs-0.0.29.crate) = 3993 -SHA256 (rust/crates/uuhelp_parser-0.0.29.crate) = 0cf4c8b31abfb5dc79940d6ca8000a1a6aa42f38711cdeaacb95850c69924cbc -SIZE (rust/crates/uuhelp_parser-0.0.29.crate) = 2904 -SHA256 (rust/crates/uuid-1.12.0.crate) = 744018581f9a3454a9e15beb8a33b017183f1e7c0cd170232a2d1453b23a51c4 -SIZE (rust/crates/uuid-1.12.0.crate) = 49085 +SHA256 (rust/crates/uu_cp-0.0.30.crate) = bf2f3906b7896f79519055d36760095577373e40ec244f46b259f502a4a91147 +SIZE (rust/crates/uu_cp-0.0.30.crate) = 45103 +SHA256 (rust/crates/uu_mkdir-0.0.30.crate) = 5be556a5d852f55b92bba460d7a97030a340ba4a3f4c510a8d0a893bfaf48356 +SIZE (rust/crates/uu_mkdir-0.0.30.crate) = 11237 +SHA256 (rust/crates/uu_mktemp-0.0.30.crate) = 5305fcf4f7f480e7438e19ff433ae60dea886bd528f87543029eb6b95d351afc +SIZE (rust/crates/uu_mktemp-0.0.30.crate) = 14411 +SHA256 (rust/crates/uu_mv-0.0.30.crate) = 3be214b96554e4f7aa079b26c86c3ecf1b9ea15023ca2ec62d608273d12c7049 +SIZE (rust/crates/uu_mv-0.0.30.crate) = 18113 +SHA256 (rust/crates/uu_touch-0.0.30.crate) = 1e58581a0245de8e3ef75b115ab29592cfb60d4851149d4951604601d14ea420 +SIZE (rust/crates/uu_touch-0.0.30.crate) = 17229 +SHA256 (rust/crates/uu_uname-0.0.30.crate) = 324d96a21da91a81be334206ab65aad16d164d34cddeb640e1c56cd8d1854dd4 +SIZE (rust/crates/uu_uname-0.0.30.crate) = 9545 +SHA256 (rust/crates/uu_whoami-0.0.30.crate) = bee254de8b172a5978f12fe6cd9d4f2b60ea9ef1e37f0cb53bfee2c993b3e96a +SIZE (rust/crates/uu_whoami-0.0.30.crate) = 8616 +SHA256 (rust/crates/uucore-0.0.30.crate) = 71f4e82877d06de779c611a3d54720f56f1e68b228fb30a5b6c66ef07e68263d +SIZE (rust/crates/uucore-0.0.30.crate) = 132808 +SHA256 (rust/crates/uucore_procs-0.0.30.crate) = c72435859e812e602e225dea48d014abb6b1072220a8d44f2fe0565553b1f7e4 +SIZE (rust/crates/uucore_procs-0.0.30.crate) = 3993 +SHA256 (rust/crates/uuhelp_parser-0.0.30.crate) = 0bb6d972f580f8223cb7052d8580aea2b7061e368cf476de32ea9457b19459ed +SIZE (rust/crates/uuhelp_parser-0.0.30.crate) = 2907 +SHA256 (rust/crates/uuid-1.16.0.crate) = 458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9 +SIZE (rust/crates/uuid-1.16.0.crate) = 58549 SHA256 (rust/crates/v_htmlescape-0.15.8.crate) = 4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c SIZE (rust/crates/v_htmlescape-0.15.8.crate) = 10878 SHA256 (rust/crates/value-trait-0.10.1.crate) = 9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187 @@ -1093,6 +1115,8 @@ SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3da 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/wasi-0.13.3+wasi-0.2.2.crate) = 26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2 +SIZE (rust/crates/wasi-0.13.3+wasi-0.2.2.crate) = 136754 SHA256 (rust/crates/wasm-bindgen-0.2.99.crate) = a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396 SIZE (rust/crates/wasm-bindgen-0.2.99.crate) = 46136 SHA256 (rust/crates/wasm-bindgen-backend-0.2.99.crate) = 5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79 @@ -1199,6 +1223,8 @@ SHA256 (rust/crates/winreg-0.52.0.crate) = a277a57398d4bfa075df44f501a17cfdf8542 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/wit-bindgen-rt-0.33.0.crate) = 3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c +SIZE (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3357 SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 SIZE (rust/crates/write16-1.0.0.crate) = 7218 SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 @@ -1215,8 +1241,12 @@ SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8 SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525 SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645 +SHA256 (rust/crates/zerocopy-0.8.23.crate) = fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6 +SIZE (rust/crates/zerocopy-0.8.23.crate) = 239977 SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829 +SHA256 (rust/crates/zerocopy-derive-0.8.23.crate) = 6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154 +SIZE (rust/crates/zerocopy-derive-0.8.23.crate) = 83885 SHA256 (rust/crates/zerofrom-0.1.5.crate) = cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e SIZE (rust/crates/zerofrom-0.1.5.crate) = 5091 SHA256 (rust/crates/zerofrom-derive-0.1.5.crate) = 595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808 @@ -1227,8 +1257,8 @@ SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19d SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 -SHA256 (rust/crates/zip-2.4.1.crate) = 938cc23ac49778ac8340e366ddc422b2227ea176edb447e23fc0627608dddadd -SIZE (rust/crates/zip-2.4.1.crate) = 109830 +SHA256 (rust/crates/zip-2.5.0.crate) = 27c03817464f64e23f6f37574b4fdc8cf65925b5bfd2b0f2aedf959791941f88 +SIZE (rust/crates/zip-2.5.0.crate) = 111877 SHA256 (rust/crates/zlib-rs-0.4.1.crate) = aada01553a9312bad4b9569035a1f12b05e5ec9770a1a4b323757356928944f8 SIZE (rust/crates/zlib-rs-0.4.1.crate) = 190033 SHA256 (rust/crates/zopfli-0.8.1.crate) = e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946 diff --git a/shells/nu_plugin_query/Makefile.crates b/shells/nu_plugin_query/Makefile.crates index 3a8d3dcb9a7a..7b6aaa4961d2 100644 --- a/shells/nu_plugin_query/Makefile.crates +++ b/shells/nu_plugin_query/Makefile.crates @@ -74,7 +74,7 @@ CARGO_CRATES= adler2-2.0.0 \ icu_provider_macros-1.5.0 \ idna-1.0.3 \ idna_adapter-1.2.0 \ - indexmap-2.7.0 \ + indexmap-2.9.0 \ interprocess-2.2.2 \ inventory-0.3.15 \ is_ci-1.2.0 \ @@ -108,22 +108,22 @@ CARGO_CRATES= adler2-2.0.0 \ nom-7.1.3 \ ntapi-0.4.1 \ nu-ansi-term-0.50.1 \ - nu-derive-value-0.103.0 \ - nu-engine-0.103.0 \ - nu-glob-0.103.0 \ - nu-path-0.103.0 \ - nu-plugin-0.103.0 \ - nu-plugin-core-0.103.0 \ - nu-plugin-protocol-0.103.0 \ - nu-protocol-0.103.0 \ - nu-system-0.103.0 \ - nu-utils-0.103.0 \ + nu-derive-value-0.104.0 \ + nu-engine-0.104.0 \ + nu-glob-0.104.0 \ + nu-path-0.104.0 \ + nu-plugin-0.104.0 \ + nu-plugin-core-0.104.0 \ + nu-plugin-protocol-0.104.0 \ + nu-protocol-0.104.0 \ + nu-system-0.104.0 \ + nu-utils-0.104.0 \ num-format-0.4.4 \ num-traits-0.2.19 \ omnipath-0.1.6 \ once_cell-1.20.2 \ openssl-probe-0.1.5 \ - openssl-sys-0.9.105 \ + openssl-sys-0.9.107 \ option-ext-0.2.0 \ os_pipe-1.2.1 \ owo-colors-4.1.0 \ @@ -205,9 +205,9 @@ CARGO_CRATES= adler2-2.0.0 \ terminal_size-0.4.1 \ textwrap-0.16.1 \ thiserror-1.0.69 \ - thiserror-2.0.6 \ + thiserror-2.0.12 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.6 \ + thiserror-impl-2.0.12 \ tinystr-0.7.6 \ typed-arena-1.7.0 \ typeid-1.0.2 \ diff --git a/shells/nu_plugin_query/distinfo b/shells/nu_plugin_query/distinfo index c7b44eddbb2d..23f3eb99be2d 100644 --- a/shells/nu_plugin_query/distinfo +++ b/shells/nu_plugin_query/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1742766216 -SHA256 (nu_plugin_query-0.103.0.tar.gz) = 81421d21fce4a177ad1326a24e1ab486e88f82e1ae71bb71b791d4aab69b5d8a -SIZE (nu_plugin_query-0.103.0.tar.gz) = 35016 +TIMESTAMP = 1747177952 +SHA256 (nu_plugin_query-0.104.0.tar.gz) = 4605bcb90a2cb72a9e953bef1ada4905a475793279fc0a83b0cbb99a6d23109b +SIZE (nu_plugin_query-0.104.0.tar.gz) = 35019 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 SIZE (rust/crates/adler2-2.0.0.crate) = 13529 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 @@ -153,8 +153,8 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f SIZE (rust/crates/idna-1.0.3.crate) = 142515 SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 -SHA256 (rust/crates/indexmap-2.7.0.crate) = 62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f -SIZE (rust/crates/indexmap-2.7.0.crate) = 85335 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/interprocess-2.2.2.crate) = 894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb SIZE (rust/crates/interprocess-2.2.2.crate) = 114885 SHA256 (rust/crates/inventory-0.3.15.crate) = f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767 @@ -221,26 +221,26 @@ SHA256 (rust/crates/ntapi-0.4.1.crate) = e8a3895c6391c39d7fe7ebc444a87eb2991b2a0 SIZE (rust/crates/ntapi-0.4.1.crate) = 126552 SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399 SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536 -SHA256 (rust/crates/nu-derive-value-0.103.0.crate) = 8f1f5198366892552a9a827a61a27e31543a0827c55ccfb6bf060489cec80d25 -SIZE (rust/crates/nu-derive-value-0.103.0.crate) = 13996 -SHA256 (rust/crates/nu-engine-0.103.0.crate) = 0cb715bb4c18e4259d21c5b710f04f7190c9803211e2a0baa31ec3a5841daa56 -SIZE (rust/crates/nu-engine-0.103.0.crate) = 69023 -SHA256 (rust/crates/nu-glob-0.103.0.crate) = 904fa576593ed75439eec561f62824bbe55f4a05f1c8239309a939d43e0ad704 -SIZE (rust/crates/nu-glob-0.103.0.crate) = 28776 -SHA256 (rust/crates/nu-path-0.103.0.crate) = e6e3a55f26e42d1f98fbb4f41fa4fcc7dee1f61f13c5eabda5ca90e78825b2fa -SIZE (rust/crates/nu-path-0.103.0.crate) = 28869 -SHA256 (rust/crates/nu-plugin-0.103.0.crate) = 5f35f2290c077441edfde50745b501ba5ffad11217d5d01168cf1ab1b0e4c03d -SIZE (rust/crates/nu-plugin-0.103.0.crate) = 39573 -SHA256 (rust/crates/nu-plugin-core-0.103.0.crate) = 5ba6f1d1c7f6ca9852c26e8e65a0f530b8fa3a1237a6c62de089ccaf6c1645fe -SIZE (rust/crates/nu-plugin-core-0.103.0.crate) = 39670 -SHA256 (rust/crates/nu-plugin-protocol-0.103.0.crate) = 88bef165a59909561b349fb3eda7e16afae8f8d06d6c99527b4545c086b51f87 -SIZE (rust/crates/nu-plugin-protocol-0.103.0.crate) = 26703 -SHA256 (rust/crates/nu-protocol-0.103.0.crate) = ca35b5860d171e8e0994d42373f62fc99fb7a0b205e5d8a38897e2869d5f6ab7 -SIZE (rust/crates/nu-protocol-0.103.0.crate) = 228512 -SHA256 (rust/crates/nu-system-0.103.0.crate) = 70bb9b1c59acd274bd36b4879e1e03491a3ee2f24689a9070c66fbd8aed23b27 -SIZE (rust/crates/nu-system-0.103.0.crate) = 30772 -SHA256 (rust/crates/nu-utils-0.103.0.crate) = 2f01345a3c94f75397020250286c536e1b306cb714b2931c1a1c9a3318254793 -SIZE (rust/crates/nu-utils-0.103.0.crate) = 32382 +SHA256 (rust/crates/nu-derive-value-0.104.0.crate) = 5fd0d8e358b6440d01fe4e617f180aea826bade72efb54f5dc1c22e0e8038b6f +SIZE (rust/crates/nu-derive-value-0.104.0.crate) = 13996 +SHA256 (rust/crates/nu-engine-0.104.0.crate) = 0c2b01483e3d09460375f0c0da7a83b6dc26fb319ca09c55d0665087b2d587c7 +SIZE (rust/crates/nu-engine-0.104.0.crate) = 69242 +SHA256 (rust/crates/nu-glob-0.104.0.crate) = 202ce25889336061efea24e69d4e0de7147c15fd9892cdd70533500d47db8364 +SIZE (rust/crates/nu-glob-0.104.0.crate) = 18374 +SHA256 (rust/crates/nu-path-0.104.0.crate) = 41c68c7c06898a5c4c9f10038da63759661cb8ac8f301ce7d159173a595c8258 +SIZE (rust/crates/nu-path-0.104.0.crate) = 28878 +SHA256 (rust/crates/nu-plugin-0.104.0.crate) = e00d2ccb35a1206c51740bea63b0deb72dc4c34ca6ceae6feac95f84d68370d2 +SIZE (rust/crates/nu-plugin-0.104.0.crate) = 39550 +SHA256 (rust/crates/nu-plugin-core-0.104.0.crate) = 30e416e6de2b62925ffc1924740a0e5340316a1630af3d2490d513bcb1f94e94 +SIZE (rust/crates/nu-plugin-core-0.104.0.crate) = 39724 +SHA256 (rust/crates/nu-plugin-protocol-0.104.0.crate) = be7edbdee451bb29150b5e8184660d79d0c0801a6748b9f712b758cb78110305 +SIZE (rust/crates/nu-plugin-protocol-0.104.0.crate) = 26744 +SHA256 (rust/crates/nu-protocol-0.104.0.crate) = ab657b1947f1fad3c5052cb210fa311744736a4800a966ae21c4bc63de7c60ab +SIZE (rust/crates/nu-protocol-0.104.0.crate) = 231989 +SHA256 (rust/crates/nu-system-0.104.0.crate) = f47094aaab4f1e3a86c3960400d82a50fcabde907f964ae095963ec95669577a +SIZE (rust/crates/nu-system-0.104.0.crate) = 31114 +SHA256 (rust/crates/nu-utils-0.104.0.crate) = 327999b774d78b301a6b68c33d312a1a8047c59fb8971b6552ebf823251f1481 +SIZE (rust/crates/nu-utils-0.104.0.crate) = 32234 SHA256 (rust/crates/num-format-0.4.4.crate) = a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3 SIZE (rust/crates/num-format-0.4.4.crate) = 61509 SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 @@ -251,8 +251,8 @@ SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f9 SIZE (rust/crates/once_cell-1.20.2.crate) = 33394 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.105.crate) = 8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc -SIZE (rust/crates/openssl-sys-0.9.105.crate) = 72287 +SHA256 (rust/crates/openssl-sys-0.9.107.crate) = 8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07 +SIZE (rust/crates/openssl-sys-0.9.107.crate) = 78156 SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 SHA256 (rust/crates/os_pipe-1.2.1.crate) = 5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982 @@ -415,12 +415,12 @@ SHA256 (rust/crates/textwrap-0.16.1.crate) = 23d434d3f8967a09480fb04132ebe0a3e08 SIZE (rust/crates/textwrap-0.16.1.crate) = 56012 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.6.crate) = 8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47 -SIZE (rust/crates/thiserror-2.0.6.crate) = 28433 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 -SHA256 (rust/crates/thiserror-impl-2.0.6.crate) = d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312 -SIZE (rust/crates/thiserror-impl-2.0.6.crate) = 20946 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f SIZE (rust/crates/tinystr-0.7.6.crate) = 16971 SHA256 (rust/crates/typed-arena-1.7.0.crate) = a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d diff --git a/shells/nushell/Makefile b/shells/nushell/Makefile index e01566f98b4f..f413c5b011cb 100644 --- a/shells/nushell/Makefile +++ b/shells/nushell/Makefile @@ -1,6 +1,5 @@ PORTNAME= nushell -DISTVERSION= 0.103.0 -PORTREVISION= 1 +DISTVERSION= 0.104.0 CATEGORIES= shells MAINTAINER= yuri@FreeBSD.org @@ -39,7 +38,7 @@ CARGO_CRATES= addr2line-0.24.2 \ arbitrary-1.4.1 \ arboard-3.4.1 \ argminmax-0.6.2 \ - array-init-cursor-0.2.0 \ + array-init-cursor-0.2.1 \ arrayref-0.3.9 \ arrayvec-0.5.2 \ arrayvec-0.7.6 \ @@ -94,8 +93,8 @@ CARGO_CRATES= addr2line-0.24.2 \ byteorder-1.5.0 \ bytes-1.10.0 \ bytes-utils-0.1.4 \ - bytesize-1.3.2 \ - calamine-0.26.1 \ + bytesize-1.3.3 \ + calamine-0.27.0 \ cassowary-0.3.0 \ castaway-0.2.3 \ cc-1.2.16 \ @@ -134,7 +133,7 @@ CARGO_CRATES= addr2line-0.24.2 \ crc-2.1.0 \ crc-catalog-1.1.1 \ crc32fast-1.4.2 \ - crossbeam-channel-0.5.13 \ + crossbeam-channel-0.5.15 \ crossbeam-deque-0.8.5 \ crossbeam-epoch-0.9.18 \ crossbeam-queue-0.3.11 \ @@ -153,7 +152,7 @@ CARGO_CRATES= addr2line-0.24.2 \ darling-0.20.10 \ darling_core-0.20.10 \ darling_macro-0.20.10 \ - data-encoding-2.8.0 \ + data-encoding-2.9.0 \ deranged-0.3.11 \ derive-new-0.6.0 \ derive_arbitrary-1.4.1 \ @@ -227,6 +226,7 @@ CARGO_CRATES= addr2line-0.24.2 \ generic-array-0.14.7 \ gethostname-0.4.3 \ getrandom-0.2.15 \ + getrandom-0.3.1 \ gimli-0.31.1 \ git2-0.20.0 \ gjson-0.8.1 \ @@ -254,7 +254,7 @@ CARGO_CRATES= addr2line-0.24.2 \ http-body-util-0.1.2 \ httparse-1.9.5 \ httpdate-1.0.3 \ - human-date-parser-0.2.0 \ + human-date-parser-0.3.1 \ humantime-2.1.0 \ hyper-0.14.31 \ hyper-1.5.1 \ @@ -278,7 +278,7 @@ CARGO_CRATES= addr2line-0.24.2 \ ident_case-1.0.1 \ idna-1.0.3 \ idna_adapter-1.2.0 \ - indexmap-2.7.0 \ + indexmap-2.9.0 \ indicatif-0.17.9 \ indoc-2.0.5 \ inotify-0.9.6 \ @@ -290,7 +290,7 @@ CARGO_CRATES= addr2line-0.24.2 \ is-docker-0.2.0 \ is-wsl-0.4.0 \ is_ci-1.2.0 \ - is_debug-1.0.2 \ + is_debug-1.1.0 \ is_executable-1.0.4 \ is_terminal_polyfill-1.70.1 \ itertools-0.11.0 \ @@ -343,13 +343,14 @@ CARGO_CRATES= addr2line-0.24.2 \ miniz_oxide-0.8.0 \ mio-0.8.11 \ mio-1.0.3 \ - mockito-1.6.1 \ + mockito-1.7.0 \ multipart-rs-0.1.13 \ native-tls-0.2.12 \ new_debug_unreachable-1.0.6 \ nix-0.28.0 \ nix-0.29.0 \ nom-7.1.3 \ + nom-8.0.0 \ notify-6.1.1 \ notify-debouncer-full-0.3.2 \ now-0.1.3 \ @@ -382,11 +383,11 @@ CARGO_CRATES= addr2line-0.24.2 \ omnipath-0.1.6 \ once_cell-1.20.2 \ open-5.3.1 \ - openssl-0.10.70 \ + openssl-0.10.72 \ openssl-macros-0.1.1 \ openssl-probe-0.1.5 \ openssl-src-300.4.1+3.4.0 \ - openssl-sys-0.9.105 \ + openssl-sys-0.9.107 \ option-ext-0.2.0 \ ordered-multimap-0.7.3 \ os_display-0.1.3 \ @@ -397,12 +398,14 @@ CARGO_CRATES= addr2line-0.24.2 \ parking_lot-0.12.3 \ parking_lot_core-0.9.10 \ parse-zoneinfo-0.3.1 \ - parse_datetime-0.6.0 \ + parse_datetime-0.8.0 \ paste-1.0.15 \ pathdiff-0.2.3 \ percent-encoding-2.3.1 \ peresil-0.3.0 \ pest-2.7.15 \ + pest_consume-1.1.3 \ + pest_consume_macros-1.1.0 \ pest_derive-2.7.15 \ pest_generator-2.7.15 \ pest_meta-2.7.15 \ @@ -463,7 +466,6 @@ CARGO_CRATES= addr2line-0.24.2 \ pwd-1.4.0 \ quick-error-1.2.3 \ quick-error-2.0.1 \ - quick-xml-0.31.0 \ quick-xml-0.32.0 \ quick-xml-0.36.2 \ quick-xml-0.37.1 \ @@ -475,8 +477,11 @@ CARGO_CRATES= addr2line-0.24.2 \ quote-1.0.37 \ quoted_printable-0.5.1 \ rand-0.8.5 \ + rand-0.9.0 \ rand_chacha-0.3.1 \ + rand_chacha-0.9.0 \ rand_core-0.6.4 \ + rand_core-0.9.3 \ rand_distr-0.4.3 \ ratatui-0.29.0 \ raw-cpuid-11.2.0 \ @@ -487,7 +492,7 @@ CARGO_CRATES= addr2line-0.24.2 \ recvmsg-1.0.0 \ redox_syscall-0.5.8 \ redox_users-0.4.6 \ - reedline-0.39.0 \ + reedline-0.40.0 \ ref-cast-1.0.23 \ ref-cast-impl-1.0.23 \ regex-1.11.1 \ @@ -506,9 +511,9 @@ CARGO_CRATES= addr2line-0.24.2 \ rstest_macros-0.23.0 \ rstest_reuse-0.7.0 \ rusqlite-0.31.0 \ - rust-embed-8.6.0 \ - rust-embed-impl-8.6.0 \ - rust-embed-utils-8.6.0 \ + rust-embed-8.7.0 \ + rust-embed-impl-8.7.0 \ + rust-embed-utils-8.7.0 \ rust-ini-0.21.1 \ rust_decimal-1.36.0 \ rustc-demangle-0.1.24 \ @@ -554,7 +559,7 @@ CARGO_CRATES= addr2line-0.24.2 \ servo_arc-0.4.0 \ sha1_smol-1.0.1 \ sha2-0.10.8 \ - shadow-rs-0.38.0 \ + shadow-rs-1.1.1 \ shell-words-1.1.0 \ shlex-1.3.0 \ signal-hook-0.3.17 \ @@ -573,6 +578,7 @@ CARGO_CRATES= addr2line-0.24.2 \ snafu-derive-0.8.5 \ snap-1.1.1 \ socket2-0.5.8 \ + socks-0.3.4 \ sqlparser-0.53.0 \ stable_deref_trait-1.2.0 \ stacker-0.1.17 \ @@ -607,9 +613,9 @@ CARGO_CRATES= addr2line-0.24.2 \ termtree-0.4.1 \ textwrap-0.16.1 \ thiserror-1.0.69 \ - thiserror-2.0.6 \ + thiserror-2.0.12 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.6 \ + thiserror-impl-2.0.12 \ thread_local-1.1.8 \ time-0.3.37 \ time-core-0.1.2 \ @@ -618,8 +624,8 @@ CARGO_CRATES= addr2line-0.24.2 \ tinystr-0.7.6 \ tinyvec-1.8.0 \ tinyvec_macros-0.1.1 \ - titlecase-3.4.0 \ - tokio-1.43.0 \ + titlecase-3.5.0 \ + tokio-1.44.2 \ tokio-macros-2.5.0 \ tokio-native-tls-0.3.1 \ tokio-rustls-0.24.1 \ @@ -641,6 +647,9 @@ CARGO_CRATES= addr2line-0.24.2 \ typenum-1.17.0 \ typetag-0.2.18 \ typetag-impl-0.2.18 \ + tz-rs-0.7.0 \ + tzdb-0.7.2 \ + tzdb_data-0.2.1 \ ucd-trie-0.1.7 \ umask-2.1.0 \ unicase-2.8.0 \ @@ -663,17 +672,17 @@ CARGO_CRATES= addr2line-0.24.2 \ utf16_iter-1.0.5 \ utf8_iter-1.0.4 \ utf8parse-0.2.2 \ - uu_cp-0.0.29 \ - uu_mkdir-0.0.29 \ - uu_mktemp-0.0.29 \ - uu_mv-0.0.29 \ - uu_touch-0.0.29 \ - uu_uname-0.0.29 \ - uu_whoami-0.0.29 \ - uucore-0.0.29 \ - uucore_procs-0.0.29 \ - uuhelp_parser-0.0.29 \ - uuid-1.12.0 \ + uu_cp-0.0.30 \ + uu_mkdir-0.0.30 \ + uu_mktemp-0.0.30 \ + uu_mv-0.0.30 \ + uu_touch-0.0.30 \ + uu_uname-0.0.30 \ + uu_whoami-0.0.30 \ + uucore-0.0.30 \ + uucore_procs-0.0.30 \ + uuhelp_parser-0.0.30 \ + uuid-1.16.0 \ v_htmlescape-0.15.8 \ value-trait-0.10.1 \ vcpkg-0.2.15 \ @@ -686,6 +695,7 @@ CARGO_CRATES= addr2line-0.24.2 \ walkdir-2.5.0 \ want-0.3.1 \ wasi-0.11.0+wasi-snapshot-preview1 \ + wasi-0.13.3+wasi-0.2.2 \ wasm-bindgen-0.2.99 \ wasm-bindgen-backend-0.2.99 \ wasm-bindgen-futures-0.4.49 \ @@ -747,6 +757,7 @@ CARGO_CRATES= addr2line-0.24.2 \ winreg-0.52.0 \ winresource-0.1.19 \ winsafe-0.0.19 \ + wit-bindgen-rt-0.33.0 \ wl-clipboard-rs-0.8.1 \ write16-1.0.0 \ writeable-0.5.5 \ @@ -760,13 +771,15 @@ CARGO_CRATES= addr2line-0.24.2 \ yoke-0.7.5 \ yoke-derive-0.7.5 \ zerocopy-0.7.35 \ + zerocopy-0.8.23 \ zerocopy-derive-0.7.35 \ + zerocopy-derive-0.8.23 \ zerofrom-0.1.5 \ zerofrom-derive-0.1.5 \ zeroize-1.8.1 \ zerovec-0.10.4 \ zerovec-derive-0.10.3 \ - zip-2.4.1 \ + zip-2.5.0 \ zlib-rs-0.4.1 \ zopfli-0.8.1 \ zstd-0.13.2 \ diff --git a/shells/nushell/Makefile.version b/shells/nushell/Makefile.version index 4eb759f739b2..3f9e243964ce 100644 --- a/shells/nushell/Makefile.version +++ b/shells/nushell/Makefile.version @@ -1,3 +1,3 @@ # this file is provided for nushell users -NUSHELL_VER=0.103.0 +NUSHELL_VER=0.104.0 diff --git a/shells/nushell/distinfo b/shells/nushell/distinfo index d355353386d9..6afb01d6136a 100644 --- a/shells/nushell/distinfo +++ b/shells/nushell/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1742764885 +TIMESTAMP = 1747177901 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -45,8 +45,8 @@ SHA256 (rust/crates/arboard-3.4.1.crate) = df099ccb16cd014ff054ac1bf392c67feeef5 SIZE (rust/crates/arboard-3.4.1.crate) = 47070 SHA256 (rust/crates/argminmax-0.6.2.crate) = 52424b59d69d69d5056d508b260553afd91c57e21849579cd1f50ee8b8b88eaa SIZE (rust/crates/argminmax-0.6.2.crate) = 55956 -SHA256 (rust/crates/array-init-cursor-0.2.0.crate) = bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76 -SIZE (rust/crates/array-init-cursor-0.2.0.crate) = 2590 +SHA256 (rust/crates/array-init-cursor-0.2.1.crate) = ed51fe0f224d1d4ea768be38c51f9f831dee9d05c163c11fba0b8c44387b1fc3 +SIZE (rust/crates/array-init-cursor-0.2.1.crate) = 7102 SHA256 (rust/crates/arrayref-0.3.9.crate) = 76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb SIZE (rust/crates/arrayref-0.3.9.crate) = 9186 SHA256 (rust/crates/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b @@ -155,10 +155,10 @@ SHA256 (rust/crates/bytes-1.10.0.crate) = f61dac84819c6588b558454b194026eb1f09c2 SIZE (rust/crates/bytes-1.10.0.crate) = 76656 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.2.crate) = 2d2c12f985c78475a6b8d629afd0c360260ef34cfef52efccdcfd31972f81c2e -SIZE (rust/crates/bytesize-1.3.2.crate) = 11575 -SHA256 (rust/crates/calamine-0.26.1.crate) = 138646b9af2c5d7f1804ea4bf93afc597737d2bd4f7341d67c48b03316976eb1 -SIZE (rust/crates/calamine-0.26.1.crate) = 89109 +SHA256 (rust/crates/bytesize-1.3.3.crate) = 2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659 +SIZE (rust/crates/bytesize-1.3.3.crate) = 11594 +SHA256 (rust/crates/calamine-0.27.0.crate) = 6d80f81ba5c68206b9027e62346d49dc26fb32ffc4fe6ef7022a8ae21d348ccb +SIZE (rust/crates/calamine-0.27.0.crate) = 89837 SHA256 (rust/crates/cassowary-0.3.0.crate) = df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53 SIZE (rust/crates/cassowary-0.3.0.crate) = 22876 SHA256 (rust/crates/castaway-0.2.3.crate) = 0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5 @@ -235,8 +235,8 @@ SHA256 (rust/crates/crc-catalog-1.1.1.crate) = ccaeedb56da03b09f598226e25e80088c SIZE (rust/crates/crc-catalog-1.1.1.crate) = 8698 SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 -SHA256 (rust/crates/crossbeam-channel-0.5.13.crate) = 33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2 -SIZE (rust/crates/crossbeam-channel-0.5.13.crate) = 91174 +SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2 +SIZE (rust/crates/crossbeam-channel-0.5.15.crate) = 92716 SHA256 (rust/crates/crossbeam-deque-0.8.5.crate) = 613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d SIZE (rust/crates/crossbeam-deque-0.8.5.crate) = 21726 SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e @@ -273,8 +273,8 @@ SHA256 (rust/crates/darling_core-0.20.10.crate) = 95133861a8032aaea082871032f581 SIZE (rust/crates/darling_core-0.20.10.crate) = 65015 SHA256 (rust/crates/darling_macro-0.20.10.crate) = d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806 SIZE (rust/crates/darling_macro-0.20.10.crate) = 1874 -SHA256 (rust/crates/data-encoding-2.8.0.crate) = 575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010 -SIZE (rust/crates/data-encoding-2.8.0.crate) = 21394 +SHA256 (rust/crates/data-encoding-2.9.0.crate) = 2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476 +SIZE (rust/crates/data-encoding-2.9.0.crate) = 21564 SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4 SIZE (rust/crates/deranged-0.3.11.crate) = 18043 SHA256 (rust/crates/derive-new-0.6.0.crate) = d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad @@ -421,6 +421,8 @@ SHA256 (rust/crates/gethostname-0.4.3.crate) = 0176e0459c2e4a1fe232f984bca6890e6 SIZE (rust/crates/gethostname-0.4.3.crate) = 9336 SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 +SHA256 (rust/crates/getrandom-0.3.1.crate) = 43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8 +SIZE (rust/crates/getrandom-0.3.1.crate) = 42449 SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f SIZE (rust/crates/gimli-0.31.1.crate) = 279515 SHA256 (rust/crates/git2-0.20.0.crate) = 3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff @@ -475,8 +477,8 @@ SHA256 (rust/crates/httparse-1.9.5.crate) = 7d71d3574edd2771538b901e6549113b4006 SIZE (rust/crates/httparse-1.9.5.crate) = 39029 SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9 SIZE (rust/crates/httpdate-1.0.3.crate) = 10639 -SHA256 (rust/crates/human-date-parser-0.2.0.crate) = 1116cf4debfe770c12168458321c4a8591b71c4c19f7100de07c84cf81701c63 -SIZE (rust/crates/human-date-parser-0.2.0.crate) = 11931 +SHA256 (rust/crates/human-date-parser-0.3.1.crate) = 406f83c56de4b2c9183be52ae9a4fefa22c0e0c3d3d7ef80be26eaee11c7110e +SIZE (rust/crates/human-date-parser-0.3.1.crate) = 15566 SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4 SIZE (rust/crates/humantime-2.1.0.crate) = 16749 SHA256 (rust/crates/hyper-0.14.31.crate) = 8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85 @@ -523,8 +525,8 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f SIZE (rust/crates/idna-1.0.3.crate) = 142515 SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 -SHA256 (rust/crates/indexmap-2.7.0.crate) = 62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f -SIZE (rust/crates/indexmap-2.7.0.crate) = 85335 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/indicatif-0.17.9.crate) = cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281 SIZE (rust/crates/indicatif-0.17.9.crate) = 65246 SHA256 (rust/crates/indoc-2.0.5.crate) = b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5 @@ -547,8 +549,8 @@ SHA256 (rust/crates/is-wsl-0.4.0.crate) = 173609498df190136aa7dea1a91db051746d33 SIZE (rust/crates/is-wsl-0.4.0.crate) = 3264 SHA256 (rust/crates/is_ci-1.2.0.crate) = 7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45 SIZE (rust/crates/is_ci-1.2.0.crate) = 4521 -SHA256 (rust/crates/is_debug-1.0.2.crate) = e8ea828c9d6638a5bd3d8b14e37502b4d56cae910ccf8a5b7f51c7a0eb1d0508 -SIZE (rust/crates/is_debug-1.0.2.crate) = 2640 +SHA256 (rust/crates/is_debug-1.1.0.crate) = 1fe266d2e243c931d8190177f20bf7f24eed45e96f39e87dc49a27b32d12d407 +SIZE (rust/crates/is_debug-1.1.0.crate) = 3398 SHA256 (rust/crates/is_executable-1.0.4.crate) = d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2 SIZE (rust/crates/is_executable-1.0.4.crate) = 8263 SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf @@ -653,8 +655,8 @@ SHA256 (rust/crates/mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae SIZE (rust/crates/mio-0.8.11.crate) = 102983 SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd SIZE (rust/crates/mio-1.0.3.crate) = 103703 -SHA256 (rust/crates/mockito-1.6.1.crate) = 652cd6d169a36eaf9d1e6bce1a221130439a966d7f27858af66a33a66e9c4ee2 -SIZE (rust/crates/mockito-1.6.1.crate) = 42149 +SHA256 (rust/crates/mockito-1.7.0.crate) = 7760e0e418d9b7e5777c0374009ca4c93861b9066f18cb334a20ce50ab63aa48 +SIZE (rust/crates/mockito-1.7.0.crate) = 42605 SHA256 (rust/crates/multipart-rs-0.1.13.crate) = 64cae00e7e52aa5072342ef9a2ccd71669be913c2176a81a665b1f9cd79345f2 SIZE (rust/crates/multipart-rs-0.1.13.crate) = 5624 SHA256 (rust/crates/native-tls-0.2.12.crate) = a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466 @@ -667,6 +669,8 @@ SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d SIZE (rust/crates/nix-0.29.0.crate) = 318248 SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a SIZE (rust/crates/nom-7.1.3.crate) = 117570 +SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405 +SIZE (rust/crates/nom-8.0.0.crate) = 135590 SHA256 (rust/crates/notify-6.1.1.crate) = 6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d SIZE (rust/crates/notify-6.1.1.crate) = 40117 SHA256 (rust/crates/notify-debouncer-full-0.3.2.crate) = fb7fd166739789c9ff169e654dc1501373db9d80a4c3f972817c8a4d7cf8f34e @@ -731,16 +735,16 @@ SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f9 SIZE (rust/crates/once_cell-1.20.2.crate) = 33394 SHA256 (rust/crates/open-5.3.1.crate) = 3ecd52f0b8d15c40ce4820aa251ed5de032e5d91fab27f7db2f40d42a8bdf69c SIZE (rust/crates/open-5.3.1.crate) = 25229 -SHA256 (rust/crates/openssl-0.10.70.crate) = 61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6 -SIZE (rust/crates/openssl-0.10.70.crate) = 277545 +SHA256 (rust/crates/openssl-0.10.72.crate) = fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da +SIZE (rust/crates/openssl-0.10.72.crate) = 283852 SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601 SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227 SHA256 (rust/crates/openssl-src-300.4.1+3.4.0.crate) = faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c SIZE (rust/crates/openssl-src-300.4.1+3.4.0.crate) = 9945831 -SHA256 (rust/crates/openssl-sys-0.9.105.crate) = 8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc -SIZE (rust/crates/openssl-sys-0.9.105.crate) = 72287 +SHA256 (rust/crates/openssl-sys-0.9.107.crate) = 8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07 +SIZE (rust/crates/openssl-sys-0.9.107.crate) = 78156 SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 SHA256 (rust/crates/ordered-multimap-0.7.3.crate) = 49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79 @@ -761,8 +765,8 @@ SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627 SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406 SHA256 (rust/crates/parse-zoneinfo-0.3.1.crate) = 1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24 SIZE (rust/crates/parse-zoneinfo-0.3.1.crate) = 97290 -SHA256 (rust/crates/parse_datetime-0.6.0.crate) = a8720474e3dd4af20cea8716703498b9f3b690f318fa9d9d9e2e38eaf44b96d0 -SIZE (rust/crates/parse_datetime-0.6.0.crate) = 12822 +SHA256 (rust/crates/parse_datetime-0.8.0.crate) = 4bffd1156cebf13f681d7769924d3edfb9d9d71ba206a8d8e8e7eb9df4f4b1e7 +SIZE (rust/crates/parse_datetime-0.8.0.crate) = 17808 SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a SIZE (rust/crates/paste-1.0.15.crate) = 18374 SHA256 (rust/crates/pathdiff-0.2.3.crate) = df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3 @@ -773,6 +777,10 @@ SHA256 (rust/crates/peresil-0.3.0.crate) = f658886ed52e196e850cfbbfddab9eaa7f6d9 SIZE (rust/crates/peresil-0.3.0.crate) = 13573 SHA256 (rust/crates/pest-2.7.15.crate) = 8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc SIZE (rust/crates/pest-2.7.15.crate) = 127895 +SHA256 (rust/crates/pest_consume-1.1.3.crate) = 79447402d15d18e7142e14c72f2e63fa3d155be1bc5b70b3ccbb610ac55f536b +SIZE (rust/crates/pest_consume-1.1.3.crate) = 11828 +SHA256 (rust/crates/pest_consume_macros-1.1.0.crate) = 9d8630a7a899cb344ec1c16ba0a6b24240029af34bdc0a21f84e411d7f793f29 +SIZE (rust/crates/pest_consume_macros-1.1.0.crate) = 6962 SHA256 (rust/crates/pest_derive-2.7.15.crate) = 816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e SIZE (rust/crates/pest_derive-2.7.15.crate) = 40745 SHA256 (rust/crates/pest_generator-2.7.15.crate) = 7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b @@ -893,8 +901,6 @@ SHA256 (rust/crates/quick-error-1.2.3.crate) = a1d01941d82fa2ab50be1e79e6714289d SIZE (rust/crates/quick-error-1.2.3.crate) = 15066 SHA256 (rust/crates/quick-error-2.0.1.crate) = a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3 SIZE (rust/crates/quick-error-2.0.1.crate) = 14265 -SHA256 (rust/crates/quick-xml-0.31.0.crate) = 1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33 -SIZE (rust/crates/quick-xml-0.31.0.crate) = 172236 SHA256 (rust/crates/quick-xml-0.32.0.crate) = 1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2 SIZE (rust/crates/quick-xml-0.32.0.crate) = 184149 SHA256 (rust/crates/quick-xml-0.36.2.crate) = f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe @@ -917,10 +923,16 @@ SHA256 (rust/crates/quoted_printable-0.5.1.crate) = 640c9bd8497b02465aeef5375144 SIZE (rust/crates/quoted_printable-0.5.1.crate) = 8322 SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand-0.9.0.crate) = 3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94 +SIZE (rust/crates/rand-0.9.0.crate) = 97798 SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb +SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258 SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 +SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38 +SIZE (rust/crates/rand_core-0.9.3.crate) = 24543 SHA256 (rust/crates/rand_distr-0.4.3.crate) = 32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31 SIZE (rust/crates/rand_distr-0.4.3.crate) = 58255 SHA256 (rust/crates/ratatui-0.29.0.crate) = eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b @@ -941,8 +953,8 @@ SHA256 (rust/crates/redox_syscall-0.5.8.crate) = 03a862b389f93e68874fbf580b9de08 SIZE (rust/crates/redox_syscall-0.5.8.crate) = 26319 SHA256 (rust/crates/redox_users-0.4.6.crate) = ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43 SIZE (rust/crates/redox_users-0.4.6.crate) = 15585 -SHA256 (rust/crates/reedline-0.39.0.crate) = dd4728ee71d2aa3a364ee64470d1aa64b3f0467b2d28b73df15259d005dec64a -SIZE (rust/crates/reedline-0.39.0.crate) = 144694 +SHA256 (rust/crates/reedline-0.40.0.crate) = b5cdfab7494d13ebfb6ce64828648518205d3ce8541ef1f94a27887f29d2d50b +SIZE (rust/crates/reedline-0.40.0.crate) = 145369 SHA256 (rust/crates/ref-cast-1.0.23.crate) = ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931 SIZE (rust/crates/ref-cast-1.0.23.crate) = 12795 SHA256 (rust/crates/ref-cast-impl-1.0.23.crate) = bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6 @@ -979,12 +991,12 @@ SHA256 (rust/crates/rstest_reuse-0.7.0.crate) = b3a8fb4672e840a587a66fc577a54913 SIZE (rust/crates/rstest_reuse-0.7.0.crate) = 12828 SHA256 (rust/crates/rusqlite-0.31.0.crate) = b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae SIZE (rust/crates/rusqlite-0.31.0.crate) = 152252 -SHA256 (rust/crates/rust-embed-8.6.0.crate) = 0b3aba5104622db5c9fc61098de54708feb732e7763d7faa2fa625899f00bf6f -SIZE (rust/crates/rust-embed-8.6.0.crate) = 906979 -SHA256 (rust/crates/rust-embed-impl-8.6.0.crate) = 1f198c73be048d2c5aa8e12f7960ad08443e56fd39cc26336719fdb4ea0ebaae -SIZE (rust/crates/rust-embed-impl-8.6.0.crate) = 10097 -SHA256 (rust/crates/rust-embed-utils-8.6.0.crate) = 5a2fcdc9f40c8dc2922842ca9add611ad19f332227fc651d015881ad1552bd9a -SIZE (rust/crates/rust-embed-utils-8.6.0.crate) = 6115 +SHA256 (rust/crates/rust-embed-8.7.0.crate) = e5fbc0ee50fcb99af7cebb442e5df7b5b45e9460ffa3f8f549cd26b862bec49d +SIZE (rust/crates/rust-embed-8.7.0.crate) = 907480 +SHA256 (rust/crates/rust-embed-impl-8.7.0.crate) = 6bf418c9a2e3f6663ca38b8a7134cc2c2167c9d69688860e8961e3faa731702e +SIZE (rust/crates/rust-embed-impl-8.7.0.crate) = 10171 +SHA256 (rust/crates/rust-embed-utils-8.7.0.crate) = 08d55b95147fe01265d06b3955db798bdaed52e60e2211c41137701b3aba8e21 +SIZE (rust/crates/rust-embed-utils-8.7.0.crate) = 6123 SHA256 (rust/crates/rust-ini-0.21.1.crate) = 4e310ef0e1b6eeb79169a1171daf9abcb87a2e17c03bee2c4bb100b55c75409f SIZE (rust/crates/rust-ini-0.21.1.crate) = 19496 SHA256 (rust/crates/rust_decimal-1.36.0.crate) = b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555 @@ -1075,8 +1087,8 @@ SHA256 (rust/crates/sha1_smol-1.0.1.crate) = bbfa15b3dddfee50a0fff136974b3e1bde5 SIZE (rust/crates/sha1_smol-1.0.1.crate) = 9809 SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8 SIZE (rust/crates/sha2-0.10.8.crate) = 26357 -SHA256 (rust/crates/shadow-rs-0.38.0.crate) = 69d433b5df1e1958a668457ebe4a9c5b7bcfe844f4eb2276ac43cf273baddd54 -SIZE (rust/crates/shadow-rs-0.38.0.crate) = 34481 +SHA256 (rust/crates/shadow-rs-1.1.1.crate) = 6d5625ed609cf66d7e505e7d487aca815626dc4ebb6c0dd07637ca61a44651a6 +SIZE (rust/crates/shadow-rs-1.1.1.crate) = 34850 SHA256 (rust/crates/shell-words-1.1.0.crate) = 24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde SIZE (rust/crates/shell-words-1.1.0.crate) = 9871 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 @@ -1113,6 +1125,8 @@ SHA256 (rust/crates/snap-1.1.1.crate) = 1b6b67fb9a61334225b5b790716f609cd58395f8 SIZE (rust/crates/snap-1.1.1.crate) = 33763 SHA256 (rust/crates/socket2-0.5.8.crate) = c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8 SIZE (rust/crates/socket2-0.5.8.crate) = 56309 +SHA256 (rust/crates/socks-0.3.4.crate) = f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b +SIZE (rust/crates/socks-0.3.4.crate) = 13172 SHA256 (rust/crates/sqlparser-0.53.0.crate) = 05a528114c392209b3264855ad491fcce534b94a38771b0a0b97a79379275ce8 SIZE (rust/crates/sqlparser-0.53.0.crate) = 266820 SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3 @@ -1181,12 +1195,12 @@ SHA256 (rust/crates/textwrap-0.16.1.crate) = 23d434d3f8967a09480fb04132ebe0a3e08 SIZE (rust/crates/textwrap-0.16.1.crate) = 56012 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.6.crate) = 8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47 -SIZE (rust/crates/thiserror-2.0.6.crate) = 28433 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 -SHA256 (rust/crates/thiserror-impl-2.0.6.crate) = d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312 -SIZE (rust/crates/thiserror-impl-2.0.6.crate) = 20946 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 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.37.crate) = 35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21 @@ -1203,10 +1217,10 @@ SHA256 (rust/crates/tinyvec-1.8.0.crate) = 445e881f4f6d382d5f27c034e25eb92edd7c7 SIZE (rust/crates/tinyvec-1.8.0.crate) = 46796 SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20 SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865 -SHA256 (rust/crates/titlecase-3.4.0.crate) = ef6b5cbe1316986025d8f662ff6945a0c85f2ca8ca13f04b5e0829ddb0d047f2 -SIZE (rust/crates/titlecase-3.4.0.crate) = 11552 -SHA256 (rust/crates/tokio-1.43.0.crate) = 3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e -SIZE (rust/crates/tokio-1.43.0.crate) = 817422 +SHA256 (rust/crates/titlecase-3.5.0.crate) = a1fad07d425f7245932d6deb5009e2c83d9642617b47750ffc3363815e269435 +SIZE (rust/crates/titlecase-3.5.0.crate) = 11847 +SHA256 (rust/crates/tokio-1.44.2.crate) = e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48 +SIZE (rust/crates/tokio-1.44.2.crate) = 841618 SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 SHA256 (rust/crates/tokio-native-tls-0.3.1.crate) = bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2 @@ -1249,6 +1263,12 @@ SHA256 (rust/crates/typetag-0.2.18.crate) = 52ba3b6e86ffe0054b2c44f2d86407388b93 SIZE (rust/crates/typetag-0.2.18.crate) = 30145 SHA256 (rust/crates/typetag-impl-0.2.18.crate) = 70b20a22c42c8f1cd23ce5e34f165d4d37038f5b663ad20fb6adbdf029172483 SIZE (rust/crates/typetag-impl-0.2.18.crate) = 9137 +SHA256 (rust/crates/tz-rs-0.7.0.crate) = e1450bf2b99397e72070e7935c89facaa80092ac812502200375f1f7d33c71a1 +SIZE (rust/crates/tz-rs-0.7.0.crate) = 46486 +SHA256 (rust/crates/tzdb-0.7.2.crate) = 0be2ea5956f295449f47c0b825c5e109022ff1a6a53bb4f77682a87c2341fbf5 +SIZE (rust/crates/tzdb-0.7.2.crate) = 10188 +SHA256 (rust/crates/tzdb_data-0.2.1.crate) = 0604b35c1f390a774fdb138cac75a99981078895d24bcab175987440bbff803b +SIZE (rust/crates/tzdb_data-0.2.1.crate) = 246122 SHA256 (rust/crates/ucd-trie-0.1.7.crate) = 2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971 SIZE (rust/crates/ucd-trie-0.1.7.crate) = 46795 SHA256 (rust/crates/umask-2.1.0.crate) = ec9a46c2549e35c054e0ffe281a3a6ec0007793db4df106604d37ed3f4d73d1c @@ -1293,28 +1313,28 @@ SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59 SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437 SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499 -SHA256 (rust/crates/uu_cp-0.0.29.crate) = 235439f8efcff799cbdb90992cb5b1845dce903c1569efc8d9b46417c83f5aa8 -SIZE (rust/crates/uu_cp-0.0.29.crate) = 43378 -SHA256 (rust/crates/uu_mkdir-0.0.29.crate) = ea0a30620d88a7ea16b522e1fe63ebb61f87f05fd63ade00938a024807356952 -SIZE (rust/crates/uu_mkdir-0.0.29.crate) = 8333 -SHA256 (rust/crates/uu_mktemp-0.0.29.crate) = e1db7648ff064cdfe8a0e6ef9546de3b03e34cefa270b783de7736a8470473cc -SIZE (rust/crates/uu_mktemp-0.0.29.crate) = 11859 -SHA256 (rust/crates/uu_mv-0.0.29.crate) = 92ab8c17ac7153adaa0176924319827cfb240cf48e4260283facfdb37e776071 -SIZE (rust/crates/uu_mv-0.0.29.crate) = 14918 -SHA256 (rust/crates/uu_touch-0.0.29.crate) = 3adc774c7961272cd2feeb95f2bf2e0b8f7b8ccd5fbcf49727d0de1eab804b67 -SIZE (rust/crates/uu_touch-0.0.29.crate) = 15950 -SHA256 (rust/crates/uu_uname-0.0.29.crate) = 95a942626aec03d4f4d972b10e00f9ddcdced1933658076eccafea5a20fdafb8 -SIZE (rust/crates/uu_uname-0.0.29.crate) = 7271 -SHA256 (rust/crates/uu_whoami-0.0.29.crate) = a812f7a838c9375c15ed13b66048df2c632c1ac3ec613dabb28c648019c6d018 -SIZE (rust/crates/uu_whoami-0.0.29.crate) = 6344 -SHA256 (rust/crates/uucore-0.0.29.crate) = 50e0dc1598d959a08f24cea4d9e992f7ca874bd4ac80746683272afd37603b5e -SIZE (rust/crates/uucore-0.0.29.crate) = 127128 -SHA256 (rust/crates/uucore_procs-0.0.29.crate) = 27d3de33ab2b56c0437cca084a2aeb1d46c56d138ab6341c009a90018a9a1c5f -SIZE (rust/crates/uucore_procs-0.0.29.crate) = 3993 -SHA256 (rust/crates/uuhelp_parser-0.0.29.crate) = 0cf4c8b31abfb5dc79940d6ca8000a1a6aa42f38711cdeaacb95850c69924cbc -SIZE (rust/crates/uuhelp_parser-0.0.29.crate) = 2904 -SHA256 (rust/crates/uuid-1.12.0.crate) = 744018581f9a3454a9e15beb8a33b017183f1e7c0cd170232a2d1453b23a51c4 -SIZE (rust/crates/uuid-1.12.0.crate) = 49085 +SHA256 (rust/crates/uu_cp-0.0.30.crate) = bf2f3906b7896f79519055d36760095577373e40ec244f46b259f502a4a91147 +SIZE (rust/crates/uu_cp-0.0.30.crate) = 45103 +SHA256 (rust/crates/uu_mkdir-0.0.30.crate) = 5be556a5d852f55b92bba460d7a97030a340ba4a3f4c510a8d0a893bfaf48356 +SIZE (rust/crates/uu_mkdir-0.0.30.crate) = 11237 +SHA256 (rust/crates/uu_mktemp-0.0.30.crate) = 5305fcf4f7f480e7438e19ff433ae60dea886bd528f87543029eb6b95d351afc +SIZE (rust/crates/uu_mktemp-0.0.30.crate) = 14411 +SHA256 (rust/crates/uu_mv-0.0.30.crate) = 3be214b96554e4f7aa079b26c86c3ecf1b9ea15023ca2ec62d608273d12c7049 +SIZE (rust/crates/uu_mv-0.0.30.crate) = 18113 +SHA256 (rust/crates/uu_touch-0.0.30.crate) = 1e58581a0245de8e3ef75b115ab29592cfb60d4851149d4951604601d14ea420 +SIZE (rust/crates/uu_touch-0.0.30.crate) = 17229 +SHA256 (rust/crates/uu_uname-0.0.30.crate) = 324d96a21da91a81be334206ab65aad16d164d34cddeb640e1c56cd8d1854dd4 +SIZE (rust/crates/uu_uname-0.0.30.crate) = 9545 +SHA256 (rust/crates/uu_whoami-0.0.30.crate) = bee254de8b172a5978f12fe6cd9d4f2b60ea9ef1e37f0cb53bfee2c993b3e96a +SIZE (rust/crates/uu_whoami-0.0.30.crate) = 8616 +SHA256 (rust/crates/uucore-0.0.30.crate) = 71f4e82877d06de779c611a3d54720f56f1e68b228fb30a5b6c66ef07e68263d +SIZE (rust/crates/uucore-0.0.30.crate) = 132808 +SHA256 (rust/crates/uucore_procs-0.0.30.crate) = c72435859e812e602e225dea48d014abb6b1072220a8d44f2fe0565553b1f7e4 +SIZE (rust/crates/uucore_procs-0.0.30.crate) = 3993 +SHA256 (rust/crates/uuhelp_parser-0.0.30.crate) = 0bb6d972f580f8223cb7052d8580aea2b7061e368cf476de32ea9457b19459ed +SIZE (rust/crates/uuhelp_parser-0.0.30.crate) = 2907 +SHA256 (rust/crates/uuid-1.16.0.crate) = 458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9 +SIZE (rust/crates/uuid-1.16.0.crate) = 58549 SHA256 (rust/crates/v_htmlescape-0.15.8.crate) = 4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c SIZE (rust/crates/v_htmlescape-0.15.8.crate) = 10878 SHA256 (rust/crates/value-trait-0.10.1.crate) = 9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187 @@ -1339,6 +1359,8 @@ SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3da 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/wasi-0.13.3+wasi-0.2.2.crate) = 26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2 +SIZE (rust/crates/wasi-0.13.3+wasi-0.2.2.crate) = 136754 SHA256 (rust/crates/wasm-bindgen-0.2.99.crate) = a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396 SIZE (rust/crates/wasm-bindgen-0.2.99.crate) = 46136 SHA256 (rust/crates/wasm-bindgen-backend-0.2.99.crate) = 5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79 @@ -1461,6 +1483,8 @@ SHA256 (rust/crates/winresource-0.1.19.crate) = 7276691b353ad4547af8c3268488d131 SIZE (rust/crates/winresource-0.1.19.crate) = 75529 SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904 SIZE (rust/crates/winsafe-0.0.19.crate) = 492820 +SHA256 (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c +SIZE (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3357 SHA256 (rust/crates/wl-clipboard-rs-0.8.1.crate) = 12b41773911497b18ca8553c3daaf8ec9fe9819caf93d451d3055f69de028adb SIZE (rust/crates/wl-clipboard-rs-0.8.1.crate) = 32835 SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 @@ -1487,8 +1511,12 @@ SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8 SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525 SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645 +SHA256 (rust/crates/zerocopy-0.8.23.crate) = fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6 +SIZE (rust/crates/zerocopy-0.8.23.crate) = 239977 SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829 +SHA256 (rust/crates/zerocopy-derive-0.8.23.crate) = 6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154 +SIZE (rust/crates/zerocopy-derive-0.8.23.crate) = 83885 SHA256 (rust/crates/zerofrom-0.1.5.crate) = cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e SIZE (rust/crates/zerofrom-0.1.5.crate) = 5091 SHA256 (rust/crates/zerofrom-derive-0.1.5.crate) = 595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808 @@ -1499,8 +1527,8 @@ SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19d SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 -SHA256 (rust/crates/zip-2.4.1.crate) = 938cc23ac49778ac8340e366ddc422b2227ea176edb447e23fc0627608dddadd -SIZE (rust/crates/zip-2.4.1.crate) = 109830 +SHA256 (rust/crates/zip-2.5.0.crate) = 27c03817464f64e23f6f37574b4fdc8cf65925b5bfd2b0f2aedf959791941f88 +SIZE (rust/crates/zip-2.5.0.crate) = 111877 SHA256 (rust/crates/zlib-rs-0.4.1.crate) = aada01553a9312bad4b9569035a1f12b05e5ec9770a1a4b323757356928944f8 SIZE (rust/crates/zlib-rs-0.4.1.crate) = 190033 SHA256 (rust/crates/zopfli-0.8.1.crate) = e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946 @@ -1511,5 +1539,5 @@ SHA256 (rust/crates/zstd-safe-7.2.1.crate) = 54a3ab4db68cea366acc5c897c7b4d4d1b8 SIZE (rust/crates/zstd-safe-7.2.1.crate) = 21122 SHA256 (rust/crates/zstd-sys-2.0.13+zstd.1.5.6.crate) = 38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa SIZE (rust/crates/zstd-sys-2.0.13+zstd.1.5.6.crate) = 749090 -SHA256 (nushell-nushell-0.103.0_GH0.tar.gz) = 0e654e47627ad8c053350bbc25fa75c55b76e11fd6841118214eaa5a10f9686e -SIZE (nushell-nushell-0.103.0_GH0.tar.gz) = 3435849 +SHA256 (nushell-nushell-0.104.0_GH0.tar.gz) = 2964ef7148d0f67fa4860fa3eab1c7d15c51ec5292be0cd0865996816f46fe84 +SIZE (nushell-nushell-0.104.0_GH0.tar.gz) = 3477814 diff --git a/sysutils/Makefile b/sysutils/Makefile index e06279047c15..5e782c86f6ef 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1288,7 +1288,6 @@ SUBDIR += skopeo SUBDIR += slack SUBDIR += sleuthkit - SUBDIR += slst SUBDIR += slurm-wlm SUBDIR += smart SUBDIR += smartmontools diff --git a/sysutils/appjail-devel/Makefile b/sysutils/appjail-devel/Makefile index 4ea159067368..72c3f17e70b4 100644 --- a/sysutils/appjail-devel/Makefile +++ b/sysutils/appjail-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= appjail -DISTVERSION= 3.8.0.20250503 +DISTVERSION= 3.9.0.20250517 PORTEPOCH= 1 CATEGORIES= sysutils PKGNAMESUFFIX= -devel @@ -16,7 +16,7 @@ CONFLICTS= appjail USE_GITHUB= yes GH_ACCOUNT= DtxdF GH_PROJECT= AppJail -GH_TAGNAME= 8f14cd3aa30a72c2daf1af64037c2efd002f1e8d +GH_TAGNAME= e571c6043be415eb7dd36f5e29cbdfafd3a6e859 MAKE_ARGS= APPJAIL_VERSION=${DISTVERSION}+${GH_TAGNAME} ALL_TARGET= utils-strip diff --git a/sysutils/appjail-devel/distinfo b/sysutils/appjail-devel/distinfo index 6d6e42400e7a..b967ea8c42bc 100644 --- a/sysutils/appjail-devel/distinfo +++ b/sysutils/appjail-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746298533 -SHA256 (DtxdF-AppJail-3.8.0.20250503-8f14cd3aa30a72c2daf1af64037c2efd002f1e8d_GH0.tar.gz) = 3576a8524467b9e7866c80f1a161ccf6f78cf2f54f2321aaa652673a3e3478ff -SIZE (DtxdF-AppJail-3.8.0.20250503-8f14cd3aa30a72c2daf1af64037c2efd002f1e8d_GH0.tar.gz) = 1007478 +TIMESTAMP = 1747507486 +SHA256 (DtxdF-AppJail-3.9.0.20250517-e571c6043be415eb7dd36f5e29cbdfafd3a6e859_GH0.tar.gz) = 7b44bc3051bd88e257984866bf382e4578ef9b8a6450dffbac5de7dc199d12c5 +SIZE (DtxdF-AppJail-3.9.0.20250517-e571c6043be415eb7dd36f5e29cbdfafd3a6e859_GH0.tar.gz) = 1016835 diff --git a/sysutils/appjail-devel/pkg-plist b/sysutils/appjail-devel/pkg-plist index d0f5e7c437b9..9aa5761fcd6d 100644 --- a/sysutils/appjail-devel/pkg-plist +++ b/sysutils/appjail-devel/pkg-plist @@ -4,6 +4,7 @@ bin/appjail-config-user bin/appjail-dns bin/appjail-user @sample %%ETCDIR%%/appjail.conf.sample +etc/bash_completion.d/_appjail.bash etc/rc.d/appjail etc/rc.d/appjail-dns etc/rc.d/appjail-health @@ -158,6 +159,7 @@ libexec/appjail/network/network %%DATADIR%%/scripts/ajconf.sh %%DATADIR%%/scripts/ajdns.sh %%DATADIR%%/scripts/ajuser.sh +%%DATADIR%%/scripts/appjail-completion.bash %%DATADIR%%/scripts/ascii2oct.sh %%DATADIR%%/scripts/bind-ddns-hook.sh %%DATADIR%%/scripts/create-bridge.sh diff --git a/sysutils/appjail/Makefile b/sysutils/appjail/Makefile index 6c0fc3aaab16..966b3f4c8c77 100644 --- a/sysutils/appjail/Makefile +++ b/sysutils/appjail/Makefile @@ -1,6 +1,6 @@ PORTNAME= appjail DISTVERSIONPREFIX= v -DISTVERSION= 3.8.0 +DISTVERSION= 3.9.0 CATEGORIES= sysutils MAINTAINER= DtxdF@disroot.org diff --git a/sysutils/appjail/distinfo b/sysutils/appjail/distinfo index 28c40e0ae61c..ed7ec0d0784a 100644 --- a/sysutils/appjail/distinfo +++ b/sysutils/appjail/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746253176 -SHA256 (DtxdF-AppJail-v3.8.0_GH0.tar.gz) = c0ebfff06fc60920ba580629c051c3c06f4ac0e5b77f09f55713f9045a254ab6 -SIZE (DtxdF-AppJail-v3.8.0_GH0.tar.gz) = 1007245 +TIMESTAMP = 1747503555 +SHA256 (DtxdF-AppJail-v3.9.0_GH0.tar.gz) = 437fed67d953492dca0e84ce6c7db349f9406487687ae98cca112f1ee1b50f56 +SIZE (DtxdF-AppJail-v3.9.0_GH0.tar.gz) = 1016550 diff --git a/sysutils/appjail/pkg-plist b/sysutils/appjail/pkg-plist index d0f5e7c437b9..9aa5761fcd6d 100644 --- a/sysutils/appjail/pkg-plist +++ b/sysutils/appjail/pkg-plist @@ -4,6 +4,7 @@ bin/appjail-config-user bin/appjail-dns bin/appjail-user @sample %%ETCDIR%%/appjail.conf.sample +etc/bash_completion.d/_appjail.bash etc/rc.d/appjail etc/rc.d/appjail-dns etc/rc.d/appjail-health @@ -158,6 +159,7 @@ libexec/appjail/network/network %%DATADIR%%/scripts/ajconf.sh %%DATADIR%%/scripts/ajdns.sh %%DATADIR%%/scripts/ajuser.sh +%%DATADIR%%/scripts/appjail-completion.bash %%DATADIR%%/scripts/ascii2oct.sh %%DATADIR%%/scripts/bind-ddns-hook.sh %%DATADIR%%/scripts/create-bridge.sh diff --git a/sysutils/cmocka/Makefile b/sysutils/cmocka/Makefile index a3251bfe04a9..ff5c0a0da5a7 100644 --- a/sysutils/cmocka/Makefile +++ b/sysutils/cmocka/Makefile @@ -1,33 +1,18 @@ PORTNAME= cmocka -PORTVERSION= 1.1.5 +DISTVERSION= 1.1.7 CATEGORIES= sysutils -MASTER_SITES= https://cmocka.org/files/1.1/ \ - LOCAL/dteske +MASTER_SITES= https://cmocka.org/files/1.1/ MAINTAINER= dteske@FreeBSD.org COMMENT= Unit testing framework for C with support for mock objects WWW= https://cmocka.org/ LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/COPYING -USES= cmake tar:xz +USES= cmake:testing pathfix tar:xz USE_LDCONFIG= yes -PLIST_FILES= include/cmocka.h \ - include/cmocka_pbc.h \ - lib/cmake/cmocka/cmocka-config-version.cmake \ - lib/cmake/cmocka/cmocka-config.cmake \ - lib/libcmocka.so \ - lib/libcmocka.so.0 \ - lib/libcmocka.so.0.7.0 \ - libdata/pkgconfig/cmocka.pc - -OPTIONS_DEFINE= STATIC - -STATIC_CMAKE_BOOL= WITH_STATIC_LIB -STATIC_PLIST_FILES= lib/libcmocka.a - -post-install-STATIC-on: - @${MV} "${STAGEDIR}${PREFIX}/lib/libcmocka-static.a" "${STAGEDIR}${PREFIX}/lib/libcmocka.a" +CMAKE_TESTING_ON= UNIT_TESTING .include <bsd.port.mk> diff --git a/sysutils/cmocka/distinfo b/sysutils/cmocka/distinfo index daba23502fd0..8a457bfb00a9 100644 --- a/sysutils/cmocka/distinfo +++ b/sysutils/cmocka/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1572277190 -SHA256 (cmocka-1.1.5.tar.xz) = f0ccd8242d55e2fd74b16ba518359151f6f8383ff8aef4976e48393f77bba8b6 -SIZE (cmocka-1.1.5.tar.xz) = 81004 +TIMESTAMP = 1683241770 +SHA256 (cmocka-1.1.7.tar.xz) = 810570eb0b8d64804331f82b29ff47c790ce9cd6b163e98d47a4807047ecad82 +SIZE (cmocka-1.1.7.tar.xz) = 84064 diff --git a/sysutils/cmocka/files/patch-git-01-0e70150002ab7bcb626109b287f23c62ecf97565 b/sysutils/cmocka/files/patch-git-01-0e70150002ab7bcb626109b287f23c62ecf97565 new file mode 100644 index 000000000000..087c9d890010 --- /dev/null +++ b/sysutils/cmocka/files/patch-git-01-0e70150002ab7bcb626109b287f23c62ecf97565 @@ -0,0 +1,1282 @@ +Patch-Source: https://gitlab.com/cmocka/cmocka/-/commit/0e70150002ab7bcb626109b287f23c62ecf97565 +-- +From 0e70150002ab7bcb626109b287f23c62ecf97565 Mon Sep 17 00:00:00 2001 +From: Andreas Schneider <asn@cryptomilk.org> +Date: Mon, 5 Oct 2020 13:28:11 +0200 +Subject: [PATCH] cmocka: Replace LargestIntegralType with uintmax_t + +This requires #include <stdint.h> + +Fixes #38 +Fixes #49 +--- + example/allocate_module_test.c | 1 + + example/assert_macro_test.c | 1 + + example/assert_module_test.c | 1 + + example/calculator_test.c | 1 + + example/mock/chef_wrap/chef.c | 1 + + example/mock/chef_wrap/waiter_test_wrap.c | 1 + + include/cmocka.h | 162 ++++++++-------------- + src/cmocka.c | 148 ++++++++++---------- + tests/test_alloc.c | 1 + + tests/test_assert_macros.c | 1 + + tests/test_assert_macros_fail.c | 1 + + tests/test_basics.c | 1 + + tests/test_cmockery.c | 1 + + tests/test_double_macros.c | 1 + + tests/test_exception_handler.c | 1 + + tests/test_fixtures.c | 1 + + tests/test_float_macros.c | 1 + + tests/test_group_fixtures.c | 1 + + tests/test_group_setup_assert.c | 1 + + tests/test_group_setup_fail.c | 1 + + tests/test_groups.c | 1 + + tests/test_ordering.c | 1 + + tests/test_ordering_fail.c | 1 + + tests/test_returns.c | 1 + + tests/test_returns_fail.c | 1 + + tests/test_setup_fail.c | 1 + + tests/test_skip.c | 1 + + tests/test_skip_filter.c | 1 + + tests/test_strmatch.c | 1 + + tests/test_wildcard.c | 1 + + 30 files changed, 156 insertions(+), 182 deletions(-) + +diff --git a/example/allocate_module_test.c b/example/allocate_module_test.c +index 562aea2..eb3602f 100644 +--- example/allocate_module_test.c ++++ example/allocate_module_test.c +@@ -16,6 +16,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + extern void leak_memory(void); +diff --git a/example/assert_macro_test.c b/example/assert_macro_test.c +index 2cd355c..093a884 100644 +--- example/assert_macro_test.c ++++ example/assert_macro_test.c +@@ -16,6 +16,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + #include "assert_macro.h" +diff --git a/example/assert_module_test.c b/example/assert_module_test.c +index f387754..41b5a75 100644 +--- example/assert_module_test.c ++++ example/assert_module_test.c +@@ -16,6 +16,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + #include "assert_module.h" +diff --git a/example/calculator_test.c b/example/calculator_test.c +index ab8cad8..a3d862a 100644 +--- example/calculator_test.c ++++ example/calculator_test.c +@@ -16,6 +16,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include "cmocka.h" + #include <stdio.h> + +diff --git a/example/mock/chef_wrap/chef.c b/example/mock/chef_wrap/chef.c +index 1429cde..1c74125 100644 +--- example/mock/chef_wrap/chef.c ++++ example/mock/chef_wrap/chef.c +@@ -18,6 +18,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + #include <stdio.h> + #include <errno.h> +diff --git a/example/mock/chef_wrap/waiter_test_wrap.c b/example/mock/chef_wrap/waiter_test_wrap.c +index 4146818..04fe721 100644 +--- example/mock/chef_wrap/waiter_test_wrap.c ++++ example/mock/chef_wrap/waiter_test_wrap.c +@@ -24,6 +24,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + #include "waiter_test_wrap.h" +diff --git a/include/cmocka.h b/include/cmocka.h +index a21d965..6f56520 100644 +--- include/cmocka.h ++++ include/cmocka.h +@@ -57,32 +57,13 @@ int __stdcall IsDebuggerPresent(); + * @{ + */ + +-/* If __WORDSIZE is not set, try to figure it out and default to 32 bit. */ +-#ifndef __WORDSIZE +-# if (defined(__x86_64__) && !defined(__ILP32__)) || defined(__sparc_v9__) || defined(__sparcv9) +-# define __WORDSIZE 64 +-# else +-# define __WORDSIZE 32 +-# endif +-#endif ++/* XXX: stdint.h is a new requirement to include, but things haven't adapted ++ to it yet, so include it here too. ++ since it's a requirement to use the header at all, there's no harm in ++ including it? */ ++#include <stdint.h> + +-#ifdef DOXYGEN +-/** +- * Largest integral type. This type should be large enough to hold any +- * pointer or integer supported by the compiler. +- */ +-typedef uintmax_t LargestIntegralType; +-#else /* DOXGEN */ +-#ifndef LargestIntegralType +-# if __WORDSIZE == 64 && !defined(_WIN64) +-# define LargestIntegralType unsigned long int +-# else +-# define LargestIntegralType unsigned long long int +-# endif +-#endif /* LargestIntegralType */ +-#endif /* DOXYGEN */ +- +-/* Printf format used to display LargestIntegralType as a hexidecimal. */ ++/* Printf format used to display uintmax_t as a hexidecimal. */ + #ifndef LargestIntegralTypePrintfFormat + # ifdef _WIN32 + # define LargestIntegralTypePrintfFormat "0x%I64x" +@@ -95,7 +76,7 @@ typedef uintmax_t LargestIntegralType; + # endif /* _WIN32 */ + #endif /* LargestIntegralTypePrintfFormat */ + +-/* Printf format used to display LargestIntegralType as a decimal. */ ++/* Printf format used to display uintmax_t as a decimal. */ + #ifndef LargestIntegralTypePrintfFormatDecimal + # ifdef _WIN32 + # define LargestIntegralTypePrintfFormatDecimal "%I64u" +@@ -116,44 +97,15 @@ typedef uintmax_t LargestIntegralType; + # define DoublePrintfFormat "%f" + #endif /* DoublePrintfFormat */ + +-/* Perform an unsigned cast to LargestIntegralType. */ ++/* Perform an unsigned cast to uintmax_t. */ + #define cast_to_largest_integral_type(value) \ +- ((LargestIntegralType)(value)) +- +-/* Smallest integral type capable of holding a pointer. */ +-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(HAVE_UINTPTR_T) +-# if defined(_WIN32) +- /* WIN32 is an ILP32 platform */ +- typedef unsigned int uintptr_t; +-# elif defined(_WIN64) +- typedef unsigned long int uintptr_t; +-# else /* _WIN32 */ +- +-/* ILP32 and LP64 platforms */ +-# ifdef __WORDSIZE /* glibc */ +-# if __WORDSIZE == 64 +- typedef unsigned long int uintptr_t; +-# else +- typedef unsigned int uintptr_t; +-# endif /* __WORDSIZE == 64 */ +-# else /* __WORDSIZE */ +-# if defined(_LP64) || defined(_I32LPx) +- typedef unsigned long int uintptr_t; +-# else +- typedef unsigned int uintptr_t; +-# endif +-# endif /* __WORDSIZE */ +-# endif /* _WIN32 */ +- +-# define _UINTPTR_T +-# define _UINTPTR_T_DEFINED +-#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */ ++ ((uintmax_t)(value)) + + /* Perform an unsigned cast to uintptr_t. */ + #define cast_to_pointer_integral_type(value) \ +- ((uintptr_t)((size_t)(value))) ++ ((uintptr_t)(value)) + +-/* Perform a cast of a pointer to LargestIntegralType */ ++/* Perform a cast of a pointer to uintmax_t */ + #define cast_ptr_to_largest_integral_type(value) \ + cast_to_largest_integral_type(cast_to_pointer_integral_type(value)) + +@@ -240,7 +192,7 @@ cast_to_largest_integral_type(cast_to_pointer_integral_type(value)) + * + * @see will_return() + */ +-LargestIntegralType mock(void); ++uintmax_t mock(void); + #else + #define mock() _mock(__func__, __FILE__, __LINE__) + #endif +@@ -324,7 +276,7 @@ type mock_ptr_type(#type); + * @see mock() + * @see will_return_count() + */ +-void will_return(#function, LargestIntegralType value); ++void will_return(#function, uintmax_t value); + #else + #define will_return(function, value) \ + _will_return(#function, __FILE__, __LINE__, \ +@@ -347,7 +299,7 @@ void will_return(#function, LargestIntegralType value); + * + * @see mock() + */ +-void will_return_count(#function, LargestIntegralType value, int count); ++void will_return_count(#function, uintmax_t value, int count); + #else + #define will_return_count(function, value, count) \ + _will_return(#function, __FILE__, __LINE__, \ +@@ -370,7 +322,7 @@ void will_return_count(#function, LargestIntegralType value, int count); + * @see will_return_count() + * @see mock() + */ +-void will_return_always(#function, LargestIntegralType value); ++void will_return_always(#function, uintmax_t value); + #else + #define will_return_always(function, value) \ + will_return_count(function, (value), WILL_RETURN_ALWAYS) +@@ -398,7 +350,7 @@ void will_return_always(#function, LargestIntegralType value); + * @see will_return_count() + * @see mock() + */ +-void will_return_maybe(#function, LargestIntegralType value); ++void will_return_maybe(#function, uintmax_t value); + #else + #define will_return_maybe(function, value) \ + will_return_count(function, (value), WILL_RETURN_ONCE) +@@ -494,7 +446,7 @@ void expect_check(#function, #parameter, #check_function, const void *check_data + * + * @see check_expected(). + */ +-void expect_in_set(#function, #parameter, LargestIntegralType value_array[]); ++void expect_in_set(#function, #parameter, uintmax_t value_array[]); + #else + #define expect_in_set(function, parameter, value_array) \ + expect_in_set_count(function, parameter, value_array, 1) +@@ -519,7 +471,7 @@ void expect_in_set(#function, #parameter, LargestIntegralType value_array[]); + * + * @see check_expected(). + */ +-void expect_in_set_count(#function, #parameter, LargestIntegralType value_array[], size_t count); ++void expect_in_set_count(#function, #parameter, uintmax_t value_array[], size_t count); + #else + #define expect_in_set_count(function, parameter, value_array, count) \ + _expect_in_set(#function, #parameter, __FILE__, __LINE__, value_array, \ +@@ -541,7 +493,7 @@ void expect_in_set_count(#function, #parameter, LargestIntegralType value_array[ + * + * @see check_expected(). + */ +-void expect_not_in_set(#function, #parameter, LargestIntegralType value_array[]); ++void expect_not_in_set(#function, #parameter, uintmax_t value_array[]); + #else + #define expect_not_in_set(function, parameter, value_array) \ + expect_not_in_set_count(function, parameter, value_array, 1) +@@ -566,7 +518,7 @@ void expect_not_in_set(#function, #parameter, LargestIntegralType value_array[]) + * + * @see check_expected(). + */ +-void expect_not_in_set_count(#function, #parameter, LargestIntegralType value_array[], size_t count); ++void expect_not_in_set_count(#function, #parameter, uintmax_t value_array[], size_t count); + #else + #define expect_not_in_set_count(function, parameter, value_array, count) \ + _expect_not_in_set( \ +@@ -592,7 +544,7 @@ void expect_not_in_set_count(#function, #parameter, LargestIntegralType value_ar + * + * @see check_expected(). + */ +-void expect_in_range(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum); ++void expect_in_range(#function, #parameter, uintmax_t minimum, uintmax_t maximum); + #else + #define expect_in_range(function, parameter, minimum, maximum) \ + expect_in_range_count(function, parameter, minimum, maximum, 1) +@@ -619,7 +571,7 @@ void expect_in_range(#function, #parameter, LargestIntegralType minimum, Largest + * + * @see check_expected(). + */ +-void expect_in_range_count(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum, size_t count); ++void expect_in_range_count(#function, #parameter, uintmax_t minimum, uintmax_t maximum, size_t count); + #else + #define expect_in_range_count(function, parameter, minimum, maximum, count) \ + _expect_in_range(#function, #parameter, __FILE__, __LINE__, minimum, \ +@@ -643,7 +595,7 @@ void expect_in_range_count(#function, #parameter, LargestIntegralType minimum, L + * + * @see check_expected(). + */ +-void expect_not_in_range(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum); ++void expect_not_in_range(#function, #parameter, uintmax_t minimum, uintmax_t maximum); + #else + #define expect_not_in_range(function, parameter, minimum, maximum) \ + expect_not_in_range_count(function, parameter, minimum, maximum, 1) +@@ -670,7 +622,7 @@ void expect_not_in_range(#function, #parameter, LargestIntegralType minimum, Lar + * + * @see check_expected(). + */ +-void expect_not_in_range_count(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum, size_t count); ++void expect_not_in_range_count(#function, #parameter, uintmax_t minimum, uintmax_t maximum, size_t count); + #else + #define expect_not_in_range_count(function, parameter, minimum, maximum, \ + count) \ +@@ -695,7 +647,7 @@ void expect_not_in_range_count(#function, #parameter, LargestIntegralType minimu + * @see expect_memory() + * @see expect_any() + */ +-void expect_value(#function, #parameter, LargestIntegralType value); ++void expect_value(#function, #parameter, uintmax_t value); + #else + #define expect_value(function, parameter, value) \ + expect_value_count(function, parameter, value, 1) +@@ -722,7 +674,7 @@ void expect_value(#function, #parameter, LargestIntegralType value); + * @see expect_not_string() + * @see expect_not_memory() + */ +-void expect_value_count(#function, #parameter, LargestIntegralType value, size_t count); ++void expect_value_count(#function, #parameter, uintmax_t value, size_t count); + #else + #define expect_value_count(function, parameter, value, count) \ + _expect_value(#function, #parameter, __FILE__, __LINE__, \ +@@ -743,7 +695,7 @@ void expect_value_count(#function, #parameter, LargestIntegralType value, size_t + * + * @see check_expected(). + */ +-void expect_not_value(#function, #parameter, LargestIntegralType value); ++void expect_not_value(#function, #parameter, uintmax_t value); + #else + #define expect_not_value(function, parameter, value) \ + expect_not_value_count(function, parameter, value, 1) +@@ -767,7 +719,7 @@ void expect_not_value(#function, #parameter, LargestIntegralType value); + * + * @see check_expected(). + */ +-void expect_not_value_count(#function, #parameter, LargestIntegralType value, size_t count); ++void expect_not_value_count(#function, #parameter, uintmax_t value, size_t count); + #else + #define expect_not_value_count(function, parameter, value, count) \ + _expect_not_value(#function, #parameter, __FILE__, __LINE__, \ +@@ -1438,7 +1390,7 @@ void assert_memory_not_equal(const void *a, const void *b, size_t size); + * + * @param[in] maximum The maximum value allowed. + */ +-void assert_in_range(LargestIntegralType value, LargestIntegralType minimum, LargestIntegralType maximum); ++void assert_in_range(uintmax_t value, uintmax_t minimum, uintmax_t maximum); + #else + #define assert_in_range(value, minimum, maximum) \ + _assert_in_range( \ +@@ -1461,7 +1413,7 @@ void assert_in_range(LargestIntegralType value, LargestIntegralType minimum, Lar + * + * @param[in] maximum The maximum value to compare. + */ +-void assert_not_in_range(LargestIntegralType value, LargestIntegralType minimum, LargestIntegralType maximum); ++void assert_not_in_range(uintmax_t value, uintmax_t minimum, uintmax_t maximum); + #else + #define assert_not_in_range(value, minimum, maximum) \ + _assert_not_in_range( \ +@@ -1483,7 +1435,7 @@ void assert_not_in_range(LargestIntegralType value, LargestIntegralType minimum, + * + * @param[in] count The size of the values array. + */ +-void assert_in_set(LargestIntegralType value, LargestIntegralType values[], size_t count); ++void assert_in_set(uintmax_t value, uintmax_t values[], size_t count); + #else + #define assert_in_set(value, values, number_of_values) \ + _assert_in_set(value, values, number_of_values, __FILE__, __LINE__) +@@ -1502,7 +1454,7 @@ void assert_in_set(LargestIntegralType value, LargestIntegralType values[], size + * + * @param[in] count The size of the values array. + */ +-void assert_not_in_set(LargestIntegralType value, LargestIntegralType values[], size_t count); ++void assert_not_in_set(uintmax_t value, uintmax_t values[], size_t count); + #else + #define assert_not_in_set(value, values, number_of_values) \ + _assert_not_in_set(value, values, number_of_values, __FILE__, __LINE__) +@@ -2181,8 +2133,8 @@ void expect_assert_failure(function fn_call); + typedef void (*UnitTestFunction)(void **state); + + /* Function that determines whether a function parameter value is correct. */ +-typedef int (*CheckParameterValue)(const LargestIntegralType value, +- const LargestIntegralType check_value_data); ++typedef int (*CheckParameterValue)(const uintmax_t value, ++ const uintmax_t check_value_data); + + /* Type of the unit test function. */ + typedef enum UnitTestFunctionType { +@@ -2236,7 +2188,7 @@ typedef struct CheckParameterEvent { + SourceLocation location; + const char *parameter_name; + CheckParameterValue check_value; +- LargestIntegralType check_value_data; ++ uintmax_t check_value_data; + } CheckParameterEvent; + + /* Used by expect_assert_failure() and mock_assert(). */ +@@ -2245,7 +2197,7 @@ extern jmp_buf global_expect_assert_env; + extern const char * global_last_failed_assert; + + /* Retrieves a value for the given function, as set by "will_return". */ +-LargestIntegralType _mock(const char * const function, const char* const file, ++uintmax_t _mock(const char * const function, const char* const file, + const int line); + + void _expect_function_call( +@@ -2261,36 +2213,36 @@ void _expect_check( + const char* const function, const char* const parameter, + const char* const file, const int line, + const CheckParameterValue check_function, +- const LargestIntegralType check_data, CheckParameterEvent * const event, ++ const uintmax_t check_data, CheckParameterEvent * const event, + const int count); + + void _expect_in_set( + const char* const function, const char* const parameter, +- const char* const file, const int line, const LargestIntegralType values[], ++ const char* const file, const int line, const uintmax_t values[], + const size_t number_of_values, const int count); + void _expect_not_in_set( + const char* const function, const char* const parameter, +- const char* const file, const int line, const LargestIntegralType values[], ++ const char* const file, const int line, const uintmax_t values[], + const size_t number_of_values, const int count); + + void _expect_in_range( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType minimum, +- const LargestIntegralType maximum, const int count); ++ const uintmax_t minimum, ++ const uintmax_t maximum, const int count); + void _expect_not_in_range( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType minimum, +- const LargestIntegralType maximum, const int count); ++ const uintmax_t minimum, ++ const uintmax_t maximum, const int count); + + void _expect_value( + const char* const function, const char* const parameter, +- const char* const file, const int line, const LargestIntegralType value, ++ const char* const file, const int line, const uintmax_t value, + const int count); + void _expect_not_value( + const char* const function, const char* const parameter, +- const char* const file, const int line, const LargestIntegralType value, ++ const char* const file, const int line, const uintmax_t value, + const int count); + + void _expect_string( +@@ -2317,17 +2269,17 @@ void _expect_any( + + void _check_expected( + const char * const function_name, const char * const parameter_name, +- const char* file, const int line, const LargestIntegralType value); ++ const char* file, const int line, const uintmax_t value); + + void _will_return(const char * const function_name, const char * const file, +- const int line, const LargestIntegralType value, ++ const int line, const uintmax_t value, + const int count); +-void _assert_true(const LargestIntegralType result, ++void _assert_true(const uintmax_t result, + const char* const expression, + const char * const file, const int line); +-void _assert_return_code(const LargestIntegralType result, ++void _assert_return_code(const uintmax_t result, + size_t rlen, +- const LargestIntegralType error, ++ const uintmax_t error, + const char * const expression, + const char * const file, + const int line); +@@ -2344,10 +2296,10 @@ void _assert_double_not_equal(const double a, const double n, + const double epsilon, const char* const file, + const int line); + void _assert_int_equal( +- const LargestIntegralType a, const LargestIntegralType b, ++ const uintmax_t a, const uintmax_t b, + const char * const file, const int line); + void _assert_int_not_equal( +- const LargestIntegralType a, const LargestIntegralType b, ++ const uintmax_t a, const uintmax_t b, + const char * const file, const int line); + void _assert_string_equal(const char * const a, const char * const b, + const char * const file, const int line); +@@ -2360,16 +2312,16 @@ void _assert_memory_not_equal(const void * const a, const void * const b, + const size_t size, const char* const file, + const int line); + void _assert_in_range( +- const LargestIntegralType value, const LargestIntegralType minimum, +- const LargestIntegralType maximum, const char* const file, const int line); ++ const uintmax_t value, const uintmax_t minimum, ++ const uintmax_t maximum, const char* const file, const int line); + void _assert_not_in_range( +- const LargestIntegralType value, const LargestIntegralType minimum, +- const LargestIntegralType maximum, const char* const file, const int line); ++ const uintmax_t value, const uintmax_t minimum, ++ const uintmax_t maximum, const char* const file, const int line); + void _assert_in_set( +- const LargestIntegralType value, const LargestIntegralType values[], ++ const uintmax_t value, const uintmax_t values[], + const size_t number_of_values, const char* const file, const int line); + void _assert_not_in_set( +- const LargestIntegralType value, const LargestIntegralType values[], ++ const uintmax_t value, const uintmax_t values[], + const size_t number_of_values, const char* const file, const int line); + + void* _test_malloc(const size_t size, const char* file, const int line); +diff --git a/src/cmocka.c b/src/cmocka.c +index 52897e1..62d4284 100644 +--- src/cmocka.c ++++ src/cmocka.c +@@ -1,6 +1,6 @@ + /* + * Copyright 2008 Google Inc. +- * Copyright 2014-2018 Andreas Schneider <asn@cryptomilk.org> ++ * Copyright 2014-2020 Andreas Schneider <asn@cryptomilk.org> + * Copyright 2015 Jakub Hrozek <jakub.hrozek@posteo.se> + * + * Licensed under the Apache License, Version 2.0 (the "License"); +@@ -111,14 +111,14 @@ + + + /* +- * Declare and initialize a LargestIntegralType variable name ++ * Declare and initialize a uintmax_t variable name + * with value the conversion of ptr. + */ + #define declare_initialize_value_pointer_pointer(name, ptr) \ +- LargestIntegralType name ; \ +- name = (LargestIntegralType) (uintptr_t) ptr ++ uintmax_t name ; \ ++ name = (uintmax_t)((uintptr_t)(ptr)) + +-/* Cast a LargestIntegralType to pointer_type. */ ++/* Cast a uintmax_t to pointer_type. */ + #define cast_largest_integral_type_to_pointer( \ + pointer_type, largest_integral_type) \ + ((pointer_type)(uintptr_t)(largest_integral_type)) +@@ -158,7 +158,7 @@ typedef int (*EqualityFunction)(const void *left, const void *right); + /* Value of a symbol and the place it was declared. */ + typedef struct SymbolValue { + SourceLocation location; +- LargestIntegralType value; ++ uintmax_t value; + } SymbolValue; + + /* +@@ -183,14 +183,14 @@ typedef void (*CleanupListValue)(const void *value, void *cleanup_value_data); + /* Structure used to check the range of integer types.a */ + typedef struct CheckIntegerRange { + CheckParameterEvent event; +- LargestIntegralType minimum; +- LargestIntegralType maximum; ++ uintmax_t minimum; ++ uintmax_t maximum; + } CheckIntegerRange; + + /* Structure used to check whether an integer value is in a set. */ + typedef struct CheckIntegerSet { + CheckParameterEvent event; +- const LargestIntegralType *set; ++ const uintmax_t *set; + size_t size_of_set; + } CheckIntegerSet; + +@@ -702,7 +702,7 @@ static void free_value(const void *value, void *cleanup_value_data) { + static void free_symbol_map_value(const void *value, + void *cleanup_value_data) { + SymbolMapValue * const map_value = (SymbolMapValue*)value; +- const LargestIntegralType children = cast_ptr_to_largest_integral_type(cleanup_value_data); ++ const uintmax_t children = cast_ptr_to_largest_integral_type(cleanup_value_data); + assert_non_null(value); + if (children == 0) { + list_free(&map_value->symbol_values_list_head, +@@ -947,14 +947,14 @@ static size_t check_for_leftover_values( + + + /* Get the next return value for the specified mock function. */ +-LargestIntegralType _mock(const char * const function, const char* const file, ++uintmax_t _mock(const char * const function, const char* const file, + const int line) { + void *result; + const int rc = get_symbol_value(&global_function_result_map_head, + &function, 1, &result); + if (rc) { + SymbolValue * const symbol = (SymbolValue*)result; +- const LargestIntegralType value = symbol->value; ++ const uintmax_t value = symbol->value; + global_last_mock_value_location = symbol->location; + if (rc == 1) { + free(symbol); +@@ -1055,7 +1055,7 @@ void _function_called(const char *const function, + + /* Add a return value for the specified mock function name. */ + void _will_return(const char * const function_name, const char * const file, +- const int line, const LargestIntegralType value, ++ const int line, const uintmax_t value, + const int count) { + SymbolValue * const return_value = + (SymbolValue*)malloc(sizeof(*return_value)); +@@ -1077,7 +1077,7 @@ void _expect_check( + const char* const function, const char* const parameter, + const char* const file, const int line, + const CheckParameterValue check_function, +- const LargestIntegralType check_data, ++ const uintmax_t check_data, + CheckParameterEvent * const event, const int count) { + CheckParameterEvent * const check = + event ? event : (CheckParameterEvent*)malloc(sizeof(*check)); +@@ -1241,8 +1241,8 @@ static int double_values_not_equal_display_error(const double left, + + /* Returns 1 if the specified values are equal. If the values are not equal + * an error is displayed and 0 is returned. */ +-static int values_equal_display_error(const LargestIntegralType left, +- const LargestIntegralType right) { ++static int values_equal_display_error(const uintmax_t left, ++ const uintmax_t right) { + const int equal = left == right; + if (!equal) { + cm_print_error(LargestIntegralTypePrintfFormat " != " +@@ -1254,8 +1254,8 @@ static int values_equal_display_error(const LargestIntegralType left, + /* + * Returns 1 if the specified values are not equal. If the values are equal + * an error is displayed and 0 is returned. */ +-static int values_not_equal_display_error(const LargestIntegralType left, +- const LargestIntegralType right) { ++static int values_not_equal_display_error(const uintmax_t left, ++ const uintmax_t right) { + const int not_equal = left != right; + if (!not_equal) { + cm_print_error(LargestIntegralTypePrintfFormat " == " +@@ -1273,12 +1273,12 @@ static int values_not_equal_display_error(const LargestIntegralType left, + * displayed. + */ + static int value_in_set_display_error( +- const LargestIntegralType value, ++ const uintmax_t value, + const CheckIntegerSet * const check_integer_set, const int invert) { + int succeeded = invert; + assert_non_null(check_integer_set); + { +- const LargestIntegralType * const set = check_integer_set->set; ++ const uintmax_t * const set = check_integer_set->set; + const size_t size_of_set = check_integer_set->size_of_set; + size_t i; + for (i = 0; i < size_of_set; i++) { +@@ -1310,8 +1310,8 @@ static int value_in_set_display_error( + * specified range an error is displayed and 0 is returned. + */ + static int integer_in_range_display_error( +- const LargestIntegralType value, const LargestIntegralType range_min, +- const LargestIntegralType range_max) { ++ const uintmax_t value, const uintmax_t range_min, ++ const uintmax_t range_max) { + if (value >= range_min && value <= range_max) { + return 1; + } +@@ -1330,8 +1330,8 @@ static int integer_in_range_display_error( + * specified range an error is displayed and zero is returned. + */ + static int integer_not_in_range_display_error( +- const LargestIntegralType value, const LargestIntegralType range_min, +- const LargestIntegralType range_max) { ++ const uintmax_t value, const uintmax_t range_min, ++ const uintmax_t range_max) { + if (value < range_min || value > range_max) { + return 1; + } +@@ -1431,8 +1431,8 @@ static int memory_not_equal_display_error( + + + /* CheckParameterValue callback to check whether a value is within a set. */ +-static int check_in_set(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_in_set(const uintmax_t value, ++ const uintmax_t check_value_data) { + return value_in_set_display_error(value, + cast_largest_integral_type_to_pointer(CheckIntegerSet*, + check_value_data), 0); +@@ -1440,8 +1440,8 @@ static int check_in_set(const LargestIntegralType value, + + + /* CheckParameterValue callback to check whether a value isn't within a set. */ +-static int check_not_in_set(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_not_in_set(const uintmax_t value, ++ const uintmax_t check_value_data) { + return value_in_set_display_error(value, + cast_largest_integral_type_to_pointer(CheckIntegerSet*, + check_value_data), 1); +@@ -1453,12 +1453,12 @@ static int check_not_in_set(const LargestIntegralType value, + static void expect_set( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType values[], const size_t number_of_values, ++ const uintmax_t values[], const size_t number_of_values, + const CheckParameterValue check_function, const int count) { + CheckIntegerSet * const check_integer_set = + (CheckIntegerSet*)malloc(sizeof(*check_integer_set) + + (sizeof(values[0]) * number_of_values)); +- LargestIntegralType * const set = (LargestIntegralType*)( ++ uintmax_t * const set = (uintmax_t*)( + check_integer_set + 1); + declare_initialize_value_pointer_pointer(check_data, check_integer_set); + assert_non_null(values); +@@ -1476,7 +1476,7 @@ static void expect_set( + void _expect_in_set( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType values[], const size_t number_of_values, ++ const uintmax_t values[], const size_t number_of_values, + const int count) { + expect_set(function, parameter, file, line, values, number_of_values, + check_in_set, count); +@@ -1487,7 +1487,7 @@ void _expect_in_set( + void _expect_not_in_set( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType values[], const size_t number_of_values, ++ const uintmax_t values[], const size_t number_of_values, + const int count) { + expect_set(function, parameter, file, line, values, number_of_values, + check_not_in_set, count); +@@ -1495,8 +1495,8 @@ void _expect_not_in_set( + + + /* CheckParameterValue callback to check whether a value is within a range. */ +-static int check_in_range(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_in_range(const uintmax_t value, ++ const uintmax_t check_value_data) { + CheckIntegerRange * const check_integer_range = + cast_largest_integral_type_to_pointer(CheckIntegerRange*, + check_value_data); +@@ -1507,8 +1507,8 @@ static int check_in_range(const LargestIntegralType value, + + + /* CheckParameterValue callback to check whether a value is not within a range. */ +-static int check_not_in_range(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_not_in_range(const uintmax_t value, ++ const uintmax_t check_value_data) { + CheckIntegerRange * const check_integer_range = + cast_largest_integral_type_to_pointer(CheckIntegerRange*, + check_value_data); +@@ -1523,7 +1523,7 @@ static int check_not_in_range(const LargestIntegralType value, + static void expect_range( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType minimum, const LargestIntegralType maximum, ++ const uintmax_t minimum, const uintmax_t maximum, + const CheckParameterValue check_function, const int count) { + CheckIntegerRange * const check_integer_range = + (CheckIntegerRange*)malloc(sizeof(*check_integer_range)); +@@ -1539,7 +1539,7 @@ static void expect_range( + void _expect_in_range( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType minimum, const LargestIntegralType maximum, ++ const uintmax_t minimum, const uintmax_t maximum, + const int count) { + expect_range(function, parameter, file, line, minimum, maximum, + check_in_range, count); +@@ -1550,7 +1550,7 @@ void _expect_in_range( + void _expect_not_in_range( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType minimum, const LargestIntegralType maximum, ++ const uintmax_t minimum, const uintmax_t maximum, + const int count) { + expect_range(function, parameter, file, line, minimum, maximum, + check_not_in_range, count); +@@ -1559,8 +1559,8 @@ void _expect_not_in_range( + + /* CheckParameterValue callback to check whether a value is equal to an + * expected value. */ +-static int check_value(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_value(const uintmax_t value, ++ const uintmax_t check_value_data) { + return values_equal_display_error(value, check_value_data); + } + +@@ -1569,7 +1569,7 @@ static int check_value(const LargestIntegralType value, + void _expect_value( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType value, const int count) { ++ const uintmax_t value, const int count) { + _expect_check(function, parameter, file, line, check_value, value, NULL, + count); + } +@@ -1577,8 +1577,8 @@ void _expect_value( + + /* CheckParameterValue callback to check whether a value is not equal to an + * expected value. */ +-static int check_not_value(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_not_value(const uintmax_t value, ++ const uintmax_t check_value_data) { + return values_not_equal_display_error(value, check_value_data); + } + +@@ -1587,15 +1587,15 @@ static int check_not_value(const LargestIntegralType value, + void _expect_not_value( + const char* const function, const char* const parameter, + const char* const file, const int line, +- const LargestIntegralType value, const int count) { ++ const uintmax_t value, const int count) { + _expect_check(function, parameter, file, line, check_not_value, value, + NULL, count); + } + + + /* CheckParameterValue callback to check whether a parameter equals a string. */ +-static int check_string(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_string(const uintmax_t value, ++ const uintmax_t check_value_data) { + return string_equal_display_error( + cast_largest_integral_type_to_pointer(char*, value), + cast_largest_integral_type_to_pointer(char*, check_value_data)); +@@ -1616,8 +1616,8 @@ void _expect_string( + + /* CheckParameterValue callback to check whether a parameter is not equals to + * a string. */ +-static int check_not_string(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_not_string(const uintmax_t value, ++ const uintmax_t check_value_data) { + return string_not_equal_display_error( + cast_largest_integral_type_to_pointer(char*, value), + cast_largest_integral_type_to_pointer(char*, check_value_data)); +@@ -1637,8 +1637,8 @@ void _expect_not_string( + + /* CheckParameterValue callback to check whether a parameter equals an area of + * memory. */ +-static int check_memory(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_memory(const uintmax_t value, ++ const uintmax_t check_value_data) { + CheckMemoryData * const check = cast_largest_integral_type_to_pointer( + CheckMemoryData*, check_value_data); + assert_non_null(check); +@@ -1681,8 +1681,8 @@ void _expect_memory( + + /* CheckParameterValue callback to check whether a parameter is not equal to + * an area of memory. */ +-static int check_not_memory(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_not_memory(const uintmax_t value, ++ const uintmax_t check_value_data) { + CheckMemoryData * const check = cast_largest_integral_type_to_pointer( + CheckMemoryData*, check_value_data); + assert_non_null(check); +@@ -1704,8 +1704,8 @@ void _expect_not_memory( + + + /* CheckParameterValue callback that always returns 1. */ +-static int check_any(const LargestIntegralType value, +- const LargestIntegralType check_value_data) { ++static int check_any(const uintmax_t value, ++ const uintmax_t check_value_data) { + (void)value; + (void)check_value_data; + return 1; +@@ -1723,7 +1723,7 @@ void _expect_any( + + void _check_expected( + const char * const function_name, const char * const parameter_name, +- const char* file, const int line, const LargestIntegralType value) { ++ const char* file, const int line, const uintmax_t value) { + void *result = NULL; + const char* symbols[] = {function_name, parameter_name}; + const int rc = get_symbol_value(&global_function_parameter_map_head, +@@ -1780,7 +1780,7 @@ void mock_assert(const int result, const char* const expression, + } + + +-void _assert_true(const LargestIntegralType result, ++void _assert_true(const uintmax_t result, + const char * const expression, + const char * const file, const int line) { + if (!result) { +@@ -1789,14 +1789,14 @@ void _assert_true(const LargestIntegralType result, + } + } + +-void _assert_return_code(const LargestIntegralType result, ++void _assert_return_code(const uintmax_t result, + size_t rlen, +- const LargestIntegralType error, ++ const uintmax_t error, + const char * const expression, + const char * const file, + const int line) + { +- LargestIntegralType valmax; ++ uintmax_t valmax; + + + switch (rlen) { +@@ -1872,7 +1872,7 @@ void _assert_double_not_equal(const double a, + } + + void _assert_int_equal( +- const LargestIntegralType a, const LargestIntegralType b, ++ const uintmax_t a, const uintmax_t b, + const char * const file, const int line) { + if (!values_equal_display_error(a, b)) { + _fail(file, line); +@@ -1881,7 +1881,7 @@ void _assert_int_equal( + + + void _assert_int_not_equal( +- const LargestIntegralType a, const LargestIntegralType b, ++ const uintmax_t a, const uintmax_t b, + const char * const file, const int line) { + if (!values_not_equal_display_error(a, b)) { + _fail(file, line); +@@ -1925,8 +1925,8 @@ void _assert_memory_not_equal(const void * const a, const void * const b, + + + void _assert_in_range( +- const LargestIntegralType value, const LargestIntegralType minimum, +- const LargestIntegralType maximum, const char* const file, ++ const uintmax_t value, const uintmax_t minimum, ++ const uintmax_t maximum, const char* const file, + const int line) { + if (!integer_in_range_display_error(value, minimum, maximum)) { + _fail(file, line); +@@ -1934,16 +1934,16 @@ void _assert_in_range( + } + + void _assert_not_in_range( +- const LargestIntegralType value, const LargestIntegralType minimum, +- const LargestIntegralType maximum, const char* const file, ++ const uintmax_t value, const uintmax_t minimum, ++ const uintmax_t maximum, const char* const file, + const int line) { + if (!integer_not_in_range_display_error(value, minimum, maximum)) { + _fail(file, line); + } + } + +-void _assert_in_set(const LargestIntegralType value, +- const LargestIntegralType values[], ++void _assert_in_set(const uintmax_t value, ++ const uintmax_t values[], + const size_t number_of_values, const char* const file, + const int line) { + CheckIntegerSet check_integer_set; +@@ -1954,8 +1954,8 @@ void _assert_in_set(const LargestIntegralType value, + } + } + +-void _assert_not_in_set(const LargestIntegralType value, +- const LargestIntegralType values[], ++void _assert_not_in_set(const uintmax_t value, ++ const uintmax_t values[], + const size_t number_of_values, const char* const file, + const int line) { + CheckIntegerSet check_integer_set; +@@ -3079,8 +3079,8 @@ int _cmocka_run_group_tests(const char *group_name, + size_t i; + int rc; + +- /* Make sure LargestIntegralType is at least the size of a pointer. */ +- assert_true(sizeof(LargestIntegralType) >= sizeof(void*)); ++ /* Make sure uintmax_t is at least the size of a pointer. */ ++ assert_true(sizeof(uintmax_t) >= sizeof(void*)); + + cm_tests = libc_calloc(1, sizeof(struct CMUnitTestState) * num_tests); + if (cm_tests == NULL) { +@@ -3370,8 +3370,8 @@ int _run_tests(const UnitTest * const tests, const size_t number_of_tests) { + print_message("[==========] Running %"PRIdS " test(s).\n", + number_of_tests - setups - teardowns); + +- /* Make sure LargestIntegralType is at least the size of a pointer. */ +- assert_true(sizeof(LargestIntegralType) >= sizeof(void*)); ++ /* Make sure uintmax_t is at least the size of a pointer. */ ++ assert_true(sizeof(uintmax_t) >= sizeof(void*)); + + while (current_test < number_of_tests) { + const ListNode *test_check_point = NULL; +diff --git a/tests/test_alloc.c b/tests/test_alloc.c +index 966814a..3948084 100644 +--- tests/test_alloc.c ++++ tests/test_alloc.c +@@ -3,6 +3,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + #include <cmocka_private.h> + +diff --git a/tests/test_assert_macros.c b/tests/test_assert_macros.c +index 1a00880..3a7a0fe 100644 +--- tests/test_assert_macros.c ++++ tests/test_assert_macros.c +@@ -3,6 +3,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + #include <cmocka_private.h> + +diff --git a/tests/test_assert_macros_fail.c b/tests/test_assert_macros_fail.c +index aea919a..fc354d4 100644 +--- tests/test_assert_macros_fail.c ++++ tests/test_assert_macros_fail.c +@@ -3,6 +3,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + #include <cmocka_private.h> + +diff --git a/tests/test_basics.c b/tests/test_basics.c +inde 1bb493f..9866d81 100644 +--- tests/test_basics.c ++++ tests/test_basics.c +@@ -20,6 +20,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + static int setup(void **state) { +diff --git a/tests/test_cmockery.c b/tests/test_cmockery.c +index 83a7451..027b1ac 100644 +--- tests/test_cmockery.c ++++ tests/test_cmockery.c +@@ -17,6 +17,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmockery/cmockery.h> + + /* A test case that does nothing and succeeds. */ +diff --git a/tests/test_double_macros.c b/tests/test_double_macros.c +index 138c579..b892272 100644 +--- tests/test_double_macros.c ++++ tests/test_double_macros.c +@@ -20,6 +20,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + /* A test case that does check if double is equal. */ +diff --git a/tests/test_exception_handler.c b/tests/test_exception_handler.c +index 23c19cd..769eed8 100644 +--- tests/test_exception_handler.c ++++ tests/test_exception_handler.c +@@ -1,6 +1,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + #include <signal.h> +diff --git a/tests/test_fixtures.c b/tests/test_fixtures.c +index 6d39487..e6d05d1 100644 +--- tests/test_fixtures.c ++++ tests/test_fixtures.c +@@ -1,6 +1,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + #include <stdlib.h> +diff --git a/tests/test_float_macros.c b/tests/test_float_macros.c +index a9c7251..6ce8906 100644 +--- tests/test_float_macros.c ++++ tests/test_float_macros.c +@@ -20,6 +20,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + /* A test case that does check if float is equal. */ +diff --git a/tests/test_group_fixtures.c b/tests/test_group_fixtures.c +index 64f0ab7..e9b4ad3 100644 +--- tests/test_group_fixtures.c ++++ tests/test_group_fixtures.c +@@ -4,6 +4,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + static int group_setup(void **state) +diff --git a/tests/test_group_setup_assert.c b/tests/test_group_setup_assert.c +index eef61f8..92f88b6 100644 +--- tests/test_group_setup_assert.c ++++ tests/test_group_setup_assert.c +@@ -4,6 +4,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + static int group_setup_failing(void **state) +diff --git a/tests/test_group_setup_fail.c b/tests/test_group_setup_fail.c +index 7815c03..1f2e701 100644 +--- tests/test_group_setup_fail.c ++++ tests/test_group_setup_fail.c +@@ -4,6 +4,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + static int group_setup_failing(void **state) +diff --git a/tests/test_groups.c b/tests/test_groups.c +index af9e2b8..ea936c0 100644 +--- tests/test_groups.c ++++ tests/test_groups.c +@@ -20,6 +20,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + static int setup(void **state) { +diff --git a/tests/test_ordering.c b/tests/test_ordering.c +index 817c0ba..fab2568 100644 +--- tests/test_ordering.c ++++ tests/test_ordering.c +@@ -3,6 +3,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + #include <cmocka_private.h> + +diff --git a/tests/test_ordering_fail.c b/tests/test_ordering_fail.c +index 652f5ad..88b4e29 100644 +--- tests/test_ordering_fail.c ++++ tests/test_ordering_fail.c +@@ -3,6 +3,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + #include <cmocka_private.h> + +diff --git a/tests/test_returns.c b/tests/test_returns.c +index b9370c9..574fa00 100644 +--- tests/test_returns.c ++++ tests/test_returns.c +@@ -3,6 +3,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + #include <cmocka_private.h> + +diff --git a/tests/test_returns_fail.c b/tests/test_returns_fail.c +index 81197d3..fa7f291 100644 +--- tests/test_returns_fail.c ++++ tests/test_returns_fail.c +@@ -3,6 +3,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + #include <cmocka_private.h> + +diff --git a/tests/test_setup_fail.c b/tests/test_setup_fail.c +index e3f8df8..9affaa6 100644 +--- tests/test_setup_fail.c ++++ tests/test_setup_fail.c +@@ -3,6 +3,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + static int setup_fail(void **state) { +diff --git a/tests/test_skip.c b/tests/test_skip.c +index 127161a..0a6953d 100644 +--- tests/test_skip.c ++++ tests/test_skip.c +@@ -17,6 +17,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + /* A test case that does check if an int is equal. */ +diff --git a/tests/test_skip_filter.c b/tests/test_skip_filter.c +index e40209e..56dc262 100644 +--- tests/test_skip_filter.c ++++ tests/test_skip_filter.c +@@ -19,6 +19,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + static void test_skip1(void **state) +diff --git a/tests/test_strmatch.c b/tests/test_strmatch.c +index f2d966b..f8d088c 100644 +--- tests/test_strmatch.c ++++ tests/test_strmatch.c +@@ -19,6 +19,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + #include "../src/cmocka.c" +diff --git a/tests/test_wildcard.c b/tests/test_wildcard.c +index 10ee195..3b85bb3 100644 +--- tests/test_wildcard.c ++++ tests/test_wildcard.c +@@ -17,6 +17,7 @@ + #include <stdarg.h> + #include <stddef.h> + #include <setjmp.h> ++#include <stdint.h> + #include <cmocka.h> + + static void test_ok1(void **state) diff --git a/sysutils/cmocka/files/patch-include_cmocka.h b/sysutils/cmocka/files/patch-include_cmocka.h deleted file mode 100644 index 0e7a5ae749e3..000000000000 --- a/sysutils/cmocka/files/patch-include_cmocka.h +++ /dev/null @@ -1,19 +0,0 @@ ---- include/cmocka.h.orig 2018-09-06 06:15:11 UTC -+++ include/cmocka.h -@@ -111,7 +111,7 @@ typedef uintmax_t LargestIntegralType; - ((LargestIntegralType)(value)) - - /* Smallest integral type capable of holding a pointer. */ --#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) -+#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(_UINTPTR_T_DECLARED) - # if defined(_WIN32) - /* WIN32 is an ILP32 platform */ - typedef unsigned int uintptr_t; -@@ -137,6 +137,7 @@ typedef uintmax_t LargestIntegralType; - - # define _UINTPTR_T - # define _UINTPTR_T_DEFINED -+# define _UINTPTR_T_DECLARED - #endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */ - - /* Perform an unsigned cast to uintptr_t. */ diff --git a/sysutils/cmocka/pkg-plist b/sysutils/cmocka/pkg-plist new file mode 100644 index 000000000000..bfdf2cf649db --- /dev/null +++ b/sysutils/cmocka/pkg-plist @@ -0,0 +1,9 @@ +include/cmocka.h +include/cmocka_pbc.h +lib/cmake/cmocka/cmocka-config-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/cmocka/cmocka-config-version.cmake +lib/cmake/cmocka/cmocka-config.cmake +lib/libcmocka.so +lib/libcmocka.so.0 +lib/libcmocka.so.0.8.0 +libdata/pkgconfig/cmocka.pc diff --git a/sysutils/cpupdate/Makefile b/sysutils/cpupdate/Makefile index 9e37d8fdd51e..2af68aa68019 100644 --- a/sysutils/cpupdate/Makefile +++ b/sysutils/cpupdate/Makefile @@ -1,6 +1,6 @@ PORTNAME= cpupdate DISTVERSION= g20180513 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= sysutils MAINTAINER= eugen@FreeBSD.org @@ -34,10 +34,10 @@ GH_TAGNAME= 48e42d5 PLIST_FILES= sbin/${PORTNAME} share/man/man8/${PORTNAME}.8.gz -# MCE DB r312 +# MCE DB r332 CPM_ACCOUNT= platomav CPM_PROJECT= CPUMicrocodes -CPM_TAGNAME= 7d439dd +CPM_TAGNAME= 2bcc2d8 OPTIONS_DEFINE= CPM INTEL CPM_DESC= Download platomav/CPUMicrocodes collection @@ -48,7 +48,7 @@ CPM_PACK?= ${CPM_ACCOUNT}-${CPM_PROJECT}-${CPM_TAGNAME}_GH0.tar.gz CPM_DIR= ${WRKDIR}/${CPM_PROJECT}-${CPM_TAGNAME} CPM_DATADIR= ${DATADIR}/CPUMicrocodes/secondary/Intel -INTEL_PACK= microcode-20241112 +INTEL_PACK= microcode-20250512 INTEL_DESC= Download Intel microcode pack ${INTEL_PACK} INTEL_PROJECT= Intel-Linux-Processor-Microcode-Data-Files INTEL_MASTER_SITES= https://codeload.github.com/intel/${INTEL_PROJECT}/tar.gz/:intel diff --git a/sysutils/cpupdate/distinfo b/sysutils/cpupdate/distinfo index 0b439b7030aa..6471c007a185 100644 --- a/sysutils/cpupdate/distinfo +++ b/sysutils/cpupdate/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1731442370 -SHA256 (microcode-20241112) = 37246208ef68039be752438c72400a688a2238df13a7f5282497c80be2d8366d -SIZE (microcode-20241112) = 12923653 +TIMESTAMP = 1747230739 +SHA256 (microcode-20250512) = 041af7d2f5791a47c1e914abd7d6255de4d4fc61b0f8e49ada6ee7014bcc3614 +SIZE (microcode-20250512) = 14985022 SHA256 (kernschmelze-cpupdate-g20180513-48e42d5_GH0.tar.gz) = d28582fe7edfb57da99fb2466417033ee619c32de9c6b5f1a5fae7d9be8253da SIZE (kernschmelze-cpupdate-g20180513-48e42d5_GH0.tar.gz) = 4566722 -SHA256 (platomav-CPUMicrocodes-7d439dd_GH0.tar.gz) = 0f1bbd9f14d9ae385a640c84e58e353cf644192e0c22dbd60ad20a58e9375b51 -SIZE (platomav-CPUMicrocodes-7d439dd_GH0.tar.gz) = 27372480 +SHA256 (platomav-CPUMicrocodes-2bcc2d8_GH0.tar.gz) = 85cc2c012cae9bc1916fb70652cd05d616cd08eb35969cbc19e29ed5f5a7fba1 +SIZE (platomav-CPUMicrocodes-2bcc2d8_GH0.tar.gz) = 31583994 diff --git a/sysutils/eksctl/Makefile b/sysutils/eksctl/Makefile index af0e8ce8ee4e..b95da44a879c 100644 --- a/sysutils/eksctl/Makefile +++ b/sysutils/eksctl/Makefile @@ -1,5 +1,5 @@ PORTNAME= eksctl -PORTVERSION= 0.207.0 +PORTVERSION= 0.208.0 DISTVERSIONPREFIX= v CATEGORIES= sysutils @@ -17,7 +17,7 @@ PLIST_FILES= bin/${PORTNAME} GO_MODULE= github.com/eksctl-io/${PORTNAME} GO_TARGET= ./cmd/${PORTNAME} -GO_BUILDFLAGS= -ldflags="-X github.com/weaveworks/eksctl/pkg/version.gitCommit=87e1d6e6eabc \ +GO_BUILDFLAGS= -ldflags="-X github.com/weaveworks/eksctl/pkg/version.gitCommit=bcdd6ecb06ba \ -X github.com/weaveworks/eksctl/pkg/version.buildDate=$$(date +%Y-%m-%dT%H:%M:%SZ)" .include <bsd.port.mk> diff --git a/sysutils/eksctl/distinfo b/sysutils/eksctl/distinfo index 2967d2017be6..c3923f220ec9 100644 --- a/sysutils/eksctl/distinfo +++ b/sysutils/eksctl/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1743802961 -SHA256 (go/sysutils_eksctl/eksctl-v0.207.0/v0.207.0.mod) = 3cd6a460d0bb2ccffc8e7165f1418e4a2dbc2eb5b1c70f1be88e656d2aae6c06 -SIZE (go/sysutils_eksctl/eksctl-v0.207.0/v0.207.0.mod) = 24577 -SHA256 (go/sysutils_eksctl/eksctl-v0.207.0/v0.207.0.zip) = 8865f8c3a0f256ad9b19fa63dd13bd7f98904c0de878a1a4c1928f1ef84a12f4 -SIZE (go/sysutils_eksctl/eksctl-v0.207.0/v0.207.0.zip) = 13751745 +TIMESTAMP = 1747339882 +SHA256 (go/sysutils_eksctl/eksctl-v0.208.0/v0.208.0.mod) = 45258565727b1e20400216f9cc485c5d8f90ed79f3686bd827f6fab5e5d3a23c +SIZE (go/sysutils_eksctl/eksctl-v0.208.0/v0.208.0.mod) = 24577 +SHA256 (go/sysutils_eksctl/eksctl-v0.208.0/v0.208.0.zip) = 90b3474a4b99bc3e058756a9bcc816ddc365e2a7e954ee53ee31fca3c737132e +SIZE (go/sysutils_eksctl/eksctl-v0.208.0/v0.208.0.zip) = 13758328 diff --git a/sysutils/fastfetch/Makefile b/sysutils/fastfetch/Makefile index 40a4c934ec25..da85017f7c06 100644 --- a/sysutils/fastfetch/Makefile +++ b/sysutils/fastfetch/Makefile @@ -1,5 +1,5 @@ PORTNAME= fastfetch -DISTVERSION= 2.42.0 +DISTVERSION= 2.43.0 CATEGORIES= sysutils MAINTAINER= pkubaj@FreeBSD.org diff --git a/sysutils/fastfetch/distinfo b/sysutils/fastfetch/distinfo index 4806dc109aef..186f86ab9e81 100644 --- a/sysutils/fastfetch/distinfo +++ b/sysutils/fastfetch/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745925528 -SHA256 (fastfetch-cli-fastfetch-2.42.0_GH0.tar.gz) = 9f94fdbe0642b2402517bba2fff4dd31099649d4e066f4c39b5b728cc3627f01 -SIZE (fastfetch-cli-fastfetch-2.42.0_GH0.tar.gz) = 1282221 +TIMESTAMP = 1747220428 +SHA256 (fastfetch-cli-fastfetch-2.43.0_GH0.tar.gz) = 192ddb57d021436d93ed8ad1fadaaeef20ce59a2296f31af65e12978b48feda5 +SIZE (fastfetch-cli-fastfetch-2.43.0_GH0.tar.gz) = 1301605 diff --git a/sysutils/fluent-bit/Makefile b/sysutils/fluent-bit/Makefile index 8f4c7be879eb..51514141edf4 100644 --- a/sysutils/fluent-bit/Makefile +++ b/sysutils/fluent-bit/Makefile @@ -1,6 +1,6 @@ PORTNAME= fluent-bit DISTVERSIONPREFIX= v -DISTVERSION= 4.0.1 +DISTVERSION= 4.0.2 CATEGORIES= sysutils MAINTAINER= girgen@FreeBSD.org diff --git a/sysutils/fluent-bit/distinfo b/sysutils/fluent-bit/distinfo index 8897456be540..4d8eac98534e 100644 --- a/sysutils/fluent-bit/distinfo +++ b/sysutils/fluent-bit/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745517768 -SHA256 (fluent-fluent-bit-v4.0.1_GH0.tar.gz) = 9efbc1ef6fb6d2c63f218c01c6c2323f3e1cdc336b815277a5b0f9f2e1acb052 -SIZE (fluent-fluent-bit-v4.0.1_GH0.tar.gz) = 32928399 +TIMESTAMP = 1747301106 +SHA256 (fluent-fluent-bit-v4.0.2_GH0.tar.gz) = aa0577ba7251081c8d5398b2a905b5b0585bb657ca13b39a5e12931437516f08 +SIZE (fluent-fluent-bit-v4.0.2_GH0.tar.gz) = 32926587 diff --git a/sysutils/ipmitool/Makefile b/sysutils/ipmitool/Makefile index 259401ffafee..1f1d40910041 100644 --- a/sysutils/ipmitool/Makefile +++ b/sysutils/ipmitool/Makefile @@ -1,6 +1,6 @@ PORTNAME= ipmitool PORTVERSION= 1.8.19 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= sysutils MASTER_SITES= https://codeberg.org/IPMITool/${PORTNAME}/archive/:ipmi \ LOCAL/zi/:iana diff --git a/sysutils/ipmitool/files/patch-buffer-overrun-PR24 b/sysutils/ipmitool/files/patch-buffer-overrun-PR24 new file mode 100644 index 000000000000..21369ef063a1 --- /dev/null +++ b/sysutils/ipmitool/files/patch-buffer-overrun-PR24 @@ -0,0 +1,33 @@ +From b4bc5c335159b1c272e06dba98e2916e3ecc0462 Mon Sep 17 00:00:00 2001 +From: Howitzer105mm <howitzer105mm@noreply.codeberg.org> +Date: Tue, 26 Mar 2024 11:28:16 +0000 +Subject: [PATCH] open: Eliminate buffer overrun (#24) + +clangd reports a buffer overrun issue in `open` interface. + +The sprintf() used to fill ipmi_devfs2 requires 17 bytes to store the +null terminated string. The character buffer is only 16 bytes in +length. + +Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com> +Reviewed-on: https://codeberg.org/IPMITool/ipmitool/pulls/24 +Reviewed-by: Alexander Amelkin <alexander@amelkin.msk.ru> +Co-authored-by: Howitzer105mm <howitzer105mm@noreply.codeberg.org> +Co-committed-by: Howitzer105mm <howitzer105mm@noreply.codeberg.org> +--- + src/plugins/open/open.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/plugins/open/open.c src/plugins/open/open.c +index 39c8ea2..88cb6c3 100644 +--- src/plugins/open/open.c ++++ src/plugins/open/open.c +@@ -94,7 +94,7 @@ ipmi_openipmi_open(struct ipmi_intf *intf) + { + char ipmi_dev[16]; + char ipmi_devfs[16]; +- char ipmi_devfs2[16]; ++ char ipmi_devfs2[17]; + int devnum = 0; + + devnum = intf->devnum; diff --git a/sysutils/ipmitool/files/patch-dcmi b/sysutils/ipmitool/files/patch-dcmi new file mode 100644 index 000000000000..0fc588c31360 --- /dev/null +++ b/sysutils/ipmitool/files/patch-dcmi @@ -0,0 +1,57 @@ +From ab5ce5baff097ebb6e2a17a171858be213ee68d3 Mon Sep 17 00:00:00 2001 +From: Thang Tran <thuutran@amperecomputing.com> +Date: Tue, 11 Jul 2023 17:27:12 +0700 +Subject: [PATCH] dcmi: update parameters to read temperature sensors + +Issue: +When the system has number of CPU temperature sensors more than 8, +"ipmitool dcmi get_temp_reading" can not show all of sensors. + +Root cause: +To request to read multiple sensors for each message, ipmitool has to +send "Get Temperature Readings" command with the "Entity Instance" always +0 and the "Entity Instance Start" as the offset. But the current code is +sending "Entity Instance" is offset and "Entity Instance Start" always is +0. It makes ipmitool only read 1 sensor each time. Besides that, the +"Entity Instance Start" value starts from 1 (not 0), therefore, the +initialization has to be set to 1. + +Solution: +This commit corrects the order of parameters and the initialization of +"Entity Instance Start" byte. + +Resolves ipmitool/ipmitool#3 + +Tested: +1. Update BMC software to support 24 CPU temperature sensors +2. Request to read the temperature sensors +$ipmitool dcmi get_temp_reading +3. Display full 24 CPU temperature sensors. + +Signed-off-by: Thang Tran <thuutran@amperecomputing.com> +--- + lib/ipmi_dcmi.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git lib/ipmi_dcmi.c lib/ipmi_dcmi.c +index 8ed87a9..8cf6d66 100644 +--- lib/ipmi_dcmi.c ++++ lib/ipmi_dcmi.c +@@ -1595,7 +1595,7 @@ ipmi_dcmi_prnt_get_temp_readings(struct ipmi_intf * intf) + continue; + } + /* Total number of available instances for the Entity ID */ +- offset = 0; ++ offset = 1; + tota_inst = rsp->data[1]; + while (tota_inst > 0) { + get_inst = ((tota_inst / DCMI_MAX_BYTE_TEMP_READ_SIZE) ? +@@ -1603,7 +1603,7 @@ ipmi_dcmi_prnt_get_temp_readings(struct ipmi_intf * intf) + (tota_inst % DCMI_MAX_BYTE_TEMP_READ_SIZE)); + rsp = ipmi_dcmi_get_temp_readings(intf, + dcmi_temp_read_vals[i].val, +- offset, 0); ++ 0, offset); + if (chk_rsp(rsp)) { + continue; + } diff --git a/sysutils/ipmitool/files/patch-fru-PR368 b/sysutils/ipmitool/files/patch-fru-PR368 new file mode 100644 index 000000000000..bdef578767ec --- /dev/null +++ b/sysutils/ipmitool/files/patch-fru-PR368 @@ -0,0 +1,296 @@ +From 81011685ea5e8897f8c0971eca5feb93c6880f09 Mon Sep 17 00:00:00 2001 +From: Andrew Liao <andrew8325@outlook.com> +Date: Fri, 23 Sep 2022 10:11:04 +0800 +Subject: [PATCH 1/2] fru: Update the fru section offset only when they exist + (offset is not 0) + +--- + lib/ipmi_fru.c | 52 ++++++++++++++++++++++++++++---------------------- + 1 file changed, 29 insertions(+), 23 deletions(-) + +diff --git lib/ipmi_fru.c lib/ipmi_fru.c +index 3d1d8a1a..a994f3cf 100644 +--- lib/ipmi_fru.c ++++ lib/ipmi_fru.c +@@ -5052,35 +5052,41 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId, + /* Chassis type field */ + if (f_type == 'c' ) + { +- printf("Moving Section Chassis, from %i to %i\n", +- ((header.offset.board) * 8), +- ((header.offset.board + change_size_by_8) * 8) +- ); +- memcpy( +- (fru_data_new + ((header.offset.board + change_size_by_8) * 8)), +- (fru_data_old + (header.offset.board) * 8), +- board_len +- ); +- header.offset.board += change_size_by_8; ++ if (header.offset.board != 0) { ++ printf("Moving Section Chassis, from %i to %i\n", ++ ((header.offset.board) * 8), ++ ((header.offset.board + change_size_by_8) * 8) ++ ); ++ memcpy( ++ (fru_data_new + ((header.offset.board + change_size_by_8) * 8)), ++ (fru_data_old + (header.offset.board) * 8), ++ board_len ++ ); ++ header.offset.board += change_size_by_8; ++ } + } + /* Board type field */ + if ((f_type == 'c' ) || (f_type == 'b' )) + { +- printf("Moving Section Product, from %i to %i\n", +- ((header.offset.product) * 8), +- ((header.offset.product + change_size_by_8) * 8) +- ); +- memcpy( +- (fru_data_new + ((header.offset.product + change_size_by_8) * 8)), +- (fru_data_old + (header.offset.product) * 8), +- product_len +- ); +- header.offset.product += change_size_by_8; ++ if (header.offset.product != 0) { ++ printf("Moving Section Product, from %i to %i\n", ++ ((header.offset.product) * 8), ++ ((header.offset.product + change_size_by_8) * 8) ++ ); ++ memcpy( ++ (fru_data_new + ((header.offset.product + change_size_by_8) * 8)), ++ (fru_data_old + (header.offset.product) * 8), ++ product_len ++ ); ++ header.offset.product += change_size_by_8; ++ } + } + +- if ((f_type == 'c' ) || (f_type == 'b' ) || (f_type == 'p' )) { +- printf("Change multi offset from %d to %d\n", header.offset.multi, header.offset.multi + change_size_by_8); +- header.offset.multi += change_size_by_8; ++ if (header.offset.multi != 0) { ++ if ((f_type == 'c' ) || (f_type == 'b' ) || (f_type == 'p' )) { ++ printf("Change multi offset from %d to %d\n", header.offset.multi, header.offset.multi + change_size_by_8); ++ header.offset.multi += change_size_by_8; ++ } + } + + /* Adjust length of the section */ + +From fe70e7d81334ba37614ca5cd0580b2a91a969fc1 Mon Sep 17 00:00:00 2001 +From: "Andrew.Liao" <andrew.liao@quantatw.com> +Date: Mon, 26 Sep 2022 17:16:52 +0800 +Subject: [PATCH 2/2] fru: Adjust the fru section by their offset order + +Originally, ipmitool will assume the FRU section offset will follow a specific order, but this is not true (or not be defined in IPMI FRU SPEC). So change the FRU edit method, now it will: + - Calculate the section offset one by one according to their offset + - Ignore the FRU section offset if its offset is 00 (area does not exist) + - If the new FRU become smaller, reset the redundant data to 0 +Fixes #364 +--- + lib/ipmi_fru.c | 151 +++++++++++++++++++++++++++++-------------------- + 1 file changed, 90 insertions(+), 61 deletions(-) + +diff --git lib/ipmi_fru.c lib/ipmi_fru.c +index a994f3cf..3bf8416d 100644 +--- lib/ipmi_fru.c ++++ lib/ipmi_fru.c +@@ -4889,7 +4889,7 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId, + struct fru_info fru, struct fru_header header, + uint8_t f_type, uint8_t f_index, char *f_string) + { +- int i = 0; ++ int i = 0, j; + uint8_t *fru_data_old = NULL; + uint8_t *fru_data_new = NULL; + uint8_t *fru_area = NULL; +@@ -4901,6 +4901,7 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId, + uint32_t counter; + unsigned char cksum; + int rc = 1; ++ char section_list[] = {'i', 'c', 'b', 'p', 'm'}; + + fru_data_old = calloc( fru.size, sizeof(uint8_t) ); + +@@ -5018,8 +5019,10 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId, + 5) Check if section must be resize. This occur when padding length is not between 0 and 7 */ + if( (padding_len < 0) || (padding_len >= 8)) + { +- uint32_t remaining_offset = ((header.offset.product * 8) + product_len); +- int change_size_by_8; ++ int change_size_by_8, section_len; ++ char *name; ++ uint8_t *section_offset_by_8; ++ uint8_t last_offset_by_8 = 0; + + if(padding_len >= 8) + { +@@ -5044,48 +5047,85 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId, + #endif + + /* Must move sections */ +- /* Section that can be modified are as follow +- Chassis +- Board +- product */ ++ /* The IPMI FRU SPEC doesn't define the sequence of each FRU area. ++ * Therefore we need to find out the affected section in this change based on ++ * their current offset and adjust each of them. ++ */ + +- /* Chassis type field */ +- if (f_type == 'c' ) +- { +- if (header.offset.board != 0) { +- printf("Moving Section Chassis, from %i to %i\n", +- ((header.offset.board) * 8), +- ((header.offset.board + change_size_by_8) * 8) +- ); +- memcpy( +- (fru_data_new + ((header.offset.board + change_size_by_8) * 8)), +- (fru_data_old + (header.offset.board) * 8), +- board_len +- ); +- header.offset.board += change_size_by_8; ++ /* Find out the section behind the edited section and adjust them */ ++ for (j = 0; j < sizeof(section_list); j++) { ++ section_offset_by_8 = NULL; ++ name = NULL; ++ ++ switch (section_list[j]) { ++ case 'i': ++ section_offset_by_8 = &header.offset.internal; ++ name = "Internal"; ++ break; ++ case 'c': ++ section_offset_by_8 = &header.offset.chassis; ++ name = "Chassis"; ++ break; ++ case 'b': ++ section_offset_by_8 = &header.offset.board; ++ name = "Board"; ++ break; ++ case 'p': ++ section_offset_by_8 = &header.offset.product; ++ name = "Product"; ++ break; ++ case 'm': ++ section_offset_by_8 = &header.offset.multi; ++ name = "MitiRecord"; ++ break; ++ default: ++ /* Should not go into here */ ++ break; + } +- } +- /* Board type field */ +- if ((f_type == 'c' ) || (f_type == 'b' )) +- { +- if (header.offset.product != 0) { +- printf("Moving Section Product, from %i to %i\n", +- ((header.offset.product) * 8), +- ((header.offset.product + change_size_by_8) * 8) ++ ++ /* Should never happened */ ++ if (section_offset_by_8 == NULL || name == NULL) { ++ continue; ++ } ++ ++ /* Ignore the section that doesn't exist */ ++ if (*section_offset_by_8 == 0) { ++ continue; ++ } ++ ++ /* Store the last offset in case we need to reset the last part */ ++ if (last_offset_by_8 < *section_offset_by_8) { ++ last_offset_by_8 = *section_offset_by_8; ++ } ++ ++ /* Adjust the section offset that locates behind the current edit section */ ++ if (*section_offset_by_8 > (header_offset / 8)) { ++ ++ /* Make sure the adjusted offset range is still inside the FRU field */ ++ section_len = *(fru_data_old + (*section_offset_by_8 * 8) + 1) * 8; ++ if (((*section_offset_by_8 * 8) + section_len + (change_size_by_8 * 8)) > fru.size) ++ { ++ /* Return error if oversize */ ++ printf("Internal error, section %s out of FRU field. %i > %i\n", ++ name, ++ ((*section_offset_by_8 * 8) + section_len + (change_size_by_8 * 8)), ++ fru.size); ++ rc = -1; ++ goto ipmi_fru_set_field_string_rebuild_out; ++ } ++ ++ /* Copy the section to adjusted offset */ ++ printf("Moving Section %s, from %i to %i\n", ++ name, ++ ((*section_offset_by_8) * 8), ++ ((*section_offset_by_8 + change_size_by_8) * 8) + ); + memcpy( +- (fru_data_new + ((header.offset.product + change_size_by_8) * 8)), +- (fru_data_old + (header.offset.product) * 8), +- product_len ++ (fru_data_new + ((*section_offset_by_8 + change_size_by_8) * 8)), ++ (fru_data_old + (*section_offset_by_8) * 8), ++ section_len + ); +- header.offset.product += change_size_by_8; +- } +- } +- +- if (header.offset.multi != 0) { +- if ((f_type == 'c' ) || (f_type == 'b' ) || (f_type == 'p' )) { +- printf("Change multi offset from %d to %d\n", header.offset.multi, header.offset.multi + change_size_by_8); +- header.offset.multi += change_size_by_8; ++ *section_offset_by_8 += change_size_by_8; + } + } + +@@ -5101,7 +5141,6 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId, + else if( f_type == 'p') + { + *(fru_data_new + product_offset + 1) += change_size_by_8; +- product_len_new = *(fru_data_new + product_offset + 1) * 8; + } + + /* Rebuild Header checksum */ +@@ -5116,26 +5155,16 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId, + memcpy(fru_data_new, pfru_header, sizeof(struct fru_header)); + } + +- /* Move remaining sections in 1 copy */ +- printf("Moving Remaining Bytes (Multi-Rec , etc..), from %i to %i\n", +- remaining_offset, +- ((header.offset.product) * 8) + product_len_new +- ); +- if(((header.offset.product * 8) + product_len_new - remaining_offset) < 0) +- { +- memcpy( +- fru_data_new + (header.offset.product * 8) + product_len_new, +- fru_data_old + remaining_offset, +- fru.size - remaining_offset +- ); +- } +- else +- { +- memcpy( +- fru_data_new + (header.offset.product * 8) + product_len_new, +- fru_data_old + remaining_offset, +- fru.size - ((header.offset.product * 8) + product_len_new) +- ); ++ /* Reset the last part to 0 if the new FRU is smaller them old one */ ++ if (change_size_by_8 < 0) { ++ section_len = *(fru_data_old + (last_offset_by_8 * 8) + 1) * 8; ++ ++ /* Get the reset start offset and reset size */ ++ int reset_start = ((last_offset_by_8 * 8) + section_len + (change_size_by_8 * 8)); ++ int reset_size = (change_size_by_8 * (-1)) * 8; ++ ++ printf("Reset to 0 from %i to %i\n", reset_start, reset_start + reset_size); ++ memset(fru_data_new + reset_start, 0, reset_size); + } + } + diff --git a/sysutils/ipmitool/files/patch-lan-PR389 b/sysutils/ipmitool/files/patch-lan-PR389 new file mode 100644 index 000000000000..1684d43d5be4 --- /dev/null +++ b/sysutils/ipmitool/files/patch-lan-PR389 @@ -0,0 +1,33 @@ +From b293d87cac0183ca6872c450cb87d2dc873359a3 Mon Sep 17 00:00:00 2001 +From: Daniel Van Allen <dvanallen@google.com> +Date: Wed, 21 Dec 2022 14:38:47 -0500 +Subject: [PATCH] lanp: Fix error response from Unsupported Parameter lookup + +Return a pointer to the lan_param instead of NULL in the case when the +parameter is not supported. + +Resolves ipmitool/ipmitool#388 +Signed-off-by Daniel Van Allen <dvanallen@google.com> +--- + lib/ipmi_lanp.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git lib/ipmi_lanp.c lib/ipmi_lanp.c +index 16c0d9a9..49dc697f 100644 +--- lib/ipmi_lanp.c ++++ lib/ipmi_lanp.c +@@ -236,8 +236,12 @@ get_lan_param_select(struct ipmi_intf *intf, uint8_t chan, int param, int select + /* We treat them as valid but empty response */ + p->data = NULL; + p->data_len = 0; +- rc = p; +- /* fall through */ ++ lprintf(LOG_INFO, "Get LAN Parameter '%s' command unsupported: %s", ++ p->desc, ++ specific_val2str(rsp->ccode, ++ get_lan_cc_vals, ++ completion_code_vals)); ++ return p; + default: + /* other completion codes are treated as error */ + lprintf(LOG_INFO, "Get LAN Parameter '%s' command failed: %s", diff --git a/sysutils/ipmitool/files/patch-lan-print b/sysutils/ipmitool/files/patch-lan-print new file mode 100644 index 000000000000..858e27954b66 --- /dev/null +++ b/sysutils/ipmitool/files/patch-lan-print @@ -0,0 +1,36 @@ +From 137aeb64cbb493d61d6945cac156aba5f0510780 Mon Sep 17 00:00:00 2001 +From: Miao Wang <shankerwangmiao@gmail.com> +Date: Sat, 10 Feb 2024 12:51:15 +0800 +Subject: [PATCH] lan: fix lan print fails on unsupported parameters + +After upgrading to ipmitool 1.8.19, ipmitool lan print can only print out +`Set in Progress` and other parameters are missing on our servers. After +bisecting, commit: + + 351dad24a26f lan: Add processing of get/set specific CCs + +is identified to be the source of the problem, where the function +get_lan_param_select is expected to consider severial error codes it +receives as empty response. It then constructs an empty response in `p` +and assigns `p` to `rc` and the control flow falls through to the +default case, which prints the error code in verbose mode and should +return `rc` instead of `NULL`. + +Signed-off-by: Miao Wang <shankerwangmiao@gmail.com> +--- + lib/ipmi_lanp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git lib/ipmi_lanp.c lib/ipmi_lanp.c +index fe0046f..26e7365 100644 +--- lib/ipmi_lanp.c ++++ lib/ipmi_lanp.c +@@ -245,7 +245,7 @@ get_lan_param_select(struct ipmi_intf *intf, uint8_t chan, int param, int select + specific_val2str(rsp->ccode, + get_lan_cc_vals, + completion_code_vals)); +- return NULL; ++ return rc; + } + + p->data = rsp->data + 1; diff --git a/sysutils/ipmitool/files/patch-lib_ipmi_sdr.c b/sysutils/ipmitool/files/patch-lib_ipmi_sdr.c new file mode 100644 index 000000000000..961168c879d3 --- /dev/null +++ b/sysutils/ipmitool/files/patch-lib_ipmi_sdr.c @@ -0,0 +1,35 @@ +Description: Fix soensor reading +Author: mareedu srinivasa rao +Origin: upstream, https://sourceforge.net/p/ipmitool/bugs/490/ +Bug: https://sourceforge.net/p/ipmitool/bugs/490/ +Bug-debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983082 +Forwarded: not-needed +Last-Update: 2022-10-29 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: lib/ipmi_sdr.c +=================================================================== +--- lib/ipmi_sdr.c ++++ lib/ipmi_sdr.c +@@ -1799,7 +1799,7 @@ ipmi_sdr_print_sensor_fc(struct ipmi_int + sr->s_a_units); + } else /* Discrete */ + snprintf(sval, sizeof(sval), +- "0x%02x", sr->s_reading); ++ "0x%02x", sr->s_data2); + } + else if (sr->s_scanning_disabled) + snprintf(sval, sizeof (sval), sr->full ? "disabled" : "Not Readable"); +Index: lib/ipmi_sensor.c +=================================================================== +--- lib/ipmi_sensor.c ++++ lib/ipmi_sensor.c +@@ -201,7 +201,7 @@ ipmi_sensor_print_fc_discrete(struct ipm + sr->s_a_str, sr->s_a_units, "ok"); + } else { + printf("| 0x%-8x | %-10s | 0x%02x%02x", +- sr->s_reading, "discrete", ++ sr->s_data2, "discrete", + sr->s_data2, sr->s_data3); + } + } else { diff --git a/sysutils/ipmitool/files/patch-sdr b/sysutils/ipmitool/files/patch-sdr new file mode 100644 index 000000000000..b7c2ef8c2e9a --- /dev/null +++ b/sysutils/ipmitool/files/patch-sdr @@ -0,0 +1,75 @@ +From 202f7427e0a4d1f319fc4b914676cc2f08da6c6c Mon Sep 17 00:00:00 2001 +From: Alexander Amelkin <alexander@amelkin.msk.ru> +Date: Tue, 17 Sep 2024 15:15:45 +0300 +Subject: [PATCH] sdr: Refix 6e037d6bfbbb93b349c8ca331ebde03a (#41) + +A bug was introduced by commit 6e037d6bfbbb93b349c8ca331ebde03a837f76bf +due to which the command `ipmitool sdr type` stopped accepting raw +hex values for the type and would only accept strings. + +Fix that by partially reverting the troublesome commit. + +Additionally, apply the logic of that commit to calls of +`strcasecmp()` in ipmi_sdr.c. + +Resolves https://codeberg.org/IPMITool/ipmitool/issues/41 + +Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru> +--- + lib/ipmi_sdr.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git lib/ipmi_sdr.c lib/ipmi_sdr.c +index abd4ee1..4732762 100644 +--- lib/ipmi_sdr.c ++++ lib/ipmi_sdr.c +@@ -4570,8 +4570,9 @@ ipmi_sdr_print_type(struct ipmi_intf *intf, char *type) + uint8_t sensor_type = 0; + + if (!type || +- strcasecmp(type, "help") == 0 || +- strcasecmp(type, "list") == 0) { ++ !strcasecmp(type, "help") || ++ !strcasecmp(type, "list")) ++ { + printf("Sensor Types:\n"); + for (x = 1; x < SENSOR_TYPE_MAX; x += 2) { + printf("\t%-25s (0x%02x) %-25s (0x%02x)\n", +@@ -4581,7 +4582,7 @@ ipmi_sdr_print_type(struct ipmi_intf *intf, char *type) + return 0; + } + +- if (!strcmp(type, "0x")) { ++ if (!strncmp(type, "0x", 2)) { + /* begins with 0x so let it be entered as raw hex value */ + if (str2uchar(type, &sensor_type) != 0) { + lprintf(LOG_ERR, +@@ -4591,7 +4592,7 @@ ipmi_sdr_print_type(struct ipmi_intf *intf, char *type) + } + } else { + for (x = 1; x < SENSOR_TYPE_MAX; x++) { +- if (strcasecmp(sensor_type_desc[x], type) == 0) { ++ if (!strcasecmp(sensor_type_desc[x], type)) { + sensor_type = x; + break; + } +@@ -4638,8 +4639,8 @@ ipmi_sdr_print_entity(struct ipmi_intf *intf, char *entitystr) + int rc = 0; + + if (!entitystr || +- strcasecmp(entitystr, "help") == 0 || +- strcasecmp(entitystr, "list") == 0) { ++ !strcasecmp(entitystr, "help") || ++ !strcasecmp(entitystr, "list")) { + print_valstr_2col(entity_id_vals, "Entity IDs", -1); + return 0; + } +@@ -4654,7 +4655,7 @@ ipmi_sdr_print_entity(struct ipmi_intf *intf, char *entitystr) + + /* now try string input */ + for (i = 0; entity_id_vals[i].str; i++) { +- if (strcasecmp(entitystr, entity_id_vals[i].str) == 0) { ++ if (!strcasecmp(entitystr, entity_id_vals[i].str)) { + entity.id = entity_id_vals[i].val; + entity.instance = 0x7f; + j=1; diff --git a/sysutils/k9s/Makefile b/sysutils/k9s/Makefile index 834e9d9eee01..1da043c3e578 100644 --- a/sysutils/k9s/Makefile +++ b/sysutils/k9s/Makefile @@ -1,6 +1,6 @@ PORTNAME= k9s DISTVERSIONPREFIX= v -DISTVERSION= 0.50.4 +DISTVERSION= 0.50.6 CATEGORIES= sysutils MAINTAINER= gogolok@gmail.com @@ -10,11 +10,11 @@ WWW= https://github.com/derailed/k9s LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -USES= go:1.21,modules +USES= go:1.24,modules GO_MODULE= github.com/derailed/k9s GO_BUILDFLAGS= -ldflags="-X github.com/derailed/k9s/cmd.version=${DISTVERSIONFULL} \ -X github.com/derailed/k9s/cmd.date=$$(date +'%Y-%m-%dT%H:%M:%SZ') \ - -X github.com/derailed/k9s/cmd.commit=e4e38161857a202f09488c7ab3603a27de464ad4" + -X github.com/derailed/k9s/cmd.commit=13cb55bb66272ac4c872a1f6bfa3e820d7d0ca5b" PLIST_FILES= bin/${PORTNAME} diff --git a/sysutils/k9s/distinfo b/sysutils/k9s/distinfo index 057c925d0896..a9c0dc4bd8a6 100644 --- a/sysutils/k9s/distinfo +++ b/sysutils/k9s/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1745214113 -SHA256 (go/sysutils_k9s/k9s-v0.50.4/v0.50.4.mod) = c94e084dc6f13e2e8cfc09af8745d99d3dcc8a04409eedc5daa4de2e6104f75b -SIZE (go/sysutils_k9s/k9s-v0.50.4/v0.50.4.mod) = 19254 -SHA256 (go/sysutils_k9s/k9s-v0.50.4/v0.50.4.zip) = 617ace92bcdc51d63a63888c070cac98c696345e11bb45be46e4e5fe75a5eaaa -SIZE (go/sysutils_k9s/k9s-v0.50.4/v0.50.4.zip) = 7485788 +TIMESTAMP = 1747190791 +SHA256 (go/sysutils_k9s/k9s-v0.50.6/v0.50.6.mod) = c41f2e178e3e345e07d729f0b53d7f9c3f69f41cbb51ff8550df54bb3d742172 +SIZE (go/sysutils_k9s/k9s-v0.50.6/v0.50.6.mod) = 19270 +SHA256 (go/sysutils_k9s/k9s-v0.50.6/v0.50.6.zip) = 027bb14ec2a3c7211a2233f0eb5ed176de37ef21e4181ac76bf69962dc6b0471 +SIZE (go/sysutils_k9s/k9s-v0.50.6/v0.50.6.zip) = 7496880 diff --git a/sysutils/kubectl/Makefile b/sysutils/kubectl/Makefile index 14fb75778284..6b11af75ad78 100644 --- a/sysutils/kubectl/Makefile +++ b/sysutils/kubectl/Makefile @@ -1,5 +1,5 @@ PORTNAME= kubectl -PORTVERSION= 1.33.0 +PORTVERSION= 1.33.1 DISTVERSIONPREFIX= v CATEGORIES= sysutils diff --git a/sysutils/kubectl/distinfo b/sysutils/kubectl/distinfo index cfcda139ff5a..2e723bf7bfb5 100644 --- a/sysutils/kubectl/distinfo +++ b/sysutils/kubectl/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745487476 -SHA256 (kubernetes-kubernetes-v1.33.0_GH0.tar.gz) = 9b7ef4e7d8f8156a835c3050746e56afdf52c95fa3ae8e380fdb3080208d2db1 -SIZE (kubernetes-kubernetes-v1.33.0_GH0.tar.gz) = 40025426 +TIMESTAMP = 1747385784 +SHA256 (kubernetes-kubernetes-v1.33.1_GH0.tar.gz) = f89203e326de4c827a23ef9aa430d8a3133f62cfa1f5a894e8c85784f01bf055 +SIZE (kubernetes-kubernetes-v1.33.1_GH0.tar.gz) = 37076955 diff --git a/sysutils/mise/Makefile b/sysutils/mise/Makefile index 04d15c67576c..3a4c8bac49fc 100644 --- a/sysutils/mise/Makefile +++ b/sysutils/mise/Makefile @@ -1,7 +1,6 @@ PORTNAME= mise DISTVERSIONPREFIX= v -DISTVERSION= 2025.5.2 -PORTREVISION= 0 +DISTVERSION= 2025.5.5 CATEGORIES= sysutils MAINTAINER= yuri@FreeBSD.org @@ -32,7 +31,7 @@ CARGO_CRATES= addr2line-0.24.2 \ aes-gcm-0.10.3 \ age-0.11.1 \ age-core-0.11.0 \ - ahash-0.8.11 \ + ahash-0.8.12 \ aho-corasick-1.1.3 \ allocator-api2-0.2.21 \ android-tzdata-0.1.1 \ @@ -66,7 +65,7 @@ CARGO_CRATES= addr2line-0.24.2 \ bitflags-2.9.0 \ block-buffer-0.10.4 \ bstr-1.12.0 \ - built-0.7.7 \ + built-0.8.0 \ bumpalo-3.17.0 \ bytecount-0.6.8 \ byteorder-1.5.0 \ @@ -76,7 +75,7 @@ CARGO_CRATES= addr2line-0.24.2 \ bzip2-sys-0.1.13+1.0.8 \ calm_io-0.1.1 \ calmio_filters-0.1.0 \ - cc-1.2.21 \ + cc-1.2.22 \ cfg-if-1.0.0 \ cfg_aliases-0.2.1 \ chacha20-0.9.1 \ @@ -86,8 +85,8 @@ CARGO_CRATES= addr2line-0.24.2 \ chrono-tz-build-0.3.0 \ ci_info-0.14.14 \ cipher-0.4.4 \ - clap-4.5.37 \ - clap_builder-4.5.37 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ clap_derive-4.5.32 \ clap_lex-0.7.4 \ clap_mangen-0.2.26 \ @@ -111,7 +110,7 @@ CARGO_CRATES= addr2line-0.24.2 \ core-foundation-sys-0.8.7 \ countme-3.0.1 \ cpufeatures-0.2.17 \ - crc-3.2.1 \ + crc-3.3.0 \ crc-catalog-2.4.0 \ crc32fast-1.4.2 \ crossbeam-channel-0.5.15 \ @@ -197,7 +196,7 @@ CARGO_CRATES= addr2line-0.24.2 \ fuzzy-matcher-0.3.7 \ generic-array-0.14.7 \ getrandom-0.2.16 \ - getrandom-0.3.2 \ + getrandom-0.3.3 \ ghash-0.5.1 \ gimli-0.31.1 \ gix-0.72.1 \ @@ -211,7 +210,7 @@ CARGO_CRATES= addr2line-0.24.2 \ gix-config-0.45.1 \ gix-config-value-0.15.0 \ gix-credentials-0.29.0 \ - gix-date-0.10.1 \ + gix-date-0.10.2 \ gix-diff-0.52.1 \ gix-dir-0.14.1 \ gix-discover-0.40.1 \ @@ -222,7 +221,7 @@ CARGO_CRATES= addr2line-0.24.2 \ gix-hash-0.18.0 \ gix-hashtable-0.8.1 \ gix-ignore-0.15.0 \ - gix-index-0.40.0 \ + gix-index-0.40.1 \ gix-lock-17.1.0 \ gix-mailmap-0.27.1 \ gix-negotiate-0.20.1 \ @@ -231,7 +230,7 @@ CARGO_CRATES= addr2line-0.24.2 \ gix-pack-0.59.1 \ gix-packetline-0.19.0 \ gix-packetline-blocking-0.19.0 \ - gix-path-0.10.17 \ + gix-path-0.10.18 \ gix-pathspec-0.11.0 \ gix-prompt-0.11.0 \ gix-protocol-0.50.1 \ @@ -247,7 +246,7 @@ CARGO_CRATES= addr2line-0.24.2 \ gix-tempfile-17.1.0 \ gix-trace-0.1.12 \ gix-transport-0.47.0 \ - gix-traverse-0.46.1 \ + gix-traverse-0.46.2 \ gix-url-0.31.0 \ gix-utils-0.3.0 \ gix-validate-0.10.0 \ @@ -287,19 +286,16 @@ CARGO_CRATES= addr2line-0.24.2 \ i18n-embed-impl-0.8.4 \ iana-time-zone-0.1.63 \ iana-time-zone-haiku-0.1.2 \ - icu_collections-1.5.0 \ - icu_locid-1.5.0 \ - icu_locid_transform-1.5.0 \ - icu_locid_transform_data-1.5.1 \ - icu_normalizer-1.5.0 \ - icu_normalizer_data-1.5.1 \ - icu_properties-1.5.1 \ - icu_properties_data-1.5.1 \ - icu_provider-1.5.0 \ - icu_provider_macros-1.5.0 \ + icu_collections-2.0.0 \ + icu_locale_core-2.0.0 \ + icu_normalizer-2.0.0 \ + icu_normalizer_data-2.0.0 \ + icu_properties-2.0.0 \ + icu_properties_data-2.0.0 \ + icu_provider-2.0.0 \ ident_case-1.0.1 \ idna-1.0.3 \ - idna_adapter-1.2.0 \ + idna_adapter-1.2.1 \ ignore-0.4.23 \ imara-diff-0.1.8 \ impl-tools-0.10.3 \ @@ -339,12 +335,13 @@ CARGO_CRATES= addr2line-0.24.2 \ libz-rs-sys-0.5.0 \ linux-raw-sys-0.4.15 \ linux-raw-sys-0.9.4 \ - litemap-0.7.5 \ + litemap-0.8.0 \ litrs-0.4.1 \ lock_api-0.4.12 \ log-0.4.27 \ logos-0.12.1 \ logos-derive-0.12.1 \ + lru-slab-0.1.2 \ lua-src-547.0.0 \ luajit-src-210.5.12+a4f56a4 \ lzma-rs-0.3.0 \ @@ -368,6 +365,7 @@ CARGO_CRATES= addr2line-0.24.2 \ mockito-1.7.0 \ native-tls-0.2.14 \ nix-0.29.0 \ + nix-0.30.1 \ nom-7.1.3 \ nom-8.0.0 \ nt-time-0.8.1 \ @@ -424,6 +422,7 @@ CARGO_CRATES= addr2line-0.24.2 \ polyval-0.6.2 \ portable-atomic-1.11.0 \ portable-atomic-util-0.2.4 \ + potential_utf-0.1.2 \ powerfmt-0.2.0 \ ppv-lite86-0.2.21 \ pretty_assertions-1.4.1 \ @@ -432,8 +431,8 @@ CARGO_CRATES= addr2line-0.24.2 \ proc-macro2-1.0.95 \ prodash-29.0.2 \ quick-xml-0.37.5 \ - quinn-0.11.7 \ - quinn-proto-0.11.11 \ + quinn-0.11.8 \ + quinn-proto-0.11.12 \ quinn-udp-0.5.12 \ quote-1.0.40 \ r-efi-5.2.0 \ @@ -459,9 +458,9 @@ CARGO_CRATES= addr2line-0.24.2 \ roff-0.2.2 \ rops-0.1.5 \ rowan-0.15.16 \ - rust-embed-8.7.1 \ - rust-embed-impl-8.7.0 \ - rust-embed-utils-8.7.0 \ + rust-embed-8.7.2 \ + rust-embed-impl-8.7.2 \ + rust-embed-utils-8.7.2 \ rustc-demangle-0.1.24 \ rustc-hash-1.1.0 \ rustc-hash-2.1.1 \ @@ -471,8 +470,8 @@ CARGO_CRATES= addr2line-0.24.2 \ rustls-0.23.27 \ rustls-native-certs-0.8.1 \ rustls-pemfile-2.2.0 \ - rustls-pki-types-1.11.0 \ - rustls-webpki-0.103.2 \ + rustls-pki-types-1.12.0 \ + rustls-webpki-0.103.3 \ rustversion-1.0.20 \ ryu-1.0.20 \ salsa20-0.10.2 \ @@ -494,7 +493,7 @@ CARGO_CRATES= addr2line-0.24.2 \ serde-1.0.219 \ serde-value-0.7.0 \ serde_derive-1.0.219 \ - serde_ignored-0.1.11 \ + serde_ignored-0.1.12 \ serde_json-1.0.140 \ serde_regex-1.1.0 \ serde_spanned-0.6.8 \ @@ -513,7 +512,7 @@ CARGO_CRATES= addr2line-0.24.2 \ shell-escape-0.1.5 \ shell-words-1.1.0 \ shlex-1.3.0 \ - signal-hook-0.3.17 \ + signal-hook-0.3.18 \ signal-hook-registry-1.4.5 \ signature-2.2.0 \ simd-adler32-0.3.7 \ @@ -541,7 +540,7 @@ CARGO_CRATES= addr2line-0.24.2 \ tabled_derive-0.11.0 \ taplo-0.13.2 \ tar-0.4.44 \ - tempfile-3.19.1 \ + tempfile-3.20.0 \ tera-1.20.0 \ termcolor-1.4.1 \ terminal_size-0.4.2 \ @@ -557,7 +556,7 @@ CARGO_CRATES= addr2line-0.24.2 \ time-0.3.41 \ time-core-0.1.4 \ time-macros-0.2.22 \ - tinystr-0.7.6 \ + tinystr-0.8.1 \ tinyvec-1.9.0 \ tinyvec_macros-0.1.1 \ tokio-1.45.0 \ @@ -589,8 +588,8 @@ CARGO_CRATES= addr2line-0.24.2 \ unic-char-property-0.9.0 \ unic-char-range-0.9.0 \ unic-common-0.9.0 \ - unic-langid-0.9.5 \ - unic-langid-impl-0.9.5 \ + unic-langid-0.9.6 \ + unic-langid-impl-0.9.6 \ unic-segment-0.9.0 \ unic-ucd-segment-0.9.0 \ unic-ucd-version-0.9.0 \ @@ -607,7 +606,6 @@ CARGO_CRATES= addr2line-0.24.2 \ url-2.5.4 \ urlencoding-2.1.3 \ usage-lib-2.1.1 \ - utf16_iter-1.0.5 \ utf8_iter-1.0.4 \ utf8parse-0.2.2 \ valuable-0.1.1 \ @@ -674,26 +672,25 @@ CARGO_CRATES= addr2line-0.24.2 \ winnow-0.7.10 \ winsafe-0.0.19 \ wit-bindgen-rt-0.39.0 \ - write16-1.0.0 \ - writeable-0.5.5 \ + writeable-0.6.1 \ x25519-dalek-2.0.1 \ xattr-1.5.0 \ xx-2.1.0 \ xz2-0.1.7 \ yansi-1.0.1 \ - yoke-0.7.5 \ - yoke-derive-0.7.5 \ - zerocopy-0.7.35 \ + yoke-0.8.0 \ + yoke-derive-0.8.0 \ zerocopy-0.8.25 \ - zerocopy-derive-0.7.35 \ zerocopy-derive-0.8.25 \ zerofrom-0.1.6 \ zerofrom-derive-0.1.6 \ zeroize-1.8.1 \ zeroize_derive-1.4.2 \ - zerovec-0.10.4 \ - zerovec-derive-0.10.3 \ + zerotrie-0.2.2 \ + zerovec-0.11.2 \ + zerovec-derive-0.11.1 \ zip-2.5.0 \ + zip-3.0.0 \ zipsign-api-0.1.3 \ zlib-rs-0.5.0 \ zopfli-0.8.2 \ diff --git a/sysutils/mise/distinfo b/sysutils/mise/distinfo index b0781cd6d360..ed66b6f3e385 100644 --- a/sysutils/mise/distinfo +++ b/sysutils/mise/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746804769 +TIMESTAMP = 1747368108 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -13,8 +13,8 @@ SHA256 (rust/crates/age-0.11.1.crate) = 57fc171f4874fa10887e47088f81a55fcf030cd4 SIZE (rust/crates/age-0.11.1.crate) = 1511102 SHA256 (rust/crates/age-core-0.11.0.crate) = e2bf6a89c984ca9d850913ece2da39e1d200563b0a94b002b253beee4c5acf99 SIZE (rust/crates/age-core-0.11.0.crate) = 14308 -SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011 -SIZE (rust/crates/ahash-0.8.11.crate) = 43607 +SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75 +SIZE (rust/crates/ahash-0.8.12.crate) = 43413 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311 SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923 @@ -81,8 +81,8 @@ SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996a SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4 SIZE (rust/crates/bstr-1.12.0.crate) = 351557 -SHA256 (rust/crates/built-0.7.7.crate) = 56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b -SIZE (rust/crates/built-0.7.7.crate) = 29776 +SHA256 (rust/crates/built-0.8.0.crate) = f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64 +SIZE (rust/crates/built-0.8.0.crate) = 35112 SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 SHA256 (rust/crates/bytecount-0.6.8.crate) = 5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce @@ -101,8 +101,8 @@ SHA256 (rust/crates/calm_io-0.1.1.crate) = 2ea0608700fe42d90ec17ad0f86335cf229b6 SIZE (rust/crates/calm_io-0.1.1.crate) = 6908 SHA256 (rust/crates/calmio_filters-0.1.0.crate) = 846501f4575cd66766a40bb7ab6d8e960adc7eb49f753c8232bd8e0e09cf6ca2 SIZE (rust/crates/calmio_filters-0.1.0.crate) = 1930 -SHA256 (rust/crates/cc-1.2.21.crate) = 8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0 -SIZE (rust/crates/cc-1.2.21.crate) = 106117 +SHA256 (rust/crates/cc-1.2.22.crate) = 32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1 +SIZE (rust/crates/cc-1.2.22.crate) = 106294 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.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724 @@ -121,10 +121,10 @@ SHA256 (rust/crates/ci_info-0.14.14.crate) = 840dbb7bdd1f2c4d434d6b08420ef204e0b SIZE (rust/crates/ci_info-0.14.14.crate) = 1138778 SHA256 (rust/crates/cipher-0.4.4.crate) = 773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad SIZE (rust/crates/cipher-0.4.4.crate) = 19073 -SHA256 (rust/crates/clap-4.5.37.crate) = eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071 -SIZE (rust/crates/clap-4.5.37.crate) = 56962 -SHA256 (rust/crates/clap_builder-4.5.37.crate) = efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2 -SIZE (rust/crates/clap_builder-4.5.37.crate) = 168761 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 @@ -171,8 +171,8 @@ SHA256 (rust/crates/countme-3.0.1.crate) = 7704b5fdd17b18ae31c4c1da5a2e0305a2bf1 SIZE (rust/crates/countme-3.0.1.crate) = 10784 SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280 SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466 -SHA256 (rust/crates/crc-3.2.1.crate) = 69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636 -SIZE (rust/crates/crc-3.2.1.crate) = 15070 +SHA256 (rust/crates/crc-3.3.0.crate) = 9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675 +SIZE (rust/crates/crc-3.3.0.crate) = 13905 SHA256 (rust/crates/crc-catalog-2.4.0.crate) = 19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5 SIZE (rust/crates/crc-catalog-2.4.0.crate) = 10155 SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 @@ -343,8 +343,8 @@ 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.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592 SIZE (rust/crates/getrandom-0.2.16.crate) = 40163 -SHA256 (rust/crates/getrandom-0.3.2.crate) = 73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0 -SIZE (rust/crates/getrandom-0.3.2.crate) = 49140 +SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4 +SIZE (rust/crates/getrandom-0.3.3.crate) = 49493 SHA256 (rust/crates/ghash-0.5.1.crate) = f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1 SIZE (rust/crates/ghash-0.5.1.crate) = 9482 SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f @@ -371,8 +371,8 @@ SHA256 (rust/crates/gix-config-value-0.15.0.crate) = 439d62e241dae2dffd55bfeeabe SIZE (rust/crates/gix-config-value-0.15.0.crate) = 15580 SHA256 (rust/crates/gix-credentials-0.29.0.crate) = ce1c7307e36026b6088e5b12014ffe6d4f509c911ee453e22a7be4003a159c9b SIZE (rust/crates/gix-credentials-0.29.0.crate) = 22341 -SHA256 (rust/crates/gix-date-0.10.1.crate) = 3a98593f1f1e14b9fa15c5b921b2c465e904d698b9463e21bb377be8376c3c1a -SIZE (rust/crates/gix-date-0.10.1.crate) = 15049 +SHA256 (rust/crates/gix-date-0.10.2.crate) = 139d1d52b21741e3f0c72b0fc65e1ff34d4eaceb100ef529d182725d2e09b8cb +SIZE (rust/crates/gix-date-0.10.2.crate) = 15102 SHA256 (rust/crates/gix-diff-0.52.1.crate) = 5e9b43e95fe352da82a969f0c84ff860c2de3e724d93f6681fedbcd6c917f252 SIZE (rust/crates/gix-diff-0.52.1.crate) = 57859 SHA256 (rust/crates/gix-dir-0.14.1.crate) = 01e6e2dc5b8917142d0ffe272209d1671e45b771e433f90186bc71c016792e87 @@ -393,8 +393,8 @@ SHA256 (rust/crates/gix-hashtable-0.8.1.crate) = b5b5cb3c308b4144f2612ff64e32130 SIZE (rust/crates/gix-hashtable-0.8.1.crate) = 10253 SHA256 (rust/crates/gix-ignore-0.15.0.crate) = ae358c3c96660b10abc7da63c06788dfded603e717edbd19e38c6477911b71c8 SIZE (rust/crates/gix-ignore-0.15.0.crate) = 12101 -SHA256 (rust/crates/gix-index-0.40.0.crate) = e6d505aea7d7c4267a3153cb90c712a89970b4dd02a2cb3205be322891f530b5 -SIZE (rust/crates/gix-index-0.40.0.crate) = 53587 +SHA256 (rust/crates/gix-index-0.40.1.crate) = b38e919efd59cb8275d23ad2394b2ab9d002007b27620e145d866d546403b665 +SIZE (rust/crates/gix-index-0.40.1.crate) = 53703 SHA256 (rust/crates/gix-lock-17.1.0.crate) = 570f8b034659f256366dc90f1a24924902f20acccd6a15be96d44d1269e7a796 SIZE (rust/crates/gix-lock-17.1.0.crate) = 13990 SHA256 (rust/crates/gix-mailmap-0.27.1.crate) = 5e7c52eb13d84ad26030d07a2c2975ba639dd1400a7996e6966c5aef617ed829 @@ -411,8 +411,8 @@ SHA256 (rust/crates/gix-packetline-0.19.0.crate) = 8ddc034bc67c848e4ef7596ab5528 SIZE (rust/crates/gix-packetline-0.19.0.crate) = 26737 SHA256 (rust/crates/gix-packetline-blocking-0.19.0.crate) = c44880f028ba46d6cf37a66d27a300310c6b51b8ed0e44918f93df061168e2f3 SIZE (rust/crates/gix-packetline-blocking-0.19.0.crate) = 22283 -SHA256 (rust/crates/gix-path-0.10.17.crate) = c091d2e887e02c3462f52252c5ea61150270c0f2657b642e8d0d6df56c16e642 -SIZE (rust/crates/gix-path-0.10.17.crate) = 30151 +SHA256 (rust/crates/gix-path-0.10.18.crate) = 567f65fec4ef10dfab97ae71f26a27fd4d7fe7b8e3f90c8a58551c41ff3fb65b +SIZE (rust/crates/gix-path-0.10.18.crate) = 30214 SHA256 (rust/crates/gix-pathspec-0.11.0.crate) = ce061c50e5f8f7c830cacb3da3e999ae935e283ce8522249f0ce2256d110979d SIZE (rust/crates/gix-pathspec-0.11.0.crate) = 23225 SHA256 (rust/crates/gix-prompt-0.11.0.crate) = d024a3fe3993bbc17733396d2cefb169c7a9d14b5b71dafb7f96e3962b7c3128 @@ -443,8 +443,8 @@ SHA256 (rust/crates/gix-trace-0.1.12.crate) = 7c396a2036920c69695f760a65e7f26772 SIZE (rust/crates/gix-trace-0.1.12.crate) = 10435 SHA256 (rust/crates/gix-transport-0.47.0.crate) = edfe22ba26d4b65c17879f12b9882eafe65d3c8611c933b272fce2c10f546f59 SIZE (rust/crates/gix-transport-0.47.0.crate) = 69139 -SHA256 (rust/crates/gix-traverse-0.46.1.crate) = 39094185f6d9a4d81101130fbbf7f598a06441d774ae3b3ae7930a613bbe1157 -SIZE (rust/crates/gix-traverse-0.46.1.crate) = 24737 +SHA256 (rust/crates/gix-traverse-0.46.2.crate) = b8648172f85aca3d6e919c06504b7ac26baef54e04c55eb0100fa588c102cc33 +SIZE (rust/crates/gix-traverse-0.46.2.crate) = 24863 SHA256 (rust/crates/gix-url-0.31.0.crate) = 42a1ad0b04a5718b5cb233e6888e52a9b627846296161d81dcc5eb9203ec84b8 SIZE (rust/crates/gix-url-0.31.0.crate) = 19348 SHA256 (rust/crates/gix-utils-0.3.0.crate) = 5351af2b172caf41a3728eb4455326d84e0d70fe26fc4de74ab0bd37df4191c5 @@ -523,32 +523,26 @@ SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919 SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185 -SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526 -SIZE (rust/crates/icu_collections-1.5.0.crate) = 82762 -SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637 -SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131 -SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e -SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094 -SHA256 (rust/crates/icu_locid_transform_data-1.5.1.crate) = 7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d -SIZE (rust/crates/icu_locid_transform_data-1.5.1.crate) = 42937 -SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f -SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113 -SHA256 (rust/crates/icu_normalizer_data-1.5.1.crate) = c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7 -SIZE (rust/crates/icu_normalizer_data-1.5.1.crate) = 50737 -SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5 -SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479 -SHA256 (rust/crates/icu_properties_data-1.5.1.crate) = 85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2 -SIZE (rust/crates/icu_properties_data-1.5.1.crate) = 229231 -SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9 -SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722 -SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6 -SIZE (rust/crates/icu_provider_macros-1.5.0.crate) = 6436 +SHA256 (rust/crates/icu_collections-2.0.0.crate) = 200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47 +SIZE (rust/crates/icu_collections-2.0.0.crate) = 83033 +SHA256 (rust/crates/icu_locale_core-2.0.0.crate) = 0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a +SIZE (rust/crates/icu_locale_core-2.0.0.crate) = 74430 +SHA256 (rust/crates/icu_normalizer-2.0.0.crate) = 436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979 +SIZE (rust/crates/icu_normalizer-2.0.0.crate) = 61543 +SHA256 (rust/crates/icu_normalizer_data-2.0.0.crate) = 00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3 +SIZE (rust/crates/icu_normalizer_data-2.0.0.crate) = 68101 +SHA256 (rust/crates/icu_properties-2.0.0.crate) = 2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a +SIZE (rust/crates/icu_properties-2.0.0.crate) = 58065 +SHA256 (rust/crates/icu_properties_data-2.0.0.crate) = 8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04 +SIZE (rust/crates/icu_properties_data-2.0.0.crate) = 159069 +SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af +SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966 SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39 SIZE (rust/crates/ident_case-1.0.1.crate) = 3492 SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e SIZE (rust/crates/idna-1.0.3.crate) = 142515 -SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 -SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 +SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344 +SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389 SHA256 (rust/crates/ignore-0.4.23.crate) = 6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b SIZE (rust/crates/ignore-0.4.23.crate) = 55901 SHA256 (rust/crates/imara-diff-0.1.8.crate) = 17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2 @@ -627,8 +621,8 @@ SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8ea SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898 SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12 SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088 -SHA256 (rust/crates/litemap-0.7.5.crate) = 23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856 -SIZE (rust/crates/litemap-0.7.5.crate) = 29962 +SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956 +SIZE (rust/crates/litemap-0.8.0.crate) = 34344 SHA256 (rust/crates/litrs-0.4.1.crate) = b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5 SIZE (rust/crates/litrs-0.4.1.crate) = 42603 SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17 @@ -639,6 +633,8 @@ SHA256 (rust/crates/logos-0.12.1.crate) = bf8b031682c67a8e3d5446840f9573eb7fe26e SIZE (rust/crates/logos-0.12.1.crate) = 8973 SHA256 (rust/crates/logos-derive-0.12.1.crate) = a1d849148dbaf9661a6151d1ca82b13bb4c4c128146a88d05253b38d4e2f496c SIZE (rust/crates/logos-derive-0.12.1.crate) = 32282 +SHA256 (rust/crates/lru-slab-0.1.2.crate) = 112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154 +SIZE (rust/crates/lru-slab-0.1.2.crate) = 9090 SHA256 (rust/crates/lua-src-547.0.0.crate) = 1edaf29e3517b49b8b746701e5648ccb5785cde1c119062cbabbc5d5cd115e42 SIZE (rust/crates/lua-src-547.0.0.crate) = 664219 SHA256 (rust/crates/luajit-src-210.5.12+a4f56a4.crate) = b3a8e7962a5368d5f264d045a5a255e90f9aa3fc1941ae15a8d2940d42cac671 @@ -685,6 +681,8 @@ SHA256 (rust/crates/native-tls-0.2.14.crate) = 87de3442987e9dbec73158d5c715e7ad9 SIZE (rust/crates/native-tls-0.2.14.crate) = 29385 SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46 SIZE (rust/crates/nix-0.29.0.crate) = 318248 +SHA256 (rust/crates/nix-0.30.1.crate) = 74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6 +SIZE (rust/crates/nix-0.30.1.crate) = 342015 SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a SIZE (rust/crates/nom-7.1.3.crate) = 117570 SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405 @@ -797,6 +795,8 @@ SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b1144 SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 SHA256 (rust/crates/portable-atomic-util-0.2.4.crate) = d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507 SIZE (rust/crates/portable-atomic-util-0.2.4.crate) = 47043 +SHA256 (rust/crates/potential_utf-0.1.2.crate) = e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585 +SIZE (rust/crates/potential_utf-0.1.2.crate) = 9613 SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391 SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165 SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9 @@ -813,10 +813,10 @@ SHA256 (rust/crates/prodash-29.0.2.crate) = f04bb108f648884c23b98a0e940ebc2c93c0 SIZE (rust/crates/prodash-29.0.2.crate) = 91338 SHA256 (rust/crates/quick-xml-0.37.5.crate) = 331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb SIZE (rust/crates/quick-xml-0.37.5.crate) = 190481 -SHA256 (rust/crates/quinn-0.11.7.crate) = c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012 -SIZE (rust/crates/quinn-0.11.7.crate) = 79387 -SHA256 (rust/crates/quinn-proto-0.11.11.crate) = bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b -SIZE (rust/crates/quinn-proto-0.11.11.crate) = 229381 +SHA256 (rust/crates/quinn-0.11.8.crate) = 626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8 +SIZE (rust/crates/quinn-0.11.8.crate) = 79949 +SHA256 (rust/crates/quinn-proto-0.11.12.crate) = 49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e +SIZE (rust/crates/quinn-proto-0.11.12.crate) = 235821 SHA256 (rust/crates/quinn-udp-0.5.12.crate) = ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842 SIZE (rust/crates/quinn-udp-0.5.12.crate) = 31825 SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d @@ -867,12 +867,12 @@ SHA256 (rust/crates/rops-0.1.5.crate) = 5c830d8ae5c50ef149e290235ef564ac84d97181 SIZE (rust/crates/rops-0.1.5.crate) = 68739 SHA256 (rust/crates/rowan-0.15.16.crate) = 0a542b0253fa46e632d27a1dc5cf7b930de4df8659dc6e720b647fc72147ae3d SIZE (rust/crates/rowan-0.15.16.crate) = 40571 -SHA256 (rust/crates/rust-embed-8.7.1.crate) = 60e425e204264b144d4c929d126d0de524b40a961686414bab5040f7465c71be -SIZE (rust/crates/rust-embed-8.7.1.crate) = 906558 -SHA256 (rust/crates/rust-embed-impl-8.7.0.crate) = 6bf418c9a2e3f6663ca38b8a7134cc2c2167c9d69688860e8961e3faa731702e -SIZE (rust/crates/rust-embed-impl-8.7.0.crate) = 10171 -SHA256 (rust/crates/rust-embed-utils-8.7.0.crate) = 08d55b95147fe01265d06b3955db798bdaed52e60e2211c41137701b3aba8e21 -SIZE (rust/crates/rust-embed-utils-8.7.0.crate) = 6123 +SHA256 (rust/crates/rust-embed-8.7.2.crate) = 025908b8682a26ba8d12f6f2d66b987584a4a87bc024abc5bbc12553a8cd178a +SIZE (rust/crates/rust-embed-8.7.2.crate) = 906250 +SHA256 (rust/crates/rust-embed-impl-8.7.2.crate) = 6065f1a4392b71819ec1ea1df1120673418bf386f50de1d6f54204d836d4349c +SIZE (rust/crates/rust-embed-impl-8.7.2.crate) = 9663 +SHA256 (rust/crates/rust-embed-utils-8.7.2.crate) = f6cc0c81648b20b70c491ff8cce00c1c3b223bb8ed2b5d41f0e54c6c4c0a3594 +SIZE (rust/crates/rust-embed-utils-8.7.2.crate) = 6123 SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047 SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 @@ -891,10 +891,10 @@ SHA256 (rust/crates/rustls-native-certs-0.8.1.crate) = 7fcff2dd52b58a8d98a702436 SIZE (rust/crates/rustls-native-certs-0.8.1.crate) = 31129 SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50 SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849 -SHA256 (rust/crates/rustls-pki-types-1.11.0.crate) = 917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c -SIZE (rust/crates/rustls-pki-types-1.11.0.crate) = 63933 -SHA256 (rust/crates/rustls-webpki-0.103.2.crate) = 7149975849f1abb3832b246010ef62ccc80d3a76169517ada7188252b9cfb437 -SIZE (rust/crates/rustls-webpki-0.103.2.crate) = 80921 +SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79 +SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740 +SHA256 (rust/crates/rustls-webpki-0.103.3.crate) = e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435 +SIZE (rust/crates/rustls-webpki-0.103.3.crate) = 81840 SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2 SIZE (rust/crates/rustversion-1.0.20.crate) = 20666 SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f @@ -937,8 +937,8 @@ SHA256 (rust/crates/serde-value-0.7.0.crate) = f3a1a3341211875ef120e117ea7fd5228 SIZE (rust/crates/serde-value-0.7.0.crate) = 10249 SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 -SHA256 (rust/crates/serde_ignored-0.1.11.crate) = 566da67d80e92e009728b3731ff0e5360cb181432b8ca73ea30bb1d170700d76 -SIZE (rust/crates/serde_ignored-0.1.11.crate) = 12799 +SHA256 (rust/crates/serde_ignored-0.1.12.crate) = b516445dac1e3535b6d658a7b528d771153dfb272ed4180ca4617a20550365ff +SIZE (rust/crates/serde_ignored-0.1.12.crate) = 13050 SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 SHA256 (rust/crates/serde_regex-1.1.0.crate) = a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf @@ -975,8 +975,8 @@ SHA256 (rust/crates/shell-words-1.1.0.crate) = 24188a676b6ae68c3b2cb3a01be17fbf7 SIZE (rust/crates/shell-words-1.1.0.crate) = 9871 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (rust/crates/shlex-1.3.0.crate) = 18713 -SHA256 (rust/crates/signal-hook-0.3.17.crate) = 8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801 -SIZE (rust/crates/signal-hook-0.3.17.crate) = 50296 +SHA256 (rust/crates/signal-hook-0.3.18.crate) = d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2 +SIZE (rust/crates/signal-hook-0.3.18.crate) = 50862 SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410 SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004 SHA256 (rust/crates/signature-2.2.0.crate) = 77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de @@ -1031,8 +1031,8 @@ SHA256 (rust/crates/taplo-0.13.2.crate) = 010941ac4171eaf12f1e26dfc11dadaf78619e SIZE (rust/crates/taplo-0.13.2.crate) = 53458 SHA256 (rust/crates/tar-0.4.44.crate) = 1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a SIZE (rust/crates/tar-0.4.44.crate) = 61020 -SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf -SIZE (rust/crates/tempfile-3.19.1.crate) = 39634 +SHA256 (rust/crates/tempfile-3.20.0.crate) = e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1 +SIZE (rust/crates/tempfile-3.20.0.crate) = 42306 SHA256 (rust/crates/tera-1.20.0.crate) = ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee SIZE (rust/crates/tera-1.20.0.crate) = 104452 SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755 @@ -1063,8 +1063,8 @@ SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea SIZE (rust/crates/time-core-0.1.4.crate) = 8422 SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49 SIZE (rust/crates/time-macros-0.2.22.crate) = 24604 -SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f -SIZE (rust/crates/tinystr-0.7.6.crate) = 16971 +SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b +SIZE (rust/crates/tinystr-0.8.1.crate) = 23333 SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71 SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137 SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20 @@ -1127,10 +1127,10 @@ SHA256 (rust/crates/unic-char-range-0.9.0.crate) = 0398022d5f700414f6b899e10b834 SIZE (rust/crates/unic-char-range-0.9.0.crate) = 7020 SHA256 (rust/crates/unic-common-0.9.0.crate) = 80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc SIZE (rust/crates/unic-common-0.9.0.crate) = 2558 -SHA256 (rust/crates/unic-langid-0.9.5.crate) = 23dd9d1e72a73b25e07123a80776aae3e7b0ec461ef94f9151eed6ec88005a44 -SIZE (rust/crates/unic-langid-0.9.5.crate) = 8898 -SHA256 (rust/crates/unic-langid-impl-0.9.5.crate) = 0a5422c1f65949306c99240b81de9f3f15929f5a8bfe05bb44b034cc8bf593e5 -SIZE (rust/crates/unic-langid-impl-0.9.5.crate) = 89659 +SHA256 (rust/crates/unic-langid-0.9.6.crate) = a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05 +SIZE (rust/crates/unic-langid-0.9.6.crate) = 9031 +SHA256 (rust/crates/unic-langid-impl-0.9.6.crate) = dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658 +SIZE (rust/crates/unic-langid-impl-0.9.6.crate) = 90020 SHA256 (rust/crates/unic-segment-0.9.0.crate) = e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23 SIZE (rust/crates/unic-segment-0.9.0.crate) = 34848 SHA256 (rust/crates/unic-ucd-segment-0.9.0.crate) = 2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700 @@ -1163,8 +1163,6 @@ SHA256 (rust/crates/urlencoding-2.1.3.crate) = daf8dba3b7eb870caf1ddeed7bc9d2a04 SIZE (rust/crates/urlencoding-2.1.3.crate) = 6538 SHA256 (rust/crates/usage-lib-2.1.1.crate) = f5fa05e330e8533a1b7899b89fc7096f48378c49e7cdfdc3472ce32bb38860b3 SIZE (rust/crates/usage-lib-2.1.1.crate) = 72490 -SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246 -SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736 SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437 SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 @@ -1297,10 +1295,8 @@ SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e SIZE (rust/crates/winsafe-0.0.19.crate) = 492820 SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 -SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 -SIZE (rust/crates/write16-1.0.0.crate) = 7218 -SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 -SIZE (rust/crates/writeable-0.5.5.crate) = 22354 +SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb +SIZE (rust/crates/writeable-0.6.1.crate) = 24068 SHA256 (rust/crates/x25519-dalek-2.0.1.crate) = c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277 SIZE (rust/crates/x25519-dalek-2.0.1.crate) = 87820 SHA256 (rust/crates/xattr-1.5.0.crate) = 0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e @@ -1311,16 +1307,12 @@ SHA256 (rust/crates/xz2-0.1.7.crate) = 388c44dc09d76f1536602ead6d325eb532f5c122f SIZE (rust/crates/xz2-0.1.7.crate) = 23892 SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049 SIZE (rust/crates/yansi-1.0.1.crate) = 75497 -SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40 -SIZE (rust/crates/yoke-0.7.5.crate) = 29673 -SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154 -SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525 -SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 -SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645 +SHA256 (rust/crates/yoke-0.8.0.crate) = 5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc +SIZE (rust/crates/yoke-0.8.0.crate) = 28726 +SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6 +SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521 SHA256 (rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb SIZE (rust/crates/zerocopy-0.8.25.crate) = 252714 -SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e -SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829 SHA256 (rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef SIZE (rust/crates/zerocopy-derive-0.8.25.crate) = 87671 SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5 @@ -1331,12 +1323,16 @@ SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464 SIZE (rust/crates/zeroize-1.8.1.crate) = 20029 SHA256 (rust/crates/zeroize_derive-1.4.2.crate) = ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69 SIZE (rust/crates/zeroize_derive-1.4.2.crate) = 11141 -SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079 -SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 -SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 -SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 +SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595 +SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423 +SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428 +SIZE (rust/crates/zerovec-0.11.2.crate) = 124500 +SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f +SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294 SHA256 (rust/crates/zip-2.5.0.crate) = 27c03817464f64e23f6f37574b4fdc8cf65925b5bfd2b0f2aedf959791941f88 SIZE (rust/crates/zip-2.5.0.crate) = 111877 +SHA256 (rust/crates/zip-3.0.0.crate) = 12598812502ed0105f607f941c386f43d441e00148fce9dec3ca5ffb0bde9308 +SIZE (rust/crates/zip-3.0.0.crate) = 112450 SHA256 (rust/crates/zipsign-api-0.1.3.crate) = 8e7c724c3a8e5833aad6b7028f4f0989fa3a640ce799bf8c352f417b8ef9db3e SIZE (rust/crates/zipsign-api-0.1.3.crate) = 17569 SHA256 (rust/crates/zlib-rs-0.5.0.crate) = 868b928d7949e09af2f6086dfc1e01936064cc7a819253bce650d4e2a2d63ba8 @@ -1349,5 +1345,5 @@ SHA256 (rust/crates/zstd-safe-7.2.4.crate) = 8f49c4d5f0abb602a93fb8736af2a4f4dd9 SIZE (rust/crates/zstd-safe-7.2.4.crate) = 29350 SHA256 (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237 SIZE (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = 774847 -SHA256 (jdx-mise-v2025.5.2_GH0.tar.gz) = 7f25802b23c229a1bc0c5d63723fb8acd7a3781c888cbd81e04e0ea3d3476f9c -SIZE (jdx-mise-v2025.5.2_GH0.tar.gz) = 4161252 +SHA256 (jdx-mise-v2025.5.5_GH0.tar.gz) = 6ac35ea90bed5ee28db23a85877839a7043b414ba70a3127df712b1e6e82a5a2 +SIZE (jdx-mise-v2025.5.5_GH0.tar.gz) = 4163090 diff --git a/sysutils/py-ansible-core/Makefile b/sysutils/py-ansible-core/Makefile index 993c3ca2df07..d334c5a230f1 100644 --- a/sysutils/py-ansible-core/Makefile +++ b/sysutils/py-ansible-core/Makefile @@ -1,5 +1,6 @@ PORTNAME= ansible-core DISTVERSION= 2.18.5 +PORTREVISION= 1 CATEGORIES= sysutils python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -20,6 +21,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.0.0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}resolvelib>=0.5.3<1.1.0:devel/py-resolvelib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}toml>0:textproc/py-toml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}passlib>0:security/py-passlib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml>=5.1:devel/py-pyyaml@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}bcrypt>=0:security/py-bcrypt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}boto3>0:www/py-boto3@${PY_FLAVOR} \ diff --git a/sysutils/py-overlord/Makefile b/sysutils/py-overlord/Makefile index 165ec6590bc8..0569e20f6f99 100644 --- a/sysutils/py-overlord/Makefile +++ b/sysutils/py-overlord/Makefile @@ -1,6 +1,6 @@ PORTNAME= overlord DISTVERSIONPREFIX= v -DISTVERSION= 0.7.0 +DISTVERSION= 0.8.0 CATEGORIES= sysutils python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/sysutils/py-overlord/distinfo b/sysutils/py-overlord/distinfo index 6ad62c0dcf30..6db614683251 100644 --- a/sysutils/py-overlord/distinfo +++ b/sysutils/py-overlord/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746251670 -SHA256 (DtxdF-overlord-v0.7.0_GH0.tar.gz) = 42ad4181c3085e83622b19a90f928765b2c0e79be56a9c2aca016abc35d1a338 -SIZE (DtxdF-overlord-v0.7.0_GH0.tar.gz) = 85747 +TIMESTAMP = 1747505959 +SHA256 (DtxdF-overlord-v0.8.0_GH0.tar.gz) = 82702793843f66848f963159b8840026ed0edb8f224111cdec30c0934aaba339 +SIZE (DtxdF-overlord-v0.8.0_GH0.tar.gz) = 85852 diff --git a/sysutils/slst/Makefile b/sysutils/slst/Makefile deleted file mode 100644 index 1c9b493aef2a..000000000000 --- a/sysutils/slst/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -PORTNAME= slst -PORTVERSION= 0.2 -PORTREVISION= 1 -CATEGORIES= sysutils -MASTER_SITES= http://www.vanheusden.com/slst/ - -MAINTAINER= ports@FreeBSD.org -COMMENT= Generates syslog statistics to detect tendencies and unexpected change -WWW= http://www.vanheusden.com/slst/ - -DEPRECATED= No source. Source went missing in 2018. -EXPIRATION_DATE=2025-05-15 - -USES= ncurses tar:tgz -ALL_TARGET= all - -PLIST_FILES= bin/slst - -post-install: - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/slst - -.include <bsd.port.mk> diff --git a/sysutils/slst/distinfo b/sysutils/slst/distinfo deleted file mode 100644 index 4e2cae3dc7c6..000000000000 --- a/sysutils/slst/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (slst-0.2.tgz) = 13b5036dd89eb25759f9cac7b6223cf08c108934ede1f9066a6483f09a18c492 -SIZE (slst-0.2.tgz) = 5746 diff --git a/sysutils/slst/files/patch-Makefile b/sysutils/slst/files/patch-Makefile deleted file mode 100644 index 1f00f213bbba..000000000000 --- a/sysutils/slst/files/patch-Makefile +++ /dev/null @@ -1,24 +0,0 @@ ---- Makefile.orig 2003-12-12 03:31:50.000000000 +0800 -+++ Makefile 2013-11-16 12:33:55.000000000 +0800 -@@ -1,8 +1,8 @@ --CC=gcc -+#CC=gcc - --CXXFLAGS=-Wall -O2 --CFLAGS=-Wall -O2 --LDFLAGS=-lstdc++ -+#CXXFLAGS=-Wall -O2 -+#CFLAGS=-Wall -O2 -+LDFLAGS+=-lstdc++ - VERSION=0.2 - - OBJS=slst.o error.o utils.o intcnt.o array.o -@@ -14,7 +14,7 @@ slst: $(OBJS) - # strip slst - - install: slst -- cp slst /usr/bin -+ ${INSTALL} -m 755 slst $(DESTDIR)$(PREFIX)/bin - - clean: - rm -f $(OBJS) slst core diff --git a/sysutils/slst/pkg-descr b/sysutils/slst/pkg-descr deleted file mode 100644 index 19f20f4c05e7..000000000000 --- a/sysutils/slst/pkg-descr +++ /dev/null @@ -1,4 +0,0 @@ -slst generates statistics from the output of syslog. - -With slst one can find tendencies and unexpected changes in the behaviour of -the running processes. diff --git a/sysutils/swtpm/Makefile b/sysutils/swtpm/Makefile index 2ba41891d2fe..c636d8022344 100644 --- a/sysutils/swtpm/Makefile +++ b/sysutils/swtpm/Makefile @@ -1,7 +1,6 @@ PORTNAME= swtpm DISTVERSIONPREFIX= v -DISTVERSION= 0.9.0 -PORTREVISION= 2 +DISTVERSION= 0.10.1 CATEGORIES= sysutils MAINTAINER= meka@tilda.center @@ -24,19 +23,28 @@ LIB_DEPENDS= libfuse.so:filesystems/fusefs-libs \ libtpms.so:sysutils/libtpms USES= autoreconf gettext-runtime gmake gnome libtool pathfix \ - pkgconfig ssl + pkgconfig python:env,test shebangfix ssl USE_GITHUB= yes GH_ACCOUNT= stefanberger USE_GNOME= glib20 USE_LDCONFIG= yes USE_RC_SUBR= ${PORTNAME} +SHEBANG_FILES= tests/_* tests/test_clientfds.py tests/test_setdatafd.py -USERS= _tss -GROUPS= ${USERS} GNU_CONFIGURE= yes -CONFIGURE_ARGS+= --with-tss-user=${USERS} \ - --with-tss-group=${GROUPS} +CONFIGURE_ARGS+= --with-tss-group=${GROUPS} \ + --with-tss-user=${USERS} INSTALL_TARGET= install-strip +TEST_ENV= LD_LIBRARY_PATH=${STAGEDIR}${PREFIX}/lib/swtpm:${LD_LIBRARY_PATH} \ + PATH=${PATH}:${STAGEDIR}${PREFIX}/bin +TEST_TARGET= ./installed-runner.sh +TEST_WRKSRC= ${STAGEDIR}${PREFIX}/libexec/installed-tests/swtpm + +USERS= _tss +GROUPS= ${USERS} + +do-test: + cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${TEST_TARGET} .include <bsd.port.mk> diff --git a/sysutils/swtpm/distinfo b/sysutils/swtpm/distinfo index 8198d3275f25..273fae772351 100644 --- a/sysutils/swtpm/distinfo +++ b/sysutils/swtpm/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1722686189 -SHA256 (stefanberger-swtpm-v0.9.0_GH0.tar.gz) = 9679ca171e8aaa3c4e4053e8bc1d10c8dabf0220bd4b16aba78743511c25f731 -SIZE (stefanberger-swtpm-v0.9.0_GH0.tar.gz) = 370942 +TIMESTAMP = 1746085619 +SHA256 (stefanberger-swtpm-v0.10.1_GH0.tar.gz) = f8da11cadfed27e26d26c5f58a7b8f2d14d684e691927348906b5891f525c684 +SIZE (stefanberger-swtpm-v0.10.1_GH0.tar.gz) = 415992 diff --git a/sysutils/swtpm/files/patch-tests_Makefile.am b/sysutils/swtpm/files/patch-tests_Makefile.am new file mode 100644 index 000000000000..f5d07e83864c --- /dev/null +++ b/sysutils/swtpm/files/patch-tests_Makefile.am @@ -0,0 +1,10 @@ +--- tests/Makefile.am.orig 2025-05-12 20:33:40 UTC ++++ tests/Makefile.am +@@ -19,7 +19,6 @@ TESTS += \ + + TESTS += \ + test_commandline \ +- test_ctrlchannel \ + test_ctrlchannel2 \ + test_ctrlchannel3 \ + test_ctrlchannel4 \ diff --git a/sysutils/swtpm/files/swtpm.in b/sysutils/swtpm/files/swtpm.in index 637d1279aa48..15e24e044108 100644 --- a/sysutils/swtpm/files/swtpm.in +++ b/sysutils/swtpm/files/swtpm.in @@ -30,7 +30,6 @@ pidpath="/var/run/${name}" # required_modules="cuse" swtpm_default_args="\ - --daemon \ --tpmstate dir=${pidpath} \ --tpm2 \ --log level=20" @@ -64,6 +63,7 @@ start_instance() echo -n "Starting SWTPM config ${config} ..." ${command} \ ${command_args} \ + --daemon \ --pid file=${pidpath}/${config}.pid \ --ctrl type=unixio,path=${pidpath}/${config} \ ${instance_args} diff --git a/sysutils/swtpm/pkg-plist b/sysutils/swtpm/pkg-plist index 34009be0c8ba..763381418dc2 100644 --- a/sysutils/swtpm/pkg-plist +++ b/sysutils/swtpm/pkg-plist @@ -13,6 +13,193 @@ lib/swtpm/libswtpm_libtpms.a lib/swtpm/libswtpm_libtpms.so lib/swtpm/libswtpm_libtpms.so.0 lib/swtpm/libswtpm_libtpms.so.0.0.0 +libexec/installed-tests/swtpm/_test_encrypted_state +libexec/installed-tests/swtpm/_test_getcap +libexec/installed-tests/swtpm/_test_hashing +libexec/installed-tests/swtpm/_test_hashing2 +libexec/installed-tests/swtpm/_test_init +libexec/installed-tests/swtpm/_test_locality +libexec/installed-tests/swtpm/_test_migration_key +libexec/installed-tests/swtpm/_test_migration_key_2 +libexec/installed-tests/swtpm/_test_print_capabilities +libexec/installed-tests/swtpm/_test_print_states +libexec/installed-tests/swtpm/_test_resume_volatile +libexec/installed-tests/swtpm/_test_save_load_encrypted_state +libexec/installed-tests/swtpm/_test_save_load_state +libexec/installed-tests/swtpm/_test_setbuffersize +libexec/installed-tests/swtpm/_test_swtpm_bios +libexec/installed-tests/swtpm/_test_tpm2_avoid_da_lockout +libexec/installed-tests/swtpm/_test_tpm2_derived_keys +libexec/installed-tests/swtpm/_test_tpm2_encrypted_state +libexec/installed-tests/swtpm/_test_tpm2_file_permissions +libexec/installed-tests/swtpm/_test_tpm2_getcap +libexec/installed-tests/swtpm/_test_tpm2_hashing +libexec/installed-tests/swtpm/_test_tpm2_hashing2 +libexec/installed-tests/swtpm/_test_tpm2_hashing3 +libexec/installed-tests/swtpm/_test_tpm2_init +libexec/installed-tests/swtpm/_test_tpm2_locality +libexec/installed-tests/swtpm/_test_tpm2_migration_key +libexec/installed-tests/swtpm/_test_tpm2_print_capabilities +libexec/installed-tests/swtpm/_test_tpm2_print_states +libexec/installed-tests/swtpm/_test_tpm2_probe +libexec/installed-tests/swtpm/_test_tpm2_resume_volatile +libexec/installed-tests/swtpm/_test_tpm2_save_load_encrypted_state +libexec/installed-tests/swtpm/_test_tpm2_save_load_state +libexec/installed-tests/swtpm/_test_tpm2_save_load_state_da_timeout +libexec/installed-tests/swtpm/_test_tpm2_save_load_state_locking +libexec/installed-tests/swtpm/_test_tpm2_savestate +libexec/installed-tests/swtpm/_test_tpm2_setbuffersize +libexec/installed-tests/swtpm/_test_tpm2_swtpm_bios +libexec/installed-tests/swtpm/_test_tpm2_volatilestate +libexec/installed-tests/swtpm/_test_tpm2_wrongorder +libexec/installed-tests/swtpm/_test_tpm_probe +libexec/installed-tests/swtpm/_test_volatilestate +libexec/installed-tests/swtpm/_test_wrongorder +libexec/installed-tests/swtpm/common +libexec/installed-tests/swtpm/create_certs.sh +libexec/installed-tests/swtpm/data/ecprivek.pem +libexec/installed-tests/swtpm/data/ecpubek.pem +libexec/installed-tests/swtpm/data/issuercert.pem +libexec/installed-tests/swtpm/data/keyfile.txt +libexec/installed-tests/swtpm/data/keyfile256bit.txt +libexec/installed-tests/swtpm/data/migkey1/tpm2-volatilestate.bin +libexec/installed-tests/swtpm/data/migkey1/volatilestate.bin +libexec/installed-tests/swtpm/data/pubek.pem +libexec/installed-tests/swtpm/data/pwdfile.txt +libexec/installed-tests/swtpm/data/signkey-encrypted.pem +libexec/installed-tests/swtpm/data/signkey.pem +libexec/installed-tests/swtpm/data/tpm2state1/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state1/tpm2-00.volatilestate +libexec/installed-tests/swtpm/data/tpm2state2/pwdfile.txt +libexec/installed-tests/swtpm/data/tpm2state2/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state2/tpm2-00.volatilestate +libexec/installed-tests/swtpm/data/tpm2state2b/pwdfile.txt +libexec/installed-tests/swtpm/data/tpm2state2b/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state2b/tpm2-00.volatilestate +libexec/installed-tests/swtpm/data/tpm2state3/hkey.priv +libexec/installed-tests/swtpm/data/tpm2state3/hkey.pub +libexec/installed-tests/swtpm/data/tpm2state3/signature.bin +libexec/installed-tests/swtpm/data/tpm2state3/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state3b/h02000000.bin +libexec/installed-tests/swtpm/data/tpm2state3b/h81000000.bin +libexec/installed-tests/swtpm/data/tpm2state3b/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state3b/tpm2-00.volatilestate +libexec/installed-tests/swtpm/data/tpm2state3c/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state3c/tpm2-00.volatilestate +libexec/installed-tests/swtpm/data/tpm2state3d/signature2.bin +libexec/installed-tests/swtpm/data/tpm2state3d/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state3d/tpm2-00.volatilestate +libexec/installed-tests/swtpm/data/tpm2state4/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state4/tpm2-00.volatilestate +libexec/installed-tests/swtpm/data/tpm2state5/signature.bin +libexec/installed-tests/swtpm/data/tpm2state5/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpm2state6/tpm2-00.permall +libexec/installed-tests/swtpm/data/tpmstate1/README +libexec/installed-tests/swtpm/data/tpmstate1/tpm-00.permall +libexec/installed-tests/swtpm/data/tpmstate1/tpm-00.volatilestate +libexec/installed-tests/swtpm/data/tpmstate2/README +libexec/installed-tests/swtpm/data/tpmstate2/pwdfile.txt +libexec/installed-tests/swtpm/data/tpmstate2/tpm-00.permall +libexec/installed-tests/swtpm/data/tpmstate2/tpm-00.volatilestate +libexec/installed-tests/swtpm/data/tpmstate2b/pwdfile.txt +libexec/installed-tests/swtpm/data/tpmstate2b/tpm-00.permall +libexec/installed-tests/swtpm/data/tpmstate2b/tpm-00.volatilestate +libexec/installed-tests/swtpm/fileinstall +libexec/installed-tests/swtpm/installed-runner.sh +libexec/installed-tests/swtpm/load_vtpm_proxy +libexec/installed-tests/swtpm/patches/0001-Deactivate-test-cases-accessing-rootcerts.txt.patch +libexec/installed-tests/swtpm/patches/0002-Implement-powerup-for-swtpm.patch +libexec/installed-tests/swtpm/patches/0003-Set-CRYPTOLIBRARY-to-openssl.patch +libexec/installed-tests/swtpm/patches/0004-Store-and-restore-volatile-state-at-every-step.patch +libexec/installed-tests/swtpm/patches/0005-Disable-tests-related-to-events.patch +libexec/installed-tests/swtpm/patches/0010-Adjust-test-cases-for-OpenSSL-3.patch +libexec/installed-tests/swtpm/patches/0012-Disable-Nuvoton-commands.patch +libexec/installed-tests/swtpm/patches/libtpm.patch +libexec/installed-tests/swtpm/sed-inplace +libexec/installed-tests/swtpm/softhsm_setup +libexec/installed-tests/swtpm/swtpm_setup.conf +libexec/installed-tests/swtpm/test_clientfds.py +libexec/installed-tests/swtpm/test_commandline +libexec/installed-tests/swtpm/test_common +libexec/installed-tests/swtpm/test_config +libexec/installed-tests/swtpm/test_ctrlchannel2 +libexec/installed-tests/swtpm/test_ctrlchannel3 +libexec/installed-tests/swtpm/test_ctrlchannel4 +libexec/installed-tests/swtpm/test_cuse +libexec/installed-tests/swtpm/test_encrypted_state +libexec/installed-tests/swtpm/test_getcap +libexec/installed-tests/swtpm/test_hashing +libexec/installed-tests/swtpm/test_hashing2 +libexec/installed-tests/swtpm/test_init +libexec/installed-tests/swtpm/test_locality +libexec/installed-tests/swtpm/test_migration_key +libexec/installed-tests/swtpm/test_parameters +libexec/installed-tests/swtpm/test_print_capabilities +libexec/installed-tests/swtpm/test_print_states +libexec/installed-tests/swtpm/test_resume_volatile +libexec/installed-tests/swtpm/test_samples_create_tpmca +libexec/installed-tests/swtpm/test_save_load_encrypted_state +libexec/installed-tests/swtpm/test_save_load_state +libexec/installed-tests/swtpm/test_setbuffersize +libexec/installed-tests/swtpm/test_setdatafd.py +libexec/installed-tests/swtpm/test_swtpm_bios +libexec/installed-tests/swtpm/test_swtpm_cert +libexec/installed-tests/swtpm/test_swtpm_setup_create_cert +libexec/installed-tests/swtpm/test_swtpm_setup_file_backend +libexec/installed-tests/swtpm/test_swtpm_setup_misc +libexec/installed-tests/swtpm/test_swtpm_setup_overwrite +libexec/installed-tests/swtpm/test_tpm12 +libexec/installed-tests/swtpm/test_tpm2_avoid_da_lockout +libexec/installed-tests/swtpm/test_tpm2_chroot_chardev +libexec/installed-tests/swtpm/test_tpm2_chroot_cuse +libexec/installed-tests/swtpm/test_tpm2_chroot_socket +libexec/installed-tests/swtpm/test_tpm2_ctrlchannel2 +libexec/installed-tests/swtpm/test_tpm2_ctrlchannel3 +libexec/installed-tests/swtpm/test_tpm2_derived_keys +libexec/installed-tests/swtpm/test_tpm2_encrypted_state +libexec/installed-tests/swtpm/test_tpm2_file_permissions +libexec/installed-tests/swtpm/test_tpm2_getcap +libexec/installed-tests/swtpm/test_tpm2_hashing +libexec/installed-tests/swtpm/test_tpm2_hashing2 +libexec/installed-tests/swtpm/test_tpm2_hashing3 +libexec/installed-tests/swtpm/test_tpm2_ibmtss2 +libexec/installed-tests/swtpm/test_tpm2_init +libexec/installed-tests/swtpm/test_tpm2_libtpms_versions_profiles +libexec/installed-tests/swtpm/test_tpm2_locality +libexec/installed-tests/swtpm/test_tpm2_migration_key +libexec/installed-tests/swtpm/test_tpm2_parameters +libexec/installed-tests/swtpm/test_tpm2_partial_reads +libexec/installed-tests/swtpm/test_tpm2_print_capabilities +libexec/installed-tests/swtpm/test_tpm2_print_states +libexec/installed-tests/swtpm/test_tpm2_probe +libexec/installed-tests/swtpm/test_tpm2_resume_volatile +libexec/installed-tests/swtpm/test_tpm2_save_load_encrypted_state +libexec/installed-tests/swtpm/test_tpm2_save_load_state +libexec/installed-tests/swtpm/test_tpm2_save_load_state_2 +libexec/installed-tests/swtpm/test_tpm2_save_load_state_2_block +libexec/installed-tests/swtpm/test_tpm2_save_load_state_2_linear +libexec/installed-tests/swtpm/test_tpm2_save_load_state_3 +libexec/installed-tests/swtpm/test_tpm2_save_load_state_da_timeout +libexec/installed-tests/swtpm/test_tpm2_save_load_state_locking +libexec/installed-tests/swtpm/test_tpm2_savestate +libexec/installed-tests/swtpm/test_tpm2_setbuffersize +libexec/installed-tests/swtpm/test_tpm2_swtpm_bios +libexec/installed-tests/swtpm/test_tpm2_swtpm_cert +libexec/installed-tests/swtpm/test_tpm2_swtpm_cert_ecc +libexec/installed-tests/swtpm/test_tpm2_swtpm_localca +libexec/installed-tests/swtpm/test_tpm2_swtpm_localca_pkcs11.test +libexec/installed-tests/swtpm/test_tpm2_swtpm_setup_create_cert +libexec/installed-tests/swtpm/test_tpm2_swtpm_setup_overwrite +libexec/installed-tests/swtpm/test_tpm2_swtpm_setup_profile +libexec/installed-tests/swtpm/test_tpm2_swtpm_setup_profile_name +libexec/installed-tests/swtpm/test_tpm2_volatilestate +libexec/installed-tests/swtpm/test_tpm2_vtpm_proxy +libexec/installed-tests/swtpm/test_tpm2_wrongorder +libexec/installed-tests/swtpm/test_tpm_probe +libexec/installed-tests/swtpm/test_volatilestate +libexec/installed-tests/swtpm/test_vtpm_proxy +libexec/installed-tests/swtpm/test_wrongorder +libexec/installed-tests/swtpm/tests share/man/man3/swtpm_ioctls.3.gz share/man/man5/swtpm-localca.conf.5.gz share/man/man5/swtpm-localca.options.5.gz diff --git a/sysutils/terraform-switcher/Makefile b/sysutils/terraform-switcher/Makefile index 86b1c5bcf81d..e515008abe1d 100644 --- a/sysutils/terraform-switcher/Makefile +++ b/sysutils/terraform-switcher/Makefile @@ -1,6 +1,6 @@ PORTNAME= terraform-switcher DISTVERSIONPREFIX= v -DISTVERSION= 1.4.4 +DISTVERSION= 1.4.5 CATEGORIES= sysutils MAINTAINER= dutra@FreeBSD.org diff --git a/sysutils/terraform-switcher/distinfo b/sysutils/terraform-switcher/distinfo index f84d58def37c..c00e4e3e1387 100644 --- a/sysutils/terraform-switcher/distinfo +++ b/sysutils/terraform-switcher/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1745258026 -SHA256 (go/sysutils_terraform-switcher/terraform-switcher-v1.4.4/v1.4.4.mod) = 4d9ad3db0e5ef623291c8f66982b59b4410a2acbb6638feae0dffb78555089e6 -SIZE (go/sysutils_terraform-switcher/terraform-switcher-v1.4.4/v1.4.4.mod) = 2445 -SHA256 (go/sysutils_terraform-switcher/terraform-switcher-v1.4.4/v1.4.4.zip) = e962afd84059be45b9ccf6ac2adfe74a3435b093c863a79381d703f85ff50be0 -SIZE (go/sysutils_terraform-switcher/terraform-switcher-v1.4.4/v1.4.4.zip) = 4895648 +TIMESTAMP = 1747441416 +SHA256 (go/sysutils_terraform-switcher/terraform-switcher-v1.4.5/v1.4.5.mod) = cab217815f250766b58140e2029f1e4e8646380a9f75fd87175c3df4910ee9dc +SIZE (go/sysutils_terraform-switcher/terraform-switcher-v1.4.5/v1.4.5.mod) = 2337 +SHA256 (go/sysutils_terraform-switcher/terraform-switcher-v1.4.5/v1.4.5.zip) = 37404b4eccedf57430f4328a56f7eca1f1e7c5d6cbde243f6d9e95e167bdda17 +SIZE (go/sysutils_terraform-switcher/terraform-switcher-v1.4.5/v1.4.5.zip) = 4894620 diff --git a/sysutils/x86info/Makefile b/sysutils/x86info/Makefile index 1c26bbd12318..7e8f2c09720a 100644 --- a/sysutils/x86info/Makefile +++ b/sysutils/x86info/Makefile @@ -10,6 +10,9 @@ WWW= https://github.com/kernelslacker/x86info LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING +DEPRECATED= Abandoned upstream, fails to identify anything remotely new according to upstream issue reports +EXPIRATION_DATE=2025-06-30 + LIB_DEPENDS= libpci.so:devel/libpci ONLY_FOR_ARCHS= i386 amd64 diff --git a/textproc/diffstat/Makefile b/textproc/diffstat/Makefile index a6c1aaf1c4a9..49e28c31496d 100644 --- a/textproc/diffstat/Makefile +++ b/textproc/diffstat/Makefile @@ -1,5 +1,5 @@ PORTNAME= diffstat -PORTVERSION= 1.67 +PORTVERSION= 1.68 CATEGORIES= textproc devel MASTER_SITES= https://invisible-mirror.net/archives/${PORTNAME}/ \ https://invisible-mirror.net/archives/${PORTNAME}/ diff --git a/textproc/diffstat/distinfo b/textproc/diffstat/distinfo index ed060743b02e..6dfa4b5ffa13 100644 --- a/textproc/diffstat/distinfo +++ b/textproc/diffstat/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1731597135 -SHA256 (diffstat-1.67.tgz) = 760ed0c99c6d643238d41b80e60278cf1683ffb94a283954ac7ef168c852766a -SIZE (diffstat-1.67.tgz) = 307662 +TIMESTAMP = 1747299790 +SHA256 (diffstat-1.68.tgz) = 89f9294a8ac74fcef6f1b9ac408f43ebedf8d208e3efe0b99b4acc16dc6582c7 +SIZE (diffstat-1.68.tgz) = 308003 diff --git a/textproc/fblog/Makefile b/textproc/fblog/Makefile index 7368c0715fb8..cc7e7fb4c5c4 100644 --- a/textproc/fblog/Makefile +++ b/textproc/fblog/Makefile @@ -1,7 +1,6 @@ PORTNAME= fblog DISTVERSIONPREFIX= v -DISTVERSION= 4.13.1 -PORTREVISION= 5 +DISTVERSION= 4.14.0 CATEGORIES= textproc MAINTAINER= yuri@FreeBSD.org @@ -19,118 +18,133 @@ GH_ACCOUNT= brocode CARGO_CRATES= aho-corasick-1.1.3 \ android-tzdata-0.1.1 \ android_system_properties-0.1.5 \ - anstream-0.6.14 \ - anstyle-1.0.8 \ - anstyle-parse-0.2.4 \ - anstyle-query-1.0.3 \ - anstyle-wincon-3.0.3 \ - autocfg-1.3.0 \ - bitflags-2.5.0 \ + anstream-0.6.18 \ + anstyle-1.0.10 \ + anstyle-parse-0.2.6 \ + anstyle-query-1.1.2 \ + anstyle-wincon-3.0.7 \ + autocfg-1.4.0 \ + bitflags-2.9.1 \ block-buffer-0.10.4 \ - bstr-1.9.1 \ - bumpalo-3.16.0 \ - cc-1.0.98 \ + bstr-1.12.0 \ + bumpalo-3.17.0 \ + cc-1.2.22 \ cfg-if-1.0.0 \ - chrono-0.4.38 \ - clap-4.5.18 \ - clap_builder-4.5.18 \ - clap_complete-4.5.29 \ - clap_derive-4.5.18 \ - clap_lex-0.7.0 \ - colorchoice-1.0.1 \ - core-foundation-sys-0.8.6 \ - cpufeatures-0.2.12 \ + chrono-0.4.41 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ + clap_complete-4.5.50 \ + clap_derive-4.5.32 \ + clap_lex-0.7.4 \ + colorchoice-1.0.3 \ + core-foundation-sys-0.8.7 \ + cpufeatures-0.2.17 \ crypto-common-0.1.6 \ + darling-0.20.11 \ + darling_core-0.20.11 \ + darling_macro-0.20.11 \ + derive_builder-0.20.2 \ + derive_builder_core-0.20.2 \ + derive_builder_macro-0.20.2 \ digest-0.10.7 \ - dirs-5.0.1 \ - dirs-sys-0.4.1 \ - either-1.12.0 \ - equivalent-1.0.1 \ - errno-0.3.9 \ + dirs-6.0.0 \ + dirs-sys-0.5.0 \ + either-1.15.0 \ + env_home-0.1.0 \ + equivalent-1.0.2 \ + errno-0.3.11 \ + fnv-1.0.7 \ generic-array-0.14.7 \ - getrandom-0.2.15 \ - handlebars-6.1.0 \ - hashbrown-0.14.5 \ + getrandom-0.2.16 \ + handlebars-6.3.2 \ + hashbrown-0.15.3 \ heck-0.5.0 \ - home-0.5.9 \ - iana-time-zone-0.1.60 \ + iana-time-zone-0.1.63 \ iana-time-zone-haiku-0.1.2 \ - indexmap-2.2.6 \ - is_terminal_polyfill-1.70.0 \ - itoa-1.0.11 \ - js-sys-0.3.69 \ + ident_case-1.0.1 \ + indexmap-2.9.0 \ + is_terminal_polyfill-1.70.1 \ + itoa-1.0.15 \ + js-sys-0.3.77 \ lazy_static-1.5.0 \ - libc-0.2.155 \ + libc-0.2.172 \ libredox-0.1.3 \ - linux-raw-sys-0.4.14 \ - log-0.4.21 \ - lua-src-546.0.2 \ - luajit-src-210.5.8+5790d25 \ - memchr-2.7.2 \ - mlua-0.9.9 \ - mlua-sys-0.6.1 \ + linux-raw-sys-0.9.4 \ + lock_api-0.4.12 \ + log-0.4.27 \ + lua-src-547.0.0 \ + luajit-src-210.5.12+a4f56a4 \ + memchr-2.7.4 \ + mlua-0.10.3 \ + mlua-sys-0.6.7 \ + num-modular-0.6.1 \ + num-order-1.2.0 \ num-traits-0.2.19 \ - once_cell-1.19.0 \ + once_cell-1.21.3 \ option-ext-0.2.0 \ - pest-2.7.10 \ - pest_derive-2.7.10 \ - pest_generator-2.7.10 \ - pest_meta-2.7.10 \ - pkg-config-0.3.30 \ - proc-macro2-1.0.83 \ - quote-1.0.36 \ - redox_users-0.4.5 \ - regex-1.11.0 \ - regex-automata-0.4.8 \ + parking_lot-0.12.3 \ + parking_lot_core-0.9.10 \ + pest-2.8.0 \ + pest_derive-2.8.0 \ + pest_generator-2.8.0 \ + pest_meta-2.8.0 \ + pkg-config-0.3.32 \ + proc-macro2-1.0.95 \ + quote-1.0.40 \ + redox_syscall-0.5.12 \ + redox_users-0.5.0 \ + regex-1.11.1 \ + regex-automata-0.4.9 \ regex-syntax-0.8.5 \ - rustc-hash-2.0.0 \ - rustix-0.38.34 \ - ryu-1.0.18 \ - serde-1.0.210 \ - serde_derive-1.0.210 \ - serde_json-1.0.128 \ - serde_spanned-0.6.7 \ - sha2-0.10.8 \ + rustc-hash-2.1.1 \ + rustix-1.0.7 \ + rustversion-1.0.20 \ + ryu-1.0.20 \ + scopeguard-1.2.0 \ + serde-1.0.219 \ + serde_derive-1.0.219 \ + serde_json-1.0.140 \ + serde_spanned-0.6.8 \ + sha2-0.10.9 \ + shlex-1.3.0 \ + smallvec-1.15.0 \ strsim-0.11.1 \ - syn-2.0.65 \ - thiserror-1.0.61 \ - thiserror-impl-1.0.61 \ - toml-0.8.19 \ - toml_datetime-0.6.8 \ - toml_edit-0.22.20 \ - typenum-1.17.0 \ - ucd-trie-0.1.6 \ - unicode-ident-1.0.12 \ - utf8parse-0.2.1 \ - version_check-0.9.4 \ + syn-2.0.101 \ + thiserror-2.0.12 \ + thiserror-impl-2.0.12 \ + toml-0.8.22 \ + toml_datetime-0.6.9 \ + toml_edit-0.22.26 \ + toml_write-0.1.1 \ + typenum-1.18.0 \ + ucd-trie-0.1.7 \ + unicode-ident-1.0.18 \ + utf8parse-0.2.2 \ + version_check-0.9.5 \ 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 \ - which-6.0.1 \ - windows-core-0.52.0 \ - windows-sys-0.48.0 \ - windows-sys-0.52.0 \ - windows-targets-0.48.5 \ - windows-targets-0.52.5 \ - windows_aarch64_gnullvm-0.48.5 \ - windows_aarch64_gnullvm-0.52.5 \ - windows_aarch64_msvc-0.48.5 \ - windows_aarch64_msvc-0.52.5 \ - windows_i686_gnu-0.48.5 \ - windows_i686_gnu-0.52.5 \ - windows_i686_gnullvm-0.52.5 \ - windows_i686_msvc-0.48.5 \ - windows_i686_msvc-0.52.5 \ - windows_x86_64_gnu-0.48.5 \ - windows_x86_64_gnu-0.52.5 \ - windows_x86_64_gnullvm-0.48.5 \ - windows_x86_64_gnullvm-0.52.5 \ - windows_x86_64_msvc-0.48.5 \ - windows_x86_64_msvc-0.52.5 \ - winnow-0.6.18 \ + wasm-bindgen-0.2.100 \ + wasm-bindgen-backend-0.2.100 \ + wasm-bindgen-macro-0.2.100 \ + wasm-bindgen-macro-support-0.2.100 \ + wasm-bindgen-shared-0.2.100 \ + which-7.0.3 \ + windows-core-0.61.0 \ + windows-implement-0.60.0 \ + windows-interface-0.59.1 \ + windows-link-0.1.1 \ + windows-result-0.3.2 \ + windows-strings-0.4.0 \ + windows-sys-0.59.0 \ + windows-targets-0.52.6 \ + windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_msvc-0.52.6 \ + windows_i686_gnu-0.52.6 \ + windows_i686_gnullvm-0.52.6 \ + windows_i686_msvc-0.52.6 \ + windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_msvc-0.52.6 \ + winnow-0.7.10 \ winsafe-0.0.19 \ yansi-1.0.1 diff --git a/textproc/fblog/distinfo b/textproc/fblog/distinfo index 1e6e9ade53f3..d2fae8a09c73 100644 --- a/textproc/fblog/distinfo +++ b/textproc/fblog/distinfo @@ -1,237 +1,267 @@ -TIMESTAMP = 1729809892 +TIMESTAMP = 1747374568 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311 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.6.14.crate) = 418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b -SIZE (rust/crates/anstream-0.6.14.crate) = 29160 -SHA256 (rust/crates/anstyle-1.0.8.crate) = 1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1 -SIZE (rust/crates/anstyle-1.0.8.crate) = 15771 -SHA256 (rust/crates/anstyle-parse-0.2.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/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0 -SIZE (rust/crates/autocfg-1.3.0.crate) = 16524 -SHA256 (rust/crates/bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1 -SIZE (rust/crates/bitflags-2.5.0.crate) = 43821 +SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b +SIZE (rust/crates/anstream-0.6.18.crate) = 29681 +SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9 +SIZE (rust/crates/anstyle-1.0.10.crate) = 15725 +SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9 +SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343 +SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c +SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969 +SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e +SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967 +SIZE (rust/crates/bitflags-2.9.1.crate) = 47913 SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71 SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 -SHA256 (rust/crates/bstr-1.9.1.crate) = 05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706 -SIZE (rust/crates/bstr-1.9.1.crate) = 380305 -SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c -SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677 -SHA256 (rust/crates/cc-1.0.98.crate) = 41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f -SIZE (rust/crates/cc-1.0.98.crate) = 76780 +SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4 +SIZE (rust/crates/bstr-1.12.0.crate) = 351557 +SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf +SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 +SHA256 (rust/crates/cc-1.2.22.crate) = 32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1 +SIZE (rust/crates/cc-1.2.22.crate) = 106294 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/clap-4.5.18.crate) = b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3 -SIZE (rust/crates/clap-4.5.18.crate) = 56788 -SHA256 (rust/crates/clap_builder-4.5.18.crate) = 4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b -SIZE (rust/crates/clap_builder-4.5.18.crate) = 163582 -SHA256 (rust/crates/clap_complete-4.5.29.crate) = 8937760c3f4c60871870b8c3ee5f9b30771f792a7045c48bcbba999d7d6b3b8e -SIZE (rust/crates/clap_complete-4.5.29.crate) = 46969 -SHA256 (rust/crates/clap_derive-4.5.18.crate) = 4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab -SIZE (rust/crates/clap_derive-4.5.18.crate) = 30131 -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.1.crate) = 0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422 -SIZE (rust/crates/colorchoice-1.0.1.crate) = 7895 -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/chrono-0.4.41.crate) = c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d +SIZE (rust/crates/chrono-0.4.41.crate) = 234621 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 +SHA256 (rust/crates/clap_complete-4.5.50.crate) = c91d3baa3bcd889d60e6ef28874126a0b384fd225ab83aa6d8a801c519194ce1 +SIZE (rust/crates/clap_complete-4.5.50.crate) = 48292 +SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 +SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 +SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 +SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 +SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990 +SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923 +SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b +SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712 +SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280 +SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466 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.11.crate) = fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee +SIZE (rust/crates/darling-0.20.11.crate) = 37614 +SHA256 (rust/crates/darling_core-0.20.11.crate) = 0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e +SIZE (rust/crates/darling_core-0.20.11.crate) = 68006 +SHA256 (rust/crates/darling_macro-0.20.11.crate) = fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead +SIZE (rust/crates/darling_macro-0.20.11.crate) = 2532 +SHA256 (rust/crates/derive_builder-0.20.2.crate) = 507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947 +SIZE (rust/crates/derive_builder-0.20.2.crate) = 36661 +SHA256 (rust/crates/derive_builder_core-0.20.2.crate) = 2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8 +SIZE (rust/crates/derive_builder_core-0.20.2.crate) = 31397 +SHA256 (rust/crates/derive_builder_macro-0.20.2.crate) = ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c +SIZE (rust/crates/derive_builder_macro-0.20.2.crate) = 6360 SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 SIZE (rust/crates/digest-0.10.7.crate) = 19557 -SHA256 (rust/crates/dirs-5.0.1.crate) = 44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225 -SIZE (rust/crates/dirs-5.0.1.crate) = 12255 -SHA256 (rust/crates/dirs-sys-0.4.1.crate) = 520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c -SIZE (rust/crates/dirs-sys-0.4.1.crate) = 10719 -SHA256 (rust/crates/either-1.12.0.crate) = 3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b -SIZE (rust/crates/either-1.12.0.crate) = 18974 -SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 -SIZE (rust/crates/equivalent-1.0.1.crate) = 6615 -SHA256 (rust/crates/errno-0.3.9.crate) = 534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba -SIZE (rust/crates/errno-0.3.9.crate) = 10690 +SHA256 (rust/crates/dirs-6.0.0.crate) = c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e +SIZE (rust/crates/dirs-6.0.0.crate) = 14190 +SHA256 (rust/crates/dirs-sys-0.5.0.crate) = e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab +SIZE (rust/crates/dirs-sys-0.5.0.crate) = 10157 +SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719 +SIZE (rust/crates/either-1.15.0.crate) = 20114 +SHA256 (rust/crates/env_home-0.1.0.crate) = c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe +SIZE (rust/crates/env_home-0.1.0.crate) = 9006 +SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f +SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 +SHA256 (rust/crates/errno-0.3.11.crate) = 976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e +SIZE (rust/crates/errno-0.3.11.crate) = 12048 +SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 +SIZE (rust/crates/fnv-1.0.7.crate) = 11266 SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a SIZE (rust/crates/generic-array-0.14.7.crate) = 15950 -SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 -SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 -SHA256 (rust/crates/handlebars-6.1.0.crate) = ce25b617d1375ef96eeb920ae717e3da34a02fc979fe632c75128350f9e1f74a -SIZE (rust/crates/handlebars-6.1.0.crate) = 102479 -SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 -SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 +SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592 +SIZE (rust/crates/getrandom-0.2.16.crate) = 40163 +SHA256 (rust/crates/handlebars-6.3.2.crate) = 759e2d5aea3287cb1190c8ec394f42866cb5bf74fcbf213f354e3c856ea26098 +SIZE (rust/crates/handlebars-6.3.2.crate) = 105065 +SHA256 (rust/crates/hashbrown-0.15.3.crate) = 84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3 +SIZE (rust/crates/hashbrown-0.15.3.crate) = 140413 SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea SIZE (rust/crates/heck-0.5.0.crate) = 11517 -SHA256 (rust/crates/home-0.5.9.crate) = e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5 -SIZE (rust/crates/home-0.5.9.crate) = 8760 -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-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8 +SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919 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/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/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/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39 +SIZE (rust/crates/ident_case-1.0.1.crate) = 3492 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 +SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf +SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 +SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c +SIZE (rust/crates/itoa-1.0.15.crate) = 11231 +SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f +SIZE (rust/crates/js-sys-0.3.77.crate) = 55538 SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 -SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c -SIZE (rust/crates/libc-0.2.155.crate) = 743539 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d SIZE (rust/crates/libredox-0.1.3.crate) = 6068 -SHA256 (rust/crates/linux-raw-sys-0.4.14.crate) = 78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89 -SIZE (rust/crates/linux-raw-sys-0.4.14.crate) = 1826665 -SHA256 (rust/crates/log-0.4.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c -SIZE (rust/crates/log-0.4.21.crate) = 43442 -SHA256 (rust/crates/lua-src-546.0.2.crate) = 2da0daa7eee611a4c30c8f5ee31af55266e26e573971ba9336d2993e2da129b2 -SIZE (rust/crates/lua-src-546.0.2.crate) = 662628 -SHA256 (rust/crates/luajit-src-210.5.8+5790d25.crate) = 441f18d9ad792e871fc2f7f2cb8902c386f6f56fdbddef3b835b61475e375346 -SIZE (rust/crates/luajit-src-210.5.8+5790d25.crate) = 1011781 -SHA256 (rust/crates/memchr-2.7.2.crate) = 6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d -SIZE (rust/crates/memchr-2.7.2.crate) = 96220 -SHA256 (rust/crates/mlua-0.9.9.crate) = d111deb18a9c9bd33e1541309f4742523bfab01d276bfa9a27519f6de9c11dc7 -SIZE (rust/crates/mlua-0.9.9.crate) = 209245 -SHA256 (rust/crates/mlua-sys-0.6.1.crate) = a088ed0723df7567f569ba018c5d48c23c501f3878b190b04144dfa5ebfa8abc -SIZE (rust/crates/mlua-sys-0.6.1.crate) = 25296 +SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12 +SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088 +SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17 +SIZE (rust/crates/lock_api-0.4.12.crate) = 27591 +SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 +SIZE (rust/crates/log-0.4.27.crate) = 48120 +SHA256 (rust/crates/lua-src-547.0.0.crate) = 1edaf29e3517b49b8b746701e5648ccb5785cde1c119062cbabbc5d5cd115e42 +SIZE (rust/crates/lua-src-547.0.0.crate) = 664219 +SHA256 (rust/crates/luajit-src-210.5.12+a4f56a4.crate) = b3a8e7962a5368d5f264d045a5a255e90f9aa3fc1941ae15a8d2940d42cac671 +SIZE (rust/crates/luajit-src-210.5.12+a4f56a4.crate) = 1014363 +SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 +SIZE (rust/crates/memchr-2.7.4.crate) = 96670 +SHA256 (rust/crates/mlua-0.10.3.crate) = d3f763c1041eff92ffb5d7169968a327e1ed2ebfe425dac0ee5a35f29082534b +SIZE (rust/crates/mlua-0.10.3.crate) = 220302 +SHA256 (rust/crates/mlua-sys-0.6.7.crate) = 1901c1a635a22fe9250ffcc4fcc937c16b47c2e9e71adba8784af8bca1f69594 +SIZE (rust/crates/mlua-sys-0.6.7.crate) = 28147 +SHA256 (rust/crates/num-modular-0.6.1.crate) = 17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f +SIZE (rust/crates/num-modular-0.6.1.crate) = 32328 +SHA256 (rust/crates/num-order-1.2.0.crate) = 537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6 +SIZE (rust/crates/num-order-1.2.0.crate) = 19500 SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 SIZE (rust/crates/num-traits-0.2.19.crate) = 51631 -SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92 -SIZE (rust/crates/once_cell-1.19.0.crate) = 33046 +SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d +SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 -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/pkg-config-0.3.30.crate) = d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec -SIZE (rust/crates/pkg-config-0.3.30.crate) = 20613 -SHA256 (rust/crates/proc-macro2-1.0.83.crate) = 0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43 -SIZE (rust/crates/proc-macro2-1.0.83.crate) = 48661 -SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7 -SIZE (rust/crates/quote-1.0.36.crate) = 28507 -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.11.0.crate) = 38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8 -SIZE (rust/crates/regex-1.11.0.crate) = 254059 -SHA256 (rust/crates/regex-automata-0.4.8.crate) = 368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3 -SIZE (rust/crates/regex-automata-0.4.8.crate) = 617784 +SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27 +SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860 +SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8 +SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406 +SHA256 (rust/crates/pest-2.8.0.crate) = 198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6 +SIZE (rust/crates/pest-2.8.0.crate) = 128955 +SHA256 (rust/crates/pest_derive-2.8.0.crate) = d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5 +SIZE (rust/crates/pest_derive-2.8.0.crate) = 42196 +SHA256 (rust/crates/pest_generator-2.8.0.crate) = db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841 +SIZE (rust/crates/pest_generator-2.8.0.crate) = 18617 +SHA256 (rust/crates/pest_meta-2.8.0.crate) = 7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0 +SIZE (rust/crates/pest_meta-2.8.0.crate) = 42931 +SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c +SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370 +SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 +SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 +SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d +SIZE (rust/crates/quote-1.0.40.crate) = 31063 +SHA256 (rust/crates/redox_syscall-0.5.12.crate) = 928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af +SIZE (rust/crates/redox_syscall-0.5.12.crate) = 29544 +SHA256 (rust/crates/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b +SIZE (rust/crates/redox_users-0.5.0.crate) = 15586 +SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 +SIZE (rust/crates/regex-1.11.1.crate) = 254170 +SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908 +SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525 SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541 -SHA256 (rust/crates/rustc-hash-2.0.0.crate) = 583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152 -SIZE (rust/crates/rustc-hash-2.0.0.crate) = 12691 -SHA256 (rust/crates/rustix-0.38.34.crate) = 70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f -SIZE (rust/crates/rustix-0.38.34.crate) = 365160 -SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f -SIZE (rust/crates/ryu-1.0.18.crate) = 47713 -SHA256 (rust/crates/serde-1.0.210.crate) = c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a -SIZE (rust/crates/serde-1.0.210.crate) = 78338 -SHA256 (rust/crates/serde_derive-1.0.210.crate) = 243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f -SIZE (rust/crates/serde_derive-1.0.210.crate) = 56020 -SHA256 (rust/crates/serde_json-1.0.128.crate) = 6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8 -SIZE (rust/crates/serde_json-1.0.128.crate) = 149520 -SHA256 (rust/crates/serde_spanned-0.6.7.crate) = eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d -SIZE (rust/crates/serde_spanned-0.6.7.crate) = 9164 -SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8 -SIZE (rust/crates/sha2-0.10.8.crate) = 26357 +SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d +SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154 +SHA256 (rust/crates/rustix-1.0.7.crate) = c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266 +SIZE (rust/crates/rustix-1.0.7.crate) = 414500 +SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2 +SIZE (rust/crates/rustversion-1.0.20.crate) = 20666 +SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f +SIZE (rust/crates/ryu-1.0.20.crate) = 48738 +SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 +SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 +SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6 +SIZE (rust/crates/serde-1.0.219.crate) = 78983 +SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 +SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 +SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 +SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 +SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1 +SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330 +SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283 +SIZE (rust/crates/sha2-0.10.9.crate) = 29271 +SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 +SIZE (rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (rust/crates/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9 +SIZE (rust/crates/smallvec-1.15.0.crate) = 38113 SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f SIZE (rust/crates/strsim-0.11.1.crate) = 14266 -SHA256 (rust/crates/syn-2.0.65.crate) = d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106 -SIZE (rust/crates/syn-2.0.65.crate) = 264863 -SHA256 (rust/crates/thiserror-1.0.61.crate) = c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709 -SIZE (rust/crates/thiserror-1.0.61.crate) = 21264 -SHA256 (rust/crates/thiserror-impl-1.0.61.crate) = 46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533 -SIZE (rust/crates/thiserror-impl-1.0.61.crate) = 15786 -SHA256 (rust/crates/toml-0.8.19.crate) = a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e -SIZE (rust/crates/toml-0.8.19.crate) = 50974 -SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41 -SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028 -SHA256 (rust/crates/toml_edit-0.22.20.crate) = 583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d -SIZE (rust/crates/toml_edit-0.22.20.crate) = 106726 -SHA256 (rust/crates/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-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b -SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168 -SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a -SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435 -SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f -SIZE (rust/crates/version_check-0.9.4.crate) = 14895 +SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf +SIZE (rust/crates/syn-2.0.101.crate) = 299250 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 +SHA256 (rust/crates/toml-0.8.22.crate) = 05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae +SIZE (rust/crates/toml-0.8.22.crate) = 76224 +SHA256 (rust/crates/toml_datetime-0.6.9.crate) = 3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3 +SIZE (rust/crates/toml_datetime-0.6.9.crate) = 12622 +SHA256 (rust/crates/toml_edit-0.22.26.crate) = 310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e +SIZE (rust/crates/toml_edit-0.22.26.crate) = 121714 +SHA256 (rust/crates/toml_write-0.1.1.crate) = bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076 +SIZE (rust/crates/toml_write-0.1.1.crate) = 17467 +SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f +SIZE (rust/crates/typenum-1.18.0.crate) = 74871 +SHA256 (rust/crates/ucd-trie-0.1.7.crate) = 2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971 +SIZE (rust/crates/ucd-trie-0.1.7.crate) = 46795 +SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 +SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 +SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 +SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499 +SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a +SIZE (rust/crates/version_check-0.9.5.crate) = 15554 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.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/which-6.0.1.crate) = 8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7 -SIZE (rust/crates/which-6.0.1.crate) = 16542 -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.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.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.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.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.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.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.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.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0 -SIZE (rust/crates/windows_x86_64_msvc-0.52.5.crate) = 827905 -SHA256 (rust/crates/winnow-0.6.18.crate) = 68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f -SIZE (rust/crates/winnow-0.6.18.crate) = 163357 +SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5 +SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288 +SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6 +SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111 +SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407 +SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d +SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570 +SHA256 (rust/crates/which-7.0.3.crate) = 24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762 +SIZE (rust/crates/which-7.0.3.crate) = 18872 +SHA256 (rust/crates/windows-core-0.61.0.crate) = 4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980 +SIZE (rust/crates/windows-core-0.61.0.crate) = 36707 +SHA256 (rust/crates/windows-implement-0.60.0.crate) = a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836 +SIZE (rust/crates/windows-implement-0.60.0.crate) = 15073 +SHA256 (rust/crates/windows-interface-0.59.1.crate) = bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8 +SIZE (rust/crates/windows-interface-0.59.1.crate) = 11735 +SHA256 (rust/crates/windows-link-0.1.1.crate) = 76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38 +SIZE (rust/crates/windows-link-0.1.1.crate) = 6154 +SHA256 (rust/crates/windows-result-0.3.2.crate) = c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252 +SIZE (rust/crates/windows-result-0.3.2.crate) = 13399 +SHA256 (rust/crates/windows-strings-0.4.0.crate) = 7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97 +SIZE (rust/crates/windows-strings-0.4.0.crate) = 13939 +SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b +SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 +SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 +SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 +SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 +SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b +SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 +SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 +SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 +SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d +SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec +SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 +SHA256 (rust/crates/winnow-0.7.10.crate) = c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec +SIZE (rust/crates/winnow-0.7.10.crate) = 176073 SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904 SIZE (rust/crates/winsafe-0.0.19.crate) = 492820 SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049 SIZE (rust/crates/yansi-1.0.1.crate) = 75497 -SHA256 (brocode-fblog-v4.13.1_GH0.tar.gz) = 0212dd590cdcb4794a44ea79535ba298c1e971bb344a248fb84528777b0998f1 -SIZE (brocode-fblog-v4.13.1_GH0.tar.gz) = 407037 +SHA256 (brocode-fblog-v4.14.0_GH0.tar.gz) = 1474b5fc511e52635d0e95ebd3e139f702794c1570286fd01f6b93ce82282c85 +SIZE (brocode-fblog-v4.14.0_GH0.tar.gz) = 407288 diff --git a/textproc/fzf/Makefile b/textproc/fzf/Makefile index 346d321c10a5..2f1bc8578a87 100644 --- a/textproc/fzf/Makefile +++ b/textproc/fzf/Makefile @@ -1,6 +1,6 @@ PORTNAME= fzf DISTVERSIONPREFIX= v -DISTVERSION= 0.61.1 +DISTVERSION= 0.61.2 CATEGORIES= textproc MASTER_SITES= https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${DISTVERSIONFULL}/:gomod DISTFILES= go.mod:gomod @@ -21,7 +21,7 @@ GH_PROJECT= fzf GO_MODULE= github.com/junegunn/fzf GO_BUILDFLAGS= -ldflags="-X main.version=${DISTVERSION} -X main.revision=${COMMIT_ID} -s -w" -COMMIT_ID= 93cb375 +COMMIT_ID= 90ad1b7 PLIST_FILES= bin/fzf share/man/man1/fzf.1.gz diff --git a/textproc/fzf/distinfo b/textproc/fzf/distinfo index 4c89023e9228..3c60274ecc1b 100644 --- a/textproc/fzf/distinfo +++ b/textproc/fzf/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1747046301 -SHA256 (go/textproc_fzf/junegunn-fzf-v0.61.1_GH0/go.mod) = d28136ddcb65827d87be980ad5387e4aeee3f01edcb3f0c74aa031b895ae4f55 -SIZE (go/textproc_fzf/junegunn-fzf-v0.61.1_GH0/go.mod) = 527 -SHA256 (go/textproc_fzf/junegunn-fzf-v0.61.1_GH0/junegunn-fzf-v0.61.1_GH0.tar.gz) = 702e1886dab359a1dab361b372c1ac05b2a1ed5d916aa0fbc08e8269a53a5171 -SIZE (go/textproc_fzf/junegunn-fzf-v0.61.1_GH0/junegunn-fzf-v0.61.1_GH0.tar.gz) = 331027 +TIMESTAMP = 1747219243 +SHA256 (go/textproc_fzf/junegunn-fzf-v0.61.2_GH0/go.mod) = d28136ddcb65827d87be980ad5387e4aeee3f01edcb3f0c74aa031b895ae4f55 +SIZE (go/textproc_fzf/junegunn-fzf-v0.61.2_GH0/go.mod) = 527 +SHA256 (go/textproc_fzf/junegunn-fzf-v0.61.2_GH0/junegunn-fzf-v0.61.2_GH0.tar.gz) = 15a2d8b9bcd9cf85219f02f3cf750c45acd3d5901ce69a7dcdb9db3e12f36a90 +SIZE (go/textproc_fzf/junegunn-fzf-v0.61.2_GH0/junegunn-fzf-v0.61.2_GH0.tar.gz) = 331925 diff --git a/textproc/harper/Makefile b/textproc/harper/Makefile index da37fab8ef1c..08f660664e5e 100644 --- a/textproc/harper/Makefile +++ b/textproc/harper/Makefile @@ -1,6 +1,6 @@ PORTNAME= harper DISTVERSIONPREFIX= v -DISTVERSION= 0.34.1 +DISTVERSION= 0.36.0 CATEGORIES= textproc MAINTAINER= ashish@FreeBSD.org diff --git a/textproc/harper/Makefile.crates b/textproc/harper/Makefile.crates index dde09a898a68..ae4d54255ad1 100644 --- a/textproc/harper/Makefile.crates +++ b/textproc/harper/Makefile.crates @@ -36,8 +36,8 @@ CARGO_CRATES= addr2line-0.24.2 \ ciborium-0.2.2 \ ciborium-io-0.2.2 \ ciborium-ll-0.2.2 \ - clap-4.5.37 \ - clap_builder-4.5.37 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ clap_derive-4.5.32 \ clap_lex-0.7.4 \ colorchoice-1.0.3 \ @@ -171,7 +171,7 @@ CARGO_CRATES= addr2line-0.24.2 \ pulldown-cmark-0.13.0 \ pulldown-cmark-escape-0.11.0 \ quickcheck-1.0.3 \ - quickcheck_macros-1.0.0 \ + quickcheck_macros-1.1.0 \ quinn-0.11.6 \ quinn-proto-0.11.9 \ quinn-udp-0.5.10 \ @@ -220,7 +220,6 @@ CARGO_CRATES= addr2line-0.24.2 \ strum-0.27.1 \ strum_macros-0.27.1 \ subtle-2.6.1 \ - syn-1.0.109 \ syn-2.0.96 \ sync_wrapper-1.0.2 \ synstructure-0.13.1 \ @@ -235,7 +234,7 @@ CARGO_CRATES= addr2line-0.24.2 \ tinytemplate-1.2.1 \ tinyvec-1.9.0 \ tinyvec_macros-0.1.1 \ - tokio-1.44.2 \ + tokio-1.45.0 \ tokio-macros-2.5.0 \ tokio-rustls-0.26.2 \ tokio-util-0.7.13 \ diff --git a/textproc/harper/distinfo b/textproc/harper/distinfo index e20be3433a26..8c6cd00f9899 100644 --- a/textproc/harper/distinfo +++ b/textproc/harper/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746817926 +TIMESTAMP = 1747380114 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -75,10 +75,10 @@ SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce369 SIZE (rust/crates/ciborium-io-0.2.2.crate) = 6697 SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9 SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695 -SHA256 (rust/crates/clap-4.5.37.crate) = eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071 -SIZE (rust/crates/clap-4.5.37.crate) = 56962 -SHA256 (rust/crates/clap_builder-4.5.37.crate) = efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2 -SIZE (rust/crates/clap_builder-4.5.37.crate) = 168761 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 @@ -345,8 +345,8 @@ SHA256 (rust/crates/pulldown-cmark-escape-0.11.0.crate) = 007d8adb5ddab6f8e3f491 SIZE (rust/crates/pulldown-cmark-escape-0.11.0.crate) = 6719 SHA256 (rust/crates/quickcheck-1.0.3.crate) = 588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6 SIZE (rust/crates/quickcheck-1.0.3.crate) = 28069 -SHA256 (rust/crates/quickcheck_macros-1.0.0.crate) = b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9 -SIZE (rust/crates/quickcheck_macros-1.0.0.crate) = 5275 +SHA256 (rust/crates/quickcheck_macros-1.1.0.crate) = f71ee38b42f8459a88d3362be6f9b841ad2d5421844f61eb1c59c11bff3ac14a +SIZE (rust/crates/quickcheck_macros-1.1.0.crate) = 11744 SHA256 (rust/crates/quinn-0.11.6.crate) = 62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef SIZE (rust/crates/quinn-0.11.6.crate) = 78222 SHA256 (rust/crates/quinn-proto-0.11.9.crate) = a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d @@ -443,8 +443,6 @@ SHA256 (rust/crates/strum_macros-0.27.1.crate) = c77a8c5abcaf0f9ce05d62342b7d298 SIZE (rust/crates/strum_macros-0.27.1.crate) = 29670 SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292 SIZE (rust/crates/subtle-2.6.1.crate) = 14562 -SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 -SIZE (rust/crates/syn-1.0.109.crate) = 237611 SHA256 (rust/crates/syn-2.0.96.crate) = d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80 SIZE (rust/crates/syn-2.0.96.crate) = 297497 SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263 @@ -473,8 +471,8 @@ SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7 SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137 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.44.2.crate) = e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48 -SIZE (rust/crates/tokio-1.44.2.crate) = 841618 +SHA256 (rust/crates/tokio-1.45.0.crate) = 2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165 +SIZE (rust/crates/tokio-1.45.0.crate) = 800721 SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b @@ -713,5 +711,5 @@ SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19d SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 -SHA256 (Automattic-harper-v0.34.1_GH0.tar.gz) = bfc20385a67a1094221d2c34dd6895f9517e5037b814cc8749771d04be51f68e -SIZE (Automattic-harper-v0.34.1_GH0.tar.gz) = 3805183 +SHA256 (Automattic-harper-v0.36.0_GH0.tar.gz) = 426a0432e59c04cd14173c5e301bc5122344e4a2099bc5a2baaf70f43ffd51ca +SIZE (Automattic-harper-v0.36.0_GH0.tar.gz) = 3815549 diff --git a/textproc/libxslt/Makefile b/textproc/libxslt/Makefile index 17dc9fcb9408..ff4d2c528dd3 100644 --- a/textproc/libxslt/Makefile +++ b/textproc/libxslt/Makefile @@ -1,18 +1,15 @@ PORTNAME= libxslt -DISTVERSION= 1.1.42 +DISTVERSION= 1.1.43 CATEGORIES= textproc gnome MASTER_SITES= GNOME/sources/${PORTNAME}/${DISTVERSION:R}/ DIST_SUBDIR= gnome -PATCH_SITES= https://gitlab.gnome.org/GNOME/libxslt/-/commit/ -PATCHFILES= bf59c338121b8b45d66ba6ecea69ad498015c396.patch:-p1 - MAINTAINER= desktop@FreeBSD.org COMMENT= XML stylesheet transformation library WWW= https://gitlab.gnome.org/GNOME/libxslt/ LICENSE= MIT -LICENSE_FILE= ${WRKSRC}/COPYING +LICENSE_FILE= ${WRKSRC}/Copyright # See note in textproc/libxml2 for why this port uses autotools USES= cpe gmake gnome libtool localbase:ldflags pathfix pkgconfig tar:xz @@ -27,16 +24,19 @@ TEST_TARGET= check PLIST_SUB= LIBVERSION=${PORTVERSION} -OPTIONS_DEFINE= CRYPTO STATIC -OPTIONS_DEFAULT= CRYPTO STATIC +OPTIONS_DEFINE= CRYPTO PLUGINS STATIC +OPTIONS_DEFAULT= CRYPTO PLUGINS STATIC OPTIONS_SUB= yes CRYPTO_DESC= Enable crypto support +PLUGINS_DESC= Enable dynamically-loaded plugins support CRYPTO_LIB_DEPENDS= libgcrypt.so:security/libgcrypt \ libgpg-error.so:security/libgpg-error CRYPTO_CONFIGURE_WITH= crypto +PLUGINS_CONFIGURE_WITH= plugins + STATIC_CONFIGURE_ENABLE= static .include <bsd.port.mk> diff --git a/textproc/libxslt/distinfo b/textproc/libxslt/distinfo index 82c1f45643e7..164bc0aab94d 100644 --- a/textproc/libxslt/distinfo +++ b/textproc/libxslt/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1740975033 -SHA256 (gnome/libxslt-1.1.42.tar.xz) = 85ca62cac0d41fc77d3f6033da9df6fd73d20ea2fc18b0a3609ffb4110e1baeb -SIZE (gnome/libxslt-1.1.42.tar.xz) = 1573668 -SHA256 (gnome/bf59c338121b8b45d66ba6ecea69ad498015c396.patch) = 6acb468675339f3d882fb8180608977625f9eded1e9653387833e23212bf9d3c -SIZE (gnome/bf59c338121b8b45d66ba6ecea69ad498015c396.patch) = 8454 +TIMESTAMP = 1747170090 +SHA256 (gnome/libxslt-1.1.43.tar.xz) = 5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a +SIZE (gnome/libxslt-1.1.43.tar.xz) = 1518364 diff --git a/textproc/libxslt/pkg-plist b/textproc/libxslt/pkg-plist index ce3d8ff24fa5..05b5430a3085 100644 --- a/textproc/libxslt/pkg-plist +++ b/textproc/libxslt/pkg-plist @@ -29,7 +29,7 @@ lib/cmake/libxslt/libxslt-config.cmake %%STATIC%%lib/libexslt.a lib/libexslt.so lib/libexslt.so.0 -lib/libexslt.so.0.8.23 +lib/libexslt.so.0.8.24 %%STATIC%%lib/libxslt.a lib/libxslt.so lib/libxslt.so.1 @@ -78,4 +78,4 @@ share/gtk-doc/html/libxslt/up.png share/man/man1/xsltproc.1.gz share/man/man3/libexslt.3.gz share/man/man3/libxslt.3.gz -@dir lib/libxslt-plugins +%%PLUGINS%%@dir lib/libxslt-plugins diff --git a/textproc/nerdlog/Makefile b/textproc/nerdlog/Makefile index bc0939f962a1..deb6ae6d8f44 100644 --- a/textproc/nerdlog/Makefile +++ b/textproc/nerdlog/Makefile @@ -1,6 +1,6 @@ PORTNAME= nerdlog DISTVERSIONPREFIX= v -DISTVERSION= 1.6.0 +DISTVERSION= 1.7.2 CATEGORIES= textproc MAINTAINER= lwhsu@FreeBSD.org diff --git a/textproc/nerdlog/distinfo b/textproc/nerdlog/distinfo index cbf9a2a5896a..de88d91e34ee 100644 --- a/textproc/nerdlog/distinfo +++ b/textproc/nerdlog/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1746533765 -SHA256 (go/textproc_nerdlog/nerdlog-v1.6.0/v1.6.0.mod) = 84c90da8b68005e016c1cfb86a87ea46ed0dfa374d53dd0128ede3438f89e0ff -SIZE (go/textproc_nerdlog/nerdlog-v1.6.0/v1.6.0.mod) = 1211 -SHA256 (go/textproc_nerdlog/nerdlog-v1.6.0/v1.6.0.zip) = 099b21d3f460b3f065be1bf9358bfb3c6aac46b286cea5e3ef4861e9dec88f0d -SIZE (go/textproc_nerdlog/nerdlog-v1.6.0/v1.6.0.zip) = 2009588 +TIMESTAMP = 1747280855 +SHA256 (go/textproc_nerdlog/nerdlog-v1.7.2/v1.7.2.mod) = 84c90da8b68005e016c1cfb86a87ea46ed0dfa374d53dd0128ede3438f89e0ff +SIZE (go/textproc_nerdlog/nerdlog-v1.7.2/v1.7.2.mod) = 1211 +SHA256 (go/textproc_nerdlog/nerdlog-v1.7.2/v1.7.2.zip) = 51c057284a0153805c6c49bee0f52db8dcc6bcbc6f6e562096df434048786442 +SIZE (go/textproc_nerdlog/nerdlog-v1.7.2/v1.7.2.zip) = 2080263 diff --git a/textproc/obsidian/Makefile b/textproc/obsidian/Makefile index 9275459afd13..59270bc9568f 100644 --- a/textproc/obsidian/Makefile +++ b/textproc/obsidian/Makefile @@ -8,7 +8,7 @@ PORTNAME= obsidian PORTVERSION= 1.8.10 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= textproc # Icon is taken from the Nix build recipe # https://github.com/NixOS/nixpkgs/blob/de5448dab588ad41aef40f8c7c0c230981656698/pkgs/applications/misc/obsidian/default.nix#L31-L34 diff --git a/textproc/p5-Pod-Simple/Makefile b/textproc/p5-Pod-Simple/Makefile index a6fb4b161ecb..99dbf461640c 100644 --- a/textproc/p5-Pod-Simple/Makefile +++ b/textproc/p5-Pod-Simple/Makefile @@ -1,5 +1,5 @@ PORTNAME= Pod-Simple -PORTVERSION= 3.45 +PORTVERSION= 3.46 CATEGORIES= textproc devel perl5 MASTER_SITES= CPAN PKGNAMEPREFIX= p5- diff --git a/textproc/p5-Pod-Simple/distinfo b/textproc/p5-Pod-Simple/distinfo index d794be91abc3..bfcafa14fe39 100644 --- a/textproc/p5-Pod-Simple/distinfo +++ b/textproc/p5-Pod-Simple/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1685162476 -SHA256 (Pod-Simple-3.45.tar.gz) = 8483bb95cd3e4307d66def092a3779f843af772482bfdc024e3e00d0c4db0cfa -SIZE (Pod-Simple-3.45.tar.gz) = 303973 +TIMESTAMP = 1747208270 +SHA256 (Pod-Simple-3.46.tar.gz) = 3d2b0e844f14a44d8269b38206abdfc07646af3c0db7dad733dddb84d826b9f0 +SIZE (Pod-Simple-3.46.tar.gz) = 305537 diff --git a/textproc/p5-Senna/Makefile b/textproc/p5-Senna/Makefile index 4e2c0b6ed002..c5f0073da946 100644 --- a/textproc/p5-Senna/Makefile +++ b/textproc/p5-Senna/Makefile @@ -15,9 +15,12 @@ LICENSE= LGPL21 BUILD_DEPENDS= ${RUN_DEPENDS} RUN_DEPENDS= senna-cfg:textproc/senna -USES= perl5 localbase +USES= localbase perl5 USE_PERL5= modbuild -CONFIGURE_ARGS+=</dev/null + +CONFIGURE_ARGS+= </dev/null + +PORTSCOUT= skipv:0.60000 .include <bsd.port.options.mk> diff --git a/textproc/py-griffe/Makefile b/textproc/py-griffe/Makefile index 12b3b877f222..7f60a4c59c69 100644 --- a/textproc/py-griffe/Makefile +++ b/textproc/py-griffe/Makefile @@ -1,5 +1,5 @@ PORTNAME= griffe -DISTVERSION= 1.7.2 +DISTVERSION= 1.7.3 CATEGORIES= textproc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/textproc/py-griffe/distinfo b/textproc/py-griffe/distinfo index 39b73a368885..20e238218b35 100644 --- a/textproc/py-griffe/distinfo +++ b/textproc/py-griffe/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1743677214 -SHA256 (griffe-1.7.2.tar.gz) = 98d396d803fab3b680c2608f300872fd57019ed82f0672f5b5323a9ad18c540c -SIZE (griffe-1.7.2.tar.gz) = 394919 +TIMESTAMP = 1747319054 +SHA256 (griffe-1.7.3.tar.gz) = 52ee893c6a3a968b639ace8015bec9d36594961e156e23315c8e8e51401fa50b +SIZE (griffe-1.7.3.tar.gz) = 395137 diff --git a/textproc/py-jtextfsm/Makefile b/textproc/py-jtextfsm/Makefile index 678a1e8a79ac..0a08c60c58d7 100644 --- a/textproc/py-jtextfsm/Makefile +++ b/textproc/py-jtextfsm/Makefile @@ -11,6 +11,9 @@ WWW= https://github.com/jonathanslenders/textfsm LICENSE= APACHE20 +DEPRECATED= Upstream inactive for 9+ years and the port is now obsolete. Please use textproc/py-textfsm instead +EXPIRATION_DATE=2025-06-30 + USES= python USE_PYTHON= distutils autoplist NO_ARCH= yes diff --git a/textproc/ugrep/Makefile b/textproc/ugrep/Makefile index 40da66caca85..acad59609fdc 100644 --- a/textproc/ugrep/Makefile +++ b/textproc/ugrep/Makefile @@ -1,6 +1,6 @@ PORTNAME= ugrep DISTVERSIONPREFIX= v -DISTVERSION= 7.4.2 +DISTVERSION= 7.4.3 CATEGORIES= textproc MAINTAINER= ashish@FreeBSD.org diff --git a/textproc/ugrep/distinfo b/textproc/ugrep/distinfo index 1957c14828b4..9034df5d6c61 100644 --- a/textproc/ugrep/distinfo +++ b/textproc/ugrep/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745877498 -SHA256 (Genivia-ugrep-v7.4.2_GH0.tar.gz) = 402be01d327e4b65a0f93683bdb9859e4daa7aca29d85b00e668de4e42831c78 -SIZE (Genivia-ugrep-v7.4.2_GH0.tar.gz) = 7226491 +TIMESTAMP = 1747379588 +SHA256 (Genivia-ugrep-v7.4.3_GH0.tar.gz) = 105b495f4d2773802b5a71e2375ba07bca4e67fd6837e5fc1d00be5cf4938f16 +SIZE (Genivia-ugrep-v7.4.3_GH0.tar.gz) = 7227256 diff --git a/textproc/uncrustify/Makefile b/textproc/uncrustify/Makefile index 54c086296b1c..1dbbfe26acc2 100644 --- a/textproc/uncrustify/Makefile +++ b/textproc/uncrustify/Makefile @@ -1,5 +1,5 @@ PORTNAME= uncrustify -PORTVERSION= 0.80.1 +PORTVERSION= 0.81.0 DISTVERSIONPREFIX= ${PORTNAME}- CATEGORIES= textproc diff --git a/textproc/uncrustify/distinfo b/textproc/uncrustify/distinfo index cace8900986b..e4de925c2cf4 100644 --- a/textproc/uncrustify/distinfo +++ b/textproc/uncrustify/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1731875226 -SHA256 (uncrustify-uncrustify-uncrustify-0.80.1_GH0.tar.gz) = 0e2616ec2f78e12816388c513f7060072ff7942b42f1175eb28b24cb75aaec48 -SIZE (uncrustify-uncrustify-uncrustify-0.80.1_GH0.tar.gz) = 1772279 +TIMESTAMP = 1747432805 +SHA256 (uncrustify-uncrustify-uncrustify-0.81.0_GH0.tar.gz) = 484623dc16b92206adc6ac0770077c6c67c6e441102148c2a121a19549330ff9 +SIZE (uncrustify-uncrustify-uncrustify-0.81.0_GH0.tar.gz) = 1817801 diff --git a/textproc/wikiman/Makefile b/textproc/wikiman/Makefile index 8e82afa66567..dd8a96f201dd 100644 --- a/textproc/wikiman/Makefile +++ b/textproc/wikiman/Makefile @@ -1,6 +1,5 @@ PORTNAME= wikiman -DISTVERSION= 2.13.2 -PORTREVISION= 1 +DISTVERSION= 2.14.1 CATEGORIES= textproc MAINTAINER= filip@parag.rs diff --git a/textproc/wikiman/distinfo b/textproc/wikiman/distinfo index 115fdf9d4ba0..416b48c7d00d 100644 --- a/textproc/wikiman/distinfo +++ b/textproc/wikiman/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1694784000 -SHA256 (filiparag-wikiman-2.13.2_GH0.tar.gz) = f9d76ff056e152b70259c35377cfd85a1d506b096955037b2303e548ba5106b7 -SIZE (filiparag-wikiman-2.13.2_GH0.tar.gz) = 1373380 +TIMESTAMP = 1747242000 +SHA256 (filiparag-wikiman-2.14.1_GH0.tar.gz) = 5a8964b3200c7f9d1c05555fff81fc90f76e0624de7f1d14628933f3480333cb +SIZE (filiparag-wikiman-2.14.1_GH0.tar.gz) = 1377244 diff --git a/textproc/wikiman/pkg-plist b/textproc/wikiman/pkg-plist index 868bcda41fe1..3a1e9284f8b4 100644 --- a/textproc/wikiman/pkg-plist +++ b/textproc/wikiman/pkg-plist @@ -1,6 +1,7 @@ bin/wikiman share/man/man1/wikiman.1.gz %%DATADIR%%/sources/arch.sh +%%DATADIR%%/sources/devdocs.sh %%DATADIR%%/sources/fbsd.sh %%DATADIR%%/sources/gentoo.sh %%DATADIR%%/sources/man.sh diff --git a/www/chromium/Makefile b/www/chromium/Makefile index 83f18761e28a..7dd66eaf8686 100644 --- a/www/chromium/Makefile +++ b/www/chromium/Makefile @@ -1,6 +1,5 @@ PORTNAME= chromium -PORTVERSION= 136.0.7103.92 -PORTREVISION= 1 +PORTVERSION= 136.0.7103.113 PULSEMV= 16 PULSEV= ${PULSEMV}.1 CATEGORIES= www wayland diff --git a/www/chromium/distinfo b/www/chromium/distinfo index 8897a937751d..89fdf6cdec3c 100644 --- a/www/chromium/distinfo +++ b/www/chromium/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1746600351 -SHA256 (chromium-136.0.7103.92.tar.xz) = 3fa7f88ef186566948367bf1e9a9f0612e753fc69285c1654728f6a015cd4cf2 -SIZE (chromium-136.0.7103.92.tar.xz) = 7188412240 +TIMESTAMP = 1747298146 +SHA256 (chromium-136.0.7103.113.tar.xz) = 7c765bd13df842a28bb52279b8d711411ac6082151473e07bd70b9a482c0a0ac +SIZE (chromium-136.0.7103.113.tar.xz) = 7196537592 SHA256 (pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 SIZE (pulseaudio-16.1.tar.gz) = 2763111 -SHA256 (chromium-136.0.7103.92-testdata.tar.xz) = 6e5bb3fba5b61ffc9e91b9d2fc9cc758bebe4d16806a68b1a32b189193c78256 -SIZE (chromium-136.0.7103.92-testdata.tar.xz) = 651393856 +SHA256 (chromium-136.0.7103.113-testdata.tar.xz) = cbf264643986db5b7aa91843ea64a1b9e23d00bb226b234d4f60788469a58ef8 +SIZE (chromium-136.0.7103.113-testdata.tar.xz) = 651614116 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 a797353d5556..919aec74e31b 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,4 +1,4 @@ ---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-05-05 10:57:53 UTC +--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-05-15 08:40:59 UTC +++ third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -434,7 +434,7 @@ name: "AppTitle", @@ -45,7 +45,7 @@ status: "stable", public: true, base_feature: "none", -@@ -4636,7 +4636,7 @@ +@@ -4635,7 +4635,7 @@ name: "UnrestrictedSharedArrayBuffer", base_feature: "none", origin_trial_feature_name: "UnrestrictedSharedArrayBuffer", @@ -54,7 +54,7 @@ }, // Enables using policy-controlled feature "usb-unrestricted" to allow // isolated context to access protected USB interface classes and to -@@ -4811,7 +4811,7 @@ +@@ -4810,7 +4810,7 @@ { name: "WebAppScopeExtensions", origin_trial_feature_name: "WebAppScopeExtensions", @@ -63,7 +63,7 @@ status: "experimental", base_feature: "none", }, -@@ -5086,7 +5086,7 @@ +@@ -5085,7 +5085,7 @@ { name: "WebIdentityDigitalCredentials", origin_trial_feature_name: "WebIdentityDigitalCredentials", diff --git a/www/dokuwiki/Makefile b/www/dokuwiki/Makefile index eb1c2bda90f8..bb4f18db5594 100644 --- a/www/dokuwiki/Makefile +++ b/www/dokuwiki/Makefile @@ -16,7 +16,7 @@ LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING LICENSE_FILE_GPLv2+ = ${WRKSRC}/vendor/geshi/geshi/LICENSE LICENSE_FILE_MIT= ${WRKSRC}/vendor/composer/LICENSE -DIST_VER= ${PORTNAME}-2024-02-06b +DIST_VER= ${PORTNAME}-2025-05-14 USES= cpe php:web,flavors shebangfix tar:tgz USE_PHP= ctype filter gd iconv mbstring ldap pdo_mysql session simplexml xml zlib NO_ARCH= YES diff --git a/www/dokuwiki/distinfo b/www/dokuwiki/distinfo index 4761b07e5644..68ad36c6e7b1 100644 --- a/www/dokuwiki/distinfo +++ b/www/dokuwiki/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1722925621 -SHA256 (dokuwiki-2024-02-06b.tgz) = 7ac919bc298c049af15764f3563ec3012cd158945ef2a22348684df701a19ba3 -SIZE (dokuwiki-2024-02-06b.tgz) = 4206676 +TIMESTAMP = 1747474694 +SHA256 (dokuwiki-2025-05-14.tgz) = b913bf2cbea6fe9956c32572837617d4d8ee766d122155eb4722b24d526dacd4 +SIZE (dokuwiki-2025-05-14.tgz) = 4251299 diff --git a/www/dokuwiki/pkg-plist b/www/dokuwiki/pkg-plist index 21f45af86def..d4dab2c95ada 100644 --- a/www/dokuwiki/pkg-plist +++ b/www/dokuwiki/pkg-plist @@ -131,8 +131,9 @@ %%WWWDIR%%/inc/Feed/FeedItemProcessor.php %%WWWDIR%%/inc/Feed/FeedMediaProcessor.php %%WWWDIR%%/inc/Feed/FeedPageProcessor.php -%%WWWDIR%%/inc/FeedParser.php -%%WWWDIR%%/inc/FeedParserFile.php +%%WWWDIR%%/inc/Feed/FeedParser.php +%%WWWDIR%%/inc/Feed/FeedParserFile.php +%%WWWDIR%%/inc/Feed/FeedParserItem.php %%WWWDIR%%/inc/File/MediaFile.php %%WWWDIR%%/inc/File/MediaResolver.php %%WWWDIR%%/inc/File/PageFile.php @@ -164,6 +165,7 @@ %%WWWDIR%%/inc/Input/Input.php %%WWWDIR%%/inc/Input/Post.php %%WWWDIR%%/inc/Input/Server.php +%%WWWDIR%%/inc/Ip.php %%WWWDIR%%/inc/JWT.php %%WWWDIR%%/inc/JpegMeta.php %%WWWDIR%%/inc/Logger.php @@ -279,6 +281,16 @@ %%WWWDIR%%/inc/Subscriptions/SubscriberRegexBuilder.php %%WWWDIR%%/inc/Subscriptions/SubscriptionSender.php %%WWWDIR%%/inc/TaskRunner.php +%%WWWDIR%%/inc/TreeBuilder/AbstractBuilder.php +%%WWWDIR%%/inc/TreeBuilder/ControlPageBuilder.php +%%WWWDIR%%/inc/TreeBuilder/Node/AbstractNode.php +%%WWWDIR%%/inc/TreeBuilder/Node/ExternalLink.php +%%WWWDIR%%/inc/TreeBuilder/Node/Top.php +%%WWWDIR%%/inc/TreeBuilder/Node/WikiNamespace.php +%%WWWDIR%%/inc/TreeBuilder/Node/WikiPage.php +%%WWWDIR%%/inc/TreeBuilder/Node/WikiStartpage.php +%%WWWDIR%%/inc/TreeBuilder/PageTreeBuilder.php +%%WWWDIR%%/inc/TreeBuilder/TreeSort.php %%WWWDIR%%/inc/Ui/Admin.php %%WWWDIR%%/inc/Ui/Backlinks.php %%WWWDIR%%/inc/Ui/Diff.php @@ -497,6 +509,10 @@ %%WWWDIR%%/inc/lang/bn/editrev.txt %%WWWDIR%%/inc/lang/bn/index.txt %%WWWDIR%%/inc/lang/bn/lang.php +%%WWWDIR%%/inc/lang/br/admin.txt +%%WWWDIR%%/inc/lang/br/adminplugins.txt +%%WWWDIR%%/inc/lang/br/backlinks.txt +%%WWWDIR%%/inc/lang/br/conflict.txt %%WWWDIR%%/inc/lang/ca-valencia/admin.txt %%WWWDIR%%/inc/lang/ca-valencia/adminplugins.txt %%WWWDIR%%/inc/lang/ca-valencia/backlinks.txt @@ -1742,6 +1758,9 @@ %%WWWDIR%%/inc/lang/mk/recent.txt %%WWWDIR%%/inc/lang/mk/showrev.txt %%WWWDIR%%/inc/lang/ml/admin.txt +%%WWWDIR%%/inc/lang/ml/adminplugins.txt +%%WWWDIR%%/inc/lang/ml/backlinks.txt +%%WWWDIR%%/inc/lang/ml/conflict.txt %%WWWDIR%%/inc/lang/ml/jquery.ui.datepicker.js %%WWWDIR%%/inc/lang/mr/admin.txt %%WWWDIR%%/inc/lang/mr/backlinks.txt @@ -3277,6 +3296,7 @@ %%WWWDIR%%/lib/plugins/authpdo/lang/uk/settings.php %%WWWDIR%%/lib/plugins/authpdo/lang/vi/lang.php %%WWWDIR%%/lib/plugins/authpdo/lang/vi/settings.php +%%WWWDIR%%/lib/plugins/authpdo/lang/zh-tw/lang.php %%WWWDIR%%/lib/plugins/authpdo/lang/zh/lang.php %%WWWDIR%%/lib/plugins/authpdo/lang/zh/settings.php %%WWWDIR%%/lib/plugins/authpdo/plugin.info.txt @@ -3507,9 +3527,27 @@ %%WWWDIR%%/lib/plugins/config/plugin.info.txt %%WWWDIR%%/lib/plugins/config/settings/config.metadata.php %%WWWDIR%%/lib/plugins/config/style.css -%%WWWDIR%%/lib/plugins/extension/_test/extension.test.php +%%WWWDIR%%/lib/plugins/extension/Exception.php +%%WWWDIR%%/lib/plugins/extension/Extension.php +%%WWWDIR%%/lib/plugins/extension/Gui.php +%%WWWDIR%%/lib/plugins/extension/GuiAdmin.php +%%WWWDIR%%/lib/plugins/extension/GuiExtension.php +%%WWWDIR%%/lib/plugins/extension/Installer.php +%%WWWDIR%%/lib/plugins/extension/Local.php +%%WWWDIR%%/lib/plugins/extension/Manager.php +%%WWWDIR%%/lib/plugins/extension/Notice.php +%%WWWDIR%%/lib/plugins/extension/Repository.php +%%WWWDIR%%/lib/plugins/extension/_test/ExtensionTest.php +%%WWWDIR%%/lib/plugins/extension/_test/InstallerTest.php +%%WWWDIR%%/lib/plugins/extension/_test/LocalTest.php +%%WWWDIR%%/lib/plugins/extension/_test/ManagerTest.php %%WWWDIR%%/lib/plugins/extension/_test/testdata/either1/script.js %%WWWDIR%%/lib/plugins/extension/_test/testdata/eithersub2/either2/script.js +%%WWWDIR%%/lib/plugins/extension/_test/testdata/multi/mpl1/plugin.info.txt +%%WWWDIR%%/lib/plugins/extension/_test/testdata/multi/mpl2/plugin.info.txt +%%WWWDIR%%/lib/plugins/extension/_test/testdata/multi/mpl3/plugin.info.txt +%%WWWDIR%%/lib/plugins/extension/_test/testdata/multi/mtpl4/template.info.txt +%%WWWDIR%%/lib/plugins/extension/_test/testdata/multi/mtpl5/template.info.txt %%WWWDIR%%/lib/plugins/extension/_test/testdata/plgfoo5/plugin.info.txt %%WWWDIR%%/lib/plugins/extension/_test/testdata/plgsub3/plugin3/syntax.php %%WWWDIR%%/lib/plugins/extension/_test/testdata/plgsub4/plugin4/plugin.info.txt @@ -3527,25 +3565,20 @@ %%WWWDIR%%/lib/plugins/extension/action.php %%WWWDIR%%/lib/plugins/extension/admin.php %%WWWDIR%%/lib/plugins/extension/admin.svg -%%WWWDIR%%/lib/plugins/extension/all.less %%WWWDIR%%/lib/plugins/extension/cli.php -%%WWWDIR%%/lib/plugins/extension/helper/extension.php -%%WWWDIR%%/lib/plugins/extension/helper/gui.php -%%WWWDIR%%/lib/plugins/extension/helper/list.php -%%WWWDIR%%/lib/plugins/extension/helper/repository.php -%%WWWDIR%%/lib/plugins/extension/images/bug.gif -%%WWWDIR%%/lib/plugins/extension/images/disabled.png -%%WWWDIR%%/lib/plugins/extension/images/donate.png -%%WWWDIR%%/lib/plugins/extension/images/down.png -%%WWWDIR%%/lib/plugins/extension/images/enabled.png +%%WWWDIR%%/lib/plugins/extension/helper.php +%%WWWDIR%%/lib/plugins/extension/images/bug.svg +%%WWWDIR%%/lib/plugins/extension/images/coffee.svg +%%WWWDIR%%/lib/plugins/extension/images/error.svg +%%WWWDIR%%/lib/plugins/extension/images/fire.svg %%WWWDIR%%/lib/plugins/extension/images/icons.xcf +%%WWWDIR%%/lib/plugins/extension/images/info.svg %%WWWDIR%%/lib/plugins/extension/images/license.txt %%WWWDIR%%/lib/plugins/extension/images/overlay.png %%WWWDIR%%/lib/plugins/extension/images/plugin.png -%%WWWDIR%%/lib/plugins/extension/images/tag.png +%%WWWDIR%%/lib/plugins/extension/images/security.svg %%WWWDIR%%/lib/plugins/extension/images/template.png -%%WWWDIR%%/lib/plugins/extension/images/up.png -%%WWWDIR%%/lib/plugins/extension/images/warning.png +%%WWWDIR%%/lib/plugins/extension/images/warning.svg %%WWWDIR%%/lib/plugins/extension/lang/bg/intro_install.txt %%WWWDIR%%/lib/plugins/extension/lang/bg/intro_plugins.txt %%WWWDIR%%/lib/plugins/extension/lang/bg/intro_search.txt @@ -3639,6 +3672,7 @@ %%WWWDIR%%/lib/plugins/extension/lang/ko/intro_search.txt %%WWWDIR%%/lib/plugins/extension/lang/ko/intro_templates.txt %%WWWDIR%%/lib/plugins/extension/lang/ko/lang.php +%%WWWDIR%%/lib/plugins/extension/lang/lt/lang.php %%WWWDIR%%/lib/plugins/extension/lang/lv/intro_templates.txt %%WWWDIR%%/lib/plugins/extension/lang/lv/lang.php %%WWWDIR%%/lib/plugins/extension/lang/nl/intro_install.txt @@ -3718,9 +3752,13 @@ %%WWWDIR%%/lib/plugins/logviewer/lang/fr/intro.txt %%WWWDIR%%/lib/plugins/logviewer/lang/fr/lang.php %%WWWDIR%%/lib/plugins/logviewer/lang/fr/nolog.txt +%%WWWDIR%%/lib/plugins/logviewer/lang/hu/intro.txt %%WWWDIR%%/lib/plugins/logviewer/lang/hu/lang.php +%%WWWDIR%%/lib/plugins/logviewer/lang/hu/nolog.txt %%WWWDIR%%/lib/plugins/logviewer/lang/it/lang.php %%WWWDIR%%/lib/plugins/logviewer/lang/ja/lang.php +%%WWWDIR%%/lib/plugins/logviewer/lang/ko/intro.txt +%%WWWDIR%%/lib/plugins/logviewer/lang/ko/lang.php %%WWWDIR%%/lib/plugins/logviewer/lang/pl/intro.txt %%WWWDIR%%/lib/plugins/logviewer/lang/pl/lang.php %%WWWDIR%%/lib/plugins/logviewer/lang/pl/nolog.txt @@ -3733,6 +3771,7 @@ %%WWWDIR%%/lib/plugins/logviewer/lang/ru/intro.txt %%WWWDIR%%/lib/plugins/logviewer/lang/ru/lang.php %%WWWDIR%%/lib/plugins/logviewer/lang/ru/nolog.txt +%%WWWDIR%%/lib/plugins/logviewer/lang/sk/lang.php %%WWWDIR%%/lib/plugins/logviewer/lang/vi/intro.txt %%WWWDIR%%/lib/plugins/logviewer/lang/vi/lang.php %%WWWDIR%%/lib/plugins/logviewer/lang/vi/nolog.txt @@ -4441,6 +4480,7 @@ %%WWWDIR%%/lib/scripts/jquery/update.sh %%WWWDIR%%/lib/scripts/jquery/versions %%WWWDIR%%/lib/scripts/linkwiz.js +%%WWWDIR%%/lib/scripts/linkwiz.test.js %%WWWDIR%%/lib/scripts/locktimer.js %%WWWDIR%%/lib/scripts/media.js %%WWWDIR%%/lib/scripts/page.js @@ -4562,6 +4602,8 @@ %%WWWDIR%%/lib/tpl/dokuwiki/lang/sk/lang.php %%WWWDIR%%/lib/tpl/dokuwiki/lang/sk/style.txt %%WWWDIR%%/lib/tpl/dokuwiki/lang/sv/lang.php +%%WWWDIR%%/lib/tpl/dokuwiki/lang/uk/lang.php +%%WWWDIR%%/lib/tpl/dokuwiki/lang/uk/style.txt %%WWWDIR%%/lib/tpl/dokuwiki/lang/vi/lang.php %%WWWDIR%%/lib/tpl/dokuwiki/lang/vi/style.txt %%WWWDIR%%/lib/tpl/dokuwiki/lang/zh-tw/style.txt @@ -4753,7 +4795,7 @@ %%WWWDIR%%/vendor/geshi/geshi/src/geshi/netrexx.php %%WWWDIR%%/vendor/geshi/geshi/src/geshi/newlisp.php %%WWWDIR%%/vendor/geshi/geshi/src/geshi/nginx.php -%%WWWDIR%%/vendor/geshi/geshi/src/geshi/nimrod.php +%%WWWDIR%%/vendor/geshi/geshi/src/geshi/nim.php %%WWWDIR%%/vendor/geshi/geshi/src/geshi/nsis.php %%WWWDIR%%/vendor/geshi/geshi/src/geshi/oberon2.php %%WWWDIR%%/vendor/geshi/geshi/src/geshi/objc.php @@ -4893,6 +4935,7 @@ %%WWWDIR%%/vendor/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php %%WWWDIR%%/vendor/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php %%WWWDIR%%/vendor/openpsa/universalfeedcreator/lib/Creator/JSCreator.php +%%WWWDIR%%/vendor/openpsa/universalfeedcreator/lib/Creator/JSONCreator.php %%WWWDIR%%/vendor/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php %%WWWDIR%%/vendor/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php %%WWWDIR%%/vendor/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php @@ -4927,6 +4970,16 @@ %%WWWDIR%%/vendor/paragonie/random_compat/lib/random.php %%WWWDIR%%/vendor/paragonie/random_compat/psalm-autoload.php %%WWWDIR%%/vendor/paragonie/random_compat/psalm.xml +%%WWWDIR%%/vendor/php81_bc/strftime/.editorconfig +%%WWWDIR%%/vendor/php81_bc/strftime/LICENSE +%%WWWDIR%%/vendor/php81_bc/strftime/README.md +%%WWWDIR%%/vendor/php81_bc/strftime/autoload.php +%%WWWDIR%%/vendor/php81_bc/strftime/composer.json +%%WWWDIR%%/vendor/php81_bc/strftime/example.php +%%WWWDIR%%/vendor/php81_bc/strftime/src/AbstractLocaleFormatter.php +%%WWWDIR%%/vendor/php81_bc/strftime/src/DateLocaleFormatter.php +%%WWWDIR%%/vendor/php81_bc/strftime/src/IntlLocaleFormatter.php +%%WWWDIR%%/vendor/php81_bc/strftime/src/php-8.1-strftime.php %%WWWDIR%%/vendor/phpseclib/phpseclib/AUTHORS %%WWWDIR%%/vendor/phpseclib/phpseclib/BACKERS.md %%WWWDIR%%/vendor/phpseclib/phpseclib/LICENSE @@ -5093,8 +5146,10 @@ %%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/FileNotFoundException.php %%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/InconsistentSetupException.php %%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/InsufficientSetupException.php +%%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/InvalidPacketLengthException.php %%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/NoKeyLoadedException.php %%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/NoSupportedAlgorithmsException.php +%%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/TimeoutException.php %%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/UnableToConnectException.php %%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/UnsupportedAlgorithmException.php %%WWWDIR%%/vendor/phpseclib/phpseclib/phpseclib/Exception/UnsupportedCurveException.php diff --git a/www/domoticz-devel/Makefile b/www/domoticz-devel/Makefile index e8954e448702..7f56841b2567 100644 --- a/www/domoticz-devel/Makefile +++ b/www/domoticz-devel/Makefile @@ -11,8 +11,6 @@ WWW= https://www.domoticz.com LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/License.txt -BROKEN= fails to build with Boost>=1.87 - LIB_DEPENDS= libcurl.so:ftp/curl \ libboost_system.so:devel/boost-libs \ libjsoncpp.so:devel/jsoncpp \ diff --git a/www/domoticz-devel/files/patch-pr6252 b/www/domoticz-devel/files/patch-pr6252 new file mode 100644 index 000000000000..34c4efd3f4e4 --- /dev/null +++ b/www/domoticz-devel/files/patch-pr6252 @@ -0,0 +1,2178 @@ +Fix for boost 1.87 + +Removed the diff for the msbuild project files, didn't apply cleanly and not relevant anyway. +This will merged in the next stable of domoticz. + +Pullrequest: https://github.com/domoticz/domoticz/pull/6252 +Patch: https://patch-diff.githubusercontent.com/raw/domoticz/domoticz/pull/6252.patch-diff + +diff --git hardware/ASyncSerial.cpp hardware/ASyncSerial.cpp +index 52c950d..6147cdb 100644 +--- hardware/ASyncSerial.cpp ++++ hardware/ASyncSerial.cpp +@@ -54,7 +54,7 @@ public: + { + } + +- boost::asio::io_service io; ///< Io service object ++ boost::asio::io_context io; ///< Io service object + boost::asio::serial_port port; ///< Serial port object + boost::thread backgroundThread; ///< Thread that runs read/write operations + bool open{ false }; ///< True if port open +@@ -117,10 +117,10 @@ void AsyncSerial::open(const std::string& devname, unsigned int baud_rate, + throw; + } + +- pimpl->io.reset(); ++ pimpl->io.restart(); + +- // This gives some work to the io_service before it is started +- pimpl->io.post([this] { return doRead(); }); ++ // This gives some work to the io_context before it is started ++ boost::asio::post(pimpl->io, [this] { return doRead(); }); + + boost::thread t([p = &pimpl->io] { p->run(); }); + pimpl->backgroundThread.swap(t); +@@ -149,10 +149,10 @@ void AsyncSerial::openOnlyBaud(const std::string& devname, unsigned int baud_rat + throw; + } + +- pimpl->io.reset(); ++ pimpl->io.restart(); + +- //This gives some work to the io_service before it is started +- pimpl->io.post([this] { return doRead(); }); ++ //This gives some work to the io_context before it is started ++ boost::asio::post(pimpl->io, [this] { return doRead(); }); + + boost::thread t([p = &pimpl->io] { p->run(); }); + pimpl->backgroundThread.swap(t); +@@ -176,9 +176,9 @@ void AsyncSerial::close() + if(!isOpen()) return; + + pimpl->open = false; +- pimpl->io.post([this] { doClose(); }); ++ boost::asio::post(pimpl->io, [this] { doClose(); }); + pimpl->backgroundThread.join(); +- pimpl->io.reset(); ++ pimpl->io.restart(); + if(errorStatus()) + { + throw(boost::system::system_error(boost::system::error_code(), +@@ -192,7 +192,7 @@ void AsyncSerial::write(const char *data, size_t size) + std::lock_guard<std::mutex> l(pimpl->writeQueueMutex); + pimpl->writeQueue.insert(pimpl->writeQueue.end(),data,data+size); + } +- pimpl->io.post([this] { doWrite(); }); ++ boost::asio::post(pimpl->io, [this] { doWrite(); }); + } + + void AsyncSerial::write(const std::string &data) +@@ -201,7 +201,7 @@ void AsyncSerial::write(const std::string &data) + std::lock_guard<std::mutex> l(pimpl->writeQueueMutex); + pimpl->writeQueue.insert(pimpl->writeQueue.end(), data.c_str(), data.c_str()+data.size()); + } +- pimpl->io.post([this] { doWrite(); }); ++ boost::asio::post(pimpl->io, [this] { doWrite(); }); + } + + void AsyncSerial::write(const std::vector<char>& data) +@@ -211,7 +211,7 @@ void AsyncSerial::write(const std::vector<char>& data) + pimpl->writeQueue.insert(pimpl->writeQueue.end(),data.begin(), + data.end()); + } +- pimpl->io.post([this] { doWrite(); }); ++ boost::asio::post(pimpl->io, [this] { doWrite(); }); + } + + void AsyncSerial::writeString(const std::string& s) +@@ -220,7 +220,7 @@ void AsyncSerial::writeString(const std::string& s) + std::lock_guard<std::mutex> l(pimpl->writeQueueMutex); + pimpl->writeQueue.insert(pimpl->writeQueue.end(),s.begin(),s.end()); + } +- pimpl->io.post([this] { doWrite(); }); ++ boost::asio::post(pimpl->io, [this] { doWrite(); }); + } + + void AsyncSerial::doRead() +diff --git hardware/ASyncSerial.h hardware/ASyncSerial.h +index 0a51ef0..de83f8a 100644 +--- hardware/ASyncSerial.h ++++ hardware/ASyncSerial.h +@@ -123,27 +123,27 @@ class AsyncSerial : private domoticz::noncopyable + + /** + * Callback called to start an asynchronous read operation. +- * This callback is called by the io_service in the spawned thread. ++ * This callback is called by the io_context in the spawned thread. + */ + void doRead(); + + /** + * Callback called at the end of the asynchronous operation. +- * This callback is called by the io_service in the spawned thread. ++ * This callback is called by the io_context in the spawned thread. + */ + void readEnd(const boost::system::error_code &error, size_t bytes_transferred); + + /** + * Callback called to start an asynchronous write operation. + * If it is already in progress, does nothing. +- * This callback is called by the io_service in the spawned thread. ++ * This callback is called by the io_context in the spawned thread. + */ + void doWrite(); + + /** + * Callback called at the end of an asynchronuous write operation, + * if there is more data to write, restarts a new write operation. +- * This callback is called by the io_service in the spawned thread. ++ * This callback is called by the io_context in the spawned thread. + */ + void writeEnd(const boost::system::error_code &error); + +diff --git hardware/ASyncTCP.cpp hardware/ASyncTCP.cpp +index a375561..7c3b536 100644 +--- hardware/ASyncTCP.cpp ++++ hardware/ASyncTCP.cpp +@@ -4,213 +4,241 @@ + #include <boost/system/error_code.hpp> // for error_code + #include "../main/Logger.h" + +-struct hostent; +- + #define MAX_TCP_BUFFER_SIZE 4096 + +-#ifndef WIN32 +- #include <unistd.h> //gethostbyname +-#endif +- + #define STATUS_OK(err) !err +- +-ASyncTCP::ASyncTCP(const bool secure) ++#define STATUS_ERR(err) err ++ ++ASyncTCP::ASyncTCP(const bool secure) : ++ m_Tcpwork(boost::asio::make_work_guard(m_io_context)) ++ , m_Socket(m_io_context) ++ , m_Resolver(m_io_context) ++ , m_ReconnectTimer(m_io_context) ++ , m_TimeoutTimer(m_io_context) ++ , m_SendStrand(m_io_context) + #ifdef WWW_ENABLE_SSL +- : mSecure(secure) ++ , m_bSecure(secure) + #endif + { + m_pRXBuffer = new uint8_t[MAX_TCP_BUFFER_SIZE]; + #ifdef WWW_ENABLE_SSL + mContext.set_verify_mode(boost::asio::ssl::verify_none); +- if (mSecure) ++ if (m_bSecure) + { +- mSslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(mIos, mContext)); ++ m_SslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_context, mContext)); + } + #endif + } + + ASyncTCP::~ASyncTCP() + { +- assert(mTcpthread == nullptr); +- mIsTerminating = true; +- if (mTcpthread) ++ assert(m_Tcpthread == nullptr); ++ m_bIsTerminating = true; ++ if (m_Tcpthread) + { + //This should never happen. terminate() never called!! +- _log.Log(LOG_ERROR, "ASyncTCP: Workerthread not closed. terminate() never called!!!"); +- mIos.stop(); +- if (mTcpthread) ++ _log.Log(LOG_ERROR, "ASyncTCP: Worker thread not closed. terminate() never called!!!"); ++ m_io_context.stop(); ++ if (m_Tcpthread) + { +- mTcpthread->join(); +- mTcpthread.reset(); ++ m_Tcpthread->join(); ++ m_Tcpthread.reset(); + } + } + if (m_pRXBuffer != nullptr) + delete[] m_pRXBuffer; + } + +-void ASyncTCP::SetReconnectDelay(int32_t Delay) ++void ASyncTCP::SetReconnectDelay(const int32_t Delay) + { +- mReconnectDelay = Delay; ++ m_iReconnectDelay = Delay; + } + + void ASyncTCP::connect(const std::string& ip, uint16_t port) + { +- assert(!mSocket.is_open()); +- if (mSocket.is_open()) ++ assert(!m_Socket.is_open()); ++ if (m_Socket.is_open()) + { + _log.Log(LOG_ERROR, "ASyncTCP: connect called while socket is still open. !!!"); + terminate(); + } + +- // RK: We reset mIos here because it might have been stopped in terminate() +- mIos.reset(); +- // RK: After the reset, we need to provide it work anew +- mTcpwork = std::make_shared<boost::asio::io_service::work>(mIos); +- if (!mTcpthread) +- mTcpthread = std::make_shared<std::thread>([p = &mIos] { p->run(); }); +- +- mIp = ip; +- mPort = port; ++ m_IP = ip; ++ m_Port = port; + std::string port_str = std::to_string(port); +- boost::asio::ip::tcp::resolver::query query(ip, port_str); + timeout_start_timer(); +- mResolver.async_resolve(query, [this](auto &&err, auto &&iter) { cb_resolve_done(err, iter); }); ++ ++ m_Resolver.async_resolve( ++ ip, port_str, ++ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::resolver::results_type& endpoints) { ++ handle_resolve(error, endpoints); ++ } ++ ); ++ ++ // RK: We restart m_io_context here because it might have been stopped in terminate() ++ m_io_context.restart(); ++ // RK: After the reset, we need to provide it work anew ++ m_Tcpwork.reset(); ++ m_Tcpwork.emplace(boost::asio::make_work_guard(m_io_context)); ++ if (!m_Tcpthread) ++ m_Tcpthread = std::make_shared<std::thread>([p = &m_io_context] { p->run(); }); + } + +-void ASyncTCP::cb_resolve_done(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator endpoint_iterator) ++void ASyncTCP::handle_resolve(const boost::system::error_code& error, const boost::asio::ip::tcp::resolver::results_type &endpoints) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) +- { +- connect_start(endpoint_iterator); +- } +- else ++ if (STATUS_ERR(error)) + { + process_error(error); ++ return; + } +-} +- +-void ASyncTCP::connect_start(boost::asio::ip::tcp::resolver::iterator& endpoint_iterator) +-{ +- if (mIsConnected) return; +- +- mEndPoint = *endpoint_iterator++; ++ if (m_bIsConnected) return; + + timeout_start_timer(); ++ + #ifdef WWW_ENABLE_SSL +- if (mSecure) ++ if (m_bSecure) + { + // we reset the ssl socket, because the ssl context needs to be reinitialized after a reconnect +- mSslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(mIos, mContext)); +- mSslSocket->lowest_layer().async_connect(mEndPoint, [this, endpoint_iterator](auto &&err) mutable { cb_connect_done(err, endpoint_iterator); }); ++ m_SslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_context, mContext)); ++ boost::asio::async_connect(m_SslSocket->lowest_layer(), endpoints, ++ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint) ++ { ++ handle_connect(error, endpoint); ++ } ++ ); + } + else + #endif + { +- mSocket.async_connect(mEndPoint, [this, endpoint_iterator](auto &&err) mutable { cb_connect_done(err, endpoint_iterator); }); ++ boost::asio::async_connect(m_Socket, endpoints, ++ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint) ++ { ++ handle_connect(error, endpoint); ++ } ++ ); + } + } + +-void ASyncTCP::cb_connect_done(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) ++void ASyncTCP::handle_connect(const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& /*endpoint*/) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) ++ if (STATUS_ERR(error)) + { ++ process_error(error); ++ return; ++ } + #ifdef WWW_ENABLE_SSL +- if (mSecure) +- { +- timeout_start_timer(); +- mSslSocket->async_handshake(boost::asio::ssl::stream_base::client, [this](auto &&err) { cb_handshake_done(err); }); +- } +- else +-#endif +- { +- process_connection(); +- } ++ if (m_bSecure) ++ { ++ timeout_start_timer(); ++ m_SslSocket->async_handshake(boost::asio::ssl::stream_base::client, ++ [this](const boost::system::error_code& error) { ++ cb_handshake_done(error); ++ } ++ ); + } +- else ++ else ++#endif + { +- if (endpoint_iterator != boost::asio::ip::tcp::resolver::iterator()) +- { +- // The connection failed. Try the next endpoint in the list. +- connect_start(endpoint_iterator); +- return; +- } +- process_error(error); ++ process_connection(); + } + } + + #ifdef WWW_ENABLE_SSL + void ASyncTCP::cb_handshake_done(const boost::system::error_code& error) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) +- { +- process_connection(); +- } +- else ++ if (STATUS_ERR(error)) + { + process_error(error); ++ return; + } ++ process_connection(); ++#endif + } ++ ++void ASyncTCP::process_connection() ++{ ++ m_bIsConnected = true; ++#ifdef WWW_ENABLE_SSL ++ ++ if (!m_bSecure) + #endif ++ { ++ // RK: only if non-secure ++ boost::asio::socket_base::keep_alive option(true); ++ m_Socket.set_option(option); ++ } ++ OnConnect(); ++ do_read_start(); ++ do_write_start(); ++} + + void ASyncTCP::reconnect_start_timer() + { +- if (mIsReconnecting) return; ++ if (m_bIsReconnecting) return; + +- if (mReconnectDelay != 0) ++ if (m_iReconnectDelay != 0) + { +- mIsReconnecting = true; +- +- mReconnectTimer.expires_from_now(boost::posix_time::seconds(mReconnectDelay)); +- mReconnectTimer.async_wait([this](auto &&err) { cb_reconnect_start(err); }); ++ m_bIsReconnecting = true; ++ ++ m_ReconnectTimer.expires_from_now(boost::posix_time::seconds(m_iReconnectDelay)); ++ m_ReconnectTimer.async_wait( ++ [this](const boost::system::error_code& error) { ++ cb_reconnect_start(error); ++ } ++ ); + } + } + + void ASyncTCP::cb_reconnect_start(const boost::system::error_code& error) + { +- mIsReconnecting = false; +- mReconnectTimer.cancel(); +- mTimeoutTimer.cancel(); ++ m_bIsReconnecting = false; ++ m_ReconnectTimer.cancel(); ++ m_TimeoutTimer.cancel(); + +- if (mIsConnected) return; ++ if (m_bIsConnected) return; + if (error) return; // timer was cancelled + + do_close(); +- connect(mIp, mPort); ++ connect(m_IP, m_Port); + } + + + void ASyncTCP::terminate(const bool silent) + { +- mIsTerminating = true; ++ m_bIsTerminating = true; + disconnect(silent); +- mTcpwork.reset(); +- mIos.stop(); +- if (mTcpthread) ++ m_Tcpwork.reset(); ++ m_io_context.stop(); ++ if (m_Tcpthread) + { +- mTcpthread->join(); +- mTcpthread.reset(); ++ m_Tcpthread->join(); ++ m_Tcpthread.reset(); + } +- mIsReconnecting = false; +- mIsConnected = false; +- mWriteQ.clear(); +- mIsTerminating = false; ++ m_bIsReconnecting = false; ++ m_bIsConnected = false; ++ m_WriteQ.clear(); ++ m_bIsTerminating = false; + } + + void ASyncTCP::disconnect(const bool silent) + { +- mReconnectTimer.cancel(); +- mTimeoutTimer.cancel(); +- if (!mTcpthread) return; ++ m_ReconnectTimer.cancel(); ++ m_TimeoutTimer.cancel(); ++ if (!m_Tcpthread) return; + + try + { +- mIos.post([this] { do_close(); }); ++ boost::asio::post(m_io_context, ++ [this] { ++ do_close(); ++ } ++ ); + } + catch (...) + { +@@ -223,62 +251,68 @@ void ASyncTCP::disconnect(const bool silent) + + void ASyncTCP::do_close() + { +- if (mIsReconnecting) { ++ if (m_bIsReconnecting) { + return; + } +- mReconnectTimer.cancel(); +- mTimeoutTimer.cancel(); ++ m_ReconnectTimer.cancel(); ++ m_TimeoutTimer.cancel(); + boost::system::error_code ec; + #ifdef WWW_ENABLE_SSL +- if (mSecure) ++ if (m_bSecure) + { +- if (mSslSocket->lowest_layer().is_open()) ++ if (m_SslSocket->lowest_layer().is_open()) + { +- mSslSocket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec); +- mSslSocket->lowest_layer().close(ec); ++ m_SslSocket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec); ++ m_SslSocket->lowest_layer().close(ec); + } + } + else + #endif + { +- if (mSocket.is_open()) ++ if (m_Socket.is_open()) + { +- mSocket.close(ec); ++ m_Socket.close(ec); + } + } + } + + void ASyncTCP::do_read_start() + { +- if (mIsTerminating) return; +- if (!mIsConnected) return; ++ if (m_bIsTerminating) return; ++ if (!m_bIsConnected) return; + + timeout_start_timer(); + #ifdef WWW_ENABLE_SSL +- if (mSecure) ++ if (m_bSecure) + { +- mSslSocket->async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), [this](auto &&err, auto bytes) { cb_read_done(err, bytes); }); ++ m_SslSocket->async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), ++ [this](const boost::system::error_code& error, size_t bytes_transferred) { ++ cb_read_done(error, bytes_transferred); ++ } ++ ); + } + else + #endif + { +- mSocket.async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), [this](auto &&err, auto bytes) { cb_read_done(err, bytes); }); ++ m_Socket.async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), ++ [this](const boost::system::error_code& error, size_t bytes_transferred) { ++ cb_read_done(error, bytes_transferred); ++ } ++ ); + } + } + + void ASyncTCP::cb_read_done(const boost::system::error_code& error, size_t bytes_transferred) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) +- { +- OnData(m_pRXBuffer, bytes_transferred); +- do_read_start(); +- } +- else ++ if (STATUS_ERR(error)) + { + process_error(error); ++ return; + } ++ OnData(m_pRXBuffer, bytes_transferred); ++ do_read_start(); + } + + void ASyncTCP::write(const uint8_t* pData, size_t length) +@@ -288,77 +322,66 @@ void ASyncTCP::write(const uint8_t* pData, size_t length) + + void ASyncTCP::write(const std::string& msg) + { +- if (!mTcpthread) return; ++ if (!m_Tcpthread) return; + +- mSendStrand.post([this, msg]() { cb_write_queue(msg); }); ++ boost::asio::post(m_SendStrand, [this, msg]() { cb_write_queue(msg); }); + } + + void ASyncTCP::cb_write_queue(const std::string& msg) + { +- mWriteQ.push_back(msg); ++ m_WriteQ.push_back(msg); + +- if (mWriteQ.size() == 1) ++ if (m_WriteQ.size() == 1) + do_write_start(); + } + + void ASyncTCP::do_write_start() + { +- if (mIsTerminating) return; +- if (!mIsConnected) return; +- if (mWriteQ.empty()) ++ if (m_bIsTerminating) return; ++ if (!m_bIsConnected) return; ++ if (m_WriteQ.empty()) + return; + + timeout_start_timer(); + #ifdef WWW_ENABLE_SSL +- if (mSecure) ++ if (m_bSecure) + { +- boost::asio::async_write(*mSslSocket, boost::asio::buffer(mWriteQ.front()), [this](auto &&err, auto) { cb_write_done(err); }); ++ boost::asio::async_write(*m_SslSocket, boost::asio::buffer(m_WriteQ.front()), ++ [this](const boost::system::error_code& error, std::size_t length) { ++ cb_write_done(error, length); ++ } ++ ); + } + else + #endif + { +- boost::asio::async_write(mSocket, boost::asio::buffer(mWriteQ.front()), [this](auto &&err, auto) { cb_write_done(err); }); ++ boost::asio::async_write(m_Socket, boost::asio::buffer(m_WriteQ.front()), ++ [this](const boost::system::error_code& error, std::size_t length) { ++ cb_write_done(error, length); ++ } ++ ); + } + } + +-void ASyncTCP::cb_write_done(const boost::system::error_code& error) ++void ASyncTCP::cb_write_done(const boost::system::error_code& error, std::size_t /*length*/) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) +- { +- mWriteQ.pop_front(); +- do_write_start(); +- } +- else ++ if (STATUS_ERR(error)) + { + process_error(error); ++ return; + } +-} +- +-void ASyncTCP::process_connection() +-{ +- mIsConnected = true; +-#ifdef WWW_ENABLE_SSL +- +- if (!mSecure) +-#endif +- { +- // RK: only if non-secure +- boost::asio::socket_base::keep_alive option(true); +- mSocket.set_option(option); +- } +- OnConnect(); +- do_read_start(); ++ m_WriteQ.pop_front(); + do_write_start(); + } + + void ASyncTCP::process_error(const boost::system::error_code& error) + { + do_close(); +- if (mIsConnected) ++ if (m_bIsConnected) + { +- mIsConnected = false; ++ m_bIsConnected = false; + OnDisconnect(); + } + +@@ -369,20 +392,23 @@ void ASyncTCP::process_error(const boost::system::error_code& error) + reconnect_start_timer(); + } + +-/* timeout methods */ + void ASyncTCP::timeout_start_timer() + { +- if (0 == mTimeoutDelay) { ++ if (0 == m_iTimeoutDelay) { + return; + } + timeout_cancel_timer(); +- mTimeoutTimer.expires_from_now(boost::posix_time::seconds(mTimeoutDelay)); +- mTimeoutTimer.async_wait([this](auto &&err) { timeout_handler(err); }); ++ m_TimeoutTimer.expires_from_now(boost::posix_time::seconds(m_iTimeoutDelay)); ++ m_TimeoutTimer.async_wait( ++ [this](const boost::system::error_code& error) { ++ timeout_handler(error); ++ } ++ ); + } + + void ASyncTCP::timeout_cancel_timer() + { +- mTimeoutTimer.cancel(); ++ m_TimeoutTimer.cancel(); + } + + void ASyncTCP::timeout_handler(const boost::system::error_code& error) +@@ -397,5 +423,5 @@ void ASyncTCP::timeout_handler(const boost::system::error_code& error) + + void ASyncTCP::SetTimeout(const uint32_t Timeout) + { +- mTimeoutDelay = Timeout; ++ m_iTimeoutDelay = Timeout; + } +diff --git hardware/ASyncTCP.h hardware/ASyncTCP.h +index cf859bb..a8b3ae2 100644 +--- hardware/ASyncTCP.h ++++ hardware/ASyncTCP.h +@@ -3,39 +3,31 @@ + #include <stddef.h> // for size_t + #include <deque> // for write queue + #include <boost/asio/deadline_timer.hpp> // for deadline_timer +-#include <boost/asio/io_service.hpp> // for io_service ++#include <boost/asio/io_context.hpp> // for io_context + #include <boost/asio/strand.hpp> // for strand + #include <boost/asio/ip/tcp.hpp> // for tcp, tcp::endpoint, tcp::s... + #include <boost/asio/ssl.hpp> // for secure sockets + #include <boost/asio/ssl/stream.hpp> // for secure sockets + #include <exception> // for exception ++#include <optional> // for optional + + #define ASYNCTCP_THREAD_NAME "ASyncTCP" + #define DEFAULT_RECONNECT_TIME 30 + #define DEFAULT_TIMEOUT_TIME 60 + +-namespace boost +-{ +- namespace system +- { +- class error_code; +- } // namespace system +-} // namespace boost +- + class ASyncTCP + { +- protected: ++protected: + ASyncTCP(bool secure = false); + virtual ~ASyncTCP(); +- +- void connect(const std::string &hostname, uint16_t port); ++ void connect(const std::string& hostname, uint16_t port); + void disconnect(bool silent = true); +- void write(const std::string &msg); +- void write(const uint8_t *pData, size_t length); +- void SetReconnectDelay(int32_t Delay = DEFAULT_RECONNECT_TIME); ++ void write(const std::string& msg); ++ void write(const uint8_t* pData, size_t length); ++ void SetReconnectDelay(const int32_t Delay = DEFAULT_RECONNECT_TIME); + bool isConnected() + { +- return mIsConnected; ++ return m_bIsConnected; + }; + void terminate(bool silent = true); + void SetTimeout(uint32_t Timeout = DEFAULT_TIMEOUT_TIME); +@@ -43,65 +35,61 @@ class ASyncTCP + // Callback interface to implement in derived classes + virtual void OnConnect() = 0; + virtual void OnDisconnect() = 0; +- virtual void OnData(const uint8_t *pData, size_t length) = 0; +- virtual void OnError(const boost::system::error_code &error) = 0; +- +- boost::asio::io_service mIos; // protected to allow derived classes to attach timers etc. ++ virtual void OnData(const uint8_t* pData, size_t length) = 0; ++ virtual void OnError(const boost::system::error_code& error) = 0; + +- private: +- void cb_resolve_done(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator); +- void connect_start(boost::asio::ip::tcp::resolver::iterator &endpoint_iterator); +- void cb_connect_done(const boost::system::error_code &error, boost::asio::ip::tcp::resolver::iterator &endpoint_iterator); ++ boost::asio::io_context m_io_context; // protected to allow derived classes to attach timers etc. ++private: ++ void handle_resolve(const boost::system::error_code& ec, const boost::asio::ip::tcp::resolver::results_type &results); ++ void handle_connect(const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint); + #ifdef WWW_ENABLE_SSL +- void cb_handshake_done(const boost::system::error_code &error); ++ void cb_handshake_done(const boost::system::error_code& error); + #endif + +- /* timeout methods */ + void timeout_start_timer(); + void timeout_cancel_timer(); + void reconnect_start_timer(); +- void timeout_handler(const boost::system::error_code &error); ++ void timeout_handler(const boost::system::error_code& error); + +- void cb_reconnect_start(const boost::system::error_code &error); ++ void cb_reconnect_start(const boost::system::error_code& error); + + void do_close(); + + void do_read_start(); +- void cb_read_done(const boost::system::error_code &error, size_t bytes_transferred); ++ void cb_read_done(const boost::system::error_code& error, size_t bytes_transferred); + +- void cb_write_queue(const std::string &msg); ++ void cb_write_queue(const std::string& msg); + void do_write_start(); +- void cb_write_done(const boost::system::error_code &error); ++ void cb_write_done(const boost::system::error_code& error, size_t length); + + void process_connection(); +- void process_error(const boost::system::error_code &error); ++ void process_error(const boost::system::error_code& error); + +- bool mIsConnected = false; +- bool mIsReconnecting = false; +- bool mIsTerminating = false; ++ bool m_bIsConnected = false; ++ bool m_bIsReconnecting = false; ++ bool m_bIsTerminating = false; + +- boost::asio::io_service::strand mSendStrand{ mIos }; +- std::deque<std::string> mWriteQ; // we need a write queue to allow concurrent writes ++ boost::asio::io_context::strand m_SendStrand; ++ std::deque<std::string> m_WriteQ; // we need a write queue to allow concurrent writes + + uint8_t* m_pRXBuffer = nullptr; + +- int mReconnectDelay = DEFAULT_RECONNECT_TIME; +- int mTimeoutDelay = 0; +- boost::asio::deadline_timer mReconnectTimer{ mIos }; +- boost::asio::deadline_timer mTimeoutTimer{ mIos }; ++ int m_iReconnectDelay = DEFAULT_RECONNECT_TIME; ++ int m_iTimeoutDelay = 0; ++ boost::asio::deadline_timer m_ReconnectTimer; ++ boost::asio::deadline_timer m_TimeoutTimer; + +- std::shared_ptr<std::thread> mTcpthread; +- std::shared_ptr<boost::asio::io_service::work> mTcpwork; ++ std::shared_ptr<std::thread> m_Tcpthread; ++ std::optional<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>> m_Tcpwork; + + #ifdef WWW_ENABLE_SSL +- const bool mSecure; ++ const bool m_bSecure; + boost::asio::ssl::context mContext{ boost::asio::ssl::context::sslv23 }; +- std::shared_ptr<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> mSslSocket; // the ssl socket ++ std::shared_ptr<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> m_SslSocket; + #endif +- boost::asio::ip::tcp::socket mSocket{ mIos }; +- boost::asio::ip::tcp::endpoint mEndPoint; +- boost::asio::ip::tcp::resolver mResolver{ mIos }; ++ boost::asio::ip::tcp::socket m_Socket; ++ boost::asio::ip::tcp::resolver m_Resolver; + +- std::string mIp; +- uint16_t mPort; ++ std::string m_IP; ++ uint16_t m_Port; + }; +diff --git hardware/Arilux.cpp hardware/Arilux.cpp +index 400f5a3..20bc373 100644 +--- hardware/Arilux.cpp ++++ hardware/Arilux.cpp +@@ -79,7 +79,7 @@ void Arilux::InsertUpdateSwitch(const std::string &lightName, const int subType, + { + uint32_t sID; + try { +- sID = boost::asio::ip::address_v4::from_string(location).to_ulong(); ++ sID = boost::asio::ip::make_address_v4(location).to_uint(); + } catch (const std::exception &e) { + Log(LOG_ERROR, "Bad IP address: %s (%s)", location.c_str(), e.what()); + return; +@@ -112,8 +112,8 @@ bool Arilux::SendTCPCommand(uint32_t ip,std::vector<unsigned char> &command) + sum = sum & 0xFF; + command.push_back((unsigned char)sum); + +- boost::asio::io_service io_service; +- boost::asio::ip::tcp::socket sendSocket(io_service); ++ boost::asio::io_context io_context; ++ boost::asio::ip::tcp::socket sendSocket(io_context); + boost::asio::ip::address_v4 address(ip); + boost::asio::ip::tcp::endpoint endpoint(address, 5577); + try +diff --git hardware/Kodi.cpp hardware/Kodi.cpp +index b528017..5ababf6 100644 +--- hardware/Kodi.cpp ++++ hardware/Kodi.cpp +@@ -143,14 +143,14 @@ _eNotificationTypes CKodiNode::CKodiStatus::NotificationType() + } + } + +-CKodiNode::CKodiNode(boost::asio::io_service *pIos, const int pHwdID, const int PollIntervalsec, const int pTimeoutMs, ++CKodiNode::CKodiNode(boost::asio::io_context *pIoc, const int pHwdID, const int PollIntervalsec, const int pTimeoutMs, + const std::string& pID, const std::string& pName, const std::string& pIP, const std::string& pPort) + { + m_Busy = false; + m_Stoppable = false; + m_PlaylistPosition = 0; + +- m_Ios = pIos; ++ m_Ioc = pIoc; + m_HwdID = pHwdID; + m_DevID = atoi(pID.c_str()); + sprintf(m_szDevID, "%X%02X%02X%02X", 0, 0, (m_DevID & 0xFF00) >> 8, m_DevID & 0xFF); +@@ -581,11 +581,10 @@ void CKodiNode::handleConnect() + { + m_iMissedPongs = 0; + boost::system::error_code ec; +- boost::asio::ip::tcp::resolver resolver(*m_Ios); +- boost::asio::ip::tcp::resolver::query query(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1))); +- auto iter = resolver.resolve(query); +- boost::asio::ip::tcp::endpoint endpoint = *iter; +- m_Socket = new boost::asio::ip::tcp::socket(*m_Ios); ++ boost::asio::ip::tcp::resolver resolver(*m_Ioc); ++ auto iter = resolver.resolve(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1))); ++ boost::asio::ip::tcp::endpoint endpoint = *iter.begin(); ++ m_Socket = new boost::asio::ip::tcp::socket(*m_Ioc); + m_Socket->connect(endpoint, ec); + if (!ec) + { +@@ -975,19 +974,19 @@ void CKodi::Do_Work() + _log.Log(LOG_NORM, "Kodi: (%s) - Restarting thread.", node->m_Name.c_str()); + boost::thread *tAsync = new boost::thread(&CKodiNode::Do_Work, node); + SetThreadName(tAsync->native_handle(), "KodiNode"); +- m_ios.stop(); ++ m_ioc.stop(); + } + if (node->IsOn()) + bWorkToDo = true; + } + +- if (bWorkToDo && m_ios.stopped()) // make sure that there is a boost thread to service i/o operations ++ if (bWorkToDo && m_ioc.stopped()) // make sure that there is a boost thread to service i/o operations + { +- m_ios.reset(); ++ m_ioc.restart(); + // Note that this is the only thread that handles async i/o so we don't + // need to worry about locking or concurrency issues when processing messages + _log.Log(LOG_NORM, "Kodi: Restarting I/O service thread."); +- boost::thread bt([p = &m_ios] { p->run(); }); ++ boost::thread bt([p = &m_ioc] { p->run(); }); + SetThreadName(bt.native_handle(), "KodiIO"); + } + } +@@ -1138,7 +1137,7 @@ void CKodi::ReloadNodes() + { + UnloadNodes(); + +- m_ios.reset(); // in case this is not the first time in ++ m_ioc.restart(); // in case this is not the first time in + + std::vector<std::vector<std::string> > result; + result = m_sql.safe_query("SELECT ID,Name,MacAddress,Timeout FROM WOLNodes WHERE (HardwareID==%d)", m_HwdID); +@@ -1149,7 +1148,7 @@ void CKodi::ReloadNodes() + // create a vector to hold the nodes + for (const auto &sd : result) + { +- auto pNode = std::make_shared<CKodiNode>(&m_ios, m_HwdID, m_iPollInterval, m_iPingTimeoutms, sd[0], sd[1], sd[2], sd[3]); ++ auto pNode = std::make_shared<CKodiNode>(&m_ioc, m_HwdID, m_iPollInterval, m_iPingTimeoutms, sd[0], sd[1], sd[2], sd[3]); + m_pNodes.push_back(pNode); + } + // start the threads to control each kodi +@@ -1161,7 +1160,7 @@ void CKodi::ReloadNodes() + } + sleep_milliseconds(100); + _log.Log(LOG_NORM, "Kodi: Starting I/O service thread."); +- boost::thread bt([p = &m_ios] { p->run(); }); ++ boost::thread bt([p = &m_ioc] { p->run(); }); + SetThreadName(bt.native_handle(), "KodiIO"); + } + } +@@ -1170,10 +1169,10 @@ void CKodi::UnloadNodes() + { + std::lock_guard<std::mutex> l(m_mutex); + +- m_ios.stop(); // stop the service if it is running ++ m_ioc.stop(); // stop the service if it is running + sleep_milliseconds(100); + +- while (((!m_pNodes.empty()) || (!m_ios.stopped()))) ++ while (((!m_pNodes.empty()) || (!m_ioc.stopped()))) + { + for (auto itt = m_pNodes.begin(); itt != m_pNodes.end(); ++itt) + { +diff --git hardware/Kodi.h hardware/Kodi.h +index 14f331c..4435740 100644 +--- hardware/Kodi.h ++++ hardware/Kodi.h +@@ -150,7 +150,7 @@ class CKodiNode : public std::enable_shared_from_this<CKodiNode>, StoppableTask + }; + + public: +- CKodiNode(boost::asio::io_service *, int, int, int, const std::string &, const std::string &, const std::string &, const std::string &); ++ CKodiNode(boost::asio::io_context *, int, int, int, const std::string &, const std::string &, const std::string &, const std::string &); + ~CKodiNode(); + void Do_Work(); + void SendCommand(const std::string &); +@@ -207,7 +207,7 @@ class CKodiNode : public std::enable_shared_from_this<CKodiNode>, StoppableTask + int m_iPollIntSec; + int m_iMissedPongs; + std::string m_sLastMessage; +- boost::asio::io_service *m_Ios; ++ boost::asio::io_context *m_Ioc; + boost::asio::ip::tcp::socket *m_Socket; + std::array<char, 256> m_Buffer; + }; +@@ -243,5 +243,5 @@ class CKodi : public CDomoticzHardwareBase + int m_iPingTimeoutms; + std::shared_ptr<std::thread> m_thread; + std::mutex m_mutex; +- boost::asio::io_service m_ios; ++ boost::asio::io_context m_ioc; + }; +diff --git hardware/MQTTAutoDiscover.h hardware/MQTTAutoDiscover.h +index 0832664..1501d6f 100644 +--- hardware/MQTTAutoDiscover.h ++++ hardware/MQTTAutoDiscover.h +@@ -176,7 +176,7 @@ public: + void on_message(const struct mosquitto_message *message) override; + void on_connect(int rc) override; + void on_disconnect(int rc) override; +- void on_going_down(); ++ void on_going_down() override; + private: + void InsertUpdateSwitch(_tMQTTASensor* pSensor); + +diff --git hardware/PanasonicTV.cpp hardware/PanasonicTV.cpp +index fc57d34..ce20565 100644 +--- hardware/PanasonicTV.cpp ++++ hardware/PanasonicTV.cpp +@@ -356,18 +356,17 @@ std::string CPanasonicNode::handleWriteAndRead(const std::string& pMessageToSend + { + + _log.Debug(DEBUG_HARDWARE, "Panasonic Plugin: (%s) Handling message: '%s'.", m_Name.c_str(), pMessageToSend.c_str()); +- boost::asio::io_service io_service; ++ boost::asio::io_context io_context; + // Get a list of endpoints corresponding to the server name. +- boost::asio::ip::tcp::resolver resolver(io_service); +- boost::asio::ip::tcp::resolver::query query(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1))); +- auto iter = resolver.resolve(query); ++ boost::asio::ip::tcp::resolver resolver(io_context); ++ auto endpoints = resolver.resolve(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1))); ++ auto iter = endpoints.begin(); + boost::asio::ip::tcp::endpoint endpoint = *iter; +- boost::asio::ip::tcp::resolver::iterator end; + + // Try each endpoint until we successfully establish a connection. +- boost::asio::ip::tcp::socket socket(io_service); ++ boost::asio::ip::tcp::socket socket(io_context); + boost::system::error_code error = boost::asio::error::host_not_found; +- while (error && iter != end) ++ while (error && iter != endpoints.end()) + { + socket.close(); + if (handleConnect(socket, *iter, error)) +@@ -1060,7 +1059,7 @@ void CPanasonic::ReloadNodes() + { + UnloadNodes(); + +- //m_ios.reset(); // in case this is not the first time in ++ //m_ioc.reset(); // in case this is not the first time in + + std::vector<std::vector<std::string> > result; + result = m_sql.safe_query("SELECT ID,Name,MacAddress,Timeout FROM WOLNodes WHERE (HardwareID==%d)", m_HwdID); +@@ -1088,10 +1087,10 @@ void CPanasonic::UnloadNodes() + { + std::lock_guard<std::mutex> l(m_mutex); + +- m_ios.stop(); // stop the service if it is running ++ m_ioc.stop(); // stop the service if it is running + sleep_milliseconds(100); + +- while (((!m_pNodes.empty()) || (!m_ios.stopped()))) ++ while (((!m_pNodes.empty()) || (!m_ioc.stopped()))) + { + for (auto itt = m_pNodes.begin(); itt != m_pNodes.end(); ++itt) + { +diff --git hardware/PanasonicTV.h hardware/PanasonicTV.h +index b0a94ff..30e1ca1 100644 +--- hardware/PanasonicTV.h ++++ hardware/PanasonicTV.h +@@ -39,7 +39,7 @@ class CPanasonic : public CDomoticzHardwareBase + bool m_bTryIfOff; + std::shared_ptr<std::thread> m_thread; + std::mutex m_mutex; +- boost::asio::io_service m_ios; ++ boost::asio::io_context m_ioc; + + friend class CPanasonicNode; + }; +diff --git hardware/Pinger.cpp hardware/Pinger.cpp +index a66c7a1..e070b29 100644 +--- hardware/Pinger.cpp ++++ hardware/Pinger.cpp +@@ -21,23 +21,23 @@ + #if BOOST_VERSION >= 107000 + #define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context()) + #else +-#define GET_IO_SERVICE(s) ((s).get_io_service()) ++#define GET_IO_SERVICE(s) ((s).get_io_context()) + #endif + + class pinger + : private domoticz::noncopyable + { + public: +- pinger(boost::asio::io_service &io_service, const char *destination, const int iPingTimeoutms) ++ pinger(boost::asio::io_context &io_context, const char *destination, const int iPingTimeoutms) + : num_replies_(0) + , m_PingState(false) +- , resolver_(io_service) +- , socket_(io_service, boost::asio::ip::icmp::v4()) +- , timer_(io_service) ++ , resolver_(io_context) ++ , socket_(io_context, boost::asio::ip::icmp::v4()) ++ , timer_(io_context) + , sequence_number_(0) + { +- boost::asio::ip::icmp::resolver::query query(boost::asio::ip::icmp::v4(), destination, ""); +- destination_ = *resolver_.resolve(query); ++ auto endpoints = resolver_.resolve(boost::asio::ip::icmp::v4(), destination, ""); ++ destination_ = endpoints.begin()->endpoint(); + + num_tries_ = 1; + PingTimeoutms_ = iPingTimeoutms; +@@ -332,11 +332,11 @@ void CPinger::ReloadNodes() + void CPinger::Do_Ping_Worker(const PingNode &Node) + { + bool bPingOK = false; +- boost::asio::io_service io_service; ++ boost::asio::io_context io_context; + try + { +- pinger p(io_service, Node.IP.c_str(), m_iPingTimeoutms); +- io_service.run(); ++ pinger p(io_context, Node.IP.c_str(), m_iPingTimeoutms); ++ io_context.run(); + if (p.m_PingState == true) + { + bPingOK = true; +diff --git hardware/RFLinkMQTT.h hardware/RFLinkMQTT.h +index e938328..72433b8 100644 +--- hardware/RFLinkMQTT.h ++++ hardware/RFLinkMQTT.h +@@ -46,7 +46,7 @@ protected: + boost::signals2::connection m_sDeviceReceivedConnection; + boost::signals2::connection m_sSwitchSceneConnection; + void selectNextIPAdress( void ); +- virtual bool WriteInt(const std::string &sendString); // override; ++ bool WriteInt(const std::string &sendString) override; + void Do_Work(); + virtual void SendHeartbeat(); + void StopMQTT(); +diff --git hardware/TCPProxy/tcpproxy_server.cpp hardware/TCPProxy/tcpproxy_server.cpp +index 8aceb0b..d77d4bf 100644 +--- hardware/TCPProxy/tcpproxy_server.cpp ++++ hardware/TCPProxy/tcpproxy_server.cpp +@@ -18,12 +18,12 @@ + #if BOOST_VERSION >= 107000 + #define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context()) + #else +-#define GET_IO_SERVICE(s) ((s).get_io_service()) ++#define GET_IO_SERVICE(s) ((s).get_io_context()) + #endif + + namespace tcp_proxy + { +- bridge::bridge(boost::asio::io_service& ios) ++ bridge::bridge(boost::asio::io_context& ios) + : downstream_socket_(ios), + upstream_socket_(ios) + { +@@ -44,7 +44,7 @@ namespace tcp_proxy + boost::asio::ip::tcp::endpoint end; + + +- boost::asio::io_service &ios= GET_IO_SERVICE(downstream_socket_); ++ boost::asio::io_context &ios= GET_IO_SERVICE(downstream_socket_); + boost::asio::ip::tcp::resolver resolver(ios); + boost::asio::ip::tcp::resolver::query query(upstream_host, upstream_port, boost::asio::ip::resolver_query_base::numeric_service); + auto i = resolver.resolve(query); +@@ -137,10 +137,10 @@ namespace tcp_proxy + } + //Acceptor Class + acceptor::acceptor(const std::string &local_host, unsigned short local_port, const std::string &upstream_host, const std::string &upstream_port) +- : io_service_() ++ : io_context_() + , m_bDoStop(false) + , localhost_address(boost::asio::ip::address_v4::from_string(local_host)) +- , acceptor_(io_service_, boost::asio::ip::tcp::endpoint(localhost_address, local_port)) ++ , acceptor_(io_context_, boost::asio::ip::tcp::endpoint(localhost_address, local_port)) + , upstream_host_(upstream_host) + , upstream_port_(upstream_port) + { +@@ -151,7 +151,7 @@ namespace tcp_proxy + { + try + { +- session_ = std::make_shared<bridge>(io_service_); ++ session_ = std::make_shared<bridge>(io_context_); + session_->sDownstreamData.connect([this](auto d, auto l) { OnDownstreamData(d, l); }); + session_->sUpstreamData.connect([this](auto d, auto l) { OnUpstreamData(d, l); }); + +@@ -169,11 +169,11 @@ namespace tcp_proxy + m_bDoStop=false; + + accept_connections(); +- // The io_service::run() call will block until all asynchronous operations ++ // The io_context::run() call will block until all asynchronous operations + // have finished. While the server is running, there is always at least one + // asynchronous operation outstanding: the asynchronous accept call waiting + // for new incoming connections. +- io_service_.run(); ++ io_context_.run(); + return true; + } + bool acceptor::stop() +@@ -181,14 +181,14 @@ namespace tcp_proxy + m_bDoStop=true; + // Post a call to the stop function so that server::stop() is safe to call + // from any thread. +- io_service_.post([this] { handle_stop(); }); ++ io_context_.post([this] { handle_stop(); }); + return true; + } + + void acceptor::handle_stop() + { + // The server is stopped by canceling all outstanding asynchronous +- // operations. Once all operations have finished the io_service::run() call ++ // operations. Once all operations have finished the io_context::run() call + // will exit. + acceptor_.close(); + //connection_manager_.stop_all(); +diff --git hardware/TCPProxy/tcpproxy_server.h hardware/TCPProxy/tcpproxy_server.h +index 3d1a150..148e65f 100644 +--- hardware/TCPProxy/tcpproxy_server.h ++++ hardware/TCPProxy/tcpproxy_server.h +@@ -10,7 +10,7 @@ namespace tcp_proxy + class bridge : public std::enable_shared_from_this<bridge> + { + public: +- explicit bridge(boost::asio::io_service& ios); ++ explicit bridge(boost::asio::io_context& ios); + boost::asio::ip::tcp::socket& downstream_socket(); + boost::asio::ip::tcp::socket& upstream_socket(); + +@@ -52,8 +52,8 @@ namespace tcp_proxy + void OnUpstreamData(const unsigned char *pData, size_t Len); + void OnDownstreamData(const unsigned char *pData, size_t Len); + +- /// The io_service used to perform asynchronous operations. +- boost::asio::io_service io_service_; ++ /// The io_context used to perform asynchronous operations. ++ boost::asio::io_context io_context_; + bool m_bDoStop; + boost::asio::ip::address_v4 localhost_address; + boost::asio::ip::tcp::acceptor acceptor_; +diff --git hardware/XiaomiDeviceSupport.h hardware/XiaomiDeviceSupport.h +index fad7884..4a76d96 100644 +--- hardware/XiaomiDeviceSupport.h ++++ hardware/XiaomiDeviceSupport.h +@@ -15,6 +15,7 @@ + class XiaomiDeviceSupport + { + public: ++ virtual ~XiaomiDeviceSupport() = default; + /** + * Method to get 'model' corresponding to the ID of the device in case the Gateway API didn't provide it. + * +diff --git hardware/XiaomiGateway.cpp hardware/XiaomiGateway.cpp +index 66acdc5..fb4387a 100644 +--- hardware/XiaomiGateway.cpp ++++ hardware/XiaomiGateway.cpp +@@ -538,12 +538,12 @@ bool XiaomiGateway::SendMessageToGateway(const std::string &controlmessage) + { + std::string message = controlmessage; + bool result = true; +- boost::asio::io_service io_service; +- boost::asio::ip::udp::socket socket_(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)); ++ boost::asio::io_context io_context; ++ boost::asio::ip::udp::socket socket_(io_context, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)); + stdreplace(message, "@gatewaykey", GetGatewayKey()); + std::shared_ptr<std::string> message1(new std::string(message)); + boost::asio::ip::udp::endpoint remote_endpoint_; +- remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(m_GatewayIp), 9898); ++ remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(m_GatewayIp), 9898); + socket_.send_to(boost::asio::buffer(*message1), remote_endpoint_); + sleep_milliseconds(150); // TODO: reduce or remove sleep + std::array<char, 512> recv_buffer_; +@@ -1015,15 +1015,14 @@ bool XiaomiGateway::StopHardware() + void XiaomiGateway::Do_Work() + { + Log(LOG_STATUS, "XiaomiGateway (ID=%d): Worker started...", m_HwdID); +- boost::asio::io_service io_service; ++ boost::asio::io_context io_context; + // Find the local ip address that is similar to the xiaomi gateway + try + { +- boost::asio::ip::udp::resolver resolver(io_service); +- boost::asio::ip::udp::resolver::query query(boost::asio::ip::udp::v4(), m_GatewayIp, ""); +- auto endpoints = resolver.resolve(query); +- boost::asio::ip::udp::endpoint ep = *endpoints; +- boost::asio::ip::udp::socket socket(io_service); ++ boost::asio::ip::udp::resolver resolver(io_context); ++ auto endpoints = resolver.resolve(boost::asio::ip::udp::v4(), m_GatewayIp, ""); ++ boost::asio::ip::udp::endpoint ep = *endpoints.begin(); ++ boost::asio::ip::udp::socket socket(io_context); + socket.connect(ep); + boost::asio::ip::address addr = socket.local_endpoint().address(); + std::string compareIp = m_GatewayIp.substr(0, (m_GatewayIp.length() - 3)); +@@ -1073,11 +1072,11 @@ void XiaomiGateway::Do_Work() + } + } + +- XiaomiGateway::xiaomi_udp_server udp_server(io_service, m_HwdID, m_GatewayIp, m_LocalIp, m_ListenPort9898, m_OutputMessage, m_IncludeVoltage, this); ++ XiaomiGateway::xiaomi_udp_server udp_server(io_context, m_HwdID, m_GatewayIp, m_LocalIp, m_ListenPort9898, m_OutputMessage, m_IncludeVoltage, this); + boost::thread bt; + if (m_ListenPort9898) + { +- bt = boost::thread([p = &io_service] { p->run(); }); ++ bt = boost::thread([p = &io_context] { p->run(); }); + SetThreadName(bt.native_handle(), "XiaomiGatewayIO"); + } + +@@ -1094,7 +1093,7 @@ void XiaomiGateway::Do_Work() + // Log(LOG_STATUS, "sec_counter %d", sec_counter); + } + } +- io_service.stop(); ++ io_context.stop(); + if (bt.joinable()) + { + bt.join(); +@@ -1178,9 +1177,9 @@ unsigned int XiaomiGateway::GetShortID(const std::string &nodeid) + return sID; + } + +-XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_service, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, const bool listenPort9898, ++XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_context &io_context, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, const bool listenPort9898, + const bool outputMessage, const bool includeVoltage, XiaomiGateway *parent) +- : socket_(io_service, boost::asio::ip::udp::v4()) ++ : socket_(io_context, boost::asio::ip::udp::v4()) + { + m_HardwareID = m_HwdID; + m_XiaomiGateway = parent; +@@ -1196,8 +1195,8 @@ XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_ + if (!m_localip.empty()) + { + boost::system::error_code ec; +- boost::asio::ip::address listen_addr = boost::asio::ip::address::from_string(m_localip, ec); +- boost::asio::ip::address mcast_addr = boost::asio::ip::address::from_string("224.0.0.50", ec); ++ boost::asio::ip::address listen_addr = boost::asio::ip::make_address_v4(m_localip, ec); ++ boost::asio::ip::address mcast_addr = boost::asio::ip::make_address_v4("224.0.0.50", ec); + boost::asio::ip::udp::endpoint listen_endpoint(mcast_addr, 9898); + + socket_.bind(boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 9898)); +@@ -1213,9 +1212,9 @@ XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_ + socket_.bind(boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 9898)); + std::shared_ptr<std::string> message(new std::string(R"({"cmd":"whois"})")); + boost::asio::ip::udp::endpoint remote_endpoint; +- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("224.0.0.50"), 4321); ++ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4("224.0.0.50"), 4321); + socket_.send_to(boost::asio::buffer(*message), remote_endpoint); +- socket_.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::address::from_string("224.0.0.50"))); ++ socket_.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address_v4("224.0.0.50"))); + } + } + catch (const boost::system::system_error &ex) +@@ -1720,7 +1719,7 @@ void XiaomiGateway::xiaomi_udp_server::handle_receive(const boost::system::error + message.append("\"}"); + std::shared_ptr<std::string> message1(new std::string(message)); + boost::asio::ip::udp::endpoint remote_endpoint; +- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(TrueGateway->GetGatewayIp().c_str()), 9898); ++ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(TrueGateway->GetGatewayIp().c_str()), 9898); + socket_.send_to(boost::asio::buffer(*message1), remote_endpoint); + } + } +@@ -1746,7 +1745,7 @@ void XiaomiGateway::xiaomi_udp_server::handle_receive(const boost::system::error + std::string message = R"({"cmd" : "get_id_list"})"; + std::shared_ptr<std::string> message2(new std::string(message)); + boost::asio::ip::udp::endpoint remote_endpoint; +- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(TrueGateway->GetGatewayIp().c_str()), 9898); ++ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(TrueGateway->GetGatewayIp().c_str()), 9898); + socket_.send_to(boost::asio::buffer(*message2), remote_endpoint); + } + } +diff --git hardware/XiaomiGateway.h hardware/XiaomiGateway.h +index dce4b34..1f552f3 100644 +--- hardware/XiaomiGateway.h ++++ hardware/XiaomiGateway.h +@@ -100,7 +100,7 @@ class XiaomiGateway : public CDomoticzHardwareBase + class xiaomi_udp_server + { + public: +- xiaomi_udp_server(boost::asio::io_service &io_service, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, bool listenPort9898, bool outputMessage, ++ xiaomi_udp_server(boost::asio::io_context &io_context, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, bool listenPort9898, bool outputMessage, + bool includeVolage, XiaomiGateway *parent); + ~xiaomi_udp_server() = default; + +diff --git hardware/Yeelight.cpp hardware/Yeelight.cpp +index cdb7889..e5fe8fc 100644 +--- hardware/Yeelight.cpp ++++ hardware/Yeelight.cpp +@@ -93,8 +93,8 @@ void Yeelight::Do_Work() + + try + { +- boost::asio::io_service io_service; +- udp_server server(io_service, m_HwdID); ++ boost::asio::io_context io_context; ++ udp_server server(io_context, m_HwdID); + int sec_counter = YEELIGHT_POLL_INTERVAL - 5; + while (!IsStopRequested(1000)) + { +@@ -105,7 +105,7 @@ void Yeelight::Do_Work() + if (sec_counter % 60 == 0) //poll YeeLights every minute + { + server.start_send(); +- io_service.run(); ++ io_context.run(); + } + } + } +@@ -227,12 +227,11 @@ bool Yeelight::WriteToHardware(const char *pdata, const unsigned char length) + + try + { +- boost::asio::io_service io_service; +- boost::asio::ip::tcp::socket sendSocket(io_service); +- boost::asio::ip::tcp::resolver resolver(io_service); +- boost::asio::ip::tcp::resolver::query query(boost::asio::ip::tcp::v4(), szTmp, "55443"); +- auto iterator = resolver.resolve(query); +- boost::asio::connect(sendSocket, iterator); ++ boost::asio::io_context io_context; ++ boost::asio::ip::tcp::socket sendSocket(io_context); ++ boost::asio::ip::tcp::resolver resolver(io_context); ++ auto endpoints = resolver.resolve(boost::asio::ip::tcp::v4(), szTmp, "55443"); ++ boost::asio::connect(sendSocket, endpoints); + + std::string message; + std::string message2; +@@ -404,8 +403,8 @@ bool Yeelight::WriteToHardware(const char *pdata, const unsigned char length) + std::array<char, 1024> recv_buffer_; + int hardwareId; + +-Yeelight::udp_server::udp_server(boost::asio::io_service& io_service, int m_HwdID) +- : socket_(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)) ++Yeelight::udp_server::udp_server(boost::asio::io_context& io_context, int m_HwdID) ++ : socket_(io_context, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)) + { + socket_.set_option(boost::asio::ip::udp::socket::reuse_address(true)); + socket_.set_option(boost::asio::socket_base::broadcast(true)); +@@ -421,7 +420,7 @@ void Yeelight::udp_server::start_send() + //Log(LOG_STATUS, "start_send.................."); + std::shared_ptr<std::string> message( + new std::string(testMessage)); +- remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("239.255.255.250"), 1982); ++ remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4("239.255.255.250"), 1982); + socket_.send_to(boost::asio::buffer(*message), remote_endpoint_); + sleep_milliseconds(150); + start_receive(); +diff --git hardware/Yeelight.h hardware/Yeelight.h +index fb03c28..3b7b4c3 100644 +--- hardware/Yeelight.h ++++ hardware/Yeelight.h +@@ -25,7 +25,7 @@ class Yeelight : public CDomoticzHardwareBase + class udp_server + { + public: +- udp_server(boost::asio::io_service &io_service, int m_HwdID); ++ udp_server(boost::asio::io_context &io_context, int m_HwdID); + boost::asio::ip::udp::socket socket_; + boost::asio::ip::udp::endpoint remote_endpoint_; + void start_send(); +diff --git hardware/plugins/PluginManager.cpp hardware/plugins/PluginManager.cpp +index 2813112..423edbb 100644 +--- hardware/plugins/PluginManager.cpp ++++ hardware/plugins/PluginManager.cpp +@@ -64,7 +64,7 @@ namespace Plugins { + // PyMODINIT_FUNC PyInit_DomoticzEvents(void); + + std::mutex PluginMutex; // controls accessto the message queue and m_pPlugins map +- boost::asio::io_service ios; ++ boost::asio::io_context ios; + + std::map<int, CDomoticzHardwareBase*> CPluginSystem::m_pPlugins; + std::map<std::string, std::string> CPluginSystem::m_PluginXml; +@@ -315,7 +315,7 @@ namespace Plugins { + // Create initial IO Service thread + ios.restart(); + // Create some work to keep IO Service alive +- auto work = boost::asio::io_service::work(ios); ++ auto work = boost::asio::make_work_guard(ios); + boost::thread_group BoostThreads; + for (int i = 0; i < 1; i++) + { +diff --git hardware/plugins/PluginTransports.cpp hardware/plugins/PluginTransports.cpp +index 52d14e7..f7ace0f 100644 +--- hardware/plugins/PluginTransports.cpp ++++ hardware/plugins/PluginTransports.cpp +@@ -116,15 +116,14 @@ namespace Plugins { + m_bConnected = false; + m_Socket = new boost::asio::ip::tcp::socket(ios); + +- boost::system::error_code ec; +- boost::asio::ip::tcp::resolver::query query(m_IP, m_Port); +- auto iter = m_Resolver.resolve(query); +- boost::asio::ip::tcp::endpoint endpoint = *iter; +- + // + // Async resolve/connect based on http://www.boost.org/doc/libs/1_45_0/doc/html/boost_asio/example/http/client/async_client.cpp + // +- m_Resolver.async_resolve(query, [this](auto &&err, auto end) { handleAsyncResolve(err, end); }); ++ m_Resolver.async_resolve(m_IP, m_Port, ++ [this](auto &&err, auto endpoints) { ++ handleAsyncResolve(err, endpoints); ++ } ++ ); + } + } + catch (std::exception& e) +@@ -139,15 +138,14 @@ namespace Plugins { + return true; + } + +- void CPluginTransportTCP::handleAsyncResolve(const boost::system::error_code & err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator) ++ void CPluginTransportTCP::handleAsyncResolve(const boost::system::error_code & err, boost::asio::ip::tcp::resolver::results_type endpoints) + { + CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin; + AccessPython Guard(pPlugin, "CPluginTransportTCP::handleAsyncResolve"); + + if (!err) + { +- boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator; +- m_Socket->async_connect(endpoint, [this, endpoint_iterator](auto &&err) mutable { handleAsyncConnect(err, ++endpoint_iterator); }); ++ boost::asio::async_connect(*m_Socket, endpoints, [this](auto &&err, const boost::asio::ip::tcp::endpoint &endpoint) mutable { handleAsyncConnect(err, endpoint); }); + } + else + { +@@ -169,7 +167,7 @@ namespace Plugins { + } + } + +- void CPluginTransportTCP::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) ++ void CPluginTransportTCP::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint) + { + CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin; + AccessPython Guard(pPlugin, "CPluginTransportTCP::handleAsyncResolve"); +@@ -481,7 +479,7 @@ namespace Plugins { + } + }; + +- void CPluginTransportTCPSecure::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) ++ void CPluginTransportTCPSecure::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint) + { + CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin; + if (!pPlugin) return; +@@ -498,7 +496,7 @@ namespace Plugins { + SSL_set_tlsext_host_name(m_TLSSock->native_handle(), m_IP.c_str()); // Enable SNI + + m_TLSSock->set_verify_mode(boost::asio::ssl::verify_none); +- m_TLSSock->set_verify_callback(boost::asio::ssl::rfc2818_verification(m_IP)); ++ m_TLSSock->set_verify_callback(boost::asio::ssl::host_name_verification(m_IP)); + // m_TLSSock->set_verify_callback([this](auto v, auto &c){ VerifyCertificate(v, c);}); + try + { +@@ -648,7 +646,7 @@ namespace Plugins { + // Hanlde multicast + if (((m_IP.substr(0, 4) >= "224.") && (m_IP.substr(0, 4) <= "239.")) || (m_IP.substr(0, 4) == "255.")) + { +- m_Socket->set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::address::from_string(m_IP.c_str())), ec); ++ m_Socket->set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address_v4(m_IP.c_str())), ec); + m_Socket->set_option(boost::asio::ip::multicast::hops(2), ec); + } + } +@@ -764,7 +762,7 @@ namespace Plugins { + } + else + { +- boost::asio::ip::udp::endpoint destination(boost::asio::ip::address::from_string(m_IP.c_str()), atoi(m_Port.c_str())); ++ boost::asio::ip::udp::endpoint destination(boost::asio::ip::make_address_v4(m_IP.c_str()), atoi(m_Port.c_str())); + size_t bytes_transferred = m_Socket->send_to(boost::asio::buffer(pMessage, pMessage.size()), destination); + } + } +@@ -825,12 +823,14 @@ namespace Plugins { + } + }; + +- void CPluginTransportICMP::handleAsyncResolve(const boost::system::error_code &ec, const boost::asio::ip::icmp::resolver::iterator &endpoint_iterator) ++ void CPluginTransportICMP::handleAsyncResolve(const boost::system::error_code &ec, boost::asio::ip::icmp::resolver::results_type endpoints) + { + if (!ec) + { ++ m_Endpoint = endpoints.begin()->endpoint(); ++ m_IP = m_Endpoint.address().to_string(); ++ + m_bConnected = true; +- m_IP = endpoint_iterator->endpoint().address().to_string(); + + // Listen will fail (10022 - bad parameter) unless something has been sent(?) + std::string body("ping"); +@@ -857,15 +857,11 @@ namespace Plugins { + m_bConnecting = true; + m_Socket = new boost::asio::ip::icmp::socket(ios, boost::asio::ip::icmp::v4()); + +- boost::system::error_code ec; +- boost::asio::ip::icmp::resolver::query query(boost::asio::ip::icmp::v4(), m_IP, ""); +- auto iter = m_Resolver.resolve(query); +- m_Endpoint = *iter; +- +- // +- // Async resolve/connect based on http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/example/icmp/ping.cpp +- // +- m_Resolver.async_resolve(query, [this](auto &&err, auto i) { handleAsyncResolve(err, i); }); ++ m_Resolver.async_resolve(boost::asio::ip::icmp::v4(), m_IP, "", ++ [this](auto &&err, auto endpoints) { ++ handleAsyncResolve(err, endpoints); ++ } ++ ); + } + else + { +diff --git hardware/plugins/PluginTransports.h hardware/plugins/PluginTransports.h +index c1cc1e3..79d5725 100644 +--- hardware/plugins/PluginTransports.h ++++ hardware/plugins/PluginTransports.h +@@ -6,7 +6,7 @@ + + namespace Plugins { + +- extern boost::asio::io_service ios; ++ extern boost::asio::io_context ios; + + class CPluginTransport + { +@@ -85,8 +85,8 @@ namespace Plugins { + , m_Socket(nullptr){}; + bool handleConnect() override; + bool handleListen() override; +- virtual void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator); +- virtual void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator); ++ virtual void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::results_type endpoints); ++ virtual void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint); + virtual void handleAsyncAccept(boost::asio::ip::tcp::socket *pSocket, const boost::system::error_code &error); + void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override; + void handleWrite(const std::vector<byte> &pMessage) override; +@@ -111,7 +111,7 @@ namespace Plugins { + : CPluginTransportTCP(HwdID, pConnection, Address, Port) + , m_Context(nullptr) + , m_TLSSock(nullptr){}; +- void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) override; ++ void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint) override; + void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override; + void handleWrite(const std::vector<byte> &pMessage) override; + ~CPluginTransportTCPSecure() override; +@@ -151,7 +151,7 @@ namespace Plugins { + , m_Socket(nullptr) + , m_Timer(nullptr) + , m_SequenceNo(-1){}; +- void handleAsyncResolve(const boost::system::error_code &err, const boost::asio::ip::icmp::resolver::iterator &endpoint_iterator); ++ void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::icmp::resolver::results_type endpoints); + bool handleListen() override; + void handleTimeout(const boost::system::error_code &) override; + void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override; +diff --git main/WebServerCmds.cpp main/WebServerCmds.cpp +index 7d4a9f2..3586373 100644 +--- main/WebServerCmds.cpp ++++ main/WebServerCmds.cpp +@@ -1632,7 +1632,7 @@ namespace http + ExtraHeaders.push_back("App_Revision: " + std::to_string(iAppRevision)); + ExtraHeaders.push_back("System_Name: " + systemname); + ExtraHeaders.push_back("Machine: " + machine); +- ExtraHeaders.push_back("Type: " + (!bIsBetaChannel) ? "Stable" : "Beta"); ++ ExtraHeaders.push_back("Type: " + std::string(!bIsBetaChannel ? "Stable" : "Beta")); + + if (!HTTPClient::GET(szHistoryURL, ExtraHeaders, historyfile)) + { +diff --git main/mainworker.cpp main/mainworker.cpp +index b5027eb..b8f8dc7 100644 +--- main/mainworker.cpp ++++ main/mainworker.cpp +@@ -1318,7 +1318,7 @@ bool MainWorker::IsUpdateAvailable(const bool bIsForced) + ExtraHeaders.push_back("App_Revision: " + std::to_string(iAppRevision)); + ExtraHeaders.push_back("System_Name: " + m_szSystemName); + ExtraHeaders.push_back("Machine: " + machine); +- ExtraHeaders.push_back("Type: " + (!bIsBetaChannel) ? "Stable" : "Beta"); ++ ExtraHeaders.push_back("Type: " + std::string(!bIsBetaChannel ? "Stable" : "Beta")); + + if (!HTTPClient::GET(szURL, ExtraHeaders, revfile)) + return false; +diff --git plugins/examples/Pinger.py plugins/examples/Pinger.py +index 6b54559..c7a776d 100644 +--- plugins/examples/Pinger.py ++++ plugins/examples/Pinger.py +@@ -3,7 +3,7 @@ + # Author: Dnpwwo, 2017 - 2018 + # + """ +-<plugin key="ICMP" name="Pinger (ICMP)" author="dnpwwo" version="3.1.4"> ++<plugin key="ICMP" name="Pinger (ICMP)" author="dnpwwo" version="3.1.5"> + <description> + ICMP Pinger Plugin.<br/><br/> + Specify comma delimted addresses (IP or DNS names) of devices that are to be pinged.<br/> +@@ -144,8 +144,9 @@ class BasePlugin: + for Device in Devices: + if (("Name" in Devices[Device].Options) and (Devices[Device].Options["Name"] == Connection.Name)): + UpdateDevice(Device, 0, "Off", TimedOut) +- self.icmpConn.Close() +- self.icmpConn = None ++ if (self.icmpConn != None): ++ self.icmpConn.Close() ++ self.icmpConn = None + + def onHeartbeat(self): + Domoticz.Debug("Heartbeating...") +diff --git push/MQTTPush.h push/MQTTPush.h +index 0773b43..d9f9332 100644 +--- push/MQTTPush.h ++++ push/MQTTPush.h +@@ -14,7 +14,7 @@ public: + void on_message(const struct mosquitto_message* message) override; + void on_connect(int rc) override; + void on_disconnect(int rc) override; +- void on_going_down(); ++ void on_going_down() override; + private: + struct _tPushItem + { +diff --git tcpserver/TCPClient.cpp tcpserver/TCPClient.cpp +index d55da10..3eee093 100644 +--- tcpserver/TCPClient.cpp ++++ tcpserver/TCPClient.cpp +@@ -19,7 +19,7 @@ namespace tcp { + delete socket_; + } + +- CTCPClient::CTCPClient(boost::asio::io_service& ios, CTCPServerIntBase* pManager) ++ CTCPClient::CTCPClient(boost::asio::io_context& ios, CTCPServerIntBase* pManager) + : CTCPClientBase(pManager) + { + socket_ = new boost::asio::ip::tcp::socket(ios); +diff --git tcpserver/TCPClient.h tcpserver/TCPClient.h +index df4350d..e7a882b 100644 +--- tcpserver/TCPClient.h ++++ tcpserver/TCPClient.h +@@ -38,7 +38,7 @@ class CTCPClient : public CTCPClientBase, + public std::enable_shared_from_this<CTCPClient> + { + public: +- CTCPClient(boost::asio::io_service& ios, CTCPServerIntBase *pManager); ++ CTCPClient(boost::asio::io_context& ios, CTCPServerIntBase *pManager); + ~CTCPClient() = default; + void start() override; + void stop() override; +diff --git tcpserver/TCPServer.cpp tcpserver/TCPServer.cpp +index 91fdc7e..57f8709 100644 +--- tcpserver/TCPServer.cpp ++++ tcpserver/TCPServer.cpp +@@ -18,14 +18,14 @@ namespace tcp { + + CTCPServerInt::CTCPServerInt(const std::string& address, const std::string& port, CTCPServer* pRoot) : + CTCPServerIntBase(pRoot), +- io_service_(), +- acceptor_(io_service_) ++ io_context_(), ++ acceptor_(io_context_) + { + // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). +- boost::asio::ip::tcp::resolver resolver(io_service_); +- boost::asio::ip::tcp::resolver::query query(address, port); +- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query); +- acceptor_.open(endpoint.protocol()); ++ boost::asio::ip::tcp::resolver resolver(io_context_); ++ boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type endpoints = resolver.resolve(address, port); ++ auto endpoint = *endpoints.begin(); ++ acceptor_.open(endpoint.endpoint().protocol()); + acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); + // bind to both ipv6 and ipv4 sockets for the "::" address only + if (address == "::") +@@ -35,7 +35,7 @@ namespace tcp { + acceptor_.bind(endpoint); + acceptor_.listen(); + +- new_connection_ = std::make_shared<CTCPClient>(io_service_, this); ++ new_connection_ = std::make_shared<CTCPClient>(io_context_, this); + if (new_connection_ == nullptr) + { + _log.Log(LOG_ERROR, "Error creating new client!"); +@@ -47,24 +47,24 @@ namespace tcp { + + void CTCPServerInt::start() + { +- // The io_service::run() call will block until all asynchronous operations ++ // The io_context::run() call will block until all asynchronous operations + // have finished. While the server is running, there is always at least one + // asynchronous operation outstanding: the asynchronous accept call waiting + // for new incoming connections. +- io_service_.run(); ++ io_context_.run(); + } + + void CTCPServerInt::stop() + { + // Post a call to the stop function so that server::stop() is safe to call + // from any thread. +- io_service_.post([this] { handle_stop(); }); ++ boost::asio::post([this] { handle_stop(); }); + } + + void CTCPServerInt::handle_stop() + { + // The server is stopped by cancelling all outstanding asynchronous +- // operations. Once all operations have finished the io_service::run() call ++ // operations. Once all operations have finished the io_context::run() call + // will exit. + acceptor_.close(); + stopAllClients(); +@@ -88,7 +88,7 @@ namespace tcp { + connections_.insert(new_connection_); + new_connection_->start(); + +- new_connection_.reset(new CTCPClient(io_service_, this)); ++ new_connection_.reset(new CTCPClient(io_context_, this)); + + acceptor_.async_accept(*(new_connection_->socket()), [this](auto&& err) { handleAccept(err); }); + } +diff --git tcpserver/TCPServer.h tcpserver/TCPServer.h +index ca611b1..17284ca 100644 +--- tcpserver/TCPServer.h ++++ tcpserver/TCPServer.h +@@ -70,8 +70,8 @@ private: + /// Handle a request to stop the server. + void handle_stop(); + +- /// The io_service used to perform asynchronous operations. +- boost::asio::io_service io_service_; ++ /// The io_context used to perform asynchronous operations. ++ boost::asio::io_context io_context_; + + boost::asio::ip::tcp::acceptor acceptor_; + +diff --git webserver/cWebem.cpp webserver/cWebem.cpp +index 57d9683..c0d292d 100644 +--- webserver/cWebem.cpp ++++ webserver/cWebem.cpp +@@ -47,13 +47,13 @@ namespace http { + , myRequestHandler(doc_root, this) + // Rene, make sure we initialize m_sessions first, before starting a server + , myServer(server_factory::create(settings, myRequestHandler)) +- , m_io_service() +- , m_session_clean_timer(m_io_service, boost::posix_time::minutes(1)) ++ , m_io_context() ++ , m_session_clean_timer(m_io_context, boost::posix_time::minutes(1)) + { + // associate handler to timer and schedule the first iteration + m_session_clean_timer.async_wait([this](auto &&) { CleanSessions(); }); +- m_io_service_thread = std::make_shared<std::thread>([p = &m_io_service] { p->run(); }); +- SetThreadName(m_io_service_thread->native_handle(), "Webem_ssncleaner"); ++ m_io_context_thread = std::make_shared<std::thread>([p = &m_io_context] { p->run(); }); ++ SetThreadName(m_io_context_thread->native_handle(), "Webem_ssncleaner"); + } + + cWebem::~cWebem() +@@ -93,14 +93,14 @@ namespace http { + // Stop session cleaner + try + { +- if (!m_io_service.stopped()) ++ if (!m_io_context.stopped()) + { +- m_io_service.stop(); ++ m_io_context.stop(); + } +- if (m_io_service_thread) ++ if (m_io_context_thread) + { +- m_io_service_thread->join(); +- m_io_service_thread.reset(); ++ m_io_context_thread->join(); ++ m_io_context_thread.reset(); + } + } + catch (...) +diff --git webserver/cWebem.h webserver/cWebem.h +index 6e3b899..7905c45 100644 +--- webserver/cWebem.h ++++ webserver/cWebem.h +@@ -259,9 +259,9 @@ namespace http + std::string m_webRoot; + /// sessions management + std::mutex m_sessionsMutex; +- boost::asio::io_service m_io_service; ++ boost::asio::io_context m_io_context; + boost::asio::deadline_timer m_session_clean_timer; +- std::shared_ptr<std::thread> m_io_service_thread; ++ std::shared_ptr<std::thread> m_io_context_thread; + }; + + } // namespace server +diff --git webserver/connection.cpp webserver/connection.cpp +index 40f9788..3a70924 100644 +--- webserver/connection.cpp ++++ webserver/connection.cpp +@@ -22,13 +22,13 @@ namespace http { + extern time_t last_write_time(const std::string& path); + + // this is the constructor for plain connections +- connection::connection(boost::asio::io_service &io_service, connection_manager &manager, request_handler &handler, int read_timeout) ++ connection::connection(boost::asio::io_context &io_context, connection_manager &manager, request_handler &handler, int read_timeout) + : send_buffer_(nullptr) + , read_timeout_(read_timeout) +- , read_timer_(io_service, boost::posix_time::seconds(read_timeout)) ++ , read_timer_(io_context, boost::posix_time::seconds(read_timeout)) + , default_abandoned_timeout_(20 * 60) + // 20mn before stopping abandoned connection +- , abandoned_timer_(io_service, boost::posix_time::seconds(default_abandoned_timeout_)) ++ , abandoned_timer_(io_context, boost::posix_time::seconds(default_abandoned_timeout_)) + , connection_manager_(manager) + , request_handler_(handler) + , status_(INITIALIZING) +@@ -39,18 +39,18 @@ namespace http { + keepalive_ = false; + write_in_progress = false; + connection_type = ConnectionType::connection_http; +- socket_ = std::make_unique<boost::asio::ip::tcp::socket>(io_service); ++ socket_ = std::make_unique<boost::asio::ip::tcp::socket>(io_context); + } + + #ifdef WWW_ENABLE_SSL + // this is the constructor for secure connections +- connection::connection(boost::asio::io_service &io_service, connection_manager &manager, request_handler &handler, int read_timeout, boost::asio::ssl::context &context) ++ connection::connection(boost::asio::io_context &io_context, connection_manager &manager, request_handler &handler, int read_timeout, boost::asio::ssl::context &context) + : send_buffer_(nullptr) + , read_timeout_(read_timeout) +- , read_timer_(io_service, boost::posix_time::seconds(read_timeout)) ++ , read_timer_(io_context, boost::posix_time::seconds(read_timeout)) + , default_abandoned_timeout_(20 * 60) + // 20mn before stopping abandoned connection +- , abandoned_timer_(io_service, boost::posix_time::seconds(default_abandoned_timeout_)) ++ , abandoned_timer_(io_context, boost::posix_time::seconds(default_abandoned_timeout_)) + , connection_manager_(manager) + , request_handler_(handler) + , status_(INITIALIZING) +@@ -62,7 +62,7 @@ namespace http { + write_in_progress = false; + connection_type = ConnectionType::connection_http; + socket_ = nullptr; +- sslsocket_ = std::make_unique<ssl_socket>(io_service, context); ++ sslsocket_ = std::make_unique<ssl_socket>(io_context, context); + } + #endif + +@@ -152,9 +152,9 @@ namespace http { + if (error != boost::asio::error::operation_aborted) { + switch (connection_type) { + case ConnectionType::connection_http: +- // Timers should be cancelled before stopping to remove tasks from the io_service. +- // The io_service will stop naturally when every tasks are removed. +- // If timers are not cancelled, the exception ERROR_ABANDONED_WAIT_0 is thrown up to the io_service::run() caller. ++ // Timers should be cancelled before stopping to remove tasks from the io_context. ++ // The io_context will stop naturally when every tasks are removed. ++ // If timers are not cancelled, the exception ERROR_ABANDONED_WAIT_0 is thrown up to the io_context::run() caller. + cancel_abandoned_timeout(); + cancel_read_timeout(); + +@@ -372,7 +372,7 @@ namespace http { + switch (connection_type) + { + case ConnectionType::connection_http: +- begin = boost::asio::buffer_cast<const char*>(_buf.data()); ++ begin = static_cast<const char*>(_buf.data().data()); + try + { + request_parser_.reset(); +@@ -404,7 +404,7 @@ namespace http { + newt = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); + } + +- size_t sizeread = begin - boost::asio::buffer_cast<const char*>(_buf.data()); ++ size_t sizeread = begin - static_cast<const char*>(_buf.data().data()); + _buf.consume(sizeread); + reply_.reset(); + const char* pConnection = request_.get_req_header(&request_, "Connection"); +@@ -520,7 +520,7 @@ namespace http { + break; + case ConnectionType::connection_websocket: + case ConnectionType::connection_websocket_closing: +- begin = boost::asio::buffer_cast<const char*>(_buf.data()); ++ begin = static_cast<const char*>(_buf.data().data()); + result = websocket_parser.parse((const unsigned char*)begin, _buf.size(), bytes_consumed, keepalive_); + _buf.consume(bytes_consumed); + if (result) { +diff --git webserver/connection.hpp webserver/connection.hpp +index ce452b5..c1a82c5 100644 +--- webserver/connection.hpp ++++ webserver/connection.hpp +@@ -43,11 +43,11 @@ namespace http { + std::string host_local_endpoint_port_; + std::string host_last_request_uri_; + }; +- /// Construct a connection with the given io_service. +- explicit connection(boost::asio::io_service& io_service, ++ /// Construct a connection with the given io_context. ++ explicit connection(boost::asio::io_context& io_context, + connection_manager& manager, request_handler& handler, int timeout); + #ifdef WWW_ENABLE_SSL +- explicit connection(boost::asio::io_service& io_service, ++ explicit connection(boost::asio::io_context& io_context, + connection_manager& manager, request_handler& handler, int timeout, boost::asio::ssl::context& context); + #endif + ~connection() = default; +diff --git webserver/server.cpp webserver/server.cpp +index da15887..8bdfc13 100644 +--- webserver/server.cpp ++++ webserver/server.cpp +@@ -13,15 +13,15 @@ namespace http { + namespace server { + + server_base::server_base(const server_settings &settings, request_handler &user_request_handler) +- : io_service_() +- , acceptor_(io_service_) ++ : io_context_() ++ , acceptor_(io_context_) + , request_handler_(user_request_handler) + , settings_(settings) + , timeout_(20) + , // default read timeout in seconds + is_running(false) + , is_stop_complete(false) +- , m_heartbeat_timer(io_service_) ++ , m_heartbeat_timer(io_context_) + { + if (!settings.is_enabled()) + { +@@ -39,10 +39,10 @@ namespace server { + } + + // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). +- boost::asio::ip::tcp::resolver resolver(io_service_); +- boost::asio::ip::tcp::resolver::query query(settings_.listening_address, settings_.listening_port); +- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query); +- acceptor_.open(endpoint.protocol()); ++ boost::asio::ip::tcp::resolver resolver(io_context_); ++ boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type endpoints = resolver.resolve(settings_.listening_address, settings_.listening_port); ++ auto endpoint = *endpoints.begin(); ++ acceptor_.open(endpoint.endpoint().protocol()); + acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); + // bind to both ipv6 and ipv4 sockets for the "::" address only + if (settings_.listening_address == "::") +@@ -59,28 +59,28 @@ namespace server { + } + + void server_base::run() { +- // The io_service::run() call will block until all asynchronous operations ++ // The io_context::run() call will block until all asynchronous operations + // have finished. While the server is running, there is always at least one + // asynchronous operation outstanding: the asynchronous accept call waiting + // for new incoming connections. + try { + is_running = true; + heart_beat(boost::system::error_code()); +- io_service_.run(); ++ io_context_.run(); + is_running = false; + } catch (std::exception& e) { + _log.Log(LOG_ERROR, "[web:%s] exception occurred : '%s' (need to run again)", settings_.listening_port.c_str(), e.what()); + is_running = false; + // Note: if acceptor is up everything is OK, we can call run() again + // but if the exception has broken the acceptor we cannot stop/start it and the next run() will exit immediatly. +- io_service_.reset(); // this call is needed before calling run() again ++ io_context_.restart(); // this call is needed before calling run() again + throw; + } catch (...) { + _log.Log(LOG_ERROR, "[web:%s] unknown exception occurred (need to run again)", settings_.listening_port.c_str()); + is_running = false; + // Note: if acceptor is up everything is OK, we can call run() again + // but if the exception has broken the acceptor we cannot stop/start it and the next run() will exit immediatly. +- io_service_.reset(); // this call is needed before calling run() again ++ io_context_.restart(); // this call is needed before calling run() again + throw; + } + } +@@ -89,12 +89,12 @@ void server_base::run() { + void server_base::stop() { + if (is_running) { + // Post a call to the stop function so that server_base::stop() is safe to call from any thread. +- // Rene, set is_running to false, because the following is an io_service call, which makes is_running ++ // Rene, set is_running to false, because the following is an io_context call, which makes is_running + // never set to false whilst in the call itself + is_running = false; +- io_service_.post([this] { handle_stop(); }); ++ boost::asio::post(io_context_, [this] { handle_stop(); }); + } else { +- // if io_service is not running then the post call will not be performed ++ // if io_context is not running then the post call will not be performed + handle_stop(); + } + +@@ -112,7 +112,7 @@ void server_base::stop() { + } + sleep_milliseconds(500); + } +- io_service_.stop(); ++ io_context_.stop(); + + // Deregister heartbeat + m_mainworker.HeartbeatRemove(std::string("WebServer:") + settings_.listening_port); +@@ -136,7 +136,7 @@ void server_base::heart_beat(const boost::system::error_code& error) + m_mainworker.HeartbeatUpdate(std::string("WebServer:") + settings_.listening_port); + + // Schedule next heartbeat +- m_heartbeat_timer.expires_from_now(std::chrono::seconds(4)); ++ m_heartbeat_timer.expires_after(std::chrono::seconds(4)); + m_heartbeat_timer.async_wait([this](auto &&err) { heart_beat(err); }); + } + } +@@ -148,7 +148,7 @@ server::server(const server_settings &settings, request_handler &user_request_ha + } + + void server::init_connection() { +- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_)); ++ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_)); + } + + /** +@@ -157,7 +157,7 @@ void server::init_connection() { + void server::handle_accept(const boost::system::error_code& e) { + if (!e) { + connection_manager_.start(new_connection_); +- new_connection_.reset(new connection(io_service_, ++ new_connection_.reset(new connection(io_context_, + connection_manager_, request_handler_, timeout_)); + // listen for a subsequent request + acceptor_.async_accept(new_connection_->socket(), [this](auto &&err) { handle_accept(err); }); +@@ -267,7 +267,7 @@ void ssl_server::init_connection() { + } else { + _log.Log(LOG_ERROR, "[web:%s] missing SSL DH parameters file %s!", settings_.listening_port.c_str(), settings_.tmp_dh_file_path.c_str()); + } +- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_, context_)); ++ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_, context_)); + } + + void ssl_server::reinit_connection() +@@ -305,7 +305,7 @@ void ssl_server::reinit_connection() + _log.Log(LOG_ERROR, "[web:%s] missing SSL DH parameters from file %s", settings_.listening_port.c_str(), settings_.tmp_dh_file_path.c_str()); + } + } +- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_, context_)); ++ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_, context_)); + } + + /** +diff --git webserver/server.hpp webserver/server.hpp +index f9e71c5..bd7132a 100644 +--- webserver/server.hpp ++++ webserver/server.hpp +@@ -31,7 +31,7 @@ namespace http + explicit server_base(const server_settings &settings, request_handler &user_request_handler); + virtual ~server_base() = default; + +- /// Run the server's io_service loop. ++ /// Run the server's io_context loop. + void run(); + + /// Stop the server. +@@ -46,8 +46,8 @@ namespace http + protected: + void init(const init_connectionhandler_func &init_connection_handler, accept_handler_func accept_handler); + +- /// The io_service used to perform asynchronous operations. +- boost::asio::io_service io_service_; ++ /// The io_context used to perform asynchronous operations. ++ boost::asio::io_context io_context_; + + /// Acceptor used to listen for incoming connections. + boost::asio::ip::tcp::acceptor acceptor_; diff --git a/www/domoticz/Makefile b/www/domoticz/Makefile index 769b4d500821..51b10699d732 100644 --- a/www/domoticz/Makefile +++ b/www/domoticz/Makefile @@ -1,5 +1,6 @@ PORTNAME= domoticz DISTVERSION= 2024.7 +PORTREVISION= 1 CATEGORIES= www MAINTAINER= kiwi@FreeBSD.org @@ -9,8 +10,6 @@ WWW= https://www.domoticz.com LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/License.txt -BROKEN= fails to build with Boost>=1.87 - LIB_DEPENDS= libcurl.so:ftp/curl \ libboost_system.so:devel/boost-libs \ libjsoncpp.so:devel/jsoncpp \ diff --git a/www/domoticz/files/patch-pr6252 b/www/domoticz/files/patch-pr6252 new file mode 100644 index 000000000000..34c4efd3f4e4 --- /dev/null +++ b/www/domoticz/files/patch-pr6252 @@ -0,0 +1,2178 @@ +Fix for boost 1.87 + +Removed the diff for the msbuild project files, didn't apply cleanly and not relevant anyway. +This will merged in the next stable of domoticz. + +Pullrequest: https://github.com/domoticz/domoticz/pull/6252 +Patch: https://patch-diff.githubusercontent.com/raw/domoticz/domoticz/pull/6252.patch-diff + +diff --git hardware/ASyncSerial.cpp hardware/ASyncSerial.cpp +index 52c950d..6147cdb 100644 +--- hardware/ASyncSerial.cpp ++++ hardware/ASyncSerial.cpp +@@ -54,7 +54,7 @@ public: + { + } + +- boost::asio::io_service io; ///< Io service object ++ boost::asio::io_context io; ///< Io service object + boost::asio::serial_port port; ///< Serial port object + boost::thread backgroundThread; ///< Thread that runs read/write operations + bool open{ false }; ///< True if port open +@@ -117,10 +117,10 @@ void AsyncSerial::open(const std::string& devname, unsigned int baud_rate, + throw; + } + +- pimpl->io.reset(); ++ pimpl->io.restart(); + +- // This gives some work to the io_service before it is started +- pimpl->io.post([this] { return doRead(); }); ++ // This gives some work to the io_context before it is started ++ boost::asio::post(pimpl->io, [this] { return doRead(); }); + + boost::thread t([p = &pimpl->io] { p->run(); }); + pimpl->backgroundThread.swap(t); +@@ -149,10 +149,10 @@ void AsyncSerial::openOnlyBaud(const std::string& devname, unsigned int baud_rat + throw; + } + +- pimpl->io.reset(); ++ pimpl->io.restart(); + +- //This gives some work to the io_service before it is started +- pimpl->io.post([this] { return doRead(); }); ++ //This gives some work to the io_context before it is started ++ boost::asio::post(pimpl->io, [this] { return doRead(); }); + + boost::thread t([p = &pimpl->io] { p->run(); }); + pimpl->backgroundThread.swap(t); +@@ -176,9 +176,9 @@ void AsyncSerial::close() + if(!isOpen()) return; + + pimpl->open = false; +- pimpl->io.post([this] { doClose(); }); ++ boost::asio::post(pimpl->io, [this] { doClose(); }); + pimpl->backgroundThread.join(); +- pimpl->io.reset(); ++ pimpl->io.restart(); + if(errorStatus()) + { + throw(boost::system::system_error(boost::system::error_code(), +@@ -192,7 +192,7 @@ void AsyncSerial::write(const char *data, size_t size) + std::lock_guard<std::mutex> l(pimpl->writeQueueMutex); + pimpl->writeQueue.insert(pimpl->writeQueue.end(),data,data+size); + } +- pimpl->io.post([this] { doWrite(); }); ++ boost::asio::post(pimpl->io, [this] { doWrite(); }); + } + + void AsyncSerial::write(const std::string &data) +@@ -201,7 +201,7 @@ void AsyncSerial::write(const std::string &data) + std::lock_guard<std::mutex> l(pimpl->writeQueueMutex); + pimpl->writeQueue.insert(pimpl->writeQueue.end(), data.c_str(), data.c_str()+data.size()); + } +- pimpl->io.post([this] { doWrite(); }); ++ boost::asio::post(pimpl->io, [this] { doWrite(); }); + } + + void AsyncSerial::write(const std::vector<char>& data) +@@ -211,7 +211,7 @@ void AsyncSerial::write(const std::vector<char>& data) + pimpl->writeQueue.insert(pimpl->writeQueue.end(),data.begin(), + data.end()); + } +- pimpl->io.post([this] { doWrite(); }); ++ boost::asio::post(pimpl->io, [this] { doWrite(); }); + } + + void AsyncSerial::writeString(const std::string& s) +@@ -220,7 +220,7 @@ void AsyncSerial::writeString(const std::string& s) + std::lock_guard<std::mutex> l(pimpl->writeQueueMutex); + pimpl->writeQueue.insert(pimpl->writeQueue.end(),s.begin(),s.end()); + } +- pimpl->io.post([this] { doWrite(); }); ++ boost::asio::post(pimpl->io, [this] { doWrite(); }); + } + + void AsyncSerial::doRead() +diff --git hardware/ASyncSerial.h hardware/ASyncSerial.h +index 0a51ef0..de83f8a 100644 +--- hardware/ASyncSerial.h ++++ hardware/ASyncSerial.h +@@ -123,27 +123,27 @@ class AsyncSerial : private domoticz::noncopyable + + /** + * Callback called to start an asynchronous read operation. +- * This callback is called by the io_service in the spawned thread. ++ * This callback is called by the io_context in the spawned thread. + */ + void doRead(); + + /** + * Callback called at the end of the asynchronous operation. +- * This callback is called by the io_service in the spawned thread. ++ * This callback is called by the io_context in the spawned thread. + */ + void readEnd(const boost::system::error_code &error, size_t bytes_transferred); + + /** + * Callback called to start an asynchronous write operation. + * If it is already in progress, does nothing. +- * This callback is called by the io_service in the spawned thread. ++ * This callback is called by the io_context in the spawned thread. + */ + void doWrite(); + + /** + * Callback called at the end of an asynchronuous write operation, + * if there is more data to write, restarts a new write operation. +- * This callback is called by the io_service in the spawned thread. ++ * This callback is called by the io_context in the spawned thread. + */ + void writeEnd(const boost::system::error_code &error); + +diff --git hardware/ASyncTCP.cpp hardware/ASyncTCP.cpp +index a375561..7c3b536 100644 +--- hardware/ASyncTCP.cpp ++++ hardware/ASyncTCP.cpp +@@ -4,213 +4,241 @@ + #include <boost/system/error_code.hpp> // for error_code + #include "../main/Logger.h" + +-struct hostent; +- + #define MAX_TCP_BUFFER_SIZE 4096 + +-#ifndef WIN32 +- #include <unistd.h> //gethostbyname +-#endif +- + #define STATUS_OK(err) !err +- +-ASyncTCP::ASyncTCP(const bool secure) ++#define STATUS_ERR(err) err ++ ++ASyncTCP::ASyncTCP(const bool secure) : ++ m_Tcpwork(boost::asio::make_work_guard(m_io_context)) ++ , m_Socket(m_io_context) ++ , m_Resolver(m_io_context) ++ , m_ReconnectTimer(m_io_context) ++ , m_TimeoutTimer(m_io_context) ++ , m_SendStrand(m_io_context) + #ifdef WWW_ENABLE_SSL +- : mSecure(secure) ++ , m_bSecure(secure) + #endif + { + m_pRXBuffer = new uint8_t[MAX_TCP_BUFFER_SIZE]; + #ifdef WWW_ENABLE_SSL + mContext.set_verify_mode(boost::asio::ssl::verify_none); +- if (mSecure) ++ if (m_bSecure) + { +- mSslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(mIos, mContext)); ++ m_SslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_context, mContext)); + } + #endif + } + + ASyncTCP::~ASyncTCP() + { +- assert(mTcpthread == nullptr); +- mIsTerminating = true; +- if (mTcpthread) ++ assert(m_Tcpthread == nullptr); ++ m_bIsTerminating = true; ++ if (m_Tcpthread) + { + //This should never happen. terminate() never called!! +- _log.Log(LOG_ERROR, "ASyncTCP: Workerthread not closed. terminate() never called!!!"); +- mIos.stop(); +- if (mTcpthread) ++ _log.Log(LOG_ERROR, "ASyncTCP: Worker thread not closed. terminate() never called!!!"); ++ m_io_context.stop(); ++ if (m_Tcpthread) + { +- mTcpthread->join(); +- mTcpthread.reset(); ++ m_Tcpthread->join(); ++ m_Tcpthread.reset(); + } + } + if (m_pRXBuffer != nullptr) + delete[] m_pRXBuffer; + } + +-void ASyncTCP::SetReconnectDelay(int32_t Delay) ++void ASyncTCP::SetReconnectDelay(const int32_t Delay) + { +- mReconnectDelay = Delay; ++ m_iReconnectDelay = Delay; + } + + void ASyncTCP::connect(const std::string& ip, uint16_t port) + { +- assert(!mSocket.is_open()); +- if (mSocket.is_open()) ++ assert(!m_Socket.is_open()); ++ if (m_Socket.is_open()) + { + _log.Log(LOG_ERROR, "ASyncTCP: connect called while socket is still open. !!!"); + terminate(); + } + +- // RK: We reset mIos here because it might have been stopped in terminate() +- mIos.reset(); +- // RK: After the reset, we need to provide it work anew +- mTcpwork = std::make_shared<boost::asio::io_service::work>(mIos); +- if (!mTcpthread) +- mTcpthread = std::make_shared<std::thread>([p = &mIos] { p->run(); }); +- +- mIp = ip; +- mPort = port; ++ m_IP = ip; ++ m_Port = port; + std::string port_str = std::to_string(port); +- boost::asio::ip::tcp::resolver::query query(ip, port_str); + timeout_start_timer(); +- mResolver.async_resolve(query, [this](auto &&err, auto &&iter) { cb_resolve_done(err, iter); }); ++ ++ m_Resolver.async_resolve( ++ ip, port_str, ++ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::resolver::results_type& endpoints) { ++ handle_resolve(error, endpoints); ++ } ++ ); ++ ++ // RK: We restart m_io_context here because it might have been stopped in terminate() ++ m_io_context.restart(); ++ // RK: After the reset, we need to provide it work anew ++ m_Tcpwork.reset(); ++ m_Tcpwork.emplace(boost::asio::make_work_guard(m_io_context)); ++ if (!m_Tcpthread) ++ m_Tcpthread = std::make_shared<std::thread>([p = &m_io_context] { p->run(); }); + } + +-void ASyncTCP::cb_resolve_done(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator endpoint_iterator) ++void ASyncTCP::handle_resolve(const boost::system::error_code& error, const boost::asio::ip::tcp::resolver::results_type &endpoints) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) +- { +- connect_start(endpoint_iterator); +- } +- else ++ if (STATUS_ERR(error)) + { + process_error(error); ++ return; + } +-} +- +-void ASyncTCP::connect_start(boost::asio::ip::tcp::resolver::iterator& endpoint_iterator) +-{ +- if (mIsConnected) return; +- +- mEndPoint = *endpoint_iterator++; ++ if (m_bIsConnected) return; + + timeout_start_timer(); ++ + #ifdef WWW_ENABLE_SSL +- if (mSecure) ++ if (m_bSecure) + { + // we reset the ssl socket, because the ssl context needs to be reinitialized after a reconnect +- mSslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(mIos, mContext)); +- mSslSocket->lowest_layer().async_connect(mEndPoint, [this, endpoint_iterator](auto &&err) mutable { cb_connect_done(err, endpoint_iterator); }); ++ m_SslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_context, mContext)); ++ boost::asio::async_connect(m_SslSocket->lowest_layer(), endpoints, ++ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint) ++ { ++ handle_connect(error, endpoint); ++ } ++ ); + } + else + #endif + { +- mSocket.async_connect(mEndPoint, [this, endpoint_iterator](auto &&err) mutable { cb_connect_done(err, endpoint_iterator); }); ++ boost::asio::async_connect(m_Socket, endpoints, ++ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint) ++ { ++ handle_connect(error, endpoint); ++ } ++ ); + } + } + +-void ASyncTCP::cb_connect_done(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) ++void ASyncTCP::handle_connect(const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& /*endpoint*/) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) ++ if (STATUS_ERR(error)) + { ++ process_error(error); ++ return; ++ } + #ifdef WWW_ENABLE_SSL +- if (mSecure) +- { +- timeout_start_timer(); +- mSslSocket->async_handshake(boost::asio::ssl::stream_base::client, [this](auto &&err) { cb_handshake_done(err); }); +- } +- else +-#endif +- { +- process_connection(); +- } ++ if (m_bSecure) ++ { ++ timeout_start_timer(); ++ m_SslSocket->async_handshake(boost::asio::ssl::stream_base::client, ++ [this](const boost::system::error_code& error) { ++ cb_handshake_done(error); ++ } ++ ); + } +- else ++ else ++#endif + { +- if (endpoint_iterator != boost::asio::ip::tcp::resolver::iterator()) +- { +- // The connection failed. Try the next endpoint in the list. +- connect_start(endpoint_iterator); +- return; +- } +- process_error(error); ++ process_connection(); + } + } + + #ifdef WWW_ENABLE_SSL + void ASyncTCP::cb_handshake_done(const boost::system::error_code& error) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) +- { +- process_connection(); +- } +- else ++ if (STATUS_ERR(error)) + { + process_error(error); ++ return; + } ++ process_connection(); ++#endif + } ++ ++void ASyncTCP::process_connection() ++{ ++ m_bIsConnected = true; ++#ifdef WWW_ENABLE_SSL ++ ++ if (!m_bSecure) + #endif ++ { ++ // RK: only if non-secure ++ boost::asio::socket_base::keep_alive option(true); ++ m_Socket.set_option(option); ++ } ++ OnConnect(); ++ do_read_start(); ++ do_write_start(); ++} + + void ASyncTCP::reconnect_start_timer() + { +- if (mIsReconnecting) return; ++ if (m_bIsReconnecting) return; + +- if (mReconnectDelay != 0) ++ if (m_iReconnectDelay != 0) + { +- mIsReconnecting = true; +- +- mReconnectTimer.expires_from_now(boost::posix_time::seconds(mReconnectDelay)); +- mReconnectTimer.async_wait([this](auto &&err) { cb_reconnect_start(err); }); ++ m_bIsReconnecting = true; ++ ++ m_ReconnectTimer.expires_from_now(boost::posix_time::seconds(m_iReconnectDelay)); ++ m_ReconnectTimer.async_wait( ++ [this](const boost::system::error_code& error) { ++ cb_reconnect_start(error); ++ } ++ ); + } + } + + void ASyncTCP::cb_reconnect_start(const boost::system::error_code& error) + { +- mIsReconnecting = false; +- mReconnectTimer.cancel(); +- mTimeoutTimer.cancel(); ++ m_bIsReconnecting = false; ++ m_ReconnectTimer.cancel(); ++ m_TimeoutTimer.cancel(); + +- if (mIsConnected) return; ++ if (m_bIsConnected) return; + if (error) return; // timer was cancelled + + do_close(); +- connect(mIp, mPort); ++ connect(m_IP, m_Port); + } + + + void ASyncTCP::terminate(const bool silent) + { +- mIsTerminating = true; ++ m_bIsTerminating = true; + disconnect(silent); +- mTcpwork.reset(); +- mIos.stop(); +- if (mTcpthread) ++ m_Tcpwork.reset(); ++ m_io_context.stop(); ++ if (m_Tcpthread) + { +- mTcpthread->join(); +- mTcpthread.reset(); ++ m_Tcpthread->join(); ++ m_Tcpthread.reset(); + } +- mIsReconnecting = false; +- mIsConnected = false; +- mWriteQ.clear(); +- mIsTerminating = false; ++ m_bIsReconnecting = false; ++ m_bIsConnected = false; ++ m_WriteQ.clear(); ++ m_bIsTerminating = false; + } + + void ASyncTCP::disconnect(const bool silent) + { +- mReconnectTimer.cancel(); +- mTimeoutTimer.cancel(); +- if (!mTcpthread) return; ++ m_ReconnectTimer.cancel(); ++ m_TimeoutTimer.cancel(); ++ if (!m_Tcpthread) return; + + try + { +- mIos.post([this] { do_close(); }); ++ boost::asio::post(m_io_context, ++ [this] { ++ do_close(); ++ } ++ ); + } + catch (...) + { +@@ -223,62 +251,68 @@ void ASyncTCP::disconnect(const bool silent) + + void ASyncTCP::do_close() + { +- if (mIsReconnecting) { ++ if (m_bIsReconnecting) { + return; + } +- mReconnectTimer.cancel(); +- mTimeoutTimer.cancel(); ++ m_ReconnectTimer.cancel(); ++ m_TimeoutTimer.cancel(); + boost::system::error_code ec; + #ifdef WWW_ENABLE_SSL +- if (mSecure) ++ if (m_bSecure) + { +- if (mSslSocket->lowest_layer().is_open()) ++ if (m_SslSocket->lowest_layer().is_open()) + { +- mSslSocket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec); +- mSslSocket->lowest_layer().close(ec); ++ m_SslSocket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec); ++ m_SslSocket->lowest_layer().close(ec); + } + } + else + #endif + { +- if (mSocket.is_open()) ++ if (m_Socket.is_open()) + { +- mSocket.close(ec); ++ m_Socket.close(ec); + } + } + } + + void ASyncTCP::do_read_start() + { +- if (mIsTerminating) return; +- if (!mIsConnected) return; ++ if (m_bIsTerminating) return; ++ if (!m_bIsConnected) return; + + timeout_start_timer(); + #ifdef WWW_ENABLE_SSL +- if (mSecure) ++ if (m_bSecure) + { +- mSslSocket->async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), [this](auto &&err, auto bytes) { cb_read_done(err, bytes); }); ++ m_SslSocket->async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), ++ [this](const boost::system::error_code& error, size_t bytes_transferred) { ++ cb_read_done(error, bytes_transferred); ++ } ++ ); + } + else + #endif + { +- mSocket.async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), [this](auto &&err, auto bytes) { cb_read_done(err, bytes); }); ++ m_Socket.async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), ++ [this](const boost::system::error_code& error, size_t bytes_transferred) { ++ cb_read_done(error, bytes_transferred); ++ } ++ ); + } + } + + void ASyncTCP::cb_read_done(const boost::system::error_code& error, size_t bytes_transferred) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) +- { +- OnData(m_pRXBuffer, bytes_transferred); +- do_read_start(); +- } +- else ++ if (STATUS_ERR(error)) + { + process_error(error); ++ return; + } ++ OnData(m_pRXBuffer, bytes_transferred); ++ do_read_start(); + } + + void ASyncTCP::write(const uint8_t* pData, size_t length) +@@ -288,77 +322,66 @@ void ASyncTCP::write(const uint8_t* pData, size_t length) + + void ASyncTCP::write(const std::string& msg) + { +- if (!mTcpthread) return; ++ if (!m_Tcpthread) return; + +- mSendStrand.post([this, msg]() { cb_write_queue(msg); }); ++ boost::asio::post(m_SendStrand, [this, msg]() { cb_write_queue(msg); }); + } + + void ASyncTCP::cb_write_queue(const std::string& msg) + { +- mWriteQ.push_back(msg); ++ m_WriteQ.push_back(msg); + +- if (mWriteQ.size() == 1) ++ if (m_WriteQ.size() == 1) + do_write_start(); + } + + void ASyncTCP::do_write_start() + { +- if (mIsTerminating) return; +- if (!mIsConnected) return; +- if (mWriteQ.empty()) ++ if (m_bIsTerminating) return; ++ if (!m_bIsConnected) return; ++ if (m_WriteQ.empty()) + return; + + timeout_start_timer(); + #ifdef WWW_ENABLE_SSL +- if (mSecure) ++ if (m_bSecure) + { +- boost::asio::async_write(*mSslSocket, boost::asio::buffer(mWriteQ.front()), [this](auto &&err, auto) { cb_write_done(err); }); ++ boost::asio::async_write(*m_SslSocket, boost::asio::buffer(m_WriteQ.front()), ++ [this](const boost::system::error_code& error, std::size_t length) { ++ cb_write_done(error, length); ++ } ++ ); + } + else + #endif + { +- boost::asio::async_write(mSocket, boost::asio::buffer(mWriteQ.front()), [this](auto &&err, auto) { cb_write_done(err); }); ++ boost::asio::async_write(m_Socket, boost::asio::buffer(m_WriteQ.front()), ++ [this](const boost::system::error_code& error, std::size_t length) { ++ cb_write_done(error, length); ++ } ++ ); + } + } + +-void ASyncTCP::cb_write_done(const boost::system::error_code& error) ++void ASyncTCP::cb_write_done(const boost::system::error_code& error, std::size_t /*length*/) + { +- if (mIsTerminating) return; ++ if (m_bIsTerminating) return; + +- if (STATUS_OK(error)) +- { +- mWriteQ.pop_front(); +- do_write_start(); +- } +- else ++ if (STATUS_ERR(error)) + { + process_error(error); ++ return; + } +-} +- +-void ASyncTCP::process_connection() +-{ +- mIsConnected = true; +-#ifdef WWW_ENABLE_SSL +- +- if (!mSecure) +-#endif +- { +- // RK: only if non-secure +- boost::asio::socket_base::keep_alive option(true); +- mSocket.set_option(option); +- } +- OnConnect(); +- do_read_start(); ++ m_WriteQ.pop_front(); + do_write_start(); + } + + void ASyncTCP::process_error(const boost::system::error_code& error) + { + do_close(); +- if (mIsConnected) ++ if (m_bIsConnected) + { +- mIsConnected = false; ++ m_bIsConnected = false; + OnDisconnect(); + } + +@@ -369,20 +392,23 @@ void ASyncTCP::process_error(const boost::system::error_code& error) + reconnect_start_timer(); + } + +-/* timeout methods */ + void ASyncTCP::timeout_start_timer() + { +- if (0 == mTimeoutDelay) { ++ if (0 == m_iTimeoutDelay) { + return; + } + timeout_cancel_timer(); +- mTimeoutTimer.expires_from_now(boost::posix_time::seconds(mTimeoutDelay)); +- mTimeoutTimer.async_wait([this](auto &&err) { timeout_handler(err); }); ++ m_TimeoutTimer.expires_from_now(boost::posix_time::seconds(m_iTimeoutDelay)); ++ m_TimeoutTimer.async_wait( ++ [this](const boost::system::error_code& error) { ++ timeout_handler(error); ++ } ++ ); + } + + void ASyncTCP::timeout_cancel_timer() + { +- mTimeoutTimer.cancel(); ++ m_TimeoutTimer.cancel(); + } + + void ASyncTCP::timeout_handler(const boost::system::error_code& error) +@@ -397,5 +423,5 @@ void ASyncTCP::timeout_handler(const boost::system::error_code& error) + + void ASyncTCP::SetTimeout(const uint32_t Timeout) + { +- mTimeoutDelay = Timeout; ++ m_iTimeoutDelay = Timeout; + } +diff --git hardware/ASyncTCP.h hardware/ASyncTCP.h +index cf859bb..a8b3ae2 100644 +--- hardware/ASyncTCP.h ++++ hardware/ASyncTCP.h +@@ -3,39 +3,31 @@ + #include <stddef.h> // for size_t + #include <deque> // for write queue + #include <boost/asio/deadline_timer.hpp> // for deadline_timer +-#include <boost/asio/io_service.hpp> // for io_service ++#include <boost/asio/io_context.hpp> // for io_context + #include <boost/asio/strand.hpp> // for strand + #include <boost/asio/ip/tcp.hpp> // for tcp, tcp::endpoint, tcp::s... + #include <boost/asio/ssl.hpp> // for secure sockets + #include <boost/asio/ssl/stream.hpp> // for secure sockets + #include <exception> // for exception ++#include <optional> // for optional + + #define ASYNCTCP_THREAD_NAME "ASyncTCP" + #define DEFAULT_RECONNECT_TIME 30 + #define DEFAULT_TIMEOUT_TIME 60 + +-namespace boost +-{ +- namespace system +- { +- class error_code; +- } // namespace system +-} // namespace boost +- + class ASyncTCP + { +- protected: ++protected: + ASyncTCP(bool secure = false); + virtual ~ASyncTCP(); +- +- void connect(const std::string &hostname, uint16_t port); ++ void connect(const std::string& hostname, uint16_t port); + void disconnect(bool silent = true); +- void write(const std::string &msg); +- void write(const uint8_t *pData, size_t length); +- void SetReconnectDelay(int32_t Delay = DEFAULT_RECONNECT_TIME); ++ void write(const std::string& msg); ++ void write(const uint8_t* pData, size_t length); ++ void SetReconnectDelay(const int32_t Delay = DEFAULT_RECONNECT_TIME); + bool isConnected() + { +- return mIsConnected; ++ return m_bIsConnected; + }; + void terminate(bool silent = true); + void SetTimeout(uint32_t Timeout = DEFAULT_TIMEOUT_TIME); +@@ -43,65 +35,61 @@ class ASyncTCP + // Callback interface to implement in derived classes + virtual void OnConnect() = 0; + virtual void OnDisconnect() = 0; +- virtual void OnData(const uint8_t *pData, size_t length) = 0; +- virtual void OnError(const boost::system::error_code &error) = 0; +- +- boost::asio::io_service mIos; // protected to allow derived classes to attach timers etc. ++ virtual void OnData(const uint8_t* pData, size_t length) = 0; ++ virtual void OnError(const boost::system::error_code& error) = 0; + +- private: +- void cb_resolve_done(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator); +- void connect_start(boost::asio::ip::tcp::resolver::iterator &endpoint_iterator); +- void cb_connect_done(const boost::system::error_code &error, boost::asio::ip::tcp::resolver::iterator &endpoint_iterator); ++ boost::asio::io_context m_io_context; // protected to allow derived classes to attach timers etc. ++private: ++ void handle_resolve(const boost::system::error_code& ec, const boost::asio::ip::tcp::resolver::results_type &results); ++ void handle_connect(const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint); + #ifdef WWW_ENABLE_SSL +- void cb_handshake_done(const boost::system::error_code &error); ++ void cb_handshake_done(const boost::system::error_code& error); + #endif + +- /* timeout methods */ + void timeout_start_timer(); + void timeout_cancel_timer(); + void reconnect_start_timer(); +- void timeout_handler(const boost::system::error_code &error); ++ void timeout_handler(const boost::system::error_code& error); + +- void cb_reconnect_start(const boost::system::error_code &error); ++ void cb_reconnect_start(const boost::system::error_code& error); + + void do_close(); + + void do_read_start(); +- void cb_read_done(const boost::system::error_code &error, size_t bytes_transferred); ++ void cb_read_done(const boost::system::error_code& error, size_t bytes_transferred); + +- void cb_write_queue(const std::string &msg); ++ void cb_write_queue(const std::string& msg); + void do_write_start(); +- void cb_write_done(const boost::system::error_code &error); ++ void cb_write_done(const boost::system::error_code& error, size_t length); + + void process_connection(); +- void process_error(const boost::system::error_code &error); ++ void process_error(const boost::system::error_code& error); + +- bool mIsConnected = false; +- bool mIsReconnecting = false; +- bool mIsTerminating = false; ++ bool m_bIsConnected = false; ++ bool m_bIsReconnecting = false; ++ bool m_bIsTerminating = false; + +- boost::asio::io_service::strand mSendStrand{ mIos }; +- std::deque<std::string> mWriteQ; // we need a write queue to allow concurrent writes ++ boost::asio::io_context::strand m_SendStrand; ++ std::deque<std::string> m_WriteQ; // we need a write queue to allow concurrent writes + + uint8_t* m_pRXBuffer = nullptr; + +- int mReconnectDelay = DEFAULT_RECONNECT_TIME; +- int mTimeoutDelay = 0; +- boost::asio::deadline_timer mReconnectTimer{ mIos }; +- boost::asio::deadline_timer mTimeoutTimer{ mIos }; ++ int m_iReconnectDelay = DEFAULT_RECONNECT_TIME; ++ int m_iTimeoutDelay = 0; ++ boost::asio::deadline_timer m_ReconnectTimer; ++ boost::asio::deadline_timer m_TimeoutTimer; + +- std::shared_ptr<std::thread> mTcpthread; +- std::shared_ptr<boost::asio::io_service::work> mTcpwork; ++ std::shared_ptr<std::thread> m_Tcpthread; ++ std::optional<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>> m_Tcpwork; + + #ifdef WWW_ENABLE_SSL +- const bool mSecure; ++ const bool m_bSecure; + boost::asio::ssl::context mContext{ boost::asio::ssl::context::sslv23 }; +- std::shared_ptr<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> mSslSocket; // the ssl socket ++ std::shared_ptr<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> m_SslSocket; + #endif +- boost::asio::ip::tcp::socket mSocket{ mIos }; +- boost::asio::ip::tcp::endpoint mEndPoint; +- boost::asio::ip::tcp::resolver mResolver{ mIos }; ++ boost::asio::ip::tcp::socket m_Socket; ++ boost::asio::ip::tcp::resolver m_Resolver; + +- std::string mIp; +- uint16_t mPort; ++ std::string m_IP; ++ uint16_t m_Port; + }; +diff --git hardware/Arilux.cpp hardware/Arilux.cpp +index 400f5a3..20bc373 100644 +--- hardware/Arilux.cpp ++++ hardware/Arilux.cpp +@@ -79,7 +79,7 @@ void Arilux::InsertUpdateSwitch(const std::string &lightName, const int subType, + { + uint32_t sID; + try { +- sID = boost::asio::ip::address_v4::from_string(location).to_ulong(); ++ sID = boost::asio::ip::make_address_v4(location).to_uint(); + } catch (const std::exception &e) { + Log(LOG_ERROR, "Bad IP address: %s (%s)", location.c_str(), e.what()); + return; +@@ -112,8 +112,8 @@ bool Arilux::SendTCPCommand(uint32_t ip,std::vector<unsigned char> &command) + sum = sum & 0xFF; + command.push_back((unsigned char)sum); + +- boost::asio::io_service io_service; +- boost::asio::ip::tcp::socket sendSocket(io_service); ++ boost::asio::io_context io_context; ++ boost::asio::ip::tcp::socket sendSocket(io_context); + boost::asio::ip::address_v4 address(ip); + boost::asio::ip::tcp::endpoint endpoint(address, 5577); + try +diff --git hardware/Kodi.cpp hardware/Kodi.cpp +index b528017..5ababf6 100644 +--- hardware/Kodi.cpp ++++ hardware/Kodi.cpp +@@ -143,14 +143,14 @@ _eNotificationTypes CKodiNode::CKodiStatus::NotificationType() + } + } + +-CKodiNode::CKodiNode(boost::asio::io_service *pIos, const int pHwdID, const int PollIntervalsec, const int pTimeoutMs, ++CKodiNode::CKodiNode(boost::asio::io_context *pIoc, const int pHwdID, const int PollIntervalsec, const int pTimeoutMs, + const std::string& pID, const std::string& pName, const std::string& pIP, const std::string& pPort) + { + m_Busy = false; + m_Stoppable = false; + m_PlaylistPosition = 0; + +- m_Ios = pIos; ++ m_Ioc = pIoc; + m_HwdID = pHwdID; + m_DevID = atoi(pID.c_str()); + sprintf(m_szDevID, "%X%02X%02X%02X", 0, 0, (m_DevID & 0xFF00) >> 8, m_DevID & 0xFF); +@@ -581,11 +581,10 @@ void CKodiNode::handleConnect() + { + m_iMissedPongs = 0; + boost::system::error_code ec; +- boost::asio::ip::tcp::resolver resolver(*m_Ios); +- boost::asio::ip::tcp::resolver::query query(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1))); +- auto iter = resolver.resolve(query); +- boost::asio::ip::tcp::endpoint endpoint = *iter; +- m_Socket = new boost::asio::ip::tcp::socket(*m_Ios); ++ boost::asio::ip::tcp::resolver resolver(*m_Ioc); ++ auto iter = resolver.resolve(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1))); ++ boost::asio::ip::tcp::endpoint endpoint = *iter.begin(); ++ m_Socket = new boost::asio::ip::tcp::socket(*m_Ioc); + m_Socket->connect(endpoint, ec); + if (!ec) + { +@@ -975,19 +974,19 @@ void CKodi::Do_Work() + _log.Log(LOG_NORM, "Kodi: (%s) - Restarting thread.", node->m_Name.c_str()); + boost::thread *tAsync = new boost::thread(&CKodiNode::Do_Work, node); + SetThreadName(tAsync->native_handle(), "KodiNode"); +- m_ios.stop(); ++ m_ioc.stop(); + } + if (node->IsOn()) + bWorkToDo = true; + } + +- if (bWorkToDo && m_ios.stopped()) // make sure that there is a boost thread to service i/o operations ++ if (bWorkToDo && m_ioc.stopped()) // make sure that there is a boost thread to service i/o operations + { +- m_ios.reset(); ++ m_ioc.restart(); + // Note that this is the only thread that handles async i/o so we don't + // need to worry about locking or concurrency issues when processing messages + _log.Log(LOG_NORM, "Kodi: Restarting I/O service thread."); +- boost::thread bt([p = &m_ios] { p->run(); }); ++ boost::thread bt([p = &m_ioc] { p->run(); }); + SetThreadName(bt.native_handle(), "KodiIO"); + } + } +@@ -1138,7 +1137,7 @@ void CKodi::ReloadNodes() + { + UnloadNodes(); + +- m_ios.reset(); // in case this is not the first time in ++ m_ioc.restart(); // in case this is not the first time in + + std::vector<std::vector<std::string> > result; + result = m_sql.safe_query("SELECT ID,Name,MacAddress,Timeout FROM WOLNodes WHERE (HardwareID==%d)", m_HwdID); +@@ -1149,7 +1148,7 @@ void CKodi::ReloadNodes() + // create a vector to hold the nodes + for (const auto &sd : result) + { +- auto pNode = std::make_shared<CKodiNode>(&m_ios, m_HwdID, m_iPollInterval, m_iPingTimeoutms, sd[0], sd[1], sd[2], sd[3]); ++ auto pNode = std::make_shared<CKodiNode>(&m_ioc, m_HwdID, m_iPollInterval, m_iPingTimeoutms, sd[0], sd[1], sd[2], sd[3]); + m_pNodes.push_back(pNode); + } + // start the threads to control each kodi +@@ -1161,7 +1160,7 @@ void CKodi::ReloadNodes() + } + sleep_milliseconds(100); + _log.Log(LOG_NORM, "Kodi: Starting I/O service thread."); +- boost::thread bt([p = &m_ios] { p->run(); }); ++ boost::thread bt([p = &m_ioc] { p->run(); }); + SetThreadName(bt.native_handle(), "KodiIO"); + } + } +@@ -1170,10 +1169,10 @@ void CKodi::UnloadNodes() + { + std::lock_guard<std::mutex> l(m_mutex); + +- m_ios.stop(); // stop the service if it is running ++ m_ioc.stop(); // stop the service if it is running + sleep_milliseconds(100); + +- while (((!m_pNodes.empty()) || (!m_ios.stopped()))) ++ while (((!m_pNodes.empty()) || (!m_ioc.stopped()))) + { + for (auto itt = m_pNodes.begin(); itt != m_pNodes.end(); ++itt) + { +diff --git hardware/Kodi.h hardware/Kodi.h +index 14f331c..4435740 100644 +--- hardware/Kodi.h ++++ hardware/Kodi.h +@@ -150,7 +150,7 @@ class CKodiNode : public std::enable_shared_from_this<CKodiNode>, StoppableTask + }; + + public: +- CKodiNode(boost::asio::io_service *, int, int, int, const std::string &, const std::string &, const std::string &, const std::string &); ++ CKodiNode(boost::asio::io_context *, int, int, int, const std::string &, const std::string &, const std::string &, const std::string &); + ~CKodiNode(); + void Do_Work(); + void SendCommand(const std::string &); +@@ -207,7 +207,7 @@ class CKodiNode : public std::enable_shared_from_this<CKodiNode>, StoppableTask + int m_iPollIntSec; + int m_iMissedPongs; + std::string m_sLastMessage; +- boost::asio::io_service *m_Ios; ++ boost::asio::io_context *m_Ioc; + boost::asio::ip::tcp::socket *m_Socket; + std::array<char, 256> m_Buffer; + }; +@@ -243,5 +243,5 @@ class CKodi : public CDomoticzHardwareBase + int m_iPingTimeoutms; + std::shared_ptr<std::thread> m_thread; + std::mutex m_mutex; +- boost::asio::io_service m_ios; ++ boost::asio::io_context m_ioc; + }; +diff --git hardware/MQTTAutoDiscover.h hardware/MQTTAutoDiscover.h +index 0832664..1501d6f 100644 +--- hardware/MQTTAutoDiscover.h ++++ hardware/MQTTAutoDiscover.h +@@ -176,7 +176,7 @@ public: + void on_message(const struct mosquitto_message *message) override; + void on_connect(int rc) override; + void on_disconnect(int rc) override; +- void on_going_down(); ++ void on_going_down() override; + private: + void InsertUpdateSwitch(_tMQTTASensor* pSensor); + +diff --git hardware/PanasonicTV.cpp hardware/PanasonicTV.cpp +index fc57d34..ce20565 100644 +--- hardware/PanasonicTV.cpp ++++ hardware/PanasonicTV.cpp +@@ -356,18 +356,17 @@ std::string CPanasonicNode::handleWriteAndRead(const std::string& pMessageToSend + { + + _log.Debug(DEBUG_HARDWARE, "Panasonic Plugin: (%s) Handling message: '%s'.", m_Name.c_str(), pMessageToSend.c_str()); +- boost::asio::io_service io_service; ++ boost::asio::io_context io_context; + // Get a list of endpoints corresponding to the server name. +- boost::asio::ip::tcp::resolver resolver(io_service); +- boost::asio::ip::tcp::resolver::query query(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1))); +- auto iter = resolver.resolve(query); ++ boost::asio::ip::tcp::resolver resolver(io_context); ++ auto endpoints = resolver.resolve(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1))); ++ auto iter = endpoints.begin(); + boost::asio::ip::tcp::endpoint endpoint = *iter; +- boost::asio::ip::tcp::resolver::iterator end; + + // Try each endpoint until we successfully establish a connection. +- boost::asio::ip::tcp::socket socket(io_service); ++ boost::asio::ip::tcp::socket socket(io_context); + boost::system::error_code error = boost::asio::error::host_not_found; +- while (error && iter != end) ++ while (error && iter != endpoints.end()) + { + socket.close(); + if (handleConnect(socket, *iter, error)) +@@ -1060,7 +1059,7 @@ void CPanasonic::ReloadNodes() + { + UnloadNodes(); + +- //m_ios.reset(); // in case this is not the first time in ++ //m_ioc.reset(); // in case this is not the first time in + + std::vector<std::vector<std::string> > result; + result = m_sql.safe_query("SELECT ID,Name,MacAddress,Timeout FROM WOLNodes WHERE (HardwareID==%d)", m_HwdID); +@@ -1088,10 +1087,10 @@ void CPanasonic::UnloadNodes() + { + std::lock_guard<std::mutex> l(m_mutex); + +- m_ios.stop(); // stop the service if it is running ++ m_ioc.stop(); // stop the service if it is running + sleep_milliseconds(100); + +- while (((!m_pNodes.empty()) || (!m_ios.stopped()))) ++ while (((!m_pNodes.empty()) || (!m_ioc.stopped()))) + { + for (auto itt = m_pNodes.begin(); itt != m_pNodes.end(); ++itt) + { +diff --git hardware/PanasonicTV.h hardware/PanasonicTV.h +index b0a94ff..30e1ca1 100644 +--- hardware/PanasonicTV.h ++++ hardware/PanasonicTV.h +@@ -39,7 +39,7 @@ class CPanasonic : public CDomoticzHardwareBase + bool m_bTryIfOff; + std::shared_ptr<std::thread> m_thread; + std::mutex m_mutex; +- boost::asio::io_service m_ios; ++ boost::asio::io_context m_ioc; + + friend class CPanasonicNode; + }; +diff --git hardware/Pinger.cpp hardware/Pinger.cpp +index a66c7a1..e070b29 100644 +--- hardware/Pinger.cpp ++++ hardware/Pinger.cpp +@@ -21,23 +21,23 @@ + #if BOOST_VERSION >= 107000 + #define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context()) + #else +-#define GET_IO_SERVICE(s) ((s).get_io_service()) ++#define GET_IO_SERVICE(s) ((s).get_io_context()) + #endif + + class pinger + : private domoticz::noncopyable + { + public: +- pinger(boost::asio::io_service &io_service, const char *destination, const int iPingTimeoutms) ++ pinger(boost::asio::io_context &io_context, const char *destination, const int iPingTimeoutms) + : num_replies_(0) + , m_PingState(false) +- , resolver_(io_service) +- , socket_(io_service, boost::asio::ip::icmp::v4()) +- , timer_(io_service) ++ , resolver_(io_context) ++ , socket_(io_context, boost::asio::ip::icmp::v4()) ++ , timer_(io_context) + , sequence_number_(0) + { +- boost::asio::ip::icmp::resolver::query query(boost::asio::ip::icmp::v4(), destination, ""); +- destination_ = *resolver_.resolve(query); ++ auto endpoints = resolver_.resolve(boost::asio::ip::icmp::v4(), destination, ""); ++ destination_ = endpoints.begin()->endpoint(); + + num_tries_ = 1; + PingTimeoutms_ = iPingTimeoutms; +@@ -332,11 +332,11 @@ void CPinger::ReloadNodes() + void CPinger::Do_Ping_Worker(const PingNode &Node) + { + bool bPingOK = false; +- boost::asio::io_service io_service; ++ boost::asio::io_context io_context; + try + { +- pinger p(io_service, Node.IP.c_str(), m_iPingTimeoutms); +- io_service.run(); ++ pinger p(io_context, Node.IP.c_str(), m_iPingTimeoutms); ++ io_context.run(); + if (p.m_PingState == true) + { + bPingOK = true; +diff --git hardware/RFLinkMQTT.h hardware/RFLinkMQTT.h +index e938328..72433b8 100644 +--- hardware/RFLinkMQTT.h ++++ hardware/RFLinkMQTT.h +@@ -46,7 +46,7 @@ protected: + boost::signals2::connection m_sDeviceReceivedConnection; + boost::signals2::connection m_sSwitchSceneConnection; + void selectNextIPAdress( void ); +- virtual bool WriteInt(const std::string &sendString); // override; ++ bool WriteInt(const std::string &sendString) override; + void Do_Work(); + virtual void SendHeartbeat(); + void StopMQTT(); +diff --git hardware/TCPProxy/tcpproxy_server.cpp hardware/TCPProxy/tcpproxy_server.cpp +index 8aceb0b..d77d4bf 100644 +--- hardware/TCPProxy/tcpproxy_server.cpp ++++ hardware/TCPProxy/tcpproxy_server.cpp +@@ -18,12 +18,12 @@ + #if BOOST_VERSION >= 107000 + #define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context()) + #else +-#define GET_IO_SERVICE(s) ((s).get_io_service()) ++#define GET_IO_SERVICE(s) ((s).get_io_context()) + #endif + + namespace tcp_proxy + { +- bridge::bridge(boost::asio::io_service& ios) ++ bridge::bridge(boost::asio::io_context& ios) + : downstream_socket_(ios), + upstream_socket_(ios) + { +@@ -44,7 +44,7 @@ namespace tcp_proxy + boost::asio::ip::tcp::endpoint end; + + +- boost::asio::io_service &ios= GET_IO_SERVICE(downstream_socket_); ++ boost::asio::io_context &ios= GET_IO_SERVICE(downstream_socket_); + boost::asio::ip::tcp::resolver resolver(ios); + boost::asio::ip::tcp::resolver::query query(upstream_host, upstream_port, boost::asio::ip::resolver_query_base::numeric_service); + auto i = resolver.resolve(query); +@@ -137,10 +137,10 @@ namespace tcp_proxy + } + //Acceptor Class + acceptor::acceptor(const std::string &local_host, unsigned short local_port, const std::string &upstream_host, const std::string &upstream_port) +- : io_service_() ++ : io_context_() + , m_bDoStop(false) + , localhost_address(boost::asio::ip::address_v4::from_string(local_host)) +- , acceptor_(io_service_, boost::asio::ip::tcp::endpoint(localhost_address, local_port)) ++ , acceptor_(io_context_, boost::asio::ip::tcp::endpoint(localhost_address, local_port)) + , upstream_host_(upstream_host) + , upstream_port_(upstream_port) + { +@@ -151,7 +151,7 @@ namespace tcp_proxy + { + try + { +- session_ = std::make_shared<bridge>(io_service_); ++ session_ = std::make_shared<bridge>(io_context_); + session_->sDownstreamData.connect([this](auto d, auto l) { OnDownstreamData(d, l); }); + session_->sUpstreamData.connect([this](auto d, auto l) { OnUpstreamData(d, l); }); + +@@ -169,11 +169,11 @@ namespace tcp_proxy + m_bDoStop=false; + + accept_connections(); +- // The io_service::run() call will block until all asynchronous operations ++ // The io_context::run() call will block until all asynchronous operations + // have finished. While the server is running, there is always at least one + // asynchronous operation outstanding: the asynchronous accept call waiting + // for new incoming connections. +- io_service_.run(); ++ io_context_.run(); + return true; + } + bool acceptor::stop() +@@ -181,14 +181,14 @@ namespace tcp_proxy + m_bDoStop=true; + // Post a call to the stop function so that server::stop() is safe to call + // from any thread. +- io_service_.post([this] { handle_stop(); }); ++ io_context_.post([this] { handle_stop(); }); + return true; + } + + void acceptor::handle_stop() + { + // The server is stopped by canceling all outstanding asynchronous +- // operations. Once all operations have finished the io_service::run() call ++ // operations. Once all operations have finished the io_context::run() call + // will exit. + acceptor_.close(); + //connection_manager_.stop_all(); +diff --git hardware/TCPProxy/tcpproxy_server.h hardware/TCPProxy/tcpproxy_server.h +index 3d1a150..148e65f 100644 +--- hardware/TCPProxy/tcpproxy_server.h ++++ hardware/TCPProxy/tcpproxy_server.h +@@ -10,7 +10,7 @@ namespace tcp_proxy + class bridge : public std::enable_shared_from_this<bridge> + { + public: +- explicit bridge(boost::asio::io_service& ios); ++ explicit bridge(boost::asio::io_context& ios); + boost::asio::ip::tcp::socket& downstream_socket(); + boost::asio::ip::tcp::socket& upstream_socket(); + +@@ -52,8 +52,8 @@ namespace tcp_proxy + void OnUpstreamData(const unsigned char *pData, size_t Len); + void OnDownstreamData(const unsigned char *pData, size_t Len); + +- /// The io_service used to perform asynchronous operations. +- boost::asio::io_service io_service_; ++ /// The io_context used to perform asynchronous operations. ++ boost::asio::io_context io_context_; + bool m_bDoStop; + boost::asio::ip::address_v4 localhost_address; + boost::asio::ip::tcp::acceptor acceptor_; +diff --git hardware/XiaomiDeviceSupport.h hardware/XiaomiDeviceSupport.h +index fad7884..4a76d96 100644 +--- hardware/XiaomiDeviceSupport.h ++++ hardware/XiaomiDeviceSupport.h +@@ -15,6 +15,7 @@ + class XiaomiDeviceSupport + { + public: ++ virtual ~XiaomiDeviceSupport() = default; + /** + * Method to get 'model' corresponding to the ID of the device in case the Gateway API didn't provide it. + * +diff --git hardware/XiaomiGateway.cpp hardware/XiaomiGateway.cpp +index 66acdc5..fb4387a 100644 +--- hardware/XiaomiGateway.cpp ++++ hardware/XiaomiGateway.cpp +@@ -538,12 +538,12 @@ bool XiaomiGateway::SendMessageToGateway(const std::string &controlmessage) + { + std::string message = controlmessage; + bool result = true; +- boost::asio::io_service io_service; +- boost::asio::ip::udp::socket socket_(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)); ++ boost::asio::io_context io_context; ++ boost::asio::ip::udp::socket socket_(io_context, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)); + stdreplace(message, "@gatewaykey", GetGatewayKey()); + std::shared_ptr<std::string> message1(new std::string(message)); + boost::asio::ip::udp::endpoint remote_endpoint_; +- remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(m_GatewayIp), 9898); ++ remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(m_GatewayIp), 9898); + socket_.send_to(boost::asio::buffer(*message1), remote_endpoint_); + sleep_milliseconds(150); // TODO: reduce or remove sleep + std::array<char, 512> recv_buffer_; +@@ -1015,15 +1015,14 @@ bool XiaomiGateway::StopHardware() + void XiaomiGateway::Do_Work() + { + Log(LOG_STATUS, "XiaomiGateway (ID=%d): Worker started...", m_HwdID); +- boost::asio::io_service io_service; ++ boost::asio::io_context io_context; + // Find the local ip address that is similar to the xiaomi gateway + try + { +- boost::asio::ip::udp::resolver resolver(io_service); +- boost::asio::ip::udp::resolver::query query(boost::asio::ip::udp::v4(), m_GatewayIp, ""); +- auto endpoints = resolver.resolve(query); +- boost::asio::ip::udp::endpoint ep = *endpoints; +- boost::asio::ip::udp::socket socket(io_service); ++ boost::asio::ip::udp::resolver resolver(io_context); ++ auto endpoints = resolver.resolve(boost::asio::ip::udp::v4(), m_GatewayIp, ""); ++ boost::asio::ip::udp::endpoint ep = *endpoints.begin(); ++ boost::asio::ip::udp::socket socket(io_context); + socket.connect(ep); + boost::asio::ip::address addr = socket.local_endpoint().address(); + std::string compareIp = m_GatewayIp.substr(0, (m_GatewayIp.length() - 3)); +@@ -1073,11 +1072,11 @@ void XiaomiGateway::Do_Work() + } + } + +- XiaomiGateway::xiaomi_udp_server udp_server(io_service, m_HwdID, m_GatewayIp, m_LocalIp, m_ListenPort9898, m_OutputMessage, m_IncludeVoltage, this); ++ XiaomiGateway::xiaomi_udp_server udp_server(io_context, m_HwdID, m_GatewayIp, m_LocalIp, m_ListenPort9898, m_OutputMessage, m_IncludeVoltage, this); + boost::thread bt; + if (m_ListenPort9898) + { +- bt = boost::thread([p = &io_service] { p->run(); }); ++ bt = boost::thread([p = &io_context] { p->run(); }); + SetThreadName(bt.native_handle(), "XiaomiGatewayIO"); + } + +@@ -1094,7 +1093,7 @@ void XiaomiGateway::Do_Work() + // Log(LOG_STATUS, "sec_counter %d", sec_counter); + } + } +- io_service.stop(); ++ io_context.stop(); + if (bt.joinable()) + { + bt.join(); +@@ -1178,9 +1177,9 @@ unsigned int XiaomiGateway::GetShortID(const std::string &nodeid) + return sID; + } + +-XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_service, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, const bool listenPort9898, ++XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_context &io_context, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, const bool listenPort9898, + const bool outputMessage, const bool includeVoltage, XiaomiGateway *parent) +- : socket_(io_service, boost::asio::ip::udp::v4()) ++ : socket_(io_context, boost::asio::ip::udp::v4()) + { + m_HardwareID = m_HwdID; + m_XiaomiGateway = parent; +@@ -1196,8 +1195,8 @@ XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_ + if (!m_localip.empty()) + { + boost::system::error_code ec; +- boost::asio::ip::address listen_addr = boost::asio::ip::address::from_string(m_localip, ec); +- boost::asio::ip::address mcast_addr = boost::asio::ip::address::from_string("224.0.0.50", ec); ++ boost::asio::ip::address listen_addr = boost::asio::ip::make_address_v4(m_localip, ec); ++ boost::asio::ip::address mcast_addr = boost::asio::ip::make_address_v4("224.0.0.50", ec); + boost::asio::ip::udp::endpoint listen_endpoint(mcast_addr, 9898); + + socket_.bind(boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 9898)); +@@ -1213,9 +1212,9 @@ XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_ + socket_.bind(boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 9898)); + std::shared_ptr<std::string> message(new std::string(R"({"cmd":"whois"})")); + boost::asio::ip::udp::endpoint remote_endpoint; +- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("224.0.0.50"), 4321); ++ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4("224.0.0.50"), 4321); + socket_.send_to(boost::asio::buffer(*message), remote_endpoint); +- socket_.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::address::from_string("224.0.0.50"))); ++ socket_.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address_v4("224.0.0.50"))); + } + } + catch (const boost::system::system_error &ex) +@@ -1720,7 +1719,7 @@ void XiaomiGateway::xiaomi_udp_server::handle_receive(const boost::system::error + message.append("\"}"); + std::shared_ptr<std::string> message1(new std::string(message)); + boost::asio::ip::udp::endpoint remote_endpoint; +- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(TrueGateway->GetGatewayIp().c_str()), 9898); ++ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(TrueGateway->GetGatewayIp().c_str()), 9898); + socket_.send_to(boost::asio::buffer(*message1), remote_endpoint); + } + } +@@ -1746,7 +1745,7 @@ void XiaomiGateway::xiaomi_udp_server::handle_receive(const boost::system::error + std::string message = R"({"cmd" : "get_id_list"})"; + std::shared_ptr<std::string> message2(new std::string(message)); + boost::asio::ip::udp::endpoint remote_endpoint; +- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(TrueGateway->GetGatewayIp().c_str()), 9898); ++ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(TrueGateway->GetGatewayIp().c_str()), 9898); + socket_.send_to(boost::asio::buffer(*message2), remote_endpoint); + } + } +diff --git hardware/XiaomiGateway.h hardware/XiaomiGateway.h +index dce4b34..1f552f3 100644 +--- hardware/XiaomiGateway.h ++++ hardware/XiaomiGateway.h +@@ -100,7 +100,7 @@ class XiaomiGateway : public CDomoticzHardwareBase + class xiaomi_udp_server + { + public: +- xiaomi_udp_server(boost::asio::io_service &io_service, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, bool listenPort9898, bool outputMessage, ++ xiaomi_udp_server(boost::asio::io_context &io_context, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, bool listenPort9898, bool outputMessage, + bool includeVolage, XiaomiGateway *parent); + ~xiaomi_udp_server() = default; + +diff --git hardware/Yeelight.cpp hardware/Yeelight.cpp +index cdb7889..e5fe8fc 100644 +--- hardware/Yeelight.cpp ++++ hardware/Yeelight.cpp +@@ -93,8 +93,8 @@ void Yeelight::Do_Work() + + try + { +- boost::asio::io_service io_service; +- udp_server server(io_service, m_HwdID); ++ boost::asio::io_context io_context; ++ udp_server server(io_context, m_HwdID); + int sec_counter = YEELIGHT_POLL_INTERVAL - 5; + while (!IsStopRequested(1000)) + { +@@ -105,7 +105,7 @@ void Yeelight::Do_Work() + if (sec_counter % 60 == 0) //poll YeeLights every minute + { + server.start_send(); +- io_service.run(); ++ io_context.run(); + } + } + } +@@ -227,12 +227,11 @@ bool Yeelight::WriteToHardware(const char *pdata, const unsigned char length) + + try + { +- boost::asio::io_service io_service; +- boost::asio::ip::tcp::socket sendSocket(io_service); +- boost::asio::ip::tcp::resolver resolver(io_service); +- boost::asio::ip::tcp::resolver::query query(boost::asio::ip::tcp::v4(), szTmp, "55443"); +- auto iterator = resolver.resolve(query); +- boost::asio::connect(sendSocket, iterator); ++ boost::asio::io_context io_context; ++ boost::asio::ip::tcp::socket sendSocket(io_context); ++ boost::asio::ip::tcp::resolver resolver(io_context); ++ auto endpoints = resolver.resolve(boost::asio::ip::tcp::v4(), szTmp, "55443"); ++ boost::asio::connect(sendSocket, endpoints); + + std::string message; + std::string message2; +@@ -404,8 +403,8 @@ bool Yeelight::WriteToHardware(const char *pdata, const unsigned char length) + std::array<char, 1024> recv_buffer_; + int hardwareId; + +-Yeelight::udp_server::udp_server(boost::asio::io_service& io_service, int m_HwdID) +- : socket_(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)) ++Yeelight::udp_server::udp_server(boost::asio::io_context& io_context, int m_HwdID) ++ : socket_(io_context, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)) + { + socket_.set_option(boost::asio::ip::udp::socket::reuse_address(true)); + socket_.set_option(boost::asio::socket_base::broadcast(true)); +@@ -421,7 +420,7 @@ void Yeelight::udp_server::start_send() + //Log(LOG_STATUS, "start_send.................."); + std::shared_ptr<std::string> message( + new std::string(testMessage)); +- remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("239.255.255.250"), 1982); ++ remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4("239.255.255.250"), 1982); + socket_.send_to(boost::asio::buffer(*message), remote_endpoint_); + sleep_milliseconds(150); + start_receive(); +diff --git hardware/Yeelight.h hardware/Yeelight.h +index fb03c28..3b7b4c3 100644 +--- hardware/Yeelight.h ++++ hardware/Yeelight.h +@@ -25,7 +25,7 @@ class Yeelight : public CDomoticzHardwareBase + class udp_server + { + public: +- udp_server(boost::asio::io_service &io_service, int m_HwdID); ++ udp_server(boost::asio::io_context &io_context, int m_HwdID); + boost::asio::ip::udp::socket socket_; + boost::asio::ip::udp::endpoint remote_endpoint_; + void start_send(); +diff --git hardware/plugins/PluginManager.cpp hardware/plugins/PluginManager.cpp +index 2813112..423edbb 100644 +--- hardware/plugins/PluginManager.cpp ++++ hardware/plugins/PluginManager.cpp +@@ -64,7 +64,7 @@ namespace Plugins { + // PyMODINIT_FUNC PyInit_DomoticzEvents(void); + + std::mutex PluginMutex; // controls accessto the message queue and m_pPlugins map +- boost::asio::io_service ios; ++ boost::asio::io_context ios; + + std::map<int, CDomoticzHardwareBase*> CPluginSystem::m_pPlugins; + std::map<std::string, std::string> CPluginSystem::m_PluginXml; +@@ -315,7 +315,7 @@ namespace Plugins { + // Create initial IO Service thread + ios.restart(); + // Create some work to keep IO Service alive +- auto work = boost::asio::io_service::work(ios); ++ auto work = boost::asio::make_work_guard(ios); + boost::thread_group BoostThreads; + for (int i = 0; i < 1; i++) + { +diff --git hardware/plugins/PluginTransports.cpp hardware/plugins/PluginTransports.cpp +index 52d14e7..f7ace0f 100644 +--- hardware/plugins/PluginTransports.cpp ++++ hardware/plugins/PluginTransports.cpp +@@ -116,15 +116,14 @@ namespace Plugins { + m_bConnected = false; + m_Socket = new boost::asio::ip::tcp::socket(ios); + +- boost::system::error_code ec; +- boost::asio::ip::tcp::resolver::query query(m_IP, m_Port); +- auto iter = m_Resolver.resolve(query); +- boost::asio::ip::tcp::endpoint endpoint = *iter; +- + // + // Async resolve/connect based on http://www.boost.org/doc/libs/1_45_0/doc/html/boost_asio/example/http/client/async_client.cpp + // +- m_Resolver.async_resolve(query, [this](auto &&err, auto end) { handleAsyncResolve(err, end); }); ++ m_Resolver.async_resolve(m_IP, m_Port, ++ [this](auto &&err, auto endpoints) { ++ handleAsyncResolve(err, endpoints); ++ } ++ ); + } + } + catch (std::exception& e) +@@ -139,15 +138,14 @@ namespace Plugins { + return true; + } + +- void CPluginTransportTCP::handleAsyncResolve(const boost::system::error_code & err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator) ++ void CPluginTransportTCP::handleAsyncResolve(const boost::system::error_code & err, boost::asio::ip::tcp::resolver::results_type endpoints) + { + CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin; + AccessPython Guard(pPlugin, "CPluginTransportTCP::handleAsyncResolve"); + + if (!err) + { +- boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator; +- m_Socket->async_connect(endpoint, [this, endpoint_iterator](auto &&err) mutable { handleAsyncConnect(err, ++endpoint_iterator); }); ++ boost::asio::async_connect(*m_Socket, endpoints, [this](auto &&err, const boost::asio::ip::tcp::endpoint &endpoint) mutable { handleAsyncConnect(err, endpoint); }); + } + else + { +@@ -169,7 +167,7 @@ namespace Plugins { + } + } + +- void CPluginTransportTCP::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) ++ void CPluginTransportTCP::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint) + { + CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin; + AccessPython Guard(pPlugin, "CPluginTransportTCP::handleAsyncResolve"); +@@ -481,7 +479,7 @@ namespace Plugins { + } + }; + +- void CPluginTransportTCPSecure::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) ++ void CPluginTransportTCPSecure::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint) + { + CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin; + if (!pPlugin) return; +@@ -498,7 +496,7 @@ namespace Plugins { + SSL_set_tlsext_host_name(m_TLSSock->native_handle(), m_IP.c_str()); // Enable SNI + + m_TLSSock->set_verify_mode(boost::asio::ssl::verify_none); +- m_TLSSock->set_verify_callback(boost::asio::ssl::rfc2818_verification(m_IP)); ++ m_TLSSock->set_verify_callback(boost::asio::ssl::host_name_verification(m_IP)); + // m_TLSSock->set_verify_callback([this](auto v, auto &c){ VerifyCertificate(v, c);}); + try + { +@@ -648,7 +646,7 @@ namespace Plugins { + // Hanlde multicast + if (((m_IP.substr(0, 4) >= "224.") && (m_IP.substr(0, 4) <= "239.")) || (m_IP.substr(0, 4) == "255.")) + { +- m_Socket->set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::address::from_string(m_IP.c_str())), ec); ++ m_Socket->set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address_v4(m_IP.c_str())), ec); + m_Socket->set_option(boost::asio::ip::multicast::hops(2), ec); + } + } +@@ -764,7 +762,7 @@ namespace Plugins { + } + else + { +- boost::asio::ip::udp::endpoint destination(boost::asio::ip::address::from_string(m_IP.c_str()), atoi(m_Port.c_str())); ++ boost::asio::ip::udp::endpoint destination(boost::asio::ip::make_address_v4(m_IP.c_str()), atoi(m_Port.c_str())); + size_t bytes_transferred = m_Socket->send_to(boost::asio::buffer(pMessage, pMessage.size()), destination); + } + } +@@ -825,12 +823,14 @@ namespace Plugins { + } + }; + +- void CPluginTransportICMP::handleAsyncResolve(const boost::system::error_code &ec, const boost::asio::ip::icmp::resolver::iterator &endpoint_iterator) ++ void CPluginTransportICMP::handleAsyncResolve(const boost::system::error_code &ec, boost::asio::ip::icmp::resolver::results_type endpoints) + { + if (!ec) + { ++ m_Endpoint = endpoints.begin()->endpoint(); ++ m_IP = m_Endpoint.address().to_string(); ++ + m_bConnected = true; +- m_IP = endpoint_iterator->endpoint().address().to_string(); + + // Listen will fail (10022 - bad parameter) unless something has been sent(?) + std::string body("ping"); +@@ -857,15 +857,11 @@ namespace Plugins { + m_bConnecting = true; + m_Socket = new boost::asio::ip::icmp::socket(ios, boost::asio::ip::icmp::v4()); + +- boost::system::error_code ec; +- boost::asio::ip::icmp::resolver::query query(boost::asio::ip::icmp::v4(), m_IP, ""); +- auto iter = m_Resolver.resolve(query); +- m_Endpoint = *iter; +- +- // +- // Async resolve/connect based on http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/example/icmp/ping.cpp +- // +- m_Resolver.async_resolve(query, [this](auto &&err, auto i) { handleAsyncResolve(err, i); }); ++ m_Resolver.async_resolve(boost::asio::ip::icmp::v4(), m_IP, "", ++ [this](auto &&err, auto endpoints) { ++ handleAsyncResolve(err, endpoints); ++ } ++ ); + } + else + { +diff --git hardware/plugins/PluginTransports.h hardware/plugins/PluginTransports.h +index c1cc1e3..79d5725 100644 +--- hardware/plugins/PluginTransports.h ++++ hardware/plugins/PluginTransports.h +@@ -6,7 +6,7 @@ + + namespace Plugins { + +- extern boost::asio::io_service ios; ++ extern boost::asio::io_context ios; + + class CPluginTransport + { +@@ -85,8 +85,8 @@ namespace Plugins { + , m_Socket(nullptr){}; + bool handleConnect() override; + bool handleListen() override; +- virtual void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator); +- virtual void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator); ++ virtual void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::results_type endpoints); ++ virtual void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint); + virtual void handleAsyncAccept(boost::asio::ip::tcp::socket *pSocket, const boost::system::error_code &error); + void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override; + void handleWrite(const std::vector<byte> &pMessage) override; +@@ -111,7 +111,7 @@ namespace Plugins { + : CPluginTransportTCP(HwdID, pConnection, Address, Port) + , m_Context(nullptr) + , m_TLSSock(nullptr){}; +- void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) override; ++ void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint) override; + void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override; + void handleWrite(const std::vector<byte> &pMessage) override; + ~CPluginTransportTCPSecure() override; +@@ -151,7 +151,7 @@ namespace Plugins { + , m_Socket(nullptr) + , m_Timer(nullptr) + , m_SequenceNo(-1){}; +- void handleAsyncResolve(const boost::system::error_code &err, const boost::asio::ip::icmp::resolver::iterator &endpoint_iterator); ++ void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::icmp::resolver::results_type endpoints); + bool handleListen() override; + void handleTimeout(const boost::system::error_code &) override; + void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override; +diff --git main/WebServerCmds.cpp main/WebServerCmds.cpp +index 7d4a9f2..3586373 100644 +--- main/WebServerCmds.cpp ++++ main/WebServerCmds.cpp +@@ -1632,7 +1632,7 @@ namespace http + ExtraHeaders.push_back("App_Revision: " + std::to_string(iAppRevision)); + ExtraHeaders.push_back("System_Name: " + systemname); + ExtraHeaders.push_back("Machine: " + machine); +- ExtraHeaders.push_back("Type: " + (!bIsBetaChannel) ? "Stable" : "Beta"); ++ ExtraHeaders.push_back("Type: " + std::string(!bIsBetaChannel ? "Stable" : "Beta")); + + if (!HTTPClient::GET(szHistoryURL, ExtraHeaders, historyfile)) + { +diff --git main/mainworker.cpp main/mainworker.cpp +index b5027eb..b8f8dc7 100644 +--- main/mainworker.cpp ++++ main/mainworker.cpp +@@ -1318,7 +1318,7 @@ bool MainWorker::IsUpdateAvailable(const bool bIsForced) + ExtraHeaders.push_back("App_Revision: " + std::to_string(iAppRevision)); + ExtraHeaders.push_back("System_Name: " + m_szSystemName); + ExtraHeaders.push_back("Machine: " + machine); +- ExtraHeaders.push_back("Type: " + (!bIsBetaChannel) ? "Stable" : "Beta"); ++ ExtraHeaders.push_back("Type: " + std::string(!bIsBetaChannel ? "Stable" : "Beta")); + + if (!HTTPClient::GET(szURL, ExtraHeaders, revfile)) + return false; +diff --git plugins/examples/Pinger.py plugins/examples/Pinger.py +index 6b54559..c7a776d 100644 +--- plugins/examples/Pinger.py ++++ plugins/examples/Pinger.py +@@ -3,7 +3,7 @@ + # Author: Dnpwwo, 2017 - 2018 + # + """ +-<plugin key="ICMP" name="Pinger (ICMP)" author="dnpwwo" version="3.1.4"> ++<plugin key="ICMP" name="Pinger (ICMP)" author="dnpwwo" version="3.1.5"> + <description> + ICMP Pinger Plugin.<br/><br/> + Specify comma delimted addresses (IP or DNS names) of devices that are to be pinged.<br/> +@@ -144,8 +144,9 @@ class BasePlugin: + for Device in Devices: + if (("Name" in Devices[Device].Options) and (Devices[Device].Options["Name"] == Connection.Name)): + UpdateDevice(Device, 0, "Off", TimedOut) +- self.icmpConn.Close() +- self.icmpConn = None ++ if (self.icmpConn != None): ++ self.icmpConn.Close() ++ self.icmpConn = None + + def onHeartbeat(self): + Domoticz.Debug("Heartbeating...") +diff --git push/MQTTPush.h push/MQTTPush.h +index 0773b43..d9f9332 100644 +--- push/MQTTPush.h ++++ push/MQTTPush.h +@@ -14,7 +14,7 @@ public: + void on_message(const struct mosquitto_message* message) override; + void on_connect(int rc) override; + void on_disconnect(int rc) override; +- void on_going_down(); ++ void on_going_down() override; + private: + struct _tPushItem + { +diff --git tcpserver/TCPClient.cpp tcpserver/TCPClient.cpp +index d55da10..3eee093 100644 +--- tcpserver/TCPClient.cpp ++++ tcpserver/TCPClient.cpp +@@ -19,7 +19,7 @@ namespace tcp { + delete socket_; + } + +- CTCPClient::CTCPClient(boost::asio::io_service& ios, CTCPServerIntBase* pManager) ++ CTCPClient::CTCPClient(boost::asio::io_context& ios, CTCPServerIntBase* pManager) + : CTCPClientBase(pManager) + { + socket_ = new boost::asio::ip::tcp::socket(ios); +diff --git tcpserver/TCPClient.h tcpserver/TCPClient.h +index df4350d..e7a882b 100644 +--- tcpserver/TCPClient.h ++++ tcpserver/TCPClient.h +@@ -38,7 +38,7 @@ class CTCPClient : public CTCPClientBase, + public std::enable_shared_from_this<CTCPClient> + { + public: +- CTCPClient(boost::asio::io_service& ios, CTCPServerIntBase *pManager); ++ CTCPClient(boost::asio::io_context& ios, CTCPServerIntBase *pManager); + ~CTCPClient() = default; + void start() override; + void stop() override; +diff --git tcpserver/TCPServer.cpp tcpserver/TCPServer.cpp +index 91fdc7e..57f8709 100644 +--- tcpserver/TCPServer.cpp ++++ tcpserver/TCPServer.cpp +@@ -18,14 +18,14 @@ namespace tcp { + + CTCPServerInt::CTCPServerInt(const std::string& address, const std::string& port, CTCPServer* pRoot) : + CTCPServerIntBase(pRoot), +- io_service_(), +- acceptor_(io_service_) ++ io_context_(), ++ acceptor_(io_context_) + { + // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). +- boost::asio::ip::tcp::resolver resolver(io_service_); +- boost::asio::ip::tcp::resolver::query query(address, port); +- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query); +- acceptor_.open(endpoint.protocol()); ++ boost::asio::ip::tcp::resolver resolver(io_context_); ++ boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type endpoints = resolver.resolve(address, port); ++ auto endpoint = *endpoints.begin(); ++ acceptor_.open(endpoint.endpoint().protocol()); + acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); + // bind to both ipv6 and ipv4 sockets for the "::" address only + if (address == "::") +@@ -35,7 +35,7 @@ namespace tcp { + acceptor_.bind(endpoint); + acceptor_.listen(); + +- new_connection_ = std::make_shared<CTCPClient>(io_service_, this); ++ new_connection_ = std::make_shared<CTCPClient>(io_context_, this); + if (new_connection_ == nullptr) + { + _log.Log(LOG_ERROR, "Error creating new client!"); +@@ -47,24 +47,24 @@ namespace tcp { + + void CTCPServerInt::start() + { +- // The io_service::run() call will block until all asynchronous operations ++ // The io_context::run() call will block until all asynchronous operations + // have finished. While the server is running, there is always at least one + // asynchronous operation outstanding: the asynchronous accept call waiting + // for new incoming connections. +- io_service_.run(); ++ io_context_.run(); + } + + void CTCPServerInt::stop() + { + // Post a call to the stop function so that server::stop() is safe to call + // from any thread. +- io_service_.post([this] { handle_stop(); }); ++ boost::asio::post([this] { handle_stop(); }); + } + + void CTCPServerInt::handle_stop() + { + // The server is stopped by cancelling all outstanding asynchronous +- // operations. Once all operations have finished the io_service::run() call ++ // operations. Once all operations have finished the io_context::run() call + // will exit. + acceptor_.close(); + stopAllClients(); +@@ -88,7 +88,7 @@ namespace tcp { + connections_.insert(new_connection_); + new_connection_->start(); + +- new_connection_.reset(new CTCPClient(io_service_, this)); ++ new_connection_.reset(new CTCPClient(io_context_, this)); + + acceptor_.async_accept(*(new_connection_->socket()), [this](auto&& err) { handleAccept(err); }); + } +diff --git tcpserver/TCPServer.h tcpserver/TCPServer.h +index ca611b1..17284ca 100644 +--- tcpserver/TCPServer.h ++++ tcpserver/TCPServer.h +@@ -70,8 +70,8 @@ private: + /// Handle a request to stop the server. + void handle_stop(); + +- /// The io_service used to perform asynchronous operations. +- boost::asio::io_service io_service_; ++ /// The io_context used to perform asynchronous operations. ++ boost::asio::io_context io_context_; + + boost::asio::ip::tcp::acceptor acceptor_; + +diff --git webserver/cWebem.cpp webserver/cWebem.cpp +index 57d9683..c0d292d 100644 +--- webserver/cWebem.cpp ++++ webserver/cWebem.cpp +@@ -47,13 +47,13 @@ namespace http { + , myRequestHandler(doc_root, this) + // Rene, make sure we initialize m_sessions first, before starting a server + , myServer(server_factory::create(settings, myRequestHandler)) +- , m_io_service() +- , m_session_clean_timer(m_io_service, boost::posix_time::minutes(1)) ++ , m_io_context() ++ , m_session_clean_timer(m_io_context, boost::posix_time::minutes(1)) + { + // associate handler to timer and schedule the first iteration + m_session_clean_timer.async_wait([this](auto &&) { CleanSessions(); }); +- m_io_service_thread = std::make_shared<std::thread>([p = &m_io_service] { p->run(); }); +- SetThreadName(m_io_service_thread->native_handle(), "Webem_ssncleaner"); ++ m_io_context_thread = std::make_shared<std::thread>([p = &m_io_context] { p->run(); }); ++ SetThreadName(m_io_context_thread->native_handle(), "Webem_ssncleaner"); + } + + cWebem::~cWebem() +@@ -93,14 +93,14 @@ namespace http { + // Stop session cleaner + try + { +- if (!m_io_service.stopped()) ++ if (!m_io_context.stopped()) + { +- m_io_service.stop(); ++ m_io_context.stop(); + } +- if (m_io_service_thread) ++ if (m_io_context_thread) + { +- m_io_service_thread->join(); +- m_io_service_thread.reset(); ++ m_io_context_thread->join(); ++ m_io_context_thread.reset(); + } + } + catch (...) +diff --git webserver/cWebem.h webserver/cWebem.h +index 6e3b899..7905c45 100644 +--- webserver/cWebem.h ++++ webserver/cWebem.h +@@ -259,9 +259,9 @@ namespace http + std::string m_webRoot; + /// sessions management + std::mutex m_sessionsMutex; +- boost::asio::io_service m_io_service; ++ boost::asio::io_context m_io_context; + boost::asio::deadline_timer m_session_clean_timer; +- std::shared_ptr<std::thread> m_io_service_thread; ++ std::shared_ptr<std::thread> m_io_context_thread; + }; + + } // namespace server +diff --git webserver/connection.cpp webserver/connection.cpp +index 40f9788..3a70924 100644 +--- webserver/connection.cpp ++++ webserver/connection.cpp +@@ -22,13 +22,13 @@ namespace http { + extern time_t last_write_time(const std::string& path); + + // this is the constructor for plain connections +- connection::connection(boost::asio::io_service &io_service, connection_manager &manager, request_handler &handler, int read_timeout) ++ connection::connection(boost::asio::io_context &io_context, connection_manager &manager, request_handler &handler, int read_timeout) + : send_buffer_(nullptr) + , read_timeout_(read_timeout) +- , read_timer_(io_service, boost::posix_time::seconds(read_timeout)) ++ , read_timer_(io_context, boost::posix_time::seconds(read_timeout)) + , default_abandoned_timeout_(20 * 60) + // 20mn before stopping abandoned connection +- , abandoned_timer_(io_service, boost::posix_time::seconds(default_abandoned_timeout_)) ++ , abandoned_timer_(io_context, boost::posix_time::seconds(default_abandoned_timeout_)) + , connection_manager_(manager) + , request_handler_(handler) + , status_(INITIALIZING) +@@ -39,18 +39,18 @@ namespace http { + keepalive_ = false; + write_in_progress = false; + connection_type = ConnectionType::connection_http; +- socket_ = std::make_unique<boost::asio::ip::tcp::socket>(io_service); ++ socket_ = std::make_unique<boost::asio::ip::tcp::socket>(io_context); + } + + #ifdef WWW_ENABLE_SSL + // this is the constructor for secure connections +- connection::connection(boost::asio::io_service &io_service, connection_manager &manager, request_handler &handler, int read_timeout, boost::asio::ssl::context &context) ++ connection::connection(boost::asio::io_context &io_context, connection_manager &manager, request_handler &handler, int read_timeout, boost::asio::ssl::context &context) + : send_buffer_(nullptr) + , read_timeout_(read_timeout) +- , read_timer_(io_service, boost::posix_time::seconds(read_timeout)) ++ , read_timer_(io_context, boost::posix_time::seconds(read_timeout)) + , default_abandoned_timeout_(20 * 60) + // 20mn before stopping abandoned connection +- , abandoned_timer_(io_service, boost::posix_time::seconds(default_abandoned_timeout_)) ++ , abandoned_timer_(io_context, boost::posix_time::seconds(default_abandoned_timeout_)) + , connection_manager_(manager) + , request_handler_(handler) + , status_(INITIALIZING) +@@ -62,7 +62,7 @@ namespace http { + write_in_progress = false; + connection_type = ConnectionType::connection_http; + socket_ = nullptr; +- sslsocket_ = std::make_unique<ssl_socket>(io_service, context); ++ sslsocket_ = std::make_unique<ssl_socket>(io_context, context); + } + #endif + +@@ -152,9 +152,9 @@ namespace http { + if (error != boost::asio::error::operation_aborted) { + switch (connection_type) { + case ConnectionType::connection_http: +- // Timers should be cancelled before stopping to remove tasks from the io_service. +- // The io_service will stop naturally when every tasks are removed. +- // If timers are not cancelled, the exception ERROR_ABANDONED_WAIT_0 is thrown up to the io_service::run() caller. ++ // Timers should be cancelled before stopping to remove tasks from the io_context. ++ // The io_context will stop naturally when every tasks are removed. ++ // If timers are not cancelled, the exception ERROR_ABANDONED_WAIT_0 is thrown up to the io_context::run() caller. + cancel_abandoned_timeout(); + cancel_read_timeout(); + +@@ -372,7 +372,7 @@ namespace http { + switch (connection_type) + { + case ConnectionType::connection_http: +- begin = boost::asio::buffer_cast<const char*>(_buf.data()); ++ begin = static_cast<const char*>(_buf.data().data()); + try + { + request_parser_.reset(); +@@ -404,7 +404,7 @@ namespace http { + newt = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); + } + +- size_t sizeread = begin - boost::asio::buffer_cast<const char*>(_buf.data()); ++ size_t sizeread = begin - static_cast<const char*>(_buf.data().data()); + _buf.consume(sizeread); + reply_.reset(); + const char* pConnection = request_.get_req_header(&request_, "Connection"); +@@ -520,7 +520,7 @@ namespace http { + break; + case ConnectionType::connection_websocket: + case ConnectionType::connection_websocket_closing: +- begin = boost::asio::buffer_cast<const char*>(_buf.data()); ++ begin = static_cast<const char*>(_buf.data().data()); + result = websocket_parser.parse((const unsigned char*)begin, _buf.size(), bytes_consumed, keepalive_); + _buf.consume(bytes_consumed); + if (result) { +diff --git webserver/connection.hpp webserver/connection.hpp +index ce452b5..c1a82c5 100644 +--- webserver/connection.hpp ++++ webserver/connection.hpp +@@ -43,11 +43,11 @@ namespace http { + std::string host_local_endpoint_port_; + std::string host_last_request_uri_; + }; +- /// Construct a connection with the given io_service. +- explicit connection(boost::asio::io_service& io_service, ++ /// Construct a connection with the given io_context. ++ explicit connection(boost::asio::io_context& io_context, + connection_manager& manager, request_handler& handler, int timeout); + #ifdef WWW_ENABLE_SSL +- explicit connection(boost::asio::io_service& io_service, ++ explicit connection(boost::asio::io_context& io_context, + connection_manager& manager, request_handler& handler, int timeout, boost::asio::ssl::context& context); + #endif + ~connection() = default; +diff --git webserver/server.cpp webserver/server.cpp +index da15887..8bdfc13 100644 +--- webserver/server.cpp ++++ webserver/server.cpp +@@ -13,15 +13,15 @@ namespace http { + namespace server { + + server_base::server_base(const server_settings &settings, request_handler &user_request_handler) +- : io_service_() +- , acceptor_(io_service_) ++ : io_context_() ++ , acceptor_(io_context_) + , request_handler_(user_request_handler) + , settings_(settings) + , timeout_(20) + , // default read timeout in seconds + is_running(false) + , is_stop_complete(false) +- , m_heartbeat_timer(io_service_) ++ , m_heartbeat_timer(io_context_) + { + if (!settings.is_enabled()) + { +@@ -39,10 +39,10 @@ namespace server { + } + + // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). +- boost::asio::ip::tcp::resolver resolver(io_service_); +- boost::asio::ip::tcp::resolver::query query(settings_.listening_address, settings_.listening_port); +- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query); +- acceptor_.open(endpoint.protocol()); ++ boost::asio::ip::tcp::resolver resolver(io_context_); ++ boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type endpoints = resolver.resolve(settings_.listening_address, settings_.listening_port); ++ auto endpoint = *endpoints.begin(); ++ acceptor_.open(endpoint.endpoint().protocol()); + acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); + // bind to both ipv6 and ipv4 sockets for the "::" address only + if (settings_.listening_address == "::") +@@ -59,28 +59,28 @@ namespace server { + } + + void server_base::run() { +- // The io_service::run() call will block until all asynchronous operations ++ // The io_context::run() call will block until all asynchronous operations + // have finished. While the server is running, there is always at least one + // asynchronous operation outstanding: the asynchronous accept call waiting + // for new incoming connections. + try { + is_running = true; + heart_beat(boost::system::error_code()); +- io_service_.run(); ++ io_context_.run(); + is_running = false; + } catch (std::exception& e) { + _log.Log(LOG_ERROR, "[web:%s] exception occurred : '%s' (need to run again)", settings_.listening_port.c_str(), e.what()); + is_running = false; + // Note: if acceptor is up everything is OK, we can call run() again + // but if the exception has broken the acceptor we cannot stop/start it and the next run() will exit immediatly. +- io_service_.reset(); // this call is needed before calling run() again ++ io_context_.restart(); // this call is needed before calling run() again + throw; + } catch (...) { + _log.Log(LOG_ERROR, "[web:%s] unknown exception occurred (need to run again)", settings_.listening_port.c_str()); + is_running = false; + // Note: if acceptor is up everything is OK, we can call run() again + // but if the exception has broken the acceptor we cannot stop/start it and the next run() will exit immediatly. +- io_service_.reset(); // this call is needed before calling run() again ++ io_context_.restart(); // this call is needed before calling run() again + throw; + } + } +@@ -89,12 +89,12 @@ void server_base::run() { + void server_base::stop() { + if (is_running) { + // Post a call to the stop function so that server_base::stop() is safe to call from any thread. +- // Rene, set is_running to false, because the following is an io_service call, which makes is_running ++ // Rene, set is_running to false, because the following is an io_context call, which makes is_running + // never set to false whilst in the call itself + is_running = false; +- io_service_.post([this] { handle_stop(); }); ++ boost::asio::post(io_context_, [this] { handle_stop(); }); + } else { +- // if io_service is not running then the post call will not be performed ++ // if io_context is not running then the post call will not be performed + handle_stop(); + } + +@@ -112,7 +112,7 @@ void server_base::stop() { + } + sleep_milliseconds(500); + } +- io_service_.stop(); ++ io_context_.stop(); + + // Deregister heartbeat + m_mainworker.HeartbeatRemove(std::string("WebServer:") + settings_.listening_port); +@@ -136,7 +136,7 @@ void server_base::heart_beat(const boost::system::error_code& error) + m_mainworker.HeartbeatUpdate(std::string("WebServer:") + settings_.listening_port); + + // Schedule next heartbeat +- m_heartbeat_timer.expires_from_now(std::chrono::seconds(4)); ++ m_heartbeat_timer.expires_after(std::chrono::seconds(4)); + m_heartbeat_timer.async_wait([this](auto &&err) { heart_beat(err); }); + } + } +@@ -148,7 +148,7 @@ server::server(const server_settings &settings, request_handler &user_request_ha + } + + void server::init_connection() { +- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_)); ++ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_)); + } + + /** +@@ -157,7 +157,7 @@ void server::init_connection() { + void server::handle_accept(const boost::system::error_code& e) { + if (!e) { + connection_manager_.start(new_connection_); +- new_connection_.reset(new connection(io_service_, ++ new_connection_.reset(new connection(io_context_, + connection_manager_, request_handler_, timeout_)); + // listen for a subsequent request + acceptor_.async_accept(new_connection_->socket(), [this](auto &&err) { handle_accept(err); }); +@@ -267,7 +267,7 @@ void ssl_server::init_connection() { + } else { + _log.Log(LOG_ERROR, "[web:%s] missing SSL DH parameters file %s!", settings_.listening_port.c_str(), settings_.tmp_dh_file_path.c_str()); + } +- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_, context_)); ++ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_, context_)); + } + + void ssl_server::reinit_connection() +@@ -305,7 +305,7 @@ void ssl_server::reinit_connection() + _log.Log(LOG_ERROR, "[web:%s] missing SSL DH parameters from file %s", settings_.listening_port.c_str(), settings_.tmp_dh_file_path.c_str()); + } + } +- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_, context_)); ++ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_, context_)); + } + + /** +diff --git webserver/server.hpp webserver/server.hpp +index f9e71c5..bd7132a 100644 +--- webserver/server.hpp ++++ webserver/server.hpp +@@ -31,7 +31,7 @@ namespace http + explicit server_base(const server_settings &settings, request_handler &user_request_handler); + virtual ~server_base() = default; + +- /// Run the server's io_service loop. ++ /// Run the server's io_context loop. + void run(); + + /// Stop the server. +@@ -46,8 +46,8 @@ namespace http + protected: + void init(const init_connectionhandler_func &init_connection_handler, accept_handler_func accept_handler); + +- /// The io_service used to perform asynchronous operations. +- boost::asio::io_service io_service_; ++ /// The io_context used to perform asynchronous operations. ++ boost::asio::io_context io_context_; + + /// Acceptor used to listen for incoming connections. + boost::asio::ip::tcp::acceptor acceptor_; diff --git a/www/firefox/Makefile b/www/firefox/Makefile index b5ab046e1fed..0c1192ce1e7f 100644 --- a/www/firefox/Makefile +++ b/www/firefox/Makefile @@ -1,5 +1,5 @@ PORTNAME= firefox -DISTVERSION= 138.0.3 +DISTVERSION= 138.0.4 PORTEPOCH= 2 CATEGORIES= www wayland MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}${DISTVERSIONSUFFIX}/source \ diff --git a/www/firefox/distinfo b/www/firefox/distinfo index 86a1320a3b71..f2b3b71e35a3 100644 --- a/www/firefox/distinfo +++ b/www/firefox/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747069313 -SHA256 (firefox-138.0.3.source.tar.xz) = a27f3ab41d635b2a1d8418289d1dedcd6cb532148c7d63d3f8b97c66445513e4 -SIZE (firefox-138.0.3.source.tar.xz) = 632959048 +TIMESTAMP = 1747504074 +SHA256 (firefox-138.0.4.source.tar.xz) = 3fd30db08dad90b339e08d27db1e3aab03a174817d336314327dc5305c145056 +SIZE (firefox-138.0.4.source.tar.xz) = 623414956 diff --git a/www/galene/Makefile b/www/galene/Makefile index 15cdbfaf3a58..8bea5d198bab 100644 --- a/www/galene/Makefile +++ b/www/galene/Makefile @@ -1,6 +1,5 @@ PORTNAME= galene -DISTVERSION= 0.96 -PORTREVISION= 2 +DISTVERSION= 0.96.3 CATEGORIES= www net-im MAINTAINER= bapt@FreeBSD.org @@ -23,32 +22,33 @@ GH_TUPLE= \ davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \ go-yaml:yaml:v3.0.1:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \ golang-jwt:jwt:v5.2.1:golang_jwt_jwt_v5/vendor/github.com/golang-jwt/jwt/v5 \ - golang:crypto:v0.29.0:golang_crypto/vendor/golang.org/x/crypto \ - golang:net:v0.30.0:golang_net/vendor/golang.org/x/net \ - golang:sys:v0.27.0:golang_sys/vendor/golang.org/x/sys \ - golang:term:v0.26.0:golang_term/vendor/golang.org/x/term \ + golang:crypto:v0.31.0:golang_crypto/vendor/golang.org/x/crypto \ + golang:net:v0.33.0:golang_net/vendor/golang.org/x/net \ + golang:sys:v0.28.0:golang_sys/vendor/golang.org/x/sys \ + golang:term:v0.27.0:golang_term/vendor/golang.org/x/term \ google:uuid:v1.6.0:google_uuid/vendor/github.com/google/uuid \ gorilla:websocket:v1.5.0:gorilla_websocket/vendor/github.com/gorilla/websocket \ jech:cert:f491cf43a77d:jech_cert/vendor/github.com/jech/cert \ jech:samplebuilder:6cbba09fc1c9:jech_samplebuilder/vendor/github.com/jech/samplebuilder \ - pion:datachannel:v1.5.9:pion_datachannel/vendor/github.com/pion/datachannel \ + pion:datachannel:v1.5.10:pion_datachannel/vendor/github.com/pion/datachannel \ pion:dtls:v2.2.12:pion_dtls_v2/vendor/github.com/pion/dtls/v2 \ pion:ice:v2.3.37:pion_ice_v2/vendor/github.com/pion/ice/v2 \ pion:interceptor:v0.1.37:pion_interceptor/vendor/github.com/pion/interceptor \ pion:logging:v0.2.2:pion_logging/vendor/github.com/pion/logging \ pion:mdns:v0.0.12:pion_mdns/vendor/github.com/pion/mdns \ pion:randutil:v0.1.0:pion_randutil/vendor/github.com/pion/randutil \ - pion:rtcp:v1.2.14:pion_rtcp/vendor/github.com/pion/rtcp \ - pion:rtp:v1.8.9:pion_rtp/vendor/github.com/pion/rtp \ - pion:sctp:v1.8.33:pion_sctp/vendor/github.com/pion/sctp \ + pion:rtcp:v1.2.15:pion_rtcp/vendor/github.com/pion/rtcp \ + pion:rtp:v1.8.10:pion_rtp/vendor/github.com/pion/rtp \ + pion:sctp:v1.8.35:pion_sctp/vendor/github.com/pion/sctp \ pion:sdp:v3.0.9:pion_sdp_v3/vendor/github.com/pion/sdp/v3 \ pion:srtp:v2.0.20:pion_srtp_v2/vendor/github.com/pion/srtp/v2 \ pion:stun:v0.6.1:pion_stun/vendor/github.com/pion/stun \ pion:transport:v2.2.10:pion_transport_v2/vendor/github.com/pion/transport/v2 \ + pion:transport:v3.0.7:pion_transport_v3/vendor/github.com/pion/transport/v3 \ pion:turn:v2.1.6:pion_turn_v2/vendor/github.com/pion/turn/v2 \ - pion:webrtc:v3.3.4:pion_webrtc_v3/vendor/github.com/pion/webrtc/v3 \ + pion:webrtc:v3.3.5:pion_webrtc_v3/vendor/github.com/pion/webrtc/v3 \ pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \ - stretchr:testify:v1.9.0:stretchr_testify/vendor/github.com/stretchr/testify \ + stretchr:testify:v1.10.0:stretchr_testify/vendor/github.com/stretchr/testify \ wlynxg:anet:v0.0.5:wlynxg_anet/vendor/github.com/wlynxg/anet CGO_ENABLED= 0 diff --git a/www/galene/distinfo b/www/galene/distinfo index 9bb0479c504f..0191b7d04ad1 100644 --- a/www/galene/distinfo +++ b/www/galene/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1735802329 -SHA256 (jech-galene-0.96-galene-0.96_GH0.tar.gz) = fc689fccc718943909cd7585a94574c4a7f7b4168c41028d0d22c73cf6b2dcd6 -SIZE (jech-galene-0.96-galene-0.96_GH0.tar.gz) = 778766 +TIMESTAMP = 1747332374 +SHA256 (jech-galene-0.96.3-galene-0.96.3_GH0.tar.gz) = c76e5b6c059b94d102c2b726ab144ba6a70bdde8135f6733893217172af5201a +SIZE (jech-galene-0.96.3-galene-0.96.3_GH0.tar.gz) = 888837 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 @@ -9,14 +9,14 @@ 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-v5.2.1_GH0.tar.gz) = 76d1c81a7cd38ed03309f770f60ac3417f16c75b4c53a0c01bb783863783fef0 SIZE (golang-jwt-jwt-v5.2.1_GH0.tar.gz) = 61340 -SHA256 (golang-crypto-v0.29.0_GH0.tar.gz) = 0f1f747a65c883857c5f6c54b01e228536698dcc5af652386ccfc994c2a3c991 -SIZE (golang-crypto-v0.29.0_GH0.tar.gz) = 1847528 -SHA256 (golang-net-v0.30.0_GH0.tar.gz) = c5bcae30a04fc5c9d6fccfceb368cc1a46413eefdccefdea57336e2b11a1fbfa -SIZE (golang-net-v0.30.0_GH0.tar.gz) = 1456700 -SHA256 (golang-sys-v0.27.0_GH0.tar.gz) = 91f2021c81184dccca54272abfdfa7f6d0b43fcdf7e36c4d62c1ab597e7988a9 -SIZE (golang-sys-v0.27.0_GH0.tar.gz) = 1518154 -SHA256 (golang-term-v0.26.0_GH0.tar.gz) = 860d9dc2e32939c99ea3590171d8897ca6b876958085fd210d7331787c1ad00b -SIZE (golang-term-v0.26.0_GH0.tar.gz) = 14688 +SHA256 (golang-crypto-v0.31.0_GH0.tar.gz) = 36e325f89d4cd03ec568d92c74d6affd2b1fb88fcdc63aeb15d1df41e11200ca +SIZE (golang-crypto-v0.31.0_GH0.tar.gz) = 1837859 +SHA256 (golang-net-v0.33.0_GH0.tar.gz) = 675e0ceaf54baf4f6e2a5152fe148906119c97e7b1d37d1c44ec2621faeab0e8 +SIZE (golang-net-v0.33.0_GH0.tar.gz) = 1466426 +SHA256 (golang-sys-v0.28.0_GH0.tar.gz) = 62726b1ccbb09c7e8de2215756a26012751bdded12b5bacc6de83296db694ebf +SIZE (golang-sys-v0.28.0_GH0.tar.gz) = 1519898 +SHA256 (golang-term-v0.27.0_GH0.tar.gz) = 4053cac47f4fcd6e38fe80ed4e52a10550681109a09ff7a6cabdb6e1af6bb5a6 +SIZE (golang-term-v0.27.0_GH0.tar.gz) = 14689 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 @@ -25,8 +25,8 @@ SHA256 (jech-cert-f491cf43a77d_GH0.tar.gz) = a31c5dc063e19e49e27454e9ffd12fd0895 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.9_GH0.tar.gz) = b23a0532f6a70ba3eae2a8052285f01545866fb56dd30cb12cd1f616bbb8eb8f -SIZE (pion-datachannel-v1.5.9_GH0.tar.gz) = 17018 +SHA256 (pion-datachannel-v1.5.10_GH0.tar.gz) = 07b7d4decbc83e84f00ce2c1587f55579aa5c018379c8e17c7d6c681df5c8eb6 +SIZE (pion-datachannel-v1.5.10_GH0.tar.gz) = 17048 SHA256 (pion-dtls-v2.2.12_GH0.tar.gz) = 17d45dba2712a9fff680f1e441b26566daf7f9103656fd3f65d05fda0b5e0009 SIZE (pion-dtls-v2.2.12_GH0.tar.gz) = 152165 SHA256 (pion-ice-v2.3.37_GH0.tar.gz) = e935cbc70fb9344c5407b4a7cd3c7299d2db3bd4a5785346b040a102d5a5380d @@ -39,12 +39,12 @@ SHA256 (pion-mdns-v0.0.12_GH0.tar.gz) = d291ea4260996731e09103beb498f6e1b9fd3643 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.14_GH0.tar.gz) = ab0674ed126edfafc8dcb1c70d269cf04d6498983e5ebe92c9c8ea776234d660 -SIZE (pion-rtcp-v1.2.14_GH0.tar.gz) = 59682 -SHA256 (pion-rtp-v1.8.9_GH0.tar.gz) = c4174853bc2cd78193621e7c96b72ba5f52edaa88e98b8e79b531bc943f225fd -SIZE (pion-rtp-v1.8.9_GH0.tar.gz) = 62171 -SHA256 (pion-sctp-v1.8.33_GH0.tar.gz) = ffeac32cbdc684462701aae276106e1912b86b470242b886e1a8866e4a74c51b -SIZE (pion-sctp-v1.8.33_GH0.tar.gz) = 94390 +SHA256 (pion-rtcp-v1.2.15_GH0.tar.gz) = b3032a27547fe6a2d2468db5925399b8e13aec3770788db98b91c327bb54695f +SIZE (pion-rtcp-v1.2.15_GH0.tar.gz) = 61468 +SHA256 (pion-rtp-v1.8.10_GH0.tar.gz) = f998acdb35dc3c8741fc4198b240342bc549777db6414adc75e70765e1cac57a +SIZE (pion-rtp-v1.8.10_GH0.tar.gz) = 62142 +SHA256 (pion-sctp-v1.8.35_GH0.tar.gz) = 780d450604fd9eafcc1f2b93f42d0c0ca690be8c57770e6a3cc817270ac37821 +SIZE (pion-sctp-v1.8.35_GH0.tar.gz) = 96553 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.20_GH0.tar.gz) = 8156afe373b0f6f43dbbbd56deca6b32f039d9995d0b6bd3c2757c1630b5443e @@ -53,13 +53,15 @@ SHA256 (pion-stun-v0.6.1_GH0.tar.gz) = 6abda07e177b9f65412e3b11dae6a35663869ebec SIZE (pion-stun-v0.6.1_GH0.tar.gz) = 91808 SHA256 (pion-transport-v2.2.10_GH0.tar.gz) = 112640b7644824e3e63426bfd23712bcaadab670e3171f86c34948863b5ff0ff SIZE (pion-transport-v2.2.10_GH0.tar.gz) = 90002 +SHA256 (pion-transport-v3.0.7_GH0.tar.gz) = dca2f4ede133623bfb1f2d1a055e500c80ef3faa39ad9db4d45086d60c7458b5 +SIZE (pion-transport-v3.0.7_GH0.tar.gz) = 85680 SHA256 (pion-turn-v2.1.6_GH0.tar.gz) = 243841be67659ad71437e818b82c4032731cf1a3ad73e948bf3abbe27a5addb5 SIZE (pion-turn-v2.1.6_GH0.tar.gz) = 131516 -SHA256 (pion-webrtc-v3.3.4_GH0.tar.gz) = 90ffd02e21676079b5e4a50ac4a310bff8f707fdc4d75812c347d26460c22286 -SIZE (pion-webrtc-v3.3.4_GH0.tar.gz) = 386093 +SHA256 (pion-webrtc-v3.3.5_GH0.tar.gz) = 93ff5d7860d94a1411bd532d9d4e1affb0e8d99e83e36c2a7596d753438e2cb8 +SIZE (pion-webrtc-v3.3.5_GH0.tar.gz) = 386477 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.9.0_GH0.tar.gz) = ee651d4d4427d55096007190398102383498e6b5cf97ea9e89ad6e72b4115fbb -SIZE (stretchr-testify-v1.9.0_GH0.tar.gz) = 108663 +SHA256 (stretchr-testify-v1.10.0_GH0.tar.gz) = 06af5143ab5fc8f2fbf3d1420a5f002f6383cd7de911698dbd1822beacb27684 +SIZE (stretchr-testify-v1.10.0_GH0.tar.gz) = 112732 SHA256 (wlynxg-anet-v0.0.5_GH0.tar.gz) = bf9a401124ec58f00413b5597fc7f9ced9abd3314ec62ce49021c4c7b023d47e SIZE (wlynxg-anet-v0.0.5_GH0.tar.gz) = 5475910 diff --git a/www/iridium/Makefile b/www/iridium/Makefile index 77f52b16e365..ace3050434e2 100644 --- a/www/iridium/Makefile +++ b/www/iridium/Makefile @@ -1,6 +1,5 @@ PORTNAME= iridium -PORTVERSION= 2025.05.136.1 -PORTREVISION= 1 +PORTVERSION= 2025.05.136.2 PULSEMV= 16 PULSEV= ${PULSEMV}.1 CATEGORIES= www wayland diff --git a/www/iridium/distinfo b/www/iridium/distinfo index 803215ab849b..58d0b1608e14 100644 --- a/www/iridium/distinfo +++ b/www/iridium/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1746686164 -SHA256 (iridium-browser-2025.05.136.1.tar.xz) = 5baa038eeafcc04a199cff7f512839b9ac3fdac71fe496af9ff3c8544f51f9ae -SIZE (iridium-browser-2025.05.136.1.tar.xz) = 3044399212 +TIMESTAMP = 1747324897 +SHA256 (iridium-browser-2025.05.136.2.tar.xz) = 49c4e1db1c81b78f83c0eb4b1e3a85daba92a01b741e857bf9d56e5fc33d0c82 +SIZE (iridium-browser-2025.05.136.2.tar.xz) = 3044410956 SHA256 (pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 SIZE (pulseaudio-16.1.tar.gz) = 2763111 diff --git a/www/iridium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/www/iridium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 index 4ffb0ebffc40..08dd9c45781c 100644 --- a/www/iridium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 +++ b/www/iridium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 @@ -1,4 +1,4 @@ ---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-05-07 06:48:23 UTC +--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-05-15 16:06:59 UTC +++ third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -434,7 +434,7 @@ name: "AppTitle", @@ -45,7 +45,7 @@ status: "stable", public: true, base_feature: "none", -@@ -4636,7 +4636,7 @@ +@@ -4635,7 +4635,7 @@ name: "UnrestrictedSharedArrayBuffer", base_feature: "none", origin_trial_feature_name: "UnrestrictedSharedArrayBuffer", @@ -54,7 +54,7 @@ }, // Enables using policy-controlled feature "usb-unrestricted" to allow // isolated context to access protected USB interface classes and to -@@ -4811,7 +4811,7 @@ +@@ -4810,7 +4810,7 @@ { name: "WebAppScopeExtensions", origin_trial_feature_name: "WebAppScopeExtensions", @@ -63,7 +63,7 @@ status: "experimental", base_feature: "none", }, -@@ -5086,7 +5086,7 @@ +@@ -5085,7 +5085,7 @@ { name: "WebIdentityDigitalCredentials", origin_trial_feature_name: "WebIdentityDigitalCredentials", diff --git a/www/librewolf/Makefile b/www/librewolf/Makefile index ebd4edfe5e19..15e83127c5e4 100644 --- a/www/librewolf/Makefile +++ b/www/librewolf/Makefile @@ -1,8 +1,7 @@ PORTNAME= librewolf -DISTVERSION= 138.0.1 -LWPATCH= -2 +DISTVERSION= 138.0.3 +LWPATCH= -1 DISTVERSIONSUFFIX= ${LWPATCH}.source -PORTREVISION= 1 CATEGORIES= www wayland MASTER_SITES= https://gitlab.com/api/v4/projects/32320088/packages/generic/${PORTNAME}-source/${DISTVERSION}${LWPATCH}/ diff --git a/www/librewolf/distinfo b/www/librewolf/distinfo index 31195b372818..5848fa1442f7 100644 --- a/www/librewolf/distinfo +++ b/www/librewolf/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746445113 -SHA256 (librewolf-138.0.1-2.source.tar.gz) = 308ac7a2d890bb798d3058dcf89415ccfb37e80e951f141b13c2ca98a758efd2 -SIZE (librewolf-138.0.1-2.source.tar.gz) = 1019041631 +TIMESTAMP = 1747328459 +SHA256 (librewolf-138.0.3-1.source.tar.gz) = 0a849bb4cb4448004451f1af87c12a951d782048e8668b9b6754246089c45dcb +SIZE (librewolf-138.0.3-1.source.tar.gz) = 1019083591 diff --git a/www/nextcloud-calendar/Makefile b/www/nextcloud-calendar/Makefile index 8062dfb93509..84a890b3afb5 100644 --- a/www/nextcloud-calendar/Makefile +++ b/www/nextcloud-calendar/Makefile @@ -1,5 +1,5 @@ PORTNAME= calendar -PORTVERSION= 5.2.3 +PORTVERSION= 5.2.4 DISTVERSIONPREFIX= v CATEGORIES= www diff --git a/www/nextcloud-calendar/distinfo b/www/nextcloud-calendar/distinfo index a681a6b91bfa..63fe37edd4ed 100644 --- a/www/nextcloud-calendar/distinfo +++ b/www/nextcloud-calendar/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746950468 -SHA256 (nextcloud/calendar-v5.2.3.tar.gz) = 3647d69f4e9218e1cc50da85bc9021ef7968709e20a208a5deeb01ef4673fcc8 -SIZE (nextcloud/calendar-v5.2.3.tar.gz) = 19796857 +TIMESTAMP = 1747333671 +SHA256 (nextcloud/calendar-v5.2.4.tar.gz) = cff04c29acbd163f9a232a4f03d71b109e9d701d37a063e1cb64d218725e473d +SIZE (nextcloud/calendar-v5.2.4.tar.gz) = 19795163 diff --git a/www/nextcloud-contacts/Makefile b/www/nextcloud-contacts/Makefile index 95f44662bbe9..328bd28a0f86 100644 --- a/www/nextcloud-contacts/Makefile +++ b/www/nextcloud-contacts/Makefile @@ -1,5 +1,5 @@ PORTNAME= contacts -PORTVERSION= 7.0.6 +PORTVERSION= 7.1.0 DISTVERSIONPREFIX= v CATEGORIES= www diff --git a/www/nextcloud-contacts/distinfo b/www/nextcloud-contacts/distinfo index 6b3df11045b3..c15f6bcd93a0 100644 --- a/www/nextcloud-contacts/distinfo +++ b/www/nextcloud-contacts/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745079799 -SHA256 (nextcloud/contacts-v7.0.6.tar.gz) = dc6d5d8bf3e738020c2f6bf02a0966b8c029be7f3e9d762376a9f24924a82c32 -SIZE (nextcloud/contacts-v7.0.6.tar.gz) = 4327344 +TIMESTAMP = 1747333704 +SHA256 (nextcloud/contacts-v7.1.0.tar.gz) = 39839b18810056204c59eb0bfe436fe051ceed249aef7add563925c2ec8f4ab6 +SIZE (nextcloud/contacts-v7.1.0.tar.gz) = 4354560 diff --git a/www/nextcloud/Makefile b/www/nextcloud/Makefile index aeac60e9b5de..0c9d210db4d2 100644 --- a/www/nextcloud/Makefile +++ b/www/nextcloud/Makefile @@ -1,5 +1,5 @@ PORTNAME= nextcloud -PORTVERSION= 31.0.4 +PORTVERSION= 31.0.5 CATEGORIES= www MASTER_SITES= https://download.nextcloud.com/server/releases/ PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX} diff --git a/www/nextcloud/distinfo b/www/nextcloud/distinfo index 68bc03dbd0bb..97eb88f9a750 100644 --- a/www/nextcloud/distinfo +++ b/www/nextcloud/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745150519 -SHA256 (nextcloud/nextcloud-31.0.4.tar.bz2) = a47541566d5c6ac6f63e4f617e27da295156da47daa2cd22eee3400fd2ad1251 -SIZE (nextcloud/nextcloud-31.0.4.tar.bz2) = 227351477 +TIMESTAMP = 1747332904 +SHA256 (nextcloud/nextcloud-31.0.5.tar.bz2) = 2228b8f524dcd87f08a2a9281d41b04f5cb500b7624bc8c8e07b8e3039061503 +SIZE (nextcloud/nextcloud-31.0.5.tar.bz2) = 226737152 diff --git a/www/py-dj50-django-auth-ldap/Makefile b/www/py-dj50-django-auth-ldap/Makefile index d48e46991bd5..eaa0337951dc 100644 --- a/www/py-dj50-django-auth-ldap/Makefile +++ b/www/py-dj50-django-auth-ldap/Makefile @@ -1,5 +1,5 @@ PORTNAME= django-auth-ldap -PORTVERSION= 5.1.0 +PORTVERSION= 5.2.0 CATEGORIES= www security python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj50- diff --git a/www/py-dj50-django-auth-ldap/distinfo b/www/py-dj50-django-auth-ldap/distinfo index 2ae0a3f4baa0..d60b5a523112 100644 --- a/www/py-dj50-django-auth-ldap/distinfo +++ b/www/py-dj50-django-auth-ldap/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1730477310 -SHA256 (django_auth_ldap-5.1.0.tar.gz) = 9c607e8d9c53cf2a0ccafbe0acfc33eb1d1fd474c46ec52d30aee0dca1da9668 -SIZE (django_auth_ldap-5.1.0.tar.gz) = 55059 +TIMESTAMP = 1747314334 +SHA256 (django_auth_ldap-5.2.0.tar.gz) = 08ba6efc0340d9874725a962311b14991e29a33593eb150a8fb640709dbfa80f +SIZE (django_auth_ldap-5.2.0.tar.gz) = 55287 diff --git a/www/py-dj51-django-auth-ldap/Makefile b/www/py-dj51-django-auth-ldap/Makefile index 94a842eefd8b..b71226b9f650 100644 --- a/www/py-dj51-django-auth-ldap/Makefile +++ b/www/py-dj51-django-auth-ldap/Makefile @@ -1,5 +1,5 @@ PORTNAME= django-auth-ldap -PORTVERSION= 5.1.0 +PORTVERSION= 5.2.0 CATEGORIES= www security python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj51- diff --git a/www/py-dj51-django-auth-ldap/distinfo b/www/py-dj51-django-auth-ldap/distinfo index 2ae0a3f4baa0..d60b5a523112 100644 --- a/www/py-dj51-django-auth-ldap/distinfo +++ b/www/py-dj51-django-auth-ldap/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1730477310 -SHA256 (django_auth_ldap-5.1.0.tar.gz) = 9c607e8d9c53cf2a0ccafbe0acfc33eb1d1fd474c46ec52d30aee0dca1da9668 -SIZE (django_auth_ldap-5.1.0.tar.gz) = 55059 +TIMESTAMP = 1747314334 +SHA256 (django_auth_ldap-5.2.0.tar.gz) = 08ba6efc0340d9874725a962311b14991e29a33593eb150a8fb640709dbfa80f +SIZE (django_auth_ldap-5.2.0.tar.gz) = 55287 diff --git a/www/py-django-auth-ldap/Makefile b/www/py-django-auth-ldap/Makefile index 8e92221e47f5..c27d62dce257 100644 --- a/www/py-django-auth-ldap/Makefile +++ b/www/py-django-auth-ldap/Makefile @@ -1,5 +1,5 @@ PORTNAME= django-auth-ldap -PORTVERSION= 5.1.0 +PORTVERSION= 5.2.0 CATEGORIES= www security python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -18,7 +18,7 @@ BUILD_DEPENDS= ${PY_SETUPTOOLS} \ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=4.2:www/py-django42@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}python-ldap>=3.1:net/py-python-ldap@${PY_FLAVOR} -USES= python:3.9+ +USES= python USE_PYTHON= autoplist concurrent pep517 NO_ARCH= yes diff --git a/www/py-django-auth-ldap/distinfo b/www/py-django-auth-ldap/distinfo index 2ae0a3f4baa0..d60b5a523112 100644 --- a/www/py-django-auth-ldap/distinfo +++ b/www/py-django-auth-ldap/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1730477310 -SHA256 (django_auth_ldap-5.1.0.tar.gz) = 9c607e8d9c53cf2a0ccafbe0acfc33eb1d1fd474c46ec52d30aee0dca1da9668 -SIZE (django_auth_ldap-5.1.0.tar.gz) = 55059 +TIMESTAMP = 1747314334 +SHA256 (django_auth_ldap-5.2.0.tar.gz) = 08ba6efc0340d9874725a962311b14991e29a33593eb150a8fb640709dbfa80f +SIZE (django_auth_ldap-5.2.0.tar.gz) = 55287 diff --git a/www/py-flask/Makefile b/www/py-flask/Makefile index 64975c52c559..b7c137b698ff 100644 --- a/www/py-flask/Makefile +++ b/www/py-flask/Makefile @@ -1,5 +1,5 @@ PORTNAME= flask -DISTVERSION= 3.1.0 +DISTVERSION= 3.1.1 CATEGORIES= www python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/www/py-flask/distinfo b/www/py-flask/distinfo index ab53a28c5fc4..dd7789fa3a5b 100644 --- a/www/py-flask/distinfo +++ b/www/py-flask/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1732758182 -SHA256 (flask-3.1.0.tar.gz) = 5f873c5184c897c8d9d1b05df1e3d01b14910ce69607a117bd3277098a5836ac -SIZE (flask-3.1.0.tar.gz) = 680824 +TIMESTAMP = 1747179697 +SHA256 (flask-3.1.1.tar.gz) = 284c7b8f2f58cb737f0cf1c30fd7eaf0ccfcde196099d24ecede3fc2005aa59e +SIZE (flask-3.1.1.tar.gz) = 753440 diff --git a/www/reproxy/Makefile b/www/reproxy/Makefile index fcd3f054a2d9..c8c3d19d8495 100644 --- a/www/reproxy/Makefile +++ b/www/reproxy/Makefile @@ -1,7 +1,6 @@ PORTNAME= reproxy -PORTVERSION= 1.1.1 +PORTVERSION= 1.2.3 DISTVERSIONPREFIX= v -PORTREVISION= 5 CATEGORIES= www MAINTAINER= danfe@FreeBSD.org @@ -11,7 +10,7 @@ WWW= https://reproxy.io/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE -USES= go:modules +USES= go:1.23,modules USE_GITHUB= yes GH_ACCOUNT= umputun diff --git a/www/reproxy/distinfo b/www/reproxy/distinfo index a15b25cc08cb..6173629a2615 100644 --- a/www/reproxy/distinfo +++ b/www/reproxy/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1707197375 -SHA256 (umputun-reproxy-v1.1.1_GH0.tar.gz) = 595af6971ea6be9f5f4a3e92c9c9ad9024c93c353456cd3d8d9efa9786679c1e -SIZE (umputun-reproxy-v1.1.1_GH0.tar.gz) = 3166619 +TIMESTAMP = 1740074776 +SHA256 (umputun-reproxy-v1.2.3_GH0.tar.gz) = 5156be192698e263134e486448de3099e389cdc508c4a311830f371395ecfe13 +SIZE (umputun-reproxy-v1.2.3_GH0.tar.gz) = 3449957 diff --git a/www/sogo/Makefile b/www/sogo/Makefile index 44fbd991ff76..5370d98555c3 100644 --- a/www/sogo/Makefile +++ b/www/sogo/Makefile @@ -1,5 +1,5 @@ PORTNAME= sogo -PORTVERSION= 5.12.0 +PORTVERSION= 5.12.1 CATEGORIES= www gnustep MASTER_SITES= https://packages.sogo.nu/sources/ DISTNAME= SOGo-${PORTVERSION} diff --git a/www/sogo/distinfo b/www/sogo/distinfo index 230d2fe0b8cd..678df0747647 100644 --- a/www/sogo/distinfo +++ b/www/sogo/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742970033 -SHA256 (SOGo-5.12.0.tar.gz) = f5c17371ad6e6442b3fc8e1c3149710033d5c61aa3f2a7a3f090b7f51cbec83a -SIZE (SOGo-5.12.0.tar.gz) = 37238251 +TIMESTAMP = 1747459352 +SHA256 (SOGo-5.12.1.tar.gz) = b51d39b31af9a6059db79a18201f3c6cfd584468e369eebe286f8181804bcd99 +SIZE (SOGo-5.12.1.tar.gz) = 37738293 diff --git a/www/sogo/files/patch-SoObjects_SOGo_SOGoMailer.m b/www/sogo/files/patch-SoObjects_SOGo_SOGoMailer.m deleted file mode 100644 index f204575eb042..000000000000 --- a/www/sogo/files/patch-SoObjects_SOGo_SOGoMailer.m +++ /dev/null @@ -1,11 +0,0 @@ ---- SoObjects/SOGo/SOGoMailer.m 2025-03-25 23:34:20.921308000 -0700 -+++ SoObjects/SOGo/SOGoMailer.m 2025-03-25 23:34:50.890963000 -0700 -@@ -325,7 +325,7 @@ - { - login = [currentAcount objectForKey: @"userName"]; - password = [currentAcount objectForKey: @"password"]; -- smtpAuthMethod = "plain"; //Only support plain for auxiliary account -+ smtpAuthMethod = @"plain"; //Only support plain for auxiliary account - } - else - { diff --git a/www/sogo/pkg-plist b/www/sogo/pkg-plist index 042b1934d44c..e3f23632b021 100644 --- a/www/sogo/pkg-plist +++ b/www/sogo/pkg-plist @@ -751,7 +751,7 @@ GNUstep/Local/Library/Libraries/sogo/libSOGo.so.5 GNUstep/Local/Library/Libraries/sogo/libSOGo.so.%%VERSION%% GNUstep/Local/Library/Libraries/sogo/libSOGoUI.so GNUstep/Local/Library/Libraries/sogo/libSOGoUI.so.5.12 -GNUstep/Local/Library/Libraries/sogo/libSOGoUI.so.%%VERSION%% +GNUstep/Local/Library/Libraries/sogo/libSOGoUI.so.5.12.0 GNUstep/Local/Library/OCSTypeModels/appointment-oracle.ocs GNUstep/Local/Library/OCSTypeModels/appointment.ocs GNUstep/Local/Library/OCSTypeModels/contact-oracle.ocs @@ -2092,6 +2092,13 @@ GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-file-upload.js GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-file-upload.js.map GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-file-upload.min.js GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-file-upload.min.js.map +GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material-dist/angular-material-mocks.js +GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material-dist/angular-material.js +GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material-dist/angular-material.min.js +GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material-dist/angular-material.scss +GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material-dist/layouts/angular-material.layout-attributes.scss +GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material-dist/layouts/angular-material.layouts.scss +GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material-dist/package.json GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material.js GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-material.min.js GNUstep/Local/Library/SOGo/WebServerResources/js/vendor/angular-messages.js diff --git a/www/tomcat-devel/Makefile b/www/tomcat-devel/Makefile index d643c6982b9d..56a5046ab6cb 100644 --- a/www/tomcat-devel/Makefile +++ b/www/tomcat-devel/Makefile @@ -1,6 +1,5 @@ PORTNAME= tomcat -DISTVERSION= 11.0.6 -PORTREVISION= 2 +DISTVERSION= 11.0.7 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 e344328ff6a6..805285ec7f65 100644 --- a/www/tomcat-devel/distinfo +++ b/www/tomcat-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744195573 -SHA256 (apache-tomcat-11.0.6.tar.gz) = 864458f646bf938d3feb5773456199819b91d52670e4d724b9866ccfd4761cef -SIZE (apache-tomcat-11.0.6.tar.gz) = 13878198 +TIMESTAMP = 1747453588 +SHA256 (apache-tomcat-11.0.7.tar.gz) = 2fcece641c62ba1f28e1d7b257493151fc44f161fb391015ee6a95fa71632fb9 +SIZE (apache-tomcat-11.0.7.tar.gz) = 14091809 diff --git a/www/tomcat-devel/pkg-plist b/www/tomcat-devel/pkg-plist index 28bd1cee81f1..ee68e1b0d4fd 100644 --- a/www/tomcat-devel/pkg-plist +++ b/www/tomcat-devel/pkg-plist @@ -103,8 +103,14 @@ %%DOCS%%%%T%%/webapps/docs/architecture/index.html %%DOCS%%%%T%%/webapps/docs/architecture/overview.html %%DOCS%%%%T%%/webapps/docs/architecture/requestProcess.html -%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/authentication-process.png -%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/request-process.png +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/11_nio.plantuml +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/11_nio.png +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/21_http11.plantuml +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/21_http11.png +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/31_synchronous.plantuml +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/31_synchronous.png +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/41_basic.plantuml +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/41_basic.png %%DOCS%%%%T%%/webapps/docs/architecture/startup.html %%DOCS%%%%T%%/webapps/docs/architecture/startup/1_overview.plantuml %%DOCS%%%%T%%/webapps/docs/architecture/startup/1_overview.png diff --git a/www/tomcat110/Makefile b/www/tomcat110/Makefile index a35009afb7e2..6c8fa8250802 100644 --- a/www/tomcat110/Makefile +++ b/www/tomcat110/Makefile @@ -1,6 +1,5 @@ PORTNAME= tomcat -DISTVERSION= 11.0.6 -PORTREVISION= 2 +DISTVERSION= 11.0.7 CATEGORIES= www java MASTER_SITES= APACHE/${PORTNAME}/${PORTNAME}-${DISTVERSION:C/([0-9]+)(.*)/\1/}/v${DISTVERSION}/bin PKGNAMESUFFIX= 110 diff --git a/www/tomcat110/distinfo b/www/tomcat110/distinfo index e344328ff6a6..805285ec7f65 100644 --- a/www/tomcat110/distinfo +++ b/www/tomcat110/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744195573 -SHA256 (apache-tomcat-11.0.6.tar.gz) = 864458f646bf938d3feb5773456199819b91d52670e4d724b9866ccfd4761cef -SIZE (apache-tomcat-11.0.6.tar.gz) = 13878198 +TIMESTAMP = 1747453588 +SHA256 (apache-tomcat-11.0.7.tar.gz) = 2fcece641c62ba1f28e1d7b257493151fc44f161fb391015ee6a95fa71632fb9 +SIZE (apache-tomcat-11.0.7.tar.gz) = 14091809 diff --git a/www/tomcat110/pkg-plist b/www/tomcat110/pkg-plist index 28bd1cee81f1..ee68e1b0d4fd 100644 --- a/www/tomcat110/pkg-plist +++ b/www/tomcat110/pkg-plist @@ -103,8 +103,14 @@ %%DOCS%%%%T%%/webapps/docs/architecture/index.html %%DOCS%%%%T%%/webapps/docs/architecture/overview.html %%DOCS%%%%T%%/webapps/docs/architecture/requestProcess.html -%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/authentication-process.png -%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/request-process.png +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/11_nio.plantuml +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/11_nio.png +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/21_http11.plantuml +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/21_http11.png +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/31_synchronous.plantuml +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/31_synchronous.png +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/41_basic.plantuml +%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/41_basic.png %%DOCS%%%%T%%/webapps/docs/architecture/startup.html %%DOCS%%%%T%%/webapps/docs/architecture/startup/1_overview.plantuml %%DOCS%%%%T%%/webapps/docs/architecture/startup/1_overview.png diff --git a/www/ungoogled-chromium/Makefile b/www/ungoogled-chromium/Makefile index 486a71a46852..82ad56dc48d0 100644 --- a/www/ungoogled-chromium/Makefile +++ b/www/ungoogled-chromium/Makefile @@ -1,6 +1,5 @@ PORTNAME= ungoogled-chromium -PORTVERSION= 136.0.7103.92 -PORTREVISION= 1 +PORTVERSION= 136.0.7103.113 PULSEMV= 16 PULSEV= ${PULSEMV}.1 UGVERSION= ${DISTVERSION}-1 diff --git a/www/ungoogled-chromium/distinfo b/www/ungoogled-chromium/distinfo index ff9869865cd1..f53ddc783f79 100644 --- a/www/ungoogled-chromium/distinfo +++ b/www/ungoogled-chromium/distinfo @@ -1,9 +1,9 @@ -TIMESTAMP = 1746691040 -SHA256 (chromium-136.0.7103.92.tar.xz) = 3fa7f88ef186566948367bf1e9a9f0612e753fc69285c1654728f6a015cd4cf2 -SIZE (chromium-136.0.7103.92.tar.xz) = 7188412240 +TIMESTAMP = 1747298437 +SHA256 (chromium-136.0.7103.113.tar.xz) = 7c765bd13df842a28bb52279b8d711411ac6082151473e07bd70b9a482c0a0ac +SIZE (chromium-136.0.7103.113.tar.xz) = 7196537592 SHA256 (pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 SIZE (pulseaudio-16.1.tar.gz) = 2763111 -SHA256 (chromium-136.0.7103.92-testdata.tar.xz) = 6e5bb3fba5b61ffc9e91b9d2fc9cc758bebe4d16806a68b1a32b189193c78256 -SIZE (chromium-136.0.7103.92-testdata.tar.xz) = 651393856 -SHA256 (ungoogled-software-ungoogled-chromium-136.0.7103.92-136.0.7103.92-1_GH0.tar.gz) = d256643a26d536a5079441e63fd4c8cda0e073702665605b40c5ce1d5b18bcbe -SIZE (ungoogled-software-ungoogled-chromium-136.0.7103.92-136.0.7103.92-1_GH0.tar.gz) = 633266 +SHA256 (chromium-136.0.7103.113-testdata.tar.xz) = cbf264643986db5b7aa91843ea64a1b9e23d00bb226b234d4f60788469a58ef8 +SIZE (chromium-136.0.7103.113-testdata.tar.xz) = 651614116 +SHA256 (ungoogled-software-ungoogled-chromium-136.0.7103.113-136.0.7103.113-1_GH0.tar.gz) = ab4c1b21292b860eaa750d3fb9ee73dae58a86d2dd59d4e41e06102e8c9f635a +SIZE (ungoogled-software-ungoogled-chromium-136.0.7103.113-136.0.7103.113-1_GH0.tar.gz) = 633301 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 9a37800799e6..9b0ab86d6d91 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,4 +1,4 @@ ---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-05-06 12:23:00 UTC +--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-05-15 08:53:47 UTC +++ third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -434,7 +434,7 @@ name: "AppTitle", @@ -45,7 +45,7 @@ status: "stable", public: true, base_feature: "none", -@@ -4645,7 +4645,7 @@ +@@ -4644,7 +4644,7 @@ name: "UnrestrictedSharedArrayBuffer", base_feature: "none", origin_trial_feature_name: "UnrestrictedSharedArrayBuffer", @@ -54,7 +54,7 @@ }, // Enables using policy-controlled feature "usb-unrestricted" to allow // isolated context to access protected USB interface classes and to -@@ -4820,7 +4820,7 @@ +@@ -4819,7 +4819,7 @@ { name: "WebAppScopeExtensions", origin_trial_feature_name: "WebAppScopeExtensions", @@ -63,7 +63,7 @@ status: "experimental", base_feature: "none", }, -@@ -5095,7 +5095,7 @@ +@@ -5094,7 +5094,7 @@ { name: "WebIdentityDigitalCredentials", origin_trial_feature_name: "WebIdentityDigitalCredentials", diff --git a/x11-fm/thunar/Makefile b/x11-fm/thunar/Makefile index 5e98de129ecc..e158981930cb 100644 --- a/x11-fm/thunar/Makefile +++ b/x11-fm/thunar/Makefile @@ -1,5 +1,5 @@ PORTNAME= thunar -DISTVERSION= 4.20.2 +DISTVERSION= 4.20.3 CATEGORIES= x11-fm xfce MASTER_SITES= XFCE DIST_SUBDIR= xfce4 diff --git a/x11-fm/thunar/distinfo b/x11-fm/thunar/distinfo index 12b26733c985..aa858ea0fbf8 100644 --- a/x11-fm/thunar/distinfo +++ b/x11-fm/thunar/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1739221796 -SHA256 (xfce4/thunar-4.20.2.tar.bz2) = 71376f6d7ba4998943c412f374db16ec9b709610acd4d27ecb1eef3aca82af05 -SIZE (xfce4/thunar-4.20.2.tar.bz2) = 4452492 +TIMESTAMP = 1747393966 +SHA256 (xfce4/thunar-4.20.3.tar.bz2) = fe1908b396298e6515a90fa9ddaec0db8b684e4b3d7773118e21561baf8f9639 +SIZE (xfce4/thunar-4.20.3.tar.bz2) = 4530792 diff --git a/x11-fm/thunar/pkg-plist b/x11-fm/thunar/pkg-plist index fedd9ea84cb1..3252ed330df7 100644 --- a/x11-fm/thunar/pkg-plist +++ b/x11-fm/thunar/pkg-plist @@ -195,7 +195,6 @@ share/icons/hicolor/24x24/stock/navigation/stock_folder-move.png share/icons/hicolor/48x48/apps/org.xfce.thunar.png share/icons/hicolor/scalable/apps/org.xfce.thunar.svg %%NLS%%share/locale/am/LC_MESSAGES/thunar.mo -%%NLS%%share/locale/en_AU/LC_MESSAGES/thunar.mo %%NLS%%share/locale/ar/LC_MESSAGES/thunar.mo %%NLS%%share/locale/ast/LC_MESSAGES/thunar.mo %%NLS%%share/locale/be/LC_MESSAGES/thunar.mo @@ -206,6 +205,7 @@ share/icons/hicolor/scalable/apps/org.xfce.thunar.svg %%NLS%%share/locale/da/LC_MESSAGES/thunar.mo %%NLS%%share/locale/de/LC_MESSAGES/thunar.mo %%NLS%%share/locale/el/LC_MESSAGES/thunar.mo +%%NLS%%share/locale/en_AU/LC_MESSAGES/thunar.mo %%NLS%%share/locale/en_GB/LC_MESSAGES/thunar.mo %%NLS%%share/locale/eo/LC_MESSAGES/thunar.mo %%NLS%%share/locale/es/LC_MESSAGES/thunar.mo @@ -226,6 +226,7 @@ share/icons/hicolor/scalable/apps/org.xfce.thunar.svg %%NLS%%share/locale/is/LC_MESSAGES/thunar.mo %%NLS%%share/locale/it/LC_MESSAGES/thunar.mo %%NLS%%share/locale/ja/LC_MESSAGES/thunar.mo +%%NLS%%share/locale/ka/LC_MESSAGES/thunar.mo %%NLS%%share/locale/kk/LC_MESSAGES/thunar.mo %%NLS%%share/locale/ko/LC_MESSAGES/thunar.mo %%NLS%%share/locale/lt/LC_MESSAGES/thunar.mo @@ -254,6 +255,7 @@ share/icons/hicolor/scalable/apps/org.xfce.thunar.svg %%NLS%%share/locale/uk/LC_MESSAGES/thunar.mo %%NLS%%share/locale/ur/LC_MESSAGES/thunar.mo %%NLS%%share/locale/ur_PK/LC_MESSAGES/thunar.mo +%%NLS%%share/locale/vec/LC_MESSAGES/thunar.mo %%NLS%%share/locale/vi/LC_MESSAGES/thunar.mo %%NLS%%share/locale/zh_CN/LC_MESSAGES/thunar.mo %%NLS%%share/locale/zh_HK/LC_MESSAGES/thunar.mo diff --git a/x11-themes/Kvantum/Makefile b/x11-themes/Kvantum/Makefile index 28d4f604f62a..8d0b5f06119c 100644 --- a/x11-themes/Kvantum/Makefile +++ b/x11-themes/Kvantum/Makefile @@ -1,5 +1,5 @@ PORTNAME= Kvantum -DISTVERSION= 1.1.4 +DISTVERSION= 1.1.5 CATEGORIES= x11-themes MASTER_SITES= https://github.com/tsujan/${PORTNAME}/releases/download/V${DISTVERSION}/ diff --git a/x11-themes/Kvantum/distinfo b/x11-themes/Kvantum/distinfo index 545e9d5bfebc..5745b8a749ac 100644 --- a/x11-themes/Kvantum/distinfo +++ b/x11-themes/Kvantum/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1741039264 -SHA256 (Kvantum-1.1.4.tar.xz) = 0b47a7081b943a035f8cff66767d00cb134f179f5e24d6ac8362c1f2e4ca2d1b -SIZE (Kvantum-1.1.4.tar.xz) = 2079404 +TIMESTAMP = 1747219027 +SHA256 (Kvantum-1.1.5.tar.xz) = 64af08988e8579ac8078b7db38a4986daa24d490ea6d54d70c08140a7737bc53 +SIZE (Kvantum-1.1.5.tar.xz) = 2079940 diff --git a/x11-toolkits/libdecor/Makefile b/x11-toolkits/libdecor/Makefile index f560da21781d..fcd062acda78 100644 --- a/x11-toolkits/libdecor/Makefile +++ b/x11-toolkits/libdecor/Makefile @@ -1,6 +1,5 @@ PORTNAME= libdecor -DISTVERSION= 0.2.2 -PORTREVISION= 4 +DISTVERSION= 0.2.3 CATEGORIES= x11-toolkits MAINTAINER= jbeich@FreeBSD.org diff --git a/x11-toolkits/libdecor/distinfo b/x11-toolkits/libdecor/distinfo index b5c4c9e5fc84..f96571bb63da 100644 --- a/x11-toolkits/libdecor/distinfo +++ b/x11-toolkits/libdecor/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1705352442 -SHA256 (libdecor-0.2.2.tar.bz2) = 943e693316300a8deb50ca5879656ac3c642e7b769dbc2d093e9919b72076bc6 -SIZE (libdecor-0.2.2.tar.bz2) = 45375 +TIMESTAMP = 1747165420 +SHA256 (libdecor-0.2.3.tar.bz2) = 704138616a96eafbe68bbd5e55df2c8adb21ae5ec165ba56b6ea1f99869167d5 +SIZE (libdecor-0.2.3.tar.bz2) = 45727 diff --git a/x11-toolkits/libdecor/pkg-plist b/x11-toolkits/libdecor/pkg-plist index 385862d39f0d..33c7f13b142b 100644 --- a/x11-toolkits/libdecor/pkg-plist +++ b/x11-toolkits/libdecor/pkg-plist @@ -4,7 +4,7 @@ include/libdecor-0/libdecor.h lib/libdecor-0.so lib/libdecor-0.so.0 -lib/libdecor-0.so.0.200.2 +lib/libdecor-0.so.0.200.3 %%CAIRO%%lib/libdecor/plugins-1/libdecor-cairo.so %%GTK3%%lib/libdecor/plugins-1/libdecor-gtk.so libdata/pkgconfig/libdecor-0.pc diff --git a/x11-toolkits/wlroots019/Makefile b/x11-toolkits/wlroots019/Makefile index bee22c5e2bd2..5427932dd492 100644 --- a/x11-toolkits/wlroots019/Makefile +++ b/x11-toolkits/wlroots019/Makefile @@ -1,5 +1,5 @@ PORTNAME= wlroots -DISTVERSION= 0.19.0-rc3 +DISTVERSION= 0.19.0 CATEGORIES= x11-toolkits PKGNAMESUFFIX= 019 diff --git a/x11-toolkits/wlroots019/distinfo b/x11-toolkits/wlroots019/distinfo index 10a42d482978..ae53fd2db16a 100644 --- a/x11-toolkits/wlroots019/distinfo +++ b/x11-toolkits/wlroots019/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745786924 -SHA256 (wlroots-0.19.0-rc3.tar.bz2) = b469d58e53e2f2264eb1b793f7ac9e9ee1fc444fa68f3921866b35134281bf59 -SIZE (wlroots-0.19.0-rc3.tar.bz2) = 500746 +TIMESTAMP = 1747298877 +SHA256 (wlroots-0.19.0.tar.bz2) = 2f31ba9d4ae1ff3f5ac62f21b046fe31bb408c7f887c4dfafb2e09e98c991980 +SIZE (wlroots-0.19.0.tar.bz2) = 500886 diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile index ee2d6d1e8e18..6e020ec322bd 100644 --- a/x11-wm/hyprland/Makefile +++ b/x11-wm/hyprland/Makefile @@ -1,12 +1,9 @@ PORTNAME= hyprland DISTVERSIONPREFIX= v -DISTVERSION= 0.49.0 +DISTVERSION= 0.48.1 +PORTREVISION= 2 CATEGORIES= x11-wm wayland -PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ -PATCHFILES+= fcb6f936ea8b.patch:-p1 # https://github.com/hyprwm/Hyprland/pull/10344 -PATCHFILES+= e44aae0c2064.patch:-p1 # https://github.com/hyprwm/Hyprland/pull/10345 - MAINTAINER= jbeich@FreeBSD.org COMMENT= Dynamic tiling Wayland compositor that doesn't sacrifice on its looks #' WWW= https://hyprland.org/ @@ -17,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ glaze>0:devel/glaze \ hyprwayland-scanner>=0.3.10:devel/hyprwayland-scanner \ - wayland-protocols>=1.43:graphics/wayland-protocols + wayland-protocols>=1.41:graphics/wayland-protocols LIB_DEPENDS= libhyprlang.so:devel/hyprlang \ libhyprutils.so:devel/hyprutils \ libinotify.so:devel/libinotify \ @@ -39,14 +36,14 @@ USE_GNOME= cairo pango USE_XORG= pixman xcursor GH_ACCOUNT= hyprwm GH_PROJECT= Hyprland -GH_TUPLE= hyprwm:hyprland-protocols:v0.6.4:hyprland_protocols/subprojects/hyprland-protocols \ +GH_TUPLE= hyprwm:hyprland-protocols:v0.6.2:hyprland_protocols/subprojects/hyprland-protocols \ canihavesomecoffee:udis86:1.7.2-186-g5336633:udis86/subprojects/udis86 CMAKE_OFF= CMAKE_CXX_SCAN_FOR_MODULES # avoid devel/llvm* CMAKE_ON= NO_SYSTEMD LDFLAGS+= -Wl,--as-needed # GL, pango deps # Generated by "make update-hash" for commit_pins in hyprpm.toml -GH_HASH= 9958d297641b5c84dcff93f9039d80a5ad37ab00 +GH_HASH= 29e2e59fdbab8ed2cc23a20e3c6043d5decb5cdc # XXX Drop after FreeBSD 13.4 EOL around 2026-01-31 # https://cgit.freebsd.org/src/commit/?id=af93fea71038 @@ -89,8 +86,6 @@ post-patch: ${WRKSRC}/src/plugins/HookSystem.cpp post-install: -# XXX Cleanup install after scripts/generateShaderIncludes.sh - ${RMDIR} ${STAGEDIR}${PREFIX}/include/${PORTNAME}/src/render/shaders/glsl # Plugin API installs all headers (no private vs. public) @(cd ${STAGEDIR}${PREFIX} && ${FIND} include/${PORTNAME} ! -type d) >>${TMPPLIST} diff --git a/x11-wm/hyprland/distinfo b/x11-wm/hyprland/distinfo index ad2d064e6c3a..72a5c857bff9 100644 --- a/x11-wm/hyprland/distinfo +++ b/x11-wm/hyprland/distinfo @@ -1,11 +1,7 @@ -TIMESTAMP = 1746735318 -SHA256 (hyprwm-Hyprland-v0.49.0_GH0.tar.gz) = bea9d5c7b59fe5461e8caf27c298638b8ae78ad14d7b92fadf6e0373e84c5b68 -SIZE (hyprwm-Hyprland-v0.49.0_GH0.tar.gz) = 48349545 -SHA256 (hyprwm-hyprland-protocols-v0.6.4_GH0.tar.gz) = 0d4f99abc21b04fc126dd754e306bb84cd334131d542ff2e0c172190c6570384 -SIZE (hyprwm-hyprland-protocols-v0.6.4_GH0.tar.gz) = 10447 +TIMESTAMP = 1743178567 +SHA256 (hyprwm-Hyprland-v0.48.1_GH0.tar.gz) = 7c78b5d3249b35318bc49877347c41e855714a6794169bc90755264c0162278e +SIZE (hyprwm-Hyprland-v0.48.1_GH0.tar.gz) = 48325182 +SHA256 (hyprwm-hyprland-protocols-v0.6.2_GH0.tar.gz) = bba082af141599d4342e7b8505401a6e3a32be819d9eb23ce6c90f7407e62c1f +SIZE (hyprwm-hyprland-protocols-v0.6.2_GH0.tar.gz) = 9887 SHA256 (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 69aff959179ff6247b375b92e797221dbd8e078eabbf1366280b0532617e7fb8 SIZE (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 116938 -SHA256 (fcb6f936ea8b.patch) = c5e90b93efd4c2980bcab9f9237bee6b9c3effaee1a40f45133c5f615b669d30 -SIZE (fcb6f936ea8b.patch) = 972 -SHA256 (e44aae0c2064.patch) = e9c0cd1b5d92275d0e415c506f76d19905c113a379e85581b694bf6511cffa93 -SIZE (e44aae0c2064.patch) = 1312 diff --git a/x11-wm/niri/Makefile b/x11-wm/niri/Makefile index adbd7fdd4017..3997d392403c 100644 --- a/x11-wm/niri/Makefile +++ b/x11-wm/niri/Makefile @@ -1,7 +1,6 @@ PORTNAME= niri DISTVERSIONPREFIX= v -DISTVERSION= 25.02 -PORTREVISION= 2 +DISTVERSION= 25.05 CATEGORIES= x11-wm wayland MAINTAINER= jbeich@FreeBSD.org diff --git a/x11-wm/niri/Makefile.crates b/x11-wm/niri/Makefile.crates index e22e4f0801fc..cb69c6dc60ec 100644 --- a/x11-wm/niri/Makefile.crates +++ b/x11-wm/niri/Makefile.crates @@ -1,6 +1,7 @@ CARGO_CRATES= adler2-2.0.0 \ ahash-0.8.11 \ aho-corasick-1.1.3 \ + aliasable-0.1.3 \ allocator-api2-0.2.21 \ android-activity-0.6.0 \ android-properties-0.2.2 \ @@ -10,7 +11,7 @@ CARGO_CRATES= adler2-2.0.0 \ anstyle-parse-0.2.6 \ anstyle-query-1.1.2 \ anstyle-wincon-3.0.7 \ - anyhow-1.0.96 \ + anyhow-1.0.98 \ appendlist-1.4.0 \ approx-0.4.0 \ approx-0.5.1 \ @@ -18,38 +19,37 @@ CARGO_CRATES= adler2-2.0.0 \ as-raw-xcb-connection-1.0.1 \ async-broadcast-0.7.2 \ async-channel-2.3.1 \ - async-executor-1.13.1 \ - async-fs-2.1.2 \ + async-executor-1.13.2 \ async-io-2.4.0 \ async-lock-3.4.0 \ async-process-2.3.0 \ async-recursion-1.1.1 \ async-signal-0.2.10 \ async-task-4.7.1 \ - async-trait-0.1.86 \ + async-trait-0.1.88 \ atomic-0.6.0 \ atomic-waker-1.1.2 \ + atomic_float-1.1.0 \ autocfg-1.4.0 \ base64-0.21.7 \ bindgen-0.69.5 \ bit-set-0.8.0 \ bit-vec-0.8.0 \ bitflags-1.3.2 \ - bitflags-2.8.0 \ + bitflags-2.9.1 \ block2-0.5.1 \ blocking-1.6.1 \ bumpalo-3.17.0 \ - bytemuck-1.21.0 \ - bytemuck_derive-1.8.1 \ - byteorder-1.5.0 \ - bytes-1.10.0 \ + bytemuck-1.23.0 \ + bytemuck_derive-1.9.3 \ + bytes-1.10.1 \ cairo-rs-0.20.7 \ cairo-sys-rs-0.20.7 \ calloop-0.13.0 \ calloop-0.14.2 \ calloop-wayland-source-0.3.0 \ calloop-wayland-source-0.4.0 \ - cc-1.2.14 \ + cc-1.2.20 \ cesu8-1.1.0 \ cexpr-0.6.0 \ cfg-expr-0.15.8 \ @@ -59,14 +59,15 @@ CARGO_CRATES= adler2-2.0.0 \ cgmath-0.18.0 \ chumsky-0.9.3 \ clang-sys-1.8.1 \ - clap-4.5.30 \ - clap_builder-4.5.30 \ - clap_derive-4.5.28 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ + clap_complete-4.5.50 \ + clap_derive-4.5.32 \ clap_lex-0.7.4 \ colorchoice-1.0.3 \ combine-4.6.7 \ concurrent-queue-2.5.0 \ - console-0.15.10 \ + console-0.15.11 \ convert_case-0.6.0 \ cookie-factory-0.3.3 \ core-foundation-0.9.4 \ @@ -91,20 +92,20 @@ CARGO_CRATES= adler2-2.0.0 \ drm-ffi-0.9.0 \ drm-fourcc-2.2.0 \ drm-sys-0.8.0 \ - dyn-clone-1.0.18 \ - either-1.13.0 \ + dyn-clone-1.0.19 \ + either-1.15.0 \ encode_unicode-1.0.0 \ endi-1.1.0 \ enumflags2-0.7.11 \ enumflags2_derive-0.7.11 \ equivalent-1.0.2 \ - errno-0.3.10 \ + errno-0.3.11 \ event-listener-5.4.0 \ - event-listener-strategy-0.5.3 \ + event-listener-strategy-0.5.4 \ fastrand-2.3.0 \ fdeflate-0.3.7 \ field-offset-0.3.6 \ - flate2-1.0.35 \ + flate2-1.1.1 \ fnv-1.0.7 \ foreign-types-0.5.0 \ foreign-types-macros-0.2.3 \ @@ -128,14 +129,14 @@ CARGO_CRATES= adler2-2.0.0 \ gdk4-sys-0.9.6 \ generator-0.8.4 \ gethostname-0.4.3 \ - getrandom-0.2.15 \ - getrandom-0.3.1 \ + getrandom-0.2.16 \ + getrandom-0.3.2 \ gio-0.20.9 \ gio-sys-0.20.9 \ git-version-0.3.9 \ git-version-macro-0.3.9 \ gl_generator-0.14.0 \ - glam-0.30.0 \ + glam-0.30.3 \ glib-0.20.9 \ glib-macros-0.20.7 \ glib-sys-0.20.9 \ @@ -154,32 +155,33 @@ CARGO_CRATES= adler2-2.0.0 \ heck-0.5.0 \ hermit-abi-0.3.9 \ hermit-abi-0.4.0 \ + hermit-abi-0.5.0 \ hex-0.4.3 \ icu_collections-1.5.0 \ icu_locid-1.5.0 \ icu_locid_transform-1.5.0 \ - icu_locid_transform_data-1.5.0 \ + icu_locid_transform_data-1.5.1 \ icu_normalizer-1.5.0 \ - icu_normalizer_data-1.5.0 \ + icu_normalizer_data-1.5.1 \ icu_properties-1.5.1 \ - icu_properties_data-1.5.0 \ + icu_properties_data-1.5.1 \ icu_provider-1.5.0 \ icu_provider_macros-1.5.0 \ idna-1.0.3 \ idna_adapter-1.2.0 \ - indexmap-2.7.1 \ + indexmap-2.9.0 \ input-0.9.1 \ input-sys-1.18.0 \ - insta-1.42.1 \ + insta-1.43.1 \ io-lifetimes-1.0.11 \ - is-terminal-0.4.15 \ + is-terminal-0.4.16 \ is_ci-1.2.0 \ is_terminal_polyfill-1.70.1 \ itertools-0.12.1 \ - itoa-1.0.14 \ + itoa-1.0.15 \ jni-0.21.1 \ jni-sys-0.3.0 \ - jobserver-0.1.32 \ + jobserver-0.1.33 \ js-sys-0.3.77 \ keyframe-1.1.1 \ khronos_api-3.1.0 \ @@ -187,23 +189,23 @@ CARGO_CRATES= adler2-2.0.0 \ knuffel-derive-3.2.0 \ lazy_static-1.5.0 \ lazycell-1.3.0 \ - libadwaita-0.7.1 \ - libadwaita-sys-0.7.1 \ - libc-0.2.169 \ + libadwaita-0.7.2 \ + libadwaita-sys-0.7.2 \ + libc-0.2.172 \ libdisplay-info-0.2.2 \ libdisplay-info-derive-0.1.0 \ libdisplay-info-sys-0.2.2 \ libloading-0.8.6 \ - libm-0.2.11 \ + libm-0.2.13 \ libredox-0.1.3 \ libseat-0.2.3 \ libseat-sys-0.1.9 \ libudev-sys-0.1.4 \ - linked-hash-map-0.5.6 \ linux-raw-sys-0.4.15 \ linux-raw-sys-0.6.5 \ + linux-raw-sys-0.9.4 \ litemap-0.7.4 \ - log-0.4.25 \ + log-0.4.27 \ loom-0.7.2 \ matchers-0.1.0 \ memchr-2.7.4 \ @@ -212,11 +214,12 @@ CARGO_CRATES= adler2-2.0.0 \ miette-5.10.0 \ miette-derive-5.10.0 \ minimal-lexical-0.2.1 \ - miniz_oxide-0.8.4 \ + miniz_oxide-0.8.8 \ ndk-0.9.0 \ ndk-context-0.1.1 \ ndk-sys-0.6.0+11769913 \ nix-0.29.0 \ + nix-0.30.1 \ nom-7.1.3 \ nu-ansi-term-0.46.0 \ num-traits-0.2.19 \ @@ -239,16 +242,16 @@ CARGO_CRATES= adler2-2.0.0 \ objc2-ui-kit-0.2.2 \ objc2-uniform-type-identifiers-0.2.2 \ objc2-user-notifications-0.2.2 \ - once_cell-1.20.3 \ + once_cell-1.21.3 \ option-ext-0.2.0 \ orbclient-0.3.48 \ ordered-float-5.0.0 \ ordered-stream-0.2.0 \ overload-0.1.1 \ owo-colors-3.5.0 \ - pango-0.20.9 \ + pango-0.20.10 \ pango-sys-0.20.9 \ - pangocairo-0.20.7 \ + pangocairo-0.20.10 \ pangocairo-sys-0.20.7 \ parking-2.2.1 \ paste-1.0.15 \ @@ -257,39 +260,43 @@ CARGO_CRATES= adler2-2.0.0 \ phf_generator-0.11.3 \ phf_macros-0.11.3 \ phf_shared-0.11.3 \ - pin-project-1.1.9 \ - pin-project-internal-1.1.9 \ + pin-project-1.1.10 \ + pin-project-internal-1.1.10 \ pin-project-lite-0.2.16 \ pin-utils-0.1.0 \ piper-0.2.4 \ pixman-0.2.1 \ pixman-sys-0.1.0 \ - pkg-config-0.3.31 \ + pkg-config-0.3.32 \ png-0.17.16 \ polling-3.7.4 \ - portable-atomic-1.10.0 \ - ppv-lite86-0.2.20 \ + portable-atomic-1.11.0 \ + ppv-lite86-0.2.21 \ pretty_assertions-1.4.1 \ - proc-macro-crate-3.2.0 \ + proc-macro-crate-3.3.0 \ proc-macro-error-1.0.4 \ proc-macro-error-attr-1.0.4 \ - proc-macro2-1.0.93 \ + proc-macro2-1.0.95 \ profiling-1.0.16 \ profiling-procmacros-1.0.16 \ proptest-1.6.0 \ proptest-derive-0.5.1 \ quick-error-1.2.3 \ - quick-xml-0.37.2 \ - quote-1.0.38 \ + quick-xml-0.37.5 \ + quote-1.0.40 \ + r-efi-5.2.0 \ rand-0.8.5 \ + rand-0.9.1 \ rand_chacha-0.3.1 \ + rand_chacha-0.9.0 \ rand_core-0.6.4 \ + rand_core-0.9.3 \ rand_xorshift-0.3.0 \ raw-window-handle-0.6.2 \ rayon-1.10.0 \ rayon-core-1.12.1 \ redox_syscall-0.4.1 \ - redox_syscall-0.5.8 \ + redox_syscall-0.5.11 \ redox_users-0.5.0 \ regex-1.11.1 \ regex-automata-0.1.10 \ @@ -299,29 +306,30 @@ CARGO_CRATES= adler2-2.0.0 \ rustc-hash-1.1.0 \ rustc_version-0.4.1 \ rustix-0.38.44 \ - rustversion-1.0.19 \ + rustix-1.0.5 \ + rustversion-1.0.20 \ rusty-fork-0.3.0 \ - ryu-1.0.19 \ + ryu-1.0.20 \ same-file-1.0.6 \ - schemars-0.8.21 \ - schemars_derive-0.8.21 \ + schemars-0.8.22 \ + schemars_derive-0.8.22 \ scoped-tls-1.0.1 \ sd-notify-0.4.5 \ - semver-1.0.25 \ - serde-1.0.218 \ - serde_derive-1.0.218 \ + semver-1.0.26 \ + serde-1.0.219 \ + serde_derive-1.0.219 \ serde_derive_internals-0.29.1 \ - serde_json-1.0.139 \ - serde_repr-0.1.19 \ + serde_json-1.0.140 \ + serde_repr-0.1.20 \ serde_spanned-0.6.8 \ sharded-slab-0.1.7 \ shlex-1.3.0 \ - signal-hook-registry-1.4.2 \ + signal-hook-registry-1.4.5 \ simd-adler32-0.3.7 \ similar-2.7.0 \ siphasher-1.0.1 \ slab-0.4.9 \ - smallvec-1.14.0 \ + smallvec-1.15.0 \ smawk-0.3.2 \ smithay-client-toolkit-0.19.2 \ smol_str-0.2.2 \ @@ -332,23 +340,23 @@ CARGO_CRATES= adler2-2.0.0 \ supports-hyperlinks-2.1.0 \ supports-unicode-2.1.0 \ syn-1.0.109 \ - syn-2.0.98 \ + syn-2.0.101 \ synstructure-0.13.1 \ system-deps-6.2.2 \ system-deps-7.0.3 \ target-lexicon-0.12.16 \ - tempfile-3.17.1 \ + tempfile-3.19.1 \ terminal_size-0.1.17 \ textwrap-0.15.2 \ thiserror-1.0.69 \ - thiserror-2.0.11 \ + thiserror-2.0.12 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.11 \ + thiserror-impl-2.0.12 \ thread_local-1.1.8 \ tinystr-0.7.6 \ - toml-0.8.20 \ - toml_datetime-0.6.8 \ - toml_edit-0.22.24 \ + toml-0.8.22 \ + toml_datetime-0.6.9 \ + toml_edit-0.22.26 \ tracing-0.1.41 \ tracing-attributes-0.1.28 \ tracing-core-0.1.33 \ @@ -360,7 +368,7 @@ CARGO_CRATES= adler2-2.0.0 \ udev-0.9.3 \ uds_windows-1.1.0 \ unarray-0.1.4 \ - unicode-ident-1.0.17 \ + unicode-ident-1.0.18 \ unicode-linebreak-0.1.5 \ unicode-segmentation-1.12.0 \ unicode-width-0.1.14 \ @@ -374,24 +382,24 @@ CARGO_CRATES= adler2-2.0.0 \ wait-timeout-0.2.1 \ walkdir-2.5.0 \ wasi-0.11.0+wasi-snapshot-preview1 \ - wasi-0.13.3+wasi-0.2.2 \ + wasi-0.14.2+wasi-0.2.4 \ wasm-bindgen-0.2.100 \ wasm-bindgen-backend-0.2.100 \ wasm-bindgen-futures-0.4.50 \ wasm-bindgen-macro-0.2.100 \ wasm-bindgen-macro-support-0.2.100 \ wasm-bindgen-shared-0.2.100 \ - wayland-backend-0.3.8 \ - wayland-client-0.31.8 \ + wayland-backend-0.3.10 \ + wayland-client-0.31.10 \ wayland-csd-frame-0.3.0 \ - wayland-cursor-0.31.8 \ - wayland-egl-0.32.5 \ - wayland-protocols-0.32.6 \ - wayland-protocols-misc-0.3.6 \ - wayland-protocols-plasma-0.3.6 \ - wayland-protocols-wlr-0.3.6 \ + wayland-cursor-0.31.9 \ + wayland-egl-0.32.6 \ + wayland-protocols-0.32.7 \ + wayland-protocols-misc-0.3.7 \ + wayland-protocols-plasma-0.3.7 \ + wayland-protocols-wlr-0.3.7 \ wayland-scanner-0.31.6 \ - wayland-server-0.31.7 \ + wayland-server-0.31.8 \ wayland-sys-0.31.6 \ web-sys-0.3.77 \ web-time-1.1.0 \ @@ -435,36 +443,37 @@ CARGO_CRATES= adler2-2.0.0 \ windows_x86_64_msvc-0.48.5 \ windows_x86_64_msvc-0.52.6 \ winit-0.30.9 \ - winnow-0.7.3 \ - wit-bindgen-rt-0.33.0 \ + winnow-0.7.7 \ + wit-bindgen-rt-0.39.0 \ write16-1.0.0 \ writeable-0.5.5 \ x11-dl-2.21.0 \ x11rb-0.13.1 \ x11rb-protocol-0.13.1 \ xcursor-0.3.8 \ - xdg-home-1.3.0 \ xkbcommon-0.8.0 \ xkbcommon-dl-0.4.2 \ xkeysym-0.2.1 \ - xml-rs-0.8.25 \ + xml-rs-0.8.26 \ xshell-0.2.7 \ xshell-macros-0.2.7 \ yansi-1.0.1 \ yansi-term-0.1.2 \ yoke-0.7.5 \ yoke-derive-0.7.5 \ - zbus-5.5.0 \ - zbus_macros-5.5.0 \ + zbus-5.7.0 \ + zbus_macros-5.7.0 \ zbus_names-4.2.0 \ zerocopy-0.7.35 \ + zerocopy-0.8.25 \ zerocopy-derive-0.7.35 \ + zerocopy-derive-0.8.25 \ zerofrom-0.1.5 \ - zerofrom-derive-0.1.5 \ + zerofrom-derive-0.1.6 \ zerovec-0.10.4 \ zerovec-derive-0.10.3 \ - zvariant-5.4.0 \ - zvariant_derive-5.4.0 \ + zvariant-5.5.3 \ + zvariant_derive-5.5.3 \ zvariant_utils-3.2.0 \ - smithay,smithay-drm-extras@git+https://github.com/Smithay/smithay.git\#0cd3345c59f7cb139521f267956a1a4e33248393 \ + smithay,smithay-drm-extras@git+https://github.com/Smithay/smithay.git\#c1f13a6b9605c9f7009122a7b2b34f210255dac3 \ libspa,libspa-sys,pipewire,pipewire-sys@git+https://gitlab.freedesktop.org/pipewire/pipewire-rs.git\#fd3d8f7861a29c2eeaa4c393402e013578bb36d9 diff --git a/x11-wm/niri/distinfo b/x11-wm/niri/distinfo index c9caf3d777fb..3c695109668e 100644 --- a/x11-wm/niri/distinfo +++ b/x11-wm/niri/distinfo @@ -1,10 +1,12 @@ -TIMESTAMP = 1740117926 +TIMESTAMP = 1747486745 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 SIZE (rust/crates/adler2-2.0.0.crate) = 13529 SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011 SIZE (rust/crates/ahash-0.8.11.crate) = 43607 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311 +SHA256 (rust/crates/aliasable-0.1.3.crate) = 250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd +SIZE (rust/crates/aliasable-0.1.3.crate) = 6169 SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923 SIZE (rust/crates/allocator-api2-0.2.21.crate) = 63622 SHA256 (rust/crates/android-activity-0.6.0.crate) = ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046 @@ -23,8 +25,8 @@ SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d6789 SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969 SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400 -SHA256 (rust/crates/anyhow-1.0.96.crate) = 6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4 -SIZE (rust/crates/anyhow-1.0.96.crate) = 52168 +SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487 +SIZE (rust/crates/anyhow-1.0.98.crate) = 53334 SHA256 (rust/crates/appendlist-1.4.0.crate) = e149dc73cd30538307e7ffa2acd3d2221148eaeed4871f246657b1c3eaa1cbd2 SIZE (rust/crates/appendlist-1.4.0.crate) = 7252 SHA256 (rust/crates/approx-0.4.0.crate) = 3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278 @@ -39,10 +41,8 @@ SHA256 (rust/crates/async-broadcast-0.7.2.crate) = 435a87a52755b8f27fcf321ac4f04 SIZE (rust/crates/async-broadcast-0.7.2.crate) = 22746 SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a SIZE (rust/crates/async-channel-2.3.1.crate) = 14576 -SHA256 (rust/crates/async-executor-1.13.1.crate) = 30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec -SIZE (rust/crates/async-executor-1.13.1.crate) = 27991 -SHA256 (rust/crates/async-fs-2.1.2.crate) = ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a -SIZE (rust/crates/async-fs-2.1.2.crate) = 17071 +SHA256 (rust/crates/async-executor-1.13.2.crate) = bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa +SIZE (rust/crates/async-executor-1.13.2.crate) = 28392 SHA256 (rust/crates/async-io-2.4.0.crate) = 43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059 SIZE (rust/crates/async-io-2.4.0.crate) = 49252 SHA256 (rust/crates/async-lock-3.4.0.crate) = ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18 @@ -55,12 +55,14 @@ SHA256 (rust/crates/async-signal-0.2.10.crate) = 637e00349800c0bdf8bfc21ebbc0b65 SIZE (rust/crates/async-signal-0.2.10.crate) = 16970 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.86.crate) = 644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d -SIZE (rust/crates/async-trait-0.1.86.crate) = 31946 +SHA256 (rust/crates/async-trait-0.1.88.crate) = e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5 +SIZE (rust/crates/async-trait-0.1.88.crate) = 32084 SHA256 (rust/crates/atomic-0.6.0.crate) = 8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994 SIZE (rust/crates/atomic-0.6.0.crate) = 12919 SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0 SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422 +SHA256 (rust/crates/atomic_float-1.1.0.crate) = 628d228f918ac3b82fe590352cc719d30664a0c13ca3a60266fe02c7132d480a +SIZE (rust/crates/atomic_float-1.1.0.crate) = 16232 SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567 @@ -73,22 +75,20 @@ SHA256 (rust/crates/bit-vec-0.8.0.crate) = 5e764a1d40d510daf35e07be9eb06e7577090 SIZE (rust/crates/bit-vec-0.8.0.crate) = 24132 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 -SHA256 (rust/crates/bitflags-2.8.0.crate) = 8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36 -SIZE (rust/crates/bitflags-2.8.0.crate) = 47482 +SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967 +SIZE (rust/crates/bitflags-2.9.1.crate) = 47913 SHA256 (rust/crates/block2-0.5.1.crate) = 2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f SIZE (rust/crates/block2-0.5.1.crate) = 24191 SHA256 (rust/crates/blocking-1.6.1.crate) = 703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea SIZE (rust/crates/blocking-1.6.1.crate) = 17788 SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 -SHA256 (rust/crates/bytemuck-1.21.0.crate) = ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3 -SIZE (rust/crates/bytemuck-1.21.0.crate) = 51553 -SHA256 (rust/crates/bytemuck_derive-1.8.1.crate) = 3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a -SIZE (rust/crates/bytemuck_derive-1.8.1.crate) = 23100 -SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b -SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 -SHA256 (rust/crates/bytes-1.10.0.crate) = f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9 -SIZE (rust/crates/bytes-1.10.0.crate) = 76656 +SHA256 (rust/crates/bytemuck-1.23.0.crate) = 9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c +SIZE (rust/crates/bytemuck-1.23.0.crate) = 52534 +SHA256 (rust/crates/bytemuck_derive-1.9.3.crate) = 7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1 +SIZE (rust/crates/bytemuck_derive-1.9.3.crate) = 23555 +SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a +SIZE (rust/crates/bytes-1.10.1.crate) = 76779 SHA256 (rust/crates/cairo-rs-0.20.7.crate) = ae50b5510d86cf96ac2370e66d8dc960882f3df179d6a5a1e52bd94a1416c0f7 SIZE (rust/crates/cairo-rs-0.20.7.crate) = 52722 SHA256 (rust/crates/cairo-sys-rs-0.20.7.crate) = f18b6bb8e43c7eb0f2aac7976afe0c61b6f5fc2ab7bc4c139537ea56c92290df @@ -101,8 +101,8 @@ SHA256 (rust/crates/calloop-wayland-source-0.3.0.crate) = 95a66a987056935f7efce4 SIZE (rust/crates/calloop-wayland-source-0.3.0.crate) = 11300 SHA256 (rust/crates/calloop-wayland-source-0.4.0.crate) = 876a7a1dbbe026a55ef47a500b123af5a9a0914520f061d467914cf21be95daf SIZE (rust/crates/calloop-wayland-source-0.4.0.crate) = 10904 -SHA256 (rust/crates/cc-1.2.14.crate) = 0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9 -SIZE (rust/crates/cc-1.2.14.crate) = 103164 +SHA256 (rust/crates/cc-1.2.20.crate) = 04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a +SIZE (rust/crates/cc-1.2.20.crate) = 105986 SHA256 (rust/crates/cesu8-1.1.0.crate) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c SIZE (rust/crates/cesu8-1.1.0.crate) = 10555 SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766 @@ -121,12 +121,14 @@ SHA256 (rust/crates/chumsky-0.9.3.crate) = 8eebd66744a15ded14960ab4ccdbfb51ad3b8 SIZE (rust/crates/chumsky-0.9.3.crate) = 75112 SHA256 (rust/crates/clang-sys-1.8.1.crate) = 0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4 SIZE (rust/crates/clang-sys-1.8.1.crate) = 44009 -SHA256 (rust/crates/clap-4.5.30.crate) = 92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d -SIZE (rust/crates/clap-4.5.30.crate) = 56081 -SHA256 (rust/crates/clap_builder-4.5.30.crate) = a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c -SIZE (rust/crates/clap_builder-4.5.30.crate) = 168274 -SHA256 (rust/crates/clap_derive-4.5.28.crate) = bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed -SIZE (rust/crates/clap_derive-4.5.28.crate) = 33428 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 +SHA256 (rust/crates/clap_complete-4.5.50.crate) = c91d3baa3bcd889d60e6ef28874126a0b384fd225ab83aa6d8a801c519194ce1 +SIZE (rust/crates/clap_complete-4.5.50.crate) = 48292 +SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 +SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990 @@ -135,8 +137,8 @@ SHA256 (rust/crates/combine-4.6.7.crate) = ba5a308b75df32fe02788e748662718f03fde SIZE (rust/crates/combine-4.6.7.crate) = 134808 SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973 SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654 -SHA256 (rust/crates/console-0.15.10.crate) = ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b -SIZE (rust/crates/console-0.15.10.crate) = 36449 +SHA256 (rust/crates/console-0.15.11.crate) = 054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8 +SIZE (rust/crates/console-0.15.11.crate) = 37822 SHA256 (rust/crates/convert_case-0.6.0.crate) = ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca SIZE (rust/crates/convert_case-0.6.0.crate) = 18675 SHA256 (rust/crates/cookie-factory-0.3.3.crate) = 9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2 @@ -185,10 +187,10 @@ SHA256 (rust/crates/drm-fourcc-2.2.0.crate) = 0aafbcdb8afc29c1a7ee5fbe53b5d62f45 SIZE (rust/crates/drm-fourcc-2.2.0.crate) = 12192 SHA256 (rust/crates/drm-sys-0.8.0.crate) = bafb66c8dbc944d69e15cfcc661df7e703beffbaec8bd63151368b06c5f9858c SIZE (rust/crates/drm-sys-0.8.0.crate) = 10472 -SHA256 (rust/crates/dyn-clone-1.0.18.crate) = feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35 -SIZE (rust/crates/dyn-clone-1.0.18.crate) = 12871 -SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0 -SIZE (rust/crates/either-1.13.0.crate) = 19169 +SHA256 (rust/crates/dyn-clone-1.0.19.crate) = 1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005 +SIZE (rust/crates/dyn-clone-1.0.19.crate) = 12896 +SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719 +SIZE (rust/crates/either-1.15.0.crate) = 20114 SHA256 (rust/crates/encode_unicode-1.0.0.crate) = 34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0 SIZE (rust/crates/encode_unicode-1.0.0.crate) = 56986 SHA256 (rust/crates/endi-1.1.0.crate) = a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf @@ -199,20 +201,20 @@ SHA256 (rust/crates/enumflags2_derive-0.7.11.crate) = fc4caf64a58d7a6d65ab00639b SIZE (rust/crates/enumflags2_derive-0.7.11.crate) = 8524 SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 -SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d -SIZE (rust/crates/errno-0.3.10.crate) = 11824 +SHA256 (rust/crates/errno-0.3.11.crate) = 976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e +SIZE (rust/crates/errno-0.3.11.crate) = 12048 SHA256 (rust/crates/event-listener-5.4.0.crate) = 3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae SIZE (rust/crates/event-listener-5.4.0.crate) = 43452 -SHA256 (rust/crates/event-listener-strategy-0.5.3.crate) = 3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2 -SIZE (rust/crates/event-listener-strategy-0.5.3.crate) = 10920 +SHA256 (rust/crates/event-listener-strategy-0.5.4.crate) = 8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93 +SIZE (rust/crates/event-listener-strategy-0.5.4.crate) = 16179 SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 SHA256 (rust/crates/fdeflate-0.3.7.crate) = 1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c SIZE (rust/crates/fdeflate-0.3.7.crate) = 27188 SHA256 (rust/crates/field-offset-0.3.6.crate) = 38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f SIZE (rust/crates/field-offset-0.3.6.crate) = 10032 -SHA256 (rust/crates/flate2-1.0.35.crate) = c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c -SIZE (rust/crates/flate2-1.0.35.crate) = 109188 +SHA256 (rust/crates/flate2-1.1.1.crate) = 7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece +SIZE (rust/crates/flate2-1.1.1.crate) = 77224 SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 SIZE (rust/crates/fnv-1.0.7.crate) = 11266 SHA256 (rust/crates/foreign-types-0.5.0.crate) = d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965 @@ -259,10 +261,10 @@ SHA256 (rust/crates/generator-0.8.4.crate) = cc6bd114ceda131d3b1d665eba35788690a SIZE (rust/crates/generator-0.8.4.crate) = 34400 SHA256 (rust/crates/gethostname-0.4.3.crate) = 0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818 SIZE (rust/crates/gethostname-0.4.3.crate) = 9336 -SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 -SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 -SHA256 (rust/crates/getrandom-0.3.1.crate) = 43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8 -SIZE (rust/crates/getrandom-0.3.1.crate) = 42449 +SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592 +SIZE (rust/crates/getrandom-0.2.16.crate) = 40163 +SHA256 (rust/crates/getrandom-0.3.2.crate) = 73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0 +SIZE (rust/crates/getrandom-0.3.2.crate) = 49140 SHA256 (rust/crates/gio-0.20.9.crate) = a4f00c70f8029d84ea7572dd0e1aaa79e5329667b4c17f329d79ffb1e6277487 SIZE (rust/crates/gio-0.20.9.crate) = 220512 SHA256 (rust/crates/gio-sys-0.20.9.crate) = 160eb5250a26998c3e1b54e6a3d4ea15c6c7762a6062a19a7b63eff6e2b33f9e @@ -273,8 +275,8 @@ SHA256 (rust/crates/git-version-macro-0.3.9.crate) = 53010ccb100b96a67bc32c0175f SIZE (rust/crates/git-version-macro-0.3.9.crate) = 5622 SHA256 (rust/crates/gl_generator-0.14.0.crate) = 1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d SIZE (rust/crates/gl_generator-0.14.0.crate) = 22330 -SHA256 (rust/crates/glam-0.30.0.crate) = 17fcdf9683c406c2fc4d124afd29c0d595e22210d633cbdb8695ba9935ab1dc6 -SIZE (rust/crates/glam-0.30.0.crate) = 589372 +SHA256 (rust/crates/glam-0.30.3.crate) = 6b46b9ca4690308844c644e7c634d68792467260e051c8543e0c7871662b3ba7 +SIZE (rust/crates/glam-0.30.3.crate) = 687669 SHA256 (rust/crates/glib-0.20.9.crate) = 707b819af8059ee5395a2de9f2317d87a53dbad8846a2f089f0bb44703f37686 SIZE (rust/crates/glib-0.20.9.crate) = 293359 SHA256 (rust/crates/glib-macros-0.20.7.crate) = 715601f8f02e71baef9c1f94a657a9a77c192aea6097cf9ae7e5e177cd8cde68 @@ -311,6 +313,8 @@ SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066a SIZE (rust/crates/hermit-abi-0.3.9.crate) = 16165 SHA256 (rust/crates/hermit-abi-0.4.0.crate) = fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc SIZE (rust/crates/hermit-abi-0.4.0.crate) = 16310 +SHA256 (rust/crates/hermit-abi-0.5.0.crate) = fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e +SIZE (rust/crates/hermit-abi-0.5.0.crate) = 17480 SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 SIZE (rust/crates/hex-0.4.3.crate) = 13299 SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526 @@ -319,16 +323,16 @@ SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131 SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094 -SHA256 (rust/crates/icu_locid_transform_data-1.5.0.crate) = fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e -SIZE (rust/crates/icu_locid_transform_data-1.5.0.crate) = 44727 +SHA256 (rust/crates/icu_locid_transform_data-1.5.1.crate) = 7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d +SIZE (rust/crates/icu_locid_transform_data-1.5.1.crate) = 42937 SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113 -SHA256 (rust/crates/icu_normalizer_data-1.5.0.crate) = f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516 -SIZE (rust/crates/icu_normalizer_data-1.5.0.crate) = 50561 +SHA256 (rust/crates/icu_normalizer_data-1.5.1.crate) = c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7 +SIZE (rust/crates/icu_normalizer_data-1.5.1.crate) = 50737 SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5 SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479 -SHA256 (rust/crates/icu_properties_data-1.5.0.crate) = 67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569 -SIZE (rust/crates/icu_properties_data-1.5.0.crate) = 227993 +SHA256 (rust/crates/icu_properties_data-1.5.1.crate) = 85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2 +SIZE (rust/crates/icu_properties_data-1.5.1.crate) = 229231 SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9 SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722 SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6 @@ -337,32 +341,32 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f SIZE (rust/crates/idna-1.0.3.crate) = 142515 SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 -SHA256 (rust/crates/indexmap-2.7.1.crate) = 8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652 -SIZE (rust/crates/indexmap-2.7.1.crate) = 88644 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 SHA256 (rust/crates/input-0.9.1.crate) = fbdc09524a91f9cacd26f16734ff63d7dc650daffadd2b6f84d17a285bd875a9 SIZE (rust/crates/input-0.9.1.crate) = 40734 SHA256 (rust/crates/input-sys-1.18.0.crate) = bd4f5b4d1c00331c5245163aacfe5f20be75b564c7112d45893d4ae038119eb0 SIZE (rust/crates/input-sys-1.18.0.crate) = 365567 -SHA256 (rust/crates/insta-1.42.1.crate) = 71c1b125e30d93896b365e156c33dadfffab45ee8400afcbba4752f59de08a86 -SIZE (rust/crates/insta-1.42.1.crate) = 99945 +SHA256 (rust/crates/insta-1.43.1.crate) = 154934ea70c58054b556dd430b99a98c2a7ff5309ac9891597e339b5c28f4371 +SIZE (rust/crates/insta-1.43.1.crate) = 101047 SHA256 (rust/crates/io-lifetimes-1.0.11.crate) = eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2 SIZE (rust/crates/io-lifetimes-1.0.11.crate) = 37346 -SHA256 (rust/crates/is-terminal-0.4.15.crate) = e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37 -SIZE (rust/crates/is-terminal-0.4.15.crate) = 7770 +SHA256 (rust/crates/is-terminal-0.4.16.crate) = e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9 +SIZE (rust/crates/is-terminal-0.4.16.crate) = 7811 SHA256 (rust/crates/is_ci-1.2.0.crate) = 7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45 SIZE (rust/crates/is_ci-1.2.0.crate) = 4521 SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569 SIZE (rust/crates/itertools-0.12.1.crate) = 137761 -SHA256 (rust/crates/itoa-1.0.14.crate) = d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674 -SIZE (rust/crates/itoa-1.0.14.crate) = 11210 +SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c +SIZE (rust/crates/itoa-1.0.15.crate) = 11231 SHA256 (rust/crates/jni-0.21.1.crate) = 1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97 SIZE (rust/crates/jni-0.21.1.crate) = 105028 SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130 SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232 -SHA256 (rust/crates/jobserver-0.1.32.crate) = 48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0 -SIZE (rust/crates/jobserver-0.1.32.crate) = 27549 +SHA256 (rust/crates/jobserver-0.1.33.crate) = 38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a +SIZE (rust/crates/jobserver-0.1.33.crate) = 29136 SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f SIZE (rust/crates/js-sys-0.3.77.crate) = 55538 SHA256 (rust/crates/keyframe-1.1.1.crate) = 60708bf7981518d09095d6f5673ce5cf6a64f1e0d9708b554f670e6d9d2bd9a9 @@ -377,12 +381,12 @@ SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591 SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025 SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55 SIZE (rust/crates/lazycell-1.3.0.crate) = 12502 -SHA256 (rust/crates/libadwaita-0.7.1.crate) = 8611ee9fb85e7606c362b513afcaf5b59853f79e4d98caaaf581d99465014247 -SIZE (rust/crates/libadwaita-0.7.1.crate) = 125670 -SHA256 (rust/crates/libadwaita-sys-0.7.1.crate) = b099a223560118d4d4fa04b6d23f3ea5b7171fe1d83dfb7e6b45b54cdfc83af9 -SIZE (rust/crates/libadwaita-sys-0.7.1.crate) = 31122 -SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a -SIZE (rust/crates/libc-0.2.169.crate) = 757901 +SHA256 (rust/crates/libadwaita-0.7.2.crate) = 500135d29c16aabf67baafd3e7741d48e8b8978ca98bac39e589165c8dc78191 +SIZE (rust/crates/libadwaita-0.7.2.crate) = 125693 +SHA256 (rust/crates/libadwaita-sys-0.7.2.crate) = 6680988058c2558baf3f548a370e4e78da3bf7f08469daa822ac414842c912db +SIZE (rust/crates/libadwaita-sys-0.7.2.crate) = 35416 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 SHA256 (rust/crates/libdisplay-info-0.2.2.crate) = 4210cfe93a0dc37228e08105e3c13171e5af816f7bd39e00e3d3adcf2b487a2b SIZE (rust/crates/libdisplay-info-0.2.2.crate) = 34625 SHA256 (rust/crates/libdisplay-info-derive-0.1.0.crate) = ea1cd31036b732a546d845f9485c56b1b606b5e476b0821c680dd66c8cd6fcee @@ -391,8 +395,8 @@ SHA256 (rust/crates/libdisplay-info-sys-0.2.2.crate) = 7f4f9264ece23c37ffa023ae6 SIZE (rust/crates/libdisplay-info-sys-0.2.2.crate) = 26200 SHA256 (rust/crates/libloading-0.8.6.crate) = fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34 SIZE (rust/crates/libloading-0.8.6.crate) = 28922 -SHA256 (rust/crates/libm-0.2.11.crate) = 8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa -SIZE (rust/crates/libm-0.2.11.crate) = 111477 +SHA256 (rust/crates/libm-0.2.13.crate) = c9627da5196e5d8ed0b0495e61e518847578da83483c37288316d9b2e03a7f72 +SIZE (rust/crates/libm-0.2.13.crate) = 148927 SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d SIZE (rust/crates/libredox-0.1.3.crate) = 6068 SHA256 (rust/crates/libseat-0.2.3.crate) = c23a245bbd5790c690791c4fe6eefafe4c75851226288a71cb657601135aa00c @@ -401,16 +405,16 @@ SHA256 (rust/crates/libseat-sys-0.1.9.crate) = 134621e50557e8698a96ccff3eadbc6f4 SIZE (rust/crates/libseat-sys-0.1.9.crate) = 2029 SHA256 (rust/crates/libudev-sys-0.1.4.crate) = 3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324 SIZE (rust/crates/libudev-sys-0.1.4.crate) = 6177 -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.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898 SHA256 (rust/crates/linux-raw-sys-0.6.5.crate) = 2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7 SIZE (rust/crates/linux-raw-sys-0.6.5.crate) = 1892120 +SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12 +SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088 SHA256 (rust/crates/litemap-0.7.4.crate) = 4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104 SIZE (rust/crates/litemap-0.7.4.crate) = 28257 -SHA256 (rust/crates/log-0.4.25.crate) = 04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f -SIZE (rust/crates/log-0.4.25.crate) = 44876 +SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 +SIZE (rust/crates/log-0.4.27.crate) = 48120 SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca SIZE (rust/crates/loom-0.7.2.crate) = 73989 SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558 @@ -427,8 +431,8 @@ SHA256 (rust/crates/miette-derive-5.10.0.crate) = 49e7bc1560b95a3c4a25d03de42fe7 SIZE (rust/crates/miette-derive-5.10.0.crate) = 16062 SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841 -SHA256 (rust/crates/miniz_oxide-0.8.4.crate) = b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b -SIZE (rust/crates/miniz_oxide-0.8.4.crate) = 66701 +SHA256 (rust/crates/miniz_oxide-0.8.8.crate) = 3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a +SIZE (rust/crates/miniz_oxide-0.8.8.crate) = 67065 SHA256 (rust/crates/ndk-0.9.0.crate) = c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4 SIZE (rust/crates/ndk-0.9.0.crate) = 84865 SHA256 (rust/crates/ndk-context-0.1.1.crate) = 27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b @@ -437,6 +441,8 @@ SHA256 (rust/crates/ndk-sys-0.6.0+11769913.crate) = ee6cda3051665f1fb8d9e08fc35c SIZE (rust/crates/ndk-sys-0.6.0+11769913.crate) = 329984 SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46 SIZE (rust/crates/nix-0.29.0.crate) = 318248 +SHA256 (rust/crates/nix-0.30.1.crate) = 74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6 +SIZE (rust/crates/nix-0.30.1.crate) = 342015 SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a SIZE (rust/crates/nom-7.1.3.crate) = 117570 SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84 @@ -481,8 +487,8 @@ SHA256 (rust/crates/objc2-uniform-type-identifiers-0.2.2.crate) = 44fa5f9748dbfe SIZE (rust/crates/objc2-uniform-type-identifiers-0.2.2.crate) = 6017 SHA256 (rust/crates/objc2-user-notifications-0.2.2.crate) = 76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3 SIZE (rust/crates/objc2-user-notifications-0.2.2.crate) = 9600 -SHA256 (rust/crates/once_cell-1.20.3.crate) = 945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e -SIZE (rust/crates/once_cell-1.20.3.crate) = 33456 +SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d +SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d SIZE (rust/crates/option-ext-0.2.0.crate) = 7345 SHA256 (rust/crates/orbclient-0.3.48.crate) = ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43 @@ -495,12 +501,12 @@ SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b3 SIZE (rust/crates/overload-0.1.1.crate) = 24439 SHA256 (rust/crates/owo-colors-3.5.0.crate) = c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f SIZE (rust/crates/owo-colors-3.5.0.crate) = 30310 -SHA256 (rust/crates/pango-0.20.9.crate) = 6b1f5dc1b8cf9bc08bfc0843a04ee0fa2e78f1e1fa4b126844a383af4f25f0ec -SIZE (rust/crates/pango-0.20.9.crate) = 49656 +SHA256 (rust/crates/pango-0.20.10.crate) = d88d37c161f2848f0d9382597f0168484c9335ac800995f3956641abb7002938 +SIZE (rust/crates/pango-0.20.10.crate) = 49735 SHA256 (rust/crates/pango-sys-0.20.9.crate) = 0dbb9b751673bd8fe49eb78620547973a1e719ed431372122b20abd12445bab5 SIZE (rust/crates/pango-sys-0.20.9.crate) = 28371 -SHA256 (rust/crates/pangocairo-0.20.7.crate) = 4690509a2fea2a6552a0ef8aa3e5f790c1365365ee0712afa1aedb39af3997b6 -SIZE (rust/crates/pangocairo-0.20.7.crate) = 5632 +SHA256 (rust/crates/pangocairo-0.20.10.crate) = 58890dc451db9964ac2d8874f903a4370a4b3932aa5281ff0c8d9810937ad84f +SIZE (rust/crates/pangocairo-0.20.10.crate) = 9465 SHA256 (rust/crates/pangocairo-sys-0.20.7.crate) = 5be6ac24147911a6a46783922fc288cf02f67570bc0d360e563b5b26aead6767 SIZE (rust/crates/pangocairo-sys-0.20.7.crate) = 3378 SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba @@ -517,10 +523,10 @@ SHA256 (rust/crates/phf_macros-0.11.3.crate) = f84ac04429c13a7ff43785d75ad27569f SIZE (rust/crates/phf_macros-0.11.3.crate) = 18436 SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5 SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199 -SHA256 (rust/crates/pin-project-1.1.9.crate) = dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d -SIZE (rust/crates/pin-project-1.1.9.crate) = 56299 -SHA256 (rust/crates/pin-project-internal-1.1.9.crate) = f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67 -SIZE (rust/crates/pin-project-internal-1.1.9.crate) = 29160 +SHA256 (rust/crates/pin-project-1.1.10.crate) = 677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a +SIZE (rust/crates/pin-project-1.1.10.crate) = 56348 +SHA256 (rust/crates/pin-project-internal-1.1.10.crate) = 6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861 +SIZE (rust/crates/pin-project-internal-1.1.10.crate) = 29162 SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504 SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 @@ -531,26 +537,26 @@ SHA256 (rust/crates/pixman-0.2.1.crate) = cea217d496c19ac0a8e502b37078e1f683d163 SIZE (rust/crates/pixman-0.2.1.crate) = 24719 SHA256 (rust/crates/pixman-sys-0.1.0.crate) = a1a0483e89e81d7915defe83c51f23f6800594d64f6f4a21253ce87fd8444ada SIZE (rust/crates/pixman-sys-0.1.0.crate) = 6044 -SHA256 (rust/crates/pkg-config-0.3.31.crate) = 953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2 -SIZE (rust/crates/pkg-config-0.3.31.crate) = 20880 +SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c +SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370 SHA256 (rust/crates/png-0.17.16.crate) = 82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526 SIZE (rust/crates/png-0.17.16.crate) = 117975 SHA256 (rust/crates/polling-3.7.4.crate) = a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f SIZE (rust/crates/polling-3.7.4.crate) = 58239 -SHA256 (rust/crates/portable-atomic-1.10.0.crate) = 280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6 -SIZE (rust/crates/portable-atomic-1.10.0.crate) = 174760 -SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04 -SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478 +SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e +SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 +SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9 +SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522 SHA256 (rust/crates/pretty_assertions-1.4.1.crate) = 3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d SIZE (rust/crates/pretty_assertions-1.4.1.crate) = 78952 -SHA256 (rust/crates/proc-macro-crate-3.2.0.crate) = 8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b -SIZE (rust/crates/proc-macro-crate-3.2.0.crate) = 11164 +SHA256 (rust/crates/proc-macro-crate-3.3.0.crate) = edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35 +SIZE (rust/crates/proc-macro-crate-3.3.0.crate) = 12432 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.93.crate) = 60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99 -SIZE (rust/crates/proc-macro2-1.0.93.crate) = 52388 +SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 +SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 SHA256 (rust/crates/profiling-1.0.16.crate) = afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d SIZE (rust/crates/profiling-1.0.16.crate) = 12588 SHA256 (rust/crates/profiling-procmacros-1.0.16.crate) = a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30 @@ -561,16 +567,24 @@ SHA256 (rust/crates/proptest-derive-0.5.1.crate) = 4ee1c9ac207483d5e7db4940700de SIZE (rust/crates/proptest-derive-0.5.1.crate) = 60865 SHA256 (rust/crates/quick-error-1.2.3.crate) = a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0 SIZE (rust/crates/quick-error-1.2.3.crate) = 15066 -SHA256 (rust/crates/quick-xml-0.37.2.crate) = 165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003 -SIZE (rust/crates/quick-xml-0.37.2.crate) = 188017 -SHA256 (rust/crates/quote-1.0.38.crate) = 0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc -SIZE (rust/crates/quote-1.0.38.crate) = 31252 +SHA256 (rust/crates/quick-xml-0.37.5.crate) = 331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb +SIZE (rust/crates/quick-xml-0.37.5.crate) = 190481 +SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d +SIZE (rust/crates/quote-1.0.40.crate) = 31063 +SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5 +SIZE (rust/crates/r-efi-5.2.0.crate) = 64764 SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand-0.9.1.crate) = 9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97 +SIZE (rust/crates/rand-0.9.1.crate) = 97986 SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb +SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258 SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 +SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38 +SIZE (rust/crates/rand_core-0.9.3.crate) = 24543 SHA256 (rust/crates/rand_xorshift-0.3.0.crate) = d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f SIZE (rust/crates/rand_xorshift-0.3.0.crate) = 9121 SHA256 (rust/crates/raw-window-handle-0.6.2.crate) = 20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539 @@ -581,8 +595,8 @@ SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caa 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_syscall-0.5.8.crate) = 03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834 -SIZE (rust/crates/redox_syscall-0.5.8.crate) = 26319 +SHA256 (rust/crates/redox_syscall-0.5.11.crate) = d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3 +SIZE (rust/crates/redox_syscall-0.5.11.crate) = 30300 SHA256 (rust/crates/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b SIZE (rust/crates/redox_users-0.5.0.crate) = 15586 SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 @@ -601,42 +615,44 @@ SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063 SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245 SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154 SIZE (rust/crates/rustix-0.38.44.crate) = 379347 -SHA256 (rust/crates/rustversion-1.0.19.crate) = f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4 -SIZE (rust/crates/rustversion-1.0.19.crate) = 20616 +SHA256 (rust/crates/rustix-1.0.5.crate) = d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf +SIZE (rust/crates/rustix-1.0.5.crate) = 414160 +SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2 +SIZE (rust/crates/rustversion-1.0.20.crate) = 20666 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.19.crate) = 6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd -SIZE (rust/crates/ryu-1.0.19.crate) = 48770 +SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f +SIZE (rust/crates/ryu-1.0.20.crate) = 48738 SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 SIZE (rust/crates/same-file-1.0.6.crate) = 10183 -SHA256 (rust/crates/schemars-0.8.21.crate) = 09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92 -SIZE (rust/crates/schemars-0.8.21.crate) = 58475 -SHA256 (rust/crates/schemars_derive-0.8.21.crate) = b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e -SIZE (rust/crates/schemars_derive-0.8.21.crate) = 18703 +SHA256 (rust/crates/schemars-0.8.22.crate) = 3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615 +SIZE (rust/crates/schemars-0.8.22.crate) = 59214 +SHA256 (rust/crates/schemars_derive-0.8.22.crate) = 32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d +SIZE (rust/crates/schemars_derive-0.8.22.crate) = 19542 SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294 SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202 SHA256 (rust/crates/sd-notify-0.4.5.crate) = b943eadf71d8b69e661330cb0e2656e31040acf21ee7708e2c238a0ec6af2bf4 SIZE (rust/crates/sd-notify-0.4.5.crate) = 12582 -SHA256 (rust/crates/semver-1.0.25.crate) = f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03 -SIZE (rust/crates/semver-1.0.25.crate) = 31291 -SHA256 (rust/crates/serde-1.0.218.crate) = e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60 -SIZE (rust/crates/serde-1.0.218.crate) = 78968 -SHA256 (rust/crates/serde_derive-1.0.218.crate) = f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b -SIZE (rust/crates/serde_derive-1.0.218.crate) = 57782 +SHA256 (rust/crates/semver-1.0.26.crate) = 56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0 +SIZE (rust/crates/semver-1.0.26.crate) = 31303 +SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6 +SIZE (rust/crates/serde-1.0.219.crate) = 78983 +SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 +SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 SHA256 (rust/crates/serde_derive_internals-0.29.1.crate) = 18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711 SIZE (rust/crates/serde_derive_internals-0.29.1.crate) = 26189 -SHA256 (rust/crates/serde_json-1.0.139.crate) = 44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6 -SIZE (rust/crates/serde_json-1.0.139.crate) = 154839 -SHA256 (rust/crates/serde_repr-0.1.19.crate) = 6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9 -SIZE (rust/crates/serde_repr-0.1.19.crate) = 9997 +SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 +SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 +SHA256 (rust/crates/serde_repr-0.1.20.crate) = 175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c +SIZE (rust/crates/serde_repr-0.1.20.crate) = 12627 SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1 SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330 SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6 SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (rust/crates/shlex-1.3.0.crate) = 18713 -SHA256 (rust/crates/signal-hook-registry-1.4.2.crate) = a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1 -SIZE (rust/crates/signal-hook-registry-1.4.2.crate) = 18064 +SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410 +SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004 SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086 SHA256 (rust/crates/similar-2.7.0.crate) = bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa @@ -645,8 +661,8 @@ SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42 SIZE (rust/crates/siphasher-1.0.1.crate) = 10351 SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67 SIZE (rust/crates/slab-0.4.9.crate) = 17108 -SHA256 (rust/crates/smallvec-1.14.0.crate) = 7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd -SIZE (rust/crates/smallvec-1.14.0.crate) = 35561 +SHA256 (rust/crates/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9 +SIZE (rust/crates/smallvec-1.15.0.crate) = 38113 SHA256 (rust/crates/smawk-0.3.2.crate) = b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c SIZE (rust/crates/smawk-0.3.2.crate) = 13831 SHA256 (rust/crates/smithay-client-toolkit-0.19.2.crate) = 3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016 @@ -667,8 +683,8 @@ SHA256 (rust/crates/supports-unicode-2.1.0.crate) = f850c19edd184a205e883199a261 SIZE (rust/crates/supports-unicode-2.1.0.crate) = 7698 SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 SIZE (rust/crates/syn-1.0.109.crate) = 237611 -SHA256 (rust/crates/syn-2.0.98.crate) = 36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1 -SIZE (rust/crates/syn-2.0.98.crate) = 297807 +SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf +SIZE (rust/crates/syn-2.0.101.crate) = 299250 SHA256 (rust/crates/synstructure-0.13.1.crate) = c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971 SIZE (rust/crates/synstructure-0.13.1.crate) = 18327 SHA256 (rust/crates/system-deps-6.2.2.crate) = a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349 @@ -677,30 +693,30 @@ SHA256 (rust/crates/system-deps-7.0.3.crate) = 66d23aaf9f331227789a99e8de4c91bf4 SIZE (rust/crates/system-deps-7.0.3.crate) = 26313 SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1 SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488 -SHA256 (rust/crates/tempfile-3.17.1.crate) = 22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230 -SIZE (rust/crates/tempfile-3.17.1.crate) = 39240 +SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf +SIZE (rust/crates/tempfile-3.19.1.crate) = 39634 SHA256 (rust/crates/terminal_size-0.1.17.crate) = 633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df SIZE (rust/crates/terminal_size-0.1.17.crate) = 9141 SHA256 (rust/crates/textwrap-0.15.2.crate) = b7b3e525a49ec206798b40326a44121291b530c963cfb01018f63e135bac543d SIZE (rust/crates/textwrap-0.15.2.crate) = 53191 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.11.crate) = d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc -SIZE (rust/crates/thiserror-2.0.11.crate) = 28648 +SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 +SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 -SHA256 (rust/crates/thiserror-impl-2.0.11.crate) = 26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2 -SIZE (rust/crates/thiserror-impl-2.0.11.crate) = 21067 +SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d +SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c SIZE (rust/crates/thread_local-1.1.8.crate) = 13962 SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f SIZE (rust/crates/tinystr-0.7.6.crate) = 16971 -SHA256 (rust/crates/toml-0.8.20.crate) = cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148 -SIZE (rust/crates/toml-0.8.20.crate) = 51095 -SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41 -SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028 -SHA256 (rust/crates/toml_edit-0.22.24.crate) = 17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474 -SIZE (rust/crates/toml_edit-0.22.24.crate) = 106399 +SHA256 (rust/crates/toml-0.8.22.crate) = 05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae +SIZE (rust/crates/toml-0.8.22.crate) = 76224 +SHA256 (rust/crates/toml_datetime-0.6.9.crate) = 3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3 +SIZE (rust/crates/toml_datetime-0.6.9.crate) = 12622 +SHA256 (rust/crates/toml_edit-0.22.26.crate) = 310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e +SIZE (rust/crates/toml_edit-0.22.26.crate) = 121714 SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0 SIZE (rust/crates/tracing-0.1.41.crate) = 82448 SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d @@ -723,8 +739,8 @@ SHA256 (rust/crates/uds_windows-1.1.0.crate) = 89daebc3e6fd160ac4aa9fc8b3bf71e1f SIZE (rust/crates/uds_windows-1.1.0.crate) = 17040 SHA256 (rust/crates/unarray-0.1.4.crate) = eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94 SIZE (rust/crates/unarray-0.1.4.crate) = 12895 -SHA256 (rust/crates/unicode-ident-1.0.17.crate) = 00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe -SIZE (rust/crates/unicode-ident-1.0.17.crate) = 47704 +SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 +SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 SHA256 (rust/crates/unicode-linebreak-0.1.5.crate) = 3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f SIZE (rust/crates/unicode-linebreak-0.1.5.crate) = 15324 SHA256 (rust/crates/unicode-segmentation-1.12.0.crate) = f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493 @@ -751,8 +767,8 @@ SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06 SIZE (rust/crates/walkdir-2.5.0.crate) = 23951 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/wasi-0.13.3+wasi-0.2.2.crate) = 26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2 -SIZE (rust/crates/wasi-0.13.3+wasi-0.2.2.crate) = 136754 +SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3 +SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921 SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5 SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288 SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6 @@ -765,28 +781,28 @@ SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689f SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243 SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570 -SHA256 (rust/crates/wayland-backend-0.3.8.crate) = b7208998eaa3870dad37ec8836979581506e0c5c64c20c9e79e9d2a10d6f47bf -SIZE (rust/crates/wayland-backend-0.3.8.crate) = 75317 -SHA256 (rust/crates/wayland-client-0.31.8.crate) = c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f -SIZE (rust/crates/wayland-client-0.31.8.crate) = 64449 +SHA256 (rust/crates/wayland-backend-0.3.10.crate) = fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121 +SIZE (rust/crates/wayland-backend-0.3.10.crate) = 75632 +SHA256 (rust/crates/wayland-client-0.31.10.crate) = 978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61 +SIZE (rust/crates/wayland-client-0.31.10.crate) = 64777 SHA256 (rust/crates/wayland-csd-frame-0.3.0.crate) = 625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e SIZE (rust/crates/wayland-csd-frame-0.3.0.crate) = 5696 -SHA256 (rust/crates/wayland-cursor-0.31.8.crate) = a93029cbb6650748881a00e4922b076092a6a08c11e7fbdb923f064b23968c5d -SIZE (rust/crates/wayland-cursor-0.31.8.crate) = 9731 -SHA256 (rust/crates/wayland-egl-0.32.5.crate) = 504838241a10e271f48ffd429ac4033e0ac468b399fe7c2e2840f5c3a82d9902 -SIZE (rust/crates/wayland-egl-0.32.5.crate) = 5947 -SHA256 (rust/crates/wayland-protocols-0.32.6.crate) = 0781cf46869b37e36928f7b432273c0995aa8aed9552c556fb18754420541efc -SIZE (rust/crates/wayland-protocols-0.32.6.crate) = 187909 -SHA256 (rust/crates/wayland-protocols-misc-0.3.6.crate) = feb7ee1810026d1bb15d47086d03a7e5c68651c707e305ba1e8cc796fcbf5a54 -SIZE (rust/crates/wayland-protocols-misc-0.3.6.crate) = 16147 -SHA256 (rust/crates/wayland-protocols-plasma-0.3.6.crate) = 7ccaacc76703fefd6763022ac565b590fcade92202492381c95b2edfdf7d46b3 -SIZE (rust/crates/wayland-protocols-plasma-0.3.6.crate) = 62935 -SHA256 (rust/crates/wayland-protocols-wlr-0.3.6.crate) = 248a02e6f595aad796561fa82d25601bd2c8c3b145b1c7453fc8f94c1a58f8b2 -SIZE (rust/crates/wayland-protocols-wlr-0.3.6.crate) = 28621 +SHA256 (rust/crates/wayland-cursor-0.31.9.crate) = 28d6ec438d7c38bde05a10e80c3e3a1212d85f941be9fc9f80c86e6f5f498252 +SIZE (rust/crates/wayland-cursor-0.31.9.crate) = 9719 +SHA256 (rust/crates/wayland-egl-0.32.6.crate) = f08ffcf1bcbd432b7b4a5aadf9564a897c427b3f62b72557ee60fa6fc72ef4a2 +SIZE (rust/crates/wayland-egl-0.32.6.crate) = 5957 +SHA256 (rust/crates/wayland-protocols-0.32.7.crate) = ba8de1f9dda5e589d08848af3ad4cd694bbfd059c3eb3c6d89c7120e8c0efa71 +SIZE (rust/crates/wayland-protocols-0.32.7.crate) = 210105 +SHA256 (rust/crates/wayland-protocols-misc-0.3.7.crate) = 4557954e564c9b1888289458186f8a04b8fb65ef2ce5369fdf7383cb6e3c3f0a +SIZE (rust/crates/wayland-protocols-misc-0.3.7.crate) = 16141 +SHA256 (rust/crates/wayland-protocols-plasma-0.3.7.crate) = 87e10c27e3290310d7e0d3221bc4e945d9b296b249577af2eb595726b546a3f8 +SIZE (rust/crates/wayland-protocols-plasma-0.3.7.crate) = 69099 +SHA256 (rust/crates/wayland-protocols-wlr-0.3.7.crate) = 9f3334ee752fbe3c228adfda339a9e7a03e0ba65a78806d8d464b69928cf4ef2 +SIZE (rust/crates/wayland-protocols-wlr-0.3.7.crate) = 28612 SHA256 (rust/crates/wayland-scanner-0.31.6.crate) = 896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484 SIZE (rust/crates/wayland-scanner-0.31.6.crate) = 36365 -SHA256 (rust/crates/wayland-server-0.31.7.crate) = 97fabd7ed68cff8e7657b8a8a1fbe90cb4a3f0c30d90da4bf179a7a23008a4cb -SIZE (rust/crates/wayland-server-0.31.7.crate) = 55413 +SHA256 (rust/crates/wayland-server-0.31.8.crate) = 0eec95c2a85da4e984c0a20bc30a017dd29de15059b56647c35397fb30bf7018 +SIZE (rust/crates/wayland-server-0.31.8.crate) = 55410 SHA256 (rust/crates/wayland-sys-0.31.6.crate) = dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615 SIZE (rust/crates/wayland-sys-0.31.6.crate) = 10049 SHA256 (rust/crates/web-sys-0.3.77.crate) = 33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2 @@ -873,10 +889,10 @@ SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270 SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 SHA256 (rust/crates/winit-0.30.9.crate) = a809eacf18c8eca8b6635091543f02a5a06ddf3dad846398795460e6e0ae3cc0 SIZE (rust/crates/winit-0.30.9.crate) = 596439 -SHA256 (rust/crates/winnow-0.7.3.crate) = 0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1 -SIZE (rust/crates/winnow-0.7.3.crate) = 171602 -SHA256 (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c -SIZE (rust/crates/wit-bindgen-rt-0.33.0.crate) = 3357 +SHA256 (rust/crates/winnow-0.7.7.crate) = 6cb8234a863ea0e8cd7284fcdd4f145233eb00fee02bbdd9861aec44e6477bc5 +SIZE (rust/crates/winnow-0.7.7.crate) = 173993 +SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 +SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 SIZE (rust/crates/write16-1.0.0.crate) = 7218 SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 @@ -889,16 +905,14 @@ SHA256 (rust/crates/x11rb-protocol-0.13.1.crate) = ec107c4503ea0b4a98ef47356329a SIZE (rust/crates/x11rb-protocol-0.13.1.crate) = 508522 SHA256 (rust/crates/xcursor-0.3.8.crate) = 0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61 SIZE (rust/crates/xcursor-0.3.8.crate) = 7191 -SHA256 (rust/crates/xdg-home-1.3.0.crate) = ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6 -SIZE (rust/crates/xdg-home-1.3.0.crate) = 4000 SHA256 (rust/crates/xkbcommon-0.8.0.crate) = 8d66ca9352cbd4eecbbc40871d8a11b4ac8107cfc528a6e14d7c19c69d0e1ac9 SIZE (rust/crates/xkbcommon-0.8.0.crate) = 59098 SHA256 (rust/crates/xkbcommon-dl-0.4.2.crate) = d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5 SIZE (rust/crates/xkbcommon-dl-0.4.2.crate) = 5879 SHA256 (rust/crates/xkeysym-0.2.1.crate) = b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56 SIZE (rust/crates/xkeysym-0.2.1.crate) = 103129 -SHA256 (rust/crates/xml-rs-0.8.25.crate) = c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4 -SIZE (rust/crates/xml-rs-0.8.25.crate) = 54947 +SHA256 (rust/crates/xml-rs-0.8.26.crate) = a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda +SIZE (rust/crates/xml-rs-0.8.26.crate) = 55115 SHA256 (rust/crates/xshell-0.2.7.crate) = 9e7290c623014758632efe00737145b6867b66292c42167f2ec381eb566a373d SIZE (rust/crates/xshell-0.2.7.crate) = 24653 SHA256 (rust/crates/xshell-macros-0.2.7.crate) = 32ac00cd3f8ec9c1d33fb3e7958a82df6989c42d747bd326c822b1d625283547 @@ -911,33 +925,37 @@ SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194 SIZE (rust/crates/yoke-0.7.5.crate) = 29673 SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154 SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525 -SHA256 (rust/crates/zbus-5.5.0.crate) = 59c333f648ea1b647bc95dc1d34807c8e25ed7a6feff3394034dc4776054b236 -SIZE (rust/crates/zbus-5.5.0.crate) = 162421 -SHA256 (rust/crates/zbus_macros-5.5.0.crate) = f325ad10eb0d0a3eb060203494c3b7ec3162a01a59db75d2deee100339709fc0 -SIZE (rust/crates/zbus_macros-5.5.0.crate) = 36444 +SHA256 (rust/crates/zbus-5.7.0.crate) = 88232b74ba057a0c85472ec1bae8a17569960be17da2d5e5ad30d5efe7ea6719 +SIZE (rust/crates/zbus-5.7.0.crate) = 163884 +SHA256 (rust/crates/zbus_macros-5.7.0.crate) = 6969c06899233334676e60da1675740539cf034ee472a6c5b5c54e50a0a554c9 +SIZE (rust/crates/zbus_macros-5.7.0.crate) = 36564 SHA256 (rust/crates/zbus_names-4.2.0.crate) = 7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97 SIZE (rust/crates/zbus_names-4.2.0.crate) = 17015 SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645 +SHA256 (rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb +SIZE (rust/crates/zerocopy-0.8.25.crate) = 252714 SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829 +SHA256 (rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef +SIZE (rust/crates/zerocopy-derive-0.8.25.crate) = 87671 SHA256 (rust/crates/zerofrom-0.1.5.crate) = cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e SIZE (rust/crates/zerofrom-0.1.5.crate) = 5091 -SHA256 (rust/crates/zerofrom-derive-0.1.5.crate) = 595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808 -SIZE (rust/crates/zerofrom-derive-0.1.5.crate) = 8285 +SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502 +SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305 SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079 SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 -SHA256 (rust/crates/zvariant-5.4.0.crate) = b2df9ee044893fcffbdc25de30546edef3e32341466811ca18421e3cd6c5a3ac -SIZE (rust/crates/zvariant-5.4.0.crate) = 86448 -SHA256 (rust/crates/zvariant_derive-5.4.0.crate) = 74170caa85b8b84cc4935f2d56a57c7a15ea6185ccdd7eadb57e6edd90f94b2f -SIZE (rust/crates/zvariant_derive-5.4.0.crate) = 13411 +SHA256 (rust/crates/zvariant-5.5.3.crate) = 9d30786f75e393ee63a21de4f9074d4c038d52c5b1bb4471f955db249f9dffb1 +SIZE (rust/crates/zvariant-5.5.3.crate) = 88043 +SHA256 (rust/crates/zvariant_derive-5.5.3.crate) = 75fda702cd42d735ccd48117b1630432219c0e9616bf6cb0f8350844ee4d9580 +SIZE (rust/crates/zvariant_derive-5.5.3.crate) = 14236 SHA256 (rust/crates/zvariant_utils-3.2.0.crate) = e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34 SIZE (rust/crates/zvariant_utils-3.2.0.crate) = 14779 -SHA256 (Smithay-smithay-0cd3345c59f7cb139521f267956a1a4e33248393_GH0.tar.gz) = 04ec88816fa146db276279198d885f53271f64d1492df6fa34293c16fc46da20 -SIZE (Smithay-smithay-0cd3345c59f7cb139521f267956a1a4e33248393_GH0.tar.gz) = 769463 +SHA256 (Smithay-smithay-c1f13a6b9605c9f7009122a7b2b34f210255dac3_GH0.tar.gz) = ae778ba31a241095971a91102918611caac3b729c3c2e0ddf8e82255bf071156 +SIZE (Smithay-smithay-c1f13a6b9605c9f7009122a7b2b34f210255dac3_GH0.tar.gz) = 779801 SHA256 (pipewire-pipewire-rs-fd3d8f7861a29c2eeaa4c393402e013578bb36d9_GL0.tar.gz) = 47d31480a6e05fdadd8408dca1cf5db35f334e4b7ceef4fe55be73666f574de9 SIZE (pipewire-pipewire-rs-fd3d8f7861a29c2eeaa4c393402e013578bb36d9_GL0.tar.gz) = 114172 -SHA256 (YaLTeR-niri-v25.02_GH0.tar.gz) = 602b1f38c6ab01b19e95ac2ef86d7c91dfa9b212437d62fb40def9664c1419d6 -SIZE (YaLTeR-niri-v25.02_GH0.tar.gz) = 666937 +SHA256 (YaLTeR-niri-v25.05_GH0.tar.gz) = deb067a8af2febb29bdcf72b98a2e654e3e2a199e7f3b3d622436983071ebe32 +SIZE (YaLTeR-niri-v25.05_GH0.tar.gz) = 715490 diff --git a/x11-wm/sway/pkg-message b/x11-wm/sway/pkg-message index 15b9e51475e8..6a2347801f07 100644 --- a/x11-wm/sway/pkg-message +++ b/x11-wm/sway/pkg-message @@ -3,9 +3,6 @@ message: <<EOM Notes: - sway(1) can use mac_priority(4) to avoid stutter during high load -Known issues: -- Broken on amdgpu since sway 1.11. Switch to swayfx for now. - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286311 EOM } ] diff --git a/x11/controllermap/Makefile b/x11/controllermap/Makefile index ef2fdaa89363..0c3997109b64 100644 --- a/x11/controllermap/Makefile +++ b/x11/controllermap/Makefile @@ -1,5 +1,5 @@ PORTNAME= controllermap -DISTVERSION= 2.32.2 +DISTVERSION= 2.32.6 CATEGORIES= x11 MASTER_SITES= https://www.libsdl.org/release/ DISTNAME= SDL2-${DISTVERSION} diff --git a/x11/controllermap/distinfo b/x11/controllermap/distinfo index 3600535fd86e..97147148db62 100644 --- a/x11/controllermap/distinfo +++ b/x11/controllermap/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1741178610 -SHA256 (SDL2-2.32.2.tar.gz) = c5f30c427fd8107ee4a400c84d4447dd211352512eaf0b6e89cc6a50a2821922 -SIZE (SDL2-2.32.2.tar.gz) = 7627192 +TIMESTAMP = 1746129373 +SHA256 (SDL2-2.32.6.tar.gz) = 6a7a40d6c2e00016791815e1a9f4042809210bdf10cc78d2c75b45c4f52f93ad +SIZE (SDL2-2.32.6.tar.gz) = 7627447 diff --git a/x11/pixman/Makefile b/x11/pixman/Makefile index ce937e01ad47..1c0f289b7f33 100644 --- a/x11/pixman/Makefile +++ b/x11/pixman/Makefile @@ -1,5 +1,5 @@ PORTNAME= pixman -DISTVERSION= 0.44.2 +DISTVERSION= 0.46.0 CATEGORIES= x11 MASTER_SITES= https://cairographics.org/releases/ diff --git a/x11/pixman/distinfo b/x11/pixman/distinfo index 4a392d376f5c..9a833dcfc049 100644 --- a/x11/pixman/distinfo +++ b/x11/pixman/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1734968983 -SHA256 (pixman-0.44.2.tar.xz) = 50baf820dde0c5ff9714d03d2df4970f606a3d3b1024f5404c0398a9821cc4b0 -SIZE (pixman-0.44.2.tar.xz) = 650012 +TIMESTAMP = 1746387514 +SHA256 (pixman-0.46.0.tar.xz) = d2eab57e1ce79de991f8ceb3fcd726a6978b970382c8ac8c8f112b61ceaa9167 +SIZE (pixman-0.46.0.tar.xz) = 660268 diff --git a/x11/pixman/pkg-plist b/x11/pixman/pkg-plist index 5a7c24902b4b..766e0afda7d0 100644 --- a/x11/pixman/pkg-plist +++ b/x11/pixman/pkg-plist @@ -2,5 +2,5 @@ include/pixman-1/pixman-version.h include/pixman-1/pixman.h lib/libpixman-1.so lib/libpixman-1.so.0 -lib/libpixman-1.so.0.44.2 +lib/libpixman-1.so.0.46.0 libdata/pkgconfig/pixman-1.pc diff --git a/x11/plasma-wayland-protocols/Makefile b/x11/plasma-wayland-protocols/Makefile index 2f7f1ded3686..aaa112709b5f 100644 --- a/x11/plasma-wayland-protocols/Makefile +++ b/x11/plasma-wayland-protocols/Makefile @@ -1,5 +1,5 @@ PORTNAME= plasma-wayland-protocols -DISTVERSION= 1.17.0 +DISTVERSION= 1.18.0 CATEGORIES= x11 kde MASTER_SITES= KDE/stable/${PORTNAME}/ diff --git a/x11/plasma-wayland-protocols/distinfo b/x11/plasma-wayland-protocols/distinfo index 691a19695a6d..a9c0792905d8 100644 --- a/x11/plasma-wayland-protocols/distinfo +++ b/x11/plasma-wayland-protocols/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742670011 -SHA256 (plasma-wayland-protocols-1.17.0.tar.xz) = cbd44b440e6b7cc76b650da93a870897e5a94adf7882b19fdf8fe222d4f74a4f -SIZE (plasma-wayland-protocols-1.17.0.tar.xz) = 47212 +TIMESTAMP = 1747300866 +SHA256 (plasma-wayland-protocols-1.18.0.tar.xz) = 2567472671ad5d989f88b51baef9dd59353a5e7c3f2ed7e6b989755cb9004233 +SIZE (plasma-wayland-protocols-1.18.0.tar.xz) = 47596 diff --git a/x11/rio/Makefile b/x11/rio/Makefile index 1f2b28c79970..80a6830e68aa 100644 --- a/x11/rio/Makefile +++ b/x11/rio/Makefile @@ -1,6 +1,6 @@ PORTNAME= rio DISTVERSIONPREFIX= v -DISTVERSION= 0.2.15 +DISTVERSION= 0.2.16 CATEGORIES= x11 wayland PKGNAMESUFFIX= -terminal-emulator diff --git a/x11/rio/distinfo b/x11/rio/distinfo index ecd76e3b0b3c..05e2a72b79fc 100644 --- a/x11/rio/distinfo +++ b/x11/rio/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1746804881 +TIMESTAMP = 1747368088 SHA256 (rust/crates/ab_glyph-0.2.29.crate) = ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0 SIZE (rust/crates/ab_glyph-0.2.29.crate) = 20011 SHA256 (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046 @@ -953,5 +953,5 @@ SHA256 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7 SIZE (rust/crates/zune-core-0.4.12.crate) = 17355 SHA256 (rust/crates/zune-jpeg-0.4.14.crate) = 99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028 SIZE (rust/crates/zune-jpeg-0.4.14.crate) = 63388 -SHA256 (raphamorim-rio-v0.2.15_GH0.tar.gz) = cd5f32e546b8b49554d6a341421a445e431ff3e347648aea2c4120d9c81dd82d -SIZE (raphamorim-rio-v0.2.15_GH0.tar.gz) = 85508446 +SHA256 (raphamorim-rio-v0.2.16_GH0.tar.gz) = 0645113a1677d4a15320b1a8705abd905ab05286113f44b3eada9a142849de20 +SIZE (raphamorim-rio-v0.2.16_GH0.tar.gz) = 86418731 diff --git a/x11/swayimg/Makefile b/x11/swayimg/Makefile index f3368cb4f87d..c3bde074fbca 100644 --- a/x11/swayimg/Makefile +++ b/x11/swayimg/Makefile @@ -1,6 +1,6 @@ PORTNAME= swayimg DISTVERSIONPREFIX= v -DISTVERSION= 3.9 +DISTVERSION= 4.0 CATEGORIES= x11 wayland MAINTAINER= jbeich@FreeBSD.org @@ -10,9 +10,8 @@ WWW= https://github.com/artemsen/swayimg LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= wayland-protocols>0:graphics/wayland-protocols -LIB_DEPENDS= libjson-c.so:devel/json-c \ - libinotify.so:devel/libinotify \ +BUILD_DEPENDS= wayland-protocols>=1.35:graphics/wayland-protocols +LIB_DEPENDS= libinotify.so:devel/libinotify \ libwayland-client.so:graphics/wayland \ libfreetype.so:print/freetype2 \ libfontconfig.so:x11-fonts/fontconfig \ @@ -39,8 +38,10 @@ PLIST_FILES= bin/${PORTNAME} \ LIB_DEPENDS+= libepoll-shim.so:devel/libepoll-shim .endif -OPTIONS_DEFINE= AVIF BASH GIF HEIF JPEG JXL LIBEXIF LIBRSVG2 OPENEXR PNG RAW SIXEL TIFF WEBP ZSH -OPTIONS_DEFAULT=AVIF BASH GIF HEIF JPEG JXL LIBEXIF LIBRSVG2 OPENEXR PNG RAW SIXEL TIFF WEBP ZSH +OPTIONS_DEFINE= AVIF BASH GIF HEIF JPEG JSON JXL LIBEXIF LIBRSVG2 \ + OPENEXR PNG RAW SIXEL TIFF WEBP ZSH +OPTIONS_DEFAULT=AVIF BASH GIF HEIF JPEG JSON JXL LIBEXIF LIBRSVG2 \ + OPENEXR PNG RAW SIXEL TIFF WEBP ZSH OPTIONS_EXCLUDE=${LIBRSVG2_DEFAULT:Mlegacy:C/.+/LIBRSVG2/} AVIF_LIB_DEPENDS= libavif.so:graphics/libavif @@ -59,6 +60,9 @@ HEIF_MESON_ENABLED= heif JPEG_USES= jpeg JPEG_MESON_ENABLED= jpeg +JSON_LIB_DEPENDS= libjson-c.so:devel/json-c +JSON_MESON_ENABLED= sway + JXL_LIB_DEPENDS= libjxl.so:graphics/libjxl JXL_MESON_ENABLED= jxl diff --git a/x11/swayimg/distinfo b/x11/swayimg/distinfo index 4b8763c63397..de119a334be1 100644 --- a/x11/swayimg/distinfo +++ b/x11/swayimg/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1741944463 -SHA256 (artemsen-swayimg-v3.9_GH0.tar.gz) = d21a7ca9ef4d21cf852889932999e9edd4ecf2c587321120f5b4d6147580e7cb -SIZE (artemsen-swayimg-v3.9_GH0.tar.gz) = 756909 +TIMESTAMP = 1747458819 +SHA256 (artemsen-swayimg-v4.0_GH0.tar.gz) = e94eb66b028c57869b92a88935a7d959cae62943f7169dc9eeb9b309803a339f +SIZE (artemsen-swayimg-v4.0_GH0.tar.gz) = 768532 |