summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorryoon <ryoon>2013-05-19 08:47:41 +0000
committerryoon <ryoon>2013-05-19 08:47:41 +0000
commit21822d01c87b2db6687c49543494da6a15a65a35 (patch)
tree4b14815288c8b69e97013113cd907168268dfd41
parent3f5e54151e2d61ca8478783da04bffa118f39baf (diff)
downloadpkgsrc-21822d01c87b2db6687c49543494da6a15a65a35.tar.gz
Update to 21.0 and mark as BROKEN.
* Introduce WEBRTC patches for FreeBSD, this patches are not work for NetBSD. * When firefox/xulrunner-22.0 is released, I will check the functionality of xulrunner package again. * Patches and dist.mk are used by www/firefox. * Take MAINATINERship.
-rw-r--r--devel/xulrunner/Makefile6
-rw-r--r--devel/xulrunner/dist.mk6
-rw-r--r--devel/xulrunner/distinfo91
-rw-r--r--devel/xulrunner/patches/patch-aa158
-rw-r--r--devel/xulrunner/patches/patch-ab22
-rw-r--r--devel/xulrunner/patches/patch-ac82
-rw-r--r--devel/xulrunner/patches/patch-ae58
-rw-r--r--devel/xulrunner/patches/patch-ag31
-rw-r--r--devel/xulrunner/patches/patch-as35
-rw-r--r--devel/xulrunner/patches/patch-at13
-rw-r--r--devel/xulrunner/patches/patch-au15
-rw-r--r--devel/xulrunner/patches/patch-av40
-rw-r--r--devel/xulrunner/patches/patch-aw34
-rw-r--r--devel/xulrunner/patches/patch-config_system-headers10
-rw-r--r--devel/xulrunner/patches/patch-content_media_AudioStream.cpp13
-rw-r--r--devel/xulrunner/patches/patch-extensions_auth_nsAuthGSSAPI.cpp14
-rw-r--r--devel/xulrunner/patches/patch-image_decoders_nsJPEGDecoder.cpp363
-rw-r--r--devel/xulrunner/patches/patch-ipc_chromium_src_base_message__pump__libevent.cc13
-rw-r--r--devel/xulrunner/patches/patch-js_src_Makefile.in18
-rw-r--r--devel/xulrunner/patches/patch-js_src_config_system-headers10
-rw-r--r--devel/xulrunner/patches/patch-js_src_jscompartment.h20
-rw-r--r--devel/xulrunner/patches/patch-js_src_jsgc.cpp19
-rw-r--r--devel/xulrunner/patches/patch-js_src_jspropertycacheinlines.h22
-rw-r--r--devel/xulrunner/patches/patch-js_src_methodjit_MethodJIT.cpp15
-rw-r--r--devel/xulrunner/patches/patch-js_src_vm_ObjectImpl-inl.h43
-rw-r--r--devel/xulrunner/patches/patch-media_libsoundtouch_src_cpu__detect__x86.cpp23
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_objs.mk22
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_test_Makefile.in20
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_nicer.gyp33
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_stun_addrs.c32
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_stun_stun.h20
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_util_mbslen.c78
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_nrappkit.gyp32
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_log_r__log.c12
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h13
-rw-r--r--devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_util_util.c12
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_signaling_signaling.gyp49
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_signaling_src_sipcc_cpr_darwin_cpr__darwin__ipc.c20
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_signaling_test_Makefile.in21
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_build_common.gypi60
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_testing_gtest_include_gtest_internal_gtest-port.h19
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_third__party_libyuv_libyuv.gyp24
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_tools_gyp_pylib_gyp_generator_mozmake.py55
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_build_common.gypi35
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device.gypi91
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device__utility.cc21
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc12
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_rtp__utility.cc49
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_udp__transport_source_udp__transport__impl.cc90
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_utility_source_rtp__dump__impl.cc22
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_device__info__impl.cc31
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc47
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc45
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi62
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_interface_asm__defines.h13
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_interface_tick__util.h67
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_atomic32__posix.cc12
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable.cc33
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable__posix.cc13
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu.cc22
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu__info.cc50
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp18
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_thread__posix.cc96
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_trace__posix.cc13
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_typedefs.h13
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_video__engine_vie__defines.h13
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_voice__engine_voe__network__impl.cc31
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_voice__engine_voice__engine__defines.h38
-rw-r--r--devel/xulrunner/patches/patch-media_webrtc_webrtc__config.gypi12
-rw-r--r--devel/xulrunner/patches/patch-mp12
-rw-r--r--devel/xulrunner/patches/patch-netwerk_sctp_src_Makefile.in23
-rw-r--r--devel/xulrunner/patches/patch-netwerk_sctp_src_netinet_sctp__os__userspace.h14
-rw-r--r--devel/xulrunner/patches/patch-netwerk_sctp_src_user__recv__thread.c13
-rw-r--r--devel/xulrunner/patches/patch-netwerk_sctp_src_user__socketvar.h33
-rw-r--r--devel/xulrunner/patches/patch-security_manager_ssl_src_nsNSSComponent.cpp12
-rw-r--r--devel/xulrunner/patches/patch-toolkit_library_Makefile.in12
-rw-r--r--devel/xulrunner/patches/patch-xpcom_io_nsMultiplexInputStream_cpp11
-rw-r--r--devel/xulrunner/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp13
-rw-r--r--devel/xulrunner/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp13
-rw-r--r--devel/xulrunner/patches/patch-xpcom_string_public_nsAlgorithm.h16
80 files changed, 2466 insertions, 351 deletions
diff --git a/devel/xulrunner/Makefile b/devel/xulrunner/Makefile
index 29d7f687b88..66e5255a165 100644
--- a/devel/xulrunner/Makefile
+++ b/devel/xulrunner/Makefile
@@ -1,14 +1,16 @@
-# $NetBSD: Makefile,v 1.104 2013/05/08 09:11:19 sbd Exp $
+# $NetBSD: Makefile,v 1.105 2013/05/19 08:47:41 ryoon Exp $
.include "dist.mk"
PKGNAME= xulrunner-${MOZ_BRANCH}${MOZ_BRANCH_MINOR:S/esr//}
CATEGORIES= devel www
-MAINTAINER= pkgsrc-users@NetBSD.org
+MAINTAINER= ryoon@NetBSD.org
HOMEPAGE= http://developer.mozilla.org/en/docs/XULRunner
COMMENT= XML User Interface Language runtime environment
LICENSE= mpl-1.1
+BROKEN= prefs and chrome:// load problem.
+
MOZILLA_DIR= # empty
PKGCONFIG_OVERRIDE+= xulrunner/installer/libxul-embedding.pc.in
diff --git a/devel/xulrunner/dist.mk b/devel/xulrunner/dist.mk
index 88261652ae9..174376590b5 100644
--- a/devel/xulrunner/dist.mk
+++ b/devel/xulrunner/dist.mk
@@ -1,12 +1,12 @@
-# $NetBSD: dist.mk,v 1.46 2013/04/13 12:44:36 ryoon Exp $
+# $NetBSD: dist.mk,v 1.47 2013/05/19 08:47:41 ryoon Exp $
#
# used by devel/xulrunner/Makefile
# used by www/firefox/Makefile
DISTNAME= firefox-${FIREFOX_VER}.source
FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
-MOZ_BRANCH= 20.0
-MOZ_BRANCH_MINOR= .1
+MOZ_BRANCH= 21.0
+MOZ_BRANCH_MINOR=
MASTER_SITES= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/} \
${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/}
EXTRACT_SUFX= .tar.bz2
diff --git a/devel/xulrunner/distinfo b/devel/xulrunner/distinfo
index 529991cf11a..647c99ef172 100644
--- a/devel/xulrunner/distinfo
+++ b/devel/xulrunner/distinfo
@@ -1,23 +1,16 @@
-$NetBSD: distinfo,v 1.104 2013/05/14 12:41:02 joerg Exp $
+$NetBSD: distinfo,v 1.105 2013/05/19 08:47:41 ryoon Exp $
-SHA1 (firefox-20.0.1.source.tar.bz2) = 8d8f775293982f2526bb2da5dc743cd20a47af47
-RMD160 (firefox-20.0.1.source.tar.bz2) = a09371db65b3fd052197039a1e0f6c1f4e37823a
-Size (firefox-20.0.1.source.tar.bz2) = 100154949 bytes
-SHA1 (patch-aa) = 41c49c9f8c6447bd42477869005827729bf9a8c9
-SHA1 (patch-ab) = b60129618bb0945b65636f99980bdc026ec16fd9
-SHA1 (patch-ac) = 609a094d01878da0bdfb008a0cb30b96bdb4c6ce
-SHA1 (patch-ae) = adbf406cf3158ff2ecb847673d9d91edb200f034
-SHA1 (patch-ag) = 3e6f3e2e9d0c7c498fbc39eabae798d1a7f8fb12
+SHA1 (firefox-21.0.source.tar.bz2) = e63b5488eaec1956947f59609d5839332ba7ffe1
+RMD160 (firefox-21.0.source.tar.bz2) = 3a62e242a7829f98978436464ab3306c96e58cdd
+Size (firefox-21.0.source.tar.bz2) = 105558931 bytes
+SHA1 (patch-aa) = 51f0d88210cc3ebc44b73804d8c1f7edc557b1e0
SHA1 (patch-ak) = 971ddb1f12b14bcee604c9d7e72da5e7bf47d9be
SHA1 (patch-al) = 553c6042a98e4b381a46eec50c02cff349d88bd2
SHA1 (patch-am) = c5aa36638b666d99d4510f345802de259579e884
SHA1 (patch-an) = 4c8ca17d259f56863d6066f1e3de0d81fefdcd6c
SHA1 (patch-ao) = ebf95a9abf76439cdd890ea34f75f0d8d1114fe0
-SHA1 (patch-as) = 1cd7a9c7e1cf7603f2d72111f3abc9d3747a9c32
-SHA1 (patch-at) = c5cb543ab423657d546559de0603356c9bc2f2f3
-SHA1 (patch-au) = d577fc9a0091915e36d67a6ad82f0e7bfc107e7b
-SHA1 (patch-av) = 20dcf216808667d71e527a6126b1a9b76130a13b
-SHA1 (patch-aw) = 237be5fa18846b51b67ef2c2ea5f4fb427c529aa
+SHA1 (patch-as) = 076082d8b2c6f7ef91c152497a4cd7d60545e70b
+SHA1 (patch-au) = 09ebe8f5cb73f7746e1f640ff78a5ea966369d02
SHA1 (patch-az) = 2012a7fef2eac59f48ff21fea0e205e89b313e46
SHA1 (patch-ba) = 1692053c1b0e65dd38bcf37cc1a80390cce081eb
SHA1 (patch-bd) = 1a24cb9e4dc312725d0a6ffdf202b6f3e98d17fb
@@ -28,27 +21,86 @@ SHA1 (patch-build_autoconf_nss.m4) = 4731f46a41f6d4ff31a6da07c9badb328a0f676f
SHA1 (patch-config_baseconfig.mk) = 4f8e966e5e9684c165929d02f82099fb4befcc75
SHA1 (patch-config_stl__wrappers_ios) = 00d723e2f2f252485350ede5833f0bb84c1235c1
SHA1 (patch-config_stl__wrappers_ostream) = 7be7fe36704ffbdc070a113b46b4f391a598206b
+SHA1 (patch-config_system-headers) = 5957acc2b4d14a1a9e71791bca3eb76c448a02b2
SHA1 (patch-config_system__wrappers_unwind.h) = b3bdac0710179b9c8f8eabd824216d0114504491
+SHA1 (patch-content_media_AudioStream.cpp) = 28533c67c744ed8c721c81b90250acad8251fd14
+SHA1 (patch-extensions_auth_nsAuthGSSAPI.cpp) = 548886fc4a86a988f3f91650061ddc04f37653a8
SHA1 (patch-gfx_skia_Makefile.in) = ddc7e4a375f4cfd7dd76c5b37835bbcd3ad13cf1
SHA1 (patch-gfx_skia_src_sfnt_SkOTTable__head.h) = 493fced792610ea1ce5ab6b1e043ef36b33f8279
SHA1 (patch-gfx_skia_src_sfnt_SkOTTable__name.h) = 61a6611b3dd08f5bd56681244eefbfa3f209f6a1
SHA1 (patch-gfx_skia_src_sfnt_SkSFNTHeader.h) = 9d997d23ed80370e5b36648b9b35d80c5db88be8
SHA1 (patch-gfx_thebes_gfxPlatform.cpp) = 1ebc8e894e9d63961f49ba0798ad3eed100d95a6
+SHA1 (patch-image_decoders_nsJPEGDecoder.cpp) = e5df11499b1ec14e1d4c9a1408c0611d1c4e0574
+SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 12f3e063cf3fef23f0e3e0fdba5d5a4c1fc32af3
SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = a6175d1e97966944f14cb96ed3527e879412534b
SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = faed34d94646453cd01acbdec1da2d9ec0f3d05f
SHA1 (patch-ipc_ipdl_ipdl_lower.py) = 4025c0a4e149d9b2087331e10b342734fa77a905
-SHA1 (patch-js_src_jsgc.cpp) = c514b7fb84002a1909638cd7f3386931cb0f2551
-SHA1 (patch-js_src_methodjit_MethodJIT.cpp) = f9b13d9e7910613c82f6b1ee4131a6c4eb1d4580
+SHA1 (patch-js_src_Makefile.in) = 98734e93974965419da3d3706f94e1be515799e1
+SHA1 (patch-js_src_config_system-headers) = ea170db4562cd69913e91d186b238ecbea9a3f83
+SHA1 (patch-js_src_jscompartment.h) = a29ec049ce085ec2a70fffd34647fc78062b7a2e
+SHA1 (patch-js_src_jspropertycacheinlines.h) = a34a82193212e945dcba6f0310973117a6c22941
+SHA1 (patch-js_src_methodjit_MethodJIT.cpp) = 77685fc735bde4e592a3ddc29fa05b13a694fa8a
+SHA1 (patch-js_src_vm_ObjectImpl-inl.h) = 7b9f7c87980e13a7b801de473737489c5f57921d
SHA1 (patch-mb) = d6f624296ac83bebfdb4ad5e06e64d6d0c2541a3
SHA1 (patch-md) = 7fd607a3edd2ea5f7a5671fc6d06fba69c46c36f
SHA1 (patch-me) = 2ff755782bd35caded8934000d039976dad44103
-SHA1 (patch-mp) = 2d426af76011d1caaddf347941fcdaae6b524524
+SHA1 (patch-media_libsoundtouch_src_cpu__detect__x86.cpp) = e4472576ec9e8c46fb0a2d5622986503cf2767aa
+SHA1 (patch-media_mtransport_objs.mk) = 1877b73706451bc9ff5254ab32d5e2edb9f36883
+SHA1 (patch-media_mtransport_test_Makefile.in) = 9d2364f2bfd0f5fbafb6d0204f98ae0df4e5664c
+SHA1 (patch-media_mtransport_third__party_nICEr_nicer.gyp) = 3ed56a7c9ea61f5910a7d608a1bd404b9ce58344
+SHA1 (patch-media_mtransport_third__party_nICEr_src_stun_addrs.c) = 9a501cdf1fe50a35849f280718462c003f0fded4
+SHA1 (patch-media_mtransport_third__party_nICEr_src_stun_stun.h) = 90eb67c93dabf4d84bf3df521f1d53aa874d3050
+SHA1 (patch-media_mtransport_third__party_nICEr_src_util_mbslen.c) = e166ce56f20b026f81e3de208db292e8332d6de0
+SHA1 (patch-media_mtransport_third__party_nrappkit_nrappkit.gyp) = 68b7c5a15ff6027baccf18130673670d51d6a724
+SHA1 (patch-media_mtransport_third__party_nrappkit_src_log_r__log.c) = cf0e6c0d9278578f27ec19c4a3af211bec273ba8
+SHA1 (patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h) = edbd94c944cfd0f6581acd4e5ed18bed7e3e142d
+SHA1 (patch-media_mtransport_third__party_nrappkit_src_util_util.c) = 8406228a493c973121f0019138cd7007bfa3340b
+SHA1 (patch-media_webrtc_signaling_signaling.gyp) = 3541d06aeb691032d9e63f9d5a17af555f2ee8dc
+SHA1 (patch-media_webrtc_signaling_src_sipcc_cpr_darwin_cpr__darwin__ipc.c) = c6e604c731e1adecfff5706299b7999e479273e2
+SHA1 (patch-media_webrtc_signaling_test_Makefile.in) = cdc7d5b87a465ba57d2f0523bb26a5cbfdaa03df
+SHA1 (patch-media_webrtc_trunk_build_common.gypi) = 10fbead1d12fa95bccbefc0d0c6b3fe4c4a288e8
+SHA1 (patch-media_webrtc_trunk_testing_gtest_include_gtest_internal_gtest-port.h) = 09b8003606ee5a1cdcbba7caaf1de1895e24b3ac
+SHA1 (patch-media_webrtc_trunk_third__party_libyuv_libyuv.gyp) = 74aafdb3a83f44576f1d821083d963ff8c78df9c
+SHA1 (patch-media_webrtc_trunk_tools_gyp_pylib_gyp_generator_mozmake.py) = f465afb37d74988764e4dd362911063b3697cfbd
+SHA1 (patch-media_webrtc_trunk_webrtc_build_common.gypi) = 7c696b7e27542634ead8bfe16667a39d23c85dc8
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device.gypi) = 590f92eec70f5e3ab663489050e5449f08515121
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device__utility.cc) = 9767c35fa45b54fb28d67479efa86cdc769aa447
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc) = e407e7714b9eb7cc79a8976ec62fc2092d8aeac1
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_rtp__utility.cc) = 29e331acf449bdb212305b96c7cb44e93721e335
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_udp__transport_source_udp__transport__impl.cc) = 96b312ee61fdcb94004ed5aa29eefb0d5a51af81
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_utility_source_rtp__dump__impl.cc) = 8610717389ae840b23252ea0f15068a03e3c99be
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_device__info__impl.cc) = fe09632ff216ba621ef6953ab3cb5354842d3a30
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc) = 6dfa87bc5a36fb9eb2555b1081455526948966f4
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc) = ec735e09515434f504fd1c16584b99fa61aff2ad
+SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi) = 7377ddf7a57d84c270a5387e0d2eaa51b6ee804b
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_interface_asm__defines.h) = 8a061afbaae0948f46152a45b14160b3885c08b0
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_interface_tick__util.h) = c96ef7e729868da5d897a71de214958d2f5b7c67
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_atomic32__posix.cc) = 8178fdc13f5961a7d70fa75eb33968f55a76e24e
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable.cc) = 918474cffa9b10134a8aedc32b93289e923f9f4e
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable__posix.cc) = 43fa25f89b475cc8132d4863ab248e1e96fe13ea
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu.cc) = 1875fc230d3c02e05f9d848b9af9f60afe9474f4
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu__info.cc) = b92bb51b6640eaa16a18ed2b6bf186fed6cb7125
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp) = 853b178ca1b95c6907ca2fc2de9865807661a8f5
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_thread__posix.cc) = 8bd3a5791027aa788fac9da4170339e2a42750e5
+SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_trace__posix.cc) = 7cb19fb82210887a6c6c17a5e60cb069f06466cc
+SHA1 (patch-media_webrtc_trunk_webrtc_typedefs.h) = 9a62eb31eb5acb8ff240244273de42d8c66c45a7
+SHA1 (patch-media_webrtc_trunk_webrtc_video__engine_vie__defines.h) = 33323114b03a4231c810e56964e354cb06e90f09
+SHA1 (patch-media_webrtc_trunk_webrtc_voice__engine_voe__network__impl.cc) = 42af9d8fb83ff2c3ea1f7353a15555c07ceca2b8
+SHA1 (patch-media_webrtc_trunk_webrtc_voice__engine_voice__engine__defines.h) = 8606dfda5b8a3090789e5599b12d0668632fd945
+SHA1 (patch-media_webrtc_webrtc__config.gypi) = be2e3128d84b2acdbf7754c71752453f42482c6b
+SHA1 (patch-mp) = bc64a6d75df5cf9482d96895f0270b729ff57997
+SHA1 (patch-netwerk_sctp_src_Makefile.in) = e86199357b57c64dac95e5eff5c0d29509dce628
+SHA1 (patch-netwerk_sctp_src_netinet_sctp__os__userspace.h) = d1af7cc0eaf201041e3de4128c516a6f71d7b773
+SHA1 (patch-netwerk_sctp_src_user__recv__thread.c) = cf26945441f74c581aeb5a8d7435780f4a48a607
+SHA1 (patch-netwerk_sctp_src_user__socketvar.h) = 3b001cea73ed1162d11391efcba38d1bba2ff4f7
SHA1 (patch-pa) = 8045cf02d83e87684b497dd30e890107f76a3bdf
SHA1 (patch-pb) = 7665d8156fa734cdc2e1746558cc08b7eefce98e
SHA1 (patch-pc) = 099a4f6ac32fd2f45c91eb525750bde96684693a
SHA1 (patch-pd) = 9750259906ee270f6898e3c77288aa5260d6e9a7
SHA1 (patch-pg) = d6d6071cbe8a771873e1537034c0bb9186f8e245
SHA1 (patch-rc) = 2733724442a2cb49c5091146fd7e6001af686121
+SHA1 (patch-security_manager_ssl_src_nsNSSComponent.cpp) = 15e9466d60e60f93a27fe23aadfea6e1d59ad0bc
+SHA1 (patch-toolkit_library_Makefile.in) = 0c91d647f0f3a4653d39f11c9d8fd63611235932
SHA1 (patch-toolkit_toolkit-tiers.mk) = 59e5174edd04f3c4e5d6ebb450a42e4e1dee0801
SHA1 (patch-xa) = 9182485283599a96663358bdc680c5cdb1d94a78
SHA1 (patch-xb) = 30eea880b40cee45d1235d3292fead4b5a54bbaa
@@ -65,4 +117,7 @@ SHA1 (patch-xn) = c042e39d93706934ec03c78be3dc6e224ac62c0e
SHA1 (patch-xo) = aae6107dcfaf731bd3e9962d953fb8701fc5f163
SHA1 (patch-xpcom_Makefile.in) = e5f77ed56ed4ad26a08a67085e3dfec0e7af3fa6
SHA1 (patch-xpcom_ds_TimeStamp.h) = a1fb060f91720eb330f102b28d9373bbdbe96e30
-SHA1 (patch-xpcom_io_nsMultiplexInputStream_cpp) = 0e52d36de427d15cfb7df8f5c7ff4695f627cc6c
+SHA1 (patch-xpcom_io_nsMultiplexInputStream_cpp) = 899e4797dcef5c295cc7afd7cc31f593a7d46a19
+SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp) = 8cd42915cd32756b55894a773a1e6d7c012b4467
+SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp) = e9e336817c172187f3e15ddf539a8a2176e3e952
+SHA1 (patch-xpcom_string_public_nsAlgorithm.h) = 6cdce480510f0cebbb1271de385b6ec7f5c3ddee
diff --git a/devel/xulrunner/patches/patch-aa b/devel/xulrunner/patches/patch-aa
index 3aa98e923e1..03bae1beae7 100644
--- a/devel/xulrunner/patches/patch-aa
+++ b/devel/xulrunner/patches/patch-aa
@@ -1,8 +1,26 @@
-$NetBSD: patch-aa,v 1.18 2013/04/05 13:30:17 ryoon Exp $
+$NetBSD: patch-aa,v 1.19 2013/05/19 08:47:41 ryoon Exp $
---- configure.in.orig 2013-03-26 22:17:37.000000000 +0000
+--- configure.in.orig 2013-05-11 19:19:23.000000000 +0000
+++ configure.in
-@@ -2130,6 +2130,9 @@ ia64*-hpux*)
+@@ -1404,6 +1404,17 @@ if test "$GNU_CC"; then
+ CFLAGS=$_SAVE_CFLAGS
+ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
+
++ # Check for -msse4.1 on $CC
++ AC_MSG_CHECKING([if toolchain supports -msse4.1 option])
++ HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=
++ _SAVE_CFLAGS=$CFLAGS
++ CFLAGS="$CFLAGS -msse4.1"
++ AC_TRY_COMPILE([asm ("pmulld %xmm6,%xmm0");],,AC_MSG_RESULT([yes])
++ [HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=1],
++ AC_MSG_RESULT([no]))
++ CFLAGS=$_SAVE_CFLAGS
++ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1)
++
+ # Turn on GNU-specific warnings:
+ # -Wall - turn on a lot of warnings
+ # -Wpointer-arith - good to have
+@@ -2066,6 +2077,9 @@ ia64*-hpux*)
if test -z "$MC"; then
MC=mc.exe
fi
@@ -12,7 +30,24 @@ $NetBSD: patch-aa,v 1.18 2013/04/05 13:30:17 ryoon Exp $
;;
*-mingw*)
DSO_CFLAGS=
-@@ -3071,6 +3074,9 @@ dnl ====================================
+@@ -2848,6 +2862,7 @@ EOF
+ #pragma GCC visibility push(hidden)
+ #pragma GCC visibility push(default)
+ #include <string.h>
++#include <iterator>
+ #pragma GCC visibility pop
+
+ __attribute__ ((visibility ("default"))) void Func() {
+@@ -2856,7 +2871,7 @@ __attribute__ ((visibility ("default")))
+ }
+ 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
++ if ! ${CXX-c++} ${CXXFLAGS} ${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
+@@ -3018,6 +3033,9 @@ dnl ====================================
case $target in
*-hpux11.*)
;;
@@ -22,17 +57,17 @@ $NetBSD: patch-aa,v 1.18 2013/04/05 13:30:17 ryoon Exp $
*)
AC_CHECK_LIB(c_r, gethostbyname_r)
;;
-@@ -3372,6 +3378,9 @@ AC_CACHE_CHECK(
+@@ -3319,6 +3337,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
++ #ifdef __NetBSD__
++ #error use of global _res variable in threaded programs is not portable
++ #endif
#include <resolv.h>
],
[int foo = res_ninit(&_res);],
-@@ -4042,6 +4051,14 @@ if test -n "$YASM"; then
+@@ -3989,6 +4010,14 @@ if test -n "$YASM"; then
_YASM_BUILD=` echo ${YASM_VERSION} | $AWK -F\. '{ print $4 }'`
fi
@@ -47,7 +82,43 @@ $NetBSD: patch-aa,v 1.18 2013/04/05 13:30:17 ryoon Exp $
if test -z "$SKIP_LIBRARY_CHECKS"; then
dnl system JPEG support
dnl ========================================================
-@@ -5326,8 +5343,8 @@ AC_SUBST(MOZ_WEBRTC_IN_LIBXUL)
+@@ -4016,11 +4045,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then
+ #include <jpeglib.h> ],
+ [ #if JPEG_LIB_VERSION < $MOZJPEG
+ #error "Insufficient JPEG library version ($MOZJPEG required)."
+- #endif
+- #ifndef JCS_EXTENSIONS
+- #error "libjpeg-turbo JCS_EXTENSIONS required"
+- #endif
+- ],
++ #endif ],
+ MOZ_NATIVE_JPEG=1,
+ AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg]))
+ fi
+@@ -5212,7 +5237,11 @@ if test -n "$MOZ_WEBRTC"; then
+ dnl Make sure doesn't get matched by *-linux*
+ MOZ_WEBRTC=
+ ;;
+- *-linux*|*-mingw*|*-darwin*)
++ *-netbsd*)
++ dnl Custom socketvar.h is not compatible with NetBSD.
++ MOZ_WEBRTC=
++ ;;
++ *-linux*|*-mingw*|*-darwin*|*-dragonfly*|*-freebsd*|*-openbsd*)
+ dnl Leave enabled
+ ;;
+ *)
+@@ -5263,6 +5292,9 @@ if test -n "$MOZ_WEBRTC"; then
+ MOZ_VP8_ENCODER=1
+ MOZ_VP8_ERROR_CONCEALMENT=1
+
++ dnl with libv4l2 we can support more cameras
++ PKG_CHECK_MODULES(MOZ_LIBV4L2, libv4l2)
++
+ dnl OpenSLES is only available in Android 2.3 and later; we'll change this
+ dnl hard dependency to a dynamic load with graceful runtime failure before
+ dnl we make --enable-webrtc on by default in Android (bug 815905)
+@@ -5299,8 +5331,8 @@ AC_SUBST(MOZ_WEBRTC_IN_LIBXUL)
AC_SUBST(MOZ_SCTP)
AC_SUBST(MOZ_SRTP)
@@ -58,7 +129,7 @@ $NetBSD: patch-aa,v 1.18 2013/04/05 13:30:17 ryoon Exp $
MOZ_SAMPLE_TYPE_S16=1
AC_DEFINE(MOZ_SAMPLE_TYPE_S16)
AC_SUBST(MOZ_SAMPLE_TYPE_S16)
-@@ -5731,7 +5748,7 @@ MOZ_ALSA=)
+@@ -5704,7 +5736,7 @@ MOZ_ALSA=)
if test -n "$MOZ_ALSA"; then
AC_DEFINE(MOZ_CUBEB)
@@ -67,3 +138,68 @@ $NetBSD: patch-aa,v 1.18 2013/04/05 13:30:17 ryoon Exp $
[echo "$MOZ_ALSA_PKG_ERRORS"
AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])])
fi
+@@ -8311,16 +8343,26 @@ MOZ_ARG_DISABLE_BOOL(necko-wifi,
+ NECKO_WIFI=,
+ NECKO_WIFI=1)
+
+-if test "$OS_ARCH" = "OS2"; then
+- dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
+- NECKO_WIFI=
+-fi
+-if test "$NECKO_WIFI" -a \
+- "$OS_ARCH" != "Linux" -a \
+- "$OS_ARCH" != "Darwin" -a \
+- "$OS_ARCH" != "SunOS" -a \
+- "$OS_ARCH" != "WINNT"; then
+- AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi])
++if test "$NECKO_WIFI"; then
++ case "$OS_TARGET" in
++ Android)
++ ;;
++ Darwin)
++ ;;
++ SunOS)
++ ;;
++ WINNT)
++ ;;
++ OS2)
++ dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
++ NECKO_WIFI=
++ ;;
++ *)
++ if test -z "$MOZ_ENABLE_DBUS"; then
++ AC_MSG_ERROR([Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi])
++ fi
++ ;;
++ esac
+ fi
+
+ if test "$NECKO_WIFI"; then
+@@ -8981,6 +9023,27 @@ elif test "${OS_TARGET}" = "Android"; th
+ fi
+ fi
+
++# Keep libcubeb and audio_device backends in sync
++if test -n "$MOZ_ALSA"; then
++ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_alsa_audio=1"
++else
++ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_alsa_audio=0"
++fi
++if test -n "$MOZ_PULSEAUDIO"; then
++ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=1"
++else
++ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=0"
++fi
++
++# Don't try to compile sse4.1 code if toolchain doesn't support
++if test -z "$HAVE_TOOLCHAIN_SUPPORT_MSSE4_1"; then
++ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D yuv_disable_asm=1"
++fi
++
++if test -n "$MOZ_LIBV4L2_LIBS"; then
++ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D use_libv4l2=1"
++fi
++
+ if test -n "$MOZ_WEBRTC"; then
+ AC_MSG_RESULT("generating WebRTC Makefiles...")
+
diff --git a/devel/xulrunner/patches/patch-ab b/devel/xulrunner/patches/patch-ab
deleted file mode 100644
index a4e4ff10beb..00000000000
--- a/devel/xulrunner/patches/patch-ab
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD: patch-ab,v 1.6 2013/01/10 15:01:30 ryoon Exp $
-
---- nsprpub/pr/include/md/_netbsd.h.orig 2013-01-04 23:44:43.000000000 +0000
-+++ 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/devel/xulrunner/patches/patch-ac b/devel/xulrunner/patches/patch-ac
deleted file mode 100644
index 963e7dbe65c..00000000000
--- a/devel/xulrunner/patches/patch-ac
+++ /dev/null
@@ -1,82 +0,0 @@
-$NetBSD: patch-ac,v 1.6 2013/01/10 15:01:30 ryoon Exp $
-
---- nsprpub/configure.in.orig 2013-01-04 23:44:43.000000000 +0000
-+++ 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*)
-@@ -2069,6 +2096,7 @@ tools are selected during the Xcode/Deve
- 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
-@@ -2787,7 +2815,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
- ;;
- *)
-@@ -2825,7 +2853,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.
-@@ -2906,7 +2934,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/devel/xulrunner/patches/patch-ae b/devel/xulrunner/patches/patch-ae
deleted file mode 100644
index 030f932c4e3..00000000000
--- a/devel/xulrunner/patches/patch-ae
+++ /dev/null
@@ -1,58 +0,0 @@
-$NetBSD: patch-ae,v 1.7 2013/01/10 15:01:30 ryoon Exp $
-
---- nsprpub/pr/src/misc/prnetdb.c.orig 2013-01-04 23:44:43.000000000 +0000
-+++ 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/devel/xulrunner/patches/patch-ag b/devel/xulrunner/patches/patch-ag
deleted file mode 100644
index ecd5989e69d..00000000000
--- a/devel/xulrunner/patches/patch-ag
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD: patch-ag,v 1.6 2013/01/10 15:01:30 ryoon Exp $
-
---- nsprpub/pr/include/md/_freebsd.h.orig 2013-01-04 23:44:43.000000000 +0000
-+++ 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/devel/xulrunner/patches/patch-as b/devel/xulrunner/patches/patch-as
index ecc24d51f53..d80dabb8d74 100644
--- a/devel/xulrunner/patches/patch-as
+++ b/devel/xulrunner/patches/patch-as
@@ -1,10 +1,27 @@
-$NetBSD: patch-as,v 1.10 2013/01/10 15:01:30 ryoon Exp $
+$NetBSD: patch-as,v 1.11 2013/05/19 08:47:41 ryoon Exp $
Treat DragonFly like FreeBSD.
---- js/src/configure.in.orig 2013-01-04 23:44:34.000000000 +0000
+--- js/src/configure.in.orig 2013-05-11 19:19:32.000000000 +0000
+++ js/src/configure.in
-@@ -2718,7 +2718,7 @@ then
+@@ -2399,6 +2399,7 @@ EOF
+ #pragma GCC visibility push(hidden)
+ #pragma GCC visibility push(default)
+ #include <string.h>
++#include <iterator>
+ #pragma GCC visibility pop
+
+ __attribute__ ((visibility ("default"))) void Func() {
+@@ -2407,7 +2408,7 @@ __attribute__ ((visibility ("default")))
+ }
+ 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
++ if ! ${CXX-c++} ${CXXFLAGS} ${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
+@@ -2628,7 +2629,7 @@ then
fi
case "$target" in
@@ -13,7 +30,17 @@ Treat DragonFly like FreeBSD.
AC_DEFINE(_REENTRANT)
AC_DEFINE(_THREAD_SAFE)
dnl -pthread links in -lpthread, so don't specify it explicitly.
-@@ -3577,7 +3577,7 @@ if test "$MOZ_MEMORY"; then
+@@ -2711,6 +2712,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);],
+@@ -3486,7 +3490,7 @@ if test "$MOZ_MEMORY"; then
*-darwin*)
AC_DEFINE(MOZ_MEMORY_DARWIN)
;;
diff --git a/devel/xulrunner/patches/patch-at b/devel/xulrunner/patches/patch-at
deleted file mode 100644
index beba33caf94..00000000000
--- a/devel/xulrunner/patches/patch-at
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-at,v 1.9 2013/01/10 15:01:30 ryoon Exp $
-
---- gfx/qcms/qcmstypes.h.orig 2013-01-04 23:44:33.000000000 +0000
-+++ gfx/qcms/qcmstypes.h
-@@ -11,6 +11,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/devel/xulrunner/patches/patch-au b/devel/xulrunner/patches/patch-au
index db76afd14bf..fe5337ada9f 100644
--- a/devel/xulrunner/patches/patch-au
+++ b/devel/xulrunner/patches/patch-au
@@ -1,10 +1,10 @@
-$NetBSD: patch-au,v 1.7 2013/01/10 15:01:30 ryoon Exp $
+$NetBSD: patch-au,v 1.8 2013/05/19 08:47:41 ryoon Exp $
- Fix device name on NetBSD
- SOUND_VERSION just isn't a reliable way to detect features supported by
particular OSS implementation.
---- media/libsydneyaudio/src/sydney_audio_oss.c.orig 2013-01-04 23:44:40.000000000 +0000
+--- media/libsydneyaudio/src/sydney_audio_oss.c.orig 2013-05-11 19:19:43.000000000 +0000
+++ media/libsydneyaudio/src/sydney_audio_oss.c
@@ -23,7 +23,7 @@
// support only versions newer than 3.6.1
@@ -28,3 +28,14 @@ $NetBSD: patch-au,v 1.7 2013/01/10 15:01:30 ryoon Exp $
s->output_fd = -1;
s->thread_id = 0;
s->playing = 0;
+@@ -446,6 +451,10 @@ static void audio_callback(void* data)
+ printf("!"); /* not enough audio data */
+ #endif
+ bytes = bytes-bytes_to_copy;
++ struct timespec ts = {0, 1000000};
++ pthread_mutex_unlock(&s->mutex);
++ nanosleep(&ts, NULL);
++ pthread_mutex_lock(&s->mutex);
+ break;
+ }
+ free(s->bl_head);
diff --git a/devel/xulrunner/patches/patch-av b/devel/xulrunner/patches/patch-av
deleted file mode 100644
index a57b6e1ee10..00000000000
--- a/devel/xulrunner/patches/patch-av
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD: patch-av,v 1.5 2013/01/10 15:01:30 ryoon Exp $
-
---- xulrunner/app/nsXULRunnerApp.cpp.orig 2013-01-04 23:44:47.000000000 +0000
-+++ 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/devel/xulrunner/patches/patch-aw b/devel/xulrunner/patches/patch-aw
deleted file mode 100644
index 4fd37914eb1..00000000000
--- a/devel/xulrunner/patches/patch-aw
+++ /dev/null
@@ -1,34 +0,0 @@
-$NetBSD: patch-aw,v 1.6 2013/01/10 15:01:30 ryoon Exp $
-
---- xulrunner/stub/nsXULStub.cpp.orig 2013-01-04 23:44:47.000000000 +0000
-+++ 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/devel/xulrunner/patches/patch-config_system-headers b/devel/xulrunner/patches/patch-config_system-headers
new file mode 100644
index 00000000000..19a8ed67214
--- /dev/null
+++ b/devel/xulrunner/patches/patch-config_system-headers
@@ -0,0 +1,10 @@
+$NetBSD: patch-config_system-headers,v 1.5 2013/05/19 08:47:41 ryoon Exp $
+
+--- config/system-headers.orig 2013-05-11 19:19:23.000000000 +0000
++++ config/system-headers
+@@ -1126,3 +1126,5 @@ sys/thr.h
+ sys/user.h
+ kvm.h
+ spawn.h
++err.h
++xlocale.h
diff --git a/devel/xulrunner/patches/patch-content_media_AudioStream.cpp b/devel/xulrunner/patches/patch-content_media_AudioStream.cpp
new file mode 100644
index 00000000000..a73a3a754f2
--- /dev/null
+++ b/devel/xulrunner/patches/patch-content_media_AudioStream.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-content_media_AudioStream.cpp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- content/media/AudioStream.cpp.orig 2013-05-11 19:19:24.000000000 +0000
++++ content/media/AudioStream.cpp
+@@ -314,7 +314,7 @@ nsresult NativeAudioStream::Init(int32_t
+ mChannels = aNumChannels;
+
+ if (sa_stream_create_pcm(reinterpret_cast<sa_stream_t**>(&mAudioHandle),
+- NULL,
++ "Mozilla",
+ SA_MODE_WRONLY,
+ SA_PCM_FORMAT_S16_NE,
+ aRate,
diff --git a/devel/xulrunner/patches/patch-extensions_auth_nsAuthGSSAPI.cpp b/devel/xulrunner/patches/patch-extensions_auth_nsAuthGSSAPI.cpp
new file mode 100644
index 00000000000..41d84222e68
--- /dev/null
+++ b/devel/xulrunner/patches/patch-extensions_auth_nsAuthGSSAPI.cpp
@@ -0,0 +1,14 @@
+$NetBSD: patch-extensions_auth_nsAuthGSSAPI.cpp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- extensions/auth/nsAuthGSSAPI.cpp.orig 2013-05-11 19:19:29.000000000 +0000
++++ extensions/auth/nsAuthGSSAPI.cpp
+@@ -39,6 +39,9 @@ typedef KLStatus (*KLCacheHasValidTicket
+ #endif
+
+ #if defined(HAVE_RES_NINIT)
++#include <sys/types.h>
++#include <netinet/in.h>
++#include <arpa/nameser.h>
+ #include <resolv.h>
+ #endif
+
diff --git a/devel/xulrunner/patches/patch-image_decoders_nsJPEGDecoder.cpp b/devel/xulrunner/patches/patch-image_decoders_nsJPEGDecoder.cpp
new file mode 100644
index 00000000000..3d59eb964b5
--- /dev/null
+++ b/devel/xulrunner/patches/patch-image_decoders_nsJPEGDecoder.cpp
@@ -0,0 +1,363 @@
+$NetBSD: patch-image_decoders_nsJPEGDecoder.cpp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- image/decoders/nsJPEGDecoder.cpp.orig 2013-05-11 19:19:31.000000000 +0000
++++ image/decoders/nsJPEGDecoder.cpp
+@@ -19,13 +19,28 @@
+
+ extern "C" {
+ #include "iccjpeg.h"
+-}
+
++#ifdef JCS_EXTENSIONS
+ #if defined(IS_BIG_ENDIAN)
+ #define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB
+ #else
+ #define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX
+ #endif
++#else
++/* Colorspace conversion (copied from jpegint.h) */
++struct jpeg_color_deconverter {
++ JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
++ JMETHOD(void, color_convert, (j_decompress_ptr cinfo,
++ JSAMPIMAGE input_buf, JDIMENSION input_row,
++ JSAMPARRAY output_buf, int num_rows));
++};
++
++METHODDEF(void)
++ycc_rgb_convert_argb (j_decompress_ptr cinfo,
++ JSAMPIMAGE input_buf, JDIMENSION input_row,
++ JSAMPARRAY output_buf, int num_rows);
++#endif
++}
+
+ 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:
++#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;
+ }
++#else
++ mInfo.out_color_space = JCS_RGB;
++#endif
+ break;
+ case JCS_CMYK:
+ case JCS_YCCK:
+@@ -413,6 +432,15 @@ nsJPEGDecoder::WriteInternal(const char
+ return; /* I/O suspension */
+ }
+
++#ifndef JCS_EXTENSIONS
++ /* Force to use our YCbCr to Packed RGB converter when possible */
++ if (!mTransform && (mCMSMode != eCMSMode_All) &&
++ mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) {
++ /* Special case for the most common case: transform from YCbCr direct into packed ARGB */
++ mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/
++ mInfo.cconvert->color_convert = ycc_rgb_convert_argb;
++ }
++#endif
+
+ /* If this is a progressive JPEG ... */
+ mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
+@@ -558,7 +586,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
+ uint32_t *imageRow = ((uint32_t*)mImageData) +
+ (mInfo.output_scanline * mInfo.output_width);
+
++#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 */
+ if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
+ *suspend = true; /* suspend */
+@@ -868,6 +900,282 @@ term_source (j_decompress_ptr jd)
+ } // namespace mozilla
+
+
++#ifndef JCS_EXTENSIONS
++/**************** YCbCr -> Cairo's RGB24/ARGB32 conversion: most common case **************/
++
++/*
++ * YCbCr is defined per CCIR 601-1, except that Cb and Cr are
++ * normalized to the range 0..MAXJSAMPLE rather than -0.5 .. 0.5.
++ * The conversion equations to be implemented are therefore
++ * R = Y + 1.40200 * Cr
++ * G = Y - 0.34414 * Cb - 0.71414 * Cr
++ * B = Y + 1.77200 * Cb
++ * where Cb and Cr represent the incoming values less CENTERJSAMPLE.
++ * (These numbers are derived from TIFF 6.0 section 21, dated 3-June-92.)
++ *
++ * To avoid floating-point arithmetic, we represent the fractional constants
++ * as integers scaled up by 2^16 (about 4 digits precision); we have to divide
++ * the products by 2^16, with appropriate rounding, to get the correct answer.
++ * Notice that Y, being an integral input, does not contribute any fraction
++ * so it need not participate in the rounding.
++ *
++ * For even more speed, we avoid doing any multiplications in the inner loop
++ * by precalculating the constants times Cb and Cr for all possible values.
++ * For 8-bit JSAMPLEs this is very reasonable (only 256 entries per table);
++ * for 12-bit samples it is still acceptable. It's not very reasonable for
++ * 16-bit samples, but if you want lossless storage you shouldn't be changing
++ * colorspace anyway.
++ * The Cr=>R and Cb=>B values can be rounded to integers in advance; the
++ * values for the G calculation are left scaled up, since we must add them
++ * together before rounding.
++ */
++
++#define SCALEBITS 16 /* speediest right-shift on some machines */
++
++/* Use static tables for color processing. */
++/* Four tables, each 256 entries of 4 bytes totals 4K which is not bad... */
++
++const int Cr_r_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
++ -0xb3, -0xb2, -0xb1, -0xaf, -0xae, -0xac,
++ -0xab, -0xaa, -0xa8, -0xa7, -0xa5, -0xa4,
++ -0xa3, -0xa1, -0xa0, -0x9e, -0x9d, -0x9c,
++ -0x9a, -0x99, -0x97, -0x96, -0x95, -0x93,
++ -0x92, -0x90, -0x8f, -0x8e, -0x8c, -0x8b,
++ -0x89, -0x88, -0x87, -0x85, -0x84, -0x82,
++ -0x81, -0x80, -0x7e, -0x7d, -0x7b, -0x7a,
++ -0x79, -0x77, -0x76, -0x74, -0x73, -0x72,
++ -0x70, -0x6f, -0x6d, -0x6c, -0x6b, -0x69,
++ -0x68, -0x66, -0x65, -0x64, -0x62, -0x61,
++ -0x5f, -0x5e, -0x5d, -0x5b, -0x5a, -0x58,
++ -0x57, -0x56, -0x54, -0x53, -0x51, -0x50,
++ -0x4f, -0x4d, -0x4c, -0x4a, -0x49, -0x48,
++ -0x46, -0x45, -0x43, -0x42, -0x40, -0x3f,
++ -0x3e, -0x3c, -0x3b, -0x39, -0x38, -0x37,
++ -0x35, -0x34, -0x32, -0x31, -0x30, -0x2e,
++ -0x2d, -0x2b, -0x2a, -0x29, -0x27, -0x26,
++ -0x24, -0x23, -0x22, -0x20, -0x1f, -0x1d,
++ -0x1c, -0x1b, -0x19, -0x18, -0x16, -0x15,
++ -0x14, -0x12, -0x11, -0x0f, -0x0e, -0x0d,
++ -0x0b, -0x0a, -0x08, -0x07, -0x06, -0x04,
++ -0x03, -0x01, 0x00, 0x01, 0x03, 0x04,
++ 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0d,
++ 0x0e, 0x0f, 0x11, 0x12, 0x14, 0x15,
++ 0x16, 0x18, 0x19, 0x1b, 0x1c, 0x1d,
++ 0x1f, 0x20, 0x22, 0x23, 0x24, 0x26,
++ 0x27, 0x29, 0x2a, 0x2b, 0x2d, 0x2e,
++ 0x30, 0x31, 0x32, 0x34, 0x35, 0x37,
++ 0x38, 0x39, 0x3b, 0x3c, 0x3e, 0x3f,
++ 0x40, 0x42, 0x43, 0x45, 0x46, 0x48,
++ 0x49, 0x4a, 0x4c, 0x4d, 0x4f, 0x50,
++ 0x51, 0x53, 0x54, 0x56, 0x57, 0x58,
++ 0x5a, 0x5b, 0x5d, 0x5e, 0x5f, 0x61,
++ 0x62, 0x64, 0x65, 0x66, 0x68, 0x69,
++ 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x72,
++ 0x73, 0x74, 0x76, 0x77, 0x79, 0x7a,
++ 0x7b, 0x7d, 0x7e, 0x80, 0x81, 0x82,
++ 0x84, 0x85, 0x87, 0x88, 0x89, 0x8b,
++ 0x8c, 0x8e, 0x8f, 0x90, 0x92, 0x93,
++ 0x95, 0x96, 0x97, 0x99, 0x9a, 0x9c,
++ 0x9d, 0x9e, 0xa0, 0xa1, 0xa3, 0xa4,
++ 0xa5, 0xa7, 0xa8, 0xaa, 0xab, 0xac,
++ 0xae, 0xaf, 0xb1, 0xb2,
++ };
++
++const int Cb_b_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
++ -0xe3, -0xe1, -0xdf, -0xde, -0xdc, -0xda,
++ -0xd8, -0xd6, -0xd5, -0xd3, -0xd1, -0xcf,
++ -0xce, -0xcc, -0xca, -0xc8, -0xc6, -0xc5,
++ -0xc3, -0xc1, -0xbf, -0xbe, -0xbc, -0xba,
++ -0xb8, -0xb7, -0xb5, -0xb3, -0xb1, -0xaf,
++ -0xae, -0xac, -0xaa, -0xa8, -0xa7, -0xa5,
++ -0xa3, -0xa1, -0x9f, -0x9e, -0x9c, -0x9a,
++ -0x98, -0x97, -0x95, -0x93, -0x91, -0x90,
++ -0x8e, -0x8c, -0x8a, -0x88, -0x87, -0x85,
++ -0x83, -0x81, -0x80, -0x7e, -0x7c, -0x7a,
++ -0x78, -0x77, -0x75, -0x73, -0x71, -0x70,
++ -0x6e, -0x6c, -0x6a, -0x69, -0x67, -0x65,
++ -0x63, -0x61, -0x60, -0x5e, -0x5c, -0x5a,
++ -0x59, -0x57, -0x55, -0x53, -0x52, -0x50,
++ -0x4e, -0x4c, -0x4a, -0x49, -0x47, -0x45,
++ -0x43, -0x42, -0x40, -0x3e, -0x3c, -0x3a,
++ -0x39, -0x37, -0x35, -0x33, -0x32, -0x30,
++ -0x2e, -0x2c, -0x2b, -0x29, -0x27, -0x25,
++ -0x23, -0x22, -0x20, -0x1e, -0x1c, -0x1b,
++ -0x19, -0x17, -0x15, -0x13, -0x12, -0x10,
++ -0x0e, -0x0c, -0x0b, -0x09, -0x07, -0x05,
++ -0x04, -0x02, 0x00, 0x02, 0x04, 0x05,
++ 0x07, 0x09, 0x0b, 0x0c, 0x0e, 0x10,
++ 0x12, 0x13, 0x15, 0x17, 0x19, 0x1b,
++ 0x1c, 0x1e, 0x20, 0x22, 0x23, 0x25,
++ 0x27, 0x29, 0x2b, 0x2c, 0x2e, 0x30,
++ 0x32, 0x33, 0x35, 0x37, 0x39, 0x3a,
++ 0x3c, 0x3e, 0x40, 0x42, 0x43, 0x45,
++ 0x47, 0x49, 0x4a, 0x4c, 0x4e, 0x50,
++ 0x52, 0x53, 0x55, 0x57, 0x59, 0x5a,
++ 0x5c, 0x5e, 0x60, 0x61, 0x63, 0x65,
++ 0x67, 0x69, 0x6a, 0x6c, 0x6e, 0x70,
++ 0x71, 0x73, 0x75, 0x77, 0x78, 0x7a,
++ 0x7c, 0x7e, 0x80, 0x81, 0x83, 0x85,
++ 0x87, 0x88, 0x8a, 0x8c, 0x8e, 0x90,
++ 0x91, 0x93, 0x95, 0x97, 0x98, 0x9a,
++ 0x9c, 0x9e, 0x9f, 0xa1, 0xa3, 0xa5,
++ 0xa7, 0xa8, 0xaa, 0xac, 0xae, 0xaf,
++ 0xb1, 0xb3, 0xb5, 0xb7, 0xb8, 0xba,
++ 0xbc, 0xbe, 0xbf, 0xc1, 0xc3, 0xc5,
++ 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xcf,
++ 0xd1, 0xd3, 0xd5, 0xd6, 0xd8, 0xda,
++ 0xdc, 0xde, 0xdf, 0xe1,
++ };
++
++const int Cr_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
++ 0x5b6900, 0x5ab22e, 0x59fb5c, 0x59448a, 0x588db8, 0x57d6e6,
++ 0x572014, 0x566942, 0x55b270, 0x54fb9e, 0x5444cc, 0x538dfa,
++ 0x52d728, 0x522056, 0x516984, 0x50b2b2, 0x4ffbe0, 0x4f450e,
++ 0x4e8e3c, 0x4dd76a, 0x4d2098, 0x4c69c6, 0x4bb2f4, 0x4afc22,
++ 0x4a4550, 0x498e7e, 0x48d7ac, 0x4820da, 0x476a08, 0x46b336,
++ 0x45fc64, 0x454592, 0x448ec0, 0x43d7ee, 0x43211c, 0x426a4a,
++ 0x41b378, 0x40fca6, 0x4045d4, 0x3f8f02, 0x3ed830, 0x3e215e,
++ 0x3d6a8c, 0x3cb3ba, 0x3bfce8, 0x3b4616, 0x3a8f44, 0x39d872,
++ 0x3921a0, 0x386ace, 0x37b3fc, 0x36fd2a, 0x364658, 0x358f86,
++ 0x34d8b4, 0x3421e2, 0x336b10, 0x32b43e, 0x31fd6c, 0x31469a,
++ 0x308fc8, 0x2fd8f6, 0x2f2224, 0x2e6b52, 0x2db480, 0x2cfdae,
++ 0x2c46dc, 0x2b900a, 0x2ad938, 0x2a2266, 0x296b94, 0x28b4c2,
++ 0x27fdf0, 0x27471e, 0x26904c, 0x25d97a, 0x2522a8, 0x246bd6,
++ 0x23b504, 0x22fe32, 0x224760, 0x21908e, 0x20d9bc, 0x2022ea,
++ 0x1f6c18, 0x1eb546, 0x1dfe74, 0x1d47a2, 0x1c90d0, 0x1bd9fe,
++ 0x1b232c, 0x1a6c5a, 0x19b588, 0x18feb6, 0x1847e4, 0x179112,
++ 0x16da40, 0x16236e, 0x156c9c, 0x14b5ca, 0x13fef8, 0x134826,
++ 0x129154, 0x11da82, 0x1123b0, 0x106cde, 0x0fb60c, 0x0eff3a,
++ 0x0e4868, 0x0d9196, 0x0cdac4, 0x0c23f2, 0x0b6d20, 0x0ab64e,
++ 0x09ff7c, 0x0948aa, 0x0891d8, 0x07db06, 0x072434, 0x066d62,
++ 0x05b690, 0x04ffbe, 0x0448ec, 0x03921a, 0x02db48, 0x022476,
++ 0x016da4, 0x00b6d2, 0x000000, -0x00b6d2, -0x016da4, -0x022476,
++ -0x02db48, -0x03921a, -0x0448ec, -0x04ffbe, -0x05b690, -0x066d62,
++ -0x072434, -0x07db06, -0x0891d8, -0x0948aa, -0x09ff7c, -0x0ab64e,
++ -0x0b6d20, -0x0c23f2, -0x0cdac4, -0x0d9196, -0x0e4868, -0x0eff3a,
++ -0x0fb60c, -0x106cde, -0x1123b0, -0x11da82, -0x129154, -0x134826,
++ -0x13fef8, -0x14b5ca, -0x156c9c, -0x16236e, -0x16da40, -0x179112,
++ -0x1847e4, -0x18feb6, -0x19b588, -0x1a6c5a, -0x1b232c, -0x1bd9fe,
++ -0x1c90d0, -0x1d47a2, -0x1dfe74, -0x1eb546, -0x1f6c18, -0x2022ea,
++ -0x20d9bc, -0x21908e, -0x224760, -0x22fe32, -0x23b504, -0x246bd6,
++ -0x2522a8, -0x25d97a, -0x26904c, -0x27471e, -0x27fdf0, -0x28b4c2,
++ -0x296b94, -0x2a2266, -0x2ad938, -0x2b900a, -0x2c46dc, -0x2cfdae,
++ -0x2db480, -0x2e6b52, -0x2f2224, -0x2fd8f6, -0x308fc8, -0x31469a,
++ -0x31fd6c, -0x32b43e, -0x336b10, -0x3421e2, -0x34d8b4, -0x358f86,
++ -0x364658, -0x36fd2a, -0x37b3fc, -0x386ace, -0x3921a0, -0x39d872,
++ -0x3a8f44, -0x3b4616, -0x3bfce8, -0x3cb3ba, -0x3d6a8c, -0x3e215e,
++ -0x3ed830, -0x3f8f02, -0x4045d4, -0x40fca6, -0x41b378, -0x426a4a,
++ -0x43211c, -0x43d7ee, -0x448ec0, -0x454592, -0x45fc64, -0x46b336,
++ -0x476a08, -0x4820da, -0x48d7ac, -0x498e7e, -0x4a4550, -0x4afc22,
++ -0x4bb2f4, -0x4c69c6, -0x4d2098, -0x4dd76a, -0x4e8e3c, -0x4f450e,
++ -0x4ffbe0, -0x50b2b2, -0x516984, -0x522056, -0x52d728, -0x538dfa,
++ -0x5444cc, -0x54fb9e, -0x55b270, -0x566942, -0x572014, -0x57d6e6,
++ -0x588db8, -0x59448a, -0x59fb5c, -0x5ab22e,
++ };
++
++const int Cb_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
++ 0x2c8d00, 0x2c34e6, 0x2bdccc, 0x2b84b2, 0x2b2c98, 0x2ad47e,
++ 0x2a7c64, 0x2a244a, 0x29cc30, 0x297416, 0x291bfc, 0x28c3e2,
++ 0x286bc8, 0x2813ae, 0x27bb94, 0x27637a, 0x270b60, 0x26b346,
++ 0x265b2c, 0x260312, 0x25aaf8, 0x2552de, 0x24fac4, 0x24a2aa,
++ 0x244a90, 0x23f276, 0x239a5c, 0x234242, 0x22ea28, 0x22920e,
++ 0x2239f4, 0x21e1da, 0x2189c0, 0x2131a6, 0x20d98c, 0x208172,
++ 0x202958, 0x1fd13e, 0x1f7924, 0x1f210a, 0x1ec8f0, 0x1e70d6,
++ 0x1e18bc, 0x1dc0a2, 0x1d6888, 0x1d106e, 0x1cb854, 0x1c603a,
++ 0x1c0820, 0x1bb006, 0x1b57ec, 0x1affd2, 0x1aa7b8, 0x1a4f9e,
++ 0x19f784, 0x199f6a, 0x194750, 0x18ef36, 0x18971c, 0x183f02,
++ 0x17e6e8, 0x178ece, 0x1736b4, 0x16de9a, 0x168680, 0x162e66,
++ 0x15d64c, 0x157e32, 0x152618, 0x14cdfe, 0x1475e4, 0x141dca,
++ 0x13c5b0, 0x136d96, 0x13157c, 0x12bd62, 0x126548, 0x120d2e,
++ 0x11b514, 0x115cfa, 0x1104e0, 0x10acc6, 0x1054ac, 0x0ffc92,
++ 0x0fa478, 0x0f4c5e, 0x0ef444, 0x0e9c2a, 0x0e4410, 0x0debf6,
++ 0x0d93dc, 0x0d3bc2, 0x0ce3a8, 0x0c8b8e, 0x0c3374, 0x0bdb5a,
++ 0x0b8340, 0x0b2b26, 0x0ad30c, 0x0a7af2, 0x0a22d8, 0x09cabe,
++ 0x0972a4, 0x091a8a, 0x08c270, 0x086a56, 0x08123c, 0x07ba22,
++ 0x076208, 0x0709ee, 0x06b1d4, 0x0659ba, 0x0601a0, 0x05a986,
++ 0x05516c, 0x04f952, 0x04a138, 0x04491e, 0x03f104, 0x0398ea,
++ 0x0340d0, 0x02e8b6, 0x02909c, 0x023882, 0x01e068, 0x01884e,
++ 0x013034, 0x00d81a, 0x008000, 0x0027e6, -0x003034, -0x00884e,
++ -0x00e068, -0x013882, -0x01909c, -0x01e8b6, -0x0240d0, -0x0298ea,
++ -0x02f104, -0x03491e, -0x03a138, -0x03f952, -0x04516c, -0x04a986,
++ -0x0501a0, -0x0559ba, -0x05b1d4, -0x0609ee, -0x066208, -0x06ba22,
++ -0x07123c, -0x076a56, -0x07c270, -0x081a8a, -0x0872a4, -0x08cabe,
++ -0x0922d8, -0x097af2, -0x09d30c, -0x0a2b26, -0x0a8340, -0x0adb5a,
++ -0x0b3374, -0x0b8b8e, -0x0be3a8, -0x0c3bc2, -0x0c93dc, -0x0cebf6,
++ -0x0d4410, -0x0d9c2a, -0x0df444, -0x0e4c5e, -0x0ea478, -0x0efc92,
++ -0x0f54ac, -0x0facc6, -0x1004e0, -0x105cfa, -0x10b514, -0x110d2e,
++ -0x116548, -0x11bd62, -0x12157c, -0x126d96, -0x12c5b0, -0x131dca,
++ -0x1375e4, -0x13cdfe, -0x142618, -0x147e32, -0x14d64c, -0x152e66,
++ -0x158680, -0x15de9a, -0x1636b4, -0x168ece, -0x16e6e8, -0x173f02,
++ -0x17971c, -0x17ef36, -0x184750, -0x189f6a, -0x18f784, -0x194f9e,
++ -0x19a7b8, -0x19ffd2, -0x1a57ec, -0x1ab006, -0x1b0820, -0x1b603a,
++ -0x1bb854, -0x1c106e, -0x1c6888, -0x1cc0a2, -0x1d18bc, -0x1d70d6,
++ -0x1dc8f0, -0x1e210a, -0x1e7924, -0x1ed13e, -0x1f2958, -0x1f8172,
++ -0x1fd98c, -0x2031a6, -0x2089c0, -0x20e1da, -0x2139f4, -0x21920e,
++ -0x21ea28, -0x224242, -0x229a5c, -0x22f276, -0x234a90, -0x23a2aa,
++ -0x23fac4, -0x2452de, -0x24aaf8, -0x250312, -0x255b2c, -0x25b346,
++ -0x260b60, -0x26637a, -0x26bb94, -0x2713ae, -0x276bc8, -0x27c3e2,
++ -0x281bfc, -0x287416, -0x28cc30, -0x29244a, -0x297c64, -0x29d47e,
++ -0x2a2c98, -0x2a84b2, -0x2adccc, -0x2b34e6,
++ };
++
++
++/* We assume that right shift corresponds to signed division by 2 with
++ * rounding towards minus infinity. This is correct for typical "arithmetic
++ * shift" instructions that shift in copies of the sign bit. But some
++ * C compilers implement >> with an unsigned shift. For these machines you
++ * must define RIGHT_SHIFT_IS_UNSIGNED.
++ * RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity.
++ * It is only applied with constant shift counts. SHIFT_TEMPS must be
++ * included in the variables of any routine using RIGHT_SHIFT.
++ */
++
++#ifdef RIGHT_SHIFT_IS_UNSIGNED
++#define SHIFT_TEMPS INT32 shift_temp;
++#define RIGHT_SHIFT(x,shft) \
++ ((shift_temp = (x)) < 0 ? \
++ (shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \
++ (shift_temp >> (shft)))
++#else
++#define SHIFT_TEMPS
++#define RIGHT_SHIFT(x,shft) ((x) >> (shft))
++#endif
++
++
++METHODDEF(void)
++ycc_rgb_convert_argb (j_decompress_ptr cinfo,
++ JSAMPIMAGE input_buf, JDIMENSION input_row,
++ JSAMPARRAY output_buf, int num_rows)
++{
++ JDIMENSION num_cols = cinfo->output_width;
++ JSAMPLE * range_limit = cinfo->sample_range_limit;
++
++ SHIFT_TEMPS
++
++ /* This is used if we don't have SSE2 */
++
++ while (--num_rows >= 0) {
++ JSAMPROW inptr0 = input_buf[0][input_row];
++ JSAMPROW inptr1 = input_buf[1][input_row];
++ JSAMPROW inptr2 = input_buf[2][input_row];
++ input_row++;
++ uint32_t *outptr = (uint32_t *) *output_buf++;
++ for (JDIMENSION col = 0; col < num_cols; col++) {
++ int y = GETJSAMPLE(inptr0[col]);
++ int cb = GETJSAMPLE(inptr1[col]);
++ int cr = GETJSAMPLE(inptr2[col]);
++ JSAMPLE * range_limit_y = range_limit + y;
++ /* Range-limiting is essential due to noise introduced by DCT losses. */
++ outptr[col] = 0xFF000000 |
++ ( range_limit_y[Cr_r_tab[cr]] << 16 ) |
++ ( range_limit_y[((int) RIGHT_SHIFT(Cb_g_tab[cb] + Cr_g_tab[cr], SCALEBITS))] << 8 ) |
++ ( range_limit_y[Cb_b_tab[cb]] );
++ }
++ }
++}
++#endif
++
++
+ /**************** Inverted CMYK -> RGB conversion **************/
+ /*
+ * Input is (Inverted) CMYK stored as 4 bytes per pixel.
diff --git a/devel/xulrunner/patches/patch-ipc_chromium_src_base_message__pump__libevent.cc b/devel/xulrunner/patches/patch-ipc_chromium_src_base_message__pump__libevent.cc
new file mode 100644
index 00000000000..9de09c2500b
--- /dev/null
+++ b/devel/xulrunner/patches/patch-ipc_chromium_src_base_message__pump__libevent.cc
@@ -0,0 +1,13 @@
+$NetBSD: patch-ipc_chromium_src_base_message__pump__libevent.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- ipc/chromium/src/base/message_pump_libevent.cc.orig 2013-05-11 19:19:32.000000000 +0000
++++ 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/devel/xulrunner/patches/patch-js_src_Makefile.in b/devel/xulrunner/patches/patch-js_src_Makefile.in
new file mode 100644
index 00000000000..2ae3ed7e3d4
--- /dev/null
+++ b/devel/xulrunner/patches/patch-js_src_Makefile.in
@@ -0,0 +1,18 @@
+$NetBSD: patch-js_src_Makefile.in,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- js/src/Makefile.in.orig 2013-05-11 19:19:32.000000000 +0000
++++ js/src/Makefile.in
+@@ -791,6 +791,13 @@ EXTRA_LIBS += -lposix4 -ldl -lnsl -lsock
+ endif
+ endif
+
++# clang 3.3 + -O2 makes jaeger crash in FixupArity
++ifdef CLANG_CXX
++ifndef MOZ_DEBUG
++Compiler.$(OBJ_SUFFIX): CXXFLAGS += -fno-inline-functions
++endif
++endif
++
+ # An AIX Optimization bug causes PR_dtoa() & JS_dtoa to produce wrong result.
+ # This suppresses optimization for this single compilation unit.
+ ifeq ($(OS_ARCH),AIX)
diff --git a/devel/xulrunner/patches/patch-js_src_config_system-headers b/devel/xulrunner/patches/patch-js_src_config_system-headers
new file mode 100644
index 00000000000..12c220e9247
--- /dev/null
+++ b/devel/xulrunner/patches/patch-js_src_config_system-headers
@@ -0,0 +1,10 @@
+$NetBSD: patch-js_src_config_system-headers,v 1.5 2013/05/19 08:47:41 ryoon Exp $
+
+--- js/src/config/system-headers.orig 2013-05-11 19:19:32.000000000 +0000
++++ js/src/config/system-headers
+@@ -1126,3 +1126,5 @@ sys/thr.h
+ sys/user.h
+ kvm.h
+ spawn.h
++err.h
++xlocale.h
diff --git a/devel/xulrunner/patches/patch-js_src_jscompartment.h b/devel/xulrunner/patches/patch-js_src_jscompartment.h
new file mode 100644
index 00000000000..d3d719e27cd
--- /dev/null
+++ b/devel/xulrunner/patches/patch-js_src_jscompartment.h
@@ -0,0 +1,20 @@
+$NetBSD: patch-js_src_jscompartment.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- js/src/jscompartment.h.orig 2013-05-11 19:19:34.000000000 +0000
++++ js/src/jscompartment.h
+@@ -596,12 +596,12 @@ class js::AutoDebugModeGC
+ // The DEBUG_MODE_GC reason forces the collector to always throw
+ // everything away, as required for debug mode transitions.
+ if (needGC)
+- GC(rt, GC_NORMAL, gcreason::DEBUG_MODE_GC);
++ GC(rt, GC_NORMAL, js::gcreason::DEBUG_MODE_GC);
+ }
+
+- void scheduleGC(Zone *zone) {
++ void scheduleGC(JS::Zone *zone) {
+ JS_ASSERT(!rt->isHeapBusy());
+- PrepareZoneForGC(zone);
++ js::PrepareZoneForGC(zone);
+ needGC = true;
+ }
+ };
diff --git a/devel/xulrunner/patches/patch-js_src_jsgc.cpp b/devel/xulrunner/patches/patch-js_src_jsgc.cpp
deleted file mode 100644
index d4ed0c38cf8..00000000000
--- a/devel/xulrunner/patches/patch-js_src_jsgc.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD: patch-js_src_jsgc.cpp,v 1.4 2013/01/10 15:01:31 ryoon Exp $
-
-http://gnats.netbsd.org/46622
-
---- js/src/jsgc.cpp.orig 2013-01-04 23:44:35.000000000 +0000
-+++ js/src/jsgc.cpp
-@@ -2905,8 +2905,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/devel/xulrunner/patches/patch-js_src_jspropertycacheinlines.h b/devel/xulrunner/patches/patch-js_src_jspropertycacheinlines.h
new file mode 100644
index 00000000000..81cb9cc776e
--- /dev/null
+++ b/devel/xulrunner/patches/patch-js_src_jspropertycacheinlines.h
@@ -0,0 +1,22 @@
+$NetBSD: patch-js_src_jspropertycacheinlines.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- js/src/jspropertycacheinlines.h.orig 2013-05-11 19:19:34.000000000 +0000
++++ js/src/jspropertycacheinlines.h
+@@ -32,7 +32,7 @@ JS_ALWAYS_INLINE void
+ js::PropertyCache::test(JSContext *cx, jsbytecode *pc, JSObject **obj,
+ JSObject **pobj, PropertyCacheEntry **entry, PropertyName **name)
+ {
+- AutoAssertNoGC nogc;
++ js::AutoAssertNoGC nogc;
+
+ JS_ASSERT(this == &cx->propertyCache());
+
+@@ -65,7 +65,7 @@ JS_ALWAYS_INLINE bool
+ js::PropertyCache::testForSet(JSContext *cx, jsbytecode *pc, JSObject *obj,
+ PropertyCacheEntry **entryp, JSObject **obj2p, PropertyName **namep)
+ {
+- AutoAssertNoGC nogc;
++ js::AutoAssertNoGC nogc;
+
+ JS_ASSERT(this == &cx->propertyCache());
+
diff --git a/devel/xulrunner/patches/patch-js_src_methodjit_MethodJIT.cpp b/devel/xulrunner/patches/patch-js_src_methodjit_MethodJIT.cpp
index 4edede4dd86..564ac5aa2da 100644
--- a/devel/xulrunner/patches/patch-js_src_methodjit_MethodJIT.cpp
+++ b/devel/xulrunner/patches/patch-js_src_methodjit_MethodJIT.cpp
@@ -1,11 +1,11 @@
-$NetBSD: patch-js_src_methodjit_MethodJIT.cpp,v 1.4 2013/01/10 15:01:31 ryoon Exp $
+$NetBSD: patch-js_src_methodjit_MethodJIT.cpp,v 1.5 2013/05/19 08:47:41 ryoon Exp $
# This does not only apply to linux, but all ELF platforms (otherwise the
# generated code will not be PIC)
---- js/src/methodjit/MethodJIT.cpp.orig 2013-01-04 23:44:35.000000000 +0000
+--- js/src/methodjit/MethodJIT.cpp.orig 2013-05-11 19:19:34.000000000 +0000
+++ js/src/methodjit/MethodJIT.cpp
-@@ -142,7 +142,7 @@ PopActiveVMFrame(VMFrame &f)
+@@ -138,7 +138,7 @@ PopActiveVMFrame(VMFrame &f)
JS_STATIC_ASSERT(offsetof(FrameRegs, sp) == 0);
@@ -14,3 +14,12 @@ $NetBSD: patch-js_src_methodjit_MethodJIT.cpp,v 1.4 2013/01/10 15:01:31 ryoon Ex
# define SYMBOL_STRING_RELOC(name) #name "@plt"
#else
# define SYMBOL_STRING_RELOC(name) SYMBOL_STRING(name)
+@@ -152,7 +152,7 @@ JS_STATIC_ASSERT(offsetof(FrameRegs, sp)
+
+ #if defined(XP_MACOSX)
+ # define HIDE_SYMBOL(name) ".private_extern _" #name
+-#elif defined(__linux__)
++#elif defined(__ELF__)
+ # define HIDE_SYMBOL(name) ".hidden" #name
+ #else
+ # define HIDE_SYMBOL(name)
diff --git a/devel/xulrunner/patches/patch-js_src_vm_ObjectImpl-inl.h b/devel/xulrunner/patches/patch-js_src_vm_ObjectImpl-inl.h
new file mode 100644
index 00000000000..784debdf06c
--- /dev/null
+++ b/devel/xulrunner/patches/patch-js_src_vm_ObjectImpl-inl.h
@@ -0,0 +1,43 @@
+$NetBSD: patch-js_src_vm_ObjectImpl-inl.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- js/src/vm/ObjectImpl-inl.h.orig 2013-05-11 19:19:36.000000000 +0000
++++ js/src/vm/ObjectImpl-inl.h
+@@ -164,9 +164,9 @@ js::ObjectImpl::initializeSlotRange(uint
+ JSRuntime *rt = runtime();
+ uint32_t offset = start;
+ for (HeapSlot *sp = fixedStart; sp < fixedEnd; sp++)
+- sp->init(rt, this->asObjectPtr(), HeapSlot::Slot, offset++, UndefinedValue());
++ sp->init(rt, this->asObjectPtr(), HeapSlot::Slot, offset++, js::UndefinedValue());
+ for (HeapSlot *sp = slotsStart; sp < slotsEnd; sp++)
+- sp->init(rt, this->asObjectPtr(), HeapSlot::Slot, offset++, UndefinedValue());
++ sp->init(rt, this->asObjectPtr(), HeapSlot::Slot, offset++, js::UndefinedValue());
+ }
+
+ inline bool
+@@ -321,7 +321,7 @@ js::ObjectImpl::sizeOfThis() const
+ js::ObjectImpl::readBarrier(ObjectImpl *obj)
+ {
+ #ifdef JSGC_INCREMENTAL
+- Zone *zone = obj->zone();
++ JS::Zone *zone = obj->zone();
+ if (zone->needsBarrier()) {
+ MOZ_ASSERT(!zone->rt->isHeapBusy());
+ JSObject *tmp = obj->asObjectPtr();
+@@ -335,7 +335,7 @@ inline void
+ js::ObjectImpl::privateWriteBarrierPre(void **old)
+ {
+ #ifdef JSGC_INCREMENTAL
+- Zone *zone = this->zone();
++ JS::Zone *zone = this->zone();
+ if (zone->needsBarrier()) {
+ if (*old && getClass()->trace)
+ getClass()->trace(zone->barrierTracer(), this->asObjectPtr());
+@@ -362,7 +362,7 @@ js::ObjectImpl::writeBarrierPre(ObjectIm
+ if (uintptr_t(obj) < 32)
+ return;
+
+- Zone *zone = obj->zone();
++ JS::Zone *zone = obj->zone();
+ if (zone->needsBarrier()) {
+ MOZ_ASSERT(!zone->rt->isHeapBusy());
+ JSObject *tmp = obj->asObjectPtr();
diff --git a/devel/xulrunner/patches/patch-media_libsoundtouch_src_cpu__detect__x86.cpp b/devel/xulrunner/patches/patch-media_libsoundtouch_src_cpu__detect__x86.cpp
new file mode 100644
index 00000000000..67ac1a6e8ee
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_libsoundtouch_src_cpu__detect__x86.cpp
@@ -0,0 +1,23 @@
+$NetBSD: patch-media_libsoundtouch_src_cpu__detect__x86.cpp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/libsoundtouch/src/cpu_detect_x86.cpp.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/libsoundtouch/src/cpu_detect_x86.cpp
+@@ -101,7 +101,7 @@ uint detectCPUextensions(void)
+
+ uint res = 0;
+
+-#if defined(__GNUC__)
++#if defined(__GNUC__) && defined(HAVE_CPUID_H)
+ // GCC version of cpuid. Requires GCC 4.3.0 or later for __cpuid intrinsic support.
+ uint eax, ebx, ecx, edx; // unsigned int is the standard type. uint is defined by the compiler and not guaranteed to be portable.
+
+@@ -112,6 +112,9 @@ uint detectCPUextensions(void)
+ if (edx & bit_SSE) res = res | SUPPORT_SSE;
+ if (edx & bit_SSE2) res = res | SUPPORT_SSE2;
+
++#elif defined(__GNUC__)
++ // No cpuid.h --> no cpuid support
++ return 0;
+ #else
+ // Window / VS version of cpuid. Notice that Visual Studio 2005 or later required
+ // for __cpuid intrinsic support.
diff --git a/devel/xulrunner/patches/patch-media_mtransport_objs.mk b/devel/xulrunner/patches/patch-media_mtransport_objs.mk
new file mode 100644
index 00000000000..169390c52a5
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_objs.mk
@@ -0,0 +1,22 @@
+$NetBSD: patch-media_mtransport_objs.mk,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/objs.mk.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/objs.mk
+@@ -23,12 +23,16 @@ LOCAL_INCLUDES += \
+ -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/event \
+ $(NULL)
+
+-ifeq ($(OS_TARGET), Darwin)
++ifneq (,$(filter Darwin DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET)))
+ LOCAL_INCLUDES += \
+ -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/darwin/include \
+ -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/generic/include \
+ $(NULL)
++ifeq ($(OS_TARGET), Darwin)
+ DEFINES += -DDARWIN
++else
++DEFINES += -DBSD
++endif
+ endif
+
+ ifeq ($(OS_TARGET), Linux)
diff --git a/devel/xulrunner/patches/patch-media_mtransport_test_Makefile.in b/devel/xulrunner/patches/patch-media_mtransport_test_Makefile.in
new file mode 100644
index 00000000000..1152f89a2f1
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_test_Makefile.in
@@ -0,0 +1,20 @@
+$NetBSD: patch-media_mtransport_test_Makefile.in,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/test/Makefile.in.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/test/Makefile.in
+@@ -78,12 +78,14 @@ endif
+ endif
+ endif
+
+-ifeq ($(OS_TARGET), Darwin)
++ifneq (,$(filter Darwin DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET)))
+ LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/darwin/include
++ifeq ($(OS_TARGET), Darwin)
+ DEFINES += \
+ -DGTEST_USE_OWN_TR1_TUPLE=1 \
+ $(NULL)
+ endif
++endif
+
+ ifeq ($(OS_TARGET), Linux)
+ LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/linux/include
diff --git a/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_nicer.gyp b/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_nicer.gyp
new file mode 100644
index 00000000000..af735831f77
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_nicer.gyp
@@ -0,0 +1,33 @@
+$NetBSD: patch-media_mtransport_third__party_nICEr_nicer.gyp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/third_party/nICEr/nicer.gyp.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/third_party/nICEr/nicer.gyp
+@@ -129,8 +129,19 @@
+ ],
+
+ 'conditions' : [
+- ## Mac
++ ## Mac and BSDs
+ [ 'OS == "mac"', {
++ 'defines' : [
++ 'DARWIN',
++ 'HAVE_XLOCALE',
++ ],
++ }],
++ [ 'os_bsd == 1', {
++ 'defines' : [
++ 'BSD',
++ ],
++ }],
++ [ 'OS == "mac" or os_bsd == 1', {
+ 'cflags_mozilla': [
+ '-Wall',
+ '-Wno-parentheses',
+@@ -138,7 +149,6 @@
+ '-Wmissing-prototypes',
+ ],
+ 'defines' : [
+- 'DARWIN',
+ 'HAVE_LIBM=1',
+ 'HAVE_STRDUP=1',
+ 'HAVE_STRLCPY=1',
diff --git a/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_stun_addrs.c b/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_stun_addrs.c
new file mode 100644
index 00000000000..c7303ce13bc
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_stun_addrs.c
@@ -0,0 +1,32 @@
+$NetBSD: patch-media_mtransport_third__party_nICEr_src_stun_addrs.c,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/third_party/nICEr/src/stun/addrs.c.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/third_party/nICEr/src/stun/addrs.c
+@@ -55,7 +55,9 @@ static char *RCSSTRING __UNUSED__="$Id:
+ #endif
+ #include <net/if.h>
+ #ifndef LINUX
++#if !defined(__OpenBSD__) && !defined(__NetBSD__)
+ #include <net/if_var.h>
++#endif
+ #include <net/if_dl.h>
+ #include <net/if_types.h>
+ #include <sys/sockio.h>
+@@ -80,7 +82,7 @@ static char *RCSSTRING __UNUSED__="$Id:
+
+
+
+-#ifdef DARWIN
++#if defined(BSD) || defined(DARWIN)
+ /*
+ * Copyright (c) 1983, 1993
+ * The Regents of the University of California. All rights reserved.
+@@ -690,7 +692,7 @@ nr_stun_get_addrs(nr_transport_addr addr
+ int _status=0;
+ int i;
+
+-#ifdef DARWIN
++#if defined(BSD) || defined(DARWIN)
+ _status = stun_get_mib_addrs(addrs, maxaddrs, count);
+ #elif defined(WIN32)
+ _status = stun_get_win32_addrs(addrs, maxaddrs, count);
diff --git a/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_stun_stun.h b/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_stun_stun.h
new file mode 100644
index 00000000000..4d427bae83b
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_stun_stun.h
@@ -0,0 +1,20 @@
+$NetBSD: patch-media_mtransport_third__party_nICEr_src_stun_stun.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/third_party/nICEr/src/stun/stun.h.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/third_party/nICEr/src/stun/stun.h
+@@ -41,11 +41,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ #include <sys/socket.h>
+ #include <net/if.h>
+ #ifndef LINUX
++#if !defined(__OpenBSD__) && !defined(__NetBSD__)
+ #include <net/if_var.h>
++#endif
+ #include <net/if_dl.h>
+ #include <net/if_types.h>
+ #endif
++#ifndef BSD
+ #include <net/route.h>
++#endif
+ #include <netinet/in.h>
+ #ifndef LINUX
+ #include <netinet/in_var.h>
diff --git a/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_util_mbslen.c b/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_util_mbslen.c
new file mode 100644
index 00000000000..05d1b1b3551
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_third__party_nICEr_src_util_mbslen.c
@@ -0,0 +1,78 @@
+$NetBSD: patch-media_mtransport_third__party_nICEr_src_util_mbslen.c,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/third_party/nICEr/src/util/mbslen.c.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/third_party/nICEr/src/util/mbslen.c
+@@ -43,9 +43,17 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ #include <locale.h>
+ #include <stdlib.h>
+ #include <wchar.h>
+-#ifdef DARWIN
++
++#ifdef __FreeBSD__
++#include <osreldate.h>
++# if __FreeBSD_version > 900505
++# define HAVE_XLOCALE
++# endif
++#endif
++
++#ifdef HAVE_XLOCALE
+ #include <xlocale.h>
+-#endif /* DARWIN */
++#endif /* HAVE_XLOCALE */
+
+ #include "nr_api.h"
+ #include "mbslen.h"
+@@ -54,10 +62,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ int
+ mbslen(const char *s, size_t *ncharsp)
+ {
+-#ifdef DARWIN
++#ifdef HAVE_XLOCALE
+ static locale_t loc = 0;
+ static int initialized = 0;
+-#endif /* DARWIN */
++#endif /* HAVE_XLOCALE */
+ #ifdef WIN32
+ char *my_locale=0;
+ unsigned int i;
+@@ -67,7 +75,7 @@ mbslen(const char *s, size_t *ncharsp)
+ int nchars;
+ mbstate_t mbs;
+
+-#ifdef DARWIN
++#ifdef HAVE_XLOCALE
+ if (! initialized) {
+ initialized = 1;
+ loc = newlocale(LC_CTYPE_MASK, "UTF-8", LC_GLOBAL_LOCALE);
+@@ -76,7 +84,7 @@ mbslen(const char *s, size_t *ncharsp)
+ if (loc == 0) {
+ /* unable to create the UTF-8 locale */
+ assert(loc != 0); /* should never happen */
+-#endif /* DARWIN */
++#endif /* HAVE_XLOCALE */
+
+ #ifdef WIN32
+ if (!setlocale(LC_CTYPE, 0))
+@@ -98,18 +106,18 @@ mbslen(const char *s, size_t *ncharsp)
+ ABORT(R_NOT_FOUND);
+ #endif
+
+-#ifdef DARWIN
++#ifdef HAVE_XLOCALE
+ }
+-#endif /* DARWIN */
++#endif /* HAVE_XLOCALE */
+
+ memset(&mbs, 0, sizeof(mbs));
+ nchars = 0;
+
+-#ifdef DARWIN
++#ifdef HAVE_XLOCALE
+ while (*s != '\0' && (nbytes = mbrlen_l(s, strlen(s), &mbs, loc)) != 0)
+ #else
+ while (*s != '\0' && (nbytes = mbrlen(s, strlen(s), &mbs)) != 0)
+-#endif /* DARWIN */
++#endif /* HAVE_XLOCALE */
+ {
+ if (nbytes == (size_t)-1) /* should never happen */ {
+ assert(0);
diff --git a/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_nrappkit.gyp b/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_nrappkit.gyp
new file mode 100644
index 00000000000..6f5e0201d5d
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_nrappkit.gyp
@@ -0,0 +1,32 @@
+$NetBSD: patch-media_mtransport_third__party_nrappkit_nrappkit.gyp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/third_party/nrappkit/nrappkit.gyp.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/third_party/nrappkit/nrappkit.gyp
+@@ -147,8 +147,18 @@
+ ],
+
+ 'conditions' : [
+- ## Mac
++ ## Mac and BSDs
+ [ 'OS == "mac"', {
++ 'defines' : [
++ 'DARWIN',
++ ],
++ }],
++ [ 'os_bsd == 1', {
++ 'defines' : [
++ 'BSD',
++ ],
++ }],
++ [ 'OS == "mac" or os_bsd == 1', {
+ 'cflags_mozilla': [
+ '-Wall',
+ '-Wno-parentheses',
+@@ -156,7 +166,6 @@
+ '-Wmissing-prototypes',
+ ],
+ 'defines' : [
+- 'DARWIN',
+ 'HAVE_LIBM=1',
+ 'HAVE_STRDUP=1',
+ 'HAVE_STRLCPY=1',
diff --git a/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_log_r__log.c b/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_log_r__log.c
new file mode 100644
index 00000000000..dc27e728bdd
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_log_r__log.c
@@ -0,0 +1,12 @@
+$NetBSD: patch-media_mtransport_third__party_nrappkit_src_log_r__log.c,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/third_party/nrappkit/src/log/r_log.c.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/third_party/nrappkit/src/log/r_log.c
+@@ -48,6 +48,7 @@ static char *RCSSTRING __UNUSED__ ="$Id:
+ #include "hex.h"
+
+ #include <string.h>
++#include <errno.h>
+ #ifndef _MSC_VER
+ #include <strings.h>
+ #include <syslog.h>
diff --git a/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h b/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h
new file mode 100644
index 00000000000..5ca83fb57d9
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
+@@ -33,7 +33,7 @@
+ #ifndef _SYS_QUEUE_H_
+ #define _SYS_QUEUE_H_
+
+-#ifndef DARWIN
++#if !defined(__FreeBSD__) && !defined(DARWIN)
+ #include <stddef.h>
+ #define __offsetof offsetof
+ #endif
diff --git a/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_util_util.c b/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_util_util.c
new file mode 100644
index 00000000000..2918c16ec99
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_mtransport_third__party_nrappkit_src_util_util.c
@@ -0,0 +1,12 @@
+$NetBSD: patch-media_mtransport_third__party_nrappkit_src_util_util.c,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/mtransport/third_party/nrappkit/src/util/util.c.orig 2013-05-11 19:19:43.000000000 +0000
++++ media/mtransport/third_party/nrappkit/src/util/util.c
+@@ -45,6 +45,7 @@ static char *RCSSTRING __UNUSED__ ="$Id:
+ #include <dirent.h>
+ #endif
+ #include <string.h>
++#include <errno.h>
+ #include <ctype.h>
+ #include <sys/stat.h>
+ #ifdef OPENSSL
diff --git a/devel/xulrunner/patches/patch-media_webrtc_signaling_signaling.gyp b/devel/xulrunner/patches/patch-media_webrtc_signaling_signaling.gyp
new file mode 100644
index 00000000000..2ea7711ada4
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_signaling_signaling.gyp
@@ -0,0 +1,49 @@
+$NetBSD: patch-media_webrtc_signaling_signaling.gyp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/signaling/signaling.gyp.orig 2013-05-11 19:19:44.000000000 +0000
++++ media/webrtc/signaling/signaling.gyp
+@@ -217,6 +217,19 @@
+ 'cflags_mozilla': [
+ ],
+ }],
++ ['os_bsd==1', {
++ 'include_dirs': [
++ ],
++ 'defines': [
++ # avoiding pointless ifdef churn
++ 'SIP_OS_OSX',
++ 'OSX',
++ 'SECLIB_OPENSSL',
++ ],
++
++ 'cflags_mozilla': [
++ ],
++ }],
+ ['OS=="mac"', {
+ 'include_dirs': [
+ ],
+@@ -752,7 +765,7 @@
+ ],
+
+ }],
+- ['OS=="mac"', {
++ ['OS=="mac" or os_bsd==1', {
+
+ 'include_dirs': [
+ ],
+@@ -797,14 +810,13 @@
+
+ '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/devel/xulrunner/patches/patch-media_webrtc_signaling_src_sipcc_cpr_darwin_cpr__darwin__ipc.c b/devel/xulrunner/patches/patch-media_webrtc_signaling_src_sipcc_cpr_darwin_cpr__darwin__ipc.c
new file mode 100644
index 00000000000..a6815b88cc3
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_signaling_src_sipcc_cpr_darwin_cpr__darwin__ipc.c
@@ -0,0 +1,20 @@
+$NetBSD: patch-media_webrtc_signaling_src_sipcc_cpr_darwin_cpr__darwin__ipc.c,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c.orig 2013-05-11 19:19:44.000000000 +0000
++++ media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c
+@@ -322,11 +322,15 @@ cprGetMessage (cprMsgQueue_t msgQueue, b
+ cpr_msgq_node_t *node;
+ struct timespec timeout;
+ struct timeval tv;
++#ifndef __APPLE__
++ struct timezone tz;
++#else
+ // On the iPhone, there is a DarwinAlias problem with "timezone"
+ struct _timezone {
+ int tz_minuteswest; /* of Greenwich */
+ int tz_dsttime; /* type of dst correction to apply */
+ } tz;
++#endif
+
+ /* Initialize ppUserData */
+ if (ppUserData) {
diff --git a/devel/xulrunner/patches/patch-media_webrtc_signaling_test_Makefile.in b/devel/xulrunner/patches/patch-media_webrtc_signaling_test_Makefile.in
new file mode 100644
index 00000000000..8b022752b86
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_signaling_test_Makefile.in
@@ -0,0 +1,21 @@
+$NetBSD: patch-media_webrtc_signaling_test_Makefile.in,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/signaling/test/Makefile.in.orig 2013-05-11 19:19:44.000000000 +0000
++++ media/webrtc/signaling/test/Makefile.in
+@@ -17,6 +17,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) \
+@@ -86,7 +87,7 @@ LIBS += \
+ $(NULL)
+ endif
+
+-ifeq ($(OS_TARGET),Linux)
++ifneq (,$(filter Linux DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET)))
+ LIBS += \
+ $(MOZ_CAIRO_OSLIBS) \
+ $(NULL)
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_build_common.gypi b/devel/xulrunner/patches/patch-media_webrtc_trunk_build_common.gypi
new file mode 100644
index 00000000000..8886bf50a6e
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_build_common.gypi
@@ -0,0 +1,60 @@
+$NetBSD: patch-media_webrtc_trunk_build_common.gypi,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/build/common.gypi.orig 2013-05-11 19:19:44.000000000 +0000
++++ media/webrtc/trunk/build/common.gypi
+@@ -80,12 +80,21 @@
+ ['use_ash==1', {
+ 'use_aura%': 1,
+ }],
++
++ # A flag for BSD platforms
++ ['OS=="dragonfly" or OS=="freebsd" or OS=="netbsd" or \
++ OS=="openbsd"', {
++ 'os_bsd%': 1,
++ }, {
++ 'os_bsd%': 0,
++ }],
+ ],
+ },
+ # Copy conditionally-set variables out one scope.
+ 'chromeos%': '<(chromeos)',
+ 'use_aura%': '<(use_aura)',
+ 'use_ash%': '<(use_ash)',
++ 'os_bsd%': '<(os_bsd)',
+ 'use_openssl%': '<(use_openssl)',
+ 'use_ibus%': '<(use_ibus)',
+ 'enable_viewport%': '<(enable_viewport)',
+@@ -119,7 +128,7 @@
+ }],
+
+ # Set toolkit_uses_gtk for the Chromium browser on Linux.
+- ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris") and use_aura==0', {
++ ['(OS=="linux" or OS=="solaris" or os_bsd==1) and use_aura==0', {
+ 'toolkit_uses_gtk%': 1,
+ }, {
+ 'toolkit_uses_gtk%': 0,
+@@ -144,6 +153,7 @@
+ 'toolkit_uses_gtk%': '<(toolkit_uses_gtk)',
+ 'use_aura%': '<(use_aura)',
+ 'use_ash%': '<(use_ash)',
++ 'os_bsd%': '<(os_bsd)',
+ 'use_openssl%': '<(use_openssl)',
+ 'use_ibus%': '<(use_ibus)',
+ 'enable_viewport%': '<(enable_viewport)',
+@@ -406,15 +416,8 @@
+ 'os_posix%': 1,
+ }],
+
+- # A flag for BSD platforms
+- ['OS=="freebsd" or OS=="openbsd"', {
+- 'os_bsd%': 1,
+- }, {
+- 'os_bsd%': 0,
+- }],
+-
+ # NSS usage.
+- ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris") and use_openssl==0', {
++ ['(OS=="linux" or OS=="solaris" or os_bsd==1) and use_openssl==0', {
+ 'use_nss%': 1,
+ }, {
+ 'use_nss%': 0,
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_testing_gtest_include_gtest_internal_gtest-port.h b/devel/xulrunner/patches/patch-media_webrtc_trunk_testing_gtest_include_gtest_internal_gtest-port.h
new file mode 100644
index 00000000000..47a45f53325
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_testing_gtest_include_gtest_internal_gtest-port.h
@@ -0,0 +1,19 @@
+$NetBSD: patch-media_webrtc_trunk_testing_gtest_include_gtest_internal_gtest-port.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h.orig 2013-05-11 19:19:44.000000000 +0000
++++ media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h
+@@ -490,10 +490,10 @@
+ # define GTEST_ENV_HAS_TR1_TUPLE_ 1
+ # endif
+
+-// C++11 specifies that <tuple> provides std::tuple. Users can't use
+-// gtest in C++11 mode until their standard library is at least that
+-// compliant.
+-# if GTEST_LANG_CXX11
++// C++11 specifies that <tuple> provides std::tuple. Use that if gtest is used
++// in C++11 mode and libstdc++ isn't very old (binaries targeting OS X 10.6
++// can build with clang but need to use gcc4.2's libstdc++).
++# if GTEST_LANG_CXX11 && (!defined(__GLIBCXX__) || __GLIBCXX__ > 20110325)
+ # define GTEST_ENV_HAS_STD_TUPLE_ 1
+ # endif
+
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_third__party_libyuv_libyuv.gyp b/devel/xulrunner/patches/patch-media_webrtc_trunk_third__party_libyuv_libyuv.gyp
new file mode 100644
index 00000000000..d9365576162
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_third__party_libyuv_libyuv.gyp
@@ -0,0 +1,24 @@
+$NetBSD: patch-media_webrtc_trunk_third__party_libyuv_libyuv.gyp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/third_party/libyuv/libyuv.gyp.orig 2013-05-11 19:19:44.000000000 +0000
++++ media/webrtc/trunk/third_party/libyuv/libyuv.gyp
+@@ -9,6 +9,7 @@
+ {
+ 'variables': {
+ 'use_system_libjpeg%': 0,
++ 'yuv_disable_asm%': 0,
+ },
+ 'targets': [
+ {
+@@ -50,6 +51,11 @@
+ ],
+ },
+ 'conditions': [
++ ['yuv_disable_asm==1', {
++ 'defines': [
++ 'YUV_DISABLE_ASM',
++ ],
++ }],
+ ['build_with_mozilla==1', {
+ 'include_dirs': [
+ '$(DEPTH)/dist/include',
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_tools_gyp_pylib_gyp_generator_mozmake.py b/devel/xulrunner/patches/patch-media_webrtc_trunk_tools_gyp_pylib_gyp_generator_mozmake.py
new file mode 100644
index 00000000000..5f58cc5b84e
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_tools_gyp_pylib_gyp_generator_mozmake.py
@@ -0,0 +1,55 @@
+$NetBSD: patch-media_webrtc_trunk_tools_gyp_pylib_gyp_generator_mozmake.py,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py.orig 2013-05-11 19:19:44.000000000 +0000
++++ media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py
+@@ -9,6 +9,7 @@ import collections
+ import gyp
+ import gyp.common
+ import sys
++import platform
+ import os
+ import re
+ import shlex
+@@ -111,20 +112,34 @@ def ensure_directory_exists(path):
+
+ def GetFlavor(params):
+ """Returns |params.flavor| if it's set, the system's default flavor else."""
++ system = platform.system().lower()
+ flavors = {
+- 'win32': 'win',
+- 'darwin': 'mac',
+- 'sunos5': 'solaris',
+- 'freebsd7': 'freebsd',
+- 'freebsd8': 'freebsd',
++ 'microsoft': 'win',
++ 'windows' : 'win',
++ 'darwin' : 'mac',
++ 'sunos' : 'solaris',
++ 'dragonfly': 'bsd',
++ 'freebsd' : 'bsd',
++ 'netbsd' : 'bsd',
++ 'openbsd' : 'bsd',
+ }
+- flavor = flavors.get(sys.platform, 'linux')
+- return params.get('flavor', flavor)
++
++ if 'flavor' in params:
++ return params['flavor']
++ if system.startswith('cygwin'):
++ return 'win'
++ if system in flavors:
++ return flavors[system]
++
++ return 'linux'
+
+
+ def CalculateVariables(default_variables, params):
++ flavor = GetFlavor(params)
++ if flavor == 'bsd':
++ flavor = platform.system().lower()
+ generator_flags = params.get('generator_flags', {})
+- default_variables['OS'] = generator_flags.get('os', GetFlavor(params))
++ default_variables['OS'] = generator_flags.get('os', flavor)
+
+
+ def CalculateGeneratorInputInfo(params):
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_build_common.gypi b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_build_common.gypi
new file mode 100644
index 00000000000..eb64ced073d
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_build_common.gypi
@@ -0,0 +1,35 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_build_common.gypi,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/build/common.gypi.orig 2013-05-11 19:19:44.000000000 +0000
++++ media/webrtc/trunk/webrtc/build/common.gypi
+@@ -124,6 +124,11 @@
+ # and Java Implementation
+ 'enable_android_opensl%': 0,
+ }],
++ ['OS=="linux" or OS=="solaris" or os_bsd==1', {
++ 'include_v4l2_video_capture%': 1,
++ }, {
++ 'include_v4l2_video_capture%': 0,
++ }],
+ ['OS=="ios"', {
+ 'enable_video%': 0,
+ 'enable_protobuf%': 0,
+@@ -210,6 +215,18 @@
+ }],
+ ],
+ }],
++ ['os_bsd==1', {
++ 'defines': [
++ 'WEBRTC_BSD',
++ 'WEBRTC_THREAD_RR',
++ ],
++ }],
++ ['OS=="dragonfly" or OS=="netbsd"', {
++ 'defines': [
++ # doesn't support pthread_condattr_setclock
++ 'WEBRTC_CLOCK_TYPE_REALTIME',
++ ],
++ }],
+ ['OS=="ios"', {
+ 'defines': [
+ 'WEBRTC_MAC',
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device.gypi b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device.gypi
new file mode 100644
index 00000000000..8cad55375b2
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device.gypi
@@ -0,0 +1,91 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device.gypi,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/audio_device/audio_device.gypi.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device.gypi
+@@ -45,11 +45,15 @@
+ 'dummy/audio_device_utility_dummy.h',
+ ],
+ 'conditions': [
+- ['OS=="linux"', {
++ ['include_alsa_audio==1 or include_pulse_audio==1', {
+ 'include_dirs': [
+ 'linux',
+ ],
+- }], # OS==linux
++ 'defines': [
++ # avoid pointless rename
++ 'WEBRTC_LINUX',
++ ],
++ }], # include_alsa_audio==1 or include_pulse_audio==1
+ ['OS=="ios"', {
+ 'include_dirs': [
+ 'ios',
+@@ -77,14 +81,8 @@
+ }],
+ ['include_internal_audio_device==1', {
+ 'sources': [
+- 'linux/alsasymboltable_linux.cc',
+- 'linux/alsasymboltable_linux.h',
+- 'linux/audio_device_alsa_linux.cc',
+- 'linux/audio_device_alsa_linux.h',
+ 'linux/audio_device_utility_linux.cc',
+ 'linux/audio_device_utility_linux.h',
+- 'linux/audio_mixer_manager_alsa_linux.cc',
+- 'linux/audio_mixer_manager_alsa_linux.h',
+ 'linux/latebindingsymboltable_linux.cc',
+ 'linux/latebindingsymboltable_linux.h',
+ 'ios/audio_device_ios.cc',
+@@ -134,28 +132,36 @@
+ ],
+ }],
+ ['OS=="linux"', {
+- 'defines': [
+- 'LINUX_ALSA',
+- ],
+ 'link_settings': {
+ 'libraries': [
+ '-ldl',
+ ],
+ },
+- 'conditions': [
+- ['include_pulse_audio==1', {
+- 'defines': [
+- 'LINUX_PULSE',
+- ],
+- 'sources': [
+- 'linux/audio_device_pulse_linux.cc',
+- 'linux/audio_device_pulse_linux.h',
+- 'linux/audio_mixer_manager_pulse_linux.cc',
+- 'linux/audio_mixer_manager_pulse_linux.h',
+- 'linux/pulseaudiosymboltable_linux.cc',
+- 'linux/pulseaudiosymboltable_linux.h',
+- ],
+- }],
++ }],
++ ['include_alsa_audio==1', {
++ 'defines': [
++ 'LINUX_ALSA',
++ ],
++ 'sources': [
++ 'linux/alsasymboltable_linux.cc',
++ 'linux/alsasymboltable_linux.h',
++ 'linux/audio_device_alsa_linux.cc',
++ 'linux/audio_device_alsa_linux.h',
++ 'linux/audio_mixer_manager_alsa_linux.cc',
++ 'linux/audio_mixer_manager_alsa_linux.h',
++ ],
++ }],
++ ['include_pulse_audio==1', {
++ 'defines': [
++ 'LINUX_PULSE',
++ ],
++ 'sources': [
++ 'linux/audio_device_pulse_linux.cc',
++ 'linux/audio_device_pulse_linux.h',
++ 'linux/audio_mixer_manager_pulse_linux.cc',
++ 'linux/audio_mixer_manager_pulse_linux.h',
++ 'linux/pulseaudiosymboltable_linux.cc',
++ 'linux/pulseaudiosymboltable_linux.h',
+ ],
+ }],
+ ['OS=="mac" or OS=="ios"', {
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device__utility.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device__utility.cc
new file mode 100644
index 00000000000..f031bf613fd
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device__utility.cc
@@ -0,0 +1,21 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_audio__device_audio__device__utility.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/audio_device/audio_device_utility.cc.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device_utility.cc
+@@ -46,7 +46,7 @@ bool AudioDeviceUtility::StringCompare(
+
+ } // namespace webrtc
+
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+
+ // ============================================================================
+ // Linux & Mac
+@@ -109,6 +109,6 @@ bool AudioDeviceUtility::StringCompare(
+
+ } // namespace webrtc
+
+-#endif // defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#endif // defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+
+
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
new file mode 100644
index 00000000000..9d00f61a9cd
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
@@ -0,0 +1,12 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
+@@ -12,6 +12,7 @@
+
+ #include <algorithm>
+ #include <cassert>
++#include <cstdlib> // for abs()
+ #include <cstring>
+ #include <iterator>
+
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_rtp__utility.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_rtp__utility.cc
new file mode 100644
index 00000000000..c05a9bf9c5e
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_rtp__utility.cc
@@ -0,0 +1,49 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_rtp__rtcp_source_rtp__utility.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc
+@@ -18,7 +18,7 @@
+ #include <Windows.h> // FILETIME
+ #include <WinSock.h> // timeval
+ #include <MMSystem.h> // timeGetTime
+-#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_MAC))
++#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_BSD) || (defined WEBRTC_MAC))
+ #include <sys/time.h> // gettimeofday
+ #include <time.h>
+ #endif
+@@ -156,7 +156,7 @@ void get_time(WindowsHelpTimer* help_tim
+ WindowsHelpTimer* _helpTimer;
+ };
+
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+
+ // A clock reading times from the POSIX API.
+ class UnixSystemClock : public RtpRtcpClock {
+@@ -214,7 +214,7 @@ void WindowsSystemClock::CurrentNTP(WebR
+ frac = (WebRtc_UWord32)dtemp;
+ }
+
+-#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_MAC))
++#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_BSD) || (defined WEBRTC_MAC))
+
+ WebRtc_Word64 UnixSystemClock::GetTimeInMS() {
+ return TickTime::MillisecondTimestamp();
+@@ -253,7 +253,7 @@ static WindowsHelpTimer global_help_time
+ RtpRtcpClock* GetSystemClock() {
+ #if defined(_WIN32)
+ return new WindowsSystemClock(&global_help_timer);
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ return new UnixSystemClock();
+ #else
+ return NULL;
+@@ -330,7 +330,7 @@ bool StringCompare(const char* str1, con
+ const WebRtc_UWord32 length) {
+ return (_strnicmp(str1, str2, length) == 0) ? true : false;
+ }
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ bool StringCompare(const char* str1, const char* str2,
+ const WebRtc_UWord32 length) {
+ return (strncasecmp(str1, str2, length) == 0) ? true : false;
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_udp__transport_source_udp__transport__impl.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_udp__transport_source_udp__transport__impl.cc
new file mode 100644
index 00000000000..32396e0578e
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_udp__transport_source_udp__transport__impl.cc
@@ -0,0 +1,90 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_udp__transport_source_udp__transport__impl.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/udp_transport/source/udp_transport_impl.cc.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/udp_transport/source/udp_transport_impl.cc
+@@ -18,16 +18,16 @@
+ #if defined(_WIN32)
+ #include <winsock2.h>
+ #include <ws2tcpip.h>
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ #include <arpa/inet.h>
+ #include <ctype.h>
+ #include <fcntl.h>
+ #include <netdb.h>
++#include <sys/socket.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <stdlib.h>
+ #include <sys/ioctl.h>
+-#include <sys/socket.h>
+ #include <sys/time.h>
+ #include <unistd.h>
+ #ifndef WEBRTC_IOS
+@@ -36,9 +36,11 @@
+ #endif // defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
+
+ #if defined(WEBRTC_MAC)
+-#include <ifaddrs.h>
+ #include <machine/types.h>
+ #endif
++#if defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
++#include <ifaddrs.h>
++#endif
+ #if defined(WEBRTC_LINUX)
+ #include <linux/netlink.h>
+ #include <linux/rtnetlink.h>
+@@ -51,7 +53,7 @@
+ #include "typedefs.h"
+ #include "udp_socket_manager_wrapper.h"
+
+-#if defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ #define GetLastError() errno
+
+ #define IFRSIZE ((int)(size * sizeof (struct ifreq)))
+@@ -61,7 +63,7 @@
+ (int)(nlh)->nlmsg_len >= (int)sizeof(struct nlmsghdr) && \
+ (int)(nlh)->nlmsg_len <= (len))
+
+-#endif // defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#endif // defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+
+ namespace webrtc {
+
+@@ -2371,7 +2373,7 @@ WebRtc_Word32 UdpTransport::InetPresenta
+ const char* src,
+ void* dst)
+ {
+-#if defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ const WebRtc_Word32 result = inet_pton(af, src, dst);
+ return result > 0 ? 0 : -1;
+
+@@ -2493,7 +2495,7 @@ WebRtc_Word32 UdpTransport::LocalHostAdd
+ "getaddrinfo failed to find address");
+ return -1;
+
+-#elif defined(WEBRTC_MAC)
++#elif defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ struct ifaddrs* ptrIfAddrs = NULL;
+ struct ifaddrs* ptrIfAddrsStart = NULL;
+
+@@ -2685,7 +2687,7 @@ WebRtc_Word32 UdpTransport::LocalHostAdd
+ "gethostbyname failed, error:%d", error);
+ return -1;
+ }
+-#elif (defined(WEBRTC_MAC))
++#elif (defined(WEBRTC_BSD) || defined(WEBRTC_MAC))
+ char localname[255];
+ if (gethostname(localname, 255) != -1)
+ {
+@@ -2824,7 +2826,7 @@ WebRtc_Word32 UdpTransport::IPAddress(co
+ sourcePort = htons(source_port);
+ return 0;
+
+- #elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++ #elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ WebRtc_Word32 ipFamily = address._sockaddr_storage.sin_family;
+ const void* ptrNumericIP = NULL;
+
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_utility_source_rtp__dump__impl.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_utility_source_rtp__dump__impl.cc
new file mode 100644
index 00000000000..881ff6530af
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_utility_source_rtp__dump__impl.cc
@@ -0,0 +1,22 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_utility_source_rtp__dump__impl.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/utility/source/rtp_dump_impl.cc.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/utility/source/rtp_dump_impl.cc
+@@ -19,7 +19,7 @@
+ #if defined(_WIN32)
+ #include <Windows.h>
+ #include <mmsystem.h>
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ #include <string.h>
+ #include <sys/time.h>
+ #include <time.h>
+@@ -238,7 +238,7 @@ inline WebRtc_UWord32 RtpDumpImpl::GetTi
+ {
+ #if defined(_WIN32)
+ return timeGetTime();
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ struct timeval tv;
+ struct timezone tz;
+ unsigned long val;
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_device__info__impl.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_device__info__impl.cc
new file mode 100644
index 00000000000..a0e70e143cf
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_device__info__impl.cc
@@ -0,0 +1,31 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_device__info__impl.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/video_capture/device_info_impl.cc.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/video_capture/device_info_impl.cc
+@@ -54,7 +54,7 @@ WebRtc_Word32 DeviceInfoImpl::NumberOfCa
+ if (_lastUsedDeviceNameLength == strlen((char*) deviceUniqueIdUTF8))
+ {
+ // Is it the same device that is asked for again.
+-#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX)
++#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ if(strncasecmp((char*)_lastUsedDeviceName,
+ (char*) deviceUniqueIdUTF8,
+ _lastUsedDeviceNameLength)==0)
+@@ -91,7 +91,7 @@ WebRtc_Word32 DeviceInfoImpl::GetCapabil
+ ReadLockScoped cs(_apiLock);
+
+ if ((_lastUsedDeviceNameLength != strlen((char*) deviceUniqueIdUTF8))
+-#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX)
++#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ || (strncasecmp((char*)_lastUsedDeviceName,
+ (char*) deviceUniqueIdUTF8,
+ _lastUsedDeviceNameLength)!=0))
+@@ -155,7 +155,7 @@ WebRtc_Word32 DeviceInfoImpl::GetBestMat
+
+ ReadLockScoped cs(_apiLock);
+ if ((_lastUsedDeviceNameLength != strlen((char*) deviceUniqueIdUTF8))
+-#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX)
++#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ || (strncasecmp((char*)_lastUsedDeviceName,
+ (char*) deviceUniqueIdUTF8,
+ _lastUsedDeviceNameLength)!=0))
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc
new file mode 100644
index 00000000000..8b349cd7741
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc
@@ -0,0 +1,47 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
+@@ -19,12 +19,30 @@
+ #include <stdlib.h>
+
+ //v4l includes
++#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
++#include <sys/videoio.h>
++#elif defined(__sun)
++#include <sys/videodev2.h>
++#else
+ #include <linux/videodev2.h>
++#endif
++#ifdef HAVE_LIBV4L2
++#include <libv4l2.h>
++#endif
+
+ #include "ref_count.h"
+ #include "trace.h"
+
+
++#ifdef HAVE_LIBV4L2
++#define open v4l2_open
++#define close v4l2_close
++#define dup v4l2_dup
++#define ioctl v4l2_ioctl
++#define mmap v4l2_mmap
++#define munmap v4l2_munmap
++#endif
++
+ namespace webrtc
+ {
+ namespace videocapturemodule
+@@ -130,6 +148,11 @@ WebRtc_Word32 DeviceInfoLinux::GetDevice
+ memset(deviceNameUTF8, 0, deviceNameLength);
+ memcpy(cameraName, cap.card, sizeof(cap.card));
+
++ if (cameraName[0] == '\0')
++ {
++ sprintf(cameraName, "Camera at /dev/video%d", deviceNumber);
++ }
++
+ if (deviceNameLength >= strlen(cameraName))
+ {
+ memcpy(deviceNameUTF8, cameraName, strlen(cameraName));
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc
new file mode 100644
index 00000000000..46188431f11
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc
@@ -0,0 +1,45 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc.orig 2013-05-11 19:19:45.000000000 +0000
++++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
+@@ -12,12 +12,23 @@
+ #include <unistd.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+-#include <linux/videodev2.h>
+ #include <errno.h>
+ #include <stdio.h>
+ #include <sys/mman.h>
+ #include <string.h>
+
++//v4l includes
++#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
++#include <sys/videoio.h>
++#elif defined(__sun)
++#include <sys/videodev2.h>
++#else
++#include <linux/videodev2.h>
++#endif
++#ifdef HAVE_LIBV4L2
++#include <libv4l2.h>
++#endif
++
+ #include <new>
+
+ #include "ref_count.h"
+@@ -26,6 +37,15 @@
+ #include "critical_section_wrapper.h"
+ #include "video_capture_linux.h"
+
++#ifdef HAVE_LIBV4L2
++#define open v4l2_open
++#define close v4l2_close
++#define dup v4l2_dup
++#define ioctl v4l2_ioctl
++#define mmap v4l2_mmap
++#define munmap v4l2_munmap
++#endif
++
+ namespace webrtc
+ {
+ namespace videocapturemodule
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
new file mode 100644
index 00000000000..51a5177cbb8
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
@@ -0,0 +1,62 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi.orig 2013-05-11 19:19:45.000000000 +0000
++++ 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.
+
+ {
++ 'variables': {
++ 'use_libv4l2%': 0,
++ },
+ 'targets': [
+ {
+ 'target_name': 'video_capture_module',
+@@ -48,7 +51,17 @@
+ ],
+ }, { # include_internal_video_capture == 1
+ 'conditions': [
+- ['OS=="linux"', {
++ ['include_v4l2_video_capture==1', {
++ 'conditions': [
++ ['use_libv4l2==1', {
++ 'defines': [
++ 'HAVE_LIBV4L2',
++ ],
++ 'libraries': [
++ '-lv4l2',
++ ],
++ }],
++ ],
+ 'include_dirs': [
+ 'linux',
+ ],
+@@ -157,7 +170,7 @@
+ 'test/video_capture_main_mac.mm',
+ ],
+ 'conditions': [
+- ['OS=="mac" or OS=="linux"', {
++ ['OS!="win" and OS!="android"', {
+ 'cflags': [
+ '-Wno-write-strings',
+ ],
+@@ -165,13 +178,17 @@
+ '-lpthread -lm',
+ ],
+ }],
+- ['OS=="linux"', {
++ ['include_v4l2_video_capture==1', {
+ 'libraries': [
+- '-lrt',
+ '-lXext',
+ '-lX11',
+ ],
+ }],
++ ['OS=="linux"', {
++ 'libraries': [
++ '-lrt',
++ ],
++ }],
+ ['OS=="mac"', {
+ 'dependencies': [
+ # Link with a special main for mac so we can use the webcam.
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_interface_asm__defines.h b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_interface_asm__defines.h
new file mode 100644
index 00000000000..4775f75c8d5
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_interface_asm__defines.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_interface_asm__defines.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/interface/asm_defines.h.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/interface/asm_defines.h
+@@ -11,7 +11,7 @@
+ #ifndef WEBRTC_SYSTEM_WRAPPERS_INTERFACE_ASM_DEFINES_H_
+ #define WEBRTC_SYSTEM_WRAPPERS_INTERFACE_ASM_DEFINES_H_
+
+-#if defined(__linux__) && defined(__ELF__)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__ELF__)
+ .section .note.GNU-stack,"",%progbits
+ #endif
+
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_interface_tick__util.h b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_interface_tick__util.h
new file mode 100644
index 00000000000..18f20732822
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_interface_tick__util.h
@@ -0,0 +1,67 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_interface_tick__util.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/interface/tick_util.h.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/interface/tick_util.h
+@@ -194,7 +194,7 @@ inline WebRtc_Word64 TickTime::QueryOsFo
+ }
+ result.ticks_ = now + (num_wrap_time_get_time << 32);
+ #endif
+-#elif defined(WEBRTC_LINUX)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ struct timespec ts;
+ // TODO(wu): Remove CLOCK_REALTIME implementation.
+ #ifdef WEBRTC_CLOCK_TYPE_REALTIME
+@@ -241,7 +241,7 @@ inline WebRtc_Word64 TickTime::Milliseco
+ #else
+ return ticks;
+ #endif
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ return ticks / 1000000LL;
+ #else
+ return ticks / 1000LL;
+@@ -258,7 +258,7 @@ inline WebRtc_Word64 TickTime::Microseco
+ #else
+ return ticks * 1000LL;
+ #endif
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ return ticks / 1000LL;
+ #else
+ return ticks;
+@@ -278,7 +278,7 @@ inline WebRtc_Word64 TickTime::Milliseco
+ #else
+ return ms;
+ #endif
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ return ms * 1000000LL;
+ #else
+ return ms * 1000LL;
+@@ -294,7 +294,7 @@ inline WebRtc_Word64 TickTime::TicksToMi
+ #else
+ return ticks;
+ #endif
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ return ticks / 1000000LL;
+ #else
+ return ticks / 1000LL;
+@@ -323,7 +323,7 @@ inline WebRtc_Word64 TickInterval::Milli
+ // interval_ is in ms
+ return interval_;
+ #endif
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ // interval_ is in ns
+ return interval_ / 1000000;
+ #else
+@@ -342,7 +342,7 @@ inline WebRtc_Word64 TickInterval::Micro
+ // interval_ is in ms
+ return interval_ * 1000LL;
+ #endif
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ // interval_ is in ns
+ return interval_ / 1000;
+ #else
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_atomic32__posix.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_atomic32__posix.cc
new file mode 100644
index 00000000000..5e660ec701c
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_atomic32__posix.cc
@@ -0,0 +1,12 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_atomic32__posix.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/source/atomic32_posix.cc.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/source/atomic32_posix.cc
+@@ -12,7 +12,6 @@
+
+ #include <assert.h>
+ #include <inttypes.h>
+-#include <malloc.h>
+
+ #include "common_types.h"
+
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable.cc
new file mode 100644
index 00000000000..bcc8ac88c0c
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable.cc
@@ -0,0 +1,33 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable.cc.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable.cc
+@@ -8,14 +8,16 @@
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
++#include "condition_variable_wrapper.h"
++
+ #if defined(_WIN32)
+ #include <windows.h>
+ #include "condition_variable_win.h"
+-#include "condition_variable_wrapper.h"
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ #include <pthread.h>
+ #include "condition_variable_posix.h"
+-#include "condition_variable_wrapper.h"
++#else
++#include <stddef.h> // for NULL
+ #endif
+
+ namespace webrtc {
+@@ -23,7 +25,7 @@ namespace webrtc {
+ ConditionVariableWrapper* ConditionVariableWrapper::CreateConditionVariable() {
+ #if defined(_WIN32)
+ return new ConditionVariableWindows;
+-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ return ConditionVariablePosix::Create();
+ #else
+ return NULL;
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable__posix.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable__posix.cc
new file mode 100644
index 00000000000..85eb175bf46
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable__posix.cc
@@ -0,0 +1,13 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_condition__variable__posix.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable_posix.cc.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable_posix.cc
+@@ -79,7 +79,7 @@ bool ConditionVariablePosix::SleepCS(Cri
+ unsigned long max_time_inMS) {
+ const unsigned long INFINITE = 0xFFFFFFFF;
+ const int MILLISECONDS_PER_SECOND = 1000;
+-#ifndef WEBRTC_LINUX
++#if !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+ const int MICROSECONDS_PER_MILLISECOND = 1000;
+ #endif
+ const int NANOSECONDS_PER_SECOND = 1000000000;
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu.cc
new file mode 100644
index 00000000000..7e8a131a279
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu.cc
@@ -0,0 +1,22 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu.cc.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu.cc
+@@ -14,7 +14,7 @@
+ #include "cpu_win.h"
+ #elif defined(WEBRTC_MAC)
+ #include "cpu_mac.h"
+-#elif defined(WEBRTC_ANDROID)
++#elif defined(WEBRTC_ANDROID) || defined(WEBRTC_BSD)
+ // Not implemented yet, might be possible to use Linux implementation
+ #else // defined(WEBRTC_LINUX)
+ #include "cpu_linux.h"
+@@ -26,7 +26,7 @@ CpuWrapper* CpuWrapper::CreateCpu() {
+ return new CpuWindows();
+ #elif defined(WEBRTC_MAC)
+ return new CpuWrapperMac();
+-#elif defined(WEBRTC_ANDROID)
++#elif defined(WEBRTC_ANDROID) || defined(WEBRTC_BSD)
+ return 0;
+ #else
+ return new CpuLinux();
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu__info.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu__info.cc
new file mode 100644
index 00000000000..3e213a8d149
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu__info.cc
@@ -0,0 +1,50 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_cpu__info.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_info.cc.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_info.cc
+@@ -12,13 +12,15 @@
+
+ #if defined(_WIN32)
+ #include <Windows.h>
+-#elif defined(WEBRTC_MAC)
+-#include <sys/sysctl.h>
++#elif defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ #include <sys/types.h>
++#include <sys/sysctl.h>
+ #elif defined(WEBRTC_ANDROID)
+ // Not implemented yet, might be possible to use Linux implementation
+-#else // defined(WEBRTC_LINUX)
++#elif defined(WEBRTC_LINUX)
+ #include <sys/sysinfo.h>
++#else // defined(_SC_NPROCESSORS_ONLN)
++#include <unistd.h>
+ #endif
+
+ #include "trace.h"
+@@ -41,8 +43,15 @@ WebRtc_UWord32 CpuInfo::DetectNumberOfCo
+ WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1,
+ "Available number of cores:%d", number_of_cores_);
+
+-#elif defined(WEBRTC_MAC)
+- int name[] = {CTL_HW, HW_AVAILCPU};
++#elif defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
++ int name[] = {
++ CTL_HW,
++#ifdef HW_AVAILCPU
++ HW_AVAILCPU,
++#else
++ HW_NCPU,
++#endif
++ };
+ int ncpu;
+ size_t size = sizeof(ncpu);
+ if (0 == sysctl(name, 2, &ncpu, &size, NULL, 0)) {
+@@ -54,6 +63,8 @@ WebRtc_UWord32 CpuInfo::DetectNumberOfCo
+ "Failed to get number of cores");
+ number_of_cores_ = 1;
+ }
++#elif defined(_SC_NPROCESSORS_ONLN)
++ _numberOfCores = sysconf(_SC_NPROCESSORS_ONLN);
+ #else
+ WEBRTC_TRACE(kTraceWarning, kTraceUtility, -1,
+ "No function to get number of cores");
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
new file mode 100644
index 00000000000..fb6bdbcd3c8
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp
@@ -0,0 +1,18 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp
+@@ -21,6 +21,13 @@ Scott McMurray
+ #include "constants.hpp"
+ #include <cstring>
+
++#ifdef __FreeBSD__
++# include <osreldate.h>
++# if __FreeBSD_version < 900506
++# define getchar boost_getchar
++# endif
++#endif
++
+ namespace boost {
+ namespace detail {
+ //This only works on unsigned data types
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_thread__posix.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_thread__posix.cc
new file mode 100644
index 00000000000..072cc0561a1
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_thread__posix.cc
@@ -0,0 +1,96 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_thread__posix.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/source/thread_posix.cc.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/source/thread_posix.cc
+@@ -59,6 +59,17 @@
+ #include <sys/prctl.h>
+ #endif
+
++#if defined(__NetBSD__)
++#include <lwp.h>
++#elif defined(__FreeBSD__)
++#include <sys/param.h>
++#include <sys/thr.h>
++#endif
++
++#if defined(WEBRTC_BSD) && !defined(__NetBSD__)
++#include <pthread_np.h>
++#endif
++
+ #include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
+ #include "webrtc/system_wrappers/interface/event_wrapper.h"
+ #include "webrtc/system_wrappers/interface/trace.h"
+@@ -141,6 +152,20 @@ uint32_t ThreadWrapper::GetThreadId() {
+ return static_cast<uint32_t>(syscall(__NR_gettid));
+ #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS)
+ return pthread_mach_thread_np(pthread_self());
++#elif defined(__NetBSD__)
++ return _lwp_self();
++#elif defined(__DragonFly__)
++ return lwp_gettid();
++#elif defined(__OpenBSD__)
++ return reinterpret_cast<uintptr_t> (pthread_self());
++#elif defined(__FreeBSD__)
++# if __FreeBSD_version > 900030
++ return pthread_getthreadid_np();
++# else
++ long lwpid;
++ thr_self(&lwpid);
++ return lwpid;
++# endif
+ #else
+ return reinterpret_cast<uint32_t>(pthread_self());
+ #endif
+@@ -172,7 +197,7 @@ ThreadPosix::~ThreadPosix() {
+ delete crit_state_;
+ }
+
+-#define HAS_THREAD_ID !defined(WEBRTC_IOS) && !defined(WEBRTC_MAC)
++#define HAS_THREAD_ID !defined(WEBRTC_IOS) && !defined(WEBRTC_MAC) && !defined(WEBRTC_BSD)
+
+ bool ThreadPosix::Start(unsigned int& thread_id)
+ {
+@@ -237,13 +262,18 @@ bool ThreadPosix::Start(unsigned int& th
+
+ // CPU_ZERO and CPU_SET are not available in NDK r7, so disable
+ // SetAffinity on Android for now.
+-#if (defined(WEBRTC_LINUX) && (!defined(WEBRTC_ANDROID)))
++#if defined(__FreeBSD__) || (defined(WEBRTC_LINUX) && \
++ (!defined(WEBRTC_ANDROID)))
+ bool ThreadPosix::SetAffinity(const int* processor_numbers,
+ const unsigned int amount_of_processors) {
+ if (!processor_numbers || (amount_of_processors == 0)) {
+ return false;
+ }
++#if defined(__FreeBSD__)
++ cpuset_t mask;
++#else
+ cpu_set_t mask;
++#endif
+ CPU_ZERO(&mask);
+
+ for (unsigned int processor = 0;
+@@ -251,7 +281,11 @@ bool ThreadPosix::SetAffinity(const int*
+ ++processor) {
+ CPU_SET(processor_numbers[processor], &mask);
+ }
+-#if defined(WEBRTC_ANDROID)
++#if defined(__FreeBSD__)
++ const int result = pthread_setaffinity_np(thread_,
++ sizeof(mask),
++ &mask);
++#elif defined(WEBRTC_ANDROID)
+ // Android.
+ const int result = syscall(__NR_sched_setaffinity,
+ pid_,
+@@ -325,6 +359,10 @@ void ThreadPosix::Run() {
+ if (set_thread_name_) {
+ #ifdef WEBRTC_LINUX
+ prctl(PR_SET_NAME, (unsigned long)name_, 0, 0, 0);
++#elif defined(__NetBSD__)
++ pthread_setname_np(pthread_self(), "%s", (void *)name_);
++#elif defined(WEBRTC_BSD)
++ pthread_set_name_np(pthread_self(), name_);
+ #endif
+ WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1,
+ "Thread with name:%s started ", name_);
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_trace__posix.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_trace__posix.cc
new file mode 100644
index 00000000000..3f0e08b77df
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_system__wrappers_source_trace__posix.cc
@@ -0,0 +1,13 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_system__wrappers_source_trace__posix.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/system_wrappers/source/trace_posix.cc.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/system_wrappers/source/trace_posix.cc
+@@ -54,7 +54,7 @@ WebRtc_Word32 TracePosix::AddTime(char*
+ }
+ struct tm buffer;
+ const struct tm* system_time =
+- localtime_r(&system_time_high_res.tv_sec, &buffer);
++ localtime_r((const time_t *)(&system_time_high_res.tv_sec), &buffer);
+
+ const WebRtc_UWord32 ms_time = system_time_high_res.tv_usec / 1000;
+ WebRtc_UWord32 prev_tickCount = 0;
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_typedefs.h b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_typedefs.h
new file mode 100644
index 00000000000..b0710ea0f31
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_typedefs.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_typedefs.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/typedefs.h.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/typedefs.h
+@@ -21,7 +21,7 @@
+ // For access to standard POSIXish features, use WEBRTC_POSIX instead of a
+ // more specific macro.
+ #if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) || \
+- defined(WEBRTC_ANDROID)
++ defined(WEBRTC_ANDROID) || defined(WEBRTC_BSD)
+ #define WEBRTC_POSIX
+ #endif
+
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_video__engine_vie__defines.h b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_video__engine_vie__defines.h
new file mode 100644
index 00000000000..342cf374b76
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_video__engine_vie__defines.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_video__engine_vie__defines.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/video_engine/vie_defines.h.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/video_engine/vie_defines.h
+@@ -173,7 +173,7 @@ inline int ChannelId(const int moduleId)
+
+ // Linux specific.
+ #ifndef WEBRTC_ANDROID
+-#ifdef WEBRTC_LINUX
++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ // Build information macros.
+ #if defined(_DEBUG)
+ #define BUILDMODE "d"
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_voice__engine_voe__network__impl.cc b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_voice__engine_voe__network__impl.cc
new file mode 100644
index 00000000000..8f0b5596a44
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_voice__engine_voe__network__impl.cc
@@ -0,0 +1,31 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_voice__engine_voe__network__impl.cc,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/voice_engine/voe_network_impl.cc.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/voice_engine/voe_network_impl.cc
+@@ -472,7 +472,7 @@ int VoENetworkImpl::SetSendTOS(int chann
+ "SetSendTOS(channel=%d, DSCP=%d, useSetSockopt=%d)",
+ channel, DSCP, useSetSockopt);
+
+-#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_MAC)
++#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) && !defined(WEBRTC_MAC)
+ _shared->SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceWarning,
+ "SetSendTOS() is not supported on this platform");
+ return -1;
+@@ -528,7 +528,7 @@ int VoENetworkImpl::SetSendTOS(int chann
+ "SetSendTOS() external transport is enabled");
+ return -1;
+ }
+-#if defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+ useSetSockopt = true;
+ WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1),
+ " force useSetSockopt=true since there is no alternative"
+@@ -551,7 +551,7 @@ int VoENetworkImpl::GetSendTOS(int chann
+ WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
+ "GetSendTOS(channel=%d)", channel);
+
+-#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_MAC)
++#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) && !defined(WEBRTC_MAC)
+ _shared->SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceWarning,
+ "GetSendTOS() is not supported on this platform");
+ return -1;
diff --git a/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_voice__engine_voice__engine__defines.h b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_voice__engine_voice__engine__defines.h
new file mode 100644
index 00000000000..f44a4f7b2aa
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_trunk_webrtc_voice__engine_voice__engine__defines.h
@@ -0,0 +1,38 @@
+$NetBSD: patch-media_webrtc_trunk_webrtc_voice__engine_voice__engine__defines.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/trunk/webrtc/voice_engine/voice_engine_defines.h.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/trunk/webrtc/voice_engine/voice_engine_defines.h
+@@ -414,7 +414,7 @@ namespace webrtc
+ // *** WEBRTC_MAC ***
+ // including iPhone
+
+-#ifdef WEBRTC_MAC
++#if defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+
+ #include <pthread.h>
+ #include <sys/types.h>
+@@ -431,6 +431,7 @@ namespace webrtc
+ #include <sched.h>
+ #include <sys/time.h>
+ #include <time.h>
++#if !defined(WEBRTC_BSD)
+ #include <AudioUnit/AudioUnit.h>
+ #if !defined(WEBRTC_IOS)
+ #include <CoreServices/CoreServices.h>
+@@ -439,6 +440,7 @@ namespace webrtc
+ #include <AudioToolbox/AudioConverter.h>
+ #include <CoreAudio/HostTime.h>
+ #endif
++#endif
+
+ #define DWORD unsigned long int
+ #define WINAPI
+@@ -531,7 +533,7 @@ namespace webrtc
+
+ #else
+ #define IPHONE_NOT_SUPPORTED(stat)
+-#endif // #ifdef WEBRTC_MAC
++#endif // #if defined(WEBRTC_BSD) || defined(WEBRTC_MAC)
+
+
+
diff --git a/devel/xulrunner/patches/patch-media_webrtc_webrtc__config.gypi b/devel/xulrunner/patches/patch-media_webrtc_webrtc__config.gypi
new file mode 100644
index 00000000000..03406c20e97
--- /dev/null
+++ b/devel/xulrunner/patches/patch-media_webrtc_webrtc__config.gypi
@@ -0,0 +1,12 @@
+$NetBSD: patch-media_webrtc_webrtc__config.gypi,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- media/webrtc/webrtc_config.gypi.orig 2013-05-11 19:19:46.000000000 +0000
++++ media/webrtc/webrtc_config.gypi
+@@ -14,7 +14,6 @@
+ 'include_internal_video_render': 0,
+ 'clang_use_chrome_plugins': 0,
+ 'enable_protobuf': 0,
+- 'include_pulse_audio': 0,
+ 'include_tests': 0,
+ # use_system_lib* still seems to be in use in trunk/build
+ 'use_system_libjpeg': 0,
diff --git a/devel/xulrunner/patches/patch-mp b/devel/xulrunner/patches/patch-mp
index 172c1253811..c09fd1c3873 100644
--- a/devel/xulrunner/patches/patch-mp
+++ b/devel/xulrunner/patches/patch-mp
@@ -1,8 +1,8 @@
-$NetBSD: patch-mp,v 1.9 2013/04/05 13:30:17 ryoon Exp $
+$NetBSD: patch-mp,v 1.10 2013/05/19 08:47:41 ryoon Exp $
---- media/libsydneyaudio/src/Makefile.in.orig 2013-03-26 22:17:56.000000000 +0000
+--- media/libsydneyaudio/src/Makefile.in.orig 2013-05-11 19:19:43.000000000 +0000
+++ media/libsydneyaudio/src/Makefile.in
-@@ -70,6 +70,12 @@ CSRCS = \
+@@ -70,6 +70,18 @@ CSRCS = \
$(NULL)
endif
@@ -12,6 +12,12 @@ $NetBSD: patch-mp,v 1.9 2013/04/05 13:30:17 ryoon Exp $
+ $(NULL)
+endif
+
++ifdef MOZ_PULSEAUDIO
++CSRCS = \
++ sydney_audio_pulseaudio.c \
++ $(NULL)
++endif
++
ifeq ($(OS_ARCH),WINNT)
OS_LIBS += winmm.lib
endif
diff --git a/devel/xulrunner/patches/patch-netwerk_sctp_src_Makefile.in b/devel/xulrunner/patches/patch-netwerk_sctp_src_Makefile.in
new file mode 100644
index 00000000000..8dba02fa61c
--- /dev/null
+++ b/devel/xulrunner/patches/patch-netwerk_sctp_src_Makefile.in
@@ -0,0 +1,23 @@
+$NetBSD: patch-netwerk_sctp_src_Makefile.in,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- netwerk/sctp/src/Makefile.in.orig 2013-05-11 19:19:49.000000000 +0000
++++ netwerk/sctp/src/Makefile.in
+@@ -114,11 +114,18 @@ DEFINES += \
+ -U__FreeBSD__ \
+ $(NULL)
+ else
++ifeq ($(OS_TARGET),NetBSD)
++DEFINES += \
++ -D__Userspace_os_NetBSD=1 \
++ -U__NetBSD__ \
++ $(NULL)
++else
+ #error Unsupported platform!
+ endif
+ endif
+ endif
+ endif
++endif
+
+ include $(topsrcdir)/config/config.mk
+ include $(topsrcdir)/ipc/chromium/chromium-config.mk
diff --git a/devel/xulrunner/patches/patch-netwerk_sctp_src_netinet_sctp__os__userspace.h b/devel/xulrunner/patches/patch-netwerk_sctp_src_netinet_sctp__os__userspace.h
new file mode 100644
index 00000000000..bfb540f8a1a
--- /dev/null
+++ b/devel/xulrunner/patches/patch-netwerk_sctp_src_netinet_sctp__os__userspace.h
@@ -0,0 +1,14 @@
+$NetBSD: patch-netwerk_sctp_src_netinet_sctp__os__userspace.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- netwerk/sctp/src/netinet/sctp_os_userspace.h.orig 2013-05-11 19:19:49.000000000 +0000
++++ netwerk/sctp/src/netinet/sctp_os_userspace.h
+@@ -395,7 +395,9 @@ typedef pthread_t userland_thread_t;
+ #define MA_OWNED 7 /* sys/mutex.h typically on FreeBSD */
+ #if !defined(__Userspace_os_FreeBSD)
+ struct mtx {int dummy;};
++#if !defined(__Userspace_os_NetBSD)
+ struct selinfo {int dummy;};
++#endif
+ struct sx {int dummy;};
+ #endif
+
diff --git a/devel/xulrunner/patches/patch-netwerk_sctp_src_user__recv__thread.c b/devel/xulrunner/patches/patch-netwerk_sctp_src_user__recv__thread.c
new file mode 100644
index 00000000000..e9169f74e37
--- /dev/null
+++ b/devel/xulrunner/patches/patch-netwerk_sctp_src_user__recv__thread.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-netwerk_sctp_src_user__recv__thread.c,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- netwerk/sctp/src/user_recv_thread.c.orig 2013-05-11 19:19:49.000000000 +0000
++++ netwerk/sctp/src/user_recv_thread.c
+@@ -35,7 +35,7 @@
+ #include <netinet/in.h>
+ #include <unistd.h>
+ #include <pthread.h>
+-#if !defined(__Userspace_os_FreeBSD)
++#if !defined(__Userspace_os_FreeBSD) && !defined(__Userspace_os_NetBSD)
+ #include <sys/uio.h>
+ #else
+ #include <user_ip6_var.h>
diff --git a/devel/xulrunner/patches/patch-netwerk_sctp_src_user__socketvar.h b/devel/xulrunner/patches/patch-netwerk_sctp_src_user__socketvar.h
new file mode 100644
index 00000000000..e85bc4d915f
--- /dev/null
+++ b/devel/xulrunner/patches/patch-netwerk_sctp_src_user__socketvar.h
@@ -0,0 +1,33 @@
+$NetBSD: patch-netwerk_sctp_src_user__socketvar.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- netwerk/sctp/src/user_socketvar.h.orig 2013-05-11 19:19:49.000000000 +0000
++++ netwerk/sctp/src/user_socketvar.h
+@@ -47,7 +47,7 @@
+ /* #include <sys/_lock.h> was 0 byte file */
+ /* #include <sys/_mutex.h> was 0 byte file */
+ /* #include <sys/_sx.h> */ /*__Userspace__ alternative?*/
+-#if !defined(__Userspace_os_Windows) && !defined(__Userspace_os_FreeBSD)
++#if !defined(__Userspace_os_Windows) && !defined(__Userspace_os_FreeBSD) && !defined(__Userspace_os_NetBSD)
+ #include <sys/uio.h>
+ #endif
+ #define SOCK_MAXADDRLEN 255
+@@ -64,16 +64,18 @@
+ #define ERESTART (-1)
+ #endif
+
+-#if !defined(__Userspace_os_Darwin)
++#if !defined(__Userspace_os_Darwin) && !defined(__Userspace_os_NetBSD)
+ enum uio_rw { UIO_READ, UIO_WRITE };
+ #endif
+
++#if !defined(__Userspace_os_NetBSD)
+ /* Segment flag values. */
+ enum uio_seg {
+ UIO_USERSPACE, /* from user data space */
+ UIO_SYSSPACE, /* from system space */
+ UIO_NOCOPY /* don't copy, already in object */
+ };
++#endif
+
+ struct proc {
+ int stub; /* struct proc is a dummy for __Userspace__ */
diff --git a/devel/xulrunner/patches/patch-security_manager_ssl_src_nsNSSComponent.cpp b/devel/xulrunner/patches/patch-security_manager_ssl_src_nsNSSComponent.cpp
new file mode 100644
index 00000000000..a5f6823c8d2
--- /dev/null
+++ b/devel/xulrunner/patches/patch-security_manager_ssl_src_nsNSSComponent.cpp
@@ -0,0 +1,12 @@
+$NetBSD: patch-security_manager_ssl_src_nsNSSComponent.cpp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- security/manager/ssl/src/nsNSSComponent.cpp.orig 2013-05-11 19:19:50.000000000 +0000
++++ security/manager/ssl/src/nsNSSComponent.cpp
+@@ -72,6 +72,7 @@
+ #include "nss.h"
+ #include "pk11func.h"
+ #include "ssl.h"
++#define NSS_ENABLE_ECC 1
+ #include "sslproto.h"
+ #include "secmod.h"
+ #include "sechash.h"
diff --git a/devel/xulrunner/patches/patch-toolkit_library_Makefile.in b/devel/xulrunner/patches/patch-toolkit_library_Makefile.in
new file mode 100644
index 00000000000..08b75ee222f
--- /dev/null
+++ b/devel/xulrunner/patches/patch-toolkit_library_Makefile.in
@@ -0,0 +1,12 @@
+$NetBSD: patch-toolkit_library_Makefile.in,v 1.4 2013/05/19 08:47:41 ryoon Exp $
+
+--- toolkit/library/Makefile.in.orig 2013-05-11 19:19:54.000000000 +0000
++++ toolkit/library/Makefile.in
+@@ -405,6 +405,7 @@ endif
+ EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib)
+
+ ifdef MOZ_WEBRTC
++EXTRA_DSO_LDOPTS += $(MOZ_LIBV4L2_LIBS)
+ ifdef MOZ_PEERCONNECTION
+ COMPONENT_LIBS += peerconnection
+ endif
diff --git a/devel/xulrunner/patches/patch-xpcom_io_nsMultiplexInputStream_cpp b/devel/xulrunner/patches/patch-xpcom_io_nsMultiplexInputStream_cpp
index 0fb88784bf1..ad4ee4ecdf1 100644
--- a/devel/xulrunner/patches/patch-xpcom_io_nsMultiplexInputStream_cpp
+++ b/devel/xulrunner/patches/patch-xpcom_io_nsMultiplexInputStream_cpp
@@ -1,19 +1,18 @@
-$NetBSD: patch-xpcom_io_nsMultiplexInputStream_cpp,v 1.1 2013/05/11 23:33:14 mef Exp $
+$NetBSD: patch-xpcom_io_nsMultiplexInputStream_cpp,v 1.2 2013/05/19 08:47:41 ryoon Exp $
Fix PR/47722, dragonfly (gcc 4.7) build problem:
error: no matching function for call to
'NS_MIN(int64_t&, __gnu_cxx::__enable_if<true, double>::__type)'
devel/xulrunner/work/mozilla-release/xpcom/io/nsMultiplexInputStream.cpp:532:83
---- xpcom/io/nsMultiplexInputStream.cpp.orig 2013-04-10 12:03:01.000000000 +0900
-+++ xpcom/io/nsMultiplexInputStream.cpp 2013-04-16 08:01:29.000000000 +0900
+--- xpcom/io/nsMultiplexInputStream.cpp.orig 2013-05-11 19:19:56.000000000 +0000
++++ xpcom/io/nsMultiplexInputStream.cpp
@@ -529,7 +529,7 @@ nsMultiplexInputStream::Seek(int32_t aWh
rv = stream->Tell(&avail);
NS_ENSURE_SUCCESS(rv, rv);
-- int64_t newPos = streamPos + NS_MIN(avail, std::abs(remaining));
-+ int64_t newPos = streamPos + NS_MIN(avail, (int64_t)std::abs(remaining));
+- int64_t newPos = streamPos + XPCOM_MIN(avail, std::abs(remaining));
++ int64_t newPos = streamPos + XPCOM_MIN(avail, (int64_t)std::abs(remaining));
rv = stream->Seek(NS_SEEK_END, -newPos);
NS_ENSURE_SUCCESS(rv, rv);
-
diff --git a/devel/xulrunner/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp b/devel/xulrunner/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp
new file mode 100644
index 00000000000..1721676ad39
--- /dev/null
+++ b/devel/xulrunner/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp.orig 2013-05-11 19:19:56.000000000 +0000
++++ 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/devel/xulrunner/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp b/devel/xulrunner/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp
new file mode 100644
index 00000000000..af30e00a2a0
--- /dev/null
+++ b/devel/xulrunner/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp.orig 2013-05-11 19:19:56.000000000 +0000
++++ 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/devel/xulrunner/patches/patch-xpcom_string_public_nsAlgorithm.h b/devel/xulrunner/patches/patch-xpcom_string_public_nsAlgorithm.h
new file mode 100644
index 00000000000..95d5a544af4
--- /dev/null
+++ b/devel/xulrunner/patches/patch-xpcom_string_public_nsAlgorithm.h
@@ -0,0 +1,16 @@
+$NetBSD: patch-xpcom_string_public_nsAlgorithm.h,v 1.1 2013/05/19 08:47:41 ryoon Exp $
+
+--- xpcom/string/public/nsAlgorithm.h.orig 2013-05-11 19:19:56.000000000 +0000
++++ xpcom/string/public/nsAlgorithm.h
+@@ -45,7 +45,10 @@ XPCOM_MAX( const T& a, const T& b )
+ return a > b ? a : b;
+ }
+
+-#if defined(_MSC_VER) && (_MSC_VER < 1600)
++#if (defined(_MSC_VER) && (_MSC_VER < 1600)) || \
++ ((defined(__GLIBCXX__) && __GLIBCXX__ < 20121005) && \
++ (defined(_GLIBCXX_USE_LONG_LONG) && \
++ (!_GLIBCXX_USE_C99 || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC)))
+ namespace std {
+ inline
+ long long