summaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
authorryoon <ryoon@pkgsrc.org>2013-11-13 14:36:58 +0000
committerryoon <ryoon@pkgsrc.org>2013-11-13 14:36:58 +0000
commit31964e2e83338eec13ed8623068e4eb1fb6631ac (patch)
tree6e57296609ddd5c6583ff2e9679c69710c69e8ad /mail
parent64a5a834f4f26828ea4b96bbb4e8502ebcad1df0 (diff)
downloadpkgsrc-31964e2e83338eec13ed8623068e4eb1fb6631ac.tar.gz
Fix PR pkg/48240, bump PKGREVISION, and remove obsolete patches
* Use *30 instead of *50. Restore session is recovered on NetBSD/amd64 5.2. Based on martin@'s patch on pkgsrc-users@.
Diffstat (limited to 'mail')
-rw-r--r--mail/thunderbird/Makefile3
-rw-r--r--mail/thunderbird/distinfo4
-rw-r--r--mail/thunderbird/patches/patch-aa-toplevel58
-rw-r--r--mail/thunderbird/patches/patch-ab22
-rw-r--r--mail/thunderbird/patches/patch-ac82
-rw-r--r--mail/thunderbird/patches/patch-ad13
-rw-r--r--mail/thunderbird/patches/patch-ae58
-rw-r--r--mail/thunderbird/patches/patch-af32
-rw-r--r--mail/thunderbird/patches/patch-ag31
-rw-r--r--mail/thunderbird/patches/patch-aj20
-rw-r--r--mail/thunderbird/patches/patch-am17
-rw-r--r--mail/thunderbird/patches/patch-an48
-rw-r--r--mail/thunderbird/patches/patch-at13
-rw-r--r--mail/thunderbird/patches/patch-au30
-rw-r--r--mail/thunderbird/patches/patch-av40
-rw-r--r--mail/thunderbird/patches/patch-aw34
-rw-r--r--mail/thunderbird/patches/patch-ay46
-rw-r--r--mail/thunderbird/patches/patch-az19
-rw-r--r--mail/thunderbird/patches/patch-ba24
-rw-r--r--mail/thunderbird/patches/patch-bd28
-rw-r--r--mail/thunderbird/patches/patch-ipc_chromium_src_chrome_common_ipc__channel__posix.h13
-rw-r--r--mail/thunderbird/patches/patch-js_src_jscpucfg.h27
-rw-r--r--mail/thunderbird/patches/patch-md17
-rw-r--r--mail/thunderbird/patches/patch-me15
-rw-r--r--mail/thunderbird/patches/patch-mf18
-rw-r--r--mail/thunderbird/patches/patch-mg90
-rw-r--r--mail/thunderbird/patches/patch-mh13
-rw-r--r--mail/thunderbird/patches/patch-mi15
-rw-r--r--mail/thunderbird/patches/patch-mj15
-rw-r--r--mail/thunderbird/patches/patch-mk30
-rw-r--r--mail/thunderbird/patches/patch-mn15
-rw-r--r--mail/thunderbird/patches/patch-mozilla_content_media_nsAudioStream.cpp16
-rw-r--r--mail/thunderbird/patches/patch-mozilla_gfx_thebes_gfxPlatform.cpp36
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_dir__reader__bsd.h117
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_dir__reader__posix.h27
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_file__util.cc13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_message__loop.cc22
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_pickle.cc13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc372
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_ref__counted.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_thread__collision__warner.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_file__descriptor__set__posix.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_ipc__channel__posix.cc12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_ipc__message__utils.h22
-rw-r--r--mail/thunderbird/patches/patch-mozilla_ipc_glue_SharedMemorySysV.h13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jsgc.cpp17
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_jsinterp.cpp23
-rw-r--r--mail/thunderbird/patches/patch-mozilla_js_src_methodjit_MethodJIT.cpp13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_Makefile.in28
-rw-r--r--mail/thunderbird/patches/patch-mozilla_media_libsydneyaudio_src_sydney__audio__pulseaudio.c14
-rw-r--r--mail/thunderbird/patches/patch-mozilla_netwerk_protocol_http_HttpChannelParent.cpp18
-rw-r--r--mail/thunderbird/patches/patch-mozilla_storage_src_Makefile.in27
-rw-r--r--mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm12
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_Makefile.in15
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_idl-parser_Makefile.in13
-rw-r--r--mail/thunderbird/patches/patch-mozilla_xpcom_typelib_xpidl_Makefile.in15
-rw-r--r--mail/thunderbird/patches/patch-mp17
-rw-r--r--mail/thunderbird/patches/patch-pa11
-rw-r--r--mail/thunderbird/patches/patch-pd11
-rw-r--r--mail/thunderbird/patches/patch-pg14
-rw-r--r--mail/thunderbird/patches/patch-toolkit_toolkit-tiers.mk13
-rw-r--r--mail/thunderbird/patches/patch-xa119
-rw-r--r--mail/thunderbird/patches/patch-xd126
63 files changed, 11 insertions, 2087 deletions
diff --git a/mail/thunderbird/Makefile b/mail/thunderbird/Makefile
index 241524548ec..203f976f389 100644
--- a/mail/thunderbird/Makefile
+++ b/mail/thunderbird/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.126 2013/11/12 20:50:51 ryoon Exp $
+# $NetBSD: Makefile,v 1.127 2013/11/13 14:36:58 ryoon Exp $
DISTNAME= # empty
PKGNAME= thunderbird-${TB_VER}
+PKGREVISION= 1
TB_VER= 24.1.0
#LIGHTNINGVER= 1.9
CATEGORIES= mail
diff --git a/mail/thunderbird/distinfo b/mail/thunderbird/distinfo
index e1a96c53d7b..a3a9ef5bb6a 100644
--- a/mail/thunderbird/distinfo
+++ b/mail/thunderbird/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.129 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: distinfo,v 1.130 2013/11/13 14:36:58 ryoon Exp $
SHA1 (enigmail-1.6.tar.gz) = 51a7eb7d86ce24d8199f741a0079f0d56ecd6368
RMD160 (enigmail-1.6.tar.gz) = a854bb37a6a7f298f6cc268110dcb21d00909fa4
@@ -127,7 +127,7 @@ SHA1 (patch-mozilla_netwerk_wifi_nsWifiScannerFreeBSD.cpp) = 108fc8af8021919dc30
SHA1 (patch-mozilla_security_manager_ssl_src_JARSignatureVerification.cpp) = d28dc63c1c5bcf3994c7ee91562d04c7dd8daa40
SHA1 (patch-mozilla_security_manager_ssl_src_nsNSSComponent.cpp) = a881012bf1b40685fbc5f48bf5eaed50cef89f72
SHA1 (patch-mozilla_toolkit_components_osfile_osfile__unix__allthreads.jsm) = ab1c8931147d80ba26f9a763a93b3ae2784af3f0
-SHA1 (patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm) = f24de6e36aa4b650d7e8dd997eb014d6dddc9a64
+SHA1 (patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm) = 9cba10eb870334dcc2d070f827fb96adcd4506d3
SHA1 (patch-mozilla_toolkit_components_osfile_osfile__unix__front.jsm) = 3c49715e3f142210af928423fc9edae17cd03ec6
SHA1 (patch-mozilla_toolkit_mozapps_update_updater_updater.cpp) = 8af52f3746c697ab82f6d7d71bdbeb6a14183172
SHA1 (patch-mozilla_toolkit_toolkit.mozbuild) = e59924f8a7f1728ed80b71eb67276680fb31b611
diff --git a/mail/thunderbird/patches/patch-aa-toplevel b/mail/thunderbird/patches/patch-aa-toplevel
deleted file mode 100644
index 7f21eaf82c2..00000000000
--- a/mail/thunderbird/patches/patch-aa-toplevel
+++ /dev/null
@@ -1,58 +0,0 @@
-$NetBSD: patch-aa-toplevel,v 1.11 2013/05/08 09:14:30 sbd Exp $
-
---- configure.in.orig 2013-03-28 18:07:18.000000000 +0000
-+++ configure.in
-@@ -1797,7 +1797,7 @@ ld.])
- MOZ_FIX_LINK_PATHS='-Wl,-executable_path,$(LIBXUL_DIST)/bin'
- ;;
-
--*-freebsd*)
-+*-freebsd* | *-dragonfly*)
- if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then
- DLL_SUFFIX=".so.1.0"
- DSO_LDOPTS="-shared"
-@@ -1805,6 +1805,9 @@ ld.])
- if test ! "$GNU_CC"; then
- DSO_LDOPTS="-Bshareable $DSO_LDOPTS"
- fi
-+ if test "$LIBRUNPATH"; then
-+ DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
-+ fi
- ;;
-
- ia64*-hpux*)
-@@ -3019,6 +3022,9 @@ dnl ====================================
- case $target in
- *-hpux11.*)
- ;;
-+*-dragonfly*)
-+ AC_CHECK_LIB(c, gethostbyname_r)
-+ ;;
- *)
- AC_CHECK_LIB(c_r, gethostbyname_r)
- ;;
-@@ -3339,6 +3345,9 @@ AC_CACHE_CHECK(
- #ifdef linux
- #define _BSD_SOURCE 1
- #endif
-+ #ifdef __NetBSD__
-+ #error use of global _res variable in threaded programs is not portable
-+ #endif
- #include <resolv.h>
- ],
- [int foo = res_ninit(&_res);],
-@@ -4990,12 +4999,13 @@ dnl If using sydneyaudio with Linux, ens
- if test -n "$MOZ_SYDNEYAUDIO"; then
- case "$target_os" in
- linux*)
-- PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
-+ PKG_CHECK_MODULES(MOZ_ALSA, alsa, MOZ_ALSA=1,
- [echo "$MOZ_ALSA_PKG_ERRORS"
- AC_MSG_ERROR([Need alsa for Ogg or Wave decoding on Linux. Disable with --disable-ogg --disable-wave.])])
- ;;
- esac
- fi
-+AC_SUBST(MOZ_ALSA)
- AC_SUBST(MOZ_ALSA_LIBS)
-
- dnl ========================================================
diff --git a/mail/thunderbird/patches/patch-ab b/mail/thunderbird/patches/patch-ab
deleted file mode 100644
index 088ab5fc3ea..00000000000
--- a/mail/thunderbird/patches/patch-ab
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD: patch-ab,v 1.18 2012/09/02 06:43:39 ryoon Exp $
-
---- mozilla/nsprpub/pr/include/md/_netbsd.h.orig 2012-08-25 00:31:27.000000000 +0000
-+++ mozilla/nsprpub/pr/include/md/_netbsd.h
-@@ -47,7 +47,7 @@
- #define HAVE_DLL
- #define USE_DLFCN
- #define _PR_HAVE_SOCKADDR_LEN
--#define _PR_NO_LARGE_FILES
-+#define _PR_HAVE_LARGE_OFF_T
- #define _PR_STAT_HAS_ST_ATIMESPEC
- #define _PR_POLL_AVAILABLE
- #define _PR_USE_POLL
-@@ -75,6 +75,8 @@
- #define JB_SP_INDEX 2
- #elif defined(__mips__)
- #define JB_SP_INDEX 4
-+#elif defined(__amd64__)
-+#define JB_SP_INDEX 6
- #elif defined(__alpha__)
- #define JB_SP_INDEX 34
- #elif defined(__arm32__)
diff --git a/mail/thunderbird/patches/patch-ac b/mail/thunderbird/patches/patch-ac
deleted file mode 100644
index a9a43417378..00000000000
--- a/mail/thunderbird/patches/patch-ac
+++ /dev/null
@@ -1,82 +0,0 @@
-$NetBSD: patch-ac,v 1.15 2012/09/02 06:43:39 ryoon Exp $
-
---- mozilla/nsprpub/configure.in.orig 2012-08-25 00:31:27.000000000 +0000
-+++ mozilla/nsprpub/configure.in
-@@ -36,7 +36,7 @@ OBJDIR_NAME=.
- OBJDIR_SUFFIX=OBJ
- NSINSTALL='$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'
- NOSUCHFILE=/no-such-file
--LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)'
-+LIBNSPR='-Wl,-R${prefix}/lib/${MOZILLA_PKG_NAME} -L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)'
- LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)'
- CYGWIN_WRAPPER=
- MACOS_SDK_DIR=
-@@ -1519,6 +1519,33 @@ tools are selected during the Xcode/Deve
- DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
- MDCPUCFG_H=_freebsd.cfg
- PR_MD_CSRCS=freebsd.c
-+ if test "$LIBRUNPATH"; then
-+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-R$LIBRUNPATH"
-+ fi
-+ ;;
-+
-+*-dragonfly*)
-+ if test -z "$USE_NSPR_THREADS"; then
-+ USE_PTHREADS=1
-+ fi
-+ AC_DEFINE(XP_UNIX)
-+ AC_DEFINE(HAVE_BSD_FLOCK)
-+ AC_DEFINE(HAVE_SOCKLEN_T)
-+ CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
-+ MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ if test "$MOZ_OBJFORMAT" = "elf"; then
-+ DLL_SUFFIX=so
-+ else
-+ DLL_SUFFIX=so.1.0
-+ fi
-+ MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
-+ DSO_CFLAGS=-fPIC
-+ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
-+ MDCPUCFG_H=_dragonfly.cfg
-+ PR_MD_CSRCS=freebsd.c
-+ if test "$LIBRUNPATH"; then
-+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-R$LIBRUNPATH"
-+ fi
- ;;
-
- *-hpux*)
-@@ -2110,6 +2137,7 @@ mips-nec-sysv*)
- AC_DEFINE(XP_UNIX)
- AC_DEFINE(NETBSD)
- AC_DEFINE(HAVE_BSD_FLOCK)
-+ AC_DEFINE(HAVE_SOCKLEN_T)
- if test -z "$USE_NSPR_THREADS"; then
- USE_PTHREADS=1
- fi
-@@ -2918,7 +2946,7 @@ if test -n "$USE_PTHREADS"; then
- if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
- ac_cv_have_dash_pthread=yes
- case "$target_os" in
-- freebsd*)
-+ freebsd* | dragonfly*)
- # Freebsd doesn't use -pthread for compiles, it uses them for linking
- ;;
- *)
-@@ -2956,7 +2984,7 @@ if test -n "$USE_PTHREADS"; then
- _PTHREAD_LDFLAGS=
- fi
- ;;
-- *-freebsd*)
-+ *-freebsd* | *-dragonfly*)
- AC_DEFINE(_REENTRANT)
- AC_DEFINE(_THREAD_SAFE)
- dnl -pthread links in -lc_r, so don't specify it explicitly.
-@@ -3037,7 +3065,7 @@ case "$target" in
- AC_DEFINE(_PR_NEED_PTHREAD_INIT)
- fi
- ;;
--*-freebsd*)
-+*-freebsd* | *-dragonfly*)
- if test -n "$USE_NSPR_THREADS"; then
- AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
- fi
diff --git a/mail/thunderbird/patches/patch-ad b/mail/thunderbird/patches/patch-ad
deleted file mode 100644
index 282c4e0326a..00000000000
--- a/mail/thunderbird/patches/patch-ad
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ad,v 1.9 2012/09/02 06:43:39 ryoon Exp $
-
---- mozilla/xpcom/io/nsLocalFileUnix.h.orig 2012-08-25 00:31:35.000000000 +0000
-+++ mozilla/xpcom/io/nsLocalFileUnix.h
-@@ -52,7 +52,7 @@
- #endif
-
- // so we can statfs on freebsd
--#if defined(__FreeBSD__)
-+#if defined(__FreeBSD__) || ((defined(__DragonFly__) || defined(__NetBSD__)) && !defined(HAVE_STATVFS))
- #define HAVE_SYS_STATFS_H
- #define STATFS statfs
- #include <sys/param.h>
diff --git a/mail/thunderbird/patches/patch-ae b/mail/thunderbird/patches/patch-ae
deleted file mode 100644
index aa308cf5bc2..00000000000
--- a/mail/thunderbird/patches/patch-ae
+++ /dev/null
@@ -1,58 +0,0 @@
-$NetBSD: patch-ae,v 1.11 2012/09/02 06:43:39 ryoon Exp $
-
---- mozilla/nsprpub/pr/src/misc/prnetdb.c.orig 2012-08-25 00:31:27.000000000 +0000
-+++ mozilla/nsprpub/pr/src/misc/prnetdb.c
-@@ -73,7 +73,7 @@ PRLock *_pr_dnsLock = NULL;
- || defined(AIX4_3_PLUS) || (defined(AIX) && defined(_THREAD_SAFE)) \
- || (defined(HPUX10_10) && defined(_REENTRANT)) \
- || (defined(HPUX10_20) && defined(_REENTRANT)) \
-- || defined(OPENBSD)
-+ || defined(OPENBSD) || defined(NETBSD)
- #define _PR_HAVE_GETPROTO_R
- #define _PR_HAVE_GETPROTO_R_INT
- #endif
-@@ -83,6 +83,11 @@ PRLock *_pr_dnsLock = NULL;
- #define _PR_HAVE_5_ARG_GETPROTO_R
- #endif
-
-+#if __DragonFly_version >= 200202
-+#define _PR_HAVE_GETPROTO_R
-+#define _PR_HAVE_5_ARG_GETPROTO_R
-+#endif
-+
- /* BeOS has glibc but not the glibc-style getprotobyxxx_r functions. */
- #if (defined(__GLIBC__) && __GLIBC__ >= 2 && !defined(XP_BEOS))
- #define _PR_HAVE_GETPROTO_R
-@@ -300,7 +305,7 @@ _pr_QueryNetIfs(void)
- }
-
- #elif (defined(DARWIN) && defined(HAVE_GETIFADDRS)) || defined(FREEBSD) \
-- || defined(NETBSD) || defined(OPENBSD)
-+ || defined(NETBSD) || defined(OPENBSD) || defined(DRAGONFLY)
-
- /*
- * Use the BSD getifaddrs function.
-@@ -2044,6 +2049,11 @@ PR_IMPLEMENT(PRAddrInfo *) PR_GetAddrInf
- */
- hints.ai_socktype = SOCK_STREAM;
-
-+/* NetBSD >= 2.99.9 has a thread-safe resolver */
-+#if defined(__NetBSD_Version__) && __NetBSD_Version__ < 299000900
-+ LOCK_DNS();
-+#endif
-+
- rv = GETADDRINFO(hostname, NULL, &hints, &res);
- #ifdef AI_ADDRCONFIG
- if (rv == EAI_BADFLAGS && (hints.ai_flags & AI_ADDRCONFIG)) {
-@@ -2051,6 +2061,11 @@ PR_IMPLEMENT(PRAddrInfo *) PR_GetAddrInf
- rv = GETADDRINFO(hostname, NULL, &hints, &res);
- }
- #endif
-+
-+#if defined(__NetBSD_Version__) && __NetBSD_Version__ < 299000900
-+ UNLOCK_DNS();
-+#endif
-+
- if (rv == 0)
- return (PRAddrInfo *) res;
-
diff --git a/mail/thunderbird/patches/patch-af b/mail/thunderbird/patches/patch-af
deleted file mode 100644
index 501e210e532..00000000000
--- a/mail/thunderbird/patches/patch-af
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD: patch-af,v 1.11 2012/09/02 06:43:39 ryoon Exp $
-
---- mozilla/config/mkdepend/imakemdep.h.orig 2012-08-25 00:30:58.000000000 +0000
-+++ mozilla/config/mkdepend/imakemdep.h
-@@ -235,7 +235,7 @@ in this Software without prior written a
- #ifdef _CRAY
- #define DEFAULT_CPP "/lib/pcpp"
- #endif
--#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
-+#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
- #define DEFAULT_CPP "/usr/libexec/cpp"
- #endif
- #ifdef MACH
-@@ -273,7 +273,7 @@ char *cpp_argv[ARGUMENTS] = {
- #ifdef unix
- "-Uunix", /* remove unix symbol so that filename unix.c okay */
- #endif
--#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(MACH)
-+#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(MACH) || defined(__DragonFly__)
- # ifdef __i386__
- "-D__i386__",
- # endif
-@@ -713,6 +713,9 @@ struct symtab predefs[] = {
- #ifdef __sgi
- {"__sgi", "1"},
- #endif
-+#ifdef __DragonFly__
-+ {"__DragonFly__", "1"},
-+#endif
- #ifdef __FreeBSD__
- {"__FreeBSD__", "1"},
- #endif
diff --git a/mail/thunderbird/patches/patch-ag b/mail/thunderbird/patches/patch-ag
deleted file mode 100644
index c5550bf4e61..00000000000
--- a/mail/thunderbird/patches/patch-ag
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD: patch-ag,v 1.11 2012/09/02 06:43:39 ryoon Exp $
-
---- mozilla/nsprpub/pr/include/md/_freebsd.h.orig 2012-08-25 00:31:27.000000000 +0000
-+++ mozilla/nsprpub/pr/include/md/_freebsd.h
-@@ -47,7 +47,7 @@
- #define _PR_HAVE_LARGE_OFF_T
-
- #if defined(_PR_PTHREADS)
--#if __FreeBSD_version >= 400008
-+#if defined(__DragonFly__) || __FreeBSD_version >= 400008
- /*
- * libc_r before this version of FreeBSD doesn't have poll().
- * Although libc has poll(), it is not thread-safe so we can't
-@@ -56,7 +56,7 @@
- #define _PR_POLL_AVAILABLE
- #endif
- #else
--#if __FreeBSD_version >= 300000
-+#if defined(__DragonFly__) || __FreeBSD_version >= 300000
- #define _PR_POLL_AVAILABLE
- #define _PR_USE_POLL
- #endif
-@@ -65,7 +65,7 @@
- #define _PR_HAVE_SYSV_SEMAPHORES
- #define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
-
--#if __FreeBSD_version >= 400014
-+#if defined(__DragonFly__) || __FreeBSD_version >= 400014
- #define _PR_INET6
- #define _PR_HAVE_INET_NTOP
- #define _PR_HAVE_GETHOSTBYNAME2
diff --git a/mail/thunderbird/patches/patch-aj b/mail/thunderbird/patches/patch-aj
deleted file mode 100644
index 80c9b9ac78b..00000000000
--- a/mail/thunderbird/patches/patch-aj
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD: patch-aj,v 1.10 2012/09/02 06:43:39 ryoon Exp $
-
---- mozilla/profile/dirserviceprovider/src/nsProfileLock.cpp.orig 2012-08-25 00:31:27.000000000 +0000
-+++ mozilla/profile/dirserviceprovider/src/nsProfileLock.cpp
-@@ -391,6 +391,7 @@ nsresult nsProfileLock::LockWithSymlink(
- #endif
- sigfillset(&act.sa_mask);
-
-+#ifndef DEBUG
- #define CATCH_SIGNAL(signame) \
- PR_BEGIN_MACRO \
- if (sigaction(signame, NULL, &oldact) == 0 && \
-@@ -409,6 +410,7 @@ PR_BEGIN_MACRO
- CATCH_SIGNAL(SIGTERM);
-
- #undef CATCH_SIGNAL
-+#endif
- }
- }
- }
diff --git a/mail/thunderbird/patches/patch-am b/mail/thunderbird/patches/patch-am
deleted file mode 100644
index d56b03ce38e..00000000000
--- a/mail/thunderbird/patches/patch-am
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-am,v 1.7 2012/09/02 06:43:40 ryoon Exp $
-
-SHA1_Update conflicts with openssl which may be dynamically loaded
-at runtime via libcups or libgssapi so causing a crash due to using
-the wrong binding. So rename here to avoid conflict.
-
---- mozilla/security/nss/lib/freebl/blapi.h.orig 2012-08-25 00:31:29.000000000 +0000
-+++ mozilla/security/nss/lib/freebl/blapi.h
-@@ -1043,6 +1043,8 @@ extern void SHA1_DestroyContext(SHA1Cont
- */
- extern void SHA1_Begin(SHA1Context *cx);
-
-+#define SHA1_Update NSS_SHA1_Update
-+
- /*
- ** Update the SHA-1 hash function with more data.
- ** "cx" the context
diff --git a/mail/thunderbird/patches/patch-an b/mail/thunderbird/patches/patch-an
deleted file mode 100644
index 4592c7e5e86..00000000000
--- a/mail/thunderbird/patches/patch-an
+++ /dev/null
@@ -1,48 +0,0 @@
-$NetBSD: patch-an,v 1.8 2012/09/02 06:43:40 ryoon Exp $
-
-SHA1_Update conflicts with openssl which may be dynamically loaded
-at runtime via libcups or libgssapi so causing a crash due to using
-the wrong binding. So rename here to avoid conflict.
-
---- mozilla/security/nss/lib/freebl/sha-fast-amd64-sun.s.orig 2012-08-25 00:31:29.000000000 +0000
-+++ mozilla/security/nss/lib/freebl/sha-fast-amd64-sun.s
-@@ -1712,9 +1712,9 @@ shaCompress:
- .LFE7:
- .size shaCompress, .-shaCompress
- .align 16
--.globl SHA1_Update
-- .type SHA1_Update, @function
--SHA1_Update:
-+.globl NSS_SHA1_Update
-+ .type NSS_SHA1_Update, @function
-+NSS_SHA1_Update:
- .LFB5:
- pushq %rbp
- .LCFI5:
-@@ -1800,7 +1800,7 @@ SHA1_Update:
- call shaCompress
- jmp .L245
- .LFE5:
-- .size SHA1_Update, .-SHA1_Update
-+ .size NSS_SHA1_Update, .-NSS_SHA1_Update
- .section .rodata
- .align 32
- .type bulk_pad.0, @object
-@@ -1902,7 +1902,7 @@ SHA1_End:
- subl %r8d, %edx
- andl $63, %edx
- incl %edx
-- call SHA1_Update@PLT
-+ call NSS_SHA1_Update@PLT
- movq %rbx, %rdi
- movq %r12, %rsi
- shrq $32, %rdi
-@@ -2018,7 +2018,7 @@ SHA1_HashBuf:
- movl %r12d, %edx
- movq %r13, %rsi
- movq %rbx, %rdi
-- call SHA1_Update@PLT
-+ call NSS_SHA1_Update@PLT
- leaq -292(%rbp), %rdx
- movq %r14, %rsi
- movq %rbx, %rdi
diff --git a/mail/thunderbird/patches/patch-at b/mail/thunderbird/patches/patch-at
deleted file mode 100644
index 4d6d54c3381..00000000000
--- a/mail/thunderbird/patches/patch-at
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-at,v 1.10 2012/09/02 06:43:40 ryoon Exp $
-
---- mozilla/gfx/qcms/qcmstypes.h.orig 2012-08-25 00:31:09.000000000 +0000
-+++ mozilla/gfx/qcms/qcmstypes.h
-@@ -10,6 +10,8 @@
- #if defined (__SVR4) && defined (__sun)
- /* int_types.h gets included somehow, so avoid redefining the types differently */
- #include <sys/int_types.h>
-+#elif defined(__NetBSD__) || defined(__DragonFly__) || defined(__FreeBSD__)
-+#include <stdint.h>
- #elif defined (_AIX)
- #include <sys/types.h>
- #elif defined(__OpenBSD__)
diff --git a/mail/thunderbird/patches/patch-au b/mail/thunderbird/patches/patch-au
deleted file mode 100644
index 12bb2bc0edf..00000000000
--- a/mail/thunderbird/patches/patch-au
+++ /dev/null
@@ -1,30 +0,0 @@
-$NetBSD: patch-au,v 1.6 2012/09/02 06:43:40 ryoon Exp $
-
-- Fix device name on NetBSD
-- SOUND_VERSION just isn't a reliable way to detect features supported by
- particular OSS implementation.
-
---- mozilla/media/libsydneyaudio/src/sydney_audio_oss.c.orig 2012-08-25 00:31:24.000000000 +0000
-+++ mozilla/media/libsydneyaudio/src/sydney_audio_oss.c
-@@ -23,7 +23,7 @@
- // support only versions newer than 3.6.1
- #define SUPP_OSS_VERSION OSS_VERSION(3,0,1)
-
--#if (SOUND_VERSION < SUPP_OSS_VERSION)
-+#if 0 // (SOUND_VERSION < SUPP_OSS_VERSION)
- #error Unsupported OSS Version
- #else
-
-@@ -173,7 +173,12 @@ sa_stream_create_pcm(
- return SA_ERROR_SYSTEM;
- }
-
-+#if defined(__NetBSD__)
-+ /* XXX should use DEVOSSAUDIO provided by pkgsrc. */
-+ s->output_unit = "/dev/audio";
-+#else
- s->output_unit = "/dev/dsp";
-+#endif
- s->output_fd = -1;
- s->thread_id = 0;
- s->playing = 0;
diff --git a/mail/thunderbird/patches/patch-av b/mail/thunderbird/patches/patch-av
deleted file mode 100644
index 7d9f8713562..00000000000
--- a/mail/thunderbird/patches/patch-av
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD: patch-av,v 1.7 2012/09/02 06:43:40 ryoon Exp $
-
---- mozilla/xulrunner/app/nsXULRunnerApp.cpp.orig 2012-08-25 00:31:36.000000000 +0000
-+++ mozilla/xulrunner/app/nsXULRunnerApp.cpp
-@@ -6,6 +6,27 @@
- #include "nsXPCOMGlue.h"
- #include <stdio.h>
- #include <stdlib.h>
-+#include <sys/resource.h>
-+/*
-+ * On netbsd-4, ulimit -n is 64 by default; too few for us.
-+ */
-+static void netbsd_fixrlimit(void) {
-+ struct rlimit rlp;
-+ if (getrlimit(RLIMIT_NOFILE, &rlp) == -1) {
-+ fprintf(stderr, "warning: getrlimit failed\n");
-+ return;
-+ }
-+ if (rlp.rlim_cur >= 512)
-+ return;
-+ if (rlp.rlim_max < 512) {
-+ fprintf(stderr, "warning: hard limit of 'ulimit -n' too low\n");
-+ rlp.rlim_cur = rlp.rlim_max;
-+ }
-+ else
-+ rlp.rlim_cur = 512;
-+ if (setrlimit(RLIMIT_NOFILE, &rlp) == -1)
-+ fprintf(stderr, "warning: setrlimit failed\n");
-+}
- #ifdef XP_WIN
- #include <windows.h>
- #define snprintf _snprintf
-@@ -251,6 +272,7 @@ private:
-
- int main(int argc, char* argv[])
- {
-+ netbsd_fixrlimit();
- char exePath[MAXPATHLEN];
- nsresult rv = mozilla::BinaryPath::Get(argv[0], exePath);
- if (NS_FAILED(rv)) {
diff --git a/mail/thunderbird/patches/patch-aw b/mail/thunderbird/patches/patch-aw
deleted file mode 100644
index ad4c60079a9..00000000000
--- a/mail/thunderbird/patches/patch-aw
+++ /dev/null
@@ -1,34 +0,0 @@
-$NetBSD: patch-aw,v 1.13 2012/11/23 07:17:54 ryoon Exp $
-
---- mozilla/xulrunner/stub/nsXULStub.cpp.orig 2012-11-19 22:42:45.000000000 +0000
-+++ mozilla/xulrunner/stub/nsXULStub.cpp
-@@ -11,6 +11,29 @@
- #include "nsIFile.h"
-
- #include <stdarg.h>
-+#if defined(__NetBSD__)
-+#include <sys/resource.h>
-+/*
-+ * On netbsd-4, ulimit -n is 64 by default; too few for us.
-+ */
-+static void netbsd_fixrlimit(void) {
-+ struct rlimit rlp;
-+ if (getrlimit(RLIMIT_NOFILE, &rlp) == -1) {
-+ fprintf(stderr, "warning: getrlimit failed\n");
-+ return;
-+ }
-+ if (rlp.rlim_cur >= 512)
-+ return;
-+ if (rlp.rlim_max < 512) {
-+ fprintf(stderr, "warning: hard limit of 'ulimit -n' too low\n");
-+ rlp.rlim_cur = rlp.rlim_max;
-+ }
-+ else
-+ rlp.rlim_cur = 512;
-+ if (setrlimit(RLIMIT_NOFILE, &rlp) == -1)
-+ fprintf(stderr, "warning: setrlimit failed\n");
-+}
-+#endif
-
- #ifdef XP_WIN
- #include <windows.h>
diff --git a/mail/thunderbird/patches/patch-ay b/mail/thunderbird/patches/patch-ay
deleted file mode 100644
index aa7d2b15732..00000000000
--- a/mail/thunderbird/patches/patch-ay
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD: patch-ay,v 1.8 2012/09/02 06:43:40 ryoon Exp $
-
---- mozilla/browser/app/nsBrowserApp.cpp.orig 2012-08-25 00:30:56.000000000 +0000
-+++ mozilla/browser/app/nsBrowserApp.cpp
-@@ -14,6 +14,31 @@
- #include <sys/resource.h>
- #endif
-
-+#include <sys/resource.h>
-+
-+#ifdef __NetBSD__
-+/*
-+ * On netbsd-4, ulimit -n is 64 by default; too few for us.
-+ */
-+static void netbsd_fixrlimit(void) {
-+ struct rlimit rlp;
-+ if (getrlimit(RLIMIT_NOFILE, &rlp) == -1) {
-+ fprintf(stderr, "warning: getrlimit failed\n");
-+ return;
-+ }
-+ if (rlp.rlim_cur >= 512)
-+ return;
-+ if (rlp.rlim_max < 512) {
-+ fprintf(stderr, "warning: hard limit of 'ulimit -n' too low\n");
-+ rlp.rlim_cur = rlp.rlim_max;
-+ }
-+ else
-+ rlp.rlim_cur = 512;
-+ if (setrlimit(RLIMIT_NOFILE, &rlp) == -1)
-+ fprintf(stderr, "warning: setrlimit failed\n");
-+}
-+#endif
-+
- #ifdef XP_MACOSX
- #include "MacQuirks.h"
- #endif
-@@ -196,6 +221,9 @@ int main(int argc, char* argv[])
- #ifdef XP_MACOSX
- TriggerQuirks();
- #endif
-+#ifdef __NetBSD__
-+ netbsd_fixrlimit();
-+#endif
-
- nsresult rv = mozilla::BinaryPath::Get(argv[0], exePath);
- if (NS_FAILED(rv)) {
diff --git a/mail/thunderbird/patches/patch-az b/mail/thunderbird/patches/patch-az
deleted file mode 100644
index c2fc0a77edd..00000000000
--- a/mail/thunderbird/patches/patch-az
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD: patch-az,v 1.5 2012/09/02 06:43:40 ryoon Exp $
-
---- mozilla/nsprpub/pr/src/pthreads/ptthread.c.orig 2012-08-25 00:31:27.000000000 +0000
-+++ mozilla/nsprpub/pr/src/pthreads/ptthread.c
-@@ -1038,12 +1038,12 @@ PR_IMPLEMENT(void) PR_ProcessExit(PRIntn
- _exit(status);
- }
-
--PR_IMPLEMENT(PRUint32) PR_GetThreadID(PRThread *thred)
-+PR_IMPLEMENT(pthread_t) PR_GetThreadID(PRThread *thred)
- {
- #if defined(_PR_DCETHREADS)
- return (PRUint32)&thred->id; /* this is really a sham! */
- #else
-- return (PRUint32)thred->id; /* and I don't know what they will do with it */
-+ return thred->id; /* and I don't know what they will do with it */
- #endif
- }
-
diff --git a/mail/thunderbird/patches/patch-ba b/mail/thunderbird/patches/patch-ba
deleted file mode 100644
index d42d923b11a..00000000000
--- a/mail/thunderbird/patches/patch-ba
+++ /dev/null
@@ -1,24 +0,0 @@
-$NetBSD: patch-ba,v 1.12 2012/09/02 06:43:40 ryoon Exp $
-
-pthread_t may be 64-bit, avoid casting it.
-
---- mozilla/nsprpub/pr/include/private/pprthred.h.orig 2012-08-25 00:31:27.000000000 +0000
-+++ mozilla/nsprpub/pr/include/private/pprthred.h
-@@ -19,6 +19,8 @@
- #include <os2.h>
- #endif
-
-+#include <pthread.h>
-+
- PR_BEGIN_EXTERN_C
-
- /*---------------------------------------------------------------------------
-@@ -59,7 +61,7 @@ NSPR_API(void) PR_DetachThread(void);
- ** Get the id of the named thread. Each thread is assigned a unique id
- ** when it is created or attached.
- */
--NSPR_API(PRUint32) PR_GetThreadID(PRThread *thread);
-+NSPR_API(pthread_t) PR_GetThreadID(PRThread *thread);
-
- /*
- ** Set the procedure that is called when a thread is dumped. The procedure
diff --git a/mail/thunderbird/patches/patch-bd b/mail/thunderbird/patches/patch-bd
deleted file mode 100644
index be3c824a451..00000000000
--- a/mail/thunderbird/patches/patch-bd
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD: patch-bd,v 1.5 2012/09/02 06:43:40 ryoon Exp $
-
---- mozilla/js/src/ctypes/CTypes.cpp.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/js/src/ctypes/CTypes.cpp
-@@ -5,6 +5,23 @@
-
- #include "mozilla/FloatingPoint.h"
-
-+#if defined(__NetBSD__)
-+#include <stdint.h>
-+/* XXX why do we have those funky __ #defines in stdint.h? */
-+#warning this is a retarded workaround
-+#define uint8_t uint8_t
-+#define uint16_t uint16_t
-+#define uint32_t uint32_t
-+#define uint64_t uint64_t
-+#define int8_t int8_t
-+#define int16_t int16_t
-+#define int32_t int32_t
-+#define int64_t int64_t
-+#define intptr_t intptr_t
-+#define uintptr_t uintptr_t
-+#define off_t off_t
-+#endif
-+
- #include "CTypes.h"
- #include "Library.h"
- #include "jsnum.h"
diff --git a/mail/thunderbird/patches/patch-ipc_chromium_src_chrome_common_ipc__channel__posix.h b/mail/thunderbird/patches/patch-ipc_chromium_src_chrome_common_ipc__channel__posix.h
deleted file mode 100644
index 482e2c28c97..00000000000
--- a/mail/thunderbird/patches/patch-ipc_chromium_src_chrome_common_ipc__channel__posix.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ipc_chromium_src_chrome_common_ipc__channel__posix.h,v 1.4 2012/09/02 06:43:40 ryoon Exp $
-
---- mozilla/ipc/chromium/src/chrome/common/ipc_channel_posix.h.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/ipc/chromium/src/chrome/common/ipc_channel_posix.h
-@@ -95,7 +95,7 @@ class Channel::ChannelImpl : public Mess
- };
-
- // This is a control message buffer large enough to hold kMaxReadFDs
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_NETBSD)
- // TODO(agl): OSX appears to have non-constant CMSG macros!
- char input_cmsg_buf_[1024];
- #else
diff --git a/mail/thunderbird/patches/patch-js_src_jscpucfg.h b/mail/thunderbird/patches/patch-js_src_jscpucfg.h
deleted file mode 100644
index f8b1933e959..00000000000
--- a/mail/thunderbird/patches/patch-js_src_jscpucfg.h
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD: patch-js_src_jscpucfg.h,v 1.3 2012/09/02 06:43:40 ryoon Exp $
-
-
---- mozilla/js/src/jscpucfg.h.orig 2012-08-25 00:31:12.000000000 +0000
-+++ mozilla/js/src/jscpucfg.h
-@@ -44,6 +44,21 @@
- # define IS_BIG_ENDIAN 1
- # endif
-
-+#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__MirBSD__) || defined(__DragonFly__)
-+#include <sys/endian.h>
-+
-+#if defined(_BYTE_ORDER)
-+#if _BYTE_ORDER == _LITTLE_ENDIAN
-+#define IS_LITTLE_ENDIAN 1
-+#undef IS_BIG_ENDIAN
-+#elif _BYTE_ORDER == _BIG_ENDIAN
-+#undef IS_LITTLE_ENDIAN
-+#define IS_BIG_ENDIAN 1
-+#endif
-+#else /* !defined(_BYTE_ORDER) */
-+#error "sys/endian.h does not define _BYTE_ORDER. Cannot determine endianness."
-+#endif
-+
- #elif defined(JS_HAVE_ENDIAN_H)
- # include <endian.h>
-
diff --git a/mail/thunderbird/patches/patch-md b/mail/thunderbird/patches/patch-md
deleted file mode 100644
index b5a2671f20d..00000000000
--- a/mail/thunderbird/patches/patch-md
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-md,v 1.5 2012/09/02 06:43:41 ryoon Exp $
-
-???. from www/firefox/patch-ax.
-
---- mozilla/security/coreconf/SunOS5.mk.orig 2012-08-25 00:31:28.000000000 +0000
-+++ mozilla/security/coreconf/SunOS5.mk
-@@ -147,6 +147,10 @@ endif
- endif
- DSO_LDOPTS += -z combreloc -z defs -z ignore
-
-+ifdef LIBRUNPATH
-+DSO_LDOPTS += -R$(LIBRUNPATH)
-+endif
-+
- # -KPIC generates position independent code for use in shared libraries.
- # (Similarly for -fPIC in case of gcc.)
- ifdef NS_USE_GCC
diff --git a/mail/thunderbird/patches/patch-me b/mail/thunderbird/patches/patch-me
deleted file mode 100644
index cc2090141e8..00000000000
--- a/mail/thunderbird/patches/patch-me
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-me,v 1.7 2012/09/02 06:43:41 ryoon Exp $
-
-Add DragonFly support.
-
---- mozilla/security/nss/lib/freebl/Makefile.orig 2012-08-25 00:31:29.000000000 +0000
-+++ mozilla/security/nss/lib/freebl/Makefile
-@@ -279,7 +279,7 @@ endif
- # to bind the blapi function references in FREEBLVector vector
- # (ldvector.c) to the blapi functions defined in the freebl
- # shared libraries.
--ifeq (,$(filter-out BSD_OS FreeBSD Linux NetBSD OpenBSD, $(OS_TARGET)))
-+ifeq (,$(filter-out BSD_OS DragonFly FreeBSD Linux NetBSD OpenBSD, $(OS_TARGET)))
- MKSHLIB += -Wl,-Bsymbolic
- endif
-
diff --git a/mail/thunderbird/patches/patch-mf b/mail/thunderbird/patches/patch-mf
deleted file mode 100644
index 70d843dd032..00000000000
--- a/mail/thunderbird/patches/patch-mf
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-mf,v 1.8 2013/04/09 20:23:05 ryoon Exp $
-
---- mozilla/security/coreconf/config.mk.orig 2013-03-28 18:09:07.000000000 +0000
-+++ mozilla/security/coreconf/config.mk
-@@ -31,7 +31,7 @@ endif
- #######################################################################
-
- TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \
-- AIX RISCOS WINNT WIN95 Linux Android
-+ AIX RISCOS WINNT WIN95 Linux Android DragonFly
-
- ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET)))
- include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk
-@@ -175,3 +175,4 @@ endif
- DEFINES += -DUSE_UTIL_DIRECTLY
- USE_UTIL_DIRECTLY = 1
-
-+EXTRA_SHARED_LIBS += -Wl,-R${PREFIX}/lib/${MOZILLA_PKG_NAME}
diff --git a/mail/thunderbird/patches/patch-mg b/mail/thunderbird/patches/patch-mg
deleted file mode 100644
index 384ca4a0ff8..00000000000
--- a/mail/thunderbird/patches/patch-mg
+++ /dev/null
@@ -1,90 +0,0 @@
-$NetBSD: patch-mg,v 1.5 2012/09/02 06:43:41 ryoon Exp $
-
-Add DragonFly support.
-
---- mozilla/security/coreconf/DragonFly.mk.orig 2012-08-31 13:21:43.000000000 +0000
-+++ mozilla/security/coreconf/DragonFly.mk
-@@ -0,0 +1,83 @@
-+#
-+# The contents of this file are subject to the Mozilla Public
-+# License Version 1.1 (the "License"); you may not use this file
-+# except in compliance with the License. You may obtain a copy of
-+# the License at http://www.mozilla.org/MPL/
-+#
-+# Software distributed under the License is distributed on an "AS
-+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+# implied. See the License for the specific language governing
-+# rights and limitations under the License.
-+#
-+# The Original Code is the Netscape security libraries.
-+#
-+# The Initial Developer of the Original Code is Netscape
-+# Communications Corporation. Portions created by Netscape are
-+# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+# Rights Reserved.
-+#
-+# Contributor(s):
-+#
-+# Alternatively, the contents of this file may be used under the
-+# terms of the GNU General Public License Version 2 or later (the
-+# "GPL"), in which case the provisions of the GPL are applicable
-+# instead of those above. If you wish to allow use of your
-+# version of this file only under the terms of the GPL and not to
-+# allow others to use your version of this file under the MPL,
-+# indicate your decision by deleting the provisions above and
-+# replace them with the notice and other provisions required by
-+# the GPL. If you do not delete the provisions above, a recipient
-+# may use your version of this file under either the MPL or the
-+# GPL.
-+#
-+# Config stuff for DragonFly
-+#
-+
-+include $(CORE_DEPTH)/coreconf/UNIX.mk
-+
-+DEFAULT_COMPILER = gcc
-+CC = gcc
-+CCC = g++
-+RANLIB = ranlib
-+
-+ifeq ($(OS_TEST),alpha)
-+CPU_ARCH = alpha
-+else
-+CPU_ARCH = x86
-+endif
-+
-+OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
-+
-+DSO_CFLAGS = -fPIC
-+DSO_LDOPTS = -shared -Wl,-soname -Wl,$(notdir $@)
-+
-+#
-+# The default implementation strategy for FreeBSD is pthreads.
-+#
-+ifndef CLASSIC_NSPR
-+USE_PTHREADS = 1
-+DEFINES += -D_THREAD_SAFE -D_REENTRANT
-+OS_LIBS += -pthread
-+DSO_LDOPTS += -pthread
-+endif
-+
-+ARCH = freebsd
-+
-+MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo aout)
-+
-+DLL_SUFFIX = so
-+
-+ifdef LIBRUNPATH
-+DSO_LDOPTS += -Wl,-R$(LIBRUNPATH)
-+endif
-+
-+MKSHLIB = $(CC) $(DSO_LDOPTS)
-+ifdef MAPFILE
-+# Add LD options to restrict exported symbols to those in the map file
-+endif
-+# Change PROCESS to put the mapfile in the correct format for this platform
-+PROCESS_MAP_FILE = cp $(LIBRARY_NAME).def $@
-+
-+G++INCLUDES = -I/usr/include/g++
-+
-+INCLUDES += -I/usr/X11R6/include
diff --git a/mail/thunderbird/patches/patch-mh b/mail/thunderbird/patches/patch-mh
deleted file mode 100644
index 1e927db144d..00000000000
--- a/mail/thunderbird/patches/patch-mh
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mh,v 1.4 2012/09/02 06:43:41 ryoon Exp $
-
---- mozilla/security/nss/lib/Makefile.orig 2012-08-25 00:31:29.000000000 +0000
-+++ mozilla/security/nss/lib/Makefile
-@@ -70,7 +70,7 @@ endif
-
- ifndef MOZILLA_CLIENT
- ifeq ($(OS_ARCH),Linux)
--SYSINIT_SRCDIR = sysinit # Add the sysinit directory to DIRS.
-+#SYSINIT_SRCDIR = sysinit # Add the sysinit directory to DIRS.
- endif
- endif
-
diff --git a/mail/thunderbird/patches/patch-mi b/mail/thunderbird/patches/patch-mi
deleted file mode 100644
index 68fe7badc1f..00000000000
--- a/mail/thunderbird/patches/patch-mi
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mi,v 1.6 2012/11/23 07:17:54 ryoon Exp $
-
-Add DragonFly support.
-
---- mozilla/config/config.mk.orig 2012-11-19 22:42:12.000000000 +0000
-+++ mozilla/config/config.mk
-@@ -92,7 +92,7 @@ AUTOCONF_TOOLS = $(topsrcdir)/build/auto
- # but save the version to allow multiple versions of the same base
- # platform to be built in the same tree.
- #
--ifneq (,$(filter FreeBSD HP-UX Linux NetBSD OpenBSD SunOS,$(OS_ARCH)))
-+ifneq (,$(filter DragonFly FreeBSD HP-UX Linux NetBSD OpenBSD SunOS,$(OS_ARCH)))
- OS_RELEASE := $(basename $(OS_RELEASE))
-
- # Allow the user to ignore the OS_VERSION, which is usually irrelevant.
diff --git a/mail/thunderbird/patches/patch-mj b/mail/thunderbird/patches/patch-mj
deleted file mode 100644
index 0daac9d00b7..00000000000
--- a/mail/thunderbird/patches/patch-mj
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mj,v 1.5 2012/09/02 06:43:41 ryoon Exp $
-
-Add DragonFly support.
-
---- mozilla/security/coreconf/arch.mk.orig 2012-08-25 00:31:28.000000000 +0000
-+++ mozilla/security/coreconf/arch.mk
-@@ -146,7 +146,7 @@ endif
- # IRIX 6.5-ALPHA-1289139620.
- #
-
--ifeq (,$(filter-out Linux FreeBSD IRIX,$(OS_ARCH)))
-+ifeq (,$(filter-out Linux DragonFly FreeBSD IRIX,$(OS_ARCH)))
- OS_RELEASE := $(shell echo $(OS_RELEASE) | sed 's/-.*//')
- endif
-
diff --git a/mail/thunderbird/patches/patch-mk b/mail/thunderbird/patches/patch-mk
deleted file mode 100644
index e6415d3c908..00000000000
--- a/mail/thunderbird/patches/patch-mk
+++ /dev/null
@@ -1,30 +0,0 @@
-$NetBSD: patch-mk,v 1.8 2012/11/23 11:08:06 ryoon Exp $
-
-Treat DragonFly like FreeBSD.
-
---- mozilla/config/rules.mk.orig 2012-08-25 00:30:58.000000000 +0000
-+++ mozilla/config/rules.mk
-@@ -454,6 +454,12 @@ EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
- endif
- endif
-
-+ifeq ($(OS_ARCH),DragonFly)
-+ifdef IS_COMPONENT
-+EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
-+endif
-+endif
-+
- ifeq ($(OS_ARCH),NetBSD)
- ifneq (,$(filter arc cobalt hpcmips mipsco newsmips pmax sgimips,$(OS_TEST)))
- ifeq ($(MODULE),layout)
-@@ -463,6 +469,10 @@ endif
- endif
- endif
-
-+ifeq ($(OS_ARCH),NetBSD)
-+EXTRA_DSO_LDOPTS += -Wl,-rpath,${PREFIX}/lib/thunderbird
-+endif
-+
- #
- # HP-UXBeOS specific section: for COMPONENTS only, add -Bsymbolic flag
- # which uses internal symbols first
diff --git a/mail/thunderbird/patches/patch-mn b/mail/thunderbird/patches/patch-mn
deleted file mode 100644
index cd74d261e32..00000000000
--- a/mail/thunderbird/patches/patch-mn
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mn,v 1.6 2012/09/02 06:43:41 ryoon Exp $
-
-Make sure we link correctly with sqlite3 from pkgsrc.
-
---- mozilla/security/nss/lib/softoken/config.mk.orig 2012-08-25 00:31:30.000000000 +0000
-+++ mozilla/security/nss/lib/softoken/config.mk
-@@ -80,7 +80,7 @@ else
- # $(EXTRA_SHARED_LIBS) come before $(OS_LIBS), except on AIX.
- EXTRA_SHARED_LIBS += \
- -L$(DIST)/lib \
-- -l$(SQLITE_LIB_NAME) \
-+ `pkg-config --libs sqlite3` \
- -L$(NSSUTIL_LIB_DIR) \
- -lnssutil3 \
- -L$(NSPR_LIB_DIR) \
diff --git a/mail/thunderbird/patches/patch-mozilla_content_media_nsAudioStream.cpp b/mail/thunderbird/patches/patch-mozilla_content_media_nsAudioStream.cpp
deleted file mode 100644
index 21e91dfda89..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_content_media_nsAudioStream.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-mozilla_content_media_nsAudioStream.cpp,v 1.1 2012/11/23 07:17:54 ryoon Exp $
-
---- mozilla/content/media/nsAudioStream.cpp.orig 2012-11-19 22:42:14.000000000 +0000
-+++ mozilla/content/media/nsAudioStream.cpp
-@@ -298,7 +298,11 @@ static int PrefChanged(const char* aPref
- gVolumeScale = NS_MAX<double>(0, PR_strtod(utf8.get(), nullptr));
- }
- } else if (strcmp(aPref, PREF_USE_CUBEB) == 0) {
-+#if defined(__FreeBSD__) && __FreeBSD_version < 800097
-+ bool value = Preferences::GetBool(aPref, false);
-+#else
- bool value = Preferences::GetBool(aPref, true);
-+#endif
- mozilla::MutexAutoLock lock(*gAudioPrefsLock);
- gUseCubeb = value;
- } else if (strcmp(aPref, PREF_CUBEB_LATENCY) == 0) {
diff --git a/mail/thunderbird/patches/patch-mozilla_gfx_thebes_gfxPlatform.cpp b/mail/thunderbird/patches/patch-mozilla_gfx_thebes_gfxPlatform.cpp
deleted file mode 100644
index 2caed5e709d..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_gfx_thebes_gfxPlatform.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-$NetBSD: patch-mozilla_gfx_thebes_gfxPlatform.cpp,v 1.2 2012/09/02 06:43:41 ryoon Exp $
-
---- mozilla/gfx/thebes/gfxPlatform.cpp.orig 2012-08-25 00:31:09.000000000 +0000
-+++ mozilla/gfx/thebes/gfxPlatform.cpp
-@@ -443,6 +443,7 @@ void SourceBufferDestroy(void *srcBuffer
- static_cast<SourceSurface*>(srcBuffer)->Release();
- }
-
-+#ifdef MOZ_TREE_CAIRO
- void SourceSnapshotDetached(cairo_surface_t *nullSurf)
- {
- gfxImageSurface* origSurf =
-@@ -450,6 +451,7 @@ void SourceSnapshotDetached(cairo_surfac
-
- origSurf->SetData(&kSourceSurface, NULL, NULL);
- }
-+#endif
-
- RefPtr<SourceSurface>
- gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface)
-@@ -544,6 +546,7 @@ gfxPlatform::GetSourceSurfaceForSurface(
-
- }
-
-+ #ifdef MOZ_TREE_CAIRO
- cairo_surface_t *nullSurf =
- cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
- cairo_surface_set_user_data(nullSurf,
-@@ -552,6 +555,7 @@ gfxPlatform::GetSourceSurfaceForSurface(
- NULL);
- cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached);
- cairo_surface_destroy(nullSurf);
-+ #endif
- }
-
- srcBuffer->AddRef();
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_dir__reader__bsd.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_dir__reader__bsd.h
deleted file mode 100644
index 0ccb18697e9..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_dir__reader__bsd.h
+++ /dev/null
@@ -1,117 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_dir__reader__bsd.h,v 1.3 2012/09/03 15:27:31 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/dir_reader_bsd.h.orig 2012-09-03 10:39:55.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/dir_reader_bsd.h
-@@ -0,0 +1,112 @@
-+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// derived from dir_reader_linux.h
-+
-+#ifndef BASE_DIR_READER_BSD_H_
-+#define BASE_DIR_READER_BSD_H_
-+#pragma once
-+
-+#include <dirent.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <stdint.h>
-+#include <unistd.h>
-+
-+#include "base/logging.h"
-+#include "base/eintr_wrapper.h"
-+
-+// See the comments in dir_reader_posix.h about this.
-+
-+namespace base {
-+
-+class DirReaderBSD {
-+ public:
-+ explicit DirReaderBSD(const char* directory_path)
-+#ifdef O_DIRECTORY
-+ : fd_(open(directory_path, O_RDONLY | O_DIRECTORY)),
-+#else
-+ : fd_(open(directory_path, O_RDONLY)),
-+#endif
-+ offset_(0),
-+ size_(0) {
-+ memset(buf_, 0, sizeof(buf_));
-+ }
-+
-+ ~DirReaderBSD() {
-+ if (fd_ >= 0) {
-+ if (HANDLE_EINTR(close(fd_)))
-+ DLOG(ERROR) << "Failed to close directory handle";
-+ }
-+ }
-+
-+ bool IsValid() const {
-+ return fd_ >= 0;
-+ }
-+
-+ // Move to the next entry returning false if the iteration is complete.
-+ bool Next() {
-+ if (size_) {
-+ struct dirent* dirent = reinterpret_cast<struct dirent*>(&buf_[offset_]);
-+#ifdef OS_DRAGONFLY
-+ offset_ += _DIRENT_DIRSIZ(dirent);
-+#else
-+ offset_ += dirent->d_reclen;
-+#endif
-+ }
-+
-+ if (offset_ != size_)
-+ return true;
-+
-+#ifdef OS_OPENBSD
-+ const int r = getdirentries(fd_, buf_, sizeof(buf_), basep_);
-+#else
-+ const int r = getdents(fd_, buf_, sizeof(buf_));
-+#endif
-+ if (r == 0)
-+ return false;
-+ if (r == -1) {
-+#ifdef OS_OPENBSD
-+ DLOG(ERROR) << "getdirentries returned an error: " << errno;
-+#else
-+ DLOG(ERROR) << "getdents returned an error: " << errno;
-+#endif
-+ return false;
-+ }
-+ size_ = r;
-+ offset_ = 0;
-+ return true;
-+ }
-+
-+ const char* name() const {
-+ if (!size_)
-+ return NULL;
-+
-+ const struct dirent* dirent =
-+ reinterpret_cast<const struct dirent*>(&buf_[offset_]);
-+ return dirent->d_name;
-+ }
-+
-+ int fd() const {
-+ return fd_;
-+ }
-+
-+ static bool IsFallback() {
-+ return false;
-+ }
-+
-+ private:
-+ const int fd_;
-+ char buf_[512];
-+#ifdef OS_OPENBSD
-+ off_t *basep_;
-+#endif
-+ size_t offset_, size_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(DirReaderBSD);
-+};
-+
-+} // namespace base
-+
-+#endif // BASE_DIR_READER_BSD_H_
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_dir__reader__posix.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_dir__reader__posix.h
deleted file mode 100644
index 635cdd3f0c7..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_dir__reader__posix.h
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_dir__reader__posix.h,v 1.1 2012/09/02 06:43:41 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/dir_reader_posix.h.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/dir_reader_posix.h
-@@ -18,16 +18,20 @@
- // seems worse than falling back to enumerating all file descriptors so we will
- // probably never implement this on the Mac.
-
--#if defined(OS_LINUX) && !defined(OS_OPENBSD)
-+#if defined(OS_LINUX)
- #include "base/dir_reader_linux.h"
-+#elif defined(OS_BSD)
-+#include "base/dir_reader_bsd.h"
- #else
- #include "base/dir_reader_fallback.h"
- #endif
-
- namespace base {
-
--#if defined(OS_LINUX) && !defined(OS_OPENBSD)
-+#if defined(OS_LINUX)
- typedef DirReaderLinux DirReaderPosix;
-+#elif defined(OS_BSD)
-+typedef DirReaderBSD DirReaderPosix;
- #else
- typedef DirReaderFallback DirReaderPosix;
- #endif
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_file__util.cc b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_file__util.cc
deleted file mode 100644
index 56e403e4d80..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_file__util.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_file__util.cc,v 1.1 2013/07/13 19:33:19 joerg Exp $
-
---- mozilla/ipc/chromium/src/base/file_util.cc.orig 2013-07-12 14:40:54.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/file_util.cc
-@@ -194,7 +194,7 @@ bool ReadFileToString(const FilePath& pa
- FILE* CreateAndOpenTemporaryFile(FilePath* path) {
- FilePath directory;
- if (!GetTempDir(&directory))
-- return false;
-+ return NULL;
-
- return CreateAndOpenTemporaryFileInDir(directory, path);
- }
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_message__loop.cc b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_message__loop.cc
deleted file mode 100644
index e4da5c35b1d..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_message__loop.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_message__loop.cc,v 1.3 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/message_loop.cc.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/message_loop.cc
-@@ -19,7 +19,7 @@
- #if defined(OS_POSIX)
- #include "base/message_pump_libevent.h"
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #ifdef MOZ_WIDGET_GTK2
- #include "base/message_pump_glib.h"
- #endif
-@@ -119,7 +119,7 @@ MessageLoop::MessageLoop(Type type)
- if (type_ == TYPE_UI) {
- #if defined(OS_MACOSX)
- pump_ = base::MessagePumpMac::Create();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- pump_ = new base::MessagePumpForUI();
- #endif // OS_LINUX
- } else if (type_ == TYPE_IO) {
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_pickle.cc b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_pickle.cc
deleted file mode 100644
index 127b44b73df..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_pickle.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_pickle.cc,v 1.1 2013/07/13 19:33:19 joerg Exp $
-
---- mozilla/ipc/chromium/src/base/pickle.cc.orig 2013-07-12 14:44:01.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/pickle.cc
-@@ -492,7 +492,7 @@ char* Pickle::BeginWriteData(int length)
- "There can only be one variable buffer in a Pickle";
-
- if (!WriteInt(length))
-- return false;
-+ return NULL;
-
- char *data_ptr = BeginWrite(length, sizeof(uint32));
- if (!data_ptr)
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
deleted file mode 100644
index 7c88220a645..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc
+++ /dev/null
@@ -1,372 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_process__util__bsd.cc,v 1.6 2012/11/23 07:17:54 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/process_util_bsd.cc.orig 2012-11-22 19:23:30.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/process_util_bsd.cc
-@@ -0,0 +1,367 @@
-+// Copyright (c) 2008 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// derived from process_util_linux.cc and process_util_mac.cc
-+
-+#include "base/process_util.h"
-+
-+#include <sys/param.h>
-+#include <sys/sysctl.h>
-+#include <sys/wait.h>
-+#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD)
-+#include <sys/user.h>
-+#endif
-+
-+#include <ctype.h>
-+#include <fcntl.h>
-+#include <kvm.h>
-+#include <unistd.h>
-+
-+#include <string>
-+
-+#include "base/debug_util.h"
-+#include "base/eintr_wrapper.h"
-+#include "base/file_util.h"
-+#include "base/logging.h"
-+#include "base/string_tokenizer.h"
-+#include "base/string_util.h"
-+
-+#if (defined(_POSIX_SPAWN) && _POSIX_SPAWN > 0) \
-+ || (defined(OS_NETBSD) && __NetBSD_Version__ >= 599006500)
-+#define HAVE_POSIX_SPAWN 1
-+#endif
-+
-+/*
-+ * On platforms that are not gonk based, we fall back to an arbitrary
-+ * UID. This is generally the UID for user `nobody', albeit it is not
-+ * always the case.
-+ */
-+
-+#if defined(OS_NETBSD) || defined(OS_OPENBSD)
-+# define CHILD_UNPRIVILEGED_UID 32767
-+# define CHILD_UNPRIVILEGED_GID 32767
-+#else
-+# define CHILD_UNPRIVILEGED_UID 65534
-+# define CHILD_UNPRIVILEGED_GID 65534
-+#endif
-+
-+#ifndef __dso_public
-+# ifdef __exported
-+# define __dso_public __exported
-+# else
-+# define __dso_public __attribute__((__visibility__("default")))
-+# endif
-+#endif
-+
-+#ifdef HAVE_POSIX_SPAWN
-+#include <spawn.h>
-+extern "C" char **environ __dso_public;
-+#endif
-+
-+namespace {
-+
-+enum ParsingState {
-+ KEY_NAME,
-+ KEY_VALUE
-+};
-+
-+static mozilla::EnvironmentLog gProcessLog("MOZ_PROCESS_LOG");
-+
-+} // namespace
-+
-+namespace base {
-+
-+#ifdef HAVE_POSIX_SPAWN
-+
-+void FreeEnvVarsArray(char* array[], int length)
-+{
-+ for (int i = 0; i < length; i++) {
-+ free(array[i]);
-+ }
-+ delete[] array;
-+}
-+
-+bool LaunchApp(const std::vector<std::string>& argv,
-+ const file_handle_mapping_vector& fds_to_remap,
-+ bool wait, ProcessHandle* process_handle) {
-+ return LaunchApp(argv, fds_to_remap, environment_map(),
-+ wait, process_handle);
-+}
-+
-+bool LaunchApp(const std::vector<std::string>& argv,
-+ const file_handle_mapping_vector& fds_to_remap,
-+ const environment_map& env_vars_to_set,
-+ bool wait, ProcessHandle* process_handle,
-+ ProcessArchitecture arch) {
-+ return LaunchApp(argv, fds_to_remap, env_vars_to_set,
-+ SAME_PRIVILEGES_AS_PARENT,
-+ wait, process_handle);
-+}
-+
-+bool LaunchApp(const std::vector<std::string>& argv,
-+ const file_handle_mapping_vector& fds_to_remap,
-+ const environment_map& env_vars_to_set,
-+ ChildPrivileges privs,
-+ bool wait, ProcessHandle* process_handle,
-+ ProcessArchitecture arch) {
-+ bool retval = true;
-+
-+ char* argv_copy[argv.size() + 1];
-+ for (size_t i = 0; i < argv.size(); i++) {
-+ argv_copy[i] = const_cast<char*>(argv[i].c_str());
-+ }
-+ argv_copy[argv.size()] = NULL;
-+
-+ // Make sure we don't leak any FDs to the child process by marking all FDs
-+ // as close-on-exec.
-+ SetAllFDsToCloseOnExec();
-+
-+ // Copy environment to a new char array and add the variables
-+ // in env_vars_to_set.
-+ // Existing variables are overwritten by env_vars_to_set.
-+ int pos = 0;
-+ environment_map combined_env_vars = env_vars_to_set;
-+ while(environ[pos] != NULL) {
-+ std::string varString = environ[pos];
-+ std::string varName = varString.substr(0, varString.find_first_of('='));
-+ std::string varValue = varString.substr(varString.find_first_of('=') + 1);
-+ if (combined_env_vars.find(varName) == combined_env_vars.end()) {
-+ combined_env_vars[varName] = varValue;
-+ }
-+ pos++;
-+ }
-+ int varsLen = combined_env_vars.size() + 1;
-+
-+ char** vars = new char*[varsLen];
-+ int i = 0;
-+ for (environment_map::const_iterator it = combined_env_vars.begin();
-+ it != combined_env_vars.end(); ++it) {
-+ std::string entry(it->first);
-+ entry += "=";
-+ entry += it->second;
-+ vars[i] = strdup(entry.c_str());
-+ i++;
-+ }
-+ vars[i] = NULL;
-+
-+ posix_spawn_file_actions_t file_actions;
-+ if (posix_spawn_file_actions_init(&file_actions) != 0) {
-+ FreeEnvVarsArray(vars, varsLen);
-+ return false;
-+ }
-+
-+ // Turn fds_to_remap array into a set of dup2 calls.
-+ for (file_handle_mapping_vector::const_iterator it = fds_to_remap.begin();
-+ it != fds_to_remap.end();
-+ ++it) {
-+ int src_fd = it->first;
-+ int dest_fd = it->second;
-+
-+ if (src_fd == dest_fd) {
-+ int flags = fcntl(src_fd, F_GETFD);
-+ if (flags != -1) {
-+ fcntl(src_fd, F_SETFD, flags & ~FD_CLOEXEC);
-+ }
-+ } else {
-+ if (posix_spawn_file_actions_adddup2(&file_actions, src_fd, dest_fd) != 0) {
-+ posix_spawn_file_actions_destroy(&file_actions);
-+ FreeEnvVarsArray(vars, varsLen);
-+ return false;
-+ }
-+ }
-+ }
-+
-+ pid_t pid = 0;
-+ int spawn_succeeded = (posix_spawnp(&pid,
-+ argv_copy[0],
-+ &file_actions,
-+ NULL,
-+ argv_copy,
-+ vars) == 0);
-+
-+ FreeEnvVarsArray(vars, varsLen);
-+
-+ posix_spawn_file_actions_destroy(&file_actions);
-+
-+ bool process_handle_valid = pid > 0;
-+ if (!spawn_succeeded || !process_handle_valid) {
-+ retval = false;
-+ } else {
-+ if (wait)
-+ HANDLE_EINTR(waitpid(pid, 0, 0));
-+
-+ if (process_handle)
-+ *process_handle = pid;
-+ }
-+
-+ return retval;
-+}
-+
-+bool LaunchApp(const CommandLine& cl,
-+ bool wait, bool start_hidden, ProcessHandle* process_handle) {
-+ // TODO(playmobil): Do we need to respect the start_hidden flag?
-+ file_handle_mapping_vector no_files;
-+ return LaunchApp(cl.argv(), no_files, wait, process_handle);
-+}
-+
-+#else // no posix_spawn, use fork/exec
-+
-+bool LaunchApp(const std::vector<std::string>& argv,
-+ const file_handle_mapping_vector& fds_to_remap,
-+ bool wait, ProcessHandle* process_handle) {
-+ return LaunchApp(argv, fds_to_remap, environment_map(),
-+ wait, process_handle);
-+}
-+
-+bool LaunchApp(const std::vector<std::string>& argv,
-+ const file_handle_mapping_vector& fds_to_remap,
-+ const environment_map& env_vars_to_set,
-+ bool wait, ProcessHandle* process_handle,
-+ ProcessArchitecture arch) {
-+ return LaunchApp(argv, fds_to_remap, env_vars_to_set,
-+ SAME_PRIVILEGES_AS_PARENT,
-+ wait, process_handle);
-+}
-+
-+bool LaunchApp(const std::vector<std::string>& argv,
-+ const file_handle_mapping_vector& fds_to_remap,
-+ const environment_map& env_vars_to_set,
-+ ChildPrivileges privs,
-+ bool wait, ProcessHandle* process_handle,
-+ ProcessArchitecture arch) {
-+ scoped_array<char*> argv_cstr(new char*[argv.size() + 1]);
-+ // Illegal to allocate memory after fork and before execvp
-+ InjectiveMultimap fd_shuffle1, fd_shuffle2;
-+ fd_shuffle1.reserve(fds_to_remap.size());
-+ fd_shuffle2.reserve(fds_to_remap.size());
-+
-+ pid_t pid = fork();
-+ if (pid < 0)
-+ return false;
-+
-+ if (pid == 0) {
-+ for (file_handle_mapping_vector::const_iterator
-+ it = fds_to_remap.begin(); it != fds_to_remap.end(); ++it) {
-+ fd_shuffle1.push_back(InjectionArc(it->first, it->second, false));
-+ fd_shuffle2.push_back(InjectionArc(it->first, it->second, false));
-+ }
-+
-+ if (!ShuffleFileDescriptors(&fd_shuffle1))
-+ _exit(127);
-+
-+ CloseSuperfluousFds(fd_shuffle2);
-+
-+ for (size_t i = 0; i < argv.size(); i++)
-+ argv_cstr[i] = const_cast<char*>(argv[i].c_str());
-+ argv_cstr[argv.size()] = NULL;
-+
-+ if (privs == UNPRIVILEGED) {
-+ if (setgid(CHILD_UNPRIVILEGED_GID) != 0) {
-+ DLOG(ERROR) << "FAILED TO setgid() CHILD PROCESS, path: " << argv_cstr[0];
-+ _exit(127);
-+ }
-+ if (setuid(CHILD_UNPRIVILEGED_UID) != 0) {
-+ DLOG(ERROR) << "FAILED TO setuid() CHILD PROCESS, path: " << argv_cstr[0];
-+ _exit(127);
-+ }
-+ if (chdir("/") != 0)
-+ gProcessLog.print("==> could not chdir()\n");
-+ }
-+
-+ for (environment_map::const_iterator it = env_vars_to_set.begin();
-+ it != env_vars_to_set.end(); ++it) {
-+ if (setenv(it->first.c_str(), it->second.c_str(), 1/*overwrite*/))
-+ _exit(127);
-+ }
-+ execv(argv_cstr[0], argv_cstr.get());
-+ // if we get here, we're in serious trouble and should complain loudly
-+ DLOG(ERROR) << "FAILED TO exec() CHILD PROCESS, path: " << argv_cstr[0];
-+ _exit(127);
-+ } else {
-+ gProcessLog.print("==> process %d launched child process %d\n",
-+ GetCurrentProcId(), pid);
-+ if (wait)
-+ HANDLE_EINTR(waitpid(pid, 0, 0));
-+
-+ if (process_handle)
-+ *process_handle = pid;
-+ }
-+
-+ return true;
-+}
-+
-+bool LaunchApp(const CommandLine& cl,
-+ bool wait, bool start_hidden,
-+ ProcessHandle* process_handle) {
-+ file_handle_mapping_vector no_files;
-+ return LaunchApp(cl.argv(), no_files, wait, process_handle);
-+}
-+
-+#endif
-+
-+NamedProcessIterator::NamedProcessIterator(const std::wstring& executable_name,
-+ const ProcessFilter* filter)
-+{
-+ int numEntries;
-+ kvm_t *kvm;
-+ std::string exe(WideToASCII(executable_name));
-+
-+#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD)
-+ kvm = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL);
-+ struct kinfo_proc* procs = kvm_getprocs(kvm, KERN_PROC_UID, getuid(), &numEntries);
-+ if (procs != NULL && numEntries > 0) {
-+ for (int i = 0; i < numEntries; i++) {
-+# if defined(OS_DRAGONFLY)
-+ if (exe != procs[i].kp_comm) continue;
-+ if (filter && !filter->Includes(procs[i].kp_pid, procs[i].kp_ppid)) continue;
-+ ProcessEntry e;
-+ e.pid = procs[i].kp_pid;
-+ e.ppid = procs[i].kp_ppid;
-+ strlcpy(e.szExeFile, procs[i].kp_comm, sizeof e.szExeFile);
-+ content.push_back(e);
-+# elif defined(OS_FREEBSD)
-+ if (exe != procs[i].ki_comm) continue;
-+ if (filter && !filter->Includes(procs[i].ki_pid, procs[i].ki_ppid)) continue;
-+ ProcessEntry e;
-+ e.pid = procs[i].ki_pid;
-+ e.ppid = procs[i].ki_ppid;
-+ strlcpy(e.szExeFile, procs[i].ki_comm, sizeof e.szExeFile);
-+ content.push_back(e);
-+# endif
-+#else
-+ kvm = kvm_open(NULL, NULL, NULL, KVM_NO_FILES, NULL);
-+#if defined(OS_OPENBSD)
-+ struct kinfo_proc* procs = kvm_getprocs(kvm, KERN_PROC_UID, getuid(), sizeof(struct kinfo_proc), &numEntries);
-+#else
-+ struct kinfo_proc2* procs = kvm_getproc2(kvm, KERN_PROC_UID, getuid(), sizeof(struct kinfo_proc2), &numEntries);
-+#endif
-+ if (procs != NULL && numEntries > 0) {
-+ for (int i = 0; i < numEntries; i++) {
-+ if (exe != procs[i].p_comm) continue;
-+ if (filter && !filter->Includes(procs[i].p_pid, procs[i].p_ppid)) continue;
-+ ProcessEntry e;
-+ e.pid = procs[i].p_pid;
-+ e.ppid = procs[i].p_ppid;
-+ strlcpy(e.szExeFile, procs[i].p_comm, sizeof e.szExeFile);
-+ content.push_back(e);
-+#endif
-+ }
-+ }
-+ nextEntry = 0;
-+ kvm_close(kvm);
-+}
-+
-+NamedProcessIterator::~NamedProcessIterator() {
-+}
-+
-+const ProcessEntry* NamedProcessIterator::NextProcessEntry() {
-+ if (nextEntry >= content.size()) return NULL;
-+ return &content[nextEntry++];
-+}
-+
-+bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const {
-+ return false;
-+}
-+
-+} // namespace base
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_ref__counted.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_ref__counted.h
deleted file mode 100644
index fcb405dd97a..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_ref__counted.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_ref__counted.h,v 1.1 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/ref_counted.h.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/ref_counted.h
-@@ -28,7 +28,7 @@ class RefCountedBase {
- bool in_dtor_;
- #endif
-
-- DFAKE_MUTEX(add_release_);
-+ DFAKE_MUTEX(add_release_)
-
- DISALLOW_COPY_AND_ASSIGN(RefCountedBase);
- };
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_thread__collision__warner.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_thread__collision__warner.h
deleted file mode 100644
index 3b97a1b7000..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_base_thread__collision__warner.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_base_thread__collision__warner.h,v 1.1 2012/11/23 07:17:54 ryoon Exp $
-
---- mozilla/ipc/chromium/src/base/thread_collision_warner.h.orig 2012-11-19 22:42:22.000000000 +0000
-+++ mozilla/ipc/chromium/src/base/thread_collision_warner.h
-@@ -101,7 +101,7 @@
- // Defines a class member that acts like a mutex. It is used only as a
- // verification tool.
- #define DFAKE_MUTEX(obj) \
-- mutable base::ThreadCollisionWarner obj
-+ mutable base::ThreadCollisionWarner obj;
- // Asserts the call is never called simultaneously in two threads. Used at
- // member function scope.
- #define DFAKE_SCOPED_LOCK(obj) \
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_file__descriptor__set__posix.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_file__descriptor__set__posix.h
deleted file mode 100644
index fcbef39823f..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_file__descriptor__set__posix.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_chrome_common_file__descriptor__set__posix.h,v 1.1 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/ipc/chromium/src/chrome/common/file_descriptor_set_posix.h.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/ipc/chromium/src/chrome/common/file_descriptor_set_posix.h
-@@ -30,7 +30,7 @@ class FileDescriptorSet : public base::R
- // In debugging mode, it's a fatal error to try and add more than this number
- // of descriptors to a FileDescriptorSet.
- enum {
-- MAX_DESCRIPTORS_PER_MESSAGE = 4,
-+ MAX_DESCRIPTORS_PER_MESSAGE = 4
- };
-
- // ---------------------------------------------------------------------------
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_ipc__channel__posix.cc b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_ipc__channel__posix.cc
deleted file mode 100644
index 1fb88ff6213..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_ipc__channel__posix.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_chrome_common_ipc__channel__posix.cc,v 1.1 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/ipc/chromium/src/chrome/common/ipc_channel_posix.cc.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
-@@ -7,6 +7,7 @@
- #include <errno.h>
- #include <fcntl.h>
- #include <stddef.h>
-+#include <unistd.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/stat.h>
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_ipc__message__utils.h b/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_ipc__message__utils.h
deleted file mode 100644
index 37bc4d3a979..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_chromium_src_chrome_common_ipc__message__utils.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD: patch-mozilla_ipc_chromium_src_chrome_common_ipc__message__utils.h,v 1.3 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h.orig 2012-08-25 00:31:11.000000000 +0000
-+++ mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h
-@@ -195,7 +195,7 @@ struct ParamTraits<unsigned long long> {
- };
- #endif
-
--#if !(defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_WIN) || (defined(OS_LINUX) && defined(ARCH_CPU_64_BITS)) || defined(ARCH_CPU_S390))
-+#if !(defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_WIN) || ((defined(OS_BSD) || defined(OS_LINUX)) && defined(ARCH_CPU_64_BITS)) || defined(ARCH_CPU_S390))
- // There size_t is a synonym for |unsigned long| ...
- template <>
- struct ParamTraits<size_t> {
-@@ -248,7 +248,7 @@ struct ParamTraits<uint32> {
- };
- #endif // defined(OS_MACOSX)
-
--#if !(defined(OS_LINUX) && defined(ARCH_CPU_64_BITS))
-+#if !((defined(OS_BSD) || defined(OS_LINUX)) && defined(ARCH_CPU_64_BITS))
- // int64 is |long int| on 64-bit systems, uint64 is |unsigned long|
- template <>
- struct ParamTraits<int64> {
diff --git a/mail/thunderbird/patches/patch-mozilla_ipc_glue_SharedMemorySysV.h b/mail/thunderbird/patches/patch-mozilla_ipc_glue_SharedMemorySysV.h
deleted file mode 100644
index 2cd87ba8aac..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_ipc_glue_SharedMemorySysV.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_ipc_glue_SharedMemorySysV.h,v 1.2 2012/11/23 07:17:54 ryoon Exp $
-
---- mozilla/ipc/glue/SharedMemorySysV.h.orig 2012-11-19 22:42:22.000000000 +0000
-+++ mozilla/ipc/glue/SharedMemorySysV.h
-@@ -8,7 +8,7 @@
- #ifndef mozilla_ipc_SharedMemorySysV_h
- #define mozilla_ipc_SharedMemorySysV_h
-
--#if defined(OS_LINUX) && !defined(ANDROID)
-+#if (defined(OS_LINUX) && !defined(ANDROID)) || defined(OS_BSD)
-
- // SysV shared memory isn't available on Windows, but we define the
- // following macro so that #ifdefs are clearer (compared to #ifdef
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jsgc.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_jsgc.cpp
deleted file mode 100644
index 5b13ce774ad..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_js_src_jsgc.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-mozilla_js_src_jsgc.cpp,v 1.1 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/js/src/jsgc.cpp.orig 2012-08-25 00:31:12.000000000 +0000
-+++ mozilla/js/src/jsgc.cpp
-@@ -2635,8 +2635,12 @@ GetCPUCount()
- GetSystemInfo(&sysinfo);
- ncpus = unsigned(sysinfo.dwNumberOfProcessors);
- # else
-+# ifdef _SC_NPROCESSORS_ONLN
- long n = sysconf(_SC_NPROCESSORS_ONLN);
- ncpus = (n > 0) ? unsigned(n) : 1;
-+# else
-+ ncpus = 1;
-+# endif
- # endif
- }
- return ncpus;
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_jsinterp.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_jsinterp.cpp
deleted file mode 100644
index 1f35c5385a6..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_js_src_jsinterp.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD: patch-mozilla_js_src_jsinterp.cpp,v 1.1 2012/11/23 07:17:54 ryoon Exp $
-
---- mozilla/js/src/jsinterp.cpp.orig 2012-11-19 22:42:24.000000000 +0000
-+++ mozilla/js/src/jsinterp.cpp
-@@ -3664,6 +3664,7 @@ BEGIN_CASE(JSOP_LEAVEBLOCK)
- BEGIN_CASE(JSOP_LEAVEFORLETIN)
- BEGIN_CASE(JSOP_LEAVEBLOCKEXPR)
- {
-+ {
- DebugOnly<uint32_t> blockDepth = regs.fp()->blockChain().stackDepth();
-
- regs.fp()->popBlock(cx);
-@@ -3678,7 +3679,9 @@ BEGIN_CASE(JSOP_LEAVEBLOCKEXPR)
- regs.sp -= GET_UINT16(regs.pc);
- JS_ASSERT(regs.stackDepth() == blockDepth + 1);
- regs.sp[-1] = *vp;
-- } else {
-+ }
-+ }
-+ if (op != JSOP_LEAVEBLOCK && op != JSOP_LEAVEBLOCKEXPR) {
- /* Another op will pop; nothing to do here. */
- len = JSOP_LEAVEFORLETIN_LENGTH;
- DO_NEXT_OP(len);
diff --git a/mail/thunderbird/patches/patch-mozilla_js_src_methodjit_MethodJIT.cpp b/mail/thunderbird/patches/patch-mozilla_js_src_methodjit_MethodJIT.cpp
deleted file mode 100644
index ae6191b561a..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_js_src_methodjit_MethodJIT.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_js_src_methodjit_MethodJIT.cpp,v 1.3 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/js/src/methodjit/MethodJIT.cpp.orig 2012-08-25 00:31:13.000000000 +0000
-+++ mozilla/js/src/methodjit/MethodJIT.cpp
-@@ -135,7 +135,7 @@ PopActiveVMFrame(VMFrame &f)
-
- JS_STATIC_ASSERT(offsetof(FrameRegs, sp) == 0);
-
--#if defined(__linux__) && defined(JS_CPU_X64)
-+#if defined(__ELF__) && defined(JS_CPU_X64)
- # define SYMBOL_STRING_RELOC(name) #name "@plt"
- #else
- # define SYMBOL_STRING_RELOC(name) SYMBOL_STRING(name)
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 3158d6077ef..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_media_libcubeb_src_Makefile.in
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD: patch-mozilla_media_libcubeb_src_Makefile.in,v 1.1 2012/11/23 07:17:54 ryoon Exp $
-
---- mozilla/media/libcubeb/src/Makefile.in.orig 2012-11-19 22:42:33.000000000 +0000
-+++ mozilla/media/libcubeb/src/Makefile.in
-@@ -24,10 +24,6 @@ endif
-
- ifeq ($(OS_TARGET),Android)
- # No Android implementation of libcubeb yet.
--else ifeq ($(OS_TARGET),Linux)
--CSRCS = \
-- cubeb_alsa.c \
-- $(NULL)
- endif
-
- ifeq ($(OS_TARGET),Darwin)
-@@ -42,6 +38,12 @@ CSRCS = \
- $(NULL)
- endif
-
-+ifdef MOZ_ALSA
-+CSRCS = \
-+ cubeb_alsa.c \
-+ $(NULL)
-+endif
-+
- ifdef MOZ_PULSEAUDIO
- CSRCS = \
- cubeb_pulse.c \
diff --git a/mail/thunderbird/patches/patch-mozilla_media_libsydneyaudio_src_sydney__audio__pulseaudio.c b/mail/thunderbird/patches/patch-mozilla_media_libsydneyaudio_src_sydney__audio__pulseaudio.c
deleted file mode 100644
index 985725ad96d..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_media_libsydneyaudio_src_sydney__audio__pulseaudio.c
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-mozilla_media_libsydneyaudio_src_sydney__audio__pulseaudio.c,v 1.2 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/media/libsydneyaudio/src/sydney_audio_pulseaudio.c.orig 2012-08-25 00:31:24.000000000 +0000
-+++ mozilla/media/libsydneyaudio/src/sydney_audio_pulseaudio.c
-@@ -6,7 +6,9 @@
- #include <stdio.h>
- #include <string.h>
- #include <pthread.h>
-+_Pragma("GCC visibility push(default)")
- #include <pulse/pulseaudio.h>
-+_Pragma("GCC visibility pop")
- #include "sydney_audio.h"
-
- /* Pulseaudio implementation based heavily on sydney_audio_alsa.c */
diff --git a/mail/thunderbird/patches/patch-mozilla_netwerk_protocol_http_HttpChannelParent.cpp b/mail/thunderbird/patches/patch-mozilla_netwerk_protocol_http_HttpChannelParent.cpp
deleted file mode 100644
index 6437088f420..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_netwerk_protocol_http_HttpChannelParent.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-mozilla_netwerk_protocol_http_HttpChannelParent.cpp,v 1.4 2012/09/02 06:43:42 ryoon Exp $
-
---- mozilla/netwerk/protocol/http/HttpChannelParent.cpp.orig 2012-08-25 00:31:26.000000000 +0000
-+++ mozilla/netwerk/protocol/http/HttpChannelParent.cpp
-@@ -299,6 +299,13 @@ HttpChannelParent::RecvUpdateAssociatedC
- return true;
- }
-
-+// Compiling with a version of GCC <= 4.4 fails with an internal compiler
-+// error.
-+#if !defined(__GNUC__) || \
-+ (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
-+#pragma GCC optimize ("O0")
-+#endif
-+
- bool
- HttpChannelParent::RecvRedirect2Verify(const nsresult& result,
- const RequestHeaderTuples& changedHeaders)
diff --git a/mail/thunderbird/patches/patch-mozilla_storage_src_Makefile.in b/mail/thunderbird/patches/patch-mozilla_storage_src_Makefile.in
deleted file mode 100644
index 4132ab7e2e5..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_storage_src_Makefile.in
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD: patch-mozilla_storage_src_Makefile.in,v 1.3 2012/09/02 06:43:43 ryoon Exp $
-
---- mozilla/storage/src/Makefile.in.orig 2012-08-25 00:31:30.000000000 +0000
-+++ mozilla/storage/src/Makefile.in
-@@ -34,6 +34,22 @@ DEFINES += -DMOZ_STORAGE_MEMORY
- endif
- endif
-
-+ifeq ($(OS_ARCH),DragonFly)
-+DEFINES += -DXP_BSD
-+endif
-+
-+ifeq ($(OS_ARCH),FreeBSD)
-+DEFINES += -DXP_BSD
-+endif
-+
-+ifeq ($(OS_ARCH),NetBSD)
-+DEFINES += -DXP_BSD
-+endif
-+
-+ifeq ($(OS_ARCH),FreeBSD)
-+DEFINES += -DXP_BSD
-+endif
-+
- EXPORTS_NAMESPACES = mozilla/storage
-
- EXPORTS_mozilla/storage = \
diff --git a/mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm b/mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm
index 942a8a26ade..ba7dde2d6ac 100644
--- a/mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm
+++ b/mail/thunderbird/patches/patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm
@@ -1,4 +1,4 @@
-$NetBSD: patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm,v 1.1 2013/11/12 20:50:51 ryoon Exp $
+$NetBSD: patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm,v 1.2 2013/11/13 14:36:58 ryoon Exp $
--- mozilla/toolkit/components/osfile/osfile_unix_back.jsm.orig 2013-10-23 22:09:18.000000000 +0000
+++ mozilla/toolkit/components/osfile/osfile_unix_back.jsm
@@ -41,25 +41,27 @@ $NetBSD: patch-mozilla_toolkit_components_osfile_osfile__unix__back.jsm,v 1.1 20
} else {
UnixFile.readdir =
declareFFI("readdir", ctypes.default_abi,
-@@ -556,6 +568,25 @@
+@@ -556,6 +568,27 @@
UnixFile.fstat = function stat(fd, buf) {
return fxstat(ver, fd, buf);
};
+ } else if (OS.Constants.Sys.Name == "NetBSD") {
++ // NetBSD 5.0 uses *30, and netbsd-6 uses *50
++ let v = OS.Constants.libc.OSFILE_SIZEOF_TIME_T < 8 ? "30" : "50";
+ UnixFile.stat =
-+ declareFFI("__stat50", ctypes.default_abi,
++ declareFFI("__stat"+v, ctypes.default_abi,
+ /*return*/ Types.negativeone_or_nothing,
+ /*path*/ Types.path,
+ /*buf*/ Types.stat.out_ptr
+ );
+ UnixFile.lstat =
-+ declareFFI("__lstat50", ctypes.default_abi,
++ declareFFI("__lstat"+v, ctypes.default_abi,
+ /*return*/ Types.negativeone_or_nothing,
+ /*path*/ Types.path,
+ /*buf*/ Types.stat.out_ptr
+ );
+ UnixFile.fstat =
-+ declareFFI("__fstat50", ctypes.default_abi,
++ declareFFI("__fstat"+v, ctypes.default_abi,
+ /*return*/ Types.negativeone_or_nothing,
+ /*fd*/ Types.fd,
+ /*buf*/ Types.stat.out_ptr
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_Makefile.in b/mail/thunderbird/patches/patch-mozilla_xpcom_Makefile.in
deleted file mode 100644
index 2be394b4206..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_Makefile.in,v 1.5 2012/11/23 11:08:06 ryoon Exp $
-
---- mozilla/xpcom/Makefile.in.orig 2012-08-25 00:31:35.000000000 +0000
-+++ mozilla/xpcom/Makefile.in
-@@ -35,6 +35,10 @@ DIRS += windbgdlg
- endif
- endif
-
-+ifeq ($(OS_ARCH),NetBSD)
-+EXTRA_DSO_LDOPTS += -Wl,-rpath,${PREFIX}/lib/thunderbird-sdk/sdk/lib
-+endif
-+
- ifdef ENABLE_TESTS
- TOOL_DIRS += \
- tests \
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_idl-parser_Makefile.in b/mail/thunderbird/patches/patch-mozilla_xpcom_idl-parser_Makefile.in
deleted file mode 100644
index 1c2f629970d..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_idl-parser_Makefile.in
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_idl-parser_Makefile.in,v 1.3 2012/09/02 06:43:43 ryoon Exp $
-
---- mozilla/xpcom/idl-parser/Makefile.in.orig 2012-08-25 00:31:35.000000000 +0000
-+++ mozilla/xpcom/idl-parser/Makefile.in
-@@ -29,7 +29,7 @@ include $(topsrcdir)/config/rules.mk
- export:: $(PARSER_SRCS) $(PLY_PROGS)
- $(PYTHON_PATH) \
- $(PLY_INCLUDE) \
-- $(srcdir)/header.py --cachedir=. --regen
-+ $(srcdir)/header.py --cachedir=$(DEPTH)/xpcom/idl-parser/cache --regen
-
- check::
- $(PYTHON_PATH) \
diff --git a/mail/thunderbird/patches/patch-mozilla_xpcom_typelib_xpidl_Makefile.in b/mail/thunderbird/patches/patch-mozilla_xpcom_typelib_xpidl_Makefile.in
deleted file mode 100644
index 86233f780f6..00000000000
--- a/mail/thunderbird/patches/patch-mozilla_xpcom_typelib_xpidl_Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-mozilla_xpcom_typelib_xpidl_Makefile.in,v 1.2 2012/09/02 06:43:43 ryoon Exp $
-
---- mozilla/xpcom/typelib/xpidl/Makefile.in.orig 2012-08-25 00:31:36.000000000 +0000
-+++ mozilla/xpcom/typelib/xpidl/Makefile.in
-@@ -16,8 +16,8 @@ SDK_BINARY = \
- $(topsrcdir)/xpcom/idl-parser/xpidl.py \
- $(topsrcdir)/xpcom/idl-parser/header.py \
- $(topsrcdir)/xpcom/idl-parser/typelib.py \
-- $(DEPTH)/xpcom/idl-parser/xpidllex.py \
-- $(DEPTH)/xpcom/idl-parser/xpidlyacc.py \
-+ $(DEPTH)/xpcom/idl-parser/cache/xpidllex.py \
-+ $(DEPTH)/xpcom/idl-parser/cache/xpidlyacc.py \
- $(NULL)
-
- ifndef MOZ_SYSTEM_PLY
diff --git a/mail/thunderbird/patches/patch-mp b/mail/thunderbird/patches/patch-mp
deleted file mode 100644
index d3f8bac9d65..00000000000
--- a/mail/thunderbird/patches/patch-mp
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-mp,v 1.7 2012/09/02 06:43:43 ryoon Exp $
-
---- mozilla/media/libsydneyaudio/src/Makefile.in.orig 2012-08-25 00:31:24.000000000 +0000
-+++ mozilla/media/libsydneyaudio/src/Makefile.in
-@@ -72,6 +72,12 @@ ifeq ($(OS_ARCH),WINNT)
- OS_LIBS += winmm.lib
- endif
-
-+ifdef PKGSRC_PULSEAUDIO
-+CSRCS = \
-+ sydney_audio_pulseaudio.c \
-+ $(NULL)
-+endif
-+
- include $(topsrcdir)/config/rules.mk
-
- LOCAL_INCLUDES += -I$(srcdir)/../include
diff --git a/mail/thunderbird/patches/patch-pa b/mail/thunderbird/patches/patch-pa
deleted file mode 100644
index d79e27b1272..00000000000
--- a/mail/thunderbird/patches/patch-pa
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD: patch-pa,v 1.8 2012/11/23 11:08:06 ryoon Exp $
-
---- mozilla/xulrunner/installer/mozilla-js.pc.in.orig 2012-08-25 00:31:36.000000000 +0000
-+++ mozilla/xulrunner/installer/mozilla-js.pc.in
-@@ -6,5 +6,5 @@ Name: JavaScript
- Description: The Mozilla JavaScript Library
- Version: %MOZILLA_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
--Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
-+Libs: -Wl,-R${prefix}/lib/thunderbird -Wl,-R${prefix}/lib/thunderbird-sdk -L${prefix}/lib/thunderbird %MOZ_JS_LINK%
- Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
diff --git a/mail/thunderbird/patches/patch-pd b/mail/thunderbird/patches/patch-pd
deleted file mode 100644
index 69f04e06138..00000000000
--- a/mail/thunderbird/patches/patch-pd
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD: patch-pd,v 1.8 2012/11/23 11:08:06 ryoon Exp $
-
---- mozilla/xulrunner/installer/mozilla-nss.pc.in.orig 2012-08-25 00:31:36.000000000 +0000
-+++ mozilla/xulrunner/installer/mozilla-nss.pc.in
-@@ -6,5 +6,5 @@ Name: NSS
- Description: Mozilla Network Security Services
- Version: %MOZILLA_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
--Libs: -L${sdkdir}/lib -lsmime3 -lssl3 -lnss3 -lnssutil3
-+Libs: -Wl,-R${prefix}/lib/thunderbird -Wl,-R${prefix}/lib/thunderbird-sdk -L${prefix}/lib/xulrunner -lsmime3 -lssl3 -lnss3 -lnssutil3
- Cflags: -I${includedir}
diff --git a/mail/thunderbird/patches/patch-pg b/mail/thunderbird/patches/patch-pg
deleted file mode 100644
index cdaf46e448f..00000000000
--- a/mail/thunderbird/patches/patch-pg
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-pg,v 1.7 2012/09/02 06:43:43 ryoon Exp $
-
---- mozilla/xulrunner/installer/mozilla-nspr.pc.in.orig 2012-08-25 00:31:36.000000000 +0000
-+++ mozilla/xulrunner/installer/mozilla-nspr.pc.in
-@@ -5,7 +5,5 @@ includedir=%includedir%
- Name: NSPR
- Description: The Netscape Portable Runtime
- Version: %NSPR_VERSION%
--Libs: %FULL_NSPR_LIBS%
--Cflags: %FULL_NSPR_CFLAGS%
--
--
-+Libs: -Wl,-R${prefix}/lib/xulrunner -Wl,-R${prefix}/lib/xulrunner -L${prefix}/lib/xulrunner -lplds4 -lplc4 -lnspr4 -pthread
-+Cflags: -I${includedir}
diff --git a/mail/thunderbird/patches/patch-toolkit_toolkit-tiers.mk b/mail/thunderbird/patches/patch-toolkit_toolkit-tiers.mk
deleted file mode 100644
index 0b02e34d638..00000000000
--- a/mail/thunderbird/patches/patch-toolkit_toolkit-tiers.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-toolkit_toolkit-tiers.mk,v 1.4 2012/09/02 06:43:43 ryoon Exp $
-
---- mozilla/toolkit/toolkit-tiers.mk.orig 2012-08-25 00:31:34.000000000 +0000
-+++ mozilla/toolkit/toolkit-tiers.mk
-@@ -47,7 +47,7 @@ ifdef MOZ_UPDATER
- ifndef MOZ_NATIVE_BZ2
- tier_platform_dirs += modules/libbz2
- endif
--tier_platform_dirs += other-licenses/bsdiff
-+#tier_platform_dirs += other-licenses/bsdiff
- endif
-
- tier_platform_dirs += gfx/qcms
diff --git a/mail/thunderbird/patches/patch-xa b/mail/thunderbird/patches/patch-xa
deleted file mode 100644
index 59da6682a5f..00000000000
--- a/mail/thunderbird/patches/patch-xa
+++ /dev/null
@@ -1,119 +0,0 @@
-$NetBSD: patch-xa,v 1.5 2012/09/02 06:43:43 ryoon Exp $
-
-NetBSD/sparc64 xptcall support code. From pkgsrc/www/firefox3/files/
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_netbsd.s.orig 2012-08-31 13:21:49.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_netbsd.s
-@@ -0,0 +1,112 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-+ *
-+ * The contents of this file are subject to the Netscape Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/NPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is mozilla.org code.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1998 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ */
-+
-+/* Platform specific code to invoke XPCOM methods on native objects */
-+ .global NS_InvokeByIndex_P
-+ .type NS_InvokeByIndex_P, #function
-+/*
-+ NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
-+ PRUint32 paramCount, nsXPTCVariant* params);
-+
-+*/
-+/*
-+ * Note: To simplify stack handling we allocate an extra stack
-+ * frame here. In principle invoke_copy_to_stack() could
-+ * save the parameters our caller's frame and we could
-+ * reclaim the stackframe and do a tail call to the
-+ * function. However, this gets complicated....
-+ *
-+ * The vtable consist of be:
-+ *
-+ * struct {
-+ * short __delta;
-+ * short __index;
-+ * union {
-+ * P __pfn;
-+ * short __delta2;
-+ * } __pfn_or_delta2;
-+ * };
-+ *
-+ * See gcc/cp/cp-tree.h
-+ */
-+
-+NS_InvokeByIndex_P:
-+ save %sp,-(128 + 64),%sp ! room for the register window and
-+ ! struct pointer, rounded up to 0 % 64
-+ sll %i2,4,%l0 ! assume the worst case
-+ ! paramCount * 2 * 8 bytes
-+ cmp %l0, 0 ! are there any args? If not,
-+ be .invoke ! no need to copy args to stack
-+ nop
-+
-+ sub %sp,%l0,%sp ! create the additional stack space
-+ add %sp,0x7ff+136,%o0 ! step past the register window, the
-+ ! struct result pointer and the 'this' slot
-+ mov %i2,%o1 ! paramCount
-+ call invoke_copy_to_stack
-+ mov %i3,%o2 ! params
-+
-+!
-+! load arguments from stack into the outgoing registers
-+! BIAS is 0x7ff (2047)
-+!
-+
-+! load the %o1..5 64bit (extended word) output registers registers
-+ ldx [%sp + 0x7ff + 136],%o1 ! %i1
-+ ldx [%sp + 0x7ff + 144],%o2 ! %i2
-+ ldx [%sp + 0x7ff + 152],%o3 ! %i3
-+ ldx [%sp + 0x7ff + 160],%o4 ! %i4
-+ ldx [%sp + 0x7ff + 168],%o5 ! %i5
-+
-+! load the even number double registers starting with %f2
-+ ldd [%sp + 0x7ff + 136],%f2
-+ ldd [%sp + 0x7ff + 144],%f4
-+ ldd [%sp + 0x7ff + 152],%f6
-+ ldd [%sp + 0x7ff + 160],%f8
-+ ldd [%sp + 0x7ff + 168],%f10
-+ ldd [%sp + 0x7ff + 176],%f12
-+ ldd [%sp + 0x7ff + 184],%f14
-+ ldd [%sp + 0x7ff + 192],%f16
-+ ldd [%sp + 0x7ff + 200],%f18
-+ ldd [%sp + 0x7ff + 208],%f20
-+ ldd [%sp + 0x7ff + 216],%f22
-+ ldd [%sp + 0x7ff + 224],%f24
-+ ldd [%sp + 0x7ff + 232],%f26
-+ ldd [%sp + 0x7ff + 240],%f28
-+ ldd [%sp + 0x7ff + 248],%f30
-+
-+!
-+! calculate the target address from the vtable
-+!
-+.invoke:
-+ sll %i1,3,%l0 ! index *= 8
-+ ldx [%i0],%l1 ! *this --> address of vtable
-+ ldx [%l0 + %l1],%l0 ! this->vtable[index] --> address
-+
-+ jmpl %l0,%o7 ! call the routine
-+ mov %i0,%o0 ! move 'this' pointer to out register
-+
-+ mov %o0,%i0 ! propagate return value
-+ ret
-+ restore
-+
-+ .size NS_InvokeByIndex_P, .-NS_InvokeByIndex_P
diff --git a/mail/thunderbird/patches/patch-xd b/mail/thunderbird/patches/patch-xd
deleted file mode 100644
index fdeded7d27a..00000000000
--- a/mail/thunderbird/patches/patch-xd
+++ /dev/null
@@ -1,126 +0,0 @@
-$NetBSD: patch-xd,v 1.5 2012/09/02 06:43:44 ryoon Exp $
-
-NetBSD/sparc64 xptcall support code. From pkgsrc/www/firefox3/files/
-
---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_netbsd.cpp.orig 2012-08-31 13:21:49.000000000 +0000
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_netbsd.cpp
-@@ -0,0 +1,119 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-+ *
-+ * The contents of this file are subject to the Netscape Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/NPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is mozilla.org code.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1999 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ */
-+
-+/* Implement shared vtbl methods. */
-+
-+#include "xptcprivate.h"
-+#include "xptiprivate.h"
-+
-+#if defined(sparc) || defined(__sparc__)
-+
-+extern "C" nsresult
-+PrepareAndDispatch(nsXPTCStubBase* self, PRUint64 methodIndex, PRUint64* args)
-+{
-+
-+#define PARAM_BUFFER_COUNT 16
-+
-+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
-+ nsXPTCMiniVariant* dispatchParams = NULL;
-+ const nsXPTMethodInfo* info;
-+ PRUint8 paramCount;
-+ PRUint8 i;
-+ nsresult result = NS_ERROR_FAILURE;
-+
-+ NS_ASSERTION(self,"no self");
-+
-+ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info);
-+ NS_ASSERTION(info,"no interface info");
-+
-+ paramCount = info->GetParamCount();
-+
-+ // setup variant array pointer
-+ if(paramCount > PARAM_BUFFER_COUNT)
-+ dispatchParams = new nsXPTCMiniVariant[paramCount];
-+ else
-+ dispatchParams = paramBuffer;
-+ NS_ASSERTION(dispatchParams,"no place for params");
-+ if (!dispatchParams)
-+ return NS_ERROR_OUT_OF_MEMORY;
-+
-+ PRUint64* ap = args;
-+ for(i = 0; i < paramCount; i++, ap++)
-+ {
-+ const nsXPTParamInfo& param = info->GetParam(i);
-+ const nsXPTType& type = param.GetType();
-+ nsXPTCMiniVariant* dp = &dispatchParams[i];
-+
-+ if(param.IsOut() || !type.IsArithmetic())
-+ {
-+ dp->val.p = (void*) *ap;
-+ continue;
-+ }
-+ // else
-+ switch(type)
-+ {
-+ case nsXPTType::T_BOOL : dp->val.b = *((PRInt64*) ap); break;
-+ case nsXPTType::T_CHAR : dp->val.c = *((PRUint64*) ap); break;
-+ case nsXPTType::T_WCHAR : dp->val.wc = *((PRInt64*) ap); break;
-+ case nsXPTType::T_I8 : dp->val.i8 = *((PRInt64*) ap); break;
-+ case nsXPTType::T_I16 : dp->val.i16 = *((PRInt64*) ap); break;
-+ case nsXPTType::T_I32 : dp->val.i32 = *((PRInt64*) ap); break;
-+ case nsXPTType::T_I64 : dp->val.i64 = *((PRInt64*) ap); break;
-+ case nsXPTType::T_U8 : dp->val.u8 = *((PRUint64*) ap); break;
-+ case nsXPTType::T_U16 : dp->val.u16 = *((PRUint64*)ap); break;
-+ case nsXPTType::T_U32 : dp->val.u32 = *((PRUint64*)ap); break;
-+ case nsXPTType::T_U64 : dp->val.u64 = *((PRUint64*) ap); break;
-+ case nsXPTType::T_FLOAT : dp->val.f = ((float*) ap)[1]; break;
-+ case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); break;
-+ default:
-+ NS_ASSERTION(0, "bad type");
-+ break;
-+ }
-+ }
-+
-+ result = self->mOuter->CallMethod((PRUint16)methodIndex, info, dispatchParams);
-+
-+ if(dispatchParams != paramBuffer)
-+ delete [] dispatchParams;
-+
-+ return result;
-+}
-+
-+extern "C" int SharedStub(int, int*);
-+
-+#define STUB_ENTRY(n) \
-+nsresult nsXPTCStubBase::Stub##n() \
-+{ \
-+ int dummy; /* defeat tail-call optimization */ \
-+ return SharedStub(n, &dummy); \
-+}
-+
-+#define SENTINEL_ENTRY(n) \
-+nsresult nsXPTCStubBase::Sentinel##n() \
-+{ \
-+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
-+ return NS_ERROR_NOT_IMPLEMENTED; \
-+}
-+
-+#include "xptcstubsdef.inc"
-+
-+#endif /* sparc || __sparc__ */