summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);