summaryrefslogtreecommitdiff
path: root/www/firefox/patches
diff options
context:
space:
mode:
authorryoon <ryoon@pkgsrc.org>2017-06-14 11:28:44 +0000
committerryoon <ryoon@pkgsrc.org>2017-06-14 11:28:44 +0000
commit905e1f044f0bd2487c5a9f93d39e14b4e2878b2b (patch)
treef62a9ae178fd0448b69f3414e41be22eaa0363c6 /www/firefox/patches
parentfebffa88bfc0b7387a3ebc10a83028dc16f8bf7c (diff)
downloadpkgsrc-905e1f044f0bd2487c5a9f93d39e14b4e2878b2b.tar.gz
Update to 54.0
* If your 54.0 is unstable, please disable e10s with browser.tabs.remote.autostart.2=false (this works at least for me) Changelog: New Simplified the download button and download status panel Added support for multiple content processes (e10s-multi) Added Burmese (my) locale Fixed Various security fixes Changed Moved the mobile bookmarks folder to the main bookmarks menu for easier access Security fixes: #CVE-2017-5472: Use-after-free using destroyed node when regenerating trees #CVE-2017-7749: Use-after-free during docshell reloading #CVE-2017-7750: Use-after-free with track elements #CVE-2017-7751: Use-after-free with content viewer listeners #CVE-2017-7752: Use-after-free with IME input #CVE-2017-7754: Out-of-bounds read in WebGL with ImageInfo object #CVE-2017-7755: Privilege escalation through Firefox Installer with same directory DLL files #CVE-2017-7756: Use-after-free and use-after-scope logging XHR header errors #CVE-2017-7757: Use-after-free in IndexedDB #CVE-2017-7778: Vulnerabilities in the Graphite 2 library #CVE-2017-7758: Out-of-bounds read in Opus encoder #CVE-2017-7759: Android intent URLs can cause navigation to local file system #CVE-2017-7760: File manipulation and privilege escalation via callback parameter in Mozilla Windows Updater and Maintenance Service #CVE-2017-7761: File deletion and privilege escalation through Mozilla Maintenance Service helper.exe application #CVE-2017-7762: Addressbar spoofing in Reader mode #CVE-2017-7763: Mac fonts render some unicode characters as spaces #CVE-2017-7764: Domain spoofing with combination of Canadian Syllabics and other unicode blocks #CVE-2017-7765: Mark of the Web bypass when saving executable files #CVE-2017-7766: File execution and privilege escalation through updater.ini, Mozilla Windows Updater, and Mozilla Maintenance Service #CVE-2017-7767: Privilege escalation and arbitrary file overwrites through Mozilla Windows Updater and Mozilla Maintenance Service #CVE-2017-7768: 32 byte arbitrary file read through Mozilla Maintenance Service #CVE-2017-7770: Addressbar spoofing with JavaScript events and fullscreen mode #CVE-2017-5471: Memory safety bugs fixed in Firefox 54 #CVE-2017-5470: Memory safety bugs fixed in Firefox 54 and Firefox ESR 52.2
Diffstat (limited to 'www/firefox/patches')
-rw-r--r--www/firefox/patches/patch-aa27
-rw-r--r--www/firefox/patches/patch-as35
-rw-r--r--www/firefox/patches/patch-browser_app_nsBrowserApp.cpp8
-rw-r--r--www/firefox/patches/patch-browser_confvars.sh12
-rw-r--r--www/firefox/patches/patch-build_gyp.mozbuild24
-rw-r--r--www/firefox/patches/patch-build_moz.configure_init.configure37
-rw-r--r--www/firefox/patches/patch-build_moz.configure_keyfiles.configure21
-rw-r--r--www/firefox/patches/patch-build_moz.configure_rust.configure44
-rw-r--r--www/firefox/patches/patch-build_pgo_profileserver.py13
-rw-r--r--www/firefox/patches/patch-config_system-headers33
-rw-r--r--www/firefox/patches/patch-dom_media_MediaPrefs.h13
-rw-r--r--www/firefox/patches/patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp12
-rw-r--r--www/firefox/patches/patch-dom_media_webrtc_MediaEngine.h33
-rw-r--r--www/firefox/patches/patch-dom_system_OSFileConstants.cpp33
-rw-r--r--www/firefox/patches/patch-gfx_graphite2_src_Bidi.cpp18
-rw-r--r--www/firefox/patches/patch-gfx_thebes_moz.build8
-rw-r--r--www/firefox/patches/patch-gfx_ycbcr_yuv__row__arm.S4
-rw-r--r--www/firefox/patches/patch-intl_unicharutil_util_moz.build12
-rw-r--r--www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c84
-rw-r--r--www/firefox/patches/patch-media_libstagefright_binding_DecoderData.cpp32
-rw-r--r--www/firefox/patches/patch-media_libstagefright_binding_MP4Metadata.cpp127
-rw-r--r--www/firefox/patches/patch-media_libstagefright_binding_include_mp4__demuxer_DecoderData.h40
-rw-r--r--www/firefox/patches/patch-media_libstagefright_binding_include_mp4__demuxer_MP4Metadata.h20
-rw-r--r--www/firefox/patches/patch-media_libyuv_libyuv_source_mjpeg__decoder.cc13
-rw-r--r--www/firefox/patches/patch-media_libyuv_source_mjpeg__decoder.cc12
-rw-r--r--www/firefox/patches/patch-media_webrtc_signaling_test_common.build8
-rw-r--r--www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc42
-rw-r--r--www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc30
-rw-r--r--www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi34
-rw-r--r--www/firefox/patches/patch-mobile_android_confvars.sh13
-rw-r--r--www/firefox/patches/patch-python_futures_concurrent_futures_process.py17
-rw-r--r--www/firefox/patches/patch-rc18
-rw-r--r--www/firefox/patches/patch-toolkit_components_osfile_modules_osfile__unix__back.jsm15
-rw-r--r--www/firefox/patches/patch-toolkit_components_osfile_modules_osfile__unix__front.jsm13
-rw-r--r--www/firefox/patches/patch-toolkit_components_telemetry_Histograms.json42
-rw-r--r--www/firefox/patches/patch-toolkit_library_moz.build16
-rw-r--r--www/firefox/patches/patch-toolkit_moz.configure8
-rw-r--r--www/firefox/patches/patch-toolkit_xre_nsEmbedFunctions.cpp10
38 files changed, 468 insertions, 513 deletions
diff --git a/www/firefox/patches/patch-aa b/www/firefox/patches/patch-aa
index a4e9c2931f9..0f4b110025b 100644
--- a/www/firefox/patches/patch-aa
+++ b/www/firefox/patches/patch-aa
@@ -1,13 +1,12 @@
-$NetBSD: patch-aa,v 1.51 2017/04/27 01:49:47 ryoon Exp $
+$NetBSD: patch-aa,v 1.52 2017/06/14 11:28:44 ryoon Exp $
-* MOZ_ENABLE_PROFILER_SPS is not for users, Disable it
* Disable libjpeg-turbo check
* Add system libraries option
* Add OSS audio support
---- old-configure.in.orig 2017-04-23 15:21:06.933492440 +0000
+--- old-configure.in.orig 2017-06-05 20:45:16.000000000 +0000
+++ old-configure.in
-@@ -2084,11 +2084,7 @@ if test "$MOZ_SYSTEM_JPEG" = 1; then
+@@ -2049,11 +2049,7 @@ if test "$MOZ_SYSTEM_JPEG" = 1; then
#include <jpeglib.h> ],
[ #if JPEG_LIB_VERSION < $MOZJPEG
#error "Insufficient JPEG library version ($MOZJPEG required)."
@@ -20,17 +19,7 @@ $NetBSD: patch-aa,v 1.51 2017/04/27 01:49:47 ryoon Exp $
MOZ_SYSTEM_JPEG=1,
AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg]))
fi
-@@ -2818,6 +2814,9 @@ if test -n "$MOZ_WEBRTC"; then
- AC_DEFINE(MOZ_WEBRTC_ASSERT_ALWAYS)
- MOZ_RAW=1
-
-+ dnl with libv4l2 we can support more cameras
-+ PKG_CHECK_MODULES(MOZ_LIBV4L2, libv4l2)
-+
- dnl enable once Signaling lands
- MOZ_WEBRTC_SIGNALING=1
- AC_DEFINE(MOZ_WEBRTC_SIGNALING)
-@@ -2860,7 +2859,7 @@ dnl Use integers over floats for audio o
+@@ -2825,7 +2821,7 @@ dnl Use integers over floats for audio o
dnl (regarless of the CPU architecture, because audio
dnl backends for those platforms don't support floats. We also
dnl use integers on ARM with other OS, because it's more efficient.
@@ -39,7 +28,7 @@ $NetBSD: patch-aa,v 1.51 2017/04/27 01:49:47 ryoon Exp $
MOZ_SAMPLE_TYPE_S16=1
AC_DEFINE(MOZ_SAMPLE_TYPE_S16)
AC_SUBST(MOZ_SAMPLE_TYPE_S16)
-@@ -2968,6 +2967,111 @@ if test -n "$MOZ_OMX_PLUGIN"; then
+@@ -2933,6 +2929,111 @@ if test -n "$MOZ_OMX_PLUGIN"; then
fi
fi
@@ -151,7 +140,7 @@ $NetBSD: patch-aa,v 1.51 2017/04/27 01:49:47 ryoon Exp $
dnl system libvpx Support
dnl ========================================================
MOZ_ARG_WITH_BOOL(system-libvpx,
-@@ -3128,6 +3232,67 @@ AC_DEFINE(MOZ_WEBM_ENCODER)
+@@ -3093,6 +3194,67 @@ AC_DEFINE(MOZ_WEBM_ENCODER)
AC_SUBST(MOZ_WEBM_ENCODER)
dnl ==================================
@@ -219,7 +208,7 @@ $NetBSD: patch-aa,v 1.51 2017/04/27 01:49:47 ryoon Exp $
dnl = Check alsa availability on Linux
dnl ==================================
-@@ -4860,6 +5025,27 @@ dnl ====================================
+@@ -4818,6 +4980,27 @@ dnl ====================================
AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR)
dnl ========================================================
@@ -235,7 +224,7 @@ $NetBSD: patch-aa,v 1.51 2017/04/27 01:49:47 ryoon Exp $
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
-+ #if !GR2_VERSION_REQUIRE(1,3,8)
++ #if !GR2_VERSION_REQUIRE(1,3,10)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
diff --git a/www/firefox/patches/patch-as b/www/firefox/patches/patch-as
deleted file mode 100644
index abfba50ac4c..00000000000
--- a/www/firefox/patches/patch-as
+++ /dev/null
@@ -1,35 +0,0 @@
-$NetBSD: patch-as,v 1.22 2017/02/16 02:25:17 maya Exp $
-
-* Treat DragonFly like FreeBSD.
-* Add system ICU support
-
---- js/src/old-configure.in.orig 2017-01-16 16:16:52.000000000 +0000
-+++ js/src/old-configure.in
-@@ -140,6 +140,9 @@ fi
-
- MOZ_TOOL_VARIABLES
-
-+AC_PROG_CPP
-+AC_PROG_CXXCPP
-+
- dnl Special win32 checks
- dnl ========================================================
-
-@@ -1053,7 +1056,7 @@ dnl Checks for header files.
- dnl ========================================================
- AC_HEADER_DIRENT
- case "$target_os" in
--freebsd*)
-+freebsd*|*-*-dragonfly*)
- # for stuff like -lXshm
- CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
- ;;
-@@ -1184,7 +1187,7 @@ then
- fi
-
- case "$target" in
-- *-*-freebsd*)
-+ *-*-freebsd*|*-*-dragonfly*)
- AC_DEFINE(_REENTRANT)
- AC_DEFINE(_THREAD_SAFE)
- dnl -pthread links in -lpthread, so don't specify it explicitly.
diff --git a/www/firefox/patches/patch-browser_app_nsBrowserApp.cpp b/www/firefox/patches/patch-browser_app_nsBrowserApp.cpp
index ba53ffc2246..68ef3b8d793 100644
--- a/www/firefox/patches/patch-browser_app_nsBrowserApp.cpp
+++ b/www/firefox/patches/patch-browser_app_nsBrowserApp.cpp
@@ -1,11 +1,13 @@
-$NetBSD: patch-browser_app_nsBrowserApp.cpp,v 1.12 2017/04/27 01:49:47 ryoon Exp $
+$NetBSD: patch-browser_app_nsBrowserApp.cpp,v 1.13 2017/06/14 11:28:44 ryoon Exp $
---- browser/app/nsBrowserApp.cpp.orig 2017-04-11 04:15:14.000000000 +0000
+--- browser/app/nsBrowserApp.cpp.orig 2017-06-05 20:45:13.000000000 +0000
+++ browser/app/nsBrowserApp.cpp
-@@ -259,6 +259,9 @@ int main(int argc, char* argv[], char* e
+@@ -261,6 +261,11 @@ int main(int argc, char* argv[], char* e
{
mozilla::TimeStamp start = mozilla::TimeStamp::Now();
++ setenv("MOZ_PLUGIN_PATH", "@PREFIX@/lib/browser_plugins/symlinks/gecko", 0);
++
+ setenv("MOZ_GMP_PATH", "@PREFIX@/lib/browser_plugins/symlinks/gecko", 0);
+ setenv("MOZ_PLUGIN_PATH", "@PREFIX@/lib/browser_plugins/symlinks/gecko", 0);
+
diff --git a/www/firefox/patches/patch-browser_confvars.sh b/www/firefox/patches/patch-browser_confvars.sh
new file mode 100644
index 00000000000..492558858e5
--- /dev/null
+++ b/www/firefox/patches/patch-browser_confvars.sh
@@ -0,0 +1,12 @@
+$NetBSD: patch-browser_confvars.sh,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- browser/confvars.sh.orig 2017-06-05 20:45:14.000000000 +0000
++++ browser/confvars.sh
+@@ -30,6 +30,7 @@ if test "$OS_ARCH" = "WINNT"; then
+ fi
+ fi
+
++MOZ_RUST_MP4PARSE=1
+ if test "$NIGHTLY_BUILD"; then
+ MOZ_RUST_URLPARSE=1
+ fi
diff --git a/www/firefox/patches/patch-build_gyp.mozbuild b/www/firefox/patches/patch-build_gyp.mozbuild
deleted file mode 100644
index 08bb9530dbc..00000000000
--- a/www/firefox/patches/patch-build_gyp.mozbuild
+++ /dev/null
@@ -1,24 +0,0 @@
-$NetBSD: patch-build_gyp.mozbuild,v 1.5 2017/04/27 01:49:47 ryoon Exp $
-
-Hunk #1:
- Try to add Video4Linux2 support
-
-Hunk #2:
- On Darwin, don't assume iOS just because the toolkit is not
- cocoa. Ideally there should be an AC_SUBST just like 'ARM_ARCH' but
- nothing exists currently.
-
-Hunk #3:
- MacOS X SDK version should be able to configure with
- ./configure --enable-macos-target=VER
-
---- build/gyp.mozbuild.orig 2017-04-11 04:15:17.000000000 +0000
-+++ build/gyp.mozbuild
-@@ -16,6 +16,7 @@ gyp_vars.update({
- 'have_ethtool_cmd_speed_hi': 1 if CONFIG['MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI'] else 0,
- 'include_alsa_audio': 1 if CONFIG['MOZ_ALSA'] else 0,
- 'include_pulse_audio': 1 if CONFIG['MOZ_PULSEAUDIO'] else 0,
-+ 'use_libv4l2': 1 if CONFIG['MOZ_LIBV4L2_LIBS'] else 0,
- # basic stuff for everything
- 'include_internal_video_render': 0,
- 'clang': 1 if CONFIG['CLANG_CXX'] else 0,
diff --git a/www/firefox/patches/patch-build_moz.configure_init.configure b/www/firefox/patches/patch-build_moz.configure_init.configure
deleted file mode 100644
index 9de318543a3..00000000000
--- a/www/firefox/patches/patch-build_moz.configure_init.configure
+++ /dev/null
@@ -1,37 +0,0 @@
-$NetBSD: patch-build_moz.configure_init.configure,v 1.1 2016/12/03 09:58:26 ryoon Exp $
-
---- build/moz.configure/init.configure.orig 2016-10-31 20:15:27.000000000 +0000
-+++ build/moz.configure/init.configure
-@@ -170,6 +170,7 @@ option(env='PYTHON', nargs=1, help='Pyth
- @imports(_from='mozbuild.configure.util', _import='LineIO')
- @imports(_from='mozbuild.virtualenv', _import='VirtualenvManager')
- @imports(_from='mozbuild.virtualenv', _import='verify_python_version')
-+@imports(_from='__builtin__', _import='KeyError')
- @imports('distutils.sysconfig')
- def virtualenv_python(env_python, build_env, mozconfig, help):
- if help:
-@@ -189,6 +190,12 @@ def virtualenv_python(env_python, build_
- python = mozconfig['vars']['added']['PYTHON']
- elif 'PYTHON' in mozconfig['vars']['modified']:
- python = mozconfig['vars']['modified']['PYTHON'][1]
-+ for i in ('env', 'vars'):
-+ for j in ('added', 'modified'):
-+ try:
-+ del mozconfig[i][j]['PYTHON']
-+ except KeyError:
-+ pass
-
- with LineIO(lambda l: log.error(l)) as out:
- verify_python_version(out)
-@@ -224,7 +231,10 @@ def virtualenv_python(env_python, build_
- if python != normsep(sys.executable):
- log.info('Reexecuting in the virtualenv')
- if env_python:
-- del os.environ['PYTHON']
-+ try:
-+ del os.environ['PYTHON']
-+ except KeyError:
-+ pass
- # One would prefer to use os.execl, but that's completely borked on
- # Windows.
- sys.exit(subprocess.call([python] + sys.argv))
diff --git a/www/firefox/patches/patch-build_moz.configure_keyfiles.configure b/www/firefox/patches/patch-build_moz.configure_keyfiles.configure
deleted file mode 100644
index 3c740d59fca..00000000000
--- a/www/firefox/patches/patch-build_moz.configure_keyfiles.configure
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD: patch-build_moz.configure_keyfiles.configure,v 1.1 2017/03/07 20:45:43 ryoon Exp $
-
---- build/moz.configure/keyfiles.configure.orig 2017-01-26 04:20:09.000000000 +0000
-+++ build/moz.configure/keyfiles.configure
-@@ -18,6 +18,7 @@ def keyfile(desc, help=None, callback=la
- @checking('for the %s key' % desc, lambda x: x and x is not no_key)
- @imports(_from='__builtin__', _import='open')
- @imports(_from='__builtin__', _import='IOError')
-+ @imports(_from='os', _import='environ')
- def keyfile(value):
- if value:
- try:
-@@ -28,7 +29,7 @@ def keyfile(desc, help=None, callback=la
- raise FatalCheckError("'%s' is empty." % value[0])
- except IOError as e:
- raise FatalCheckError("'%s': %s." % (value[0], e.strerror))
-- return no_key
-+ return environ.get('MOZ_%s_KEY' % desc.upper().replace(' ', '_')) or no_key
-
- return keyfile
-
diff --git a/www/firefox/patches/patch-build_moz.configure_rust.configure b/www/firefox/patches/patch-build_moz.configure_rust.configure
new file mode 100644
index 00000000000..ece538c4096
--- /dev/null
+++ b/www/firefox/patches/patch-build_moz.configure_rust.configure
@@ -0,0 +1,44 @@
+$NetBSD: patch-build_moz.configure_rust.configure,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- build/moz.configure/rust.configure.orig 2017-06-05 20:45:15.000000000 +0000
++++ build/moz.configure/rust.configure
+@@ -4,10 +4,20 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-# Rust is required by `rust_compiler` below. We allow_missing here
+-# to propagate failures to the better error message there.
+-rustc = check_prog('RUSTC', ['rustc'], allow_missing=True)
+-cargo = check_prog('CARGO', ['cargo'], allow_missing=True)
++option('--disable-rust', help='Don\'t include Rust language sources')
++
++@depends('--enable-rust')
++def rust_compiler_names(value):
++ if value:
++ return ['rustc']
++
++@depends('--enable-rust')
++def cargo_binary_names(value):
++ if value:
++ return ['cargo']
++
++rustc = check_prog('RUSTC', rust_compiler_names, allow_missing=True)
++cargo = check_prog('CARGO', cargo_binary_names, allow_missing=True)
+
+ @depends_if(rustc)
+ @checking('rustc version', lambda info: info.version)
+@@ -43,9 +53,12 @@ def cargo_info(cargo):
+ version=Version(version),
+ )
+
+-@depends(rustc_info, cargo_info)
++@depends('--enable-rust', rustc_info, cargo_info)
+ @imports(_from='textwrap', _import='dedent')
+-def rust_compiler(rustc_info, cargo_info):
++def rust_compiler(value, rustc_info, cargo_info):
++ if not value:
++ return None
++
+ if not rustc_info:
+ die(dedent('''\
+ Rust compiler not found.
diff --git a/www/firefox/patches/patch-build_pgo_profileserver.py b/www/firefox/patches/patch-build_pgo_profileserver.py
deleted file mode 100644
index e7fe31ddc1c..00000000000
--- a/www/firefox/patches/patch-build_pgo_profileserver.py
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-build_pgo_profileserver.py,v 1.5 2017/01/25 13:24:51 ryoon Exp $
-
---- build/pgo/profileserver.py.orig 2017-01-16 16:16:51.000000000 +0000
-+++ build/pgo/profileserver.py
-@@ -80,7 +80,7 @@ if __name__ == '__main__':
- env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog)
- print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"]
-
-- cmdargs = ["http://localhost:%d/index.html" % PORT]
-+ cmdargs = ["http://127.0.0.1:%d/index.html" % PORT]
- runner = FirefoxRunner(profile=profile,
- binary=build.get_binary_path(where="staged-package"),
- cmdargs=cmdargs,
diff --git a/www/firefox/patches/patch-config_system-headers b/www/firefox/patches/patch-config_system-headers
index 353960d28e8..3d3de6ba889 100644
--- a/www/firefox/patches/patch-config_system-headers
+++ b/www/firefox/patches/patch-config_system-headers
@@ -1,12 +1,12 @@
-$NetBSD: patch-config_system-headers,v 1.23 2017/04/27 01:49:47 ryoon Exp $
+$NetBSD: patch-config_system-headers,v 1.24 2017/06/14 11:28:44 ryoon Exp $
* Try to support Video4Linux2
* Resolve libm undefined error
* Support system libraries
---- config/system-headers.orig 2017-04-11 04:15:17.000000000 +0000
+--- config/system-headers.orig 2017-06-05 20:45:15.000000000 +0000
+++ config/system-headers
-@@ -624,6 +624,7 @@ libgnome/libgnome.h
+@@ -625,6 +625,7 @@ libgnome/libgnome.h
libgnomeui/gnome-icon-lookup.h
libgnomeui/gnome-icon-theme.h
libgnomeui/gnome-ui-init.h
@@ -14,7 +14,7 @@ $NetBSD: patch-config_system-headers,v 1.23 2017/04/27 01:49:47 ryoon Exp $
limits.h
link.h
#ifdef ANDROID
-@@ -1267,6 +1268,15 @@ libsn/sn-launcher.h
+@@ -1268,6 +1269,24 @@ libsn/sn-launcher.h
libsn/sn-monitor.h
libsn/sn-util.h
#endif
@@ -27,10 +27,19 @@ $NetBSD: patch-config_system-headers,v 1.23 2017/04/27 01:49:47 ryoon Exp $
+harfbuzz/hb-ot.h
+harfbuzz/hb.h
+#endif
++#if MOZ_SYSTEM_GRAPHITE2==1
++graphite2/Font.h
++graphite2/Segment.h
++#endif
++#if MOZ_SYSTEM_HARFBUZZ==1
++harfbuzz/hb-glib.h
++harfbuzz/hb-ot.h
++harfbuzz/hb.h
++#endif
#if MOZ_SYSTEM_HUNSPELL==1
hunspell.hxx
#endif
-@@ -1337,3 +1347,17 @@ unicode/utypes.h
+@@ -1338,3 +1357,31 @@ unicode/utypes.h
libutil.h
unwind.h
fenv.h
@@ -48,3 +57,17 @@ $NetBSD: patch-config_system-headers,v 1.23 2017/04/27 01:49:47 ryoon Exp $
+#if MOZ_SYSTEM_TREMOR==1
+tremor/ivorbiscodec.h
+#endif
++#if MOZ_SYSTEM_OGG==1
++ogg/ogg.h
++ogg/os_types.h
++#endif
++#if MOZ_SYSTEM_THEORA==1
++theora/theoradec.h
++#endif
++#if MOZ_SYSTEM_VORBIS==1
++vorbis/codec.h
++vorbis/vorbisenc.h
++#endif
++#if MOZ_SYSTEM_TREMOR==1
++tremor/ivorbiscodec.h
++#endif
diff --git a/www/firefox/patches/patch-dom_media_MediaPrefs.h b/www/firefox/patches/patch-dom_media_MediaPrefs.h
new file mode 100644
index 00000000000..9da1e233e42
--- /dev/null
+++ b/www/firefox/patches/patch-dom_media_MediaPrefs.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-dom_media_MediaPrefs.h,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- dom/media/MediaPrefs.h.orig 2017-06-05 20:45:18.000000000 +0000
++++ dom/media/MediaPrefs.h
+@@ -165,7 +165,7 @@ private:
+ DECL_MEDIA_PREF("media.ogg.flac.enabled", FlacInOgg, bool, false);
+ DECL_MEDIA_PREF("media.flac.enabled", FlacEnabled, bool, true);
+
+-#if !defined(RELEASE_OR_BETA)
++#if defined(MOZ_RUST_MP4PARSE) && !defined(RELEASE_OR_BETA)
+ DECL_MEDIA_PREF("media.rust.test_mode", RustTestMode, bool, false);
+ #endif
+
diff --git a/www/firefox/patches/patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp b/www/firefox/patches/patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp
index a897e4a0a26..8b24f954cfb 100644
--- a/www/firefox/patches/patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp
+++ b/www/firefox/patches/patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp
@@ -1,6 +1,6 @@
-$NetBSD: patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp,v 1.1 2017/03/07 20:45:43 ryoon Exp $
+$NetBSD: patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp,v 1.2 2017/06/14 11:28:44 ryoon Exp $
---- dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp.orig 2016-10-14 08:14:07.000000000 +0000
+--- dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp.orig 2017-06-05 20:45:19.000000000 +0000
+++ dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
@@ -11,9 +11,13 @@
#include "prmem.h"
@@ -14,9 +14,9 @@ $NetBSD: patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp,v 1.1 201
#include "soundtouch/SoundTouch.h"
+#endif
- namespace mozilla
- {
-@@ -51,6 +55,12 @@ FFVPXRuntimeLinker::Init()
+ namespace mozilla {
+
+@@ -50,6 +54,12 @@ FFVPXRuntimeLinker::Init()
sLinkStatus = LinkStatus_FAILED;
@@ -29,7 +29,7 @@ $NetBSD: patch-dom_media_platforms_ffmpeg_ffvpx_FFVPXRuntimeLinker.cpp,v 1.1 201
// We retrieve the path of the lgpllibs library as this is where mozavcodec
// and mozavutil libs are located.
char* lgpllibsname = PR_GetLibraryName(nullptr, "lgpllibs");
-@@ -61,6 +71,7 @@ FFVPXRuntimeLinker::Init()
+@@ -60,6 +70,7 @@ FFVPXRuntimeLinker::Init()
PR_GetLibraryFilePathname(lgpllibsname,
(PRFuncPtr)&soundtouch::SoundTouch::getVersionId);
PR_FreeLibraryName(lgpllibsname);
diff --git a/www/firefox/patches/patch-dom_media_webrtc_MediaEngine.h b/www/firefox/patches/patch-dom_media_webrtc_MediaEngine.h
deleted file mode 100644
index 22dfbcd7a6a..00000000000
--- a/www/firefox/patches/patch-dom_media_webrtc_MediaEngine.h
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD: patch-dom_media_webrtc_MediaEngine.h,v 1.2 2017/04/27 14:08:34 ryoon Exp $
-
-* Do not mix mozilla::ipc and mozilla::dom::ipc namespaces
-
---- dom/media/webrtc/MediaEngine.h.orig 2017-04-11 04:15:22.000000000 +0000
-+++ dom/media/webrtc/MediaEngine.h
-@@ -226,7 +226,7 @@ public:
- ~AllocationHandle() {}
- public:
- AllocationHandle(const dom::MediaTrackConstraints& aConstraints,
-- const ipc::PrincipalInfo& aPrincipalInfo,
-+ const mozilla::ipc::PrincipalInfo& aPrincipalInfo,
- const MediaEnginePrefs& aPrefs,
- const nsString& aDeviceId)
-
-@@ -236,7 +236,7 @@ public:
- mDeviceId(aDeviceId) {}
- public:
- NormalizedConstraints mConstraints;
-- ipc::PrincipalInfo mPrincipalInfo;
-+ mozilla::ipc::PrincipalInfo mPrincipalInfo;
- MediaEnginePrefs mPrefs;
- nsString mDeviceId;
- };
-@@ -327,7 +327,7 @@ public:
- virtual nsresult Allocate(const dom::MediaTrackConstraints &aConstraints,
- const MediaEnginePrefs &aPrefs,
- const nsString& aDeviceId,
-- const ipc::PrincipalInfo& aPrincipalInfo,
-+ const mozilla::ipc::PrincipalInfo& aPrincipalInfo,
- AllocationHandle** aOutHandle,
- const char** aOutBadConstraint)
- {
diff --git a/www/firefox/patches/patch-dom_system_OSFileConstants.cpp b/www/firefox/patches/patch-dom_system_OSFileConstants.cpp
deleted file mode 100644
index 06b8fced197..00000000000
--- a/www/firefox/patches/patch-dom_system_OSFileConstants.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD: patch-dom_system_OSFileConstants.cpp,v 1.10 2017/03/07 20:45:43 ryoon Exp $
-
---- dom/system/OSFileConstants.cpp.orig 2017-01-23 16:13:57.000000000 +0000
-+++ dom/system/OSFileConstants.cpp
-@@ -16,14 +16,17 @@
- #include "dirent.h"
- #include "poll.h"
- #include "sys/stat.h"
--#if defined(ANDROID)
-+#if defined(XP_LINUX)
- #include <sys/vfs.h>
- #define statvfs statfs
-+#define f_frsize f_bsize
- #else
- #include "sys/statvfs.h"
-+#endif // defined(XP_LINUX)
-+#if !defined(ANDROID)
- #include "sys/wait.h"
- #include <spawn.h>
--#endif // defined(ANDROID)
-+#endif // !defined(ANDROID)
- #endif // defined(XP_UNIX)
-
- #if defined(XP_LINUX)
-@@ -699,7 +702,7 @@ static const dom::ConstantSpec gLibcProp
-
- { "OSFILE_SIZEOF_STATVFS", JS::Int32Value(sizeof (struct statvfs)) },
-
-- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", JS::Int32Value(offsetof (struct statvfs, f_bsize)) },
-+ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", JS::Int32Value(offsetof (struct statvfs, f_frsize)) },
- { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", JS::Int32Value(offsetof (struct statvfs, f_bavail)) },
-
- #endif // defined(XP_UNIX)
diff --git a/www/firefox/patches/patch-gfx_graphite2_src_Bidi.cpp b/www/firefox/patches/patch-gfx_graphite2_src_Bidi.cpp
deleted file mode 100644
index ab93f9d881d..00000000000
--- a/www/firefox/patches/patch-gfx_graphite2_src_Bidi.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-gfx_graphite2_src_Bidi.cpp,v 1.4 2016/06/16 12:08:21 ryoon Exp $
-
-* Support Solaris
-
---- gfx/graphite2/src/Bidi.cpp.orig 2013-05-11 19:19:30.000000000 +0000
-+++ gfx/graphite2/src/Bidi.cpp
-@@ -30,6 +30,11 @@ of the License or (at your option) any l
-
- using namespace graphite2;
-
-+#ifdef __sun
-+#undef CS
-+#undef ES
-+#endif
-+
- enum DirCode { // Hungarian: dirc
- Unk = -1,
- N = 0, // other neutrals (default) - ON
diff --git a/www/firefox/patches/patch-gfx_thebes_moz.build b/www/firefox/patches/patch-gfx_thebes_moz.build
index 82da413004b..da2b5824706 100644
--- a/www/firefox/patches/patch-gfx_thebes_moz.build
+++ b/www/firefox/patches/patch-gfx_thebes_moz.build
@@ -1,10 +1,10 @@
-$NetBSD: patch-gfx_thebes_moz.build,v 1.7 2017/03/07 20:45:43 ryoon Exp $
+$NetBSD: patch-gfx_thebes_moz.build,v 1.8 2017/06/14 11:28:44 ryoon Exp $
---- gfx/thebes/moz.build.orig 2017-01-23 16:13:47.000000000 +0000
+--- gfx/thebes/moz.build.orig 2017-06-05 20:45:20.000000000 +0000
+++ gfx/thebes/moz.build
-@@ -266,7 +266,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk
+@@ -274,7 +274,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk
+
LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
- LOCAL_INCLUDES += ['/media/libyuv/include']
-DEFINES['GRAPHITE2_STATIC'] = True
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
diff --git a/www/firefox/patches/patch-gfx_ycbcr_yuv__row__arm.S b/www/firefox/patches/patch-gfx_ycbcr_yuv__row__arm.S
index 6d7674bc178..ee2b5384df1 100644
--- a/www/firefox/patches/patch-gfx_ycbcr_yuv__row__arm.S
+++ b/www/firefox/patches/patch-gfx_ycbcr_yuv__row__arm.S
@@ -1,8 +1,8 @@
-$NetBSD: patch-gfx_ycbcr_yuv__row__arm.S,v 1.3 2016/11/03 22:46:43 joerg Exp $
+$NetBSD: patch-gfx_ycbcr_yuv__row__arm.S,v 1.4 2017/06/14 11:28:44 ryoon Exp $
* Copy from yuv_row_arm.s to process it with pre-processor
---- gfx/ycbcr/yuv_row_arm.S.orig 2016-05-12 17:13:08.000000000 +0000
+--- gfx/ycbcr/yuv_row_arm.S.orig 2017-06-12 20:07:14.598490411 +0000
+++ gfx/ycbcr/yuv_row_arm.S
@@ -2,6 +2,12 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/www/firefox/patches/patch-intl_unicharutil_util_moz.build b/www/firefox/patches/patch-intl_unicharutil_util_moz.build
index d04394898a1..7f58201ac62 100644
--- a/www/firefox/patches/patch-intl_unicharutil_util_moz.build
+++ b/www/firefox/patches/patch-intl_unicharutil_util_moz.build
@@ -1,12 +1,12 @@
-$NetBSD: patch-intl_unicharutil_util_moz.build,v 1.5 2016/12/03 09:58:26 ryoon Exp $
+$NetBSD: patch-intl_unicharutil_util_moz.build,v 1.6 2017/06/14 11:28:44 ryoon Exp $
---- intl/unicharutil/util/moz.build.orig 2016-10-31 20:15:32.000000000 +0000
+--- intl/unicharutil/util/moz.build.orig 2017-06-05 20:45:20.000000000 +0000
+++ intl/unicharutil/util/moz.build
-@@ -42,4 +42,7 @@ if CONFIG['_MSC_VER']:
- if CONFIG['ENABLE_INTL_API']:
- USE_LIBS += ['icu']
+@@ -29,4 +29,7 @@ if CONFIG['ENABLE_INTL_API']:
+ 'ICUUtils.cpp',
+ ]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
- DIST_INSTALL = True
+ FINAL_LIBRARY = 'xul'
diff --git a/www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c b/www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c
index 5abdc39dde1..e1241549e23 100644
--- a/www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c
+++ b/www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c
@@ -1,19 +1,11 @@
-$NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon Exp $
+$NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.22 2017/06/14 11:28:44 ryoon Exp $
* Support alsa audio under NetBSD
* Avoid https://github.com/kinetiknz/cubeb/issues/226
---- media/libcubeb/src/cubeb_alsa.c.orig 2017-04-11 04:15:21.000000000 +0000
+--- media/libcubeb/src/cubeb_alsa.c.orig 2017-06-05 20:45:14.000000000 +0000
+++ media/libcubeb/src/cubeb_alsa.c
-@@ -7,11 +7,15 @@
- #undef NDEBUG
- #define _DEFAULT_SOURCE
- #define _BSD_SOURCE
-+#if defined(__NetBSD__)
-+#define _NETBSD_SOURCE
-+#endif
- #define _XOPEN_SOURCE 500
- #include <pthread.h>
+@@ -12,6 +12,7 @@
#include <sys/time.h>
#include <assert.h>
#include <limits.h>
@@ -21,7 +13,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
#include <poll.h>
#include <unistd.h>
#include <alsa/asoundlib.h>
-@@ -25,6 +29,52 @@
+@@ -25,6 +26,52 @@
#define ALSA_PA_PLUGIN "ALSA <-> PulseAudio PCM I/O Plugin"
@@ -74,7 +66,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
/* ALSA is not thread-safe. snd_pcm_t instances are individually protected
by the owning cubeb_stream's mutex. snd_pcm_t creation and destruction
is not thread-safe until ALSA 1.0.24 (see alsa-lib.git commit 91c9c8f1),
-@@ -65,6 +115,8 @@ struct cubeb {
+@@ -65,6 +112,8 @@ struct cubeb {
workaround is not required. */
snd_config_t * local_config;
int is_pa;
@@ -83,7 +75,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
};
enum stream_state {
-@@ -243,8 +295,8 @@ set_timeout(struct timeval * timeout, un
+@@ -243,8 +292,8 @@ set_timeout(struct timeval * timeout, un
static void
stream_buffer_decrement(cubeb_stream * stm, long count)
{
@@ -94,7 +86,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
stm->bufframes -= count;
}
-@@ -276,9 +328,9 @@ alsa_process_stream(cubeb_stream * stm)
+@@ -276,9 +325,9 @@ alsa_process_stream(cubeb_stream * stm)
/* Call _poll_descriptors_revents() even if we don't use it
to let underlying plugins clear null events. Otherwise poll()
may wake up again and again, producing unnecessary CPU usage. */
@@ -106,7 +98,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
/* Got null event? Bail and wait for another wakeup. */
if (avail == 0) {
-@@ -301,7 +353,7 @@ alsa_process_stream(cubeb_stream * stm)
+@@ -301,7 +350,7 @@ alsa_process_stream(cubeb_stream * stm)
// TODO: should it be marked as DRAINING?
}
@@ -115,7 +107,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (got < 0) {
avail = got; // the error handler below will recover us
-@@ -345,7 +397,7 @@ alsa_process_stream(cubeb_stream * stm)
+@@ -345,7 +394,7 @@ alsa_process_stream(cubeb_stream * stm)
(!stm->other_stream || stm->other_stream->bufframes > 0)) {
long got = avail - stm->bufframes;
void * other_buffer = stm->other_stream ? stm->other_stream->buffer : NULL;
@@ -123,8 +115,8 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
+ char * buftail = stm->buffer + WRAP(snd_pcm_frames_to_bytes)(stm->pcm, stm->bufframes);
/* Correct read size to the other stream available frames */
- if (stm->other_stream && got > stm->other_stream->bufframes) {
-@@ -372,8 +424,8 @@ alsa_process_stream(cubeb_stream * stm)
+ if (stm->other_stream && got > (snd_pcm_sframes_t) stm->other_stream->bufframes) {
+@@ -372,8 +421,8 @@ alsa_process_stream(cubeb_stream * stm)
long drain_frames = avail - stm->bufframes;
double drain_time = (double) drain_frames / stm->params.rate;
@@ -135,7 +127,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
stm->bufframes = avail;
/* Mark as draining, unless we're waiting for capture */
-@@ -400,7 +452,7 @@ alsa_process_stream(cubeb_stream * stm)
+@@ -400,7 +449,7 @@ alsa_process_stream(cubeb_stream * stm)
}
}
@@ -144,7 +136,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (wrote < 0) {
avail = wrote; // the error handler below will recover us
} else {
-@@ -413,13 +465,13 @@ alsa_process_stream(cubeb_stream * stm)
+@@ -413,13 +462,13 @@ alsa_process_stream(cubeb_stream * stm)
/* Got some error? Let's try to recover the stream. */
if (avail < 0) {
@@ -161,7 +153,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
}
}
-@@ -535,26 +587,26 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -535,26 +584,26 @@ get_slave_pcm_node(snd_config_t * lconf,
slave_def = NULL;
@@ -193,7 +185,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (r < 0) {
break;
}
-@@ -563,7 +615,7 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -563,7 +612,7 @@ get_slave_pcm_node(snd_config_t * lconf,
if (r < 0 || r > (int) sizeof(node_name)) {
break;
}
@@ -202,7 +194,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (r < 0) {
break;
}
-@@ -572,7 +624,7 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -572,7 +621,7 @@ get_slave_pcm_node(snd_config_t * lconf,
} while (0);
if (slave_def) {
@@ -211,7 +203,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
}
return NULL;
-@@ -595,22 +647,22 @@ init_local_config_with_workaround(char c
+@@ -595,22 +644,22 @@ init_local_config_with_workaround(char c
lconf = NULL;
@@ -238,7 +230,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (r < 0) {
break;
}
-@@ -619,7 +671,7 @@ init_local_config_with_workaround(char c
+@@ -619,7 +668,7 @@ init_local_config_with_workaround(char c
if (r < 0 || r > (int) sizeof(node_name)) {
break;
}
@@ -247,7 +239,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (r < 0) {
break;
}
-@@ -630,12 +682,12 @@ init_local_config_with_workaround(char c
+@@ -630,12 +679,12 @@ init_local_config_with_workaround(char c
}
/* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */
@@ -262,7 +254,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (r < 0) {
break;
}
-@@ -646,18 +698,18 @@ init_local_config_with_workaround(char c
+@@ -646,18 +695,18 @@ init_local_config_with_workaround(char c
/* Don't clobber an explicit existing handle_underrun value, set it only
if it doesn't already exist. */
@@ -284,7 +276,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (r < 0) {
break;
}
-@@ -665,7 +717,7 @@ init_local_config_with_workaround(char c
+@@ -665,7 +714,7 @@ init_local_config_with_workaround(char c
return lconf;
} while (0);
@@ -293,7 +285,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
return NULL;
}
-@@ -677,9 +729,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, c
+@@ -677,9 +726,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, c
pthread_mutex_lock(&cubeb_alsa_mutex);
if (local_config) {
@@ -305,7 +297,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
}
pthread_mutex_unlock(&cubeb_alsa_mutex);
-@@ -692,7 +744,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
+@@ -692,7 +741,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
int r;
pthread_mutex_lock(&cubeb_alsa_mutex);
@@ -314,7 +306,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
pthread_mutex_unlock(&cubeb_alsa_mutex);
return r;
-@@ -755,12 +807,65 @@ alsa_init(cubeb ** context, char const *
+@@ -755,12 +804,65 @@ alsa_init(cubeb ** context, char const *
pthread_attr_t attr;
snd_pcm_t * dummy;
@@ -381,7 +373,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
cubeb_alsa_error_handler_set = 1;
}
pthread_mutex_unlock(&cubeb_alsa_mutex);
-@@ -768,6 +873,8 @@ alsa_init(cubeb ** context, char const *
+@@ -768,6 +870,8 @@ alsa_init(cubeb ** context, char const *
ctx = calloc(1, sizeof(*ctx));
assert(ctx);
@@ -390,7 +382,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
ctx->ops = &alsa_ops;
r = pthread_mutex_init(&ctx->mutex, NULL);
-@@ -817,7 +924,7 @@ alsa_init(cubeb ** context, char const *
+@@ -817,7 +921,7 @@ alsa_init(cubeb ** context, char const *
config fails with EINVAL, the PA PCM is too old for this workaround. */
if (r == -EINVAL) {
pthread_mutex_lock(&cubeb_alsa_mutex);
@@ -399,7 +391,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
pthread_mutex_unlock(&cubeb_alsa_mutex);
ctx->local_config = NULL;
} else if (r >= 0) {
-@@ -857,9 +964,13 @@ alsa_destroy(cubeb * ctx)
+@@ -857,9 +961,13 @@ alsa_destroy(cubeb * ctx)
pthread_mutex_destroy(&ctx->mutex);
free(ctx->fds);
@@ -414,7 +406,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
pthread_mutex_unlock(&cubeb_alsa_mutex);
}
-@@ -939,7 +1050,7 @@ alsa_stream_init_single(cubeb * ctx, cub
+@@ -942,7 +1050,7 @@ alsa_stream_init_single(cubeb * ctx, cub
return CUBEB_ERROR;
}
@@ -423,7 +415,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
assert(r == 0);
latency_us = latency_frames * 1e6 / stm->params.rate;
-@@ -952,7 +1063,7 @@ alsa_stream_init_single(cubeb * ctx, cub
+@@ -955,7 +1063,7 @@ alsa_stream_init_single(cubeb * ctx, cub
latency_us = latency_us < min_latency ? min_latency: latency_us;
}
@@ -432,7 +424,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
stm->params.channels, stm->params.rate, 1,
latency_us);
if (r < 0) {
-@@ -960,20 +1071,20 @@ alsa_stream_init_single(cubeb * ctx, cub
+@@ -963,20 +1071,20 @@ alsa_stream_init_single(cubeb * ctx, cub
return CUBEB_ERROR_INVALID_FORMAT;
}
@@ -456,8 +448,8 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
+ r = WRAP(snd_pcm_poll_descriptors)(stm->pcm, stm->saved_fds, stm->nfds);
assert((nfds_t) r == stm->nfds);
- r = pthread_cond_init(&stm->cond, NULL);
-@@ -1048,7 +1159,7 @@ alsa_stream_destroy(cubeb_stream * stm)
+ if (alsa_register_stream(ctx, stm) != 0) {
+@@ -1048,7 +1156,7 @@ alsa_stream_destroy(cubeb_stream * stm)
pthread_mutex_lock(&stm->mutex);
if (stm->pcm) {
if (stm->state == DRAINING) {
@@ -466,7 +458,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
}
alsa_locked_pcm_close(stm->pcm);
stm->pcm = NULL;
-@@ -1094,12 +1205,12 @@ alsa_get_max_channel_count(cubeb * ctx,
+@@ -1094,12 +1202,12 @@ alsa_get_max_channel_count(cubeb * ctx,
assert(stm);
@@ -481,7 +473,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
if (r < 0) {
return CUBEB_ERROR;
}
-@@ -1120,34 +1231,34 @@ alsa_get_preferred_sample_rate(cubeb * c
+@@ -1120,34 +1228,34 @@ alsa_get_preferred_sample_rate(cubeb * c
/* get a pcm, disabling resampling, so we get a rate the
* hardware/dmix/pulse/etc. supports. */
@@ -524,7 +516,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
return CUBEB_OK;
}
-@@ -1180,10 +1291,10 @@ alsa_stream_start(cubeb_stream * stm)
+@@ -1180,10 +1288,10 @@ alsa_stream_start(cubeb_stream * stm)
pthread_mutex_lock(&stm->mutex);
/* Capture pcm must be started after initial setup/recover */
if (stm->stream_type == SND_PCM_STREAM_CAPTURE &&
@@ -538,7 +530,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
gettimeofday(&stm->last_activity, NULL);
pthread_mutex_unlock(&stm->mutex);
-@@ -1223,7 +1334,7 @@ alsa_stream_stop(cubeb_stream * stm)
+@@ -1223,7 +1331,7 @@ alsa_stream_stop(cubeb_stream * stm)
pthread_mutex_unlock(&ctx->mutex);
pthread_mutex_lock(&stm->mutex);
@@ -547,7 +539,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
pthread_mutex_unlock(&stm->mutex);
return CUBEB_OK;
-@@ -1239,8 +1350,8 @@ alsa_stream_get_position(cubeb_stream *
+@@ -1239,8 +1347,8 @@ alsa_stream_get_position(cubeb_stream *
pthread_mutex_lock(&stm->mutex);
delay = -1;
@@ -558,7 +550,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.21 2017/04/27 01:49:47 ryoon
*position = stm->last_position;
pthread_mutex_unlock(&stm->mutex);
return CUBEB_OK;
-@@ -1265,7 +1376,7 @@ alsa_stream_get_latency(cubeb_stream * s
+@@ -1265,7 +1373,7 @@ alsa_stream_get_latency(cubeb_stream * s
snd_pcm_sframes_t delay;
/* This function returns the delay in frames until a frame written using
snd_pcm_writei is sent to the DAC. The DAC delay should be < 1ms anyways. */
diff --git a/www/firefox/patches/patch-media_libstagefright_binding_DecoderData.cpp b/www/firefox/patches/patch-media_libstagefright_binding_DecoderData.cpp
new file mode 100644
index 00000000000..5d79b0755e8
--- /dev/null
+++ b/www/firefox/patches/patch-media_libstagefright_binding_DecoderData.cpp
@@ -0,0 +1,32 @@
+$NetBSD: patch-media_libstagefright_binding_DecoderData.cpp,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- media/libstagefright/binding/DecoderData.cpp.orig 2017-06-05 20:45:14.000000000 +0000
++++ media/libstagefright/binding/DecoderData.cpp
+@@ -13,9 +13,11 @@
+ #include "mozilla/ArrayUtils.h"
+ #include "include/ESDS.h"
+
++#ifdef MOZ_RUST_MP4PARSE
+ // OpusDecoder header is really needed only by MP4 in rust
+ #include "OpusDecoder.h"
+ #include "mp4parse.h"
++#endif // MOZ_RUST_MP4PARSE
+
+ using namespace stagefright;
+
+@@ -187,6 +189,7 @@ MP4VideoInfo::Update(const MetaData* aMe
+
+ }
+
++#ifdef MOZ_RUST_MP4PARSE
+ static void
+ UpdateTrackProtectedInfo(mozilla::TrackInfo& aConfig,
+ const mp4parse_sinf_info& aSinf)
+@@ -266,6 +269,7 @@ MP4VideoInfo::Update(const mp4parse_trac
+ mExtraData->AppendElements(video->extra_data.data, video->extra_data.length);
+ }
+ }
++#endif // MOZ_RUST_MP4PARSE
+
+ bool
+ MP4VideoInfo::IsValid() const
diff --git a/www/firefox/patches/patch-media_libstagefright_binding_MP4Metadata.cpp b/www/firefox/patches/patch-media_libstagefright_binding_MP4Metadata.cpp
new file mode 100644
index 00000000000..abb5df13fbd
--- /dev/null
+++ b/www/firefox/patches/patch-media_libstagefright_binding_MP4Metadata.cpp
@@ -0,0 +1,127 @@
+$NetBSD: patch-media_libstagefright_binding_MP4Metadata.cpp,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- media/libstagefright/binding/MP4Metadata.cpp.orig 2017-06-05 20:45:14.000000000 +0000
++++ media/libstagefright/binding/MP4Metadata.cpp
+@@ -19,14 +19,18 @@
+ #include "mp4_demuxer/MP4Metadata.h"
+ #include "mp4_demuxer/Stream.h"
+ #include "MediaPrefs.h"
++#ifdef MOZ_RUST_MP4PARSE
+ #include "mp4parse.h"
++#endif // MOZ_RUST_MP4PARSE
+
+ #include <limits>
+ #include <stdint.h>
+ #include <vector>
+
+
++#ifdef MOZ_RUST_MP4PARSE
+ struct FreeMP4Parser { void operator()(mp4parse_parser* aPtr) { mp4parse_free(aPtr); } };
++#endif // MOZ_RUST_MP4PARSE
+
+ using namespace stagefright;
+
+@@ -101,6 +105,7 @@ private:
+ bool mCanSeek;
+ };
+
++#ifdef MOZ_RUST_MP4PARSE
+ // Wrap an mp4_demuxer::Stream to remember the read offset.
+
+ class RustStreamAdaptor {
+@@ -145,9 +150,11 @@ private:
+ RustStreamAdaptor mRustSource;
+ mozilla::UniquePtr<mp4parse_parser, FreeMP4Parser> mRustParser;
+ };
++#endif // MOZ_RUST_MP4PARSE
+
+ MP4Metadata::MP4Metadata(Stream* aSource)
+ : mStagefright(MakeUnique<MP4MetadataStagefright>(aSource))
++#ifdef MOZ_RUST_MP4PARSE
+ , mRust(MakeUnique<MP4MetadataRust>(aSource))
+ , mPreferRust(false)
+ , mReportedAudioTrackTelemetry(false)
+@@ -155,6 +162,7 @@ MP4Metadata::MP4Metadata(Stream* aSource
+ #ifndef RELEASE_OR_BETA
+ , mRustTestMode(MediaPrefs::RustTestMode())
+ #endif
++#endif // MOZ_RUST_MP4PARSE
+ {
+ }
+
+@@ -186,6 +194,7 @@ MP4Metadata::GetNumberTracks(mozilla::Tr
+ {
+ uint32_t numTracks = mStagefright->GetNumberTracks(aType);
+
++#ifdef MOZ_RUST_MP4PARSE
+ if (!mRust) {
+ return numTracks;
+ }
+@@ -211,10 +220,12 @@ MP4Metadata::GetNumberTracks(mozilla::Tr
+ mPreferRust = true;
+ return numTracksRust;
+ }
++#endif // MOZ_RUST_MP4PARSE
+
+ return numTracks;
+ }
+
++#ifdef MOZ_RUST_MP4PARSE
+ bool MP4Metadata::ShouldPreferRust() const {
+ if (!mRust) {
+ return false;
+@@ -245,6 +256,7 @@ bool MP4Metadata::ShouldPreferRust() con
+ // Otherwise, fall back.
+ return false;
+ }
++#endif // MOZ_RUST_MP4PARSE
+
+ mozilla::UniquePtr<mozilla::TrackInfo>
+ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
+@@ -253,6 +265,7 @@ MP4Metadata::GetTrackInfo(mozilla::Track
+ mozilla::UniquePtr<mozilla::TrackInfo> info =
+ mStagefright->GetTrackInfo(aType, aTrackNumber);
+
++#ifdef MOZ_RUST_MP4PARSE
+ if (!mRust) {
+ return info;
+ }
+@@ -305,6 +318,7 @@ MP4Metadata::GetTrackInfo(mozilla::Track
+ if (mPreferRust) {
+ return infoRust;
+ }
++#endif // MOZ_RUST_MP4PARSE
+
+ return info;
+ }
+@@ -319,6 +333,7 @@ const CryptoFile&
+ MP4Metadata::Crypto() const
+ {
+ const CryptoFile& crypto = mStagefright->Crypto();
++#ifdef MOZ_RUST_MP4PARSE
+ const CryptoFile& rustCrypto = mRust->Crypto();
+
+ #ifndef RELEASE_OR_BETA
+@@ -330,6 +345,7 @@ MP4Metadata::Crypto() const
+ if (mPreferRust) {
+ return rustCrypto;
+ }
++#endif // MOZ_RUST_MP4PARSE
+
+ return crypto;
+ }
+@@ -594,6 +610,7 @@ MP4MetadataStagefright::Metadata(Stream*
+ return parser->Metadata();
+ }
+
++#ifdef MOZ_RUST_MP4PARSE
+ bool
+ RustStreamAdaptor::Read(uint8_t* buffer, uintptr_t size, size_t* bytes_read)
+ {
+@@ -859,5 +876,6 @@ MP4MetadataRust::Metadata(Stream* aSourc
+ MOZ_ASSERT(false, "Not yet implemented");
+ return nullptr;
+ }
++#endif // MOZ_RUST_MP4PARSE
+
+ } // namespace mp4_demuxer
diff --git a/www/firefox/patches/patch-media_libstagefright_binding_include_mp4__demuxer_DecoderData.h b/www/firefox/patches/patch-media_libstagefright_binding_include_mp4__demuxer_DecoderData.h
new file mode 100644
index 00000000000..c39d509666b
--- /dev/null
+++ b/www/firefox/patches/patch-media_libstagefright_binding_include_mp4__demuxer_DecoderData.h
@@ -0,0 +1,40 @@
+$NetBSD: patch-media_libstagefright_binding_include_mp4__demuxer_DecoderData.h,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- media/libstagefright/binding/include/mp4_demuxer/DecoderData.h.orig 2017-06-05 20:45:14.000000000 +0000
++++ media/libstagefright/binding/include/mp4_demuxer/DecoderData.h
+@@ -19,11 +19,13 @@ namespace stagefright
+ class MetaData;
+ }
+
++#ifdef MOZ_RUST_MP4PARSE
+ extern "C" {
+ typedef struct mp4parse_track_info mp4parse_track_info;
+ typedef struct mp4parse_track_audio_info mp4parse_track_audio_info;
+ typedef struct mp4parse_track_video_info mp4parse_track_video_info;
+ }
++#endif // MOZ_RUST_MP4PARSE
+
+ namespace mp4_demuxer
+ {
+@@ -71,8 +73,10 @@ public:
+ void Update(const stagefright::MetaData* aMetaData,
+ const char* aMimeType);
+
++#ifdef MOZ_RUST_MP4PARSE
+ void Update(const mp4parse_track_info* track,
+ const mp4parse_track_audio_info* audio);
++#endif // MOZ_RUST_MP4PARSE
+
+ virtual bool IsValid() const override;
+ };
+@@ -85,8 +89,10 @@ public:
+ void Update(const stagefright::MetaData* aMetaData,
+ const char* aMimeType);
+
++#ifdef MOZ_RUST_MP4PARSE
+ void Update(const mp4parse_track_info* track,
+ const mp4parse_track_video_info* video);
++#endif // MOZ_RUST_MP4PARSE
+
+ virtual bool IsValid() const override;
+ };
diff --git a/www/firefox/patches/patch-media_libstagefright_binding_include_mp4__demuxer_MP4Metadata.h b/www/firefox/patches/patch-media_libstagefright_binding_include_mp4__demuxer_MP4Metadata.h
new file mode 100644
index 00000000000..36519434a92
--- /dev/null
+++ b/www/firefox/patches/patch-media_libstagefright_binding_include_mp4__demuxer_MP4Metadata.h
@@ -0,0 +1,20 @@
+$NetBSD: patch-media_libstagefright_binding_include_mp4__demuxer_MP4Metadata.h,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h.orig 2017-06-05 20:45:14.000000000 +0000
++++ media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h
+@@ -36,6 +36,7 @@ public:
+
+ private:
+ UniquePtr<MP4MetadataStagefright> mStagefright;
++#ifdef MOZ_RUST_MP4PARSE
+ UniquePtr<MP4MetadataRust> mRust;
+ mutable bool mPreferRust;
+ mutable bool mReportedAudioTrackTelemetry;
+@@ -44,6 +45,7 @@ private:
+ mutable bool mRustTestMode;
+ #endif
+ bool ShouldPreferRust() const;
++#endif // MOZ_RUST_MP4PARSE
+ };
+
+ } // namespace mp4_demuxer
diff --git a/www/firefox/patches/patch-media_libyuv_libyuv_source_mjpeg__decoder.cc b/www/firefox/patches/patch-media_libyuv_libyuv_source_mjpeg__decoder.cc
new file mode 100644
index 00000000000..63344b1c43f
--- /dev/null
+++ b/www/firefox/patches/patch-media_libyuv_libyuv_source_mjpeg__decoder.cc
@@ -0,0 +1,13 @@
+$NetBSD: patch-media_libyuv_libyuv_source_mjpeg__decoder.cc,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- media/libyuv/libyuv/source/mjpeg_decoder.cc.orig 2017-06-05 20:45:14.000000000 +0000
++++ media/libyuv/libyuv/source/mjpeg_decoder.cc
+@@ -25,7 +25,7 @@
+ #endif
+
+ #endif
+-struct FILE; // For jpeglib.h.
++//struct FILE; // For jpeglib.h.
+
+ // C++ build requires extern C for jpeg internals.
+ #ifdef __cplusplus
diff --git a/www/firefox/patches/patch-media_libyuv_source_mjpeg__decoder.cc b/www/firefox/patches/patch-media_libyuv_source_mjpeg__decoder.cc
deleted file mode 100644
index 478872192a7..00000000000
--- a/www/firefox/patches/patch-media_libyuv_source_mjpeg__decoder.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-media_libyuv_source_mjpeg__decoder.cc,v 1.1 2016/12/03 09:58:26 ryoon Exp $
-
---- media/libyuv/source/mjpeg_decoder.cc.orig 2016-10-31 20:15:24.000000000 +0000
-+++ media/libyuv/source/mjpeg_decoder.cc
-@@ -25,7 +25,6 @@
- #endif
-
- #endif
--struct FILE; // For jpeglib.h.
-
- // C++ build requires extern C for jpeg internals.
- #ifdef __cplusplus
diff --git a/www/firefox/patches/patch-media_webrtc_signaling_test_common.build b/www/firefox/patches/patch-media_webrtc_signaling_test_common.build
index dfebce359d7..102e42b746d 100644
--- a/www/firefox/patches/patch-media_webrtc_signaling_test_common.build
+++ b/www/firefox/patches/patch-media_webrtc_signaling_test_common.build
@@ -1,12 +1,8 @@
-$NetBSD: patch-media_webrtc_signaling_test_common.build,v 1.6 2017/04/27 01:49:47 ryoon Exp $
+$NetBSD: patch-media_webrtc_signaling_test_common.build,v 1.7 2017/06/14 11:28:44 ryoon Exp $
--- media/webrtc/signaling/test/common.build.orig 2016-10-31 20:15:24.000000000 +0000
+++ media/webrtc/signaling/test/common.build
-@@ -96,11 +96,12 @@ if CONFIG['JS_SHARED_LIBRARY']:
-
- USE_LIBS += ['mozglue']
-
-+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
+@@ -99,8 +99,8 @@ USE_LIBS += ['mozglue']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
OS_LIBS += CONFIG['REALTIME_LIBS']
diff --git a/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc b/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc
deleted file mode 100644
index 3dd2de8e17d..00000000000
--- a/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc
+++ /dev/null
@@ -1,42 +0,0 @@
-$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc,v 1.12 2017/04/27 01:49:47 ryoon Exp $
-
---- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc.orig 2017-04-11 04:15:17.000000000 +0000
-+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
-@@ -25,6 +25,9 @@
- #else
- #include <linux/videodev2.h>
- #endif
-+#ifdef HAVE_LIBV4L2
-+#include <libv4l2.h>
-+#endif
-
- #include "webrtc/system_wrappers/include/ref_count.h"
- #include "webrtc/system_wrappers/include/trace.h"
-@@ -34,6 +37,15 @@
- #define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) )
- #endif
-
-+#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
-@@ -274,6 +286,11 @@ int32_t DeviceInfoLinux::GetDeviceName(
- 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/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc b/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc
deleted file mode 100644
index dab0ad4da0d..00000000000
--- a/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_video__capture__linux.cc,v 1.12 2017/04/27 01:49:47 ryoon Exp $
-
---- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc.orig 2017-04-11 04:15:17.000000000 +0000
-+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
-@@ -24,6 +24,9 @@
- #else
- #include <linux/videodev2.h>
- #endif
-+#ifdef HAVE_LIBV4L2
-+#include <libv4l2.h>
-+#endif
-
- #include <new>
-
-@@ -32,6 +35,15 @@
- #include "webrtc/system_wrappers/include/ref_count.h"
- #include "webrtc/system_wrappers/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
diff --git a/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi b/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
deleted file mode 100644
index 68fbd96dc19..00000000000
--- a/www/firefox/patches/patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
+++ /dev/null
@@ -1,34 +0,0 @@
-$NetBSD: patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi,v 1.11 2017/04/27 01:49:47 ryoon Exp $
-
---- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi.orig 2017-04-11 04:15:17.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': [
- {
- # Note this library is missing an implementation for the video capture.
-@@ -76,6 +79,19 @@
- 'linux/video_capture_linux.cc',
- 'linux/video_capture_linux.h',
- ],
-+ 'conditions': [
-+ ['use_libv4l2==1', {
-+ 'defines': [
-+ 'HAVE_LIBV4L2',
-+ ],
-+ 'cflags_mozilla': [
-+ '$(MOZ_LIBV4L2_CFLAGS)',
-+ ],
-+ 'libraries': [
-+ '-lv4l2',
-+ ],
-+ }],
-+ ],
- }],
- ['OS=="mac"', {
- 'sources': [
diff --git a/www/firefox/patches/patch-mobile_android_confvars.sh b/www/firefox/patches/patch-mobile_android_confvars.sh
new file mode 100644
index 00000000000..2159ff3b27c
--- /dev/null
+++ b/www/firefox/patches/patch-mobile_android_confvars.sh
@@ -0,0 +1,13 @@
+$NetBSD: patch-mobile_android_confvars.sh,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- mobile/android/confvars.sh.orig 2017-06-05 20:45:15.000000000 +0000
++++ mobile/android/confvars.sh
+@@ -30,6 +30,8 @@ MOZ_XULRUNNER=
+ MOZ_CAPTURE=1
+ MOZ_RAW=1
+
++MOZ_RUST_MP4PARSE=1
++
+ # use custom widget for html:select
+ MOZ_USE_NATIVE_POPUP_WINDOWS=1
+
diff --git a/www/firefox/patches/patch-python_futures_concurrent_futures_process.py b/www/firefox/patches/patch-python_futures_concurrent_futures_process.py
deleted file mode 100644
index 2152bd7b5ea..00000000000
--- a/www/firefox/patches/patch-python_futures_concurrent_futures_process.py
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-python_futures_concurrent_futures_process.py,v 1.1 2017/04/27 01:49:47 ryoon Exp $
-
---- python/futures/concurrent/futures/process.py.orig 2017-04-11 04:15:19.000000000 +0000
-+++ python/futures/concurrent/futures/process.py
-@@ -247,7 +247,11 @@ def _check_system_limits():
- _system_limits_checked = True
- try:
- import os
-- nsems_max = os.sysconf("SC_SEM_NSEMS_MAX")
-+ if sys.platform.startswith('freebsd'):
-+ # sem(4) confuses sysconf(3) on FreeBSD < 11.1
-+ nsems_max = -1
-+ else:
-+ nsems_max = os.sysconf("SC_SEM_NSEMS_MAX")
- except (AttributeError, ValueError):
- # sysconf not available or setting not available
- return
diff --git a/www/firefox/patches/patch-rc b/www/firefox/patches/patch-rc
deleted file mode 100644
index 3fa70932c65..00000000000
--- a/www/firefox/patches/patch-rc
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-rc,v 1.8 2016/06/16 12:08:21 ryoon Exp $
-
-* Fix application name
-
---- browser/branding/unofficial/locales/en-US/brand.dtd.orig 2015-08-24 21:53:06.000000000 +0000
-+++ browser/branding/unofficial/locales/en-US/brand.dtd
-@@ -2,8 +2,8 @@
- - License, v. 2.0. If a copy of the MPL was not distributed with this
- - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
--<!ENTITY brandShorterName "Nightly">
--<!ENTITY brandShortName "Nightly">
--<!ENTITY brandFullName "Nightly">
-+<!ENTITY brandShorterName "Browser">
-+<!ENTITY brandShortName "Browser">
-+<!ENTITY brandFullName "Browser">
- <!ENTITY vendorShortName "Mozilla">
- <!ENTITY trademarkInfo.part1 " ">
diff --git a/www/firefox/patches/patch-toolkit_components_osfile_modules_osfile__unix__back.jsm b/www/firefox/patches/patch-toolkit_components_osfile_modules_osfile__unix__back.jsm
deleted file mode 100644
index d082234b1a5..00000000000
--- a/www/firefox/patches/patch-toolkit_components_osfile_modules_osfile__unix__back.jsm
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-toolkit_components_osfile_modules_osfile__unix__back.jsm,v 1.8 2016/12/03 09:58:26 ryoon Exp $
-
---- toolkit/components/osfile/modules/osfile_unix_back.jsm.orig 2016-07-25 20:22:06.000000000 +0000
-+++ toolkit/components/osfile/modules/osfile_unix_back.jsm
-@@ -228,8 +228,8 @@
- let statvfs = new SharedAll.HollowStructure("statvfs",
- Const.OSFILE_SIZEOF_STATVFS);
-
-- statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BSIZE,
-- "f_bsize", Type.unsigned_long.implementation);
-+ statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_FRSIZE,
-+ "f_frsize", Type.unsigned_long.implementation);
- statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BAVAIL,
- "f_bavail", Type.fsblkcnt_t.implementation);
-
diff --git a/www/firefox/patches/patch-toolkit_components_osfile_modules_osfile__unix__front.jsm b/www/firefox/patches/patch-toolkit_components_osfile_modules_osfile__unix__front.jsm
deleted file mode 100644
index 77a87fa22b8..00000000000
--- a/www/firefox/patches/patch-toolkit_components_osfile_modules_osfile__unix__front.jsm
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-toolkit_components_osfile_modules_osfile__unix__front.jsm,v 1.6 2016/12/03 09:58:26 ryoon Exp $
-
---- toolkit/components/osfile/modules/osfile_unix_front.jsm.orig 2016-05-12 17:13:27.000000000 +0000
-+++ toolkit/components/osfile/modules/osfile_unix_front.jsm
-@@ -399,7 +399,7 @@
- throw_on_negative("statvfs", (UnixFile.statvfs || UnixFile.statfs)(sourcePath, fileSystemInfoPtr));
-
- let bytes = new Type.uint64_t.implementation(
-- fileSystemInfo.f_bsize * fileSystemInfo.f_bavail);
-+ fileSystemInfo.f_frsize * fileSystemInfo.f_bavail);
-
- return bytes.value;
- };
diff --git a/www/firefox/patches/patch-toolkit_components_telemetry_Histograms.json b/www/firefox/patches/patch-toolkit_components_telemetry_Histograms.json
new file mode 100644
index 00000000000..8d05f3f2a8f
--- /dev/null
+++ b/www/firefox/patches/patch-toolkit_components_telemetry_Histograms.json
@@ -0,0 +1,42 @@
+$NetBSD: patch-toolkit_components_telemetry_Histograms.json,v 1.1 2017/06/14 11:28:44 ryoon Exp $
+
+--- toolkit/components/telemetry/Histograms.json.orig 2017-06-05 20:45:22.000000000 +0000
++++ toolkit/components/telemetry/Histograms.json
+@@ -7022,7 +7022,8 @@
+ "expires_in_version": "55",
+ "kind": "boolean",
+ "bug_numbers": [1220885],
+- "description": "(Bug 1220885) Whether the rust mp4 demuxer successfully parsed a stream segment."
++ "description": "(Bug 1220885) Whether the rust mp4 demuxer successfully parsed a stream segment.",
++ "cpp_guard": "MOZ_RUST_MP4PARSE"
+ },
+ "MEDIA_RUST_MP4PARSE_ERROR_CODE": {
+ "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"],
+@@ -7030,21 +7031,24 @@
+ "kind": "enumerated",
+ "n_values": 32,
+ "bug_numbers": [1238420],
+- "description": "The error code reported when an MP4 parse attempt has failed.0 = OK, 1 = bad argument, 2 = invalid data, 3 = unsupported, 4 = unexpected end of file, 5 = read error."
++ "description": "The error code reported when an MP4 parse attempt has failed.0 = OK, 1 = bad argument, 2 = invalid data, 3 = unsupported, 4 = unexpected end of file, 5 = read error.",
++ "cpp_guard": "MOZ_RUST_MP4PARSE"
+ },
+ "MEDIA_RUST_MP4PARSE_TRACK_MATCH_AUDIO": {
+ "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"],
+ "expires_in_version": "55",
+ "kind": "boolean",
+ "bug_numbers": [1231169],
+- "description": "Whether rust and stagefight mp4 parser audio track results match."
++ "description": "Whether rust and stagefight mp4 parser audio track results match.",
++ "cpp_guard": "MOZ_RUST_MP4PARSE"
+ },
+ "MEDIA_RUST_MP4PARSE_TRACK_MATCH_VIDEO": {
+ "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"],
+ "expires_in_version": "55",
+ "kind": "boolean",
+ "bug_numbers": [1231169],
+- "description": "Whether rust and stagefight mp4 parser video track results match."
++ "description": "Whether rust and stagefight mp4 parser video track results match.",
++ "cpp_guard": "MOZ_RUST_MP4PARSE"
+ },
+ "MEDIA_WMF_DECODE_ERROR": {
+ "expires_in_version": "55",
diff --git a/www/firefox/patches/patch-toolkit_library_moz.build b/www/firefox/patches/patch-toolkit_library_moz.build
index 81d684bb9dd..66d6d945933 100644
--- a/www/firefox/patches/patch-toolkit_library_moz.build
+++ b/www/firefox/patches/patch-toolkit_library_moz.build
@@ -1,19 +1,11 @@
-$NetBSD: patch-toolkit_library_moz.build,v 1.12 2017/04/27 01:49:47 ryoon Exp $
+$NetBSD: patch-toolkit_library_moz.build,v 1.13 2017/06/14 11:28:44 ryoon Exp $
* Support system libraries
* Restore OSS support
---- toolkit/library/moz.build.orig 2017-04-11 04:15:18.000000000 +0000
+--- toolkit/library/moz.build.orig 2017-06-05 20:45:23.000000000 +0000
+++ toolkit/library/moz.build
-@@ -216,6 +216,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
- ]
-
- OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
-+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
- OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
-
- if CONFIG['SERVO_TARGET_DIR']:
-@@ -230,9 +231,30 @@ if CONFIG['MOZ_SYSTEM_JPEG']:
+@@ -228,9 +228,30 @@ if CONFIG['MOZ_SYSTEM_JPEG']:
if CONFIG['MOZ_SYSTEM_PNG']:
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
@@ -44,7 +36,7 @@ $NetBSD: patch-toolkit_library_moz.build,v 1.12 2017/04/27 01:49:47 ryoon Exp $
if CONFIG['MOZ_SYSTEM_LIBEVENT']:
OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
-@@ -242,8 +264,8 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']:
+@@ -240,8 +261,8 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']:
if not CONFIG['MOZ_TREE_PIXMAN']:
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
diff --git a/www/firefox/patches/patch-toolkit_moz.configure b/www/firefox/patches/patch-toolkit_moz.configure
index 39d77675617..77368a5a029 100644
--- a/www/firefox/patches/patch-toolkit_moz.configure
+++ b/www/firefox/patches/patch-toolkit_moz.configure
@@ -1,10 +1,10 @@
-$NetBSD: patch-toolkit_moz.configure,v 1.2 2017/03/07 20:45:43 ryoon Exp $
+$NetBSD: patch-toolkit_moz.configure,v 1.3 2017/06/14 11:28:44 ryoon Exp $
* Enable widevide CDM for NetBSD
---- toolkit/moz.configure.orig 2017-01-23 16:13:54.000000000 +0000
+--- toolkit/moz.configure.orig 2017-06-05 20:45:23.000000000 +0000
+++ toolkit/moz.configure
-@@ -338,6 +338,26 @@ add_old_configure_assignment('FT2_LIBS',
+@@ -343,6 +343,26 @@ add_old_configure_assignment('FT2_LIBS',
add_old_configure_assignment('FT2_CFLAGS',
delayed_getattr(ft2_info, 'cflags'))
@@ -23,7 +23,7 @@ $NetBSD: patch-toolkit_moz.configure,v 1.2 2017/03/07 20:45:43 ryoon Exp $
+option('--with-system-harfbuzz',
+ help="Use system harfbuzz (located with pkgconfig)")
+
-+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.1',
++system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.3',
+ when='--with-system-harfbuzz')
+
+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
diff --git a/www/firefox/patches/patch-toolkit_xre_nsEmbedFunctions.cpp b/www/firefox/patches/patch-toolkit_xre_nsEmbedFunctions.cpp
index 22bc7548298..64e69229c60 100644
--- a/www/firefox/patches/patch-toolkit_xre_nsEmbedFunctions.cpp
+++ b/www/firefox/patches/patch-toolkit_xre_nsEmbedFunctions.cpp
@@ -1,10 +1,10 @@
-$NetBSD: patch-toolkit_xre_nsEmbedFunctions.cpp,v 1.6 2016/06/16 12:08:21 ryoon Exp $
+$NetBSD: patch-toolkit_xre_nsEmbedFunctions.cpp,v 1.7 2017/06/14 11:28:44 ryoon Exp $
* Support Solaris
---- toolkit/xre/nsEmbedFunctions.cpp.orig 2013-05-11 19:19:55.000000000 +0000
+--- toolkit/xre/nsEmbedFunctions.cpp.orig 2017-06-05 20:45:23.000000000 +0000
+++ toolkit/xre/nsEmbedFunctions.cpp
-@@ -239,7 +239,7 @@ XRE_SetRemoteExceptionHandler(const char
+@@ -285,7 +285,7 @@ XRE_SetRemoteExceptionHandler(const char
{
#if defined(XP_WIN) || defined(XP_MACOSX)
return CrashReporter::SetRemoteExceptionHandler(nsDependentCString(aPipe));
@@ -13,7 +13,7 @@ $NetBSD: patch-toolkit_xre_nsEmbedFunctions.cpp,v 1.6 2016/06/16 12:08:21 ryoon
return CrashReporter::SetRemoteExceptionHandler();
#else
# error "OOP crash reporter unsupported on this platform"
-@@ -351,7 +351,7 @@ XRE_InitChildProcess(int aArgc,
+@@ -504,7 +504,7 @@ XRE_InitChildProcess(int aArgc,
// Bug 684322 will add better visibility into this condition
NS_WARNING("Could not setup crash reporting\n");
}
@@ -21,4 +21,4 @@ $NetBSD: patch-toolkit_xre_nsEmbedFunctions.cpp,v 1.6 2016/06/16 12:08:21 ryoon
+# elif defined(OS_LINUX) || defined(OS_SOLARIS)
// on POSIX, |crashReporterArg| is "true" if crash reporting is
// enabled, false otherwise
- if (0 != strcmp("false", crashReporterArg) &&
+ if (0 != strcmp("false", crashReporterArg) &&