summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjbeich <jbeich@FreeBSD.org>2017-04-20 01:47:46 +0000
committerjbeich <jbeich@FreeBSD.org>2017-04-20 01:47:46 +0000
commit313ba328deb3fa496487c55f31f71732d169c938 (patch)
tree13e5025ab339910b7021c2d66a0d0259723df3fa
parent01b66ca4f738b4de85e4b6566677aaece19ee8e3 (diff)
downloadFreeBSD-ports-313ba328deb3fa496487c55f31f71732d169c938.zip
FreeBSD-ports-313ba328deb3fa496487c55f31f71732d169c938.tar.gz
MFH: r438316 r438317 r438462 r438814
www/firefox-esr: update to 52.1.0 Changes: https://www.mozilla.org/firefox/52.1.0/releasenotes/ Security: 5e0a038a-ca30-416d-a2f5-38cbf5e7df33 Approved by: ports-secteam (junovitch)
-rw-r--r--Mk/Uses/gecko.mk6
-rw-r--r--www/firefox-esr-i18n/Makefile4
-rw-r--r--www/firefox-esr-i18n/Makefile.lang5
-rw-r--r--www/firefox-esr-i18n/Makefile.option1
-rw-r--r--www/firefox-esr-i18n/distinfo360
-rw-r--r--www/firefox-esr/Makefile25
-rw-r--r--www/firefox-esr/distinfo6
-rw-r--r--www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp15
-rw-r--r--www/firefox-esr/files/patch-bug101388269
-rw-r--r--www/firefox-esr/files/patch-bug1021761108
-rw-r--r--www/firefox-esr/files/patch-bug1130155179
-rw-r--r--www/firefox-esr/files/patch-bug115315113
-rw-r--r--www/firefox-esr/files/patch-bug115317940
-rw-r--r--www/firefox-esr/files/patch-bug1232150280
-rw-r--r--www/firefox-esr/files/patch-bug123327536
-rw-r--r--www/firefox-esr/files/patch-bug124507674
-rw-r--r--www/firefox-esr/files/patch-bug125224644
-rw-r--r--www/firefox-esr/files/patch-bug125794713
-rw-r--r--www/firefox-esr/files/patch-bug126881650
-rw-r--r--www/firefox-esr/files/patch-bug1269171258
-rw-r--r--www/firefox-esr/files/patch-bug127886138
-rw-r--r--www/firefox-esr/files/patch-bug128858767
-rw-r--r--www/firefox-esr/files/patch-bug132062139
-rw-r--r--www/firefox-esr/files/patch-bug132099143
-rw-r--r--www/firefox-esr/files/patch-bug1329520146
-rw-r--r--www/firefox-esr/files/patch-bug133679121
-rw-r--r--www/firefox-esr/files/patch-bug75736658
-rw-r--r--www/firefox-esr/files/patch-bug82698524
-rw-r--r--www/firefox-esr/files/patch-bug847568264
-rw-r--r--www/firefox-esr/files/patch-bug98134832
-rw-r--r--www/firefox-esr/files/patch-env-api-keys21
-rw-r--r--www/firefox-esr/files/patch-ijg-libjpeg10
-rw-r--r--www/firefox-esr/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c16
-rw-r--r--www/firefox-esr/files/patch-modules-libpref-init-all.js15
-rw-r--r--www/firefox-esr/files/patch-sample-type4
-rw-r--r--www/firefox-esr/files/patch-z-bug517422506
36 files changed, 818 insertions, 2072 deletions
diff --git a/Mk/Uses/gecko.mk b/Mk/Uses/gecko.mk
index 54ea673..46cc66c 100644
--- a/Mk/Uses/gecko.mk
+++ b/Mk/Uses/gecko.mk
@@ -36,12 +36,12 @@ RUN_DEPENDS+= libxul>=45:www/libxul
.elif ${gecko_ARGS:Mfirefox}
-_GECKO_DEFAULT_VERSION= 45
-_GECKO_VERSIONS= 45 53
+_GECKO_DEFAULT_VERSION= 52
+_GECKO_VERSIONS= 52 53
_GECKO_TYPE= firefox
# Dependence lines for different Firefox versions
-45_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr
+52_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr
53_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox
.if exists(${LOCALBASE}/bin/firefox)
diff --git a/www/firefox-esr-i18n/Makefile b/www/firefox-esr-i18n/Makefile
index 6d2db19..85d47e1 100644
--- a/www/firefox-esr-i18n/Makefile
+++ b/www/firefox-esr-i18n/Makefile
@@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= firefox
-PORTVERSION= 45.8.0
+PORTVERSION= 52.1.0
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}esr/linux-i686/xpi \
- MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build2/linux-i686/xpi
+ MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build3/linux-i686/xpi
PKGNAMEPREFIX=
PKGNAMESUFFIX= -esr-i18n
DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/}
diff --git a/www/firefox-esr-i18n/Makefile.lang b/www/firefox-esr-i18n/Makefile.lang
index 79a8cfa..e582b54 100644
--- a/www/firefox-esr-i18n/Makefile.lang
+++ b/www/firefox-esr-i18n/Makefile.lang
@@ -1,7 +1,7 @@
# Created by: Koji Yokota <yokota@res.otaru-uc.ac.jp>
# $FreeBSD$
-FIREFOX_I18N_ALL_= ach af an ar as ast az be bg bn-BD bn-IN br bs ca cs \
+FIREFOX_I18N_ALL_= ach af an ar as ast az bg bn-BD bn-IN br bs ca cs \
cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL \
es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn \
gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km \
@@ -33,9 +33,6 @@ FIREFOX_I18N+= ast
.if ${PORT_OPTIONS:MLANG_AZ}
FIREFOX_I18N+= az
.endif
-.if ${PORT_OPTIONS:MLANG_BE}
-FIREFOX_I18N+= be
-.endif
.if ${PORT_OPTIONS:MLANG_BG}
FIREFOX_I18N+= bg
.endif
diff --git a/www/firefox-esr-i18n/Makefile.option b/www/firefox-esr-i18n/Makefile.option
index 6df5c36..2fbbeef 100644
--- a/www/firefox-esr-i18n/Makefile.option
+++ b/www/firefox-esr-i18n/Makefile.option
@@ -9,7 +9,6 @@ OPTIONS_DEFINE= LANG_ACH \
LANG_AS \
LANG_AST \
LANG_AZ \
- LANG_BE \
LANG_BG \
LANG_BB \
LANG_BN \
diff --git a/www/firefox-esr-i18n/distinfo b/www/firefox-esr-i18n/distinfo
index 8ea829c..8d8ac2e 100644
--- a/www/firefox-esr-i18n/distinfo
+++ b/www/firefox-esr-i18n/distinfo
@@ -1,181 +1,179 @@
-TIMESTAMP = 1488235265
-SHA256 (xpi/firefox-45.8.0/ach.xpi) = e8337d1951aa8484bfade7a3157529a78a0d6882c4d332e880e1ac1063e028f1
-SIZE (xpi/firefox-45.8.0/ach.xpi) = 426530
-SHA256 (xpi/firefox-45.8.0/af.xpi) = b0d0ff680ae288fca3f319fa54a2607f980845c0384e153523b764fcf4d475b4
-SIZE (xpi/firefox-45.8.0/af.xpi) = 439353
-SHA256 (xpi/firefox-45.8.0/an.xpi) = 8897ebf779339512753770d00cafad01e514e8eec6f89e1887cde3c5c5256209
-SIZE (xpi/firefox-45.8.0/an.xpi) = 449036
-SHA256 (xpi/firefox-45.8.0/ar.xpi) = 7a2142e9eee1f9d798070da889301b0750b7c80aaea511fac6dfa38dc1e2e873
-SIZE (xpi/firefox-45.8.0/ar.xpi) = 474961
-SHA256 (xpi/firefox-45.8.0/as.xpi) = 58a788699e8f2930085b72edbfa03939e82f170258db92bdc7d8b44a4ec695e6
-SIZE (xpi/firefox-45.8.0/as.xpi) = 483096
-SHA256 (xpi/firefox-45.8.0/ast.xpi) = b0dabf6bd67b1bece44728ad600c919bfa0498bc593228b5a2ca46ad0574c7a5
-SIZE (xpi/firefox-45.8.0/ast.xpi) = 419250
-SHA256 (xpi/firefox-45.8.0/az.xpi) = e794b077c1a3e1d0c560dc95f69dcb90a03168032f34ab7822eb44c31ac5782a
-SIZE (xpi/firefox-45.8.0/az.xpi) = 464018
-SHA256 (xpi/firefox-45.8.0/be.xpi) = 42c9a3eaf47d5dc59a137b756f80bd8ee79771825f63c8edfdd8366e0a95b63b
-SIZE (xpi/firefox-45.8.0/be.xpi) = 442619
-SHA256 (xpi/firefox-45.8.0/bg.xpi) = 5972247e018f6b7165f5f2349a8693475aa046a0fbabd829a4b16d83170be637
-SIZE (xpi/firefox-45.8.0/bg.xpi) = 460809
-SHA256 (xpi/firefox-45.8.0/bn-BD.xpi) = 2d8097d6bc4632a092cf93967998bb76323051cbeb54e8b448d51105dba2fddb
-SIZE (xpi/firefox-45.8.0/bn-BD.xpi) = 515643
-SHA256 (xpi/firefox-45.8.0/bn-IN.xpi) = 9b9c18088bb7b93bfb305b7beb86d097372bddf2e2cf1b6a9bea3915f6553a9f
-SIZE (xpi/firefox-45.8.0/bn-IN.xpi) = 494076
-SHA256 (xpi/firefox-45.8.0/br.xpi) = 907414ac6a4edd0aece6e855e5fcade6d95fb98bb838c9dbf5c6a7ff22ea2e8e
-SIZE (xpi/firefox-45.8.0/br.xpi) = 436390
-SHA256 (xpi/firefox-45.8.0/bs.xpi) = 0a7547b87ff3b16977f12568fee06d50936e33cb60a343cde84ab8f4dcbf17eb
-SIZE (xpi/firefox-45.8.0/bs.xpi) = 442998
-SHA256 (xpi/firefox-45.8.0/ca.xpi) = c42c7517e9f16411407d437742c192538fa8996b460e697c455e62069d9e89e7
-SIZE (xpi/firefox-45.8.0/ca.xpi) = 436832
-SHA256 (xpi/firefox-45.8.0/cs.xpi) = 18d5650dd4eaef469228a6fa1a67363b828b17ada1ad861d51db41d9096f51fd
-SIZE (xpi/firefox-45.8.0/cs.xpi) = 443482
-SHA256 (xpi/firefox-45.8.0/cy.xpi) = 9b7882133ec2f3b87c6c89c3069d74093c971a8369cbec15a679a75cf6703ad5
-SIZE (xpi/firefox-45.8.0/cy.xpi) = 438907
-SHA256 (xpi/firefox-45.8.0/da.xpi) = 3cb7160d1197f4378f2d9e5a292d69db020f4de33fabf99f772ff1d7a014575f
-SIZE (xpi/firefox-45.8.0/da.xpi) = 430078
-SHA256 (xpi/firefox-45.8.0/de.xpi) = 5fbbe236fe80d34c0791fcd8b7492c18ca19bc0b1b093c3888d5ed191739b83f
-SIZE (xpi/firefox-45.8.0/de.xpi) = 445482
-SHA256 (xpi/firefox-45.8.0/dsb.xpi) = b133cfb5d4b3556a7a7ed1cae65bd2cd0c271ea7d192c737c3316d1c9c872cda
-SIZE (xpi/firefox-45.8.0/dsb.xpi) = 463791
-SHA256 (xpi/firefox-45.8.0/el.xpi) = 440468020d2babb17f28b13e781adf6e94829dde7474edacac9a8b9b0c0a5037
-SIZE (xpi/firefox-45.8.0/el.xpi) = 470867
-SHA256 (xpi/firefox-45.8.0/en-GB.xpi) = 7716fb13674dcff52cfa2d72ca3901e9d72a33f8c3af051bce89739daecf1f56
-SIZE (xpi/firefox-45.8.0/en-GB.xpi) = 423871
-SHA256 (xpi/firefox-45.8.0/en-US.xpi) = 615da888226f0b8052887af96c8269d5af642a203c08a18a450a20756baf8580
-SIZE (xpi/firefox-45.8.0/en-US.xpi) = 425461
-SHA256 (xpi/firefox-45.8.0/en-ZA.xpi) = a9a1cf1e1e3cd9a89698a8b1da8fa868f43216783325974ef966b0b9f7ad17c2
-SIZE (xpi/firefox-45.8.0/en-ZA.xpi) = 420776
-SHA256 (xpi/firefox-45.8.0/eo.xpi) = 61bae1e4100b1132eb534fd68e3889f5f683e65af7fd6165765a2c0203a92135
-SIZE (xpi/firefox-45.8.0/eo.xpi) = 440960
-SHA256 (xpi/firefox-45.8.0/es-AR.xpi) = 1a87cf2b1e1f78c8b6ebf6bc5d6e659c9cec002e47f2db5cd8b0b49b7d0ec87f
-SIZE (xpi/firefox-45.8.0/es-AR.xpi) = 441482
-SHA256 (xpi/firefox-45.8.0/es-CL.xpi) = e05a6f9dcf53e32e8ee83e7350dbb6f0f1570ab0bb460fca5f7fbc884216cce9
-SIZE (xpi/firefox-45.8.0/es-CL.xpi) = 368763
-SHA256 (xpi/firefox-45.8.0/es-ES.xpi) = 829634f48d92d17c106bfdb58c054793b6016e61354d83e1c16f6c7cfee7a5a6
-SIZE (xpi/firefox-45.8.0/es-ES.xpi) = 353716
-SHA256 (xpi/firefox-45.8.0/es-MX.xpi) = 878fc31f44841162b748828a33cf0d5e906e0bff5bcf0295d1392395dae3e46d
-SIZE (xpi/firefox-45.8.0/es-MX.xpi) = 449395
-SHA256 (xpi/firefox-45.8.0/et.xpi) = 400df3e8d025e106ff6217647bb9be03b75befa6446ef853b8638416665fde14
-SIZE (xpi/firefox-45.8.0/et.xpi) = 433352
-SHA256 (xpi/firefox-45.8.0/eu.xpi) = 650f66dd10372666747891e8ea4ce9a4bc749e9586b69e972517c2ae4a2c9fcd
-SIZE (xpi/firefox-45.8.0/eu.xpi) = 441357
-SHA256 (xpi/firefox-45.8.0/fa.xpi) = 09d367036bde6791f39dbe8c33bb6f27c4de2c4c5378129e4eb61ce2635e3d25
-SIZE (xpi/firefox-45.8.0/fa.xpi) = 491941
-SHA256 (xpi/firefox-45.8.0/ff.xpi) = a60f6c1d1ed52e26b2f7dff4aeedfbb986d0d48bbeb031ea5d35dae3dc4e3729
-SIZE (xpi/firefox-45.8.0/ff.xpi) = 441499
-SHA256 (xpi/firefox-45.8.0/fi.xpi) = ddfb255418d7592bcef68cae8897fc18fe5914829c7502d0ff92354fa3cb8aef
-SIZE (xpi/firefox-45.8.0/fi.xpi) = 438347
-SHA256 (xpi/firefox-45.8.0/fr.xpi) = 1ef78dde93358f09dcb596905669409f3b072a58dcc7fedc9187a64ff2dd7232
-SIZE (xpi/firefox-45.8.0/fr.xpi) = 450037
-SHA256 (xpi/firefox-45.8.0/fy-NL.xpi) = 6170e0272b70dd9cbd042d8521b154f87a39049ab4186c57f4ff01a35b240cb8
-SIZE (xpi/firefox-45.8.0/fy-NL.xpi) = 447778
-SHA256 (xpi/firefox-45.8.0/ga-IE.xpi) = f1e8faf6df095894c5b615caa0df6f476cadfa68dc5f45dea7136c2dea323975
-SIZE (xpi/firefox-45.8.0/ga-IE.xpi) = 460055
-SHA256 (xpi/firefox-45.8.0/gd.xpi) = a11c18d575fd3e572f7d3ee4a081516dab34390127387c73f524dc705a8c8c42
-SIZE (xpi/firefox-45.8.0/gd.xpi) = 449711
-SHA256 (xpi/firefox-45.8.0/gl.xpi) = b8fb8d3c132d1f5d56bc6b3c24b6c285b9ada68e4c5760bf3356974969d7f8c4
-SIZE (xpi/firefox-45.8.0/gl.xpi) = 434804
-SHA256 (xpi/firefox-45.8.0/gn.xpi) = d29c7b1c8193ed6194daabb57603ef67a0123a69c25be551736bff2268abb19d
-SIZE (xpi/firefox-45.8.0/gn.xpi) = 460649
-SHA256 (xpi/firefox-45.8.0/gu-IN.xpi) = cb21847120c5c9bb389cf1f94b353d3b448b76296a3882104c516ede2005db9a
-SIZE (xpi/firefox-45.8.0/gu-IN.xpi) = 472566
-SHA256 (xpi/firefox-45.8.0/he.xpi) = 865ecbbf980f14bd5d3341fff508c9af3c30130ebe31a78b1b331dec1cf30e6c
-SIZE (xpi/firefox-45.8.0/he.xpi) = 454785
-SHA256 (xpi/firefox-45.8.0/hi-IN.xpi) = a531c8850809b576a5a363b33378f0a21284388317bf5d24a830d01080db810f
-SIZE (xpi/firefox-45.8.0/hi-IN.xpi) = 486991
-SHA256 (xpi/firefox-45.8.0/hr.xpi) = 4e01fcfcac300d47cc7e7763d2ef10fec67bd24b5ac5a8916152910d2521fdd3
-SIZE (xpi/firefox-45.8.0/hr.xpi) = 449068
-SHA256 (xpi/firefox-45.8.0/hsb.xpi) = 7643abcd9e9a4183082300215403f2b7a6483bdc3dded68068b68a5b96e8eae3
-SIZE (xpi/firefox-45.8.0/hsb.xpi) = 461454
-SHA256 (xpi/firefox-45.8.0/hu.xpi) = af5f29ebe544af8d94d584b33b60c0aef2ada90b9832570b763cd4ecc8869428
-SIZE (xpi/firefox-45.8.0/hu.xpi) = 449777
-SHA256 (xpi/firefox-45.8.0/hy-AM.xpi) = 8c3d266ba6dbd0e25d0b24822f88f51daf1796ad72a5f329196f0a85f0c3d1e4
-SIZE (xpi/firefox-45.8.0/hy-AM.xpi) = 500040
-SHA256 (xpi/firefox-45.8.0/id.xpi) = 9d387769e3e1023768f4cf67d81e7f7952d33b6d821ba3f9cb4f41f87cf32727
-SIZE (xpi/firefox-45.8.0/id.xpi) = 427175
-SHA256 (xpi/firefox-45.8.0/is.xpi) = 3e4ce279d99fc0d13f153b03cbc2f65f55f7f5cf19116efb40304f36775d3063
-SIZE (xpi/firefox-45.8.0/is.xpi) = 443209
-SHA256 (xpi/firefox-45.8.0/it.xpi) = 4ef4bf7762f371a600b483c0e1331983a5a61c0060df650f375027f782460e82
-SIZE (xpi/firefox-45.8.0/it.xpi) = 343724
-SHA256 (xpi/firefox-45.8.0/ja.xpi) = c4d19e2ac9b3067cd6fae506544467eac85f5364604a2e973db028f3058ab21d
-SIZE (xpi/firefox-45.8.0/ja.xpi) = 486331
-SHA256 (xpi/firefox-45.8.0/kk.xpi) = b8c6d314679d5cb13c86feca37277c0b8e84762bfc676f216ce2a22eb575b082
-SIZE (xpi/firefox-45.8.0/kk.xpi) = 498895
-SHA256 (xpi/firefox-45.8.0/km.xpi) = d19c3611bd7ac7366eaf7d1d9cb29389542a7900769db01e06e87ca67c1b3800
-SIZE (xpi/firefox-45.8.0/km.xpi) = 504301
-SHA256 (xpi/firefox-45.8.0/kn.xpi) = 233f6358aabc171d80d4b153757400d41e2b412c69acb208e5e0c9ad128cd542
-SIZE (xpi/firefox-45.8.0/kn.xpi) = 495881
-SHA256 (xpi/firefox-45.8.0/ko.xpi) = ab9a9a655b86ffe8fac739ceb72c9e65b5f765dc90964778d9a6d39b7f1e46f5
-SIZE (xpi/firefox-45.8.0/ko.xpi) = 465289
-SHA256 (xpi/firefox-45.8.0/lij.xpi) = 8a695065e6581135a814f1b5ca63f2c73856ec729e2a86bf6074800ff755866a
-SIZE (xpi/firefox-45.8.0/lij.xpi) = 381384
-SHA256 (xpi/firefox-45.8.0/lt.xpi) = 0768f7d2596d33c66fd3d7d9cfeeb1dd91930fa48009c34079227537c436b74f
-SIZE (xpi/firefox-45.8.0/lt.xpi) = 454678
-SHA256 (xpi/firefox-45.8.0/lv.xpi) = ff2ed673affc08ee4b5e65f701c082249990015dc32852e5055048f8a7a803c2
-SIZE (xpi/firefox-45.8.0/lv.xpi) = 445720
-SHA256 (xpi/firefox-45.8.0/mai.xpi) = 0152e459d6d5192f45dc29935309bd42001e6035fef225b4f098b7434f55f5b4
-SIZE (xpi/firefox-45.8.0/mai.xpi) = 492650
-SHA256 (xpi/firefox-45.8.0/mk.xpi) = 4dfb44f42d1f2442f19c8b082c07f96470f9cc5135b6266957ee567436ee4ceb
-SIZE (xpi/firefox-45.8.0/mk.xpi) = 476391
-SHA256 (xpi/firefox-45.8.0/ml.xpi) = c7a35ae74caec8c252339f0c65dcb406303fca35553e0b9665fb9ca87bd55ea8
-SIZE (xpi/firefox-45.8.0/ml.xpi) = 498681
-SHA256 (xpi/firefox-45.8.0/mr.xpi) = c5c44dd20bdabdf92c1e5d7cce847d280f43182740c1d0a22ae392284a243b9f
-SIZE (xpi/firefox-45.8.0/mr.xpi) = 503700
-SHA256 (xpi/firefox-45.8.0/ms.xpi) = 6d8b74dbafd3c490ed345d533c50963a0a5e9204c52d14a28bdda989d84d4c7a
-SIZE (xpi/firefox-45.8.0/ms.xpi) = 440065
-SHA256 (xpi/firefox-45.8.0/nb-NO.xpi) = 7fc2e833da70c875aa7eaee49a750565ce663c060e3ac17b6cd88a5e9799fcd6
-SIZE (xpi/firefox-45.8.0/nb-NO.xpi) = 435471
-SHA256 (xpi/firefox-45.8.0/nl.xpi) = ec7725665e885272e51ab0986e19052af01c6179e32a17ca22b64eeb8f6a5d41
-SIZE (xpi/firefox-45.8.0/nl.xpi) = 435202
-SHA256 (xpi/firefox-45.8.0/nn-NO.xpi) = 61eb3e0d76ca7cbb69bbf6bb8c9552f469b71723a0cb4417171fe7b82b89fa3e
-SIZE (xpi/firefox-45.8.0/nn-NO.xpi) = 432934
-SHA256 (xpi/firefox-45.8.0/or.xpi) = 943c4c44d1bd776730e098180c08c15a89dceb88b4130a287b5c87ba74bff512
-SIZE (xpi/firefox-45.8.0/or.xpi) = 495922
-SHA256 (xpi/firefox-45.8.0/pa-IN.xpi) = bc6d13e6fe2c12b79f55f04f7e51c4bddcdae66696c669f49dac73285d3fd265
-SIZE (xpi/firefox-45.8.0/pa-IN.xpi) = 489550
-SHA256 (xpi/firefox-45.8.0/pl.xpi) = 261b3c557ae6e53601504f9ad801489bc33fc2aa62ea6d1436e34b69c76c412a
-SIZE (xpi/firefox-45.8.0/pl.xpi) = 383929
-SHA256 (xpi/firefox-45.8.0/pt-BR.xpi) = 0959e6b30ef9579b02f8f8ee6cfb148e581329195915d94c05b21489c7d856ff
-SIZE (xpi/firefox-45.8.0/pt-BR.xpi) = 450991
-SHA256 (xpi/firefox-45.8.0/pt-PT.xpi) = cb61aa1b149eacda43343368b699c0dcc9fd70ee292293ff82e65263edc6040a
-SIZE (xpi/firefox-45.8.0/pt-PT.xpi) = 437022
-SHA256 (xpi/firefox-45.8.0/rm.xpi) = 80b9a7da56be4b82d74ba97ee53fe78609942625a45769a93294a160f5a59c48
-SIZE (xpi/firefox-45.8.0/rm.xpi) = 437717
-SHA256 (xpi/firefox-45.8.0/ro.xpi) = de6e523e7730f0329a5b5753c467cbc8c38aa6628f0746a57febd36633fec9f6
-SIZE (xpi/firefox-45.8.0/ro.xpi) = 444062
-SHA256 (xpi/firefox-45.8.0/ru.xpi) = 0dce53178156223869dbc0a56dfeb203b94770ff32a7029de1af51f662c21363
-SIZE (xpi/firefox-45.8.0/ru.xpi) = 392738
-SHA256 (xpi/firefox-45.8.0/si.xpi) = 55a3ff30146341f0d1e6c86765248d5161d574cccaca1b5da69565d97604e43f
-SIZE (xpi/firefox-45.8.0/si.xpi) = 482248
-SHA256 (xpi/firefox-45.8.0/sk.xpi) = b6e248955e8d37d5082664b20f6dddfbf0ee7f9b5151e43789086c6d59632438
-SIZE (xpi/firefox-45.8.0/sk.xpi) = 453607
-SHA256 (xpi/firefox-45.8.0/sl.xpi) = cb23d8e958701534794dedd3cc25fbf85a5238bc0a89ecb479a2550df3fe7f5e
-SIZE (xpi/firefox-45.8.0/sl.xpi) = 444963
-SHA256 (xpi/firefox-45.8.0/son.xpi) = 337fba617b16ada119fce0b07a6b8658656a65fd5b429e0b214654fadcdc91a5
-SIZE (xpi/firefox-45.8.0/son.xpi) = 433513
-SHA256 (xpi/firefox-45.8.0/sq.xpi) = c7a71597dc4ca54984200a0da3837100756dbe930eda21ad6ccfab0cc2700f1b
-SIZE (xpi/firefox-45.8.0/sq.xpi) = 452186
-SHA256 (xpi/firefox-45.8.0/sr.xpi) = 7185fc946328646b1a80996df71a4f8d02c1033c5c84b546eca01851bc6df337
-SIZE (xpi/firefox-45.8.0/sr.xpi) = 464478
-SHA256 (xpi/firefox-45.8.0/sv-SE.xpi) = a9a9dacf53e510db5fb0476af2f16f3508bd955aecf5cce4b522d07f24c3cafd
-SIZE (xpi/firefox-45.8.0/sv-SE.xpi) = 444213
-SHA256 (xpi/firefox-45.8.0/ta.xpi) = f3c24960f752a494a468d878da01e114b886da4b547c6bcf9fbb618a54c4fc93
-SIZE (xpi/firefox-45.8.0/ta.xpi) = 483118
-SHA256 (xpi/firefox-45.8.0/te.xpi) = b8d11b842d31c933e6e74fbad3eb443b7e053740d3d5d7fd1627da8415a0c17d
-SIZE (xpi/firefox-45.8.0/te.xpi) = 492471
-SHA256 (xpi/firefox-45.8.0/th.xpi) = 3fca54e4c7bb453f8000d87759a1ec5bcb63e30efc3d5fd6011a0b6eef890936
-SIZE (xpi/firefox-45.8.0/th.xpi) = 477650
-SHA256 (xpi/firefox-45.8.0/tr.xpi) = 17a30f0df5ea59969a7c8f12f81fe40db80281ffb45db770c2a6de5d7797b20c
-SIZE (xpi/firefox-45.8.0/tr.xpi) = 451166
-SHA256 (xpi/firefox-45.8.0/uk.xpi) = 7fc8c0e84af1e730ec9cb93f18b889e7ca35445f04081f1fa00c2a19a00b7185
-SIZE (xpi/firefox-45.8.0/uk.xpi) = 494780
-SHA256 (xpi/firefox-45.8.0/uz.xpi) = aeb237a07f02f7680c838518c1ab4c9450a2de87690e1d92b1ec5d317287e399
-SIZE (xpi/firefox-45.8.0/uz.xpi) = 443803
-SHA256 (xpi/firefox-45.8.0/vi.xpi) = 6112ea4ddeb60109f656f902886c2b59b8cb1f34e6c87b966fff558e5aa8561d
-SIZE (xpi/firefox-45.8.0/vi.xpi) = 450778
-SHA256 (xpi/firefox-45.8.0/xh.xpi) = d77e888447b44be1716f36f36f599823ea619e6b58673d21123b171402b05203
-SIZE (xpi/firefox-45.8.0/xh.xpi) = 432918
-SHA256 (xpi/firefox-45.8.0/zh-CN.xpi) = 295990f964e9926f20b6a5f06e06686a88a9199a7e4a48e9fa2132e6338cff0c
-SIZE (xpi/firefox-45.8.0/zh-CN.xpi) = 475797
-SHA256 (xpi/firefox-45.8.0/zh-TW.xpi) = 004c22566602ef5c3905f0d8818018fc77d9f8022c97e15bb9f2841c9711fde3
-SIZE (xpi/firefox-45.8.0/zh-TW.xpi) = 466529
+TIMESTAMP = 1491886176
+SHA256 (xpi/firefox-52.1.0/ach.xpi) = aaa528f7f394e4801aab21d0d6f0313fc8a4b786873dab9c004c2dd741095c7f
+SIZE (xpi/firefox-52.1.0/ach.xpi) = 427640
+SHA256 (xpi/firefox-52.1.0/af.xpi) = 2bda3bfc9b83a76df12234fb68db9bad1f836593b760bcc5dd8c831dff06c994
+SIZE (xpi/firefox-52.1.0/af.xpi) = 436823
+SHA256 (xpi/firefox-52.1.0/an.xpi) = 11984920e096e97b7defa905d749cebf4c4d5a8648bc9263cbd008f8bb9c9af5
+SIZE (xpi/firefox-52.1.0/an.xpi) = 445142
+SHA256 (xpi/firefox-52.1.0/ar.xpi) = 6fedf28099b26244349b8cfd85c8c0d3c44b26e6fc888498413cfad923a8497b
+SIZE (xpi/firefox-52.1.0/ar.xpi) = 473382
+SHA256 (xpi/firefox-52.1.0/as.xpi) = 9c64fa1854a0b8bceab3237b7f9516e1bd73cb24089fd4b422b3705958f847fc
+SIZE (xpi/firefox-52.1.0/as.xpi) = 486888
+SHA256 (xpi/firefox-52.1.0/ast.xpi) = 2feae76cbfc4a12f8c2ec4788bf16d0ccc1257b90f4d182e7c3d64ece636c0d5
+SIZE (xpi/firefox-52.1.0/ast.xpi) = 440033
+SHA256 (xpi/firefox-52.1.0/az.xpi) = 7dcc5b97f3ecf887f7372f39d050eab1163efa02463f2d689b50e458c75bf8d9
+SIZE (xpi/firefox-52.1.0/az.xpi) = 454923
+SHA256 (xpi/firefox-52.1.0/bg.xpi) = abbf23207d9704b2fdfb2fa3448d07640c4d185ec2a9d427ba37d6aa57886a37
+SIZE (xpi/firefox-52.1.0/bg.xpi) = 487891
+SHA256 (xpi/firefox-52.1.0/bn-BD.xpi) = d697f0eca8217f9e69738e513e82f02cd301ffb42ca1133c8ad464930404c554
+SIZE (xpi/firefox-52.1.0/bn-BD.xpi) = 511994
+SHA256 (xpi/firefox-52.1.0/bn-IN.xpi) = 2669ff2c9c89fa4c10d0f95f08a677420c1a7eaf6e5980c1071e2086fe493990
+SIZE (xpi/firefox-52.1.0/bn-IN.xpi) = 509375
+SHA256 (xpi/firefox-52.1.0/br.xpi) = 97608859ead1b10dc1d2f05ac4bea632ccbe1aea3375a28b2dd36abfd2f6fdee
+SIZE (xpi/firefox-52.1.0/br.xpi) = 435482
+SHA256 (xpi/firefox-52.1.0/bs.xpi) = 3ad5709d451a32ef0ac51468588e41e3153bec352221b858c56f82d6cbef55ce
+SIZE (xpi/firefox-52.1.0/bs.xpi) = 441782
+SHA256 (xpi/firefox-52.1.0/ca.xpi) = 69af86fe9453373c3b41dc9cd370917f563eeeeba750eb6d99bef31e6050de70
+SIZE (xpi/firefox-52.1.0/ca.xpi) = 443303
+SHA256 (xpi/firefox-52.1.0/cs.xpi) = 0fd5d4786b639fc44fbb8b4d7bcdda883da58204f78fbc55b684139fd72a778a
+SIZE (xpi/firefox-52.1.0/cs.xpi) = 444075
+SHA256 (xpi/firefox-52.1.0/cy.xpi) = 78e2c91debf309d1c69f86e1ec8df38a006c23853cee5de87c298167daa47213
+SIZE (xpi/firefox-52.1.0/cy.xpi) = 436583
+SHA256 (xpi/firefox-52.1.0/da.xpi) = 8c73cc13da9fddf78deba643976fb43d493af3e66cc7d0260ecce0674c517189
+SIZE (xpi/firefox-52.1.0/da.xpi) = 424394
+SHA256 (xpi/firefox-52.1.0/de.xpi) = 9a030a63136583c071cdf57c2d857ba1faa2e43c1fb146f0dde48cfb0563e3bb
+SIZE (xpi/firefox-52.1.0/de.xpi) = 442478
+SHA256 (xpi/firefox-52.1.0/dsb.xpi) = 7f5078ed137a74d6e441edfc09e2dae084443f292620b4ae37ea29b99ba004e8
+SIZE (xpi/firefox-52.1.0/dsb.xpi) = 459424
+SHA256 (xpi/firefox-52.1.0/el.xpi) = dcb41271678ba967bb8f2df01906dae87e4d14386ef1880675212988d9e01722
+SIZE (xpi/firefox-52.1.0/el.xpi) = 516592
+SHA256 (xpi/firefox-52.1.0/en-GB.xpi) = 24df2612d92ea2ec9b69ac21f377b0061463c1025f5259221c18132b2ed9b627
+SIZE (xpi/firefox-52.1.0/en-GB.xpi) = 419323
+SHA256 (xpi/firefox-52.1.0/en-US.xpi) = 87dd5705c916afc40890fb595bde1b2d5dcc148bf97bfd22cfbd937e004f83e4
+SIZE (xpi/firefox-52.1.0/en-US.xpi) = 428630
+SHA256 (xpi/firefox-52.1.0/en-ZA.xpi) = 00c764b77d38eb66f1975dae4e7eb11c64bd908e08831c98aca1d8b128f75324
+SIZE (xpi/firefox-52.1.0/en-ZA.xpi) = 412211
+SHA256 (xpi/firefox-52.1.0/eo.xpi) = fb85aa82a8937bd36f722a31e47458e62dd74425172222c303408b3a7310aad4
+SIZE (xpi/firefox-52.1.0/eo.xpi) = 437473
+SHA256 (xpi/firefox-52.1.0/es-AR.xpi) = bbf6951dee0edd98af3a6817e80bbfcf263f1530abdf1c1305c607fccff9c4d7
+SIZE (xpi/firefox-52.1.0/es-AR.xpi) = 445925
+SHA256 (xpi/firefox-52.1.0/es-CL.xpi) = b6e62a993c5927c99feeba35e932ba896a14c49c4a8fd1e7f8c606236f263df7
+SIZE (xpi/firefox-52.1.0/es-CL.xpi) = 445675
+SHA256 (xpi/firefox-52.1.0/es-ES.xpi) = fbdf9804d4320a286ddbd75108537819f13979a45d1a16f31956f79bf01836f8
+SIZE (xpi/firefox-52.1.0/es-ES.xpi) = 344875
+SHA256 (xpi/firefox-52.1.0/es-MX.xpi) = d118efbaaa7dd43b1e952691df8438f7243e8783444f66167ae33750919b73ce
+SIZE (xpi/firefox-52.1.0/es-MX.xpi) = 448384
+SHA256 (xpi/firefox-52.1.0/et.xpi) = 991c77b981d6d1e4b4bfb6e236fd33bd814aca3212967c2e279d98915ffe3838
+SIZE (xpi/firefox-52.1.0/et.xpi) = 425112
+SHA256 (xpi/firefox-52.1.0/eu.xpi) = ac5d0468e00e9975b1ab7e79f73d662c185a2ab6f3976f67d8bac9b45663cc70
+SIZE (xpi/firefox-52.1.0/eu.xpi) = 438478
+SHA256 (xpi/firefox-52.1.0/fa.xpi) = 907622303642e0d5a09aa6fe4aa5eb5bdca70701ffd57255c1fc1083b89dde82
+SIZE (xpi/firefox-52.1.0/fa.xpi) = 491343
+SHA256 (xpi/firefox-52.1.0/ff.xpi) = 91be72df5b6a67b36c76a609cbfb4431fac3d1208e4423301bf4b14268200056
+SIZE (xpi/firefox-52.1.0/ff.xpi) = 440928
+SHA256 (xpi/firefox-52.1.0/fi.xpi) = 26bf0fcb296bfaa95b4a773d5b24bf5591f67562b5526d4112e772247723210f
+SIZE (xpi/firefox-52.1.0/fi.xpi) = 430061
+SHA256 (xpi/firefox-52.1.0/fr.xpi) = 871f861ed6dd9256efcbe0c37937a91323bc61344eac45ff96d35eda37cbc7f3
+SIZE (xpi/firefox-52.1.0/fr.xpi) = 450210
+SHA256 (xpi/firefox-52.1.0/fy-NL.xpi) = 121e2d3d60f05b9715bc78c1abbc4da96d8433b800721ff54399afff6dbc49ca
+SIZE (xpi/firefox-52.1.0/fy-NL.xpi) = 444973
+SHA256 (xpi/firefox-52.1.0/ga-IE.xpi) = 302f5693f5be52c96e5261b6552d76f7010aa5db007d8956967d4aac5f94b095
+SIZE (xpi/firefox-52.1.0/ga-IE.xpi) = 458164
+SHA256 (xpi/firefox-52.1.0/gd.xpi) = 756e9e47cf0f5fbc16ee6e697182c1738e8aef303a4b240b82ac61cfccdbabbf
+SIZE (xpi/firefox-52.1.0/gd.xpi) = 447267
+SHA256 (xpi/firefox-52.1.0/gl.xpi) = c88a2ee3dfadc5a0ce92bedc81a0aee5f28b60ab6fc025a3252249809d26f630
+SIZE (xpi/firefox-52.1.0/gl.xpi) = 447295
+SHA256 (xpi/firefox-52.1.0/gn.xpi) = 66e621462c612b7857489511f888ea14645805d0eee9b679d04238999ab7f9b2
+SIZE (xpi/firefox-52.1.0/gn.xpi) = 456213
+SHA256 (xpi/firefox-52.1.0/gu-IN.xpi) = 52908d8932a07738f6113a618628086e1a236da6aa34206f0fcac774632634c0
+SIZE (xpi/firefox-52.1.0/gu-IN.xpi) = 489365
+SHA256 (xpi/firefox-52.1.0/he.xpi) = da75ac77f78d71d26ec4cf2dbce7c137d5fe4e78caea88577c550a95f20b9caf
+SIZE (xpi/firefox-52.1.0/he.xpi) = 455282
+SHA256 (xpi/firefox-52.1.0/hi-IN.xpi) = 09db771f3b794ce51598cbece81a362a9401fcde8071898db8423ddc031b6f0e
+SIZE (xpi/firefox-52.1.0/hi-IN.xpi) = 506518
+SHA256 (xpi/firefox-52.1.0/hr.xpi) = 699db658924dbbb6c0b1f8d160e3c20a0357a6197a7fd6576ca1f3b5bd5ff438
+SIZE (xpi/firefox-52.1.0/hr.xpi) = 447502
+SHA256 (xpi/firefox-52.1.0/hsb.xpi) = e514e07c823bfccc003c7caa93e0d0af49bbcaa7f3f5ec2fd0e35add73ea040d
+SIZE (xpi/firefox-52.1.0/hsb.xpi) = 457258
+SHA256 (xpi/firefox-52.1.0/hu.xpi) = 62a65d6dabdc2370987735da7426ce5acc4325b3cbab31b1615d39f4a872d891
+SIZE (xpi/firefox-52.1.0/hu.xpi) = 451495
+SHA256 (xpi/firefox-52.1.0/hy-AM.xpi) = 4987323930c67b85fee1f5a4d775a2ae0748eb6183656f2ff25375e06794f6b9
+SIZE (xpi/firefox-52.1.0/hy-AM.xpi) = 495773
+SHA256 (xpi/firefox-52.1.0/id.xpi) = c1094fa40ca88e22526a1da963e6d3fedf03388701faf9b933869abf69b9a90c
+SIZE (xpi/firefox-52.1.0/id.xpi) = 426023
+SHA256 (xpi/firefox-52.1.0/is.xpi) = 00c393fc58daf5fb57f3a289001e19cb28eda9716e07decd52d3d216a62a3584
+SIZE (xpi/firefox-52.1.0/is.xpi) = 442693
+SHA256 (xpi/firefox-52.1.0/it.xpi) = 6bdc6d51dee1fd6a513caf6cc81ae5012d9d5c8639c25957a4019cbf8ab3c408
+SIZE (xpi/firefox-52.1.0/it.xpi) = 339220
+SHA256 (xpi/firefox-52.1.0/ja.xpi) = 0d62b4f0485397a167c4432ee3acb7c6e80557d10cfd3a4734ad02b1b1f93061
+SIZE (xpi/firefox-52.1.0/ja.xpi) = 488342
+SHA256 (xpi/firefox-52.1.0/kk.xpi) = 58c3f660493537076edb1e31b9f89b0492eb359794517bf5b2da511facb53cc3
+SIZE (xpi/firefox-52.1.0/kk.xpi) = 496939
+SHA256 (xpi/firefox-52.1.0/km.xpi) = a9e06fb46b571de4e3e4de68b0e98f71818cbf3ed07e4e278ebf44d1cbf89eae
+SIZE (xpi/firefox-52.1.0/km.xpi) = 520343
+SHA256 (xpi/firefox-52.1.0/kn.xpi) = 52790b78f00d530afd06187196cf78004ae6506e8b0d4cc5c9e08b0b3b641dad
+SIZE (xpi/firefox-52.1.0/kn.xpi) = 519455
+SHA256 (xpi/firefox-52.1.0/ko.xpi) = 15eeaa8a8dfe177aa65605abd8d06818142865a81f9a19bb39e46844da505931
+SIZE (xpi/firefox-52.1.0/ko.xpi) = 463629
+SHA256 (xpi/firefox-52.1.0/lij.xpi) = bb8647019b8a13ddfe48bda7a9bc5e6641d4c956f9aabfc0baf559fb9ba5d3a9
+SIZE (xpi/firefox-52.1.0/lij.xpi) = 421070
+SHA256 (xpi/firefox-52.1.0/lt.xpi) = 579a850cf726c4e2cc0608218e25e45bd3bfc3f29c44f70e9c299810c3836412
+SIZE (xpi/firefox-52.1.0/lt.xpi) = 452235
+SHA256 (xpi/firefox-52.1.0/lv.xpi) = 9e0d770ee4bc4eda603b27cc69dcbacf922fc58149039b53f715db232ed3891d
+SIZE (xpi/firefox-52.1.0/lv.xpi) = 448450
+SHA256 (xpi/firefox-52.1.0/mai.xpi) = 25358f6508930d3960c5ae029bbc5414b93ccc9f21a3bc53268857970698d4ed
+SIZE (xpi/firefox-52.1.0/mai.xpi) = 499841
+SHA256 (xpi/firefox-52.1.0/mk.xpi) = 66518b2bf8f43caf02f8f46cdac906f92430b9e30b89f14ae48df8bd8132c4bd
+SIZE (xpi/firefox-52.1.0/mk.xpi) = 496199
+SHA256 (xpi/firefox-52.1.0/ml.xpi) = d8c391910e955edf462a279524ca283a0111e57273e9a53467404a244cedda89
+SIZE (xpi/firefox-52.1.0/ml.xpi) = 516486
+SHA256 (xpi/firefox-52.1.0/mr.xpi) = 9152aa3cf23f576d5288b575d67c81b85a8a2059c10a955a08f0e6944c95d15e
+SIZE (xpi/firefox-52.1.0/mr.xpi) = 502430
+SHA256 (xpi/firefox-52.1.0/ms.xpi) = f653115354ba1fc458b4fe4d9b357a9b3f958ca7a68d1d93909c922837181ccc
+SIZE (xpi/firefox-52.1.0/ms.xpi) = 435990
+SHA256 (xpi/firefox-52.1.0/nb-NO.xpi) = f22e0d4f168946940e76648bf1f7490b18679caf7a4968387adcec3a6356e460
+SIZE (xpi/firefox-52.1.0/nb-NO.xpi) = 434411
+SHA256 (xpi/firefox-52.1.0/nl.xpi) = ea2d7b61f5d63d56b6cf825fea1c13f45049826446a4173f749b80849ed05643
+SIZE (xpi/firefox-52.1.0/nl.xpi) = 432007
+SHA256 (xpi/firefox-52.1.0/nn-NO.xpi) = f2ff89745686fd069c2ace20af3e186c98e6a14516c04a84036fa868e704a778
+SIZE (xpi/firefox-52.1.0/nn-NO.xpi) = 428644
+SHA256 (xpi/firefox-52.1.0/or.xpi) = 216f9e769a3617d1d64b82cbd6ca93cf6cbca87340c3102d27757a861288f434
+SIZE (xpi/firefox-52.1.0/or.xpi) = 496917
+SHA256 (xpi/firefox-52.1.0/pa-IN.xpi) = de2ab48f12e1ee79dd943a17b69c5f54e611de6f5262a3dc26dd44759f3110ac
+SIZE (xpi/firefox-52.1.0/pa-IN.xpi) = 476587
+SHA256 (xpi/firefox-52.1.0/pl.xpi) = dcbd1720686c17ed38f565c74e359e1eb3b10593eaf03d69e4c6cc828cba36c1
+SIZE (xpi/firefox-52.1.0/pl.xpi) = 352851
+SHA256 (xpi/firefox-52.1.0/pt-BR.xpi) = 8f7c422d25eb13568802027a47fb544ac6df5274878859747b1d971722e16fbc
+SIZE (xpi/firefox-52.1.0/pt-BR.xpi) = 438169
+SHA256 (xpi/firefox-52.1.0/pt-PT.xpi) = c33221725e433dcf43576490054d2eab6508d1d7466a2219a50045fa2829bac5
+SIZE (xpi/firefox-52.1.0/pt-PT.xpi) = 436726
+SHA256 (xpi/firefox-52.1.0/rm.xpi) = 32ffa2f6ec44a00673175e9b2fa9604311261b827752dec21a7b2852149ac714
+SIZE (xpi/firefox-52.1.0/rm.xpi) = 434608
+SHA256 (xpi/firefox-52.1.0/ro.xpi) = 1716cb258768432d6e93725318baaf3dfbfef8e794ef45c175ae36a1ecd3b820
+SIZE (xpi/firefox-52.1.0/ro.xpi) = 449937
+SHA256 (xpi/firefox-52.1.0/ru.xpi) = 7f83816417cf538c922d8956e502afe63785971c9daed0f7612aa6cc7c2c2e45
+SIZE (xpi/firefox-52.1.0/ru.xpi) = 395363
+SHA256 (xpi/firefox-52.1.0/si.xpi) = cf6f951b34148fba88ca4dff0bdbfae5d8e7db4be0e381caab2c3667d6a39c61
+SIZE (xpi/firefox-52.1.0/si.xpi) = 491958
+SHA256 (xpi/firefox-52.1.0/sk.xpi) = 21acf4974b6b130e7be2ddda6d68423c6204f360a5ccbb892ff0ce65b272a7ab
+SIZE (xpi/firefox-52.1.0/sk.xpi) = 455819
+SHA256 (xpi/firefox-52.1.0/sl.xpi) = 3298e941c2ab1411e973d13a941edde04563675a9650c244782f89c9bc4138d6
+SIZE (xpi/firefox-52.1.0/sl.xpi) = 433482
+SHA256 (xpi/firefox-52.1.0/son.xpi) = ecc893020de0603f2ee7accf53014740c3dfc0b05eacf11fae96cc36acf4ce73
+SIZE (xpi/firefox-52.1.0/son.xpi) = 435127
+SHA256 (xpi/firefox-52.1.0/sq.xpi) = e7bd223209d997b13addd48a316f93da5687cfd941d027ff1cbbf1ccbc0861eb
+SIZE (xpi/firefox-52.1.0/sq.xpi) = 448155
+SHA256 (xpi/firefox-52.1.0/sr.xpi) = 9b28684db2933399a0fd35ad66b938e9c72a445e73e6150928f91359ad399376
+SIZE (xpi/firefox-52.1.0/sr.xpi) = 463394
+SHA256 (xpi/firefox-52.1.0/sv-SE.xpi) = bf7280cd8f995868d7204d12de7f7444daabada8b8a748094d7c460072d551e1
+SIZE (xpi/firefox-52.1.0/sv-SE.xpi) = 441180
+SHA256 (xpi/firefox-52.1.0/ta.xpi) = 8a232709dcbc90fcf55c4245f86f2862c781fe1786076f91dcfc823aaf85e582
+SIZE (xpi/firefox-52.1.0/ta.xpi) = 494797
+SHA256 (xpi/firefox-52.1.0/te.xpi) = 5a4d385bac1db32e082b12c1176fe74990c182a3d80309599a0eefb5ec0ba43b
+SIZE (xpi/firefox-52.1.0/te.xpi) = 515240
+SHA256 (xpi/firefox-52.1.0/th.xpi) = 1497f40d9cfc182d864845ed07abd407334b4412a204620f3665b139ea31a190
+SIZE (xpi/firefox-52.1.0/th.xpi) = 489378
+SHA256 (xpi/firefox-52.1.0/tr.xpi) = 98c3189161b5388c807210c3df1fee39a1266752461c497064632d8e4bdaf17d
+SIZE (xpi/firefox-52.1.0/tr.xpi) = 443673
+SHA256 (xpi/firefox-52.1.0/uk.xpi) = 7c3d3e674b14df5d34ebaa9acbd8246a5613dbd402c7eb6f9932faffe1feac72
+SIZE (xpi/firefox-52.1.0/uk.xpi) = 495094
+SHA256 (xpi/firefox-52.1.0/uz.xpi) = dd662267de891c3c67f3ba83b679e2cd181f028a7d606f981411a0fd5568476d
+SIZE (xpi/firefox-52.1.0/uz.xpi) = 447916
+SHA256 (xpi/firefox-52.1.0/vi.xpi) = b90a4c3845b328436eb908741d8308855cdc25b418553683fc271c31a570cf42
+SIZE (xpi/firefox-52.1.0/vi.xpi) = 450804
+SHA256 (xpi/firefox-52.1.0/xh.xpi) = f24de110815f6d50f70b71b4f59f5c2268d8a00593972ce9f9c9dda269d3f79c
+SIZE (xpi/firefox-52.1.0/xh.xpi) = 441172
+SHA256 (xpi/firefox-52.1.0/zh-CN.xpi) = ed4afe83bed6c76b8051a3b4972d2d0469e11e59ea41e38232a94decd8f8e399
+SIZE (xpi/firefox-52.1.0/zh-CN.xpi) = 461694
+SHA256 (xpi/firefox-52.1.0/zh-TW.xpi) = f2aa1acca0afb7de7ae5cb939267cbc71c9fcf5bbd2239f89e8901cbe83fd999
+SIZE (xpi/firefox-52.1.0/zh-TW.xpi) = 472533
diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile
index ce44439..04dae97 100644
--- a/www/firefox-esr/Makefile
+++ b/www/firefox-esr/Makefile
@@ -2,33 +2,33 @@
# $FreeBSD$
PORTNAME= firefox
-DISTVERSION= 45.8.0
+DISTVERSION= 52.1.0
DISTVERSIONSUFFIX=esr.source
-PORTREVISION= 3
+PORTREVISION= 2
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/build3/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 +36,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 +44,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 ed6516b..3698123 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 = 1492454000
+SHA256 (firefox-52.1.0esr.source.tar.xz) = da2ba9630b8b56c6f5d36d9f3da2d984ef7986dc8b4d804f6947fcea6c24637d
+SIZE (firefox-52.1.0esr.source.tar.xz) = 212348684
diff --git a/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp b/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp
index 97b7b8d..68cb778 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 80f45c0..0000000
--- 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 3d6ff77..a73bd09 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 34584d4..0000000
--- 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 855cdab..0000000
--- 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 f39c9bb..0000000
--- 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 202c0cf..0000000
--- 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 ac5d9d2..0000000
--- 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 29096af..0000000
--- 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 429391f..0000000
--- 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 62818bc..0000000
--- 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 4eeecae..0000000
--- 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 9139534..0000000
--- 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 1790575..0000000
--- 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 0000000..e10ef85
--- /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 7cfebad..0000000
--- 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 6b9ccb5..0000000
--- 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-bug1329520 b/www/firefox-esr/files/patch-bug1329520
deleted file mode 100644
index 694b658..0000000
--- 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 e9ed891..0000000
--- 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 20be901..0000000
--- 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 941acf5..1ba4dec 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 6eb00b5..9588ce5 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 e4b7edf..0c2ffea 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 0000000..e20b012
--- /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 074297a..b6788ad 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 69658e2..0000000
--- 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 660b538..0000000
--- 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 980bde6..cf460a0 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-z-bug517422 b/www/firefox-esr/files/patch-z-bug517422
index 723900a..e3c4c41 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();
OpenPOWER on IntegriCloud