pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/mail/thunderbird



Module Name:    pkgsrc
Committed By:   ryoon
Date:           Wed Sep 23 08:48:58 UTC 2026

Modified Files:
        pkgsrc/mail/thunderbird: Makefile PLIST distinfo mozilla-common.mk
        pkgsrc/mail/thunderbird/patches: patch-config_makefiles_rust.mk
            patch-nsprpub_pr_src_pthreads_ptsynch.c

Log Message:
mail/thunderbird: Update to 156.0.1

Changelog:
156.0.1:
What's Fixed

fixed
Thunderbird could crash when saving a message

156.0:
What's New

new
OpenPGP key properties can print debug information to the Error Console

new
External browser login flow enabled for Yandex

new
Custom OAuth support for issuer ID and client secret field for IMAP and POP3

new
Custom OAuth support for POP3

new
Enterprise policy DisableUpdateSettings prevents users from changing update
settings

new
Enterprise policy DisableDataCollectionSettings prevents users from changing
data collection setting

new
Enterprise policy DisableMessageForwardingFilters prevents message filters from
automatically forwarding messages

What's Changed

changed
Preference mail.offer_experimental_features renamed to
mail.experimental_features_settings.enabled

changed
Thundermail built-in add-on updated to v2.0.11

What's Fixed

fixed
Detached attachment links were truncated when folder path contained &

fixed
Opening a PDF attachment in a tab displayed empty tab

fixed
POP3 folders with names over 55 characters could become duplicated after
upgrading

fixed
Folders with invalid filename characters could show hashed names if cache was
lost

fixed
Save All, Detach All, and Delete All failed after deleting one attachment

fixed
Renaming folders could reset folder settings

fixed
Subscribing an IMAP folder and subfolder together failed to subscribe the
subfolder

fixed
Some newly fetched POP messages were not marked with new star after startup

fixed
Sorting after deleting the only child message removed the parent from view

fixed
OpenPGP signing failed with external GnuPG when the primary key could not sign

fixed
Remote content could load in encrypted messages opened from files

fixed
Sent message with expired S/MIME certificate wrongly showed untrusted CA
warning

fixed
PDF attachments from compose windows could wrongly be detected as HTML

fixed
Saving unconfirmed recipients could create invalid address pills with >>

fixed
External browser OAuth failed when a browser preconnection closed first

fixed
Users could not set up custom OAuth for Exchange accounts

fixed
Pressing Enter on Windows system tray icon did not restore Thunderbird window

fixed
Inline attachments incorrectly changed the message channel content type

fixed
Message loading was slow while discovering large numbers of IMAP folders

fixed
SMTP authentication failed when usernames contained non-ASCII characters

fixed
Unsupported EWS archive folder prevented all mailbox folders from syncing

fixed
Manual Get Messages failed after startup until toggling offline mode

fixed
Case differences in CalDAV email addresses caused duplicate invitations

fixed
Accepted CalDAV invitations could be saved to the wrong calendar

fixed
Visual and UX improvements

fixed
Security fixes

Security fixes:
Mozilla Foundation Security Advisory 2026-94
#CVE-2026-92238: Ambiguous parsing of mail headers
#CVE-2026-92239: Buffer overrun in IMAP
#CVE-2026-92240: Out-of-bounds read in IMAP response parser
#CVE-2026-92005: Use-after-free in the Audio/Video: Web Codecs component
#CVE-2026-92006: Privilege escalation due to incorrect boundary conditions in
 the Graphics: CanvasWebGL component
#CVE-2026-92007: Privilege escalation due to incorrect boundary conditions in
 the Graphics: CanvasWebGL component
#CVE-2026-92008: Privilege escalation due to incorrect boundary conditions in
 the Graphics: CanvasWebGL component
#CVE-2026-92009: Privilege escalation due to incorrect boundary conditions in
 the Graphics: CanvasWebGL component
#CVE-2026-92010: Privilege escalation due to incorrect boundary conditions in
 the Graphics: CanvasWebGL component
#CVE-2026-92011: Privilege escalation due to incorrect boundary conditions in
 the Graphics: CanvasWebGL component
#CVE-2026-92012: Privilege escalation due to incorrect boundary conditions in
 the Graphics: CanvasWebGL component
#CVE-2026-92013: Privilege escalation due to incorrect boundary conditions in
 the Graphics: CanvasWebGL component
#CVE-2026-92015: Privilege escalation in the WebExtensions component
#CVE-2026-92034: Site isolation issue in the Graphics component
#CVE-2026-92035: Sandbox escape due to incorrect boundary conditions in the
 Graphics component
#CVE-2026-92016: Use-after-free in the Disability Access APIs component
#CVE-2026-92017: Privilege escalation in the DOM: Service Workers component
#CVE-2026-92018: Sandbox escape in the DOM: Core & HTML component
#CVE-2026-92019: Mitigation bypass in the Remote Settings Client component
#CVE-2026-92020: Privilege escalation due to incorrect boundary conditions in
 the Graphics: WebRender component
#CVE-2026-92022: Use-after-free in the DOM: HTML Parser component
#CVE-2026-92023: Use-after-free in the XML component
#CVE-2026-92024: Use-after-free in the SVG component
#CVE-2026-92025: Use-after-free in the DOM: Navigation component
#CVE-2026-92026: Use-after-free in the Networking component
#CVE-2026-92036: Incorrect boundary conditions in the Networking: HTTP
 component
#CVE-2026-92027: Use-after-free in the DOM: Streams component
#CVE-2026-92028: Use-after-free in the DOM: Core & HTML component
#CVE-2026-92029: Use-after-free in the SVG component
#CVE-2026-92037: Incorrect boundary conditions in the DOM: Animation component
#CVE-2026-92038: Mitigation bypass in the Remote Settings Client component
#CVE-2026-92039: Mitigation bypass in the DOM: Notifications component
#CVE-2026-92040: Use-after-free in the JavaScript: WebAssembly component
#CVE-2026-92041: Mitigation bypass in the DOM: Networking component
#CVE-2026-92042: Race condition in the DOM: Content Processes component
#CVE-2026-92043: Privilege escalation due to incorrect boundary conditions in
 the Audio/Video component
#CVE-2026-92044: Information disclosure in the Networking: HTTP component
#CVE-2026-92045: Sandbox escape due to incorrect boundary conditions in the
 WebRTC component
#CVE-2026-92030: Mitigation bypass in the DOM: Copy & Paste and Drag & Drop
 component
#CVE-2026-92046: Use-after-free in the Graphics component
#CVE-2026-92047: Privilege escalation in the Crash Reporting component
#CVE-2026-92048: Sandbox escape due to incorrect boundary conditions in the
 Widget: Win32 component
#CVE-2026-92049: Use-after-free in the Widget: Win32 component
#CVE-2026-92050: Sandbox escape due to race condition in the XPConnect
 component
#CVE-2026-92051: Spoofing issue due to invalid pointer in the Graphics
 component
#CVE-2026-92052: Privilege escalation due to uninitialized memory in the
 Graphics: CanvasWebGL component
#CVE-2026-92053: Privilege escalation in the Graphics: CanvasWebGL component
#CVE-2026-92054: Privilege escalation in the Memory component
#CVE-2026-92055: Privilege escalation in the DevTools component
#CVE-2026-92056: Use-after-free in the Graphics: Text component
#CVE-2026-92057: Mitigation bypass in the Enterprise Policies component
#CVE-2026-92031: Information disclosure in the Graphics: ImageLib component
#CVE-2026-92032: Sandbox escape due to invalid pointer in the Graphics
 component
#CVE-2026-92058: Use-after-free in the Graphics component
#CVE-2026-92059: Incorrect boundary conditions in the DOM: Editor component
#CVE-2026-92060: Use-after-free in the Internationalization component
#CVE-2026-92061: Incorrect boundary conditions in the Security: Process
 Sandboxing component
#CVE-2026-92062: Privilege escalation in the Session Restore component
#CVE-2026-92063: Denial-of-service in the Audio/Video component
#CVE-2026-92064: Sandbox escape due to incorrect boundary conditions in the
 Widget: Win32 component
#CVE-2026-92065: Sandbox escape due to incorrect boundary conditions in the
 Widget: Win32 component
#CVE-2026-92066: Sandbox escape in the Profile Backup component
#CVE-2026-92067: Use-after-free in the Widget: Gtk component
#CVE-2026-92068: Site isolation issue in the Reader Mode component
#CVE-2026-92069: Spoofing issue in the DOM: Navigation component
#CVE-2026-92070: Information disclosure in the Networking component
#CVE-2026-92071: Sandbox escape due to incorrect boundary conditions in the
 Widget: Win32 component
#CVE-2026-92072: Incorrect boundary conditions in the Safe Browsing component
#CVE-2026-92073: Privilege escalation in the Enterprise Policies component
#CVE-2026-92074: Mitigation bypass in the Popup Blocker component
#CVE-2026-92075: Mitigation bypass in the Networking component
#CVE-2026-92076: Incorrect boundary conditions in the Networking component
#CVE-2026-92077: Denial-of-service in the SVG component
#CVE-2026-92078: Denial-of-service in the Security component
#CVE-2026-92079: Mitigation bypass in the Widget: Win32 component


To generate a diff of this commit:
cvs rdiff -u -r1.368 -r1.369 pkgsrc/mail/thunderbird/Makefile
cvs rdiff -u -r1.98 -r1.99 pkgsrc/mail/thunderbird/PLIST
cvs rdiff -u -r1.300 -r1.301 pkgsrc/mail/thunderbird/distinfo
cvs rdiff -u -r1.30 -r1.31 pkgsrc/mail/thunderbird/mozilla-common.mk
cvs rdiff -u -r1.7 -r1.8 \
    pkgsrc/mail/thunderbird/patches/patch-config_makefiles_rust.mk
cvs rdiff -u -r1.4 -r1.5 \
    pkgsrc/mail/thunderbird/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/mail/thunderbird/Makefile
diff -u pkgsrc/mail/thunderbird/Makefile:1.368 pkgsrc/mail/thunderbird/Makefile:1.369
--- pkgsrc/mail/thunderbird/Makefile:1.368      Wed Sep  2 19:03:21 2026
+++ pkgsrc/mail/thunderbird/Makefile    Wed Sep 23 08:48:57 2026
@@ -1,9 +1,8 @@
-# $NetBSD: Makefile,v 1.368 2026/09/02 19:03:21 wiz Exp $
+# $NetBSD: Makefile,v 1.369 2026/09/23 08:48:57 ryoon Exp $
 
 DISTNAME=      thunderbird-${TB_VER}.source
 PKGNAME=       thunderbird-${TB_VER:S/esr//}
-PKGREVISION=   1
-TB_VER=                154.0
+TB_VER=                155.0.1
 CATEGORIES=    mail
 MASTER_SITES=  ${MASTER_SITE_MOZILLA:=thunderbird/releases/${TB_VER}/source/}
 EXTRACT_SUFX=  .tar.xz
@@ -51,45 +50,6 @@ BUILDLINK_TRANSFORM.SunOS+=  rm:-Wl,-rpat
 
 CHECK_WRKREF_SKIP+=    lib/${MOZILLA_NAME}/omni.ja
 
-#
-# Generate list of subst entries for various .cargo-checksum.json files.  These
-# are all handled together in one big substitution to simplify things rather
-# than one substitution entry per file, but are kept separate below to ease
-# updating and verification.
-#
-
-#CKSUM_CRATES+=        comm/third_party/rust/minimal-lexical
-#
-## touch comm/third_party/rust/minimal-lexical/.gitmodules
-#CKSUMS+=      6976207a02c7160a3a1d076c5fae10fe4b78f58cdc0aa66ae47f3855b3c392fb
-#CKSUMS+=      e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
-
-#CKSUM_CRATES+=        comm/third_party/rust/sfv
-#
-## touch comm/third_party/rust/sfv/.gitmodules
-#CKSUMS+=      caa4f75b6a87c4a0f2e7d8d0d5fa2ef3f726fb0ae7797af09bfa3d57c4721148
-#CKSUMS+=      e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
-
-#CKSUM_CRATES+=        comm/third_party/rust/glslopt
-#
-## touch comm/third_party/rust/glslopt/.gitmodules
-#CKSUMS+=      ffc0cce90e856d4f4bdb3bd3c950c9e59501a45ebd5022b91cfe8c07c79ef1ac
-#CKSUMS+=      e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
-
-CKSUM_CRATES+= third_party/rust/mtu
-
-CKSUMS+=       9fbb89ab042627182477b35adc61eed71cffada9d3d5d522766d6d369ad02d80
-CKSUMS+=       986f84f01a44521224c7a7c1b1883cc6a4f89cbcb24b36844bfffea5f285747e
-
-SUBST_CLASSES+=                cksum
-SUBST_STAGE.cksum=     pre-configure
-.for crate in ${CKSUM_CRATES}
-SUBST_FILES.cksum+=    ${crate}/.cargo-checksum.json
-.endfor
-.for from to in ${CKSUMS}
-SUBST_SED.cksum+=      -e 's,${from},${to},g'
-.endfor
-
 PRINT_PLIST_AWK+=      /\/${MOZILLA}\// { gsub(/\/${MOZILLA}\//, "/$${MOZILLA}/") }
 PRINT_PLIST_AWK+=      /\/${MOZILLA}.png$$/ { gsub(/\/${MOZILLA}.png$$/, "/$${MOZILLA}.png") }
 PRINT_PLIST_AWK+=      /\/${MOZILLA}.desktop$$/ { gsub(/\/${MOZILLA}.desktop$$/, "/$${MOZILLA}.desktop") }

Index: pkgsrc/mail/thunderbird/PLIST
diff -u pkgsrc/mail/thunderbird/PLIST:1.98 pkgsrc/mail/thunderbird/PLIST:1.99
--- pkgsrc/mail/thunderbird/PLIST:1.98  Sun May 18 00:54:58 2025
+++ pkgsrc/mail/thunderbird/PLIST       Wed Sep 23 08:48:57 2026
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.98 2025/05/18 00:54:58 ryoon Exp $
+@comment $NetBSD: PLIST,v 1.99 2026/09/23 08:48:57 ryoon Exp $
 bin/thunderbird
 lib/thunderbird/application.ini
 lib/thunderbird/chrome/icons/default/TB-symbolic.svg
@@ -19,7 +19,7 @@ lib/thunderbird/chrome/icons/default/msg
 lib/thunderbird/defaults/messenger/mailViews.dat
 lib/thunderbird/defaults/pref/channel-prefs.js
 lib/thunderbird/dependentlibs.list
-lib/thunderbird/glxtest
+lib/thunderbird/gfxtest
 lib/thunderbird/interesting_serverknobs.json
 lib/thunderbird/isp/Bogofilter.sfd
 lib/thunderbird/isp/DSPAM.sfd
@@ -43,7 +43,6 @@ lib/thunderbird/rnp-cli
 lib/thunderbird/rnpkeys
 lib/thunderbird/thunderbird
 lib/thunderbird/thunderbird-bin
-lib/thunderbird/vaapitest
 share/applications/thunderbird.desktop
 share/pixmaps/thunderbird.png
 @pkgdir lib/thunderbird/extensions

Index: pkgsrc/mail/thunderbird/distinfo
diff -u pkgsrc/mail/thunderbird/distinfo:1.300 pkgsrc/mail/thunderbird/distinfo:1.301
--- pkgsrc/mail/thunderbird/distinfo:1.300      Sun Aug 30 10:26:05 2026
+++ pkgsrc/mail/thunderbird/distinfo    Wed Sep 23 08:48:57 2026
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.300 2026/08/30 10:26:05 ryoon Exp $
+$NetBSD: distinfo,v 1.301 2026/09/23 08:48:57 ryoon Exp $
 
-BLAKE2s (thunderbird-154.0.source.tar.xz) = c33328c8278ad347c20a3c9ead15483bf23c26ee92dcb82f05bffe45abc94e03
-SHA512 (thunderbird-154.0.source.tar.xz) = aebdc5f0f4788124128a77b8a329767fa0f6d1d46c41ca6fd45889368e4e964a7a82a41f5367e825da0d544eff61d4da07dff2e6eb13f72c935bed79a184c5a8
-Size (thunderbird-154.0.source.tar.xz) = 950250240 bytes
+BLAKE2s (thunderbird-155.0.1.source.tar.xz) = f68efb1036ee0cc446665bb6c0b77ed1a8e6fb62a0c9210dda56cb3b83b2fb9b
+SHA512 (thunderbird-155.0.1.source.tar.xz) = f0811a90cdad910d0265a37e18a36f2f51185b4a50f7f7647938a7ca1bd31f5bc49572954a5039a9e7e87dc2b4f98bb32f1dc393199c3304d8e87cf36b6c89f0
+Size (thunderbird-155.0.1.source.tar.xz) = 945085524 bytes
 SHA1 (patch-browser_app_profile_firefox.js) = 1eaa674c0aa8279e2f9dc2eda582650a08156d65
 SHA1 (patch-build_gn__processor.py) = 078f773104bf4c1b30584564aefe365db6ba6daf
 SHA1 (patch-build_moz.configure_init.configure) = 65deb3c233df0aab81eb1fca05d708e5a4ed169a
@@ -12,7 +12,7 @@ SHA1 (patch-comm_mailnews_search_src_nsM
 SHA1 (patch-comm_third__party_libgcrypt_configure) = c5ca8a8b44c485f81139b54d341ac044189d98d3
 SHA1 (patch-comm_third__party_openpgp.configure) = 674e8a741d82f576549aa0bb44465d3a2577a212
 SHA1 (patch-config_gcc-stl-wrapper.template.h) = b5b4f2aef747836b09584b77d6332a7010963b0b
-SHA1 (patch-config_makefiles_rust.mk) = 25eb2d4c99ace2b215917490f28ceb90ab90145f
+SHA1 (patch-config_makefiles_rust.mk) = 62c823e5f11f047a54c7ebcce7534469c3f0d515
 SHA1 (patch-dom_base_nsAttrName.h) = ac7ba441a3b27df2855cf2673eea36b1cb44ad49
 SHA1 (patch-dom_canvas_WebGLMethodDispatcher.h) = 78f6e44116a939615523339fb73ac93f40777749
 SHA1 (patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp) = 2f471067387bb63d530ba1299f0542d3b3a785b6
@@ -42,7 +42,7 @@ SHA1 (patch-media_libpng_pngpriv.h) = ee
 SHA1 (patch-memory_build_mozjemalloc__types.h) = af87ef935653cb845a6b702af2f5645a6ada27db
 SHA1 (patch-mozglue_misc_Now.cpp) = 760724be1bdc4ca6e19edaf2c8df6dd84192d93f
 SHA1 (patch-netwerk_protocol_http_nsHttpHandler.cpp) = 67493b4635041d21ff9fbfda80b3197fed542a26
-SHA1 (patch-nsprpub_pr_src_pthreads_ptsynch.c) = 753fd4d62088c870aefe7c4b739286259848446e
+SHA1 (patch-nsprpub_pr_src_pthreads_ptsynch.c) = c99c3ce679f4196fc3baaf65051471a13d6fe8cd
 SHA1 (patch-python_mozbuild_mozbuild_backend_recursivemake.py) = 5be4183d9075f5a3a3c6b3e0338473af185fb50e
 SHA1 (patch-python_sites_build.txt) = f03f059bbe79bfdf7f1db5475279edb3c9d6ebed
 SHA1 (patch-python_sites_mach.txt) = be62d091430daaa2ceeff3aff07f71275896352f

Index: pkgsrc/mail/thunderbird/mozilla-common.mk
diff -u pkgsrc/mail/thunderbird/mozilla-common.mk:1.30 pkgsrc/mail/thunderbird/mozilla-common.mk:1.31
--- pkgsrc/mail/thunderbird/mozilla-common.mk:1.30      Sun Aug 30 10:26:05 2026
+++ pkgsrc/mail/thunderbird/mozilla-common.mk   Wed Sep 23 08:48:57 2026
@@ -1,4 +1,4 @@
-# $NetBSD: mozilla-common.mk,v 1.30 2026/08/30 10:26:05 ryoon Exp $
+# $NetBSD: mozilla-common.mk,v 1.31 2026/09/23 08:48:57 ryoon Exp $
 #
 # common Makefile fragment for mozilla packages based on gecko 2.0.
 #
@@ -31,8 +31,13 @@ CFLAGS.NetBSD+=              -D_NETBSD_SOURCE
 
 TOOL_DEPENDS+=         cbindgen>=0.29.4:../../devel/cbindgen
 
+.if defined(FIREFOX_MAINTAINER) && !defined(MAINTAINER_INTERNAL)
 BUILDLINK_DEPMETHOD.nodejs=    build
 .include "../../lang/nodejs/nodeversion.mk"
+USE_TOOLS+=            diff
+.else
+CONFIGURE_ENV+=                NODEJS="${FILESDIR}/node-wrapper.sh"
+.endif
 
 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
 TOOL_DEPENDS+=         nasm>=2.14:../../devel/nasm
@@ -40,6 +45,20 @@ TOOL_DEPENDS+=               yasm>=1.1:../../devel/ya
 CFLAGS+=               -msse2
 .endif
 
+CKSUM_CRATES+=         third_party/rust/mtu
+
+CKSUMS+=               9fbb89ab042627182477b35adc61eed71cffada9d3d5d522766d6d369ad02d80
+CKSUMS+=               986f84f01a44521224c7a7c1b1883cc6a4f89cbcb24b36844bfffea5f285747e
+
+SUBST_CLASSES+=                cksum
+SUBST_STAGE.cksum=     pre-configure
+.for crate in ${CKSUM_CRATES}
+SUBST_FILES.cksum+=    ${crate}/.cargo-checksum.json
+.endfor
+.for from to in ${CKSUMS}
+SUBST_SED.cksum+=      -e 's,${from},${to},g'
+.endfor
+
 # This is to work around build failures where an upstream configuration script
 # is confused by having more than one approximate match to MACHINE_GNU_PLATFORM
 # "i486" when attempting to select the Rust compiler target.
@@ -135,7 +154,7 @@ CONFIGURE_ARGS+=    --without-wasm-sandboxe
 SUBST_CLASSES+=                                fix-libpci-soname
 SUBST_STAGE.fix-libpci-soname=         pre-configure
 SUBST_MESSAGE.fix-libpci-soname=       Fixing libpci soname
-SUBST_FILES.fix-libpci-soname+=                ${MOZILLA_DIR}toolkit/xre/glxtest/glxtest.cpp
+SUBST_FILES.fix-libpci-soname+=                ${MOZILLA_DIR}toolkit/xre/gfxtest/glxtest.cpp
 SUBST_SED.fix-libpci-soname+=          -e 's,"libpci.so, "lib${PCIUTILS_LIBNAME}.so,'
 
 .if ${MACHINE_PLATFORM:MNetBSD-*-i386}
@@ -202,7 +221,11 @@ ALL_ENV+=          MOZ_APP_NAME=${MOZILLA}
 
 # Build outside ${WRKSRC}
 # Try to avoid conflict with config/makefiles/xpidl/Makefile.in
+.if ${MAINTAINER_INTERNAL:Uno} == "yes"
+OBJDIR=                        ../no-node-build
+.else
 OBJDIR=                        ../build
+.endif
 CONFIGURE_DIRS=                ${OBJDIR}
 CONFIGURE_SCRIPT=      ${WRKSRC}/configure
 
@@ -256,9 +279,9 @@ BUILDLINK_API_DEPENDS.libevent+=    libeven
 # See build/moz.configure/nspr.configure
 BUILDLINK_API_DEPENDS.nspr+=   nspr>=4.34
 .include "../../devel/nspr/buildlink3.mk"
-#.include "../../textproc/icu/buildlink3.mk"
+#.include "../../textproc/iCu/buildlink3.mk"
 # See build/moz.configure/nss.configure
-BUILDLINK_API_DEPENDS.nss+=    nss>=3.126
+BUILDLINK_API_DEPENDS.nss+=    nss>=3.126.1
 .include "../../devel/nss/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"
 #.include "../../mk/jpeg.buildlink3.mk"

Index: pkgsrc/mail/thunderbird/patches/patch-config_makefiles_rust.mk
diff -u pkgsrc/mail/thunderbird/patches/patch-config_makefiles_rust.mk:1.7 pkgsrc/mail/thunderbird/patches/patch-config_makefiles_rust.mk:1.8
--- pkgsrc/mail/thunderbird/patches/patch-config_makefiles_rust.mk:1.7  Tue Nov  4 17:24:34 2025
+++ pkgsrc/mail/thunderbird/patches/patch-config_makefiles_rust.mk      Wed Sep 23 08:48:57 2026
@@ -1,4 +1,4 @@
-$NetBSD: patch-config_makefiles_rust.mk,v 1.7 2025/11/04 17:24:34 ryoon Exp $
+$NetBSD: patch-config_makefiles_rust.mk,v 1.8 2026/09/23 08:48:57 ryoon Exp $
 
 NetBSD doesn't get along with parallel rust builds (it causes issues
 with ld.so) which are the default. Force -j1.
@@ -6,19 +6,19 @@ with ld.so) which are the default. Force
 Use less memory to fix build under NetBSD/i386.
 From: https://bugzilla.mozilla.org/show_bug.cgi?id=1644409
 
---- config/makefiles/rust.mk.orig      2025-10-03 13:17:55.000000000 +0000
+--- config/makefiles/rust.mk.orig      2026-08-26 21:11:39.000000000 +0000
 +++ config/makefiles/rust.mk
-@@ -60,6 +60,9 @@ ifdef MOZ_TSAN
- cargo_build_flags += -Zbuild-std=std,panic_abort
- RUSTFLAGS += -Zsanitizer=thread
+@@ -65,6 +65,9 @@ endif
+ endif
+ endif
  endif
 +ifeq ($(OS_ARCH),NetBSD)
 +cargo_build_flags += @RUST_MAKE_JOBS@
 +endif
  
- rustflags_sancov =
- ifndef MOZ_TSAN
-@@ -101,7 +104,8 @@ ifndef rustflags_sancov
+ # Without -j > 1, make will not pass jobserver info down to cargo. Force
+ # one job when requested as a special case.
+@@ -91,7 +94,8 @@ ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE))
  # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
  ifndef MOZ_CODE_COVERAGE
  ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))

Index: pkgsrc/mail/thunderbird/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c
diff -u pkgsrc/mail/thunderbird/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c:1.4 pkgsrc/mail/thunderbird/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c:1.5
--- pkgsrc/mail/thunderbird/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c:1.4 Wed Apr 30 03:47:13 2025
+++ pkgsrc/mail/thunderbird/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c     Wed Sep 23 08:48:57 2026
@@ -1,4 +1,4 @@
-$NetBSD: patch-nsprpub_pr_src_pthreads_ptsynch.c,v 1.4 2025/04/30 03:47:13 ryoon Exp $
+$NetBSD: patch-nsprpub_pr_src_pthreads_ptsynch.c,v 1.5 2026/09/23 08:48:57 ryoon Exp $
 
 firefox: Workaround broken pthread_equal() usage
 
@@ -8,105 +8,105 @@ Problems detected on NetBSD 9.99.46.
 
 https://bugzilla.mozilla.org/show_bug.cgi?id=1718838
 
---- nsprpub/pr/src/pthreads/ptsynch.c.orig     2024-11-25 14:49:12.865195781 +0000
+--- nsprpub/pr/src/pthreads/ptsynch.c.orig     2026-08-26 21:11:48.000000000 +0000
 +++ nsprpub/pr/src/pthreads/ptsynch.c
-@@ -25,6 +25,13 @@ static pthread_condattr_t _pt_cvar_attr;
+@@ -24,6 +24,13 @@ extern PTDebug pt_debug; /* this is shared between sev
  extern PTDebug pt_debug; /* this is shared between several modules */
- #  endif                 /* defined(DEBUG) */
+ #endif                   /* defined(DEBUG) */
  
-+/* XXX, pthread_equal() is misused to compare non-valid thread pointers */
++/* XXX, pt_pthread_equal() is misused to compare non-valid thread pointers */
 +static int
-+pt_pthread_equal(pthread_t t1, pthread_t t2)
++pt_pt_pthread_equal(pthread_t t1, pthread_t t2)
 +{
 +      return t1 == t2;
 +}
 +
- #  if defined(FREEBSD)
+ #if defined(FREEBSD)
  /*
   * On older versions of FreeBSD, pthread_mutex_trylock returns EDEADLK.
-@@ -181,9 +188,9 @@ PR_IMPLEMENT(PRStatus) PR_Unlock(PRLock*
-   PR_ASSERT(lock != NULL);
-   PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex));
-   PR_ASSERT(PR_TRUE == lock->locked);
--  PR_ASSERT(pthread_equal(lock->owner, self));
-+  PR_ASSERT(pt_pthread_equal(lock->owner, self));
- 
--  if (!lock->locked || !pthread_equal(lock->owner, self)) {
-+  if (!lock->locked || !pt_pthread_equal(lock->owner, self)) {
-     return PR_FAILURE;
-   }
- 
-@@ -207,7 +214,7 @@ PR_IMPLEMENT(void) PR_AssertCurrentThrea
-    * to the correctness of PR_AssertCurrentThreadOwnsLock(), but
-    * this particular order makes the assertion more likely to
-    * catch errors. */
--  PR_ASSERT(lock->locked && pthread_equal(lock->owner, pthread_self()));
-+  PR_ASSERT(lock->locked && pt_pthread_equal(lock->owner, pthread_self()));
+@@ -194,9 +201,9 @@ PR_Unlock(PRLock* lock)
+     PR_ASSERT(lock != NULL);
+     PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex));
+     PR_ASSERT(PR_TRUE == lock->locked);
+-    PR_ASSERT(pthread_equal(lock->owner, self));
++    PR_ASSERT(pt_pthread_equal(lock->owner, self));
+ 
+-    if (!lock->locked || !pthread_equal(lock->owner, self)) {
++    if (!lock->locked || !pt_pthread_equal(lock->owner, self)) {
+         return PR_FAILURE;
+     }
+ 
+@@ -222,7 +229,7 @@ PR_AssertCurrentThreadOwnsLock(PRLock* lock)
+      * to the correctness of PR_AssertCurrentThreadOwnsLock(), but
+      * this particular order makes the assertion more likely to
+      * catch errors. */
+-    PR_ASSERT(lock->locked && pthread_equal(lock->owner, pthread_self()));
++    PR_ASSERT(lock->locked && pt_pthread_equal(lock->owner, pthread_self()));
  }
  
  /**************************************************************/
-@@ -260,7 +267,7 @@ static void pt_PostNotifyToCvar(PRCondVa
-   _PT_Notified* notified = &cvar->lock->notified;
+@@ -279,7 +286,7 @@ pt_PostNotifyToCvar(PRCondVar* cvar, PRBool broadcast)
+     _PT_Notified* notified = &cvar->lock->notified;
+ 
+     PR_ASSERT(PR_TRUE == cvar->lock->locked);
+-    PR_ASSERT(pthread_equal(cvar->lock->owner, pthread_self()));
++    PR_ASSERT(pt_pthread_equal(cvar->lock->owner, pthread_self()));
+     PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(cvar->lock->mutex));
+ 
+     while (1) {
+@@ -361,7 +368,7 @@ PR_WaitCondVar(PRCondVar* cvar, PRIntervalTime timeout
+     PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(cvar->lock->mutex));
+     PR_ASSERT(PR_TRUE == cvar->lock->locked);
+     /* and it better be by us */
+-    PR_ASSERT(pthread_equal(cvar->lock->owner, pthread_self()));
++    PR_ASSERT(pt_pthread_equal(cvar->lock->owner, pthread_self()));
+ 
+     if (_PT_THREAD_INTERRUPTED(thred)) {
+         goto aborted;
+@@ -576,7 +583,7 @@ PR_GetMonitorEntryCount(PRMonitor* mon)
  
-   PR_ASSERT(PR_TRUE == cvar->lock->locked);
--  PR_ASSERT(pthread_equal(cvar->lock->owner, pthread_self()));
-+  PR_ASSERT(pt_pthread_equal(cvar->lock->owner, pthread_self()));
-   PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(cvar->lock->mutex));
- 
-   while (1) {
-@@ -336,7 +343,7 @@ PR_IMPLEMENT(PRStatus) PR_WaitCondVar(PR
-   PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(cvar->lock->mutex));
-   PR_ASSERT(PR_TRUE == cvar->lock->locked);
-   /* and it better be by us */
--  PR_ASSERT(pthread_equal(cvar->lock->owner, pthread_self()));
-+  PR_ASSERT(pt_pthread_equal(cvar->lock->owner, pthread_self()));
- 
-   if (_PT_THREAD_INTERRUPTED(thred)) {
-     goto aborted;
-@@ -535,7 +542,7 @@ PR_IMPLEMENT(PRIntn) PR_GetMonitorEntryC
- 
-   rv = pthread_mutex_lock(&mon->lock);
-   PR_ASSERT(0 == rv);
--  if (pthread_equal(mon->owner, self)) {
-+  if (pt_pthread_equal(mon->owner, self)) {
-     count = mon->entryCount;
-   }
-   rv = pthread_mutex_unlock(&mon->lock);
-@@ -549,7 +556,7 @@ PR_IMPLEMENT(void) PR_AssertCurrentThrea
- 
-   rv = pthread_mutex_lock(&mon->lock);
-   PR_ASSERT(0 == rv);
--  PR_ASSERT(mon->entryCount != 0 && pthread_equal(mon->owner, pthread_self()));
-+  PR_ASSERT(mon->entryCount != 0 && pt_pthread_equal(mon->owner, pthread_self()));
-   rv = pthread_mutex_unlock(&mon->lock);
-   PR_ASSERT(0 == rv);
- #  endif
-@@ -563,7 +570,7 @@ PR_IMPLEMENT(void) PR_EnterMonitor(PRMon
-   rv = pthread_mutex_lock(&mon->lock);
-   PR_ASSERT(0 == rv);
-   if (mon->entryCount != 0) {
+     rv = pthread_mutex_lock(&mon->lock);
+     PR_ASSERT(0 == rv);
 -    if (pthread_equal(mon->owner, self)) {
 +    if (pt_pthread_equal(mon->owner, self)) {
-       goto done;
+         count = mon->entryCount;
      }
-     while (mon->entryCount != 0) {
-@@ -593,8 +600,8 @@ PR_IMPLEMENT(PRStatus) PR_ExitMonitor(PR
-   PR_ASSERT(0 == rv);
-   /* the entries should be > 0 and we'd better be the owner */
-   PR_ASSERT(mon->entryCount > 0);
--  PR_ASSERT(pthread_equal(mon->owner, self));
--  if (mon->entryCount == 0 || !pthread_equal(mon->owner, self)) {
-+  PR_ASSERT(pt_pthread_equal(mon->owner, self));
-+  if (mon->entryCount == 0 || !pt_pthread_equal(mon->owner, self)) {
      rv = pthread_mutex_unlock(&mon->lock);
+@@ -592,7 +599,7 @@ PR_AssertCurrentThreadInMonitor(PRMonitor* mon)
+ 
+     rv = pthread_mutex_lock(&mon->lock);
+     PR_ASSERT(0 == rv);
+-    PR_ASSERT(mon->entryCount != 0 && pthread_equal(mon->owner, pthread_self()));
++    PR_ASSERT(mon->entryCount != 0 && pt_pthread_equal(mon->owner, pthread_self()));
+     rv = pthread_mutex_unlock(&mon->lock);
+     PR_ASSERT(0 == rv);
+ #endif
+@@ -608,7 +615,7 @@ PR_EnterMonitor(PRMonitor* mon)
+     rv = pthread_mutex_lock(&mon->lock);
+     PR_ASSERT(0 == rv);
+     if (mon->entryCount != 0) {
+-        if (pthread_equal(mon->owner, self)) {
++        if (pt_pthread_equal(mon->owner, self)) {
+             goto done;
+         }
+         while (mon->entryCount != 0) {
+@@ -640,8 +647,8 @@ PR_ExitMonitor(PRMonitor* mon)
      PR_ASSERT(0 == rv);
-     return PR_FAILURE;
-@@ -638,7 +645,7 @@ PR_IMPLEMENT(PRStatus) PR_Wait(PRMonitor
-   /* the entries better be positive */
-   PR_ASSERT(mon->entryCount > 0);
-   /* and it better be owned by us */
--  PR_ASSERT(pthread_equal(mon->owner, pthread_self()));
-+  PR_ASSERT(pt_pthread_equal(mon->owner, pthread_self()));
+     /* the entries should be > 0 and we'd better be the owner */
+     PR_ASSERT(mon->entryCount > 0);
+-    PR_ASSERT(pthread_equal(mon->owner, self));
+-    if (mon->entryCount == 0 || !pthread_equal(mon->owner, self)) {
++    PR_ASSERT(pt_pthread_equal(mon->owner, self));
++    if (mon->entryCount == 0 || !pt_pthread_equal(mon->owner, self)) {
+         rv = pthread_mutex_unlock(&mon->lock);
+         PR_ASSERT(0 == rv);
+         return PR_FAILURE;
+@@ -687,7 +694,7 @@ PR_Wait(PRMonitor* mon, PRIntervalTime timeout)
+     /* the entries better be positive */
+     PR_ASSERT(mon->entryCount > 0);
+     /* and it better be owned by us */
+-    PR_ASSERT(pthread_equal(mon->owner, pthread_self()));
++    PR_ASSERT(pt_pthread_equal(mon->owner, pthread_self()));
  
-   /* tuck these away 'till later */
-   saved_entries = mon->entryCount;
+     /* tuck these away 'till later */
+     saved_entries = mon->entryCount;



Home | Main Index | Thread Index | Old Index