diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2017-04-11 21:25:36 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2017-04-11 21:25:36 +0000 |
commit | 894be6cfc9878f1479e6928fa231cfa0c517852c (patch) | |
tree | e8ed1411ddb35ec27382c95c1398d6d3d82114db /www/firefox-esr | |
parent | 9517dea4341f4850bd460fa2ebaa029a864520f5 (diff) |
www/firefox-esr: update to 52.1.0 (rc1)
Changes: https://www.mozilla.org/firefox/52.1.0/releasenotes/
Changes: https://hg.mozilla.org/releases/mozilla-esr52/shortlog
Security: 5e0a038a-ca30-416d-a2f5-38cbf5e7df33
MFH: 2017Q2
Notes
Notes:
svn path=/head/; revision=438316
Diffstat (limited to 'www/firefox-esr')
33 files changed, 632 insertions, 1936 deletions
diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile index ce444393db9a..d036127fc61f 100644 --- a/www/firefox-esr/Makefile +++ b/www/firefox-esr/Makefile @@ -2,33 +2,32 @@ # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 45.8.0 +DISTVERSION= 52.1.0 DISTVERSIONSUFFIX=esr.source -PORTREVISION= 3 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build2/source + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source PKGNAMESUFFIX= -esr MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.12:devel/nspr \ - nss>=3.21.3:security/nss \ +BUILD_DEPENDS= nspr>=4.13.1:devel/nspr \ + nss>=3.29.5:security/nss \ libevent>=2.0.21_2:devel/libevent \ - soundtouch>=1.9.0:audio/soundtouch \ - harfbuzz>=1.1.0:print/harfbuzz \ - graphite2>=1.3.6:graphics/graphite2 \ - png>=1.6.19:graphics/png \ + harfbuzz>=1.4.1:print/harfbuzz \ + graphite2>=1.3.8:graphics/graphite2 \ + png>=1.6.28:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ - sqlite3>=3.9.1:databases/sqlite3 \ + sqlite3>=3.17.0:databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ yasm:devel/yasm \ zip:archivers/zip +# soundtouch>=1.9.0:audio/soundtouch \ LIB_DEPENDS= libv4l2.so:multimedia/libv4l @@ -36,7 +35,7 @@ USE_GECKO= gecko CPE_PRODUCT= ${PORTNAME}_esr CONFLICTS_INSTALL= firefox-[0-9]* MOZ_PKGCONFIG_FILES= # empty -USE_MOZILLA= # empty +USE_MOZILLA= -soundtouch MOZILLA_NAME= Firefox USE_GL= gl @@ -44,8 +43,7 @@ USES= tar:xz FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png -MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \ - --enable-application=browser \ +MOZ_OPTIONS= --enable-application=browser \ --enable-official-branding OPTIONS_DEFINE= RUST diff --git a/www/firefox-esr/distinfo b/www/firefox-esr/distinfo index ed6516bf2b2c..0252f1d0b53e 100644 --- a/www/firefox-esr/distinfo +++ b/www/firefox-esr/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1488487483 -SHA256 (firefox-45.8.0esr.source.tar.xz) = 7e28decd81f78070b433c69ebd7498f2e46e7cc5c5c6bff9a8cd7380d09da17a -SIZE (firefox-45.8.0esr.source.tar.xz) = 185229628 +TIMESTAMP = 1491886176 +SHA256 (firefox-52.1.0esr.source.tar.xz) = 39fcd7e5fbef4620c4b98b0c0eee21b801419a647f2c4d91d4c41538ceb32289 +SIZE (firefox-52.1.0esr.source.tar.xz) = 212225508 diff --git a/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp b/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp index 97b7b8d0cd0b..68cb778b95a7 100644 --- a/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp +++ b/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp @@ -1,11 +1,12 @@ ---- browser/app/nsBrowserApp.cpp~ +--- browser/app/nsBrowserApp.cpp.orig 2016-09-19 16:19:28 UTC +++ browser/app/nsBrowserApp.cpp -@@ -417,6 +417,8 @@ int main(int argc, char* argv[]) - TriggerQuirks(); - #endif +@@ -324,6 +324,9 @@ int main(int argc, char* argv[], char* e + { + mozilla::TimeStamp start = mozilla::TimeStamp::Now(); + setenv("MOZ_GMP_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0); + setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0); - int gotCounters; - #if defined(XP_UNIX) - struct rusage initialRUsage; ++ + #ifdef HAS_DLL_BLOCKLIST + DllBlocklist_Initialize(); + diff --git a/www/firefox-esr/files/patch-bug1013882 b/www/firefox-esr/files/patch-bug1013882 deleted file mode 100644 index 80f45c011c67..000000000000 --- a/www/firefox-esr/files/patch-bug1013882 +++ /dev/null @@ -1,69 +0,0 @@ -diff --git b2g/installer/Makefile.in b2g/installer/Makefile.in -index 754312a..c69904c 100644 ---- b2g/installer/Makefile.in -+++ b2g/installer/Makefile.in -@@ -101,6 +101,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS) - DEFINES += -DMOZ_RTSP - endif - -+ifdef MOZ_DEBUG -+DEFINES += -DMOZ_DEBUG=1 -+endif -+ - DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION) - ifdef MOZ_NATIVE_ICU - DEFINES += -DMOZ_NATIVE_ICU -diff --git b2g/installer/package-manifest.in b2g/installer/package-manifest.in -index 17d433c..0416187 100644 ---- b2g/installer/package-manifest.in -+++ b2g/installer/package-manifest.in -@@ -660,7 +660,7 @@ - @RESPATH@/components/EngineeringModeAPI.js - @RESPATH@/components/EngineeringModeService.js - --#ifdef MOZ_DEBUG -+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) - @RESPATH@/components/TestInterfaceJS.js - @RESPATH@/components/TestInterfaceJS.manifest - #endif -diff --git browser/installer/package-manifest.in browser/installer/package-manifest.in -index b509fd4..195345c 100644 ---- browser/installer/package-manifest.in -+++ browser/installer/package-manifest.in -@@ -608,7 +608,7 @@ - @RESPATH@/components/MozKeyboard.js - @RESPATH@/components/InputMethod.manifest - --#ifdef MOZ_DEBUG -+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) - @RESPATH@/components/TestInterfaceJS.js - @RESPATH@/components/TestInterfaceJS.manifest - #endif -diff --git mobile/android/installer/Makefile.in mobile/android/installer/Makefile.in -index 96dceab..3528ad6 100644 ---- mobile/android/installer/Makefile.in -+++ mobile/android/installer/Makefile.in -@@ -41,6 +41,10 @@ BINPATH = bin - endif - DEFINES += -DBINPATH=$(BINPATH) - -+ifdef MOZ_DEBUG -+DEFINES += -DMOZ_DEBUG=1 -+endif -+ - ifdef ENABLE_MARIONETTE - DEFINES += -DENABLE_MARIONETTE=1 - endif -diff --git mobile/android/installer/package-manifest.in mobile/android/installer/package-manifest.in -index 994580b..cf142df 100644 ---- mobile/android/installer/package-manifest.in -+++ mobile/android/installer/package-manifest.in -@@ -440,7 +440,7 @@ - @BINPATH@/components/dom_webspeechsynth.xpt - #endif - --#ifdef MOZ_DEBUG -+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) - @BINPATH@/components/TestInterfaceJS.js - @BINPATH@/components/TestInterfaceJS.manifest - #endif diff --git a/www/firefox-esr/files/patch-bug1021761 b/www/firefox-esr/files/patch-bug1021761 index 3d6ff7781bb0..a73bd09f6dc9 100644 --- a/www/firefox-esr/files/patch-bug1021761 +++ b/www/firefox-esr/files/patch-bug1021761 @@ -1,7 +1,19 @@ -diff --git configure.in configure.in +diff --git build/moz.configure/old.configure build/moz.configure/old.configure +index b95dd2b..4cbefd5 100644 +--- build/moz.configure/old.configure ++++ build/moz.configure/old.configure +@@ -305,6 +305,7 @@ def old_configure_options(*options): + '--with-nspr-prefix', + '--with-nss-exec-prefix', + '--with-nss-prefix', ++ '--with-oss', + '--with-pthreads', + '--with-qemu-exe', + '--with-servo', +diff --git old-configure.in configure.in index 48e60c0..ec08417 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -5591,6 +5591,67 @@ fi AC_SUBST(MOZ_WEBM_ENCODER) @@ -175,22 +187,13 @@ index a962553..1f780f4 100644 }; enum stream_state { -@@ -262,7 +309,7 @@ alsa_refill_stream(cubeb_stream * stm) +@@ -260,10 +307,10 @@ alsa_refill_stream(cubeb_stream * stm) pthread_mutex_lock(&stm->mutex); -- r = snd_pcm_poll_descriptors_revents(stm->pcm, stm->fds, stm->nfds, &revents); -+ r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents); - if (r < 0 || revents != POLLOUT) { - /* This should be a stream error; it makes no sense for poll(2) to wake - for this stream and then have the stream report that it's not ready. -@@ -271,10 +318,10 @@ alsa_refill_stream(cubeb_stream * stm) - return RUNNING; - } - - avail = snd_pcm_avail_update(stm->pcm); + avail = WRAP(snd_pcm_avail_update)(stm->pcm); - if (avail == -EPIPE) { + if (avail < 0) { - snd_pcm_recover(stm->pcm, avail, 1); - avail = snd_pcm_avail_update(stm->pcm); + WRAP(snd_pcm_recover)(stm->pcm, avail, 1); @@ -198,19 +201,8 @@ index a962553..1f780f4 100644 } /* Failed to recover from an xrun, this stream must be broken. */ -@@ -293,8 +340,8 @@ alsa_refill_stream(cubeb_stream * stm) - available to write. If avail is still zero here, the stream must be in - a funky state, so recover and try again. */ - if (avail == 0) { -- snd_pcm_recover(stm->pcm, -EPIPE, 1); -- avail = snd_pcm_avail_update(stm->pcm); -+ WRAP(snd_pcm_recover)(stm->pcm, -EPIPE, 1); -+ avail = WRAP(snd_pcm_avail_update)(stm->pcm); - if (avail <= 0) { - pthread_mutex_unlock(&stm->mutex); - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -@@ -302,7 +349,7 @@ alsa_refill_stream(cubeb_stream * stm) - } +@@ -286,7 +333,7 @@ alsa_refill_stream(cubeb_stream * stm) + return RUNNING; } - p = calloc(1, snd_pcm_frames_to_bytes(stm->pcm, avail)); @@ -218,13 +210,13 @@ index a962553..1f780f4 100644 assert(p); pthread_mutex_unlock(&stm->mutex); -@@ -327,10 +374,10 @@ alsa_refill_stream(cubeb_stream * stm) +@@ -312,10 +359,10 @@ alsa_refill_stream(cubeb_stream * stm) b[i] *= stm->volume; } } - wrote = snd_pcm_writei(stm->pcm, p, got); + wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); - if (wrote == -EPIPE) { + if (wrote < 0) { - snd_pcm_recover(stm->pcm, wrote, 1); - wrote = snd_pcm_writei(stm->pcm, p, got); + WRAP(snd_pcm_recover)(stm->pcm, wrote, 1); @@ -502,24 +494,22 @@ index a962553..1f780f4 100644 + r = WRAP(snd_pcm_nonblock)(stm->pcm, 1); assert(r == 0); - /* Ugly hack: the PA ALSA plugin allows buffer configurations that can't -@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, - latency = latency < 500 ? 500 : latency; + latency_us = latency_frames * 1e6 / stm->params.rate; +@@ -855,7 +961,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre + latency_us = latency_us < min_latency ? min_latency: latency_us; } - r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, -- stm->params.channels, stm->params.rate, 1, -- latency * 1000); + r = WRAP(snd_pcm_set_params)(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, -+ stm->params.channels, stm->params.rate, 1, -+ latency * 1000); + stm->params.channels, stm->params.rate, 1, + latency_us); if (r < 0) { - alsa_stream_destroy(stm); +@@ -867,15 +973,15 @@ alsa_stream_init(cubeb * ctx, cubeb_stre return CUBEB_ERROR_INVALID_FORMAT; } -- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size); -+ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->period_size); +- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &period_size); ++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &period_size); assert(r == 0); - stm->nfds = snd_pcm_poll_descriptors_count(stm->pcm); @@ -557,12 +547,12 @@ index a962553..1f780f4 100644 if (r < 0) { return CUBEB_ERROR; } -@@ -963,34 +1069,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) { +@@ -969,34 +1075,34 @@ alsa_get_preferred_sample_rate(cubeb * c /* get a pcm, disabling resampling, so we get a rate the * hardware/dmix/pulse/etc. supports. */ -- r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); -+ r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); +- r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK, SND_PCM_NO_AUTO_RESAMPLE); ++ r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK, SND_PCM_NO_AUTO_RESAMPLE); if (r < 0) { return CUBEB_ERROR; } @@ -643,7 +633,7 @@ new file mode 100644 index 0000000..5e38e27 --- /dev/null +++ media/libcubeb/src/cubeb_oss.c -@@ -0,0 +1,432 @@ +@@ -0,0 +1,442 @@ +/* + * Copyright © 2014 Mozilla Foundation + * @@ -664,6 +654,7 @@ index 0000000..5e38e27 +#include <errno.h> +#include <pthread.h> +#include <stdio.h> ++#include <assert.h> + +#include "cubeb/cubeb.h" +#include "cubeb-internal.h" @@ -762,7 +753,7 @@ index 0000000..5e38e27 + pthread_mutex_lock(&stream->state_mutex); + if (stream->data_callback && stream->running && !stream->stopped) { + pthread_mutex_unlock(&stream->state_mutex); -+ got = stream->data_callback(stream, stream->user_ptr, buffer, nframes); ++ got = stream->data_callback(stream, stream->user_ptr, NULL, buffer, nframes); + } else { + pthread_mutex_unlock(&stream->state_mutex); + } @@ -892,7 +883,10 @@ index 0000000..5e38e27 + +static int oss_stream_init(cubeb * context, cubeb_stream ** stm, + char const * stream_name, -+ cubeb_stream_params stream_params, ++ cubeb_devid input_device, ++ cubeb_stream_params * input_stream_params, ++ cubeb_devid output_device, ++ cubeb_stream_params * output_stream_params, + unsigned int latency, + cubeb_data_callback data_callback, + cubeb_state_callback state_callback, void * user_ptr) @@ -903,6 +897,12 @@ index 0000000..5e38e27 + stream->state_callback = state_callback; + stream->user_ptr = user_ptr; + ++ assert(!input_stream_params && "not supported."); ++ if (input_device || output_device) { ++ /* Device selection not yet implemented. */ ++ return CUBEB_ERROR_DEVICE_UNAVAILABLE; ++ } ++ + if ((stream->fd = open(CUBEB_OSS_DEFAULT_OUTPUT, O_WRONLY)) == -1) { + free(stream); + return CUBEB_ERROR; @@ -914,7 +914,7 @@ index 0000000..5e38e27 + free(stream); \ + return CUBEB_ERROR_INVALID_FORMAT; } } while (0) + -+ stream->params = stream_params; ++ stream->params = *output_stream_params; + stream->volume = 1.0; + stream->panning = 0.0; + @@ -1117,14 +1117,14 @@ diff --git media/libcubeb/update.sh media/libcubeb/update.sh index a96badd..2f9585e 100755 --- media/libcubeb/update.sh +++ media/libcubeb/update.sh -@@ -10,6 +10,7 @@ cp $1/src/cubeb_audiounit.c src - cp $1/src/cubeb_pulse.c src - cp $1/src/cubeb_sndio.c src +@@ -16,6 +16,7 @@ cp $1/src/cubeb_audiounit.cpp src + cp $1/src/cubeb_osx_run_loop.h src + cp $1/src/cubeb_jack.cpp src cp $1/src/cubeb_opensl.c src +cp $1/src/cubeb_oss.c src - cp $1/src/cubeb_audiotrack.c src - cp $1/src/cubeb_wasapi.cpp src - cp $1/src/cubeb_resampler.h src + cp $1/src/cubeb_panner.cpp src + cp $1/src/cubeb_panner.h src + cp $1/src/cubeb_pulse.c src diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build index 991f03f..3d99eb5 100644 --- media/webrtc/signaling/test/common.build @@ -1138,13 +1138,13 @@ index 991f03f..3d99eb5 100644 +if CONFIG['MOZ_OSS']: + OS_LIBS += CONFIG['MOZ_OSS_LIBS'] - if CONFIG['MOZ_NATIVE_JPEG']: + if CONFIG['MOZ_SYSTEM_JPEG']: OS_LIBS += CONFIG['MOZ_JPEG_LIBS'] diff --git toolkit/library/moz.build toolkit/library/moz.build index e191f13..4fb268a 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build -@@ -234,8 +234,8 @@ if CONFIG['MOZ_NATIVE_LIBVPX']: +@@ -234,8 +234,8 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']: if not CONFIG['MOZ_TREE_PIXMAN']: OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS'] diff --git a/www/firefox-esr/files/patch-bug1130155 b/www/firefox-esr/files/patch-bug1130155 deleted file mode 100644 index 34584d42823f..000000000000 --- a/www/firefox-esr/files/patch-bug1130155 +++ /dev/null @@ -1,179 +0,0 @@ -commit eab3e3a -Author: Mikhail Teterin <mi@aldan.algebra.com> -Date: Tue Dec 16 19:34:02 2014 -0800 - - Bug 1130155 - Avoid assert failures when consuming only part of buffer. ---- - media/libcubeb/src/cubeb_alsa.c | 112 ++++++++++++++++++++++++++++++---------- - 1 file changed, 85 insertions(+), 27 deletions(-) - -diff --git media/libcubeb/src/cubeb_alsa.c media/libcubeb/src/cubeb_alsa.c -index 9bbc129..e72944a 100644 ---- media/libcubeb/src/cubeb_alsa.c -+++ media/libcubeb/src/cubeb_alsa.c -@@ -14,6 +14,8 @@ - #include <limits.h> - #include <dlfcn.h> - #include <poll.h> -+#include <stdlib.h> -+#include <stdio.h> - #include <unistd.h> - #include <alsa/asoundlib.h> - #include "cubeb/cubeb.h" -@@ -45,6 +47,7 @@ MAKE_TYPEDEF(snd_pcm_avail_update); - MAKE_TYPEDEF(snd_pcm_close); - MAKE_TYPEDEF(snd_pcm_delay); - MAKE_TYPEDEF(snd_pcm_drain); -+MAKE_TYPEDEF(snd_pcm_forward); - MAKE_TYPEDEF(snd_pcm_frames_to_bytes); - MAKE_TYPEDEF(snd_pcm_get_params); - /* snd_pcm_hw_params_alloca is actually a macro */ -@@ -305,32 +308,35 @@ alsa_refill_stream(cubeb_stream * stm) - long got; - void * p; - int draining; -+ unsigned pipefailures, againfailures; - - draining = 0; - - pthread_mutex_lock(&stm->mutex); - -- r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents); -- if (r < 0 || revents != POLLOUT) { -- /* This should be a stream error; it makes no sense for poll(2) to wake -- for this stream and then have the stream report that it's not ready. -- Unfortunately, this does happen, so just bail out and try again. */ -- pthread_mutex_unlock(&stm->mutex); -- return RUNNING; -- } -+ for (pipefailures = 0;;) { -+ r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents); -+ if (r < 0 || revents != POLLOUT || -+ (avail = WRAP(snd_pcm_avail_update)(stm->pcm)) == 0) { -+ /* This should be a stream error; it makes no sense for poll(2) to wake -+ for this stream and then have the stream report that it's not ready. -+ Unfortunately, this does happen, so just bail out and try again. */ -+ pthread_mutex_unlock(&stm->mutex); -+ return RUNNING; -+ } - -- avail = WRAP(snd_pcm_avail_update)(stm->pcm); -- if (avail == -EPIPE) { -+ if (avail > 0) -+ break; -+ if (pipefailures++ > 11) { -+ fprintf(stderr, "%s: repeated failures from snd_pcm_avail_update, " -+ "giving up\n", __func__); -+ pthread_mutex_unlock(&stm->mutex); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ return ERROR; -+ } - WRAP(snd_pcm_recover)(stm->pcm, avail, 1); -- avail = WRAP(snd_pcm_avail_update)(stm->pcm); -- } -- -- /* Failed to recover from an xrun, this stream must be broken. */ -- if (avail < 0) { -- pthread_mutex_unlock(&stm->mutex); -- stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -- return ERROR; - } -+ pipefailures = againfailures = 0; - - /* This should never happen. */ - if ((unsigned int) avail > stm->buffer_size) { -@@ -359,10 +365,11 @@ alsa_refill_stream(cubeb_stream * stm) - if (got < 0) { - pthread_mutex_unlock(&stm->mutex); - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ free(p); - return ERROR; - } - if (got > 0) { -- snd_pcm_sframes_t wrote; -+ snd_pcm_sframes_t wrote, towrite = got; - - if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) { - float * b = (float *) p; -@@ -375,14 +382,62 @@ alsa_refill_stream(cubeb_stream * stm) - b[i] *= stm->volume; - } - } -- wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); -- if (wrote == -EPIPE) { -- WRAP(snd_pcm_recover)(stm->pcm, wrote, 1); -- wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); -+ for (;;) { -+ wrote = WRAP(snd_pcm_writei)(stm->pcm, p, -+ towrite > avail ? avail : towrite); -+ switch(wrote) { -+ case -EPIPE: -+ if (pipefailures++ > 3) { -+ fprintf(stderr, "%s: Too many underflows, giving up\n", __func__); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ free(p); -+ return ERROR; -+ } -+ WRAP(snd_pcm_recover)(stm->pcm, wrote, 1); -+ continue; -+ case -EAGAIN: -+ if (againfailures++ > 3) { -+ fprintf(stderr, "%s: Too many -EAGAIN errors from snd_pcm_writei, " -+ "giving up\n", __func__); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ free(p); -+ return ERROR; -+ } -+ continue; -+ case -EBADFD: -+ fprintf(stderr, "%s: snc_pcm_writei returned -%s, giving up\n", -+ __func__, "EBADFD"); -+ free(p); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ return ERROR; -+ } -+ if (wrote < 0) { -+ fprintf(stderr, "%s: snc_pcm_writei returned unexpected error %lld, " -+ "giving up\n", __func__, (long long)wrote); -+ free(p); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ return ERROR; -+ } -+ pipefailures = againfailures = 0; -+ stm->write_position += wrote; -+ gettimeofday(&stm->last_activity, NULL); -+ if (wrote > towrite) { -+ fprintf(stderr, "%s: snc_pcm_writei wrote %lld frames, which was more " -+ "than we requested (%lld). This should not happen, giving up\n", -+ __func__, (long long)wrote, (long long)towrite); -+ free(p); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ return ERROR; -+ } -+ if (towrite == wrote) -+ break; -+ towrite -= wrote; - } -- assert(wrote >= 0 && wrote == got); -- stm->write_position += wrote; -- gettimeofday(&stm->last_activity, NULL); - } - if (got != avail) { - long buffer_fill = stm->buffer_size - (avail - got); -@@ -1177,7 +1232,10 @@ alsa_stream_get_position(cubeb_stream * stm, uint64_t * position) - return CUBEB_OK; - } - -- assert(delay >= 0); -+ if (delay < 0) { -+ WRAP(snd_pcm_forward)(stm->pcm, -delay); -+ delay = 0; -+ } - - *position = 0; - if (stm->write_position >= (snd_pcm_uframes_t) delay) { diff --git a/www/firefox-esr/files/patch-bug1153151 b/www/firefox-esr/files/patch-bug1153151 deleted file mode 100644 index 855cdab89472..000000000000 --- a/www/firefox-esr/files/patch-bug1153151 +++ /dev/null @@ -1,13 +0,0 @@ -Bug 1153151 - make libcubeb sndio use non-blocking i/o - ---- media/libcubeb/src/cubeb_sndio.c.orig 2017-01-12 17:53:15 UTC -+++ media/libcubeb/src/cubeb_sndio.c -@@ -187,7 +187,7 @@ sndio_stream_init(cubeb *context, - if (s == NULL) - return CUBEB_ERROR; - s->context = context; -- s->hdl = sio_open(NULL, SIO_PLAY, 0); -+ s->hdl = sio_open(NULL, SIO_PLAY, 1); - if (s->hdl == NULL) { - free(s); - DPR("sndio_stream_init(), sio_open() failed\n"); diff --git a/www/firefox-esr/files/patch-bug1153179 b/www/firefox-esr/files/patch-bug1153179 deleted file mode 100644 index f39c9bbdcd82..000000000000 --- a/www/firefox-esr/files/patch-bug1153179 +++ /dev/null @@ -1,40 +0,0 @@ -Bug 1153179 - fix latency reporting in libcubeb sndio - ---- media/libcubeb/src/cubeb_sndio.c.orig 2017-01-12 17:53:15 UTC -+++ media/libcubeb/src/cubeb_sndio.c -@@ -67,7 +67,7 @@ sndio_onmove(void *arg, int delta) - { - cubeb_stream *s = (cubeb_stream *)arg; - -- s->rdpos += delta; -+ s->rdpos += delta * s->bpf; - } - - static void * -@@ -135,7 +135,7 @@ sndio_mainloop(void *arg) - state = CUBEB_STATE_ERROR; - break; - } -- s->wrpos = 0; -+ s->wrpos += n; - start += n; - } - } -@@ -326,7 +336,7 @@ sndio_stream_get_position(cubeb_stream * - { - pthread_mutex_lock(&s->mtx); - DPR("sndio_stream_get_position() %lld\n", s->rdpos); -- *p = s->rdpos; -+ *p = s->rdpos / s->bpf; - pthread_mutex_unlock(&s->mtx); - return CUBEB_OK; - } -@@ -346,7 +356,7 @@ sndio_stream_get_latency(cubeb_stream * - { - // http://www.openbsd.org/cgi-bin/man.cgi?query=sio_open - // in the "Measuring the latency and buffers usage" paragraph. -- *latency = stm->wrpos - stm->rdpos; -+ *latency = (stm->wrpos - stm->rdpos) / stm->bpf; - return CUBEB_OK; - } - diff --git a/www/firefox-esr/files/patch-bug1232150 b/www/firefox-esr/files/patch-bug1232150 deleted file mode 100644 index 202c0cf11917..000000000000 --- a/www/firefox-esr/files/patch-bug1232150 +++ /dev/null @@ -1,280 +0,0 @@ -commit 9a18802e82c7 -Author: Martin Husemann <martin> -Date: Fri Jan 22 00:09:00 2016 +0100 - - Bug 1232150 - "Atomic operations for PPC/PPC64". r=lhansen ---- - js/src/jit/AtomicOperations.h | 2 + - js/src/jit/none/AtomicOperations-sparc.h | 251 +++++++++++++++++++++++++++++++ - 2 files changed, 253 insertions(+) - -diff --git js/src/jit/AtomicOperations.h js/src/jit/AtomicOperations.h -index 16196342a282..42aee72eb879 100644 ---- js/src/jit/AtomicOperations.h -+++ js/src/jit/AtomicOperations.h -@@ -328,6 +328,8 @@ AtomicOperations::isLockfree(int32_t size) - # include "jit/mips-shared/AtomicOperations-mips-shared.h" - #elif defined(__ppc__) || defined(__PPC__) - # include "jit/none/AtomicOperations-ppc.h" -+#elif defined(__sparc__) -+# include "jit/none/AtomicOperations-sparc.h" - #elif defined(JS_CODEGEN_NONE) - // You can disable the JIT with --disable-ion but you must still - // provide the atomic operations that will be used by the JS engine. -diff --git js/src/jit/none/AtomicOperations-sparc.h js/src/jit/none/AtomicOperations-sparc.h -new file mode 100644 -index 000000000000..706ada86241b ---- /dev/null -+++ js/src/jit/none/AtomicOperations-sparc.h -@@ -0,0 +1,251 @@ -+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- -+ * vim: set ts=8 sts=4 et sw=4 tw=99: -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+/* For documentation, see jit/AtomicOperations.h */ -+ -+#ifndef jit_sparc_AtomicOperations_sparc_h -+#define jit_sparc_AtomicOperations_sparc_h -+ -+#include "mozilla/Assertions.h" -+#include "mozilla/Types.h" -+ -+#if defined(__clang__) || defined(__GNUC__) -+ -+// The default implementation tactic for gcc/clang is to use the newer -+// __atomic intrinsics added for use in C++11 <atomic>. Where that -+// isn't available, we use GCC's older __sync functions instead. -+// -+// ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS is kept as a backward -+// compatible option for older compilers: enable this to use GCC's old -+// __sync functions instead of the newer __atomic functions. This -+// will be required for GCC 4.6.x and earlier, and probably for Clang -+// 3.1, should we need to use those versions. -+ -+//#define ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ -+inline bool -+js::jit::AtomicOperations::isLockfree8() -+{ -+# ifndef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int8_t), 0)); -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int16_t), 0)); -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int32_t), 0)); -+# if defined(__LP64__) -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int64_t), 0)); -+# endif -+ return true; -+# else -+ return false; -+# endif -+} -+ -+inline void -+js::jit::AtomicOperations::fenceSeqCst() -+{ -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ __sync_synchronize(); -+# else -+ __atomic_thread_fence(__ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::loadSeqCst(T* addr) -+{ -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8()); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ __sync_synchronize(); -+ T v = *addr; -+ __sync_synchronize(); -+# else -+ T v; -+ __atomic_load(addr, &v, __ATOMIC_SEQ_CST); -+# endif -+ return v; -+} -+ -+template<typename T> -+inline void -+js::jit::AtomicOperations::storeSeqCst(T* addr, T val) -+{ -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8()); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ __sync_synchronize(); -+ *addr = val; -+ __sync_synchronize(); -+# else -+ __atomic_store(addr, &val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::compareExchangeSeqCst(T* addr, T oldval, T newval) -+{ -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8()); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_val_compare_and_swap(addr, oldval, newval); -+# else -+ __atomic_compare_exchange(addr, &oldval, &newval, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); -+ return oldval; -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchAddSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_add(addr, val); -+# else -+ return __atomic_fetch_add(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchSubSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_sub(addr, val); -+# else -+ return __atomic_fetch_sub(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchAndSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_and(addr, val); -+# else -+ return __atomic_fetch_and(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchOrSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_or(addr, val); -+# else -+ return __atomic_fetch_or(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchXorSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_xor(addr, val); -+# else -+ return __atomic_fetch_xor(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::loadSafeWhenRacy(T* addr) -+{ -+ return *addr; // FIXME (1208663): not yet safe -+} -+ -+template<typename T> -+inline void -+js::jit::AtomicOperations::storeSafeWhenRacy(T* addr, T val) -+{ -+ *addr = val; // FIXME (1208663): not yet safe -+} -+ -+inline void -+js::jit::AtomicOperations::memcpySafeWhenRacy(void* dest, const void* src, size_t nbytes) -+{ -+ ::memcpy(dest, src, nbytes); // FIXME (1208663): not yet safe -+} -+ -+inline void -+js::jit::AtomicOperations::memmoveSafeWhenRacy(void* dest, const void* src, size_t nbytes) -+{ -+ ::memmove(dest, src, nbytes); // FIXME (1208663): not yet safe -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::exchangeSeqCst(T* addr, T val) -+{ -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8()); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ T v; -+ __sync_synchronize(); -+ do { -+ v = *addr; -+ } while (__sync_val_compare_and_swap(addr, v, val) != v); -+ return v; -+# else -+ T v; -+ __atomic_exchange(addr, &val, &v, __ATOMIC_SEQ_CST); -+ return v; -+# endif -+} -+ -+template<size_t nbytes> -+inline void -+js::jit::RegionLock::acquire(void* addr) -+{ -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ while (!__sync_bool_compare_and_swap(&spinlock, 0, 1)) -+ ; -+# else -+ uint32_t zero = 0; -+ uint32_t one = 1; -+ while (!__atomic_compare_exchange(&spinlock, &zero, &one, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE)) { -+ zero = 0; -+ continue; -+ } -+# endif -+} -+ -+template<size_t nbytes> -+inline void -+js::jit::RegionLock::release(void* addr) -+{ -+ MOZ_ASSERT(AtomicOperations::loadSeqCst(&spinlock) == 1, "releasing unlocked region lock"); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ __sync_sub_and_fetch(&spinlock, 1); -+# else -+ uint32_t zero = 0; -+ __atomic_store(&spinlock, &zero, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+# undef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ -+#elif defined(ENABLE_SHARED_ARRAY_BUFFER) -+ -+# error "Either disable JS shared memory, use GCC or Clang, or add code here" -+ -+#endif -+ -+#endif // jit_sparc_AtomicOperations_sparc_h diff --git a/www/firefox-esr/files/patch-bug1233275 b/www/firefox-esr/files/patch-bug1233275 deleted file mode 100644 index ac5d9d2cdedb..000000000000 --- a/www/firefox-esr/files/patch-bug1233275 +++ /dev/null @@ -1,36 +0,0 @@ -# Copy environment for IPC using NSPR to avoid race - -diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc ---- ipc/chromium/src/base/process_util_bsd.cc -+++ ipc/chromium/src/base/process_util_bsd.cc -@@ -12,10 +12,9 @@ - - #include <string> - -+#include "nspr.h" - #include "base/eintr_wrapper.h" - --extern "C" char **environ __attribute__((__visibility__("default"))); -- - namespace base { - - void FreeEnvVarsArray(char* array[], int length) -@@ -66,6 +65,7 @@ bool LaunchApp(const std::vector<std::st - // Existing variables are overwritten by env_vars_to_set. - int pos = 0; - environment_map combined_env_vars = env_vars_to_set; -+ char **environ = PR_DuplicateEnvironment(); - while(environ[pos] != NULL) { - std::string varString = environ[pos]; - std::string varName = varString.substr(0, varString.find_first_of('=')); -@@ -73,8 +73,9 @@ bool LaunchApp(const std::vector<std::st - if (combined_env_vars.find(varName) == combined_env_vars.end()) { - combined_env_vars[varName] = varValue; - } -- pos++; -+ PR_Free(environ[pos++]); - } -+ PR_Free(environ); - int varsLen = combined_env_vars.size() + 1; - - char** vars = new char*[varsLen]; diff --git a/www/firefox-esr/files/patch-bug1245076 b/www/firefox-esr/files/patch-bug1245076 deleted file mode 100644 index 29096afe91e4..000000000000 --- a/www/firefox-esr/files/patch-bug1245076 +++ /dev/null @@ -1,74 +0,0 @@ - -# HG changeset patch -# User Mike Hommey <mh+mozilla@glandium.org> -# Date 1457596445 -32400 -# Node ID 55212130f19da3079167a6b0a5a0ed6689c9a71d -# Parent 27c94617d7064d566c24a42e11cd4c7ef725923d -Bug 1245076 - Don't include mozalloc.h from the cstdlib wrapper. r=froydnj - -Our STL wrappers do various different things, one of which is including -mozalloc.h for infallible operator new. mozalloc.h includes stdlib.h, -which, in libstdc++ >= 6 is now itself a wrapper around cstdlib, which -circles back to our STL wrapper. - -But of the things our STL wrappers do, including mozalloc.h is not one -that is necessary for cstdlib. So skip including mozalloc.h in our -cstdlib wrapper. - -Additionally, some C++ sources (in media/mtransport) are including -headers in an extern "C" block, which end up including stdlib.h, which -ends up including cstdlib because really, this is all C++, and our -wrapper pre-includes <new> for mozalloc.h, which fails because templates -don't work inside extern "C". So, don't pre-include <new> when we're not -including mozalloc.h. - - -diff --git config/gcc-stl-wrapper.template.h config/gcc-stl-wrapper.template.h ---- config/gcc-stl-wrapper.template.h -+++ config/gcc-stl-wrapper.template.h -@@ -12,33 +12,40 @@ - // compiling ObjC. - #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS) - # error "STL code can only be used with -fno-exceptions" - #endif - - // Silence "warning: #include_next is a GCC extension" - #pragma GCC system_header - -+// Don't include mozalloc for cstdlib. See bug 1245076. -+#ifndef moz_dont_include_mozalloc_for_cstdlib -+# define moz_dont_include_mozalloc_for_cstdlib -+#endif -+#ifndef moz_dont_include_mozalloc_for_${HEADER} - // mozalloc.h wants <new>; break the cycle by always explicitly - // including <new> here. NB: this is a tad sneaky. Sez the gcc docs: - // - // `#include_next' does not distinguish between <file> and "file" - // inclusion, nor does it check that the file you specify has the - // same name as the current file. It simply looks for the file - // named, starting with the directory in the search path after the - // one where the current file was found. --#include_next <new> -+# include_next <new> - - // See if we're in code that can use mozalloc. NB: this duplicates - // code in nscore.h because nscore.h pulls in prtypes.h, and chromium - // can't build with that being included before base/basictypes.h. --#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --#else --# error "STL code can only be used with infallible ::operator new()" -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+ - #endif - - #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) - // Enable checked iterators and other goodies - // - // FIXME/bug 551254: gcc's debug STL implementation requires -frtti. - // Figure out how to resolve this with -fno-rtti. Maybe build with - // -frtti in DEBUG builds? diff --git a/www/firefox-esr/files/patch-bug1252246 b/www/firefox-esr/files/patch-bug1252246 deleted file mode 100644 index 429391f0dc15..000000000000 --- a/www/firefox-esr/files/patch-bug1252246 +++ /dev/null @@ -1,44 +0,0 @@ -# Prefer PTHREAD_PROCESS_SHARED on FreeBSD 11.0 or later - -diff --git a/ipc/glue/CrossProcessMutex.h b/ipc/glue/CrossProcessMutex.h ---- ipc/glue/CrossProcessMutex.h -+++ ipc/glue/CrossProcessMutex.h -@@ -9,7 +9,7 @@ - #include "base/process.h" - #include "mozilla/Mutex.h" - --#if defined(OS_LINUX) || defined(XP_DARWIN) -+#if !defined(OS_WIN) && !defined(OS_NETBSD) && !defined(OS_OPENBSD) - #include <pthread.h> - #include "SharedMemoryBasic.h" - #include "mozilla/Atomics.h" -@@ -34,7 +34,7 @@ struct ParamTraits; - namespace mozilla { - #if defined(OS_WIN) - typedef HANDLE CrossProcessMutexHandle; --#elif defined(OS_LINUX) || defined(OS_MACOSX) -+#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD) - typedef mozilla::ipc::SharedMemoryBasic::Handle CrossProcessMutexHandle; - #else - // Stub for other platforms. We can't use uintptr_t here since different -@@ -100,7 +100,7 @@ private: - - #if defined(OS_WIN) - HANDLE mMutex; --#elif defined(OS_LINUX) || defined(OS_MACOSX) -+#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD) - RefPtr<mozilla::ipc::SharedMemoryBasic> mSharedBuffer; - pthread_mutex_t* mMutex; - mozilla::Atomic<int32_t>* mCount; -diff --git a/ipc/glue/moz.build b/ipc/glue/moz.build ---- ipc/glue/moz.build -+++ ipc/glue/moz.build -@@ -61,7 +61,7 @@ if CONFIG['OS_ARCH'] == 'WINNT': - SOURCES += [ - 'CrossProcessMutex_windows.cpp', - ] --elif CONFIG['OS_ARCH'] in ('Linux', 'Darwin'): -+elif not CONFIG['OS_ARCH'] in ('NetBSD', 'OpenBSD'): - UNIFIED_SOURCES += [ - 'CrossProcessMutex_posix.cpp', - ] diff --git a/www/firefox-esr/files/patch-bug1257947 b/www/firefox-esr/files/patch-bug1257947 deleted file mode 100644 index 62818bcca102..000000000000 --- a/www/firefox-esr/files/patch-bug1257947 +++ /dev/null @@ -1,13 +0,0 @@ -# Fix Hello icon (bug 1257947) - ---- browser/extensions/loop/jar.mn.orig 2016-04-14 21:11:21.842908299 +0200 -+++ browser/extensions/loop/jar.mn 2016-04-14 21:11:36.570907377 +0200 -@@ -6,7 +6,7 @@ - [features/loop@mozilla.org] chrome.jar: - % content loop %content/ contentaccessible=yes - % content loop-locale-fallback %content/locale-fallback/en-US/ --% skin loop classic/1.0 %skin/linux/ os=Linux -+% skin loop classic/1.0 %skin/linux/ - % skin loop classic/1.0 %skin/osx/ os=Darwin - % skin loop classic/1.0 %skin/windows/ os=WINNT - % skin loop-shared classic/1.0 %skin/shared/ diff --git a/www/firefox-esr/files/patch-bug1268816 b/www/firefox-esr/files/patch-bug1268816 deleted file mode 100644 index 4eeecaed2424..000000000000 --- a/www/firefox-esr/files/patch-bug1268816 +++ /dev/null @@ -1,50 +0,0 @@ - -# HG changeset patch -# User Lee Salzman <lsalzman@mozilla.com> -# Date 1461978185 14400 -# Node ID b622cbd9ba13d01abcb1d04684dcb39c22a08590 -# Parent f3a5c8b5e17073a1e68f079da93f8dbe10e454a9 -Bug 1268816 - allow Skia to use C++11 features on platforms that have them. r=froydnj - -diff --git config/stl-headers config/stl-headers ---- config/stl-headers -+++ config/stl-headers -@@ -29,16 +29,17 @@ iterator - limits - list - map - memory - ostream - set - stack - string -+type_traits - utility - vector - cassert - climits - cmath - cstdarg - cstdio - cstdlib -diff --git config/system-headers config/system-headers ---- config/system-headers -+++ config/system-headers -@@ -1109,16 +1109,17 @@ ThreadManagerTests.h - Threads.h - time.h - Timer.h - tlhelp32.h - ToolUtils.h - tr1/functional - trace.h - Traps.h -+type_traits - typeinfo - types.h - Types.h - UAppleEventsMgr.h - UAttachments.h - ucontext.h - uconv.h - UCursor.h diff --git a/www/firefox-esr/files/patch-bug1269171 b/www/firefox-esr/files/patch-bug1269171 deleted file mode 100644 index 913953420a8d..000000000000 --- a/www/firefox-esr/files/patch-bug1269171 +++ /dev/null @@ -1,258 +0,0 @@ - -# HG changeset patch -# User Mike Hommey <mh+mozilla@glandium.org> -# Date 1463557039 -32400 -# Node ID 68da139d0866977c0ada86319fa94388f2255446 -# Parent a640e6fa8ab9977fb6c5bcf63dc4daca6699477b -Bug 1269171 - Change how mozalloc.h is hooked in STL wrappers. r=froydnj - -Since the introduction of the STL wrappers, they have included -mozalloc.h, and multiple times, we've hit header reentrancy problems, -and worked around them as best as we could. - -Taking a step back, all mozalloc.h does is: -- declare moz_* allocator functions. -- define inline implementations of various operator new/delete variants. - -The first only requires the functions to be declared before they are used, -so mozalloc.h only needs to be included before anything that would use -those functions. - -The second doesn't actually require a specific order, as long as the -declaration for those functions comes before their use, and they are -either declared in <new> or implicitly by the C++ compiler. - -So all in all, it doesn't matter that mozalloc.h is included before the -wrapped STL headers. What matters is that it's included when STL headers -are included. So arrange things such that mozalloc.h is included after -the first wrapped STL header is fully preprocessed (and all its includes -have been included). - - -diff --git config/gcc-stl-wrapper.template.h config/gcc-stl-wrapper.template.h ---- config/gcc-stl-wrapper.template.h -+++ config/gcc-stl-wrapper.template.h -@@ -12,56 +12,54 @@ - // compiling ObjC. - #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS) - # error "STL code can only be used with -fno-exceptions" - #endif - - // Silence "warning: #include_next is a GCC extension" - #pragma GCC system_header - --// Don't include mozalloc for cstdlib. See bug 1245076. --#ifndef moz_dont_include_mozalloc_for_cstdlib --# define moz_dont_include_mozalloc_for_cstdlib --#endif --#ifndef moz_dont_include_mozalloc_for_${HEADER} --// mozalloc.h wants <new>; break the cycle by always explicitly --// including <new> here. NB: this is a tad sneaky. Sez the gcc docs: --// --// `#include_next' does not distinguish between <file> and "file" --// inclusion, nor does it check that the file you specify has the --// same name as the current file. It simply looks for the file --// named, starting with the directory in the search path after the --// one where the current file was found. --# include_next <new> -- --// See if we're in code that can use mozalloc. NB: this duplicates --// code in nscore.h because nscore.h pulls in prtypes.h, and chromium --// can't build with that being included before base/basictypes.h. --# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --# else --# error "STL code can only be used with infallible ::operator new()" --# endif -- --#endif -- - #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) - // Enable checked iterators and other goodies - // - // FIXME/bug 551254: gcc's debug STL implementation requires -frtti. - // Figure out how to resolve this with -fno-rtti. Maybe build with - // -frtti in DEBUG builds? - // - // # define _GLIBCXX_DEBUG 1 - #endif - -+// Don't include mozalloc for cstdlib. See bug 1245076. -+#ifndef moz_dont_include_mozalloc_for_cstdlib -+# define moz_dont_include_mozalloc_for_cstdlib -+#endif -+ -+// Include mozalloc after the STL header and all other headers it includes -+// have been preprocessed. -+#if !defined(MOZ_INCLUDE_MOZALLOC_H) && \ -+ !defined(moz_dont_include_mozalloc_for_${HEADER}) -+# define MOZ_INCLUDE_MOZALLOC_H -+# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+#endif -+ - #pragma GCC visibility push(default) - #include_next <${HEADER}> - #pragma GCC visibility pop - -+#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+// See if we're in code that can use mozalloc. NB: this duplicates -+// code in nscore.h because nscore.h pulls in prtypes.h, and chromium -+// can't build with that being included before base/basictypes.h. -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+#endif -+ - // gcc calls a __throw_*() function from bits/functexcept.h when it - // wants to "throw an exception". functexcept exists nominally to - // support -fno-exceptions, but since we'll always use the system - // libstdc++, and it's compiled with exceptions, then in practice - // these __throw_*() functions will always throw exceptions (shades of - // -fshort-wchar). We don't want that and so define our own inlined - // __throw_*(). - #ifndef mozilla_throw_gcc_h -diff --git config/make-stl-wrappers.py config/make-stl-wrappers.py ---- config/make-stl-wrappers.py -+++ config/make-stl-wrappers.py -@@ -25,28 +25,26 @@ def header_path(header, compiler): - def is_comment(line): - return re.match(r'\s*#.*', line) - - def main(outdir, compiler, template_file, header_list_file): - if not os.path.isdir(outdir): - os.mkdir(outdir) - - template = open(template_file, 'r').read() -- path_to_new = header_path('new', compiler) - - for header in open(header_list_file, 'r'): - header = header.rstrip() - if 0 == len(header) or is_comment(header): - continue - - path = header_path(header, compiler) - with FileAvoidWrite(os.path.join(outdir, header)) as f: - f.write(string.Template(template).substitute(HEADER=header, -- HEADER_PATH=path, -- NEW_HEADER_PATH=path_to_new)) -+ HEADER_PATH=path)) - - - if __name__ == '__main__': - if 5 != len(sys.argv): - print("""Usage: - python {0} OUT_DIR ('msvc'|'gcc') TEMPLATE_FILE HEADER_LIST_FILE - """.format(sys.argv[0]), file=sys.stderr) - sys.exit(1) -diff --git config/msvc-stl-wrapper.template.h config/msvc-stl-wrapper.template.h ---- config/msvc-stl-wrapper.template.h -+++ config/msvc-stl-wrapper.template.h -@@ -3,45 +3,33 @@ - */ - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - - #ifndef mozilla_${HEADER}_h - #define mozilla_${HEADER}_h - --#ifndef MOZ_HAVE_INCLUDED_ALLOC --#define MOZ_HAVE_INCLUDED_ALLOC -- - #if _HAS_EXCEPTIONS - # error "STL code can only be used with -fno-exceptions" - #endif - -+// Include mozalloc after the STL header and all other headers it includes -+// have been preprocessed. -+#if !defined(MOZ_INCLUDE_MOZALLOC_H) -+# define MOZ_INCLUDE_MOZALLOC_H -+# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+#endif -+ - // Code built with !_HAS_EXCEPTIONS calls std::_Throw(), but the win2k - // CRT doesn't export std::_Throw(). So we define it. - #ifndef mozilla_Throw_h - # include "mozilla/throw_msvc.h" - #endif - --// Code might include <new> before other wrapped headers, but <new> --// includes <exception> and so we want to wrap it. But mozalloc.h --// wants <new> also, so we break the cycle by always explicitly --// including <new> here. --#include <${NEW_HEADER_PATH}> -- --// See if we're in code that can use mozalloc. NB: this duplicates --// code in nscore.h because nscore.h pulls in prtypes.h, and chromium --// can't build with that being included before base/basictypes.h. --#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --#else --# error "STL code can only be used with infallible ::operator new()" --#endif --#endif /* MOZ_HAVE_INCLUDED_ALLOC */ -- - #ifdef _DEBUG - // From - // http://msdn.microsoft.com/en-us/library/aa985982%28VS.80%29.aspx - // and - // http://msdn.microsoft.com/en-us/library/aa985965%28VS.80%29.aspx - // there appear to be two types of STL container checking. The - // former is enabled by -D_DEBUG (which is implied by -MDd or -MTd), and - // looks to be full generation/mutation checked iterators as done by -@@ -70,9 +58,20 @@ - // but that's OK because we're not throwing them. - #pragma warning( push ) - #pragma warning( disable : 4275 4530 ) - - #include <${HEADER_PATH}> - - #pragma warning( pop ) - -+#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+// See if we're in code that can use mozalloc. NB: this duplicates -+// code in nscore.h because nscore.h pulls in prtypes.h, and chromium -+// can't build with that being included before base/basictypes.h. -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+#endif -+ - #endif // if mozilla_${HEADER}_h -diff --git memory/mozalloc/mozalloc.h memory/mozalloc/mozalloc.h ---- memory/mozalloc/mozalloc.h -+++ memory/mozalloc/mozalloc.h -@@ -7,20 +7,27 @@ - - #ifndef mozilla_mozalloc_h - #define mozilla_mozalloc_h - - /* - * https://bugzilla.mozilla.org/show_bug.cgi?id=427099 - */ - --#include <stdlib.h> --#include <string.h> - #if defined(__cplusplus) - # include <new> -+// Since libstdc++ 6, including the C headers (e.g. stdlib.h) instead of the -+// corresponding C++ header (e.g. cstdlib) can cause confusion in C++ code -+// using things defined there. Specifically, with stdlib.h, the use of abs() -+// in gfx/graphite2/src/inc/UtfCodec.h somehow ends up picking the wrong abs() -+# include <cstdlib> -+# include <cstring> -+#else -+# include <stdlib.h> -+# include <string.h> - #endif - - #if defined(__cplusplus) - #include "mozilla/fallible.h" - #include "mozilla/TemplateLib.h" - #endif - #include "mozilla/Attributes.h" - #include "mozilla/Types.h" diff --git a/www/firefox-esr/files/patch-bug1278861 b/www/firefox-esr/files/patch-bug1278861 deleted file mode 100644 index 179057598809..000000000000 --- a/www/firefox-esr/files/patch-bug1278861 +++ /dev/null @@ -1,38 +0,0 @@ - -# HG changeset patch -# User Nathan Froyd <froydnj@gmail.com> -# Date 1466820205 14400 -# Node ID bd25b06261c840a62d035192cf4b1dbc18f54e3f -# Parent fbe25a30fcbbe172bdd37c70c5b06cdbb07886af -Bug 1278861 - adjust ifdefs in Conversions.h:ToInt32 to catch clang-on-arm-generally; r=luke - -The bug noted in ToInt32 doesn't just exist when compiling for -arm-darwin; it exists for ARM targets generally. The ifdef should -reflect that. - -diff --git js/public/Conversions.h js/public/Conversions.h ---- js/public/Conversions.h -+++ js/public/Conversions.h -@@ -395,19 +395,19 @@ ToIntWidth(double d) - } - - } // namespace detail - - /* ES5 9.5 ToInt32 (specialized for doubles). */ - inline int32_t - ToInt32(double d) - { -- // clang crashes compiling this when targeting arm-darwin: -+ // clang crashes compiling this when targeting arm: - // https://llvm.org/bugs/show_bug.cgi?id=22974 --#if defined (__arm__) && defined (__GNUC__) && !defined(__APPLE__) -+#if defined (__arm__) && defined (__GNUC__) && !defined(__clang__) - int32_t i; - uint32_t tmp0; - uint32_t tmp1; - uint32_t tmp2; - asm ( - // We use a pure integer solution here. In the 'softfp' ABI, the argument - // will start in r0 and r1, and VFP can't do all of the necessary ECMA - // conversions by itself so some integer code will be required anyway. A - diff --git a/www/firefox-esr/files/patch-bug1288587 b/www/firefox-esr/files/patch-bug1288587 new file mode 100644 index 000000000000..e10ef8537a4a --- /dev/null +++ b/www/firefox-esr/files/patch-bug1288587 @@ -0,0 +1,67 @@ +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index 855214a..1e91d51 100644 +--- build/moz.configure/init.configure ++++ build/moz.configure/init.configure +@@ -165,16 +165,17 @@ option(env='PYTHON', nargs=1, help='Python interpreter') + # ============================================================== + @depends('PYTHON', check_build_environment, mozconfig, '--help') + @imports('os') + @imports('sys') + @imports('subprocess') + @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: + return + + python = env_python[0] if env_python else None + + # Ideally we'd rely on the mozconfig injection from mozconfig_options, +@@ -184,16 +185,22 @@ def virtualenv_python(env_python, build_env, mozconfig, help): + if 'PYTHON' in mozconfig['env']['added']: + python = mozconfig['env']['added']['PYTHON'] + elif 'PYTHON' in mozconfig['env']['modified']: + python = mozconfig['env']['modified']['PYTHON'][1] + elif 'PYTHON' in mozconfig['vars']['added']: + 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) + topsrcdir, topobjdir = build_env.topsrcdir, build_env.topobjdir + if topobjdir.endswith('/js/src'): + topobjdir = topobjdir[:-7] + + with LineIO(lambda l: log.info(l)) as out: +@@ -219,17 +226,20 @@ def virtualenv_python(env_python, build_env, mozconfig, help): + log.info('Creating Python environment') + manager.build(python) + + python = normsep(manager.python_path) + + 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)) + + # We are now in the virtualenv + if not distutils.sysconfig.get_python_lib(): + die('Could not determine python site packages directory') + diff --git a/www/firefox-esr/files/patch-bug1320621 b/www/firefox-esr/files/patch-bug1320621 deleted file mode 100644 index 7cfebadcfec4..000000000000 --- a/www/firefox-esr/files/patch-bug1320621 +++ /dev/null @@ -1,39 +0,0 @@ -Make sure --enable-system-hunspell picks up system headers - ---- extensions/spellcheck/hunspell/glue/moz.build -+++ extensions/spellcheck/hunspell/glue/moz.build -@@ -11,12 +11,14 @@ UNIFIED_SOURCES += [ - 'RemoteSpellCheckEngineParent.cpp', - ] - --CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] -- - FINAL_LIBRARY = 'xul' - -+if CONFIG['MOZ_NATIVE_HUNSPELL']: -+ CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] -+else: -+ LOCAL_INCLUDES += ['../src'] -+ - LOCAL_INCLUDES += [ -- '../src', - '/dom/base', - '/extensions/spellcheck/src', - ] ---- extensions/spellcheck/src/moz.build -+++ extensions/spellcheck/src/moz.build -@@ -17,9 +17,13 @@ UNIFIED_SOURCES += [ - - FINAL_LIBRARY = 'xul' - -+if CONFIG['MOZ_NATIVE_HUNSPELL']: -+ CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] -+else: -+ LOCAL_INCLUDES += ['../hunspell/src'] -+ - LOCAL_INCLUDES += [ - '../hunspell/glue', -- '../hunspell/src', - '/dom/base', - ] - EXPORTS.mozilla += [ diff --git a/www/firefox-esr/files/patch-bug1320991 b/www/firefox-esr/files/patch-bug1320991 deleted file mode 100644 index 6b9ccb5a1c3d..000000000000 --- a/www/firefox-esr/files/patch-bug1320991 +++ /dev/null @@ -1,43 +0,0 @@ -commit 454e2dbe1b4f -Author: Mike Shal <mshal@mozilla.com> -Date: Tue Dec 20 16:37:18 2016 -0500 - - Bug 1320991 - Support --with-system-{nss,nspr} in modules/libmar; r?glandium - - The problem with the modules/libmar/tests/moz.build file when building - --with-system-nspr and --with-system-nss is that the nss libraries don't - exist in the tree, so they fail when trying to copy into the test - directory. - - However, it turns out that the libraries copied into the test directory - aren't even used when building with an in-tree copy, because the - xpcshell launcher sets LD_LIBRARY_PATH to point to dist/bin. Since we - use the dist/bin copies anyway for an in-tree build, we can stop copying - them into the test directory and simultaneously fix the --with-system - build. - - The DEFINES can also go away since this directory doesn't actually build - anything. - - MozReview-Commit-ID: Bk2f28wc9ZJ ---- - modules/libmar/tests/moz.build | 17 ----------------- - 1 file changed, 17 deletions(-) - -diff --git modules/libmar/tests/moz.build modules/libmar/tests/moz.build -index ee72571b0c6b..9642553e8aa2 100644 ---- modules/libmar/tests/Makefile.in -+++ modules/libmar/tests/Makefile.in -@@ -10,12 +10,5 @@ ifneq ($(OS_TARGET),Android) - ifndef MOZ_PROFILE_GENERATE - libs:: - $(INSTALL) ../tool/signmar$(BIN_SUFFIX) $(TESTROOT)/unit -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nss3$(DLL_SUFFIX) $(TESTROOT)/unit --ifndef MOZ_FOLD_LIBS -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nssutil3$(DLL_SUFFIX) $(TESTROOT)/unit -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)plc4$(DLL_SUFFIX) $(TESTROOT)/unit -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nspr4$(DLL_SUFFIX) $(TESTROOT)/unit -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)plds4$(DLL_SUFFIX) $(TESTROOT)/unit --endif - endif - endif # Not Android diff --git a/www/firefox-esr/files/patch-bug1321877 b/www/firefox-esr/files/patch-bug1321877 deleted file mode 100644 index 50b1b175dd3d..000000000000 --- a/www/firefox-esr/files/patch-bug1321877 +++ /dev/null @@ -1,42 +0,0 @@ -commit a13d95795217 -Author: <tharvik@gmail.com> -Date: Thu Dec 8 18:20:12 2016 -0600 - - Bug 1321877. Fix compiler warnings in Downscaler.h when skia is not enabled. r=tnikkel ---- - image/Downscaler.h | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git image/Downscaler.h image/Downscaler.h -index 21179a38f200..0bdef0eaa646 100644 ---- image/Downscaler.h -+++ image/Downscaler.h -@@ -154,14 +154,14 @@ private: - class Downscaler - { - public: -- explicit Downscaler(const nsIntSize&) -+ explicit Downscaler(const nsIntSize&) : mScale(1.0, 1.0) - { - MOZ_RELEASE_ASSERT(false, "Skia is not enabled"); - } - -- const nsIntSize& OriginalSize() const { return nsIntSize(); } -- const nsIntSize& TargetSize() const { return nsIntSize(); } -- const gfxSize& Scale() const { return gfxSize(1.0, 1.0); } -+ const nsIntSize& OriginalSize() const { return mSize; } -+ const nsIntSize& TargetSize() const { return mSize; } -+ const gfxSize& Scale() const { return mScale; } - - nsresult BeginFrame(const nsIntSize&, const Maybe<nsIntRect>&, uint8_t*, bool, bool = false) - { -@@ -177,6 +177,9 @@ public: - DownscalerInvalidRect TakeInvalidRect() { return DownscalerInvalidRect(); } - void ResetForNextProgressivePass() { } - const nsIntSize FrameSize() const { return nsIntSize(0, 0); } -+private: -+ nsIntSize mSize; -+ gfxSize mScale; - }; - - #endif // MOZ_ENABLE_SKIA diff --git a/www/firefox-esr/files/patch-bug1329520 b/www/firefox-esr/files/patch-bug1329520 deleted file mode 100644 index 694b658caa69..000000000000 --- a/www/firefox-esr/files/patch-bug1329520 +++ /dev/null @@ -1,146 +0,0 @@ -commit 8b0557b033b9 -Author: Dimitry Andric <dimitry> -Date: Fri Jan 27 13:55:00 2017 +0100 - - Bug 1329520 - Fix "memory/mozalloc/throw_gcc.h:35:1: note: declaration missing '[[noreturn]]' (libc++ 4.0)" r=nfroyd ---- - memory/mozalloc/throw_gcc.h | 47 ++++++++++++++++++++++++++++++--------------- - 1 file changed, 31 insertions(+), 16 deletions(-) - -diff --git memory/mozalloc/throw_gcc.h memory/mozalloc/throw_gcc.h -index 18027e04a4a3..4264df63d493 100644 ---- memory/mozalloc/throw_gcc.h -+++ memory/mozalloc/throw_gcc.h -@@ -19,97 +19,110 @@ - - #include "mozilla/mozalloc_abort.h" - -+// libc++ 4.0.0 and higher use C++11 [[noreturn]] attributes for the functions -+// below, and since clang does not allow mixing __attribute__((noreturn)) and -+// [[noreturn]], we have to explicitly use the latter here. See bug 1329520. -+#if defined(__clang__) -+# if __has_feature(cxx_attributes) && \ -+ defined(_LIBCPP_VERSION) && _LIBCPP_VERSION >= 4000 -+# define MOZ_THROW_NORETURN [[noreturn]] -+# endif -+#endif -+#ifndef MOZ_THROW_NORETURN -+# define MOZ_THROW_NORETURN MOZ_NORETURN -+#endif -+ - namespace std { - - // NB: user code is not supposed to touch the std:: namespace. We're - // doing this after careful review because we want to define our own - // exception throwing semantics. Don't try this at home! - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_bad_exception(void) - { - mozalloc_abort("fatal: STL threw bad_exception"); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_bad_alloc(void) - { - mozalloc_abort("fatal: STL threw bad_alloc"); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_bad_cast(void) - { - mozalloc_abort("fatal: STL threw bad_cast"); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_bad_typeid(void) - { - mozalloc_abort("fatal: STL threw bad_typeid"); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_logic_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_domain_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_invalid_argument(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_length_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_out_of_range(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_runtime_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_range_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_overflow_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_underflow_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_ios_failure(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_system_error(int err) - { - char error[128]; -@@ -120,4 +133,6 @@ __throw_system_error(int err) - - } // namespace std - -+#undef MOZ_THROW_NORETURN -+ - #endif // mozilla_throw_gcc_h diff --git a/www/firefox-esr/files/patch-bug1336791 b/www/firefox-esr/files/patch-bug1336791 deleted file mode 100644 index e9ed891a4c56..000000000000 --- a/www/firefox-esr/files/patch-bug1336791 +++ /dev/null @@ -1,21 +0,0 @@ -# Allow readelf to print types without parentheses - ---- toolkit/library/dependentlibs.py -+++ toolkit/library/dependentlibs.py -@@ -57,11 +57,15 @@ def dependentlibs_readelf(lib): - for line in proc.stdout: - # Each line has the following format: - # tag (TYPE) value -+ # or with BSD readelf: -+ # tag TYPE value - # Looking for NEEDED type entries - tmp = line.split(' ', 3) -- if len(tmp) > 3 and tmp[2] == '(NEEDED)': -+ if len(tmp) > 3 and 'NEEDED' in tmp[2]: - # NEEDED lines look like: - # 0x00000001 (NEEDED) Shared library: [libname] -+ # or with BSD readelf: -+ # 0x00000001 NEEDED Shared library: [libname] - match = re.search('\[(.*)\]', tmp[3]) - if match: - deps.append(match.group(1)) diff --git a/www/firefox-esr/files/patch-bug757366 b/www/firefox-esr/files/patch-bug757366 deleted file mode 100644 index 20be9013276d..000000000000 --- a/www/firefox-esr/files/patch-bug757366 +++ /dev/null @@ -1,58 +0,0 @@ -commit 2a3be4b384b9 -Author: Jonathan Kew <jkew@mozilla.com> -Date: Mon Sep 26 18:05:14 2016 +0100 - - Bug 757366 - Don't cast pointers to 'name'-table data to uint16_t*, as they may not be 16-bit-aligned. r=jrmuizel ---- - gfx/thebes/gfxFontUtils.cpp | 26 ++++++++++++++------------ - 1 file changed, 14 insertions(+), 12 deletions(-) - -diff --git gfx/thebes/gfxFontUtils.cpp gfx/thebes/gfxFontUtils.cpp -index 526e17d..cb505e8 100644 ---- gfx/thebes/gfxFontUtils.cpp -+++ gfx/thebes/gfxFontUtils.cpp -@@ -918,16 +918,18 @@ IsValidSFNTVersion(uint32_t version) - version == TRUETYPE_TAG('t','r','u','e'); - } - --// copy and swap UTF-16 values, assume no surrogate pairs, can be in place -+// Copy and swap UTF-16 values, assume no surrogate pairs, can be in place. -+// aInBuf and aOutBuf are NOT necessarily 16-bit-aligned, so we should avoid -+// accessing them directly as uint16_t* values. -+// aLen is count of UTF-16 values, so the byte buffers are twice that. - static void --CopySwapUTF16(const uint16_t *aInBuf, uint16_t *aOutBuf, uint32_t aLen) -+CopySwapUTF16(const char* aInBuf, char* aOutBuf, uint32_t aLen) - { -- const uint16_t *end = aInBuf + aLen; -+ const char* end = aInBuf + aLen * 2; - while (aInBuf < end) { -- uint16_t value = *aInBuf; -- *aOutBuf = (value >> 8) | (value & 0xff) << 8; -- aOutBuf++; -- aInBuf++; -+ uint8_t b0 = *aInBuf++; -+ *aOutBuf++ = *aInBuf++; -+ *aOutBuf++ = b0; - } - } - -@@ -1446,13 +1448,13 @@ gfxFontUtils::DecodeFontName(const char *aNameData, int32_t aByteLen, - if (csName[0] == 0) { - // empty charset name: data is utf16be, no need to instantiate a converter - uint32_t strLen = aByteLen / 2; --#ifdef IS_LITTLE_ENDIAN - aName.SetLength(strLen); -- CopySwapUTF16(reinterpret_cast<const uint16_t*>(aNameData), -- reinterpret_cast<uint16_t*>(aName.BeginWriting()), strLen); -+#ifdef IS_LITTLE_ENDIAN -+ CopySwapUTF16(aNameData, reinterpret_cast<char*>(aName.BeginWriting()), -+ strLen); - #else -- aName.Assign(reinterpret_cast<const char16_t*>(aNameData), strLen); --#endif -+ memcpy(aName.BeginWriting(), aNameData, strLen * 2); -+#endif - return true; - } - diff --git a/www/firefox-esr/files/patch-bug826985 b/www/firefox-esr/files/patch-bug826985 index 941acf53f265..1ba4dece14d1 100644 --- a/www/firefox-esr/files/patch-bug826985 +++ b/www/firefox-esr/files/patch-bug826985 @@ -5,7 +5,7 @@ Date: Fri Jan 4 13:49:22 2013 +0100 Bug 826985 - Support more video formats for WebRTC via libv4l2 on Linux. --- config/system-headers | 1 + - configure.in | 7 +++++++ + old-configure.in | 7 +++++++ media/webrtc/signaling/test/Makefile.in | 1 + .../modules/video_capture/linux/device_info_linux.cc | 17 +++++++++++++++++ .../modules/video_capture/linux/video_capture_linux.cc | 16 +++++++++++++++- @@ -17,18 +17,18 @@ diff --git config/system-headers config/system-headers index 55e4cd1..76567b3 100644 --- config/system-headers +++ config/system-headers -@@ -627,6 +627,7 @@ libgnome/libgnome.h +@@ -624,6 +624,7 @@ libgnome/libgnome.h libgnomeui/gnome-icon-lookup.h libgnomeui/gnome-icon-theme.h libgnomeui/gnome-ui-init.h +libv4l2.h - lib$routines.h - limits limits.h -diff --git configure.in configure.in + link.h + #ifdef ANDROID +diff --git old-configure.in configure.in index 55e4cd1..76567b3 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -5309,6 +5309,9 @@ if test -n "$MOZ_WEBRTC"; then MOZ_VP8_ENCODER=1 MOZ_VP8_ERROR_CONCEALMENT=1 @@ -67,7 +67,7 @@ diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_lin index 239a292..bab496c 100644 --- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc +++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -@@ -25,10 +25,21 @@ +@@ -25,6 +25,9 @@ #else #include <linux/videodev2.h> #endif @@ -77,6 +77,9 @@ index 239a292..bab496c 100644 #include "webrtc/system_wrappers/interface/ref_count.h" #include "webrtc/system_wrappers/interface/trace.h" +@@ -34,6 +37,15 @@ + #define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) ) + #endif +#ifdef HAVE_LIBV4L2 +#define open v4l2_open @@ -86,10 +89,11 @@ index 239a292..bab496c 100644 +#define mmap v4l2_mmap +#define munmap v4l2_munmap +#endif - ++ namespace webrtc { -@@ -130,6 +142,11 @@ WebRtc_Word32 DeviceInfoLinux::GetDeviceName( + namespace videocapturemodule +@@ -274,6 +286,11 @@ int32_t DeviceInfoLinux::GetDeviceName( memset(deviceNameUTF8, 0, deviceNameLength); memcpy(cameraName, cap.card, sizeof(cap.card)); diff --git a/www/firefox-esr/files/patch-bug847568 b/www/firefox-esr/files/patch-bug847568 index 6eb00b509d88..9588ce5df654 100644 --- a/www/firefox-esr/files/patch-bug847568 +++ b/www/firefox-esr/files/patch-bug847568 @@ -1,104 +1,54 @@ # Allow building against system-wide graphite2/harfbuzz. diff --git config/Makefile.in config/Makefile.in -index 14bfc0d..5383399 100644 +index e2e11dc0e27e..a6206bb0ff30 100644 --- config/Makefile.in +++ config/Makefile.in -@@ -49,6 +49,8 @@ export:: $(export-preqs) - -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \ - -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \ - -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ -+ -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \ -+ -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \ - $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers - $(INSTALL) system_wrappers $(DIST) - +@@ -41,6 +41,8 @@ export:: $(export-preqs) + $(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \ + -DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \ + -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ ++ -DMOZ_SYSTEM_GRAPHITE2=$(MOZ_SYSTEM_GRAPHITE2) \ ++ -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \ + -DMOZ_SYSTEM_HUNSPELL=$(MOZ_SYSTEM_HUNSPELL) \ + -DMOZ_SYSTEM_BZ2=$(MOZ_SYSTEM_BZ2) \ + -DMOZ_SYSTEM_ZLIB=$(MOZ_SYSTEM_ZLIB) \ diff --git config/system-headers config/system-headers -index 18e8703..bdc5f82 100644 +index a0c53c651a3e..5ee7f71f9634 100644 --- config/system-headers +++ config/system-headers -@@ -1344,3 +1344,11 @@ unicode/utypes.h +@@ -1269,6 +1269,15 @@ libsn/sn-launcher.h + libsn/sn-monitor.h + libsn/sn-util.h #endif - libutil.h - unwind.h -+#if MOZ_NATIVE_GRAPHITE2==1 ++#if MOZ_SYSTEM_GRAPHITE2==1 +graphite2/Font.h +graphite2/Segment.h +#endif -+#if MOZ_NATIVE_HARFBUZZ==1 ++#if MOZ_SYSTEM_HARFBUZZ==1 ++harfbuzz/hb-glib.h +harfbuzz/hb-ot.h +harfbuzz/hb.h +#endif -diff --git configure.in configure.in -index ac38f40..87536b7 100644 ---- configure.in -+++ configure.in -@@ -7989,6 +7989,49 @@ if test "$USE_FC_FREETYPE"; then - fi - - dnl ======================================================== -+dnl Check for harfbuzz -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-harfbuzz, -+[ --with-system-harfbuzz Use system harfbuzz (located with pkgconfig)], -+MOZ_NATIVE_HARFBUZZ=1, -+MOZ_NATIVE_HARFBUZZ=) -+ -+if test -n "$MOZ_NATIVE_HARFBUZZ"; then -+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.1.0) -+fi -+ -+AC_SUBST(MOZ_NATIVE_HARFBUZZ) -+ -+dnl ======================================================== -+dnl Check for graphite2 -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-graphite2, -+[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)], -+MOZ_NATIVE_GRAPHITE2=1, -+MOZ_NATIVE_GRAPHITE2=) -+ -+if test -n "$MOZ_NATIVE_GRAPHITE2"; then -+ PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2) -+ -+ dnl graphite2.pc has bogus version, check manually -+ AC_TRY_COMPILE([ #include <graphite2/Font.h> -+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ -+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ -+ * 100 + GR2_VERSION_BUGFIX >= \ -+ (major) * 10000 + (minor) * 100 + (bugfix) ) -+ ], [ -+ #if !GR2_VERSION_REQUIRE(1,3,6) -+ #error "Insufficient graphite2 version." -+ #endif -+ ], [], -+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) -+fi -+ -+AC_SUBST(MOZ_NATIVE_GRAPHITE2) -+ -+dnl ======================================================== - dnl Check for pixman and cairo - dnl ======================================================== - + #if MOZ_SYSTEM_HUNSPELL==1 + hunspell.hxx + #endif diff --git dom/base/moz.build dom/base/moz.build -index a660ba4..6b2f602 100644 +index 8e19020315ae..2fcdbb6f7b42 100644 --- dom/base/moz.build +++ dom/base/moz.build -@@ -397,6 +397,9 @@ if CONFIG['INTEL_ARCHITECTURE']: - SOURCES += ['nsTextFragmentSSE2.cpp'] - SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS'] +@@ -464,6 +464,9 @@ if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']: + if CONFIG['MOZ_X11']: + CXXFLAGS += CONFIG['TK_CFLAGS'] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: -+ SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - EXTRA_COMPONENTS += [ - 'ConsoleAPI.manifest', - 'ConsoleAPIStorage.js', + GENERATED_FILES += [ + 'PropertyUseCounterMap.inc', + 'UseCounterList.h', diff --git gfx/graphite2/moz-gr-update.sh gfx/graphite2/moz-gr-update.sh -index f3d76ea..a9e7fb6 100644 +index faaab1b17971..04eff5f09882 100644 --- gfx/graphite2/moz-gr-update.sh +++ gfx/graphite2/moz-gr-update.sh @@ -1,6 +1,7 @@ @@ -109,13 +59,13 @@ index f3d76ea..a9e7fb6 100644 # This script lives in gfx/graphite2, along with the library source, # but must be run from the top level of the mozilla-central tree. -@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> +@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \; #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \; +# chase version for --with-system-graphite2 +perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \ -+ if /GR2_VERSION_REQUIRE/" configure.in ++ if /GR2_VERSION_REQUIRE/" old-configure.in + # summarize what's been touched echo Updated to $RELEASE. @@ -123,41 +73,41 @@ index f3d76ea..a9e7fb6 100644 echo -hg stat gfx/graphite2 -+hg stat configure.in gfx/graphite2 ++hg stat old-configure.in gfx/graphite2 echo echo If gfx/graphite2/src/files.mk has changed, please make corresponding diff --git gfx/harfbuzz/README-mozilla gfx/harfbuzz/README-mozilla -index ca57d16..1ce21fe 100644 +index 22c76a7df020..a01490bd49ee 100644 --- gfx/harfbuzz/README-mozilla +++ gfx/harfbuzz/README-mozilla -@@ -18,3 +18,8 @@ the mozilla tree. - In addition, the src/Makefile.in file here is NOT from upstream, nor is it - generated from src/Makefile.am (the original harfbuzz version); it is a mozilla- - specific makefile that is maintained by hand. +@@ -19,3 +19,8 @@ the mozilla tree. + + If the collection of source files changes, manual updates to moz.build may be + needed, as we don't use the upstream makefiles. + +The in-tree copy may be omitted during build by --with-system-harfbuzz. -+Make sure to keep pkg-config version check within configure.in in sync ++Make sure to keep pkg-config version check within toolkit/moz.configure in sync +with checkout version or increment latest tag by one if it's not based +on upstream release. diff --git gfx/moz.build gfx/moz.build -index 519aa46..6929751 100644 +index 771f652e837a..3b358d84e384 100644 --- gfx/moz.build +++ gfx/moz.build -@@ -7,6 +7,12 @@ +@@ -10,6 +10,12 @@ with Files('**'): if CONFIG['MOZ_TREE_CAIRO']: DIRS += ['cairo'] -+if not CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if not CONFIG['MOZ_SYSTEM_GRAPHITE2']: + DIRS += ['graphite2/src' ] + -+if not CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: + DIRS += ['harfbuzz/src'] + DIRS += [ '2d', 'ycbcr', -@@ -15,8 +21,6 @@ DIRS += [ +@@ -18,8 +24,6 @@ DIRS += [ 'qcms', 'gl', 'layers', @@ -167,91 +117,155 @@ index 519aa46..6929751 100644 'thebes', 'ipc', diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py -index 28fa6b5..240dced 100755 +index e06ae3457a47..93faa61594a3 100755 --- gfx/skia/generate_mozbuild.py +++ gfx/skia/generate_mozbuild.py -@@ -134,6 +134,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_ +@@ -143,6 +143,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']: '-Wno-unused-private-field', ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/skia/moz.build gfx/skia/moz.build -index 1d0c2f9..adb8941 100644 +index 2118677ca3a8..e4978b413784 100644 --- gfx/skia/moz.build +++ gfx/skia/moz.build -@@ -752,6 +752,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_ +@@ -753,6 +753,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']: '-Wno-unused-private-field', ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/thebes/moz.build gfx/thebes/moz.build -index d5852fa..aeeab25 100644 +index dee9b7bfa2cb..bd801f3a468e 100644 --- gfx/thebes/moz.build +++ gfx/thebes/moz.build -@@ -306,7 +306,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk +@@ -273,7 +273,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'): LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] -DEFINES['GRAPHITE2_STATIC'] = True -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] -+ -+if CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: + CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] +else: + DEFINES['GRAPHITE2_STATIC'] = True ++ ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] if CONFIG['CLANG_CXX']: # Suppress warnings from Skia header files. -index d736943..41a931f 100644 +diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build +index cb1233c56d7e..06fb1f9f174b 100644 --- intl/unicharutil/util/moz.build +++ intl/unicharutil/util/moz.build -@@ -44,4 +44,7 @@ if CONFIG['ENABLE_INTL_API']: - LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES'] +@@ -40,4 +40,7 @@ if CONFIG['_MSC_VER']: + if CONFIG['ENABLE_INTL_API']: USE_LIBS += ['icu'] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + DIST_INSTALL = True diff --git netwerk/dns/moz.build netwerk/dns/moz.build -index 0b0717a..2e665c9 100644 +index 79c26e3e7001..c4d93bc5f7dc 100644 --- netwerk/dns/moz.build +++ netwerk/dns/moz.build -@@ -66,6 +66,9 @@ LOCAL_INCLUDES += [ +@@ -69,6 +69,9 @@ LOCAL_INCLUDES += [ '/netwerk/base', ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19': - LOCAL_INCLUDES += ['%' + '%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']] + if CONFIG['ENABLE_INTL_API']: + DEFINES['IDNA2008'] = True + USE_LIBS += ['icu'] +diff --git old-configure.in old-configure.in +index 95a58b634593..b614eef85c89 100644 +--- old-configure.in ++++ old-configure.in +@@ -4888,6 +4888,27 @@ dnl ======================================================== + AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR) + + dnl ======================================================== ++dnl Check for graphite2 ++dnl ======================================================== ++if test -n "$MOZ_SYSTEM_GRAPHITE2"; then ++ dnl graphite2.pc has bogus version, check manually ++ _SAVE_CFLAGS=$CFLAGS ++ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS" ++ AC_TRY_COMPILE([ #include <graphite2/Font.h> ++ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ ++ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ ++ * 100 + GR2_VERSION_BUGFIX >= \ ++ (major) * 10000 + (minor) * 100 + (bugfix) ) ++ ], [ ++ #if !GR2_VERSION_REQUIRE(1,3,8) ++ #error "Insufficient graphite2 version." ++ #endif ++ ], [], ++ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) ++ CFLAGS=$_SAVE_CFLAGS ++fi ++ ++dnl ======================================================== + dnl Check for pixman and cairo + dnl ======================================================== diff --git toolkit/library/moz.build toolkit/library/moz.build -index 67f0db9..d42137a 100644 +index 24f940e1ed7e..079a575adec3 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build -@@ -231,6 +231,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']: - if not CONFIG['MOZ_TREE_PIXMAN']: - OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS'] +@@ -228,6 +228,12 @@ if CONFIG['MOZ_SYSTEM_JPEG']: + if CONFIG['MOZ_SYSTEM_PNG']: + OS_LIBS += CONFIG['MOZ_PNG_LIBS'] -+if CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: + OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS'] + -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] + - if CONFIG['MOZ_OSS']: - OS_LIBS += CONFIG['MOZ_OSS_LIBS'] + if CONFIG['MOZ_SYSTEM_HUNSPELL']: + OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] + +diff --git toolkit/moz.configure toolkit/moz.configure +index 9297e4d6f501..d8e273887e4b 100644 +--- toolkit/moz.configure ++++ toolkit/moz.configure +@@ -343,6 +343,26 @@ add_old_configure_assignment('FT2_LIBS', + add_old_configure_assignment('FT2_CFLAGS', + delayed_getattr(ft2_info, 'cflags')) ++# Graphite2 ++# ============================================================== ++option('--with-system-graphite2', ++ help="Use system graphite2 (located with pkgconfig)") ++ ++system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2', ++ when='--with-system-graphite2') ++ ++set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True)) ++ ++# HarfBuzz ++# ============================================================== ++option('--with-system-harfbuzz', ++ help="Use system harfbuzz (located with pkgconfig)") ++ ++system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.1', ++ when='--with-system-harfbuzz') ++ ++set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) ++ + # Apple platform decoder support + # ============================================================== + @depends(toolkit) diff --git a/www/firefox-esr/files/patch-bug981348 b/www/firefox-esr/files/patch-bug981348 index e4b7edfd9b03..0c2ffea1ef7b 100644 --- a/www/firefox-esr/files/patch-bug981348 +++ b/www/firefox-esr/files/patch-bug981348 @@ -1,8 +1,28 @@ diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp -index 4b21361..cb3be32 100644 +index 88bba9baa401..99f240952dfe 100644 --- dom/system/OSFileConstants.cpp +++ dom/system/OSFileConstants.cpp -@@ -662,7 +662,7 @@ +@@ -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 gLibcProperties[] = { "OSFILE_SIZEOF_STATVFS", JS::Int32Value(sizeof (struct statvfs)) }, @@ -12,7 +32,7 @@ index 4b21361..cb3be32 100644 #endif // defined(XP_UNIX) diff --git toolkit/components/osfile/modules/osfile_unix_back.jsm toolkit/components/osfile/modules/osfile_unix_back.jsm -index b59fca4..0cf220b 100644 +index a028dda7d5ec..f5c632e3d7e5 100644 --- toolkit/components/osfile/modules/osfile_unix_back.jsm +++ toolkit/components/osfile/modules/osfile_unix_back.jsm @@ -228,8 +228,8 @@ @@ -27,11 +47,11 @@ index b59fca4..0cf220b 100644 "f_bavail", Type.fsblkcnt_t.implementation); diff --git toolkit/components/osfile/modules/osfile_unix_front.jsm toolkit/components/osfile/modules/osfile_unix_front.jsm -index 99e5e9b..de642c5 100644 +index bd60d4d8419c..a8cd6b546b0e 100644 --- toolkit/components/osfile/modules/osfile_unix_front.jsm +++ toolkit/components/osfile/modules/osfile_unix_front.jsm -@@ -373,7 +373,7 @@ - throw_on_negative("statvfs", UnixFile.statvfs(sourcePath, fileSystemInfoPtr)); +@@ -399,7 +399,7 @@ + throw_on_negative("statvfs", (UnixFile.statvfs || UnixFile.statfs)(sourcePath, fileSystemInfoPtr)); let bytes = new Type.uint64_t.implementation( - fileSystemInfo.f_bsize * fileSystemInfo.f_bavail); diff --git a/www/firefox-esr/files/patch-env-api-keys b/www/firefox-esr/files/patch-env-api-keys new file mode 100644 index 000000000000..e20b012f27cf --- /dev/null +++ b/www/firefox-esr/files/patch-env-api-keys @@ -0,0 +1,21 @@ +# Accept API keys from environment like before bug 1294585 + +--- build/moz.configure/keyfiles.configure ++++ build/moz.configure/keyfiles.configure +@@ -18,6 +18,7 @@ def keyfile(desc, help=None, callback=lambda x: x): + @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=lambda x: x): + 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-esr/files/patch-ijg-libjpeg b/www/firefox-esr/files/patch-ijg-libjpeg index 074297aaa618..b6788adc0f84 100644 --- a/www/firefox-esr/files/patch-ijg-libjpeg +++ b/www/firefox-esr/files/patch-ijg-libjpeg @@ -1,10 +1,10 @@ # Partially revert bug 791305 to allow building with system IJG jpeg library -diff --git configure.in configure.in +diff --git old-configure.in configure.in index f0aeb5d..1c01010 100644 ---- configure.in -+++ configure.in -@@ -4027,11 +4027,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then +--- old-configure.in ++++ old-configure.in +@@ -4027,11 +4027,7 @@ if test "$MOZ_SYSTEM_JPEG" = 1; then #include <jpeglib.h> ], [ #if JPEG_LIB_VERSION < $MOZJPEG #error "Insufficient JPEG library version ($MOZJPEG required)." @@ -14,7 +14,7 @@ index f0aeb5d..1c01010 100644 - #endif - ], + #endif ], - MOZ_NATIVE_JPEG=1, + MOZ_SYSTEM_JPEG=1, AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg])) fi diff --git image/decoders/nsJPEGDecoder.cpp image/decoders/nsJPEGDecoder.cpp diff --git a/www/firefox-esr/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c b/www/firefox-esr/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c deleted file mode 100644 index 69658e277b41..000000000000 --- a/www/firefox-esr/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c +++ /dev/null @@ -1,16 +0,0 @@ ---- media/mtransport/third_party/nICEr/src/util/mbslen.c~ -+++ media/mtransport/third_party/nICEr/src/util/mbslen.c -@@ -54,6 +54,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - # endif - #endif - -+#ifdef __DragonFly__ -+#include <osreldate.h> -+# if __DragonFly_version > 300502 -+# define HAVE_XLOCALE -+# endif -+#endif -+ - #ifdef HAVE_XLOCALE - #include <xlocale.h> - #endif /* HAVE_XLOCALE */ diff --git a/www/firefox-esr/files/patch-modules-libpref-init-all.js b/www/firefox-esr/files/patch-modules-libpref-init-all.js deleted file mode 100644 index 660b538c62a9..000000000000 --- a/www/firefox-esr/files/patch-modules-libpref-init-all.js +++ /dev/null @@ -1,15 +0,0 @@ ---- modules/libpref/init/all.js.orig 2015-08-06 22:39:34 UTC -+++ modules/libpref/init/all.js -@@ -4052,7 +4052,12 @@ pref("layers.max-active", -1); - pref("layers.tiles.adjust", true); - - // Set the default values, and then override per-platform as needed -+#ifdef MOZ_TREE_CAIRO - pref("layers.offmainthreadcomposition.enabled", true); -+#else -+// Disable for system cairo on suspicion of causing random crashes -+pref("layers.offmainthreadcomposition.enabled", false); -+#endif - // Compositor target frame rate. NOTE: If vsync is enabled the compositor - // frame rate will still be capped. - // -1 -> default (match layout.frame_rate or 60 FPS) diff --git a/www/firefox-esr/files/patch-sample-type b/www/firefox-esr/files/patch-sample-type index 980bde629d2a..cf460a0f84dc 100644 --- a/www/firefox-esr/files/patch-sample-type +++ b/www/firefox-esr/files/patch-sample-type @@ -1,7 +1,7 @@ # Let ports handle default sample type ---- configure.in~ -+++ configure.in +--- old-configure.in~ ++++ old-configure.in @@ -5144,7 +5144,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 diff --git a/www/firefox-esr/files/patch-toolkit_mozapps_installer_packager_mk b/www/firefox-esr/files/patch-toolkit_mozapps_installer_packager_mk deleted file mode 100644 index 42da812a1df5..000000000000 --- a/www/firefox-esr/files/patch-toolkit_mozapps_installer_packager_mk +++ /dev/null @@ -1,13 +0,0 @@ -$OpenBSD: patch-toolkit_mozapps_installer_packager_mk,v 1.11 2012/06/11 15:29:56 landry Exp $ -install headers/idl/sdk libs only if xulrunner ---- toolkit/mozapps/installer/packager.mk.orig Fri Jun 1 14:04:20 2012 -+++ toolkit/mozapps/installer/packager.mk Tue Jun 5 07:55:51 2012 -@@ -127,7 +127,7 @@ endif - $(NSINSTALL) -D $(DESTDIR)$(bindir) - $(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME) - ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir) --ifdef INSTALL_SDK # Here comes the hard part -+ifeq ($(MOZ_APP_NAME),xulrunner) - $(NSINSTALL) -D $(DESTDIR)$(includedir) - (cd $(DIST)/include && tar $(TAR_CREATE_FLAGS) - .) | \ - (cd $(DESTDIR)$(includedir) && tar -xf -) diff --git a/www/firefox-esr/files/patch-z-bug517422 b/www/firefox-esr/files/patch-z-bug517422 index 723900a6a894..e3c4c41fbc6f 100644 --- a/www/firefox-esr/files/patch-z-bug517422 +++ b/www/firefox-esr/files/patch-z-bug517422 @@ -1,220 +1,120 @@ # Allow more config/external/ libs built against system-wide version. +diff --git build/moz.configure/old.configure build/moz.configure/old.configure +index d0fe7accffe6..c46bdd023225 100644 +--- build/moz.configure/old.configure ++++ build/moz.configure/old.configure +@@ -288,7 +288,12 @@ def old_configure_options(*options): + '--with-system-libvpx', + '--with-system-nspr', + '--with-system-nss', ++ '--with-system-ogg', + '--with-system-png', ++ '--with-system-soundtouch', ++ '--with-system-theora', ++ '--with-system-tremor', ++ '--with-system-vorbis', + '--with-system-zlib', + '--with-thumb', + '--with-thumb-interwork', diff --git config/Makefile.in config/Makefile.in -index 5383399..0410004 100644 +index a6206bb0ff30..f20987c61754 100644 --- config/Makefile.in +++ config/Makefile.in -@@ -77,6 +77,11 @@ export:: $(export-preqs) - -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ - -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \ - -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \ -+ -DMOZ_NATIVE_OGG=$(MOZ_NATIVE_OGG) \ -+ -DMOZ_NATIVE_THEORA=$(MOZ_NATIVE_THEORA) \ -+ -DMOZ_NATIVE_VORBIS=$(MOZ_NATIVE_VORBIS) \ -+ -DMOZ_NATIVE_TREMOR=$(MOZ_NATIVE_TREMOR) \ -+ -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \ - $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers +@@ -51,6 +51,11 @@ export:: $(export-preqs) + -DMOZ_SYSTEM_LIBEVENT=$(MOZ_SYSTEM_LIBEVENT) \ + -DMOZ_SYSTEM_LIBVPX=$(MOZ_SYSTEM_LIBVPX) \ + -DMOZ_SYSTEM_ICU=$(MOZ_SYSTEM_ICU) \ ++ -DMOZ_SYSTEM_OGG=$(MOZ_SYSTEM_OGG) \ ++ -DMOZ_SYSTEM_THEORA=$(MOZ_SYSTEM_THEORA) \ ++ -DMOZ_SYSTEM_VORBIS=$(MOZ_SYSTEM_VORBIS) \ ++ -DMOZ_SYSTEM_TREMOR=$(MOZ_SYSTEM_TREMOR) \ ++ -DMOZ_SYSTEM_SOUNDTOUCH=$(MOZ_SYSTEM_SOUNDTOUCH) \ + $(srcdir)/system-headers $(srcdir)/stl-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers $(INSTALL) system_wrappers $(DIST) diff --git config/external/moz.build config/external/moz.build -index f67c5c7..eb909ce 100644 +index 029ff8504795..2c3a40caa1ba 100644 --- config/external/moz.build +++ config/external/moz.build -@@ -19,10 +19,16 @@ if CONFIG['MOZ_UPDATER']: - # There's no "native brotli" yet, but probably in the future... +@@ -21,12 +21,21 @@ if CONFIG['MOZ_UPDATER']: external_dirs += ['modules/brotli'] + external_dirs += ['modules/woff2'] -if CONFIG['MOZ_VORBIS']: -+if not CONFIG['MOZ_NATIVE_OGG']: ++if not CONFIG['MOZ_SYSTEM_OGG']: + external_dirs += ['media/libogg'] + -+if not CONFIG['MOZ_NATIVE_THEORA']: -+ external_dirs += ['media/libtheora'] -+ -+if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_SYSTEM_VORBIS']: external_dirs += ['media/libvorbis'] -if CONFIG['MOZ_TREMOR']: -+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_SYSTEM_TREMOR']: external_dirs += ['media/libtremor'] - if CONFIG['MOZ_WEBM']: -@@ -37,15 +46,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ - if not CONFIG['MOZ_NATIVE_PNG']: - external_dirs += ['media/libpng'] - -+if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if not CONFIG['MOZ_SYSTEM_THEORA']: ++ external_dirs += ['media/libtheora'] ++ ++if not CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + external_dirs += ['media/libsoundtouch'] + - external_dirs += [ + if CONFIG['MOZ_WEBM_ENCODER']: + external_dirs += ['media/libmkv'] + +@@ -52,12 +61,9 @@ external_dirs += [ 'media/kiss_fft', 'media/libcubeb', + 'media/libnestegg', - 'media/libogg', 'media/libopus', - 'media/libtheora', 'media/libspeex_resampler', 'media/libstagefright', - 'media/libsoundtouch', + 'media/psshparser' ] - DIRS += ['../../' + i for i in external_dirs] diff --git config/system-headers config/system-headers -index bef567c..9807c29 100644 +index 5ee7f71f9634..13178ac3b3ab 100644 --- config/system-headers +++ config/system-headers -@@ -1364,3 +1363,17 @@ graphite2/Segment.h - harfbuzz/hb-ot.h - harfbuzz/hb.h - #endif -+#if MOZ_NATIVE_OGG==1 +@@ -1348,3 +1348,17 @@ unicode/utypes.h + libutil.h + unwind.h + fenv.h ++#if MOZ_SYSTEM_OGG==1 +ogg/ogg.h +ogg/os_types.h +#endif -+#if MOZ_NATIVE_THEORA==1 ++#if MOZ_SYSTEM_THEORA==1 +theora/theoradec.h +#endif -+#if MOZ_NATIVE_VORBIS==1 ++#if MOZ_SYSTEM_VORBIS==1 +vorbis/codec.h +vorbis/vorbisenc.h +#endif -+#if MOZ_NATIVE_TREMOR==1 ++#if MOZ_SYSTEM_TREMOR==1 +tremor/ivorbiscodec.h +#endif -diff --git configure.in configure.in -index 87db361..7947626 100644 ---- configure.in -+++ configure.in -@@ -5223,6 +5223,111 @@ if test "${ac_cv_c_attribute_aligned}" ! - fi - - dnl ======================================================== -+dnl Check for libogg -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-ogg, -+[ --with-system-ogg Use system libogg (located with pkgconfig)], -+MOZ_NATIVE_OGG=1, -+MOZ_NATIVE_OGG=) -+ -+if test -n "$MOZ_NATIVE_OGG"; then -+ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.2.1) -+ -+ _SAVE_LIBS=$LIBS -+ LIBS="$LIBS $MOZ_OGG_LIBS" -+ AC_CHECK_FUNC(ogg_set_mem_functions, [], -+ [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)]) -+ LIBS=$_SAVE_LIBS -+fi -+ -+AC_SUBST(MOZ_NATIVE_OGG) -+ -+dnl ======================================================== -+dnl Check for libvorbis -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-vorbis, -+[ --with-system-vorbis Use system libvorbis (located with pkgconfig)], -+MOZ_NATIVE_VORBIS=1, -+MOZ_NATIVE_VORBIS=) -+ -+if test -n "$MOZ_NATIVE_VORBIS"; then -+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5) -+fi -+ -+AC_SUBST(MOZ_NATIVE_VORBIS) -+ -+dnl ======================================================== -+dnl Check for integer-only libvorbis aka tremor -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-tremor, -+[ --with-system-tremor Use system libtremor (located with pkgconfig)], -+MOZ_NATIVE_TREMOR=1, -+MOZ_NATIVE_TREMOR=) -+ -+if test -n "$MOZ_NATIVE_TREMOR"; then -+ PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1) -+fi -+ -+AC_SUBST(MOZ_NATIVE_TREMOR) -+ -+dnl ======================================================== -+dnl Check for libtheora -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-theora, -+[ --with-system-theora Use system libtheora (located with pkgconfig)], -+MOZ_NATIVE_THEORA=1, -+MOZ_NATIVE_THEORA=) -+ -+if test -n "$MOZ_NATIVE_THEORA"; then -+ PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2) -+fi -+ -+AC_SUBST(MOZ_NATIVE_THEORA) -+ -+dnl ======================================================== -+dnl Check for libSoundTouch -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-soundtouch, -+[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)], -+MOZ_NATIVE_SOUNDTOUCH=1, -+MOZ_NATIVE_SOUNDTOUCH=) -+ -+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then -+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0) -+ -+ AC_LANG_SAVE -+ AC_LANG_CPLUSPLUS -+ _SAVE_CXXFLAGS=$CXXFLAGS -+ CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS" -+ AC_CACHE_CHECK(for soundtouch sample type, -+ ac_cv_soundtouch_sample_type, -+ [AC_TRY_COMPILE([#include <SoundTouch.h> -+ #ifndef SOUNDTOUCH_INTEGER_SAMPLES -+ #error soundtouch expects float samples -+ #endif], -+ [], -+ [ac_cv_soundtouch_sample_type=short], -+ [ac_cv_soundtouch_sample_type=float])]) -+ CXXFLAGS=$_SAVE_CXXFLAGS -+ AC_LANG_RESTORE -+ -+ if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \ -+ -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then -+ AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.]) -+ fi -+fi -+ -+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then -+ AC_DEFINE(MOZ_NATIVE_SOUNDTOUCH) -+fi -+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH) -+ -+dnl ======================================================== - dnl = Disable VP8 decoder support - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(webm, diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp -index 2127256..1ec09fe 100644 +index 93ecda4319af..ff674c64ea07 100644 --- dom/media/AudioStream.cpp +++ dom/media/AudioStream.cpp -@@ -129,7 +129,9 @@ AudioStream::AudioStream() +@@ -115,7 +115,9 @@ AudioStream::AudioStream(DataSource& aSource) + : mMonitor("AudioStream") + , mChannels(0) , mOutChannels(0) - , mWritten(0) - , mAudioClock(this) -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH , mTimeStretcher(nullptr) +#endif , mDumpFile(nullptr) - , mBytesPerFrame(0) , mState(INITIALIZED) -@@ -152,9 +154,11 @@ AudioStream::~AudioStream() + , mDataSource(aSource) +@@ -130,9 +132,11 @@ AudioStream::~AudioStream() if (mDumpFile) { fclose(mDumpFile); } -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH if (mTimeStretcher) { soundtouch::destroySoundTouchObj(mTimeStretcher); } @@ -222,27 +122,27 @@ index 2127256..1ec09fe 100644 } size_t -@@ -177,7 +181,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked() +@@ -151,7 +155,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked() { mMonitor.AssertCurrentThreadOwns(); if (!mTimeStretcher) { -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH + mTimeStretcher = new soundtouch::SoundTouch(); +#else mTimeStretcher = soundtouch::createSoundTouchObj(); +#endif - mTimeStretcher->setSampleRate(mInRate); + mTimeStretcher->setSampleRate(mAudioClock.GetInputRate()); mTimeStretcher->setChannels(mOutChannels); mTimeStretcher->setPitch(1.0); diff --git dom/media/AudioStream.h dom/media/AudioStream.h -index a552e3e..02b80b1 100644 +index 7dc1f60f95cc..67d402a4117f 100644 --- dom/media/AudioStream.h +++ dom/media/AudioStream.h -@@ -15,7 +15,11 @@ - #include "mozilla/RefPtr.h" +@@ -16,7 +16,11 @@ + #include "mozilla/TimeStamp.h" #include "mozilla/UniquePtr.h" #include "CubebUtils.h" -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH +#include "soundtouch/SoundTouch.h" +#else #include "soundtouch/SoundTouchFactory.h" @@ -250,54 +150,96 @@ index a552e3e..02b80b1 100644 namespace mozilla { -@@ -277,7 +277,11 @@ private: - // Number of frames written to the buffers. - int64_t mWritten; +@@ -287,7 +291,11 @@ private: + uint32_t mChannels; + uint32_t mOutChannels; AudioClock mAudioClock; -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH + nsAutoPtr<soundtouch::SoundTouch> mTimeStretcher; +#else soundtouch::SoundTouch* mTimeStretcher; +#endif - // Stream start time for stream open delay telemetry. - TimeStamp mStartTime; + // Output file for dumping audio + FILE* mDumpFile; diff --git dom/media/moz.build dom/media/moz.build -index 7526cff..e0a0ca0 100644 +index 86b051c58d33..fb6186dce78b 100644 --- dom/media/moz.build +++ dom/media/moz.build -@@ -212,3 +212,18 @@ if CONFIG['ANDROID_VERSION'] > '15': +@@ -308,6 +308,21 @@ if CONFIG['MOZ_WEBRTC']: - CFLAGS += CONFIG['GSTREAMER_CFLAGS'] - CXXFLAGS += CONFIG['GSTREAMER_CFLAGS'] -+ -+if CONFIG['MOZ_NATIVE_OGG']: + DEFINES['MOZILLA_INTERNAL_API'] = True + ++if CONFIG['MOZ_SYSTEM_OGG']: + CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_THEORA']: ++if CONFIG['MOZ_SYSTEM_THEORA']: + CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_SYSTEM_VORBIS']: + CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_SYSTEM_TREMOR']: + CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS'] ++ + if CONFIG['OS_TARGET'] == 'WINNT': + DEFINES['WEBRTC_WIN'] = True + else: +diff --git dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp +index 078f6ea5ef60..c600db067539 100644 +--- dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp ++++ dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp +@@ -11,9 +11,13 @@ + #include "prmem.h" + #include "prlink.h" + ++#ifdef MOZ_SYSTEM_SOUNDTOUCH ++#include "nsXPCOMPrivate.h" // for XUL_DLL ++#else + // We use a known symbol located in lgpllibs to determine its location. + // soundtouch happens to be always included in lgpllibs + #include "soundtouch/SoundTouch.h" ++#endif + + namespace mozilla { + +@@ -50,6 +54,12 @@ FFVPXRuntimeLinker::Init() + + sLinkStatus = LinkStatus_FAILED; + ++#ifdef MOZ_SYSTEM_SOUNDTOUCH ++ // We retrieve the path of the XUL library as this is where mozavcodec and ++ // mozavutil libs are located. ++ char* path = ++ PR_GetLibraryFilePathname(XUL_DLL, (PRFuncPtr)&FFVPXRuntimeLinker::Init); ++#else + // We retrieve the path of the lgpllibs library as this is where mozavcodec + // and mozavutil libs are located. + char* lgpllibsname = PR_GetLibraryName(nullptr, "lgpllibs"); +@@ -60,6 +70,7 @@ FFVPXRuntimeLinker::Init() + PR_GetLibraryFilePathname(lgpllibsname, + (PRFuncPtr)&soundtouch::SoundTouch::getVersionId); + PR_FreeLibraryName(lgpllibsname); ++#endif + if (!path) { + return false; + } diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA -index 0833e4d..7ece97b 100644 +index 6213fdc7770c..ada799916a17 100644 --- media/libogg/README_MOZILLA +++ media/libogg/README_MOZILLA -@@ -6,3 +6,6 @@ The svn revision number used was r17287. +@@ -6,3 +6,6 @@ package downloaded from xiph.org and copied using the update.sh script. The int-types.patch address a bug that config_types.h generated from Linux platform can't be used on OpenSolaris directly see Mozilla bug 449754 + +The in-tree copy may be omitted during build by --with-system-ogg. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libsoundtouch/README_MOZILLA media/libsoundtouch/README_MOZILLA -index bfd4b1a..15b158d 100644 +index dc0dbe8f6886..ea73b55e3e39 100644 --- media/libsoundtouch/README_MOZILLA +++ media/libsoundtouch/README_MOZILLA @@ -6,3 +6,5 @@ The whole library is not used, only the relevant files are imported in the tree, @@ -305,23 +247,23 @@ index bfd4b1a..15b158d 100644 the patch `moz-libsoundtouch.patch`. We also use a custom soundtouch_config.h. +The in-tree copy may be omitted during build by --with-system-soundtouch. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libsoundtouch/src/soundtouch_perms.h media/libsoundtouch/src/soundtouch_perms.h -index 0af2fe6..d80c145 100644 +index 0af2fe618311..10973564e7a4 100644 --- media/libsoundtouch/src/soundtouch_perms.h +++ media/libsoundtouch/src/soundtouch_perms.h @@ -12,7 +12,9 @@ #pragma GCC visibility push(default) #include "SoundTouch.h" -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH #include "SoundTouchFactory.h" +#endif #pragma GCC visibility pop #endif // MOZILLA_SOUNDTOUCH_PERMS_H diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA -index d48dbfa..f08a2ed 100644 +index d48dbfa6f63d..6f30f250220e 100644 --- media/libtheora/README_MOZILLA +++ media/libtheora/README_MOZILLA @@ -3,3 +3,6 @@ using the update.sh script. The changes made were those applied by update.sh, @@ -330,23 +272,23 @@ index d48dbfa..f08a2ed 100644 The subversion revision used was r17578. + +The in-tree copy may be omitted during build by --with-system-theora. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libtheora/moz.build media/libtheora/moz.build -index 14265b1..3069e99 100644 +index c7f85eebff95..aae7b814adb5 100644 --- media/libtheora/moz.build +++ media/libtheora/moz.build -@@ -21,6 +21,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']: +@@ -21,6 +21,9 @@ FINAL_LIBRARY = 'gkmedias' # The encoder is currently not included. DEFINES['THEORA_DISABLE_ENCODE'] = True -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] + # Suppress warnings in third-party code. - if CONFIG['GNU_CC']: + if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']: CFLAGS += ['-Wno-type-limits'] diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA -index ee67b53..3f34a09 100644 +index ee67b53a05c5..81c971773d55 100644 --- media/libtremor/README_MOZILLA +++ media/libtremor/README_MOZILLA @@ -5,3 +5,6 @@ Makefile.in files for the Mozilla build system. @@ -355,80 +297,196 @@ index ee67b53..3f34a09 100644 The subversion revision used was r17547. + +The in-tree copy may be omitted during build by --with-system-tremor. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libtremor/moz.build media/libtremor/moz.build -index 31831ba..a03d576 100644 +index 83afc8e37c64..71ef159da3d7 100644 --- media/libtremor/moz.build +++ media/libtremor/moz.build -@@ -6,3 +6,5 @@ +@@ -9,3 +9,5 @@ with Files('*'): DIRS += ['include/tremor', 'lib'] -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] diff --git media/libvorbis/README_MOZILLA media/libvorbis/README_MOZILLA -index 7c7454c..55baedd 100644 +index 1211ac074b33..eb31084aed25 100644 --- media/libvorbis/README_MOZILLA +++ media/libvorbis/README_MOZILLA -@@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.4@19059 +@@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.5@19464 Some files are renamed during the copy to prevent clashes with object file names with other Mozilla libraries. + +The in-tree copy may be omitted during build by --with-system-vorbis. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libvorbis/moz.build media/libvorbis/moz.build -index 919b99e..cc776f7 100644 +index adf393782cc9..923b76231107 100644 --- media/libvorbis/moz.build +++ media/libvorbis/moz.build -@@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias' +@@ -56,3 +56,6 @@ FINAL_LIBRARY = 'gkmedias' # Suppress warnings in third-party code. if CONFIG['GNU_CC']: CFLAGS += ['-Wno-uninitialized'] + -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] +diff --git old-configure.in old-configure.in +index b614eef85c89..85f9099dba4d 100644 +--- old-configure.in ++++ old-configure.in +@@ -2941,6 +2941,111 @@ if test -n "$MOZ_OMX_PLUGIN"; then + fi + fi + ++dnl ======================================================== ++dnl Check for libogg ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-ogg, ++[ --with-system-ogg Use system libogg (located with pkgconfig)], ++MOZ_SYSTEM_OGG=1, ++MOZ_SYSTEM_OGG=) ++ ++if test -n "$MOZ_SYSTEM_OGG"; then ++ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.3.0) ++ ++ _SAVE_LIBS=$LIBS ++ LIBS="$LIBS $MOZ_OGG_LIBS" ++ AC_CHECK_FUNC(ogg_set_mem_functions, [], ++ [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)]) ++ LIBS=$_SAVE_LIBS ++fi ++ ++AC_SUBST(MOZ_SYSTEM_OGG) ++ ++dnl ======================================================== ++dnl Check for libvorbis ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-vorbis, ++[ --with-system-vorbis Use system libvorbis (located with pkgconfig)], ++MOZ_SYSTEM_VORBIS=1, ++MOZ_SYSTEM_VORBIS=) ++ ++if test -n "$MOZ_SYSTEM_VORBIS"; then ++ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5) ++fi ++ ++AC_SUBST(MOZ_SYSTEM_VORBIS) ++ ++dnl ======================================================== ++dnl Check for integer-only libvorbis aka tremor ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-tremor, ++[ --with-system-tremor Use system libtremor (located with pkgconfig)], ++MOZ_SYSTEM_TREMOR=1, ++MOZ_SYSTEM_TREMOR=) ++ ++if test -n "$MOZ_SYSTEM_TREMOR"; then ++ PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1) ++fi ++ ++AC_SUBST(MOZ_SYSTEM_TREMOR) ++ ++dnl ======================================================== ++dnl Check for libtheora ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-theora, ++[ --with-system-theora Use system libtheora (located with pkgconfig)], ++MOZ_SYSTEM_THEORA=1, ++MOZ_SYSTEM_THEORA=) ++ ++if test -n "$MOZ_SYSTEM_THEORA"; then ++ PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2) ++fi ++ ++AC_SUBST(MOZ_SYSTEM_THEORA) ++ ++dnl ======================================================== ++dnl Check for libSoundTouch ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-soundtouch, ++[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)], ++MOZ_SYSTEM_SOUNDTOUCH=1, ++MOZ_SYSTEM_SOUNDTOUCH=) ++ ++if test -n "$MOZ_SYSTEM_SOUNDTOUCH"; then ++ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0) ++ ++ AC_LANG_SAVE ++ AC_LANG_CPLUSPLUS ++ _SAVE_CXXFLAGS=$CXXFLAGS ++ CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS" ++ AC_CACHE_CHECK(for soundtouch sample type, ++ ac_cv_soundtouch_sample_type, ++ [AC_TRY_COMPILE([#include <SoundTouch.h> ++ #ifndef SOUNDTOUCH_INTEGER_SAMPLES ++ #error soundtouch expects float samples ++ #endif], ++ [], ++ [ac_cv_soundtouch_sample_type=short], ++ [ac_cv_soundtouch_sample_type=float])]) ++ CXXFLAGS=$_SAVE_CXXFLAGS ++ AC_LANG_RESTORE ++ ++ if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \ ++ -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then ++ AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.]) ++ fi ++fi ++ ++if test -n "$MOZ_SYSTEM_SOUNDTOUCH"; then ++ AC_DEFINE(MOZ_SYSTEM_SOUNDTOUCH) ++fi ++AC_SUBST(MOZ_SYSTEM_SOUNDTOUCH) ++ + dnl system libvpx Support + dnl ======================================================== + MOZ_ARG_WITH_BOOL(system-libvpx, diff --git toolkit/library/moz.build toolkit/library/moz.build -index d42137a..695e75a8 100644 +index 079a575adec3..514d901195de 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build -@@ -178,6 +178,21 @@ if CONFIG['MOZ_NATIVE_PNG']: - if CONFIG['MOZ_NATIVE_HUNSPELL']: +@@ -237,6 +237,21 @@ if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + if CONFIG['MOZ_SYSTEM_HUNSPELL']: OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + OS_LIBS += CONFIG['MOZ_OGG_LIBS'] + -+if CONFIG['MOZ_NATIVE_THEORA']: ++if CONFIG['MOZ_SYSTEM_THEORA']: + OS_LIBS += CONFIG['MOZ_THEORA_LIBS'] + -+if CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_SYSTEM_VORBIS']: + OS_LIBS += CONFIG['MOZ_VORBIS_LIBS'] + -+if CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_SYSTEM_TREMOR']: + OS_LIBS += CONFIG['MOZ_TREMOR_LIBS'] + -+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS'] + - if CONFIG['MOZ_NATIVE_LIBEVENT']: + if CONFIG['MOZ_SYSTEM_LIBEVENT']: OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS'] diff --git xpcom/build/XPCOMInit.cpp xpcom/build/XPCOMInit.cpp -index 2cf281e..6d7af0e 100644 +index c083ab4bc4f3..62b917043a2c 100644 --- xpcom/build/XPCOMInit.cpp +++ xpcom/build/XPCOMInit.cpp -@@ -138,7 +138,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**); - #include "mozilla/VisualEventTracer.h" - #endif +@@ -154,7 +154,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**); + + #include "mozilla/ipc/GeckoChildProcessHost.h" +#ifndef MOZ_OGG_NO_MEM_REPORTING #include "ogg/ogg.h" +#endif #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) - #include "vpx_mem/vpx_mem.h" - #endif -@@ -651,11 +653,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult, + #if defined(HAVE_STDINT_H) + // mozilla-config.h defines HAVE_STDINT_H, and then it's defined *again* in +@@ -664,11 +666,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult, // this oddness. mozilla::SetICUMemoryFunctions(); |