Index: Makefile
===================================================================
RCS file: /cvs/ports/www/librewolf/Makefile,v
diff -u -p -u -p -r1.11 Makefile
--- Makefile	19 Aug 2026 14:19:23 -0000	1.11
+++ Makefile	20 Aug 2026 07:38:15 -0000
@@ -15,6 +15,7 @@ ONLY_FOR_ARCHS =	amd64 aarch64 riscv64
 # librewolf-149.0.2-2 (upstream) becomes librewolf-149.0.2pl2 (patch level 2)
 MOZILLA_DIST_VERSION =	154.0-2
 MOZILLA_VERSION =	${MOZILLA_DIST_VERSION:C/-([0-9]+)$/pl\1/}
+REVISION =		0
 
 MOZILLA_PROJECT =	librewolf
 MOZILLA_CODENAME =	browser
Index: patches/patch-xpcom_ds_nsAtom_h
===================================================================
RCS file: patches/patch-xpcom_ds_nsAtom_h
diff -N patches/patch-xpcom_ds_nsAtom_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-xpcom_ds_nsAtom_h	20 Aug 2026 07:38:15 -0000
@@ -0,0 +1,29 @@
+fix build with libcxx22
+https://phabricator.services.mozilla.com/D316723
+
+Index: xpcom/ds/nsAtom.h
+--- xpcom/ds/nsAtom.h.orig
++++ xpcom/ds/nsAtom.h
+@@ -36,11 +36,19 @@ class nsDynamicAtom;
+ class nsAtom {
+  public:
+   // Returns true if ToLowercaseASCII would return the string unchanged.
++  //
++  // This is deliberately a plain loop rather than std::all_of: gGkAtoms calls
++  // this for every static atom within a single constant expression, and
++  // std::all_of costs enough extra constexpr steps to exceed the default
++  // -fconstexpr-steps budget with some standard library implementations.
+   static constexpr bool ComputeIsAsciiLowercase(const char16_t* aString,
+                                                 const uint32_t aLength) {
+-    return std::all_of(aString, aString + aLength, [](char16_t c) {
+-      return !mozilla::IsAsciiUppercaseAlpha(c);
+-    });
++    for (uint32_t i = 0; i < aLength; ++i) {
++      if (mozilla::IsAsciiUppercaseAlpha(aString[i])) {
++        return false;
++      }
++    }
++    return true;
+   }
+ 
+   template <size_t N>
