summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--UPDATING17
-rw-r--r--biology/lamarc/Makefile6
-rw-r--r--biology/lamarc/files/patch-src_control_chainmanager.cpp11
-rw-r--r--biology/lamarc/files/patch-src_tools_mathx.cpp11
-rw-r--r--biology/lamarc/files/patch-src_tools_stringx.h10
-rw-r--r--biology/lamarc/files/patch-src_tree_arrangervec.cpp11
-rw-r--r--biology/lamarc/files/patch-src_tree_collector.cpp11
-rw-r--r--biology/lamarc/files/patch-src_tree_prior.cpp17
-rw-r--r--databases/mongodb60/Makefile6
-rw-r--r--deskutils/xfce4-generic-slider/Makefile19
-rw-r--r--deskutils/xfce4-generic-slider/distinfo6
-rw-r--r--deskutils/xfce4-generic-slider/pkg-plist1
-rw-r--r--devel/fatal/Makefile2
-rw-r--r--devel/fatal/distinfo6
-rw-r--r--devel/fbthrift/Makefile2
-rw-r--r--devel/fbthrift/distinfo6
-rw-r--r--devel/fbthrift/pkg-plist1
-rw-r--r--devel/folly/Makefile2
-rw-r--r--devel/folly/distinfo6
-rw-r--r--devel/fsx/Makefile3
-rw-r--r--devel/fsx/Makefile.crates74
-rw-r--r--devel/fsx/distinfo154
-rw-r--r--devel/opengrok/Makefile2
-rw-r--r--devel/opengrok/distinfo6
-rw-r--r--devel/opengrok/pkg-plist36
-rw-r--r--devel/p5-Devel-Cover/Makefile2
-rw-r--r--devel/p5-Devel-Cover/distinfo6
-rw-r--r--devel/websvn/Makefile2
-rw-r--r--devel/websvn/distinfo6
-rw-r--r--games/xfce4-eyes-plugin/Makefile15
-rw-r--r--games/xfce4-eyes-plugin/distinfo6
-rw-r--r--games/xfce4-eyes-plugin/pkg-plist8
-rw-r--r--math/xfce4-calculator-plugin/Makefile19
-rw-r--r--math/xfce4-calculator-plugin/distinfo6
-rw-r--r--math/xfce4-calculator-plugin/pkg-plist2
-rw-r--r--net/fb303/Makefile2
-rw-r--r--net/fb303/distinfo6
-rw-r--r--net/mvfst/Makefile2
-rw-r--r--net/mvfst/distinfo6
-rw-r--r--net/mvfst/pkg-plist2
-rw-r--r--net/wangle/Makefile2
-rw-r--r--net/wangle/distinfo6
-rw-r--r--security/Makefile1
-rw-r--r--security/fizz/Makefile2
-rw-r--r--security/fizz/distinfo6
-rw-r--r--security/openvpn-auth-oauth2/Makefile27
-rw-r--r--security/openvpn-auth-oauth2/distinfo5
-rw-r--r--security/openvpn-auth-oauth2/files/openvpn_auth_oauth2.in148
-rw-r--r--security/openvpn-auth-oauth2/pkg-descr15
-rw-r--r--security/openvpn-auth-oauth2/pkg-plist3
-rw-r--r--sysutils/sysinfo/Makefile1
-rw-r--r--sysutils/sysinfo/pkg-plist2
-rw-r--r--sysutils/xfce4-battery-plugin/Makefile17
-rw-r--r--sysutils/xfce4-battery-plugin/distinfo6
-rw-r--r--sysutils/xfce4-cpugraph-plugin/Makefile19
-rw-r--r--sysutils/xfce4-cpugraph-plugin/distinfo6
-rw-r--r--sysutils/xfce4-fsguard-plugin/Makefile19
-rw-r--r--sysutils/xfce4-fsguard-plugin/distinfo6
-rw-r--r--textproc/p5-Text-FindIndent/Makefile7
-rw-r--r--textproc/p5-Text-FindIndent/distinfo5
-rw-r--r--www/chromium/Makefile1
-rw-r--r--www/chromium/files/patch-build_rust_allocator_BUILD.gn109
-rw-r--r--www/chromium/files/patch-build_rust_allocator_DEPS12
-rw-r--r--www/chromium/files/patch-build_rust_allocator_alias.cc25
-rw-r--r--www/chromium/files/patch-build_rust_allocator_alias.h40
-rw-r--r--www/chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc20
-rw-r--r--www/chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.h24
-rw-r--r--www/chromium/files/patch-build_rust_allocator_allocator__impls.cc108
-rw-r--r--www/chromium/files/patch-build_rust_allocator_allocator__impls.h27
-rw-r--r--www/chromium/files/patch-build_rust_allocator_allocator__impls__ffi.rs22
-rw-r--r--www/chromium/files/patch-build_rust_allocator_compiler__specific.h41
-rw-r--r--www/chromium/files/patch-build_rust_allocator_immediate__crash.h174
-rw-r--r--www/chromium/files/patch-build_rust_allocator_lib.rs122
-rw-r--r--www/chromium/files/patch-build_rust_cargo__crate.gni25
-rw-r--r--www/chromium/files/patch-build_rust_rust__macro.gni12
-rw-r--r--www/chromium/files/patch-build_rust_rust__target.gni13
-rw-r--r--www/chromium/files/patch-build_rust_std_BUILD.gn80
-rw-r--r--www/gohugo/Makefile2
-rw-r--r--www/gohugo/distinfo10
-rw-r--r--www/iridium/Makefile1
-rw-r--r--www/iridium/files/patch-build_rust_allocator_BUILD.gn109
-rw-r--r--www/iridium/files/patch-build_rust_allocator_DEPS12
-rw-r--r--www/iridium/files/patch-build_rust_allocator_alias.cc25
-rw-r--r--www/iridium/files/patch-build_rust_allocator_alias.h40
-rw-r--r--www/iridium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc20
-rw-r--r--www/iridium/files/patch-build_rust_allocator_alloc__error__handler__impl.h24
-rw-r--r--www/iridium/files/patch-build_rust_allocator_allocator__impls.cc108
-rw-r--r--www/iridium/files/patch-build_rust_allocator_allocator__impls.h27
-rw-r--r--www/iridium/files/patch-build_rust_allocator_allocator__impls__ffi.rs22
-rw-r--r--www/iridium/files/patch-build_rust_allocator_compiler__specific.h41
-rw-r--r--www/iridium/files/patch-build_rust_allocator_immediate__crash.h174
-rw-r--r--www/iridium/files/patch-build_rust_allocator_lib.rs122
-rw-r--r--www/iridium/files/patch-build_rust_cargo__crate.gni25
-rw-r--r--www/iridium/files/patch-build_rust_rust__macro.gni12
-rw-r--r--www/iridium/files/patch-build_rust_rust__target.gni13
-rw-r--r--www/iridium/files/patch-build_rust_std_BUILD.gn80
-rw-r--r--www/moin2/Makefile2
-rw-r--r--www/proxygen/Makefile2
-rw-r--r--www/proxygen/distinfo6
-rw-r--r--www/typo3-12/Makefile2
-rw-r--r--www/typo3-12/distinfo6
-rw-r--r--www/typo3-13/Makefile4
-rw-r--r--www/typo3-13/distinfo6
-rw-r--r--www/ungoogled-chromium/Makefile1
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_BUILD.gn109
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_DEPS12
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_alias.cc25
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_alias.h40
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc20
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.h24
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls.cc108
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls.h27
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls__ffi.rs22
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_compiler__specific.h41
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_immediate__crash.h174
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_allocator_lib.rs122
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_cargo__crate.gni25
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_rust__macro.gni12
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_rust__target.gni13
-rw-r--r--www/ungoogled-chromium/files/patch-build_rust_std_BUILD.gn80
-rw-r--r--x11/arcan-trayicon/Makefile4
-rw-r--r--x11/arcan-trayicon/distinfo6
-rw-r--r--x11/xfce4-clipman-plugin/Makefile24
-rw-r--r--x11/xfce4-clipman-plugin/distinfo6
124 files changed, 3151 insertions, 313 deletions
diff --git a/UPDATING b/UPDATING
index 435c02eb7619..3d4a6146cc43 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,23 @@ 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.
+20250520:
+ AFFECTS: users of databases/mongodb60
+ AUTHOR: ronald@FreeBSD.org
+
+ MongoDB version 6.0 is End of Life starting August 2025.
+ Please make sure you are running MongoDB version 7.0 or higher.
+ In-place upgrades are supported from version 6.0 to 7.0.
+ For an in-place upgrade it is important that the
+ 'featureCompatibilityVersion' is set to 6.0 before the upgrade.
+ See: https://www.mongodb.com/docs/v7.0/release-notes/7.0-upgrade-standalone/#feature-compatibility-version
+
+ TL;DR, run these commands in mongodb60 before upgrading:
+ (see `pkg info -D mongodb60` how to install mongosh)
+ $ npx mongosh mongodb://127.0.0.1:27017/ # or use non-default port
+ > db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
+ > exit
+
20250519:
AFFECTS: users of sysutils/screen
AUTHOR: cy@FreeBSD.org
diff --git a/biology/lamarc/Makefile b/biology/lamarc/Makefile
index 46f4e102635a..d9758325fdc8 100644
--- a/biology/lamarc/Makefile
+++ b/biology/lamarc/Makefile
@@ -1,7 +1,7 @@
PORTNAME= lamarc
PORTVERSION= 2.1.8
DISTVERSIONSUFFIX= -src
-PORTREVISION= 1
+PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= biology
MASTER_SITES= http://evolution.genetics.washington.edu/lamarc/download/
@@ -12,14 +12,14 @@ WWW= https://evolution.genetics.washington.edu/lamarc/
LICENSE= APACHE20
-BROKEN_FreeBSD_14= fails to compile: no matching function for call to 'make_pair'
-
USE_CXXSTD= c++98
GNU_CONFIGURE= yes
WRKSRC= ${WRKDIR}/${DISTNAME:S,${DISTVERSIONSUFFIX},,}
+CXXFLAGS+= -Wno-unused-parameter -Wno-mismatched-tags
+
PLIST_FILES= bin/${PORTNAME}
PORTDOCS= *
diff --git a/biology/lamarc/files/patch-src_control_chainmanager.cpp b/biology/lamarc/files/patch-src_control_chainmanager.cpp
new file mode 100644
index 000000000000..bf21359154ab
--- /dev/null
+++ b/biology/lamarc/files/patch-src_control_chainmanager.cpp
@@ -0,0 +1,11 @@
+--- src/control/chainmanager.cpp.orig 2025-05-18 23:57:13 UTC
++++ src/control/chainmanager.cpp
+@@ -1631,7 +1631,7 @@ vector<pair<double, long int> > ChainManager::SortChai
+ unsigned long int i;
+ for (i = 0; i < temps.size(); ++i)
+ {
+- orderedtemps.push_back(make_pair<double, long int>(temps[i].GetTemperature(), i));
++ orderedtemps.push_back(make_pair(temps[i].GetTemperature(), i));
+ }
+ std::sort(orderedtemps.begin(), orderedtemps.end());
+ return orderedtemps;
diff --git a/biology/lamarc/files/patch-src_tools_mathx.cpp b/biology/lamarc/files/patch-src_tools_mathx.cpp
new file mode 100644
index 000000000000..527dfe4af344
--- /dev/null
+++ b/biology/lamarc/files/patch-src_tools_mathx.cpp
@@ -0,0 +1,11 @@
+--- src/tools/mathx.cpp.orig 2025-05-19 00:00:29 UTC
++++ src/tools/mathx.cpp
+@@ -778,7 +778,7 @@ std::pair<DoubleVec1d, DoubleVec2d> EigenCalculator::E
+ {
+ eigvals[i] = a[i][i];
+ }
+- return std::make_pair<DoubleVec1d, DoubleVec2d>(eigvals, eigvecs);
++ return std::make_pair(eigvals, eigvecs);
+ } // Eigen
+
+ //------------------------------------------------------------------------------------
diff --git a/biology/lamarc/files/patch-src_tools_stringx.h b/biology/lamarc/files/patch-src_tools_stringx.h
index d1ded1a7d8da..04019393fbac 100644
--- a/biology/lamarc/files/patch-src_tools_stringx.h
+++ b/biology/lamarc/files/patch-src_tools_stringx.h
@@ -1,6 +1,6 @@
--- src/tools/stringx.h.orig 2011-04-23 02:02:49 UTC
+++ src/tools/stringx.h
-@@ -107,6 +107,26 @@ struct CIStringCompare : public std::bin
+@@ -107,6 +107,26 @@ bool ciStringEqual(const std::string& s1, const std::s
bool ciStringEqual(const std::string& s1, const std::string& s2);
@@ -27,10 +27,11 @@
//------------------------------------------------------------------------------------
template <class T>
-@@ -188,26 +208,6 @@ bool FromString(const std::string & in,
+@@ -187,26 +207,6 @@ DoubleVec1d StringToDoubleVecOrBarf(const std::string&
+ bool FromString(const std::string & in, method_type& out);
DoubleVec1d StringToDoubleVecOrBarf(const std::string& in);
-
+-
-// functions for making xmltags and lines of xml
-std::string MakeTag(const std::string& str);
-std::string MakeCloseTag(const std::string& str);
@@ -50,7 +51,6 @@
-std::string Pretty(long number, int width=DEFWIDTH);
-std::string Pretty(unsigned long number, int width=DEFWIDTH);
-std::string Pretty(std::string str, int width=DEFWIDTH);
--
+
bool StringCompare(const std::string&, const char*, long, long);
bool StringCompare(const std::string&, const std::string&, long, long);
-
diff --git a/biology/lamarc/files/patch-src_tree_arrangervec.cpp b/biology/lamarc/files/patch-src_tree_arrangervec.cpp
new file mode 100644
index 000000000000..ff3636f3a571
--- /dev/null
+++ b/biology/lamarc/files/patch-src_tree_arrangervec.cpp
@@ -0,0 +1,11 @@
+--- src/tree/arrangervec.cpp.orig 2025-05-18 23:55:20 UTC
++++ src/tree/arrangervec.cpp
+@@ -116,7 +116,7 @@ void ArrangerVec::CopyAllMembers(const ArrangerVec & c
+ for(it = cp.arrangers.begin(); it != cp.arrangers.end(); it++)
+ {
+ Arranger* arr = (*it).second->Clone();
+- arrangers.insert(std::make_pair<string, Arranger*>(arr->GetName(), arr));
++ arrangers.insert(std::make_pair(arr->GetName(), arr));
+ }
+ }
+ }
diff --git a/biology/lamarc/files/patch-src_tree_collector.cpp b/biology/lamarc/files/patch-src_tree_collector.cpp
new file mode 100644
index 000000000000..bff56a70b261
--- /dev/null
+++ b/biology/lamarc/files/patch-src_tree_collector.cpp
@@ -0,0 +1,11 @@
+--- src/tree/collector.cpp.orig 2025-05-18 23:58:39 UTC
++++ src/tree/collector.cpp
+@@ -204,7 +204,7 @@ void ParamCollector::AddParamSummary(ForceParameters f
+
+ void ParamCollector::AddParamSummary(ForceParameters fp, long ncopy)
+ {
+- m_paramsum.push_back(make_pair<ForceParameters, long>(fp, ncopy));
++ m_paramsum.push_back(std::make_pair(fp, ncopy));
+ }
+
+ //------------------------------------------------------------------------------------
diff --git a/biology/lamarc/files/patch-src_tree_prior.cpp b/biology/lamarc/files/patch-src_tree_prior.cpp
new file mode 100644
index 000000000000..a8dbf7ab04ed
--- /dev/null
+++ b/biology/lamarc/files/patch-src_tree_prior.cpp
@@ -0,0 +1,17 @@
+--- src/tree/prior.cpp.orig 2025-05-18 23:58:05 UTC
++++ src/tree/prior.cpp
+@@ -85,12 +85,12 @@ std::pair<double, double> Prior::RandomDraw() const
+ case LINEAR:
+ newparam = rnd.Float() * (m_upperbound - m_lowerbound) + m_lowerbound;
+ newlnparam = log(newparam);
+- return std::make_pair<double, double>(newparam, newlnparam);
++ return std::make_pair(newparam, newlnparam);
+ break;
+ case LOGARITHMIC:
+ newlnparam = rnd.Float() * (m_lnupper - m_lnlower) + m_lnlower;
+ newparam = exp(newlnparam);
+- return std::make_pair<double, double>(newparam, newlnparam);
++ return std::make_pair(newparam, newlnparam);
+ break;
+ }
+ string e = "Unknown prior type " + ToString(m_priortype) +
diff --git a/databases/mongodb60/Makefile b/databases/mongodb60/Makefile
index dd2d6b2e3a10..a9e63d9f1d60 100644
--- a/databases/mongodb60/Makefile
+++ b/databases/mongodb60/Makefile
@@ -1,6 +1,7 @@
PORTNAME= mongodb
DISTVERSIONPREFIX= r
DISTVERSION= 6.0.23
+PORTREVISION= 1
CATEGORIES= databases net
MASTER_SITES= https://hg.mozilla.org/mozilla-central/raw-rev/:patches
PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}
@@ -18,6 +19,9 @@ LICENSE_NAME_SSPLv1= Server Side Public License Version 1
LICENSE_FILE_SSPLv1= ${WRKSRC}/LICENSE-Community.txt
LICENSE_PERMS_SSPLv1= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+DEPRECATED= EOL starting August 2025, see https://www.mongodb.com/legal/support-policy/lifecycles, please use databases/mongodb60
+EXPIRATION_DATE= 2025-10-30
+
ONLY_FOR_ARCHS= aarch64 amd64 powerpc64le
ONLY_FOR_ARCHS_REASON= only ported to amd64, aarch64, and powerpc64le on FreeBSD; upstream supports arm64, ppc64le, s390x, and x86-64
@@ -121,7 +125,7 @@ MOZJS_ARCH= ${ARCH}
.endif
post-extract:
- # Verify we downloaded the proper mozjs git tag.
+# 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}\""
post-patch:
diff --git a/deskutils/xfce4-generic-slider/Makefile b/deskutils/xfce4-generic-slider/Makefile
index b1921eee2d1e..4f4b3324f86e 100644
--- a/deskutils/xfce4-generic-slider/Makefile
+++ b/deskutils/xfce4-generic-slider/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xfce4-generic-slider
-PORTVERSION= 1.0.1
+PORTVERSION= 1.1.0
PORTEPOCH= 1
CATEGORIES= deskutils xfce
MASTER_SITES= XFCE/panel-plugins
@@ -12,19 +12,16 @@ WWW= https://docs.xfce.org/panel-plugins/xfce4-generic-slider/start
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
-LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
-
-USES= compiler:c11 gettext gmake gnome libtool pkgconfig tar:bzip2 xfce
-USE_GNOME= cairo gdkpixbuf gtk30
+USES= compiler:c11 gettext gnome meson pkgconfig tar:xz xfce
+USE_GNOME= gtk30
USE_XFCE= libmenu panel
-GNU_CONFIGURE= yes
-INSTALL_TARGET= install-strip
+OPTIONS_DEFINE= NLS
+OPTIONS_SUB= yes
-OPTIONS_DEFINE= NLS
-OPTIONS_SUB= yes
+NLS_USES= gettext-runtime
-NLS_CONFIGURE_ENABLE= nls
-NLS_USES= gettext-runtime
+post-patch-NLS-off:
+ @${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build
.include <bsd.port.mk>
diff --git a/deskutils/xfce4-generic-slider/distinfo b/deskutils/xfce4-generic-slider/distinfo
index dfaf3aca5bb9..e742a8554f9e 100644
--- a/deskutils/xfce4-generic-slider/distinfo
+++ b/deskutils/xfce4-generic-slider/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735163666
-SHA256 (xfce4/xfce4-generic-slider-1.0.1.tar.bz2) = 5f3f1da2fa1428ddc51dbbdcdf119f88b023260b605edd3d1d796261a047f0ec
-SIZE (xfce4/xfce4-generic-slider-1.0.1.tar.bz2) = 424157
+TIMESTAMP = 1747675607
+SHA256 (xfce4/xfce4-generic-slider-1.1.0.tar.xz) = 0cef3174157621e14d123a9d246ee3b1d7c8ef89579377398305a4eb33636f5f
+SIZE (xfce4/xfce4-generic-slider-1.1.0.tar.xz) = 51264
diff --git a/deskutils/xfce4-generic-slider/pkg-plist b/deskutils/xfce4-generic-slider/pkg-plist
index eaa8a667797f..3604fe70b200 100644
--- a/deskutils/xfce4-generic-slider/pkg-plist
+++ b/deskutils/xfce4-generic-slider/pkg-plist
@@ -13,6 +13,7 @@ share/icons/hicolor/scalable/apps/org.xfce.panel.genericslider.svg
%%NLS%%share/locale/de/LC_MESSAGES/xfce4-generic-slider.mo
%%NLS%%share/locale/en_GB/LC_MESSAGES/xfce4-generic-slider.mo
%%NLS%%share/locale/es/LC_MESSAGES/xfce4-generic-slider.mo
+%%NLS%%share/locale/et/LC_MESSAGES/xfce4-generic-slider.mo
%%NLS%%share/locale/eu/LC_MESSAGES/xfce4-generic-slider.mo
%%NLS%%share/locale/fi/LC_MESSAGES/xfce4-generic-slider.mo
%%NLS%%share/locale/fr/LC_MESSAGES/xfce4-generic-slider.mo
diff --git a/devel/fatal/Makefile b/devel/fatal/Makefile
index a894b53673d6..9019a276609a 100644
--- a/devel/fatal/Makefile
+++ b/devel/fatal/Makefile
@@ -1,6 +1,6 @@
PORTNAME= fatal
DISTVERSIONPREFIX= v
-DISTVERSION= 2025.05.12.00
+DISTVERSION= 2025.05.19.00
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
diff --git a/devel/fatal/distinfo b/devel/fatal/distinfo
index 819a05beddae..9afc9423ea35 100644
--- a/devel/fatal/distinfo
+++ b/devel/fatal/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747102739
-SHA256 (facebook-fatal-v2025.05.12.00_GH0.tar.gz) = e2e98d8bf17eba550c336e8f7ffccf025bde3c4c6b87c30cd66b7ffac6fef692
-SIZE (facebook-fatal-v2025.05.12.00_GH0.tar.gz) = 656381
+TIMESTAMP = 1747730524
+SHA256 (facebook-fatal-v2025.05.19.00_GH0.tar.gz) = 94d0a8d8fae5b094d0e8928dc84d47688254dbb329a70a6d3b9a773002ba4e69
+SIZE (facebook-fatal-v2025.05.19.00_GH0.tar.gz) = 656391
diff --git a/devel/fbthrift/Makefile b/devel/fbthrift/Makefile
index 88a7fedb5e1f..505908c30923 100644
--- a/devel/fbthrift/Makefile
+++ b/devel/fbthrift/Makefile
@@ -1,6 +1,6 @@
PORTNAME= fbthrift
DISTVERSIONPREFIX= v
-DISTVERSION= 2025.05.12.00
+DISTVERSION= 2025.05.19.00
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
diff --git a/devel/fbthrift/distinfo b/devel/fbthrift/distinfo
index 4f8c90ce9e28..6211876e419e 100644
--- a/devel/fbthrift/distinfo
+++ b/devel/fbthrift/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747102737
-SHA256 (facebook-fbthrift-v2025.05.12.00_GH0.tar.gz) = 1686c6fe25998e651c1f4a565cec0035f6603141fc74a8495f1a72a332b18a62
-SIZE (facebook-fbthrift-v2025.05.12.00_GH0.tar.gz) = 15150629
+TIMESTAMP = 1747730523
+SHA256 (facebook-fbthrift-v2025.05.19.00_GH0.tar.gz) = 418aaaa695c843ccd0eb445e7b782e315783b5639d9ce5b40e4b5aa708c73245
+SIZE (facebook-fbthrift-v2025.05.19.00_GH0.tar.gz) = 15177653
diff --git a/devel/fbthrift/pkg-plist b/devel/fbthrift/pkg-plist
index feafc98b716d..28dea75e4fe0 100644
--- a/devel/fbthrift/pkg-plist
+++ b/devel/fbthrift/pkg-plist
@@ -320,6 +320,7 @@ include/thrift/lib/cpp2/gen/module_data_cpp.h
include/thrift/lib/cpp2/gen/module_data_h.h
include/thrift/lib/cpp2/gen/module_metadata_cpp.h
include/thrift/lib/cpp2/gen/module_metadata_h.h
+include/thrift/lib/cpp2/gen/module_method_decorator_h.h
include/thrift/lib/cpp2/gen/module_sinit_cpp.h
include/thrift/lib/cpp2/gen/module_types_cpp.h
include/thrift/lib/cpp2/gen/module_types_h.h
diff --git a/devel/folly/Makefile b/devel/folly/Makefile
index 93cb3a378f5c..3b459cde9177 100644
--- a/devel/folly/Makefile
+++ b/devel/folly/Makefile
@@ -1,6 +1,6 @@
PORTNAME= folly
DISTVERSIONPREFIX= v
-DISTVERSION= 2025.05.12.00
+DISTVERSION= 2025.05.19.00
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
diff --git a/devel/folly/distinfo b/devel/folly/distinfo
index f502c79aa607..812b7a06f628 100644
--- a/devel/folly/distinfo
+++ b/devel/folly/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747102732
-SHA256 (facebook-folly-v2025.05.12.00_GH0.tar.gz) = 027e69150d86671c02824201f33b3a5fb945fb1b9d5561b48b43215b1a572152
-SIZE (facebook-folly-v2025.05.12.00_GH0.tar.gz) = 4466657
+TIMESTAMP = 1747730517
+SHA256 (facebook-folly-v2025.05.19.00_GH0.tar.gz) = c60daf2e709e0a3fd428d09a1e3439c1836189d4248189a1a45f33500de90eac
+SIZE (facebook-folly-v2025.05.19.00_GH0.tar.gz) = 4466764
diff --git a/devel/fsx/Makefile b/devel/fsx/Makefile
index dbe33a7a74be..92c1fb694633 100644
--- a/devel/fsx/Makefile
+++ b/devel/fsx/Makefile
@@ -1,6 +1,5 @@
PORTNAME= fsx
-DISTVERSION= 0.2.0
-PORTREVISION= 11
+DISTVERSION= 0.3.0
CATEGORIES= devel
MASTER_SITES= CRATESIO
DISTFILES= ${CARGO_DIST_SUBDIR}/${DISTNAME}${CARGO_CRATE_EXT}
diff --git a/devel/fsx/Makefile.crates b/devel/fsx/Makefile.crates
index 37ee137577cc..606abc5c429a 100644
--- a/devel/fsx/Makefile.crates
+++ b/devel/fsx/Makefile.crates
@@ -1,59 +1,65 @@
CARGO_CRATES= aho-corasick-0.7.20 \
- assert_cmd-2.0.7 \
+ anstream-0.6.13 \
+ anstyle-1.0.6 \
+ anstyle-parse-0.2.3 \
+ anstyle-query-1.0.2 \
+ anstyle-wincon-3.0.2 \
+ assert_cmd-2.0.17 \
autocfg-1.1.0 \
bitflags-1.3.2 \
bitflags-2.4.1 \
bstr-1.1.0 \
cfg-if-1.0.0 \
- clap-4.1.11 \
+ cfg_aliases-0.1.1 \
+ clap-4.5.13 \
clap-verbosity-flag-2.1.1 \
- clap_derive-4.1.9 \
- clap_lex-0.3.0 \
+ clap_builder-4.5.13 \
+ clap_derive-4.5.13 \
+ clap_lex-0.7.4 \
+ colorchoice-1.0.0 \
const_panic-0.2.7 \
ctor-0.1.26 \
diff-0.1.13 \
difflib-0.4.0 \
doc-comment-0.3.3 \
- either-1.8.0 \
- env_logger-0.10.0 \
+ env_filter-0.1.0 \
+ env_logger-0.11.3 \
+ equivalent-1.0.1 \
errno-0.3.8 \
fastrand-2.0.1 \
futures-0.3.27 \
- futures-channel-0.3.27 \
- futures-core-0.3.27 \
+ futures-channel-0.3.31 \
+ futures-core-0.3.31 \
futures-executor-0.3.27 \
- futures-io-0.3.27 \
- futures-macro-0.3.27 \
- futures-sink-0.3.27 \
- futures-task-0.3.27 \
+ futures-io-0.3.31 \
+ futures-macro-0.3.31 \
+ futures-sink-0.3.31 \
+ futures-task-0.3.31 \
futures-timer-3.0.2 \
- futures-util-0.3.27 \
+ futures-util-0.3.31 \
getrandom-0.2.8 \
- heck-0.4.0 \
- hermit-abi-0.3.3 \
+ hashbrown-0.14.3 \
+ heck-0.5.0 \
humantime-2.1.0 \
- is-terminal-0.4.10 \
- itertools-0.10.5 \
+ indexmap-2.2.5 \
konst_kernel-0.3.4 \
- libc-0.2.151 \
+ libc-0.2.155 \
linux-raw-sys-0.4.12 \
- log-0.4.17 \
+ log-0.4.21 \
+ mdconfig-0.2.0 \
memchr-2.5.0 \
- nix-0.27.1 \
+ nix-0.28.0 \
once_cell-1.17.0 \
- os_str_bytes-6.4.1 \
output_vt100-0.1.3 \
pin-project-lite-0.2.9 \
pin-utils-0.1.0 \
ppv-lite86-0.2.17 \
- predicates-2.1.5 \
- predicates-core-1.0.5 \
+ predicates-3.1.3 \
+ predicates-core-1.0.9 \
predicates-tree-1.0.7 \
pretty_assertions-1.3.0 \
- proc-macro-error-1.0.4 \
- proc-macro-error-attr-1.0.4 \
- proc-macro2-1.0.63 \
- quote-1.0.23 \
+ proc-macro2-1.0.95 \
+ quote-1.0.40 \
rand-0.8.5 \
rand_chacha-0.3.1 \
rand_core-0.6.4 \
@@ -67,24 +73,25 @@ CARGO_CRATES= aho-corasick-0.7.20 \
rstest_macros-0.16.0 \
rustc_version-0.4.0 \
rustix-0.38.28 \
- safemem-0.3.3 \
semver-1.0.16 \
serde-1.0.152 \
serde_derive-1.0.152 \
+ serde_spanned-0.6.5 \
slab-0.4.8 \
- strsim-0.10.0 \
+ strsim-0.11.1 \
syn-1.0.107 \
+ syn-2.0.101 \
tempfile-3.9.0 \
- termcolor-1.1.3 \
termtree-0.4.0 \
- toml-0.5.11 \
+ toml-0.8.11 \
+ toml_datetime-0.6.5 \
+ toml_edit-0.22.7 \
unicode-ident-1.0.6 \
- version_check-0.9.4 \
+ utf8parse-0.2.1 \
wait-timeout-0.2.0 \
wasi-0.11.0+wasi-snapshot-preview1 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-util-0.1.5 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
windows-sys-0.52.0 \
windows-targets-0.52.0 \
@@ -95,4 +102,5 @@ CARGO_CRATES= aho-corasick-0.7.20 \
windows_x86_64_gnu-0.52.0 \
windows_x86_64_gnullvm-0.52.0 \
windows_x86_64_msvc-0.52.0 \
+ winnow-0.6.5 \
yansi-0.5.1
diff --git a/devel/fsx/distinfo b/devel/fsx/distinfo
index 9968304b082e..805addc716cd 100644
--- a/devel/fsx/distinfo
+++ b/devel/fsx/distinfo
@@ -1,10 +1,20 @@
-TIMESTAMP = 1703884555
-SHA256 (rust/crates/fsx-0.2.0.crate) = f558c80900a8eab00083883913feca6384b9a7a275a95edcd6edb2d2394d45d3
-SIZE (rust/crates/fsx-0.2.0.crate) = 38027
+TIMESTAMP = 1747689030
+SHA256 (rust/crates/fsx-0.3.0.crate) = 7613cc330932cb586d1ecd01a3c304ee31733580ce1614cae36e4779a0caeb45
+SIZE (rust/crates/fsx-0.3.0.crate) = 39312
SHA256 (rust/crates/aho-corasick-0.7.20.crate) = cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac
SIZE (rust/crates/aho-corasick-0.7.20.crate) = 111440
-SHA256 (rust/crates/assert_cmd-2.0.7.crate) = fa3d466004a8b4cb1bc34044240a2fd29d17607e2e3bd613eb44fd48e8100da3
-SIZE (rust/crates/assert_cmd-2.0.7.crate) = 23600
+SHA256 (rust/crates/anstream-0.6.13.crate) = d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb
+SIZE (rust/crates/anstream-0.6.13.crate) = 30928
+SHA256 (rust/crates/anstyle-1.0.6.crate) = 8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc
+SIZE (rust/crates/anstyle-1.0.6.crate) = 14604
+SHA256 (rust/crates/anstyle-parse-0.2.3.crate) = c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c
+SIZE (rust/crates/anstyle-parse-0.2.3.crate) = 24699
+SHA256 (rust/crates/anstyle-query-1.0.2.crate) = e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648
+SIZE (rust/crates/anstyle-query-1.0.2.crate) = 8739
+SHA256 (rust/crates/anstyle-wincon-3.0.2.crate) = 1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7
+SIZE (rust/crates/anstyle-wincon-3.0.2.crate) = 11272
+SHA256 (rust/crates/assert_cmd-2.0.17.crate) = 2bd389a4b2970a01282ee455294913c0a43724daedcd1a24c3eb0ec1c1320b66
+SIZE (rust/crates/assert_cmd-2.0.17.crate) = 26914
SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
@@ -15,14 +25,20 @@ SHA256 (rust/crates/bstr-1.1.0.crate) = b45ea9b00a7b3f2988e9a65ad3917e62123c38db
SIZE (rust/crates/bstr-1.1.0.crate) = 340878
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.1.11.crate) = 42dfd32784433290c51d92c438bb72ea5063797fc3cc9a21a8c4346bebbb2098
-SIZE (rust/crates/clap-4.1.11.crate) = 207841
+SHA256 (rust/crates/cfg_aliases-0.1.1.crate) = fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e
+SIZE (rust/crates/cfg_aliases-0.1.1.crate) = 6009
+SHA256 (rust/crates/clap-4.5.13.crate) = 0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc
+SIZE (rust/crates/clap-4.5.13.crate) = 56267
SHA256 (rust/crates/clap-verbosity-flag-2.1.1.crate) = 3c90e95e5bd4e8ac34fa6f37c774b0c6f8ed06ea90c79931fd448fcf941a9767
SIZE (rust/crates/clap-verbosity-flag-2.1.1.crate) = 12125
-SHA256 (rust/crates/clap_derive-4.1.9.crate) = fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644
-SIZE (rust/crates/clap_derive-4.1.9.crate) = 27888
-SHA256 (rust/crates/clap_lex-0.3.0.crate) = 0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8
-SIZE (rust/crates/clap_lex-0.3.0.crate) = 9671
+SHA256 (rust/crates/clap_builder-4.5.13.crate) = 64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99
+SIZE (rust/crates/clap_builder-4.5.13.crate) = 164093
+SHA256 (rust/crates/clap_derive-4.5.13.crate) = 501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0
+SIZE (rust/crates/clap_derive-4.5.13.crate) = 30132
+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.0.crate) = acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7
+SIZE (rust/crates/colorchoice-1.0.0.crate) = 6857
SHA256 (rust/crates/const_panic-0.2.7.crate) = 58baae561b85ca19b3122a9ddd35c8ec40c3bcd14fe89921824eae73f7baffbf
SIZE (rust/crates/const_panic-0.2.7.crate) = 48088
SHA256 (rust/crates/ctor-0.1.26.crate) = 6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096
@@ -33,62 +49,62 @@ SHA256 (rust/crates/difflib-0.4.0.crate) = 6184e33543162437515c2e2b48714794e3784
SIZE (rust/crates/difflib-0.4.0.crate) = 7638
SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10
SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123
-SHA256 (rust/crates/either-1.8.0.crate) = 90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797
-SIZE (rust/crates/either-1.8.0.crate) = 15992
-SHA256 (rust/crates/env_logger-0.10.0.crate) = 85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0
-SIZE (rust/crates/env_logger-0.10.0.crate) = 36574
+SHA256 (rust/crates/env_filter-0.1.0.crate) = a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea
+SIZE (rust/crates/env_filter-0.1.0.crate) = 11553
+SHA256 (rust/crates/env_logger-0.11.3.crate) = 38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9
+SIZE (rust/crates/env_logger-0.11.3.crate) = 29704
+SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
+SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
SHA256 (rust/crates/errno-0.3.8.crate) = a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245
SIZE (rust/crates/errno-0.3.8.crate) = 10645
SHA256 (rust/crates/fastrand-2.0.1.crate) = 25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5
SIZE (rust/crates/fastrand-2.0.1.crate) = 14664
SHA256 (rust/crates/futures-0.3.27.crate) = 531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549
SIZE (rust/crates/futures-0.3.27.crate) = 52816
-SHA256 (rust/crates/futures-channel-0.3.27.crate) = 164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac
-SIZE (rust/crates/futures-channel-0.3.27.crate) = 32278
-SHA256 (rust/crates/futures-core-0.3.27.crate) = 86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd
-SIZE (rust/crates/futures-core-0.3.27.crate) = 14709
+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.27.crate) = 1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83
SIZE (rust/crates/futures-executor-0.3.27.crate) = 17745
-SHA256 (rust/crates/futures-io-0.3.27.crate) = 89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91
-SIZE (rust/crates/futures-io-0.3.27.crate) = 8912
-SHA256 (rust/crates/futures-macro-0.3.27.crate) = 3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6
-SIZE (rust/crates/futures-macro-0.3.27.crate) = 11255
-SHA256 (rust/crates/futures-sink-0.3.27.crate) = ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2
-SIZE (rust/crates/futures-sink-0.3.27.crate) = 7853
-SHA256 (rust/crates/futures-task-0.3.27.crate) = fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879
-SIZE (rust/crates/futures-task-0.3.27.crate) = 11854
+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-timer-3.0.2.crate) = e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c
SIZE (rust/crates/futures-timer-3.0.2.crate) = 19879
-SHA256 (rust/crates/futures-util-0.3.27.crate) = 3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab
-SIZE (rust/crates/futures-util-0.3.27.crate) = 158556
+SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81
+SIZE (rust/crates/futures-util-0.3.31.crate) = 162124
SHA256 (rust/crates/getrandom-0.2.8.crate) = c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31
SIZE (rust/crates/getrandom-0.2.8.crate) = 30553
-SHA256 (rust/crates/heck-0.4.0.crate) = 2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9
-SIZE (rust/crates/heck-0.4.0.crate) = 11161
-SHA256 (rust/crates/hermit-abi-0.3.3.crate) = d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7
-SIZE (rust/crates/hermit-abi-0.3.3.crate) = 14253
+SHA256 (rust/crates/hashbrown-0.14.3.crate) = 290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604
+SIZE (rust/crates/hashbrown-0.14.3.crate) = 141425
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4
SIZE (rust/crates/humantime-2.1.0.crate) = 16749
-SHA256 (rust/crates/is-terminal-0.4.10.crate) = 0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455
-SIZE (rust/crates/is-terminal-0.4.10.crate) = 7683
-SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
-SIZE (rust/crates/itertools-0.10.5.crate) = 115354
+SHA256 (rust/crates/indexmap-2.2.5.crate) = 7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4
+SIZE (rust/crates/indexmap-2.2.5.crate) = 81498
SHA256 (rust/crates/konst_kernel-0.3.4.crate) = 7771682454392dfe62a909aba2c6efc6674e2ad0b678fbc33b154e2e1bd59b89
SIZE (rust/crates/konst_kernel-0.3.4.crate) = 23365
-SHA256 (rust/crates/libc-0.2.151.crate) = 302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4
-SIZE (rust/crates/libc-0.2.151.crate) = 736640
+SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c
+SIZE (rust/crates/libc-0.2.155.crate) = 743539
SHA256 (rust/crates/linux-raw-sys-0.4.12.crate) = c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456
SIZE (rust/crates/linux-raw-sys-0.4.12.crate) = 1465800
-SHA256 (rust/crates/log-0.4.17.crate) = abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e
-SIZE (rust/crates/log-0.4.17.crate) = 38028
+SHA256 (rust/crates/log-0.4.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c
+SIZE (rust/crates/log-0.4.21.crate) = 43442
+SHA256 (rust/crates/mdconfig-0.2.0.crate) = cff02ee7b2a0815081bdc7c3dc00681c30577072db35787ea392aef8857fe34b
+SIZE (rust/crates/mdconfig-0.2.0.crate) = 11390
SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
SIZE (rust/crates/memchr-2.5.0.crate) = 65812
-SHA256 (rust/crates/nix-0.27.1.crate) = 2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053
-SIZE (rust/crates/nix-0.27.1.crate) = 286494
+SHA256 (rust/crates/nix-0.28.0.crate) = ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4
+SIZE (rust/crates/nix-0.28.0.crate) = 311086
SHA256 (rust/crates/once_cell-1.17.0.crate) = 6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66
SIZE (rust/crates/once_cell-1.17.0.crate) = 32736
-SHA256 (rust/crates/os_str_bytes-6.4.1.crate) = 9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee
-SIZE (rust/crates/os_str_bytes-6.4.1.crate) = 23101
SHA256 (rust/crates/output_vt100-0.1.3.crate) = 628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66
SIZE (rust/crates/output_vt100-0.1.3.crate) = 4473
SHA256 (rust/crates/pin-project-lite-0.2.9.crate) = e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116
@@ -97,22 +113,18 @@ SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d
SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
SHA256 (rust/crates/ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
-SHA256 (rust/crates/predicates-2.1.5.crate) = 59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd
-SIZE (rust/crates/predicates-2.1.5.crate) = 24165
-SHA256 (rust/crates/predicates-core-1.0.5.crate) = 72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2
-SIZE (rust/crates/predicates-core-1.0.5.crate) = 7773
+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.7.crate) = 54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d
SIZE (rust/crates/predicates-tree-1.0.7.crate) = 8145
SHA256 (rust/crates/pretty_assertions-1.3.0.crate) = a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755
SIZE (rust/crates/pretty_assertions-1.3.0.crate) = 79441
-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.63.crate) = 7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb
-SIZE (rust/crates/proc-macro2-1.0.63.crate) = 44867
-SHA256 (rust/crates/quote-1.0.23.crate) = 8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b
-SIZE (rust/crates/quote-1.0.23.crate) = 28058
+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/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
@@ -139,32 +151,36 @@ SHA256 (rust/crates/rustc_version-0.4.0.crate) = bfa0f585226d2e68097d4f95d113b15
SIZE (rust/crates/rustc_version-0.4.0.crate) = 12175
SHA256 (rust/crates/rustix-0.38.28.crate) = 72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316
SIZE (rust/crates/rustix-0.38.28.crate) = 365398
-SHA256 (rust/crates/safemem-0.3.3.crate) = ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072
-SIZE (rust/crates/safemem-0.3.3.crate) = 7778
SHA256 (rust/crates/semver-1.0.16.crate) = 58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a
SIZE (rust/crates/semver-1.0.16.crate) = 29850
SHA256 (rust/crates/serde-1.0.152.crate) = bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb
SIZE (rust/crates/serde-1.0.152.crate) = 77091
SHA256 (rust/crates/serde_derive-1.0.152.crate) = af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e
SIZE (rust/crates/serde_derive-1.0.152.crate) = 55586
+SHA256 (rust/crates/serde_spanned-0.6.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
+SIZE (rust/crates/serde_spanned-0.6.5.crate) = 8349
SHA256 (rust/crates/slab-0.4.8.crate) = 6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d
SIZE (rust/crates/slab-0.4.8.crate) = 16928
-SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
-SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
SHA256 (rust/crates/syn-1.0.107.crate) = 1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5
SIZE (rust/crates/syn-1.0.107.crate) = 237539
+SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf
+SIZE (rust/crates/syn-2.0.101.crate) = 299250
SHA256 (rust/crates/tempfile-3.9.0.crate) = 01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa
SIZE (rust/crates/tempfile-3.9.0.crate) = 32182
-SHA256 (rust/crates/termcolor-1.1.3.crate) = bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755
-SIZE (rust/crates/termcolor-1.1.3.crate) = 17242
SHA256 (rust/crates/termtree-0.4.0.crate) = 95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8
SIZE (rust/crates/termtree-0.4.0.crate) = 4449
-SHA256 (rust/crates/toml-0.5.11.crate) = f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234
-SIZE (rust/crates/toml-0.5.11.crate) = 54910
+SHA256 (rust/crates/toml-0.8.11.crate) = af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e
+SIZE (rust/crates/toml-0.8.11.crate) = 51146
+SHA256 (rust/crates/toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
+SIZE (rust/crates/toml_datetime-0.6.5.crate) = 10910
+SHA256 (rust/crates/toml_edit-0.22.7.crate) = 18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992
+SIZE (rust/crates/toml_edit-0.22.7.crate) = 104001
SHA256 (rust/crates/unicode-ident-1.0.6.crate) = 84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc
SIZE (rust/crates/unicode-ident-1.0.6.crate) = 42158
-SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
-SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a
+SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435
SHA256 (rust/crates/wait-timeout-0.2.0.crate) = 9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6
SIZE (rust/crates/wait-timeout-0.2.0.crate) = 12441
SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
@@ -173,8 +189,6 @@ SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe9399
SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
-SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
-SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
@@ -195,5 +209,7 @@ SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.0.crate) = 1a657e1e9d3f514745a57
SIZE (rust/crates/windows_x86_64_gnullvm-0.52.0.crate) = 430165
SHA256 (rust/crates/windows_x86_64_msvc-0.52.0.crate) = dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04
SIZE (rust/crates/windows_x86_64_msvc-0.52.0.crate) = 821600
+SHA256 (rust/crates/winnow-0.6.5.crate) = dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8
+SIZE (rust/crates/winnow-0.6.5.crate) = 159316
SHA256 (rust/crates/yansi-0.5.1.crate) = 09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec
SIZE (rust/crates/yansi-0.5.1.crate) = 16525
diff --git a/devel/opengrok/Makefile b/devel/opengrok/Makefile
index 6f19f96abffb..548bbae051ba 100644
--- a/devel/opengrok/Makefile
+++ b/devel/opengrok/Makefile
@@ -1,5 +1,5 @@
PORTNAME= opengrok
-PORTVERSION= 1.13.27
+PORTVERSION= 1.13.30
CATEGORIES= devel java
# Doesn't currently work with portscout, but the release tarball is required.
MASTER_SITES= https://github.com/oracle/opengrok/releases/download/${PORTVERSION}/
diff --git a/devel/opengrok/distinfo b/devel/opengrok/distinfo
index 9c3154e288cc..fc63a1890775 100644
--- a/devel/opengrok/distinfo
+++ b/devel/opengrok/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742764931
-SHA256 (opengrok-1.13.27.tar.gz) = 42bdf4fa96929f7237fad5a9cc02d32173fc9318ab78bf7aacaa290c38ffaa73
-SIZE (opengrok-1.13.27.tar.gz) = 89668007
+TIMESTAMP = 1747697644
+SHA256 (opengrok-1.13.30.tar.gz) = ba99a68326579780d49f80635346fbf93ecb630fc90bd711ca2cb5ebd35e77f5
+SIZE (opengrok-1.13.30.tar.gz) = 89954729
diff --git a/devel/opengrok/pkg-plist b/devel/opengrok/pkg-plist
index 0c86492de886..01b3e1110c30 100644
--- a/devel/opengrok/pkg-plist
+++ b/devel/opengrok/pkg-plist
@@ -78,31 +78,27 @@
%%T%%/webapps/opengrok/WEB-INF/lib/HdrHistogram-2.2.2.jar
%%T%%/webapps/opengrok/WEB-INF/lib/JavaEWAH-1.2.3.jar
%%T%%/webapps/opengrok/WEB-INF/lib/LatencyUtils-2.0.3.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/affinity-3.21ea83.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/affinity-3.27ea0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/ant-1.10.14.jar
%%T%%/webapps/opengrok/WEB-INF/lib/ant-launcher-1.10.14.jar
%%T%%/webapps/opengrok/WEB-INF/lib/aopalliance-repackaged-3.0.6.jar
%%T%%/webapps/opengrok/WEB-INF/lib/asm-7.1.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/asm-analysis-9.1.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/asm-commons-9.1.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/asm-tree-9.1.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/asm-util-9.1.jar
%%T%%/webapps/opengrok/WEB-INF/lib/bcel-6.7.0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/cglib-3.3.0.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-algorithms-2.22.3.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-algorithms-2.27ea0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-analytics-0.EMPTY.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-bytes-2.22.19.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-core-2.22.35.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-map-3.22.9.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-threads-2.22.16.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-values-2.22.2.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-wire-2.22.22.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-bytes-2.27ea0.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-core-2.27ea0.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-map-3.27ea0.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-threads-2.27ea0.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-values-2.27ea0.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/chronicle-wire-2.27ea0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/classgraph-4.8.173.jar
%%T%%/webapps/opengrok/WEB-INF/lib/classmate-1.5.1.jar
%%T%%/webapps/opengrok/WEB-INF/lib/commons-compress-1.26.0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/commons-io-2.14.0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/commons-lang3-3.13.0.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/compiler-2.21ea81.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/compiler-2.27ea0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/cron-utils-9.1.6.jar
%%T%%/webapps/opengrok/WEB-INF/lib/expressly-5.0.0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/hibernate-validator-8.0.1.Final.jar
@@ -141,13 +137,13 @@
%%T%%/webapps/opengrok/WEB-INF/lib/jersey-media-json-jackson-3.1.7.jar
%%T%%/webapps/opengrok/WEB-INF/lib/jersey-server-3.1.7.jar
%%T%%/webapps/opengrok/WEB-INF/lib/jettison-1.5.4.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/jffi-1.3.5-native.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/jffi-1.3.5.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/jffi-1.3.12-native.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/jffi-1.3.12.jar
%%T%%/webapps/opengrok/WEB-INF/lib/jna-5.5.0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/jna-platform-5.5.0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/jnr-a64asm-1.0.0.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/jnr-constants-0.10.2.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/jnr-ffi-2.2.6.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/jnr-constants-0.10.4.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/jnr-ffi-2.2.15.jar
%%T%%/webapps/opengrok/WEB-INF/lib/jnr-x86asm-1.0.2.jar
%%T%%/webapps/opengrok/WEB-INF/lib/jquery-3.6.4.jar
%%T%%/webapps/opengrok/WEB-INF/lib/lucene-analysis-common-9.9.2.jar
@@ -167,12 +163,12 @@
%%T%%/webapps/opengrok/WEB-INF/lib/micrometer-registry-statsd-1.14.1.jar
%%T%%/webapps/opengrok/WEB-INF/lib/modelmapper-3.1.1.jar
%%T%%/webapps/opengrok/WEB-INF/lib/mxparser-1.2.2.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/opengrok-1.13.27.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/opengrok-1.13.30.jar
%%T%%/webapps/opengrok/WEB-INF/lib/org.eclipse.jgit-6.6.1.202309021850-r.jar
%%T%%/webapps/opengrok/WEB-INF/lib/org.suigeneris.jrcs.diff-0.4.2.jar
%%T%%/webapps/opengrok/WEB-INF/lib/org.suigeneris.jrcs.rcs-0.4.2.jar
%%T%%/webapps/opengrok/WEB-INF/lib/osgi-resource-locator-1.0.3.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/posix-2.22.9.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/posix-2.27ea0.jar
%%T%%/webapps/opengrok/WEB-INF/lib/prometheus-metrics-config-1.3.3.jar
%%T%%/webapps/opengrok/WEB-INF/lib/prometheus-metrics-core-1.3.3.jar
%%T%%/webapps/opengrok/WEB-INF/lib/prometheus-metrics-exposition-formats-1.3.3.jar
@@ -182,7 +178,7 @@
%%T%%/webapps/opengrok/WEB-INF/lib/slf4j-api-2.0.13.jar
%%T%%/webapps/opengrok/WEB-INF/lib/slf4j-nop-1.7.30.jar
%%T%%/webapps/opengrok/WEB-INF/lib/snakeyaml-2.2.jar
-%%T%%/webapps/opengrok/WEB-INF/lib/suggester-1.13.27.jar
+%%T%%/webapps/opengrok/WEB-INF/lib/suggester-1.13.30.jar
%%T%%/webapps/opengrok/WEB-INF/lib/tablesorter-2.31.3.jar
%%T%%/webapps/opengrok/WEB-INF/lib/txw2-3.0.2.jar
%%T%%/webapps/opengrok/WEB-INF/lib/versioncompare-1.5.0.jar
diff --git a/devel/p5-Devel-Cover/Makefile b/devel/p5-Devel-Cover/Makefile
index 043b4fb68e81..b734bf01785f 100644
--- a/devel/p5-Devel-Cover/Makefile
+++ b/devel/p5-Devel-Cover/Makefile
@@ -1,5 +1,5 @@
PORTNAME= Devel-Cover
-PORTVERSION= 1.48
+PORTVERSION= 1.49
CATEGORIES= devel perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
diff --git a/devel/p5-Devel-Cover/distinfo b/devel/p5-Devel-Cover/distinfo
index 381226fcb98e..ddc8ecda1616 100644
--- a/devel/p5-Devel-Cover/distinfo
+++ b/devel/p5-Devel-Cover/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747205639
-SHA256 (Devel-Cover-1.48.tar.gz) = 063b81a5095a6ac241485c44e059fb1ee5543929bc4da82ac0574981c973e18d
-SIZE (Devel-Cover-1.48.tar.gz) = 230964
+TIMESTAMP = 1747720912
+SHA256 (Devel-Cover-1.49.tar.gz) = 8dadcac44cfa3c2717af14bec50998cbe422823be670a5bf3d1629ae43d1b6b5
+SIZE (Devel-Cover-1.49.tar.gz) = 231190
diff --git a/devel/websvn/Makefile b/devel/websvn/Makefile
index 667d7e51b37b..024d8d5d73a3 100644
--- a/devel/websvn/Makefile
+++ b/devel/websvn/Makefile
@@ -1,5 +1,5 @@
PORTNAME= websvn
-PORTVERSION= 2.8.4
+PORTVERSION= 2.8.5
CATEGORIES= devel www
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
diff --git a/devel/websvn/distinfo b/devel/websvn/distinfo
index 103450249df8..bf99f8105780 100644
--- a/devel/websvn/distinfo
+++ b/devel/websvn/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1710758315
-SHA256 (websvnphp-websvn-2.8.4_GH0.tar.gz) = 04324ba391c5dd79abaff9ecbbd06cfda979e15806438da780bde60ef64af43e
-SIZE (websvnphp-websvn-2.8.4_GH0.tar.gz) = 254505
+TIMESTAMP = 1747745416
+SHA256 (websvnphp-websvn-2.8.5_GH0.tar.gz) = bc6eeeb873c9e0fdd18f4783b82532b7f6df070f2e027d3b26db271f8aaadbce
+SIZE (websvnphp-websvn-2.8.5_GH0.tar.gz) = 254050
diff --git a/games/xfce4-eyes-plugin/Makefile b/games/xfce4-eyes-plugin/Makefile
index 41c4703ae39d..c3a997e9e683 100644
--- a/games/xfce4-eyes-plugin/Makefile
+++ b/games/xfce4-eyes-plugin/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xfce4-eyes-plugin
-PORTVERSION= 4.6.2
+PORTVERSION= 4.7.0
CATEGORIES= games xfce
MASTER_SITES= XFCE/panel-plugins
@@ -9,18 +9,17 @@ WWW= https://docs.xfce.org/panel-plugins/xfce4-eyes-plugin
LICENSE= GPLv2
-USES= gettext-tools gmake gnome libtool pkgconfig tar:bzip2 xfce xorg
-USE_GNOME= cairo gtk30
+USES= gettext-tools gnome meson pkgconfig tar:xz xfce xorg
+USE_GNOME= gtk30
USE_XFCE= libmenu panel
USE_XORG= x11
-GNU_CONFIGURE= yes
-INSTALL_TARGET= install-strip
-
OPTIONS_DEFINE= NLS
OPTIONS_SUB= yes
-NLS_USES= gettext-runtime
-NLS_CONFIGURE_ENABLE= nls
+NLS_USES= gettext-runtime
+
+post-patch-NLS-off:
+ @${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build
.include <bsd.port.mk>
diff --git a/games/xfce4-eyes-plugin/distinfo b/games/xfce4-eyes-plugin/distinfo
index 0e95c023a4a5..c5b824c83b14 100644
--- a/games/xfce4-eyes-plugin/distinfo
+++ b/games/xfce4-eyes-plugin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735503814
-SHA256 (xfce4-eyes-plugin-4.6.2.tar.bz2) = 02b4ac637604a0b9262616cb9613e0fe6797fb6b0f1fc2889a77e1e0ad4a01a5
-SIZE (xfce4-eyes-plugin-4.6.2.tar.bz2) = 447028
+TIMESTAMP = 1747674642
+SHA256 (xfce4-eyes-plugin-4.7.0.tar.xz) = 87f9b978ca75abb3aa5edb1315eb65ef98654a662c14621847ddffe8aa6574ad
+SIZE (xfce4-eyes-plugin-4.7.0.tar.xz) = 54108
diff --git a/games/xfce4-eyes-plugin/pkg-plist b/games/xfce4-eyes-plugin/pkg-plist
index 95c4274d345e..d0ba9c633d98 100644
--- a/games/xfce4-eyes-plugin/pkg-plist
+++ b/games/xfce4-eyes-plugin/pkg-plist
@@ -71,8 +71,8 @@ share/xfce4/eyes/themes/Bizarre/config
share/xfce4/eyes/themes/Bloodshot/Bloodshot-eye.png
share/xfce4/eyes/themes/Bloodshot/Bloodshot-pupil.png
share/xfce4/eyes/themes/Bloodshot/config
-share/xfce4/eyes/themes/Chibi/chibi-eye.png
-share/xfce4/eyes/themes/Chibi/chibi-pupil.png
+share/xfce4/eyes/themes/Chibi/Chibi-eye.png
+share/xfce4/eyes/themes/Chibi/Chibi-pupil.png
share/xfce4/eyes/themes/Chibi/config
share/xfce4/eyes/themes/Default-tiny/Default-tiny-eye.png
share/xfce4/eyes/themes/Default-tiny/Default-tiny-pupil.png
@@ -84,6 +84,6 @@ share/xfce4/eyes/themes/Horrid/Horrid-eye.png
share/xfce4/eyes/themes/Horrid/Horrid-pupil.png
share/xfce4/eyes/themes/Horrid/config
share/xfce4/eyes/themes/Tango/config
-share/xfce4/eyes/themes/Tango/tango-eye.png
-share/xfce4/eyes/themes/Tango/tango-pupil.png
+share/xfce4/eyes/themes/Tango/Tango-eye.png
+share/xfce4/eyes/themes/Tango/Tango-pupil.png
share/xfce4/panel/plugins/eyes.desktop
diff --git a/math/xfce4-calculator-plugin/Makefile b/math/xfce4-calculator-plugin/Makefile
index 53097e122358..f1b756249626 100644
--- a/math/xfce4-calculator-plugin/Makefile
+++ b/math/xfce4-calculator-plugin/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xfce4-calculator-plugin
-PORTVERSION= 0.7.3
+PORTVERSION= 0.8.0
CATEGORIES= math xfce
MASTER_SITES= XFCE/panel-plugins
DIST_SUBDIR= xfce4
@@ -10,21 +10,18 @@ WWW= https://docs.xfce.org/panel-plugins/xfce4-calculator-plugin/start
LICENSE= GPLv2
-LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
-
-USES= compiler:c11 gettext-tools gmake gnome libtool pkgconfig \
- tar:bz2 xfce xorg
-USE_GNOME= cairo gdkpixbuf gtk30
+USES= compiler:c11 gettext-tools gnome meson pkgconfig tar:xz xfce \
+ xorg
+USE_GNOME= gtk30
USE_XFCE= libmenu panel
USE_XORG= x11
-GNU_CONFIGURE= yes
-INSTALL_TARGET= install-strip
-
OPTIONS_DEFINE= NLS
OPTIONS_SUB= yes
-NLS_CONFIGURE_ENABLE= nls
-NLS_USES= gettext-runtime
+NLS_USES= gettext-runtime
+
+post-patch-NLS-off:
+ @${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build
.include <bsd.port.mk>
diff --git a/math/xfce4-calculator-plugin/distinfo b/math/xfce4-calculator-plugin/distinfo
index 92d4c9278f2d..2cc0a4c5e89f 100644
--- a/math/xfce4-calculator-plugin/distinfo
+++ b/math/xfce4-calculator-plugin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735047891
-SHA256 (xfce4/xfce4-calculator-plugin-0.7.3.tar.bz2) = 3feb5f56092ceef2858c3c1bd443317d4caf289a6409f9db506f49088e19a2e8
-SIZE (xfce4/xfce4-calculator-plugin-0.7.3.tar.bz2) = 481917
+TIMESTAMP = 1747672757
+SHA256 (xfce4/xfce4-calculator-plugin-0.8.0.tar.xz) = aaf3d7e9654ef6cf8ec442ad9e4316c481f9a6087a8e8949261140f5ae136aeb
+SIZE (xfce4/xfce4-calculator-plugin-0.8.0.tar.xz) = 87640
diff --git a/math/xfce4-calculator-plugin/pkg-plist b/math/xfce4-calculator-plugin/pkg-plist
index 757d696c120d..3e1d82ea66b3 100644
--- a/math/xfce4-calculator-plugin/pkg-plist
+++ b/math/xfce4-calculator-plugin/pkg-plist
@@ -12,6 +12,7 @@ share/icons/hicolor/64x64/apps/xfce4-calculator-plugin.png
%%NLS%%share/locale/cs/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/da/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/de/LC_MESSAGES/xfce4-calculator-plugin.mo
+%%NLS%%share/locale/el/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/en_AU/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/en_CA/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/en_GB/LC_MESSAGES/xfce4-calculator-plugin.mo
@@ -50,6 +51,7 @@ share/icons/hicolor/64x64/apps/xfce4-calculator-plugin.png
%%NLS%%share/locale/sv/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/tr/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/uk/LC_MESSAGES/xfce4-calculator-plugin.mo
+%%NLS%%share/locale/vi/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/zh_CN/LC_MESSAGES/xfce4-calculator-plugin.mo
%%NLS%%share/locale/zh_TW/LC_MESSAGES/xfce4-calculator-plugin.mo
share/xfce4/panel/plugins/calculator.desktop
diff --git a/net/fb303/Makefile b/net/fb303/Makefile
index 9c94cf75845d..ae209abacb64 100644
--- a/net/fb303/Makefile
+++ b/net/fb303/Makefile
@@ -1,6 +1,6 @@
PORTNAME= fb303
DISTVERSIONPREFIX= v
-DISTVERSION= 2025.05.12.00
+DISTVERSION= 2025.05.19.00
CATEGORIES= net
MAINTAINER= yuri@FreeBSD.org
diff --git a/net/fb303/distinfo b/net/fb303/distinfo
index bfc0edc35811..e2e85af48148 100644
--- a/net/fb303/distinfo
+++ b/net/fb303/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747102742
-SHA256 (facebook-fb303-v2025.05.12.00_GH0.tar.gz) = fafae635c104056f3db94cee30b3159017dcf427a635a656bdeed33edead7dfa
-SIZE (facebook-fb303-v2025.05.12.00_GH0.tar.gz) = 265966
+TIMESTAMP = 1747730526
+SHA256 (facebook-fb303-v2025.05.19.00_GH0.tar.gz) = 860d4589886265b7a280c8a9b8ba0acd21717b1f1c94d5b28fc0e535fbf356b2
+SIZE (facebook-fb303-v2025.05.19.00_GH0.tar.gz) = 264164
diff --git a/net/mvfst/Makefile b/net/mvfst/Makefile
index 6eb2201bf0ba..655b656c6c5c 100644
--- a/net/mvfst/Makefile
+++ b/net/mvfst/Makefile
@@ -1,6 +1,6 @@
PORTNAME= mvfst
DISTVERSIONPREFIX= v
-DISTVERSION= 2025.05.12.00
+DISTVERSION= 2025.05.19.00
CATEGORIES= net
MAINTAINER= yuri@FreeBSD.org
diff --git a/net/mvfst/distinfo b/net/mvfst/distinfo
index c75bb6cb8893..618b518d67b7 100644
--- a/net/mvfst/distinfo
+++ b/net/mvfst/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747102743
-SHA256 (facebook-mvfst-v2025.05.12.00_GH0.tar.gz) = 4e2b9cb907bab79219e08259fd8f828f2aaf8ca86186c605e99c8a605516889b
-SIZE (facebook-mvfst-v2025.05.12.00_GH0.tar.gz) = 2085536
+TIMESTAMP = 1747730527
+SHA256 (facebook-mvfst-v2025.05.19.00_GH0.tar.gz) = 01a636b7f5ad7c9cd57f07a7d8c1f74875be74720e1df1bd8029833ee0874e49
+SIZE (facebook-mvfst-v2025.05.19.00_GH0.tar.gz) = 2087389
diff --git a/net/mvfst/pkg-plist b/net/mvfst/pkg-plist
index 59c1a9c2f644..2c394edcc3d7 100644
--- a/net/mvfst/pkg-plist
+++ b/net/mvfst/pkg-plist
@@ -59,7 +59,7 @@ include/quic/common/IntervalSet.h
include/quic/common/NetworkData.h
include/quic/common/Optional.h
include/quic/common/QuicBuffer.h
-include/quic/common/SmallCollections.h
+include/quic/common/QuicRange.h
include/quic/common/SocketUtil.h
include/quic/common/TimePoints.h
include/quic/common/TimeUtil.h
diff --git a/net/wangle/Makefile b/net/wangle/Makefile
index 15299000c89f..ef02ceda0936 100644
--- a/net/wangle/Makefile
+++ b/net/wangle/Makefile
@@ -1,6 +1,6 @@
PORTNAME= wangle
DISTVERSIONPREFIX= v
-DISTVERSION= 2025.05.12.00
+DISTVERSION= 2025.05.19.00
CATEGORIES= net
MAINTAINER= yuri@FreeBSD.org
diff --git a/net/wangle/distinfo b/net/wangle/distinfo
index bec90b8a7d3e..dbc32d05d8d2 100644
--- a/net/wangle/distinfo
+++ b/net/wangle/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747102734
-SHA256 (facebook-wangle-v2025.05.12.00_GH0.tar.gz) = a5f0b6c8aa533ecfd41311bd70cfe3fd968d768c28f1f2643dba4c287ea59045
-SIZE (facebook-wangle-v2025.05.12.00_GH0.tar.gz) = 368610
+TIMESTAMP = 1747730519
+SHA256 (facebook-wangle-v2025.05.19.00_GH0.tar.gz) = 770cbec72dc27e9ada048afbd14d29976e569bbc70fefa197d1315898b555916
+SIZE (facebook-wangle-v2025.05.19.00_GH0.tar.gz) = 368630
diff --git a/security/Makefile b/security/Makefile
index 2e976acf904a..b742b84e77e2 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -462,6 +462,7 @@
SUBDIR += openvpn
SUBDIR += openvpn-admin
SUBDIR += openvpn-auth-ldap
+ SUBDIR += openvpn-auth-oauth2
SUBDIR += openvpn-auth-radius
SUBDIR += openvpn-auth-script
SUBDIR += openvpn-devel
diff --git a/security/fizz/Makefile b/security/fizz/Makefile
index 69356dd3585d..58cb52d68aeb 100644
--- a/security/fizz/Makefile
+++ b/security/fizz/Makefile
@@ -1,6 +1,6 @@
PORTNAME= fizz
DISTVERSIONPREFIX= v
-DISTVERSION= 2025.05.12.00
+DISTVERSION= 2025.05.19.00
CATEGORIES= security
MAINTAINER= yuri@FreeBSD.org
diff --git a/security/fizz/distinfo b/security/fizz/distinfo
index b92c50f7c07e..74e44fafe591 100644
--- a/security/fizz/distinfo
+++ b/security/fizz/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747102733
-SHA256 (facebookincubator-fizz-v2025.05.12.00_GH0.tar.gz) = d3608b4595fff4e0d59585b1b12bead6f6ce4bf2d3bee41fb084f7128a28e4b2
-SIZE (facebookincubator-fizz-v2025.05.12.00_GH0.tar.gz) = 754096
+TIMESTAMP = 1747730518
+SHA256 (facebookincubator-fizz-v2025.05.19.00_GH0.tar.gz) = 83ce2e22c993cad1c5cbc5f3ee1aff4c44af99eeeb3dd3d539f1017a7af18647
+SIZE (facebookincubator-fizz-v2025.05.19.00_GH0.tar.gz) = 754906
diff --git a/security/openvpn-auth-oauth2/Makefile b/security/openvpn-auth-oauth2/Makefile
new file mode 100644
index 000000000000..c342db717442
--- /dev/null
+++ b/security/openvpn-auth-oauth2/Makefile
@@ -0,0 +1,27 @@
+PORTNAME= openvpn-auth-oauth2
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.23.0
+CATEGORIES= security net net-vpn
+
+MAINTAINER= otis@FreeBSD.org
+COMMENT= Management client for OpenVPN that handles SSO authentication
+WWW= https://github.com/jkroepke/openvpn-auth-oauth2
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+EXTRACT_DEPENDS= ${BUILD_DEPENDS}
+
+USES= go:1.24,modules
+
+GO_MODULE= github.com/jkroepke/openvpn-auth-oauth2
+
+SUB_FILES= openvpn_auth_oauth2
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKDIR}/bin/openvpn-auth-oauth2 ${STAGEDIR}${PREFIX}/sbin
+ ${MKDIR} ${STAGEDIR}${ETCDIR}
+ ${INSTALL_DATA} ${WRKSRC}/config.example.yaml ${STAGEDIR}${ETCDIR}/openvpn-auth-oauth2.yml.sample
+ ${INSTALL_SCRIPT} ${WRKDIR}/openvpn_auth_oauth2 ${STAGEDIR}${PREFIX}/etc/rc.d
+
+.include <bsd.port.mk>
diff --git a/security/openvpn-auth-oauth2/distinfo b/security/openvpn-auth-oauth2/distinfo
new file mode 100644
index 000000000000..c69fcf7f3670
--- /dev/null
+++ b/security/openvpn-auth-oauth2/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1747749448
+SHA256 (go/security_openvpn-auth-oauth2/openvpn-auth-oauth2-v1.23.0/v1.23.0.mod) = 3cfe3d6fcb9c2dadd04584a4dee41a867c33b720a91127efaaa501fd11726f2b
+SIZE (go/security_openvpn-auth-oauth2/openvpn-auth-oauth2-v1.23.0/v1.23.0.mod) = 1899
+SHA256 (go/security_openvpn-auth-oauth2/openvpn-auth-oauth2-v1.23.0/v1.23.0.zip) = 984bf33860740e9d4f3896db38bfea064a2b21553c85c8c0ea98856933c64b71
+SIZE (go/security_openvpn-auth-oauth2/openvpn-auth-oauth2-v1.23.0/v1.23.0.zip) = 1850633
diff --git a/security/openvpn-auth-oauth2/files/openvpn_auth_oauth2.in b/security/openvpn-auth-oauth2/files/openvpn_auth_oauth2.in
new file mode 100644
index 000000000000..40015f4a8e4a
--- /dev/null
+++ b/security/openvpn-auth-oauth2/files/openvpn_auth_oauth2.in
@@ -0,0 +1,148 @@
+#!/bin/sh
+
+# PROVIDE: openvpn_auth_oauth2
+# REQUIRE: FILESYSTEMS defaultroute netwait resolv
+# BEFORE: NETWORKING
+# KEYWORD: shutdown
+
+# Add the following line to /etc/rc.conf to enable openvpn_auth_oauth2:
+#
+# openvpn_auth_oauth2_enable="YES"
+#
+# You also can set alternative config with
+# openvpn_auth_oauth2_config="/path/to/config"
+#
+# Multiple profiles are supported with
+#
+# openvpn_auth_oauth2_profiles="name1 name2"
+# openvpn_auth_oauth2_name1_enable="YES"
+# openvpn_auth_oauth2_name1_config="/path/to/config1"
+# openvpn_auth_oauth2_name2_enable="YES"
+# openvpn_auth_oauth2_name2_config="/path/to/config2"
+#
+
+. /etc/rc.subr
+
+name=openvpn_auth_oauth2
+rcvar=openvpn_auth_oauth2_enable
+desc="Single sign-on for OpenVPN"
+
+eval ": \${${name}_enable:=\"NO\"}"
+eval ": \${${name}_config:=%%ETCDIR%%/openvpn-auth-oauth2.yml}"
+load_rc_config "${name}"
+
+_openvpn_auth_oauth2="%%PREFIX%%/sbin/openvpn-auth-oauth2"
+_common_daemon_args=-Sfc
+_piddir=/var/run/openvpn-auth-oauth2
+
+# Set PID file
+pidfile="${_piddir}/openvpn-auth-oauth2.pid"
+
+required_files=${openvpn_auth_oauth2_config}
+command=/usr/sbin/daemon
+command_args="${_common_daemon_args} -p ${pidfile} -t ${name} \
+${_openvpn_auth_oauth2} --config ${openvpn_auth_oauth2_config}"
+procname="${_openvpn_auth_oauth2}"
+extra_commands=reload
+reload_cmd=openvpn_auth_oauth2_reload
+start_precmd="[ -d ${_piddir} ] || /usr/bin/install -d ${_piddir}"
+
+openvpn_auth_oauth2_reload()
+{
+ if [ "x${openvpn_auth_oauth2_profiles}" != "x" -a "x$1" != "x" ]; then
+ for profile in ${openvpn_auth_oauth2_profiles}; do
+ eval _enable="\${openvpn_auth_oauth2_${profile}_enable}"
+ case "x${_enable:-${openvpn_auth_oauth2_enable}}" in
+ x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee])
+ continue
+ ;;
+ x[Yy][Ee][Ss])
+ ;;
+ *)
+ if test -z "$_enable"; then
+ _var=openvpn_auth_oauth2_enable
+ else
+ _var=openvpn_auth_oauth2_"${profile}"_enable
+ fi
+ echo "Bad value" \
+ "'${_enable:-${openvpn_auth_oauth2_enable}}'" \
+ "for ${_var}. " \
+ "Profile ${profile} skipped."
+ continue
+ ;;
+ esac
+ echo "===> openvpn-auth-oauth2 profile: ${profile}"
+ pidfile="${_piddir}/openvpn-auth-oauth2-${profile}.pid"
+ kill -HUP `cat ${pidfile}`
+ retcode="$?"
+ if [ "0${retcode}" -ne 0 ]; then
+ failed="${profile} (${retcode}) ${failed:-}"
+ else
+ success="${profile} ${success:-}"
+ fi
+ done
+ exit 0
+ else
+ echo "===> openvpn-auth-outh2 profile ${profile} reloading"
+ kill -HUP `cat ${pidfile}`
+ fi
+}
+
+if [ -n "$2" ]; then
+ profile="$2"
+ if [ "x${openvpn_auth_oauth2_profiles}" != "x" ]; then
+ eval openvpn_auth_oauth2_config="\${openvpn_auth_oauth2_${profile}_config:-%%ETCDIR%%/openvpn-auth-oauth2-${profile}.yml}"
+ if [ "x${openvpn_auth_oauth2_config}" = "x" ]; then
+ echo "You must define a configuration file (openvpn_auth_oauth2_${profile}_config)"
+ exit 1
+ fi
+
+ pidfile="${_piddir}/openvpn-auth-oauth2-${profile}.pid"
+
+ [ -f ${pidfile} ] || /usr/bin/install /dev/null "${pidfile}"
+
+ required_files="${openvpn_auth_oauth2_config}"
+ eval openvpn_auth_oauth2_enable="\${openvpn_auth_oauth2_${profile}_enable:-${openvpn_auth_oauth2_enable}}"
+ command_args="${_common_daemon_args} -t ${name}-${profile} -p ${pidfile} \
+ ${_openvpn_auth_oauth2} \
+ --config ${openvpn_auth_oauth2_config}"
+ else
+ echo "$0: extra argument ignored"
+ fi
+else
+ if [ "x${openvpn_auth_oauth2_profiles}" != "x" -a "x$1" != "x" ]; then
+ for profile in ${openvpn_auth_oauth2_profiles}; do
+ eval _enable="\${openvpn_auth_oauth2_${profile}_enable}"
+ case "x${_enable:-${openvpn_auth_oauth2_enable}}" in
+ x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee])
+ continue
+ ;;
+ x[Yy][Ee][Ss])
+ ;;
+ *)
+ if test -z "$_enable"; then
+ _var=openvpn_auth_oauth2_enable
+ else
+ _var=openvpn_auth_oauth2_"${profile}"_enable
+ fi
+ echo "Bad value" \
+ "'${_enable:-${openvpn_auth_oauth2_enable}}'" \
+ "for ${_var}. " \
+ "Profile ${profile} skipped."
+ continue
+ ;;
+ esac
+ echo "===> openvpn-auth-oauth2 profile: ${profile}"
+ %%PREFIX%%/etc/rc.d/openvpn_auth_oauth2 $1 ${profile}
+ retcode="$?"
+ if [ "0${retcode}" -ne 0 ]; then
+ failed="${profile} (${retcode}) ${failed:-}"
+ else
+ success="${profile} ${success:-}"
+ fi
+ done
+ exit 0
+ fi
+fi
+
+run_rc_command "$1"
diff --git a/security/openvpn-auth-oauth2/pkg-descr b/security/openvpn-auth-oauth2/pkg-descr
new file mode 100644
index 000000000000..52e575e966a1
--- /dev/null
+++ b/security/openvpn-auth-oauth2/pkg-descr
@@ -0,0 +1,15 @@
+openvpn-auth-oauth2 is a management client for OpenVPN that handles the single
+sign-on (SSO) authentication against various OIDC providers. This project aims
+to simplify the process of integrating OpenVPN with OIDC providers such as:
+
+- Microsoft Entra ID (Azure AD)
+- GitHub
+- Okta
+- Google Workspace
+- Zittal
+- Digitalocean
+- Keycloak
+- any other OIDC compatible auth server
+
+For comprehensive documentation, point the browser to:
+https://github.com/jkroepke/openvpn-auth-oauth2/wiki/Configuration
diff --git a/security/openvpn-auth-oauth2/pkg-plist b/security/openvpn-auth-oauth2/pkg-plist
new file mode 100644
index 000000000000..c96f261f8393
--- /dev/null
+++ b/security/openvpn-auth-oauth2/pkg-plist
@@ -0,0 +1,3 @@
+@sample %%ETCDIR%%/openvpn-auth-oauth2.yml.sample
+etc/rc.d/openvpn_auth_oauth2
+sbin/openvpn-auth-oauth2
diff --git a/sysutils/sysinfo/Makefile b/sysutils/sysinfo/Makefile
index d156a808fcd6..09e297a84a87 100644
--- a/sysutils/sysinfo/Makefile
+++ b/sysutils/sysinfo/Makefile
@@ -1,5 +1,6 @@
PORTNAME= sysinfo
PORTVERSION= 1.0.4
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= https://codeberg.org/BSDforge/${PORTNAME}/archive/${DISTVERSION}${EXTRACT_SUFX}?dummy=/
diff --git a/sysutils/sysinfo/pkg-plist b/sysutils/sysinfo/pkg-plist
index 1529371c5fc0..366eb2d24880 100644
--- a/sysutils/sysinfo/pkg-plist
+++ b/sysutils/sysinfo/pkg-plist
@@ -1,4 +1,4 @@
-%%ETCDIR%%.conf.sample
+@sample %%ETCDIR%%.conf.sample
sbin/sysinfo
share/man/man5/sysinfo.conf.5.gz
share/man/man8/sysinfo.8.gz
diff --git a/sysutils/xfce4-battery-plugin/Makefile b/sysutils/xfce4-battery-plugin/Makefile
index ae3977149806..d83e7d9c7978 100644
--- a/sysutils/xfce4-battery-plugin/Makefile
+++ b/sysutils/xfce4-battery-plugin/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xfce4-battery-plugin
-PORTVERSION= 1.1.6
+PORTVERSION= 1.2.0
CATEGORIES= sysutils xfce
MASTER_SITES= XFCE/panel-plugins
DIST_SUBDIR= xfce4
@@ -12,22 +12,19 @@ LICENSE= GPLv2
ONLY_FOR_ARCHS= amd64 i386
-LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
-
-USES= alias gettext-tools gmake gnome libtool pkgconfig tar:bzip2 \
- xfce
-USE_GNOME= cairo gdkpixbuf glib20 gtk30
+USES= alias gettext-tools gnome meson pkgconfig tar:xz xfce
+USE_GNOME= glib20 gtk30
USE_LDCONFIG= yes
USE_XFCE= libmenu panel
-GNU_CONFIGURE= yes
-INSTALL_TARGET= install-strip
SSP_UNSAFE= yes
OPTIONS_DEFINE= NLS
OPTIONS_SUB= yes
-NLS_USES= gettext-runtime
-NLS_CONFIGURE_ENABLE= nls
+NLS_USES= gettext-runtime
+
+post-patch-NLS-off:
+ @${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build
.include <bsd.port.mk>
diff --git a/sysutils/xfce4-battery-plugin/distinfo b/sysutils/xfce4-battery-plugin/distinfo
index d379d4d0e7a9..22fe0eec62a3 100644
--- a/sysutils/xfce4-battery-plugin/distinfo
+++ b/sysutils/xfce4-battery-plugin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735047695
-SHA256 (xfce4/xfce4-battery-plugin-1.1.6.tar.bz2) = 327d7304dded8411cd1a48da4f46bac248b44d8b27ffbc2036e0268cb37c3676
-SIZE (xfce4/xfce4-battery-plugin-1.1.6.tar.bz2) = 569701
+TIMESTAMP = 1747672610
+SHA256 (xfce4/xfce4-battery-plugin-1.2.0.tar.xz) = 1dba8f470d2b12517e7b86d83cd2ebf13eb57ff1a01a4f2d2d156cf5194d97b6
+SIZE (xfce4/xfce4-battery-plugin-1.2.0.tar.xz) = 111360
diff --git a/sysutils/xfce4-cpugraph-plugin/Makefile b/sysutils/xfce4-cpugraph-plugin/Makefile
index 3c377c7ad296..61c0ee7d8198 100644
--- a/sysutils/xfce4-cpugraph-plugin/Makefile
+++ b/sysutils/xfce4-cpugraph-plugin/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xfce4-cpugraph-plugin
-PORTVERSION= 1.2.11
+PORTVERSION= 1.3.0
CATEGORIES= sysutils xfce
MASTER_SITES= XFCE/panel-plugins
DIST_SUBDIR= xfce4
@@ -10,21 +10,18 @@ WWW= https://docs.xfce.org/panel-plugins/xfce4-cpugraph-plugin/start
LICENSE= GPLv2
-LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
-
-USES= compiler:c++17-lang gettext-tools gmake gnome libtool pkgconfig \
- tar:bzip2 xfce
+USES= compiler:c++17-lang gettext-tools gnome meson pkgconfig tar:xz \
+ xfce
USE_CXXSTD= c++17
-USE_GNOME= cairo gdkpixbuf gtk30
+USE_GNOME= gtk30
USE_XFCE= libmenu panel xfconf
-GNU_CONFIGURE= yes
-INSTALL_TARGET= install-strip
-
OPTIONS_DEFINE= NLS
OPTIONS_SUB= yes
-NLS_USES= gettext-runtime
-NLS_CONFIGURE_ENABLE= nls
+NLS_USES= gettext-runtime
+
+post-patch-NLS-off:
+ @${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build
.include <bsd.port.mk>
diff --git a/sysutils/xfce4-cpugraph-plugin/distinfo b/sysutils/xfce4-cpugraph-plugin/distinfo
index d26b524cec82..3a7a615a32d2 100644
--- a/sysutils/xfce4-cpugraph-plugin/distinfo
+++ b/sysutils/xfce4-cpugraph-plugin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735164388
-SHA256 (xfce4/xfce4-cpugraph-plugin-1.2.11.tar.bz2) = 58aa31df1934afc2a352744754a730a3d796b1246e12c7a5e86f7b6a403ca20d
-SIZE (xfce4/xfce4-cpugraph-plugin-1.2.11.tar.bz2) = 569026
+TIMESTAMP = 1747673776
+SHA256 (xfce4/xfce4-cpugraph-plugin-1.3.0.tar.xz) = c3305edea13ae785ea8b7ce8efbb40b5d5cac69a6f8bf790e4f2efaa780ca097
+SIZE (xfce4/xfce4-cpugraph-plugin-1.3.0.tar.xz) = 94824
diff --git a/sysutils/xfce4-fsguard-plugin/Makefile b/sysutils/xfce4-fsguard-plugin/Makefile
index cf391607e146..1f4f41d95e7b 100644
--- a/sysutils/xfce4-fsguard-plugin/Makefile
+++ b/sysutils/xfce4-fsguard-plugin/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xfce4-fsguard-plugin
-PORTVERSION= 1.1.4
+PORTVERSION= 1.2.0
CATEGORIES= sysutils xfce
MASTER_SITES= XFCE/panel-plugins
DIST_SUBDIR= xfce4
@@ -11,21 +11,18 @@ WWW= https://docs.xfce.org/panel-plugins/xfce4-fsguard-plugin/start
# COPYING file is wrong compared to license header
LICENSE= BSD2CLAUSE
-LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
-
-USES= compiler:c11 gettext-tools gmake gnome libtool pkgconfig \
- tar:bzip2 xfce xorg
-USE_GNOME= cairo gdkpixbuf gtk30
+USES= compiler:c11 gettext-tools gnome meson pkgconfig tar:xz xfce \
+ xorg
+USE_GNOME= gdkpixbuf gtk30
USE_XFCE= libmenu panel
USE_XORG= x11
-GNU_CONFIGURE= yes
-INSTALL_TARGET= install-strip
-
OPTIONS_DEFINE= NLS
OPTIONS_SUB= yes
-NLS_USES= gettext-runtime
-NLS_CONFIGURE_ENABLE= nls
+NLS_USES= gettext-runtime
+
+post-patch-NLS-off:
+ @${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build
.include <bsd.port.mk>
diff --git a/sysutils/xfce4-fsguard-plugin/distinfo b/sysutils/xfce4-fsguard-plugin/distinfo
index a4a7f2e25da8..551b71263d1d 100644
--- a/sysutils/xfce4-fsguard-plugin/distinfo
+++ b/sysutils/xfce4-fsguard-plugin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735162861
-SHA256 (xfce4/xfce4-fsguard-plugin-1.1.4.tar.bz2) = 24b3789be6de92678e7036678530c4da4b3838aa3cda428439aa8d140704a4a6
-SIZE (xfce4/xfce4-fsguard-plugin-1.1.4.tar.bz2) = 468762
+TIMESTAMP = 1747675372
+SHA256 (xfce4/xfce4-fsguard-plugin-1.2.0.tar.xz) = 9e40cf3ce7b34e1c27d6b442f3a067886c35154b5d0c4d644a239038611da64f
+SIZE (xfce4/xfce4-fsguard-plugin-1.2.0.tar.xz) = 64096
diff --git a/textproc/p5-Text-FindIndent/Makefile b/textproc/p5-Text-FindIndent/Makefile
index 7c946767c83f..d46be2acdcff 100644
--- a/textproc/p5-Text-FindIndent/Makefile
+++ b/textproc/p5-Text-FindIndent/Makefile
@@ -1,6 +1,5 @@
PORTNAME= Text-FindIndent
-PORTVERSION= 0.10
-PORTREVISION= 1
+DISTVERSION= 0.12
CATEGORIES= textproc perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:SMUELLER
@@ -8,7 +7,7 @@ PKGNAMEPREFIX= p5-
MAINTAINER= bofh@FreeBSD.org
COMMENT= Perl5 module to heuristically determine the indent style of a file
-WWW= https://metacpan.org/release/Text-FindIndent
+WWW= https://metacpan.org/dist/Text-FindIndent
LICENSE= ART10 GPLv1+
LICENSE_COMB= dual
@@ -16,4 +15,6 @@ LICENSE_COMB= dual
USES= perl5
USE_PERL5= configure
+NO_ARCH= yes
+
.include <bsd.port.mk>
diff --git a/textproc/p5-Text-FindIndent/distinfo b/textproc/p5-Text-FindIndent/distinfo
index 28b19d88e301..fbcc162706d6 100644
--- a/textproc/p5-Text-FindIndent/distinfo
+++ b/textproc/p5-Text-FindIndent/distinfo
@@ -1,2 +1,3 @@
-SHA256 (Text-FindIndent-0.10.tar.gz) = 492c37e7bb5a4fca665e03728c0affe39c1235f65d85f27136f487af29797a30
-SIZE (Text-FindIndent-0.10.tar.gz) = 34541
+TIMESTAMP = 1747755988
+SHA256 (Text-FindIndent-0.12.tar.gz) = 93cf7c74b313ac842108f272cd00cd6f705aa711a997d8a6345e3b4cae9242ca
+SIZE (Text-FindIndent-0.12.tar.gz) = 16906
diff --git a/www/chromium/Makefile b/www/chromium/Makefile
index 1dd3e43c87a9..023f8f9f95f5 100644
--- a/www/chromium/Makefile
+++ b/www/chromium/Makefile
@@ -1,5 +1,6 @@
PORTNAME= chromium
PORTVERSION= 136.0.7103.113
+PORTREVISION= 1
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= www wayland
diff --git a/www/chromium/files/patch-build_rust_allocator_BUILD.gn b/www/chromium/files/patch-build_rust_allocator_BUILD.gn
new file mode 100644
index 000000000000..cb1633140dcc
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_BUILD.gn
@@ -0,0 +1,109 @@
+--- build/rust/allocator/BUILD.gn.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/BUILD.gn
+@@ -0,0 +1,106 @@
++# Copyright 2025 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/buildflag_header.gni")
++import("//build/config/rust.gni")
++import("//build/rust/rust_static_library.gni")
++
++rust_allocator_uses_partition_alloc = false
++if (build_with_chromium) {
++ import("//base/allocator/partition_allocator/partition_alloc.gni")
++ rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc
++}
++
++# In ASAN builds, PartitionAlloc-Everywhere is disabled, meaning malloc() and
++# friends in C++ do not go to PartitionAlloc. So we also don't point the Rust
++# allocation functions at PartitionAlloc. Generally, this means we just direct
++# them to the Standard Library's allocator.
++#
++# However, on Windows the Standard Library uses HeapAlloc() and Windows ASAN
++# does *not* hook that method, so ASAN does not get to hear about allocations
++# made in Rust. To resolve this, we redirect allocation to _aligned_malloc
++# which Windows ASAN *does* hook.
++#
++# Note that there is a runtime option to make ASAN hook HeapAlloc() but
++# enabling it breaks Win32 APIs like CreateProcess:
++# https://crbug.com/368070343#comment29
++rust_allocator_uses_aligned_malloc = false
++if (!rust_allocator_uses_partition_alloc && is_win && is_asan) {
++ rust_allocator_uses_aligned_malloc = true
++}
++
++rust_allocator_uses_allocator_impls_h =
++ rust_allocator_uses_partition_alloc || rust_allocator_uses_aligned_malloc
++
++buildflag_header("buildflags") {
++ header = "buildflags.h"
++ flags = [
++ "RUST_ALLOCATOR_USES_PARTITION_ALLOC=$rust_allocator_uses_partition_alloc",
++ "RUST_ALLOCATOR_USES_ALIGNED_MALLOC=$rust_allocator_uses_aligned_malloc",
++ ]
++ visibility = [ ":*" ]
++}
++
++if (toolchain_has_rust) {
++ # All targets which depend on Rust code but are not linked by rustc must
++ # depend on this. Usually, this dependency will come from the rust_target() GN
++ # template. However, cargo_crate() does *not* include this dependency so any
++ # C++ targets which directly depend on a cargo_crate() must depend on this.
++ rust_static_library("allocator") {
++ sources = [ "lib.rs" ]
++ crate_root = "lib.rs"
++ cxx_bindings = [ "lib.rs" ]
++
++ deps = [ ":alloc_error_handler_impl" ]
++ if (rust_allocator_uses_allocator_impls_h) {
++ deps += [ ":allocator_impls" ]
++ }
++
++ no_chromium_prelude = true
++ no_allocator_crate = true
++ allow_unsafe = true
++
++ rustflags = []
++ if (rust_allocator_uses_allocator_impls_h) {
++ rustflags += [ "--cfg=rust_allocator_uses_allocator_impls_h" ]
++ cxx_bindings += [ "allocator_impls_ffi.rs" ]
++ sources += [ "allocator_impls_ffi.rs" ]
++ }
++
++ # TODO(https://crbug.com/410596442): Stop using unstable features here.
++ configs -= [ "//build/config/compiler:disallow_unstable_features" ]
++ }
++
++ if (rust_allocator_uses_allocator_impls_h) {
++ static_library("allocator_impls") {
++ public_deps = []
++ if (rust_allocator_uses_partition_alloc) {
++ public_deps +=
++ [ "//base/allocator/partition_allocator:partition_alloc" ]
++ }
++
++ sources = [
++ "allocator_impls.cc",
++ "allocator_impls.h",
++ ]
++ deps = [ ":buildflags" ]
++ visibility = [ ":*" ]
++ }
++ }
++
++ static_library("alloc_error_handler_impl") {
++ sources = [
++ # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been
++ # copied from `//base`.
++ # TODO(crbug.com/40279749): Avoid duplication / reuse code.
++ "alias.cc",
++ "alias.h",
++ "alloc_error_handler_impl.cc",
++ "alloc_error_handler_impl.h",
++ "compiler_specific.h",
++ "immediate_crash.h",
++ ]
++ visibility = [ ":*" ]
++ }
++}
diff --git a/www/chromium/files/patch-build_rust_allocator_DEPS b/www/chromium/files/patch-build_rust_allocator_DEPS
new file mode 100644
index 000000000000..74bb2d6c2421
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_DEPS
@@ -0,0 +1,12 @@
+--- build/rust/allocator/DEPS.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/DEPS
+@@ -0,0 +1,9 @@
++include_rules = [
++ "-base",
++]
++
++specific_include_rules = {
++ "allocator_impls.cc" : [
++ "+partition_alloc"
++ ]
++}
diff --git a/www/chromium/files/patch-build_rust_allocator_alias.cc b/www/chromium/files/patch-build_rust_allocator_alias.cc
new file mode 100644
index 000000000000..5280641f27e1
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_alias.cc
@@ -0,0 +1,25 @@
+--- build/rust/allocator/alias.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alias.cc
+@@ -0,0 +1,22 @@
++// 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.
++
++// This file has been copied from //base/debug/alias.cc ( additionally the APIs
++// were moved into the `build_rust_std` namespace).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#include "build/rust/allocator/alias.h"
++
++#include "build/rust/allocator/compiler_specific.h"
++
++namespace build_rust_std {
++namespace debug {
++
++// This file/function should be excluded from LTO/LTCG to ensure that the
++// compiler can't see this function's implementation when compiling calls to it.
++NOINLINE void Alias(const void* var) {}
++
++} // namespace debug
++} // namespace build_rust_std
diff --git a/www/chromium/files/patch-build_rust_allocator_alias.h b/www/chromium/files/patch-build_rust_allocator_alias.h
new file mode 100644
index 000000000000..6530c6ae8779
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_alias.h
@@ -0,0 +1,40 @@
+--- build/rust/allocator/alias.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alias.h
+@@ -0,0 +1,37 @@
++// 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.
++
++// This file has been copied from //base/debug/alias.h (and then trimmed to just
++// the APIs / macros needed by //build/rust/std; additionally the APIs were
++// moved into the `build_rust_std` namespace).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALIAS_H_
++#define BUILD_RUST_ALLOCATOR_ALIAS_H_
++
++#include <stddef.h>
++
++namespace build_rust_std {
++namespace debug {
++
++// Make the optimizer think that |var| is aliased. This can be used to prevent a
++// local variable from being optimized out (which is something that
++// `NO_CODE_FOLDING` macro definition below depends on). See
++// //base/debug/alias.h for more details.
++void Alias(const void* var);
++
++} // namespace debug
++
++} // namespace build_rust_std
++
++// Prevent code folding (where a linker identifies functions that are
++// bit-identical and overlays them, which saves space but it leads to confusing
++// call stacks because multiple symbols are at the same address). See
++// //base/debug/alias.h for more details.
++#define NO_CODE_FOLDING() \
++ const int line_number = __LINE__; \
++ build_rust_std::debug::Alias(&line_number)
++
++#endif // BUILD_RUST_ALLOCATOR_ALIAS_H_
diff --git a/www/chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc b/www/chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc
new file mode 100644
index 000000000000..048c267abefa
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc
@@ -0,0 +1,20 @@
+--- build/rust/allocator/alloc_error_handler_impl.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alloc_error_handler_impl.cc
+@@ -0,0 +1,17 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "build/rust/allocator/alloc_error_handler_impl.h"
++
++#include "build/rust/allocator/alias.h"
++#include "build/rust/allocator/immediate_crash.h"
++
++namespace rust_allocator_internal {
++
++void alloc_error_handler_impl() {
++ NO_CODE_FOLDING();
++ IMMEDIATE_CRASH();
++}
++
++} // namespace rust_allocator_internal
diff --git a/www/chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.h b/www/chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.h
new file mode 100644
index 000000000000..887ea602b027
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.h
@@ -0,0 +1,24 @@
+--- build/rust/allocator/alloc_error_handler_impl.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alloc_error_handler_impl.h
+@@ -0,0 +1,21 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
++#define BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
++
++// This header exposes to Rust a C++ implementation of quickly crashing after an
++// allocation error. (The API below is called from `__rust_alloc_error_handler`
++// in `lib.rs`.)
++//
++// TODO(lukasza): Investigate if we can delete this `.h` / `.cc` and just call
++// `std::process::abort()` (or something else?) directly from `.rs`. The main
++// open question is how much we care about `NO_CODE_FOLDING`.
++namespace rust_allocator_internal {
++
++void alloc_error_handler_impl();
++
++} // namespace rust_allocator_internal
++
++#endif // BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
diff --git a/www/chromium/files/patch-build_rust_allocator_allocator__impls.cc b/www/chromium/files/patch-build_rust_allocator_allocator__impls.cc
new file mode 100644
index 000000000000..94e04d7b966a
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_allocator__impls.cc
@@ -0,0 +1,108 @@
+--- build/rust/allocator/allocator_impls.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls.cc
+@@ -0,0 +1,105 @@
++// Copyright 2021 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "build/rust/allocator/allocator_impls.h"
++
++#ifdef UNSAFE_BUFFERS_BUILD
++// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
++#pragma allow_unsafe_libc_calls
++#endif
++
++#include <cstddef>
++#include <cstring>
++
++#include "build/build_config.h"
++#include "build/rust/allocator/buildflags.h"
++
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++#include "partition_alloc/partition_alloc_constants.h" // nogncheck
++#include "partition_alloc/shim/allocator_shim.h" // nogncheck
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++#include <cstdlib>
++#endif
++
++namespace rust_allocator_internal {
++
++unsigned char* alloc(size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ // PartitionAlloc will crash if given an alignment larger than this.
++ if (align > partition_alloc::internal::kMaxSupportedAlignment) {
++ return nullptr;
++ }
++
++ // We use unchecked allocation paths in PartitionAlloc rather than going
++ // through its shims in `malloc()` etc so that we can support fallible
++ // allocation paths such as Vec::try_reserve without crashing on allocation
++ // failure.
++ if (align <= alignof(std::max_align_t)) {
++ return static_cast<unsigned char*>(allocator_shim::UncheckedAlloc(size));
++ } else {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedAlignedAlloc(size, align));
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return static_cast<unsigned char*>(_aligned_malloc(size, align));
++#else
++#error This configuration is not supported.
++#endif
++}
++
++void dealloc(unsigned char* p, size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ if (align <= alignof(std::max_align_t)) {
++ allocator_shim::UncheckedFree(p);
++ } else {
++ allocator_shim::UncheckedAlignedFree(p);
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return _aligned_free(p);
++#else
++#error This configuration is not supported.
++#endif
++}
++
++unsigned char* realloc(unsigned char* p,
++ size_t old_size,
++ size_t align,
++ size_t new_size) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ // We use unchecked allocation paths in PartitionAlloc rather than going
++ // through its shims in `malloc()` etc so that we can support fallible
++ // allocation paths such as Vec::try_reserve without crashing on allocation
++ // failure.
++ if (align <= alignof(std::max_align_t)) {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedRealloc(p, new_size));
++ } else {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedAlignedRealloc(p, new_size, align));
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return static_cast<unsigned char*>(_aligned_realloc(p, new_size, align));
++#else
++#error This configuration is not supported.
++#endif
++}
++
++unsigned char* alloc_zeroed(size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) || \
++ BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ // TODO(danakj): When RUST_ALLOCATOR_USES_PARTITION_ALLOC is true, it's
++ // possible that a partition_alloc::UncheckedAllocZeroed() call would perform
++ // better than partition_alloc::UncheckedAlloc() + memset. But there is no
++ // such API today. See b/342251590.
++ unsigned char* p = alloc(size, align);
++ if (p) {
++ memset(p, 0, size);
++ }
++ return p;
++#else
++#error This configuration is not supported.
++#endif
++}
++
++} // namespace rust_allocator_internal
diff --git a/www/chromium/files/patch-build_rust_allocator_allocator__impls.h b/www/chromium/files/patch-build_rust_allocator_allocator__impls.h
new file mode 100644
index 000000000000..9249cdc938d2
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_allocator__impls.h
@@ -0,0 +1,27 @@
+--- build/rust/allocator/allocator_impls.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls.h
+@@ -0,0 +1,24 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
++#define BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
++
++#include <cstddef>
++
++// This header exposes a C++ allocator (e.g. PartitionAlloc) to Rust.
++// The APIs below are called from `impl GlobalAlloc` in `lib.rs`.
++namespace rust_allocator_internal {
++
++unsigned char* alloc(size_t size, size_t align);
++void dealloc(unsigned char* p, size_t size, size_t align);
++unsigned char* realloc(unsigned char* p,
++ size_t old_size,
++ size_t align,
++ size_t new_size);
++unsigned char* alloc_zeroed(size_t size, size_t align);
++
++} // namespace rust_allocator_internal
++
++#endif // BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
diff --git a/www/chromium/files/patch-build_rust_allocator_allocator__impls__ffi.rs b/www/chromium/files/patch-build_rust_allocator_allocator__impls__ffi.rs
new file mode 100644
index 000000000000..8f0baf1576ce
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_allocator__impls__ffi.rs
@@ -0,0 +1,22 @@
+--- build/rust/allocator/allocator_impls_ffi.rs.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls_ffi.rs
+@@ -0,0 +1,19 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++//! FFI for `allocator_impls.h` is in a separate `.rs` file/module to
++//! better support conditional compilation (these functions are only
++//! used under `#[cfg(rust_allocator_uses_allocator_impls_h)]`.
++
++#[cxx::bridge(namespace = "rust_allocator_internal")]
++pub mod ffi {
++ extern "C++" {
++ include!("build/rust/allocator/allocator_impls.h");
++
++ unsafe fn alloc(size: usize, align: usize) -> *mut u8;
++ unsafe fn dealloc(p: *mut u8, size: usize, align: usize);
++ unsafe fn realloc(p: *mut u8, old_size: usize, align: usize, new_size: usize) -> *mut u8;
++ unsafe fn alloc_zeroed(size: usize, align: usize) -> *mut u8;
++ }
++}
diff --git a/www/chromium/files/patch-build_rust_allocator_compiler__specific.h b/www/chromium/files/patch-build_rust_allocator_compiler__specific.h
new file mode 100644
index 000000000000..7feb0c739d79
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_compiler__specific.h
@@ -0,0 +1,41 @@
+--- build/rust/allocator/compiler_specific.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/compiler_specific.h
+@@ -0,0 +1,38 @@
++// 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.
++
++// This file has been copied from //base/compiler_specific.h (and then
++// significantly trimmed to just the APIs / macros needed by //build/rust/std).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
++#define BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
++
++#include "build/build_config.h"
++
++#if defined(COMPILER_MSVC) && !defined(__clang__)
++#error "Only clang-cl is supported on Windows, see https://crbug.com/988071"
++#endif
++
++#if defined(__has_attribute)
++#define HAS_ATTRIBUTE(x) __has_attribute(x)
++#else
++#define HAS_ATTRIBUTE(x) 0
++#endif
++
++// Annotate a function indicating it should not be inlined.
++// Use like:
++// NOINLINE void DoStuff() { ... }
++#if defined(__clang__) && HAS_ATTRIBUTE(noinline)
++#define NOINLINE [[clang::noinline]]
++#elif defined(COMPILER_GCC) && HAS_ATTRIBUTE(noinline)
++#define NOINLINE __attribute__((noinline))
++#elif defined(COMPILER_MSVC)
++#define NOINLINE __declspec(noinline)
++#else
++#define NOINLINE
++#endif
++
++#endif // BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
diff --git a/www/chromium/files/patch-build_rust_allocator_immediate__crash.h b/www/chromium/files/patch-build_rust_allocator_immediate__crash.h
new file mode 100644
index 000000000000..7ab0f9d9c34c
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_immediate__crash.h
@@ -0,0 +1,174 @@
+--- build/rust/allocator/immediate_crash.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/immediate_crash.h
+@@ -0,0 +1,171 @@
++// Copyright 2021 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++// This file has been copied from //base/immediate_crash.h.
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
++#define BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
++
++#include "build/build_config.h"
++
++// Crashes in the fastest possible way with no attempt at logging.
++// There are several constraints; see http://crbug.com/664209 for more context.
++//
++// - TRAP_SEQUENCE_() must be fatal. It should not be possible to ignore the
++// resulting exception or simply hit 'continue' to skip over it in a debugger.
++// - Different instances of TRAP_SEQUENCE_() must not be folded together, to
++// ensure crash reports are debuggable. Unlike __builtin_trap(), asm volatile
++// blocks will not be folded together.
++// Note: TRAP_SEQUENCE_() previously required an instruction with a unique
++// nonce since unlike clang, GCC folds together identical asm volatile
++// blocks.
++// - TRAP_SEQUENCE_() must produce a signal that is distinct from an invalid
++// memory access.
++// - TRAP_SEQUENCE_() must be treated as a set of noreturn instructions.
++// __builtin_unreachable() is used to provide that hint here. clang also uses
++// this as a heuristic to pack the instructions in the function epilogue to
++// improve code density.
++//
++// Additional properties that are nice to have:
++// - TRAP_SEQUENCE_() should be as compact as possible.
++// - The first instruction of TRAP_SEQUENCE_() should not change, to avoid
++// shifting crash reporting clusters. As a consequence of this, explicit
++// assembly is preferred over intrinsics.
++// Note: this last bullet point may no longer be true, and may be removed in
++// the future.
++
++// Note: TRAP_SEQUENCE Is currently split into two macro helpers due to the fact
++// that clang emits an actual instruction for __builtin_unreachable() on certain
++// platforms (see https://crbug.com/958675). In addition, the int3/bkpt/brk will
++// be removed in followups, so splitting it up like this now makes it easy to
++// land the followups.
++
++#if defined(COMPILER_GCC)
++
++#if BUILDFLAG(IS_NACL)
++
++// Crash report accuracy is not guaranteed on NaCl.
++#define TRAP_SEQUENCE1_() __builtin_trap()
++#define TRAP_SEQUENCE2_() asm volatile("")
++
++#elif defined(ARCH_CPU_X86_FAMILY)
++
++// TODO(crbug.com/40625592): In theory, it should be possible to use just
++// int3. However, there are a number of crashes with SIGILL as the exception
++// code, so it seems likely that there's a signal handler that allows execution
++// to continue after SIGTRAP.
++#define TRAP_SEQUENCE1_() asm volatile("int3")
++
++#if BUILDFLAG(IS_APPLE)
++// Intentionally empty: __builtin_unreachable() is always part of the sequence
++// (see IMMEDIATE_CRASH below) and already emits a ud2 on Mac.
++#define TRAP_SEQUENCE2_() asm volatile("")
++#else
++#define TRAP_SEQUENCE2_() asm volatile("ud2")
++#endif // BUILDFLAG(IS_APPLE)
++
++#elif defined(ARCH_CPU_ARMEL)
++
++// bkpt will generate a SIGBUS when running on armv7 and a SIGTRAP when running
++// as a 32 bit userspace app on arm64. There doesn't seem to be any way to
++// cause a SIGTRAP from userspace without using a syscall (which would be a
++// problem for sandboxing).
++// TODO(crbug.com/40625592): Remove bkpt from this sequence.
++#define TRAP_SEQUENCE1_() asm volatile("bkpt #0")
++#define TRAP_SEQUENCE2_() asm volatile("udf #0")
++
++#elif defined(ARCH_CPU_ARM64)
++
++// This will always generate a SIGTRAP on arm64.
++// TODO(crbug.com/40625592): Remove brk from this sequence.
++#define TRAP_SEQUENCE1_() asm volatile("brk #0")
++#define TRAP_SEQUENCE2_() asm volatile("hlt #0")
++
++#else
++
++// Crash report accuracy will not be guaranteed on other architectures, but at
++// least this will crash as expected.
++#define TRAP_SEQUENCE1_() __builtin_trap()
++#define TRAP_SEQUENCE2_() asm volatile("")
++
++#endif // ARCH_CPU_*
++
++#elif defined(COMPILER_MSVC)
++
++#if !defined(__clang__)
++
++// MSVC x64 doesn't support inline asm, so use the MSVC intrinsic.
++#define TRAP_SEQUENCE1_() __debugbreak()
++#define TRAP_SEQUENCE2_()
++
++#elif defined(ARCH_CPU_ARM64)
++
++// Windows ARM64 uses "BRK #F000" as its breakpoint instruction, and
++// __debugbreak() generates that in both VC++ and clang.
++#define TRAP_SEQUENCE1_() __debugbreak()
++// Intentionally empty: __builtin_unreachable() is always part of the sequence
++// (see IMMEDIATE_CRASH below) and already emits a ud2 on Win64,
++// https://crbug.com/958373
++#define TRAP_SEQUENCE2_() __asm volatile("")
++
++#else
++
++#define TRAP_SEQUENCE1_() asm volatile("int3")
++#define TRAP_SEQUENCE2_() asm volatile("ud2")
++
++#endif // __clang__
++
++#else
++
++#error No supported trap sequence!
++
++#endif // COMPILER_GCC
++
++#define TRAP_SEQUENCE_() \
++ do { \
++ TRAP_SEQUENCE1_(); \
++ TRAP_SEQUENCE2_(); \
++ } while (false)
++
++// CHECK() and the trap sequence can be invoked from a constexpr function.
++// This could make compilation fail on GCC, as it forbids directly using inline
++// asm inside a constexpr function. However, it allows calling a lambda
++// expression including the same asm.
++// The side effect is that the top of the stacktrace will not point to the
++// calling function, but to this anonymous lambda. This is still useful as the
++// full name of the lambda will typically include the name of the function that
++// calls CHECK() and the debugger will still break at the right line of code.
++#if !defined(COMPILER_GCC) || defined(__clang__)
++
++#define WRAPPED_TRAP_SEQUENCE_() TRAP_SEQUENCE_()
++
++#else
++
++#define WRAPPED_TRAP_SEQUENCE_() \
++ do { \
++ [] { TRAP_SEQUENCE_(); }(); \
++ } while (false)
++
++#endif // !defined(COMPILER_GCC) || defined(__clang__)
++
++#if defined(__clang__) || defined(COMPILER_GCC)
++
++// __builtin_unreachable() hints to the compiler that this is noreturn and can
++// be packed in the function epilogue.
++#define IMMEDIATE_CRASH() \
++ ({ \
++ WRAPPED_TRAP_SEQUENCE_(); \
++ __builtin_unreachable(); \
++ })
++
++#else
++
++// This is supporting non-chromium user of logging.h to build with MSVC, like
++// pdfium. On MSVC there is no __builtin_unreachable().
++#define IMMEDIATE_CRASH() WRAPPED_TRAP_SEQUENCE_()
++
++#endif // defined(__clang__) || defined(COMPILER_GCC)
++
++#endif // BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
diff --git a/www/chromium/files/patch-build_rust_allocator_lib.rs b/www/chromium/files/patch-build_rust_allocator_lib.rs
new file mode 100644
index 000000000000..89fddf278294
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_allocator_lib.rs
@@ -0,0 +1,122 @@
+--- build/rust/allocator/lib.rs.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/lib.rs
+@@ -0,0 +1,119 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++//! Define the allocator that Rust code in Chrome should use.
++//!
++//! Any final artifact that depends on this crate, even transitively, will use
++//! the allocator defined here.
++//!
++//! List of known issues:
++//!
++//! 1. We'd like to use PartitionAlloc on Windows, but the stdlib uses Windows
++//! heap functions directly that PartitionAlloc can not intercept.
++//! 2. We'd like `Vec::try_reserve` to fail at runtime on Linux instead of
++//! crashing in malloc() where PartitionAlloc replaces that function.
++
++// Required to apply weak linkage to symbols.
++//
++// TODO(https://crbug.com/410596442): Stop using unstable features here.
++// https://github.com/rust-lang/rust/issues/29603 tracks stabilization of the `linkage` feature.
++#![feature(linkage)]
++// Required to apply `#[rustc_std_internal_symbol]` to our alloc error handler
++// so the name is correctly mangled as rustc expects.
++//
++// TODO(https://crbug.com/410596442): Stop using internal features here.
++#![allow(internal_features)]
++#![feature(rustc_attrs)]
++
++// This module is in a separate source file to avoid having to teach `cxxbridge`
++// about conditional compilation.
++#[cfg(rust_allocator_uses_allocator_impls_h)]
++mod allocator_impls_ffi;
++
++/// Module that provides `#[global_allocator]` / `GlobalAlloc` interface for
++/// using an allocator from C++.
++#[cfg(rust_allocator_uses_allocator_impls_h)]
++mod cpp_allocator {
++ use super::allocator_impls_ffi::ffi;
++ use std::alloc::{GlobalAlloc, Layout};
++
++ struct Allocator;
++
++ unsafe impl GlobalAlloc for Allocator {
++ unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
++ unsafe { ffi::alloc(layout.size(), layout.align()) }
++ }
++
++ unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {
++ unsafe {
++ ffi::dealloc(ptr, layout.size(), layout.align());
++ }
++ }
++
++ unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 {
++ unsafe { ffi::alloc_zeroed(layout.size(), layout.align()) }
++ }
++
++ unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {
++ unsafe { ffi::realloc(ptr, layout.size(), layout.align(), new_size) }
++ }
++ }
++
++ #[global_allocator]
++ static GLOBAL: Allocator = Allocator;
++}
++
++/// Module that provides `#[global_allocator]` / `GlobalAlloc` interface for
++/// using the default Rust allocator.
++#[cfg(not(rust_allocator_uses_allocator_impls_h))]
++mod rust_allocator {
++ #[global_allocator]
++ static GLOBAL: std::alloc::System = std::alloc::System;
++}
++
++/// Module that provides global symbols that are needed both by `cpp_allocator`
++/// and `rust_allocator`.
++///
++/// When `rustc` drives linking, then it will define the symbols below. But
++/// Chromium only uses `rustc` to link Rust-only executables (e.g. `build.rs`
++/// scripts) and otherwise uses a non-Rust linker. This is why we have to
++/// manually define a few symbols below. We define those symbols
++/// as "weak" symbols, so that Rust-provided symbols "win" in case where Rust
++/// actually does drive the linking. This hack works (not only for Chromium,
++/// but also for google3 and other projects), but isn't officially supported by
++/// `rustc`.
++///
++/// TODO(https://crbug.com/410596442): Stop using internal features here.
++mod both_allocators {
++ /// As part of rustc's contract for using `#[global_allocator]` without
++ /// rustc-generated shims we must define this symbol, since we are opting in
++ /// to unstable functionality. See https://github.com/rust-lang/rust/issues/123015
++ #[no_mangle]
++ #[linkage = "weak"]
++ static __rust_no_alloc_shim_is_unstable: u8 = 0;
++
++ // Mangle the symbol name as rustc expects.
++ #[rustc_std_internal_symbol]
++ #[allow(non_upper_case_globals)]
++ #[linkage = "weak"]
++ static __rust_alloc_error_handler_should_panic: u8 = 0;
++
++ // Mangle the symbol name as rustc expects.
++ #[rustc_std_internal_symbol]
++ #[allow(non_upper_case_globals)]
++ #[linkage = "weak"]
++ fn __rust_alloc_error_handler(_size: usize, _align: usize) {
++ // TODO(lukasza): Investigate if we can just call `std::process::abort()` here.
++ // (Not really _needed_, but it could simplify code a little bit.)
++ unsafe { ffi::alloc_error_handler_impl() }
++ }
++
++ #[cxx::bridge(namespace = "rust_allocator_internal")]
++ mod ffi {
++ extern "C++" {
++ include!("build/rust/allocator/alloc_error_handler_impl.h");
++ unsafe fn alloc_error_handler_impl();
++ }
++ }
++}
diff --git a/www/chromium/files/patch-build_rust_cargo__crate.gni b/www/chromium/files/patch-build_rust_cargo__crate.gni
new file mode 100644
index 000000000000..a1590f727aa3
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_cargo__crate.gni
@@ -0,0 +1,25 @@
+--- build/rust/cargo_crate.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/cargo_crate.gni
+@@ -259,6 +259,12 @@ template("cargo_crate") {
+ # Don't import the `chromium` crate into third-party code.
+ no_chromium_prelude = true
+
++ # Don't depend on the chrome-specific #[global_allocator] crate from
++ # third-party code. This avoids some dependency cycle issues. The allocator
++ # crate will still be used if it exists anywhere in the dependency graph for
++ # a given linked artifact.
++ no_allocator_crate = true
++
+ rustc_metadata = _rustc_metadata
+
+ # TODO(crbug.com/40259764): don't default to true. This requires changes to
+@@ -482,6 +488,9 @@ template("cargo_crate") {
+
+ # Don't import the `chromium` crate into third-party code.
+ no_chromium_prelude = true
++
++ # Build scripts do not need to link to chrome's allocator.
++ no_allocator_crate = true
+
+ # The ${_build_script_name}_output target looks for the exe in this
+ # location. Due to how the Windows component build works, this has to
diff --git a/www/chromium/files/patch-build_rust_rust__macro.gni b/www/chromium/files/patch-build_rust_rust__macro.gni
new file mode 100644
index 000000000000..0dafc3819aa1
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_rust__macro.gni
@@ -0,0 +1,12 @@
+--- build/rust/rust_macro.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/rust_macro.gni
+@@ -16,6 +16,9 @@ template("rust_macro") {
+ forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
+ proc_macro_configs = invoker.configs
+ target_type = "rust_proc_macro"
++
++ # Macros are loaded by rustc and shouldn't use chrome's allocation routines.
++ no_allocator_crate = true
+ }
+ }
+
diff --git a/www/chromium/files/patch-build_rust_rust__target.gni b/www/chromium/files/patch-build_rust_rust__target.gni
new file mode 100644
index 000000000000..f4ad6f04fc45
--- /dev/null
+++ b/www/chromium/files/patch-build_rust_rust__target.gni
@@ -0,0 +1,13 @@
+--- build/rust/rust_target.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/rust_target.gni
+@@ -339,6 +339,10 @@ template("rust_target") {
+ _rust_deps += [ "//build/rust/std" ]
+ }
+
++ if (!defined(invoker.no_allocator_crate) || !invoker.no_allocator_crate) {
++ _rust_deps += [ "//build/rust/allocator" ]
++ }
++
+ if (_build_unit_tests) {
+ _unit_test_target = "${_target_name}_unittests"
+ if (defined(invoker.unit_test_target)) {
diff --git a/www/chromium/files/patch-build_rust_std_BUILD.gn b/www/chromium/files/patch-build_rust_std_BUILD.gn
index 0a5335d58d48..c6c2801bd47d 100644
--- a/www/chromium/files/patch-build_rust_std_BUILD.gn
+++ b/www/chromium/files/patch-build_rust_std_BUILD.gn
@@ -1,6 +1,58 @@
---- build/rust/std/BUILD.gn.orig 2025-04-05 13:54:50 UTC
+--- build/rust/std/BUILD.gn.orig 2025-05-20 09:16:26 UTC
+++ build/rust/std/BUILD.gn
-@@ -89,13 +89,20 @@ if (toolchain_has_rust) {
+@@ -15,51 +15,12 @@
+ # allocator functions to PartitionAlloc when `use_partition_alloc_as_malloc` is
+ # true, so that Rust and C++ use the same allocator backend.
+
+-import("//build/buildflag_header.gni")
+ import("//build/config/compiler/compiler.gni")
+ import("//build/config/coverage/coverage.gni")
+ import("//build/config/rust.gni")
+ import("//build/config/sanitizers/sanitizers.gni")
+
+-rust_allocator_uses_partition_alloc = false
+-if (build_with_chromium) {
+- import("//base/allocator/partition_allocator/partition_alloc.gni")
+- rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc
+-}
+-
+-buildflag_header("buildflags") {
+- header = "buildflags.h"
+- flags = [
+- "RUST_ALLOCATOR_USES_PARTITION_ALLOC=$rust_allocator_uses_partition_alloc",
+- ]
+- visibility = [ ":*" ]
+-}
+-
+ if (toolchain_has_rust) {
+- # If clang performs the link step, we need to provide the allocator symbols
+- # that are normally injected by rustc during linking.
+- #
+- # We also "happen to" use this to redirect allocations to PartitionAlloc,
+- # though that would be better done through a #[global_allocator] crate (see
+- # above).
+- source_set("remap_alloc") {
+- public_deps = []
+- if (rust_allocator_uses_partition_alloc) {
+- public_deps += [ "//base/allocator/partition_allocator:partition_alloc" ]
+- }
+- deps = [ ":buildflags" ]
+- sources = [
+- # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been
+- # copied from `//base`.
+- # TODO(crbug.com/40279749): Avoid duplication / reuse code.
+- "alias.cc",
+- "alias.h",
+- "compiler_specific.h",
+- "immediate_crash.h",
+- "remap_alloc.cc",
+- ]
+- }
+-
+ # List of Rust stdlib rlibs which are present in the official Rust toolchain
+ # we are using from the Android team. This is usually a version or two behind
+ # nightly. Generally this matches the toolchain we build ourselves, but if
+@@ -89,13 +50,20 @@ if (toolchain_has_rust) {
# These are no longer present in the Windows toolchain.
stdlib_files += [
"addr2line",
@@ -22,7 +74,7 @@
}
if (toolchain_for_rust_host_build_tools) {
-@@ -115,7 +122,6 @@ if (toolchain_has_rust) {
+@@ -115,7 +83,6 @@ if (toolchain_has_rust) {
# don't need to pass to the C++ linker because they're used for specialized
# purposes.
skip_stdlib_files = [
@@ -30,3 +82,25 @@
"rustc_std_workspace_alloc",
"rustc_std_workspace_core",
"rustc_std_workspace_std",
+@@ -269,8 +236,6 @@ if (toolchain_has_rust) {
+ foreach(libname, stdlib_files + skip_stdlib_files) {
+ deps += [ "rules:$libname" ]
+ }
+-
+- public_deps = [ ":remap_alloc" ]
+ }
+ } else {
+ action("find_stdlib") {
+@@ -396,12 +361,6 @@ if (toolchain_has_rust) {
+ ":stdlib_public_dependent_libs",
+ ]
+ deps = [ ":prebuilt_rustc_copy_to_sysroot" ]
+-
+- # The host builds tools toolchain supports Rust only and does not use
+- # the allocator remapping to point it to PartitionAlloc.
+- if (!toolchain_for_rust_host_build_tools) {
+- deps += [ ":remap_alloc" ]
+- }
+ }
+ }
+ }
diff --git a/www/gohugo/Makefile b/www/gohugo/Makefile
index a998c60d116c..864d6c3004f2 100644
--- a/www/gohugo/Makefile
+++ b/www/gohugo/Makefile
@@ -1,6 +1,6 @@
PORTNAME= hugo
DISTVERSIONPREFIX= v
-DISTVERSION= 0.147.3
+DISTVERSION= 0.147.4
PORTEPOCH= 1
CATEGORIES= www
PKGNAMEPREFIX= go
diff --git a/www/gohugo/distinfo b/www/gohugo/distinfo
index 550828130a87..844026f970c7 100644
--- a/www/gohugo/distinfo
+++ b/www/gohugo/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1747057537
-SHA256 (go/www_gohugo/hugo-v0.147.3/v0.147.3.mod) = cb41ea476364590e46adc72d923c617f69d99544d2a78c743ae4608f4c43ea25
-SIZE (go/www_gohugo/hugo-v0.147.3/v0.147.3.mod) = 8036
-SHA256 (go/www_gohugo/hugo-v0.147.3/v0.147.3.zip) = 36a1eb90054d1cef4aa8f74a9951e44c211d0d68d0d3fe90a8af4764fa6a0117
-SIZE (go/www_gohugo/hugo-v0.147.3/v0.147.3.zip) = 5734808
+TIMESTAMP = 1747741364
+SHA256 (go/www_gohugo/hugo-v0.147.4/v0.147.4.mod) = cb41ea476364590e46adc72d923c617f69d99544d2a78c743ae4608f4c43ea25
+SIZE (go/www_gohugo/hugo-v0.147.4/v0.147.4.mod) = 8036
+SHA256 (go/www_gohugo/hugo-v0.147.4/v0.147.4.zip) = e723aac853ffa451bac32b823192d8fcb78d18e378437f277e0e4c214bc126c2
+SIZE (go/www_gohugo/hugo-v0.147.4/v0.147.4.zip) = 5736653
diff --git a/www/iridium/Makefile b/www/iridium/Makefile
index 40178f0ec7ba..5c87dc11671a 100644
--- a/www/iridium/Makefile
+++ b/www/iridium/Makefile
@@ -1,5 +1,6 @@
PORTNAME= iridium
PORTVERSION= 2025.05.136.2
+PORTREVISION= 1
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= www wayland
diff --git a/www/iridium/files/patch-build_rust_allocator_BUILD.gn b/www/iridium/files/patch-build_rust_allocator_BUILD.gn
new file mode 100644
index 000000000000..cb1633140dcc
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_BUILD.gn
@@ -0,0 +1,109 @@
+--- build/rust/allocator/BUILD.gn.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/BUILD.gn
+@@ -0,0 +1,106 @@
++# Copyright 2025 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/buildflag_header.gni")
++import("//build/config/rust.gni")
++import("//build/rust/rust_static_library.gni")
++
++rust_allocator_uses_partition_alloc = false
++if (build_with_chromium) {
++ import("//base/allocator/partition_allocator/partition_alloc.gni")
++ rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc
++}
++
++# In ASAN builds, PartitionAlloc-Everywhere is disabled, meaning malloc() and
++# friends in C++ do not go to PartitionAlloc. So we also don't point the Rust
++# allocation functions at PartitionAlloc. Generally, this means we just direct
++# them to the Standard Library's allocator.
++#
++# However, on Windows the Standard Library uses HeapAlloc() and Windows ASAN
++# does *not* hook that method, so ASAN does not get to hear about allocations
++# made in Rust. To resolve this, we redirect allocation to _aligned_malloc
++# which Windows ASAN *does* hook.
++#
++# Note that there is a runtime option to make ASAN hook HeapAlloc() but
++# enabling it breaks Win32 APIs like CreateProcess:
++# https://crbug.com/368070343#comment29
++rust_allocator_uses_aligned_malloc = false
++if (!rust_allocator_uses_partition_alloc && is_win && is_asan) {
++ rust_allocator_uses_aligned_malloc = true
++}
++
++rust_allocator_uses_allocator_impls_h =
++ rust_allocator_uses_partition_alloc || rust_allocator_uses_aligned_malloc
++
++buildflag_header("buildflags") {
++ header = "buildflags.h"
++ flags = [
++ "RUST_ALLOCATOR_USES_PARTITION_ALLOC=$rust_allocator_uses_partition_alloc",
++ "RUST_ALLOCATOR_USES_ALIGNED_MALLOC=$rust_allocator_uses_aligned_malloc",
++ ]
++ visibility = [ ":*" ]
++}
++
++if (toolchain_has_rust) {
++ # All targets which depend on Rust code but are not linked by rustc must
++ # depend on this. Usually, this dependency will come from the rust_target() GN
++ # template. However, cargo_crate() does *not* include this dependency so any
++ # C++ targets which directly depend on a cargo_crate() must depend on this.
++ rust_static_library("allocator") {
++ sources = [ "lib.rs" ]
++ crate_root = "lib.rs"
++ cxx_bindings = [ "lib.rs" ]
++
++ deps = [ ":alloc_error_handler_impl" ]
++ if (rust_allocator_uses_allocator_impls_h) {
++ deps += [ ":allocator_impls" ]
++ }
++
++ no_chromium_prelude = true
++ no_allocator_crate = true
++ allow_unsafe = true
++
++ rustflags = []
++ if (rust_allocator_uses_allocator_impls_h) {
++ rustflags += [ "--cfg=rust_allocator_uses_allocator_impls_h" ]
++ cxx_bindings += [ "allocator_impls_ffi.rs" ]
++ sources += [ "allocator_impls_ffi.rs" ]
++ }
++
++ # TODO(https://crbug.com/410596442): Stop using unstable features here.
++ configs -= [ "//build/config/compiler:disallow_unstable_features" ]
++ }
++
++ if (rust_allocator_uses_allocator_impls_h) {
++ static_library("allocator_impls") {
++ public_deps = []
++ if (rust_allocator_uses_partition_alloc) {
++ public_deps +=
++ [ "//base/allocator/partition_allocator:partition_alloc" ]
++ }
++
++ sources = [
++ "allocator_impls.cc",
++ "allocator_impls.h",
++ ]
++ deps = [ ":buildflags" ]
++ visibility = [ ":*" ]
++ }
++ }
++
++ static_library("alloc_error_handler_impl") {
++ sources = [
++ # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been
++ # copied from `//base`.
++ # TODO(crbug.com/40279749): Avoid duplication / reuse code.
++ "alias.cc",
++ "alias.h",
++ "alloc_error_handler_impl.cc",
++ "alloc_error_handler_impl.h",
++ "compiler_specific.h",
++ "immediate_crash.h",
++ ]
++ visibility = [ ":*" ]
++ }
++}
diff --git a/www/iridium/files/patch-build_rust_allocator_DEPS b/www/iridium/files/patch-build_rust_allocator_DEPS
new file mode 100644
index 000000000000..74bb2d6c2421
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_DEPS
@@ -0,0 +1,12 @@
+--- build/rust/allocator/DEPS.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/DEPS
+@@ -0,0 +1,9 @@
++include_rules = [
++ "-base",
++]
++
++specific_include_rules = {
++ "allocator_impls.cc" : [
++ "+partition_alloc"
++ ]
++}
diff --git a/www/iridium/files/patch-build_rust_allocator_alias.cc b/www/iridium/files/patch-build_rust_allocator_alias.cc
new file mode 100644
index 000000000000..5280641f27e1
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_alias.cc
@@ -0,0 +1,25 @@
+--- build/rust/allocator/alias.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alias.cc
+@@ -0,0 +1,22 @@
++// 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.
++
++// This file has been copied from //base/debug/alias.cc ( additionally the APIs
++// were moved into the `build_rust_std` namespace).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#include "build/rust/allocator/alias.h"
++
++#include "build/rust/allocator/compiler_specific.h"
++
++namespace build_rust_std {
++namespace debug {
++
++// This file/function should be excluded from LTO/LTCG to ensure that the
++// compiler can't see this function's implementation when compiling calls to it.
++NOINLINE void Alias(const void* var) {}
++
++} // namespace debug
++} // namespace build_rust_std
diff --git a/www/iridium/files/patch-build_rust_allocator_alias.h b/www/iridium/files/patch-build_rust_allocator_alias.h
new file mode 100644
index 000000000000..6530c6ae8779
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_alias.h
@@ -0,0 +1,40 @@
+--- build/rust/allocator/alias.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alias.h
+@@ -0,0 +1,37 @@
++// 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.
++
++// This file has been copied from //base/debug/alias.h (and then trimmed to just
++// the APIs / macros needed by //build/rust/std; additionally the APIs were
++// moved into the `build_rust_std` namespace).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALIAS_H_
++#define BUILD_RUST_ALLOCATOR_ALIAS_H_
++
++#include <stddef.h>
++
++namespace build_rust_std {
++namespace debug {
++
++// Make the optimizer think that |var| is aliased. This can be used to prevent a
++// local variable from being optimized out (which is something that
++// `NO_CODE_FOLDING` macro definition below depends on). See
++// //base/debug/alias.h for more details.
++void Alias(const void* var);
++
++} // namespace debug
++
++} // namespace build_rust_std
++
++// Prevent code folding (where a linker identifies functions that are
++// bit-identical and overlays them, which saves space but it leads to confusing
++// call stacks because multiple symbols are at the same address). See
++// //base/debug/alias.h for more details.
++#define NO_CODE_FOLDING() \
++ const int line_number = __LINE__; \
++ build_rust_std::debug::Alias(&line_number)
++
++#endif // BUILD_RUST_ALLOCATOR_ALIAS_H_
diff --git a/www/iridium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc b/www/iridium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc
new file mode 100644
index 000000000000..048c267abefa
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc
@@ -0,0 +1,20 @@
+--- build/rust/allocator/alloc_error_handler_impl.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alloc_error_handler_impl.cc
+@@ -0,0 +1,17 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "build/rust/allocator/alloc_error_handler_impl.h"
++
++#include "build/rust/allocator/alias.h"
++#include "build/rust/allocator/immediate_crash.h"
++
++namespace rust_allocator_internal {
++
++void alloc_error_handler_impl() {
++ NO_CODE_FOLDING();
++ IMMEDIATE_CRASH();
++}
++
++} // namespace rust_allocator_internal
diff --git a/www/iridium/files/patch-build_rust_allocator_alloc__error__handler__impl.h b/www/iridium/files/patch-build_rust_allocator_alloc__error__handler__impl.h
new file mode 100644
index 000000000000..887ea602b027
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_alloc__error__handler__impl.h
@@ -0,0 +1,24 @@
+--- build/rust/allocator/alloc_error_handler_impl.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alloc_error_handler_impl.h
+@@ -0,0 +1,21 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
++#define BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
++
++// This header exposes to Rust a C++ implementation of quickly crashing after an
++// allocation error. (The API below is called from `__rust_alloc_error_handler`
++// in `lib.rs`.)
++//
++// TODO(lukasza): Investigate if we can delete this `.h` / `.cc` and just call
++// `std::process::abort()` (or something else?) directly from `.rs`. The main
++// open question is how much we care about `NO_CODE_FOLDING`.
++namespace rust_allocator_internal {
++
++void alloc_error_handler_impl();
++
++} // namespace rust_allocator_internal
++
++#endif // BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
diff --git a/www/iridium/files/patch-build_rust_allocator_allocator__impls.cc b/www/iridium/files/patch-build_rust_allocator_allocator__impls.cc
new file mode 100644
index 000000000000..94e04d7b966a
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_allocator__impls.cc
@@ -0,0 +1,108 @@
+--- build/rust/allocator/allocator_impls.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls.cc
+@@ -0,0 +1,105 @@
++// Copyright 2021 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "build/rust/allocator/allocator_impls.h"
++
++#ifdef UNSAFE_BUFFERS_BUILD
++// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
++#pragma allow_unsafe_libc_calls
++#endif
++
++#include <cstddef>
++#include <cstring>
++
++#include "build/build_config.h"
++#include "build/rust/allocator/buildflags.h"
++
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++#include "partition_alloc/partition_alloc_constants.h" // nogncheck
++#include "partition_alloc/shim/allocator_shim.h" // nogncheck
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++#include <cstdlib>
++#endif
++
++namespace rust_allocator_internal {
++
++unsigned char* alloc(size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ // PartitionAlloc will crash if given an alignment larger than this.
++ if (align > partition_alloc::internal::kMaxSupportedAlignment) {
++ return nullptr;
++ }
++
++ // We use unchecked allocation paths in PartitionAlloc rather than going
++ // through its shims in `malloc()` etc so that we can support fallible
++ // allocation paths such as Vec::try_reserve without crashing on allocation
++ // failure.
++ if (align <= alignof(std::max_align_t)) {
++ return static_cast<unsigned char*>(allocator_shim::UncheckedAlloc(size));
++ } else {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedAlignedAlloc(size, align));
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return static_cast<unsigned char*>(_aligned_malloc(size, align));
++#else
++#error This configuration is not supported.
++#endif
++}
++
++void dealloc(unsigned char* p, size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ if (align <= alignof(std::max_align_t)) {
++ allocator_shim::UncheckedFree(p);
++ } else {
++ allocator_shim::UncheckedAlignedFree(p);
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return _aligned_free(p);
++#else
++#error This configuration is not supported.
++#endif
++}
++
++unsigned char* realloc(unsigned char* p,
++ size_t old_size,
++ size_t align,
++ size_t new_size) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ // We use unchecked allocation paths in PartitionAlloc rather than going
++ // through its shims in `malloc()` etc so that we can support fallible
++ // allocation paths such as Vec::try_reserve without crashing on allocation
++ // failure.
++ if (align <= alignof(std::max_align_t)) {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedRealloc(p, new_size));
++ } else {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedAlignedRealloc(p, new_size, align));
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return static_cast<unsigned char*>(_aligned_realloc(p, new_size, align));
++#else
++#error This configuration is not supported.
++#endif
++}
++
++unsigned char* alloc_zeroed(size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) || \
++ BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ // TODO(danakj): When RUST_ALLOCATOR_USES_PARTITION_ALLOC is true, it's
++ // possible that a partition_alloc::UncheckedAllocZeroed() call would perform
++ // better than partition_alloc::UncheckedAlloc() + memset. But there is no
++ // such API today. See b/342251590.
++ unsigned char* p = alloc(size, align);
++ if (p) {
++ memset(p, 0, size);
++ }
++ return p;
++#else
++#error This configuration is not supported.
++#endif
++}
++
++} // namespace rust_allocator_internal
diff --git a/www/iridium/files/patch-build_rust_allocator_allocator__impls.h b/www/iridium/files/patch-build_rust_allocator_allocator__impls.h
new file mode 100644
index 000000000000..9249cdc938d2
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_allocator__impls.h
@@ -0,0 +1,27 @@
+--- build/rust/allocator/allocator_impls.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls.h
+@@ -0,0 +1,24 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
++#define BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
++
++#include <cstddef>
++
++// This header exposes a C++ allocator (e.g. PartitionAlloc) to Rust.
++// The APIs below are called from `impl GlobalAlloc` in `lib.rs`.
++namespace rust_allocator_internal {
++
++unsigned char* alloc(size_t size, size_t align);
++void dealloc(unsigned char* p, size_t size, size_t align);
++unsigned char* realloc(unsigned char* p,
++ size_t old_size,
++ size_t align,
++ size_t new_size);
++unsigned char* alloc_zeroed(size_t size, size_t align);
++
++} // namespace rust_allocator_internal
++
++#endif // BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
diff --git a/www/iridium/files/patch-build_rust_allocator_allocator__impls__ffi.rs b/www/iridium/files/patch-build_rust_allocator_allocator__impls__ffi.rs
new file mode 100644
index 000000000000..8f0baf1576ce
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_allocator__impls__ffi.rs
@@ -0,0 +1,22 @@
+--- build/rust/allocator/allocator_impls_ffi.rs.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls_ffi.rs
+@@ -0,0 +1,19 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++//! FFI for `allocator_impls.h` is in a separate `.rs` file/module to
++//! better support conditional compilation (these functions are only
++//! used under `#[cfg(rust_allocator_uses_allocator_impls_h)]`.
++
++#[cxx::bridge(namespace = "rust_allocator_internal")]
++pub mod ffi {
++ extern "C++" {
++ include!("build/rust/allocator/allocator_impls.h");
++
++ unsafe fn alloc(size: usize, align: usize) -> *mut u8;
++ unsafe fn dealloc(p: *mut u8, size: usize, align: usize);
++ unsafe fn realloc(p: *mut u8, old_size: usize, align: usize, new_size: usize) -> *mut u8;
++ unsafe fn alloc_zeroed(size: usize, align: usize) -> *mut u8;
++ }
++}
diff --git a/www/iridium/files/patch-build_rust_allocator_compiler__specific.h b/www/iridium/files/patch-build_rust_allocator_compiler__specific.h
new file mode 100644
index 000000000000..7feb0c739d79
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_compiler__specific.h
@@ -0,0 +1,41 @@
+--- build/rust/allocator/compiler_specific.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/compiler_specific.h
+@@ -0,0 +1,38 @@
++// 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.
++
++// This file has been copied from //base/compiler_specific.h (and then
++// significantly trimmed to just the APIs / macros needed by //build/rust/std).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
++#define BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
++
++#include "build/build_config.h"
++
++#if defined(COMPILER_MSVC) && !defined(__clang__)
++#error "Only clang-cl is supported on Windows, see https://crbug.com/988071"
++#endif
++
++#if defined(__has_attribute)
++#define HAS_ATTRIBUTE(x) __has_attribute(x)
++#else
++#define HAS_ATTRIBUTE(x) 0
++#endif
++
++// Annotate a function indicating it should not be inlined.
++// Use like:
++// NOINLINE void DoStuff() { ... }
++#if defined(__clang__) && HAS_ATTRIBUTE(noinline)
++#define NOINLINE [[clang::noinline]]
++#elif defined(COMPILER_GCC) && HAS_ATTRIBUTE(noinline)
++#define NOINLINE __attribute__((noinline))
++#elif defined(COMPILER_MSVC)
++#define NOINLINE __declspec(noinline)
++#else
++#define NOINLINE
++#endif
++
++#endif // BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
diff --git a/www/iridium/files/patch-build_rust_allocator_immediate__crash.h b/www/iridium/files/patch-build_rust_allocator_immediate__crash.h
new file mode 100644
index 000000000000..7ab0f9d9c34c
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_immediate__crash.h
@@ -0,0 +1,174 @@
+--- build/rust/allocator/immediate_crash.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/immediate_crash.h
+@@ -0,0 +1,171 @@
++// Copyright 2021 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++// This file has been copied from //base/immediate_crash.h.
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
++#define BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
++
++#include "build/build_config.h"
++
++// Crashes in the fastest possible way with no attempt at logging.
++// There are several constraints; see http://crbug.com/664209 for more context.
++//
++// - TRAP_SEQUENCE_() must be fatal. It should not be possible to ignore the
++// resulting exception or simply hit 'continue' to skip over it in a debugger.
++// - Different instances of TRAP_SEQUENCE_() must not be folded together, to
++// ensure crash reports are debuggable. Unlike __builtin_trap(), asm volatile
++// blocks will not be folded together.
++// Note: TRAP_SEQUENCE_() previously required an instruction with a unique
++// nonce since unlike clang, GCC folds together identical asm volatile
++// blocks.
++// - TRAP_SEQUENCE_() must produce a signal that is distinct from an invalid
++// memory access.
++// - TRAP_SEQUENCE_() must be treated as a set of noreturn instructions.
++// __builtin_unreachable() is used to provide that hint here. clang also uses
++// this as a heuristic to pack the instructions in the function epilogue to
++// improve code density.
++//
++// Additional properties that are nice to have:
++// - TRAP_SEQUENCE_() should be as compact as possible.
++// - The first instruction of TRAP_SEQUENCE_() should not change, to avoid
++// shifting crash reporting clusters. As a consequence of this, explicit
++// assembly is preferred over intrinsics.
++// Note: this last bullet point may no longer be true, and may be removed in
++// the future.
++
++// Note: TRAP_SEQUENCE Is currently split into two macro helpers due to the fact
++// that clang emits an actual instruction for __builtin_unreachable() on certain
++// platforms (see https://crbug.com/958675). In addition, the int3/bkpt/brk will
++// be removed in followups, so splitting it up like this now makes it easy to
++// land the followups.
++
++#if defined(COMPILER_GCC)
++
++#if BUILDFLAG(IS_NACL)
++
++// Crash report accuracy is not guaranteed on NaCl.
++#define TRAP_SEQUENCE1_() __builtin_trap()
++#define TRAP_SEQUENCE2_() asm volatile("")
++
++#elif defined(ARCH_CPU_X86_FAMILY)
++
++// TODO(crbug.com/40625592): In theory, it should be possible to use just
++// int3. However, there are a number of crashes with SIGILL as the exception
++// code, so it seems likely that there's a signal handler that allows execution
++// to continue after SIGTRAP.
++#define TRAP_SEQUENCE1_() asm volatile("int3")
++
++#if BUILDFLAG(IS_APPLE)
++// Intentionally empty: __builtin_unreachable() is always part of the sequence
++// (see IMMEDIATE_CRASH below) and already emits a ud2 on Mac.
++#define TRAP_SEQUENCE2_() asm volatile("")
++#else
++#define TRAP_SEQUENCE2_() asm volatile("ud2")
++#endif // BUILDFLAG(IS_APPLE)
++
++#elif defined(ARCH_CPU_ARMEL)
++
++// bkpt will generate a SIGBUS when running on armv7 and a SIGTRAP when running
++// as a 32 bit userspace app on arm64. There doesn't seem to be any way to
++// cause a SIGTRAP from userspace without using a syscall (which would be a
++// problem for sandboxing).
++// TODO(crbug.com/40625592): Remove bkpt from this sequence.
++#define TRAP_SEQUENCE1_() asm volatile("bkpt #0")
++#define TRAP_SEQUENCE2_() asm volatile("udf #0")
++
++#elif defined(ARCH_CPU_ARM64)
++
++// This will always generate a SIGTRAP on arm64.
++// TODO(crbug.com/40625592): Remove brk from this sequence.
++#define TRAP_SEQUENCE1_() asm volatile("brk #0")
++#define TRAP_SEQUENCE2_() asm volatile("hlt #0")
++
++#else
++
++// Crash report accuracy will not be guaranteed on other architectures, but at
++// least this will crash as expected.
++#define TRAP_SEQUENCE1_() __builtin_trap()
++#define TRAP_SEQUENCE2_() asm volatile("")
++
++#endif // ARCH_CPU_*
++
++#elif defined(COMPILER_MSVC)
++
++#if !defined(__clang__)
++
++// MSVC x64 doesn't support inline asm, so use the MSVC intrinsic.
++#define TRAP_SEQUENCE1_() __debugbreak()
++#define TRAP_SEQUENCE2_()
++
++#elif defined(ARCH_CPU_ARM64)
++
++// Windows ARM64 uses "BRK #F000" as its breakpoint instruction, and
++// __debugbreak() generates that in both VC++ and clang.
++#define TRAP_SEQUENCE1_() __debugbreak()
++// Intentionally empty: __builtin_unreachable() is always part of the sequence
++// (see IMMEDIATE_CRASH below) and already emits a ud2 on Win64,
++// https://crbug.com/958373
++#define TRAP_SEQUENCE2_() __asm volatile("")
++
++#else
++
++#define TRAP_SEQUENCE1_() asm volatile("int3")
++#define TRAP_SEQUENCE2_() asm volatile("ud2")
++
++#endif // __clang__
++
++#else
++
++#error No supported trap sequence!
++
++#endif // COMPILER_GCC
++
++#define TRAP_SEQUENCE_() \
++ do { \
++ TRAP_SEQUENCE1_(); \
++ TRAP_SEQUENCE2_(); \
++ } while (false)
++
++// CHECK() and the trap sequence can be invoked from a constexpr function.
++// This could make compilation fail on GCC, as it forbids directly using inline
++// asm inside a constexpr function. However, it allows calling a lambda
++// expression including the same asm.
++// The side effect is that the top of the stacktrace will not point to the
++// calling function, but to this anonymous lambda. This is still useful as the
++// full name of the lambda will typically include the name of the function that
++// calls CHECK() and the debugger will still break at the right line of code.
++#if !defined(COMPILER_GCC) || defined(__clang__)
++
++#define WRAPPED_TRAP_SEQUENCE_() TRAP_SEQUENCE_()
++
++#else
++
++#define WRAPPED_TRAP_SEQUENCE_() \
++ do { \
++ [] { TRAP_SEQUENCE_(); }(); \
++ } while (false)
++
++#endif // !defined(COMPILER_GCC) || defined(__clang__)
++
++#if defined(__clang__) || defined(COMPILER_GCC)
++
++// __builtin_unreachable() hints to the compiler that this is noreturn and can
++// be packed in the function epilogue.
++#define IMMEDIATE_CRASH() \
++ ({ \
++ WRAPPED_TRAP_SEQUENCE_(); \
++ __builtin_unreachable(); \
++ })
++
++#else
++
++// This is supporting non-chromium user of logging.h to build with MSVC, like
++// pdfium. On MSVC there is no __builtin_unreachable().
++#define IMMEDIATE_CRASH() WRAPPED_TRAP_SEQUENCE_()
++
++#endif // defined(__clang__) || defined(COMPILER_GCC)
++
++#endif // BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
diff --git a/www/iridium/files/patch-build_rust_allocator_lib.rs b/www/iridium/files/patch-build_rust_allocator_lib.rs
new file mode 100644
index 000000000000..89fddf278294
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_allocator_lib.rs
@@ -0,0 +1,122 @@
+--- build/rust/allocator/lib.rs.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/lib.rs
+@@ -0,0 +1,119 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++//! Define the allocator that Rust code in Chrome should use.
++//!
++//! Any final artifact that depends on this crate, even transitively, will use
++//! the allocator defined here.
++//!
++//! List of known issues:
++//!
++//! 1. We'd like to use PartitionAlloc on Windows, but the stdlib uses Windows
++//! heap functions directly that PartitionAlloc can not intercept.
++//! 2. We'd like `Vec::try_reserve` to fail at runtime on Linux instead of
++//! crashing in malloc() where PartitionAlloc replaces that function.
++
++// Required to apply weak linkage to symbols.
++//
++// TODO(https://crbug.com/410596442): Stop using unstable features here.
++// https://github.com/rust-lang/rust/issues/29603 tracks stabilization of the `linkage` feature.
++#![feature(linkage)]
++// Required to apply `#[rustc_std_internal_symbol]` to our alloc error handler
++// so the name is correctly mangled as rustc expects.
++//
++// TODO(https://crbug.com/410596442): Stop using internal features here.
++#![allow(internal_features)]
++#![feature(rustc_attrs)]
++
++// This module is in a separate source file to avoid having to teach `cxxbridge`
++// about conditional compilation.
++#[cfg(rust_allocator_uses_allocator_impls_h)]
++mod allocator_impls_ffi;
++
++/// Module that provides `#[global_allocator]` / `GlobalAlloc` interface for
++/// using an allocator from C++.
++#[cfg(rust_allocator_uses_allocator_impls_h)]
++mod cpp_allocator {
++ use super::allocator_impls_ffi::ffi;
++ use std::alloc::{GlobalAlloc, Layout};
++
++ struct Allocator;
++
++ unsafe impl GlobalAlloc for Allocator {
++ unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
++ unsafe { ffi::alloc(layout.size(), layout.align()) }
++ }
++
++ unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {
++ unsafe {
++ ffi::dealloc(ptr, layout.size(), layout.align());
++ }
++ }
++
++ unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 {
++ unsafe { ffi::alloc_zeroed(layout.size(), layout.align()) }
++ }
++
++ unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {
++ unsafe { ffi::realloc(ptr, layout.size(), layout.align(), new_size) }
++ }
++ }
++
++ #[global_allocator]
++ static GLOBAL: Allocator = Allocator;
++}
++
++/// Module that provides `#[global_allocator]` / `GlobalAlloc` interface for
++/// using the default Rust allocator.
++#[cfg(not(rust_allocator_uses_allocator_impls_h))]
++mod rust_allocator {
++ #[global_allocator]
++ static GLOBAL: std::alloc::System = std::alloc::System;
++}
++
++/// Module that provides global symbols that are needed both by `cpp_allocator`
++/// and `rust_allocator`.
++///
++/// When `rustc` drives linking, then it will define the symbols below. But
++/// Chromium only uses `rustc` to link Rust-only executables (e.g. `build.rs`
++/// scripts) and otherwise uses a non-Rust linker. This is why we have to
++/// manually define a few symbols below. We define those symbols
++/// as "weak" symbols, so that Rust-provided symbols "win" in case where Rust
++/// actually does drive the linking. This hack works (not only for Chromium,
++/// but also for google3 and other projects), but isn't officially supported by
++/// `rustc`.
++///
++/// TODO(https://crbug.com/410596442): Stop using internal features here.
++mod both_allocators {
++ /// As part of rustc's contract for using `#[global_allocator]` without
++ /// rustc-generated shims we must define this symbol, since we are opting in
++ /// to unstable functionality. See https://github.com/rust-lang/rust/issues/123015
++ #[no_mangle]
++ #[linkage = "weak"]
++ static __rust_no_alloc_shim_is_unstable: u8 = 0;
++
++ // Mangle the symbol name as rustc expects.
++ #[rustc_std_internal_symbol]
++ #[allow(non_upper_case_globals)]
++ #[linkage = "weak"]
++ static __rust_alloc_error_handler_should_panic: u8 = 0;
++
++ // Mangle the symbol name as rustc expects.
++ #[rustc_std_internal_symbol]
++ #[allow(non_upper_case_globals)]
++ #[linkage = "weak"]
++ fn __rust_alloc_error_handler(_size: usize, _align: usize) {
++ // TODO(lukasza): Investigate if we can just call `std::process::abort()` here.
++ // (Not really _needed_, but it could simplify code a little bit.)
++ unsafe { ffi::alloc_error_handler_impl() }
++ }
++
++ #[cxx::bridge(namespace = "rust_allocator_internal")]
++ mod ffi {
++ extern "C++" {
++ include!("build/rust/allocator/alloc_error_handler_impl.h");
++ unsafe fn alloc_error_handler_impl();
++ }
++ }
++}
diff --git a/www/iridium/files/patch-build_rust_cargo__crate.gni b/www/iridium/files/patch-build_rust_cargo__crate.gni
new file mode 100644
index 000000000000..a1590f727aa3
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_cargo__crate.gni
@@ -0,0 +1,25 @@
+--- build/rust/cargo_crate.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/cargo_crate.gni
+@@ -259,6 +259,12 @@ template("cargo_crate") {
+ # Don't import the `chromium` crate into third-party code.
+ no_chromium_prelude = true
+
++ # Don't depend on the chrome-specific #[global_allocator] crate from
++ # third-party code. This avoids some dependency cycle issues. The allocator
++ # crate will still be used if it exists anywhere in the dependency graph for
++ # a given linked artifact.
++ no_allocator_crate = true
++
+ rustc_metadata = _rustc_metadata
+
+ # TODO(crbug.com/40259764): don't default to true. This requires changes to
+@@ -482,6 +488,9 @@ template("cargo_crate") {
+
+ # Don't import the `chromium` crate into third-party code.
+ no_chromium_prelude = true
++
++ # Build scripts do not need to link to chrome's allocator.
++ no_allocator_crate = true
+
+ # The ${_build_script_name}_output target looks for the exe in this
+ # location. Due to how the Windows component build works, this has to
diff --git a/www/iridium/files/patch-build_rust_rust__macro.gni b/www/iridium/files/patch-build_rust_rust__macro.gni
new file mode 100644
index 000000000000..0dafc3819aa1
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_rust__macro.gni
@@ -0,0 +1,12 @@
+--- build/rust/rust_macro.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/rust_macro.gni
+@@ -16,6 +16,9 @@ template("rust_macro") {
+ forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
+ proc_macro_configs = invoker.configs
+ target_type = "rust_proc_macro"
++
++ # Macros are loaded by rustc and shouldn't use chrome's allocation routines.
++ no_allocator_crate = true
+ }
+ }
+
diff --git a/www/iridium/files/patch-build_rust_rust__target.gni b/www/iridium/files/patch-build_rust_rust__target.gni
new file mode 100644
index 000000000000..f4ad6f04fc45
--- /dev/null
+++ b/www/iridium/files/patch-build_rust_rust__target.gni
@@ -0,0 +1,13 @@
+--- build/rust/rust_target.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/rust_target.gni
+@@ -339,6 +339,10 @@ template("rust_target") {
+ _rust_deps += [ "//build/rust/std" ]
+ }
+
++ if (!defined(invoker.no_allocator_crate) || !invoker.no_allocator_crate) {
++ _rust_deps += [ "//build/rust/allocator" ]
++ }
++
+ if (_build_unit_tests) {
+ _unit_test_target = "${_target_name}_unittests"
+ if (defined(invoker.unit_test_target)) {
diff --git a/www/iridium/files/patch-build_rust_std_BUILD.gn b/www/iridium/files/patch-build_rust_std_BUILD.gn
index d0b722a2cab3..c6c2801bd47d 100644
--- a/www/iridium/files/patch-build_rust_std_BUILD.gn
+++ b/www/iridium/files/patch-build_rust_std_BUILD.gn
@@ -1,6 +1,58 @@
---- build/rust/std/BUILD.gn.orig 2025-05-07 06:48:23 UTC
+--- build/rust/std/BUILD.gn.orig 2025-05-20 09:16:26 UTC
+++ build/rust/std/BUILD.gn
-@@ -89,13 +89,20 @@ if (toolchain_has_rust) {
+@@ -15,51 +15,12 @@
+ # allocator functions to PartitionAlloc when `use_partition_alloc_as_malloc` is
+ # true, so that Rust and C++ use the same allocator backend.
+
+-import("//build/buildflag_header.gni")
+ import("//build/config/compiler/compiler.gni")
+ import("//build/config/coverage/coverage.gni")
+ import("//build/config/rust.gni")
+ import("//build/config/sanitizers/sanitizers.gni")
+
+-rust_allocator_uses_partition_alloc = false
+-if (build_with_chromium) {
+- import("//base/allocator/partition_allocator/partition_alloc.gni")
+- rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc
+-}
+-
+-buildflag_header("buildflags") {
+- header = "buildflags.h"
+- flags = [
+- "RUST_ALLOCATOR_USES_PARTITION_ALLOC=$rust_allocator_uses_partition_alloc",
+- ]
+- visibility = [ ":*" ]
+-}
+-
+ if (toolchain_has_rust) {
+- # If clang performs the link step, we need to provide the allocator symbols
+- # that are normally injected by rustc during linking.
+- #
+- # We also "happen to" use this to redirect allocations to PartitionAlloc,
+- # though that would be better done through a #[global_allocator] crate (see
+- # above).
+- source_set("remap_alloc") {
+- public_deps = []
+- if (rust_allocator_uses_partition_alloc) {
+- public_deps += [ "//base/allocator/partition_allocator:partition_alloc" ]
+- }
+- deps = [ ":buildflags" ]
+- sources = [
+- # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been
+- # copied from `//base`.
+- # TODO(crbug.com/40279749): Avoid duplication / reuse code.
+- "alias.cc",
+- "alias.h",
+- "compiler_specific.h",
+- "immediate_crash.h",
+- "remap_alloc.cc",
+- ]
+- }
+-
+ # List of Rust stdlib rlibs which are present in the official Rust toolchain
+ # we are using from the Android team. This is usually a version or two behind
+ # nightly. Generally this matches the toolchain we build ourselves, but if
+@@ -89,13 +50,20 @@ if (toolchain_has_rust) {
# These are no longer present in the Windows toolchain.
stdlib_files += [
"addr2line",
@@ -22,7 +74,7 @@
}
if (toolchain_for_rust_host_build_tools) {
-@@ -115,7 +122,6 @@ if (toolchain_has_rust) {
+@@ -115,7 +83,6 @@ if (toolchain_has_rust) {
# don't need to pass to the C++ linker because they're used for specialized
# purposes.
skip_stdlib_files = [
@@ -30,3 +82,25 @@
"rustc_std_workspace_alloc",
"rustc_std_workspace_core",
"rustc_std_workspace_std",
+@@ -269,8 +236,6 @@ if (toolchain_has_rust) {
+ foreach(libname, stdlib_files + skip_stdlib_files) {
+ deps += [ "rules:$libname" ]
+ }
+-
+- public_deps = [ ":remap_alloc" ]
+ }
+ } else {
+ action("find_stdlib") {
+@@ -396,12 +361,6 @@ if (toolchain_has_rust) {
+ ":stdlib_public_dependent_libs",
+ ]
+ deps = [ ":prebuilt_rustc_copy_to_sysroot" ]
+-
+- # The host builds tools toolchain supports Rust only and does not use
+- # the allocator remapping to point it to PartitionAlloc.
+- if (!toolchain_for_rust_host_build_tools) {
+- deps += [ ":remap_alloc" ]
+- }
+ }
+ }
+ }
diff --git a/www/moin2/Makefile b/www/moin2/Makefile
index f9cfdc0b4cf6..73c81803afa8 100644
--- a/www/moin2/Makefile
+++ b/www/moin2/Makefile
@@ -4,7 +4,7 @@ CATEGORIES= www python
MASTER_SITES= https://github.com/moinwiki/moin/releases/download/${DISTVERSION}/
PKGNAMESUFFIX= 2
-MAINTAINER= bofh@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Easy to use, full-featured and extensible wiki software package
WWW= https://moinmo.in/
diff --git a/www/proxygen/Makefile b/www/proxygen/Makefile
index a97fe5968f2a..e29bf0e39b54 100644
--- a/www/proxygen/Makefile
+++ b/www/proxygen/Makefile
@@ -1,6 +1,6 @@
PORTNAME= proxygen
DISTVERSIONPREFIX= v
-DISTVERSION= 2025.05.12.00
+DISTVERSION= 2025.05.19.00
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/proxygen/distinfo b/www/proxygen/distinfo
index ea2c88d06979..8ff6ca192308 100644
--- a/www/proxygen/distinfo
+++ b/www/proxygen/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747102739
-SHA256 (facebook-proxygen-v2025.05.12.00_GH0.tar.gz) = 1503c296970790e79a543c524185886296e51a01ca27e649c639cb2de9283650
-SIZE (facebook-proxygen-v2025.05.12.00_GH0.tar.gz) = 1217212
+TIMESTAMP = 1747730524
+SHA256 (facebook-proxygen-v2025.05.19.00_GH0.tar.gz) = 9f228584d42be9381bdc044a8289f2a6db34fae2e8f23239e9748fb37938edc6
+SIZE (facebook-proxygen-v2025.05.19.00_GH0.tar.gz) = 1217144
diff --git a/www/typo3-12/Makefile b/www/typo3-12/Makefile
index a1edb26741b0..debae5bfffd5 100644
--- a/www/typo3-12/Makefile
+++ b/www/typo3-12/Makefile
@@ -30,7 +30,7 @@ WRKSRC= ${WRKDIR}/${PORTNAME}_src-${DISTVERSION}
PORT_V_MAJOR= 12
PORT_V_MINOR= 4
-PORT_V_PATCH= 28
+PORT_V_PATCH= 31
TYPO3DIR= www/${PORTNAME}-${PORT_V_MAJOR}
diff --git a/www/typo3-12/distinfo b/www/typo3-12/distinfo
index 7ecfc3395f59..8ba5a3b50a56 100644
--- a/www/typo3-12/distinfo
+++ b/www/typo3-12/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742309083
-SHA256 (typo3_src-12.4.28.tar.gz) = 000c7dd6cb940592ce83c683837862086d29d8809aca7bd5cc92180c8e94b2cc
-SIZE (typo3_src-12.4.28.tar.gz) = 26593637
+TIMESTAMP = 1747746945
+SHA256 (typo3_src-12.4.31.tar.gz) = 69e71c0be15291eb56db09ab305c942b499da434a9d9042b9e0662b1a9783681
+SIZE (typo3_src-12.4.31.tar.gz) = 26607292
diff --git a/www/typo3-13/Makefile b/www/typo3-13/Makefile
index 651851cca9e2..7ed4243700ca 100644
--- a/www/typo3-13/Makefile
+++ b/www/typo3-13/Makefile
@@ -1,6 +1,6 @@
PORTNAME= typo3
DISTVERSION= ${PORT_V_MAJOR}.${PORT_V_MINOR}.${PORT_V_PATCH}
-PORTREVISION= 1
+#PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://cdn.typo3.com/typo3/${DISTVERSION}/
PKGNAMESUFFIX= -${PORT_V_MAJOR}${PHP_PKGNAMESUFFIX}
@@ -32,7 +32,7 @@ SUB_LIST+= PREFIX=${PREFIX} \
PORT_V_MAJOR= 13
PORT_V_MINOR= 4
-PORT_V_PATCH= 8
+PORT_V_PATCH= 12
TYPO3DIR= www/${PORTNAME}-${PORT_V_MAJOR}
diff --git a/www/typo3-13/distinfo b/www/typo3-13/distinfo
index e0f4de0680f6..2b6bd6c63362 100644
--- a/www/typo3-13/distinfo
+++ b/www/typo3-13/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742309756
-SHA256 (typo3_src-13.4.8.tar.gz) = f851dc46e54d3997c5de16133a41d32283ccc49049882a4d8b97a60e87aa02cf
-SIZE (typo3_src-13.4.8.tar.gz) = 25531952
+TIMESTAMP = 1747749336
+SHA256 (typo3_src-13.4.12.tar.gz) = 6d6cbf20c0941592a0c4d85aa540e25564e06de05b33b77f322fee7d42396481
+SIZE (typo3_src-13.4.12.tar.gz) = 25573553
diff --git a/www/ungoogled-chromium/Makefile b/www/ungoogled-chromium/Makefile
index 11d2fde1f6f1..1c0da59d7a65 100644
--- a/www/ungoogled-chromium/Makefile
+++ b/www/ungoogled-chromium/Makefile
@@ -1,5 +1,6 @@
PORTNAME= ungoogled-chromium
PORTVERSION= 136.0.7103.113
+PORTREVISION= 1
PULSEMV= 16
PULSEV= ${PULSEMV}.1
UGVERSION= ${DISTVERSION}-1
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_BUILD.gn b/www/ungoogled-chromium/files/patch-build_rust_allocator_BUILD.gn
new file mode 100644
index 000000000000..cb1633140dcc
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_BUILD.gn
@@ -0,0 +1,109 @@
+--- build/rust/allocator/BUILD.gn.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/BUILD.gn
+@@ -0,0 +1,106 @@
++# Copyright 2025 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/buildflag_header.gni")
++import("//build/config/rust.gni")
++import("//build/rust/rust_static_library.gni")
++
++rust_allocator_uses_partition_alloc = false
++if (build_with_chromium) {
++ import("//base/allocator/partition_allocator/partition_alloc.gni")
++ rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc
++}
++
++# In ASAN builds, PartitionAlloc-Everywhere is disabled, meaning malloc() and
++# friends in C++ do not go to PartitionAlloc. So we also don't point the Rust
++# allocation functions at PartitionAlloc. Generally, this means we just direct
++# them to the Standard Library's allocator.
++#
++# However, on Windows the Standard Library uses HeapAlloc() and Windows ASAN
++# does *not* hook that method, so ASAN does not get to hear about allocations
++# made in Rust. To resolve this, we redirect allocation to _aligned_malloc
++# which Windows ASAN *does* hook.
++#
++# Note that there is a runtime option to make ASAN hook HeapAlloc() but
++# enabling it breaks Win32 APIs like CreateProcess:
++# https://crbug.com/368070343#comment29
++rust_allocator_uses_aligned_malloc = false
++if (!rust_allocator_uses_partition_alloc && is_win && is_asan) {
++ rust_allocator_uses_aligned_malloc = true
++}
++
++rust_allocator_uses_allocator_impls_h =
++ rust_allocator_uses_partition_alloc || rust_allocator_uses_aligned_malloc
++
++buildflag_header("buildflags") {
++ header = "buildflags.h"
++ flags = [
++ "RUST_ALLOCATOR_USES_PARTITION_ALLOC=$rust_allocator_uses_partition_alloc",
++ "RUST_ALLOCATOR_USES_ALIGNED_MALLOC=$rust_allocator_uses_aligned_malloc",
++ ]
++ visibility = [ ":*" ]
++}
++
++if (toolchain_has_rust) {
++ # All targets which depend on Rust code but are not linked by rustc must
++ # depend on this. Usually, this dependency will come from the rust_target() GN
++ # template. However, cargo_crate() does *not* include this dependency so any
++ # C++ targets which directly depend on a cargo_crate() must depend on this.
++ rust_static_library("allocator") {
++ sources = [ "lib.rs" ]
++ crate_root = "lib.rs"
++ cxx_bindings = [ "lib.rs" ]
++
++ deps = [ ":alloc_error_handler_impl" ]
++ if (rust_allocator_uses_allocator_impls_h) {
++ deps += [ ":allocator_impls" ]
++ }
++
++ no_chromium_prelude = true
++ no_allocator_crate = true
++ allow_unsafe = true
++
++ rustflags = []
++ if (rust_allocator_uses_allocator_impls_h) {
++ rustflags += [ "--cfg=rust_allocator_uses_allocator_impls_h" ]
++ cxx_bindings += [ "allocator_impls_ffi.rs" ]
++ sources += [ "allocator_impls_ffi.rs" ]
++ }
++
++ # TODO(https://crbug.com/410596442): Stop using unstable features here.
++ configs -= [ "//build/config/compiler:disallow_unstable_features" ]
++ }
++
++ if (rust_allocator_uses_allocator_impls_h) {
++ static_library("allocator_impls") {
++ public_deps = []
++ if (rust_allocator_uses_partition_alloc) {
++ public_deps +=
++ [ "//base/allocator/partition_allocator:partition_alloc" ]
++ }
++
++ sources = [
++ "allocator_impls.cc",
++ "allocator_impls.h",
++ ]
++ deps = [ ":buildflags" ]
++ visibility = [ ":*" ]
++ }
++ }
++
++ static_library("alloc_error_handler_impl") {
++ sources = [
++ # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been
++ # copied from `//base`.
++ # TODO(crbug.com/40279749): Avoid duplication / reuse code.
++ "alias.cc",
++ "alias.h",
++ "alloc_error_handler_impl.cc",
++ "alloc_error_handler_impl.h",
++ "compiler_specific.h",
++ "immediate_crash.h",
++ ]
++ visibility = [ ":*" ]
++ }
++}
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_DEPS b/www/ungoogled-chromium/files/patch-build_rust_allocator_DEPS
new file mode 100644
index 000000000000..74bb2d6c2421
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_DEPS
@@ -0,0 +1,12 @@
+--- build/rust/allocator/DEPS.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/DEPS
+@@ -0,0 +1,9 @@
++include_rules = [
++ "-base",
++]
++
++specific_include_rules = {
++ "allocator_impls.cc" : [
++ "+partition_alloc"
++ ]
++}
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_alias.cc b/www/ungoogled-chromium/files/patch-build_rust_allocator_alias.cc
new file mode 100644
index 000000000000..5280641f27e1
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_alias.cc
@@ -0,0 +1,25 @@
+--- build/rust/allocator/alias.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alias.cc
+@@ -0,0 +1,22 @@
++// 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.
++
++// This file has been copied from //base/debug/alias.cc ( additionally the APIs
++// were moved into the `build_rust_std` namespace).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#include "build/rust/allocator/alias.h"
++
++#include "build/rust/allocator/compiler_specific.h"
++
++namespace build_rust_std {
++namespace debug {
++
++// This file/function should be excluded from LTO/LTCG to ensure that the
++// compiler can't see this function's implementation when compiling calls to it.
++NOINLINE void Alias(const void* var) {}
++
++} // namespace debug
++} // namespace build_rust_std
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_alias.h b/www/ungoogled-chromium/files/patch-build_rust_allocator_alias.h
new file mode 100644
index 000000000000..6530c6ae8779
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_alias.h
@@ -0,0 +1,40 @@
+--- build/rust/allocator/alias.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alias.h
+@@ -0,0 +1,37 @@
++// 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.
++
++// This file has been copied from //base/debug/alias.h (and then trimmed to just
++// the APIs / macros needed by //build/rust/std; additionally the APIs were
++// moved into the `build_rust_std` namespace).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALIAS_H_
++#define BUILD_RUST_ALLOCATOR_ALIAS_H_
++
++#include <stddef.h>
++
++namespace build_rust_std {
++namespace debug {
++
++// Make the optimizer think that |var| is aliased. This can be used to prevent a
++// local variable from being optimized out (which is something that
++// `NO_CODE_FOLDING` macro definition below depends on). See
++// //base/debug/alias.h for more details.
++void Alias(const void* var);
++
++} // namespace debug
++
++} // namespace build_rust_std
++
++// Prevent code folding (where a linker identifies functions that are
++// bit-identical and overlays them, which saves space but it leads to confusing
++// call stacks because multiple symbols are at the same address). See
++// //base/debug/alias.h for more details.
++#define NO_CODE_FOLDING() \
++ const int line_number = __LINE__; \
++ build_rust_std::debug::Alias(&line_number)
++
++#endif // BUILD_RUST_ALLOCATOR_ALIAS_H_
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc b/www/ungoogled-chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc
new file mode 100644
index 000000000000..048c267abefa
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.cc
@@ -0,0 +1,20 @@
+--- build/rust/allocator/alloc_error_handler_impl.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alloc_error_handler_impl.cc
+@@ -0,0 +1,17 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "build/rust/allocator/alloc_error_handler_impl.h"
++
++#include "build/rust/allocator/alias.h"
++#include "build/rust/allocator/immediate_crash.h"
++
++namespace rust_allocator_internal {
++
++void alloc_error_handler_impl() {
++ NO_CODE_FOLDING();
++ IMMEDIATE_CRASH();
++}
++
++} // namespace rust_allocator_internal
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.h b/www/ungoogled-chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.h
new file mode 100644
index 000000000000..887ea602b027
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_alloc__error__handler__impl.h
@@ -0,0 +1,24 @@
+--- build/rust/allocator/alloc_error_handler_impl.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/alloc_error_handler_impl.h
+@@ -0,0 +1,21 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
++#define BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
++
++// This header exposes to Rust a C++ implementation of quickly crashing after an
++// allocation error. (The API below is called from `__rust_alloc_error_handler`
++// in `lib.rs`.)
++//
++// TODO(lukasza): Investigate if we can delete this `.h` / `.cc` and just call
++// `std::process::abort()` (or something else?) directly from `.rs`. The main
++// open question is how much we care about `NO_CODE_FOLDING`.
++namespace rust_allocator_internal {
++
++void alloc_error_handler_impl();
++
++} // namespace rust_allocator_internal
++
++#endif // BUILD_RUST_ALLOCATOR_ALLOC_ERROR_HANDLER_IMPL_H_
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls.cc b/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls.cc
new file mode 100644
index 000000000000..94e04d7b966a
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls.cc
@@ -0,0 +1,108 @@
+--- build/rust/allocator/allocator_impls.cc.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls.cc
+@@ -0,0 +1,105 @@
++// Copyright 2021 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "build/rust/allocator/allocator_impls.h"
++
++#ifdef UNSAFE_BUFFERS_BUILD
++// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
++#pragma allow_unsafe_libc_calls
++#endif
++
++#include <cstddef>
++#include <cstring>
++
++#include "build/build_config.h"
++#include "build/rust/allocator/buildflags.h"
++
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++#include "partition_alloc/partition_alloc_constants.h" // nogncheck
++#include "partition_alloc/shim/allocator_shim.h" // nogncheck
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++#include <cstdlib>
++#endif
++
++namespace rust_allocator_internal {
++
++unsigned char* alloc(size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ // PartitionAlloc will crash if given an alignment larger than this.
++ if (align > partition_alloc::internal::kMaxSupportedAlignment) {
++ return nullptr;
++ }
++
++ // We use unchecked allocation paths in PartitionAlloc rather than going
++ // through its shims in `malloc()` etc so that we can support fallible
++ // allocation paths such as Vec::try_reserve without crashing on allocation
++ // failure.
++ if (align <= alignof(std::max_align_t)) {
++ return static_cast<unsigned char*>(allocator_shim::UncheckedAlloc(size));
++ } else {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedAlignedAlloc(size, align));
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return static_cast<unsigned char*>(_aligned_malloc(size, align));
++#else
++#error This configuration is not supported.
++#endif
++}
++
++void dealloc(unsigned char* p, size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ if (align <= alignof(std::max_align_t)) {
++ allocator_shim::UncheckedFree(p);
++ } else {
++ allocator_shim::UncheckedAlignedFree(p);
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return _aligned_free(p);
++#else
++#error This configuration is not supported.
++#endif
++}
++
++unsigned char* realloc(unsigned char* p,
++ size_t old_size,
++ size_t align,
++ size_t new_size) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC)
++ // We use unchecked allocation paths in PartitionAlloc rather than going
++ // through its shims in `malloc()` etc so that we can support fallible
++ // allocation paths such as Vec::try_reserve without crashing on allocation
++ // failure.
++ if (align <= alignof(std::max_align_t)) {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedRealloc(p, new_size));
++ } else {
++ return static_cast<unsigned char*>(
++ allocator_shim::UncheckedAlignedRealloc(p, new_size, align));
++ }
++#elif BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ return static_cast<unsigned char*>(_aligned_realloc(p, new_size, align));
++#else
++#error This configuration is not supported.
++#endif
++}
++
++unsigned char* alloc_zeroed(size_t size, size_t align) {
++#if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) || \
++ BUILDFLAG(RUST_ALLOCATOR_USES_ALIGNED_MALLOC)
++ // TODO(danakj): When RUST_ALLOCATOR_USES_PARTITION_ALLOC is true, it's
++ // possible that a partition_alloc::UncheckedAllocZeroed() call would perform
++ // better than partition_alloc::UncheckedAlloc() + memset. But there is no
++ // such API today. See b/342251590.
++ unsigned char* p = alloc(size, align);
++ if (p) {
++ memset(p, 0, size);
++ }
++ return p;
++#else
++#error This configuration is not supported.
++#endif
++}
++
++} // namespace rust_allocator_internal
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls.h b/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls.h
new file mode 100644
index 000000000000..9249cdc938d2
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls.h
@@ -0,0 +1,27 @@
+--- build/rust/allocator/allocator_impls.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls.h
+@@ -0,0 +1,24 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
++#define BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
++
++#include <cstddef>
++
++// This header exposes a C++ allocator (e.g. PartitionAlloc) to Rust.
++// The APIs below are called from `impl GlobalAlloc` in `lib.rs`.
++namespace rust_allocator_internal {
++
++unsigned char* alloc(size_t size, size_t align);
++void dealloc(unsigned char* p, size_t size, size_t align);
++unsigned char* realloc(unsigned char* p,
++ size_t old_size,
++ size_t align,
++ size_t new_size);
++unsigned char* alloc_zeroed(size_t size, size_t align);
++
++} // namespace rust_allocator_internal
++
++#endif // BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls__ffi.rs b/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls__ffi.rs
new file mode 100644
index 000000000000..8f0baf1576ce
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_allocator__impls__ffi.rs
@@ -0,0 +1,22 @@
+--- build/rust/allocator/allocator_impls_ffi.rs.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/allocator_impls_ffi.rs
+@@ -0,0 +1,19 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++//! FFI for `allocator_impls.h` is in a separate `.rs` file/module to
++//! better support conditional compilation (these functions are only
++//! used under `#[cfg(rust_allocator_uses_allocator_impls_h)]`.
++
++#[cxx::bridge(namespace = "rust_allocator_internal")]
++pub mod ffi {
++ extern "C++" {
++ include!("build/rust/allocator/allocator_impls.h");
++
++ unsafe fn alloc(size: usize, align: usize) -> *mut u8;
++ unsafe fn dealloc(p: *mut u8, size: usize, align: usize);
++ unsafe fn realloc(p: *mut u8, old_size: usize, align: usize, new_size: usize) -> *mut u8;
++ unsafe fn alloc_zeroed(size: usize, align: usize) -> *mut u8;
++ }
++}
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_compiler__specific.h b/www/ungoogled-chromium/files/patch-build_rust_allocator_compiler__specific.h
new file mode 100644
index 000000000000..7feb0c739d79
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_compiler__specific.h
@@ -0,0 +1,41 @@
+--- build/rust/allocator/compiler_specific.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/compiler_specific.h
+@@ -0,0 +1,38 @@
++// 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.
++
++// This file has been copied from //base/compiler_specific.h (and then
++// significantly trimmed to just the APIs / macros needed by //build/rust/std).
++//
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
++#define BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
++
++#include "build/build_config.h"
++
++#if defined(COMPILER_MSVC) && !defined(__clang__)
++#error "Only clang-cl is supported on Windows, see https://crbug.com/988071"
++#endif
++
++#if defined(__has_attribute)
++#define HAS_ATTRIBUTE(x) __has_attribute(x)
++#else
++#define HAS_ATTRIBUTE(x) 0
++#endif
++
++// Annotate a function indicating it should not be inlined.
++// Use like:
++// NOINLINE void DoStuff() { ... }
++#if defined(__clang__) && HAS_ATTRIBUTE(noinline)
++#define NOINLINE [[clang::noinline]]
++#elif defined(COMPILER_GCC) && HAS_ATTRIBUTE(noinline)
++#define NOINLINE __attribute__((noinline))
++#elif defined(COMPILER_MSVC)
++#define NOINLINE __declspec(noinline)
++#else
++#define NOINLINE
++#endif
++
++#endif // BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_immediate__crash.h b/www/ungoogled-chromium/files/patch-build_rust_allocator_immediate__crash.h
new file mode 100644
index 000000000000..7ab0f9d9c34c
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_immediate__crash.h
@@ -0,0 +1,174 @@
+--- build/rust/allocator/immediate_crash.h.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/immediate_crash.h
+@@ -0,0 +1,171 @@
++// Copyright 2021 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++// This file has been copied from //base/immediate_crash.h.
++// TODO(crbug.com/40279749): Avoid code duplication / reuse code.
++
++#ifndef BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
++#define BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
++
++#include "build/build_config.h"
++
++// Crashes in the fastest possible way with no attempt at logging.
++// There are several constraints; see http://crbug.com/664209 for more context.
++//
++// - TRAP_SEQUENCE_() must be fatal. It should not be possible to ignore the
++// resulting exception or simply hit 'continue' to skip over it in a debugger.
++// - Different instances of TRAP_SEQUENCE_() must not be folded together, to
++// ensure crash reports are debuggable. Unlike __builtin_trap(), asm volatile
++// blocks will not be folded together.
++// Note: TRAP_SEQUENCE_() previously required an instruction with a unique
++// nonce since unlike clang, GCC folds together identical asm volatile
++// blocks.
++// - TRAP_SEQUENCE_() must produce a signal that is distinct from an invalid
++// memory access.
++// - TRAP_SEQUENCE_() must be treated as a set of noreturn instructions.
++// __builtin_unreachable() is used to provide that hint here. clang also uses
++// this as a heuristic to pack the instructions in the function epilogue to
++// improve code density.
++//
++// Additional properties that are nice to have:
++// - TRAP_SEQUENCE_() should be as compact as possible.
++// - The first instruction of TRAP_SEQUENCE_() should not change, to avoid
++// shifting crash reporting clusters. As a consequence of this, explicit
++// assembly is preferred over intrinsics.
++// Note: this last bullet point may no longer be true, and may be removed in
++// the future.
++
++// Note: TRAP_SEQUENCE Is currently split into two macro helpers due to the fact
++// that clang emits an actual instruction for __builtin_unreachable() on certain
++// platforms (see https://crbug.com/958675). In addition, the int3/bkpt/brk will
++// be removed in followups, so splitting it up like this now makes it easy to
++// land the followups.
++
++#if defined(COMPILER_GCC)
++
++#if BUILDFLAG(IS_NACL)
++
++// Crash report accuracy is not guaranteed on NaCl.
++#define TRAP_SEQUENCE1_() __builtin_trap()
++#define TRAP_SEQUENCE2_() asm volatile("")
++
++#elif defined(ARCH_CPU_X86_FAMILY)
++
++// TODO(crbug.com/40625592): In theory, it should be possible to use just
++// int3. However, there are a number of crashes with SIGILL as the exception
++// code, so it seems likely that there's a signal handler that allows execution
++// to continue after SIGTRAP.
++#define TRAP_SEQUENCE1_() asm volatile("int3")
++
++#if BUILDFLAG(IS_APPLE)
++// Intentionally empty: __builtin_unreachable() is always part of the sequence
++// (see IMMEDIATE_CRASH below) and already emits a ud2 on Mac.
++#define TRAP_SEQUENCE2_() asm volatile("")
++#else
++#define TRAP_SEQUENCE2_() asm volatile("ud2")
++#endif // BUILDFLAG(IS_APPLE)
++
++#elif defined(ARCH_CPU_ARMEL)
++
++// bkpt will generate a SIGBUS when running on armv7 and a SIGTRAP when running
++// as a 32 bit userspace app on arm64. There doesn't seem to be any way to
++// cause a SIGTRAP from userspace without using a syscall (which would be a
++// problem for sandboxing).
++// TODO(crbug.com/40625592): Remove bkpt from this sequence.
++#define TRAP_SEQUENCE1_() asm volatile("bkpt #0")
++#define TRAP_SEQUENCE2_() asm volatile("udf #0")
++
++#elif defined(ARCH_CPU_ARM64)
++
++// This will always generate a SIGTRAP on arm64.
++// TODO(crbug.com/40625592): Remove brk from this sequence.
++#define TRAP_SEQUENCE1_() asm volatile("brk #0")
++#define TRAP_SEQUENCE2_() asm volatile("hlt #0")
++
++#else
++
++// Crash report accuracy will not be guaranteed on other architectures, but at
++// least this will crash as expected.
++#define TRAP_SEQUENCE1_() __builtin_trap()
++#define TRAP_SEQUENCE2_() asm volatile("")
++
++#endif // ARCH_CPU_*
++
++#elif defined(COMPILER_MSVC)
++
++#if !defined(__clang__)
++
++// MSVC x64 doesn't support inline asm, so use the MSVC intrinsic.
++#define TRAP_SEQUENCE1_() __debugbreak()
++#define TRAP_SEQUENCE2_()
++
++#elif defined(ARCH_CPU_ARM64)
++
++// Windows ARM64 uses "BRK #F000" as its breakpoint instruction, and
++// __debugbreak() generates that in both VC++ and clang.
++#define TRAP_SEQUENCE1_() __debugbreak()
++// Intentionally empty: __builtin_unreachable() is always part of the sequence
++// (see IMMEDIATE_CRASH below) and already emits a ud2 on Win64,
++// https://crbug.com/958373
++#define TRAP_SEQUENCE2_() __asm volatile("")
++
++#else
++
++#define TRAP_SEQUENCE1_() asm volatile("int3")
++#define TRAP_SEQUENCE2_() asm volatile("ud2")
++
++#endif // __clang__
++
++#else
++
++#error No supported trap sequence!
++
++#endif // COMPILER_GCC
++
++#define TRAP_SEQUENCE_() \
++ do { \
++ TRAP_SEQUENCE1_(); \
++ TRAP_SEQUENCE2_(); \
++ } while (false)
++
++// CHECK() and the trap sequence can be invoked from a constexpr function.
++// This could make compilation fail on GCC, as it forbids directly using inline
++// asm inside a constexpr function. However, it allows calling a lambda
++// expression including the same asm.
++// The side effect is that the top of the stacktrace will not point to the
++// calling function, but to this anonymous lambda. This is still useful as the
++// full name of the lambda will typically include the name of the function that
++// calls CHECK() and the debugger will still break at the right line of code.
++#if !defined(COMPILER_GCC) || defined(__clang__)
++
++#define WRAPPED_TRAP_SEQUENCE_() TRAP_SEQUENCE_()
++
++#else
++
++#define WRAPPED_TRAP_SEQUENCE_() \
++ do { \
++ [] { TRAP_SEQUENCE_(); }(); \
++ } while (false)
++
++#endif // !defined(COMPILER_GCC) || defined(__clang__)
++
++#if defined(__clang__) || defined(COMPILER_GCC)
++
++// __builtin_unreachable() hints to the compiler that this is noreturn and can
++// be packed in the function epilogue.
++#define IMMEDIATE_CRASH() \
++ ({ \
++ WRAPPED_TRAP_SEQUENCE_(); \
++ __builtin_unreachable(); \
++ })
++
++#else
++
++// This is supporting non-chromium user of logging.h to build with MSVC, like
++// pdfium. On MSVC there is no __builtin_unreachable().
++#define IMMEDIATE_CRASH() WRAPPED_TRAP_SEQUENCE_()
++
++#endif // defined(__clang__) || defined(COMPILER_GCC)
++
++#endif // BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_
diff --git a/www/ungoogled-chromium/files/patch-build_rust_allocator_lib.rs b/www/ungoogled-chromium/files/patch-build_rust_allocator_lib.rs
new file mode 100644
index 000000000000..89fddf278294
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_allocator_lib.rs
@@ -0,0 +1,122 @@
+--- build/rust/allocator/lib.rs.orig 2025-05-20 09:16:26 UTC
++++ build/rust/allocator/lib.rs
+@@ -0,0 +1,119 @@
++// Copyright 2025 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++//! Define the allocator that Rust code in Chrome should use.
++//!
++//! Any final artifact that depends on this crate, even transitively, will use
++//! the allocator defined here.
++//!
++//! List of known issues:
++//!
++//! 1. We'd like to use PartitionAlloc on Windows, but the stdlib uses Windows
++//! heap functions directly that PartitionAlloc can not intercept.
++//! 2. We'd like `Vec::try_reserve` to fail at runtime on Linux instead of
++//! crashing in malloc() where PartitionAlloc replaces that function.
++
++// Required to apply weak linkage to symbols.
++//
++// TODO(https://crbug.com/410596442): Stop using unstable features here.
++// https://github.com/rust-lang/rust/issues/29603 tracks stabilization of the `linkage` feature.
++#![feature(linkage)]
++// Required to apply `#[rustc_std_internal_symbol]` to our alloc error handler
++// so the name is correctly mangled as rustc expects.
++//
++// TODO(https://crbug.com/410596442): Stop using internal features here.
++#![allow(internal_features)]
++#![feature(rustc_attrs)]
++
++// This module is in a separate source file to avoid having to teach `cxxbridge`
++// about conditional compilation.
++#[cfg(rust_allocator_uses_allocator_impls_h)]
++mod allocator_impls_ffi;
++
++/// Module that provides `#[global_allocator]` / `GlobalAlloc` interface for
++/// using an allocator from C++.
++#[cfg(rust_allocator_uses_allocator_impls_h)]
++mod cpp_allocator {
++ use super::allocator_impls_ffi::ffi;
++ use std::alloc::{GlobalAlloc, Layout};
++
++ struct Allocator;
++
++ unsafe impl GlobalAlloc for Allocator {
++ unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
++ unsafe { ffi::alloc(layout.size(), layout.align()) }
++ }
++
++ unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {
++ unsafe {
++ ffi::dealloc(ptr, layout.size(), layout.align());
++ }
++ }
++
++ unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 {
++ unsafe { ffi::alloc_zeroed(layout.size(), layout.align()) }
++ }
++
++ unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {
++ unsafe { ffi::realloc(ptr, layout.size(), layout.align(), new_size) }
++ }
++ }
++
++ #[global_allocator]
++ static GLOBAL: Allocator = Allocator;
++}
++
++/// Module that provides `#[global_allocator]` / `GlobalAlloc` interface for
++/// using the default Rust allocator.
++#[cfg(not(rust_allocator_uses_allocator_impls_h))]
++mod rust_allocator {
++ #[global_allocator]
++ static GLOBAL: std::alloc::System = std::alloc::System;
++}
++
++/// Module that provides global symbols that are needed both by `cpp_allocator`
++/// and `rust_allocator`.
++///
++/// When `rustc` drives linking, then it will define the symbols below. But
++/// Chromium only uses `rustc` to link Rust-only executables (e.g. `build.rs`
++/// scripts) and otherwise uses a non-Rust linker. This is why we have to
++/// manually define a few symbols below. We define those symbols
++/// as "weak" symbols, so that Rust-provided symbols "win" in case where Rust
++/// actually does drive the linking. This hack works (not only for Chromium,
++/// but also for google3 and other projects), but isn't officially supported by
++/// `rustc`.
++///
++/// TODO(https://crbug.com/410596442): Stop using internal features here.
++mod both_allocators {
++ /// As part of rustc's contract for using `#[global_allocator]` without
++ /// rustc-generated shims we must define this symbol, since we are opting in
++ /// to unstable functionality. See https://github.com/rust-lang/rust/issues/123015
++ #[no_mangle]
++ #[linkage = "weak"]
++ static __rust_no_alloc_shim_is_unstable: u8 = 0;
++
++ // Mangle the symbol name as rustc expects.
++ #[rustc_std_internal_symbol]
++ #[allow(non_upper_case_globals)]
++ #[linkage = "weak"]
++ static __rust_alloc_error_handler_should_panic: u8 = 0;
++
++ // Mangle the symbol name as rustc expects.
++ #[rustc_std_internal_symbol]
++ #[allow(non_upper_case_globals)]
++ #[linkage = "weak"]
++ fn __rust_alloc_error_handler(_size: usize, _align: usize) {
++ // TODO(lukasza): Investigate if we can just call `std::process::abort()` here.
++ // (Not really _needed_, but it could simplify code a little bit.)
++ unsafe { ffi::alloc_error_handler_impl() }
++ }
++
++ #[cxx::bridge(namespace = "rust_allocator_internal")]
++ mod ffi {
++ extern "C++" {
++ include!("build/rust/allocator/alloc_error_handler_impl.h");
++ unsafe fn alloc_error_handler_impl();
++ }
++ }
++}
diff --git a/www/ungoogled-chromium/files/patch-build_rust_cargo__crate.gni b/www/ungoogled-chromium/files/patch-build_rust_cargo__crate.gni
new file mode 100644
index 000000000000..a1590f727aa3
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_cargo__crate.gni
@@ -0,0 +1,25 @@
+--- build/rust/cargo_crate.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/cargo_crate.gni
+@@ -259,6 +259,12 @@ template("cargo_crate") {
+ # Don't import the `chromium` crate into third-party code.
+ no_chromium_prelude = true
+
++ # Don't depend on the chrome-specific #[global_allocator] crate from
++ # third-party code. This avoids some dependency cycle issues. The allocator
++ # crate will still be used if it exists anywhere in the dependency graph for
++ # a given linked artifact.
++ no_allocator_crate = true
++
+ rustc_metadata = _rustc_metadata
+
+ # TODO(crbug.com/40259764): don't default to true. This requires changes to
+@@ -482,6 +488,9 @@ template("cargo_crate") {
+
+ # Don't import the `chromium` crate into third-party code.
+ no_chromium_prelude = true
++
++ # Build scripts do not need to link to chrome's allocator.
++ no_allocator_crate = true
+
+ # The ${_build_script_name}_output target looks for the exe in this
+ # location. Due to how the Windows component build works, this has to
diff --git a/www/ungoogled-chromium/files/patch-build_rust_rust__macro.gni b/www/ungoogled-chromium/files/patch-build_rust_rust__macro.gni
new file mode 100644
index 000000000000..0dafc3819aa1
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_rust__macro.gni
@@ -0,0 +1,12 @@
+--- build/rust/rust_macro.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/rust_macro.gni
+@@ -16,6 +16,9 @@ template("rust_macro") {
+ forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
+ proc_macro_configs = invoker.configs
+ target_type = "rust_proc_macro"
++
++ # Macros are loaded by rustc and shouldn't use chrome's allocation routines.
++ no_allocator_crate = true
+ }
+ }
+
diff --git a/www/ungoogled-chromium/files/patch-build_rust_rust__target.gni b/www/ungoogled-chromium/files/patch-build_rust_rust__target.gni
new file mode 100644
index 000000000000..f4ad6f04fc45
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-build_rust_rust__target.gni
@@ -0,0 +1,13 @@
+--- build/rust/rust_target.gni.orig 2025-05-20 09:16:26 UTC
++++ build/rust/rust_target.gni
+@@ -339,6 +339,10 @@ template("rust_target") {
+ _rust_deps += [ "//build/rust/std" ]
+ }
+
++ if (!defined(invoker.no_allocator_crate) || !invoker.no_allocator_crate) {
++ _rust_deps += [ "//build/rust/allocator" ]
++ }
++
+ if (_build_unit_tests) {
+ _unit_test_target = "${_target_name}_unittests"
+ if (defined(invoker.unit_test_target)) {
diff --git a/www/ungoogled-chromium/files/patch-build_rust_std_BUILD.gn b/www/ungoogled-chromium/files/patch-build_rust_std_BUILD.gn
index 0a5335d58d48..c6c2801bd47d 100644
--- a/www/ungoogled-chromium/files/patch-build_rust_std_BUILD.gn
+++ b/www/ungoogled-chromium/files/patch-build_rust_std_BUILD.gn
@@ -1,6 +1,58 @@
---- build/rust/std/BUILD.gn.orig 2025-04-05 13:54:50 UTC
+--- build/rust/std/BUILD.gn.orig 2025-05-20 09:16:26 UTC
+++ build/rust/std/BUILD.gn
-@@ -89,13 +89,20 @@ if (toolchain_has_rust) {
+@@ -15,51 +15,12 @@
+ # allocator functions to PartitionAlloc when `use_partition_alloc_as_malloc` is
+ # true, so that Rust and C++ use the same allocator backend.
+
+-import("//build/buildflag_header.gni")
+ import("//build/config/compiler/compiler.gni")
+ import("//build/config/coverage/coverage.gni")
+ import("//build/config/rust.gni")
+ import("//build/config/sanitizers/sanitizers.gni")
+
+-rust_allocator_uses_partition_alloc = false
+-if (build_with_chromium) {
+- import("//base/allocator/partition_allocator/partition_alloc.gni")
+- rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc
+-}
+-
+-buildflag_header("buildflags") {
+- header = "buildflags.h"
+- flags = [
+- "RUST_ALLOCATOR_USES_PARTITION_ALLOC=$rust_allocator_uses_partition_alloc",
+- ]
+- visibility = [ ":*" ]
+-}
+-
+ if (toolchain_has_rust) {
+- # If clang performs the link step, we need to provide the allocator symbols
+- # that are normally injected by rustc during linking.
+- #
+- # We also "happen to" use this to redirect allocations to PartitionAlloc,
+- # though that would be better done through a #[global_allocator] crate (see
+- # above).
+- source_set("remap_alloc") {
+- public_deps = []
+- if (rust_allocator_uses_partition_alloc) {
+- public_deps += [ "//base/allocator/partition_allocator:partition_alloc" ]
+- }
+- deps = [ ":buildflags" ]
+- sources = [
+- # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been
+- # copied from `//base`.
+- # TODO(crbug.com/40279749): Avoid duplication / reuse code.
+- "alias.cc",
+- "alias.h",
+- "compiler_specific.h",
+- "immediate_crash.h",
+- "remap_alloc.cc",
+- ]
+- }
+-
+ # List of Rust stdlib rlibs which are present in the official Rust toolchain
+ # we are using from the Android team. This is usually a version or two behind
+ # nightly. Generally this matches the toolchain we build ourselves, but if
+@@ -89,13 +50,20 @@ if (toolchain_has_rust) {
# These are no longer present in the Windows toolchain.
stdlib_files += [
"addr2line",
@@ -22,7 +74,7 @@
}
if (toolchain_for_rust_host_build_tools) {
-@@ -115,7 +122,6 @@ if (toolchain_has_rust) {
+@@ -115,7 +83,6 @@ if (toolchain_has_rust) {
# don't need to pass to the C++ linker because they're used for specialized
# purposes.
skip_stdlib_files = [
@@ -30,3 +82,25 @@
"rustc_std_workspace_alloc",
"rustc_std_workspace_core",
"rustc_std_workspace_std",
+@@ -269,8 +236,6 @@ if (toolchain_has_rust) {
+ foreach(libname, stdlib_files + skip_stdlib_files) {
+ deps += [ "rules:$libname" ]
+ }
+-
+- public_deps = [ ":remap_alloc" ]
+ }
+ } else {
+ action("find_stdlib") {
+@@ -396,12 +361,6 @@ if (toolchain_has_rust) {
+ ":stdlib_public_dependent_libs",
+ ]
+ deps = [ ":prebuilt_rustc_copy_to_sysroot" ]
+-
+- # The host builds tools toolchain supports Rust only and does not use
+- # the allocator remapping to point it to PartitionAlloc.
+- if (!toolchain_for_rust_host_build_tools) {
+- deps += [ ":remap_alloc" ]
+- }
+ }
+ }
+ }
diff --git a/x11/arcan-trayicon/Makefile b/x11/arcan-trayicon/Makefile
index e45b709f465a..dde5291d640a 100644
--- a/x11/arcan-trayicon/Makefile
+++ b/x11/arcan-trayicon/Makefile
@@ -1,8 +1,8 @@
PORTNAME= arcan-trayicon
-DISTVERSION= 0.6.3.3
+DISTVERSION= 0.7.0.1
CATEGORIES= x11
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= hoanga@gmail.com
COMMENT= Generic wrapper for registering Arcan clients as tray icons
WWW= https://arcan-fe.com/
diff --git a/x11/arcan-trayicon/distinfo b/x11/arcan-trayicon/distinfo
index 305276508059..a866c228580c 100644
--- a/x11/arcan-trayicon/distinfo
+++ b/x11/arcan-trayicon/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1722779595
-SHA256 (letoram-arcan-0.6.3.3_GH0.tar.gz) = 38c2d02802389b15e5c24b6b8cf53f946cb3e5f15a1d7af95ad04ffcc9101914
-SIZE (letoram-arcan-0.6.3.3_GH0.tar.gz) = 12949697
+TIMESTAMP = 1747584654
+SHA256 (letoram-arcan-0.7.0.1_GH0.tar.gz) = 63d925d100389e7a1074a8746a080a01d94739df487c2f8e311eb49adc006c6e
+SIZE (letoram-arcan-0.7.0.1_GH0.tar.gz) = 12978670
diff --git a/x11/xfce4-clipman-plugin/Makefile b/x11/xfce4-clipman-plugin/Makefile
index db856729d340..01745547aa2a 100644
--- a/x11/xfce4-clipman-plugin/Makefile
+++ b/x11/xfce4-clipman-plugin/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xfce4-clipman-plugin
-PORTVERSION= 1.6.7
+PORTVERSION= 1.7.0
CATEGORIES= x11 xfce
MASTER_SITES= XFCE/panel-plugins
DIST_SUBDIR= xfce4
@@ -10,16 +10,14 @@ WWW= https://docs.xfce.org/panel-plugins/xfce4-clipman-plugin/start
LICENSE= GPLv2
-LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
-
-USES= compiler:c11 gettext-tools gmake gnome libtool pkgconfig \
- tar:bzip2 xfce xorg
-USE_GNOME= cairo gdkpixbuf glib20 gtk30
+USES= compiler:c11 gettext-tools gnome meson pkgconfig tar:xz xfce \
+ xorg
+USE_GNOME= glib20 gtk30
USE_XFCE= libmenu panel xfconf
USE_XORG= ice sm x11 xorgproto xtst
-GNU_CONFIGURE= yes
-INSTALL_TARGET= install-strip
+MESON_ARGS= -Dx11=enabled \
+ -Dxtst=enabled
OPTIONS_DEFINE= NLS QRCODE WAYLAND
OPTIONS_DEFAULT=WAYLAND
@@ -27,14 +25,16 @@ OPTIONS_SUB= yes
QRCODE_DESC= QR Code support
-NLS_USES= gettext-runtime
-NLS_CONFIGURE_ENABLE= nls
+NLS_USES= gettext-runtime
QRCODE_LIB_DEPENDS= libqrencode.so:graphics/libqrencode
-QRCODE_CONFIGURE_ENABLE=libqrencode
+QRCODE_MESON_ENABLED= qrencode
WAYLAND_CATEGORIES= wayland
WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland
-WAYLAND_CONFIGURE_ENABLE=wayland
+WAYLAND_MESON_ENABLED= wayland
+
+post-patch-NLS-off:
+ @${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build
.include <bsd.port.mk>
diff --git a/x11/xfce4-clipman-plugin/distinfo b/x11/xfce4-clipman-plugin/distinfo
index d399c9181ffd..b379751c6d5d 100644
--- a/x11/xfce4-clipman-plugin/distinfo
+++ b/x11/xfce4-clipman-plugin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735048481
-SHA256 (xfce4/xfce4-clipman-plugin-1.6.7.tar.bz2) = 9bae27808a50e959e0912b7202ea5d651ed7401a6fc227f811d9bdaf2e44178c
-SIZE (xfce4/xfce4-clipman-plugin-1.6.7.tar.bz2) = 637572
+TIMESTAMP = 1747673074
+SHA256 (xfce4/xfce4-clipman-plugin-1.7.0.tar.xz) = 903302c3070a951d44ee17a84fa3cf21d36c6787678af8fbfc79e469fd00cb46
+SIZE (xfce4/xfce4-clipman-plugin-1.7.0.tar.xz) = 184276