summaryrefslogtreecommitdiff
path: root/mail/thunderbird
diff options
context:
space:
mode:
authorryoon <ryoon@pkgsrc.org>2015-07-09 15:17:34 +0000
committerryoon <ryoon@pkgsrc.org>2015-07-09 15:17:34 +0000
commita94a2205c508eac1e7701e0d2591465c9cd7f06f (patch)
tree9f6c0de3c1911626e76f241039e8edc52de8069a /mail/thunderbird
parent0ffbc70c4dd0ecaf94c9ec16ed70ba580574cd4b (diff)
downloadpkgsrc-a94a2205c508eac1e7701e0d2591465c9cd7f06f.tar.gz
Update to 38.0.1
Changelog: What's New New GMail supports OAuth2 authentication, removing the need to manually select "allow less secure applications" in Google options for the account. (bug 849540) New Ship Lightning calendar addon with Thunderbird and enable with an opt-out dialog (bug 1113183) New Filter sent messages (bug 11039) New Filter messages when archived (bug 479823) New Enable search in multiple/all address books (bug 170270) New Add support for Yahoo Messenger in Chat (bug 955574) New Support Internationalized domain name URLs for RSS feeds (Bug 1018589) New Show expanded columns in folder pane (bug 464973) New Allow file-per-message (maildir) local message storage (bug 845952) New Add a Learn more link to the support page in feeds subscribe dialog (bug 1053782) New Add reading position marker line to conversations (bug 760762) New The editor for twitter should show inputtable character count (bug 736002) Changed Thunderbird will no longer use SHA-1 to sign messages (bug 1018259) Changed Removed rarely used character sets: T.61-8bit, non-encoding Mac encoders, VISCII, x-viet-tcvn5712, x-viet-vps x-johab, ARMSCII8 , map us-ascii to windows-1252, ISO-8859-6-I and -E and ISO-8859-8-E, (bug 1068505 and others.) Changed Disable CONDSTORE support for IMAP to prevent discrepancies in IMAP message status (deleted, unread) on some servers (bug 912216) Changed Make OpenSearch queries open in the user's default browser (bug 1120777) Changed Default to using SSL for XMPP and IRC. This might cause issues for self-signed certificates (bug 1122567, bug 1122666) Fixed Replied/forwarded icons disappear after folder repair, detach/delete (bug 840418) Fixed Attachment "Save As" files are displayed in Tools/Saved Files (bug 914517) Fixed Adding unknown email addresses to Mailing list, then deleting ghost duplicate entries from contacts pane, caused dataloss in mailing list (bug 628035) Fixed Web site from RSS feed was not rendered correctly (bug 662907) Fixed Email address with leading/trailing whitespace displayed wrongly with added quotes when composing ["foo"@bar.com] (bug 286760) Fixed Force display of Sender header if S/MIME sender is the signer (bug 332639) Fixed Addressing autocomplete widget: Typed text in red despite results/matches found if suggestions change by last input (bug 1042561) Fixed Status bar not accessible (bug 934875) Fixed Wrong folder may be deleted when requesting junk delete (bug 1018960) Fixed Severe UI stutter or freezes getting new mail for very large folders (bug 870556) Fixed Automatically rejoin multi-user conversations on reconnect for XMPP (bug 1014472) Fixed Various improvements when using IRC on moznet (bug 1083768 and others) Fixed Significantly improve XMPP support (bug 1085022 and others) Fixed Fixes for connecting to non-standard IRC networks (bug 870556 and others) Fixed Automatically reclaim IRC nicks during a reconnect (bug 1087566) Fixed Changing location in editor doesn't preserve the font when returning to end of text/line (bug 756984) Fixed Inline spell checker loses red underlines after a backspace is used (bug 1100966) Known Issues unresolved Automatic addon compatibility update checks were not completed, so existing addon compatibilities may not be accurate. unresolved Copy/Paste into plain text editor deletes newlines from quoted text (bug 1143570) unresolved Importing data from Outlook or Eudora crashes (bug 917961) Security: Fixed in Thunderbird 38.0.1 2015-58 Mozilla Windows updater can be run outside of application directory 2015-57 Privilege escalation through IPC channel messages 2015-54 Buffer overflow when parsing compressed XML 2015-51 Use-after-free during text processing with vertical text enabled 2015-48 Buffer overflow with SVG content and CSS 2015-47 Buffer overflow parsing H.264 video with Linux Gstreamer 2015-46 Miscellaneous memory safety hazards (rv:38.0 / rv:31.7)
Diffstat (limited to 'mail/thunderbird')
-rw-r--r--mail/thunderbird/Makefile9
-rw-r--r--mail/thunderbird/PLIST334
-rw-r--r--mail/thunderbird/PLIST.lightning533
-rw-r--r--mail/thunderbird/distinfo229
-rw-r--r--mail/thunderbird/options.mk6
-rw-r--r--mail/thunderbird/patches/patch-aa314
-rw-r--r--mail/thunderbird/patches/patch-ak13
-rw-r--r--mail/thunderbird/patches/patch-ao10
-rw-r--r--mail/thunderbird/patches/patch-as130
-rw-r--r--mail/thunderbird/patches/patch-ax46
-rw-r--r--mail/thunderbird/patches/patch-ay14
-rw-r--r--mail/thunderbird/patches/patch-bi12
-rw-r--r--mail/thunderbird/patches/patch-calendar_lightning_Makefile.in8
-rw-r--r--mail/thunderbird/patches/patch-calendar_providers_gdata_Makefile.in10
-rw-r--r--mail/thunderbird/patches/patch-config_baseconfig.mk16
-rw-r--r--mail/thunderbird/patches/patch-ipc_chromium_src_base_debug__util__posic.cc13
-rw-r--r--mail/thunderbird/patches/patch-ipc_glue_GeckoChildProcessHost.cpp14
-rw-r--r--mail/thunderbird/patches/patch-mail_components_shell_nsMailGNOMEIntegration.cpp9
-rw-r--r--mail/thunderbird/patches/patch-mail_installer_package-manifest.in8
-rw-r--r--mail/thunderbird/patches/patch-mail_installer_removed-files.in86
-rw-r--r--mail/thunderbird/patches/patch-mk26
-rw-r--r--mail/thunderbird/patches/patch-ml35
-rw-r--r--mail/thunderbird/patches/patch-mozilla_accessible_atk_Platform.cpp98
-rw-r--r--mail/thunderbird/patches/patch-mozilla_b2g_installer_package-manifest.in10
-rw-r--r--mail/thunderbird/patches/patch-mozilla_browser_app_profile_firefox.js12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_browser_installer_package-manifest.in16
-rw-r--r--mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_chrome_browser-region_region.properties12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_searchplugins_duckduckgo.xml16
-rw-r--r--mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_searchplugins_list.txt11
-rw-r--r--mail/thunderbird/patches/patch-mozilla_build_autoconf_nss.m414
-rw-r--r--mail/thunderbird/patches/patch-mozilla_build_gyp.mozbuild25
-rw-r--r--mail/thunderbird/patches/patch-mozilla_config_Makefile.in7
-rw-r--r--mail/thunderbird/patches/patch-mozilla_config_external_moz.build23
-rw-r--r--mail/thunderbird/patches/patch-mozilla_config_system-headers38
-rw-r--r--mail/thunderbird/patches/patch-mozilla_content_base_src_moz.build14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_content_media_AudioStream.cpp12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_content_media_AudioStream.h23
-rw-r--r--mail/thunderbird/patches/patch-mozilla_content_media_Makefile.in36
-rw-r--r--mail/thunderbird/patches/patch-mozilla_content_media_MediaData.cpp24
-rw-r--r--mail/thunderbird/patches/patch-mozilla_content_media_MediaData.h22
-rw-r--r--mail/thunderbird/patches/patch-mozilla_content_media_fmp4_demuxer_bit__reader.cc13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_base_moz.build14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_media_AudioStream.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_media_gmp_GMPChild.cpp30
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_media_gmp_GMPParent.cpp33
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_media_gstreamer_GStreamerAllocator.cpp (renamed from mail/thunderbird/patches/patch-mozilla_content_media_gstreamer_GStreamerAllocator.cpp)6
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_media_moz.build32
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp18
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp10
-rw-r--r--mail/thunderbird/patches/patch-mozilla_dom_system_OSFileConstants.cpp22
-rw-r--r--mail/thunderbird/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_graphite2_moz-gr-update.sh20
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_skia_Makefile.in15
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_skia_generate__mozbuild.py14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_skia_moz.build14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_thebes_Makefile.in19
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_thebes_moz.build17
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_ycbcr_moz.build13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_ycbcr_yuv__row__arm.S317
-rw-r--r--mail/thunderbird/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp64
-rw-r--r--mail/thunderbird/patches/patch-mozilla_intl_hyphenation_hnjalloc.h14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_intl_hyphenation_src_hnjalloc.h14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_intl_unicharutil_util_Makefile.in12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_intl_unicharutil_util_moz.build13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ios8
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_atomicops.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_base__paths.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_message__pump__libevent.cc13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util.h24
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc159
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_glue_moz.build13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_public_CallArgs.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp19
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_builtin_TypedObject.cpp142
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_frontend_BytecodeCompiler.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_gc_Memory.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_gc_Statistics.cpp15
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h16
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jit_LIR.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jit_MIR.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jsapi.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jsdate.cpp20
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jskwgen.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_shell_jsoptparse.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_xpconnect_src_XPCConvert.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_xpconnect_src_xpcprivate.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_xpconnect_wrapper_XrayWrapper.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libcubeb_AUTHORS9
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_Makefile.in12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb.c24
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c667
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__oss.c407
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_moz.build39
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp22
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libstagefright_system_core_liblog_fake__log__device.c27
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libstagefright_system_core_liblog_logprint.c22
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libtheora_Makefile.in14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libtheora_lib_arm_armcpu.c23
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libtheora_lib_info.c13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libtheora_moz.build10
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libtremor_moz.build10
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libvorbis_lib_vorbis__info.c13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libvorbis_moz.build11
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libyuv_include_libyuv_scale__row.h17
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_signaling.gyp20
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_test_Makefile.in25
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_test_moz.build26
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi20
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi28
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi41
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp26
-rw-r--r--mail/thunderbird/patches/patch-mozilla_memory_build_mozjemalloc__compat.c53
-rw-r--r--mail/thunderbird/patches/patch-mozilla_memory_jemalloc_src_configure13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_memory_mozalloc_mozalloc__abort.cpp10
-rw-r--r--mail/thunderbird/patches/patch-mozilla_memory_volatile_VolatileBufferOSX.cpp19
-rw-r--r--mail/thunderbird/patches/patch-mozilla_mfbt_Attributes.h28
-rw-r--r--mail/thunderbird/patches/patch-mozilla_mfbt_Poison.cpp12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_netwerk_base_nsNetUtil.h39
-rw-r--r--mail/thunderbird/patches/patch-mozilla_netwerk_dns_Makefile.in15
-rw-r--r--mail/thunderbird/patches/patch-mozilla_netwerk_dns_moz.build13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_netwerk_ipc_NeckoParent.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_netwerk_protocol_http_Http2Session.cpp91
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ostream8
-rw-r--r--mail/thunderbird/patches/patch-mozilla_probes_Makefile.in13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp10
-rw-r--r--mail/thunderbird/patches/patch-mozilla_storage_src_moz.build20
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm8
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_library_libxul.mk73
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_library_moz.build69
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm30
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_modules_GMPUtils.jsm12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm132
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_toolkit.mozbuild15
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_xre_nsAppRunner.cpp31
-rw-r--r--mail/thunderbird/patches/patch-mozilla_unwind.h9
-rw-r--r--mail/thunderbird/patches/patch-mozilla_webapprt_moz.build15
-rw-r--r--mail/thunderbird/patches/patch-mozilla_widget_gtk_gtk2drawing.c22
-rw-r--r--mail/thunderbird/patches/patch-mozilla_widget_gtk_gtk3drawing.c833
-rw-r--r--mail/thunderbird/patches/patch-mozilla_widget_gtk_gtkdrawing.h41
-rw-r--r--mail/thunderbird/patches/patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp30
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_base_nsDebugImpl.cpp88
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_base_nsUUIDGenerator.cpp69
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_base_nsUUIDGenerator.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_build_PoisonIOInterposer.h85
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp28
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_build_nsXPComInit.cpp28
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_ds_TimeStamp.h18
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_glue_standalone_nsXPCOMGlue.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_Makefile.in (renamed from mail/thunderbird/patches/patch-mb)6
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build22
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp527
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__mips.S (renamed from mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__asm__mips.S)6
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__ppc__netbsd.s (renamed from mail/thunderbird/patches/patch-xl)8
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__netbsd__m68k.cpp (renamed from mail/thunderbird/patches/patch-xe)8
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__ppc__netbsd.cpp (renamed from mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__ppc__netbsd.cpp)12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__sparc64__netbsd.cpp (renamed from mail/thunderbird/patches/patch-xb)8
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp217
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__mips.S (renamed from mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__asm__mips.S)6
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__sparc64__netbsd.s (renamed from mail/thunderbird/patches/patch-xc)8
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__netbsd__m68k.cpp (renamed from mail/thunderbird/patches/patch-xf)8
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_moz.build30
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp13
-rw-r--r--mail/thunderbird/patches/patch-rc8
-rw-r--r--mail/thunderbird/patches/patch-xg33
-rw-r--r--mail/thunderbird/patches/patch-zb15
-rw-r--r--mail/thunderbird/patches/patch-zc16
172 files changed, 6027 insertions, 2184 deletions
diff --git a/mail/thunderbird/Makefile b/mail/thunderbird/Makefile
index 0f44a08fdab..421069c3a19 100644
--- a/mail/thunderbird/Makefile
+++ b/mail/thunderbird/Makefile
@@ -1,9 +1,8 @@
-# $NetBSD: Makefile,v 1.153 2015/07/01 12:48:08 ryoon Exp $
+# $NetBSD: Makefile,v 1.154 2015/07/09 15:17:34 ryoon Exp $
DISTNAME= # empty
PKGNAME= thunderbird-${TB_VER}
-PKGREVISION= 1
-TB_VER= 31.7.0
+TB_VER= 38.0.1
CATEGORIES= mail
MASTER_SITES= ${MASTER_SITE_MOZILLA:=thunderbird/releases/${TB_VER}/source/}
DISTFILES= thunderbird-${TB_VER}.source.tar.bz2
@@ -13,7 +12,7 @@ HOMEPAGE= http://www.mozillamessaging.com/en-US/thunderbird/
COMMENT= Organize, secure and customize your mail
USE_TOOLS+= unzip pax
-WRKSRC= ${WRKDIR}/comm-esr31
+WRKSRC= ${WRKDIR}/comm-esr38
MOZILLA_DIR= mozilla/
PLIST_SRC+= ${PLIST_SRC_DFLT}
@@ -78,7 +77,7 @@ INSTALLATION_DIRS+= share/applications share/pixmaps
post-install:
${INSTALL_DATA} ${WRKDIR}/desktop \
${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop
- ${INSTALL_DATA} ${WRKSRC}/${OBJDIR}/mozilla/dist/thunderbird/chrome/icons/default/default48.png \
+ ${INSTALL_DATA} ${WRKSRC}/${OBJDIR}/dist/thunderbird/chrome/icons/default/default48.png \
${DESTDIR}${PREFIX}/share/pixmaps/${MOZILLA}.png
@${STEP_MSG} "Installing bundled thunderbird extensions."
rm -rf ${WRKDIR}/extensions
diff --git a/mail/thunderbird/PLIST b/mail/thunderbird/PLIST
index 6e7b0ccd2db..fc273cfa405 100644
--- a/mail/thunderbird/PLIST
+++ b/mail/thunderbird/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.56 2015/02/13 16:28:57 ryoon Exp $
+@comment $NetBSD: PLIST,v 1.57 2015/07/09 15:17:34 ryoon Exp $
bin/thunderbird
lib/thunderbird/application.ini
lib/thunderbird/blocklist.xml
@@ -7,6 +7,8 @@ lib/thunderbird/chrome/chat/content/chat/browserRequest.js
lib/thunderbird/chrome/chat/content/chat/browserRequest.xul
lib/thunderbird/chrome/chat/content/chat/conv.html
lib/thunderbird/chrome/chat/content/chat/convbrowser.xml
+lib/thunderbird/chrome/chat/content/chat/imtooltip.css
+lib/thunderbird/chrome/chat/content/chat/imtooltip.xml
lib/thunderbird/chrome/chat/skin/classic/chat/available-16.png
lib/thunderbird/chrome/chat/skin/classic/chat/available.png
lib/thunderbird/chrome/chat/skin/classic/chat/away-16.png
@@ -19,6 +21,8 @@ lib/thunderbird/chrome/chat/skin/classic/chat/icons/insecure.png
lib/thunderbird/chrome/chat/skin/classic/chat/icons/secure.png
lib/thunderbird/chrome/chat/skin/classic/chat/idle-16.png
lib/thunderbird/chrome/chat/skin/classic/chat/idle.png
+lib/thunderbird/chrome/chat/skin/classic/chat/imtooltip.css
+lib/thunderbird/chrome/chat/skin/classic/chat/loading.png
lib/thunderbird/chrome/chat/skin/classic/chat/mobile-16.png
lib/thunderbird/chrome/chat/skin/classic/chat/mobile.png
lib/thunderbird/chrome/chat/skin/classic/chat/offline-16.png
@@ -29,6 +33,7 @@ lib/thunderbird/chrome/chat/skin/classic/chat/prpl-generic/icon48.png
lib/thunderbird/chrome/chat/skin/classic/chat/prpl-unknown/icon.png
lib/thunderbird/chrome/chat/skin/classic/chat/prpl-unknown/icon32.png
lib/thunderbird/chrome/chat/skin/classic/chat/prpl-unknown/icon48.png
+lib/thunderbird/chrome/chat/skin/classic/chat/status.css
lib/thunderbird/chrome/chat/skin/classic/chat/typed-16.png
lib/thunderbird/chrome/chat/skin/classic/chat/typing-16.png
lib/thunderbird/chrome/chat/skin/classic/chat/unknown-16.png
@@ -138,6 +143,8 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/cloudfile/Hightail/setting
lib/thunderbird/chrome/classic/skin/classic/messenger/cloudfile/addAccountDialog.css
lib/thunderbird/chrome/classic/skin/classic/messenger/contactStarred.png
lib/thunderbird/chrome/classic/skin/classic/messenger/dialogs.css
+lib/thunderbird/chrome/classic/skin/classic/messenger/downloads/aboutDownloads.css
+lib/thunderbird/chrome/classic/skin/classic/messenger/downloads/download.svg
lib/thunderbird/chrome/classic/skin/classic/messenger/editContactOverlay.css
lib/thunderbird/chrome/classic/skin/classic/messenger/filterDialog.css
lib/thunderbird/chrome/classic/skin/classic/messenger/folderMenus.css
@@ -204,6 +211,7 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/icons/message.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/multicolor.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/new-mail-alert.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/notchecked.gif
+lib/thunderbird/chrome/classic/skin/classic/messenger/icons/notloading.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/offline.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/online.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/phishing.png
@@ -212,7 +220,6 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/icons/red_pin.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/remote-blocked.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/row.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/search-arrow.png
-lib/thunderbird/chrome/classic/skin/classic/messenger/icons/search-favorite.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/secure.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/server.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/status-small.png
@@ -229,10 +236,8 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/icons/zoomout-hover.png
lib/thunderbird/chrome/classic/skin/classic/messenger/icons/zoomout.png
lib/thunderbird/chrome/classic/skin/classic/messenger/imAccountWizard.css
lib/thunderbird/chrome/classic/skin/classic/messenger/imAccounts.css
-lib/thunderbird/chrome/classic/skin/classic/messenger/imBuddytooltip.css
lib/thunderbird/chrome/classic/skin/classic/messenger/imMenulist.css
lib/thunderbird/chrome/classic/skin/classic/messenger/imRichlistbox.css
-lib/thunderbird/chrome/classic/skin/classic/messenger/imStatus.css
lib/thunderbird/chrome/classic/skin/classic/messenger/imageFilters.svg
lib/thunderbird/chrome/classic/skin/classic/messenger/junkMail.css
lib/thunderbird/chrome/classic/skin/classic/messenger/mailWindow1.css
@@ -261,6 +266,7 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/newmailaccount/success-sig
lib/thunderbird/chrome/classic/skin/classic/messenger/newmailalert.css
lib/thunderbird/chrome/classic/skin/classic/messenger/noise.png
lib/thunderbird/chrome/classic/skin/classic/messenger/operator.png
+lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/aboutPreferences.css
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/advanced.png
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/alwaysAsk.png
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/applications.css
@@ -269,6 +275,7 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/auth-error.png
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/background.png
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/chat.png
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/composition.png
+lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/dialog.css
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/display.png
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/general.png
lib/thunderbird/chrome/classic/skin/classic/messenger/preferences/hover.png
@@ -283,6 +290,11 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/searchBox.css
lib/thunderbird/chrome/classic/skin/classic/messenger/searchDialog.css
lib/thunderbird/chrome/classic/skin/classic/messenger/section_collapsed.png
lib/thunderbird/chrome/classic/skin/classic/messenger/section_expanded.png
+lib/thunderbird/chrome/classic/skin/classic/messenger/shared/accountProvisioner.css
+lib/thunderbird/chrome/classic/skin/classic/messenger/shared/addressbook.css
+lib/thunderbird/chrome/classic/skin/classic/messenger/shared/in-content/aboutPreferences.css
+lib/thunderbird/chrome/classic/skin/classic/messenger/shared/in-content/dialog.css
+lib/thunderbird/chrome/classic/skin/classic/messenger/shared/in-content/icons.svg
lib/thunderbird/chrome/classic/skin/classic/messenger/shared/mailWindow1.css
lib/thunderbird/chrome/classic/skin/classic/messenger/shared/messageHeader.css
lib/thunderbird/chrome/classic/skin/classic/messenger/shared/messenger.css
@@ -314,6 +326,7 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/tabs/background-middle.png
lib/thunderbird/chrome/classic/skin/classic/messenger/tabs/background-start.png
lib/thunderbird/chrome/classic/skin/classic/messenger/tabs/closeTab.svg
lib/thunderbird/chrome/classic/skin/classic/messenger/tabs/dragIndicator.png
+lib/thunderbird/chrome/classic/skin/classic/messenger/tabs/overflow-indicator.png
lib/thunderbird/chrome/classic/skin/classic/messenger/tabs/selected-end.svg
lib/thunderbird/chrome/classic/skin/classic/messenger/tabs/selected-start.svg
lib/thunderbird/chrome/classic/skin/classic/messenger/tabs/separator.png
@@ -324,7 +337,6 @@ lib/thunderbird/chrome/classic/skin/classic/messenger/tagbg.png
lib/thunderbird/chrome/classic/skin/classic/messenger/userIcon.png
lib/thunderbird/chrome/classic/skin/classic/messenger/virtualFolderListDialog.css
lib/thunderbird/chrome/classic/skin/classic/messenger/voice.png
-lib/thunderbird/chrome/classic/skin/classic/messenger/webSearch.css
lib/thunderbird/chrome/comm/content/communicator/charsetOverlay.xul
lib/thunderbird/chrome/comm/content/communicator/contentAreaClick.js
lib/thunderbird/chrome/comm/content/communicator/labelsencodings.properties
@@ -416,6 +428,7 @@ lib/thunderbird/chrome/en-US/locale/en-US/chat/commands.properties
lib/thunderbird/chrome/en-US/locale/en-US/chat/contacts.properties
lib/thunderbird/chrome/en-US/locale/en-US/chat/conversations.properties
lib/thunderbird/chrome/en-US/locale/en-US/chat/facebook.properties
+lib/thunderbird/chrome/en-US/locale/en-US/chat/imtooltip.properties
lib/thunderbird/chrome/en-US/locale/en-US/chat/irc.properties
lib/thunderbird/chrome/en-US/locale/en-US/chat/logger.properties
lib/thunderbird/chrome/en-US/locale/en-US/chat/status.properties
@@ -454,6 +467,7 @@ lib/thunderbird/chrome/en-US/locale/en-US/editor/EditorTextAreaProperties.dtd
lib/thunderbird/chrome/en-US/locale/en-US/editor/editor.properties
lib/thunderbird/chrome/en-US/locale/en-US/editor/editorOverlay.dtd
lib/thunderbird/chrome/en-US/locale/en-US/editor/editorSmileyOverlay.dtd
+lib/thunderbird/chrome/en-US/locale/en-US/formautofill/requestAutocomplete.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global-platform/mac/accessible.properties
lib/thunderbird/chrome/en-US/locale/en-US/global-platform/mac/intl.properties
lib/thunderbird/chrome/en-US/locale/en-US/global-platform/mac/platformKeys.properties
@@ -468,20 +482,19 @@ lib/thunderbird/chrome/en-US/locale/en-US/global/AccessFu.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/about.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/aboutAbout.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/aboutNetworking.dtd
+lib/thunderbird/chrome/en-US/locale/en-US/global/aboutReader.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/aboutRights.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/aboutSupport.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/aboutSupport.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/aboutTelemetry.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/aboutTelemetry.properties
-lib/thunderbird/chrome/en-US/locale/en-US/global/actions.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/appPicker.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/appstrings.properties
+lib/thunderbird/chrome/en-US/locale/en-US/global/autocomplete.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/brand.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/browser.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/charsetMenu.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/charsetMenu.properties
-lib/thunderbird/chrome/en-US/locale/en-US/global/charsetOverlay.dtd
-lib/thunderbird/chrome/en-US/locale/en-US/global/charsetTitles.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/commonDialog.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/commonDialogs.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/config.dtd
@@ -492,17 +505,19 @@ lib/thunderbird/chrome/en-US/locale/en-US/global/contentAreaCommands.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/crashes.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/crashes.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/css.properties
-lib/thunderbird/chrome/en-US/locale/en-US/global/customizeCharset.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/customizeToolbar.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/customizeToolbar.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/dateFormat.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/datetimepicker.dtd
+lib/thunderbird/chrome/en-US/locale/en-US/global/devtools/csscoverage.dtd
+lib/thunderbird/chrome/en-US/locale/en-US/global/devtools/csscoverage.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/devtools/debugger.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/devtools/styleinspector.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/dialog.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/dialogOverlay.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/dom/dom.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/editMenuOverlay.dtd
+lib/thunderbird/chrome/en-US/locale/en-US/global/fallbackMenubar.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/filefield.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/filepicker.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/filepicker.properties
@@ -557,7 +572,6 @@ lib/thunderbird/chrome/en-US/locale/en-US/global/wizard.dtd
lib/thunderbird/chrome/en-US/locale/en-US/global/wizard.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/xbl.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/xml/prettyprint.dtd
-lib/thunderbird/chrome/en-US/locale/en-US/global/xpinstall/xpinstall.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/xslt/xslt.properties
lib/thunderbird/chrome/en-US/locale/en-US/global/xul.properties
lib/thunderbird/chrome/en-US/locale/en-US/messenger-mapi/mapi.properties
@@ -581,6 +595,7 @@ lib/thunderbird/chrome/en-US/locale/en-US/messenger/FilterEditor.dtd
lib/thunderbird/chrome/en-US/locale/en-US/messenger/FilterListDialog.dtd
lib/thunderbird/chrome/en-US/locale/en-US/messenger/SearchDialog.dtd
lib/thunderbird/chrome/en-US/locale/en-US/messenger/aboutDialog.dtd
+lib/thunderbird/chrome/en-US/locale/en-US/messenger/aboutDownloads.dtd
lib/thunderbird/chrome/en-US/locale/en-US/messenger/aboutRights.dtd
lib/thunderbird/chrome/en-US/locale/en-US/messenger/aboutRights.properties
lib/thunderbird/chrome/en-US/locale/en-US/messenger/aboutSupportMail.dtd
@@ -623,6 +638,7 @@ lib/thunderbird/chrome/en-US/locale/en-US/messenger/am-smime.dtd
lib/thunderbird/chrome/en-US/locale/en-US/messenger/am-smime.properties
lib/thunderbird/chrome/en-US/locale/en-US/messenger/appleMailImportMsgs.properties
lib/thunderbird/chrome/en-US/locale/en-US/messenger/baseMenuOverlay.dtd
+lib/thunderbird/chrome/en-US/locale/en-US/messenger/charsetTitles.properties
lib/thunderbird/chrome/en-US/locale/en-US/messenger/chat.dtd
lib/thunderbird/chrome/en-US/locale/en-US/messenger/chat.properties
lib/thunderbird/chrome/en-US/locale/en-US/messenger/cloudfile/Box/auth.dtd
@@ -773,9 +789,7 @@ lib/thunderbird/chrome/en-US/locale/en-US/mozapps/extensions/update.properties
lib/thunderbird/chrome/en-US/locale/en-US/mozapps/handling/handling.dtd
lib/thunderbird/chrome/en-US/locale/en-US/mozapps/handling/handling.properties
lib/thunderbird/chrome/en-US/locale/en-US/mozapps/plugins/plugins.dtd
-lib/thunderbird/chrome/en-US/locale/en-US/mozapps/plugins/plugins.properties
lib/thunderbird/chrome/en-US/locale/en-US/mozapps/preferences/changemp.dtd
-lib/thunderbird/chrome/en-US/locale/en-US/mozapps/preferences/ocsp.dtd
lib/thunderbird/chrome/en-US/locale/en-US/mozapps/preferences/preferences.properties
lib/thunderbird/chrome/en-US/locale/en-US/mozapps/preferences/removemp.dtd
lib/thunderbird/chrome/en-US/locale/en-US/mozapps/profile/createProfileWizard.dtd
@@ -792,7 +806,6 @@ lib/thunderbird/chrome/en-US/locale/en-US/passwordmgr/passwordManager.dtd
lib/thunderbird/chrome/en-US/locale/en-US/passwordmgr/passwordmgr.properties
lib/thunderbird/chrome/en-US/locale/en-US/pipnss/nsserrors.properties
lib/thunderbird/chrome/en-US/locale/en-US/pipnss/pipnss.properties
-lib/thunderbird/chrome/en-US/locale/en-US/pipnss/security.properties
lib/thunderbird/chrome/en-US/locale/en-US/pippki/certManager.dtd
lib/thunderbird/chrome/en-US/locale/en-US/pippki/deviceManager.dtd
lib/thunderbird/chrome/en-US/locale/en-US/pippki/pippki.dtd
@@ -952,6 +965,8 @@ lib/thunderbird/chrome/messenger/content/messenger/aw-outgoing.js
lib/thunderbird/chrome/messenger/content/messenger/baseMenuOverlay.xul
lib/thunderbird/chrome/messenger/content/messenger/browserRequest.js
lib/thunderbird/chrome/messenger/content/messenger/browserRequest.xul
+lib/thunderbird/chrome/messenger/content/messenger/charsetList.css
+lib/thunderbird/chrome/messenger/content/messenger/charsetList.xml
lib/thunderbird/chrome/messenger/content/messenger/chat/addbuddy.js
lib/thunderbird/chrome/messenger/content/messenger/chat/addbuddy.xul
lib/thunderbird/chrome/messenger/content/messenger/chat/badgebutton.xml
@@ -966,8 +981,6 @@ lib/thunderbird/chrome/messenger/content/messenger/chat/imAccounts.js
lib/thunderbird/chrome/messenger/content/messenger/chat/imAccounts.xul
lib/thunderbird/chrome/messenger/content/messenger/chat/imContextMenu.js
lib/thunderbird/chrome/messenger/content/messenger/chat/imStatusSelector.js
-lib/thunderbird/chrome/messenger/content/messenger/chat/imbuddytooltip.css
-lib/thunderbird/chrome/messenger/content/messenger/chat/imbuddytooltip.xml
lib/thunderbird/chrome/messenger/content/messenger/chat/imcontact.xml
lib/thunderbird/chrome/messenger/content/messenger/chat/imconv.xml
lib/thunderbird/chrome/messenger/content/messenger/chat/imconversation.xml
@@ -978,7 +991,6 @@ lib/thunderbird/chrome/messenger/content/messenger/cloudfile/Box/management.js
lib/thunderbird/chrome/messenger/content/messenger/cloudfile/Box/management.xhtml
lib/thunderbird/chrome/messenger/content/messenger/cloudfile/Box/settings.xhtml
lib/thunderbird/chrome/messenger/content/messenger/cloudfile/Hightail/fileExceeds2GB.xul
-lib/thunderbird/chrome/messenger/content/messenger/cloudfile/Hightail/fileExceedsLimit.js
lib/thunderbird/chrome/messenger/content/messenger/cloudfile/Hightail/fileExceedsLimit.xul
lib/thunderbird/chrome/messenger/content/messenger/cloudfile/Hightail/fileExceedsQuota.js
lib/thunderbird/chrome/messenger/content/messenger/cloudfile/Hightail/fileExceedsQuota.xul
@@ -999,6 +1011,10 @@ lib/thunderbird/chrome/messenger/content/messenger/devtools/dbg-messenger-overla
lib/thunderbird/chrome/messenger/content/messenger/devtools/dbg-messenger-overlay.xul
lib/thunderbird/chrome/messenger/content/messenger/downloadheaders.js
lib/thunderbird/chrome/messenger/content/messenger/downloadheaders.xul
+lib/thunderbird/chrome/messenger/content/messenger/downloads/aboutDownloads.css
+lib/thunderbird/chrome/messenger/content/messenger/downloads/aboutDownloads.js
+lib/thunderbird/chrome/messenger/content/messenger/downloads/aboutDownloads.xul
+lib/thunderbird/chrome/messenger/content/messenger/downloads/download.xml
lib/thunderbird/chrome/messenger/content/messenger/downloadsOverlay.xul
lib/thunderbird/chrome/messenger/content/messenger/editContactOverlay.js
lib/thunderbird/chrome/messenger/content/messenger/editContactOverlay.xul
@@ -1061,6 +1077,7 @@ lib/thunderbird/chrome/messenger/content/messenger/messengercompose/askSendForma
lib/thunderbird/chrome/messenger/content/messenger/messengercompose/bigFileObserver.js
lib/thunderbird/chrome/messenger/content/messenger/messengercompose/cloudAttachmentLinkManager.js
lib/thunderbird/chrome/messenger/content/messenger/messengercompose/mailComposeEditorOverlay.xul
+lib/thunderbird/chrome/messenger/content/messenger/messengercompose/menulistCompactBindings.xml
lib/thunderbird/chrome/messenger/content/messenger/messengercompose/messengercompose.xul
lib/thunderbird/chrome/messenger/content/messenger/messengercompose/sendProgress.js
lib/thunderbird/chrome/messenger/content/messenger/messengercompose/sendProgress.xul
@@ -1080,6 +1097,7 @@ lib/thunderbird/chrome/messenger/content/messenger/msgSynchronize.xul
lib/thunderbird/chrome/messenger/content/messenger/msgViewNavigation.js
lib/thunderbird/chrome/messenger/content/messenger/msgViewPickerOverlay.js
lib/thunderbird/chrome/messenger/content/messenger/multimessageview.css
+lib/thunderbird/chrome/messenger/content/messenger/multimessageview.js
lib/thunderbird/chrome/messenger/content/messenger/multimessageview.xhtml
lib/thunderbird/chrome/messenger/content/messenger/multimessageview_print.css
lib/thunderbird/chrome/messenger/content/messenger/newFolderDialog.js
@@ -1098,6 +1116,7 @@ lib/thunderbird/chrome/messenger/content/messenger/newmailalert.xul
lib/thunderbird/chrome/messenger/content/messenger/nsContextMenu.js
lib/thunderbird/chrome/messenger/content/messenger/phishingDetector.js
lib/thunderbird/chrome/messenger/content/messenger/plugins.js
+lib/thunderbird/chrome/messenger/content/messenger/preferences/aboutPreferences.xul
lib/thunderbird/chrome/messenger/content/messenger/preferences/actionsshared.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/advanced.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/advanced.xul
@@ -1126,19 +1145,25 @@ lib/thunderbird/chrome/messenger/content/messenger/preferences/general.xul
lib/thunderbird/chrome/messenger/content/messenger/preferences/handlers.css
lib/thunderbird/chrome/messenger/content/messenger/preferences/handlers.xml
lib/thunderbird/chrome/messenger/content/messenger/preferences/notifications.xul
+lib/thunderbird/chrome/messenger/content/messenger/preferences/offline.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/offline.xul
lib/thunderbird/chrome/messenger/content/messenger/preferences/permissions.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/permissions.xul
lib/thunderbird/chrome/messenger/content/messenger/preferences/permissionsutils.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/preferences.js
+lib/thunderbird/chrome/messenger/content/messenger/preferences/preferences.xml
lib/thunderbird/chrome/messenger/content/messenger/preferences/preferences.xul
+lib/thunderbird/chrome/messenger/content/messenger/preferences/preferencesTab.js
+lib/thunderbird/chrome/messenger/content/messenger/preferences/preferencesTab.xul
lib/thunderbird/chrome/messenger/content/messenger/preferences/privacy.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/privacy.xul
+lib/thunderbird/chrome/messenger/content/messenger/preferences/receipts.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/receipts.xul
lib/thunderbird/chrome/messenger/content/messenger/preferences/security.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/security.xul
lib/thunderbird/chrome/messenger/content/messenger/preferences/sendoptions.js
lib/thunderbird/chrome/messenger/content/messenger/preferences/sendoptions.xul
+lib/thunderbird/chrome/messenger/content/messenger/preferences/subdialogs.js
lib/thunderbird/chrome/messenger/content/messenger/protovis-r2.6-modded.js
lib/thunderbird/chrome/messenger/content/messenger/quickFilterBar.css
lib/thunderbird/chrome/messenger/content/messenger/quickFilterBar.js
@@ -1184,9 +1209,6 @@ lib/thunderbird/chrome/messenger/content/messenger/virtualFolderListDialog.js
lib/thunderbird/chrome/messenger/content/messenger/virtualFolderListDialog.xul
lib/thunderbird/chrome/messenger/content/messenger/virtualFolderProperties.js
lib/thunderbird/chrome/messenger/content/messenger/virtualFolderProperties.xul
-lib/thunderbird/chrome/messenger/content/messenger/webSearch.xml
-lib/thunderbird/chrome/messenger/content/messenger/webSearchTab.js
-lib/thunderbird/chrome/messenger/content/messenger/webSearchTab.xul
lib/thunderbird/chrome/messenger/skin/classic/messenger/messages/Bitmaps/minus-hover.png
lib/thunderbird/chrome/messenger/skin/classic/messenger/messages/Bitmaps/minus.png
lib/thunderbird/chrome/messenger/skin/classic/messenger/messages/Bitmaps/plus-hover.png
@@ -1242,8 +1264,6 @@ lib/thunderbird/chrome/pippki/content/pippki/certDump.xul
lib/thunderbird/chrome/pippki/content/pippki/certManager.js
lib/thunderbird/chrome/pippki/content/pippki/certManager.xul
lib/thunderbird/chrome/pippki/content/pippki/certViewer.xul
-lib/thunderbird/chrome/pippki/content/pippki/certerror.js
-lib/thunderbird/chrome/pippki/content/pippki/certerror.xul
lib/thunderbird/chrome/pippki/content/pippki/certpicker.js
lib/thunderbird/chrome/pippki/content/pippki/certpicker.xul
lib/thunderbird/chrome/pippki/content/pippki/changepassword.xul
@@ -1266,9 +1286,6 @@ lib/thunderbird/chrome/pippki/content/pippki/escrowWarn.js
lib/thunderbird/chrome/pippki/content/pippki/escrowWarn.xul
lib/thunderbird/chrome/pippki/content/pippki/exceptionDialog.js
lib/thunderbird/chrome/pippki/content/pippki/exceptionDialog.xul
-lib/thunderbird/chrome/pippki/content/pippki/formsigning.js
-lib/thunderbird/chrome/pippki/content/pippki/formsigning.xul
-lib/thunderbird/chrome/pippki/content/pippki/getp12password.xul
lib/thunderbird/chrome/pippki/content/pippki/getpassword.xul
lib/thunderbird/chrome/pippki/content/pippki/load_device.xul
lib/thunderbird/chrome/pippki/content/pippki/password.js
@@ -1282,6 +1299,8 @@ lib/thunderbird/chrome/pippki/content/pippki/viewCertDetails.js
lib/thunderbird/chrome/pippki/content/pippki/viewCertDetails.xul
lib/thunderbird/chrome/toolkit/content/cookie/cookieAcceptDialog.js
lib/thunderbird/chrome/toolkit/content/cookie/cookieAcceptDialog.xul
+lib/thunderbird/chrome/toolkit/content/formautofill/requestAutocomplete.js
+lib/thunderbird/chrome/toolkit/content/formautofill/requestAutocomplete.xhtml
lib/thunderbird/chrome/toolkit/content/global/BrowserElementChild.js
lib/thunderbird/chrome/toolkit/content/global/BrowserElementChildPreload.js
lib/thunderbird/chrome/toolkit/content/global/BrowserElementPanning.js
@@ -1290,6 +1309,8 @@ lib/thunderbird/chrome/toolkit/content/global/about.js
lib/thunderbird/chrome/toolkit/content/global/about.xhtml
lib/thunderbird/chrome/toolkit/content/global/aboutAbout.js
lib/thunderbird/chrome/toolkit/content/global/aboutAbout.xhtml
+lib/thunderbird/chrome/toolkit/content/global/aboutCache.js
+lib/thunderbird/chrome/toolkit/content/global/aboutCompartments.js
lib/thunderbird/chrome/toolkit/content/global/aboutCompartments.xhtml
lib/thunderbird/chrome/toolkit/content/global/aboutMemory.css
lib/thunderbird/chrome/toolkit/content/global/aboutMemory.js
@@ -1303,7 +1324,9 @@ lib/thunderbird/chrome/toolkit/content/global/aboutSupport.xhtml
lib/thunderbird/chrome/toolkit/content/global/aboutTelemetry.css
lib/thunderbird/chrome/toolkit/content/global/aboutTelemetry.js
lib/thunderbird/chrome/toolkit/content/global/aboutTelemetry.xhtml
-lib/thunderbird/chrome/toolkit/content/global/aboutWebrtc.xhtml
+lib/thunderbird/chrome/toolkit/content/global/aboutwebrtc/aboutWebrtc.css
+lib/thunderbird/chrome/toolkit/content/global/aboutwebrtc/aboutWebrtc.js
+lib/thunderbird/chrome/toolkit/content/global/aboutwebrtc/aboutWebrtc.xhtml
lib/thunderbird/chrome/toolkit/content/global/accessibility/AccessFu.css
lib/thunderbird/chrome/toolkit/content/global/accessibility/clicked.ogg
lib/thunderbird/chrome/toolkit/content/global/accessibility/content-script.js
@@ -1314,6 +1337,7 @@ lib/thunderbird/chrome/toolkit/content/global/alerts/alert.js
lib/thunderbird/chrome/toolkit/content/global/alerts/alert.xul
lib/thunderbird/chrome/toolkit/content/global/appPicker.js
lib/thunderbird/chrome/toolkit/content/global/appPicker.xul
+lib/thunderbird/chrome/toolkit/content/global/autocomplete.css
lib/thunderbird/chrome/toolkit/content/global/backgroundPageThumbsContent.js
lib/thunderbird/chrome/toolkit/content/global/bindings/autocomplete.xml
lib/thunderbird/chrome/toolkit/content/global/bindings/browser.xml
@@ -1358,8 +1382,6 @@ lib/thunderbird/chrome/toolkit/content/global/bindings/wizard.xml
lib/thunderbird/chrome/toolkit/content/global/browser-child.js
lib/thunderbird/chrome/toolkit/content/global/browser-content.js
lib/thunderbird/chrome/toolkit/content/global/buildconfig.html
-lib/thunderbird/chrome/toolkit/content/global/charsetOverlay.js
-lib/thunderbird/chrome/toolkit/content/global/charsetOverlay.xul
lib/thunderbird/chrome/toolkit/content/global/commonDialog.css
lib/thunderbird/chrome/toolkit/content/global/commonDialog.js
lib/thunderbird/chrome/toolkit/content/global/commonDialog.xul
@@ -1370,8 +1392,6 @@ lib/thunderbird/chrome/toolkit/content/global/console.js
lib/thunderbird/chrome/toolkit/content/global/console.xul
lib/thunderbird/chrome/toolkit/content/global/consoleBindings.xml
lib/thunderbird/chrome/toolkit/content/global/contentAreaUtils.js
-lib/thunderbird/chrome/toolkit/content/global/customizeCharset.js
-lib/thunderbird/chrome/toolkit/content/global/customizeCharset.xul
lib/thunderbird/chrome/toolkit/content/global/customizeToolbar.css
lib/thunderbird/chrome/toolkit/content/global/customizeToolbar.js
lib/thunderbird/chrome/toolkit/content/global/customizeToolbar.xul
@@ -1379,7 +1399,6 @@ lib/thunderbird/chrome/toolkit/content/global/devicestorage.properties
lib/thunderbird/chrome/toolkit/content/global/dialogOverlay.js
lib/thunderbird/chrome/toolkit/content/global/dialogOverlay.xul
lib/thunderbird/chrome/toolkit/content/global/directionDetector.html
-lib/thunderbird/chrome/toolkit/content/global/directoryLinks.json
lib/thunderbird/chrome/toolkit/content/global/editMenuOverlay.js
lib/thunderbird/chrome/toolkit/content/global/editMenuOverlay.xul
lib/thunderbird/chrome/toolkit/content/global/filepicker.js
@@ -1394,6 +1413,7 @@ lib/thunderbird/chrome/toolkit/content/global/globalOverlay.xul
lib/thunderbird/chrome/toolkit/content/global/inlineSpellCheckUI.js
lib/thunderbird/chrome/toolkit/content/global/license.html
lib/thunderbird/chrome/toolkit/content/global/menulist.css
+lib/thunderbird/chrome/toolkit/content/global/minimal-xul.css
lib/thunderbird/chrome/toolkit/content/global/mozilla.xhtml
lib/thunderbird/chrome/toolkit/content/global/netError.xhtml
lib/thunderbird/chrome/toolkit/content/global/notfound.wav
@@ -1403,6 +1423,7 @@ lib/thunderbird/chrome/toolkit/content/global/nsUserSettings.js
lib/thunderbird/chrome/toolkit/content/global/platformHTMLBindings.xml
lib/thunderbird/chrome/toolkit/content/global/plugins.css
lib/thunderbird/chrome/toolkit/content/global/plugins.html
+lib/thunderbird/chrome/toolkit/content/global/post-fork-preload.js
lib/thunderbird/chrome/toolkit/content/global/preload.js
lib/thunderbird/chrome/toolkit/content/global/printPageSetup.js
lib/thunderbird/chrome/toolkit/content/global/printPageSetup.xul
@@ -1416,6 +1437,8 @@ lib/thunderbird/chrome/toolkit/content/global/printdialog.js
lib/thunderbird/chrome/toolkit/content/global/printdialog.xul
lib/thunderbird/chrome/toolkit/content/global/printjoboptions.js
lib/thunderbird/chrome/toolkit/content/global/printjoboptions.xul
+lib/thunderbird/chrome/toolkit/content/global/reader/aboutReader.html
+lib/thunderbird/chrome/toolkit/content/global/reader/aboutReader.js
lib/thunderbird/chrome/toolkit/content/global/remote-test-ipc.js
lib/thunderbird/chrome/toolkit/content/global/resetProfile.css
lib/thunderbird/chrome/toolkit/content/global/resetProfile.js
@@ -1429,9 +1452,6 @@ lib/thunderbird/chrome/toolkit/content/global/svg/svgBindings.xml
lib/thunderbird/chrome/toolkit/content/global/tabprompts.css
lib/thunderbird/chrome/toolkit/content/global/tabprompts.xml
lib/thunderbird/chrome/toolkit/content/global/test-ipc.xul
-lib/thunderbird/chrome/toolkit/content/global/test-ipcbrowser-chrome.js
-lib/thunderbird/chrome/toolkit/content/global/test-ipcbrowser-content.js
-lib/thunderbird/chrome/toolkit/content/global/test-ipcbrowser.xul
lib/thunderbird/chrome/toolkit/content/global/textbox.css
lib/thunderbird/chrome/toolkit/content/global/treeUtils.js
lib/thunderbird/chrome/toolkit/content/global/viewPartialSource.js
@@ -1453,6 +1473,7 @@ lib/thunderbird/chrome/toolkit/content/mozapps/downloads/downloads.js
lib/thunderbird/chrome/toolkit/content/mozapps/downloads/downloads.xul
lib/thunderbird/chrome/toolkit/content/mozapps/downloads/helperApps.js
lib/thunderbird/chrome/toolkit/content/mozapps/downloads/unknownContentType.xul
+lib/thunderbird/chrome/toolkit/content/mozapps/extensions/OpenH264-license.txt
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/about.js
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/about.xul
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/blocklist.css
@@ -1465,6 +1486,7 @@ lib/thunderbird/chrome/toolkit/content/mozapps/extensions/extensions.css
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/extensions.js
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/extensions.xml
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/extensions.xul
+lib/thunderbird/chrome/toolkit/content/mozapps/extensions/gmpPrefs.xul
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/list.js
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/list.xul
lib/thunderbird/chrome/toolkit/content/mozapps/extensions/newaddon.js
@@ -1483,19 +1505,12 @@ lib/thunderbird/chrome/toolkit/content/mozapps/handling/dialog.xul
lib/thunderbird/chrome/toolkit/content/mozapps/handling/handler.css
lib/thunderbird/chrome/toolkit/content/mozapps/handling/handler.xml
lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginFinderBinding.css
-lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginInstallerDatasource.js
-lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginInstallerService.js
-lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginInstallerWizard.css
-lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginInstallerWizard.js
-lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginInstallerWizard.xul
lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginProblem.xml
lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginProblemBinding.css
lib/thunderbird/chrome/toolkit/content/mozapps/plugins/pluginProblemContent.css
lib/thunderbird/chrome/toolkit/content/mozapps/preferences/changemp.js
lib/thunderbird/chrome/toolkit/content/mozapps/preferences/changemp.xul
lib/thunderbird/chrome/toolkit/content/mozapps/preferences/fontbuilder.js
-lib/thunderbird/chrome/toolkit/content/mozapps/preferences/ocsp.js
-lib/thunderbird/chrome/toolkit/content/mozapps/preferences/ocsp.xul
lib/thunderbird/chrome/toolkit/content/mozapps/preferences/removemp.js
lib/thunderbird/chrome/toolkit/content/mozapps/preferences/removemp.xul
lib/thunderbird/chrome/toolkit/content/mozapps/profile/createProfileWizard.js
@@ -1524,6 +1539,7 @@ lib/thunderbird/chrome/toolkit/res/arrow.gif
lib/thunderbird/chrome/toolkit/res/arrowd.gif
lib/thunderbird/chrome/toolkit/res/broken-image.png
lib/thunderbird/chrome/toolkit/res/charsetData.properties
+lib/thunderbird/chrome/toolkit/res/counterstyles.css
lib/thunderbird/chrome/toolkit/res/forms.css
lib/thunderbird/chrome/toolkit/res/full-screen-override.css
lib/thunderbird/chrome/toolkit/res/hiddenWindow.html
@@ -1540,6 +1556,7 @@ lib/thunderbird/chrome/toolkit/skin/classic/global/about.css
lib/thunderbird/chrome/toolkit/skin/classic/global/aboutCache.css
lib/thunderbird/chrome/toolkit/skin/classic/global/aboutCacheEntry.css
lib/thunderbird/chrome/toolkit/skin/classic/global/aboutMemory.css
+lib/thunderbird/chrome/toolkit/skin/classic/global/aboutReader.css
lib/thunderbird/chrome/toolkit/skin/classic/global/aboutSupport.css
lib/thunderbird/chrome/toolkit/skin/classic/global/alerts/alert.css
lib/thunderbird/chrome/toolkit/skin/classic/global/alerts/notification-48.png
@@ -1610,6 +1627,7 @@ lib/thunderbird/chrome/toolkit/skin/classic/global/icons/Restore.gif
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/Search-close.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/Search-glass.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/Warning.png
+lib/thunderbird/chrome/toolkit/skin/classic/global/icons/autocomplete-search.svg
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/autoscroll.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/blacklist_favicon.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/blacklist_large.png
@@ -1647,10 +1665,18 @@ lib/thunderbird/chrome/toolkit/skin/classic/global/icons/warning-16.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/warning-24.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/warning-64.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/warning-large.png
+lib/thunderbird/chrome/toolkit/skin/classic/global/icons/warning.svg
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/webapps-16.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/webapps-64.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/windowControls.png
lib/thunderbird/chrome/toolkit/skin/classic/global/icons/wrap.png
+lib/thunderbird/chrome/toolkit/skin/classic/global/in-content/check-partial.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/in-content/check.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/in-content/common.css
+lib/thunderbird/chrome/toolkit/skin/classic/global/in-content/dropdown.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/in-content/help-glyph.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/in-content/info-pages.css
+lib/thunderbird/chrome/toolkit/skin/classic/global/in-content/radio.svg
lib/thunderbird/chrome/toolkit/skin/classic/global/inContentUI.css
lib/thunderbird/chrome/toolkit/skin/classic/global/inContentUI/background-texture.png
lib/thunderbird/chrome/toolkit/skin/classic/global/linkTree.css
@@ -1694,6 +1720,14 @@ lib/thunderbird/chrome/toolkit/skin/classic/global/progressmeter.css
lib/thunderbird/chrome/toolkit/skin/classic/global/radio.css
lib/thunderbird/chrome/toolkit/skin/classic/global/radio/radio-check-dis.gif
lib/thunderbird/chrome/toolkit/skin/classic/global/radio/radio-check.gif
+lib/thunderbird/chrome/toolkit/skin/classic/global/reader/RM-Add-24x24.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/reader/RM-Close-24x24.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/reader/RM-Delete-24x24.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/reader/RM-Minus-24x24.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/reader/RM-Plus-24x24.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/reader/RM-Reading-List-24x24.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/reader/RM-Type-Controls-24x24.svg
+lib/thunderbird/chrome/toolkit/skin/classic/global/reader/RM-Type-Controls-Arrow.svg
lib/thunderbird/chrome/toolkit/skin/classic/global/resizer.css
lib/thunderbird/chrome/toolkit/skin/classic/global/richlistbox.css
lib/thunderbird/chrome/toolkit/skin/classic/global/scale.css
@@ -1710,6 +1744,7 @@ lib/thunderbird/chrome/toolkit/skin/classic/global/tabbox.css
lib/thunderbird/chrome/toolkit/skin/classic/global/tabprompts.css
lib/thunderbird/chrome/toolkit/skin/classic/global/textbox.css
lib/thunderbird/chrome/toolkit/skin/classic/global/toolbar.css
+lib/thunderbird/chrome/toolkit/skin/classic/global/toolbar/chevron-inverted.png
lib/thunderbird/chrome/toolkit/skin/classic/global/toolbar/chevron.gif
lib/thunderbird/chrome/toolkit/skin/classic/global/toolbar/spring.png
lib/thunderbird/chrome/toolkit/skin/classic/global/toolbarbutton.css
@@ -1754,7 +1789,6 @@ lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/experimentGeneric
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/extensionGeneric-16.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/extensionGeneric.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/extensions.css
-lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/extensions.svg
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/heart.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/localeGeneric.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/navigation.png
@@ -1769,7 +1803,8 @@ lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/stripes-warning.p
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/themeGeneric-16.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/themeGeneric.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/update.css
-lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/utilities.png
+lib/thunderbird/chrome/toolkit/skin/classic/mozapps/extensions/utilities.svg
+lib/thunderbird/chrome/toolkit/skin/classic/mozapps/formautofill/requestAutocomplete.css
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/handling/handling.css
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/passwordmgr/key-16.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/passwordmgr/key-64.png
@@ -1790,7 +1825,6 @@ lib/thunderbird/chrome/toolkit/skin/classic/mozapps/plugins/pluginBlocked.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/plugins/pluginGeneric-16.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/plugins/pluginGeneric.png
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/plugins/pluginHelp-16.png
-lib/thunderbird/chrome/toolkit/skin/classic/mozapps/plugins/pluginInstallerWizard.css
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/plugins/pluginProblem.css
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/profile/profileSelection.css
lib/thunderbird/chrome/toolkit/skin/classic/mozapps/profile/profileicon.png
@@ -1804,20 +1838,28 @@ lib/thunderbird/components/BrowserElementParent.js
lib/thunderbird/components/ColorAnalyzer.js
lib/thunderbird/components/ConsoleAPIStorage.js
lib/thunderbird/components/ContactManager.js
+lib/thunderbird/components/ContentProcessSingleton.js
lib/thunderbird/components/DownloadLegacy.js
+lib/thunderbird/components/DownloadsStartup.js
lib/thunderbird/components/FeedProcessor.js
+lib/thunderbird/components/FormAutofillContentService.js
+lib/thunderbird/components/FormAutofillStartup.js
lib/thunderbird/components/FormHistoryStartup.js
+lib/thunderbird/components/MainProcessSingleton.js
lib/thunderbird/components/NetworkGeolocationProvider.js
lib/thunderbird/components/PageThumbsProtocol.js
lib/thunderbird/components/PermissionSettings.js
lib/thunderbird/components/PlacesCategoriesStarter.js
+lib/thunderbird/components/PresentationDeviceInfoManager.js
lib/thunderbird/components/SettingsManager.js
lib/thunderbird/components/SiteSpecificUserAgent.js
lib/thunderbird/components/TCPServerSocket.js
lib/thunderbird/components/TCPSocket.js
lib/thunderbird/components/TCPSocketParentIntermediary.js
lib/thunderbird/components/TelemetryStartup.js
+lib/thunderbird/components/UnifiedComplete.js
lib/thunderbird/components/Webapps.js
+lib/thunderbird/components/XULStore.js
lib/thunderbird/components/aboutRedirector.js
lib/thunderbird/components/addonManager.js
lib/thunderbird/components/amContentHandler.js
@@ -1825,12 +1867,12 @@ lib/thunderbird/components/amInstallTrigger.js
lib/thunderbird/components/amWebInstallListener.js
lib/thunderbird/components/components.manifest
lib/thunderbird/components/contentAreaDropListener.js
-lib/thunderbird/components/contentSecurityPolicy.js
lib/thunderbird/components/crypto-SDR.js
lib/thunderbird/components/facebook.js
lib/thunderbird/components/folderLookupService.js
lib/thunderbird/components/glautocomp.js
lib/thunderbird/components/gtalk.js
+lib/thunderbird/components/htmlMenuBuilder.js
lib/thunderbird/components/imAccounts.js
lib/thunderbird/components/imCommands.js
lib/thunderbird/components/imContacts.js
@@ -1851,6 +1893,7 @@ lib/thunderbird/components/mdn-service.js
lib/thunderbird/components/messageWakeupService.js
lib/thunderbird/components/mimeJSComponents.js
lib/thunderbird/components/msgAsyncPrompter.js
+lib/thunderbird/components/msgOAuth2Module.js
lib/thunderbird/components/newMailNotificationService.js
lib/thunderbird/components/newsblog.js
lib/thunderbird/components/nsAbAutoCompleteMyDomain.js
@@ -1860,6 +1903,7 @@ lib/thunderbird/components/nsAbLDAPAutoCompleteSearch.js
lib/thunderbird/components/nsActivity.js
lib/thunderbird/components/nsActivityManager.js
lib/thunderbird/components/nsActivityManagerUI.js
+lib/thunderbird/components/nsAsyncShutdown.js
lib/thunderbird/components/nsBlocklistService.js
lib/thunderbird/components/nsBox.js
lib/thunderbird/components/nsContentDispatchChooser.js
@@ -1867,7 +1911,6 @@ lib/thunderbird/components/nsContentPrefService.js
lib/thunderbird/components/nsCrashMonitor.js
lib/thunderbird/components/nsDOMIdentity.js
lib/thunderbird/components/nsDefaultCLH.js
-lib/thunderbird/components/nsDownloadManagerUI.js
lib/thunderbird/components/nsFilePicker.js
lib/thunderbird/components/nsFormAutoComplete.js
lib/thunderbird/components/nsFormHistory.js
@@ -1886,7 +1929,6 @@ lib/thunderbird/components/nsMailDefaultHandler.js
lib/thunderbird/components/nsMailNewsCommandLineHandler.js
lib/thunderbird/components/nsMsgTraitService.js
lib/thunderbird/components/nsNewsAutoCompleteSearch.js
-lib/thunderbird/components/nsPhishingProtectionApplication.js
lib/thunderbird/components/nsPlacesAutoComplete.js
lib/thunderbird/components/nsPlacesExpiration.js
lib/thunderbird/components/nsPrompter.js
@@ -1895,6 +1937,7 @@ lib/thunderbird/components/nsSearchService.js
lib/thunderbird/components/nsSearchSuggestions.js
lib/thunderbird/components/nsSetDefaultMail.js
lib/thunderbird/components/nsTaggingService.js
+lib/thunderbird/components/nsTerminatorTelemetry.js
lib/thunderbird/components/nsURLFormatter.js
lib/thunderbird/components/nsUpdateTimerManager.js
lib/thunderbird/components/nsUrlClassifierHashCompleter.js
@@ -1905,10 +1948,11 @@ lib/thunderbird/components/offlineStartup.js
lib/thunderbird/components/smileProtocolHandler.js
lib/thunderbird/components/smime-service.js
lib/thunderbird/components/steelApplication.js
-lib/thunderbird/components/storage-mozStorage.js
+lib/thunderbird/components/storage-json.js
lib/thunderbird/components/twitter.js
lib/thunderbird/components/txEXSLTRegExFunctions.js
lib/thunderbird/components/xmpp.js
+lib/thunderbird/components/yahoo.js
lib/thunderbird/defaults/autoconfig/platform.js
lib/thunderbird/defaults/autoconfig/prefcalls.js
lib/thunderbird/defaults/messenger/mailViews.dat
@@ -1929,8 +1973,8 @@ lib/thunderbird/dependentlibs.list
lib/thunderbird/dictionaries/en-US.aff
lib/thunderbird/dictionaries/en-US.dic
lib/thunderbird/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
+lib/thunderbird/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png
lib/thunderbird/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
-lib/thunderbird/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/preview.png
lib/thunderbird/greprefs.js
lib/thunderbird/hyphenation/hyph_af.dic
lib/thunderbird/hyphenation/hyph_bg.dic
@@ -1980,6 +2024,7 @@ lib/thunderbird/libldif60.so
lib/thunderbird/libmozalloc.so
lib/thunderbird/libprldap60.so
lib/thunderbird/libxul.so
+lib/thunderbird/modules/AboutReader.jsm
lib/thunderbird/modules/ActivitiesService.jsm
lib/thunderbird/modules/ActivitiesServiceFilter.jsm
lib/thunderbird/modules/AddonManager.jsm
@@ -1993,13 +2038,13 @@ lib/thunderbird/modules/AsyncShutdown.jsm
lib/thunderbird/modules/AsyncSpellCheckTestHelper.jsm
lib/thunderbird/modules/AutoCompleteE10S.jsm
lib/thunderbird/modules/BackgroundPageThumbs.jsm
+lib/thunderbird/modules/Battery.jsm
lib/thunderbird/modules/BinarySearch.jsm
lib/thunderbird/modules/BookmarkHTMLUtils.jsm
lib/thunderbird/modules/BookmarkJSONUtils.jsm
-lib/thunderbird/modules/BrowserElementParent.jsm
+lib/thunderbird/modules/Bookmarks.jsm
lib/thunderbird/modules/BrowserElementPromptService.jsm
lib/thunderbird/modules/BrowserUtils.jsm
-lib/thunderbird/modules/CSPUtils.jsm
lib/thunderbird/modules/CertUtils.jsm
lib/thunderbird/modules/CharsetMenu.jsm
lib/thunderbird/modules/ChromeManifestParser.jsm
@@ -2011,20 +2056,21 @@ lib/thunderbird/modules/ContactDB.jsm
lib/thunderbird/modules/ContactService.jsm
lib/thunderbird/modules/ContentPrefInstance.jsm
lib/thunderbird/modules/ContentPrefService2.jsm
+lib/thunderbird/modules/ContentPrefServiceChild.jsm
+lib/thunderbird/modules/ContentPrefServiceParent.jsm
lib/thunderbird/modules/ContentPrefStore.jsm
+lib/thunderbird/modules/ContentPrefUtils.jsm
lib/thunderbird/modules/CrashMonitor.jsm
+lib/thunderbird/modules/Credentials.jsm
lib/thunderbird/modules/DOMIdentity.jsm
lib/thunderbird/modules/DOMRequestHelper.jsm
lib/thunderbird/modules/DataStoreChangeNotifier.jsm
lib/thunderbird/modules/DataStoreCursorImpl.jsm
lib/thunderbird/modules/DataStoreDB.jsm
-lib/thunderbird/modules/DataStoreImpl.jsm
-lib/thunderbird/modules/DataStoreServiceInternal.jsm
lib/thunderbird/modules/DeferredSave.jsm
lib/thunderbird/modules/DeferredTask.jsm
lib/thunderbird/modules/Deprecated.jsm
lib/thunderbird/modules/Dict.jsm
-lib/thunderbird/modules/DirectoryLinksProvider.jsm
lib/thunderbird/modules/DownloadCore.jsm
lib/thunderbird/modules/DownloadImport.jsm
lib/thunderbird/modules/DownloadIntegration.jsm
@@ -2040,28 +2086,47 @@ lib/thunderbird/modules/FeedUtils.jsm
lib/thunderbird/modules/FileUtils.jsm
lib/thunderbird/modules/Finder.jsm
lib/thunderbird/modules/ForgetAboutSite.jsm
+lib/thunderbird/modules/FormAutofill.jsm
+lib/thunderbird/modules/FormAutofillIntegration.jsm
lib/thunderbird/modules/FormData.jsm
lib/thunderbird/modules/FormHistory.jsm
lib/thunderbird/modules/FrameWorker.jsm
lib/thunderbird/modules/FrameWorkerContent.js
lib/thunderbird/modules/FreeSpaceWatcher.jsm
+lib/thunderbird/modules/FxAccounts.jsm
+lib/thunderbird/modules/FxAccountsClient.jsm
+lib/thunderbird/modules/FxAccountsCommon.js
+lib/thunderbird/modules/FxAccountsOAuthClient.jsm
+lib/thunderbird/modules/FxAccountsOAuthGrantClient.jsm
+lib/thunderbird/modules/FxAccountsProfileClient.jsm
+lib/thunderbird/modules/GMPInstallManager.jsm
+lib/thunderbird/modules/GMPUtils.jsm
lib/thunderbird/modules/Geometry.jsm
+lib/thunderbird/modules/History.jsm
lib/thunderbird/modules/Http.jsm
lib/thunderbird/modules/IOUtils.js
lib/thunderbird/modules/ISO8601DateUtils.jsm
+lib/thunderbird/modules/ImportExport.jsm
lib/thunderbird/modules/IndexedDBHelper.jsm
lib/thunderbird/modules/InlineSpellChecker.jsm
+lib/thunderbird/modules/InlineSpellCheckerContent.jsm
lib/thunderbird/modules/InsecurePasswordUtils.jsm
lib/thunderbird/modules/InterAppCommService.jsm
lib/thunderbird/modules/JXON.js
lib/thunderbird/modules/Keyboard.jsm
+lib/thunderbird/modules/Langpacks.jsm
lib/thunderbird/modules/LightweightThemeConsumer.jsm
lib/thunderbird/modules/LightweightThemeManager.jsm
lib/thunderbird/modules/LoadContextInfo.jsm
lib/thunderbird/modules/Log.jsm
+lib/thunderbird/modules/LoginHelper.jsm
+lib/thunderbird/modules/LoginImport.jsm
lib/thunderbird/modules/LoginManagerContent.jsm
+lib/thunderbird/modules/LoginManagerParent.jsm
+lib/thunderbird/modules/LoginStore.jsm
lib/thunderbird/modules/MailConsts.js
lib/thunderbird/modules/MailUtils.js
+lib/thunderbird/modules/ManifestProcessor.jsm
lib/thunderbird/modules/MessagePortBase.jsm
lib/thunderbird/modules/MessagePortWorker.js
lib/thunderbird/modules/Microformats.js
@@ -2070,16 +2135,18 @@ lib/thunderbird/modules/MsgHdrSyntheticView.js
lib/thunderbird/modules/NativeApp.jsm
lib/thunderbird/modules/NetUtil.jsm
lib/thunderbird/modules/NewTabUtils.jsm
+lib/thunderbird/modules/NormalizedMap.jsm
lib/thunderbird/modules/NotificationDB.jsm
lib/thunderbird/modules/OAuth2.jsm
-lib/thunderbird/modules/ObjectWrapper.jsm
+lib/thunderbird/modules/OAuth2Providers.jsm
lib/thunderbird/modules/OfflineCacheInstaller.jsm
lib/thunderbird/modules/OperatorApps.jsm
lib/thunderbird/modules/PageMenu.jsm
+lib/thunderbird/modules/PageMetadata.jsm
+lib/thunderbird/modules/PageThumbUtils.jsm
lib/thunderbird/modules/PageThumbs.jsm
lib/thunderbird/modules/PageThumbsWorker.js
lib/thunderbird/modules/PerfMeasurement.jsm
-lib/thunderbird/modules/PermissionPromptHelper.jsm
lib/thunderbird/modules/PermissionSettings.jsm
lib/thunderbird/modules/PermissionsInstaller.jsm
lib/thunderbird/modules/PermissionsTable.jsm
@@ -2090,18 +2157,23 @@ lib/thunderbird/modules/PhoneNumberNormalizer.jsm
lib/thunderbird/modules/PhoneNumberUtils.jsm
lib/thunderbird/modules/PlacesBackups.jsm
lib/thunderbird/modules/PlacesDBUtils.jsm
+lib/thunderbird/modules/PlacesSearchAutocompleteProvider.jsm
lib/thunderbird/modules/PlacesTransactions.jsm
lib/thunderbird/modules/PlacesUtils.jsm
lib/thunderbird/modules/PluralForm.jsm
lib/thunderbird/modules/PopupNotifications.jsm
lib/thunderbird/modules/Preferences.jsm
-lib/thunderbird/modules/PriorityUrlProvider.jsm
+lib/thunderbird/modules/Prefetcher.jsm
+lib/thunderbird/modules/PresentationDeviceInfoManager.jsm
lib/thunderbird/modules/PrivateBrowsingUtils.jsm
${PLIST.sps}lib/thunderbird/modules/Profiler.jsm
lib/thunderbird/modules/Promise-backend.js
lib/thunderbird/modules/Promise.jsm
+lib/thunderbird/modules/PromiseUtils.jsm
+lib/thunderbird/modules/PromiseWorker.jsm
lib/thunderbird/modules/PropertyListUtils.jsm
lib/thunderbird/modules/PushService.jsm
+lib/thunderbird/modules/ReaderMode.jsm
lib/thunderbird/modules/RemoteAddonsChild.jsm
lib/thunderbird/modules/RemoteAddonsParent.jsm
lib/thunderbird/modules/RemoteController.jsm
@@ -2110,19 +2182,28 @@ lib/thunderbird/modules/RemoteFinder.jsm
lib/thunderbird/modules/RemoteSecurityUI.jsm
lib/thunderbird/modules/RemoteWebNavigation.jsm
lib/thunderbird/modules/RemoteWebProgress.jsm
+lib/thunderbird/modules/RequestAutocompleteUI.jsm
+lib/thunderbird/modules/RequestSyncApp.jsm
+lib/thunderbird/modules/RequestSyncService.jsm
+lib/thunderbird/modules/RequestSyncTask.jsm
lib/thunderbird/modules/ResetProfile.jsm
+lib/thunderbird/modules/ResourceStatsDB.jsm
+lib/thunderbird/modules/ResourceStatsService.jsm
+lib/thunderbird/modules/RokuApp.jsm
lib/thunderbird/modules/SafeBrowsing.jsm
lib/thunderbird/modules/ScriptPreloader.jsm
lib/thunderbird/modules/ScrollPosition.jsm
lib/thunderbird/modules/SearchIntegration.js
+lib/thunderbird/modules/SearchStaticData.jsm
+lib/thunderbird/modules/SearchSuggestionController.jsm
lib/thunderbird/modules/SelectContentHelper.jsm
lib/thunderbird/modules/SelectParentHelper.jsm
lib/thunderbird/modules/Services.jsm
-lib/thunderbird/modules/SettingsChangeNotifier.jsm
lib/thunderbird/modules/SettingsDB.jsm
-lib/thunderbird/modules/SettingsQueue.jsm
+lib/thunderbird/modules/SettingsRequestManager.jsm
lib/thunderbird/modules/SharedPromptUtils.jsm
lib/thunderbird/modules/ShortcutUtils.jsm
+lib/thunderbird/modules/SimpleServiceDiscovery.jsm
lib/thunderbird/modules/Sntp.jsm
lib/thunderbird/modules/SocialService.jsm
lib/thunderbird/modules/SpatialNavigation.jsm
@@ -2134,15 +2215,19 @@ lib/thunderbird/modules/Task.jsm
lib/thunderbird/modules/TelemetryFile.jsm
lib/thunderbird/modules/TelemetryLog.jsm
lib/thunderbird/modules/TelemetryPing.jsm
+lib/thunderbird/modules/TelemetrySession.jsm
lib/thunderbird/modules/TelemetryStopwatch.jsm
lib/thunderbird/modules/TelemetryTimestamps.jsm
lib/thunderbird/modules/ThirdPartyCookieProbe.jsm
lib/thunderbird/modules/Timer.jsm
lib/thunderbird/modules/Troubleshoot.jsm
+lib/thunderbird/modules/TrustedHostedAppsUtils.jsm
lib/thunderbird/modules/UITelemetry.jsm
lib/thunderbird/modules/UpdateChannel.jsm
lib/thunderbird/modules/UserAgentOverrides.jsm
lib/thunderbird/modules/UserAgentUpdates.jsm
+lib/thunderbird/modules/UserCustomizations.jsm
+lib/thunderbird/modules/WebChannel.jsm
lib/thunderbird/modules/WebappOSUtils.jsm
lib/thunderbird/modules/Webapps.jsm
lib/thunderbird/modules/WindowDraggingUtils.jsm
@@ -2177,6 +2262,7 @@ lib/thunderbird/modules/addons/AddonRepository.jsm
lib/thunderbird/modules/addons/AddonRepository_SQLiteMigrator.jsm
lib/thunderbird/modules/addons/AddonUpdateChecker.jsm
lib/thunderbird/modules/addons/Content.js
+lib/thunderbird/modules/addons/GMPProvider.jsm
lib/thunderbird/modules/addons/LightweightThemeImageOptimizer.jsm
lib/thunderbird/modules/addons/PluginProvider.jsm
lib/thunderbird/modules/addons/SpellCheckDictionaryBootstrap.js
@@ -2187,12 +2273,16 @@ lib/thunderbird/modules/attachmentChecker.js
lib/thunderbird/modules/chatHandler.jsm
lib/thunderbird/modules/chatNotifications.jsm
lib/thunderbird/modules/cloudFileAccounts.js
-lib/thunderbird/modules/commonjs/diffpatcher/History.md
-lib/thunderbird/modules/commonjs/diffpatcher/License.md
-lib/thunderbird/modules/commonjs/diffpatcher/Readme.md
+lib/thunderbird/modules/commonjs/dev/debuggee.js
+lib/thunderbird/modules/commonjs/dev/frame-script.js
+lib/thunderbird/modules/commonjs/dev/panel.js
+lib/thunderbird/modules/commonjs/dev/panel/view.js
+lib/thunderbird/modules/commonjs/dev/ports.js
+lib/thunderbird/modules/commonjs/dev/toolbox.js
+lib/thunderbird/modules/commonjs/dev/utils.js
+lib/thunderbird/modules/commonjs/dev/volcan.js
lib/thunderbird/modules/commonjs/diffpatcher/diff.js
lib/thunderbird/modules/commonjs/diffpatcher/index.js
-lib/thunderbird/modules/commonjs/diffpatcher/package.json
lib/thunderbird/modules/commonjs/diffpatcher/patch.js
lib/thunderbird/modules/commonjs/diffpatcher/rebase.js
lib/thunderbird/modules/commonjs/diffpatcher/test/common.js
@@ -2200,18 +2290,23 @@ lib/thunderbird/modules/commonjs/diffpatcher/test/diff.js
lib/thunderbird/modules/commonjs/diffpatcher/test/index.js
lib/thunderbird/modules/commonjs/diffpatcher/test/patch.js
lib/thunderbird/modules/commonjs/diffpatcher/test/tap.js
-lib/thunderbird/modules/commonjs/method/History.md
-lib/thunderbird/modules/commonjs/method/License.md
-lib/thunderbird/modules/commonjs/method/Readme.md
+lib/thunderbird/modules/commonjs/framescript/FrameScriptManager.jsm
+lib/thunderbird/modules/commonjs/framescript/LoaderHelper.jsm
+lib/thunderbird/modules/commonjs/framescript/context-menu.js
+lib/thunderbird/modules/commonjs/framescript/contextmenu-events.js
+lib/thunderbird/modules/commonjs/framescript/manager.js
+lib/thunderbird/modules/commonjs/framescript/tab-events.js
+lib/thunderbird/modules/commonjs/framescript/util.js
+lib/thunderbird/modules/commonjs/index.js
lib/thunderbird/modules/commonjs/method/core.js
-lib/thunderbird/modules/commonjs/method/package.json
lib/thunderbird/modules/commonjs/method/test/browser.js
lib/thunderbird/modules/commonjs/method/test/common.js
lib/thunderbird/modules/commonjs/node/os.js
-lib/thunderbird/modules/commonjs/sdk/addon-page.js
+lib/thunderbird/modules/commonjs/sdk/addon/bootstrap.js
lib/thunderbird/modules/commonjs/sdk/addon/events.js
lib/thunderbird/modules/commonjs/sdk/addon/host.js
lib/thunderbird/modules/commonjs/sdk/addon/installer.js
+lib/thunderbird/modules/commonjs/sdk/addon/manager.js
lib/thunderbird/modules/commonjs/sdk/addon/runner.js
lib/thunderbird/modules/commonjs/sdk/addon/window.js
lib/thunderbird/modules/commonjs/sdk/base64.js
@@ -2221,14 +2316,20 @@ lib/thunderbird/modules/commonjs/sdk/console/plain-text.js
lib/thunderbird/modules/commonjs/sdk/console/traceback.js
lib/thunderbird/modules/commonjs/sdk/content/content-worker.js
lib/thunderbird/modules/commonjs/sdk/content/content.js
+lib/thunderbird/modules/commonjs/sdk/content/context-menu.js
lib/thunderbird/modules/commonjs/sdk/content/events.js
lib/thunderbird/modules/commonjs/sdk/content/loader.js
lib/thunderbird/modules/commonjs/sdk/content/mod.js
lib/thunderbird/modules/commonjs/sdk/content/sandbox.js
lib/thunderbird/modules/commonjs/sdk/content/thumbnail.js
lib/thunderbird/modules/commonjs/sdk/content/utils.js
+lib/thunderbird/modules/commonjs/sdk/content/worker-child.js
lib/thunderbird/modules/commonjs/sdk/content/worker.js
lib/thunderbird/modules/commonjs/sdk/context-menu.js
+lib/thunderbird/modules/commonjs/sdk/context-menu/context.js
+lib/thunderbird/modules/commonjs/sdk/context-menu/core.js
+lib/thunderbird/modules/commonjs/sdk/context-menu/readers.js
+lib/thunderbird/modules/commonjs/sdk/context-menu@2.js
lib/thunderbird/modules/commonjs/sdk/core/disposable.js
lib/thunderbird/modules/commonjs/sdk/core/heritage.js
lib/thunderbird/modules/commonjs/sdk/core/namespace.js
@@ -2244,6 +2345,7 @@ lib/thunderbird/modules/commonjs/sdk/deprecated/light-traits.js
lib/thunderbird/modules/commonjs/sdk/deprecated/list.js
lib/thunderbird/modules/commonjs/sdk/deprecated/memory.js
lib/thunderbird/modules/commonjs/sdk/deprecated/symbiont.js
+lib/thunderbird/modules/commonjs/sdk/deprecated/sync-worker.js
lib/thunderbird/modules/commonjs/sdk/deprecated/traits-worker.js
lib/thunderbird/modules/commonjs/sdk/deprecated/traits.js
lib/thunderbird/modules/commonjs/sdk/deprecated/traits/core.js
@@ -2287,10 +2389,14 @@ lib/thunderbird/modules/commonjs/sdk/l10n/plural-rules.js
lib/thunderbird/modules/commonjs/sdk/l10n/prefs.js
lib/thunderbird/modules/commonjs/sdk/l10n/properties/core.js
lib/thunderbird/modules/commonjs/sdk/lang/functional.js
+lib/thunderbird/modules/commonjs/sdk/lang/functional/concurrent.js
+lib/thunderbird/modules/commonjs/sdk/lang/functional/core.js
+lib/thunderbird/modules/commonjs/sdk/lang/functional/helpers.js
lib/thunderbird/modules/commonjs/sdk/lang/type.js
lib/thunderbird/modules/commonjs/sdk/lang/weak-set.js
lib/thunderbird/modules/commonjs/sdk/loader/cuddlefish.js
lib/thunderbird/modules/commonjs/sdk/loader/sandbox.js
+lib/thunderbird/modules/commonjs/sdk/messaging.js
lib/thunderbird/modules/commonjs/sdk/model/core.js
lib/thunderbird/modules/commonjs/sdk/net/url.js
lib/thunderbird/modules/commonjs/sdk/net/xhr.js
@@ -2302,7 +2408,6 @@ lib/thunderbird/modules/commonjs/sdk/page-worker.js
lib/thunderbird/modules/commonjs/sdk/panel.js
lib/thunderbird/modules/commonjs/sdk/panel/events.js
lib/thunderbird/modules/commonjs/sdk/panel/utils.js
-lib/thunderbird/modules/commonjs/sdk/panel/window.js
lib/thunderbird/modules/commonjs/sdk/passwords.js
lib/thunderbird/modules/commonjs/sdk/passwords/utils.js
lib/thunderbird/modules/commonjs/sdk/places/bookmarks.js
@@ -2316,10 +2421,11 @@ lib/thunderbird/modules/commonjs/sdk/places/host/host-tags.js
lib/thunderbird/modules/commonjs/sdk/places/utils.js
lib/thunderbird/modules/commonjs/sdk/platform/xpcom.js
lib/thunderbird/modules/commonjs/sdk/preferences/event-target.js
+lib/thunderbird/modules/commonjs/sdk/preferences/native-options.js
lib/thunderbird/modules/commonjs/sdk/preferences/service.js
+lib/thunderbird/modules/commonjs/sdk/preferences/utils.js
lib/thunderbird/modules/commonjs/sdk/private-browsing.js
lib/thunderbird/modules/commonjs/sdk/private-browsing/utils.js
-lib/thunderbird/modules/commonjs/sdk/private-browsing/window/utils.js
lib/thunderbird/modules/commonjs/sdk/querystring.js
lib/thunderbird/modules/commonjs/sdk/request.js
lib/thunderbird/modules/commonjs/sdk/selection.js
@@ -2330,8 +2436,6 @@ lib/thunderbird/modules/commonjs/sdk/stylesheet/style.js
lib/thunderbird/modules/commonjs/sdk/stylesheet/utils.js
lib/thunderbird/modules/commonjs/sdk/system.js
lib/thunderbird/modules/commonjs/sdk/system/child_process.js
-lib/thunderbird/modules/commonjs/sdk/system/child_process/LICENSE
-lib/thunderbird/modules/commonjs/sdk/system/child_process/README.md
lib/thunderbird/modules/commonjs/sdk/system/child_process/subprocess.js
lib/thunderbird/modules/commonjs/sdk/system/child_process/subprocess_worker_unix.js
lib/thunderbird/modules/commonjs/sdk/system/child_process/subprocess_worker_win.js
@@ -2342,6 +2446,7 @@ lib/thunderbird/modules/commonjs/sdk/system/process.js
lib/thunderbird/modules/commonjs/sdk/system/runtime.js
lib/thunderbird/modules/commonjs/sdk/system/unload.js
lib/thunderbird/modules/commonjs/sdk/system/xul-app.js
+lib/thunderbird/modules/commonjs/sdk/system/xul-app.jsm
lib/thunderbird/modules/commonjs/sdk/tab/events.js
lib/thunderbird/modules/commonjs/sdk/tabs.js
lib/thunderbird/modules/commonjs/sdk/tabs/common.js
@@ -2361,6 +2466,7 @@ lib/thunderbird/modules/commonjs/sdk/test/harness.js
lib/thunderbird/modules/commonjs/sdk/test/httpd.js
lib/thunderbird/modules/commonjs/sdk/test/loader.js
lib/thunderbird/modules/commonjs/sdk/test/memory.js
+lib/thunderbird/modules/commonjs/sdk/test/options.js
lib/thunderbird/modules/commonjs/sdk/test/runner.js
lib/thunderbird/modules/commonjs/sdk/test/tmp-file.js
lib/thunderbird/modules/commonjs/sdk/test/utils.js
@@ -2371,6 +2477,7 @@ lib/thunderbird/modules/commonjs/sdk/ui/button/contract.js
lib/thunderbird/modules/commonjs/sdk/ui/button/toggle.js
lib/thunderbird/modules/commonjs/sdk/ui/button/view.js
lib/thunderbird/modules/commonjs/sdk/ui/button/view/events.js
+lib/thunderbird/modules/commonjs/sdk/ui/component.js
lib/thunderbird/modules/commonjs/sdk/ui/frame.js
lib/thunderbird/modules/commonjs/sdk/ui/frame/model.js
lib/thunderbird/modules/commonjs/sdk/ui/frame/view.html
@@ -2387,18 +2494,18 @@ lib/thunderbird/modules/commonjs/sdk/ui/state/events.js
lib/thunderbird/modules/commonjs/sdk/ui/toolbar.js
lib/thunderbird/modules/commonjs/sdk/ui/toolbar/model.js
lib/thunderbird/modules/commonjs/sdk/ui/toolbar/view.js
+lib/thunderbird/modules/commonjs/sdk/uri/resource.js
lib/thunderbird/modules/commonjs/sdk/url.js
lib/thunderbird/modules/commonjs/sdk/url/utils.js
lib/thunderbird/modules/commonjs/sdk/util/array.js
+lib/thunderbird/modules/commonjs/sdk/util/bond.js
lib/thunderbird/modules/commonjs/sdk/util/collection.js
lib/thunderbird/modules/commonjs/sdk/util/contract.js
lib/thunderbird/modules/commonjs/sdk/util/deprecate.js
lib/thunderbird/modules/commonjs/sdk/util/dispatcher.js
-lib/thunderbird/modules/commonjs/sdk/util/iteration.js
lib/thunderbird/modules/commonjs/sdk/util/list.js
lib/thunderbird/modules/commonjs/sdk/util/match-pattern.js
lib/thunderbird/modules/commonjs/sdk/util/object.js
-lib/thunderbird/modules/commonjs/sdk/util/registry.js
lib/thunderbird/modules/commonjs/sdk/util/rules.js
lib/thunderbird/modules/commonjs/sdk/util/sequence.js
lib/thunderbird/modules/commonjs/sdk/util/uuid.js
@@ -2413,18 +2520,18 @@ lib/thunderbird/modules/commonjs/sdk/windows.js
lib/thunderbird/modules/commonjs/sdk/windows/dom.js
lib/thunderbird/modules/commonjs/sdk/windows/fennec.js
lib/thunderbird/modules/commonjs/sdk/windows/firefox.js
-lib/thunderbird/modules/commonjs/sdk/windows/loader.js
lib/thunderbird/modules/commonjs/sdk/windows/observer.js
lib/thunderbird/modules/commonjs/sdk/windows/tabs-fennec.js
lib/thunderbird/modules/commonjs/sdk/windows/tabs-firefox.js
lib/thunderbird/modules/commonjs/sdk/worker/utils.js
+lib/thunderbird/modules/commonjs/sdk/zip/utils.js
lib/thunderbird/modules/commonjs/test.js
lib/thunderbird/modules/commonjs/toolkit/loader.js
+lib/thunderbird/modules/commonjs/toolkit/require.js
lib/thunderbird/modules/ctypes.jsm
lib/thunderbird/modules/dbViewWrapper.js
lib/thunderbird/modules/debug.js
lib/thunderbird/modules/devtools/Console.jsm
-lib/thunderbird/modules/devtools/DevToolsExtensions.jsm
lib/thunderbird/modules/devtools/DevToolsUtils.js
lib/thunderbird/modules/devtools/DevToolsUtils.jsm
lib/thunderbird/modules/devtools/Devices.jsm
@@ -2441,11 +2548,14 @@ lib/thunderbird/modules/devtools/app-actor-front.js
lib/thunderbird/modules/devtools/async-utils.js
lib/thunderbird/modules/devtools/client/connection-manager.js
lib/thunderbird/modules/devtools/content-observer.js
+lib/thunderbird/modules/devtools/content-server.jsm
lib/thunderbird/modules/devtools/css-color.js
lib/thunderbird/modules/devtools/dbg-client.jsm
lib/thunderbird/modules/devtools/dbg-server.jsm
lib/thunderbird/modules/devtools/deprecated-sync-thenables.js
+lib/thunderbird/modules/devtools/discovery/discovery.js
lib/thunderbird/modules/devtools/event-emitter.js
+lib/thunderbird/modules/devtools/event-parsers.js
lib/thunderbird/modules/devtools/gcli.jsm
lib/thunderbird/modules/devtools/gcli/api.js
lib/thunderbird/modules/devtools/gcli/cli.js
@@ -2458,9 +2568,13 @@ lib/thunderbird/modules/devtools/gcli/commands/commands.js
lib/thunderbird/modules/devtools/gcli/commands/connect.js
lib/thunderbird/modules/devtools/gcli/commands/context.js
lib/thunderbird/modules/devtools/gcli/commands/cookie.js
+lib/thunderbird/modules/devtools/gcli/commands/csscoverage.js
lib/thunderbird/modules/devtools/gcli/commands/exec.js
+lib/thunderbird/modules/devtools/gcli/commands/folder.js
lib/thunderbird/modules/devtools/gcli/commands/global.js
lib/thunderbird/modules/devtools/gcli/commands/help.js
+lib/thunderbird/modules/devtools/gcli/commands/highlight.js
+lib/thunderbird/modules/devtools/gcli/commands/inject.js
lib/thunderbird/modules/devtools/gcli/commands/intro.js
lib/thunderbird/modules/devtools/gcli/commands/jsb.js
lib/thunderbird/modules/devtools/gcli/commands/lang.js
@@ -2488,6 +2602,7 @@ lib/thunderbird/modules/devtools/gcli/fields/delegate.js
lib/thunderbird/modules/devtools/gcli/fields/fields.js
lib/thunderbird/modules/devtools/gcli/fields/selection.js
lib/thunderbird/modules/devtools/gcli/index.js
+lib/thunderbird/modules/devtools/gcli/l10n.js
lib/thunderbird/modules/devtools/gcli/languages/command.html
lib/thunderbird/modules/devtools/gcli/languages/command.js
lib/thunderbird/modules/devtools/gcli/languages/javascript.js
@@ -2512,6 +2627,8 @@ lib/thunderbird/modules/devtools/gcli/types/selection.js
lib/thunderbird/modules/devtools/gcli/types/setting.js
lib/thunderbird/modules/devtools/gcli/types/string.js
lib/thunderbird/modules/devtools/gcli/types/types.js
+lib/thunderbird/modules/devtools/gcli/types/union.js
+lib/thunderbird/modules/devtools/gcli/types/url.js
lib/thunderbird/modules/devtools/gcli/ui/focus.js
lib/thunderbird/modules/devtools/gcli/ui/history.js
lib/thunderbird/modules/devtools/gcli/ui/intro.js
@@ -2529,48 +2646,96 @@ lib/thunderbird/modules/devtools/gcli/util/prism.js
lib/thunderbird/modules/devtools/gcli/util/promise.js
lib/thunderbird/modules/devtools/gcli/util/spell.js
lib/thunderbird/modules/devtools/gcli/util/util.js
+lib/thunderbird/modules/devtools/jsbeautify/beautify-css.js
+lib/thunderbird/modules/devtools/jsbeautify/beautify-html.js
+lib/thunderbird/modules/devtools/jsbeautify/beautify-js.js
+lib/thunderbird/modules/devtools/jsbeautify/beautify-tests.js
+lib/thunderbird/modules/devtools/jsbeautify/beautify.js
+lib/thunderbird/modules/devtools/jsbeautify/sanitytest.js
+lib/thunderbird/modules/devtools/jsbeautify/urlencode_unpacker.js
lib/thunderbird/modules/devtools/output-parser.js
+lib/thunderbird/modules/devtools/path.js
lib/thunderbird/modules/devtools/pretty-fast.js
+lib/thunderbird/modules/devtools/qrcode/decoder/index.js
+lib/thunderbird/modules/devtools/qrcode/encoder/index.js
+lib/thunderbird/modules/devtools/qrcode/index.js
+lib/thunderbird/modules/devtools/security/auth.js
+lib/thunderbird/modules/devtools/security/cert.js
+lib/thunderbird/modules/devtools/security/prompt.js
+lib/thunderbird/modules/devtools/security/socket.js
+lib/thunderbird/modules/devtools/server/actors/actor-registry.js
+lib/thunderbird/modules/devtools/server/actors/animation.js
lib/thunderbird/modules/devtools/server/actors/call-watcher.js
lib/thunderbird/modules/devtools/server/actors/canvas.js
+lib/thunderbird/modules/devtools/server/actors/child-process.js
lib/thunderbird/modules/devtools/server/actors/childtab.js
lib/thunderbird/modules/devtools/server/actors/common.js
+lib/thunderbird/modules/devtools/server/actors/csscoverage.js
lib/thunderbird/modules/devtools/server/actors/device.js
+lib/thunderbird/modules/devtools/server/actors/director-manager.js
+lib/thunderbird/modules/devtools/server/actors/director-registry.js
lib/thunderbird/modules/devtools/server/actors/eventlooplag.js
+lib/thunderbird/modules/devtools/server/actors/framerate.js
lib/thunderbird/modules/devtools/server/actors/gcli.js
+lib/thunderbird/modules/devtools/server/actors/highlighter.css
lib/thunderbird/modules/devtools/server/actors/highlighter.js
lib/thunderbird/modules/devtools/server/actors/inspector.js
+lib/thunderbird/modules/devtools/server/actors/layout.js
lib/thunderbird/modules/devtools/server/actors/memory.js
+lib/thunderbird/modules/devtools/server/actors/monitor.js
lib/thunderbird/modules/devtools/server/actors/preference.js
lib/thunderbird/modules/devtools/server/actors/pretty-print-worker.js
lib/thunderbird/modules/devtools/server/actors/profiler.js
lib/thunderbird/modules/devtools/server/actors/root.js
lib/thunderbird/modules/devtools/server/actors/script.js
+lib/thunderbird/modules/devtools/server/actors/settings.js
lib/thunderbird/modules/devtools/server/actors/storage.js
lib/thunderbird/modules/devtools/server/actors/string.js
lib/thunderbird/modules/devtools/server/actors/styleeditor.js
lib/thunderbird/modules/devtools/server/actors/styles.js
lib/thunderbird/modules/devtools/server/actors/stylesheets.js
+lib/thunderbird/modules/devtools/server/actors/timeline.js
lib/thunderbird/modules/devtools/server/actors/tracer.js
+lib/thunderbird/modules/devtools/server/actors/utils/ScriptStore.js
+lib/thunderbird/modules/devtools/server/actors/utils/actor-registry-utils.js
+lib/thunderbird/modules/devtools/server/actors/utils/automation-timeline.js
+lib/thunderbird/modules/devtools/server/actors/utils/make-debugger.js
+lib/thunderbird/modules/devtools/server/actors/utils/map-uri-to-addon-id.js
+lib/thunderbird/modules/devtools/server/actors/utils/stack.js
lib/thunderbird/modules/devtools/server/actors/webapps.js
lib/thunderbird/modules/devtools/server/actors/webaudio.js
lib/thunderbird/modules/devtools/server/actors/webbrowser.js
lib/thunderbird/modules/devtools/server/actors/webconsole.js
lib/thunderbird/modules/devtools/server/actors/webgl.js
lib/thunderbird/modules/devtools/server/child.js
+lib/thunderbird/modules/devtools/server/content-globals.js
lib/thunderbird/modules/devtools/server/main.js
lib/thunderbird/modules/devtools/server/protocol.js
-lib/thunderbird/modules/devtools/server/transport.js
+lib/thunderbird/modules/devtools/shared/async-storage.js
lib/thunderbird/modules/devtools/source-map.js
lib/thunderbird/modules/devtools/styleinspector/css-logic.js
+lib/thunderbird/modules/devtools/tern/browser.js
+lib/thunderbird/modules/devtools/tern/comment.js
+lib/thunderbird/modules/devtools/tern/condense.js
+lib/thunderbird/modules/devtools/tern/def.js
+lib/thunderbird/modules/devtools/tern/ecma5.js
+lib/thunderbird/modules/devtools/tern/infer.js
+lib/thunderbird/modules/devtools/tern/signal.js
+lib/thunderbird/modules/devtools/tern/tern.js
lib/thunderbird/modules/devtools/toolkit/webconsole/client.js
lib/thunderbird/modules/devtools/toolkit/webconsole/network-helper.js
lib/thunderbird/modules/devtools/toolkit/webconsole/network-monitor.js
lib/thunderbird/modules/devtools/toolkit/webconsole/utils.js
lib/thunderbird/modules/devtools/touch-events.js
+lib/thunderbird/modules/devtools/transport/packets.js
+lib/thunderbird/modules/devtools/transport/stream-utils.js
+lib/thunderbird/modules/devtools/transport/transport.js
+lib/thunderbird/modules/devtools/worker-loader.js
+lib/thunderbird/modules/displayNameUtils.js
lib/thunderbird/modules/distribution.js
lib/thunderbird/modules/editorUtilities.jsm
lib/thunderbird/modules/errUtils.js
+lib/thunderbird/modules/extraMimeParsers.jsm
lib/thunderbird/modules/folderUtils.jsm
lib/thunderbird/modules/gloda/collection.js
lib/thunderbird/modules/gloda/connotent.js
@@ -2597,7 +2762,6 @@ lib/thunderbird/modules/gloda/public.js
lib/thunderbird/modules/gloda/query.js
lib/thunderbird/modules/gloda/suffixtree.js
lib/thunderbird/modules/gloda/utils.js
-lib/thunderbird/modules/glodaWebSearch.js
lib/thunderbird/modules/hiddenWindow.jsm
lib/thunderbird/modules/hostnameUtils.jsm
lib/thunderbird/modules/identity/FirefoxAccounts.jsm
@@ -2643,14 +2807,14 @@ lib/thunderbird/modules/mailServices.js
lib/thunderbird/modules/mailViewManager.js
lib/thunderbird/modules/mailnewsMigrator.js
lib/thunderbird/modules/mcc_iso3166_table.jsm
-lib/thunderbird/modules/media/IdpProxy.jsm
+lib/thunderbird/modules/media/IdpSandbox.jsm
lib/thunderbird/modules/media/PeerConnectionIdp.jsm
+lib/thunderbird/modules/media/RTCStatsReport.jsm
lib/thunderbird/modules/mimeParser.jsm
lib/thunderbird/modules/msgDBCacheManager.js
lib/thunderbird/modules/nsFormAutoCompleteResult.jsm
lib/thunderbird/modules/oauth.jsm
lib/thunderbird/modules/osfile.jsm
-lib/thunderbird/modules/osfile/_PromiseWorker.jsm
lib/thunderbird/modules/osfile/osfile_async_front.jsm
lib/thunderbird/modules/osfile/osfile_async_worker.js
lib/thunderbird/modules/osfile/osfile_native.jsm
@@ -2666,13 +2830,20 @@ lib/thunderbird/modules/osfile/ospath.jsm
lib/thunderbird/modules/osfile/ospath_unix.jsm
lib/thunderbird/modules/osfile/ospath_win.jsm
lib/thunderbird/modules/quickFilterManager.js
+lib/thunderbird/modules/reader/JSDOMParser.js
+lib/thunderbird/modules/reader/Readability.js
+lib/thunderbird/modules/reader/ReaderWorker.js
+lib/thunderbird/modules/reader/ReaderWorker.jsm
lib/thunderbird/modules/reflect.jsm
+lib/thunderbird/modules/sdk/bootstrap.js
+lib/thunderbird/modules/sdk/system/Startup.js
lib/thunderbird/modules/searchSpec.js
lib/thunderbird/modules/search_im.js
lib/thunderbird/modules/services-common/async.js
lib/thunderbird/modules/services-common/bagheeraclient.js
lib/thunderbird/modules/services-common/hawkclient.js
lib/thunderbird/modules/services-common/hawkrequest.js
+lib/thunderbird/modules/services-common/logmanager.js
lib/thunderbird/modules/services-common/observers.js
lib/thunderbird/modules/services-common/rest.js
lib/thunderbird/modules/services-common/storageservice.js
@@ -2691,6 +2862,7 @@ lib/thunderbird/modules/twitter-text.jsm
lib/thunderbird/modules/virtualFolderWrapper.js
lib/thunderbird/modules/vtt.jsm
lib/thunderbird/modules/windowsJumpLists.js
+lib/thunderbird/modules/workers/PromiseWorker.js
lib/thunderbird/modules/workers/lz4.js
lib/thunderbird/modules/workers/lz4_internal.js
lib/thunderbird/modules/workers/require.js
@@ -2699,7 +2871,6 @@ lib/thunderbird/modules/xmpp-session.jsm
lib/thunderbird/modules/xmpp-xml.jsm
lib/thunderbird/modules/xmpp.jsm
lib/thunderbird/modules/yahoo-session.jsm
-lib/thunderbird/mozilla-xremote-client
lib/thunderbird/platform.ini
lib/thunderbird/plugin-container
lib/thunderbird/removed-files
@@ -2715,8 +2886,7 @@ lib/thunderbird/res/entityTables/mathml20.properties
lib/thunderbird/res/entityTables/transliterate.properties
lib/thunderbird/res/fonts/mathfont.properties
lib/thunderbird/res/fonts/mathfontMathJax_Main.properties
-lib/thunderbird/res/fonts/mathfontSTIXNonUnicode.properties
-lib/thunderbird/res/fonts/mathfontSTIXSizeOneSym.properties
+lib/thunderbird/res/fonts/mathfontSTIXGeneral.properties
lib/thunderbird/res/fonts/mathfontStandardSymbolsL.properties
lib/thunderbird/res/fonts/mathfontUnicode.properties
lib/thunderbird/res/grabber.gif
diff --git a/mail/thunderbird/PLIST.lightning b/mail/thunderbird/PLIST.lightning
index 909781d3412..2f4fbd06730 100644
--- a/mail/thunderbird/PLIST.lightning
+++ b/mail/thunderbird/PLIST.lightning
@@ -1,27 +1,489 @@
-@comment $NetBSD: PLIST.lightning,v 1.21 2014/07/27 20:04:59 ryoon Exp $
+@comment $NetBSD: PLIST.lightning,v 1.22 2015/07/09 15:17:34 ryoon Exp $
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/application.ini
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-alarms.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-event-dialog-attendees.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-event-dialog.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-event-dialog.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-extract.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-invitations-dialog.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-occurrence-prompt.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-occurrence-prompt.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-subscriptions-dialog.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendarCreation.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendarCreation.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/categories.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/dateFormat.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/dialogs/calendar-event-dialog-reminder.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/global.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/menuOverlay.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/migration.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/migration.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/alarms.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/categories.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/general.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/preferences.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/views.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/provider-uninstall.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/timezones.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/wcap.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/WindowsNTToZoneInfoTZId.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/agenda-listbox.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/agenda-listbox.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calApplicationUtils.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calFilter.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calUtils.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-alarm-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-alarm-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-base-view.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-bindings.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-calendars-list.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-chrome-startup.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-clipboard.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-common-sets.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-common-sets.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-conflicts-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-creation.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-daypicker.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-dialog-utils.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-dnd-listener.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-error-prompt.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-attendees.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-attendees.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-attendees.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-freebusy.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-recurrence-preview.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-recurrence.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-recurrence.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-reminder.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-reminder.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-timezone.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog-timezone.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-event-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-extract.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-invitations-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-invitations-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-invitations-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-invitations-list.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-invitations-manager.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-item-bindings.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-item-editing.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-management.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-menus.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-migration-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-migration-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-month-view.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-multiday-view.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-occurrence-prompt.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-print-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-print-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-properties-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-properties-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-providerUninstall-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-providerUninstall-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-statusbar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-subscriptions-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-subscriptions-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-subscriptions-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-subscriptions-list.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-summary-dialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-summary-dialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-task-editing.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-task-tree.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-task-tree.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-task-view.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-task-view.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-ui-utils.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-unifinder-todo.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-unifinder-todo.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-unifinder.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-unifinder.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-view-bindings.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-view-core.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-views.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-views.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendar-views.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendarCreation.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/calendarCreation.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/chooseCalendarDialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/datetimepickers/datetimepickers.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/datetimepickers/datetimepickers.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/import-export.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/mouseoverPreviews.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/alarms.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/alarms.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/categories.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/categories.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/editCategory.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/editCategory.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/general.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/general.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/views.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/views.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/publish.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/publishDialog.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/publishDialog.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/sound.wav
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/today-pane.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/today-pane.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/widgets/calendar-alarm-widget.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/widgets/calendar-list-tree.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/widgets/calendar-widget-bindings.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/widgets/calendar-widgets.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/widgets/minimonth.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/default/calendar-alarm-dialog.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/default/calendar-event-dialog.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/default/calendar-event-summary-dialog.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/default/calendar-task-dialog.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/default/calendar-task-summary-dialog.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning-en-US/locale/en-US/lightning/lightning-toolbar.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning-en-US/locale/en-US/lightning/lightning.dtd
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning-en-US/locale/en-US/lightning/lightning.properties
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/imip-bar-overlay.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/imip-bar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-calendar-creation.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-calendar-creation.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-calendar-properties.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-calendar-properties.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-invitation.xhtml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-menus.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-migration.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-standalone.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-toolbar.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-utils.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-widgets.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-widgets.xml
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/messenger-overlay-accountCentral.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/messenger-overlay-messageWindow.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/messenger-overlay-preferences.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/messenger-overlay-preferences.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/messenger-overlay-sidebar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/messenger-overlay-sidebar.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/suite-overlay-addons.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/suite-overlay-preferences.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/suite-overlay-sidebar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/suite-overlay-sidebar.xul
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/alarm-flashing.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/alarm-icons.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/attendee-icons.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-daypicker.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-event-dialog.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-management.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-overlay.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-status.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-task-tree.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-task-view.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-unifinder.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/calendar-views.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/classification.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/day-box-item-image.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/dialogs/calendar-alarm-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/dialogs/calendar-event-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/event-grippy-bottom.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/event-grippy-left.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/event-grippy-right.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/event-grippy-top.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/printing/calHtmlExport.html
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/printing/calMonthGridPrinter.html
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/printing/calWeekPrinter.html
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/task-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/timezone_map.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/timezones.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/today-pane.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/calendar-widgets.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/drag-center.svg
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/minimonth.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/nav-arrow.svg
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/nav-today-hov.svg
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/nav-today.svg
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/view-navigation-hov.svg
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/view-navigation.svg
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/lightning-common/imip.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/lightning-common/lightning-toolbar.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/lightning-common/lightning.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/lightning-common/mode-switch-icons.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/cal-icon24.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/cal-icon32.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-alarm-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-alarms.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-attendees.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-creation-wizard.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-daypicker.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-event-dialog-attendees.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-event-dialog-toolbar-small.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-event-dialog-toolbar.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-event-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-invitations-dialog-button-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-invitations-dialog-list-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-invitations-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-management.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-occurrence-prompt.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-occurrence-prompt.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-printing.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-properties-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-providerUninstall-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-subscriptions-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-task-tree.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-task-view.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-timezone-highlighter.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-unifinder.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/calendar-views.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/checkbox-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/datetimepickers/datetimepickers.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/ok-cancel.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/tasks-actions.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/today-pane.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/toolbar-large.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/toolbar-small.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/widgets/calendar-widgets.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/calendar/widgets/minimonth.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/lightning/accountCentral.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/lightning/imip.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/lightning/imip.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/lightning/lightning-toolbar.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/lightning/lightning-widgets.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/lightning/lightning.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/linux/lightning/suite-accountCentral.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/cal-icon24.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/cal-icon32.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-alarm-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-alarms.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-attendees.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-creation-wizard.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-daypicker.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-event-dialog-attendees.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-event-dialog-toolbar-small.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-event-dialog-toolbar.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-event-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-invitations-dialog-button-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-invitations-dialog-list-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-invitations-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-management.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-occurrence-prompt.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-occurrence-prompt.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-printing.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-properties-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-providerUninstall-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-subscriptions-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-task-tree.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-task-view.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-timezone-highlighter.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-unifinder.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/calendar-views.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/checkbox-images-graphite.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/checkbox-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/datetimepickers/datetimepickers.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/ok-cancel.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/sidebar-item.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/tasks-actions.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/today-pane.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/toolbar-large.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/toolbar-small.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/toolbar.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/widgets/calendar-widgets.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/calendar/widgets/minimonth.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/lightning/accountCentral.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/lightning/imip.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/lightning/imip.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/lightning/lightning-toolbar.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/lightning/lightning-widgets.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/lightning/lightning.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/osx/lightning/suite-accountCentral.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/cal-icon24.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/cal-icon32.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-alarm-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-alarms.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-attendees.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-creation-wizard.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-daypicker.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-attendees.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-toolbar-aero.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-toolbar-inverted.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-toolbar-small.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-toolbar.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-invitations-dialog-button-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-invitations-dialog-list-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-invitations-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-management.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-occurrence-prompt-aero.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-occurrence-prompt.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-occurrence-prompt.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-printing.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-properties-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-providerUninstall-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-subscriptions-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-task-tree.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-task-view.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-timezone-highlighter.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-unifinder.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-views.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/checkbox-images.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/datetimepickers/datetimepickers.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/ok-cancel.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/tasks-actions-aero.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/tasks-actions-inverted.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/tasks-actions.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/today-pane.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/toolbar-aero-inverted.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/toolbar-aero.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/toolbar-large-aero.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/toolbar-large.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/toolbar-small-aero.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/toolbar-small.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/widgets/calendar-widgets.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/widgets/minimonth.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/win-aero/calendar-event-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/win-aero/calendar.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/win-aero/lightning-toolbar.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/win-aero/lightning.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/win-classic/calendar-event-dialog.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/win-classic/calendar.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/win-classic/lightning-toolbar.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/win-classic/lightning.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/accountCentral.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/imip-aero.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/imip.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/imip.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/lightning-toolbar.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/lightning-widgets.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/lightning.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/mode-switch-icons-aero.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/mode-switch-icons-inverted.png
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/lightning/suite-accountCentral.css
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.so
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js
+lib/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome.manifest
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/.mkdir.done
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider-en-US/locale/en-US/gdata.dtd
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider-en-US/locale/en-US/gdata.properties
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/calendarCreation.xul
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/browserRequest.js
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/browserRequest.xul
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gcal.png
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-calendar-creation.js
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-calendar-creation.xul
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-calendar-event-dialog.js
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-calendar-event-dialog.xul
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-calendar-properties.js
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-calendar-properties.xul
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-event-dialog-reminder.js
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-event-dialog-reminder.xul
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-list-tree.xml
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-migration-overlay.xul
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-migration-wizard.xul
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/content/gdata-migration.js
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/skin/browserRequest.css
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/skin/gdata-bindings.css
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/skin/gdata-event-dialog-reminder.css
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/chrome/gdata-provider/skin/reminder-action-sms.png
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/components/.mkdir.done
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/components/calGoogleCalendarModule.js
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/components/calGoogleCalendarModule.manifest
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/components/gdata.xpt
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/components/interfaces.manifest
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/components/calGoogleCalendar.js
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/components/calGoogleCalendar.manifest
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/defaults/preferences/preferences.js
lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/install.rdf
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/js/calGoogleCalendar.js
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/js/calGoogleRequest.js
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/js/calGoogleSession.js
-lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/js/calGoogleUtils.js
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/OAuth2.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/gdataLogging.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/gdataRequest.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/gdataSession.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/gdataUtils.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/Calendar.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/Http.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/Loader.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/Preferences.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/Promise.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/PromiseExtras.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/PromiseUtils.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/Task.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/shim/Timer.jsm
+lib/thunderbird/extensions/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}/modules/timezoneMap.jsm
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/application.ini
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js
@@ -70,7 +532,35 @@ lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/ca
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US.jar
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/.mkdir.done
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-alarms.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-event-dialog-attendees.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-event-dialog.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-event-dialog.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-extract.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-invitations-dialog.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-occurrence-prompt.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-occurrence-prompt.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar-subscriptions-dialog.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendar.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendarCreation.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/calendarCreation.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/categories.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/dateFormat.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/dialogs/calendar-event-dialog-reminder.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/global.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/menuOverlay.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/migration.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/migration.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/alarms.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/categories.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/general.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/preferences.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/preferences/views.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/provider-uninstall.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/timezones.properties
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar-en-US/locale/en-US/calendar/wcap.properties
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/WindowsNTToZoneInfoTZId.properties
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/agenda-listbox.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/agenda-listbox.xml
@@ -164,8 +654,6 @@ lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calenda
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/editCategory.xul
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/general.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/general.xul
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/timezones.js
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/timezones.xul
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/views.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/preferences/views.xul
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/calendar/content/calendar/publish.js
@@ -184,7 +672,9 @@ lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/d
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/default/calendar-event-summary-dialog.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/default/calendar-task-dialog.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/icons/default/calendar-task-summary-dialog.png
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning-en-US.jar
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning-en-US/locale/en-US/lightning/lightning-toolbar.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning-en-US/locale/en-US/lightning/lightning.dtd
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning-en-US/locale/en-US/lightning/lightning.properties
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/imip-bar-overlay.xul
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/imip-bar.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/lightning/content/lightning/lightning-calendar-creation.js
@@ -238,6 +728,7 @@ lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/co
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/today-pane.css
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/calendar-widgets.css
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/drag-center.svg
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/minimonth.css
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/nav-arrow.svg
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/nav-today-hov.svg
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/common/widgets/nav-today.svg
@@ -343,6 +834,7 @@ lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/wi
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-daypicker.css
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-attendees.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-toolbar-aero.png
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-toolbar-inverted.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-toolbar-small.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog-toolbar.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/calendar-event-dialog.css
@@ -366,6 +858,7 @@ lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/wi
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/datetimepickers/datetimepickers.css
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/ok-cancel.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/tasks-actions-aero.png
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/tasks-actions-inverted.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/tasks-actions.png
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/today-pane.css
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome/skin/windows/calendar/toolbar-aero-inverted.png
@@ -426,19 +919,18 @@ lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/cal
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.manifest
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calbase.xpt
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calbaseinternal.xpt
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/caldatetime_icaljs.xpt
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/caldatetime_libical.xpt
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/caldav.xpt
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs.manifest
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.manifest
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.so
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical.manifest
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.manifest
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/wcap.xpt
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm
@@ -451,6 +943,7 @@ lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRec
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm
lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js
-lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones.sqlite
+lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json
diff --git a/mail/thunderbird/distinfo b/mail/thunderbird/distinfo
index 150c6970286..e4e4448ccdf 100644
--- a/mail/thunderbird/distinfo
+++ b/mail/thunderbird/distinfo
@@ -1,165 +1,182 @@
-$NetBSD: distinfo,v 1.160 2015/06/29 21:27:01 markd Exp $
+$NetBSD: distinfo,v 1.161 2015/07/09 15:17:34 ryoon Exp $
-SHA1 (enigmail-1.7.2.tar.gz) = e72eeff5a47491267981090129b0b2594b5dc96f
-RMD160 (enigmail-1.7.2.tar.gz) = 1dcd10e758321846eb20ac7f1d3ae6465c47bfe7
-Size (enigmail-1.7.2.tar.gz) = 1420346 bytes
-SHA1 (thunderbird-31.7.0.source.tar.bz2) = 90e18f8ecccdaf1ee39493223a7e3ad8b3b7bede
-RMD160 (thunderbird-31.7.0.source.tar.bz2) = eae13adba96477ddaa3fa7732d94accdc8dab57f
-Size (thunderbird-31.7.0.source.tar.bz2) = 171059989 bytes
-SHA1 (patch-aa) = 764c6e8955d371d0869a9b145211f0a9d8709708
-SHA1 (patch-ak) = b47277baa1137a7610445b7c4dd147b331d5c5e6
+SHA1 (thunderbird-38.0.1.source.tar.bz2) = 81226df796de098648d70d398aa1160531706cd5
+RMD160 (thunderbird-38.0.1.source.tar.bz2) = 09ecdd8d9e07043e1c78b39c639cf4aa35334f94
+Size (thunderbird-38.0.1.source.tar.bz2) = 203270639 bytes
+SHA1 (patch-aa) = 199400ee6dc3c727c950e33ccc65cf57b81cdcb7
SHA1 (patch-al) = 81a733e9b13a47abfef818ecd10d7ef18a191855
-SHA1 (patch-ao) = aa0f3e336c2d97622f735b79c2b5f9e84bb3674e
-SHA1 (patch-as) = 2786abec0a1d58232bdd62f2f1c30ec95077ce83
-SHA1 (patch-ax) = ba84bdb7fec3cb2f34efd8a8f68b0c3bf7dd7677
-SHA1 (patch-ay) = 64afd5e2cbb186ccaf16fb33711c93d245059578
+SHA1 (patch-ao) = 2b4cfb8f06cb137058be7aa47ab7a3cada7cbfe1
+SHA1 (patch-as) = d7690a695438ec4f8c95011e0a177768c5da705e
+SHA1 (patch-ax) = a5e573d902d235c4657ffecd7cd531d778532604
+SHA1 (patch-ay) = 82f0a523e3f281a6f84b0c8a63611fede70d8b35
SHA1 (patch-bf) = 6e6828e85243dba8cf2419de7275585fea3efe81
SHA1 (patch-bg) = 6c5e0239ed07902209bf4bfbec520699ff835b11
-SHA1 (patch-bi) = bc44d47f386901d261a7a5401520a3905cb29d5a
-SHA1 (patch-calendar_lightning_Makefile.in) = 2ef231c798265f57e26464d6805a40193ec7b534
+SHA1 (patch-calendar_lightning_Makefile.in) = 3f0e0be9d156c73f9d16dcb10774d9fce17cc200
SHA1 (patch-calendar_lightning_build_universal.mk) = 42a3eafc9738f94e0b6654cf815932469e06bcf4
-SHA1 (patch-calendar_providers_gdata_Makefile.in) = 9e49d1ceb591a8cd2da86f37774c80604cb8326d
-SHA1 (patch-config_baseconfig.mk) = c62405d490b9f2dcde7a5c6d7d835363a8e6b2c0
+SHA1 (patch-calendar_providers_gdata_Makefile.in) = aca552b09c8e94678000ea94695d38c822d375d5
SHA1 (patch-directory_c-sdk_ldap_include_portable.h) = a6d40c6b92aee607fb4f18d5a7c97b3d7833c74a
-SHA1 (patch-ipc_chromium_src_base_debug__util__posic.cc) = 01fa0e31aa4347c044e7870df6721dfb511478bb
SHA1 (patch-ipc_chromium_src_base_file__util__posix.cc) = cb48ef5c5feb6396210153a704e227d09858939e
SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = d6b9cdc90fecbeee02c37f74bc9998bba239d9cc
SHA1 (patch-ipc_chromium_src_base_sys__info__posix.cc) = f5545ffcee1b5b02d8e130ce2a7b6e9dc386567f
SHA1 (patch-ipc_chromium_src_build_build__config.h) = 7e5f6e195884d7fc629c10aefe13dba768001daf
-SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = a7385ed3b8a5011651c07a239b2d8a2a99e14624
+SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = 04eb07c0944eb40589aef7033d62636518e91066
SHA1 (patch-ldap_sdks_c-sdk_build.mk) = 171d81697d136abb6e02cb81445cd88fd8580de2
-SHA1 (patch-mail_components_shell_nsMailGNOMEIntegration.cpp) = 2b086ad7d3e4efa594ef04aac358e5271993bfcb
-SHA1 (patch-mail_installer_package-manifest.in) = 9f79382d6e17a839d3ba90dab4f657a80340141a
-SHA1 (patch-mail_installer_removed-files.in) = 26d69b9b8747f25130af75ea057cf2abc615bfff
-SHA1 (patch-mb) = 0e2a36a38147f112a3e1bace0ad1ccd295e8265c
-SHA1 (patch-mk) = e02de79032edc25fd9f328facca1436d88b3134b
-SHA1 (patch-ml) = 430c28ef299a0942126e494e0ac8c9198d00af41
+SHA1 (patch-mail_components_shell_nsMailGNOMEIntegration.cpp) = d1b4d47e0cb8d5105984f58a0167624042f3baa2
+SHA1 (patch-mail_installer_package-manifest.in) = bce1b3ba20b00cc00e51f79e498a24811fe65dd6
+SHA1 (patch-mail_installer_removed-files.in) = 5ef84ddc1dc1434c6db328f7d9df68f47f7d7ecd
+SHA1 (patch-mk) = c4aebbbf9c0a8ee1763d380ddd681248b362d295
+SHA1 (patch-ml) = f60bda3b422bc16dae60ee68b024d4740c7430a0
+SHA1 (patch-mozilla_accessible_atk_Platform.cpp) = d71a9f1a89d290c15871771c0a1c2b7a6510b1b8
SHA1 (patch-mozilla_b2g_installer_Makefile.in) = 2e2af12392f5c81ec68ad4e439a8baf225a94ee1
-SHA1 (patch-mozilla_b2g_installer_package-manifest.in) = 0f2a2c84839552c85a14f9eaf3f85db66ad5c3d9
-SHA1 (patch-mozilla_browser_app_profile_firefox.js) = af2f75a56509da757bbdd13c5519f639df1d20a6
-SHA1 (patch-mozilla_browser_installer_package-manifest.in) = b91ca1cf4805588091ca7310751a0b605bda4771
-SHA1 (patch-mozilla_browser_locales_en-US_chrome_browser-region_region.properties) = 98201e5d0676066ccdbab79ea05009b030eee036
-SHA1 (patch-mozilla_browser_locales_en-US_searchplugins_duckduckgo.xml) = 37c48b86ac371c9b23faf2094b09bf978141b7d4
-SHA1 (patch-mozilla_browser_locales_en-US_searchplugins_list.txt) = 2235b649306d27a0581aced46cfe8fbbc2eb1724
+SHA1 (patch-mozilla_b2g_installer_package-manifest.in) = 086a7ff700b9d7de9e2765780cd06b43d6ad1a8f
+SHA1 (patch-mozilla_browser_installer_package-manifest.in) = 1b7de0600e2a5c46db140aaac70fff11e252e4ff
SHA1 (patch-mozilla_build_autoconf_compiler-opts.m4) = 39e8e8ccdb87ecf0f37eb9d7de9257fce3f25301
-SHA1 (patch-mozilla_build_autoconf_nss.m4) = 4c726f98a5139eba2b4a4c34288c08092bfb90b3
-SHA1 (patch-mozilla_build_gyp.mozbuild) = 952b7d2fb236ebc927cd2364d356a262c1fe2dc1
+SHA1 (patch-mozilla_build_autoconf_nss.m4) = b3be74e87494f1a286c77add5bf5f6ea2071a913
+SHA1 (patch-mozilla_build_gyp.mozbuild) = 07806aabbf468709decf68d4823ecf54092c1f50
SHA1 (patch-mozilla_build_pgo_profileserver.py) = 2c15f3c655d4d9a366d70e6311921723dd1039f0
-SHA1 (patch-mozilla_config_Makefile.in) = c4d690920c1a2ed7bc4ddcbad4696274768fc2bf
+SHA1 (patch-mozilla_config_Makefile.in) = 049776b79aa8f523caa6430247707a20d9e81448
SHA1 (patch-mozilla_config_baseconfig.mk) = e8594d03d0db21e0731d85dcdb38ab9c465e9d56
-SHA1 (patch-mozilla_config_external_moz.build) = 61d9d60ad4e360b6d9511205ebe0d68422a2501b
+SHA1 (patch-mozilla_config_external_moz.build) = ee26e7573fe6d6c7f6e8497d8d1f928174ce4a36
SHA1 (patch-mozilla_config_stl__wrappers_ios) = 066a9f3db9203afa8131b2ff91d212033e5950e0
SHA1 (patch-mozilla_config_stl__wrappers_ostream) = 67559c5ab17088680b86dea6b081a48b781f59b5
-SHA1 (patch-mozilla_config_system-headers) = 51833d7c421c547471fb9cc5e635015f0ec70ab1
+SHA1 (patch-mozilla_config_system-headers) = c7d50fbc0d7fd3bad6fc3a0d4c662fda896652ea
SHA1 (patch-mozilla_config_system__wrappers_unwind.h) = 32d4ab3fbf80bf19783dab7c4a875a7262f419cf
-SHA1 (patch-mozilla_content_base_src_moz.build) = 0a7f7665a23a50d6c60a99c58e7d074465f4917c
-SHA1 (patch-mozilla_content_media_AudioStream.cpp) = 9faaa001b9a8d142ee0027622e773151de8c7287
-SHA1 (patch-mozilla_content_media_AudioStream.h) = 5970af4cfae07e02943a0411dfb195f2bcf10226
-SHA1 (patch-mozilla_content_media_Makefile.in) = d96375b1dd8d11ece759d6d84fda39b19ac43fde
-SHA1 (patch-mozilla_content_media_MediaData.cpp) = 166e407e32287ec0ac13f675fdf3cf5269795184
-SHA1 (patch-mozilla_content_media_MediaData.h) = 3b70b102bc38a1000fc2fcd280917c1e9ba20780
-SHA1 (patch-mozilla_content_media_fmp4_demuxer_bit__reader.cc) = 288cf698ffbdbb8fb501bc5917a1767cb17ac801
-SHA1 (patch-mozilla_content_media_gstreamer_GStreamerAllocator.cpp) = 81571586c9087b3ad347d0bb3455c984f72a8c7d
-SHA1 (patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp) = b0b42b8790ea22a075e2de711e1881c050ff4c1f
+SHA1 (patch-mozilla_dom_base_moz.build) = dce93f4c00bb662d5c702b442ee169bb8888237d
+SHA1 (patch-mozilla_dom_media_AudioStream.h) = b5092adaf26c8c1809b4ad62eb92be101c07ac88
+SHA1 (patch-mozilla_dom_media_gmp_GMPChild.cpp) = 18e604d744edf775776fb482e59a2864cbf146bd
+SHA1 (patch-mozilla_dom_media_gmp_GMPParent.cpp) = 1ca834cab61dac2c79ed4288da958f8ed7055953
+SHA1 (patch-mozilla_dom_media_gstreamer_GStreamerAllocator.cpp) = cadb3396a56ed3147c4ec2b4b8494205672883fb
+SHA1 (patch-mozilla_dom_media_moz.build) = 12ab0e2441422bbb683a5da163644db9bfd11aec
+SHA1 (patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp) = a877a2e086149d14004b15e2c96970d27b4de3a2
SHA1 (patch-mozilla_dom_plugins_ipc_PluginModuleChild.h) = ed5bcf926bce86ca73187ac13181c02e2352cc68
-SHA1 (patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp) = aa4e89010af5bf2844f08fa63824d0e59ef4f4f7
-SHA1 (patch-mozilla_dom_system_OSFileConstants.cpp) = 8880a3956dd13628f898b79326620ec9f122d362
-SHA1 (patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp) = ecc46454804bd1f2dc97621e0d788e16bb2eaea9
+SHA1 (patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp) = fc27fc709dedea8ff082deb43c30575f3be3d83c
+SHA1 (patch-mozilla_dom_system_OSFileConstants.cpp) = 665007aa3640bdc7d2dfb26c258e0ee8f7574cbe
+SHA1 (patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp) = 3865b172e85ee0146baf0641c1181bd01e955b35
+SHA1 (patch-mozilla_gfx_graphite2_moz-gr-update.sh) = 49a7d2d4de18565ca256e000fedaab1cb3e714f2
SHA1 (patch-mozilla_gfx_graphite2_src_Bidi.cpp) = 5b5190da8a8e4eabd793d9bd5932f773b685dbf4
SHA1 (patch-mozilla_gfx_moz.build) = 93f0eba2ea5a4d678c6356b254a1a91bf0ad7ea9
-SHA1 (patch-mozilla_gfx_skia_Makefile.in) = c67f4c4fd47b6d00b6f2f951a8ebebf22087ddf6
-SHA1 (patch-mozilla_gfx_thebes_Makefile.in) = b8295dfd28fbd9d21d83734f2b8928486df09344
-SHA1 (patch-mozilla_image_decoders_nsJPEGDecoder.cpp) = 9f25aae0c01f3341540ed4b821265b0921c5f74f
-SHA1 (patch-mozilla_intl_hyphenation_src_hnjalloc.h) = 23b4045d687d2823f3078a5f81adc4b4309d7a11
-SHA1 (patch-mozilla_intl_unicharutil_util_Makefile.in) = 1cf07aec1f7f38d465608fe8137d1f5e030ebf3f
-SHA1 (patch-mozilla_ios) = 628eecb6f97f58ef8a97375ad550338c96bad5b3
+SHA1 (patch-mozilla_gfx_skia_generate__mozbuild.py) = 7d1f1b85ec1a332d1370f2030f941c38ef83d021
+SHA1 (patch-mozilla_gfx_skia_moz.build) = c7298e883ec7a77c7fb85929dac8eced022cd438
+SHA1 (patch-mozilla_gfx_thebes_moz.build) = 57966be80ca5ce9f24350114bc7cb151b42adffd
+SHA1 (patch-mozilla_gfx_ycbcr_moz.build) = fcd9af6d97c2d7cf85856d8f11e1a13c0ebe8f52
+SHA1 (patch-mozilla_gfx_ycbcr_yuv__row__arm.S) = 5562543a67b0dec358a4ecc44612f2faa669d8b0
+SHA1 (patch-mozilla_image_decoders_nsJPEGDecoder.cpp) = bd08482f32102412517b3150e5c70500e8f921fa
+SHA1 (patch-mozilla_intl_hyphenation_hnjalloc.h) = e4a479d8151a6518697b95f9bf63bf60e98d8071
+SHA1 (patch-mozilla_intl_unicharutil_util_moz.build) = 4d8779980f5ca2a47b42125de3ef39621df523af
SHA1 (patch-mozilla_ipc_chromium_Makefile.in) = 3181c9948eac8834bf0b9e32e6bf1566be1b943c
SHA1 (patch-mozilla_ipc_chromium_moz.build) = b8f85c793c00e4eb50e0d70168fa7073fde03535
-SHA1 (patch-mozilla_ipc_chromium_src_base_base__paths.h) = 22a7fbb0416fc2acddd74826933e6ed5b827f3f4
+SHA1 (patch-mozilla_ipc_chromium_src_base_atomicops.h) = a20895ad9b7f0a99a926132b0e368b0b1cdaedad
SHA1 (patch-mozilla_ipc_chromium_src_base_file__util.h) = 28722f47efc0758b6f9a8bb12126faf3d01989f5
SHA1 (patch-mozilla_ipc_chromium_src_base_message__loop.cc) = 7d0598fe48a7130e71d7ad52c753d490f4d95d5b
-SHA1 (patch-mozilla_ipc_chromium_src_base_message__pump__libevent.cc) = f4e1b206527c8d43cba1f98005dd2aa9e6c5d9a9
SHA1 (patch-mozilla_ipc_chromium_src_base_platform__thread.h) = e8b8c3747bc1d157b1f9335080d25cebd64328bd
-SHA1 (patch-mozilla_ipc_chromium_src_base_process__util.h) = 6200a36fc73d4d73b278c6ecbe373c7eb7599056
-SHA1 (patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc) = 0d7b503e104535427fece8a0330a9aaf949b9304
+SHA1 (patch-mozilla_ipc_chromium_src_base_process__util.h) = b62b05aacd640c4aa62972a2e04366b311c7da4d
+SHA1 (patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc) = 238343f0438a4f2c474fa8fc485b2e836acca929
SHA1 (patch-mozilla_ipc_chromium_src_base_process__util__posix.cc) = 74cfe66cc8ce1692f001277d287d2c54f1fc077b
SHA1 (patch-mozilla_ipc_chromium_src_base_scoped__nsautorelease__pool.h) = 5fca921c5a5a20b79d0b3a8a7d5c2b1778ded0e8
SHA1 (patch-mozilla_ipc_chromium_src_base_time__posix.cc) = b93fbc86ff73e7b56c83f23fca79a507350b65fd
SHA1 (patch-mozilla_ipc_chromium_src_chrome_common_transport__dib.h) = 2c516ff62f4ea73e4b2ae49b6f0abe95620486da
SHA1 (patch-mozilla_ipc_glue_ScopedXREEmbed.cpp) = 2530415b33c3c60e5ce90719673c7dea06c95b82
SHA1 (patch-mozilla_ipc_glue_StringUtil.cpp) = f2bfc2a877554d64ab886d0159c9bdb4e7d01097
+SHA1 (patch-mozilla_ipc_glue_moz.build) = eb8e0d46193092cefcb6d5a00f22ba43161fb71c
SHA1 (patch-mozilla_ipc_ipdl_ipdl_cxx_ast.py) = d2ffbde2fb0744ab7acc279dcc9dfc430fb58dfc
SHA1 (patch-mozilla_ipc_ipdl_ipdl_cxx_cgen.py) = 8c63e06ed257d059e9ff4da0b00e752bd694347e
SHA1 (patch-mozilla_ipc_ipdl_ipdl_lower.py) = c3e0f719900b515554218b6312055f34ccbf9feb
-SHA1 (patch-mozilla_js_src_builtin_TypedObject.cpp) = 6ed299b2799aaf3bf789763657a8e54e9299b778
+SHA1 (patch-mozilla_js_public_CallArgs.h) = b822b887cf2649403913f4d1d0f69a531094fd0e
+SHA1 (patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp) = 46808d8cacd35982954c641e65c5c817d1b9ceca
SHA1 (patch-mozilla_js_src_ctypes_CTypes.h) = 852b14dc17cc29bdbf0b2cc407ba5780dd568d3a
-SHA1 (patch-mozilla_js_src_frontend_BytecodeCompiler.cpp) = 876d1438194becc19a01341af901b709c8892ed6
SHA1 (patch-mozilla_js_src_frontend_ParseMaps.cpp) = d7f45bde1f819786c45225600697f14769bed946
-SHA1 (patch-mozilla_js_src_gc_Memory.cpp) = b09074af9f08c142ba83a634a9c93672c1d9252d
+SHA1 (patch-mozilla_js_src_gc_Statistics.cpp) = 875b061d7368d19af143d73bfaed7a51154b7e72
+SHA1 (patch-mozilla_js_src_jit_ExecutableAllocator.h) = 43e2c73d8d96482ac1046a0988fa6bb49d600ca3
+SHA1 (patch-mozilla_js_src_jit_LIR.cpp) = 9bda5be7268cd5cadaa117e4aba11900e62424a7
+SHA1 (patch-mozilla_js_src_jit_MIR.cpp) = 5be2f6c399eb69edcf3e456f9fd7c99c4d1e4850
+SHA1 (patch-mozilla_js_src_jit_arm_Architecture-arm.cpp) = 3fa23427dcefac2eccfeec667262d66c9b66dd84
+SHA1 (patch-mozilla_js_src_jsapi.cpp) = 79ce01f9ade19e7c562226e6383c7df9deca566c
+SHA1 (patch-mozilla_js_src_jsdate.cpp) = 7d37540f33dff14c31df6786b2319cbad95461f4
+SHA1 (patch-mozilla_js_src_jskwgen.cpp) = 03b2a891d0fb87da98dcb92c3ecf2f6d39621426
SHA1 (patch-mozilla_js_src_jsmath.cpp) = b02ecb4a64c6b486645ffdf0446430db9e2dcd71
+SHA1 (patch-mozilla_js_src_shell_jsoptparse.cpp) = 637d553fd6f464d19e72564a7e2f2dd0b3528bca
SHA1 (patch-mozilla_js_src_vm_SPSProfiler.cpp) = 35df0beb0c2f7d233d21c4214281002412b7d5dd
-SHA1 (patch-mozilla_js_xpconnect_wrapper_XrayWrapper.cpp) = 374f7236c6c141489d699edc7368bc5ec3ded2f8
-SHA1 (patch-mozilla_media_libcubeb_src_Makefile.in) = 8c809178a1f427302d58fc8776a9371b78a7ca7e
-SHA1 (patch-mozilla_media_libcubeb_src_cubeb__alsa.c) = db2a16f6a7d19bca54bd71a488ee95a0db932a46
-SHA1 (patch-mozilla_media_libcubeb_src_moz.build) = 7058656f387417a2c22de882a9f2405a0685c2ab
+SHA1 (patch-mozilla_js_xpconnect_src_XPCConvert.cpp) = 41a7aaeaae02324265364ce46b5edc6d717190d5
+SHA1 (patch-mozilla_js_xpconnect_src_xpcprivate.h) = bb9f9dfba00d9536c4bdb84188c588685ce79fa8
+SHA1 (patch-mozilla_media_libcubeb_AUTHORS) = 75431ca834f755054249f3113b45e9e7dbcaf07a
+SHA1 (patch-mozilla_media_libcubeb_src_cubeb.c) = 385329b05947507df09281a1d42c6cf77e9ad6de
+SHA1 (patch-mozilla_media_libcubeb_src_cubeb__alsa.c) = 783fbfef10450da06d5ce027397c7f07d10c6007
+SHA1 (patch-mozilla_media_libcubeb_src_cubeb__oss.c) = c0b98f9d64047b79a136a69ee1bc5a1084440ec6
+SHA1 (patch-mozilla_media_libcubeb_src_moz.build) = 723ba3f5a6cba49cc10d37e81b496c6e11b794b4
SHA1 (patch-mozilla_media_libpng_pngpriv.h) = 0d2ce353d14c26755ab1db5568202a9887c2b6f3
SHA1 (patch-mozilla_media_libsoundtouch_src_cpu__detect__x86.cpp) = fcb3c03e8d7709a7fd43c696278f51bb25ada564
-SHA1 (patch-mozilla_media_libtheora_Makefile.in) = 6ab6a7750ac2f6fa7caf3ae016638b2f21b5a9ab
+SHA1 (patch-mozilla_media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp) = 38249bd368657210470098d089a56fb641bdad35
+SHA1 (patch-mozilla_media_libstagefright_system_core_liblog_fake__log__device.c) = f2789d1c13accd151dbb836659a264f042f563a6
+SHA1 (patch-mozilla_media_libstagefright_system_core_liblog_logprint.c) = e10a2a9e224f30379cea0a99ac9e2dbe362bcaf0
+SHA1 (patch-mozilla_media_libtheora_lib_arm_armcpu.c) = 81ba09d76c8bba8bdb4db80aba83619aa5644e95
+SHA1 (patch-mozilla_media_libtheora_lib_info.c) = 0717521137df71399724e4cc6189dd1c4bfe5900
+SHA1 (patch-mozilla_media_libtheora_moz.build) = dde3aaa0f1a0550039a764fd90054c622d91a86c
SHA1 (patch-mozilla_media_libtremor_Makefile.in) = 8375506c055714f37192ff51cd0a8bd45d5ef41b
+SHA1 (patch-mozilla_media_libtremor_moz.build) = f25c40fa9f9699649c9019eef84936bd52f81181
SHA1 (patch-mozilla_media_libvorbis_Makefile.in) = 7fa5e4b4c33cbfdb4644f5472d5cfc098f33807a
+SHA1 (patch-mozilla_media_libvorbis_lib_vorbis__info.c) = b9a23d5062bba5b19487296f0eb6291ed909cc2a
+SHA1 (patch-mozilla_media_libvorbis_moz.build) = 3d25cd1abbd217271e21e4dd70c32f05156dcb53
+SHA1 (patch-mozilla_media_libyuv_include_libyuv_scale__row.h) = bcdd39627f96cabdf8a02f750b94c981d160bf8d
SHA1 (patch-mozilla_media_mtransport_third__party_nICEr_src_util_mbslen.c) = a336215f2d2299d7d7f830c45ce02feb4d6b46bb
SHA1 (patch-mozilla_media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h) = 20867c0010ebae669b66678a310f22a201a58ba7
-SHA1 (patch-mozilla_media_webrtc_signaling_signaling.gyp) = 17803fb1f7f0286375712a94f8fd147133d805ef
-SHA1 (patch-mozilla_media_webrtc_signaling_test_Makefile.in) = 828566ac9f67f5bef64370f0412d6e8dac2cea46
+SHA1 (patch-mozilla_media_webrtc_signaling_test_moz.build) = 8f1480a39682931f2b93bf7d57e2b6963e947f6e
SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_build_common.gypi) = 4f4d549bf33eceba8d67e552a8544a95d52e0f69
-SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi) = 4804a37511c344ab53eb7f5bec4598a741dd1714
+SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi) = cc3d6a2d8387b98753c7b9d6d64e43dff197a6df
+SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi) = f239b2e5f74c5da73d37751587748583233090d5
+SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc) = c4e67201cd8b10115bc2cd0221699e65c924a5f3
+SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h) = dd9842b84a67834cff668a0906e921875eebd583
SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc) = ceabec7ac8a213fa1f35a90148960e6d94615b73
SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc) = 3dcd427b7bd24bd68578946f79b7c8beb4d7dda7
-SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi) = 9866f5d55ad541e83a72b9f1791a5c264e319633
-SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp) = 951053eff0eba0debe0cded987a2e3a1437e860e
+SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi) = c2e60b3603000bca4a1532771e76421149e4eab1
+SHA1 (patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp) = 23d8a53f437522dce9818cb866296147c97bbd34
+SHA1 (patch-mozilla_memory_build_mozjemalloc__compat.c) = 53bc8e6e8692c3e582a2b9b45b44e088e89e977e
SHA1 (patch-mozilla_memory_jemalloc_Makefile.in) = 7281f92fc0c5bc906d885f71edd58b5204e65540
-SHA1 (patch-mozilla_memory_mozalloc_mozalloc__abort.cpp) = 74d938d0f984d16c28f22f77919d5212cfc47f09
+SHA1 (patch-mozilla_memory_jemalloc_src_configure) = 9256effb9c67a5dd11e8ceef19b9ea28d0d42cd9
+SHA1 (patch-mozilla_memory_mozalloc_mozalloc__abort.cpp) = 123ed43ef2ed1a4110beace2fb637c39b401f4b3
+SHA1 (patch-mozilla_memory_volatile_VolatileBufferOSX.cpp) = 7d03ccb71fadbb24c4446fe694c434b26ab6ff5d
SHA1 (patch-mozilla_mfbt_Alignment.h) = 04273fe60221ed9aa5ba3d6701aba82fcbc1eba3
-SHA1 (patch-mozilla_mfbt_Attributes.h) = dde09326b41e8ab78a42560afd46fbe444621a58
-SHA1 (patch-mozilla_mfbt_Poison.cpp) = 2c4ec88d6d47c93120d1d10457853e67ef52d239
+SHA1 (patch-mozilla_mfbt_Attributes.h) = 67a0941aee2db49b747f3c20141dc6df55ac6549
+SHA1 (patch-mozilla_mfbt_Poison.cpp) = d371a235cc409aa99fdd862687378f5d6a84a863
SHA1 (patch-mozilla_mobile_android_installer_Makefile.in) = c2f9f4dcac0c870b64e099ec7a6d1bdad7b5af0f
SHA1 (patch-mozilla_mobile_android_installer_package-manifest.in) = 3ed532efccca911bb70182527651d534d5146dcc
SHA1 (patch-mozilla_modules_libjar_nsZipArchive.cpp) = c906441ba5d7f391f5e37edcf88bfdf8586d5a84
-SHA1 (patch-mozilla_netwerk_dns_Makefile.in) = b439f2a5da18fc3f3fb65118d4e99048381b26d9
-SHA1 (patch-mozilla_netwerk_ipc_NeckoParent.cpp) = 7d6c84fc8de5ce93e439c644e79e556be0b8cb75
-SHA1 (patch-mozilla_ostream) = 97351e78803053e561343e429f5eb12252b0290d
-SHA1 (patch-mozilla_probes_Makefile.in) = 2f942dadf56add19653a1995fc6ea68e491dd1c5
-SHA1 (patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp) = a881012bf1b40685fbc5f48bf5eaed50cef89f72
-SHA1 (patch-mozilla_storage_src_moz.build) = 3b5e11caccc66a6c7a69d9ed3d5f25dc6c2b343d
+SHA1 (patch-mozilla_netwerk_base_nsNetUtil.h) = 8d6f10b910d985a6f8259f5ef02d21e3d9f3ed0e
+SHA1 (patch-mozilla_netwerk_dns_moz.build) = 49b4f4de83559132bd783f8f2c5d7376c0ad7841
+SHA1 (patch-mozilla_netwerk_protocol_http_Http2Session.cpp) = 5d6c4bb01cf4ab1c3e518e79c28a143aab9b2868
+SHA1 (patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp) = dc5066e49bb3722c4f07985fd3d4da691a0a1205
SHA1 (patch-mozilla_toolkit_components_osfile_modules_osfile__unix__back.jsm) = 455c218c6fce4d7f26bda18c9169e3bd263af6f8
-SHA1 (patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm) = 1669f9bbff44adc43f4cc9036fcc8cec6bacb429
-SHA1 (patch-mozilla_toolkit_library_libxul.mk) = 9aafeecea1dbeef9f1b5819d2241cc39c595036c
-SHA1 (patch-mozilla_toolkit_toolkit.mozbuild) = 361f82922038b82d9c433d4e04ed1ca394332edb
+SHA1 (patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm) = 8f48e55d1a1483b7727ef8b2e11b0142894aa14c
+SHA1 (patch-mozilla_toolkit_library_moz.build) = 0d2a0509f34686260e417f0ae221e738b3378100
+SHA1 (patch-mozilla_toolkit_modules_GMPInstallManager.jsm) = 975a04826031128d04d2fdba2f7a2bd6dd7d2844
+SHA1 (patch-mozilla_toolkit_modules_GMPUtils.jsm) = b66bb759d73cea16372570cff288dd018b3ad0fc
+SHA1 (patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm) = 6dd0ab01b21e11a77b554d3be32bbb0aeed0a441
+SHA1 (patch-mozilla_toolkit_xre_nsAppRunner.cpp) = 9e2212cfa52080593c88e8ffc926681016dfb6a5
SHA1 (patch-mozilla_toolkit_xre_nsEmbedFunctions.cpp) = 41dbac602fb4b61835c794c6fc950f16cadd2f6f
-SHA1 (patch-mozilla_unwind.h) = 65a725cd21dc596c5ee7448004ca829707e7661e
-SHA1 (patch-mozilla_webapprt_moz.build) = 0cb4565cdd56eb0cb5ee892035b46d725b5150aa
-SHA1 (patch-mozilla_xpcom_base_nsDebugImpl.cpp) = bf31745928477d0b4f0e86c85f7258f62f7902bc
-SHA1 (patch-mozilla_xpcom_base_nsUUIDGenerator.cpp) = a42ce70df6f138eb3b536ac08ffcf4403d34d98a
-SHA1 (patch-mozilla_xpcom_base_nsUUIDGenerator.h) = 982fabbbdc25ba17ff75cea0b21a3fa87bf23f95
+SHA1 (patch-mozilla_webapprt_moz.build) = a61c46543c2c4cc5ecfcd3eb24facab3e6081b52
+SHA1 (patch-mozilla_widget_gtk_gtk2drawing.c) = 23d590e58e22957b996fe27a12bff186fcc7eb49
+SHA1 (patch-mozilla_widget_gtk_gtk3drawing.c) = 62226a6ddb936ea6c6b6f08d509ff166ec85f208
+SHA1 (patch-mozilla_widget_gtk_gtkdrawing.h) = e44e47c56e83e8982ac61d6135550dd6bed50509
+SHA1 (patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp) = bc23ce979c1da98e98ee5cf19b3a2bc992f56186
SHA1 (patch-mozilla_xpcom_base_nscore.h) = 80dc90ac315e3c74340498a877f58c32d94e6ac3
-SHA1 (patch-mozilla_xpcom_build_PoisonIOInterposer.h) = 41baab52ee14862da977525368a5a89922622740
-SHA1 (patch-mozilla_xpcom_build_nsXPComInit.cpp) = 9ac1c721e6f92006900326b86595de3f6f861d00
-SHA1 (patch-mozilla_xpcom_ds_TimeStamp.h) = 179052bd8c33cd17b0d35fd22af103d89984d821
-SHA1 (patch-mozilla_xpcom_reflect_xptcall_src_md_unix_moz.build) = 9d77b06fc628ee9d7d7b3257fbb36a4ea99be72d
-SHA1 (patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__asm__mips.S) = 520ad1b22f08552ca16462c1a2586d8bd08a31de
-SHA1 (patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp) = 0cb59e304b09bd18ab12f173f3327409756d99d5
-SHA1 (patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__ppc__netbsd.cpp) = 58b06ebd1068edc06d3fe1f6464217da4c157e49
-SHA1 (patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__asm__mips.S) = 810abdb91420d15c59061ce10f6d15c637333aa4
-SHA1 (patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp) = 07b474c6d9a74c13465e2782cfba106399e3b6ef
+SHA1 (patch-mozilla_xpcom_build_PoisonIOInterposer.h) = f2803b8690e59cdccccf63f84b2616901a5f5c82
+SHA1 (patch-mozilla_xpcom_build_XPCOMInit.cpp) = 3539557001b0f2f449f4d122f0c696f00d9587df
+SHA1 (patch-mozilla_xpcom_glue_standalone_nsXPCOMGlue.cpp) = d7c469f51e4b5baeb0ac3c1403875cf66324214c
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_Makefile.in) = b29d07bf379c02c7ee0f5765a25af703051f9c8b
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build) = 7642b01dd558c098bcb3aad32f62aeb4bd0984f2
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp) = 72ea33fdc90899e630ba83ba8fce7ce8942bb9ed
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__mips.S) = 3ded7fc34293a286f99b61b687cadd71afc53e11
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__ppc__netbsd.s) = cc73676c2ae4fd515eaa9915e8fa19e5e6cecaad
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp) = 221f35cb42616cd6c52bb1cc164ae2c87c9e99a8
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__netbsd__m68k.cpp) = 21faa775ed53b4571362efce316a6dfa73689b16
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__ppc__netbsd.cpp) = 9662652da9b9c744f45cf39c73113dcd16291977
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__sparc64__netbsd.cpp) = 19775ea31d091df9d6ba397e3449dd05b8574501
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp) = dfdb2bdc9c7b83d3d88f00f0e34570ce0b2f5738
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__mips.S) = 0f2d4e824d5b7cf5fdbbc9c3b747df1a5ba812f6
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__sparc64__netbsd.s) = 332cdb308db38a9a3647c0aae86ae1ebb030b4ce
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp) = 2826f0db0ce78ad792db03dc07ef94bbe5c08f6a
+SHA1 (patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__netbsd__m68k.cpp) = 65f4a81f33be2660bae6b06ec051b5a3582837ca
SHA1 (patch-mozilla_xulrunner_installer_Makefile.in) = 51cb06e38259666cdcbe7f26aa2f6b237d55b815
SHA1 (patch-pb) = e61134fe43911f34a629cc338f692051c7a3ae22
SHA1 (patch-pc) = 7c0e354278ae148a8ffa1bc806710a24bc6ac095
-SHA1 (patch-rc) = 46175f709b324d6a363378807eb5689aea52f065
-SHA1 (patch-xb) = c293419875babf8a3cdd4cd6f0bb22037540d2b8
-SHA1 (patch-xc) = 4e7e2d2c6c117b781aaefd271e739e7242f4de19
-SHA1 (patch-xe) = 27c9efa8354bed65af833c5a92a9d8a7f5d8f0f5
-SHA1 (patch-xf) = 4ed26a45e79a927ed65240e390bc5582676f8665
-SHA1 (patch-xg) = e4a68a6b1eb3e3fc37077638cd347b8ee65c05d9
-SHA1 (patch-xl) = c5ddb6bb237ba1582cb51836092e19587c7be1b8
-SHA1 (patch-zb) = c6e38afe45e16d0a2a54c4165c0dd7a6e5046f2e
-SHA1 (patch-zc) = 27df97dd6f03d501ff626473798106de996f70a7
+SHA1 (patch-rc) = f9c3a03f34a3276bccfee6fa7c06ff33345f369e
+SHA1 (patch-zc) = b1b7edfed691db014d3a25afeb94afcd9f65b82a
diff --git a/mail/thunderbird/options.mk b/mail/thunderbird/options.mk
index 4d6d64650cc..6c44eb15511 100644
--- a/mail/thunderbird/options.mk
+++ b/mail/thunderbird/options.mk
@@ -1,4 +1,4 @@
-# $NetBSD: options.mk,v 1.16 2015/07/01 12:58:35 ryoon Exp $
+# $NetBSD: options.mk,v 1.17 2015/07/09 15:17:34 ryoon Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.thunderbird
PKG_SUPPORTED_OPTIONS= alsa debug mozilla-jemalloc gnome \
@@ -60,8 +60,8 @@ CONFIGURE_ARGS+= --disable-pulseaudio
.if !empty(PKG_OPTIONS:Mmozilla-lightning)
CONFIGURE_ARGS+= --enable-calendar
PLIST_SRC+= PLIST.lightning
-XPI_FILES+= ${WRKSRC}/${OBJDIR}/mozilla/dist/xpi-stage/gdata-provider.xpi
-XPI_FILES+= ${WRKSRC}/${OBJDIR}/mozilla/dist/xpi-stage/lightning.xpi
+XPI_FILES+= ${WRKSRC}/${OBJDIR}/dist/xpi-stage/gdata-provider.xpi
+XPI_FILES+= ${WRKSRC}/${OBJDIR}/dist/xpi-stage/lightning.xpi
.else
CONFIGURE_ARGS+= --disable-calendar
.endif
diff --git a/mail/thunderbird/patches/patch-aa b/mail/thunderbird/patches/patch-aa
index ca3f29c8e27..31d2befbe47 100644
--- a/mail/thunderbird/patches/patch-aa
+++ b/mail/thunderbird/patches/patch-aa
@@ -1,17 +1,8 @@
-$NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+$NetBSD: patch-aa,v 1.20 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/configure.in.orig 2014-07-18 00:05:11.000000000 +0000
+--- mozilla/configure.in.orig 2015-06-08 17:49:55.000000000 +0000
+++ mozilla/configure.in
-@@ -962,7 +962,7 @@ MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH
- MOZ_PNG_CFLAGS="-I$_objdir/dist/include" # needed for freetype compilation
- MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/media/libpng)'
-
--MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(LIBXUL_DIST)/lib)'
-+MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(DEPTH)/js/src)'
- MOZ_JS_SHARED_LIBS='$(call EXPAND_LIBNAME_PATH,mozjs,$(LIBXUL_DIST)/lib)'
- MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
- XPCOM_FROZEN_LDOPTS='$(call EXPAND_LIBNAME_PATH,xul mozalloc,$(LIBXUL_DIST)/bin)'
-@@ -1676,7 +1676,13 @@ Linux)
+@@ -1794,7 +1794,13 @@ Linux)
MOZ_ENABLE_PROFILER_SPS=
esac
;;
@@ -26,7 +17,7 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
*)
MOZ_ENABLE_PROFILER_SPS=
;;
-@@ -1780,7 +1786,7 @@ case "$host" in
+@@ -1898,7 +1904,7 @@ case "$host" in
;;
*-darwin*)
@@ -35,7 +26,7 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
;;
-@@ -1912,7 +1918,6 @@ case "$target" in
+@@ -2022,7 +2028,6 @@ case "$target" in
AC_DEFINE(XP_DARWIN)
_PLATFORM_DEFAULT_TOOLKIT='cairo-uikit'
else
@@ -43,7 +34,7 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
AC_DEFINE(XP_DARWIN)
_PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
# The ExceptionHandling framework is needed for Objective-C exception
-@@ -2522,118 +2527,15 @@ MOZ_CXX11
+@@ -2641,8 +2646,7 @@ MOZ_CXX11
AC_LANG_C
@@ -51,134 +42,9 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
-dnl Borrowed from glibc configure.in
+dnl Setup default hidden visibility and wrapped system headers.
dnl ===============================================================
- if test "$GNU_CC"; then
-- AC_CACHE_CHECK(for visibility(hidden) attribute,
-- ac_cv_visibility_hidden,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("hidden"))) = 1;
--EOF
-- ac_cv_visibility_hidden=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_hidden=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_hidden" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility(default) attribute,
-- ac_cv_visibility_default,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("default"))) = 1;
--EOF
-- ac_cv_visibility_default=no
-- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_default=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_default" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility pragma support,
-- ac_cv_visibility_pragma,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
-- int foo_hidden = 1;
--#pragma GCC visibility push(default)
-- int foo_default = 1;
--EOF
-- ac_cv_visibility_pragma=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
-- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
-- ac_cv_visibility_pragma=yes
-- fi
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_pragma" = "yes"; then
-- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
-- ac_cv_have_visibility_class_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--struct __attribute__ ((visibility ("default"))) TestStruct {
-- static void Init();
--};
--__attribute__ ((visibility ("default"))) void TestFunc() {
-- TestStruct::Init();
--}
--EOF
-- ac_cv_have_visibility_class_bug=no
-- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_class_bug=yes
-- else
-- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
-- ac_cv_have_visibility_class_bug=yes
-- fi
-- fi
-- rm -rf conftest.{c,S}
-- ])
--
-- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
-- ac_cv_have_visibility_builtin_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--#pragma GCC visibility push(default)
--#include <string.h>
--#pragma GCC visibility pop
--
--__attribute__ ((visibility ("default"))) void Func() {
-- char c[[100]];
-- memset(c, 0, sizeof(c));
--}
--EOF
-- ac_cv_have_visibility_builtin_bug=no
-- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_builtin_bug=yes
-- else
-- if test `grep -c "@PLT" conftest.S` = 0; then
-- ac_cv_visibility_builtin_bug=yes
-- fi
-- fi
-- rm -f conftest.{c,S}
-- ])
-- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
-- "$ac_cv_have_visibility_class_bug" = "no"; then
-- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-- WRAP_SYSTEM_INCLUDES=1
-- STL_FLAGS='-I$(DIST)/stl_wrappers'
-- WRAP_STL_INCLUDES=1
-- else
-- VISIBILITY_FLAGS='-fvisibility=hidden'
-- fi # have visibility pragma bug
-- fi # have visibility pragma
-- fi # have visibility(default) attribute
-- fi # have visibility(hidden) attribute
-+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
-+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
-+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-+ WRAP_SYSTEM_INCLUDES=1
-+ STL_FLAGS='-I$(DIST)/stl_wrappers'
-+ WRAP_STL_INCLUDES=1
- fi # GNU_CC
-
- # visibility hidden flag for Sun Studio on Solaris
-@@ -3004,7 +2906,7 @@ dnl Checks for library functions.
- dnl ========================================================
- AC_PROG_GCC_TRADITIONAL
- AC_FUNC_MEMCMP
--AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r)
-+AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r arc4random arc4random_buf)
-
- dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
- AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
-@@ -3691,6 +3593,14 @@ if test -n "$YASM"; then
+ if test "$GNU_CC" -a "$OS_TARGET" != WINNT; then
+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
+@@ -3663,6 +3667,14 @@ if test -n "$YASM"; then
_YASM_BUILD=` echo ${YASM_VERSION} | $AWK -F\. '{ print $4 }'`
fi
@@ -193,7 +59,7 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
if test -z "$SKIP_LIBRARY_CHECKS"; then
dnl system JPEG support
dnl ========================================================
-@@ -3718,11 +3628,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then
+@@ -3690,11 +3702,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then
#include <jpeglib.h> ],
[ #if JPEG_LIB_VERSION < $MOZJPEG
#error "Insufficient JPEG library version ($MOZJPEG required)."
@@ -206,7 +72,7 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
MOZ_NATIVE_JPEG=1,
AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg]))
fi
-@@ -4387,6 +4293,10 @@ cairo-gonk)
+@@ -4392,6 +4400,10 @@ cairo-gonk)
esac
@@ -217,7 +83,16 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
AC_SUBST(MOZ_PDF_PRINTING)
if test "$MOZ_PDF_PRINTING"; then
PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
-@@ -5106,6 +5016,9 @@ if test -n "$MOZ_WEBRTC"; then
+@@ -4408,7 +4420,7 @@ fi
+
+ if test "$COMPILE_ENVIRONMENT"; then
+ if test "$MOZ_ENABLE_GTK3"; then
+- PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 atk-bridge-2.0 $GDK_PACKAGES)
++ PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
+ MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS"
+ dnl Contrary to MOZ_GTK2_LIBS, MOZ_GTK3_LIBS needs to be literally added to TK_LIBS instead
+ dnl of a make reference because of how TK_LIBS is mangled in toolkit/library/moz.build
+@@ -5149,6 +5161,9 @@ if test -n "$MOZ_WEBRTC"; then
MOZ_VPX=1
MOZ_VPX_ERROR_CONCEALMENT=1
@@ -227,7 +102,7 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
dnl enable once Signaling lands
MOZ_WEBRTC_SIGNALING=1
AC_DEFINE(MOZ_WEBRTC_SIGNALING)
-@@ -5190,6 +5106,63 @@ if test "${ac_cv_c_attribute_aligned}" !
+@@ -5252,6 +5267,157 @@ if test "${ac_cv_c_attribute_aligned}" !
fi
dnl ========================================================
@@ -250,8 +125,6 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+fi
+
+AC_SUBST(MOZ_NATIVE_OGG)
-+AC_SUBST(MOZ_OGG_CFLAGS)
-+AC_SUBST(MOZ_OGG_LIBS)
+
+dnl ========================================================
+dnl Check for libvorbis
@@ -263,12 +136,10 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+MOZ_NATIVE_VORBIS=)
+
+if test -n "$MOZ_NATIVE_VORBIS"; then
-+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.4)
++ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5)
+fi
+
+AC_SUBST(MOZ_NATIVE_VORBIS)
-+AC_SUBST(MOZ_VORBIS_CFLAGS)
-+AC_SUBST(MOZ_VORBIS_LIBS)
+
+dnl ========================================================
+dnl Check for integer-only libvorbis aka tremor
@@ -284,17 +155,25 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+fi
+
+AC_SUBST(MOZ_NATIVE_TREMOR)
-+AC_SUBST(MOZ_TREMOR_CFLAGS)
-+AC_SUBST(MOZ_TREMOR_LIBS)
+
+dnl ========================================================
- dnl = Disable Opus audio codec support
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(opus,
-@@ -5198,6 +5171,97 @@ MOZ_ARG_DISABLE_BOOL(opus,
- MOZ_OPUS=1)
-
- dnl ========================================================
++dnl Check for libcelt
++dnl ========================================================
++
++MOZ_ARG_WITH_BOOL(system-celt,
++[ --with-system-celt Use system libcelt (located with pkgconfig)],
++MOZ_NATIVE_CELT=1,
++MOZ_NATIVE_CELT=)
++
++if test -n "$MOZ_NATIVE_CELT"; then
++ PKG_CHECK_MODULES(MOZ_CELT, celt)
++else
++ MOZ_CELT_CFLAGS='-I$(topsrcdir)/media/libopus'
++fi
++
++AC_SUBST(MOZ_NATIVE_CELT)
++
++dnl ========================================================
+dnl Check for libopus
+dnl ========================================================
+
@@ -310,8 +189,6 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+fi
+
+AC_SUBST(MOZ_NATIVE_OPUS)
-+AC_SUBST(MOZ_OPUS_CFLAGS)
-+AC_SUBST(MOZ_OPUS_LIBS)
+
+dnl ========================================================
+dnl Check for libtheora
@@ -327,8 +204,6 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+fi
+
+AC_SUBST(MOZ_NATIVE_THEORA)
-+AC_SUBST(MOZ_THEORA_CFLAGS)
-+AC_SUBST(MOZ_THEORA_LIBS)
+
+dnl ========================================================
+dnl Check for libspeex resampler
@@ -344,8 +219,6 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+fi
+
+AC_SUBST(MOZ_NATIVE_SPEEX)
-+AC_SUBST(MOZ_SPEEX_CFLAGS)
-+AC_SUBST(MOZ_SPEEX_LIBS)
+
+dnl ========================================================
+dnl Check for libsoundtouch
@@ -382,14 +255,104 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+fi
+
+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH)
-+AC_SUBST(MOZ_SOUNDTOUCH_CFLAGS)
-+AC_SUBST(MOZ_SOUNDTOUCH_LIBS)
+
+dnl ========================================================
dnl = Disable VP8 decoder support
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(webm,
-@@ -5938,7 +6002,9 @@ MOZ_ARG_DISABLE_BOOL(gamepad,
+@@ -5606,6 +5772,67 @@ fi
+ AC_SUBST(MOZ_WEBM_ENCODER)
+
+ dnl ==================================
++dnl = Check OSS availability
++dnl ==================================
++
++dnl If using Linux, Solaris or BSDs, ensure that OSS is available
++case "$OS_TARGET" in
++Linux|SunOS|DragonFly|FreeBSD|NetBSD|GNU/kFreeBSD)
++ MOZ_OSS=1
++ ;;
++esac
++
++MOZ_ARG_WITH_STRING(oss,
++[ --with-oss[=PFX] Enable OpenSoundSystem support [installed at prefix PFX]],
++ OSSPREFIX=$withval)
++
++if test -n "$OSSPREFIX"; then
++ if test "$OSSPREFIX" != "no"; then
++ MOZ_OSS=1
++ else
++ MOZ_OSS=
++ fi
++fi
++
++_SAVE_CFLAGS=$CFLAGS
++_SAVE_LIBS=$LIBS
++if test -n "$MOZ_OSS"; then
++ dnl Prefer 4Front implementation
++ AC_MSG_CHECKING([MOZ_OSS_CFLAGS])
++ if test "$OSSPREFIX" != "yes"; then
++ oss_conf=${OSSPREFIX%/usr}/etc/oss.conf
++ if test -f "$oss_conf"; then
++ . "$oss_conf"
++ else
++ OSSLIBDIR=$OSSPREFIX/lib/oss
++ fi
++ if test -d "$OSSLIBDIR"; then
++ MOZ_OSS_CFLAGS="$MOZ_OSS_CFLAGS -I$OSSLIBDIR/include"
++ fi
++ fi
++ AC_MSG_RESULT([$MOZ_OSS_CFLAGS])
++
++ CFLAGS="$CFLAGS $MOZ_OSS_CFLAGS"
++ MOZ_CHECK_HEADERS(sys/soundcard.h soundcard.h)
++
++ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \
++ "$ac_cv_header_soundcard_h" != "yes"; then
++ AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET. Disable with --disable-ogg --disable-wave --disable-webm.])
++ fi
++
++ dnl Assume NetBSD implementation over SunAudio
++ AC_CHECK_LIB(ossaudio, _oss_ioctl,
++ [AC_DEFINE_UNQUOTED(CUBEB_OSS_DEFAULT_OUTPUT, "/dev/sound")
++ MOZ_OSS_LIBS="$MOZ_OSS_LIBS -lossaudio"])
++fi
++CFLAGS=$_SAVE_CFLAGS
++LIBS=$_SAVE_LIBS
++
++AC_SUBST(MOZ_OSS)
++AC_SUBST_LIST(MOZ_OSS_CFLAGS)
++AC_SUBST_LIST(MOZ_OSS_LIBS)
++
++dnl ==================================
+ dnl = Check alsa availability on Linux
+ dnl ==================================
+
+@@ -5619,12 +5846,23 @@ MOZ_ARG_ENABLE_BOOL(alsa,
+ MOZ_ALSA=1,
+ MOZ_ALSA=)
+
++MOZ_ARG_DISABLE_BOOL(alsa-dlopen,
++[ --disable-alsa-dlopen Disable runtime linking of libasound.so],
++ DISABLE_LIBASOUND_DLOPEN=1,
++ DISABLE_LIBASOUND_DLOPEN=)
++
+ if test -n "$MOZ_ALSA"; then
+ PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
+ [echo "$MOZ_ALSA_PKG_ERRORS"
+ AC_MSG_ERROR([Need alsa for audio output on Linux. (On Ubuntu, you might try installing the package libasound2-dev.)])])
+ fi
+
++if test -n "$DISABLE_LIBASOUND_DLOPEN"; then
++ AC_DEFINE(DISABLE_LIBASOUND_DLOPEN)
++else
++ MOZ_ALSA_LIBS=
++fi
++
+ AC_SUBST(MOZ_ALSA)
+
+ dnl ========================================================
+@@ -6046,7 +6284,9 @@ MOZ_ARG_DISABLE_BOOL(gamepad,
if test "$MOZ_GAMEPAD"; then
case "$OS_TARGET" in
Darwin)
@@ -399,8 +362,8 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+ fi
;;
WINNT)
- if test -z "$MOZ_HAS_WINSDK_WITH_D3D"; then
-@@ -8036,6 +8102,52 @@ if test "$USE_FC_FREETYPE"; then
+ MOZ_GAMEPAD_BACKEND=windows
+@@ -8066,6 +8306,49 @@ if test "$USE_FC_FREETYPE"; then
fi
dnl ========================================================
@@ -413,16 +376,15 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+MOZ_NATIVE_HARFBUZZ=)
+
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
-+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.25)
++ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.34)
+fi
+
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
-+AC_SUBST(MOZ_HARFBUZZ_CFLAGS)
-+AC_SUBST(MOZ_HARFBUZZ_LIBS)
+
+dnl ========================================================
+dnl Check for graphite2
+dnl ========================================================
++
+MOZ_ARG_WITH_BOOL(system-graphite2,
+[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)],
+MOZ_NATIVE_GRAPHITE2=1,
@@ -446,8 +408,6 @@ $NetBSD: patch-aa,v 1.19 2014/11/14 15:27:05 ryoon Exp $
+fi
+
+AC_SUBST(MOZ_NATIVE_GRAPHITE2)
-+AC_SUBST(MOZ_GRAPHITE2_CFLAGS)
-+AC_SUBST(MOZ_GRAPHITE2_LIBS)
+
+dnl ========================================================
dnl Check for pixman and cairo
diff --git a/mail/thunderbird/patches/patch-ak b/mail/thunderbird/patches/patch-ak
deleted file mode 100644
index 8c45c39f8f3..00000000000
--- a/mail/thunderbird/patches/patch-ak
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ak,v 1.10 2012/09/02 06:43:40 ryoon Exp $
-
---- mozilla/js/src/ctypes/libffi/configure.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/js/src/ctypes/libffi/configure
-@@ -11278,7 +11278,7 @@ case "$host" in
- powerpc-*-aix* | rs6000-*-aix*)
- TARGET=POWERPC_AIX; TARGETDIR=powerpc
- ;;
-- powerpc-*-freebsd* | powerpc-*-openbsd*)
-+ powerpc-*-freebsd* | powerpc-*-openbsd* | powerpc-*-netbsd*)
- TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
- ;;
- powerpc*-*-rtems*)
diff --git a/mail/thunderbird/patches/patch-ao b/mail/thunderbird/patches/patch-ao
index a5043484555..f4be2b30bb3 100644
--- a/mail/thunderbird/patches/patch-ao
+++ b/mail/thunderbird/patches/patch-ao
@@ -1,12 +1,14 @@
-$NetBSD: patch-ao,v 1.10 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-ao,v 1.11 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/toolkit/mozapps/installer/packager.mk.orig 2014-07-18 00:05:55.000000000 +0000
+--- mozilla/toolkit/mozapps/installer/packager.mk.orig 2015-06-08 17:49:32.000000000 +0000
+++ mozilla/toolkit/mozapps/installer/packager.mk
-@@ -790,7 +790,7 @@ endif
+@@ -122,8 +122,8 @@ endif
+ (cd $(DESTDIR)$(installdir) && tar -xf -)
$(NSINSTALL) -D $(DESTDIR)$(bindir)
$(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)
- ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
+- ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
-ifdef INSTALL_SDK # Here comes the hard part
++ ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)/$(MOZILLA_PKG_NAME)
+ifeq ($(MOZ_APP_NAME),xulrunner)
$(NSINSTALL) -D $(DESTDIR)$(includedir)
(cd $(DIST)/include && $(TAR) $(TAR_CREATE_FLAGS) - .) | \
diff --git a/mail/thunderbird/patches/patch-as b/mail/thunderbird/patches/patch-as
index 52aef24ca9a..c89115a157c 100644
--- a/mail/thunderbird/patches/patch-as
+++ b/mail/thunderbird/patches/patch-as
@@ -1,10 +1,10 @@
-$NetBSD: patch-as,v 1.16 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-as,v 1.17 2015/07/09 15:17:34 ryoon Exp $
Treat DragonFly like FreeBSD.
---- mozilla/js/src/configure.in.orig 2014-07-18 00:05:25.000000000 +0000
+--- mozilla/js/src/configure.in.orig 2015-06-08 17:49:21.000000000 +0000
+++ mozilla/js/src/configure.in
-@@ -2082,116 +2082,13 @@ AC_LANG_CPLUSPLUS
+@@ -2187,8 +2187,7 @@ AC_LANG_CPLUSPLUS
MOZ_CXX11
@@ -12,121 +12,9 @@ Treat DragonFly like FreeBSD.
-dnl Borrowed from glibc configure.in
+dnl Setup default hidden visibility and wrapped system headers.
dnl ===============================================================
- if test "$GNU_CC"; then
-- AC_CACHE_CHECK(for visibility(hidden) attribute,
-- ac_cv_visibility_hidden,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("hidden"))) = 1;
--EOF
-- ac_cv_visibility_hidden=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_hidden=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_hidden" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility(default) attribute,
-- ac_cv_visibility_default,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("default"))) = 1;
--EOF
-- ac_cv_visibility_default=no
-- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_default=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_default" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility pragma support,
-- ac_cv_visibility_pragma,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
-- int foo_hidden = 1;
--#pragma GCC visibility push(default)
-- int foo_default = 1;
--EOF
-- ac_cv_visibility_pragma=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
-- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
-- ac_cv_visibility_pragma=yes
-- fi
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_pragma" = "yes"; then
-- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
-- ac_cv_have_visibility_class_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--struct __attribute__ ((visibility ("default"))) TestStruct {
-- static void Init();
--};
--__attribute__ ((visibility ("default"))) void TestFunc() {
-- TestStruct::Init();
--}
--EOF
-- ac_cv_have_visibility_class_bug=no
-- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_class_bug=yes
-- else
-- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
-- ac_cv_have_visibility_class_bug=yes
-- fi
-- fi
-- rm -rf conftest.{c,S}
-- ])
--
-- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
-- ac_cv_have_visibility_builtin_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--#pragma GCC visibility push(default)
--#include <string.h>
--#pragma GCC visibility pop
--
--__attribute__ ((visibility ("default"))) void Func() {
-- char c[[100]];
-- memset(c, 0, sizeof(c));
--}
--EOF
-- ac_cv_have_visibility_builtin_bug=no
-- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_builtin_bug=yes
-- else
-- if test `grep -c "@PLT" conftest.S` = 0; then
-- ac_cv_visibility_builtin_bug=yes
-- fi
-- fi
-- rm -f conftest.{c,S}
-- ])
-- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
-- "$ac_cv_have_visibility_class_bug" = "no"; then
-- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-- WRAP_SYSTEM_INCLUDES=1
-- else
-- VISIBILITY_FLAGS='-fvisibility=hidden'
-- fi # have visibility pragma bug
-- fi # have visibility pragma
-- fi # have visibility(default) attribute
-- fi # have visibility(hidden) attribute
-+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
-+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
-+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-+ WRAP_SYSTEM_INCLUDES=1
- fi # GNU_CC
-
- # visibility hidden flag for Sun Studio on Solaris
-@@ -3162,7 +3059,7 @@ if test "$MOZ_MEMORY"; then
+ if test "$GNU_CC" -a "$OS_TARGET" != WINNT; then
+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
+@@ -3010,7 +3009,7 @@ if test "$MOZ_MEMORY"; then
*-darwin*)
AC_DEFINE(MOZ_MEMORY_DARWIN)
;;
@@ -135,7 +23,7 @@ Treat DragonFly like FreeBSD.
AC_DEFINE(MOZ_MEMORY_BSD)
;;
*-android*|*-linuxandroid*)
-@@ -4088,6 +3985,16 @@ MOZ_SUBCONFIGURE_ICU()
+@@ -3851,6 +3850,16 @@ MOZ_SUBCONFIGURE_ICU()
dnl ========================================================
dnl JavaScript shell
dnl ========================================================
@@ -150,5 +38,5 @@ Treat DragonFly like FreeBSD.
+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
+fi
- AC_HAVE_FUNCS(setlocale)
- AC_HAVE_FUNCS(localeconv)
+ MALLOC_HEADERS="malloc.h malloc_np.h malloc/malloc.h sys/malloc.h"
+ MALLOC_H=
diff --git a/mail/thunderbird/patches/patch-ax b/mail/thunderbird/patches/patch-ax
index d7274f22237..13f4fc4b904 100644
--- a/mail/thunderbird/patches/patch-ax
+++ b/mail/thunderbird/patches/patch-ax
@@ -1,56 +1,56 @@
-$NetBSD: patch-ax,v 1.14 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-ax,v 1.15 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/xpcom/base/nsStackWalk.cpp.orig 2014-07-18 00:05:57.000000000 +0000
+--- mozilla/xpcom/base/nsStackWalk.cpp.orig 2015-06-08 17:49:33.000000000 +0000
+++ mozilla/xpcom/base/nsStackWalk.cpp
-@@ -33,8 +33,8 @@ static CriticalAddress gCriticalAddress;
+@@ -34,12 +34,12 @@ static CriticalAddress gCriticalAddress;
+ #define _GNU_SOURCE
+ #endif
+
+-#if defined(HAVE_DLOPEN) || defined(XP_MACOSX)
++#if defined(HAVE_DLOPEN) || defined(XP_DARWIN)
#include <dlfcn.h>
#endif
-#define NSSTACKWALK_SUPPORTS_MACOSX \
-- (defined(XP_MACOSX) && \
+- (defined(XP_MACOSX) && \
+#define NSSTACKWALK_SUPPORTS_DARWIN \
-+ (defined(XP_DARWIN) && \
- (defined(__i386) || defined(__ppc__) || defined(HAVE__UNWIND_BACKTRACE)))
++ (defined(XP_DARWIN) && \
+ (defined(__i386) || defined(__ppc__) || defined(HAVE__UNWIND_BACKTRACE)))
#define NSSTACKWALK_SUPPORTS_LINUX \
-@@ -42,11 +42,11 @@ static CriticalAddress gCriticalAddress;
- ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
- defined(HAVE__UNWIND_BACKTRACE)))
-
--#define NSSTACKWALK_SUPPORTS_SOLARIS \
-+#define notNSSTACKWALK_SUPPORTS_SOLARIS \
- (defined(__sun) && \
- (defined(__sparc) || defined(sparc) || defined(__i386) || defined(i386)))
+@@ -47,7 +47,7 @@ static CriticalAddress gCriticalAddress;
+ ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
+ defined(HAVE__UNWIND_BACKTRACE)))
-#if NSSTACKWALK_SUPPORTS_MACOSX
+#if NSSTACKWALK_SUPPORTS_DARWIN
#include <pthread.h>
#include <CoreServices/CoreServices.h>
-@@ -838,7 +838,7 @@ NS_FormatCodeAddressDetails(void *aPC, c
+@@ -830,7 +830,7 @@ NS_DescribeCodeAddress(void* aPC, nsCode
+ }
- // WIN32 x86 stack walking code
- // i386 or PPC Linux stackwalking code or Solaris
--#elif HAVE_DLADDR && (HAVE__UNWIND_BACKTRACE || NSSTACKWALK_SUPPORTS_LINUX || NSSTACKWALK_SUPPORTS_SOLARIS || NSSTACKWALK_SUPPORTS_MACOSX)
-+#elif HAVE_DLADDR && (HAVE__UNWIND_BACKTRACE || NSSTACKWALK_SUPPORTS_LINUX || NSSTACKWALK_SUPPORTS_SOLARIS || NSSTACKWALK_SUPPORTS_DARWIN)
+ // i386 or PPC Linux stackwalking code
+-#elif HAVE_DLADDR && (HAVE__UNWIND_BACKTRACE || NSSTACKWALK_SUPPORTS_LINUX || NSSTACKWALK_SUPPORTS_MACOSX)
++#elif HAVE_DLADDR && (HAVE__UNWIND_BACKTRACE || NSSTACKWALK_SUPPORTS_LINUX || NSSTACKWALK_SUPPORTS_DARWIN)
#include <stdlib.h>
#include <string.h>
-@@ -1162,7 +1162,7 @@ FramePointerStackWalk(NS_WalkStackCallba
+@@ -901,7 +901,7 @@ FramePointerStackWalk(NS_WalkStackCallba
(long(next) & 3)) {
break;
}
-#if (defined(__ppc__) && defined(XP_MACOSX)) || defined(__powerpc64__)
+#if (defined(__ppc__) && defined(XP_DARWIN)) || defined(__powerpc64__)
// ppc mac or powerpc64 linux
- void *pc = *(bp+2);
+ void* pc = *(bp + 2);
bp += 3;
-@@ -1192,7 +1192,7 @@ FramePointerStackWalk(NS_WalkStackCallba
+@@ -931,7 +931,7 @@ FramePointerStackWalk(NS_WalkStackCallba
}
#define X86_OR_PPC (defined(__i386) || defined(PPC) || defined(__ppc__))
-#if X86_OR_PPC && (NSSTACKWALK_SUPPORTS_MACOSX || NSSTACKWALK_SUPPORTS_LINUX) // i386 or PPC Linux or Mac stackwalking code
+#if X86_OR_PPC && (NSSTACKWALK_SUPPORTS_DARWIN || NSSTACKWALK_SUPPORTS_LINUX) // i386 or PPC Linux or Mac stackwalking code
- EXPORT_XPCOM_API(nsresult)
+ XPCOM_API(nsresult)
NS_StackWalk(NS_WalkStackCallback aCallback, uint32_t aSkipFrames,
diff --git a/mail/thunderbird/patches/patch-ay b/mail/thunderbird/patches/patch-ay
index 80921f1b7f8..f719da2702d 100644
--- a/mail/thunderbird/patches/patch-ay
+++ b/mail/thunderbird/patches/patch-ay
@@ -1,6 +1,6 @@
-$NetBSD: patch-ay,v 1.11 2015/01/29 22:22:27 wiz Exp $
+$NetBSD: patch-ay,v 1.12 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/browser/app/nsBrowserApp.cpp.orig 2014-07-18 00:05:06.000000000 +0000
+--- mozilla/browser/app/nsBrowserApp.cpp.orig 2015-06-08 17:49:17.000000000 +0000
+++ mozilla/browser/app/nsBrowserApp.cpp
@@ -18,8 +18,10 @@
#include <unistd.h>
@@ -14,7 +14,7 @@ $NetBSD: patch-ay,v 1.11 2015/01/29 22:22:27 wiz Exp $
#include "MacQuirks.h"
#endif
-@@ -447,7 +449,7 @@ TimeStamp_Now()
+@@ -459,7 +461,7 @@ TimeStamp_Now()
}
return sGetTickCount64() * freq.QuadPart;
@@ -23,3 +23,11 @@ $NetBSD: patch-ay,v 1.11 2015/01/29 22:22:27 wiz Exp $
return mach_absolute_time();
#elif defined(HAVE_CLOCK_MONOTONIC)
struct timespec ts;
+@@ -606,6 +608,7 @@ int main(int argc, char* argv[])
+ TriggerQuirks();
+ #endif
+
++ setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
+ int gotCounters;
+ #if defined(XP_UNIX)
+ struct rusage initialRUsage;
diff --git a/mail/thunderbird/patches/patch-bi b/mail/thunderbird/patches/patch-bi
deleted file mode 100644
index fecec586c50..00000000000
--- a/mail/thunderbird/patches/patch-bi
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-bi,v 1.5 2012/11/23 07:17:54 ryoon Exp $
-
---- mozilla/gfx/angle/src/compiler/osinclude.h.orig 2012-11-19 22:42:19.000000000 +0000
-+++ mozilla/gfx/angle/src/compiler/osinclude.h
-@@ -16,6 +16,7 @@
- #define ANGLE_OS_WIN
- #elif defined(__APPLE__) || defined(__linux__) || \
- defined(__FreeBSD__) || defined(__OpenBSD__) || \
-+ defined(__NetBSD__) || defined(__DragonFly__) || \
- defined(__sun) || defined(ANDROID) || \
- defined(__GLIBC__) || defined(__GNU__) || \
- defined(__QNX__)
diff --git a/mail/thunderbird/patches/patch-calendar_lightning_Makefile.in b/mail/thunderbird/patches/patch-calendar_lightning_Makefile.in
index bb9a4ff5e23..c3727e7c178 100644
--- a/mail/thunderbird/patches/patch-calendar_lightning_Makefile.in
+++ b/mail/thunderbird/patches/patch-calendar_lightning_Makefile.in
@@ -1,11 +1,11 @@
-$NetBSD: patch-calendar_lightning_Makefile.in,v 1.2 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-calendar_lightning_Makefile.in,v 1.3 2015/07/09 15:17:34 ryoon Exp $
---- calendar/lightning/Makefile.in.orig 2014-07-18 00:04:05.000000000 +0000
+--- calendar/lightning/Makefile.in.orig 2015-06-08 17:40:38.000000000 +0000
+++ calendar/lightning/Makefile.in
-@@ -13,7 +13,7 @@ include $(DEPTH)/config/autoconf.mk
+@@ -6,7 +6,7 @@
# Lightning.
- export USE_EXTENSION_MANIFEST = 1
+ USE_EXTENSION_MANIFEST = 1
-XPI_PKGNAME = lightning-$(LIGHTNING_VERSION).$(AB_CD).$(MOZ_PKG_PLATFORM)
+XPI_PKGNAME = lightning
XPI_VERSION = $(LIGHTNING_VERSION)
diff --git a/mail/thunderbird/patches/patch-calendar_providers_gdata_Makefile.in b/mail/thunderbird/patches/patch-calendar_providers_gdata_Makefile.in
index 129e7c0c38d..bbdb82f0939 100644
--- a/mail/thunderbird/patches/patch-calendar_providers_gdata_Makefile.in
+++ b/mail/thunderbird/patches/patch-calendar_providers_gdata_Makefile.in
@@ -1,13 +1,13 @@
-$NetBSD: patch-calendar_providers_gdata_Makefile.in,v 1.2 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-calendar_providers_gdata_Makefile.in,v 1.3 2015/07/09 15:17:34 ryoon Exp $
---- calendar/providers/gdata/Makefile.in.orig 2014-07-18 00:04:05.000000000 +0000
+--- calendar/providers/gdata/Makefile.in.orig 2015-06-08 17:40:38.000000000 +0000
+++ calendar/providers/gdata/Makefile.in
-@@ -11,7 +11,7 @@ include $(DEPTH)/config/autoconf.mk
+@@ -4,7 +4,7 @@
- export USE_EXTENSION_MANIFEST = 1
+ USE_EXTENSION_MANIFEST = 1
DIST_FILES = install.rdf
-XPI_PKGNAME = gdata-provider-$(GDATA_VERSION).$(AB_CD).$(MOZ_PKG_PLATFORM)
+XPI_PKGNAME = gdata-provider
XPI_VERSION = $(GDATA_VERSION)
XPI_NO_UNIVERSAL = 1
-
+ XPI_EM_ID = {a62ef8ec-5fdc-40c2-873c-223b8a6925cc}
diff --git a/mail/thunderbird/patches/patch-config_baseconfig.mk b/mail/thunderbird/patches/patch-config_baseconfig.mk
deleted file mode 100644
index 793ad0a59b2..00000000000
--- a/mail/thunderbird/patches/patch-config_baseconfig.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-config_baseconfig.mk,v 1.2 2014/07/27 20:04:59 ryoon Exp $
-
---- config/baseconfig.mk.orig 2014-07-18 00:04:05.000000000 +0000
-+++ config/baseconfig.mk
-@@ -1,7 +1,7 @@
--includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+includedir := $(includedir)/$(MOZILLA_PKG_NAME)
-+idldir = $(datadir)/idl/$(MOZILLA_PKG_NAME)
-+installdir = $(libdir)/$(MOZILLA_PKG_NAME)
-+sdkdir = $(libdir)/$(MOZILLA_PKG_NAME)-sdk
- MOZILLA_SRCDIR = $(topsrcdir)/mozilla
- MOZDEPTH = $(DEPTH)/mozilla
- DIST = $(MOZDEPTH)/dist
diff --git a/mail/thunderbird/patches/patch-ipc_chromium_src_base_debug__util__posic.cc b/mail/thunderbird/patches/patch-ipc_chromium_src_base_debug__util__posic.cc
deleted file mode 100644
index b2ee8fd4bca..00000000000
--- a/mail/thunderbird/patches/patch-ipc_chromium_src_base_debug__util__posic.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ipc_chromium_src_base_debug__util__posic.cc,v 1.7 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/debug_util_posix.cc.orig 2013-10-23 22:09:00.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/debug_util_posix.cc
-@@ -107,7 +107,7 @@ bool DebugUtil::BeingDebugged() {
- return being_debugged;
- }
-
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_SOLARIS)
-
- // We can look in /proc/self/status for TracerPid. We are likely used in crash
- // handling, so we are careful not to use the heap or have side effects.
diff --git a/mail/thunderbird/patches/patch-ipc_glue_GeckoChildProcessHost.cpp b/mail/thunderbird/patches/patch-ipc_glue_GeckoChildProcessHost.cpp
index 1bdd8a71e39..7d47fe1c00c 100644
--- a/mail/thunderbird/patches/patch-ipc_glue_GeckoChildProcessHost.cpp
+++ b/mail/thunderbird/patches/patch-ipc_glue_GeckoChildProcessHost.cpp
@@ -1,6 +1,6 @@
-$NetBSD: patch-ipc_glue_GeckoChildProcessHost.cpp,v 1.6 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-ipc_glue_GeckoChildProcessHost.cpp,v 1.7 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/ipc/glue/GeckoChildProcessHost.cpp.orig 2014-07-18 00:05:24.000000000 +0000
+--- mozilla/ipc/glue/GeckoChildProcessHost.cpp.orig 2015-06-08 17:49:21.000000000 +0000
+++ mozilla/ipc/glue/GeckoChildProcessHost.cpp
@@ -4,7 +4,13 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -14,9 +14,9 @@ $NetBSD: patch-ipc_glue_GeckoChildProcessHost.cpp,v 1.6 2014/07/27 20:04:59 ryoo
+_Pragma("GCC visibility pop")
+#endif
- #if defined(XP_WIN) && defined(MOZ_CONTENT_SANDBOX)
- #include "sandboxBroker.h"
-@@ -548,7 +554,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
+ #include "base/command_line.h"
+ #include "base/string_util.h"
+@@ -547,7 +553,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
// and passing wstrings from one config to the other is unsafe. So
// we split the logic here.
@@ -25,7 +25,7 @@ $NetBSD: patch-ipc_glue_GeckoChildProcessHost.cpp,v 1.6 2014/07/27 20:04:59 ryoo
base::environment_map newEnvVars;
ChildPrivileges privs = mPrivileges;
if (privs == base::PRIVILEGES_DEFAULT) {
-@@ -671,7 +677,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
+@@ -686,7 +692,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
childArgv.push_back(pidstring);
#if defined(MOZ_CRASHREPORTER)
@@ -34,7 +34,7 @@ $NetBSD: patch-ipc_glue_GeckoChildProcessHost.cpp,v 1.6 2014/07/27 20:04:59 ryoo
int childCrashFd, childCrashRemapFd;
if (!CrashReporter::CreateNotificationPipeForChild(
&childCrashFd, &childCrashRemapFd))
-@@ -704,7 +710,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
+@@ -719,7 +725,7 @@ GeckoChildProcessHost::PerformAsyncLaunc
childArgv.push_back(childProcessType);
base::LaunchApp(childArgv, mFileMap,
diff --git a/mail/thunderbird/patches/patch-mail_components_shell_nsMailGNOMEIntegration.cpp b/mail/thunderbird/patches/patch-mail_components_shell_nsMailGNOMEIntegration.cpp
index c5f03eb70c6..3234b11c468 100644
--- a/mail/thunderbird/patches/patch-mail_components_shell_nsMailGNOMEIntegration.cpp
+++ b/mail/thunderbird/patches/patch-mail_components_shell_nsMailGNOMEIntegration.cpp
@@ -1,16 +1,17 @@
-$NetBSD: patch-mail_components_shell_nsMailGNOMEIntegration.cpp,v 1.1 2014/08/10 12:52:08 abs Exp $
+$NetBSD: patch-mail_components_shell_nsMailGNOMEIntegration.cpp,v 1.2 2015/07/09 15:17:34 ryoon Exp $
Avoid warning storing a size_t in an unsigned int on LP64
---- mail/components/shell/nsMailGNOMEIntegration.cpp.orig 2014-07-18 00:04:06.000000000 +0000
+--- mail/components/shell/nsMailGNOMEIntegration.cpp.orig 2015-06-08 17:40:38.000000000 +0000
+++ mail/components/shell/nsMailGNOMEIntegration.cpp
-@@ -50,15 +50,15 @@ struct AppTypeAssociation {
+@@ -50,16 +50,16 @@ struct AppTypeAssociation {
static const AppTypeAssociation sAppTypes[] = {
{
- nsIShellService::MAIL, sMailProtocols, ArrayLength(sMailProtocols),
+ nsIShellService::MAIL, sMailProtocols, (unsigned int)ArrayLength(sMailProtocols),
- "message/rfc822", "eml"
+ "message/rfc822",
+ nullptr // don't associate .eml extension, as that breaks printing those
},
{
- nsIShellService::NEWS, sNewsProtocols, ArrayLength(sNewsProtocols),
diff --git a/mail/thunderbird/patches/patch-mail_installer_package-manifest.in b/mail/thunderbird/patches/patch-mail_installer_package-manifest.in
index 0b7edb64f27..0500a30ede2 100644
--- a/mail/thunderbird/patches/patch-mail_installer_package-manifest.in
+++ b/mail/thunderbird/patches/patch-mail_installer_package-manifest.in
@@ -1,9 +1,9 @@
-$NetBSD: patch-mail_installer_package-manifest.in,v 1.1 2013/12/02 15:01:04 richard Exp $
+$NetBSD: patch-mail_installer_package-manifest.in,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mail/installer/package-manifest.in.orig 2013-11-18 16:43:05.000000000 +0000
+--- mail/installer/package-manifest.in.orig 2015-06-08 17:40:38.000000000 +0000
+++ mail/installer/package-manifest.in
-@@ -673,7 +673,7 @@
- @BINPATH@/components/pippki.xpt
+@@ -717,7 +717,7 @@
+ #endif
; for Solaris SPARC
-#ifdef SOLARIS
diff --git a/mail/thunderbird/patches/patch-mail_installer_removed-files.in b/mail/thunderbird/patches/patch-mail_installer_removed-files.in
index 5060fa45227..4fbb1a66b35 100644
--- a/mail/thunderbird/patches/patch-mail_installer_removed-files.in
+++ b/mail/thunderbird/patches/patch-mail_installer_removed-files.in
@@ -1,49 +1,47 @@
-$NetBSD: patch-mail_installer_removed-files.in,v 1.1 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mail_installer_removed-files.in,v 1.2 2015/07/09 15:17:34 ryoon Exp $
-* Fix make install, I am not sure...
-
---- mail/installer/removed-files.in.orig 2013-10-23 22:00:46.000000000 +0000
+--- mail/installer/removed-files.in.orig 2015-06-08 17:40:38.000000000 +0000
+++ mail/installer/removed-files.in
-@@ -181,42 +181,6 @@ greprefs/all.js
- greprefs/security-prefs.js
- greprefs/xpinstall.js
- greprefs/
--hyphenation/
--hyphenation/hyph_af.dic
--hyphenation/hyph_bg.dic
--hyphenation/hyph_ca.dic
--hyphenation/hyph_cy.dic
--hyphenation/hyph_da.dic
--hyphenation/hyph_de-1901.dic
--hyphenation/hyph_de-1996.dic
--hyphenation/hyph_de-CH.dic
--hyphenation/hyph_en_US.dic
--hyphenation/hyph_eo.dic
--hyphenation/hyph_es.dic
--hyphenation/hyph_et.dic
--hyphenation/hyph_fi.dic
--hyphenation/hyph_fr.dic
--hyphenation/hyph_gl.dic
--hyphenation/hyph_hr.dic
--hyphenation/hyph_hsb.dic
--hyphenation/hyph_hu.dic
--hyphenation/hyph_ia.dic
--hyphenation/hyph_is.dic
--hyphenation/hyph_it.dic
--hyphenation/hyph_kmr.dic
--hyphenation/hyph_la.dic
--hyphenation/hyph_lt.dic
--hyphenation/hyph_mn.dic
--hyphenation/hyph_nb.dic
--hyphenation/hyph_nl.dic
--hyphenation/hyph_nn.dic
--hyphenation/hyph_pt.dic
--hyphenation/hyph_ru.dic
--hyphenation/hyph_sh.dic
--hyphenation/hyph_sl.dic
--hyphenation/hyph_sv.dic
--hyphenation/hyph_tr.dic
--hyphenation/hyph_uk.dic
+@@ -198,42 +198,6 @@
+ @DIR_MACOS@greprefs/security-prefs.js
+ @DIR_MACOS@greprefs/xpinstall.js
+ @DIR_MACOS@greprefs/
+-@DIR_MACOS@hyphenation/
+-@DIR_MACOS@hyphenation/hyph_af.dic
+-@DIR_MACOS@hyphenation/hyph_bg.dic
+-@DIR_MACOS@hyphenation/hyph_ca.dic
+-@DIR_MACOS@hyphenation/hyph_cy.dic
+-@DIR_MACOS@hyphenation/hyph_da.dic
+-@DIR_MACOS@hyphenation/hyph_de-1901.dic
+-@DIR_MACOS@hyphenation/hyph_de-1996.dic
+-@DIR_MACOS@hyphenation/hyph_de-CH.dic
+-@DIR_MACOS@hyphenation/hyph_en_US.dic
+-@DIR_MACOS@hyphenation/hyph_eo.dic
+-@DIR_MACOS@hyphenation/hyph_es.dic
+-@DIR_MACOS@hyphenation/hyph_et.dic
+-@DIR_MACOS@hyphenation/hyph_fi.dic
+-@DIR_MACOS@hyphenation/hyph_fr.dic
+-@DIR_MACOS@hyphenation/hyph_gl.dic
+-@DIR_MACOS@hyphenation/hyph_hr.dic
+-@DIR_MACOS@hyphenation/hyph_hsb.dic
+-@DIR_MACOS@hyphenation/hyph_hu.dic
+-@DIR_MACOS@hyphenation/hyph_ia.dic
+-@DIR_MACOS@hyphenation/hyph_is.dic
+-@DIR_MACOS@hyphenation/hyph_it.dic
+-@DIR_MACOS@hyphenation/hyph_kmr.dic
+-@DIR_MACOS@hyphenation/hyph_la.dic
+-@DIR_MACOS@hyphenation/hyph_lt.dic
+-@DIR_MACOS@hyphenation/hyph_mn.dic
+-@DIR_MACOS@hyphenation/hyph_nb.dic
+-@DIR_MACOS@hyphenation/hyph_nl.dic
+-@DIR_MACOS@hyphenation/hyph_nn.dic
+-@DIR_MACOS@hyphenation/hyph_pt.dic
+-@DIR_MACOS@hyphenation/hyph_ru.dic
+-@DIR_MACOS@hyphenation/hyph_sh.dic
+-@DIR_MACOS@hyphenation/hyph_sl.dic
+-@DIR_MACOS@hyphenation/hyph_sv.dic
+-@DIR_MACOS@hyphenation/hyph_tr.dic
+-@DIR_MACOS@hyphenation/hyph_uk.dic
#ifdef MOZ_WIDGET_GTK2
icons/mozicon128.png
diff --git a/mail/thunderbird/patches/patch-mk b/mail/thunderbird/patches/patch-mk
index 5d9bdde871f..381831a8470 100644
--- a/mail/thunderbird/patches/patch-mk
+++ b/mail/thunderbird/patches/patch-mk
@@ -1,32 +1,14 @@
-$NetBSD: patch-mk,v 1.10 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mk,v 1.11 2015/07/09 15:17:34 ryoon Exp $
Treat DragonFly like FreeBSD.
---- mozilla/config/rules.mk.orig 2014-07-18 00:05:11.000000000 +0000
+--- mozilla/config/rules.mk.orig 2015-06-08 17:49:23.000000000 +0000
+++ mozilla/config/rules.mk
-@@ -832,6 +832,7 @@ endif
+@@ -761,6 +761,7 @@ endif
ifdef DTRACE_PROBE_OBJ
EXTRA_DEPS += $(DTRACE_PROBE_OBJ)
OBJS += $(DTRACE_PROBE_OBJ)
+EXCLUDED_OBJS += $(DTRACE_PROBE_OBJ)
endif
- $(filter %.$(LIB_SUFFIX),$(LIBRARY)): $(OBJS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
-@@ -867,7 +868,7 @@ ifdef DTRACE_PROBE_OBJ
- ifndef DTRACE_LIB_DEPENDENT
- NON_DTRACE_OBJS := $(filter-out $(DTRACE_PROBE_OBJ),$(OBJS))
- $(DTRACE_PROBE_OBJ): $(NON_DTRACE_OBJS)
-- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
-+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
- endif
- endif
- endif
-@@ -885,7 +886,7 @@ ifndef INCREMENTAL_LINKER
- endif
- ifdef DTRACE_LIB_DEPENDENT
- ifndef XP_MACOSX
-- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
-+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
- endif
- $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS))
- @$(RM) $(DTRACE_PROBE_OBJ)
+ $(filter %.$(LIB_SUFFIX),$(LIBRARY)): $(OBJS) $(STATIC_LIBS_DEPS) $(filter %.$(LIB_SUFFIX),$(EXTRA_LIBS)) $(EXTRA_DEPS) $(GLOBAL_DEPS)
diff --git a/mail/thunderbird/patches/patch-ml b/mail/thunderbird/patches/patch-ml
index f68ea2f886a..f0f052c6593 100644
--- a/mail/thunderbird/patches/patch-ml
+++ b/mail/thunderbird/patches/patch-ml
@@ -1,33 +1,16 @@
-$NetBSD: patch-ml,v 1.7 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-ml,v 1.8 2015/07/09 15:17:34 ryoon Exp $
Treat DragonFly like FreeBSD.
---- mozilla/js/src/Makefile.in.orig 2014-07-18 00:05:24.000000000 +0000
+--- mozilla/js/src/Makefile.in.orig 2015-06-08 17:49:55.000000000 +0000
+++ mozilla/js/src/Makefile.in
-@@ -20,8 +20,6 @@ run_for_side_effects := $(shell echo 'MA
- STATIC_LIBRARY_NAME = js_static
- LIBS = $(NSPR_LIBS)
+@@ -16,9 +16,6 @@ TOPLEVEL_BUILD := 1
+
+ run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
-DIST_INSTALL = 1
+-NO_EXPAND_LIBS = 1
-
- ifdef JS_STANDALONE
- SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt)
- endif
-@@ -226,7 +224,7 @@ endif
- ifdef MOZ_SHARED_ICU
- EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS)
- else
--SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS)
-+SHARED_LIBRARY_LIBS += $(filter-out -L% -l% -Wl%,$(MOZ_ICU_LIBS))
- endif
-
- # Prevent floating point errors caused by VC++ optimizations
-@@ -350,7 +348,7 @@ endif
-
- ifdef HAVE_DTRACE
- $(CURDIR)/javascript-trace.h: $(srcdir)/devtools/javascript-trace.d
-- dtrace -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
-+ dtrace -x nolibs -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
- sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
- -e '/const/!s/char \*/const char */g' \
- javascript-trace.h.in > javascript-trace.h
+ ifdef JS_HAS_CTYPES
+ ifdef MOZ_NATIVE_FFI
+ LOCAL_INCLUDES = $(MOZ_FFI_CFLAGS)
diff --git a/mail/thunderbird/patches/patch-mozilla_accessible_atk_Platform.cpp b/mail/thunderbird/patches/patch-mozilla_accessible_atk_Platform.cpp
new file mode 100644
index 00000000000..13a4547b2b1
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_accessible_atk_Platform.cpp
@@ -0,0 +1,98 @@
+$NetBSD: patch-mozilla_accessible_atk_Platform.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/accessible/atk/Platform.cpp.orig 2015-06-08 17:49:16.000000000 +0000
++++ mozilla/accessible/atk/Platform.cpp
+@@ -18,8 +18,9 @@
+ #include <dbus/dbus.h>
+ #endif
+ #include <gtk/gtk.h>
++
+ #if (MOZ_WIDGET_GTK == 3)
+-#include <atk-bridge.h>
++extern "C" __attribute__((weak,visibility("default"))) int atk_bridge_adaptor_init(int*, char **[]);
+ #endif
+
+ using namespace mozilla;
+@@ -46,7 +47,6 @@ static gulong sToplevel_hide_hook = 0;
+
+ GType g_atk_hyperlink_impl_type = G_TYPE_INVALID;
+
+-#if (MOZ_WIDGET_GTK == 2)
+ struct GnomeAccessibilityModule
+ {
+ const char *libName;
+@@ -67,11 +67,13 @@ static GnomeAccessibilityModule sAtkBrid
+ "gnome_accessibility_module_shutdown", nullptr
+ };
+
++#if (MOZ_WIDGET_GTK == 2)
+ static GnomeAccessibilityModule sGail = {
+ "libgail.so", nullptr,
+ "gnome_accessibility_module_init", nullptr,
+ "gnome_accessibility_module_shutdown", nullptr
+ };
++#endif
+
+ static nsresult
+ LoadGtkModule(GnomeAccessibilityModule& aModule)
+@@ -98,7 +100,11 @@ LoadGtkModule(GnomeAccessibilityModule&
+ else
+ subLen = loc2 - loc1;
+ nsAutoCString sub(Substring(libPath, loc1, subLen));
++#if (MOZ_WIDGET_GTK == 2)
+ sub.AppendLiteral("/gtk-2.0/modules/");
++#else
++ sub.AppendLiteral("/gtk-3.0/modules/");
++#endif
+ sub.Append(aModule.libName);
+ aModule.lib = PR_LoadLibrary(sub.get());
+ if (aModule.lib)
+@@ -123,7 +129,6 @@ LoadGtkModule(GnomeAccessibilityModule&
+ }
+ return NS_OK;
+ }
+-#endif // (MOZ_WIDGET_GTK == 2)
+
+ void
+ a11y::PlatformInit()
+@@ -175,14 +180,17 @@ a11y::PlatformInit()
+
+ // Init atk-bridge now
+ PR_SetEnv("NO_AT_BRIDGE=0");
+-#if (MOZ_WIDGET_GTK == 2)
+- rv = LoadGtkModule(sAtkBridge);
+- if (NS_SUCCEEDED(rv)) {
+- (*sAtkBridge.init)();
+- }
+-#else
+- atk_bridge_adaptor_init(nullptr, nullptr);
++#if (MOZ_WIDGET_GTK == 3)
++ if (atk_bridge_adaptor_init) {
++ atk_bridge_adaptor_init(nullptr, nullptr);
++ } else
+ #endif
++ {
++ nsresult rv = LoadGtkModule(sAtkBridge);
++ if (NS_SUCCEEDED(rv)) {
++ (*sAtkBridge.init)();
++ }
++ }
+
+ if (!sToplevel_event_hook_added) {
+ sToplevel_event_hook_added = true;
+@@ -210,7 +218,6 @@ a11y::PlatformShutdown()
+ sToplevel_hide_hook);
+ }
+
+-#if (MOZ_WIDGET_GTK == 2)
+ if (sAtkBridge.lib) {
+ // Do not shutdown/unload atk-bridge,
+ // an exit function registered will take care of it
+@@ -221,6 +228,7 @@ a11y::PlatformShutdown()
+ sAtkBridge.init = nullptr;
+ sAtkBridge.shutdown = nullptr;
+ }
++#if (MOZ_WIDGET_GTK == 2)
+ if (sGail.lib) {
+ // Do not shutdown gail because
+ // 1) Maybe it's not init-ed by us. e.g. GtkEmbed
diff --git a/mail/thunderbird/patches/patch-mozilla_b2g_installer_package-manifest.in b/mail/thunderbird/patches/patch-mozilla_b2g_installer_package-manifest.in
index 8da92e1e765..0e4b4b0d01a 100644
--- a/mail/thunderbird/patches/patch-mozilla_b2g_installer_package-manifest.in
+++ b/mail/thunderbird/patches/patch-mozilla_b2g_installer_package-manifest.in
@@ -1,10 +1,10 @@
-$NetBSD: patch-mozilla_b2g_installer_package-manifest.in,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_b2g_installer_package-manifest.in,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/b2g/installer/package-manifest.in.orig 2014-07-18 00:05:06.000000000 +0000
+--- mozilla/b2g/installer/package-manifest.in.orig 2015-06-08 17:49:17.000000000 +0000
+++ mozilla/b2g/installer/package-manifest.in
-@@ -565,7 +565,7 @@
- @BINPATH@/components/MozKeyboard.js
- @BINPATH@/components/InputMethod.manifest
+@@ -638,7 +638,7 @@
+ @BINPATH@/components/EngineeringModeAPI.js
+ @BINPATH@/components/EngineeringModeService.js
-#ifdef MOZ_DEBUG
+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
diff --git a/mail/thunderbird/patches/patch-mozilla_browser_app_profile_firefox.js b/mail/thunderbird/patches/patch-mozilla_browser_app_profile_firefox.js
deleted file mode 100644
index 46e1c0d66db..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_browser_app_profile_firefox.js
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-mozilla_browser_app_profile_firefox.js,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/browser/app/profile/firefox.js.orig 2013-10-23 22:08:48.000000000 +0000
-+++ mozilla/browser/app/profile/firefox.js
-@@ -354,6 +354,7 @@ pref("browser.search.log", false);
- pref("browser.search.order.1", "chrome://browser-region/locale/region.properties");
- pref("browser.search.order.2", "chrome://browser-region/locale/region.properties");
- pref("browser.search.order.3", "chrome://browser-region/locale/region.properties");
-+pref("browser.search.order.4", "chrome://browser-region/locale/region.properties");
-
- // search bar results always open in a new tab
- pref("browser.search.openintab", false);
diff --git a/mail/thunderbird/patches/patch-mozilla_browser_installer_package-manifest.in b/mail/thunderbird/patches/patch-mozilla_browser_installer_package-manifest.in
index f1b10f2c3f5..d4aab71c4db 100644
--- a/mail/thunderbird/patches/patch-mozilla_browser_installer_package-manifest.in
+++ b/mail/thunderbird/patches/patch-mozilla_browser_installer_package-manifest.in
@@ -1,17 +1,17 @@
-$NetBSD: patch-mozilla_browser_installer_package-manifest.in,v 1.2 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_browser_installer_package-manifest.in,v 1.3 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/browser/installer/package-manifest.in.orig 2014-07-18 00:05:09.000000000 +0000
+--- mozilla/browser/installer/package-manifest.in.orig 2015-06-08 17:49:21.000000000 +0000
+++ mozilla/browser/installer/package-manifest.in
-@@ -575,7 +575,7 @@
- @BINPATH@/components/MozKeyboard.js
- @BINPATH@/components/InputMethod.manifest
+@@ -618,7 +618,7 @@
+ @RESPATH@/components/MozKeyboard.js
+ @RESPATH@/components/InputMethod.manifest
-#ifdef MOZ_DEBUG
+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
- @BINPATH@/components/TestInterfaceJS.js
- @BINPATH@/components/TestInterfaceJS.manifest
+ @RESPATH@/components/TestInterfaceJS.js
+ @RESPATH@/components/TestInterfaceJS.manifest
#endif
-@@ -737,7 +737,7 @@
+@@ -800,7 +800,7 @@
#endif
; for Solaris SPARC
diff --git a/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_chrome_browser-region_region.properties b/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_chrome_browser-region_region.properties
deleted file mode 100644
index 9b757b9e89c..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_chrome_browser-region_region.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-mozilla_browser_locales_en-US_chrome_browser-region_region.properties,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/browser/locales/en-US/chrome/browser-region/region.properties.orig 2013-10-23 22:08:49.000000000 +0000
-+++ mozilla/browser/locales/en-US/chrome/browser-region/region.properties
-@@ -9,6 +9,7 @@ browser.search.defaultenginename=Google
- browser.search.order.1=Google
- browser.search.order.2=Yahoo
- browser.search.order.3=Bing
-+browser.search.order.4=DuckDuckGo
-
- # This is the default set of web based feed handlers shown in the reader
- # selection UI
diff --git a/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_searchplugins_duckduckgo.xml b/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_searchplugins_duckduckgo.xml
deleted file mode 100644
index a69e42b3791..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_searchplugins_duckduckgo.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-mozilla_browser_locales_en-US_searchplugins_duckduckgo.xml,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/browser/locales/en-US/searchplugins/duckduckgo.xml.orig 2013-11-11 22:24:13.000000000 +0000
-+++ mozilla/browser/locales/en-US/searchplugins/duckduckgo.xml
-@@ -0,0 +1,11 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
-+<ShortName>DuckDuckGo</ShortName>
-+<Description>We believe in better search and not tracking.</Description>
-+<InputEncoding>UTF-8</InputEncoding>
-+<Image height="16" width="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</Image>
-+<Url type="text/html" method="GET" template="https://duckduckgo.com/">
-+<Param name="q" value="{searchTerms}"/>
-+<Param name="t" value="freebsd"/>
-+</Url>
-+<SearchForm>https://duckduckgo.com/</SearchForm>
-+</SearchPlugin>
diff --git a/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_searchplugins_list.txt b/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_searchplugins_list.txt
deleted file mode 100644
index 9c106e8f46d..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_browser_locales_en-US_searchplugins_list.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD: patch-mozilla_browser_locales_en-US_searchplugins_list.txt,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/browser/locales/en-US/searchplugins/list.txt.orig 2013-10-23 22:08:49.000000000 +0000
-+++ mozilla/browser/locales/en-US/searchplugins/list.txt
-@@ -1,5 +1,6 @@
- amazondotcom
- bing
-+duckduckgo
- eBay
- google
- twitter
diff --git a/mail/thunderbird/patches/patch-mozilla_build_autoconf_nss.m4 b/mail/thunderbird/patches/patch-mozilla_build_autoconf_nss.m4
index 7b85f178478..d6d8751e4df 100644
--- a/mail/thunderbird/patches/patch-mozilla_build_autoconf_nss.m4
+++ b/mail/thunderbird/patches/patch-mozilla_build_autoconf_nss.m4
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_build_autoconf_nss.m4,v 1.3 2012/09/02 06:43:41 ryoon Exp $
+$NetBSD: patch-mozilla_build_autoconf_nss.m4,v 1.4 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/build/autoconf/nss.m4.orig 2012-08-25 00:30:58.000000000 +0000
+--- mozilla/build/autoconf/nss.m4.orig 2015-06-08 17:49:22.000000000 +0000
+++ mozilla/build/autoconf/nss.m4
@@ -22,18 +22,18 @@ AC_ARG_WITH(nss-exec-prefix,
if test -n "$nss_config_exec_prefix"; then
@@ -35,12 +35,12 @@ $NetBSD: patch-mozilla_build_autoconf_nss.m4,v 1.3 2012/09/02 06:43:41 ryoon Exp
- nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
+ nss_config_major_version=`$NSS_CONFIG $nss_config_args nss --modversion | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\(\.\([[0-9]]*\)\)\{0,1\}/\1/'`
- nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
+ nss_config_minor_version=`$NSS_CONFIG $nss_config_args nss --modversion | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\(\.\([[0-9]]*\)\)\{0,1\}/\2/'`
- nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
+ nss_config_micro_version=`$NSS_CONFIG $nss_config_args nss --modversion | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- min_nss_major_version=`echo $min_nss_version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\(\.\([[0-9]]*\)\)\{0,1\}/\4/'`
+ if test -z "$nss_config_micro_version"; then
+ nss_config_micro_version="0"
diff --git a/mail/thunderbird/patches/patch-mozilla_build_gyp.mozbuild b/mail/thunderbird/patches/patch-mozilla_build_gyp.mozbuild
index 5eb20af69d1..3ba9f681e1c 100644
--- a/mail/thunderbird/patches/patch-mozilla_build_gyp.mozbuild
+++ b/mail/thunderbird/patches/patch-mozilla_build_gyp.mozbuild
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_build_gyp.mozbuild,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_build_gyp.mozbuild,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/build/gyp.mozbuild.orig 2014-07-18 00:05:10.000000000 +0000
+--- mozilla/build/gyp.mozbuild.orig 2015-06-08 17:49:22.000000000 +0000
+++ mozilla/build/gyp.mozbuild
@@ -12,6 +12,7 @@ gyp_vars = {
'have_ethtool_cmd_speed_hi': 1 if CONFIG['MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI'] else 0,
@@ -10,3 +10,24 @@ $NetBSD: patch-mozilla_build_gyp.mozbuild,v 1.1 2014/07/27 20:04:59 ryoon Exp $
# basic stuff for everything
'include_internal_video_render': 0,
'clang_use_chrome_plugins': 0,
+@@ -87,7 +88,7 @@ flavors = {
+ 'WINNT': 'win',
+ 'Android': 'linux' if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' else 'android',
+ 'Linux': 'linux',
+- 'Darwin': 'mac' if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa' else 'ios',
++ 'Darwin': 'ios' if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cairo-uikit' else 'mac',
+ 'SunOS': 'solaris',
+ 'GNU/kFreeBSD': 'freebsd',
+ 'DragonFly': 'dragonfly',
+@@ -122,5 +123,11 @@ if CONFIG['INTEL_ARCHITECTURE']:
+ if not CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSSE3'] or not CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSE4_1']:
+ gyp_vars['yuv_disable_asm'] = 1
+
++# MacOS X SDK version should be able to configure with ./configure
++# --enable-macos-target=VER
++if CONFIG['MACOSX_DEPLOYMENT_TARGET']:
++ gyp_vars['mac_sdk_min'] = CONFIG['MACOSX_DEPLOYMENT_TARGET']
++ gyp_vars['mac_deployment_target'] = CONFIG['MACOSX_DEPLOYMENT_TARGET']
++
+ if CONFIG['MACOS_SDK_DIR']:
+ gyp_vars['mac_sdk_path'] = CONFIG['MACOS_SDK_DIR']
diff --git a/mail/thunderbird/patches/patch-mozilla_config_Makefile.in b/mail/thunderbird/patches/patch-mozilla_config_Makefile.in
index 6427a9c1087..8fdbde89569 100644
--- a/mail/thunderbird/patches/patch-mozilla_config_Makefile.in
+++ b/mail/thunderbird/patches/patch-mozilla_config_Makefile.in
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_config_Makefile.in,v 1.2 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_config_Makefile.in,v 1.3 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/config/Makefile.in.orig 2014-07-18 00:05:10.000000000 +0000
+--- mozilla/config/Makefile.in.orig 2015-06-08 17:49:23.000000000 +0000
+++ mozilla/config/Makefile.in
-@@ -77,6 +77,15 @@ export:: $(export-preqs)
+@@ -77,6 +77,16 @@ export:: $(export-preqs)
-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
@@ -12,6 +12,7 @@ $NetBSD: patch-mozilla_config_Makefile.in,v 1.2 2014/07/27 20:04:59 ryoon Exp $
+ -DMOZ_NATIVE_THEORA=$(MOZ_NATIVE_THEORA) \
+ -DMOZ_NATIVE_VORBIS=$(MOZ_NATIVE_VORBIS) \
+ -DMOZ_NATIVE_TREMOR=$(MOZ_NATIVE_TREMOR) \
++ -DMOZ_NATIVE_CELT=$(MOZ_NATIVE_CELT) \
+ -DMOZ_NATIVE_OPUS=$(MOZ_NATIVE_OPUS) \
+ -DMOZ_NATIVE_SPEEX=$(MOZ_NATIVE_SPEEX) \
+ -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \
diff --git a/mail/thunderbird/patches/patch-mozilla_config_external_moz.build b/mail/thunderbird/patches/patch-mozilla_config_external_moz.build
index 09079993df6..957b74db1c7 100644
--- a/mail/thunderbird/patches/patch-mozilla_config_external_moz.build
+++ b/mail/thunderbird/patches/patch-mozilla_config_external_moz.build
@@ -1,15 +1,18 @@
-$NetBSD: patch-mozilla_config_external_moz.build,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_config_external_moz.build,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/config/external/moz.build.orig 2014-07-18 00:05:11.000000000 +0000
+--- mozilla/config/external/moz.build.orig 2015-06-08 17:49:23.000000000 +0000
+++ mozilla/config/external/moz.build
-@@ -15,13 +15,19 @@ if CONFIG['MOZ_UPDATER']:
- if not CONFIG['MOZ_NATIVE_BZ2']:
- external_dirs += ['modules/libbz2']
+@@ -19,10 +19,19 @@ if CONFIG['MOZ_UPDATER']:
+ # There's no "native brotli" yet, but probably in the future...
+ external_dirs += ['modules/brotli']
-if CONFIG['MOZ_VORBIS']:
+if not CONFIG['MOZ_NATIVE_OGG']:
+ external_dirs += ['media/libogg']
+
++if not CONFIG['MOZ_NATIVE_CELT'] or not CONFIG['MOZ_NATIVE_OPUS']:
++ external_dirs += ['media/libopus']
++
+if not CONFIG['MOZ_NATIVE_THEORA']:
+ external_dirs += ['media/libtheora']
+
@@ -20,12 +23,8 @@ $NetBSD: patch-mozilla_config_external_moz.build,v 1.1 2014/07/27 20:04:59 ryoon
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']:
external_dirs += ['media/libtremor']
--if CONFIG['MOZ_OPUS']:
-+if CONFIG['MOZ_OPUS'] and not CONFIG['MOZ_NATIVE_OPUS']:
- external_dirs += ['media/libopus']
-
if CONFIG['MOZ_WEBM']:
-@@ -36,13 +42,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
+@@ -37,15 +46,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
if not CONFIG['MOZ_NATIVE_PNG']:
external_dirs += ['media/libpng']
@@ -39,9 +38,11 @@ $NetBSD: patch-mozilla_config_external_moz.build,v 1.1 2014/07/27 20:04:59 ryoon
'media/kiss_fft',
'media/libcubeb',
- 'media/libogg',
+- 'media/libopus',
- 'media/libtheora',
- 'media/libspeex_resampler',
+ 'media/libstagefright',
- 'media/libsoundtouch',
]
- PARALLEL_DIRS += ['../../' + i for i in external_dirs]
+ DIRS += ['../../' + i for i in external_dirs]
diff --git a/mail/thunderbird/patches/patch-mozilla_config_system-headers b/mail/thunderbird/patches/patch-mozilla_config_system-headers
index d2a31c2fa4e..7cc78b05a40 100644
--- a/mail/thunderbird/patches/patch-mozilla_config_system-headers
+++ b/mail/thunderbird/patches/patch-mozilla_config_system-headers
@@ -1,17 +1,37 @@
-$NetBSD: patch-mozilla_config_system-headers,v 1.4 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_config_system-headers,v 1.5 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/config/system-headers.orig 2014-07-18 00:05:11.000000000 +0000
+--- mozilla/config/system-headers.orig 2015-06-08 17:49:23.000000000 +0000
+++ mozilla/config/system-headers
-@@ -1048,8 +1048,6 @@ X11/Xlocale.h
+@@ -189,7 +189,6 @@ asm/signal.h
+ ASRegistry.h
+ assert.h
+ atk/atk.h
+-atk-bridge.h
+ atlcom.h
+ atlconv.h
+ atlctl.cpp
+@@ -636,6 +635,7 @@ libgnomevfs/gnome-vfs-mime-handlers.h
+ libgnomevfs/gnome-vfs-mime-utils.h
+ libgnomevfs/gnome-vfs-ops.h
+ libgnomevfs/gnome-vfs-standard-callbacks.h
++libv4l2.h
+ lib$routines.h
+ limits
+ limits.h
+@@ -1266,7 +1266,6 @@ X11/Xlocale.h
X11/Xos.h
X11/Xutil.h
zmouse.h
--speex/speex_resampler.h
-soundtouch/SoundTouch.h
#if MOZ_NATIVE_PNG==1
png.h
#endif
-@@ -1117,6 +1115,8 @@ ogg/ogg.h
+@@ -1328,10 +1327,13 @@ vorbis/codec.h
+ theora/theoradec.h
+ tremor/ivorbiscodec.h
+ speex/speex_resampler.h
++soundtouch/SoundTouch.h
+ ogg/ogg.h
ogg/os_types.h
nestegg/nestegg.h
cubeb/cubeb.h
@@ -20,7 +40,7 @@ $NetBSD: patch-mozilla_config_system-headers,v 1.4 2014/07/27 20:04:59 ryoon Exp
#endif
gst/gst.h
gst/app/gstappsink.h
-@@ -1145,3 +1145,37 @@ unicode/utypes.h
+@@ -1360,3 +1362,43 @@ unicode/utypes.h
#endif
libutil.h
unwind.h
@@ -46,6 +66,12 @@ $NetBSD: patch-mozilla_config_system-headers,v 1.4 2014/07/27 20:04:59 ryoon Exp
+#if MOZ_NATIVE_TREMOR==1
+tremor/ivorbiscodec.h
+#endif
++#if MOZ_NATIVE_CELT==1
++celt.h
++celt_header.h
++celt/celt.h
++celt/celt_header.h
++#endif
+#if MOZ_NATIVE_OPUS==1
+opus.h
+opus_multistream.h
diff --git a/mail/thunderbird/patches/patch-mozilla_content_base_src_moz.build b/mail/thunderbird/patches/patch-mozilla_content_base_src_moz.build
deleted file mode 100644
index 15fd46eee29..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_content_base_src_moz.build
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-mozilla_content_base_src_moz.build,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/content/base/src/moz.build.orig 2014-07-18 00:05:11.000000000 +0000
-+++ mozilla/content/base/src/moz.build
-@@ -181,6 +181,9 @@ SOURCES += [
- 'nsObjectLoadingContent.cpp',
- ]
-
-+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
-+ SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']]
-+
- EXTRA_COMPONENTS += [
- 'contentAreaDropListener.js',
- 'contentAreaDropListener.manifest',
diff --git a/mail/thunderbird/patches/patch-mozilla_content_media_AudioStream.cpp b/mail/thunderbird/patches/patch-mozilla_content_media_AudioStream.cpp
deleted file mode 100644
index e54185fcb19..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_content_media_AudioStream.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-mozilla_content_media_AudioStream.cpp,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/content/media/AudioStream.cpp.orig 2014-07-18 00:05:12.000000000 +0000
-+++ mozilla/content/media/AudioStream.cpp
-@@ -13,7 +13,6 @@
- #include "mozilla/Mutex.h"
- #include <algorithm>
- #include "mozilla/Preferences.h"
--#include "soundtouch/SoundTouch.h"
- #include "Latency.h"
-
- namespace mozilla {
diff --git a/mail/thunderbird/patches/patch-mozilla_content_media_AudioStream.h b/mail/thunderbird/patches/patch-mozilla_content_media_AudioStream.h
deleted file mode 100644
index 9a76637b85a..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_content_media_AudioStream.h
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD: patch-mozilla_content_media_AudioStream.h,v 1.2 2014/08/13 22:36:04 joerg Exp $
-
---- mozilla/content/media/AudioStream.h.orig 2014-07-18 00:05:12.000000000 +0000
-+++ mozilla/content/media/AudioStream.h
-@@ -17,6 +17,7 @@
- #include "mozilla/RefPtr.h"
-
- #include "cubeb/cubeb.h"
-+#include "soundtouch/SoundTouch.h"
-
- template <>
- class nsAutoRefTraits<cubeb_stream> : public nsPointerRefTraits<cubeb_stream>
-@@ -25,10 +26,6 @@ public:
- static void Release(cubeb_stream* aStream) { cubeb_stream_destroy(aStream); }
- };
-
--namespace soundtouch {
--class SoundTouch;
--}
--
- namespace mozilla {
-
- class AudioStream;
diff --git a/mail/thunderbird/patches/patch-mozilla_content_media_Makefile.in b/mail/thunderbird/patches/patch-mozilla_content_media_Makefile.in
deleted file mode 100644
index 523ca37cb2e..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_content_media_Makefile.in
+++ /dev/null
@@ -1,36 +0,0 @@
-$NetBSD: patch-mozilla_content_media_Makefile.in,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/content/media/Makefile.in.orig 2014-07-18 00:05:12.000000000 +0000
-+++ mozilla/content/media/Makefile.in
-@@ -6,3 +6,31 @@ include $(topsrcdir)/config/rules.mk
-
- CFLAGS += $(GSTREAMER_CFLAGS)
- CXXFLAGS += $(GSTREAMER_CFLAGS)
-+
-+ifdef MOZ_NATIVE_OGG
-+CXXFLAGS += $(MOZ_OGG_CFLAGS)
-+endif
-+
-+ifdef MOZ_NATIVE_THEORA
-+CXXFLAGS += $(MOZ_THEORA_CFLAGS)
-+endif
-+
-+ifdef MOZ_NATIVE_VORBIS
-+CXXFLAGS += $(MOZ_VORBIS_CFLAGS)
-+endif
-+
-+ifdef MOZ_NATIVE_TREMOR
-+CXXFLAGS += $(MOZ_TREMOR_CFLAGS)
-+endif
-+
-+ifdef MOZ_NATIVE_OPUS
-+CXXFLAGS += $(MOZ_OPUS_CFLAGS)
-+endif
-+
-+ifdef MOZ_NATIVE_SPEEX
-+CXXFLAGS += $(MOZ_SPEEX_CFLAGS)
-+endif
-+
-+ifdef MOZ_NATIVE_SOUNDTOUCH
-+CXXFLAGS += $(MOZ_SOUNDTOUCH_CFLAGS)
-+endif
diff --git a/mail/thunderbird/patches/patch-mozilla_content_media_MediaData.cpp b/mail/thunderbird/patches/patch-mozilla_content_media_MediaData.cpp
deleted file mode 100644
index 420532c9d5f..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_content_media_MediaData.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-$NetBSD: patch-mozilla_content_media_MediaData.cpp,v 1.1 2014/11/30 10:25:50 markd Exp $
-
-Fix build with gcc 4.9
-https://bugzilla.mozilla.org/show_bug.cgi?id=999496
-
---- mozilla/content/media/MediaData.cpp.orig 2014-07-18 00:05:12.000000000 +0000
-+++ mozilla/content/media/MediaData.cpp
-@@ -38,6 +38,16 @@ AudioData::EnsureAudioBuffer()
- }
- }
-
-+size_t
-+AudioData::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
-+{
-+ size_t size = aMallocSizeOf(this) + aMallocSizeOf(mAudioData);
-+ if (mAudioBuffer) {
-+ size += mAudioBuffer->SizeOfIncludingThis(aMallocSizeOf);
-+ }
-+ return size;
-+}
-+
- static bool
- ValidatePlane(const VideoData::YCbCrBuffer::Plane& aPlane)
- {
diff --git a/mail/thunderbird/patches/patch-mozilla_content_media_MediaData.h b/mail/thunderbird/patches/patch-mozilla_content_media_MediaData.h
deleted file mode 100644
index 5c8575b0d10..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_content_media_MediaData.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD: patch-mozilla_content_media_MediaData.h,v 1.1 2014/11/30 10:25:50 markd Exp $
-
-Fix build with gcc 4.9
-https://bugzilla.mozilla.org/show_bug.cgi?id=999496
-
---- mozilla/content/media/MediaData.h.orig 2014-07-18 00:05:12.000000000 +0000
-+++ mozilla/content/media/MediaData.h
-@@ -80,13 +80,7 @@ public:
- MOZ_COUNT_DTOR(AudioData);
- }
-
-- size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const {
-- size_t size = aMallocSizeOf(this) + aMallocSizeOf(mAudioData);
-- if (mAudioBuffer) {
-- size += mAudioBuffer->SizeOfIncludingThis(aMallocSizeOf);
-- }
-- return size;
-- }
-+ size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const;
-
- // If mAudioBuffer is null, creates it from mAudioData.
- void EnsureAudioBuffer();
diff --git a/mail/thunderbird/patches/patch-mozilla_content_media_fmp4_demuxer_bit__reader.cc b/mail/thunderbird/patches/patch-mozilla_content_media_fmp4_demuxer_bit__reader.cc
deleted file mode 100644
index 171a1dd3628..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_content_media_fmp4_demuxer_bit__reader.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_content_media_fmp4_demuxer_bit__reader.cc,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/content/media/fmp4/demuxer/bit_reader.cc.orig 2014-07-18 00:05:12.000000000 +0000
-+++ mozilla/content/media/fmp4/demuxer/bit_reader.cc
-@@ -9,7 +9,7 @@ namespace mp4_demuxer {
-
- BitReader::BitReader(const uint8_t* data, off_t size)
- : data_(data), bytes_left_(size), num_remaining_bits_in_curr_byte_(0) {
-- DCHECK(data_ != nullptr && bytes_left_ > 0);
-+ DCHECK(data_ != 0 && bytes_left_ > 0);
-
- UpdateCurrByte();
- }
diff --git a/mail/thunderbird/patches/patch-mozilla_dom_base_moz.build b/mail/thunderbird/patches/patch-mozilla_dom_base_moz.build
new file mode 100644
index 00000000000..990e088950f
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_dom_base_moz.build
@@ -0,0 +1,14 @@
+$NetBSD: patch-mozilla_dom_base_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/dom/base/moz.build.orig 2015-06-08 17:49:24.000000000 +0000
++++ mozilla/dom/base/moz.build
+@@ -368,6 +368,9 @@ if CONFIG['INTEL_ARCHITECTURE']:
+ SOURCES += ['nsTextFragmentSSE2.cpp']
+ SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
+
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ EXTRA_COMPONENTS += [
+ 'ConsoleAPI.manifest',
+ 'ConsoleAPIStorage.js',
diff --git a/mail/thunderbird/patches/patch-mozilla_dom_media_AudioStream.h b/mail/thunderbird/patches/patch-mozilla_dom_media_AudioStream.h
new file mode 100644
index 00000000000..213d1b80ae6
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_dom_media_AudioStream.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_dom_media_AudioStream.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/dom/media/AudioStream.h.orig 2015-06-08 17:49:28.000000000 +0000
++++ mozilla/dom/media/AudioStream.h
+@@ -17,7 +17,7 @@
+ #include "CubebUtils.h"
+
+ namespace soundtouch {
+-class SoundTouch;
++class MOZ_IMPORT_API SoundTouch;
+ }
+
+ namespace mozilla {
diff --git a/mail/thunderbird/patches/patch-mozilla_dom_media_gmp_GMPChild.cpp b/mail/thunderbird/patches/patch-mozilla_dom_media_gmp_GMPChild.cpp
new file mode 100644
index 00000000000..fd1418cacfe
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_dom_media_gmp_GMPChild.cpp
@@ -0,0 +1,30 @@
+$NetBSD: patch-mozilla_dom_media_gmp_GMPChild.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/dom/media/gmp/GMPChild.cpp.orig 2015-06-08 17:49:28.000000000 +0000
++++ mozilla/dom/media/gmp/GMPChild.cpp
+@@ -79,21 +79,14 @@ GetFileBase(const std::string& aPluginPa
+ }
+ #endif
+
+- nsCOMPtr<nsIFile> parent;
+- rv = aFileBase->GetParent(getter_AddRefs(parent));
+- if (NS_FAILED(rv)) {
+- return false;
+- }
+-
+- nsAutoString parentLeafName;
+- rv = parent->GetLeafName(parentLeafName);
+- if (NS_FAILED(rv)) {
++ nsAutoString leafName;
++ if (NS_FAILED(aFileBase->GetLeafName(leafName))) {
+ return false;
+ }
+
+- aBaseName = Substring(parentLeafName,
++ aBaseName = Substring(leafName,
+ 4,
+- parentLeafName.Length() - 1);
++ leafName.Length() - 1);
+ return true;
+ }
+
diff --git a/mail/thunderbird/patches/patch-mozilla_dom_media_gmp_GMPParent.cpp b/mail/thunderbird/patches/patch-mozilla_dom_media_gmp_GMPParent.cpp
new file mode 100644
index 00000000000..3fd2eeffe43
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_dom_media_gmp_GMPParent.cpp
@@ -0,0 +1,33 @@
+$NetBSD: patch-mozilla_dom_media_gmp_GMPParent.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/dom/media/gmp/GMPParent.cpp.orig 2015-06-08 17:49:28.000000000 +0000
++++ mozilla/dom/media/gmp/GMPParent.cpp
+@@ -100,23 +100,16 @@ GMPParent::Init(GeckoMediaPluginService
+ mService = aService;
+ mDirectory = aPluginDir;
+
+- // aPluginDir is <profile-dir>/<gmp-plugin-id>/<version>
+- // where <gmp-plugin-id> should be gmp-gmpopenh264
+- nsCOMPtr<nsIFile> parent;
+- nsresult rv = aPluginDir->GetParent(getter_AddRefs(parent));
+- if (NS_FAILED(rv)) {
+- return rv;
+- }
+- nsAutoString parentLeafName;
+- rv = parent->GetLeafName(parentLeafName);
++ nsAutoString leafname;
++ nsresult rv = aPluginDir->GetLeafName(leafname);
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
+ LOGD(("%s::%s: %p for %s", __CLASS__, __FUNCTION__, this,
+- NS_LossyConvertUTF16toASCII(parentLeafName).get()));
++ NS_LossyConvertUTF16toASCII(leafname).get()));
+
+- MOZ_ASSERT(parentLeafName.Length() > 4);
+- mName = Substring(parentLeafName, 4);
++ MOZ_ASSERT(leafname.Length() > 4);
++ mName = Substring(leafname, 4);
+
+ return ReadGMPMetaData();
+ }
diff --git a/mail/thunderbird/patches/patch-mozilla_content_media_gstreamer_GStreamerAllocator.cpp b/mail/thunderbird/patches/patch-mozilla_dom_media_gstreamer_GStreamerAllocator.cpp
index aa7c02dfb65..2f1d7d19634 100644
--- a/mail/thunderbird/patches/patch-mozilla_content_media_gstreamer_GStreamerAllocator.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_dom_media_gstreamer_GStreamerAllocator.cpp
@@ -1,7 +1,7 @@
-$NetBSD: patch-mozilla_content_media_gstreamer_GStreamerAllocator.cpp,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_dom_media_gstreamer_GStreamerAllocator.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/content/media/gstreamer/GStreamerAllocator.cpp.orig 2014-07-18 00:05:12.000000000 +0000
-+++ mozilla/content/media/gstreamer/GStreamerAllocator.cpp
+--- mozilla/dom/media/gstreamer/GStreamerAllocator.cpp.orig 2015-06-08 17:49:28.000000000 +0000
++++ mozilla/dom/media/gstreamer/GStreamerAllocator.cpp
@@ -51,7 +51,6 @@ typedef struct
#pragma GCC diagnostic ignored "-Wunused-function"
G_DEFINE_TYPE(MozGfxMemoryAllocator, moz_gfx_memory_allocator, GST_TYPE_ALLOCATOR);
diff --git a/mail/thunderbird/patches/patch-mozilla_dom_media_moz.build b/mail/thunderbird/patches/patch-mozilla_dom_media_moz.build
new file mode 100644
index 00000000000..b892370bf92
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_dom_media_moz.build
@@ -0,0 +1,32 @@
+$NetBSD: patch-mozilla_dom_media_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/dom/media/moz.build.orig 2015-06-08 17:49:28.000000000 +0000
++++ mozilla/dom/media/moz.build
+@@ -280,6 +280,27 @@ if CONFIG['ANDROID_VERSION'] > '15':
+ CFLAGS += CONFIG['GSTREAMER_CFLAGS']
+ CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
+
++if CONFIG['MOZ_NATIVE_OGG']:
++ CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS']
++
++if CONFIG['MOZ_NATIVE_THEORA']:
++ CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS']
++
++if CONFIG['MOZ_NATIVE_VORBIS']:
++ CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS']
++
++if CONFIG['MOZ_NATIVE_TREMOR']:
++ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
++
++if CONFIG['MOZ_NATIVE_OPUS']:
++ CXXFLAGS += CONFIG['MOZ_OPUS_CFLAGS']
++
++if CONFIG['MOZ_NATIVE_SPEEX']:
++ CXXFLAGS += CONFIG['MOZ_SPEEX_CFLAGS']
++
++if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
++ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
++
+ include('/ipc/chromium/chromium-config.mozbuild')
+
+ # Suppress some GCC warnings being treated as errors:
diff --git a/mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp b/mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp
index c1ac7e8b2c4..e284ac8ae1b 100644
--- a/mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp,v 1.5 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp,v 1.6 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/dom/plugins/ipc/PluginModuleChild.cpp.orig 2013-10-23 22:08:54.000000000 +0000
+--- mozilla/dom/plugins/ipc/PluginModuleChild.cpp.orig 2015-06-08 17:49:29.000000000 +0000
+++ mozilla/dom/plugins/ipc/PluginModuleChild.cpp
-@@ -203,7 +203,7 @@ PluginModuleChild::Init(const std::strin
+@@ -325,7 +325,7 @@ PluginModuleChild::InitForChrome(const s
// TODO: use PluginPRLibrary here
@@ -11,21 +11,21 @@ $NetBSD: patch-mozilla_dom_plugins_ipc_PluginModuleChild.cpp,v 1.5 2013/11/12 20
mShutdownFunc =
(NP_PLUGINSHUTDOWN) PR_FindFunctionSymbol(mLibrary, "NP_Shutdown");
-@@ -1834,7 +1834,7 @@ PluginModuleChild::AnswerNP_GetEntryPoin
- PLUGIN_LOG_DEBUG_METHOD;
+@@ -1887,7 +1887,7 @@ PluginModuleChild::AnswerNP_GetEntryPoin
AssertPluginThread();
+ MOZ_ASSERT(mIsChrome);
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
return true;
#elif defined(OS_WIN) || defined(OS_MACOSX)
*_retval = mGetEntryPointsFunc(&mFunctions);
-@@ -1863,7 +1863,7 @@ PluginModuleChild::AnswerNP_Initialize(c
- SendBackUpXResources(FileDescriptor(xSocketFd));
+@@ -1932,7 +1932,7 @@ PluginModuleChild::DoNP_Initialize(const
#endif
+ NPError result;
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- *_retval = mInitializeFunc(&sBrowserFuncs, &mFunctions);
- return true;
+ result = mInitializeFunc(&sBrowserFuncs, &mFunctions);
#elif defined(OS_WIN) || defined(OS_MACOSX)
+ result = mInitializeFunc(&sBrowserFuncs);
diff --git a/mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp b/mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp
index b5e8d69cb5c..c0b0272f64a 100644
--- a/mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp
@@ -1,11 +1,11 @@
-$NetBSD: patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_dom_plugins_ipc_PluginProcessChild.cpp,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/dom/plugins/ipc/PluginProcessChild.cpp.orig 2014-07-18 00:05:16.000000000 +0000
+--- mozilla/dom/plugins/ipc/PluginProcessChild.cpp.orig 2015-06-08 17:49:29.000000000 +0000
+++ mozilla/dom/plugins/ipc/PluginProcessChild.cpp
-@@ -42,7 +42,7 @@ namespace plugins {
- bool
- PluginProcessChild::Init()
+@@ -56,7 +56,7 @@ PluginProcessChild::Init()
{
+ nsDebugImpl::SetMultiprocessMode("NPAPI");
+
-#if defined(XP_MACOSX)
+#if defined(MOZ_WIDGET_COCOA)
// Remove the trigger for "dyld interposing" that we added in
diff --git a/mail/thunderbird/patches/patch-mozilla_dom_system_OSFileConstants.cpp b/mail/thunderbird/patches/patch-mozilla_dom_system_OSFileConstants.cpp
index 7c1bcc355b2..7471660d491 100644
--- a/mail/thunderbird/patches/patch-mozilla_dom_system_OSFileConstants.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_dom_system_OSFileConstants.cpp
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_dom_system_OSFileConstants.cpp,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_dom_system_OSFileConstants.cpp,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/dom/system/OSFileConstants.cpp.orig 2014-07-18 00:05:16.000000000 +0000
+--- mozilla/dom/system/OSFileConstants.cpp.orig 2015-06-08 17:49:30.000000000 +0000
+++ mozilla/dom/system/OSFileConstants.cpp
@@ -9,6 +9,10 @@
@@ -13,7 +13,17 @@ $NetBSD: patch-mozilla_dom_system_OSFileConstants.cpp,v 1.1 2014/07/27 20:04:59
#if defined(XP_UNIX)
#include "unistd.h"
#include "dirent.h"
-@@ -26,9 +30,9 @@
+@@ -18,7 +22,9 @@
+ #define statvfs statfs
+ #else
+ #include "sys/statvfs.h"
++#if !(defined(__NetBSD__) && (__NetBSD_Version__ < 600000000))
+ #include <spawn.h>
++#endif // !NetBSD 5.*
+ #endif // defined(ANDROID)
+ #endif // defined(XP_UNIX)
+
+@@ -26,9 +32,9 @@
#include <linux/fadvise.h>
#endif // defined(XP_LINUX)
@@ -25,12 +35,12 @@ $NetBSD: patch-mozilla_dom_system_OSFileConstants.cpp,v 1.1 2014/07/27 20:04:59
#if defined(XP_WIN)
#include <windows.h>
-@@ -564,10 +568,10 @@ static const dom::ConstantSpec gLibcProp
+@@ -588,10 +594,10 @@ static const dom::ConstantSpec gLibcProp
// The size of |fsblkcnt_t|.
{ "OSFILE_SIZEOF_FSBLKCNT_T", INT_TO_JSVAL(sizeof (fsblkcnt_t)) },
-#if !defined(ANDROID)
-+#if !defined(ANDROID) && (defined(__NetBSD_) && (__NetBSD_Version__ < 600000000))
++#if !defined(ANDROID) && !(defined(__NetBSD__) && (__NetBSD_Version__ < 600000000))
// The size of |posix_spawn_file_actions_t|.
{ "OSFILE_SIZEOF_POSIX_SPAWN_FILE_ACTIONS_T", INT_TO_JSVAL(sizeof (posix_spawn_file_actions_t)) },
-#endif // !defined(ANDROID)
@@ -38,7 +48,7 @@ $NetBSD: patch-mozilla_dom_system_OSFileConstants.cpp,v 1.1 2014/07/27 20:04:59
// Defining |dirent|.
// Size
-@@ -627,7 +631,7 @@ static const dom::ConstantSpec gLibcProp
+@@ -660,7 +666,7 @@ static const dom::ConstantSpec gLibcProp
{ "OSFILE_SIZEOF_STATVFS", INT_TO_JSVAL(sizeof (struct statvfs)) },
diff --git a/mail/thunderbird/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp b/mail/thunderbird/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp
index 69e34fe6b43..13d6ae7d2ee 100644
--- a/mail/thunderbird/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp
@@ -1,16 +1,18 @@
-$NetBSD: patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp,v 1.1 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_extensions_spellcheck_hunspell_src_mozHunspell.cpp,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/extensions/spellcheck/hunspell/src/mozHunspell.cpp.orig 2013-10-23 22:08:56.000000000 +0000
+--- mozilla/extensions/spellcheck/hunspell/src/mozHunspell.cpp.orig 2015-06-08 17:49:33.000000000 +0000
+++ mozilla/extensions/spellcheck/hunspell/src/mozHunspell.cpp
-@@ -417,6 +417,12 @@ mozHunspell::LoadDictionaryList()
+@@ -400,6 +400,14 @@ mozHunspell::LoadDictionaryList(bool aNo
}
}
+ // load system hunspell dictionaries
-+ nsIFile* hunDir;
++ nsCOMPtr<nsIFile> hunDir;
+ NS_NewNativeLocalFile(NS_LITERAL_CSTRING("@PREFIX@/share/hunspell"),
-+ true, &hunDir);
-+ LoadDictionariesFromDir(hunDir);
++ true, getter_AddRefs(hunDir));
++ if (hunDir) {
++ LoadDictionariesFromDir(hunDir);
++ }
+
// find dictionaries from extensions requiring restart
nsCOMPtr<nsISimpleEnumerator> dictDirs;
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_graphite2_moz-gr-update.sh b/mail/thunderbird/patches/patch-mozilla_gfx_graphite2_moz-gr-update.sh
new file mode 100644
index 00000000000..b9ce16a977e
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_gfx_graphite2_moz-gr-update.sh
@@ -0,0 +1,20 @@
+$NetBSD: patch-mozilla_gfx_graphite2_moz-gr-update.sh,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/gfx/graphite2/moz-gr-update.sh.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/gfx/graphite2/moz-gr-update.sh
+@@ -23,8 +23,14 @@ echo "\nSee" $0 "for update procedure.\n
+ find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
+ find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
+
++# closest tag/release to require for system version
++TAG=$(cd ../graphitedev/ && hg parents --template {latesttag})
++
++perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$TAG/ and tr/./,/ \
++ if /GR2_VERSION_REQUIRE/" configure.in
++
+ # summarize what's been touched
+-echo Updated to $CHANGESET.
++echo Updated to $CHANGESET \($TAG for --with-system-graphite2\)
+ echo Here is what changed in the gfx/graphite2 directory:
+ echo
+
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_skia_Makefile.in b/mail/thunderbird/patches/patch-mozilla_gfx_skia_Makefile.in
deleted file mode 100644
index d3421c366c5..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_gfx_skia_Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mozilla_gfx_skia_Makefile.in,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/gfx/skia/Makefile.in.orig 2014-07-18 00:05:20.000000000 +0000
-+++ mozilla/gfx/skia/Makefile.in
-@@ -15,6 +15,10 @@ ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
- OS_CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PANGO_CFLAGS) $(CAIRO_FT_CFLAGS)
- endif
-
-+ifdef MOZ_NATIVE_HARFBUZZ
-+OS_CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
-+endif
-+
- include $(topsrcdir)/config/rules.mk
-
- ifeq ($(CPU_ARCH)_$(GNU_CC),arm_1)
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_skia_generate__mozbuild.py b/mail/thunderbird/patches/patch-mozilla_gfx_skia_generate__mozbuild.py
new file mode 100644
index 00000000000..af8f434c61a
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_gfx_skia_generate__mozbuild.py
@@ -0,0 +1,14 @@
+$NetBSD: patch-mozilla_gfx_skia_generate__mozbuild.py,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/gfx/skia/generate_mozbuild.py.orig 2015-06-08 17:49:16.000000000 +0000
++++ mozilla/gfx/skia/generate_mozbuild.py
+@@ -142,6 +142,9 @@ if CONFIG['GNU_CXX']:
+ if not CONFIG['CLANG_CXX']:
+ CXXFLAGS += ['-Wno-logical-op']
+
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
+ CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
+ CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_skia_moz.build b/mail/thunderbird/patches/patch-mozilla_gfx_skia_moz.build
new file mode 100644
index 00000000000..bf7e148c3dc
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_gfx_skia_moz.build
@@ -0,0 +1,14 @@
+$NetBSD: patch-mozilla_gfx_skia_moz.build,v 1.3 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/gfx/skia/moz.build.orig 2015-06-08 17:49:16.000000000 +0000
++++ mozilla/gfx/skia/moz.build
+@@ -970,6 +970,9 @@ if CONFIG['GNU_CXX']:
+ if not CONFIG['CLANG_CXX']:
+ CXXFLAGS += ['-Wno-logical-op']
+
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
+ CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
+ CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_thebes_Makefile.in b/mail/thunderbird/patches/patch-mozilla_gfx_thebes_Makefile.in
deleted file mode 100644
index b089cd967f8..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_gfx_thebes_Makefile.in
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD: patch-mozilla_gfx_thebes_Makefile.in,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/gfx/thebes/Makefile.in.orig 2014-07-18 00:05:21.000000000 +0000
-+++ mozilla/gfx/thebes/Makefile.in
-@@ -13,6 +13,14 @@ DEFINES := $(filter-out -DUNICODE,$(DEFI
- CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
- CFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
-
-+ifdef MOZ_NATIVE_GRAPHITE2
-+CXXFLAGS += $(MOZ_GRAPHITE2_CFLAGS)
-+endif
-+
-+ifdef MOZ_NATIVE_HARFBUZZ
-+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
-+endif
-+
- ifeq ($(MOZ_WIDGET_TOOLKIT),android)
- CXXFLAGS += $(CAIRO_FT_CFLAGS)
- endif
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_thebes_moz.build b/mail/thunderbird/patches/patch-mozilla_gfx_thebes_moz.build
new file mode 100644
index 00000000000..b16b992052f
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_gfx_thebes_moz.build
@@ -0,0 +1,17 @@
+$NetBSD: patch-mozilla_gfx_thebes_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/gfx/thebes/moz.build.orig 2015-06-08 17:49:17.000000000 +0000
++++ mozilla/gfx/thebes/moz.build
+@@ -287,6 +287,12 @@ CXXFLAGS += CONFIG['TK_CFLAGS']
+ CFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
+ CFLAGS += CONFIG['TK_CFLAGS']
+
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
++if CONFIG['MOZ_NATIVE_GRAPHITE2']:
++ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk', 'qt'):
+ CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
+
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_ycbcr_moz.build b/mail/thunderbird/patches/patch-mozilla_gfx_ycbcr_moz.build
new file mode 100644
index 00000000000..e7e7ec1611d
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_gfx_ycbcr_moz.build
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_gfx_ycbcr_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/gfx/ycbcr/moz.build.orig 2015-06-08 17:49:17.000000000 +0000
++++ mozilla/gfx/ycbcr/moz.build
+@@ -57,7 +57,7 @@ else:
+
+ if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']:
+ SOURCES += [
+- 'yuv_row_arm.s',
++ 'yuv_row_arm.S',
+ ]
+ SOURCES += [
+ 'yuv_convert_arm.cpp',
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_ycbcr_yuv__row__arm.S b/mail/thunderbird/patches/patch-mozilla_gfx_ycbcr_yuv__row__arm.S
new file mode 100644
index 00000000000..a47dc5f7685
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_gfx_ycbcr_yuv__row__arm.S
@@ -0,0 +1,317 @@
+$NetBSD: patch-mozilla_gfx_ycbcr_yuv__row__arm.S,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/gfx/ycbcr/yuv_row_arm.S.orig 2015-07-06 19:52:50.000000000 +0000
++++ mozilla/gfx/ycbcr/yuv_row_arm.S
+@@ -0,0 +1,312 @@
++/* This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
++#define UNWIND
++#else
++#define UNWIND @
++#endif
++
++ .arch armv7-a
++ .fpu neon
++/* Allow to build on targets not supporting neon, and force the object file
++ * target to avoid bumping the final binary target */
++ .object_arch armv4t
++ .text
++ .align
++
++ .balign 64
++YCbCr42xToRGB565_DITHER03_CONSTS_NEON:
++ .short -14240
++ .short -14240+384
++ .short 8672
++ .short 8672+192
++ .short -17696
++ .short -17696+384
++ .byte 102
++ .byte 25
++ .byte 52
++ .byte 129
++YCbCr42xToRGB565_DITHER12_CONSTS_NEON:
++ .short -14240+128
++ .short -14240+256
++ .short 8672+64
++ .short 8672+128
++ .short -17696+128
++ .short -17696+256
++ .byte 102
++ .byte 25
++ .byte 52
++ .byte 129
++YCbCr42xToRGB565_DITHER21_CONSTS_NEON:
++ .short -14240+256
++ .short -14240+128
++ .short 8672+128
++ .short 8672+64
++ .short -17696+256
++ .short -17696+128
++ .byte 102
++ .byte 25
++ .byte 52
++ .byte 129
++YCbCr42xToRGB565_DITHER30_CONSTS_NEON:
++ .short -14240+384
++ .short -14240
++ .short 8672+192
++ .short 8672
++ .short -17696+384
++ .short -17696
++ .byte 102
++ .byte 25
++ .byte 52
++ .byte 129
++
++@ void ScaleYCbCr42xToRGB565_BilinearY_Row_NEON(
++@ yuv2rgb565_row_scale_bilinear_ctx *ctx, int dither);
++@
++@ ctx = {
++@ uint16_t *rgb_row; /*r0*/
++@ const uint8_t *y_row; /*r1*/
++@ const uint8_t *u_row; /*r2*/
++@ const uint8_t *v_row; /*r3*/
++@ int y_yweight; /*r4*/
++@ int y_pitch; /*r5*/
++@ int width; /*r6*/
++@ int source_x0_q16; /*r7*/
++@ int source_dx_q16; /*r8*/
++@ int source_uv_xoffs_q16; /*r9*/
++@ };
++ .global ScaleYCbCr42xToRGB565_BilinearY_Row_NEON
++ .type ScaleYCbCr42xToRGB565_BilinearY_Row_NEON, %function
++ .balign 64
++ .cfi_startproc
++ UNWIND .fnstart
++ScaleYCbCr42xToRGB565_BilinearY_Row_NEON:
++ STMFD r13!,{r4-r9,r14} @ 8 words.
++ ADR r14,YCbCr42xToRGB565_DITHER03_CONSTS_NEON
++ VPUSH {Q4-Q7} @ 16 words.
++ ADD r14,r14,r1, LSL #4 @ Select the dither table to use
++ LDMIA r0, {r0-r9}
++ @ Set up image index registers.
++ ADD r12,r8, r8
++ VMOV.I32 D16,#0 @ Q8 = < 2| 2| 0| 0>*source_dx_q16
++ VDUP.32 D17,r12
++ ADD r12,r12,r12
++ VTRN.32 D16,D17 @ Q2 = < 2| 0| 2| 0>*source_dx_q16
++ VDUP.32 D19,r12 @ Q9 = < 4| 4| ?| ?>*source_dx_q16
++ ADD r12,r12,r12
++ VDUP.32 Q0, r7 @ Q0 = < 1| 1| 1| 1>*source_x0_q16
++ VADD.I32 D17,D17,D19 @ Q8 = < 6| 4| 2| 0>*source_dx_q16
++ CMP r8, #0 @ If source_dx_q16 is negative...
++ VDUP.32 Q9, r12 @ Q9 = < 8| 8| 8| 8>*source_dx_q16
++ ADDLT r7, r7, r8, LSL #4 @ Make r7 point to the end of the block
++ VADD.I32 Q0, Q0, Q8 @ Q0 = < 6| 4| 2| 0>*source_dx_q16+source_x0_q16
++ SUBLT r7, r7, r8 @ (i.e., the lowest address we'll use)
++ VADD.I32 Q1, Q0, Q9 @ Q1 = <14|12|10| 8>*source_dx_q16+source_x0_q16
++ VDUP.I32 Q9, r8 @ Q8 = < 1| 1| 1| 1>*source_dx_q16
++ VADD.I32 Q2, Q0, Q9 @ Q2 = < 7| 5| 3| 1>*source_dx_q16+source_x0_q16
++ VADD.I32 Q3, Q1, Q9 @ Q3 = <15|13|11| 9>*source_dx_q16+source_x0_q16
++ VLD1.64 {D30,D31},[r14,:128] @ Load some constants
++ VMOV.I8 D28,#52
++ VMOV.I8 D29,#129
++ @ The basic idea here is to do aligned loads of a block of data and then
++ @ index into it using VTBL to extract the data from the source X
++ @ coordinate corresponding to each destination pixel.
++ @ This is significantly less code and significantly fewer cycles than doing
++ @ a series of single-lane loads, but it means that the X step between
++ @ pixels must be limited to 2.0 or less, otherwise we couldn't guarantee
++ @ that we could read 8 pixels from a single aligned 32-byte block of data.
++ @ Q0...Q3 contain the 16.16 fixed-point X coordinates of each pixel,
++ @ separated into even pixels and odd pixels to make extracting offsets and
++ @ weights easier.
++ @ We then pull out two bytes from the middle of each coordinate: the top
++ @ byte corresponds to the integer part of the X coordinate, and the bottom
++ @ byte corresponds to the weight to use for bilinear blending.
++ @ These are separated out into different registers with VTRN.
++ @ Then by subtracting the integer X coordinate of the first pixel in the
++ @ data block we loaded, we produce an index register suitable for use by
++ @ VTBL.
++s42xbily_neon_loop:
++ @ Load the Y' data.
++ MOV r12,r7, ASR #16
++ VRSHRN.S32 D16,Q0, #8
++ AND r12,r12,#~15 @ Read 16-byte aligned blocks
++ VDUP.I8 D20,r12
++ ADD r12,r1, r12 @ r12 = y_row+(source_x&~7)
++ VRSHRN.S32 D17,Q1, #8
++ PLD [r12,#64]
++ VLD1.64 {D8, D9, D10,D11},[r12,:128],r5 @ Load Y' top row
++ ADD r14,r7, r8, LSL #3
++ VRSHRN.S32 D18,Q2, #8
++ MOV r14,r14,ASR #16
++ VRSHRN.S32 D19,Q3, #8
++ AND r14,r14,#~15 @ Read 16-byte aligned blocks
++ VLD1.64 {D12,D13,D14,D15},[r12,:128] @ Load Y' bottom row
++ PLD [r12,#64]
++ VDUP.I8 D21,r14
++ ADD r14,r1, r14 @ r14 = y_row+(source_x&~7)
++ VMOV.I8 Q13,#1
++ PLD [r14,#64]
++ VTRN.8 Q8, Q9 @ Q8 = <wFwEwDwCwBwAw9w8w7w6w5w4w3w2w1w0>
++ @ Q9 = <xFxExDxCxBxAx9x8x7x6x5x4x3x2x1x0>
++ VSUB.S8 Q9, Q9, Q10 @ Make offsets relative to the data we loaded.
++ @ First 8 Y' pixels
++ VTBL.8 D20,{D8, D9, D10,D11},D18 @ Index top row at source_x
++ VTBL.8 D24,{D12,D13,D14,D15},D18 @ Index bottom row at source_x
++ VADD.S8 Q13,Q9, Q13 @ Add 1 to source_x
++ VTBL.8 D22,{D8, D9, D10,D11},D26 @ Index top row at source_x+1
++ VTBL.8 D26,{D12,D13,D14,D15},D26 @ Index bottom row at source_x+1
++ @ Next 8 Y' pixels
++ VLD1.64 {D8, D9, D10,D11},[r14,:128],r5 @ Load Y' top row
++ VLD1.64 {D12,D13,D14,D15},[r14,:128] @ Load Y' bottom row
++ PLD [r14,#64]
++ VTBL.8 D21,{D8, D9, D10,D11},D19 @ Index top row at source_x
++ VTBL.8 D25,{D12,D13,D14,D15},D19 @ Index bottom row at source_x
++ VTBL.8 D23,{D8, D9, D10,D11},D27 @ Index top row at source_x+1
++ VTBL.8 D27,{D12,D13,D14,D15},D27 @ Index bottom row at source_x+1
++ @ Blend Y'.
++ VDUP.I16 Q9, r4 @ Load the y weights.
++ VSUBL.U8 Q4, D24,D20 @ Q5:Q4 = c-a
++ VSUBL.U8 Q5, D25,D21
++ VSUBL.U8 Q6, D26,D22 @ Q7:Q6 = d-b
++ VSUBL.U8 Q7, D27,D23
++ VMUL.S16 Q4, Q4, Q9 @ Q5:Q4 = (c-a)*yweight
++ VMUL.S16 Q5, Q5, Q9
++ VMUL.S16 Q6, Q6, Q9 @ Q7:Q6 = (d-b)*yweight
++ VMUL.S16 Q7, Q7, Q9
++ VMOVL.U8 Q12,D16 @ Promote the x weights to 16 bits.
++ VMOVL.U8 Q13,D17 @ Sadly, there's no VMULW.
++ VRSHRN.S16 D8, Q4, #8 @ Q4 = (c-a)*yweight+128>>8
++ VRSHRN.S16 D9, Q5, #8
++ VRSHRN.S16 D12,Q6, #8 @ Q6 = (d-b)*yweight+128>>8
++ VRSHRN.S16 D13,Q7, #8
++ VADD.I8 Q10,Q10,Q4 @ Q10 = a+((c-a)*yweight+128>>8)
++ VADD.I8 Q11,Q11,Q6 @ Q11 = b+((d-b)*yweight+128>>8)
++ VSUBL.U8 Q4, D22,D20 @ Q5:Q4 = b-a
++ VSUBL.U8 Q5, D23,D21
++ VMUL.S16 Q4, Q4, Q12 @ Q5:Q4 = (b-a)*xweight
++ VMUL.S16 Q5, Q5, Q13
++ VRSHRN.S16 D8, Q4, #8 @ Q4 = (b-a)*xweight+128>>8
++ ADD r12,r7, r9
++ VRSHRN.S16 D9, Q5, #8
++ MOV r12,r12,ASR #17
++ VADD.I8 Q8, Q10,Q4 @ Q8 = a+((b-a)*xweight+128>>8)
++ @ Start extracting the chroma x coordinates, and load Cb and Cr.
++ AND r12,r12,#~15 @ Read 16-byte aligned blocks
++ VDUP.I32 Q9, r9 @ Q9 = source_uv_xoffs_q16 x 4
++ ADD r14,r2, r12
++ VADD.I32 Q10,Q0, Q9
++ VLD1.64 {D8, D9, D10,D11},[r14,:128] @ Load Cb
++ PLD [r14,#64]
++ VADD.I32 Q11,Q1, Q9
++ ADD r14,r3, r12
++ VADD.I32 Q12,Q2, Q9
++ VLD1.64 {D12,D13,D14,D15},[r14,:128] @ Load Cr
++ PLD [r14,#64]
++ VADD.I32 Q13,Q3, Q9
++ VRSHRN.S32 D20,Q10,#9 @ Q10 = <xEwExCwCxAwAx8w8x6w6x4w4x2w2x0w0>
++ VRSHRN.S32 D21,Q11,#9
++ VDUP.I8 Q9, r12
++ VRSHRN.S32 D22,Q12,#9 @ Q11 = <xFwFxDwDxBwBx9w9x7w7x5w5x3w3x1w1>
++ VRSHRN.S32 D23,Q13,#9
++ @ We don't actually need the x weights, but we get them for free.
++ @ Free ALU slot
++ VTRN.8 Q10,Q11 @ Q10 = <wFwEwDwCwBwAw9w8w7w6w5w4w3w2w1w0>
++ @ Free ALU slot @ Q11 = <xFxExDxCxBxAx9x8x7x6x5x4x3x2x1x0>
++ VSUB.S8 Q11,Q11,Q9 @ Make offsets relative to the data we loaded.
++ VTBL.8 D18,{D8, D9, D10,D11},D22 @ Index Cb at source_x
++ VMOV.I8 D24,#74
++ VTBL.8 D19,{D8, D9, D10,D11},D23
++ VMOV.I8 D26,#102
++ VTBL.8 D20,{D12,D13,D14,D15},D22 @ Index Cr at source_x
++ VMOV.I8 D27,#25
++ VTBL.8 D21,{D12,D13,D14,D15},D23
++ @ We now have Y' in Q8, Cb in Q9, and Cr in Q10
++ @ We use VDUP to expand constants, because it's a permute instruction, so
++ @ it can dual issue on the A8.
++ SUBS r6, r6, #16 @ width -= 16
++ VMULL.U8 Q4, D16,D24 @ Q5:Q4 = Y'*74
++ VDUP.32 Q6, D30[1] @ Q7:Q6 = bias_G
++ VMULL.U8 Q5, D17,D24
++ VDUP.32 Q7, D30[1]
++ VMLSL.U8 Q6, D18,D27 @ Q7:Q6 = -25*Cb+bias_G
++ VDUP.32 Q11,D30[0] @ Q12:Q11 = bias_R
++ VMLSL.U8 Q7, D19,D27
++ VDUP.32 Q12,D30[0]
++ VMLAL.U8 Q11,D20,D26 @ Q12:Q11 = 102*Cr+bias_R
++ VDUP.32 Q8, D31[0] @ Q13:Q8 = bias_B
++ VMLAL.U8 Q12,D21,D26
++ VDUP.32 Q13,D31[0]
++ VMLAL.U8 Q8, D18,D29 @ Q13:Q8 = 129*Cb+bias_B
++ VMLAL.U8 Q13,D19,D29
++ VMLSL.U8 Q6, D20,D28 @ Q7:Q6 = -25*Cb-52*Cr+bias_G
++ VMLSL.U8 Q7, D21,D28
++ VADD.S16 Q11,Q4, Q11 @ Q12:Q11 = 74*Y'+102*Cr+bias_R
++ VADD.S16 Q12,Q5, Q12
++ VQADD.S16 Q8, Q4, Q8 @ Q13:Q8 = 74*Y'+129*Cr+bias_B
++ VQADD.S16 Q13,Q5, Q13
++ VADD.S16 Q6, Q4, Q6 @ Q7:Q6 = 74*Y'-25*Cb-52*Cr+bias_G
++ VADD.S16 Q7, Q5, Q7
++ @ Push each value to the top of its word and saturate it.
++ VQSHLU.S16 Q11,Q11,#2
++ VQSHLU.S16 Q12,Q12,#2
++ VQSHLU.S16 Q6, Q6, #2
++ VQSHLU.S16 Q7, Q7, #2
++ VQSHLU.S16 Q8, Q8, #2
++ VQSHLU.S16 Q13,Q13,#2
++ @ Merge G and B into R.
++ VSRI.U16 Q11,Q6, #5
++ VSRI.U16 Q12,Q7, #5
++ VSRI.U16 Q11,Q8, #11
++ MOV r14,r8, LSL #4
++ VSRI.U16 Q12,Q13,#11
++ BLT s42xbily_neon_tail
++ VDUP.I32 Q13,r14
++ @ Store the result.
++ VST1.16 {D22,D23,D24,D25},[r0]!
++ BEQ s42xbily_neon_done
++ @ Advance the x coordinates.
++ VADD.I32 Q0, Q0, Q13
++ VADD.I32 Q1, Q1, Q13
++ ADD r7, r14
++ VADD.I32 Q2, Q2, Q13
++ VADD.I32 Q3, Q3, Q13
++ B s42xbily_neon_loop
++s42xbily_neon_tail:
++ @ We have between 1 and 15 pixels left to write.
++ @ -r6 == the number of pixels we need to skip writing.
++ @ Adjust r0 to point to the last one we need to write, because we're going
++ @ to write them in reverse order.
++ ADD r0, r0, r6, LSL #1
++ MOV r14,#-2
++ ADD r0, r0, #30
++ @ Skip past the ones we don't need to write.
++ SUB PC, PC, r6, LSL #2
++ ORR r0, r0, r0
++ VST1.16 {D25[3]},[r0,:16],r14
++ VST1.16 {D25[2]},[r0,:16],r14
++ VST1.16 {D25[1]},[r0,:16],r14
++ VST1.16 {D25[0]},[r0,:16],r14
++ VST1.16 {D24[3]},[r0,:16],r14
++ VST1.16 {D24[2]},[r0,:16],r14
++ VST1.16 {D24[1]},[r0,:16],r14
++ VST1.16 {D24[0]},[r0,:16],r14
++ VST1.16 {D23[3]},[r0,:16],r14
++ VST1.16 {D23[2]},[r0,:16],r14
++ VST1.16 {D23[1]},[r0,:16],r14
++ VST1.16 {D23[0]},[r0,:16],r14
++ VST1.16 {D22[3]},[r0,:16],r14
++ VST1.16 {D22[2]},[r0,:16],r14
++ VST1.16 {D22[1]},[r0,:16],r14
++ VST1.16 {D22[0]},[r0,:16]
++s42xbily_neon_done:
++ VPOP {Q4-Q7} @ 16 words.
++ LDMFD r13!,{r4-r9,PC} @ 8 words.
++ UNWIND .fnend
++ .cfi_endproc
++ .size ScaleYCbCr42xToRGB565_BilinearY_Row_NEON, .-ScaleYCbCr42xToRGB565_BilinearY_Row_NEON
++
++#if defined(__ELF__)&&(defined(__linux__) || defined(__NetBSD__))
++ .section .note.GNU-stack,"",%progbits
++#endif
diff --git a/mail/thunderbird/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp b/mail/thunderbird/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp
index 1256791bc34..b9c7a18fdf4 100644
--- a/mail/thunderbird/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_image_decoders_nsJPEGDecoder.cpp
@@ -1,15 +1,15 @@
-$NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.1 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/image/decoders/nsJPEGDecoder.cpp.orig 2013-10-23 22:08:58.000000000 +0000
+--- mozilla/image/decoders/nsJPEGDecoder.cpp.orig 2015-06-08 17:49:17.000000000 +0000
+++ mozilla/image/decoders/nsJPEGDecoder.cpp
-@@ -19,13 +19,28 @@
+@@ -23,13 +23,28 @@
extern "C" {
#include "iccjpeg.h"
-}
+#ifdef JCS_EXTENSIONS
- #if defined(IS_BIG_ENDIAN)
+ #if MOZ_BIG_ENDIAN
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB
#else
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX
@@ -32,26 +32,26 @@ $NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.1 2013/11/12 20:50:5
static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width);
-@@ -338,6 +353,7 @@ nsJPEGDecoder::WriteInternal(const char
- case JCS_GRAYSCALE:
- case JCS_RGB:
- case JCS_YCbCr:
+@@ -373,6 +388,7 @@ nsJPEGDecoder::WriteInternal(const char*
+ case JCS_GRAYSCALE:
+ case JCS_RGB:
+ case JCS_YCbCr:
+#ifdef JCS_EXTENSIONS
- // if we're not color managing we can decode directly to
- // MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
- if (mCMSMode != eCMSMode_All) {
-@@ -346,6 +362,9 @@ nsJPEGDecoder::WriteInternal(const char
- } else {
- mInfo.out_color_space = JCS_RGB;
- }
+ // if we're not color managing we can decode directly to
+ // MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
+ if (mCMSMode != eCMSMode_All) {
+@@ -381,6 +397,9 @@ nsJPEGDecoder::WriteInternal(const char*
+ } else {
+ mInfo.out_color_space = JCS_RGB;
+ }
+#else
-+ mInfo.out_color_space = JCS_RGB;
++ mInfo.out_color_space = JCS_RGB;
+#endif
- break;
- case JCS_CMYK:
- case JCS_YCCK:
-@@ -407,6 +426,15 @@ nsJPEGDecoder::WriteInternal(const char
- return; /* I/O suspension */
+ break;
+ case JCS_CMYK:
+ case JCS_YCCK:
+@@ -450,6 +469,15 @@ nsJPEGDecoder::WriteInternal(const char*
+ return; // I/O suspension
}
+#ifndef JCS_EXTENSIONS
@@ -64,21 +64,21 @@ $NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.1 2013/11/12 20:50:5
+ }
+#endif
- /* If this is a progressive JPEG ... */
- mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
-@@ -552,7 +580,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
- uint32_t *imageRow = ((uint32_t*)mImageData) +
- (mInfo.output_scanline * mInfo.output_width);
+ // If this is a progressive JPEG ...
+ mState = mInfo.buffered_image ?
+@@ -632,7 +660,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
+
+ MOZ_ASSERT(imageRow, "Should have a row buffer here");
+#ifdef JCS_EXTENSIONS
if (mInfo.out_color_space == MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB) {
+#else
+ if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) {
+#endif
- /* Special case: scanline will be directly converted into packed ARGB */
+ // Special case: scanline will be directly converted into packed ARGB
if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
- *suspend = true; /* suspend */
-@@ -862,6 +894,282 @@ term_source (j_decompress_ptr jd)
+ *suspend = true; // suspend
+@@ -959,6 +991,282 @@ term_source (j_decompress_ptr jd)
} // namespace mozilla
@@ -358,6 +358,6 @@ $NetBSD: patch-mozilla_image_decoders_nsJPEGDecoder.cpp,v 1.1 2013/11/12 20:50:5
+#endif
+
+
- /**************** Inverted CMYK -> RGB conversion **************/
- /*
- * Input is (Inverted) CMYK stored as 4 bytes per pixel.
+ ///*************** Inverted CMYK -> RGB conversion *************************
+ /// Input is (Inverted) CMYK stored as 4 bytes per pixel.
+ /// Output is RGB stored as 3 bytes per pixel.
diff --git a/mail/thunderbird/patches/patch-mozilla_intl_hyphenation_hnjalloc.h b/mail/thunderbird/patches/patch-mozilla_intl_hyphenation_hnjalloc.h
new file mode 100644
index 00000000000..ad07b89f345
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_intl_hyphenation_hnjalloc.h
@@ -0,0 +1,14 @@
+$NetBSD: patch-mozilla_intl_hyphenation_hnjalloc.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/intl/hyphenation/hnjalloc.h.orig 2015-06-08 17:49:18.000000000 +0000
++++ mozilla/intl/hyphenation/hnjalloc.h
+@@ -24,6 +24,9 @@
+ */
+
+ #include <stdio.h> /* ensure stdio.h is loaded before our macros */
++#ifdef __sun
++#include <wchar.h>
++#endif
+
+ #undef FILE
+ #define FILE hnjFile
diff --git a/mail/thunderbird/patches/patch-mozilla_intl_hyphenation_src_hnjalloc.h b/mail/thunderbird/patches/patch-mozilla_intl_hyphenation_src_hnjalloc.h
deleted file mode 100644
index 540662d36b2..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_intl_hyphenation_src_hnjalloc.h
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-mozilla_intl_hyphenation_src_hnjalloc.h,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/intl/hyphenation/src/hnjalloc.h.orig 2013-10-23 22:08:58.000000000 +0000
-+++ mozilla/intl/hyphenation/src/hnjalloc.h
-@@ -24,6 +24,9 @@
- */
-
- #include <stdio.h> /* ensure stdio.h is loaded before our macros */
-+#ifdef __sun
-+#include <wchar.h>
-+#endif
-
- #undef FILE
- #define FILE hnjFile
diff --git a/mail/thunderbird/patches/patch-mozilla_intl_unicharutil_util_Makefile.in b/mail/thunderbird/patches/patch-mozilla_intl_unicharutil_util_Makefile.in
deleted file mode 100644
index 2fb13d19973..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_intl_unicharutil_util_Makefile.in
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-mozilla_intl_unicharutil_util_Makefile.in,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/intl/unicharutil/util/Makefile.in.orig 2014-07-18 00:05:24.000000000 +0000
-+++ mozilla/intl/unicharutil/util/Makefile.in
-@@ -21,3 +21,7 @@ ifdef _MSC_VER
- OS_COMPILE_CXXFLAGS += -Zl
- OS_COMPILE_CFLAGS += -Zl
- endif
-+
-+ifdef MOZ_NATIVE_HARFBUZZ
-+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
-+endif
diff --git a/mail/thunderbird/patches/patch-mozilla_intl_unicharutil_util_moz.build b/mail/thunderbird/patches/patch-mozilla_intl_unicharutil_util_moz.build
new file mode 100644
index 00000000000..0fb4c23a907
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_intl_unicharutil_util_moz.build
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_intl_unicharutil_util_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/intl/unicharutil/util/moz.build.orig 2015-06-08 17:49:21.000000000 +0000
++++ mozilla/intl/unicharutil/util/moz.build
+@@ -38,5 +38,8 @@ if CONFIG['_MSC_VER']:
+ if CONFIG['ENABLE_INTL_API']:
+ CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
+
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['GNU_CXX']:
+ FAIL_ON_WARNINGS = True
diff --git a/mail/thunderbird/patches/patch-mozilla_ios b/mail/thunderbird/patches/patch-mozilla_ios
deleted file mode 100644
index ed5b21233bf..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ios
+++ /dev/null
@@ -1,8 +0,0 @@
-$NetBSD: patch-mozilla_ios,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/ios.orig 2014-07-27 06:20:09.000000000 +0000
-+++ mozilla/ios
-@@ -0,0 +1,3 @@
-+#pragma GCC visibility push(default)
-+#include_next <ios>
-+#pragma GCC visibility pop
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_atomicops.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_atomicops.h
new file mode 100644
index 00000000000..20977021638
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_atomicops.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_ipc_chromium_src_base_atomicops.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/ipc/chromium/src/base/atomicops.h.orig 2015-06-08 17:49:21.000000000 +0000
++++ mozilla/ipc/chromium/src/base/atomicops.h
+@@ -45,7 +45,7 @@ typedef int64_t Atomic64;
+
+ // Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or
+ // Atomic64 routines below, depending on your architecture.
+-#ifdef OS_OPENBSD
++#if defined(OS_OPENBSD) || (defined(OS_NETBSD) && defined(ARCH_CPU_ARM_FAMILY))
+ #ifdef ARCH_CPU_64_BITS
+ typedef Atomic64 AtomicWord;
+ #else
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_base__paths.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_base__paths.h
deleted file mode 100644
index 675c8624c06..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_base__paths.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_base__paths.h,v 1.4 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/base_paths.h.orig 2013-10-23 22:09:00.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/base_paths.h
-@@ -13,7 +13,7 @@
- #include "base/base_paths_win.h"
- #elif defined(OS_MACOSX)
- #include "base/base_paths_mac.h"
--#elif defined(OS_LINUX) || defined(OS_BSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- #include "base/base_paths_linux.h"
- #endif
- #include "base/path_service.h"
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_message__pump__libevent.cc b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_message__pump__libevent.cc
deleted file mode 100644
index c3711424ff8..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_message__pump__libevent.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_message__pump__libevent.cc,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/message_pump_libevent.cc.orig 2013-10-23 22:09:00.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/message_pump_libevent.cc
-@@ -16,7 +16,7 @@
- #include "base/scoped_ptr.h"
- #include "base/time.h"
- #include "nsDependentSubstring.h"
--#include "third_party/libevent/event.h"
-+#include "event.h"
-
- // Lifecycle of struct event
- // Libevent uses two main data structures:
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util.h
index 6faf07a9973..6800056f877 100644
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util.h
+++ b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util.h
@@ -1,17 +1,8 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_process__util.h,v 1.5 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_ipc_chromium_src_base_process__util.h,v 1.6 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/ipc/chromium/src/base/process_util.h.orig 2013-10-23 22:09:00.000000000 +0000
+--- mozilla/ipc/chromium/src/base/process_util.h.orig 2015-06-08 17:49:21.000000000 +0000
+++ mozilla/ipc/chromium/src/base/process_util.h
-@@ -13,7 +13,7 @@
- #if defined(OS_WIN)
- #include <windows.h>
- #include <tlhelp32.h>
--#elif defined(OS_LINUX) || defined(__GLIBC__)
-+#elif defined(OS_LINUX) || defined(__GLIBC__) || defined(OS_SOLARIS)
- #include <dirent.h>
- #include <limits.h>
- #include <sys/types.h>
-@@ -32,6 +32,9 @@
+@@ -41,6 +41,9 @@
typedef PROCESSENTRY32 ProcessEntry;
typedef IO_COUNTERS IoCounters;
#elif defined(OS_POSIX)
@@ -21,12 +12,3 @@ $NetBSD: patch-mozilla_ipc_chromium_src_base_process__util.h,v 1.5 2013/11/12 20
// TODO(port): we should not rely on a Win32 structure.
struct ProcessEntry {
int pid;
-@@ -316,7 +319,7 @@ class NamedProcessIterator {
- #if defined(OS_WIN)
- HANDLE snapshot_;
- bool started_iteration_;
--#elif defined(OS_LINUX) || defined(__GLIBC__)
-+#elif defined(OS_LINUX) || defined(__GLIBC__) || defined(OS_SOLARIS)
- DIR *procfs_dir_;
- #elif defined(OS_BSD)
- std::vector<ProcessEntry> content;
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc
index aed0ff671b0..375f98607f8 100644
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc
+++ b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc
@@ -1,163 +1,14 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc,v 1.8 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc,v 1.9 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/ipc/chromium/src/base/process_util_bsd.cc.orig 2014-07-18 00:05:24.000000000 +0000
+--- mozilla/ipc/chromium/src/base/process_util_bsd.cc.orig 2015-06-08 17:49:21.000000000 +0000
+++ mozilla/ipc/chromium/src/base/process_util_bsd.cc
-@@ -15,7 +15,9 @@
+@@ -9,6 +9,9 @@
+ #include <sys/wait.h>
- #include <ctype.h>
#include <fcntl.h>
+#if defined(OS_BSD)
- #include <kvm.h>
++#include <kvm.h>
+#endif
#include <unistd.h>
#include <string>
-@@ -311,6 +313,141 @@ void SetCurrentProcessPrivileges(ChildPr
-
- #endif
-
-+#if defined(OS_MACOSX)
-+NamedProcessIterator::NamedProcessIterator(const std::wstring& executable_name,
-+ const ProcessFilter* filter)
-+ : executable_name_(executable_name),
-+ index_of_kinfo_proc_(0),
-+ filter_(filter) {
-+ // Get a snapshot of all of my processes (yes, as we loop it can go stale, but
-+ // but trying to find where we were in a constantly changing list is basically
-+ // impossible.
-+
-+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, int(geteuid()) };
-+
-+ // Since more processes could start between when we get the size and when
-+ // we get the list, we do a loop to keep trying until we get it.
-+ bool done = false;
-+ int try_num = 1;
-+ const int max_tries = 10;
-+ do {
-+ // Get the size of the buffer
-+ size_t len = 0;
-+ if (sysctl(mib, arraysize(mib), NULL, &len, NULL, 0) < 0) {
-+ CHROMIUM_LOG(ERROR) << "failed to get the size needed for the process list";
-+ kinfo_procs_.resize(0);
-+ done = true;
-+ } else {
-+ size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
-+ // Leave some spare room for process table growth (more could show up
-+ // between when we check and now)
-+ num_of_kinfo_proc += 4;
-+ kinfo_procs_.resize(num_of_kinfo_proc);
-+ len = num_of_kinfo_proc * sizeof(struct kinfo_proc);
-+ // Load the list of processes
-+ if (sysctl(mib, arraysize(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) {
-+ // If we get a mem error, it just means we need a bigger buffer, so
-+ // loop around again. Anything else is a real error and give up.
-+ if (errno != ENOMEM) {
-+ CHROMIUM_LOG(ERROR) << "failed to get the process list";
-+ kinfo_procs_.resize(0);
-+ done = true;
-+ }
-+ } else {
-+ // Got the list, just make sure we're sized exactly right
-+ size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
-+ kinfo_procs_.resize(num_of_kinfo_proc);
-+ done = true;
-+ }
-+ }
-+ } while (!done && (try_num++ < max_tries));
-+
-+ if (!done) {
-+ CHROMIUM_LOG(ERROR) << "failed to collect the process list in a few tries";
-+ kinfo_procs_.resize(0);
-+ }
-+}
-+
-+NamedProcessIterator::~NamedProcessIterator() {
-+}
-+
-+const ProcessEntry* NamedProcessIterator::NextProcessEntry() {
-+ bool result = false;
-+ do {
-+ result = CheckForNextProcess();
-+ } while (result && !IncludeEntry());
-+
-+ if (result) {
-+ return &entry_;
-+ }
-+
-+ return NULL;
-+}
-+
-+bool NamedProcessIterator::CheckForNextProcess() {
-+ std::string executable_name_utf8(WideToUTF8(executable_name_));
-+
-+ std::string data;
-+ std::string exec_name;
-+
-+ for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) {
-+ kinfo_proc* kinfo = &kinfo_procs_[index_of_kinfo_proc_];
-+
-+ // Skip processes just awaiting collection
-+ if ((kinfo->kp_proc.p_pid > 0) && (kinfo->kp_proc.p_stat == SZOMB))
-+ continue;
-+
-+ int mib[] = { CTL_KERN, KERN_PROCARGS, kinfo->kp_proc.p_pid };
-+
-+ // Found out what size buffer we need
-+ size_t data_len = 0;
-+ if (sysctl(mib, arraysize(mib), NULL, &data_len, NULL, 0) < 0) {
-+ CHROMIUM_LOG(ERROR) << "failed to figure out the buffer size for a commandline";
-+ continue;
-+ }
-+
-+ data.resize(data_len);
-+ if (sysctl(mib, arraysize(mib), &data[0], &data_len, NULL, 0) < 0) {
-+ CHROMIUM_LOG(ERROR) << "failed to fetch a commandline";
-+ continue;
-+ }
-+
-+ // Data starts w/ the full path null termed, so we have to extract just the
-+ // executable name from the path.
-+
-+ size_t exec_name_end = data.find('\0');
-+ if (exec_name_end == std::string::npos) {
-+ CHROMIUM_LOG(ERROR) << "command line data didn't match expected format";
-+ continue;
-+ }
-+ size_t last_slash = data.rfind('/', exec_name_end);
-+ if (last_slash == std::string::npos)
-+ exec_name = data.substr(0, exec_name_end);
-+ else
-+ exec_name = data.substr(last_slash + 1, exec_name_end - last_slash - 1);
-+
-+ // Check the name
-+ if (executable_name_utf8 == exec_name) {
-+ entry_.pid = kinfo->kp_proc.p_pid;
-+ entry_.ppid = kinfo->kp_eproc.e_ppid;
-+ base::strlcpy(entry_.szExeFile, exec_name.c_str(),
-+ sizeof(entry_.szExeFile));
-+ // Start w/ the next entry next time through
-+ ++index_of_kinfo_proc_;
-+ // Done
-+ return true;
-+ }
-+ }
-+ return false;
-+}
-+
-+bool NamedProcessIterator::IncludeEntry() {
-+ // Don't need to check the name, we did that w/in CheckForNextProcess.
-+ if (!filter_)
-+ return true;
-+ return filter_->Includes(entry_.pid, entry_.ppid);
-+}
-+#else
- NamedProcessIterator::NamedProcessIterator(const std::wstring& executable_name,
- const ProcessFilter* filter)
- {
-@@ -370,5 +507,6 @@ const ProcessEntry* NamedProcessIterator
- if (nextEntry >= content.size()) return NULL;
- return &content[nextEntry++];
- }
-+#endif
-
- } // namespace base
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_glue_moz.build b/mail/thunderbird/patches/patch-mozilla_ipc_glue_moz.build
new file mode 100644
index 00000000000..d138fd562b5
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_ipc_glue_moz.build
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_ipc_glue_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/ipc/glue/moz.build.orig 2015-06-08 17:49:21.000000000 +0000
++++ mozilla/ipc/glue/moz.build
+@@ -87,7 +87,7 @@ elif CONFIG['OS_ARCH'] in ('DragonFly',
+ UNIFIED_SOURCES += [
+ 'ProcessUtils_bsd.cpp'
+ ]
+-elif CONFIG['OS_ARCH'] in ('Darwin'):
++elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+ UNIFIED_SOURCES += [
+ 'ProcessUtils_mac.mm'
+ ]
diff --git a/mail/thunderbird/patches/patch-mozilla_js_public_CallArgs.h b/mail/thunderbird/patches/patch-mozilla_js_public_CallArgs.h
new file mode 100644
index 00000000000..ddc728a9a21
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_public_CallArgs.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_public_CallArgs.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/public/CallArgs.h.orig 2015-06-08 17:49:21.000000000 +0000
++++ mozilla/js/public/CallArgs.h
+@@ -344,7 +344,7 @@ class MOZ_STACK_CLASS CallArgs : public
+ * Returns true if there are at least |required| arguments passed in. If
+ * false, it reports an error message on the context.
+ */
+- bool requireAtLeast(JSContext* cx, const char* fnname, unsigned required);
++ JS_PUBLIC_API(bool) requireAtLeast(JSContext* cx, const char* fnname, unsigned required);
+
+ };
+
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp
new file mode 100644
index 00000000000..7621b180046
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp
@@ -0,0 +1,19 @@
+$NetBSD: patch-mozilla_js_src_asmjs_AsmJSSignalHandlers.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/asmjs/AsmJSSignalHandlers.cpp.orig 2015-06-08 17:49:21.000000000 +0000
++++ mozilla/js/src/asmjs/AsmJSSignalHandlers.cpp
+@@ -637,10 +637,11 @@ HandleMachException(JSRuntime* rt, const
+ mach_port_t rtThread = request.body.thread.name;
+
+ // Read out the JSRuntime thread's register state.
+- x86_thread_state_t state;
+- unsigned int count = x86_THREAD_STATE_COUNT;
++ moz_platform_thread_state_t state;
++ thread_state_flavor_t flavor = MOZ_PLATFORM_THREAD_STATE_FLAVOR;
++ mach_msg_type_number_t count = MOZ_PLATFORM_THREAD_STATE_COUNT;
+ kern_return_t kret;
+- kret = thread_get_state(rtThread, x86_THREAD_STATE, (thread_state_t)&state, &count);
++ kret = thread_get_state(rtThread, flavor, (thread_state_t)&state, &count);
+ if (kret != KERN_SUCCESS)
+ return false;
+
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_builtin_TypedObject.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_builtin_TypedObject.cpp
deleted file mode 100644
index db386654165..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_js_src_builtin_TypedObject.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-$NetBSD: patch-mozilla_js_src_builtin_TypedObject.cpp,v 1.3 2015/06/08 13:40:58 joerg Exp $
-
---- mozilla/js/src/builtin/TypedObject.cpp.orig 2015-05-07 18:53:49.000000000 +0000
-+++ mozilla/js/src/builtin/TypedObject.cpp
-@@ -710,12 +710,12 @@ ArrayMetaTypeDescr::construct(JSContext*
- contents.append(")");
- RootedAtom stringRepr(cx, contents.finishAtom());
- if (!stringRepr)
-- return nullptr;
-+ return false;
-
- // Extract ArrayType.prototype
- RootedObject arrayTypePrototype(cx, GetPrototype(cx, arrayTypeGlobal));
- if (!arrayTypePrototype)
-- return nullptr;
-+ return false;
-
- // Create the instance of ArrayType
- Rooted<UnsizedArrayTypeDescr*> obj(cx);
-@@ -728,7 +728,7 @@ ArrayMetaTypeDescr::construct(JSContext*
- if (!JSObject::defineProperty(cx, obj, cx->names().length,
- UndefinedHandleValue, nullptr, nullptr,
- JSPROP_READONLY | JSPROP_PERMANENT))
-- return nullptr;
-+ return false;
-
- args.rval().setObject(*obj);
- return true;
-@@ -762,7 +762,7 @@ UnsizedArrayTypeDescr::dimension(JSConte
- if (!size.isValid()) {
- JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr,
- JSMSG_TYPEDOBJECT_TOO_BIG);
-- return nullptr;
-+ return false;
- }
-
- // Construct a canonical string `new ArrayType(<elementType>).dimension(N)`:
-@@ -775,7 +775,7 @@ UnsizedArrayTypeDescr::dimension(JSConte
- contents.append(")");
- RootedAtom stringRepr(cx, contents.finishAtom());
- if (!stringRepr)
-- return nullptr;
-+ return false;
-
- // Create the sized type object.
- Rooted<SizedArrayTypeDescr*> obj(cx);
-@@ -793,7 +793,7 @@ UnsizedArrayTypeDescr::dimension(JSConte
- if (!JSObject::defineProperty(cx, obj, cx->names().length,
- lengthVal, nullptr, nullptr,
- JSPROP_READONLY | JSPROP_PERMANENT))
-- return nullptr;
-+ return false;
-
- // Add `unsized` property, which is a link from the sized
- // array to the unsized array.
-@@ -801,7 +801,7 @@ UnsizedArrayTypeDescr::dimension(JSConte
- if (!JSObject::defineProperty(cx, obj, cx->names().unsized,
- unsizedTypeDescrValue, nullptr, nullptr,
- JSPROP_READONLY | JSPROP_PERMANENT))
-- return nullptr;
-+ return false;
-
- args.rval().setObject(*obj);
- return true;
-@@ -1253,7 +1253,7 @@ DefineSimpleTypeDescr(JSContext* cx,
- Rooted<TypedProto*> proto(cx);
- proto = NewObjectWithProto<TypedProto>(cx, objProto, nullptr, TenuredObject);
- if (!proto)
-- return nullptr;
-+ return false;
- proto->initTypeDescrSlot(*descr);
- descr->initReservedSlot(JS_DESCR_SLOT_TYPROTO, ObjectValue(*proto));
-
-@@ -1358,14 +1358,14 @@ GlobalObject::initTypedObjectModule(JSCo
- #define BINARYDATA_SCALAR_DEFINE(constant_, type_, name_) \
- if (!DefineSimpleTypeDescr<ScalarTypeDescr>(cx, global, module, constant_, \
- cx->names().name_)) \
-- return nullptr;
-+ return false;
- JS_FOR_EACH_SCALAR_TYPE_REPR(BINARYDATA_SCALAR_DEFINE)
- #undef BINARYDATA_SCALAR_DEFINE
-
- #define BINARYDATA_REFERENCE_DEFINE(constant_, type_, name_) \
- if (!DefineSimpleTypeDescr<ReferenceTypeDescr>(cx, global, module, constant_, \
- cx->names().name_)) \
-- return nullptr;
-+ return false;
- JS_FOR_EACH_REFERENCE_TYPE_REPR(BINARYDATA_REFERENCE_DEFINE)
- #undef BINARYDATA_REFERENCE_DEFINE
-
-@@ -1375,14 +1375,14 @@ GlobalObject::initTypedObjectModule(JSCo
- arrayType = DefineMetaTypeDescr<ArrayMetaTypeDescr>(
- cx, global, module, TypedObjectModuleObject::ArrayTypePrototype);
- if (!arrayType)
-- return nullptr;
-+ return false;
-
- RootedValue arrayTypeValue(cx, ObjectValue(*arrayType));
- if (!JSObject::defineProperty(cx, module, cx->names().ArrayType,
- arrayTypeValue,
- nullptr, nullptr,
- JSPROP_READONLY | JSPROP_PERMANENT))
-- return nullptr;
-+ return false;
-
- // StructType.
-
-@@ -1390,14 +1390,14 @@ GlobalObject::initTypedObjectModule(JSCo
- structType = DefineMetaTypeDescr<StructMetaTypeDescr>(
- cx, global, module, TypedObjectModuleObject::StructTypePrototype);
- if (!structType)
-- return nullptr;
-+ return false;
-
- RootedValue structTypeValue(cx, ObjectValue(*structType));
- if (!JSObject::defineProperty(cx, module, cx->names().StructType,
- structTypeValue,
- nullptr, nullptr,
- JSPROP_READONLY | JSPROP_PERMANENT))
-- return nullptr;
-+ return false;
-
- // Everything is setup, install module on the global object:
- RootedValue moduleValue(cx, ObjectValue(*module));
-@@ -1407,7 +1407,7 @@ GlobalObject::initTypedObjectModule(JSCo
- nullptr, nullptr,
- 0))
- {
-- return nullptr;
-+ return false;
- }
-
- return module;
-@@ -2466,7 +2466,7 @@ TypedObject::constructUnsized(JSContext*
- if (length < 0) {
- JS_ReportErrorNumber(cx, js_GetErrorMessage,
- nullptr, JSMSG_TYPEDOBJECT_BAD_ARGS);
-- return nullptr;
-+ return false;
- }
- Rooted<TypedObject*> obj(cx, createZeroed(cx, callee, length));
- if (!obj)
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_frontend_BytecodeCompiler.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_frontend_BytecodeCompiler.cpp
deleted file mode 100644
index 6420c2b8152..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_js_src_frontend_BytecodeCompiler.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_js_src_frontend_BytecodeCompiler.cpp,v 1.3 2015/06/08 13:40:58 joerg Exp $
-
---- mozilla/js/src/frontend/BytecodeCompiler.cpp.orig 2015-05-07 18:53:49.000000000 +0000
-+++ mozilla/js/src/frontend/BytecodeCompiler.cpp
-@@ -544,7 +544,7 @@ CompileFunctionBody(JSContext* cx, Mutab
-
- RootedScriptSource sourceObject(cx, CreateScriptSourceObject(cx, options));
- if (!sourceObject)
-- return nullptr;
-+ return false;
- ScriptSource* ss = sourceObject->source();
-
- SourceCompressionTask sct(cx);
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_gc_Memory.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_gc_Memory.cpp
deleted file mode 100644
index 5eb74343b5a..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_js_src_gc_Memory.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_js_src_gc_Memory.cpp,v 1.2 2015/05/26 12:34:42 ryoon Exp $
-
---- mozilla/js/src/gc/Memory.cpp.orig 2015-05-07 18:53:49.000000000 +0000
-+++ mozilla/js/src/gc/Memory.cpp
-@@ -212,7 +212,7 @@ gc::InitMemorySubsystem(JSRuntime* rt)
- static inline void*
- MapMemory(size_t length, int prot, int flags, int fd, off_t offset)
- {
--#if defined(__ia64__)
-+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
- /*
- * The JS engine assumes that all allocated pointers have their high 17 bits clear,
- * which ia64's mmap doesn't support directly. However, we can emulate it by passing
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_gc_Statistics.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_gc_Statistics.cpp
new file mode 100644
index 00000000000..2a55c632902
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_gc_Statistics.cpp
@@ -0,0 +1,15 @@
+$NetBSD: patch-mozilla_js_src_gc_Statistics.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/gc/Statistics.cpp.orig 2015-06-08 17:49:22.000000000 +0000
++++ mozilla/js/src/gc/Statistics.cpp
+@@ -222,8 +222,8 @@ class gcstats::StatisticsSerializer
+ while (*c) {
+ if (*c == ' ' || *c == '\t')
+ p('_');
+- else if (isupper(*c))
+- p(tolower(*c));
++ else if (isupper((unsigned char)*c))
++ p(tolower((unsigned char)*c));
+ else if (*c == '+')
+ p("added_");
+ else if (*c == '-')
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h b/mail/thunderbird/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h
new file mode 100644
index 00000000000..5f7905048c3
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_jit_ExecutableAllocator.h
@@ -0,0 +1,16 @@
+$NetBSD: patch-mozilla_js_src_jit_ExecutableAllocator.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/jit/ExecutableAllocator.h.orig 2015-06-08 17:49:24.000000000 +0000
++++ mozilla/js/src/jit/ExecutableAllocator.h
+@@ -419,6 +419,11 @@ class ExecutableAllocator {
+ {
+ __clear_cache(code, reinterpret_cast<char*>(code) + size);
+ }
++#elif defined(JS_CODEGEN_ARM) && (defined(__FreeBSD__) || defined(__NetBSD__))
++ static void cacheFlush(void* code, size_t size)
++ {
++ __clear_cache(code, reinterpret_cast<char*>(code) + size);
++ }
+ #elif defined(JS_CODEGEN_ARM) && (defined(__linux__) || defined(ANDROID)) && defined(__GNUC__)
+ static void cacheFlush(void* code, size_t size)
+ {
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jit_LIR.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_jit_LIR.cpp
new file mode 100644
index 00000000000..2c4669be28b
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_jit_LIR.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_src_jit_LIR.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/jit/LIR.cpp.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/js/src/jit/LIR.cpp
+@@ -323,7 +323,7 @@ LNode::printName(FILE* fp, Opcode op)
+ const char* name = names[op];
+ size_t len = strlen(name);
+ for (size_t i = 0; i < len; i++)
+- fprintf(fp, "%c", tolower(name[i]));
++ fprintf(fp, "%c", tolower(((unsigned char)name[i])));
+ }
+
+ void
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jit_MIR.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_jit_MIR.cpp
new file mode 100644
index 00000000000..f45ba637fad
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_jit_MIR.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_src_jit_MIR.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/jit/MIR.cpp.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/js/src/jit/MIR.cpp
+@@ -71,7 +71,7 @@ MDefinition::PrintOpcodeName(FILE* fp, M
+ const char* name = names[op];
+ size_t len = strlen(name);
+ for (size_t i = 0; i < len; i++)
+- fprintf(fp, "%c", tolower(name[i]));
++ fprintf(fp, "%c", tolower(((unsigned char)name[i])));
+ }
+
+ const Value&
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp
new file mode 100644
index 00000000000..f0a00ee25b5
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_jit_arm_Architecture-arm.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_src_jit_arm_Architecture-arm.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/jit/arm/Architecture-arm.cpp.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/js/src/jit/arm/Architecture-arm.cpp
+@@ -16,7 +16,7 @@
+ #include "jit/arm/Assembler-arm.h"
+ #include "jit/RegisterSets.h"
+
+-#if !defined(__linux__) || defined(ANDROID) || defined(JS_ARM_SIMULATOR)
++#if !defined(__linux__) || defined(ANDROID) || defined(JS_ARM_SIMULATOR) || defined(__NetBSD__)
+ // The Android NDK and B2G do not include the hwcap.h kernel header, and it is not
+ // defined when building the simulator, so inline the header defines we need.
+ # define HWCAP_VFP (1 << 6)
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jsapi.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_jsapi.cpp
new file mode 100644
index 00000000000..a87bea4b813
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_jsapi.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_src_jsapi.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/jsapi.cpp.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/js/src/jsapi.cpp
+@@ -115,7 +115,7 @@ using js::frontend::Parser;
+ #define JS_ADDRESSOF_VA_LIST(ap) (&(ap))
+ #endif
+
+-bool
++JS_PUBLIC_API(bool)
+ JS::CallArgs::requireAtLeast(JSContext* cx, const char* fnname, unsigned required) {
+ if (length() < required) {
+ char numArgsStr[40];
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jsdate.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_jsdate.cpp
new file mode 100644
index 00000000000..03af5399025
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_jsdate.cpp
@@ -0,0 +1,20 @@
+$NetBSD: patch-mozilla_js_src_jsdate.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/jsdate.cpp.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/js/src/jsdate.cpp
+@@ -2669,11 +2669,11 @@ ToLocaleFormatHelper(JSContext* cx, Hand
+ if (strcmp(format, "%x") == 0 && result_len >= 6 &&
+ /* Format %x means use OS settings, which may have 2-digit yr, so
+ hack end of 3/11/22 or 11.03.22 or 11Mar22 to use 4-digit yr...*/
+- !isdigit(buf[result_len - 3]) &&
+- isdigit(buf[result_len - 2]) && isdigit(buf[result_len - 1]) &&
++ !isdigit(((unsigned char)buf[result_len - 3])) &&
++ isdigit(((unsigned char)buf[result_len - 2])) && isdigit(((unsigned char)buf[result_len - 1])) &&
+ /* ...but not if starts with 4-digit year, like 2022/3/11. */
+- !(isdigit(buf[0]) && isdigit(buf[1]) &&
+- isdigit(buf[2]) && isdigit(buf[3]))) {
++ !(isdigit(((unsigned char)buf[0])) && isdigit(((unsigned char)buf[1])) &&
++ isdigit(((unsigned char)buf[2])) && isdigit(((unsigned char)buf[3])))) {
+ double localtime = obj->as<DateObject>().cachedLocalTime(&cx->runtime()->dateTimeInfo);
+ int year = IsNaN(localtime) ? 0 : (int) YearFromTime(localtime);
+ JS_snprintf(buf + (result_len - 2), (sizeof buf) - (result_len - 2),
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jskwgen.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_jskwgen.cpp
new file mode 100644
index 00000000000..565d24b5709
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_jskwgen.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_src_jskwgen.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/jskwgen.cpp.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/js/src/jskwgen.cpp
+@@ -181,7 +181,7 @@ qchar(char c, char* quoted_buffer)
+ *s++ = '\\';
+ break;
+ default:
+- if (!isprint(c)) {
++ if (!isprint(((unsigned char)c))) {
+ *s++ = '\\';
+ *s++ = (char)('0' + (0x3 & (((unsigned char)c) >> 6)));
+ *s++ = (char)('0' + (0x7 & (((unsigned char)c) >> 3)));
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_shell_jsoptparse.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_shell_jsoptparse.cpp
new file mode 100644
index 00000000000..ff4e5b6eb6e
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_src_shell_jsoptparse.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_src_shell_jsoptparse.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/src/shell/jsoptparse.cpp.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/js/src/shell/jsoptparse.cpp
+@@ -90,7 +90,7 @@ PrintParagraph(const char* text, unsigne
+ printf("%*s", startColno, "");
+
+ while (*it != '\0') {
+- MOZ_ASSERT(!isspace(*it));
++ MOZ_ASSERT(!isspace((unsigned char)*it));
+
+ /* Delimit the current token. */
+ const char* limit = it;
diff --git a/mail/thunderbird/patches/patch-mozilla_js_xpconnect_src_XPCConvert.cpp b/mail/thunderbird/patches/patch-mozilla_js_xpconnect_src_XPCConvert.cpp
new file mode 100644
index 00000000000..f04aaf4fa19
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_xpconnect_src_XPCConvert.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_xpconnect_src_XPCConvert.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/xpconnect/src/XPCConvert.cpp.orig 2015-06-08 17:49:29.000000000 +0000
++++ mozilla/js/xpconnect/src/XPCConvert.cpp
+@@ -134,7 +134,7 @@ XPCConvert::NativeData2JS(MutableHandleV
+ d.setNumber(*static_cast<const float*>(s));
+ return true;
+ case nsXPTType::T_DOUBLE:
+- d.setNumber(*static_cast<const double*>(s));
++ d.setNumber(CanonicalizeNaN(*static_cast<const double*>(s)));
+ return true;
+ case nsXPTType::T_BOOL :
+ d.setBoolean(*static_cast<const bool*>(s));
diff --git a/mail/thunderbird/patches/patch-mozilla_js_xpconnect_src_xpcprivate.h b/mail/thunderbird/patches/patch-mozilla_js_xpconnect_src_xpcprivate.h
new file mode 100644
index 00000000000..1dca8a903b6
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_js_xpconnect_src_xpcprivate.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_js_xpconnect_src_xpcprivate.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/js/xpconnect/src/xpcprivate.h.orig 2015-06-08 17:49:55.000000000 +0000
++++ mozilla/js/xpconnect/src/xpcprivate.h
+@@ -1017,6 +1017,8 @@ static inline bool IS_PROTO_CLASS(const
+ /***************************************************************************/
+ // XPCWrappedNativeScope is one-to-one with a JS global object.
+
++extern template class JS_PUBLIC_API(JS::WeakMapPtr)<JSObject*, JSObject*>;
++
+ class nsIAddonInterposition;
+ class nsXPCComponentsBase;
+ class XPCWrappedNativeScope : public PRCList
diff --git a/mail/thunderbird/patches/patch-mozilla_js_xpconnect_wrapper_XrayWrapper.cpp b/mail/thunderbird/patches/patch-mozilla_js_xpconnect_wrapper_XrayWrapper.cpp
deleted file mode 100644
index c41ee4e9ca8..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_js_xpconnect_wrapper_XrayWrapper.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_js_xpconnect_wrapper_XrayWrapper.cpp,v 1.1 2015/06/29 21:27:01 markd Exp $
-
---- mozilla/js/xpconnect/wrappers/XrayWrapper.cpp.orig 2015-05-07 18:53:42.000000000 +0000
-+++ mozilla/js/xpconnect/wrappers/XrayWrapper.cpp
-@@ -351,7 +351,7 @@ public:
- {
- JSAutoCompartment ac(cx, target);
- if (!JS_GetClassPrototype(cx, key, protop))
-- return nullptr;
-+ return false;
- }
- return JS_WrapObject(cx, protop);
- }
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_AUTHORS b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_AUTHORS
new file mode 100644
index 00000000000..205e169c35a
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_AUTHORS
@@ -0,0 +1,9 @@
+$NetBSD: patch-mozilla_media_libcubeb_AUTHORS,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libcubeb/AUTHORS.orig 2015-06-08 17:49:22.000000000 +0000
++++ mozilla/media/libcubeb/AUTHORS
+@@ -4,3 +4,4 @@ Michael Wu <mwu@mozilla.com>
+ Paul Adenot <paul@paul.cx>
+ David Richards <drichards@mozilla.com>
+ Sebastien Alaiwan <sebastien.alaiwan@gmail.com>
++Evgeniy Vodolazskiy <waterlaz@gmail.com>
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_Makefile.in b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_Makefile.in
deleted file mode 100644
index 778123aebe2..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_Makefile.in
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-mozilla_media_libcubeb_src_Makefile.in,v 1.3 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/media/libcubeb/src/Makefile.in.orig 2014-07-18 00:05:38.000000000 +0000
-+++ mozilla/media/libcubeb/src/Makefile.in
-@@ -9,3 +9,7 @@ CFLAGS += \
- $(MOZ_ALSA_CFLAGS) \
- $(MOZ_PULSEAUDIO_CFLAGS) \
- $(NULL)
-+
-+ifdef MOZ_NATIVE_SPEEX
-+CFLAGS += $(MOZ_SPEEX_CFLAGS)
-+endif
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb.c b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb.c
new file mode 100644
index 00000000000..86d6fc220d1
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb.c
@@ -0,0 +1,24 @@
+$NetBSD: patch-mozilla_media_libcubeb_src_cubeb.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libcubeb/src/cubeb.c.orig 2015-06-08 17:49:22.000000000 +0000
++++ mozilla/media/libcubeb/src/cubeb.c
+@@ -56,6 +56,9 @@ int opensl_init(cubeb ** context, char c
+ #if defined(USE_AUDIOTRACK)
+ int audiotrack_init(cubeb ** context, char const * context_name);
+ #endif
++#if defined(USE_OSS)
++int oss_init(cubeb ** context, char const * context_name);
++#endif
+
+ int
+ validate_stream_params(cubeb_stream_params stream_params)
+@@ -122,6 +125,9 @@ cubeb_init(cubeb ** context, char const
+ #if defined(USE_AUDIOTRACK)
+ audiotrack_init,
+ #endif
++#if defined(USE_OSS)
++ oss_init,
++#endif
+ };
+ int i;
+
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c
index fb8a9b2e053..e769e23312b 100644
--- a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c
+++ b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__alsa.c
@@ -1,10 +1,10 @@
-$NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/media/libcubeb/src/cubeb_alsa.c.orig 2014-07-18 00:05:38.000000000 +0000
+--- mozilla/media/libcubeb/src/cubeb_alsa.c.orig 2015-06-08 17:49:22.000000000 +0000
+++ mozilla/media/libcubeb/src/cubeb_alsa.c
-@@ -6,6 +6,9 @@
- */
+@@ -7,12 +7,18 @@
#undef NDEBUG
+ #define _DEFAULT_SOURCE
#define _BSD_SOURCE
+#if defined(__NetBSD__)
+#define _NETBSD_SOURCE
@@ -12,3 +12,662 @@ $NetBSD: patch-mozilla_media_libcubeb_src_cubeb__alsa.c,v 1.1 2014/07/27 20:04:5
#define _XOPEN_SOURCE 500
#include <pthread.h>
#include <sys/time.h>
+ #include <assert.h>
+ #include <limits.h>
++#include <dlfcn.h>
+ #include <poll.h>
++#include <stdlib.h>
++#include <stdio.h>
+ #include <unistd.h>
+ #include <alsa/asoundlib.h>
+ #include "cubeb/cubeb.h"
+@@ -25,6 +31,51 @@
+
+ #define ALSA_PA_PLUGIN "ALSA <-> PulseAudio PCM I/O Plugin"
+
++#ifdef DISABLE_LIBASOUND_DLOPEN
++#define WRAP(x) x
++#else
++#define WRAP(x) cubeb_##x
++#define MAKE_TYPEDEF(x) static typeof(x) * cubeb_##x
++MAKE_TYPEDEF(snd_config);
++MAKE_TYPEDEF(snd_config_add);
++MAKE_TYPEDEF(snd_config_copy);
++MAKE_TYPEDEF(snd_config_delete);
++MAKE_TYPEDEF(snd_config_get_id);
++MAKE_TYPEDEF(snd_config_get_string);
++MAKE_TYPEDEF(snd_config_imake_integer);
++MAKE_TYPEDEF(snd_config_search);
++MAKE_TYPEDEF(snd_config_search_definition);
++MAKE_TYPEDEF(snd_lib_error_set_handler);
++MAKE_TYPEDEF(snd_pcm_avail_update);
++MAKE_TYPEDEF(snd_pcm_close);
++MAKE_TYPEDEF(snd_pcm_delay);
++MAKE_TYPEDEF(snd_pcm_drain);
++MAKE_TYPEDEF(snd_pcm_forward);
++MAKE_TYPEDEF(snd_pcm_frames_to_bytes);
++MAKE_TYPEDEF(snd_pcm_get_params);
++/* snd_pcm_hw_params_alloca is actually a macro */
++/* MAKE_TYPEDEF(snd_pcm_hw_params_alloca); */
++MAKE_TYPEDEF(snd_pcm_hw_params_sizeof);
++#define snd_pcm_hw_params_sizeof cubeb_snd_pcm_hw_params_sizeof
++MAKE_TYPEDEF(snd_pcm_hw_params_any);
++MAKE_TYPEDEF(snd_pcm_hw_params_get_channels_max);
++MAKE_TYPEDEF(snd_pcm_hw_params_get_rate);
++MAKE_TYPEDEF(snd_pcm_hw_params_set_rate_near);
++MAKE_TYPEDEF(snd_pcm_nonblock);
++MAKE_TYPEDEF(snd_pcm_open);
++MAKE_TYPEDEF(snd_pcm_open_lconf);
++MAKE_TYPEDEF(snd_pcm_pause);
++MAKE_TYPEDEF(snd_pcm_poll_descriptors);
++MAKE_TYPEDEF(snd_pcm_poll_descriptors_count);
++MAKE_TYPEDEF(snd_pcm_poll_descriptors_revents);
++MAKE_TYPEDEF(snd_pcm_recover);
++MAKE_TYPEDEF(snd_pcm_set_params);
++MAKE_TYPEDEF(snd_pcm_state);
++MAKE_TYPEDEF(snd_pcm_writei);
++
++#undef MAKE_TYPEDEF
++#endif
++
+ /* ALSA is not thread-safe. snd_pcm_t instances are individually protected
+ by the owning cubeb_stream's mutex. snd_pcm_t creation and destruction
+ is not thread-safe until ALSA 1.0.24 (see alsa-lib.git commit 91c9c8f1),
+@@ -65,6 +116,8 @@ struct cubeb {
+ workaround is not required. */
+ snd_config_t * local_config;
+ int is_pa;
++
++ void * libasound;
+ };
+
+ enum stream_state {
+@@ -258,32 +311,35 @@ alsa_refill_stream(cubeb_stream * stm)
+ long got;
+ void * p;
+ int draining;
++ unsigned pipefailures, againfailures;
+
+ draining = 0;
+
+ pthread_mutex_lock(&stm->mutex);
+
+- r = snd_pcm_poll_descriptors_revents(stm->pcm, stm->fds, stm->nfds, &revents);
+- if (r < 0 || revents != POLLOUT) {
+- /* This should be a stream error; it makes no sense for poll(2) to wake
+- for this stream and then have the stream report that it's not ready.
+- Unfortunately, this does happen, so just bail out and try again. */
+- pthread_mutex_unlock(&stm->mutex);
+- return RUNNING;
+- }
+-
+- avail = snd_pcm_avail_update(stm->pcm);
+- if (avail == -EPIPE) {
+- snd_pcm_recover(stm->pcm, avail, 1);
+- avail = snd_pcm_avail_update(stm->pcm);
+- }
++ for (pipefailures = 0;;) {
++ r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents);
++ if (r < 0 || revents != POLLOUT ||
++ (avail = WRAP(snd_pcm_avail_update)(stm->pcm)) == 0) {
++ /* This should be a stream error; it makes no sense for poll(2) to wake
++ for this stream and then have the stream report that it's not ready.
++ Unfortunately, this does happen, so just bail out and try again. */
++ pthread_mutex_unlock(&stm->mutex);
++ return RUNNING;
++ }
+
+- /* Failed to recover from an xrun, this stream must be broken. */
+- if (avail < 0) {
+- pthread_mutex_unlock(&stm->mutex);
+- stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+- return ERROR;
++ if (avail > 0)
++ break;
++ if (pipefailures++ > 11) {
++ fprintf(stderr, "%s: repeated failures from snd_pcm_avail_update, "
++ "giving up\n", __func__);
++ pthread_mutex_unlock(&stm->mutex);
++ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
++ return ERROR;
++ }
++ WRAP(snd_pcm_recover)(stm->pcm, avail, 1);
+ }
++ pipefailures = againfailures = 0;
+
+ /* This should never happen. */
+ if ((unsigned int) avail > stm->buffer_size) {
+@@ -294,8 +350,8 @@ alsa_refill_stream(cubeb_stream * stm)
+ available to write. If avail is still zero here, the stream must be in
+ a funky state, so recover and try again. */
+ if (avail == 0) {
+- snd_pcm_recover(stm->pcm, -EPIPE, 1);
+- avail = snd_pcm_avail_update(stm->pcm);
++ WRAP(snd_pcm_recover)(stm->pcm, -EPIPE, 1);
++ avail = WRAP(snd_pcm_avail_update)(stm->pcm);
+ if (avail <= 0) {
+ pthread_mutex_unlock(&stm->mutex);
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+@@ -303,7 +359,7 @@ alsa_refill_stream(cubeb_stream * stm)
+ }
+ }
+
+- p = calloc(1, snd_pcm_frames_to_bytes(stm->pcm, avail));
++ p = calloc(1, WRAP(snd_pcm_frames_to_bytes)(stm->pcm, avail));
+ assert(p);
+
+ pthread_mutex_unlock(&stm->mutex);
+@@ -312,10 +368,11 @@ alsa_refill_stream(cubeb_stream * stm)
+ if (got < 0) {
+ pthread_mutex_unlock(&stm->mutex);
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
++ free(p);
+ return ERROR;
+ }
+ if (got > 0) {
+- snd_pcm_sframes_t wrote;
++ snd_pcm_sframes_t wrote, towrite = got;
+
+ if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) {
+ float * b = (float *) p;
+@@ -328,14 +385,64 @@ alsa_refill_stream(cubeb_stream * stm)
+ b[i] *= stm->volume;
+ }
+ }
+- wrote = snd_pcm_writei(stm->pcm, p, got);
+- if (wrote == -EPIPE) {
+- snd_pcm_recover(stm->pcm, wrote, 1);
+- wrote = snd_pcm_writei(stm->pcm, p, got);
+- }
+- assert(wrote >= 0 && wrote == got);
+- stm->write_position += wrote;
+- gettimeofday(&stm->last_activity, NULL);
++ for (;;) {
++ wrote = WRAP(snd_pcm_writei)(stm->pcm, p,
++ towrite > avail ? avail : towrite);
++ switch(wrote) {
++ case -EPIPE:
++ if (pipefailures++ > 3) {
++ fprintf(stderr, "%s: Too many underflows, giving up\n", __func__);
++ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
++ pthread_mutex_unlock(&stm->mutex);
++ free(p);
++ return ERROR;
++ }
++ WRAP(snd_pcm_recover)(stm->pcm, wrote, 1);
++ continue;
++ case -EAGAIN:
++ if (againfailures++ > 3) {
++ fprintf(stderr, "%s: Too many -EAGAIN errors from snd_pcm_writei, "
++ "giving up\n", __func__);
++ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
++ pthread_mutex_unlock(&stm->mutex);
++ free(p);
++ return ERROR;
++ }
++ continue;
++#if defined(EBADFD)
++ case -EBADFD:
++ fprintf(stderr, "%s: snc_pcm_writei returned -%s, giving up\n",
++ __func__, "EBADFD");
++ free(p);
++ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
++ pthread_mutex_unlock(&stm->mutex);
++ return ERROR;
++#endif
++ }
++ if (wrote < 0) {
++ fprintf(stderr, "%s: snc_pcm_writei returned unexpected error %lld, "
++ "giving up\n", __func__, (long long)wrote);
++ free(p);
++ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
++ pthread_mutex_unlock(&stm->mutex);
++ return ERROR;
++ }
++ pipefailures = againfailures = 0;
++ stm->write_position += wrote;
++ gettimeofday(&stm->last_activity, NULL);
++ if (wrote > towrite) {
++ fprintf(stderr, "%s: snc_pcm_writei wrote %lld frames, which was more "
++ "than we requested (%lld). This should not happen, giving up\n",
++ __func__, (long long)wrote, (long long)towrite);
++ free(p);
++ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
++ pthread_mutex_unlock(&stm->mutex);
++ return ERROR;
++ }
++ if (towrite == wrote)
++ break;
++ towrite -= wrote;
++ }
+ }
+ if (got != avail) {
+ long buffer_fill = stm->buffer_size - (avail - got);
+@@ -343,7 +450,7 @@ alsa_refill_stream(cubeb_stream * stm)
+
+ /* Fill the remaining buffer with silence to guarantee one full period
+ has been written. */
+- snd_pcm_writei(stm->pcm, (char *) p + got, avail - got);
++ WRAP(snd_pcm_writei)(stm->pcm, (char *) p + got, avail - got);
+
+ set_timeout(&stm->drain_timeout, buffer_time * 1000);
+
+@@ -454,26 +561,26 @@ get_slave_pcm_node(snd_config_t * lconf,
+
+ slave_def = NULL;
+
+- r = snd_config_search(root_pcm, "slave", &slave_pcm);
++ r = WRAP(snd_config_search)(root_pcm, "slave", &slave_pcm);
+ if (r < 0) {
+ return NULL;
+ }
+
+- r = snd_config_get_string(slave_pcm, &string);
++ r = WRAP(snd_config_get_string)(slave_pcm, &string);
+ if (r >= 0) {
+- r = snd_config_search_definition(lconf, "pcm_slave", string, &slave_def);
++ r = WRAP(snd_config_search_definition)(lconf, "pcm_slave", string, &slave_def);
+ if (r < 0) {
+ return NULL;
+ }
+ }
+
+ do {
+- r = snd_config_search(slave_def ? slave_def : slave_pcm, "pcm", &pcm);
++ r = WRAP(snd_config_search)(slave_def ? slave_def : slave_pcm, "pcm", &pcm);
+ if (r < 0) {
+ break;
+ }
+
+- r = snd_config_get_string(slave_def ? slave_def : slave_pcm, &string);
++ r = WRAP(snd_config_get_string)(slave_def ? slave_def : slave_pcm, &string);
+ if (r < 0) {
+ break;
+ }
+@@ -482,7 +589,7 @@ get_slave_pcm_node(snd_config_t * lconf,
+ if (r < 0 || r > (int) sizeof(node_name)) {
+ break;
+ }
+- r = snd_config_search(lconf, node_name, &pcm);
++ r = WRAP(snd_config_search)(lconf, node_name, &pcm);
+ if (r < 0) {
+ break;
+ }
+@@ -491,7 +598,7 @@ get_slave_pcm_node(snd_config_t * lconf,
+ } while (0);
+
+ if (slave_def) {
+- snd_config_delete(slave_def);
++ WRAP(snd_config_delete)(slave_def);
+ }
+
+ return NULL;
+@@ -514,22 +621,22 @@ init_local_config_with_workaround(char c
+
+ lconf = NULL;
+
+- if (snd_config == NULL) {
++ if (*WRAP(snd_config) == NULL) {
+ return NULL;
+ }
+
+- r = snd_config_copy(&lconf, snd_config);
++ r = WRAP(snd_config_copy)(&lconf, *WRAP(snd_config));
+ if (r < 0) {
+ return NULL;
+ }
+
+ do {
+- r = snd_config_search_definition(lconf, "pcm", pcm_name, &pcm_node);
++ r = WRAP(snd_config_search_definition)(lconf, "pcm", pcm_name, &pcm_node);
+ if (r < 0) {
+ break;
+ }
+
+- r = snd_config_get_id(pcm_node, &string);
++ r = WRAP(snd_config_get_id)(pcm_node, &string);
+ if (r < 0) {
+ break;
+ }
+@@ -538,7 +645,7 @@ init_local_config_with_workaround(char c
+ if (r < 0 || r > (int) sizeof(node_name)) {
+ break;
+ }
+- r = snd_config_search(lconf, node_name, &pcm_node);
++ r = WRAP(snd_config_search)(lconf, node_name, &pcm_node);
+ if (r < 0) {
+ break;
+ }
+@@ -549,12 +656,12 @@ init_local_config_with_workaround(char c
+ }
+
+ /* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */
+- r = snd_config_search(pcm_node, "type", &node);
++ r = WRAP(snd_config_search)(pcm_node, "type", &node);
+ if (r < 0) {
+ break;
+ }
+
+- r = snd_config_get_string(node, &string);
++ r = WRAP(snd_config_get_string)(node, &string);
+ if (r < 0) {
+ break;
+ }
+@@ -565,18 +672,18 @@ init_local_config_with_workaround(char c
+
+ /* Don't clobber an explicit existing handle_underrun value, set it only
+ if it doesn't already exist. */
+- r = snd_config_search(pcm_node, "handle_underrun", &node);
++ r = WRAP(snd_config_search)(pcm_node, "handle_underrun", &node);
+ if (r != -ENOENT) {
+ break;
+ }
+
+ /* Disable pcm_pulse's asynchronous underrun handling. */
+- r = snd_config_imake_integer(&node, "handle_underrun", 0);
++ r = WRAP(snd_config_imake_integer)(&node, "handle_underrun", 0);
+ if (r < 0) {
+ break;
+ }
+
+- r = snd_config_add(pcm_node, node);
++ r = WRAP(snd_config_add)(pcm_node, node);
+ if (r < 0) {
+ break;
+ }
+@@ -584,7 +691,7 @@ init_local_config_with_workaround(char c
+ return lconf;
+ } while (0);
+
+- snd_config_delete(lconf);
++ WRAP(snd_config_delete)(lconf);
+
+ return NULL;
+ }
+@@ -596,9 +703,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, s
+
+ pthread_mutex_lock(&cubeb_alsa_mutex);
+ if (local_config) {
+- r = snd_pcm_open_lconf(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config);
++ r = WRAP(snd_pcm_open_lconf)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config);
+ } else {
+- r = snd_pcm_open(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK);
++ r = WRAP(snd_pcm_open)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK);
+ }
+ pthread_mutex_unlock(&cubeb_alsa_mutex);
+
+@@ -611,7 +718,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
+ int r;
+
+ pthread_mutex_lock(&cubeb_alsa_mutex);
+- r = snd_pcm_close(pcm);
++ r = WRAP(snd_pcm_close)(pcm);
+ pthread_mutex_unlock(&cubeb_alsa_mutex);
+
+ return r;
+@@ -668,12 +775,65 @@ alsa_init(cubeb ** context, char const *
+ pthread_attr_t attr;
+ snd_pcm_t * dummy;
+
++ void * libasound = NULL;
++
++#ifndef DISABLE_LIBASOUND_DLOPEN
++ libasound = dlopen("libasound.so", RTLD_LAZY);
++ if (!libasound) {
++ return CUBEB_ERROR;
++ }
++
++#define LOAD(x) do { \
++ cubeb_##x = dlsym(libasound, #x); \
++ if (!cubeb_##x) { \
++ dlclose(libasound); \
++ return CUBEB_ERROR; \
++ } \
++ } while(0)
++
++ LOAD(snd_config);
++ LOAD(snd_config_add);
++ LOAD(snd_config_copy);
++ LOAD(snd_config_delete);
++ LOAD(snd_config_get_id);
++ LOAD(snd_config_get_string);
++ LOAD(snd_config_imake_integer);
++ LOAD(snd_config_search);
++ LOAD(snd_config_search_definition);
++ LOAD(snd_lib_error_set_handler);
++ LOAD(snd_pcm_avail_update);
++ LOAD(snd_pcm_close);
++ LOAD(snd_pcm_delay);
++ LOAD(snd_pcm_drain);
++ LOAD(snd_pcm_frames_to_bytes);
++ LOAD(snd_pcm_get_params);
++ /* snd_pcm_hw_params_alloca is actually a macro */
++ /* LOAD(snd_pcm_hw_params_alloca); */
++ LOAD(snd_pcm_hw_params_sizeof);
++ LOAD(snd_pcm_hw_params_any);
++ LOAD(snd_pcm_hw_params_get_channels_max);
++ LOAD(snd_pcm_hw_params_get_rate);
++ LOAD(snd_pcm_hw_params_set_rate_near);
++ LOAD(snd_pcm_nonblock);
++ LOAD(snd_pcm_open);
++ LOAD(snd_pcm_open_lconf);
++ LOAD(snd_pcm_pause);
++ LOAD(snd_pcm_poll_descriptors);
++ LOAD(snd_pcm_poll_descriptors_count);
++ LOAD(snd_pcm_poll_descriptors_revents);
++ LOAD(snd_pcm_recover);
++ LOAD(snd_pcm_set_params);
++ LOAD(snd_pcm_state);
++ LOAD(snd_pcm_writei);
++
++#undef LOAD
++#endif
+ assert(context);
+ *context = NULL;
+
+ pthread_mutex_lock(&cubeb_alsa_mutex);
+ if (!cubeb_alsa_error_handler_set) {
+- snd_lib_error_set_handler(silent_error_handler);
++ WRAP(snd_lib_error_set_handler)(silent_error_handler);
+ cubeb_alsa_error_handler_set = 1;
+ }
+ pthread_mutex_unlock(&cubeb_alsa_mutex);
+@@ -681,6 +841,8 @@ alsa_init(cubeb ** context, char const *
+ ctx = calloc(1, sizeof(*ctx));
+ assert(ctx);
+
++ ctx->libasound = libasound;
++
+ ctx->ops = &alsa_ops;
+
+ r = pthread_mutex_init(&ctx->mutex, NULL);
+@@ -730,7 +892,7 @@ alsa_init(cubeb ** context, char const *
+ config fails with EINVAL, the PA PCM is too old for this workaround. */
+ if (r == -EINVAL) {
+ pthread_mutex_lock(&cubeb_alsa_mutex);
+- snd_config_delete(ctx->local_config);
++ WRAP(snd_config_delete)(ctx->local_config);
+ pthread_mutex_unlock(&cubeb_alsa_mutex);
+ ctx->local_config = NULL;
+ } else if (r >= 0) {
+@@ -769,9 +931,13 @@ alsa_destroy(cubeb * ctx)
+ pthread_mutex_destroy(&ctx->mutex);
+ free(ctx->fds);
+
++ if (ctx->libasound) {
++ dlclose(ctx->libasound);
++ }
++
+ if (ctx->local_config) {
+ pthread_mutex_lock(&cubeb_alsa_mutex);
+- snd_config_delete(ctx->local_config);
++ WRAP(snd_config_delete)(ctx->local_config);
+ pthread_mutex_unlock(&cubeb_alsa_mutex);
+ }
+
+@@ -839,7 +1005,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
+ return CUBEB_ERROR;
+ }
+
+- r = snd_pcm_nonblock(stm->pcm, 1);
++ r = WRAP(snd_pcm_nonblock)(stm->pcm, 1);
+ assert(r == 0);
+
+ /* Ugly hack: the PA ALSA plugin allows buffer configurations that can't
+@@ -849,23 +1015,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
+ latency = latency < 500 ? 500 : latency;
+ }
+
+- r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED,
+- stm->params.channels, stm->params.rate, 1,
+- latency * 1000);
++ r = WRAP(snd_pcm_set_params)(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED,
++ stm->params.channels, stm->params.rate, 1,
++ latency * 1000);
+ if (r < 0) {
+ alsa_stream_destroy(stm);
+ return CUBEB_ERROR_INVALID_FORMAT;
+ }
+
+- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size);
++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->period_size);
+ assert(r == 0);
+
+- stm->nfds = snd_pcm_poll_descriptors_count(stm->pcm);
++ stm->nfds = WRAP(snd_pcm_poll_descriptors_count)(stm->pcm);
+ assert(stm->nfds > 0);
+
+ stm->saved_fds = calloc(stm->nfds, sizeof(struct pollfd));
+ assert(stm->saved_fds);
+- r = snd_pcm_poll_descriptors(stm->pcm, stm->saved_fds, stm->nfds);
++ r = WRAP(snd_pcm_poll_descriptors)(stm->pcm, stm->saved_fds, stm->nfds);
+ assert((nfds_t) r == stm->nfds);
+
+ r = pthread_cond_init(&stm->cond, NULL);
+@@ -896,7 +1062,7 @@ alsa_stream_destroy(cubeb_stream * stm)
+ pthread_mutex_lock(&stm->mutex);
+ if (stm->pcm) {
+ if (stm->state == DRAINING) {
+- snd_pcm_drain(stm->pcm);
++ WRAP(snd_pcm_drain)(stm->pcm);
+ }
+ alsa_locked_pcm_close(stm->pcm);
+ stm->pcm = NULL;
+@@ -906,7 +1072,10 @@ alsa_stream_destroy(cubeb_stream * stm)
+ pthread_mutex_destroy(&stm->mutex);
+
+ r = pthread_cond_destroy(&stm->cond);
+- assert(r == 0);
++ if (r != 0) { /* XXX stopgap until someone figures out the real reason */
++ fprintf(stderr,"alsa_stream_destroy: pthread_cond_destroy failed: %s",
++ strerror(r));
++ }
+
+ alsa_unregister_stream(stm);
+
+@@ -938,12 +1107,12 @@ alsa_get_max_channel_count(cubeb * ctx,
+ return CUBEB_ERROR;
+ }
+
+- r = snd_pcm_hw_params_any(stm->pcm, hw_params);
++ r = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params);
+ if (r < 0) {
+ return CUBEB_ERROR;
+ }
+
+- r = snd_pcm_hw_params_get_channels_max(hw_params, max_channels);
++ r = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels);
+ if (r < 0) {
+ return CUBEB_ERROR;
+ }
+@@ -963,34 +1132,34 @@ alsa_get_preferred_sample_rate(cubeb * c
+
+ /* get a pcm, disabling resampling, so we get a rate the
+ * hardware/dmix/pulse/etc. supports. */
+- r = snd_pcm_open(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
++ r = WRAP(snd_pcm_open)(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
+ if (r < 0) {
+ return CUBEB_ERROR;
+ }
+
+- r = snd_pcm_hw_params_any(pcm, hw_params);
++ r = WRAP(snd_pcm_hw_params_any)(pcm, hw_params);
+ if (r < 0) {
+- snd_pcm_close(pcm);
++ WRAP(snd_pcm_close)(pcm);
+ return CUBEB_ERROR;
+ }
+
+- r = snd_pcm_hw_params_get_rate(hw_params, rate, &dir);
++ r = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir);
+ if (r >= 0) {
+ /* There is a default rate: use it. */
+- snd_pcm_close(pcm);
++ WRAP(snd_pcm_close)(pcm);
+ return CUBEB_OK;
+ }
+
+ /* Use a common rate, alsa may adjust it based on hw/etc. capabilities. */
+ *rate = 44100;
+
+- r = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL);
++ r = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL);
+ if (r < 0) {
+- snd_pcm_close(pcm);
++ WRAP(snd_pcm_close)(pcm);
+ return CUBEB_ERROR;
+ }
+
+- snd_pcm_close(pcm);
++ WRAP(snd_pcm_close)(pcm);
+
+ return CUBEB_OK;
+ }
+@@ -1014,7 +1183,7 @@ alsa_stream_start(cubeb_stream * stm)
+ ctx = stm->context;
+
+ pthread_mutex_lock(&stm->mutex);
+- snd_pcm_pause(stm->pcm, 0);
++ WRAP(snd_pcm_pause)(stm->pcm, 0);
+ gettimeofday(&stm->last_activity, NULL);
+ pthread_mutex_unlock(&stm->mutex);
+
+@@ -1048,7 +1217,7 @@ alsa_stream_stop(cubeb_stream * stm)
+ pthread_mutex_unlock(&ctx->mutex);
+
+ pthread_mutex_lock(&stm->mutex);
+- snd_pcm_pause(stm->pcm, 1);
++ WRAP(snd_pcm_pause)(stm->pcm, 1);
+ pthread_mutex_unlock(&stm->mutex);
+
+ return CUBEB_OK;
+@@ -1064,14 +1233,17 @@ alsa_stream_get_position(cubeb_stream *
+ pthread_mutex_lock(&stm->mutex);
+
+ delay = -1;
+- if (snd_pcm_state(stm->pcm) != SND_PCM_STATE_RUNNING ||
+- snd_pcm_delay(stm->pcm, &delay) != 0) {
++ if (WRAP(snd_pcm_state)(stm->pcm) != SND_PCM_STATE_RUNNING ||
++ WRAP(snd_pcm_delay)(stm->pcm, &delay) != 0) {
+ *position = stm->last_position;
+ pthread_mutex_unlock(&stm->mutex);
+ return CUBEB_OK;
+ }
+
+- assert(delay >= 0);
++ if (delay < 0) {
++ WRAP(snd_pcm_forward)(stm->pcm, -delay);
++ delay = 0;
++ }
+
+ *position = 0;
+ if (stm->write_position >= (snd_pcm_uframes_t) delay) {
+@@ -1090,7 +1262,7 @@ alsa_stream_get_latency(cubeb_stream * s
+ snd_pcm_sframes_t delay;
+ /* This function returns the delay in frames until a frame written using
+ snd_pcm_writei is sent to the DAC. The DAC delay should be < 1ms anyways. */
+- if (snd_pcm_delay(stm->pcm, &delay)) {
++ if (WRAP(snd_pcm_delay)(stm->pcm, &delay)) {
+ return CUBEB_ERROR;
+ }
+
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__oss.c b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__oss.c
new file mode 100644
index 00000000000..4ea994c7b61
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_cubeb__oss.c
@@ -0,0 +1,407 @@
+$NetBSD: patch-mozilla_media_libcubeb_src_cubeb__oss.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libcubeb/src/cubeb_oss.c.orig 2015-07-06 19:52:50.000000000 +0000
++++ mozilla/media/libcubeb/src/cubeb_oss.c
+@@ -0,0 +1,402 @@
++/*
++ * Copyright © 2014 Mozilla Foundation
++ *
++ * This program is made available under an ISC-style license. See the
++ * accompanying file LICENSE for details.
++ */
++#if defined(HAVE_SYS_SOUNDCARD_H)
++#include <sys/soundcard.h>
++#else
++#include <soundcard.h>
++#endif
++#include <unistd.h>
++#include <stdlib.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <sys/ioctl.h>
++#include <errno.h>
++#include <pthread.h>
++#include <stdio.h>
++
++#include "cubeb/cubeb.h"
++#include "cubeb-internal.h"
++
++#ifndef CUBEB_OSS_DEFAULT_OUTPUT
++#define CUBEB_OSS_DEFAULT_OUTPUT "/dev/dsp"
++#endif
++
++#define OSS_BUFFER_SIZE 1024
++
++struct cubeb {
++ struct cubeb_ops const * ops;
++};
++
++struct cubeb_stream {
++ cubeb * context;
++
++ cubeb_data_callback data_callback;
++ cubeb_state_callback state_callback;
++ void * user_ptr;
++ float volume;
++ float panning;
++
++ pthread_mutex_t state_mutex;
++ pthread_cond_t state_cond;
++
++ int running;
++ int stopped;
++ int floating;
++
++ /* These two vars are needed to support old versions of OSS */
++ unsigned int position_bytes;
++ unsigned int last_position_bytes;
++
++ uint64_t written_frags; /* The number of fragments written to /dev/dsp */
++ uint64_t missed_frags; /* fragments output with stopped stream */
++
++ cubeb_stream_params params;
++ int fd;
++ pthread_t th;
++};
++
++static struct cubeb_ops const oss_ops;
++
++int oss_init(cubeb ** context, char const * context_name)
++{
++ cubeb* ctx = (cubeb*)malloc(sizeof(cubeb));
++ ctx->ops = &oss_ops;
++ *context = ctx;
++ return CUBEB_OK;
++}
++
++static void oss_destroy(cubeb *ctx)
++{
++ free(ctx);
++}
++
++static char const * oss_get_backend_id(cubeb * context)
++{
++ static char oss_name[] = "oss";
++ return oss_name;
++}
++
++static int oss_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
++{
++ *max_channels = 2; /* Let's support only stereo for now */
++ return CUBEB_OK;
++}
++
++static int oss_get_min_latency(cubeb * context, cubeb_stream_params params,
++ uint32_t * latency_ms)
++{
++ /* 40ms is a big enough number to work ok */
++ *latency_ms = 40;
++ return CUBEB_OK;
++}
++
++static int oss_get_preferred_sample_rate(cubeb *context, uint32_t * rate)
++{
++ /* 48000 seems a prefered choice for most audio devices
++ * and a good choice for OSS */
++ *rate = 48000;
++ return CUBEB_OK;
++}
++
++static void run_state_callback(cubeb_stream *stream, cubeb_state state)
++{
++ if (stream->state_callback) {
++ stream->state_callback(stream, stream->user_ptr, state);
++ }
++}
++
++static long run_data_callback(cubeb_stream *stream, void *buffer, long nframes)
++{
++ long got = 0;
++ pthread_mutex_lock(&stream->state_mutex);
++ if (stream->data_callback && stream->running && !stream->stopped) {
++ pthread_mutex_unlock(&stream->state_mutex);
++ got = stream->data_callback(stream, stream->user_ptr, buffer, nframes);
++ } else {
++ pthread_mutex_unlock(&stream->state_mutex);
++ }
++ return got;
++}
++
++static void apply_volume(int16_t* buffer, unsigned int n,
++ float volume, float panning)
++{
++ float left = volume;
++ float right = volume;
++ unsigned int i;
++ int pan[2];
++ if (panning<0) {
++ right *= (1+panning);
++ } else {
++ left *= (1-panning);
++ }
++ pan[0] = 128.0*left;
++ pan[1] = 128.0*right;
++ for(i=0; i<n; i++){
++ buffer[i] = ((int)buffer[i])*pan[i%2]/128;
++ }
++}
++
++static void *writer(void *stm)
++{
++ cubeb_stream* stream = (cubeb_stream*)stm;
++ int16_t buffer[OSS_BUFFER_SIZE];
++ float f_buffer[OSS_BUFFER_SIZE];
++ int got;
++ unsigned long i;
++ while (stream->running) {
++ pthread_mutex_lock(&stream->state_mutex);
++ if (stream->stopped) {
++ pthread_mutex_unlock(&stream->state_mutex);
++ run_state_callback(stream, CUBEB_STATE_STOPPED);
++ pthread_mutex_lock(&stream->state_mutex);
++ while (stream->stopped) {
++ pthread_cond_wait(&stream->state_cond, &stream->state_mutex);
++ }
++ pthread_mutex_unlock(&stream->state_mutex);
++ run_state_callback(stream, CUBEB_STATE_STARTED);
++ continue;
++ }
++ pthread_mutex_unlock(&stream->state_mutex);
++ if (stream->floating) {
++ got = run_data_callback(stream, f_buffer,
++ OSS_BUFFER_SIZE/stream->params.channels);
++ for (i=0; i<((unsigned long)got)*stream->params.channels; i++) {
++ buffer[i] = f_buffer[i]*32767.0;
++ }
++ } else {
++ got = run_data_callback(stream, buffer,
++ OSS_BUFFER_SIZE/stream->params.channels);
++ }
++ apply_volume(buffer, got*stream->params.channels,
++ stream->volume, stream->panning);
++ if (got<0) {
++ run_state_callback(stream, CUBEB_STATE_ERROR);
++ break;
++ }
++ if (!got) {
++ run_state_callback(stream, CUBEB_STATE_DRAINED);
++ }
++ if (got) {
++ size_t i = 0;
++ size_t s = got*stream->params.channels*sizeof(int16_t);
++ while (i < s) {
++ ssize_t n = write(stream->fd, ((char*)buffer) + i, s - i);
++ if (n<=0) {
++ run_state_callback(stream, CUBEB_STATE_ERROR);
++ break;
++ }
++ i+=n;
++ }
++ stream->written_frags+=got;
++ }
++ }
++ return NULL;
++}
++
++static void oss_try_set_latency(cubeb_stream* stream, unsigned int latency)
++{
++ unsigned int latency_bytes, n_frag;
++ int frag;
++ /* fragment size of 1024 is a good choice with good chances to be accepted */
++ unsigned int frag_size=1024;
++ unsigned int frag_log=10; /* 2^frag_log = frag_size */
++ latency_bytes =
++ latency*stream->params.rate*stream->params.channels*sizeof(uint16_t)/1000;
++ n_frag = latency_bytes>>frag_log;
++ frag = (n_frag<<16) | frag_log;
++ /* Even if this fails we wish to continue, not checking for errors */
++ ioctl(stream->fd, SNDCTL_DSP_SETFRAGMENT, &frag);
++}
++
++static int oss_stream_init(cubeb * context, cubeb_stream ** stm,
++ char const * stream_name,
++ cubeb_stream_params stream_params,
++ unsigned int latency,
++ cubeb_data_callback data_callback,
++ cubeb_state_callback state_callback, void * user_ptr)
++{
++ cubeb_stream* stream = (cubeb_stream*)malloc(sizeof(cubeb_stream));
++ stream->context = context;
++ stream->data_callback = data_callback;
++ stream->state_callback = state_callback;
++ stream->user_ptr = user_ptr;
++
++ if ((stream->fd = open(CUBEB_OSS_DEFAULT_OUTPUT, O_WRONLY)) == -1) {
++ free(stream);
++ return CUBEB_ERROR;
++ }
++#define SET(what, to) do { unsigned int i = to; \
++ int j = ioctl(stream->fd, what, &i); \
++ if (j == -1 || i != to) { \
++ close(stream->fd); \
++ free(stream); \
++ return CUBEB_ERROR_INVALID_FORMAT; } } while (0)
++
++ stream->params = stream_params;
++ stream->volume = 1.0;
++ stream->panning = 0.0;
++
++ oss_try_set_latency(stream, latency);
++
++ stream->floating = 0;
++ SET(SNDCTL_DSP_CHANNELS, stream_params.channels);
++ SET(SNDCTL_DSP_SPEED, stream_params.rate);
++ switch (stream_params.format) {
++ case CUBEB_SAMPLE_S16LE:
++ SET(SNDCTL_DSP_SETFMT, AFMT_S16_LE);
++ break;
++ case CUBEB_SAMPLE_S16BE:
++ SET(SNDCTL_DSP_SETFMT, AFMT_S16_BE);
++ break;
++ case CUBEB_SAMPLE_FLOAT32LE:
++ SET(SNDCTL_DSP_SETFMT, AFMT_S16_NE);
++ stream->floating = 1;
++ break;
++ default:
++ close(stream->fd);
++ free(stream);
++ return CUBEB_ERROR;
++ }
++
++
++ pthread_mutex_init(&stream->state_mutex, NULL);
++ pthread_cond_init(&stream->state_cond, NULL);
++
++ stream->running = 1;
++ stream->stopped = 1;
++ stream->position_bytes = 0;
++ stream->last_position_bytes = 0;
++ stream->written_frags = 0;
++ stream->missed_frags = 0;
++
++ pthread_create(&stream->th, NULL, writer, (void*)stream);
++
++ *stm = stream;
++
++ return CUBEB_OK;
++}
++
++static void oss_stream_destroy(cubeb_stream * stream)
++{
++ pthread_mutex_lock(&stream->state_mutex);
++
++ stream->running = 0;
++ stream->stopped = 0;
++ pthread_cond_signal(&stream->state_cond);
++
++ pthread_mutex_unlock(&stream->state_mutex);
++
++ pthread_join(stream->th, NULL);
++
++ pthread_mutex_destroy(&stream->state_mutex);
++ pthread_cond_destroy(&stream->state_cond);
++ close(stream->fd);
++ free(stream);
++}
++
++static int oss_stream_get_latency(cubeb_stream * stream, uint32_t * latency)
++{
++ if (ioctl(stream->fd, SNDCTL_DSP_GETODELAY, latency)==-1) {
++ return CUBEB_ERROR;
++ }
++ /* Convert latency from bytes to frames */
++ *latency /= stream->params.channels*sizeof(int16_t);
++ return CUBEB_OK;
++}
++
++
++static int oss_stream_current_optr(cubeb_stream * stream, uint64_t * position)
++{
++ count_info ci;
++ /* Unfortunately, this ioctl is only available in OSS 4.x */
++#ifdef SNDCTL_DSP_CURRENT_OPTR
++ oss_count_t count;
++ if (ioctl(stream->fd, SNDCTL_DSP_CURRENT_OPTR, &count) != -1) {
++ *position = count.samples;// + count.fifo_samples;
++ return CUBEB_OK;
++ }
++#endif
++ /* Fall back to this ioctl in case the previous one fails */
++ if (ioctl(stream->fd, SNDCTL_DSP_GETOPTR, &ci) == -1) {
++ return CUBEB_ERROR;
++ }
++ /* ci.bytes is only 32 bit and will start to wrap after arithmetic overflow */
++ stream->position_bytes += ci.bytes - stream->last_position_bytes;
++ stream->last_position_bytes = ci.bytes;
++ *position = stream->position_bytes/stream->params.channels/sizeof(int16_t);
++ return CUBEB_OK;
++}
++
++static int oss_stream_get_position(cubeb_stream * stream, uint64_t * position)
++{
++ if ( oss_stream_current_optr(stream, position) == CUBEB_OK ){
++ *position -= stream->missed_frags;
++ return CUBEB_OK;
++ }
++ /* If no correct method to get position works we resort to this */
++ *position = stream->written_frags;
++ return CUBEB_OK;
++}
++
++
++static int oss_stream_start(cubeb_stream * stream)
++{
++ pthread_mutex_lock(&stream->state_mutex);
++ if (stream->stopped) {
++ uint64_t ptr;
++ oss_stream_current_optr(stream, &ptr);
++ stream->missed_frags = ptr - stream->written_frags;
++ stream->stopped = 0;
++ pthread_cond_signal(&stream->state_cond);
++ }
++ pthread_mutex_unlock(&stream->state_mutex);
++ return CUBEB_OK;
++}
++
++static int oss_stream_stop(cubeb_stream * stream)
++{
++ pthread_mutex_lock(&stream->state_mutex);
++ stream->stopped = 1;
++ pthread_mutex_unlock(&stream->state_mutex);
++ return CUBEB_OK;
++}
++
++int oss_stream_set_panning(cubeb_stream * stream, float panning)
++{
++ if (stream->params.channels == 2) {
++ stream->panning=panning;
++ }
++ return CUBEB_OK;
++}
++
++int oss_stream_set_volume(cubeb_stream * stream, float volume)
++{
++ stream->volume=volume;
++ return CUBEB_OK;
++}
++
++static struct cubeb_ops const oss_ops = {
++ .init = oss_init,
++ .get_backend_id = oss_get_backend_id,
++ .get_max_channel_count = oss_get_max_channel_count,
++ .get_min_latency = oss_get_min_latency,
++ .get_preferred_sample_rate = oss_get_preferred_sample_rate,
++ .destroy = oss_destroy,
++ .stream_init = oss_stream_init,
++ .stream_destroy = oss_stream_destroy,
++ .stream_start = oss_stream_start,
++ .stream_stop = oss_stream_stop,
++ .stream_get_position = oss_stream_get_position,
++ .stream_get_latency = oss_stream_get_latency,
++ .stream_set_volume = oss_stream_set_volume,
++ .stream_set_panning = oss_stream_set_panning,
++ .stream_get_current_device = NULL,
++ .stream_device_destroy = NULL,
++ .stream_register_device_changed_callback = NULL
++};
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_moz.build b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_moz.build
index eae05ec8b4a..ee3cc7eef4d 100644
--- a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_moz.build
+++ b/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_moz.build
@@ -1,8 +1,21 @@
-$NetBSD: patch-mozilla_media_libcubeb_src_moz.build,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_media_libcubeb_src_moz.build,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/media/libcubeb/src/moz.build.orig 2014-07-18 00:05:38.000000000 +0000
+--- mozilla/media/libcubeb/src/moz.build.orig 2015-06-08 17:49:22.000000000 +0000
+++ mozilla/media/libcubeb/src/moz.build
-@@ -30,7 +30,7 @@ if CONFIG['OS_ARCH'] == 'OpenBSD':
+@@ -17,6 +17,12 @@ if CONFIG['MOZ_ALSA']:
+ ]
+ DEFINES['USE_ALSA'] = True
+
++if CONFIG['MOZ_OSS']:
++ SOURCES += [
++ 'cubeb_oss.c',
++ ]
++ DEFINES['USE_OSS'] = True
++
+ if CONFIG['MOZ_PULSEAUDIO']:
+ SOURCES += [
+ 'cubeb_pulse.c',
+@@ -31,7 +37,7 @@ if CONFIG['OS_ARCH'] == 'OpenBSD':
]
DEFINES['USE_SNDIO'] = True
@@ -10,4 +23,24 @@ $NetBSD: patch-mozilla_media_libcubeb_src_moz.build,v 1.1 2014/07/27 20:04:59 ry
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
SOURCES += [
'cubeb_audiounit.c',
+ 'cubeb_osx_run_loop.c'
+@@ -65,6 +71,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
+
+ FINAL_LIBRARY = 'gkmedias'
+
++if CONFIG['MOZ_NATIVE_SPEEX']:
++ SOURCES['cubeb_resampler.cpp'].flags += CONFIG['MOZ_SPEEX_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
+ CFLAGS += [
+ '-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [
+@@ -73,7 +82,9 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
+ ]
]
+
++CFLAGS += CONFIG['MOZ_OSS_CFLAGS']
+ FAIL_ON_WARNINGS = True
+
++CFLAGS += CONFIG['MOZ_OSS_CFLAGS']
+ CFLAGS += CONFIG['MOZ_ALSA_CFLAGS']
+ CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS']
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp b/mail/thunderbird/patches/patch-mozilla_media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp
new file mode 100644
index 00000000000..c31e52fc217
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp
@@ -0,0 +1,22 @@
+$NetBSD: patch-mozilla_media_libstagefright_frameworks_av_media_libstagefright_foundation_AString.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp
+@@ -23,6 +23,17 @@
+ #include "ADebug.h"
+ #include "AString.h"
+
++#ifdef __FreeBSD__
++# include <osreldate.h>
++# if __FreeBSD_version < 900506
++# undef tolower
++# endif
++#endif
++
++#if defined(__NetBSD__) && defined(tolower)
++#undef tolower
++#endif
++
+ namespace stagefright {
+
+ // static
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libstagefright_system_core_liblog_fake__log__device.c b/mail/thunderbird/patches/patch-mozilla_media_libstagefright_system_core_liblog_fake__log__device.c
new file mode 100644
index 00000000000..2a4e2674468
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libstagefright_system_core_liblog_fake__log__device.c
@@ -0,0 +1,27 @@
+$NetBSD: patch-mozilla_media_libstagefright_system_core_liblog_fake__log__device.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libstagefright/system/core/liblog/fake_log_device.c.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libstagefright/system/core/liblog/fake_log_device.c
+@@ -231,11 +231,11 @@ static void configureInitialState(const
+ char tagName[kMaxTagLen];
+ int i, minPrio;
+
+- while (isspace(*tags))
++ while (isspace((unsigned char)*tags))
+ tags++;
+
+ i = 0;
+- while (*tags != '\0' && !isspace(*tags) && *tags != ':' &&
++ while (*tags != '\0' && !isspace((unsigned char)*tags) && *tags != ':' &&
+ i < kMaxTagLen)
+ {
+ tagName[i++] = *tags++;
+@@ -274,7 +274,7 @@ static void configureInitialState(const
+ }
+
+ tags++;
+- if (*tags != '\0' && !isspace(*tags)) {
++ if (*tags != '\0' && !isspace((unsigned char)*tags)) {
+ TRACE("ERROR: garbage in tag env; expected whitespace\n");
+ TRACE(" env='%s'\n", tags);
+ return;
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libstagefright_system_core_liblog_logprint.c b/mail/thunderbird/patches/patch-mozilla_media_libstagefright_system_core_liblog_logprint.c
new file mode 100644
index 00000000000..5bd93aa8382
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libstagefright_system_core_liblog_logprint.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-mozilla_media_libstagefright_system_core_liblog_logprint.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libstagefright/system/core/liblog/logprint.c.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libstagefright/system/core/liblog/logprint.c
+@@ -103,7 +103,7 @@ static android_LogPriority filterCharToP
+ {
+ android_LogPriority pri;
+
+- c = tolower(c);
++ c = tolower((unsigned char)c);
+
+ if (c >= '0' && c <= '9') {
+ if (c >= ('0'+ANDROID_LOG_SILENT)) {
+@@ -372,7 +372,7 @@ static inline char * strip_end(char *str
+ {
+ char *end = str + strlen(str) - 1;
+
+- while (end >= str && isspace(*end))
++ while (end >= str && isspace((unsigned char)*end))
+ *end-- = '\0';
+ return str;
+ }
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libtheora_Makefile.in b/mail/thunderbird/patches/patch-mozilla_media_libtheora_Makefile.in
deleted file mode 100644
index 74553c4d732..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_media_libtheora_Makefile.in
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-mozilla_media_libtheora_Makefile.in,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/media/libtheora/Makefile.in.orig 2014-07-27 06:20:09.000000000 +0000
-+++ mozilla/media/libtheora/Makefile.in
-@@ -0,0 +1,9 @@
-+# This Source Code Form is subject to the terms of the Mozilla Public
-+# License, v. 2.0. If a copy of the MPL was not distributed with this
-+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+
-+include $(topsrcdir)/config/rules.mk
-+
-+ifdef MOZ_NATIVE_OGG
-+CFLAGS += $(MOZ_OGG_CFLAGS)
-+endif
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libtheora_lib_arm_armcpu.c b/mail/thunderbird/patches/patch-mozilla_media_libtheora_lib_arm_armcpu.c
new file mode 100644
index 00000000000..25a342c44b6
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libtheora_lib_arm_armcpu.c
@@ -0,0 +1,23 @@
+$NetBSD: patch-mozilla_media_libtheora_lib_arm_armcpu.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libtheora/lib/arm/armcpu.c.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libtheora/lib/arm/armcpu.c
+@@ -107,6 +107,18 @@ ogg_uint32_t oc_cpu_flags_get(void){
+ return flags;
+ }
+
++#elif defined(__NetBSD__)
++ogg_uint32_t oc_cpu_flags_get(void){
++ ogg_uint32_t flags;
++ /* XXX ryoon: I have no idea about ARM CPU extensions detection mechanism
++ under NetBSD/earm.
++ evbearmv6hf-el machine, Raspberry Pi does not have NEON.
++ evbearmv7hf-el machine, CubieBoard2 does not have EDSP.
++ I have no idea about MEDIA.
++ So I will disable all options. */
++ flags=0;
++ return flags;
++}
+ #else
+ /*The feature registers which can tell us what the processor supports are
+ accessible in priveleged modes only, so we can't have a general user-space
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libtheora_lib_info.c b/mail/thunderbird/patches/patch-mozilla_media_libtheora_lib_info.c
new file mode 100644
index 00000000000..50e3c4b954e
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libtheora_lib_info.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_media_libtheora_lib_info.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libtheora/lib/info.c.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libtheora/lib/info.c
+@@ -29,7 +29,7 @@
+ static int oc_tagcompare(const char *_s1,const char *_s2,int _n){
+ int c;
+ for(c=0;c<_n;c++){
+- if(toupper(_s1[c])!=toupper(_s2[c]))return !0;
++ if(toupper((unsigned char)_s1[c])!=toupper((unsigned char)_s2[c]))return !0;
+ }
+ return _s1[c]!='=';
+ }
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libtheora_moz.build b/mail/thunderbird/patches/patch-mozilla_media_libtheora_moz.build
new file mode 100644
index 00000000000..e789cb4976e
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libtheora_moz.build
@@ -0,0 +1,10 @@
+$NetBSD: patch-mozilla_media_libtheora_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libtheora/moz.build.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libtheora/moz.build
+@@ -93,3 +93,5 @@ if CONFIG['GNU_AS']:
+ if CONFIG['OS_TARGET'] == 'Android':
+ DEFINES['__linux__'] = True
+
++if CONFIG['MOZ_NATIVE_OGG']:
++ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libtremor_moz.build b/mail/thunderbird/patches/patch-mozilla_media_libtremor_moz.build
new file mode 100644
index 00000000000..c50e1066a19
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libtremor_moz.build
@@ -0,0 +1,10 @@
+$NetBSD: patch-mozilla_media_libtremor_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libtremor/moz.build.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libtremor/moz.build
+@@ -6,3 +6,5 @@
+
+ DIRS += ['include/tremor', 'lib']
+
++if CONFIG['MOZ_NATIVE_OGG']:
++ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libvorbis_lib_vorbis__info.c b/mail/thunderbird/patches/patch-mozilla_media_libvorbis_lib_vorbis__info.c
new file mode 100644
index 00000000000..cd47d11cfd2
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libvorbis_lib_vorbis__info.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_media_libvorbis_lib_vorbis__info.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libvorbis/lib/vorbis_info.c.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libvorbis/lib/vorbis_info.c
+@@ -87,7 +87,7 @@ void vorbis_comment_add_tag(vorbis_comme
+ static int tagcompare(const char *s1, const char *s2, int n){
+ int c=0;
+ while(c < n){
+- if(toupper(s1[c]) != toupper(s2[c]))
++ if(toupper((unsigned char)s1[c]) != toupper((unsigned char)s2[c]))
+ return !0;
+ c++;
+ }
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libvorbis_moz.build b/mail/thunderbird/patches/patch-mozilla_media_libvorbis_moz.build
new file mode 100644
index 00000000000..b87f8d4dccc
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libvorbis_moz.build
@@ -0,0 +1,11 @@
+$NetBSD: patch-mozilla_media_libvorbis_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libvorbis/moz.build.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libvorbis/moz.build
+@@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias'
+ # Suppress warnings in third-party code.
+ if CONFIG['GNU_CC']:
+ CFLAGS += ['-Wno-uninitialized']
++
++if CONFIG['MOZ_NATIVE_OGG']:
++ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libyuv_include_libyuv_scale__row.h b/mail/thunderbird/patches/patch-mozilla_media_libyuv_include_libyuv_scale__row.h
new file mode 100644
index 00000000000..697a0a38776
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_libyuv_include_libyuv_scale__row.h
@@ -0,0 +1,17 @@
+$NetBSD: patch-mozilla_media_libyuv_include_libyuv_scale__row.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/libyuv/include/libyuv/scale_row.h.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/libyuv/include/libyuv/scale_row.h
+@@ -219,10 +219,10 @@ void ScaleARGBFilterCols_SSSE3(uint8* ds
+ void ScaleARGBColsUp2_SSE2(uint8* dst_argb, const uint8* src_argb,
+ int dst_width, int x, int dx);
+ // Row functions.
+-void ScaleARGBRowDownEven_NEON(const uint8* src_argb, int src_stride,
++void ScaleARGBRowDownEven_NEON(const uint8* src_argb, ptrdiff_t src_stride,
+ int src_stepx,
+ uint8* dst_argb, int dst_width);
+-void ScaleARGBRowDownEvenBox_NEON(const uint8* src_argb, int src_stride,
++void ScaleARGBRowDownEvenBox_NEON(const uint8* src_argb, ptrdiff_t src_stride,
+ int src_stepx,
+ uint8* dst_argb, int dst_width);
+ void ScaleARGBRowDown2_NEON(const uint8* src_ptr, ptrdiff_t src_stride,
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_signaling.gyp b/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_signaling.gyp
deleted file mode 100644
index e603c2c54c5..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_signaling.gyp
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD: patch-mozilla_media_webrtc_signaling_signaling.gyp,v 1.2 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/media/webrtc/signaling/signaling.gyp.orig 2014-07-18 00:05:39.000000000 +0000
-+++ mozilla/media/webrtc/signaling/signaling.gyp
-@@ -847,14 +847,13 @@
- ['OS=="mac"', {
- 'defines' : [
- 'SIP_OS_OSX',
-- '_POSIX_SOURCE',
-+ # using BSD extensions, leave _POSIX_SOURCE undefined
- 'CPR_MEMORY_LITTLE_ENDIAN',
- 'NO_SOCKET_POLLING',
- 'USE_TIMER_SELECT_BASED',
- 'FULL_BUILD',
- 'STUBBED_OUT',
- 'USE_PRINTF',
-- '_DARWIN_C_SOURCE',
- 'NO_NSPR_10_SUPPORT',
- ],
- }],
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_test_Makefile.in b/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_test_Makefile.in
deleted file mode 100644
index f898e428870..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_test_Makefile.in
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD: patch-mozilla_media_webrtc_signaling_test_Makefile.in,v 1.2 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/media/webrtc/signaling/test/Makefile.in.orig 2014-07-18 00:05:40.000000000 +0000
-+++ mozilla/media/webrtc/signaling/test/Makefile.in
-@@ -7,6 +7,7 @@ LIBS = \
- $(NSPR_LIBS) \
- $(NSS_LIBS) \
- $(REALTIME_LIBS) \
-+ $(MOZ_LIBV4L2_LIBS) \
- $(DEPTH)/xpcom/glue/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \
- $(DEPTH)/media/mtransport/standalone/$(LIB_PREFIX)mtransport_s.$(LIB_SUFFIX) \
- $(DEPTH)/media/webrtc/signalingtest/signaling_ecc/$(LIB_PREFIX)ecc.$(LIB_SUFFIX) \
-@@ -48,6 +49,12 @@ LIBS += \
- $(NULL)
- endif
-
-+ifdef MOZ_NATIVE_OPUS
-+LIBS += \
-+ $(MOZ_OPUS_LIBS) \
-+ $(NULL)
-+endif
-+
- ifdef MOZ_NATIVE_LIBVPX
- LIBS += \
- $(MOZ_LIBVPX_LIBS) \
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_test_moz.build b/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_test_moz.build
new file mode 100644
index 00000000000..fa42ba7fca0
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_webrtc_signaling_test_moz.build
@@ -0,0 +1,26 @@
+$NetBSD: patch-mozilla_media_webrtc_signaling_test_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/webrtc/signaling/test/moz.build.orig 2015-06-08 17:49:23.000000000 +0000
++++ mozilla/media/webrtc/signaling/test/moz.build
+@@ -109,15 +109,19 @@ if CONFIG['JS_SHARED_LIBRARY']:
+ 'js',
+ ]
+
++OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
+ OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
+ OS_LIBS += CONFIG['REALTIME_LIBS']
+
+-if CONFIG['MOZ_ALSA']:
+- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
++if CONFIG['MOZ_OSS']:
++ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
+
+ if CONFIG['MOZ_NATIVE_JPEG']:
+ OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
+
++if CONFIG['MOZ_NATIVE_OPUS']:
++ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
++
+ if CONFIG['MOZ_NATIVE_LIBVPX']:
+ OS_LIBS += CONFIG['MOZ_LIBVPX_LIBS']
+
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi
index 5e7901941b9..c3c414b6cbb 100644
--- a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi
+++ b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi
@@ -1,17 +1,27 @@
-$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_codecs_opus_opus.gypi,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi.orig 2014-07-18 00:05:42.000000000 +0000
+--- mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi.orig 2015-06-08 17:49:24.000000000 +0000
+++ mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi
-@@ -14,9 +14,9 @@
+@@ -17,18 +17,11 @@
'conditions': [
['build_with_mozilla==1', {
# Mozilla provides its own build of the opus library.
- 'include_dirs': [
- '/media/libopus/include',
-- ]
+- '/media/libopus/src',
+- '/media/libopus/celt',
+ 'cflags_mozilla': [
++ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt',
+ '$(MOZ_OPUS_CFLAGS)',
-+ ],
++ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src',
+ ],
+- 'direct_dependent_settings': {
+- 'include_dirs': [
+- '/media/libopus/include',
+- '/media/libopus/src',
+- '/media/libopus/celt',
+- ],
+- },
}, {
'dependencies': [
'<(DEPTH)/third_party/opus/opus.gyp:opus'
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi
new file mode 100644
index 00000000000..ecaa697f6ba
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi
@@ -0,0 +1,28 @@
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_audio__coding_neteq_neteq.gypi,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi.orig 2015-06-08 17:49:24.000000000 +0000
++++ mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi
+@@ -84,19 +84,11 @@
+ ],
+ }],
+ ['build_with_mozilla==1', {
+- 'include_dirs': [
+- # Need Opus header files for the audio classifier.
+- '<(DEPTH)/../../../media/opus/celt',
+-# '<(DEPTH)/third_party/opus/src/src',
++ 'cflags_mozilla': [
++ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt',
++ '$(MOZ_OPUS_CFLAGS)',
++ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src',
+ ],
+- 'direct_dependent_settings': {
+- 'include_dirs': [
+- '../../../../../../media/opus/celt',
+- # Need Opus header files for the audio classifier.
+- '<(DEPTH)/../../../media/opus/celt',
+-# '<(DEPTH)/third_party/opus/src/src',
+- ],
+- },
+ }],
+ ],
+ 'sources': [
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc
new file mode 100644
index 00000000000..3b2f6451777
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.cc,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
+@@ -18,7 +18,7 @@ ScreenCapturer* ScreenCapturer::Create()
+ return Create(DesktopCaptureOptions::CreateDefault());
+ }
+
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ ScreenCapturer* ScreenCapturer::CreateWithXDamage(
+ bool use_update_notifications) {
+ DesktopCaptureOptions options;
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h
new file mode 100644
index 00000000000..9037405c8e8
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_desktop__capture_screen__capturer.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h.orig 2015-06-08 17:49:25.000000000 +0000
++++ mozilla/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
+@@ -63,7 +63,7 @@ class ScreenCapturer : public DesktopCap
+ static ScreenCapturer* Create(const DesktopCaptureOptions& options);
+ static ScreenCapturer* Create();
+
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ // Creates platform-specific capturer and instructs it whether it should use
+ // X DAMAGE support.
+ static ScreenCapturer* CreateWithXDamage(bool use_x_damage);
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
index 84e13a7f8a0..1d8c696c8c3 100644
--- a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
+++ b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi,v 1.1 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi.orig 2013-10-23 22:09:13.000000000 +0000
+--- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi.orig 2015-06-08 17:49:25.000000000 +0000
+++ mozilla/media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
@@ -7,6 +7,9 @@
# be found in the AUTHORS file in the root of the source tree.
@@ -11,21 +11,24 @@ $NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_modules_video__capture_video__c
+ },
'targets': [
{
- 'target_name': 'video_capture_module',
-@@ -49,6 +52,16 @@
- }, { # include_internal_video_capture == 1
- 'conditions': [
- ['include_v4l2_video_capture==1', {
-+ 'conditions': [
-+ ['use_libv4l2==1', {
-+ 'defines': [
-+ 'HAVE_LIBV4L2',
-+ ],
-+ 'libraries': [
-+ '-lv4l2',
-+ ],
-+ }],
+ # Note this library is missing an implementation for the video capture.
+@@ -69,6 +72,19 @@
+ 'linux/video_capture_linux.cc',
+ 'linux/video_capture_linux.h',
+ ],
++ 'conditions': [
++ ['use_libv4l2==1', {
++ 'defines': [
++ 'HAVE_LIBV4L2',
+ ],
- 'include_dirs': [
- 'linux',
- ],
++ 'cflags_mozilla': [
++ '$(MOZ_LIBV4L2_CFLAGS)',
++ ],
++ 'libraries': [
++ '-lv4l2',
++ ],
++ }],
++ ],
+ }], # linux
+ ['OS=="mac"', {
+ 'sources': [
diff --git a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
index d67c06f63d1..44ddf443d3d 100644
--- a/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
+++ b/mail/thunderbird/patches/patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
@@ -1,8 +1,22 @@
-$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp,v 1.2 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp,v 1.3 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig 2014-07-18 00:05:43.000000000 +0000
+--- mozilla/media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig 2015-06-08 17:49:25.000000000 +0000
+++ mozilla/media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp
-@@ -21,6 +21,13 @@ Scott McMurray
+@@ -14,6 +14,13 @@ Cygwin fix provided by:
+ Scott McMurray
+ */
+
++#ifdef __FreeBSD__
++# include <osreldate.h>
++# if __FreeBSD_version < 900506
++# define getchar boost_getchar
++# endif
++#endif
++
+ #ifndef BOOST_SPREAD_SORT_H
+ #define BOOST_SPREAD_SORT_H
+ #include <algorithm>
+@@ -21,6 +28,13 @@ Scott McMurray
#include <vector>
#include "webrtc/system_wrappers/source/spreadsortlib/constants.hpp"
@@ -13,6 +27,6 @@ $NetBSD: patch-mozilla_media_webrtc_trunk_webrtc_system__wrappers_source_spreads
+# endif
+#endif
+
- namespace boost {
- namespace detail {
- //This only works on unsigned data types
+ #ifdef getchar
+ #undef getchar
+ #endif
diff --git a/mail/thunderbird/patches/patch-mozilla_memory_build_mozjemalloc__compat.c b/mail/thunderbird/patches/patch-mozilla_memory_build_mozjemalloc__compat.c
new file mode 100644
index 00000000000..bbe91049b92
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_memory_build_mozjemalloc__compat.c
@@ -0,0 +1,53 @@
+$NetBSD: patch-mozilla_memory_build_mozjemalloc__compat.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/memory/build/mozjemalloc_compat.c.orig 2015-06-08 17:49:26.000000000 +0000
++++ mozilla/memory/build/mozjemalloc_compat.c
+@@ -131,6 +131,48 @@ compute_bin_unused(unsigned int narenas)
+ return bin_unused;
+ }
+
++static size_t
++compute_bin_unused(unsigned int narenas)
++{
++ size_t bin_unused = 0;
++
++ uint32_t nregs; // number of regions per run in the j-th bin
++ size_t reg_size; // size of regions served by the j-th bin
++ size_t curruns; // number of runs belonging to a bin
++ size_t curregs; // number of allocated regions in a bin
++
++ unsigned int nbins; // number of bins per arena
++ unsigned int i, j;
++
++ // curruns and curregs are not defined for uninitialized arenas,
++ // so we skip them when computing bin_unused. However, initialized
++ // arenas are not guaranteed to be sequential, so we must test each
++ // one when iterating below.
++ bool initialized[100]; // should be narenas, but MSVC doesn't have VLAs
++ size_t isz = sizeof(initialized) / sizeof(initialized[0]);
++
++ je_(mallctl)("arenas.initialized", initialized, &isz, NULL, 0);
++ CTL_GET("arenas.nbins", nbins);
++
++ for (j = 0; j < nbins; j++) {
++ CTL_I_GET("arenas.bin.0.nregs", nregs, j);
++ CTL_I_GET("arenas.bin.0.size", reg_size, j);
++
++ for (i = 0; i < narenas; i++) {
++ if (!initialized[i]) {
++ continue;
++ }
++
++ CTL_IJ_GET("stats.arenas.0.bins.0.curruns", curruns, i, j);
++ CTL_IJ_GET("stats.arenas.0.bins.0.curregs", curregs, i, j);
++
++ bin_unused += (nregs * curruns - curregs) * reg_size;
++ }
++ }
++
++ return bin_unused;
++}
++
+ MOZ_JEMALLOC_API void
+ jemalloc_stats_impl(jemalloc_stats_t *stats)
+ {
diff --git a/mail/thunderbird/patches/patch-mozilla_memory_jemalloc_src_configure b/mail/thunderbird/patches/patch-mozilla_memory_jemalloc_src_configure
new file mode 100644
index 00000000000..8602ac2847d
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_memory_jemalloc_src_configure
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_memory_jemalloc_src_configure,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/memory/jemalloc/src/configure.orig 2015-06-08 17:49:26.000000000 +0000
++++ mozilla/memory/jemalloc/src/configure
+@@ -6566,7 +6566,7 @@ else
+ LG_PAGE="detect"
+ fi
+
+-if test "x$LG_PAGE" == "xdetect"; then
++if test "x$LG_PAGE" = "xdetect"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking LG_PAGE" >&5
+ $as_echo_n "checking LG_PAGE... " >&6; }
+ if ${je_cv_lg_page+:} false; then :
diff --git a/mail/thunderbird/patches/patch-mozilla_memory_mozalloc_mozalloc__abort.cpp b/mail/thunderbird/patches/patch-mozilla_memory_mozalloc_mozalloc__abort.cpp
index fbfaf5adecf..ce15dd61027 100644
--- a/mail/thunderbird/patches/patch-mozilla_memory_mozalloc_mozalloc__abort.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_memory_mozalloc_mozalloc__abort.cpp
@@ -1,8 +1,8 @@
-$NetBSD: patch-mozilla_memory_mozalloc_mozalloc__abort.cpp,v 1.1 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_memory_mozalloc_mozalloc__abort.cpp,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/memory/mozalloc/mozalloc_abort.cpp.orig 2013-10-23 22:09:13.000000000 +0000
+--- mozilla/memory/mozalloc/mozalloc_abort.cpp.orig 2015-06-08 17:49:26.000000000 +0000
+++ mozilla/memory/mozalloc/mozalloc_abort.cpp
-@@ -34,7 +34,11 @@ mozalloc_abort(const char* const msg)
+@@ -63,7 +63,11 @@ void fillAbortMessage(char (&msg)[N], ui
// Define abort() here, so that it is used instead of the system abort(). This
// lets us control the behavior when aborting, in order to get better results
// on *NIX platforms. See mozalloc_abort for details.
@@ -12,5 +12,5 @@ $NetBSD: patch-mozilla_memory_mozalloc_mozalloc__abort.cpp,v 1.1 2013/11/12 20:5
void abort(void)
+#endif
{
- mozalloc_abort("Redirecting call to abort() to mozalloc_abort\n");
- }
+ #ifdef MOZ_WIDGET_ANDROID
+ char msg[64] = {};
diff --git a/mail/thunderbird/patches/patch-mozilla_memory_volatile_VolatileBufferOSX.cpp b/mail/thunderbird/patches/patch-mozilla_memory_volatile_VolatileBufferOSX.cpp
new file mode 100644
index 00000000000..4c5264ce53d
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_memory_volatile_VolatileBufferOSX.cpp
@@ -0,0 +1,19 @@
+$NetBSD: patch-mozilla_memory_volatile_VolatileBufferOSX.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/memory/volatile/VolatileBufferOSX.cpp.orig 2015-06-08 17:49:26.000000000 +0000
++++ mozilla/memory/volatile/VolatileBufferOSX.cpp
+@@ -47,7 +47,14 @@ VolatileBuffer::Init(size_t aSize, size_
+ }
+
+ heap_alloc:
++#if defined(HAVE_POSIX_MEMALIGN)
+ (void)moz_posix_memalign(&mBuf, aAlignment, aSize);
++#else
++ MOZ_RELEASE_ASSERT(
++ !(aAlignment > (size_t)getpagesize()),
++ "Cannot fallback to valloc(3): alignment is larger than the page size");
++ mBuf = valloc(aSize);
++#endif
+ mHeap = true;
+ return !!mBuf;
+ }
diff --git a/mail/thunderbird/patches/patch-mozilla_mfbt_Attributes.h b/mail/thunderbird/patches/patch-mozilla_mfbt_Attributes.h
index e337203bbb6..d828dfb6d20 100644
--- a/mail/thunderbird/patches/patch-mozilla_mfbt_Attributes.h
+++ b/mail/thunderbird/patches/patch-mozilla_mfbt_Attributes.h
@@ -1,8 +1,16 @@
-$NetBSD: patch-mozilla_mfbt_Attributes.h,v 1.1 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_mfbt_Attributes.h,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/mfbt/Attributes.h.orig 2014-07-18 00:05:43.000000000 +0000
+--- mozilla/mfbt/Attributes.h.orig 2015-06-08 17:49:26.000000000 +0000
+++ mozilla/mfbt/Attributes.h
-@@ -54,6 +54,9 @@
+@@ -50,6 +50,7 @@
+ * don't indicate support for them here, due to
+ * http://stackoverflow.com/questions/20498142/visual-studio-2013-explicit-keyword-bug
+ */
++# define MOZ_HAVE_CXX11_ALIGNAS
+ # define MOZ_HAVE_NEVER_INLINE __declspec(noinline)
+ # define MOZ_HAVE_NORETURN __declspec(noreturn)
+ # ifdef __clang__
+@@ -70,6 +71,9 @@
# ifndef __has_extension
# define __has_extension __has_feature /* compatibility, for older versions of clang */
# endif
@@ -12,21 +20,13 @@ $NetBSD: patch-mozilla_mfbt_Attributes.h,v 1.1 2014/07/27 20:04:59 ryoon Exp $
# if __has_extension(cxx_constexpr)
# define MOZ_HAVE_CXX11_CONSTEXPR
# endif
-@@ -75,6 +78,9 @@
+@@ -84,6 +88,9 @@
# endif
#elif defined(__GNUC__)
# if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
+# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0)
+# define MOZ_HAVE_CXX11_ALIGNAS
+# endif
- # if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0)
- # define MOZ_HAVE_CXX11_OVERRIDE
- # define MOZ_HAVE_CXX11_FINAL final
-@@ -96,6 +102,7 @@
- # define MOZ_HAVE_NORETURN __attribute__((noreturn))
- #elif defined(_MSC_VER)
- # if _MSC_VER >= 1800
-+# define MOZ_HAVE_CXX11_ALIGNAS
- # define MOZ_HAVE_CXX11_DELETE
+ # define MOZ_HAVE_CXX11_CONSTEXPR
+ # define MOZ_HAVE_EXPLICIT_CONVERSION
# endif
- # if _MSC_VER >= 1700
diff --git a/mail/thunderbird/patches/patch-mozilla_mfbt_Poison.cpp b/mail/thunderbird/patches/patch-mozilla_mfbt_Poison.cpp
index 830f01ce792..462b996257b 100644
--- a/mail/thunderbird/patches/patch-mozilla_mfbt_Poison.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_mfbt_Poison.cpp
@@ -1,15 +1,15 @@
-$NetBSD: patch-mozilla_mfbt_Poison.cpp,v 1.1 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_mfbt_Poison.cpp,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/mfbt/Poison.cpp.orig 2013-10-23 22:09:13.000000000 +0000
+--- mozilla/mfbt/Poison.cpp.orig 2015-06-08 17:49:26.000000000 +0000
+++ mozilla/mfbt/Poison.cpp
-@@ -125,7 +125,11 @@ ReleaseRegion(void *region, uintptr_t si
+@@ -129,7 +129,11 @@ ReleaseRegion(void* aRegion, uintptr_t a
static bool
- ProbeRegion(uintptr_t region, uintptr_t size)
+ ProbeRegion(uintptr_t aRegion, uintptr_t aSize)
{
+#if !defined(__sun__)
- if (madvise(reinterpret_cast<void*>(region), size, MADV_NORMAL)) {
+ if (madvise(reinterpret_cast<void*>(aRegion), aSize, MADV_NORMAL)) {
+#else
-+ if (posix_madvise(reinterpret_cast<void*>(region), size, MADV_NORMAL)) {
++ if (posix_madvise(reinterpret_cast<void*>(aRegion), aSize, MADV_NORMAL)) {
+#endif
return true;
} else {
diff --git a/mail/thunderbird/patches/patch-mozilla_netwerk_base_nsNetUtil.h b/mail/thunderbird/patches/patch-mozilla_netwerk_base_nsNetUtil.h
new file mode 100644
index 00000000000..c685234f61f
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_netwerk_base_nsNetUtil.h
@@ -0,0 +1,39 @@
+$NetBSD: patch-mozilla_netwerk_base_nsNetUtil.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/netwerk/base/nsNetUtil.h.orig 2015-06-08 17:49:29.000000000 +0000
++++ mozilla/netwerk/base/nsNetUtil.h
+@@ -13,6 +13,7 @@
+ #include "nsMemory.h"
+ #include "nsCOMPtr.h"
+ #include "prio.h" // for read/write flags, permissions, etc.
++#include "prnetdb.h"
+ #include "nsHashKeys.h"
+
+ #include "plstr.h"
+@@ -2828,6 +2829,26 @@ NS_IsSrcdocChannel(nsIChannel *aChannel)
+ bool NS_IsReasonableHTTPHeaderValue(const nsACString& aValue);
+
+ /**
++ * Return a host endian value decoded from network byte order,
++ * accessed in an alignement safe way.
++ */
++inline uint16_t NS_decodeN16(const void *bytes)
++{
++ uint16_t tmp;
++
++ memcpy(&tmp, bytes, sizeof tmp);
++ return PR_ntohs(tmp);
++}
++
++inline uint32_t NS_decodeN32(const void *bytes)
++{
++ uint32_t tmp;
++
++ memcpy(&tmp, bytes, sizeof tmp);
++ return PR_ntohl(tmp);
++}
++
++/**
+ * Return true if the given string is a valid HTTP token per RFC 2616 section
+ * 2.2.
+ */
diff --git a/mail/thunderbird/patches/patch-mozilla_netwerk_dns_Makefile.in b/mail/thunderbird/patches/patch-mozilla_netwerk_dns_Makefile.in
deleted file mode 100644
index a7feca8008c..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_netwerk_dns_Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mozilla_netwerk_dns_Makefile.in,v 1.1 2014/07/27 20:04:59 ryoon Exp $
-
---- mozilla/netwerk/dns/Makefile.in.orig 2014-07-18 00:05:46.000000000 +0000
-+++ mozilla/netwerk/dns/Makefile.in
-@@ -5,6 +5,10 @@
-
- include $(topsrcdir)/config/rules.mk
-
-+ifdef MOZ_NATIVE_HARFBUZZ
-+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
-+endif
-+
- # Generate the include file containing compact, static definitions
- # for effective TLD data.
- etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat
diff --git a/mail/thunderbird/patches/patch-mozilla_netwerk_dns_moz.build b/mail/thunderbird/patches/patch-mozilla_netwerk_dns_moz.build
new file mode 100644
index 00000000000..b08e1ef8ea8
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_netwerk_dns_moz.build
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_netwerk_dns_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/netwerk/dns/moz.build.orig 2015-06-08 17:49:29.000000000 +0000
++++ mozilla/netwerk/dns/moz.build
+@@ -68,5 +68,8 @@ LOCAL_INCLUDES += [
+ '/netwerk/base',
+ ]
+
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19':
+ CXXFLAGS += ['-I%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']]
diff --git a/mail/thunderbird/patches/patch-mozilla_netwerk_ipc_NeckoParent.cpp b/mail/thunderbird/patches/patch-mozilla_netwerk_ipc_NeckoParent.cpp
deleted file mode 100644
index 267313d72bd..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_netwerk_ipc_NeckoParent.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_netwerk_ipc_NeckoParent.cpp,v 1.1 2015/06/29 21:27:01 markd Exp $
-
---- mozilla/netwerk/ipc/NeckoParent.cpp.orig 2015-05-07 18:53:46.000000000 +0000
-+++ mozilla/netwerk/ipc/NeckoParent.cpp
-@@ -359,7 +359,7 @@ NeckoParent::RecvPRtspChannelConstructor
- RtspChannelParent* p = static_cast<RtspChannelParent*>(aActor);
- return p->Init(aConnectArgs);
- #else
-- return nullptr;
-+ return false;
- #endif
- }
-
diff --git a/mail/thunderbird/patches/patch-mozilla_netwerk_protocol_http_Http2Session.cpp b/mail/thunderbird/patches/patch-mozilla_netwerk_protocol_http_Http2Session.cpp
new file mode 100644
index 00000000000..23784fcb712
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_netwerk_protocol_http_Http2Session.cpp
@@ -0,0 +1,91 @@
+$NetBSD: patch-mozilla_netwerk_protocol_http_Http2Session.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/netwerk/protocol/http/Http2Session.cpp.orig 2015-06-08 17:49:29.000000000 +0000
++++ mozilla/netwerk/protocol/http/Http2Session.cpp
+@@ -32,7 +32,6 @@
+ #include "nsStandardURL.h"
+ #include "nsURLHelper.h"
+ #include "prprf.h"
+-#include "prnetdb.h"
+ #include "sslt.h"
+
+ #ifdef DEBUG
+@@ -1385,7 +1384,7 @@ Http2Session::RecvPriority(Http2Session
+ return rv;
+
+ uint32_t newPriorityDependency =
+- PR_ntohl(*reinterpret_cast<uint32_t *>(self->mInputFrameBuffer.get() + kFrameHeaderBytes));
++ NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes);
+ bool exclusive = !!(newPriorityDependency & 0x80000000);
+ newPriorityDependency &= 0x7fffffff;
+ uint8_t newPriorityWeight = *(self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4);
+@@ -1416,7 +1415,7 @@ Http2Session::RecvRstStream(Http2Session
+ }
+
+ self->mDownstreamRstReason =
+- PR_ntohl(*reinterpret_cast<uint32_t *>(self->mInputFrameBuffer.get() + kFrameHeaderBytes));
++ NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes);
+
+ LOG3(("Http2Session::RecvRstStream %p RST_STREAM Reason Code %u ID %x\n",
+ self, self->mDownstreamRstReason, self->mInputFrameID));
+@@ -1477,8 +1476,8 @@ Http2Session::RecvSettings(Http2Session
+ uint8_t *setting = reinterpret_cast<uint8_t *>
+ (self->mInputFrameBuffer.get()) + kFrameHeaderBytes + index * 6;
+
+- uint16_t id = PR_ntohs(*reinterpret_cast<uint16_t *>(setting));
+- uint32_t value = PR_ntohl(*reinterpret_cast<uint32_t *>(setting + 2));
++ uint16_t id = NS_decodeN16(setting);
++ uint32_t value = NS_decodeN32(setting + 2);
+ LOG3(("Settings ID %u, Value %u", id, value));
+
+ switch (id)
+@@ -1565,7 +1564,7 @@ Http2Session::RecvPushPromise(Http2Sessi
+ }
+ promiseLen = 4;
+ promisedID =
+- PR_ntohl(*reinterpret_cast<uint32_t *>(self->mInputFrameBuffer.get() + kFrameHeaderBytes + paddingControlBytes));
++ NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes + paddingControlBytes);
+ promisedID &= 0x7fffffff;
+ }
+
+@@ -1828,11 +1827,11 @@ Http2Session::RecvGoAway(Http2Session *s
+
+ self->mShouldGoAway = true;
+ self->mGoAwayID =
+- PR_ntohl(*reinterpret_cast<uint32_t *>(self->mInputFrameBuffer.get() + kFrameHeaderBytes));
++ NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes);
+ self->mGoAwayID &= 0x7fffffff;
+ self->mCleanShutdown = true;
+ uint32_t statusCode =
+- PR_ntohl(*reinterpret_cast<uint32_t *>(self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4));
++ NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4);
+
+ // Find streams greater than the last-good ID and mark them for deletion
+ // in the mGoAwayStreamsToRestart queue with the GoAwayEnumerator. The
+@@ -1906,7 +1905,7 @@ Http2Session::RecvWindowUpdate(Http2Sess
+ }
+
+ uint32_t delta =
+- PR_ntohl(*reinterpret_cast<uint32_t *>(self->mInputFrameBuffer.get() + kFrameHeaderBytes));
++ NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes);
+ delta &= 0x7fffffff;
+
+ LOG3(("Http2Session::RecvWindowUpdate %p len=%d Stream 0x%X.\n",
+@@ -2543,7 +2542,7 @@ Http2Session::WriteSegments(nsAHttpSegme
+
+ // 3 bytes of length, 1 type byte, 1 flag byte, 1 unused bit, 31 bits of ID
+ uint8_t totallyWastedByte = mInputFrameBuffer.get()[0];
+- mInputFrameDataSize = PR_ntohs(*reinterpret_cast<uint16_t *>(mInputFrameBuffer.get() + 1));
++ mInputFrameDataSize = NS_decodeN16(mInputFrameBuffer.get() + 1);
+ if (totallyWastedByte || (mInputFrameDataSize > kMaxFrameData)) {
+ LOG3(("Got frame too large 0x%02X%04X", totallyWastedByte, mInputFrameDataSize));
+ RETURN_SESSION_ERROR(this, PROTOCOL_ERROR);
+@@ -2551,7 +2550,7 @@ Http2Session::WriteSegments(nsAHttpSegme
+ mInputFrameType = *reinterpret_cast<uint8_t *>(mInputFrameBuffer.get() + kFrameLengthBytes);
+ mInputFrameFlags = *reinterpret_cast<uint8_t *>(mInputFrameBuffer.get() + kFrameLengthBytes + kFrameTypeBytes);
+ mInputFrameID =
+- PR_ntohl(*reinterpret_cast<uint32_t *>(mInputFrameBuffer.get() + kFrameLengthBytes + kFrameTypeBytes + kFrameFlagBytes));
++ NS_decodeN32(mInputFrameBuffer.get() + kFrameLengthBytes + kFrameTypeBytes + kFrameFlagBytes);
+ mInputFrameID &= 0x7fffffff;
+ mInputFrameDataRead = 0;
+
diff --git a/mail/thunderbird/patches/patch-mozilla_ostream b/mail/thunderbird/patches/patch-mozilla_ostream
deleted file mode 100644
index e38e52b3a71..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ostream
+++ /dev/null
@@ -1,8 +0,0 @@
-$NetBSD: patch-mozilla_ostream,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/ostream.orig 2014-07-27 06:20:09.000000000 +0000
-+++ mozilla/ostream
-@@ -0,0 +1,3 @@
-+#pragma GCC visibility push(default)
-+#include_next <ostream>
-+#pragma GCC visibility pop
diff --git a/mail/thunderbird/patches/patch-mozilla_probes_Makefile.in b/mail/thunderbird/patches/patch-mozilla_probes_Makefile.in
deleted file mode 100644
index 8aec434c5fd..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_probes_Makefile.in
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_probes_Makefile.in,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/probes/Makefile.in.orig 2014-07-18 00:05:48.000000000 +0000
-+++ mozilla/probes/Makefile.in
-@@ -7,7 +7,7 @@ export:: $(DIST)/include/mozilla-trace.h
-
- # Replace _DTRACE_VERSION with INCLUDE_MOZILLA_DTRACE
- $(DIST)/include/mozilla-trace.h: mozilla-trace.d Makefile
-- dtrace -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp
-+ dtrace -x nolibs -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp
- sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
- mozilla-trace.h.tmp > $(DIST)/include/mozilla-trace.h
- rm mozilla-trace.h.tmp
diff --git a/mail/thunderbird/patches/patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp b/mail/thunderbird/patches/patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp
index 5601ebe0497..0c5f0a7cf0c 100644
--- a/mail/thunderbird/patches/patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp
@@ -1,12 +1,12 @@
-$NetBSD: patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp,v 1.1 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/security/manager/ssl/src/nsNSSComponent.cpp.orig 2013-10-23 22:09:16.000000000 +0000
+--- mozilla/security/manager/ssl/src/nsNSSComponent.cpp.orig 2015-06-08 17:49:16.000000000 +0000
+++ mozilla/security/manager/ssl/src/nsNSSComponent.cpp
-@@ -49,6 +49,7 @@
-
+@@ -43,6 +43,7 @@
#include "nss.h"
+ #include "pkix/pkixnss.h"
#include "ssl.h"
+#define NSS_ENABLE_ECC 1
#include "sslproto.h"
#include "secmod.h"
- #include "secmime.h"
+ #include "secerr.h"
diff --git a/mail/thunderbird/patches/patch-mozilla_storage_src_moz.build b/mail/thunderbird/patches/patch-mozilla_storage_src_moz.build
deleted file mode 100644
index dc115be785c..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_storage_src_moz.build
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD: patch-mozilla_storage_src_moz.build,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/storage/src/moz.build.orig 2014-07-18 00:05:51.000000000 +0000
-+++ mozilla/storage/src/moz.build
-@@ -48,11 +48,14 @@ FINAL_LIBRARY = 'storagecomps'
- # (such as NSS) might trigger an initialization of sqlite and allocation
- # of memory using the default allocator, prior to the storage service
- # registering its allocator, causing memory management failures (bug 938730).
-+# However, this is not an issue if both the jemalloc allocator and the default
-+# allocator are the same thing.
- #
- # Note: On Windows our sqlite build assumes we use jemalloc. If you disable
- # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
- # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
--if CONFIG['MOZ_MEMORY'] and not CONFIG['MOZ_NATIVE_SQLITE']:
-+if CONFIG['MOZ_MEMORY'] and (not CONFIG['MOZ_NATIVE_SQLITE']
-+ or CONFIG['MOZ_NATIVE_JEMALLOC']):
- if CONFIG['OS_TARGET'] != 'Android':
- DEFINES['MOZ_STORAGE_MEMORY'] = True
-
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm b/mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm
index da4be401966..f3e2f440a76 100644
--- a/mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm
+++ b/mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm
@@ -1,9 +1,9 @@
-$NetBSD: patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm,v 1.1 2014/07/27 20:05:00 ryoon Exp $
+$NetBSD: patch-mozilla_toolkit_components_osfile_modules_osfile__unix__front.jsm,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/toolkit/components/osfile/modules/osfile_unix_front.jsm.orig 2014-07-18 00:05:52.000000000 +0000
+--- mozilla/toolkit/components/osfile/modules/osfile_unix_front.jsm.orig 2015-06-08 17:49:29.000000000 +0000
+++ mozilla/toolkit/components/osfile/modules/osfile_unix_front.jsm
-@@ -400,7 +400,7 @@
- throw_on_negative("statvfs", UnixFile.statvfs(sourcePath, fileSystemInfoPtr));
+@@ -399,7 +399,7 @@
+ throw_on_negative("statvfs", (UnixFile.statvfs || UnixFile.statfs)(sourcePath, fileSystemInfoPtr));
let bytes = new Type.uint64_t.implementation(
- fileSystemInfo.f_bsize * fileSystemInfo.f_bavail);
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_library_libxul.mk b/mail/thunderbird/patches/patch-mozilla_toolkit_library_libxul.mk
deleted file mode 100644
index d640873fc55..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_toolkit_library_libxul.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-$NetBSD: patch-mozilla_toolkit_library_libxul.mk,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/toolkit/library/libxul.mk.orig 2014-07-18 00:05:54.000000000 +0000
-+++ mozilla/toolkit/library/libxul.mk
-@@ -77,6 +77,34 @@ ifdef MOZ_NATIVE_HUNSPELL
- EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS)
- endif
-
-+ifdef MOZ_NATIVE_OGG
-+EXTRA_DSO_LDOPTS += $(MOZ_OGG_LIBS)
-+endif
-+
-+ifdef MOZ_NATIVE_THEORA
-+EXTRA_DSO_LDOPTS += $(MOZ_THEORA_LIBS)
-+endif
-+
-+ifdef MOZ_NATIVE_VORBIS
-+EXTRA_DSO_LDOPTS += $(MOZ_VORBIS_LIBS)
-+endif
-+
-+ifdef MOZ_NATIVE_TREMOR
-+EXTRA_DSO_LDOPTS += $(MOZ_TREMOR_LIBS)
-+endif
-+
-+ifdef MOZ_NATIVE_OPUS
-+EXTRA_DSO_LDOPTS += $(MOZ_OPUS_LIBS)
-+endif
-+
-+ifdef MOZ_NATIVE_SPEEX
-+EXTRA_DSO_LDOPTS += $(MOZ_SPEEX_LIBS)
-+endif
-+
-+ifdef MOZ_NATIVE_SOUNDTOUCH
-+EXTRA_DSO_LDOPTS += $(MOZ_SOUNDTOUCH_LIBS)
-+endif
-+
- ifdef MOZ_NATIVE_LIBEVENT
- EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS)
- endif
-@@ -89,12 +117,24 @@ ifndef MOZ_TREE_PIXMAN
- EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS)
- endif
-
-+ifdef MOZ_NATIVE_GRAPHITE2
-+EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE2_LIBS)
-+endif
-+
-+ifdef MOZ_NATIVE_HARFBUZZ
-+EXTRA_DSO_LDOPTS += $(MOZ_HARFBUZZ_LIBS)
-+endif
-+
- ifdef MOZ_DMD
- EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,dmd,$(DIST)/lib)
- endif
-
- EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib)
-
-+ifdef MOZ_LIBV4L2_LIBS
-+EXTRA_DSO_LDOPTS += $(MOZ_LIBV4L2_LIBS)
-+endif
-+
- ifdef MOZ_WEBRTC
- ifeq (WINNT,$(OS_TARGET))
- ifndef MOZ_HAS_WINSDK_WITH_D3D
-@@ -231,7 +271,7 @@ ifdef MOZ_ENABLE_QT
- EXTRA_DSO_LDOPTS += $(MOZ_QT_LDFLAGS) $(XEXT_LIBS)
- endif
-
--ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
-+ifeq (Darwin,$(OS_ARCH))
- ifdef MOZ_GSTREAMER
- EXTRA_DSO_LDOPTS += $(GSTREAMER_LIBS)
- endif
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_library_moz.build b/mail/thunderbird/patches/patch-mozilla_toolkit_library_moz.build
new file mode 100644
index 00000000000..cb636babbdd
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_toolkit_library_moz.build
@@ -0,0 +1,69 @@
+$NetBSD: patch-mozilla_toolkit_library_moz.build,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/toolkit/library/moz.build.orig 2015-06-08 17:49:31.000000000 +0000
++++ mozilla/toolkit/library/moz.build
+@@ -214,6 +214,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
+ ]
+
+ OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
++OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
+ OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
+
+ if CONFIG['MOZ_NATIVE_JPEG']:
+@@ -225,6 +226,30 @@ if CONFIG['MOZ_NATIVE_PNG']:
+ if CONFIG['MOZ_NATIVE_HUNSPELL']:
+ OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
+
++if CONFIG['MOZ_NATIVE_OGG']:
++ OS_LIBS += CONFIG['MOZ_OGG_LIBS']
++
++if CONFIG['MOZ_NATIVE_THEORA']:
++ OS_LIBS += CONFIG['MOZ_THEORA_LIBS']
++
++if CONFIG['MOZ_NATIVE_VORBIS']:
++ OS_LIBS += CONFIG['MOZ_VORBIS_LIBS']
++
++if CONFIG['MOZ_NATIVE_TREMOR']:
++ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
++
++if CONFIG['MOZ_NATIVE_CELT']:
++ OS_LIBS += CONFIG['MOZ_CELT_LIBS']
++
++if CONFIG['MOZ_NATIVE_OPUS']:
++ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
++
++if CONFIG['MOZ_NATIVE_SPEEX']:
++ OS_LIBS += CONFIG['MOZ_SPEEX_LIBS']
++
++if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
++ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
++
+ if CONFIG['MOZ_NATIVE_LIBEVENT']:
+ OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
+
+@@ -234,8 +259,14 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
+ if not CONFIG['MOZ_TREE_PIXMAN']:
+ OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
+
+-if CONFIG['MOZ_ALSA']:
+- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
++if CONFIG['MOZ_NATIVE_GRAPHITE2']:
++ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
++
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
++
++if CONFIG['MOZ_OSS']:
++ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
+
+ if CONFIG['HAVE_CLOCK_MONOTONIC']:
+ OS_LIBS += CONFIG['REALTIME_LIBS']
+@@ -365,7 +396,7 @@ if CONFIG['OS_ARCH'] == 'WINNT':
+ if CONFIG['MOZ_ENABLE_QT']:
+ OS_LIBS += CONFIG['XEXT_LIBS']
+
+-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa' and CONFIG['MOZ_GSTREAMER']:
++if CONFIG['OS_ARCH'] == 'Darwin' and CONFIG['MOZ_GSTREAMER']:
+ OS_LIBS += CONFIG['GSTREAMER_LIBS']
+
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm b/mail/thunderbird/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm
new file mode 100644
index 00000000000..0fc33b65d93
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_toolkit_modules_GMPInstallManager.jsm
@@ -0,0 +1,30 @@
+$NetBSD: patch-mozilla_toolkit_modules_GMPInstallManager.jsm,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/toolkit/modules/GMPInstallManager.jsm.orig 2015-06-08 17:49:31.000000000 +0000
++++ mozilla/toolkit/modules/GMPInstallManager.jsm
+@@ -874,9 +874,7 @@ GMPDownloader.prototype = {
+ let gmpAddon = this._gmpAddon;
+ let installToDirPath = Cc["@mozilla.org/file/local;1"].
+ createInstance(Ci.nsIFile);
+- let path = OS.Path.join(OS.Constants.Path.profileDir,
+- gmpAddon.id,
+- gmpAddon.version);
++ let path = OS.Path.join(OS.Constants.Path.profileDir, gmpAddon.id);
+ installToDirPath.initWithPath(path);
+ log.info("install to directory path: " + installToDirPath.path);
+ let gmpInstaller = new GMPExtractor(zipPath, installToDirPath.path);
+@@ -885,10 +883,12 @@ GMPDownloader.prototype = {
+ // Success, set the prefs
+ let now = Math.round(Date.now() / 1000);
+ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_LAST_UPDATE, now, gmpAddon.id);
+- // Setting the version pref signals installation completion to consumers,
+- // if you need to set other prefs etc. do it before this.
++ // Setting the path pref signals installation completion to consumers,
++ // so set the version and potential other information they use first.
+ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_VERSION, gmpAddon.version,
+ gmpAddon.id);
++ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_PATH,
++ installToDirPath.path, gmpAddon.id);
+ this._deferred.resolve(extractedPaths);
+ }, err => {
+ this._deferred.reject(err);
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_modules_GMPUtils.jsm b/mail/thunderbird/patches/patch-mozilla_toolkit_modules_GMPUtils.jsm
new file mode 100644
index 00000000000..f925119b203
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_toolkit_modules_GMPUtils.jsm
@@ -0,0 +1,12 @@
+$NetBSD: patch-mozilla_toolkit_modules_GMPUtils.jsm,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/toolkit/modules/GMPUtils.jsm.orig 2015-06-08 17:49:31.000000000 +0000
++++ mozilla/toolkit/modules/GMPUtils.jsm
+@@ -74,6 +74,7 @@ this.GMPPrefs = {
+ KEY_EME_ENABLED: "media.eme.enabled",
+ KEY_PLUGIN_ENABLED: "media.{0}.enabled",
+ KEY_PLUGIN_LAST_UPDATE: "media.{0}.lastUpdate",
++ KEY_PLUGIN_PATH: "media.{0}.path",
+ KEY_PLUGIN_VERSION: "media.{0}.version",
+ KEY_PLUGIN_AUTOUPDATE: "media.{0}.autoupdate",
+ KEY_PLUGIN_FORCEVISIBLE: "media.{0}.forcevisible",
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm b/mail/thunderbird/patches/patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm
new file mode 100644
index 00000000000..8a0c129d877
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm
@@ -0,0 +1,132 @@
+$NetBSD: patch-mozilla_toolkit_mozapps_extensions_internal_GMPProvider.jsm,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/toolkit/mozapps/extensions/internal/GMPProvider.jsm.orig 2015-06-08 17:49:31.000000000 +0000
++++ mozilla/toolkit/mozapps/extensions/internal/GMPProvider.jsm
+@@ -101,12 +101,11 @@ function GMPWrapper(aPluginInfo) {
+ Log.repository.getLoggerWithMessagePrefix("Toolkit.GMP",
+ "GMPWrapper(" +
+ this._plugin.id + ") ");
+- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
+- this._plugin.id),
++ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED, this._plugin.id),
+ this.onPrefEnabledChanged, this);
+- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
++ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
+ this._plugin.id),
+- this.onPrefVersionChanged, this);
++ this.onPrefPathChanged, this);
+ if (this._plugin.isEME) {
+ Preferences.observe(GMPPrefs.KEY_EME_ENABLED,
+ this.onPrefEMEGlobalEnabledChanged, this);
+@@ -123,17 +122,14 @@ GMPWrapper.prototype = {
+ optionsType: AddonManager.OPTIONS_TYPE_INLINE,
+ get optionsURL() { return this._plugin.optionsURL; },
+
++
+ set gmpPath(aPath) { this._gmpPath = aPath; },
+ get gmpPath() {
+- if (!this._gmpPath && this.isInstalled) {
+- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
+- this._plugin.id,
+- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
+- null, this._plugin.id));
++ if (!this._gmpPath) {
++ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
+ }
+ return this._gmpPath;
+ },
+-
+ get id() { return this._plugin.id; },
+ get type() { return "plugin"; },
+ get isGMPlugin() { return true; },
+@@ -144,8 +140,13 @@ GMPWrapper.prototype = {
+ get description() { return this._plugin.description; },
+ get fullDescription() { return this._plugin.fullDescription; },
+
+- get version() { return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
+- this._plugin.id); },
++ get version() {
++ if (this.isInstalled) {
++ return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
++ this._plugin.id);
++ }
++ return null;
++ },
+
+ get isActive() { return !this.appDisabled && !this.userDisabled; },
+ get appDisabled() {
+@@ -292,24 +293,17 @@ GMPWrapper.prototype = {
+
+ get pluginMimeTypes() { return []; },
+ get pluginLibraries() {
+- if (this.isInstalled) {
+- let path = this.version;
+- return [path];
+- }
+- return [];
++ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
++ return path && path.length ? [OS.Path.basename(path)] : [];
+ },
+ get pluginFullpath() {
+- if (this.isInstalled) {
+- let path = OS.Path.join(OS.Constants.Path.profileDir,
+- this._plugin.id,
+- this.version);
+- return [path];
+- }
+- return [];
++ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
++ return path && path.length ? [path] : [];
+ },
+
+ get isInstalled() {
+- return this.version && this.version.length > 0;
++ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
++ return path && path.length > 0;
+ },
+
+ _handleEnabledChanged: function() {
+@@ -389,10 +383,10 @@ GMPWrapper.prototype = {
+ }
+ },
+
+- onPrefVersionChanged: function() {
++ onPrefPathChanged: function() {
+ AddonManagerPrivate.callAddonListeners("onUninstalling", this, false);
+ if (this._gmpPath) {
+- this._log.info("onPrefVersionChanged() - unregistering gmp directory " +
++ this._log.info("onPrefPathChanged() - unregistering gmp directory " +
+ this._gmpPath);
+ gmpService.removeAndDeletePluginDirectory(this._gmpPath, true /* can defer */);
+ }
+@@ -401,15 +395,10 @@ GMPWrapper.prototype = {
+ AddonManagerPrivate.callInstallListeners("onExternalInstall", null, this,
+ null, false);
+ AddonManagerPrivate.callAddonListeners("onInstalling", this, false);
+- this._gmpPath = null;
+- if (this.isInstalled) {
+- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
+- this._plugin.id,
+- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
+- null, this._plugin.id));
+- }
++ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH,
++ null, this._plugin.id);
+ if (this._gmpPath && this.isActive) {
+- this._log.info("onPrefVersionChanged() - registering gmp directory " +
++ this._log.info("onPrefPathChanged() - registering gmp directory " +
+ this._gmpPath);
+ gmpService.addPluginDirectory(this._gmpPath);
+ }
+@@ -431,9 +420,9 @@ GMPWrapper.prototype = {
+ Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
+ this._plugin.id),
+ this.onPrefEnabledChanged, this);
+- Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
++ Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
+ this._plugin.id),
+- this.onPrefVersionChanged, this);
++ this.onPrefPathChanged, this);
+ if (this._plugin.isEME) {
+ Preferences.ignore(GMPPrefs.KEY_EME_ENABLED,
+ this.onPrefEMEGlobalEnabledChanged, this);
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_toolkit.mozbuild b/mail/thunderbird/patches/patch-mozilla_toolkit_toolkit.mozbuild
deleted file mode 100644
index 45751627890..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_toolkit_toolkit.mozbuild
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mozilla_toolkit_toolkit.mozbuild,v 1.2 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/toolkit/toolkit.mozbuild.orig 2014-07-18 00:05:56.000000000 +0000
-+++ mozilla/toolkit/toolkit.mozbuild
-@@ -40,8 +40,8 @@ add_tier_dir('platform', [
- if CONFIG['MOZ_AUTH_EXTENSION']:
- add_tier_dir('platform', 'extensions/auth')
-
--if CONFIG['MOZ_UPDATER']:
-- add_tier_dir('platform', 'other-licenses/bsdiff')
-+#if CONFIG['MOZ_UPDATER']:
-+# add_tier_dir('platform', 'other-licenses/bsdiff')
-
- # Gecko/Core components.
-
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_xre_nsAppRunner.cpp b/mail/thunderbird/patches/patch-mozilla_toolkit_xre_nsAppRunner.cpp
new file mode 100644
index 00000000000..a46802d6e3f
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_toolkit_xre_nsAppRunner.cpp
@@ -0,0 +1,31 @@
+$NetBSD: patch-mozilla_toolkit_xre_nsAppRunner.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/toolkit/xre/nsAppRunner.cpp.orig 2015-06-08 17:49:32.000000000 +0000
++++ mozilla/toolkit/xre/nsAppRunner.cpp
+@@ -1808,6 +1808,18 @@ static nsresult LaunchChild(nsINativeApp
+ if (NS_FAILED(rv))
+ return rv;
+
++#if defined(XP_DARWIN)
++ pid_t pid = vfork();
++ if (pid == 0) { // child
++ if (execv(exePath.get(), gRestartArgv) == -1) {
++ _exit(1);
++ }
++ }
++ else if (pid == -1) {
++ return NS_ERROR_FAILURE;
++ }
++#else
++
+ #if defined(XP_UNIX)
+ if (execv(exePath.get(), gRestartArgv) == -1)
+ return NS_ERROR_FAILURE;
+@@ -1821,6 +1833,7 @@ static nsresult LaunchChild(nsINativeApp
+ if (failed || exitCode)
+ return NS_ERROR_FAILURE;
+ #endif // XP_UNIX
++#endif // XP_DARWIN
+ #endif // WP_WIN
+ #endif // WP_MACOSX
+ #endif // MOZ_WIDGET_ANDROID
diff --git a/mail/thunderbird/patches/patch-mozilla_unwind.h b/mail/thunderbird/patches/patch-mozilla_unwind.h
deleted file mode 100644
index 8cb83b33790..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_unwind.h
+++ /dev/null
@@ -1,9 +0,0 @@
-$NetBSD: patch-mozilla_unwind.h,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/unwind.h.orig 2014-07-27 06:20:09.000000000 +0000
-+++ mozilla/unwind.h
-@@ -0,0 +1,4 @@
-+#pragma GCC system_header
-+#pragma GCC visibility push(default)
-+#include_next <unwind.h>
-+#pragma GCC visibility pop
diff --git a/mail/thunderbird/patches/patch-mozilla_webapprt_moz.build b/mail/thunderbird/patches/patch-mozilla_webapprt_moz.build
index a676c264b8d..18e0d686d8f 100644
--- a/mail/thunderbird/patches/patch-mozilla_webapprt_moz.build
+++ b/mail/thunderbird/patches/patch-mozilla_webapprt_moz.build
@@ -1,6 +1,6 @@
-$NetBSD: patch-mozilla_webapprt_moz.build,v 1.1 2014/07/27 20:05:00 ryoon Exp $
+$NetBSD: patch-mozilla_webapprt_moz.build,v 1.2 2015/07/09 15:17:34 ryoon Exp $
---- mozilla/webapprt/moz.build.orig 2014-07-18 00:05:56.000000000 +0000
+--- mozilla/webapprt/moz.build.orig 2015-06-08 17:49:33.000000000 +0000
+++ mozilla/webapprt/moz.build
@@ -6,7 +6,7 @@
@@ -9,12 +9,5 @@ $NetBSD: patch-mozilla_webapprt_moz.build,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-elif CONFIG['OS_ARCH'] == 'Darwin':
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
DIRS += ['mac']
- elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk2':
- DIRS += ['gtk2']
-@@ -45,4 +45,4 @@ if CONFIG['MOZILLA_OFFICIAL']:
- DEFINES['GRE_MILESTONE'] = CONFIG['GRE_MILESTONE']
- DEFINES['MOZ_APP_BASENAME'] = CONFIG['MOZ_APP_BASENAME']
-
--JAR_MANIFESTS += ['jar.mn']
-\ No newline at end of file
-+JAR_MANIFESTS += ['jar.mn']
+ elif CONFIG['MOZ_ENABLE_GTK']:
+ DIRS += ['gtk']
diff --git a/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtk2drawing.c b/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtk2drawing.c
new file mode 100644
index 00000000000..aabaf457d94
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtk2drawing.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-mozilla_widget_gtk_gtk2drawing.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/widget/gtk/gtk2drawing.c.orig 2015-06-08 17:49:33.000000000 +0000
++++ mozilla/widget/gtk/gtk2drawing.c
+@@ -831,7 +831,7 @@ moz_gtk_get_focus_outline_size(gint* foc
+ return MOZ_GTK_SUCCESS;
+ }
+
+-gint
++static gint
+ moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+ gint* focus_width, gint* focus_pad)
+ {
+@@ -928,7 +928,7 @@ moz_gtk_splitter_get_metrics(gint orient
+ return MOZ_GTK_SUCCESS;
+ }
+
+-gint
++static gint
+ moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
+ {
+ static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
diff --git a/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtk3drawing.c b/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtk3drawing.c
new file mode 100644
index 00000000000..5853622c2f2
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtk3drawing.c
@@ -0,0 +1,833 @@
+$NetBSD: patch-mozilla_widget_gtk_gtk3drawing.c,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/widget/gtk/gtk3drawing.c.orig 2015-06-08 17:49:33.000000000 +0000
++++ mozilla/widget/gtk/gtk3drawing.c
+@@ -65,6 +65,7 @@ static GtkWidget* gScrolledWindowWidget;
+ static style_prop_t style_prop_func;
+ static gboolean have_arrow_scaling;
+ static gboolean checkbox_check_state;
++static gboolean notebook_has_tab_gap;
+ static gboolean is_initialized;
+
+ #define ARROW_UP 0
+@@ -725,6 +726,14 @@ moz_gtk_init()
+ else
+ checkbox_check_state = GTK_STATE_FLAG_ACTIVE;
+
++ if(!gtk_check_version(3, 12, 0)) {
++ ensure_tab_widget();
++ gtk_widget_style_get(gTabWidget, "has-tab-gap", &notebook_has_tab_gap, NULL);
++ }
++ else {
++ notebook_has_tab_gap = TRUE;
++ }
++
+ /* Add style property to GtkEntry.
+ * Adding the style property to the normal GtkEntry class means that it
+ * will work without issues inside GtkComboBox and for Spinbuttons. */
+@@ -762,37 +771,17 @@ moz_gtk_radio_get_metrics(gint* indicato
+ gint
+ moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
+ {
+- gboolean interior_focus;
+- gint focus_width = 0;
++ GtkBorder border;
++ GtkBorder padding;
++ GtkStyleContext *style;
+
+ ensure_entry_widget();
+- gtk_widget_style_get(gEntryWidget,
+- "interior-focus", &interior_focus,
+- "focus-line-width", &focus_width,
+- NULL);
+- if (interior_focus) {
+- GtkBorder border;
+- GtkStyleContext *style = gtk_widget_get_style_context(gEntryWidget);
+- gtk_style_context_get_border(style, 0, &border);
+- *focus_h_width = border.left + focus_width;
+- *focus_v_width = border.top + focus_width;
+- } else {
+- *focus_h_width = focus_width;
+- *focus_v_width = focus_width;
+- }
+- return MOZ_GTK_SUCCESS;
+-}
+-
+-gint
+-moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+- gint* focus_width, gint* focus_pad)
+-{
+- gtk_widget_style_get (widget,
+- "interior-focus", interior_focus,
+- "focus-line-width", focus_width,
+- "focus-padding", focus_pad,
+- NULL);
++ style = gtk_widget_get_style_context(gEntryWidget);
+
++ gtk_style_context_get_border(style, 0, &border);
++ gtk_style_context_get_padding(style, 0, &padding);
++ *focus_h_width = border.left + padding.left;
++ *focus_v_width = border.top + padding.top;
+ return MOZ_GTK_SUCCESS;
+ }
+
+@@ -880,24 +869,6 @@ moz_gtk_splitter_get_metrics(gint orient
+ return MOZ_GTK_SUCCESS;
+ }
+
+-gint
+-moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
+-{
+- static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
+- GtkBorder *tmp_border;
+-
+- gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
+-
+- if (tmp_border) {
+- *inner_border = *tmp_border;
+- gtk_border_free(tmp_border);
+- }
+- else
+- *inner_border = default_inner_border;
+-
+- return MOZ_GTK_SUCCESS;
+-}
+-
+ static gint
+ moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
+ GtkWidgetState* state,
+@@ -908,19 +879,8 @@ moz_gtk_button_paint(cairo_t *cr, GdkRec
+ GtkStyleContext* style = gtk_widget_get_style_context(widget);
+ gint x = rect->x, y=rect->y, width=rect->width, height=rect->height;
+
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+-
+- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
+ gtk_widget_set_direction(widget, direction);
+-
+- if (!interior_focus && state->focused) {
+- x += focus_width + focus_pad;
+- y += focus_width + focus_pad;
+- width -= 2 * (focus_width + focus_pad);
+- height -= 2 * (focus_width + focus_pad);
+- }
+-
++
+ gtk_style_context_save(style);
+ gtk_style_context_set_state(style, state_flags);
+
+@@ -953,20 +913,12 @@ moz_gtk_button_paint(cairo_t *cr, GdkRec
+ }
+
+ if (state->focused) {
+- if (interior_focus) {
+- GtkBorder border;
+- gtk_style_context_get_border(style, state_flags, &border);
+- x += border.left + focus_pad;
+- y += border.top + focus_pad;
+- width -= 2 * (border.left + focus_pad);
+- height -= 2 * (border.top + focus_pad);
+- } else {
+- x -= focus_width + focus_pad;
+- y -= focus_width + focus_pad;
+- width += 2 * (focus_width + focus_pad);
+- height += 2 * (focus_width + focus_pad);
+- }
+-
++ GtkBorder border;
++ gtk_style_context_get_border(style, state_flags, &border);
++ x += border.left;
++ y += border.top;
++ width -= (border.left + border.right);
++ height -= (border.top + border.bottom);
+ gtk_render_focus(style, cr, x, y, width, height);
+ }
+ gtk_style_context_restore(style);
+@@ -1056,33 +1008,23 @@ calculate_button_inner_rect(GtkWidget* b
+ GtkTextDirection direction,
+ gboolean ignore_focus)
+ {
+- GtkBorder inner_border;
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+ GtkStyleContext* style;
+ GtkBorder border;
++ GtkBorder padding = {0, 0, 0, 0};
+
+ style = gtk_widget_get_style_context(button);
+
+ /* This mirrors gtkbutton's child positioning */
+- moz_gtk_button_get_inner_border(button, &inner_border);
+- moz_gtk_widget_get_focus(button, &interior_focus,
+- &focus_width, &focus_pad);
+-
+- if (ignore_focus)
+- focus_width = focus_pad = 0;
+-
+ gtk_style_context_get_border(style, 0, &border);
++ if (!ignore_focus)
++ gtk_style_context_get_padding(style, 0, &padding);
+
+- inner_rect->x = rect->x + border.left + focus_width + focus_pad;
+- inner_rect->x += direction == GTK_TEXT_DIR_LTR ?
+- inner_border.left : inner_border.right;
+- inner_rect->y = rect->y + inner_border.top + border.top +
+- focus_width + focus_pad;
+- inner_rect->width = MAX(1, rect->width - inner_border.left -
+- inner_border.right - (border.left + focus_pad + focus_width) * 2);
+- inner_rect->height = MAX(1, rect->height - inner_border.top -
+- inner_border.bottom - (border.top + focus_pad + focus_width) * 2);
++ inner_rect->x = rect->x + border.left + padding.left;
++ inner_rect->y = rect->y + padding.top + border.top;
++ inner_rect->width = MAX(1, rect->width - padding.left -
++ padding.right - border.left * 2);
++ inner_rect->height = MAX(1, rect->height - padding.top -
++ padding.bottom - border.top * 2);
+
+ return MOZ_GTK_SUCCESS;
+ }
+@@ -1230,6 +1172,7 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
+ GtkStyleContext* style;
+ GtkScrollbar *scrollbar;
+ GtkAdjustment *adj;
++ GtkBorder margin;
+
+ ensure_scrollbar_widget();
+
+@@ -1239,15 +1182,20 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
+ scrollbar = GTK_SCROLLBAR(gVertScrollbarWidget);
+
+ gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
+-
++
+ style = gtk_widget_get_style_context(GTK_WIDGET(scrollbar));
+ gtk_style_context_save(style);
+-
++
+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_SLIDER);
+ gtk_style_context_set_state(style, state_flags);
+
+- gtk_render_slider(style, cr, rect->x, rect->y,
+- rect->width, rect->height,
++ gtk_style_context_get_margin (style, state_flags, &margin);
++
++ gtk_render_slider(style, cr,
++ rect->x + margin.left,
++ rect->y + margin.top,
++ rect->width - margin.left - margin.right,
++ rect->height - margin.top - margin.bottom,
+ (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ?
+ GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
+
+@@ -1451,19 +1399,12 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
+ {
+ gint x = rect->x, y = rect->y, width = rect->width, height = rect->height;
+ GtkStyleContext* style;
+- gboolean interior_focus;
+- gint focus_width;
+ int draw_focus_outline_only = state->depressed; // NS_THEME_FOCUS_OUTLINE
+
+ gtk_widget_set_direction(widget, direction);
+
+ style = gtk_widget_get_style_context(widget);
+
+- gtk_widget_style_get(widget,
+- "interior-focus", &interior_focus,
+- "focus-line-width", &focus_width,
+- NULL);
+-
+ if (draw_focus_outline_only) {
+ // Inflate the given 'rect' with the focus outline size.
+ gint h, v;
+@@ -1495,14 +1436,6 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
+ /* This will get us the lit borders that focused textboxes enjoy on
+ * some themes. */
+ gtk_style_context_set_state(style, GTK_STATE_FLAG_FOCUSED);
+- if (!interior_focus) {
+- /* Indent the border a little bit if we have exterior focus
+- (this is what GTK does to draw native entries) */
+- x += focus_width;
+- y += focus_width;
+- width -= 2 * focus_width;
+- height -= 2 * focus_width;
+- }
+ }
+
+ if (state->disabled) {
+@@ -1514,11 +1447,6 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
+ }
+ gtk_render_frame(style, cr, x, y, width, height);
+
+- if (state->focused && !state->disabled) {
+- if (!interior_focus) {
+- gtk_render_focus(style, cr, rect->x, rect->y, rect->width, rect->height);
+- }
+- }
+ gtk_style_context_restore(style);
+
+ return MOZ_GTK_SUCCESS;
+@@ -1823,8 +1751,6 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
+ GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
+ GtkStyleContext* style;
+ GtkWidget *widget;
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+
+ if (isradio) {
+ ensure_radiobutton_widget();
+@@ -1837,7 +1763,6 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
+
+ style = gtk_widget_get_style_context(widget);
+ gtk_style_context_save(style);
+- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
+ gtk_style_context_set_state(style, state_flags);
+
+ /* this is for drawing a prelight box */
+@@ -1846,10 +1771,6 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
+ rect->x, rect->y, rect->width, rect->height);
+ }
+
+- if (state->focused && !interior_focus) {
+- gtk_render_focus(style, cr,
+- rect->x, rect->y, rect->width, rect->height);
+- }
+ gtk_style_context_restore(style);
+
+ return MOZ_GTK_SUCCESS;
+@@ -1862,7 +1783,6 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
+ {
+ GtkStyleContext *style;
+ GtkWidget *widget;
+- gboolean interior_focus;
+
+ if (!state->focused)
+ return MOZ_GTK_SUCCESS;
+@@ -1883,10 +1803,6 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
+ }
+ gtk_widget_set_direction(widget, direction);
+
+- gtk_widget_style_get(widget, "interior-focus", &interior_focus, NULL);
+- if (!interior_focus)
+- return MOZ_GTK_SUCCESS;
+-
+ gtk_style_context_set_state(style, GetStateFlagsFromGtkWidgetState(state));
+ gtk_render_focus(style, cr,
+ rect->x, rect->y, rect->width, rect->height);
+@@ -2105,6 +2021,9 @@ moz_gtk_get_tab_thickness(void)
+ GtkStyleContext * style;
+
+ ensure_tab_widget();
++ if (!notebook_has_tab_gap)
++ return 0; /* tabs do not overdraw the tabpanel border with "no gap" style */
++
+ style = gtk_widget_get_style_context(gTabWidget);
+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_NOTEBOOK);
+ gtk_style_context_get_border(style, 0, &border);
+@@ -2150,7 +2069,7 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
+ ensure_tab_widget();
+ gtk_widget_set_direction(gTabWidget, direction);
+
+- style = gtk_widget_get_style_context(gTabWidget);
++ style = gtk_widget_get_style_context(gTabWidget);
+ gtk_style_context_save(style);
+ moz_gtk_tab_prepare_style_context(style, flags);
+
+@@ -2167,143 +2086,155 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
+
+ focusRect = backRect = tabRect;
+
+- if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
+- /* Only draw the tab */
+- gtk_render_extension(style, cr,
+- tabRect.x, tabRect.y, tabRect.width, tabRect.height,
+- (flags & MOZ_GTK_TAB_BOTTOM) ?
+- GTK_POS_TOP : GTK_POS_BOTTOM );
+- } else {
+- /* Draw the tab and the gap
+- * We want the gap to be positioned exactly on the tabpanel top
+- * border; since tabbox.css may set a negative margin so that the tab
+- * frame rect already overlaps the tabpanel frame rect, we need to take
+- * that into account when drawing. To that effect, nsNativeThemeGTK
+- * passes us this negative margin (bmargin in the graphic below) in the
+- * lowest bits of |flags|. We use it to set gap_voffset, the distance
+- * between the top of the gap and the bottom of the tab (resp. the
+- * bottom of the gap and the top of the tab when we draw a bottom tab),
+- * while ensuring that the gap always touches the border of the tab,
+- * i.e. 0 <= gap_voffset <= gap_height, to avoid surprinsing results
+- * with big negative or positive margins.
+- * Here is a graphical explanation in the case of top tabs:
+- * ___________________________
+- * / \
+- * | T A B |
+- * ----------|. . . . . . . . . . . . . . .|----- top of tabpanel
+- * : ^ bmargin : ^
+- * : | (-negative margin, : |
+- * bottom : v passed in flags) : | gap_height
+- * of -> :.............................: | (the size of the
+- * the tab . part of the gap . | tabpanel top border)
+- * . outside of the tab . v
+- * ----------------------------------------------
+- *
+- * To draw the gap, we use gtk_paint_box_gap(), see comment in
+- * moz_gtk_tabpanels_paint(). This box_gap is made 3 * gap_height tall,
+- * which should suffice to ensure that the only visible border is the
+- * pierced one. If the tab is in the middle, we make the box_gap begin
+- * a bit to the left of the tab and end a bit to the right, adjusting
+- * the gap position so it still is under the tab, because we want the
+- * rendering of a gap in the middle of a tabpanel. This is the role of
+- * the gints gap_{l,r}_offset. On the contrary, if the tab is the
+- * first, we align the start border of the box_gap with the start
+- * border of the tab (left if LTR, right if RTL), by setting the
+- * appropriate offset to 0.*/
+- gint gap_loffset, gap_roffset, gap_voffset, gap_height;
+-
+- /* Get height needed by the gap */
+- gap_height = moz_gtk_get_tab_thickness();
+-
+- /* Extract gap_voffset from the first bits of flags */
+- gap_voffset = flags & MOZ_GTK_TAB_MARGIN_MASK;
+- if (gap_voffset > gap_height)
+- gap_voffset = gap_height;
+-
+- /* Set gap_{l,r}_offset to appropriate values */
+- gap_loffset = gap_roffset = 20; /* should be enough */
+- if (flags & MOZ_GTK_TAB_FIRST) {
+- if (direction == GTK_TEXT_DIR_RTL)
+- gap_roffset = initial_gap;
+- else
+- gap_loffset = initial_gap;
+- }
+-
+- if (flags & MOZ_GTK_TAB_BOTTOM) {
+- /* Draw the tab on bottom */
+- focusRect.y += gap_voffset;
+- focusRect.height -= gap_voffset;
+-
++ if (notebook_has_tab_gap) {
++ if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
++ /* Only draw the tab */
+ gtk_render_extension(style, cr,
+- tabRect.x, tabRect.y + gap_voffset, tabRect.width,
+- tabRect.height - gap_voffset, GTK_POS_TOP);
+-
+- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
+-
+- backRect.y += (gap_voffset - gap_height);
+- backRect.height = gap_height;
+-
+- /* Draw the gap; erase with background color before painting in
+- * case theme does not */
+- gtk_render_background(style, cr, backRect.x, backRect.y,
+- backRect.width, backRect.height);
+- cairo_save(cr);
+- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
+- cairo_clip(cr);
+-
+- gtk_render_frame_gap(style, cr,
+- tabRect.x - gap_loffset,
+- tabRect.y + gap_voffset - 3 * gap_height,
+- tabRect.width + gap_loffset + gap_roffset,
+- 3 * gap_height, GTK_POS_BOTTOM,
+- gap_loffset, gap_loffset + tabRect.width);
+- cairo_restore(cr);
++ tabRect.x, tabRect.y, tabRect.width, tabRect.height,
++ (flags & MOZ_GTK_TAB_BOTTOM) ?
++ GTK_POS_TOP : GTK_POS_BOTTOM );
+ } else {
+- /* Draw the tab on top */
+- focusRect.height -= gap_voffset;
+- gtk_render_extension(style, cr,
+- tabRect.x, tabRect.y, tabRect.width,
+- tabRect.height - gap_voffset, GTK_POS_BOTTOM);
+-
+- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
+-
+- backRect.y += (tabRect.height - gap_voffset);
+- backRect.height = gap_height;
++ /* Draw the tab and the gap
++ * We want the gap to be positioned exactly on the tabpanel top
++ * border; since tabbox.css may set a negative margin so that the tab
++ * frame rect already overlaps the tabpanel frame rect, we need to take
++ * that into account when drawing. To that effect, nsNativeThemeGTK
++ * passes us this negative margin (bmargin in the graphic below) in the
++ * lowest bits of |flags|. We use it to set gap_voffset, the distance
++ * between the top of the gap and the bottom of the tab (resp. the
++ * bottom of the gap and the top of the tab when we draw a bottom tab),
++ * while ensuring that the gap always touches the border of the tab,
++ * i.e. 0 <= gap_voffset <= gap_height, to avoid surprinsing results
++ * with big negative or positive margins.
++ * Here is a graphical explanation in the case of top tabs:
++ * ___________________________
++ * / \
++ * | T A B |
++ * ----------|. . . . . . . . . . . . . . .|----- top of tabpanel
++ * : ^ bmargin : ^
++ * : | (-negative margin, : |
++ * bottom : v passed in flags) : | gap_height
++ * of -> :.............................: | (the size of the
++ * the tab . part of the gap . | tabpanel top border)
++ * . outside of the tab . v
++ * ----------------------------------------------
++ *
++ * To draw the gap, we use gtk_paint_box_gap(), see comment in
++ * moz_gtk_tabpanels_paint(). This box_gap is made 3 * gap_height tall,
++ * which should suffice to ensure that the only visible border is the
++ * pierced one. If the tab is in the middle, we make the box_gap begin
++ * a bit to the left of the tab and end a bit to the right, adjusting
++ * the gap position so it still is under the tab, because we want the
++ * rendering of a gap in the middle of a tabpanel. This is the role of
++ * the gints gap_{l,r}_offset. On the contrary, if the tab is the
++ * first, we align the start border of the box_gap with the start
++ * border of the tab (left if LTR, right if RTL), by setting the
++ * appropriate offset to 0.*/
++ gint gap_loffset, gap_roffset, gap_voffset, gap_height;
++
++ /* Get height needed by the gap */
++ gap_height = moz_gtk_get_tab_thickness();
++
++ /* Extract gap_voffset from the first bits of flags */
++ gap_voffset = flags & MOZ_GTK_TAB_MARGIN_MASK;
++ if (gap_voffset > gap_height)
++ gap_voffset = gap_height;
++
++ /* Set gap_{l,r}_offset to appropriate values */
++ gap_loffset = gap_roffset = 20; /* should be enough */
++ if (flags & MOZ_GTK_TAB_FIRST) {
++ if (direction == GTK_TEXT_DIR_RTL)
++ gap_roffset = initial_gap;
++ else
++ gap_loffset = initial_gap;
++ }
+
+- /* Draw the gap; erase with background color before painting in
+- * case theme does not */
+- gtk_render_background(style, cr, backRect.x, backRect.y,
+- backRect.width, backRect.height);
+-
+- cairo_save(cr);
+- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
+- cairo_clip(cr);
+-
+- gtk_render_frame_gap(style, cr,
+- tabRect.x - gap_loffset,
+- tabRect.y + tabRect.height - gap_voffset,
+- tabRect.width + gap_loffset + gap_roffset,
+- 3 * gap_height, GTK_POS_TOP,
+- gap_loffset, gap_loffset + tabRect.width);
+- cairo_restore(cr);
++ if (flags & MOZ_GTK_TAB_BOTTOM) {
++ /* Draw the tab on bottom */
++ focusRect.y += gap_voffset;
++ focusRect.height -= gap_voffset;
++
++ gtk_render_extension(style, cr,
++ tabRect.x, tabRect.y + gap_voffset, tabRect.width,
++ tabRect.height - gap_voffset, GTK_POS_TOP);
++
++ gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
++
++ backRect.y += (gap_voffset - gap_height);
++ backRect.height = gap_height;
++
++ /* Draw the gap; erase with background color before painting in
++ * case theme does not */
++ gtk_render_background(style, cr, backRect.x, backRect.y,
++ backRect.width, backRect.height);
++ cairo_save(cr);
++ cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
++ cairo_clip(cr);
++
++ gtk_render_frame_gap(style, cr,
++ tabRect.x - gap_loffset,
++ tabRect.y + gap_voffset - 3 * gap_height,
++ tabRect.width + gap_loffset + gap_roffset,
++ 3 * gap_height, GTK_POS_BOTTOM,
++ gap_loffset, gap_loffset + tabRect.width);
++ cairo_restore(cr);
++ } else {
++ /* Draw the tab on top */
++ focusRect.height -= gap_voffset;
++ gtk_render_extension(style, cr,
++ tabRect.x, tabRect.y, tabRect.width,
++ tabRect.height - gap_voffset, GTK_POS_BOTTOM);
++
++ gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
++
++ backRect.y += (tabRect.height - gap_voffset);
++ backRect.height = gap_height;
++
++ /* Draw the gap; erase with background color before painting in
++ * case theme does not */
++ gtk_render_background(style, cr, backRect.x, backRect.y,
++ backRect.width, backRect.height);
++
++ cairo_save(cr);
++ cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
++ cairo_clip(cr);
++
++ gtk_render_frame_gap(style, cr,
++ tabRect.x - gap_loffset,
++ tabRect.y + tabRect.height - gap_voffset,
++ tabRect.width + gap_loffset + gap_roffset,
++ 3 * gap_height, GTK_POS_TOP,
++ gap_loffset, gap_loffset + tabRect.width);
++ cairo_restore(cr);
++ }
+ }
++ } else {
++ gtk_render_background(style, cr, tabRect.x, tabRect.y, tabRect.width, tabRect.height);
++ gtk_render_frame(style, cr, tabRect.x, tabRect.y, tabRect.width, tabRect.height);
+ }
+
++ gtk_style_context_restore(style);
++
+ if (state->focused) {
+ /* Paint the focus ring */
+- GtkBorder border;
+- gtk_style_context_get_border(style, GetStateFlagsFromGtkWidgetState(state), &border);
++ GtkBorder padding;
++
++ gtk_style_context_save(style);
++ moz_gtk_tab_prepare_style_context(style, flags);
+
+- focusRect.x += border.left;
+- focusRect.width -= (border.left + border.right);
+- focusRect.y += border.top;
+- focusRect.height -= (border.top + border.bottom);
++ gtk_style_context_get_padding(style, GetStateFlagsFromGtkWidgetState(state), &padding);
++
++ focusRect.x += padding.left;
++ focusRect.width -= (padding.left + padding.right);
++ focusRect.y += padding.top;
++ focusRect.height -= (padding.top + padding.bottom);
+
+ gtk_render_focus(style, cr,
+ focusRect.x, focusRect.y, focusRect.width, focusRect.height);
++
++ gtk_style_context_restore(style);
+ }
+
+- gtk_style_context_restore(style);
+
+ return MOZ_GTK_SUCCESS;
+ }
+@@ -2684,26 +2615,18 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ switch (widget) {
+ case MOZ_GTK_BUTTON:
+ {
+- GtkBorder inner_border;
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+-
+ ensure_button_widget();
++ style = gtk_widget_get_style_context(gButtonWidget);
++
+ *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget));
+
+ /* Don't add this padding in HTML, otherwise the buttons will
+ become too big and stuff the layout. */
+ if (!inhtml) {
+- moz_gtk_widget_get_focus(gButtonWidget, &interior_focus, &focus_width, &focus_pad);
+- moz_gtk_button_get_inner_border(gButtonWidget, &inner_border);
+- *left += focus_width + focus_pad + inner_border.left;
+- *right += focus_width + focus_pad + inner_border.right;
+- *top += focus_width + focus_pad + inner_border.top;
+- *bottom += focus_width + focus_pad + inner_border.bottom;
++ moz_gtk_add_style_padding(style, left, top, right, bottom);
+ }
+
+- moz_gtk_add_style_border(gtk_widget_get_style_context(gButtonWidget),
+- left, top, right, bottom);
++ moz_gtk_add_style_border(style, left, top, right, bottom);
+ return MOZ_GTK_SUCCESS;
+ }
+ case MOZ_GTK_ENTRY:
+@@ -2711,7 +2634,13 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ ensure_entry_widget();
+ style = gtk_widget_get_style_context(gEntryWidget);
+ moz_gtk_add_style_border(style, left, top, right, bottom);
+- moz_gtk_add_style_padding(style, left, top, right, bottom);
++
++ /* Use the document padding in HTML
++ and GTK style padding in XUL. */
++ if (!inhtml) {
++ moz_gtk_add_style_padding(style, left, top, right, bottom);
++ }
++
+ return MOZ_GTK_SUCCESS;
+ }
+ case MOZ_GTK_TREEVIEW:
+@@ -2731,23 +2660,15 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ * assigned.
+ * That is why the following code is the same as for MOZ_GTK_BUTTON.
+ * */
+-
+- GtkBorder inner_border;
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
++ GtkStyleContext *style;
+
+ ensure_tree_header_cell_widget();
+ *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gTreeHeaderCellWidget));
+
+- moz_gtk_widget_get_focus(gTreeHeaderCellWidget, &interior_focus, &focus_width, &focus_pad);
+- moz_gtk_button_get_inner_border(gTreeHeaderCellWidget, &inner_border);
+- *left += focus_width + focus_pad + inner_border.left;
+- *right += focus_width + focus_pad + inner_border.right;
+- *top += focus_width + focus_pad + inner_border.top;
+- *bottom += focus_width + focus_pad + inner_border.bottom;
+-
+- moz_gtk_add_style_border(gtk_widget_get_style_context(gTreeHeaderCellWidget),
+- left, top, right, bottom);
++ style = gtk_widget_get_style_context(gTreeHeaderCellWidget);
++
++ moz_gtk_add_style_border(style, left, top, right, bottom);
++ moz_gtk_add_style_padding(style, left, top, right, bottom);
+ return MOZ_GTK_SUCCESS;
+ }
+ case MOZ_GTK_TREE_HEADER_SORTARROW:
+@@ -2767,29 +2688,23 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ /* We need to account for the arrow on the dropdown, so text
+ * doesn't come too close to the arrow, or in some cases spill
+ * into the arrow. */
+- gboolean ignored_interior_focus, wide_separators;
+- gint focus_width, focus_pad, separator_width;
++ gboolean wide_separators;
++ gint separator_width;
+ GtkRequisition arrow_req;
+ GtkBorder border;
+
+ ensure_combo_box_widgets();
+
+- *left = gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
++ *left = *top = *right = *bottom =
++ gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
++
++ style = gtk_widget_get_style_context(gComboBoxButtonWidget);
+
+ if (!inhtml) {
+- moz_gtk_widget_get_focus(gComboBoxButtonWidget,
+- &ignored_interior_focus,
+- &focus_width, &focus_pad);
+- *left += focus_width + focus_pad;
++ moz_gtk_add_style_padding(style, left, top, right, bottom);
+ }
+
+- style = gtk_widget_get_style_context(gComboBoxButtonWidget);
+- gtk_style_context_get_border(style, 0, &border);
+-
+- *top = *left + border.top;
+- *left += border.left;
+-
+- *right = *left; *bottom = *top;
++ moz_gtk_add_style_border(style, left, top, right, bottom);
+
+ /* If there is no separator, don't try to count its width. */
+ separator_width = 0;
+@@ -2841,60 +2756,23 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ ensure_frame_widget();
+ w = gFrameWidget;
+ break;
+- case MOZ_GTK_CHECKBUTTON_LABEL:
+- case MOZ_GTK_RADIOBUTTON_LABEL:
+- {
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+-
+- /* If the focus is interior, then the label has a border of
+- (focus_width + focus_pad). */
+- if (widget == MOZ_GTK_CHECKBUTTON_LABEL) {
+- ensure_checkbox_widget();
+- moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
+- &focus_width, &focus_pad);
+- }
+- else {
+- ensure_radiobutton_widget();
+- moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
+- &focus_width, &focus_pad);
+- }
+-
+- if (interior_focus)
+- *left = *top = *right = *bottom = (focus_width + focus_pad);
+-
+- return MOZ_GTK_SUCCESS;
+- }
+-
+ case MOZ_GTK_CHECKBUTTON_CONTAINER:
+ case MOZ_GTK_RADIOBUTTON_CONTAINER:
+ {
+- gboolean interior_focus;
+- gint focus_width, focus_pad;
+-
+- /* If the focus is _not_ interior, then the container has a border
+- of (focus_width + focus_pad). */
+ if (widget == MOZ_GTK_CHECKBUTTON_CONTAINER) {
+ ensure_checkbox_widget();
+- moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
+- &focus_width, &focus_pad);
+ w = gCheckboxWidget;
+ } else {
+ ensure_radiobutton_widget();
+- moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
+- &focus_width, &focus_pad);
+ w = gRadiobuttonWidget;
+ }
++ style = gtk_widget_get_style_context(w);
+
+ *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(w));
+-
+- if (!interior_focus) {
+- *left += (focus_width + focus_pad);
+- *right += (focus_width + focus_pad);
+- *top += (focus_width + focus_pad);
+- *bottom += (focus_width + focus_pad);
+- }
+-
++ moz_gtk_add_style_border(style,
++ left, top, right, bottom);
++ moz_gtk_add_style_padding(style,
++ left, top, right, bottom);
+ return MOZ_GTK_SUCCESS;
+ }
+ case MOZ_GTK_MENUPOPUP:
+@@ -2921,6 +2799,8 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ return MOZ_GTK_SUCCESS;
+ }
+ /* These widgets have no borders, since they are not containers. */
++ case MOZ_GTK_CHECKBUTTON_LABEL:
++ case MOZ_GTK_RADIOBUTTON_LABEL:
+ case MOZ_GTK_SPLITTER_HORIZONTAL:
+ case MOZ_GTK_SPLITTER_VERTICAL:
+ case MOZ_GTK_CHECKBUTTON:
+@@ -2975,11 +2855,7 @@ moz_gtk_get_tab_border(gint* left, gint*
+ gtk_style_context_save(style);
+ moz_gtk_tab_prepare_style_context(style, flags);
+
+- // TODO add_style_border() should be replaced
+- // with focus-line-width and focus-padding
+- // see Bug 877605
+ *left = *top = *right = *bottom = 0;
+- moz_gtk_add_style_border(style, left, top, right, bottom);
+ moz_gtk_add_style_padding(style, left, top, right, bottom);
+
+ gtk_widget_style_get (gTabWidget, "tab-curvature", &tab_curvature, NULL);
+@@ -2990,16 +2866,9 @@ moz_gtk_get_tab_border(gint* left, gint*
+ int initial_gap;
+ gtk_widget_style_get (gTabWidget, "initial-gap", &initial_gap, NULL);
+ if (direction == GTK_TEXT_DIR_RTL)
+- *right += initial_gap;
++ *right += initial_gap;
+ else
+- *left += initial_gap;
+- }
+-
+- // Top tabs have no bottom border, bottom tabs have no top border
+- if (flags & MOZ_GTK_TAB_BOTTOM) {
+- *top = 0;
+- } else {
+- *bottom = 0;
++ *left += initial_gap;
+ }
+
+ gtk_style_context_restore(style);
diff --git a/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtkdrawing.h b/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtkdrawing.h
new file mode 100644
index 00000000000..ed06f077cd5
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_widget_gtk_gtkdrawing.h
@@ -0,0 +1,41 @@
+$NetBSD: patch-mozilla_widget_gtk_gtkdrawing.h,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/widget/gtk/gtkdrawing.h.orig 2015-06-08 17:49:33.000000000 +0000
++++ mozilla/widget/gtk/gtkdrawing.h
+@@ -293,16 +293,6 @@ moz_gtk_checkbox_get_metrics(gint* indic
+ gint
+ moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing);
+
+-/**
+- * Get the inner-border value for a GtkButton widget (button or tree header)
+- * widget: [IN] the widget to get the border value for
+- * inner_border: [OUT] the inner border
+- *
+- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
+- */
+-gint
+-moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border);
+-
+ /** Get the extra size for the focus ring for outline:auto.
+ * widget: [IN] the widget to get the focus metrics for
+ * focus_h_width: [OUT] the horizontal width
+@@ -313,19 +303,6 @@ moz_gtk_button_get_inner_border(GtkWidge
+ gint
+ moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width);
+
+-/** Get the focus metrics for a treeheadercell, button, checkbox, or radio button.
+- * widget: [IN] the widget to get the focus metrics for
+- * interior_focus: [OUT] whether the focus is drawn around the
+- * label (TRUE) or around the whole container (FALSE)
+- * focus_width: [OUT] the width of the focus line
+- * focus_pad: [OUT] the padding between the focus line and children
+- *
+- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
+- */
+-gint
+-moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+- gint* focus_width, gint* focus_pad);
+-
+ /** Get the horizontal padding for the menuitem widget or checkmenuitem widget.
+ * horizontal_padding: [OUT] The left and right padding of the menuitem or checkmenuitem
+ *
diff --git a/mail/thunderbird/patches/patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp b/mail/thunderbird/patches/patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp
new file mode 100644
index 00000000000..211e1b9d0e9
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp
@@ -0,0 +1,30 @@
+$NetBSD: patch-mozilla_widget_gtk_nsNativeThemeGTK.cpp,v 1.1 2015/07/09 15:17:34 ryoon Exp $
+
+--- mozilla/widget/gtk/nsNativeThemeGTK.cpp.orig 2015-06-08 17:49:33.000000000 +0000
++++ mozilla/widget/gtk/nsNativeThemeGTK.cpp
+@@ -761,6 +761,8 @@ nsNativeThemeGTK::GetExtraSizeForWidget(
+ return false;
+
+ gint gap_height = moz_gtk_get_tab_thickness();
++ if (!gap_height)
++ return false;
+
+ int32_t extra = gap_height - GetTabMarginPixels(aFrame);
+ if (extra <= 0)
+@@ -1528,9 +1530,15 @@ nsNativeThemeGTK::GetWidgetTransparency(
+ case NS_THEME_MENUPOPUP:
+ case NS_THEME_WINDOW:
+ case NS_THEME_DIALOG:
+- // Tooltips use gtk_paint_flat_box().
++ return eOpaque;
++ // Tooltips use gtk_paint_flat_box() on Gtk2
++ // but are shaped on Gtk3
+ case NS_THEME_TOOLTIP:
++#if (MOZ_WIDGET_GTK == 2)
+ return eOpaque;
++#else
++ return eTransparent;
++#endif
+ }
+
+ return eUnknownTransparency;
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsDebugImpl.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsDebugImpl.cpp
deleted file mode 100644
index 6bb6d144e9d..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsDebugImpl.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_base_nsDebugImpl.cpp,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/xpcom/base/nsDebugImpl.cpp.orig 2014-07-18 00:05:56.000000000 +0000
-+++ mozilla/xpcom/base/nsDebugImpl.cpp
-@@ -44,12 +44,43 @@
- #endif
- #endif
-
--#if defined(XP_MACOSX)
-+#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
-+ || defined(__NetBSD__) || defined(__OpenBSD__)
- #include <stdbool.h>
- #include <unistd.h>
-+#include <sys/param.h>
- #include <sys/sysctl.h>
- #endif
-
-+#if defined(__OpenBSD__)
-+#include <sys/proc.h>
-+#endif
-+
-+#if defined(__DragonFly__) || defined(__FreeBSD__)
-+#include <sys/user.h>
-+#endif
-+
-+#if defined(__NetBSD__)
-+#undef KERN_PROC
-+#define KERN_PROC KERN_PROC2
-+#define KINFO_PROC struct kinfo_proc2
-+#else
-+#define KINFO_PROC struct kinfo_proc
-+#endif
-+
-+#if defined(XP_MACOSX)
-+#define KP_FLAGS kp_proc.p_flag
-+#elif defined(__DragonFly__)
-+#define KP_FLAGS kp_flags
-+#elif defined(__FreeBSD__)
-+#define KP_FLAGS ki_flag
-+#elif defined(__OpenBSD__) && !defined(_P_TRACED)
-+#define KP_FLAGS p_psflags
-+#define P_TRACED PS_TRACED
-+#else
-+#define KP_FLAGS p_flag
-+#endif
-+
- #include "mozilla/mozalloc_abort.h"
-
- static void
-@@ -143,16 +174,22 @@ nsDebugImpl::GetIsDebuggerAttached(bool*
-
- #if defined(XP_WIN)
- *aResult = ::IsDebuggerPresent();
--#elif defined(XP_MACOSX)
-+#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
-+ || defined(__NetBSD__) || defined(__OpenBSD__)
- // Specify the info we're looking for
-- int mib[4];
-- mib[0] = CTL_KERN;
-- mib[1] = KERN_PROC;
-- mib[2] = KERN_PROC_PID;
-- mib[3] = getpid();
-+ int mib[] = {
-+ CTL_KERN,
-+ KERN_PROC,
-+ KERN_PROC_PID,
-+ getpid(),
-+#if defined(__NetBSD__) || defined(__OpenBSD__)
-+ sizeof(KINFO_PROC),
-+ 1,
-+#endif
-+ };
- size_t mibSize = sizeof(mib) / sizeof(int);
-
-- struct kinfo_proc info;
-+ KINFO_PROC info;
- size_t infoSize = sizeof(info);
- memset(&info, 0, infoSize);
-
-@@ -162,7 +199,7 @@ nsDebugImpl::GetIsDebuggerAttached(bool*
- return NS_OK;
- }
-
-- if (info.kp_proc.p_flag & P_TRACED) {
-+ if (info.KP_FLAGS & P_TRACED) {
- *aResult = true;
- }
- #endif
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsUUIDGenerator.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsUUIDGenerator.cpp
deleted file mode 100644
index 4501e062496..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsUUIDGenerator.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_base_nsUUIDGenerator.cpp,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/xpcom/base/nsUUIDGenerator.cpp.orig 2014-07-18 00:05:57.000000000 +0000
-+++ mozilla/xpcom/base/nsUUIDGenerator.cpp
-@@ -15,6 +15,10 @@
-
- #include "nsUUIDGenerator.h"
-
-+#ifdef ANDROID
-+extern "C" NS_EXPORT void arc4random_buf(void *, size_t);
-+#endif
-+
- using namespace mozilla;
-
- NS_IMPL_ISUPPORTS(nsUUIDGenerator, nsIUUIDGenerator)
-@@ -34,7 +38,7 @@ nsUUIDGenerator::Init()
- // We're a service, so we're guaranteed that Init() is not going
- // to be reentered while we're inside Init().
-
--#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
-+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
- /* initialize random number generator using NSPR random noise */
- unsigned int seed;
-
-@@ -67,7 +71,7 @@ nsUUIDGenerator::Init()
- return NS_ERROR_FAILURE;
- #endif
-
--#endif /* non XP_WIN and non XP_MACOSX */
-+#endif /* non XP_WIN and non XP_MACOSX and non ARC4RANDOM */
-
- return NS_OK;
- }
-@@ -114,13 +118,16 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsI
- * back to it; instead, we use the value returned when we called
- * initstate, since older glibc's have broken setstate() return values
- */
--#ifndef ANDROID
-+#ifndef HAVE_ARC4RANDOM
- setstate(mState);
- #endif
-
-+#ifdef HAVE_ARC4RANDOM_BUF
-+ arc4random_buf(id, sizeof(nsID));
-+#else /* HAVE_ARC4RANDOM_BUF */
- size_t bytesLeft = sizeof(nsID);
- while (bytesLeft > 0) {
--#ifdef ANDROID
-+#ifdef HAVE_ARC4RANDOM
- long rval = arc4random();
- const size_t mRBytes = 4;
- #else
-@@ -141,6 +148,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsI
-
- bytesLeft -= toWrite;
- }
-+#endif /* HAVE_ARC4RANDOM_BUF */
-
- /* Put in the version */
- id->m2 &= 0x0fff;
-@@ -150,7 +158,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsI
- id->m3[0] &= 0x3f;
- id->m3[0] |= 0x80;
-
--#ifndef ANDROID
-+#ifndef HAVE_ARC4RANDOM
- /* Restore the previous RNG state */
- setstate(mSavedState);
- #endif
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsUUIDGenerator.h b/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsUUIDGenerator.h
deleted file mode 100644
index ad2c2311d32..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_base_nsUUIDGenerator.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_base_nsUUIDGenerator.h,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/xpcom/base/nsUUIDGenerator.h.orig 2014-07-18 00:05:57.000000000 +0000
-+++ mozilla/xpcom/base/nsUUIDGenerator.h
-@@ -27,7 +27,7 @@ private:
- protected:
-
- mozilla::Mutex mLock;
--#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
-+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
- char mState[128];
- char *mSavedState;
- uint8_t mRBytes;
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_build_PoisonIOInterposer.h b/mail/thunderbird/patches/patch-mozilla_xpcom_build_PoisonIOInterposer.h
index 1e490620020..16390251d8f 100644
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_build_PoisonIOInterposer.h
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_build_PoisonIOInterposer.h
@@ -1,34 +1,55 @@
-$NetBSD: patch-mozilla_xpcom_build_PoisonIOInterposer.h,v 1.1 2014/07/27 20:05:00 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_build_PoisonIOInterposer.h,v 1.2 2015/07/09 15:17:35 ryoon Exp $
---- mozilla/xpcom/build/PoisonIOInterposer.h.orig 2014-07-18 00:05:57.000000000 +0000
+--- mozilla/xpcom/build/PoisonIOInterposer.h.orig 2015-06-08 17:49:33.000000000 +0000
+++ mozilla/xpcom/build/PoisonIOInterposer.h
-@@ -44,7 +44,7 @@ bool IsDebugFile(intptr_t aFileID);
- */
- void InitPoisonIOInterposer();
-
--#ifdef XP_MACOSX
-+#ifdef XP_DARWIN
- /**
- * Check that writes are dirty before reporting I/O (Mac OS X only)
- * This is necessary for late-write checks on Mac OS X, but reading the buffer
-@@ -52,7 +52,7 @@ void InitPoisonIOInterposer();
- * to do this for everything else that uses
- */
- void OnlyReportDirtyWrites();
--#endif /* XP_MACOSX */
-+#endif /* XP_DARWIN */
-
- /**
- * Clear IO poisoning, this is only safe to do on the main-thread when no other
-@@ -70,9 +70,9 @@ namespace mozilla {
- inline bool IsDebugFile(intptr_t aFileID){ return true; }
- inline void InitPoisonIOInterposer(){}
- inline void ClearPoisonIOInterposer(){}
--#ifdef XP_MACOSX
-+#ifdef XP_DARWIN
- inline void OnlyReportDirtyWrites(){}
--#endif /* XP_MACOSX */
-+#endif /* XP_DARWIN */
- } // namespace mozilla
- #endif /* __cplusplus */
-
+@@ -36,7 +36,7 @@ void MozillaUnRegisterDebugFILE(FILE* aF
+
+ MOZ_END_EXTERN_C
+
+-#if defined(XP_WIN) || defined(XP_MACOSX)
++#if defined(XP_WIN) || defined(XP_DARWIN)
+
+ #ifdef __cplusplus
+ namespace mozilla {
+@@ -54,7 +54,7 @@ bool IsDebugFile(intptr_t aFileID);
+ */
+ void InitPoisonIOInterposer();
+
+-#ifdef XP_MACOSX
++#ifdef XP_DARWIN
+ /**
+ * Check that writes are dirty before reporting I/O (Mac OS X only)
+ * This is necessary for late-write checks on Mac OS X, but reading the buffer
+@@ -62,7 +62,7 @@ void InitPoisonIOInterposer();
+ * to do this for everything else that uses
+ */
+ void OnlyReportDirtyWrites();
+-#endif /* XP_MACOSX */
++#endif /* XP_DARWIN */
+
+ /**
+ * Clear IO poisoning, this is only safe to do on the main-thread when no other
+@@ -73,19 +73,19 @@ void ClearPoisonIOInterposer();
+ } // namespace mozilla
+ #endif /* __cplusplus */
+
+-#else /* XP_WIN || XP_MACOSX */
++#else /* XP_WIN || XP_DARWIN */
+
+ #ifdef __cplusplus
+ namespace mozilla {
+ inline bool IsDebugFile(intptr_t aFileID) { return true; }
+ inline void InitPoisonIOInterposer() {}
+ inline void ClearPoisonIOInterposer() {}
+-#ifdef XP_MACOSX
++#ifdef XP_DARWIN
+ inline void OnlyReportDirtyWrites() {}
+-#endif /* XP_MACOSX */
++#endif /* XP_DARWIN */
+ } // namespace mozilla
+ #endif /* __cplusplus */
+
+-#endif /* XP_WIN || XP_MACOSX */
++#endif /* XP_WIN || XP_DARWIN */
+
+ #endif // mozilla_PoisonIOInterposer_h
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp
new file mode 100644
index 00000000000..2f46ee3fa93
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_build_XPCOMInit.cpp
@@ -0,0 +1,28 @@
+$NetBSD: patch-mozilla_xpcom_build_XPCOMInit.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
+
+--- mozilla/xpcom/build/XPCOMInit.cpp.orig 2015-06-08 17:49:33.000000000 +0000
++++ mozilla/xpcom/build/XPCOMInit.cpp
+@@ -141,7 +141,9 @@ extern nsresult nsStringInputStreamConst
+ #include "mozilla/VisualEventTracer.h"
+ #endif
+
++#ifndef MOZ_OGG_NO_MEM_REPORTING
+ #include "ogg/ogg.h"
++#endif
+ #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
+ #if defined(HAVE_STDINT_H)
+ // mozilla-config.h defines HAVE_STDINT_H, and then it's defined *again* in
+@@ -669,11 +671,13 @@ NS_InitXPCOM2(nsIServiceManager** aResul
+ // this oddness.
+ mozilla::SetICUMemoryFunctions();
+
++#ifndef MOZ_OGG_NO_MEM_REPORTING
+ // Do the same for libogg.
+ ogg_set_mem_functions(OggReporter::CountingMalloc,
+ OggReporter::CountingCalloc,
+ OggReporter::CountingRealloc,
+ OggReporter::CountingFree);
++#endif
+
+ #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
+ // And for VPX.
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_build_nsXPComInit.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_build_nsXPComInit.cpp
deleted file mode 100644
index 9a590364cc5..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_build_nsXPComInit.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_build_nsXPComInit.cpp,v 1.1 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/xpcom/build/nsXPComInit.cpp.orig 2014-07-18 00:05:57.000000000 +0000
-+++ mozilla/xpcom/build/nsXPComInit.cpp
-@@ -133,7 +133,9 @@ extern nsresult nsStringInputStreamConst
- #include "mozilla/VisualEventTracer.h"
- #endif
-
-+#ifndef MOZ_OGG_NO_MEM_REPORTING
- #include "ogg/ogg.h"
-+#endif
- #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
- #include "vpx_mem/vpx_mem.h"
- #endif
-@@ -607,11 +609,13 @@ NS_InitXPCOM2(nsIServiceManager* *result
- // this oddness.
- mozilla::SetICUMemoryFunctions();
-
-+#ifndef MOZ_OGG_NO_MEM_REPORTING
- // Do the same for libogg.
- ogg_set_mem_functions(OggReporter::CountingMalloc,
- OggReporter::CountingCalloc,
- OggReporter::CountingRealloc,
- OggReporter::CountingFree);
-+#endif
-
- #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
- // And for VPX.
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_ds_TimeStamp.h b/mail/thunderbird/patches/patch-mozilla_xpcom_ds_TimeStamp.h
deleted file mode 100644
index 56eb516e0b3..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_ds_TimeStamp.h
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_ds_TimeStamp.h,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/xpcom/ds/TimeStamp.h.orig 2013-10-23 22:09:21.000000000 +0000
-+++ mozilla/xpcom/ds/TimeStamp.h
-@@ -158,11 +158,11 @@ private:
- // NOTE: this MUST be a >= test, because int64_t(double(INT64_MAX))
- // overflows and gives INT64_MIN.
- if (aTicks >= double(INT64_MAX))
-- return TimeDuration::FromTicks(INT64_MAX);
-+ return TimeDuration::FromTicks(int64_t(INT64_MAX));
-
- // This MUST be a <= test.
- if (aTicks <= double(INT64_MIN))
-- return TimeDuration::FromTicks(INT64_MIN);
-+ return TimeDuration::FromTicks(int64_t(INT64_MIN));
-
- return TimeDuration::FromTicks(int64_t(aTicks));
- }
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_glue_standalone_nsXPCOMGlue.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_glue_standalone_nsXPCOMGlue.cpp
new file mode 100644
index 00000000000..9766e47fd08
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_glue_standalone_nsXPCOMGlue.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_xpcom_glue_standalone_nsXPCOMGlue.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
+
+--- mozilla/xpcom/glue/standalone/nsXPCOMGlue.cpp.orig 2015-06-08 17:49:33.000000000 +0000
++++ mozilla/xpcom/glue/standalone/nsXPCOMGlue.cpp
+@@ -30,7 +30,7 @@ static bool do_preload = false;
+ #endif
+
+ #if defined(SUNOS4) || defined(NEXTSTEP) || \
+- defined(XP_DARWIN) || \
++ defined(XP_MACOSX) || \
+ (defined(OPENBSD) || defined(NETBSD)) && !defined(__ELF__)
+ #define LEADING_UNDERSCORE "_"
+ #else
diff --git a/mail/thunderbird/patches/patch-mb b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_Makefile.in
index 7bca4c4c6cd..83ba18ce7fa 100644
--- a/mail/thunderbird/patches/patch-mb
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_Makefile.in
@@ -1,7 +1,7 @@
-$NetBSD: patch-mb,v 1.8 2014/07/27 20:04:59 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_Makefile.in,v 1.1 2015/07/09 15:17:35 ryoon Exp $
---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2014-07-18 00:05:57.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
+--- mozilla/xpcom/reflect/xptcall/md/unix/Makefile.in.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/Makefile.in
@@ -56,6 +56,39 @@ endif
# SPARC
######################################################################
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build
new file mode 100644
index 00000000000..b536989bfd9
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build
@@ -0,0 +1,22 @@
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_moz.build,v 1.1 2015/07/09 15:17:35 ryoon Exp $
+
+--- mozilla/xpcom/reflect/xptcall/md/unix/moz.build.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/moz.build
+@@ -9,7 +9,7 @@ if CONFIG['OS_ARCH'] == 'Darwin':
+ 'xptcinvoke_darwin.cpp',
+ 'xptcstubs_darwin.cpp',
+ ]
+- if CONFIG['OS_TEST'] == 'powerpc':
++ if CONFIG['OS_TEST'] == 'ppc':
+ SOURCES += [
+ 'xptcinvoke_asm_ppc_rhapsody.s',
+ ]
+@@ -26,7 +26,7 @@ if CONFIG['OS_ARCH'] == 'GNU':
+ 'xptcstubs_gcc_x86_unix.cpp'
+ ]
+
+-if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD', 'NetBSD', 'OpenBSD') or \
++if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'DragonFly') or \
+ CONFIG['OS_ARCH'].startswith('GNU_'):
+ if CONFIG['OS_TEST'] == 'x86_64':
+ SOURCES += [
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp
new file mode 100644
index 00000000000..50269689d71
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp
@@ -0,0 +1,527 @@
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__arm__netbsd.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
+
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp
+@@ -7,82 +7,92 @@
+
+ #include "xptcprivate.h"
+
+-// Remember that these 'words' are 32bit DWORDS
++#include "mozilla/Compiler.h"
+
+-static uint32_t
+-invoke_count_words(uint32_t paramCount, nsXPTCVariant* s)
++#ifndef __ARM_PCS_VFP
++
++/* This function copies a 64-bits word from dw to the given pointer in
++ * a buffer delimited by start and end, possibly wrapping around the
++ * buffer boundaries, and/or properly aligning the data at 64-bits word
++ * boundaries (for EABI).
++ * start and end are both assumed to be 64-bits aligned.
++ * Returns a pointer to the second 32-bits word copied (to accomodate
++ * the invoke_copy_to_stack loop).
++ */
++static uint32_t *
++copy_double_word(uint32_t *start, uint32_t *current, uint32_t *end, uint64_t *dw)
+ {
+- uint32_t result = 0;
+- for(uint32_t i = 0; i < paramCount; i++, s++)
+- {
+- if(s->IsPtrData())
+- {
+- result++;
+- continue;
+- }
+- switch(s->type)
+- {
+- case nsXPTType::T_I8 :
+- case nsXPTType::T_I16 :
+- case nsXPTType::T_I32 :
+- result++;
+- break;
+- case nsXPTType::T_I64 :
+- result+=2;
+- break;
+- case nsXPTType::T_U8 :
+- case nsXPTType::T_U16 :
+- case nsXPTType::T_U32 :
+- result++;
+- break;
+- case nsXPTType::T_U64 :
+- result+=2;
+- break;
+- case nsXPTType::T_FLOAT :
+- result++;
+- break;
+- case nsXPTType::T_DOUBLE :
+- result+=2;
+- break;
+- case nsXPTType::T_BOOL :
+- case nsXPTType::T_CHAR :
+- case nsXPTType::T_WCHAR :
+- result++;
+- break;
+- default:
+- // all the others are plain pointer types
+- result++;
+- break;
+- }
++#ifdef __ARM_EABI__
++ /* Aligning the pointer for EABI */
++ current = (uint32_t *)(((uint32_t)current + 7) & ~7);
++ /* Wrap when reaching the end of the buffer */
++ if (current == end) current = start;
++#else
++ /* On non-EABI, 64-bits values are not aligned and when we reach the end
++ * of the buffer, we need to write half of the data at the end, and the
++ * other half at the beginning. */
++ if (current == end - 1) {
++ *current = ((uint32_t*)dw)[0];
++ *start = ((uint32_t*)dw)[1];
++ return start;
+ }
+- return result;
++#endif
++
++ *((uint64_t*) current) = *dw;
++ return current + 1;
+ }
+
+-static void
+-invoke_copy_to_stack(uint32_t* d, uint32_t paramCount, nsXPTCVariant* s)
++/* See stack_space comment in NS_InvokeByIndex to see why this needs not to
++ * be static on DEBUG builds. */
++#ifndef DEBUG
++static
++#endif
++void
++invoke_copy_to_stack(uint32_t* stk, uint32_t *end,
++ uint32_t paramCount, nsXPTCVariant* s)
+ {
++ /* The stack buffer is 64-bits aligned. The end argument points to its end.
++ * The caller is assumed to create a stack buffer of at least four 32-bits
++ * words.
++ * We use the last three 32-bit words to store the values for r1, r2 and r3
++ * for the method call, i.e. the first words for arguments passing.
++ */
++ uint32_t *d = end - 3;
+ for(uint32_t i = 0; i < paramCount; i++, d++, s++)
+ {
++ /* Wrap when reaching the end of the stack buffer */
++ if (d == end) d = stk;
++ NS_ASSERTION(d >= stk && d < end,
++ "invoke_copy_to_stack is copying outside its given buffer");
+ if(s->IsPtrData())
+ {
+ *((void**)d) = s->ptr;
+ continue;
+ }
++ // According to the ARM EABI, integral types that are smaller than a word
++ // are to be sign/zero-extended to a full word and treated as 4-byte values.
++
+ switch(s->type)
+ {
+- case nsXPTType::T_I8 : *((int8_t*) d) = s->val.i8; break;
+- case nsXPTType::T_I16 : *((int16_t*) d) = s->val.i16; break;
++ case nsXPTType::T_I8 : *((int32_t*) d) = s->val.i8; break;
++ case nsXPTType::T_I16 : *((int32_t*) d) = s->val.i16; break;
+ case nsXPTType::T_I32 : *((int32_t*) d) = s->val.i32; break;
+- case nsXPTType::T_I64 : *((int64_t*) d) = s->val.i64; d++; break;
+- case nsXPTType::T_U8 : *((uint8_t*) d) = s->val.u8; break;
+- case nsXPTType::T_U16 : *((uint16_t*)d) = s->val.u16; break;
++ case nsXPTType::T_I64 :
++ d = copy_double_word(stk, d, end, (uint64_t *)&s->val.i64);
++ break;
++ case nsXPTType::T_U8 : *((uint32_t*)d) = s->val.u8; break;
++ case nsXPTType::T_U16 : *((uint32_t*)d) = s->val.u16; break;
+ case nsXPTType::T_U32 : *((uint32_t*)d) = s->val.u32; break;
+- case nsXPTType::T_U64 : *((uint64_t*)d) = s->val.u64; d++; break;
++ case nsXPTType::T_U64 :
++ d = copy_double_word(stk, d, end, (uint64_t *)&s->val.u64);
++ break;
+ case nsXPTType::T_FLOAT : *((float*) d) = s->val.f; break;
+- case nsXPTType::T_DOUBLE : *((double*) d) = s->val.d; d++; break;
+- case nsXPTType::T_BOOL : *((bool*) d) = s->val.b; break;
+- case nsXPTType::T_CHAR : *((char*) d) = s->val.c; break;
+- case nsXPTType::T_WCHAR : *((wchar_t*) d) = s->val.wc; break;
++ case nsXPTType::T_DOUBLE :
++ d = copy_double_word(stk, d, end, (uint64_t *)&s->val.d);
++ break;
++ case nsXPTType::T_BOOL : *((int32_t*) d) = s->val.b; break;
++ case nsXPTType::T_CHAR : *((int32_t*) d) = s->val.c; break;
++ case nsXPTType::T_WCHAR : *((int32_t*) d) = s->val.wc; break;
+ default:
+ // all the others are plain pointer types
+ *((void**)d) = s->val.p;
+@@ -91,47 +101,27 @@ invoke_copy_to_stack(uint32_t* d, uint32
+ }
+ }
+
+-extern "C"
+-struct my_params_struct {
+- nsISupports* that;
+- uint32_t Index;
+- uint32_t Count;
+- nsXPTCVariant* params;
+- uint32_t fn_count;
+- uint32_t fn_copy;
+-};
++typedef nsresult (*vtable_func)(nsISupports *, uint32_t, uint32_t, uint32_t);
+
+-XPTC_PUBLIC_API(nsresult)
+-XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
++EXPORT_XPCOM_API(nsresult)
++NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
+ uint32_t paramCount, nsXPTCVariant* params)
+ {
+- uint32_t result;
+- struct my_params_struct my_params;
+- my_params.that = that;
+- my_params.Index = methodIndex;
+- my_params.Count = paramCount;
+- my_params.params = params;
+- my_params.fn_copy = (uint32_t) &invoke_copy_to_stack;
+- my_params.fn_count = (uint32_t) &invoke_count_words;
+
+ /* This is to call a given method of class that.
+ * The parameters are in params, the number is in paramCount.
+ * The routine will issue calls to count the number of words
+ * required for argument passing and to copy the arguments to
+ * the stack.
+- * Since APCS passes the first 3 params in r1-r3, we need to
+- * load the first three words from the stack and correct the stack
+- * pointer (sp) in the appropriate way. This means:
+- *
+- * 1.) more than 3 arguments: load r1-r3, correct sp and remember No.
+- * of bytes left on the stack in r4
+- *
+- * 2.) <= 2 args: load r1-r3 (we won't be causing a stack overflow I hope),
+- * restore sp as if nothing had happened and set the marker r4 to zero.
+- *
+- * Afterwards sp will be restored using the value in r4 (which is not a temporary register
+- * and will be preserved by the function/method called according to APCS [ARM Procedure
+- * Calling Standard]).
++ * ACPS passes the first 3 params in r1-r3 (with exceptions for 64-bits
++ * arguments), and the remaining goes onto the stack.
++ * We allocate a buffer on the stack for a "worst case" estimate of how much
++ * stack might be needed for EABI, i.e. twice the number of parameters.
++ * The end of this buffer will be used to store r1 to r3, so that the start
++ * of the stack is the remaining parameters.
++ * The magic here is to call the method with "that" and three 32-bits
++ * arguments corresponding to r1-r3, so that the compiler generates the
++ * proper function call. The stack will also contain the remaining arguments.
+ *
+ * !!! IMPORTANT !!!
+ * This routine makes assumptions about the vtable layout of the c++ compiler. It's implemented
+@@ -139,43 +129,272 @@ XPTC_InvokeByIndex(nsISupports* that, ui
+ *
+ */
+
+- __asm__ __volatile__(
+- "ldr r1, [%1, #12] \n\t" /* prepare to call invoke_count_words */
+- "ldr ip, [%1, #16] \n\t" /* r0=paramCount, r1=params */
+- "ldr r0, [%1, #8] \n\t"
+- "mov lr, pc \n\t" /* call it... */
+- "mov pc, ip \n\t"
+- "mov r4, r0, lsl #2 \n\t" /* This is the amount of bytes needed. */
+- "sub sp, sp, r4 \n\t" /* use stack space for the args... */
+- "mov r0, sp \n\t" /* prepare a pointer an the stack */
+- "ldr r1, [%1, #8] \n\t" /* =paramCount */
+- "ldr r2, [%1, #12] \n\t" /* =params */
+- "ldr ip, [%1, #20] \n\t" /* =invoke_copy_to_stack */
+- "mov lr, pc \n\t" /* copy args to the stack like the */
+- "mov pc, ip \n\t" /* compiler would. */
+- "ldr r0, [%1] \n\t" /* =that */
+- "ldr r1, [r0, #0] \n\t" /* get that->vtable offset */
+- "ldr r2, [%1, #4] \n\t"
+- "add r2, r1, r2, lsl #3\n\t" /* a vtable_entry(x)=8 + (8 bytes * x) */
+- "add r2, r2, #8 \n\t" /* with this compilers */
+- "ldr r3, [r2] \n\t" /* get virtual offset from vtable */
+- "mov r3, r3, lsl #16 \n\t"
+- "add r0, r0, r3, asr #16\n\t"
+- "ldr ip, [r2, #4] \n\t" /* get method address from vtable */
+- "cmp r4, #12 \n\t" /* more than 3 arguments??? */
+- "ldmgtia sp!, {r1, r2, r3}\n\t" /* yes: load arguments for r1-r3 */
+- "subgt r4, r4, #12 \n\t" /* and correct the stack pointer */
+- "ldmleia sp, {r1, r2, r3}\n\t" /* no: load r1-r3 from stack */
+- "addle sp, sp, r4 \n\t" /* and restore stack pointer */
+- "movle r4, #0 \n\t" /* a mark for restoring sp */
+- "mov lr, pc \n\t" /* call mathod */
+- "mov pc, ip \n\t"
+- "add sp, sp, r4 \n\t" /* restore stack pointer */
+- "mov %0, r0 \n\t" /* the result... */
+- : "=r" (result)
+- : "r" (&my_params)
+- : "r0", "r1", "r2", "r3", "r4", "ip", "lr"
+- );
+-
+- return result;
++ vtable_func *vtable, func;
++ int base_size = (paramCount > 1) ? paramCount : 2;
++
++/* !!! IMPORTANT !!!
++ * On DEBUG builds, the NS_ASSERTION used in invoke_copy_to_stack needs to use
++ * the stack to pass the 5th argument to NS_DebugBreak. When invoke_copy_to_stack
++ * is inlined, this can result, depending on the compiler and flags, in the
++ * stack pointer not pointing at stack_space when the method is called at the
++ * end of this function. More generally, any function call requiring stack
++ * allocation of arguments is unsafe to be inlined in this function.
++ */
++ uint32_t *stack_space = (uint32_t *) __builtin_alloca(base_size * 8);
++
++ invoke_copy_to_stack(stack_space, &stack_space[base_size * 2],
++ paramCount, params);
++
++ vtable = *reinterpret_cast<vtable_func **>(that);
++ func = vtable[methodIndex];
++
++ return func(that, stack_space[base_size * 2 - 3],
++ stack_space[base_size * 2 - 2],
++ stack_space[base_size * 2 - 1]);
+ }
++
++#else /* __ARM_PCS_VFP */
++
++/* "Procedure Call Standard for the ARM Architecture" document, sections
++ * "5.5 Parameter Passing" and "6.1.2 Procedure Calling" contain all the
++ * needed information.
++ *
++ * http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
++ */
++
++#if defined(__thumb__) && !defined(__thumb2__)
++#error "Thumb1 is not supported"
++#endif
++
++#ifndef __ARMEL__
++#error "Only little endian compatibility was tested"
++#endif
++
++/*
++ * Allocation of integer function arguments initially to registers r1-r3
++ * and then to stack. Handling of 'this' argument which goes to r0 registers
++ * is handled separately and does not belong to these two inline functions.
++ *
++ * The doubleword arguments are allocated to even:odd
++ * register pairs or get aligned at 8-byte boundary on stack. The "holes"
++ * which may appear as a result of this realignment remain unused.
++ *
++ * 'ireg_args' - pointer to the current position in the buffer,
++ * corresponding to the register arguments
++ * 'stack_args' - pointer to the current position in the buffer,
++ * corresponding to the arguments on stack
++ * 'end' - pointer to the end of the registers argument
++ * buffer (it is guaranteed to be 8-bytes aligned)
++ */
++
++static inline void copy_word(uint32_t* &ireg_args,
++ uint32_t* &stack_args,
++ uint32_t* end,
++ uint32_t data)
++{
++ if (ireg_args < end) {
++ *ireg_args = data;
++ ireg_args++;
++ } else {
++ *stack_args = data;
++ stack_args++;
++ }
++}
++
++static inline void copy_dword(uint32_t* &ireg_args,
++ uint32_t* &stack_args,
++ uint32_t* end,
++ uint64_t data)
++{
++ if (ireg_args + 1 < end) {
++ if ((uint32_t)ireg_args & 4) {
++ ireg_args++;
++ }
++ *(uint64_t *)ireg_args = data;
++ ireg_args += 2;
++ } else {
++ if ((uint32_t)stack_args & 4) {
++ stack_args++;
++ }
++ *(uint64_t *)stack_args = data;
++ stack_args += 2;
++ }
++}
++
++/*
++ * Allocation of floating point arguments to VFP registers (s0-s15, d0-d7).
++ *
++ * Unlike integer registers allocation, "back-filling" needs to be
++ * supported. For example, the third floating point argument in the
++ * following function is going to be allocated to s1 register, back-filling
++ * the "hole":
++ * void f(float s0, double d1, float s1)
++ *
++ * Refer to the "Procedure Call Standard for the ARM Architecture" document
++ * for more details.
++ *
++ * 'vfp_s_args' - pointer to the current position in the buffer with
++ * the next unallocated single precision register
++ * 'vfp_d_args' - pointer to the current position in the buffer with
++ * the next unallocated double precision register,
++ * it has the same value as 'vfp_s_args' when back-filling
++ * is not used
++ * 'end' - pointer to the end of the vfp registers argument
++ * buffer (it is guaranteed to be 8-bytes aligned)
++ *
++ * Mozilla bugtracker has a test program attached which be used for
++ * experimenting with VFP registers allocation code and testing its
++ * correctness:
++ * https://bugzilla.mozilla.org/show_bug.cgi?id=601914#c19
++ */
++
++static inline bool copy_vfp_single(float* &vfp_s_args, double* &vfp_d_args,
++ float* end, float data)
++{
++ if (vfp_s_args >= end)
++ return false;
++
++ *vfp_s_args = data;
++ vfp_s_args++;
++ if (vfp_s_args < (float *)vfp_d_args) {
++ // It was the case of back-filling, now the next free single precision
++ // register should overlap with the next free double precision register
++ vfp_s_args = (float *)vfp_d_args;
++ } else if (vfp_s_args > (float *)vfp_d_args) {
++ // also update the pointer to the next free double precision register
++ vfp_d_args++;
++ }
++ return true;
++}
++
++static inline bool copy_vfp_double(float* &vfp_s_args, double* &vfp_d_args,
++ float* end, double data)
++{
++ if (vfp_d_args >= (double *)end) {
++ // The back-filling continues only so long as no VFP CPRC has been
++ // allocated to a slot on the stack. Basically no VFP registers can
++ // be allocated after this point.
++ vfp_s_args = end;
++ return false;
++ }
++
++ if (vfp_s_args == (float *)vfp_d_args) {
++ // also update the pointer to the next free single precision register
++ vfp_s_args += 2;
++ }
++ *vfp_d_args = data;
++ vfp_d_args++;
++ return true;
++}
++
++static void
++invoke_copy_to_stack(uint32_t* stk, uint32_t *end,
++ uint32_t paramCount, nsXPTCVariant* s)
++{
++ uint32_t *ireg_args = end - 3;
++ float *vfp_s_args = (float *)end;
++ double *vfp_d_args = (double *)end;
++ float *vfp_end = vfp_s_args + 16;
++
++ for (uint32_t i = 0; i < paramCount; i++, s++) {
++ if (s->IsPtrData()) {
++ copy_word(ireg_args, stk, end, (uint32_t)s->ptr);
++ continue;
++ }
++ // According to the ARM EABI, integral types that are smaller than a word
++ // are to be sign/zero-extended to a full word and treated as 4-byte values
++ switch (s->type)
++ {
++ case nsXPTType::T_FLOAT:
++ if (!copy_vfp_single(vfp_s_args, vfp_d_args, vfp_end, s->val.f)) {
++ copy_word(end, stk, end, reinterpret_cast<uint32_t&>(s->val.f));
++ }
++ break;
++ case nsXPTType::T_DOUBLE:
++ if (!copy_vfp_double(vfp_s_args, vfp_d_args, vfp_end, s->val.d)) {
++ copy_dword(end, stk, end, reinterpret_cast<uint64_t&>(s->val.d));
++ }
++ break;
++ case nsXPTType::T_I8: copy_word(ireg_args, stk, end, s->val.i8); break;
++ case nsXPTType::T_I16: copy_word(ireg_args, stk, end, s->val.i16); break;
++ case nsXPTType::T_I32: copy_word(ireg_args, stk, end, s->val.i32); break;
++ case nsXPTType::T_I64: copy_dword(ireg_args, stk, end, s->val.i64); break;
++ case nsXPTType::T_U8: copy_word(ireg_args, stk, end, s->val.u8); break;
++ case nsXPTType::T_U16: copy_word(ireg_args, stk, end, s->val.u16); break;
++ case nsXPTType::T_U32: copy_word(ireg_args, stk, end, s->val.u32); break;
++ case nsXPTType::T_U64: copy_dword(ireg_args, stk, end, s->val.u64); break;
++ case nsXPTType::T_BOOL: copy_word(ireg_args, stk, end, s->val.b); break;
++ case nsXPTType::T_CHAR: copy_word(ireg_args, stk, end, s->val.c); break;
++ case nsXPTType::T_WCHAR: copy_word(ireg_args, stk, end, s->val.wc); break;
++ default:
++ // all the others are plain pointer types
++ copy_word(ireg_args, stk, end, reinterpret_cast<uint32_t>(s->val.p));
++ break;
++ }
++ }
++}
++
++typedef uint32_t (*vtable_func)(nsISupports *, uint32_t, uint32_t, uint32_t);
++
++EXPORT_XPCOM_API(nsresult)
++NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
++ uint32_t paramCount, nsXPTCVariant* params)
++{
++ vtable_func *vtable = *reinterpret_cast<vtable_func **>(that);
++ vtable_func func = vtable[methodIndex];
++ // 'register uint32_t result asm("r0")' could be used here, but it does not
++ // seem to be reliable in all cases: http://gcc.gnu.org/PR46164
++ nsresult result;
++ asm (
++ "mov r3, sp\n"
++ "mov %[stack_space_size], %[param_count_plus_2], lsl #3\n"
++ "tst r3, #4\n" /* check stack alignment */
++
++ "add %[stack_space_size], #(4 * 16)\n" /* space for VFP registers */
++ "mov r3, %[params]\n"
++
++ "it ne\n"
++ "addne %[stack_space_size], %[stack_space_size], #4\n"
++ "sub r0, sp, %[stack_space_size]\n" /* allocate space on stack */
++
++ "sub r2, %[param_count_plus_2], #2\n"
++ "mov sp, r0\n"
++
++ "add r1, r0, %[param_count_plus_2], lsl #3\n"
++ "blx %[invoke_copy_to_stack]\n"
++
++ "add ip, sp, %[param_count_plus_2], lsl #3\n"
++ "mov r0, %[that]\n"
++ "ldmdb ip, {r1, r2, r3}\n"
++ "vldm ip, {d0, d1, d2, d3, d4, d5, d6, d7}\n"
++ "blx %[func]\n"
++
++ "add sp, sp, %[stack_space_size]\n" /* cleanup stack */
++ "mov %[stack_space_size], r0\n" /* it's actually 'result' variable */
++ : [stack_space_size] "=&r" (result)
++ : [func] "r" (func),
++ [that] "r" (that),
++ [params] "r" (params),
++ [param_count_plus_2] "r" (paramCount + 2),
++ [invoke_copy_to_stack] "r" (invoke_copy_to_stack)
++ : "cc", "memory",
++ // Mark all the scratch registers as clobbered because they may be
++ // modified by the functions, called from this inline assembly block
++ "r0", "r1", "r2", "r3", "ip", "lr",
++ "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
++ // Also unconditionally mark d16-d31 registers as clobbered even though
++ // they actually don't exist in vfpv2 and vfpv3-d16 variants. There is
++ // no way to identify VFP variant using preprocessor at the momemnt
++ // (see http://gcc.gnu.org/PR46128 for more details), but fortunately
++ // current versions of gcc do not seem to complain about these registers
++ // even when this code is compiled with '-mfpu=vfpv3-d16' option.
++ // If gcc becomes more strict in the future and/or provides a way to
++ // identify VFP variant, the following d16-d31 registers list needs
++ // to be wrapped into some #ifdef
++ "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23",
++ "d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31"
++ );
++ return result;
++}
++
++#endif
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__asm__mips.S b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__mips.S
index 965ca617e39..1501dfb7226 100644
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__asm__mips.S
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__mips.S
@@ -1,7 +1,7 @@
-$NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__asm__mips.S,v 1.1 2014/07/27 20:05:00 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__mips.S,v 1.1 2015/07/09 15:17:35 ryoon Exp $
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.S.orig 2014-07-18 00:05:57.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.S
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_mips.S.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_mips.S
@@ -16,6 +16,47 @@
#include <sys/asm.h>
#endif
diff --git a/mail/thunderbird/patches/patch-xl b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__ppc__netbsd.s
index cb55dca889e..74f44a46b20 100644
--- a/mail/thunderbird/patches/patch-xl
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__ppc__netbsd.s
@@ -1,9 +1,7 @@
-$NetBSD: patch-xl,v 1.7 2014/07/27 20:05:00 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__asm__ppc__netbsd.s,v 1.1 2015/07/09 15:17:35 ryoon Exp $
-NetBSD ppc xptcall support code. Originally from pkgsrc/www/mozilla.
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s.orig 2014-07-18 00:05:57.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc_netbsd.s.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc_netbsd.s
@@ -20,15 +20,15 @@
.section ".text"
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp
new file mode 100644
index 00000000000..bf9ef6ef356
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__gcc__x86__unix.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
+
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_gcc_x86_unix.cpp.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_gcc_x86_unix.cpp
+@@ -9,7 +9,7 @@
+ #include "xptc_gcc_x86_unix.h"
+
+ extern "C" {
+-static void ATTRIBUTE_USED __attribute__ ((regparm(3)))
++void ATTRIBUTE_USED __attribute__ ((regparm(3)))
+ invoke_copy_to_stack(uint32_t paramCount, nsXPTCVariant* s, uint32_t* d)
+ {
+ for(uint32_t i = paramCount; i >0; i--, d++, s++)
diff --git a/mail/thunderbird/patches/patch-xe b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__netbsd__m68k.cpp
index c567fd29441..122dd28a48a 100644
--- a/mail/thunderbird/patches/patch-xe
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__netbsd__m68k.cpp
@@ -1,9 +1,7 @@
-$NetBSD: patch-xe,v 1.6 2012/11/23 07:17:54 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__netbsd__m68k.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
-NetBSD/m68k xptcall support code. From pkgsrc/www/firefox/patch-ad.
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp.orig 2012-11-19 22:42:44.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_netbsd_m68k.cpp.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_netbsd_m68k.cpp
@@ -100,6 +100,15 @@ extern "C" {
}
}
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__ppc__netbsd.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__ppc__netbsd.cpp
index 58f3eda1310..025ee61aecd 100644
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__ppc__netbsd.cpp
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__ppc__netbsd.cpp
@@ -1,7 +1,7 @@
-$NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__ppc__netbsd.cpp,v 1.1 2012/11/23 07:17:54 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__ppc__netbsd.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_netbsd.cpp.orig 2012-11-19 22:42:44.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_netbsd.cpp
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp
@@ -5,9 +5,9 @@
// Platform specific code to invoke XPCOM methods on native objects
@@ -14,7 +14,7 @@ $NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__ppc__netbsd
// access. The parameters for the method are read from the
// nsXPTCVariant* and prepared for the native ABI. For the Linux/PPC
// ABI this means that the first 8 integral and floating point
-@@ -69,8 +69,10 @@ invoke_copy_to_stack(uint32_t* d,
+@@ -72,8 +72,10 @@ invoke_copy_to_stack(uint32_t* d,
if ((uint32_t) d & 4) d++; // doubles are 8-byte aligned on stack
*((double*) d) = s->val.d;
d += 2;
@@ -25,7 +25,7 @@ $NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__ppc__netbsd
}
}
else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
-@@ -79,8 +81,10 @@ invoke_copy_to_stack(uint32_t* d,
+@@ -82,8 +84,10 @@ invoke_copy_to_stack(uint32_t* d,
else {
*((float*) d) = s->val.f;
d += 1;
@@ -36,7 +36,7 @@ $NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__ppc__netbsd
}
}
else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64
-@@ -107,6 +111,6 @@ invoke_copy_to_stack(uint32_t* d,
+@@ -110,6 +114,6 @@ invoke_copy_to_stack(uint32_t* d,
}
extern "C"
diff --git a/mail/thunderbird/patches/patch-xb b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__sparc64__netbsd.cpp
index 9a01cf876a4..74f0f2ee060 100644
--- a/mail/thunderbird/patches/patch-xb
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__sparc64__netbsd.cpp
@@ -1,9 +1,7 @@
-$NetBSD: patch-xb,v 1.5 2012/09/02 06:43:43 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcinvoke__sparc64__netbsd.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
-NetBSD/sparc64 xptcall support code. From pkgsrc/www/firefox3/files/
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_netbsd.cpp.orig 2012-08-31 13:21:49.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_netbsd.cpp
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc64_netbsd.cpp.orig 2015-07-06 19:52:50.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc64_netbsd.cpp
@@ -0,0 +1,84 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ *
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp
new file mode 100644
index 00000000000..3204c0f0e66
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp
@@ -0,0 +1,217 @@
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__arm__netbsd.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
+
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_arm_netbsd.cpp.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_arm_netbsd.cpp
+@@ -6,15 +6,32 @@
+ /* Implement shared vtbl methods. */
+
+ #include "xptcprivate.h"
++#include "xptiprivate.h"
+
+-nsresult ATTRIBUTE_USED
++/* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */
++static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, uint32_t* args) asm("_PrepareAndDispatch")
++ATTRIBUTE_USED;
++
++#ifdef __ARM_EABI__
++#define DOUBLEWORD_ALIGN(p) ((uint32_t *)((((uint32_t)(p)) + 7) & 0xfffffff8))
++#else
++#define DOUBLEWORD_ALIGN(p) (p)
++#endif
++
++// Apple's iOS toolchain is lame and does not support .cfi directives.
++#ifdef __APPLE__
++#define CFI(str)
++#else
++#define CFI(str) str
++#endif
++
++static nsresult
+ PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, uint32_t* args)
+ {
+ #define PARAM_BUFFER_COUNT 16
+
+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
+ nsXPTCMiniVariant* dispatchParams = nullptr;
+- nsIInterfaceInfo* iface_info = nullptr;
+ const nsXPTMethodInfo* info;
+ uint8_t paramCount;
+ uint8_t i;
+@@ -22,12 +39,7 @@ PrepareAndDispatch(nsXPTCStubBase* self,
+
+ NS_ASSERTION(self,"no self");
+
+- self->GetInterfaceInfo(&iface_info);
+- NS_ASSERTION(iface_info,"no interface info");
+-
+- iface_info->GetMethodInfo(uint16_t(methodIndex), &info);
+- NS_ASSERTION(info,"no interface info");
+-
++ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info);
+ paramCount = info->GetParamCount();
+
+ // setup variant array pointer
+@@ -55,13 +67,16 @@ PrepareAndDispatch(nsXPTCStubBase* self,
+ case nsXPTType::T_I8 : dp->val.i8 = *((int8_t*) ap); break;
+ case nsXPTType::T_I16 : dp->val.i16 = *((int16_t*) ap); break;
+ case nsXPTType::T_I32 : dp->val.i32 = *((int32_t*) ap); break;
+- case nsXPTType::T_I64 : dp->val.i64 = *((int64_t*) ap); ap++; break;
++ case nsXPTType::T_I64 : ap = DOUBLEWORD_ALIGN(ap);
++ dp->val.i64 = *((int64_t*) ap); ap++; break;
+ case nsXPTType::T_U8 : dp->val.u8 = *((uint8_t*) ap); break;
+ case nsXPTType::T_U16 : dp->val.u16 = *((uint16_t*)ap); break;
+ case nsXPTType::T_U32 : dp->val.u32 = *((uint32_t*)ap); break;
+- case nsXPTType::T_U64 : dp->val.u64 = *((uint64_t*)ap); ap++; break;
++ case nsXPTType::T_U64 : ap = DOUBLEWORD_ALIGN(ap);
++ dp->val.u64 = *((uint64_t*)ap); ap++; break;
+ case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break;
+- case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); ap++; break;
++ case nsXPTType::T_DOUBLE : ap = DOUBLEWORD_ALIGN(ap);
++ dp->val.d = *((double*) ap); ap++; break;
+ case nsXPTType::T_BOOL : dp->val.b = *((bool*) ap); break;
+ case nsXPTType::T_CHAR : dp->val.c = *((char*) ap); break;
+ case nsXPTType::T_WCHAR : dp->val.wc = *((wchar_t*) ap); break;
+@@ -71,9 +86,7 @@ PrepareAndDispatch(nsXPTCStubBase* self,
+ }
+ }
+
+- result = self->CallMethod((uint16_t)methodIndex, info, dispatchParams);
+-
+- NS_RELEASE(iface_info);
++ result = self->mOuter->CallMethod((uint16_t)methodIndex, info, dispatchParams);
+
+ if(dispatchParams != paramBuffer)
+ delete [] dispatchParams;
+@@ -82,26 +95,114 @@ PrepareAndDispatch(nsXPTCStubBase* self,
+ }
+
+ /*
+- * These stubs move just move the values passed in registers onto the stack,
+- * so they are contiguous with values passed on the stack, and then calls
+- * PrepareAndDispatch() to do the dirty work.
++ * This is our shared stub.
++ *
++ * r0 = Self.
++ *
++ * The Rules:
++ * We pass an (undefined) number of arguments into this function.
++ * The first 3 C++ arguments are in r1 - r3, the rest are built
++ * by the calling function on the stack.
++ *
++ * We are allowed to corrupt r0 - r3, ip, and lr.
++ *
++ * Other Info:
++ * We pass the stub number in using `ip'.
++ *
++ * Implementation:
++ * - We save r1 to r3 inclusive onto the stack, which will be
++ * immediately below the caller saved arguments.
++ * - setup r2 (PrepareAndDispatch's args pointer) to point at
++ * the base of all these arguments
++ * - Save LR (for the return address)
++ * - Set r1 (PrepareAndDispatch's methodindex argument) from ip
++ * - r0 is passed through (self)
++ * - Call PrepareAndDispatch
++ * - When the call returns, we return by loading the PC off the
++ * stack, and undoing the stack (one instruction)!
++ *
+ */
++__asm__ ("\n"
++ ".text\n"
++ ".align 2\n"
++ "SharedStub:\n"
++ CFI(".cfi_startproc\n")
++ "stmfd sp!, {r1, r2, r3}\n"
++ CFI(".cfi_def_cfa_offset 12\n")
++ CFI(".cfi_offset r3, -4\n")
++ CFI(".cfi_offset r2, -8\n")
++ CFI(".cfi_offset r1, -12\n")
++ "mov r2, sp\n"
++ "str lr, [sp, #-4]!\n"
++ CFI(".cfi_def_cfa_offset 16\n")
++ CFI(".cfi_offset lr, -16\n")
++ "mov r1, ip\n"
++ "bl _PrepareAndDispatch\n"
++ "ldr pc, [sp], #16\n"
++ CFI(".cfi_endproc\n"));
++
++/*
++ * Create sets of stubs to call the SharedStub.
++ * We don't touch the stack here, nor any registers, other than IP.
++ * IP is defined to be corruptable by a called function, so we are
++ * safe to use it.
++ *
++ * This will work with or without optimisation.
++ */
++
++/*
++ * Note : As G++3 ABI contains the length of the functionname in the
++ * mangled name, it is difficult to get a generic assembler mechanism like
++ * in the G++ 2.95 case.
++ * Create names would be like :
++ * _ZN14nsXPTCStubBase5Stub9Ev
++ * _ZN14nsXPTCStubBase6Stub13Ev
++ * _ZN14nsXPTCStubBase7Stub144Ev
++ * Use the assembler directives to get the names right...
++ */
++
++#define STUB_ENTRY(n) \
++ __asm__( \
++ ".section \".text\"\n" \
++" .align 2\n" \
++" .iflt ("#n" - 10)\n" \
++" .globl _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \
++" .type _ZN14nsXPTCStubBase5Stub"#n"Ev,#function\n" \
++"_ZN14nsXPTCStubBase5Stub"#n"Ev:\n" \
++" .else\n" \
++" .iflt ("#n" - 100)\n" \
++" .globl _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \
++" .type _ZN14nsXPTCStubBase6Stub"#n"Ev,#function\n" \
++"_ZN14nsXPTCStubBase6Stub"#n"Ev:\n" \
++" .else\n" \
++" .iflt ("#n" - 1000)\n" \
++" .globl _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \
++" .type _ZN14nsXPTCStubBase7Stub"#n"Ev,#function\n" \
++"_ZN14nsXPTCStubBase7Stub"#n"Ev:\n" \
++" .else\n" \
++" .err \"stub number "#n"> 1000 not yet supported\"\n" \
++" .endif\n" \
++" .endif\n" \
++" .endif\n" \
++" mov ip, #"#n"\n" \
++" b SharedStub\n\t");
++
++#if 0
++/*
++ * This part is left in as comment : this is how the method definition
++ * should look like.
++ */
++
++#define STUB_ENTRY(n) \
++nsresult nsXPTCStubBase::Stub##n () \
++{ \
++ __asm__ ( \
++" mov ip, #"#n"\n" \
++" b SharedStub\n\t"); \
++ return 0; /* avoid warnings */ \
++}
++#endif
+
+-#define STUB_ENTRY(n) \
+-__asm__( \
+- ".global _Stub"#n"__14nsXPTCStubBase\n\t" \
+-"_Stub"#n"__14nsXPTCStubBase:\n\t" \
+- "stmfd sp!, {r1, r2, r3} \n\t" \
+- "mov ip, sp \n\t" \
+- "stmfd sp!, {fp, ip, lr, pc} \n\t" \
+- "sub fp, ip, #4 \n\t" \
+- "mov r1, #"#n" \n\t" /* = methodIndex */ \
+- "add r2, sp, #16 \n\t" \
+- "bl _PrepareAndDispatch__FP14nsXPTCStubBaseUiPUi \n\t" \
+- "ldmea fp, {fp, sp, lr} \n\t" \
+- "add sp, sp, #12 \n\t" \
+- "mov pc, lr \n\t" \
+-);
+
+ #define SENTINEL_ENTRY(n) \
+ nsresult nsXPTCStubBase::Sentinel##n() \
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__asm__mips.S b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__mips.S
index 76e6cf7d161..cc251d21244 100644
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__asm__mips.S
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__mips.S
@@ -1,7 +1,7 @@
-$NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__asm__mips.S,v 1.1 2014/07/27 20:05:00 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__mips.S,v 1.1 2015/07/09 15:17:35 ryoon Exp $
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.S.orig 2014-07-18 00:05:57.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.S
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_asm_mips.S.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_asm_mips.S
@@ -14,6 +14,47 @@
#include <sys/asm.h>
#endif
diff --git a/mail/thunderbird/patches/patch-xc b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__sparc64__netbsd.s
index 756adb7395b..7ee77cea133 100644
--- a/mail/thunderbird/patches/patch-xc
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__sparc64__netbsd.s
@@ -1,9 +1,7 @@
-$NetBSD: patch-xc,v 1.5 2012/09/02 06:43:44 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__asm__sparc64__netbsd.s,v 1.1 2015/07/09 15:17:35 ryoon Exp $
-NetBSD/sparc64 xptcall support code. From pkgsrc/www/firefox3/files/
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc64_netbsd.s.orig 2012-08-31 13:21:49.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc64_netbsd.s
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_asm_sparc64_netbsd.s.orig 2015-07-06 19:52:50.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_asm_sparc64_netbsd.s
@@ -0,0 +1,66 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ *
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp
new file mode 100644
index 00000000000..efaaabdd763
--- /dev/null
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__gcc__x86__unix.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
+
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_gcc_x86_unix.cpp.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_gcc_x86_unix.cpp
+@@ -10,7 +10,7 @@
+ #include "xptc_gcc_x86_unix.h"
+
+ extern "C" {
+-static nsresult ATTRIBUTE_USED
++nsresult ATTRIBUTE_USED
+ __attribute__ ((regparm (3)))
+ PrepareAndDispatch(uint32_t methodIndex, nsXPTCStubBase* self, uint32_t* args)
+ {
diff --git a/mail/thunderbird/patches/patch-xf b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__netbsd__m68k.cpp
index 500d9a86cb8..e5640629908 100644
--- a/mail/thunderbird/patches/patch-xf
+++ b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__netbsd__m68k.cpp
@@ -1,9 +1,7 @@
-$NetBSD: patch-xf,v 1.5 2012/09/02 06:43:44 ryoon Exp $
+$NetBSD: patch-mozilla_xpcom_reflect_xptcall_md_unix_xptcstubs__netbsd__m68k.cpp,v 1.1 2015/07/09 15:17:35 ryoon Exp $
-NetBSD/m68k xptcall support code. From pkgsrc/www/firefox/patch-ae.
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp.orig 2012-08-25 00:31:36.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp
+--- mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_netbsd_m68k.cpp.orig 2015-06-08 17:49:34.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_netbsd_m68k.cpp
@@ -91,17 +91,27 @@ extern "C" {
}
}
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_moz.build b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_moz.build
deleted file mode 100644
index a424e9905f6..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_moz.build
+++ /dev/null
@@ -1,30 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_moz.build,v 1.2 2014/07/27 20:05:00 ryoon Exp $
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build.orig 2014-07-18 00:05:57.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build
-@@ -9,7 +9,7 @@ if CONFIG['OS_ARCH'] == 'Darwin':
- 'xptcinvoke_darwin.cpp',
- 'xptcstubs_darwin.cpp',
- ]
-- if CONFIG['OS_TEST'] == 'powerpc':
-+ if CONFIG['OS_TEST'] == 'ppc':
- SOURCES += [
- 'xptcinvoke_asm_ppc_rhapsody.s',
- ]
-@@ -19,14 +19,14 @@ if CONFIG['OS_ARCH'] == 'Darwin':
- if '86' in CONFIG['OS_TEST'] and CONFIG['OS_TEST'] != 'x86_64':
- DEFINES['MOZ_NEED_LEADING_UNDERSCORE'] = True
-
--if CONFIG['OS_ARCH'] in ('NetBSD', 'OpenBSD', 'GNU'):
-+if CONFIG['OS_ARCH'] in ('OpenBSD', 'GNU'):
- if CONFIG['CPU_ARCH'] == 'x86':
- SOURCES += [
- 'xptcinvoke_gcc_x86_unix.cpp',
- 'xptcstubs_gcc_x86_unix.cpp'
- ]
-
--if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD') or \
-+if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD', 'NetBSD', 'DragonFly') or \
- CONFIG['OS_ARCH'].startswith('GNU_'):
- if CONFIG['OS_TEST'] == 'x86_64':
- SOURCES += [
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp
deleted file mode 100644
index 624960dbae1..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp.orig 2013-10-23 22:09:22.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp
-@@ -9,7 +9,7 @@
- #include "xptc_gcc_x86_unix.h"
-
- extern "C" {
--static void ATTRIBUTE_USED __attribute__ ((regparm(3)))
-+void ATTRIBUTE_USED __attribute__ ((regparm(3)))
- invoke_copy_to_stack(uint32_t paramCount, nsXPTCVariant* s, uint32_t* d)
- {
- for(uint32_t i = paramCount; i >0; i--, d++, s++)
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp b/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp
deleted file mode 100644
index 8f6f1e13184..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp,v 1.1 2013/11/12 20:50:51 ryoon Exp $
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp.orig 2013-10-23 22:09:22.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
-@@ -10,7 +10,7 @@
- #include "xptc_gcc_x86_unix.h"
-
- extern "C" {
--static nsresult ATTRIBUTE_USED
-+nsresult ATTRIBUTE_USED
- __attribute__ ((regparm (3)))
- PrepareAndDispatch(uint32_t methodIndex, nsXPTCStubBase* self, uint32_t* args)
- {
diff --git a/mail/thunderbird/patches/patch-rc b/mail/thunderbird/patches/patch-rc
index f9e9fa106c6..d82cacc8acf 100644
--- a/mail/thunderbird/patches/patch-rc
+++ b/mail/thunderbird/patches/patch-rc
@@ -1,13 +1,15 @@
-$NetBSD: patch-rc,v 1.6 2012/09/02 06:43:43 ryoon Exp $
+$NetBSD: patch-rc,v 1.7 2015/07/09 15:17:35 ryoon Exp $
---- mozilla/browser/branding/unofficial/locales/en-US/brand.dtd.orig 2012-08-25 00:30:57.000000000 +0000
+--- mozilla/browser/branding/unofficial/locales/en-US/brand.dtd.orig 2015-06-08 17:49:18.000000000 +0000
+++ mozilla/browser/branding/unofficial/locales/en-US/brand.dtd
-@@ -2,7 +2,7 @@
+@@ -2,8 +2,8 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+-<!ENTITY brandShorterName "Mozilla Developer Preview">
-<!ENTITY brandShortName "Mozilla Developer Preview">
-<!ENTITY brandFullName "Mozilla Developer Preview">
++<!ENTITY brandShorterName "Browser">
+<!ENTITY brandShortName "Browser">
+<!ENTITY brandFullName "Browser">
<!ENTITY vendorShortName "mozilla.org">
diff --git a/mail/thunderbird/patches/patch-xg b/mail/thunderbird/patches/patch-xg
deleted file mode 100644
index ba863e251f7..00000000000
--- a/mail/thunderbird/patches/patch-xg
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD: patch-xg,v 1.5 2012/09/02 06:43:44 ryoon Exp $
-
-NetBSD/arm xptcall support code. From pkgsrc/www/firefox/patch-bm.
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm_netbsd.cpp.orig 2012-08-25 00:31:35.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm_netbsd.cpp
-@@ -86,18 +86,23 @@ PrepareAndDispatch(nsXPTCStubBase* self,
- * so they are contiguous with values passed on the stack, and then calls
- * PrepareAndDispatch() to do the dirty work.
- */
-+#ifndef __ELF__
-+#define SYMBOLPREFIX "_"
-+#else
-+#define SYMBOLPREFIX
-+#endif
-
- #define STUB_ENTRY(n) \
- __asm__( \
-- ".global _Stub"#n"__14nsXPTCStubBase\n\t" \
--"_Stub"#n"__14nsXPTCStubBase:\n\t" \
-+ ".global "SYMBOLPREFIX"Stub"#n"__14nsXPTCStubBase\n\t" \
-+SYMBOLPREFIX"Stub"#n"__14nsXPTCStubBase:\n\t" \
- "stmfd sp!, {r1, r2, r3} \n\t" \
- "mov ip, sp \n\t" \
- "stmfd sp!, {fp, ip, lr, pc} \n\t" \
- "sub fp, ip, #4 \n\t" \
- "mov r1, #"#n" \n\t" /* = methodIndex */ \
- "add r2, sp, #16 \n\t" \
-- "bl _PrepareAndDispatch__FP14nsXPTCStubBaseUiPUi \n\t" \
-+ "bl "SYMBOLPREFIX"PrepareAndDispatch__FP14nsXPTCStubBaseUiPUi \n\t" \
- "ldmea fp, {fp, sp, lr} \n\t" \
- "add sp, sp, #12 \n\t" \
- "mov pc, lr \n\t" \
diff --git a/mail/thunderbird/patches/patch-zb b/mail/thunderbird/patches/patch-zb
deleted file mode 100644
index 82752ba4261..00000000000
--- a/mail/thunderbird/patches/patch-zb
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-zb,v 1.8 2014/07/27 20:05:00 ryoon Exp $
-
---- mail/app/Makefile.in.orig 2014-07-18 00:04:05.000000000 +0000
-+++ mail/app/Makefile.in
-@@ -57,6 +57,10 @@ LOCAL_INCLUDES += \
- DEFINES += -DXPCOM_GLUE
- STL_FLAGS=
-
-+ifeq ($(OS_ARCH),NetBSD)
-+LIBS += -lossaudio
-+endif
-+
- LIBS += \
- $(XPCOM_STANDALONE_GLUE_LDOPTS) \
- $(NULL)
diff --git a/mail/thunderbird/patches/patch-zc b/mail/thunderbird/patches/patch-zc
index 2a90534f6b9..05dc8680c92 100644
--- a/mail/thunderbird/patches/patch-zc
+++ b/mail/thunderbird/patches/patch-zc
@@ -1,10 +1,10 @@
-$NetBSD: patch-zc,v 1.5 2012/10/12 18:28:59 ryoon Exp $
+$NetBSD: patch-zc,v 1.6 2015/07/09 15:17:35 ryoon Exp $
---- mail/app/nsMailApp.cpp.orig 2012-10-02 17:01:07.000000000 +0000
+--- mail/app/nsMailApp.cpp.orig 2015-06-08 17:40:39.000000000 +0000
+++ mail/app/nsMailApp.cpp
-@@ -12,6 +12,26 @@
- #include <sys/time.h>
+@@ -15,6 +15,26 @@
#include <sys/resource.h>
+ #include <unistd.h>
#endif
+/*
+ * On netbsd-4, ulimit -n is 64 by default; too few for us.
@@ -29,11 +29,11 @@ $NetBSD: patch-zc,v 1.5 2012/10/12 18:28:59 ryoon Exp $
#ifdef XP_MACOSX
#include "MacQuirks.h"
-@@ -115,6 +135,7 @@ static int do_main(const char *exePath,
-
- int main(int argc, char* argv[])
+@@ -218,6 +238,7 @@ FileExists(const char *path)
+ static nsresult
+ InitXPCOMGlue(const char *argv0, nsIFile **xreDirectory)
{
+ netbsd_fixrlimit();
char exePath[MAXPATHLEN];
- #ifdef XP_MACOSX
+ nsresult rv = mozilla::BinaryPath::Get(argv0, exePath);