aboutsummaryrefslogtreecommitdiffstats
path: root/www
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2014-09-09 14:16:35 +0800
committerbapt <bapt@FreeBSD.org>2014-09-09 14:16:35 +0800
commit810ee4b28dab90c036696f081a69b9bfd1073afd (patch)
tree781de0366f06f8728245988a38a42d4e172d024d /www
parent0b1c4ffd78335ffea5779da45a6875656df9d40f (diff)
downloadfreebsd-ports-gnome-810ee4b28dab90c036696f081a69b9bfd1073afd.tar.gz
freebsd-ports-gnome-810ee4b28dab90c036696f081a69b9bfd1073afd.tar.zst
freebsd-ports-gnome-810ee4b28dab90c036696f081a69b9bfd1073afd.zip
Mozilla upgrades:
- Update nspr to 4.10.7 - Update ca_root_nss to 3.17 (mark as NO_ARCH while here) - Update firefox to 32.0 - Update thunderbird to 31.1.0 - Add net-im/linux-instantbird - Update firefox-est to 31.1.0 - Update libxul to 24.8.0 - Update seamonkey to 2.29 Submitted by: Jan Beich for gecko@
Diffstat (limited to 'www')
-rw-r--r--www/firefox-esr-i18n/Makefile2
-rw-r--r--www/firefox-esr-i18n/Makefile.lang39
-rw-r--r--www/firefox-esr-i18n/Makefile.option15
-rw-r--r--www/firefox-esr-i18n/distinfo356
-rw-r--r--www/firefox-esr/Makefile52
-rw-r--r--www/firefox-esr/distinfo4
-rw-r--r--www/firefox-esr/files/patch-bug10136753
-rw-r--r--www/firefox-esr/files/patch-bug101388269
-rw-r--r--www/firefox-esr/files/patch-bug101554711
-rw-r--r--www/firefox-esr/files/patch-bug1026828 (renamed from www/firefox/files/patch-bug1026828)0
-rw-r--r--www/firefox-esr/files/patch-bug104138112
-rw-r--r--www/firefox-esr/files/patch-bug104179522
-rw-r--r--www/firefox-esr/files/patch-bug104622426
-rw-r--r--www/firefox-esr/files/patch-bug70217915
-rw-r--r--www/firefox-esr/files/patch-bug77971335
-rw-r--r--www/firefox-esr/files/patch-bug78346314
-rw-r--r--www/firefox-esr/files/patch-bug803480102
-rw-r--r--www/firefox-esr/files/patch-bug807492628
-rw-r--r--www/firefox-esr/files/patch-bug81071668
-rw-r--r--www/firefox-esr/files/patch-bug82698552
-rw-r--r--www/firefox-esr/files/patch-bug847568 (renamed from www/firefox-esr/files/patch-z-bug847568)93
-rw-r--r--www/firefox-esr/files/patch-bug851992339
-rw-r--r--www/firefox-esr/files/patch-bug87615613
-rw-r--r--www/firefox-esr/files/patch-bug87879111
-rw-r--r--www/firefox-esr/files/patch-bug88618111
-rw-r--r--www/firefox-esr/files/patch-bug889699175
-rw-r--r--www/firefox-esr/files/patch-bug893397201
-rw-r--r--www/firefox-esr/files/patch-bug910875102
-rw-r--r--www/firefox-esr/files/patch-bug91621639
-rw-r--r--www/firefox-esr/files/patch-bug91658935
-rw-r--r--www/firefox-esr/files/patch-bug91817736
-rw-r--r--www/firefox-esr/files/patch-bug93873035
-rw-r--r--www/firefox-esr/files/patch-bug945046130
-rw-r--r--www/firefox-esr/files/patch-bug94656044
-rw-r--r--www/firefox-esr/files/patch-bug94894626
-rw-r--r--www/firefox-esr/files/patch-bug9612648
-rw-r--r--www/firefox-esr/files/patch-bug96181648
-rw-r--r--www/firefox-esr/files/patch-bug96234518
-rw-r--r--www/firefox-esr/files/patch-bug97563463
-rw-r--r--www/firefox-esr/files/patch-bug97745727
-rw-r--r--www/firefox-esr/files/patch-bug98134841
-rw-r--r--www/firefox-esr/files/patch-bug98584822
-rw-r--r--www/firefox-esr/files/patch-clang34-disable-stdcall4
-rw-r--r--www/firefox-esr/files/patch-config-baseconfig.mk10
-rw-r--r--www/firefox-esr/files/patch-toolkit_xre_Makefile.in8
-rw-r--r--www/firefox-esr/files/patch-z-bug102682813
-rw-r--r--www/firefox-esr/files/patch-z-bug517422 (renamed from www/firefox-esr/files/patch-zz-bug517422)232
-rw-r--r--www/firefox-esr/pkg-message11
-rw-r--r--www/firefox-i18n/Makefile4
-rw-r--r--www/firefox-i18n/distinfo356
-rw-r--r--www/firefox/Makefile11
-rw-r--r--www/firefox/distinfo4
-rw-r--r--www/firefox/files/patch-bug101367588
-rw-r--r--www/firefox/files/patch-bug101554795
-rw-r--r--www/firefox/files/patch-bug104126826
-rw-r--r--www/firefox/files/patch-bug104622426
-rw-r--r--www/firefox/files/patch-bug77971320
-rw-r--r--www/firefox/files/patch-bug82698517
-rw-r--r--www/firefox/files/patch-bug8475686
-rw-r--r--www/firefox/files/patch-bug961264266
-rw-r--r--www/firefox/files/patch-media-libstagefright-foundation-AString.cpp16
-rw-r--r--www/firefox/files/patch-z-bug5174223
-rw-r--r--www/libxul/Makefile6
-rw-r--r--www/libxul/distinfo4
-rw-r--r--www/libxul/files/patch-bug104622426
-rw-r--r--www/libxul/files/pkg-deinstall.in28
-rw-r--r--www/libxul/files/pkg-install.in37
-rw-r--r--www/linux-firefox/Makefile5
-rw-r--r--www/linux-firefox/distinfo4
-rw-r--r--www/linux-firefox/files/linux-firefox.desktop.in2
-rw-r--r--www/linux-seamonkey/Makefile4
-rw-r--r--www/linux-seamonkey/Makefile.common12
-rw-r--r--www/linux-seamonkey/distinfo4
-rw-r--r--www/linux-seamonkey/files/linux-seamonkey.desktop.in2
-rw-r--r--www/linux-seamonkey/pkg-plist4
-rw-r--r--www/seamonkey-i18n/Makefile2
-rw-r--r--www/seamonkey-i18n/distinfo108
-rw-r--r--www/seamonkey/Makefile18
-rw-r--r--www/seamonkey/distinfo8
-rw-r--r--www/seamonkey/files/extra-patch-security_manager_Makefile.in11
-rw-r--r--www/seamonkey/files/patch-bug101367588
-rw-r--r--www/seamonkey/files/patch-bug101554772
-rw-r--r--www/seamonkey/files/patch-bug104622426
-rw-r--r--www/seamonkey/files/patch-bug70217921
-rw-r--r--www/seamonkey/files/patch-bug8069171999
-rw-r--r--www/seamonkey/files/patch-bug82698518
-rw-r--r--www/seamonkey/files/patch-bug84756831
-rw-r--r--www/seamonkey/files/patch-bug893397201
-rw-r--r--www/seamonkey/files/patch-bug91658935
-rw-r--r--www/seamonkey/files/patch-bug961264266
-rw-r--r--www/seamonkey/files/patch-bug9623459
-rw-r--r--www/seamonkey/files/patch-bug97374438
-rw-r--r--www/seamonkey/files/patch-bug97539773
-rw-r--r--www/seamonkey/files/patch-bug97563463
-rw-r--r--www/seamonkey/files/patch-bug97745727
-rw-r--r--www/seamonkey/files/patch-bug98134841
-rw-r--r--www/seamonkey/files/patch-bug98584822
-rw-r--r--www/seamonkey/files/patch-bug98911210
-rw-r--r--www/seamonkey/files/patch-bug99346711
-rw-r--r--www/seamonkey/files/patch-clang34-disable-stdcall4
-rw-r--r--www/seamonkey/files/patch-mozilla-media-libstagefright-foundation-AString.cpp16
-rw-r--r--www/seamonkey/files/patch-z-bug51742291
102 files changed, 1255 insertions, 6450 deletions
diff --git a/www/firefox-esr-i18n/Makefile b/www/firefox-esr-i18n/Makefile
index 6a1c7dc5a893..f36b9dc9b829 100644
--- a/www/firefox-esr-i18n/Makefile
+++ b/www/firefox-esr-i18n/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= firefox
-PORTVERSION= 24.7.0
+PORTVERSION= 31.1.0
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}esr/linux-i686/xpi
PKGNAMEPREFIX=
diff --git a/www/firefox-esr-i18n/Makefile.lang b/www/firefox-esr-i18n/Makefile.lang
index bff3bf812771..c8852f07af38 100644
--- a/www/firefox-esr-i18n/Makefile.lang
+++ b/www/firefox-esr-i18n/Makefile.lang
@@ -1,13 +1,13 @@
# Created by: Koji Yokota <yokota@res.otaru-uc.ac.jp>
# $FreeBSD$
-FIREFOX_I18N_ALL_= ach af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb \
- cy da de 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 gu-IN he \
- hi-IN hr hu hy-AM id is it ja kk km kn ko ku lg lij lt \
- lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR \
- pt-PT rm ro ru si sk sl son sq sr sv-SE ta-LK ta te th \
- tr uk vi zh-CN zh-TW zu
+FIREFOX_I18N_ALL_= ach af an ar as ast be bg bn-BD bn-IN br bs ca cs \
+ csb cy da de 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 \
+ gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km \
+ kn ko ku lij lt lv mai mk ml mr ms nb-NO nl nn-NO \
+ or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq \
+ sr sv-SE ta te th tr uk vi xh zh-CN zh-TW zu
.if defined(FIREFOX_I18N_ALL) || defined(PACKAGE_BUILDING) || target(package)
FIREFOX_I18N= ${FIREFOX_I18N_ALL_}
@@ -18,8 +18,8 @@ FIREFOX_I18N+= ach
.if ${PORT_OPTIONS:MLANG_AF}
FIREFOX_I18N+= af
.endif
-.if ${PORT_OPTIONS:MLANG_AK}
-FIREFOX_I18N+= ak
+.if ${PORT_OPTIONS:MLANG_AN}
+FIREFOX_I18N+= an
.endif
.if ${PORT_OPTIONS:MLANG_AR}
FIREFOX_I18N+= ar
@@ -135,6 +135,9 @@ FIREFOX_I18N+= hi-IN
.if ${PORT_OPTIONS:MLANG_HR}
FIREFOX_I18N+= hr
.endif
+.if ${PORT_OPTIONS:MLANG_HSB}
+FIREFOX_I18N+= hsb
+.endif
.if ${PORT_OPTIONS:MLANG_HU}
FIREFOX_I18N+= hu
.endif
@@ -168,9 +171,6 @@ FIREFOX_I18N+= ko
.if ${PORT_OPTIONS:MLANG_KU}
FIREFOX_I18N+= ku
.endif
-.if ${PORT_OPTIONS:MLANG_LG}
-FIREFOX_I18N+= lg
-.endif
.if ${PORT_OPTIONS:MLANG_LIJ}
FIREFOX_I18N+= lij
.endif
@@ -192,6 +192,9 @@ FIREFOX_I18N+= ml
.if ${PORT_OPTIONS:MLANG_MR}
FIREFOX_I18N+= mr
.endif
+.if ${PORT_OPTIONS:MLANG_MS}
+FIREFOX_I18N+= ms
+.endif
.if ${PORT_OPTIONS:MLANG_NB}
FIREFOX_I18N+= nb-NO
.endif
@@ -201,9 +204,6 @@ FIREFOX_I18N+= nl
.if ${PORT_OPTIONS:MLANG_NN}
FIREFOX_I18N+= nn-NO
.endif
-.if ${PORT_OPTIONS:MLANG_NSO}
-FIREFOX_I18N+= nso
-.endif
.if ${PORT_OPTIONS:MLANG_OR}
FIREFOX_I18N+= or
.endif
@@ -249,12 +249,12 @@ FIREFOX_I18N+= sr
.if ${PORT_OPTIONS:MLANG_SV}
FIREFOX_I18N+= sv-SE
.endif
+.if ${PORT_OPTIONS:MLANG_SW}
+FIREFOX_I18N+= sw
+.endif
.if ${PORT_OPTIONS:MLANG_TA}
FIREFOX_I18N+= ta
.endif
-.if ${PORT_OPTIONS:MLANG_LK}
-FIREFOX_I18N+= ta-LK
-.endif
.if ${PORT_OPTIONS:MLANG_TE}
FIREFOX_I18N+= te
.endif
@@ -270,6 +270,9 @@ FIREFOX_I18N+= uk
.if ${PORT_OPTIONS:MLANG_VI}
FIREFOX_I18N+= vi
.endif
+.if ${PORT_OPTIONS:MLANG_XH}
+FIREFOX_I18N+= xh
+.endif
.if ${PORT_OPTIONS:MLANG_CN}
FIREFOX_I18N+= zh-CN
.endif
diff --git a/www/firefox-esr-i18n/Makefile.option b/www/firefox-esr-i18n/Makefile.option
index d9bc864db303..851b8b322a42 100644
--- a/www/firefox-esr-i18n/Makefile.option
+++ b/www/firefox-esr-i18n/Makefile.option
@@ -3,7 +3,7 @@
OPTIONS_DEFINE= LANG_ACH \
LANG_AF \
- LANG_AK \
+ LANG_AN \
LANG_SQ \
LANG_AR \
LANG_AS \
@@ -39,6 +39,7 @@ OPTIONS_DEFINE= LANG_ACH \
LANG_HE \
LANG_HI \
LANG_HR \
+ LANG_HSB \
LANG_HU \
LANG_IS \
LANG_ID \
@@ -51,21 +52,20 @@ OPTIONS_DEFINE= LANG_ACH \
LANG_KU \
LANG_LV \
LANG_LT \
- LANG_LG \
LANG_LIJ \
LANG_MK \
LANG_MAI \
LANG_ML \
LANG_MR \
LANG_MN \
- LANG_NSO \
+ LANG_MS \
LANG_NB \
LANG_NN \
LANG_OR \
LANG_FA \
LANG_PL \
LANG_PT \
- LANG_PBR \
+ LANG_PBR\
LANG_PA \
LANG_RO \
LANG_RM \
@@ -82,13 +82,13 @@ OPTIONS_DEFINE= LANG_ACH \
LANG_SV \
LANG_TW \
LANG_TA \
- LANG_LK \
LANG_TE \
LANG_TH \
LANG_TR \
LANG_UK \
LANG_VI \
LANG_CY \
+ LANG_XH \
LANG_ZA \
LANG_ZU
@@ -97,8 +97,13 @@ OPTIONS_DEFAULT=LANG_AR LANG_BN LANG_BR LANG_CN LANG_ET LANG_DE LANG_FR \
LANG_MN LANG_PBR LANG_PA LANG_RU LANG_ES LANG_SON LANG_TE
LANG_ACH_DESC?= Acholi language support
+LANG_AN_DESC?= Aragonese language support
LANG_AS_DESC?= Assamese language support
LANG_CSB_DESC?= Kashubian language support
LANG_FF_DESC?= Fulah language support
+LANG_HSB_DESC?= Upper Sorbian language support
LANG_KM_DESC?= Khmer language support
LANG_LIJ_DESC?= Ligurian (Genoa) language support
+LANG_MS_DESC?= Malay language support
+LANG_SW_DESC?= Swahili language support
+LANG_XH_DESC?= Xhosa language support
diff --git a/www/firefox-esr-i18n/distinfo b/www/firefox-esr-i18n/distinfo
index 88d593b9e9a0..fef928665054 100644
--- a/www/firefox-esr-i18n/distinfo
+++ b/www/firefox-esr-i18n/distinfo
@@ -1,178 +1,178 @@
-SHA256 (xpi/firefox-24.7.0/ach.xpi) = f940313ce154018ae3f0db0fc88ba8d92f0e9e7fcc65b644f545a413e331d3ad
-SIZE (xpi/firefox-24.7.0/ach.xpi) = 339946
-SHA256 (xpi/firefox-24.7.0/af.xpi) = f937d489c6cb379496c6150280165055ce5d4b2ef135e72892f247fe1814af58
-SIZE (xpi/firefox-24.7.0/af.xpi) = 333184
-SHA256 (xpi/firefox-24.7.0/ak.xpi) = 153ef421ba2d902bc321d9d23c115d113f8268e4bbf33af4620af963a0a477c2
-SIZE (xpi/firefox-24.7.0/ak.xpi) = 340940
-SHA256 (xpi/firefox-24.7.0/ar.xpi) = 9864288d7cd21e455429f2456c1af1b314c25bb65df28674feebb6ad9d6958aa
-SIZE (xpi/firefox-24.7.0/ar.xpi) = 360849
-SHA256 (xpi/firefox-24.7.0/as.xpi) = 7464b4e668b41769108a45575dd7dac8acbec34c4c39227ee170735af5247425
-SIZE (xpi/firefox-24.7.0/as.xpi) = 378085
-SHA256 (xpi/firefox-24.7.0/ast.xpi) = 553072a75cffda5a4e111b0f98052f9fb36e5d0edfd33140c8e1fad83d4ee2ba
-SIZE (xpi/firefox-24.7.0/ast.xpi) = 292876
-SHA256 (xpi/firefox-24.7.0/be.xpi) = e2097990955dfdbe034ae0f2dc407daad3743084281f9d23ad871002c0b6a1e6
-SIZE (xpi/firefox-24.7.0/be.xpi) = 316955
-SHA256 (xpi/firefox-24.7.0/bg.xpi) = 2d7417869c9dcbed79438e2310a12d039361927b1bb3531e61c5c743aab52dd8
-SIZE (xpi/firefox-24.7.0/bg.xpi) = 373136
-SHA256 (xpi/firefox-24.7.0/bn-BD.xpi) = 988897d6a1828ab757c86d36dcbfc16888d2490e41b8727311af7da2d5e822cc
-SIZE (xpi/firefox-24.7.0/bn-BD.xpi) = 394939
-SHA256 (xpi/firefox-24.7.0/bn-IN.xpi) = 6cfa702e3e034d33e7a7a78ffd62de6906f71867c33ae3716e84da075c266f05
-SIZE (xpi/firefox-24.7.0/bn-IN.xpi) = 427780
-SHA256 (xpi/firefox-24.7.0/br.xpi) = a44c7fc4146c885039e1096d3d70c5ee17fc7d9a543c709e43bf9e2646397bbd
-SIZE (xpi/firefox-24.7.0/br.xpi) = 330509
-SHA256 (xpi/firefox-24.7.0/bs.xpi) = 8307c45a4931031b7a7d6e74e7afda1e707c1823d9408e30b74f35ec23a2f841
-SIZE (xpi/firefox-24.7.0/bs.xpi) = 341620
-SHA256 (xpi/firefox-24.7.0/ca.xpi) = ab2d08cc5cfcca50c2bab93c442ea2cae3f02598eabe10be6e23eae3031b7516
-SIZE (xpi/firefox-24.7.0/ca.xpi) = 341257
-SHA256 (xpi/firefox-24.7.0/cs.xpi) = 8c738335db9e88682744d9241481df1b27edad55d6e89acd436bd87cc71e35f7
-SIZE (xpi/firefox-24.7.0/cs.xpi) = 335946
-SHA256 (xpi/firefox-24.7.0/csb.xpi) = 93fe9ad1e9fb3da3c2104700cecf9c234176b989dc3bb7b43ddfe53fd238ab9c
-SIZE (xpi/firefox-24.7.0/csb.xpi) = 329796
-SHA256 (xpi/firefox-24.7.0/cy.xpi) = 971948bc5bc53c9862ac2e1fa54fe33c3a36f8b822e29eda319b89ad503cd85e
-SIZE (xpi/firefox-24.7.0/cy.xpi) = 330643
-SHA256 (xpi/firefox-24.7.0/da.xpi) = bf57f6740768062ab2689b1f9bf20976fb99f849d88631c9ad588330ad840b41
-SIZE (xpi/firefox-24.7.0/da.xpi) = 326882
-SHA256 (xpi/firefox-24.7.0/de.xpi) = e7eaa5d25ef88d4c67db837eaf30dc25e3b9afaebaeee57a5a6fc4fd46a64603
-SIZE (xpi/firefox-24.7.0/de.xpi) = 323258
-SHA256 (xpi/firefox-24.7.0/el.xpi) = 297a81b011fa708bb9ac26f6a51141b187db4834fe4ac5df58cf788c9aa78189
-SIZE (xpi/firefox-24.7.0/el.xpi) = 365320
-SHA256 (xpi/firefox-24.7.0/en-GB.xpi) = 79054637a96d53119d26a951f78fa6b6164cad67a66037fe0bbc6ab9364678f5
-SIZE (xpi/firefox-24.7.0/en-GB.xpi) = 318297
-SHA256 (xpi/firefox-24.7.0/en-US.xpi) = 2cf6b23099fbd59be55eea29a50f475b6686183824498bdbac0cdfce0d68c4fa
-SIZE (xpi/firefox-24.7.0/en-US.xpi) = 320993
-SHA256 (xpi/firefox-24.7.0/en-ZA.xpi) = d78fc0ea1e53ae99c6f3d40a5ecffa3e784ecd5f882932d014c84a7d67124401
-SIZE (xpi/firefox-24.7.0/en-ZA.xpi) = 319321
-SHA256 (xpi/firefox-24.7.0/eo.xpi) = 758901309f103b7806c9683e529b72fa16bcad6d8faa3c9d98ea505e8a63005a
-SIZE (xpi/firefox-24.7.0/eo.xpi) = 334939
-SHA256 (xpi/firefox-24.7.0/es-AR.xpi) = 2f6767e1d2fde732462614c3e54afa4ee94b91a1e220bb1c0f6eef841e223e1b
-SIZE (xpi/firefox-24.7.0/es-AR.xpi) = 334010
-SHA256 (xpi/firefox-24.7.0/es-CL.xpi) = 74a39f1aac19f76eded85d3e4f41c17e3091350fd19a2c76cc96d7bb8a628073
-SIZE (xpi/firefox-24.7.0/es-CL.xpi) = 287027
-SHA256 (xpi/firefox-24.7.0/es-ES.xpi) = e6372cd3b94f16c8eb7482d586fa2519112fb3ab0c1565d2bfca4f03034817cb
-SIZE (xpi/firefox-24.7.0/es-ES.xpi) = 277860
-SHA256 (xpi/firefox-24.7.0/es-MX.xpi) = 330d4b52f47f771f8f4f6c27afa1e5f275e765f372cbcef88003eaacfa69faeb
-SIZE (xpi/firefox-24.7.0/es-MX.xpi) = 302624
-SHA256 (xpi/firefox-24.7.0/et.xpi) = 3da8caca8f54b05ff3f93dd39d2911ca82185b26b60cc26e9d2bd93ec7846c78
-SIZE (xpi/firefox-24.7.0/et.xpi) = 327697
-SHA256 (xpi/firefox-24.7.0/eu.xpi) = 58c117d0e970aa39774335e3d06371ae1ca081c61bde92026a6b3b3645b9d5c6
-SIZE (xpi/firefox-24.7.0/eu.xpi) = 332422
-SHA256 (xpi/firefox-24.7.0/fa.xpi) = 4dc13f2b95c112ac4f04c0daa818006360f671702ee8f080fb3632a5e29fbb22
-SIZE (xpi/firefox-24.7.0/fa.xpi) = 375633
-SHA256 (xpi/firefox-24.7.0/ff.xpi) = 19524c4259acc043c449617e6b414fd8a1cc0572422e9e37fcd145b5324b6804
-SIZE (xpi/firefox-24.7.0/ff.xpi) = 332815
-SHA256 (xpi/firefox-24.7.0/fi.xpi) = 87bd26680ec30aa7d44b916bf9dc9b045df55a9a4d7161fa6839d645461b211c
-SIZE (xpi/firefox-24.7.0/fi.xpi) = 328892
-SHA256 (xpi/firefox-24.7.0/fr.xpi) = 329ceed1b6afe295a6051b46a056e1770406009d211b642cefa90ea734c35c36
-SIZE (xpi/firefox-24.7.0/fr.xpi) = 339178
-SHA256 (xpi/firefox-24.7.0/fy-NL.xpi) = 1b5715111ecdc84f17c677439f4672b610afb06c5001b4560be7f62c6a9a1ea2
-SIZE (xpi/firefox-24.7.0/fy-NL.xpi) = 336592
-SHA256 (xpi/firefox-24.7.0/ga-IE.xpi) = e121a7600bafa8836318fb6dcf3e10f226e9e8aa833958937fa81efba1ce1eca
-SIZE (xpi/firefox-24.7.0/ga-IE.xpi) = 345295
-SHA256 (xpi/firefox-24.7.0/gd.xpi) = 9bb98908a2b974d8c5d5d3234888710247a88a500fd48aceb3c0a099d7274ee8
-SIZE (xpi/firefox-24.7.0/gd.xpi) = 344811
-SHA256 (xpi/firefox-24.7.0/gl.xpi) = 1d31c1178caa74443e9a1223f04c6f421181408bc93a52f00e937b9a84cdfd36
-SIZE (xpi/firefox-24.7.0/gl.xpi) = 336919
-SHA256 (xpi/firefox-24.7.0/gu-IN.xpi) = 380965d2c04ea879f921765aaede0f9014a51c04997344a05a03ec38ac0e560e
-SIZE (xpi/firefox-24.7.0/gu-IN.xpi) = 359359
-SHA256 (xpi/firefox-24.7.0/he.xpi) = 46cd7dbd12ed166b1766818c741657680a8d681812553fdcecf03e5266a08924
-SIZE (xpi/firefox-24.7.0/he.xpi) = 354631
-SHA256 (xpi/firefox-24.7.0/hi-IN.xpi) = 21c918a4b1e24435d930b49f9d92556bc6b3ea5cf0802d0628b38de9162e1f3b
-SIZE (xpi/firefox-24.7.0/hi-IN.xpi) = 379121
-SHA256 (xpi/firefox-24.7.0/hr.xpi) = 89335d257914298f2f539f0d49b041d9c4e0ab4955f4f44a733d1abb84bf32b5
-SIZE (xpi/firefox-24.7.0/hr.xpi) = 336841
-SHA256 (xpi/firefox-24.7.0/hu.xpi) = 48f2decd7e839ec98f42a9b4c9ee08dce110fb8a04d7c740be48bad802b2b202
-SIZE (xpi/firefox-24.7.0/hu.xpi) = 344103
-SHA256 (xpi/firefox-24.7.0/hy-AM.xpi) = c860749f1667eea3344c3d6df8822f58b21865c99d1a96a461ff30fedaf3bf66
-SIZE (xpi/firefox-24.7.0/hy-AM.xpi) = 385180
-SHA256 (xpi/firefox-24.7.0/id.xpi) = 8f18244f0054cfa90ba67bd2cff8b634888dfe884f5b203d03db37fd93d9ea2a
-SIZE (xpi/firefox-24.7.0/id.xpi) = 319795
-SHA256 (xpi/firefox-24.7.0/is.xpi) = 7cfc3bbd901b2ac6bc0c516b094d50f2136cf9cd66eee3e2072b1d75ff0ff442
-SIZE (xpi/firefox-24.7.0/is.xpi) = 331826
-SHA256 (xpi/firefox-24.7.0/it.xpi) = 2f1adc10bb304063a8ea1ababb8a962be6358a3a446027a531de05dce9493527
-SIZE (xpi/firefox-24.7.0/it.xpi) = 271925
-SHA256 (xpi/firefox-24.7.0/ja.xpi) = 105ca5ce49dadf6f760fe553b0287a4ffd4cc7f51c176277e363d7908652c280
-SIZE (xpi/firefox-24.7.0/ja.xpi) = 370903
-SHA256 (xpi/firefox-24.7.0/kk.xpi) = e7c885c219c9e813d1346e9dd9594130f84e588f219da84f83d10e6721096672
-SIZE (xpi/firefox-24.7.0/kk.xpi) = 377502
-SHA256 (xpi/firefox-24.7.0/km.xpi) = aa5c1beca1a05ee0770bf2de511daba15850245de9bd8fea087868733b0411b6
-SIZE (xpi/firefox-24.7.0/km.xpi) = 400559
-SHA256 (xpi/firefox-24.7.0/kn.xpi) = b9f69eddefe02a990c7dd55bc1b716669d12fd29dee945aac50a6f5e08a76bf0
-SIZE (xpi/firefox-24.7.0/kn.xpi) = 391033
-SHA256 (xpi/firefox-24.7.0/ko.xpi) = 1e438ae1f5d4ad7438591c263429740ac5fd91b3fa4da58327d838555b693d41
-SIZE (xpi/firefox-24.7.0/ko.xpi) = 346164
-SHA256 (xpi/firefox-24.7.0/ku.xpi) = 6984334c62b2fe712d60c96de29cd56a84b170df8b5881760a4164607e704887
-SIZE (xpi/firefox-24.7.0/ku.xpi) = 355631
-SHA256 (xpi/firefox-24.7.0/lg.xpi) = 326cfb288bd8db88cf4f3432d0b545bbf57a72c58060bd6b4a833a07c3fd48a3
-SIZE (xpi/firefox-24.7.0/lg.xpi) = 351111
-SHA256 (xpi/firefox-24.7.0/lij.xpi) = c4a8d33ad3ef73d4cb013f6e48cefac6b648bd65e83cb9ee6f6d5a79eb07dbc5
-SIZE (xpi/firefox-24.7.0/lij.xpi) = 322701
-SHA256 (xpi/firefox-24.7.0/lt.xpi) = 910f02e8cef6286da9a3612412ebf32ec86421f817b86cefb8b8e2e1806759e8
-SIZE (xpi/firefox-24.7.0/lt.xpi) = 352045
-SHA256 (xpi/firefox-24.7.0/lv.xpi) = a3cf06c57646011d052e581fe831ccea079c13f72fb7ead974e6bb2724ffcf27
-SIZE (xpi/firefox-24.7.0/lv.xpi) = 328664
-SHA256 (xpi/firefox-24.7.0/mai.xpi) = b42de25c99c9605683ee272ca3be95b2fcbbe61a304af68b10d195adb3489e0e
-SIZE (xpi/firefox-24.7.0/mai.xpi) = 379767
-SHA256 (xpi/firefox-24.7.0/mk.xpi) = 23653b29139bbd55aed4d151b7c0eba825ea7576bf1bd72131a5076523313f27
-SIZE (xpi/firefox-24.7.0/mk.xpi) = 376316
-SHA256 (xpi/firefox-24.7.0/ml.xpi) = 091a666d6db3f5f889fa8c4201e723f5c10b504c2ddbebb5df01c2badf545371
-SIZE (xpi/firefox-24.7.0/ml.xpi) = 399677
-SHA256 (xpi/firefox-24.7.0/mr.xpi) = f6f9c848f9f268a60385d30b858d01d9ac2fcd700584fcf9ded503321cbb7694
-SIZE (xpi/firefox-24.7.0/mr.xpi) = 380231
-SHA256 (xpi/firefox-24.7.0/nb-NO.xpi) = ff63351bbb5a485d24f8e3af28eddd54aafb34e41d7346f1850ef2032016ecc9
-SIZE (xpi/firefox-24.7.0/nb-NO.xpi) = 330966
-SHA256 (xpi/firefox-24.7.0/nl.xpi) = 7f5f36b378130f29fb43371a5dba05966e712b3e2556848ff3871ece75478b53
-SIZE (xpi/firefox-24.7.0/nl.xpi) = 331404
-SHA256 (xpi/firefox-24.7.0/nn-NO.xpi) = 58e1585021e07e0b7cabdce6bb2389c40c344cecf4e2753355b4d7d0454e963a
-SIZE (xpi/firefox-24.7.0/nn-NO.xpi) = 333906
-SHA256 (xpi/firefox-24.7.0/nso.xpi) = b3d168a9c73598d28bb58c63698ce3f8177cbf6c1b25f50ef0b596613b012209
-SIZE (xpi/firefox-24.7.0/nso.xpi) = 336298
-SHA256 (xpi/firefox-24.7.0/or.xpi) = 63cb6830d2c6ebfc19d8349d642700622744cc6ca6abb4f819c240625d505fde
-SIZE (xpi/firefox-24.7.0/or.xpi) = 364592
-SHA256 (xpi/firefox-24.7.0/pa-IN.xpi) = d51831d82776986a1ef5736e515a209858272dd57fb790844996626930ab2146
-SIZE (xpi/firefox-24.7.0/pa-IN.xpi) = 365653
-SHA256 (xpi/firefox-24.7.0/pl.xpi) = 09fae70f04ea97739e6c471fc7fe5e6fa2296200681464eff0ebbe051627c878
-SIZE (xpi/firefox-24.7.0/pl.xpi) = 341995
-SHA256 (xpi/firefox-24.7.0/pt-BR.xpi) = 948ea89ed6ef71cfa32b382c2d882f7b3bd032db46180c029a3e02476a0f5e47
-SIZE (xpi/firefox-24.7.0/pt-BR.xpi) = 334605
-SHA256 (xpi/firefox-24.7.0/pt-PT.xpi) = 98d01041af83fe5e64004811408a8f47a2f0ed70804fa32f2a99ed9f9c0f894c
-SIZE (xpi/firefox-24.7.0/pt-PT.xpi) = 332739
-SHA256 (xpi/firefox-24.7.0/rm.xpi) = 3ffbcd851bb0e946e77c6ff10d89ab66d6889ed05d3b6325edab55e94b840f0a
-SIZE (xpi/firefox-24.7.0/rm.xpi) = 339698
-SHA256 (xpi/firefox-24.7.0/ro.xpi) = a69f7f6cf186c46cc9656dd262f78845c36b5ae168c04c31db8b205852feecf3
-SIZE (xpi/firefox-24.7.0/ro.xpi) = 362236
-SHA256 (xpi/firefox-24.7.0/ru.xpi) = dbc4b101b541488447e1089fb35ed9efeb663405a5f38b082c0e878ab805e7da
-SIZE (xpi/firefox-24.7.0/ru.xpi) = 322761
-SHA256 (xpi/firefox-24.7.0/si.xpi) = 4dc33ca1990aa77df04c1ba793900e021750941434f7ea4d6472777dbf3b1d8d
-SIZE (xpi/firefox-24.7.0/si.xpi) = 372982
-SHA256 (xpi/firefox-24.7.0/sk.xpi) = 9a810b4270053253aa4e7bd3431b583432344ffe98a4cdd9ef651848844ec5b2
-SIZE (xpi/firefox-24.7.0/sk.xpi) = 347879
-SHA256 (xpi/firefox-24.7.0/sl.xpi) = ec6d1c844e912624be9b30bb6542e3c98126846f8df2ba11951693ba2949fd02
-SIZE (xpi/firefox-24.7.0/sl.xpi) = 331572
-SHA256 (xpi/firefox-24.7.0/son.xpi) = 6e0b0df77fb982dbc8c06bc853f113b088b947213035d84b59b3e73f5b24c229
-SIZE (xpi/firefox-24.7.0/son.xpi) = 328903
-SHA256 (xpi/firefox-24.7.0/sq.xpi) = 6b6049dd304e533a083b676f64e73b0b6feaf9e03c5a8fb9d33a8b8d4543c96a
-SIZE (xpi/firefox-24.7.0/sq.xpi) = 340676
-SHA256 (xpi/firefox-24.7.0/sr.xpi) = 089c41d55dccf3dcadea47322b8f3ddc80af71e05ec7013b16f1f27e82b82da9
-SIZE (xpi/firefox-24.7.0/sr.xpi) = 385108
-SHA256 (xpi/firefox-24.7.0/sv-SE.xpi) = f65abb15e3f93ebd47b5c7414dd159a86f01e830a9dc3b38c3440707cd721d5d
-SIZE (xpi/firefox-24.7.0/sv-SE.xpi) = 333506
-SHA256 (xpi/firefox-24.7.0/ta-LK.xpi) = 3d370a12633a01e8553a0a8cd0dc1ed4d44bee14356e0acb5786abbbd293ace3
-SIZE (xpi/firefox-24.7.0/ta-LK.xpi) = 384155
-SHA256 (xpi/firefox-24.7.0/ta.xpi) = 677c740e09f735626cb222dd44c8c84b6dc509161c3b4920a0940429d256fb05
-SIZE (xpi/firefox-24.7.0/ta.xpi) = 381423
-SHA256 (xpi/firefox-24.7.0/te.xpi) = 80b4204d77cdede04b0cbd08355991bb0fa4a2fd6602f3c8dd9fbe906292fc17
-SIZE (xpi/firefox-24.7.0/te.xpi) = 394563
-SHA256 (xpi/firefox-24.7.0/th.xpi) = abc1ab05073ee02249e686d94e40083bdc85764ccd2de69d36fa198bea29c704
-SIZE (xpi/firefox-24.7.0/th.xpi) = 379822
-SHA256 (xpi/firefox-24.7.0/tr.xpi) = f529f80def331ce2cdd12fd01cbc0c4a969fc1724a72bbddd263e4a33f5ed0bd
-SIZE (xpi/firefox-24.7.0/tr.xpi) = 340387
-SHA256 (xpi/firefox-24.7.0/uk.xpi) = 4db4261bbb2a8df7fc05a902b7663fb9d1fdb5b14af086f6ea5962c218f59c91
-SIZE (xpi/firefox-24.7.0/uk.xpi) = 365699
-SHA256 (xpi/firefox-24.7.0/vi.xpi) = f933ef30b842a623da7fb0e81af06035f521a771cff15f9e511d7379fdb3601b
-SIZE (xpi/firefox-24.7.0/vi.xpi) = 358430
-SHA256 (xpi/firefox-24.7.0/zh-CN.xpi) = 9c604f48c6cedae58298da89a518fc19d404d517a02df7c77b1f2072ecd9bdfb
-SIZE (xpi/firefox-24.7.0/zh-CN.xpi) = 358182
-SHA256 (xpi/firefox-24.7.0/zh-TW.xpi) = 4630f77bfd34565455b62be1a81f3a415628ae815bd48dbdb6832df3af9f10f2
-SIZE (xpi/firefox-24.7.0/zh-TW.xpi) = 351833
-SHA256 (xpi/firefox-24.7.0/zu.xpi) = bb7f07f2160185c25c9a336eaa81cb426813b24addfe5ef35331558fb743470f
-SIZE (xpi/firefox-24.7.0/zu.xpi) = 340394
+SHA256 (xpi/firefox-31.1.0/ach.xpi) = 1691dd1ff4bcfc51b9e5e67ca70562bd0d9b78744a4735cfbc47f672d50c2467
+SIZE (xpi/firefox-31.1.0/ach.xpi) = 445522
+SHA256 (xpi/firefox-31.1.0/af.xpi) = a420bd02b8f0a355945b16dd23a0b373548a3b36e1ffe525dc0fd0c77d6d23db
+SIZE (xpi/firefox-31.1.0/af.xpi) = 431285
+SHA256 (xpi/firefox-31.1.0/an.xpi) = dadd87404b11c860bc49ddeb890c367cb97c6592c116b19f040084c88cb8f6ba
+SIZE (xpi/firefox-31.1.0/an.xpi) = 407347
+SHA256 (xpi/firefox-31.1.0/ar.xpi) = 5eb9f1bac0d58ac0be637c23271c76abbeee57ed674bcd84826a66b4aefdd37a
+SIZE (xpi/firefox-31.1.0/ar.xpi) = 460020
+SHA256 (xpi/firefox-31.1.0/as.xpi) = 63769ee4d825976599cb8296f9f7a484557ff55c0d587bb1558ed4398390145e
+SIZE (xpi/firefox-31.1.0/as.xpi) = 448765
+SHA256 (xpi/firefox-31.1.0/ast.xpi) = 5fd4607ca582f4c7e98e923c8a7180660c91faf3962faaacae75cabcf19ab288
+SIZE (xpi/firefox-31.1.0/ast.xpi) = 352537
+SHA256 (xpi/firefox-31.1.0/be.xpi) = dd8bd0f1602ccec1b32b4ac9cf4d65f8c743c2155343c024e215dda165afc8ec
+SIZE (xpi/firefox-31.1.0/be.xpi) = 378864
+SHA256 (xpi/firefox-31.1.0/bg.xpi) = 36c23ae838e6c30bd1baafa475227f1018380fc8a6c52770e58db35a5c01f0d9
+SIZE (xpi/firefox-31.1.0/bg.xpi) = 438257
+SHA256 (xpi/firefox-31.1.0/bn-BD.xpi) = 18cd34211aaada761e3236e7ac56c8e11ce74508ec4d46e3ed0259ed6bd0ba7a
+SIZE (xpi/firefox-31.1.0/bn-BD.xpi) = 472822
+SHA256 (xpi/firefox-31.1.0/bn-IN.xpi) = 50ca770b533b840b46e5a20540c7bf22b5feeff45a55cb2bd16a6c6944e04bab
+SIZE (xpi/firefox-31.1.0/bn-IN.xpi) = 462789
+SHA256 (xpi/firefox-31.1.0/br.xpi) = ce94b546e60c7d04623276b2f0a8f429e78b1ab2b01333dc1dea0cbe91aa04ef
+SIZE (xpi/firefox-31.1.0/br.xpi) = 389900
+SHA256 (xpi/firefox-31.1.0/bs.xpi) = 937a1b78bb6092b7ed29b6f6b802833a20fa78918947524b1c8052ae9ffc89c2
+SIZE (xpi/firefox-31.1.0/bs.xpi) = 429211
+SHA256 (xpi/firefox-31.1.0/ca.xpi) = fd24974924843065612374365bddbd1573c66db534b647fa28fc71986e6e795b
+SIZE (xpi/firefox-31.1.0/ca.xpi) = 403772
+SHA256 (xpi/firefox-31.1.0/cs.xpi) = 63d5f0f008fa94aade84c4a63b1fc1dc4a7dfce6d01e573bc58dc54ce0aad2b8
+SIZE (xpi/firefox-31.1.0/cs.xpi) = 391174
+SHA256 (xpi/firefox-31.1.0/csb.xpi) = e8623948febd8b45cbe9e385e8bf88eff2e651258b97953fc5c233e919986c69
+SIZE (xpi/firefox-31.1.0/csb.xpi) = 383891
+SHA256 (xpi/firefox-31.1.0/cy.xpi) = 261dad5097b136fc997af9fe0a6e40183a8371b17e9c04dab607921e802c7448
+SIZE (xpi/firefox-31.1.0/cy.xpi) = 390923
+SHA256 (xpi/firefox-31.1.0/da.xpi) = f5b82c15e675d826a8d67b42d335b2e1f88a8ca8c8dcbd52e3d01e254d2d810b
+SIZE (xpi/firefox-31.1.0/da.xpi) = 397943
+SHA256 (xpi/firefox-31.1.0/de.xpi) = abebedeb1edad6f9bb02bb53bf8ed6dbf233cdbc353325331c88b7de184bc917
+SIZE (xpi/firefox-31.1.0/de.xpi) = 395360
+SHA256 (xpi/firefox-31.1.0/el.xpi) = cf1fb70531b54a56b3687eee25bf772ae76fda3bbfeab499b54f5a4a985c8290
+SIZE (xpi/firefox-31.1.0/el.xpi) = 443178
+SHA256 (xpi/firefox-31.1.0/en-GB.xpi) = 3f9d02719afbd3a4d25d2e452a0c98f6c098288ec46cec4fc5bfedd4ef019542
+SIZE (xpi/firefox-31.1.0/en-GB.xpi) = 390315
+SHA256 (xpi/firefox-31.1.0/en-US.xpi) = a7ed24f21f5dbb81a38113f45718479a2192e31a49ffa81f543686f2d2296bc0
+SIZE (xpi/firefox-31.1.0/en-US.xpi) = 422984
+SHA256 (xpi/firefox-31.1.0/en-ZA.xpi) = eb9ef4990c5a1919cd13602b46809bfd4923072ede4c593b9bac08533ef870b8
+SIZE (xpi/firefox-31.1.0/en-ZA.xpi) = 388724
+SHA256 (xpi/firefox-31.1.0/eo.xpi) = 4dc7098f0fd2b437db77689fde1d6c7f6c71b57e789b960b797558416c4acb06
+SIZE (xpi/firefox-31.1.0/eo.xpi) = 432027
+SHA256 (xpi/firefox-31.1.0/es-AR.xpi) = e1ce737df331172db3e7522027bb74d72e40ba3ac05d9c85ce6838894a9feb62
+SIZE (xpi/firefox-31.1.0/es-AR.xpi) = 400133
+SHA256 (xpi/firefox-31.1.0/es-CL.xpi) = 818a8c57b79d085336be0b570d5435585647b86e0c2aa8a98f0450f98ac581b3
+SIZE (xpi/firefox-31.1.0/es-CL.xpi) = 343004
+SHA256 (xpi/firefox-31.1.0/es-ES.xpi) = 974dec19fe1c95ad90e3d4e1d5d204ace7689f6234f266915c068500976423a7
+SIZE (xpi/firefox-31.1.0/es-ES.xpi) = 336076
+SHA256 (xpi/firefox-31.1.0/es-MX.xpi) = 85ba666a4c9dad0064530223267b1669a3c43e231ca5567cc14b349fa0d9bdf8
+SIZE (xpi/firefox-31.1.0/es-MX.xpi) = 402868
+SHA256 (xpi/firefox-31.1.0/et.xpi) = ade792f809a3b1ee686bf437f2befdfb7e65ad9a91bb40698685819ed18c5e8b
+SIZE (xpi/firefox-31.1.0/et.xpi) = 390557
+SHA256 (xpi/firefox-31.1.0/eu.xpi) = 53e13ebab713373b93f00a0e4a487e933397c89cfc6f206a6d07fd14d28bda29
+SIZE (xpi/firefox-31.1.0/eu.xpi) = 413195
+SHA256 (xpi/firefox-31.1.0/fa.xpi) = 4b2072c33e83e13a2e0cd7a6d9886dfb82e893712219a723602700fb81bd7d6a
+SIZE (xpi/firefox-31.1.0/fa.xpi) = 461053
+SHA256 (xpi/firefox-31.1.0/ff.xpi) = b095563401e8f78437225af75beda157dd1609f4f0be7e62049db7a5083bd903
+SIZE (xpi/firefox-31.1.0/ff.xpi) = 400339
+SHA256 (xpi/firefox-31.1.0/fi.xpi) = c036c1bfc0b9d89073b5fa6adfbdc9208bcae2a27a83c3f90a4a167f9e2635d8
+SIZE (xpi/firefox-31.1.0/fi.xpi) = 392936
+SHA256 (xpi/firefox-31.1.0/fr.xpi) = 58b56fa3ceec8683b49cf44f2824ef13f2d2d0a76a5e8d60a5a0ffffed26df43
+SIZE (xpi/firefox-31.1.0/fr.xpi) = 406658
+SHA256 (xpi/firefox-31.1.0/fy-NL.xpi) = 74829aaa4c360c4f819387bca1a04446f5a4bef53e392c96450dd81457394558
+SIZE (xpi/firefox-31.1.0/fy-NL.xpi) = 402126
+SHA256 (xpi/firefox-31.1.0/ga-IE.xpi) = 6fbe9255a9235881dd055eb3b3122d99481c5c011ab12f1e3a4dae885c472910
+SIZE (xpi/firefox-31.1.0/ga-IE.xpi) = 410273
+SHA256 (xpi/firefox-31.1.0/gd.xpi) = b8dd15a353aa2e3848a62499bf57048031d80371ef0babc73096018190367ddc
+SIZE (xpi/firefox-31.1.0/gd.xpi) = 403210
+SHA256 (xpi/firefox-31.1.0/gl.xpi) = cb06e5af30eeec11bd8936f0cdee6f5a0aa26a78716f6b358d735e3959acf0f4
+SIZE (xpi/firefox-31.1.0/gl.xpi) = 390795
+SHA256 (xpi/firefox-31.1.0/gu-IN.xpi) = d8964011feff1de17842e340773956797c7adc6aa936c95061fbe36c7e97fc3b
+SIZE (xpi/firefox-31.1.0/gu-IN.xpi) = 423699
+SHA256 (xpi/firefox-31.1.0/he.xpi) = e168004da7f838ce3cc34fdef40c12127bbdd6cdbd051e42151352b6f084a49f
+SIZE (xpi/firefox-31.1.0/he.xpi) = 427825
+SHA256 (xpi/firefox-31.1.0/hi-IN.xpi) = de772a0053dcee686fd27051509e30eb788f8cbc092bf7b34edcb3aa5119edc1
+SIZE (xpi/firefox-31.1.0/hi-IN.xpi) = 441598
+SHA256 (xpi/firefox-31.1.0/hr.xpi) = fb2e49e2887099646c30654be777281c79c1aac80176681c6d0dc0a0e2646d15
+SIZE (xpi/firefox-31.1.0/hr.xpi) = 424567
+SHA256 (xpi/firefox-31.1.0/hsb.xpi) = 2bded9383bae355da4bc2175f0af843d2077e0a5fd51779ffa567894aca8f9e7
+SIZE (xpi/firefox-31.1.0/hsb.xpi) = 413272
+SHA256 (xpi/firefox-31.1.0/hu.xpi) = b80f9a08c119a250a307651aa0e0a322c7c0e62cd4cad37cddc8123312f92e11
+SIZE (xpi/firefox-31.1.0/hu.xpi) = 398840
+SHA256 (xpi/firefox-31.1.0/hy-AM.xpi) = 211617d00244d71dff9324b548f5acec7224e754b8337640014727bca4699f15
+SIZE (xpi/firefox-31.1.0/hy-AM.xpi) = 478939
+SHA256 (xpi/firefox-31.1.0/id.xpi) = c52d16ac835539f10c511a505746337c33b90366eba1ba16b3b338eaf2c1f491
+SIZE (xpi/firefox-31.1.0/id.xpi) = 378497
+SHA256 (xpi/firefox-31.1.0/is.xpi) = 8ef1e8a9edffe2c3184815b80b631d855cdbf152ca573b78a9fc6f9ffcd957f1
+SIZE (xpi/firefox-31.1.0/is.xpi) = 427523
+SHA256 (xpi/firefox-31.1.0/it.xpi) = 4e8746af3f1f406346cedf296ae247952b9389f6ca1a157b4bf17dc30925670e
+SIZE (xpi/firefox-31.1.0/it.xpi) = 331102
+SHA256 (xpi/firefox-31.1.0/ja.xpi) = 0939a14082523c72369e96b77a9355c430e92c4b6d982e40216685b978de964b
+SIZE (xpi/firefox-31.1.0/ja.xpi) = 421664
+SHA256 (xpi/firefox-31.1.0/kk.xpi) = 3ca817eda7ddc640e8ae7fa1b8fd76bcd23778c1cc545e6c548cffc1372cf189
+SIZE (xpi/firefox-31.1.0/kk.xpi) = 439312
+SHA256 (xpi/firefox-31.1.0/km.xpi) = fa6e6c97d9f278726bf0325825b3578ea9da4c6b37fa3bc4ef5162ce78d1acd4
+SIZE (xpi/firefox-31.1.0/km.xpi) = 506672
+SHA256 (xpi/firefox-31.1.0/kn.xpi) = 17c8150951a77a306419d693b696ea3b8f12969e9f3168e7003ce449100152e2
+SIZE (xpi/firefox-31.1.0/kn.xpi) = 459087
+SHA256 (xpi/firefox-31.1.0/ko.xpi) = 568f7865a4358dc40d54d248f558e66d1ede204d8525033fbafe02446538a31a
+SIZE (xpi/firefox-31.1.0/ko.xpi) = 403011
+SHA256 (xpi/firefox-31.1.0/ku.xpi) = 6c24db090c42714d28afb6a28862a2be03db92248452a3f35e47439dde09f895
+SIZE (xpi/firefox-31.1.0/ku.xpi) = 420262
+SHA256 (xpi/firefox-31.1.0/lij.xpi) = a1aa34b0c7482273b8e61b4d4acee6d00fa99ff9e09790277b479736c95c44bf
+SIZE (xpi/firefox-31.1.0/lij.xpi) = 386060
+SHA256 (xpi/firefox-31.1.0/lt.xpi) = aa9832cbbeb5bcfd0fc50749aed59b17a61d917b7c0e7ec2534a394351732f16
+SIZE (xpi/firefox-31.1.0/lt.xpi) = 435627
+SHA256 (xpi/firefox-31.1.0/lv.xpi) = b6d00e547b6d64dee1d0a81c9ed70e499f84d5673bf3cacb3cefc74d45b7d78d
+SIZE (xpi/firefox-31.1.0/lv.xpi) = 398772
+SHA256 (xpi/firefox-31.1.0/mai.xpi) = 171e896ec959cf800d515250da137007da54b8c3cad0c788f6cd03575c66a4bf
+SIZE (xpi/firefox-31.1.0/mai.xpi) = 445081
+SHA256 (xpi/firefox-31.1.0/mk.xpi) = 2a47b2a121b9b709047bdf40319050cc9a1d29203ea366bf13daa77f44de53ae
+SIZE (xpi/firefox-31.1.0/mk.xpi) = 475679
+SHA256 (xpi/firefox-31.1.0/ml.xpi) = fdd966a7a76f1ad4b9adabe524596c83cd186191101e0c25b7af00047553b3e6
+SIZE (xpi/firefox-31.1.0/ml.xpi) = 466451
+SHA256 (xpi/firefox-31.1.0/mr.xpi) = c0ebdbae790e44a00d7d44d9f96cd2b3af0f98d90c03cbd5a8ea320ed1c9015f
+SIZE (xpi/firefox-31.1.0/mr.xpi) = 451488
+SHA256 (xpi/firefox-31.1.0/ms.xpi) = 6c09d65b63d690f8db251a37e50061f467affc15d657f21195dbca1160a925d8
+SIZE (xpi/firefox-31.1.0/ms.xpi) = 436427
+SHA256 (xpi/firefox-31.1.0/nb-NO.xpi) = 0be3a0d6d7aad8070321a85dc951de61d44171a1f9ae6882994378d840152ed5
+SIZE (xpi/firefox-31.1.0/nb-NO.xpi) = 392202
+SHA256 (xpi/firefox-31.1.0/nl.xpi) = 085b3e8286c878687c649f46a114d31fc3bab80a7ce023d7a4bfeb3f6416d03a
+SIZE (xpi/firefox-31.1.0/nl.xpi) = 391081
+SHA256 (xpi/firefox-31.1.0/nn-NO.xpi) = 6f66348dfb4bc7ae26a7896eda394aa3ea789c02c581582f4cbd18eaba7ee68d
+SIZE (xpi/firefox-31.1.0/nn-NO.xpi) = 386478
+SHA256 (xpi/firefox-31.1.0/or.xpi) = ac08cf99ed7072af121cbddf3cabd97aa69a3a57fd72f0b00468b3e1737a147f
+SIZE (xpi/firefox-31.1.0/or.xpi) = 464945
+SHA256 (xpi/firefox-31.1.0/pa-IN.xpi) = 2553060fd2d2300a8a3ef4dc0be305f5d635a7bae67d6ad2a83788b0ad455b87
+SIZE (xpi/firefox-31.1.0/pa-IN.xpi) = 439523
+SHA256 (xpi/firefox-31.1.0/pl.xpi) = c8d92ddfb7788d6062330edea64d19a8b2786bb54a81ae9282828c8a3e06fe5f
+SIZE (xpi/firefox-31.1.0/pl.xpi) = 374943
+SHA256 (xpi/firefox-31.1.0/pt-BR.xpi) = 6c17d3df7b92aceeaeecaeb4ed36c579a15ccd0bd1651d27b6c9b2873110736a
+SIZE (xpi/firefox-31.1.0/pt-BR.xpi) = 405761
+SHA256 (xpi/firefox-31.1.0/pt-PT.xpi) = 4729d757ef94ea7e0714d3c4f8bad065f04056a1ee9e8ba667b1f4dd16175e40
+SIZE (xpi/firefox-31.1.0/pt-PT.xpi) = 386540
+SHA256 (xpi/firefox-31.1.0/rm.xpi) = 63b8a224f3bf0d0de091e65a055e395918370d868d1918116a90e75b6a8b342d
+SIZE (xpi/firefox-31.1.0/rm.xpi) = 399481
+SHA256 (xpi/firefox-31.1.0/ro.xpi) = 772482c0a2e59f6aad3c4e1928b892472a8c4fb75c0376708953c2c895f56f01
+SIZE (xpi/firefox-31.1.0/ro.xpi) = 439584
+SHA256 (xpi/firefox-31.1.0/ru.xpi) = 480443679119ede20dc8798a1e2d67e2f1b636ccfeae3d1cba40a01e957d72fb
+SIZE (xpi/firefox-31.1.0/ru.xpi) = 368094
+SHA256 (xpi/firefox-31.1.0/si.xpi) = 9289ff40ad886e0fa9697076fa92af779a69f1878e53f0f6284607b4763611b0
+SIZE (xpi/firefox-31.1.0/si.xpi) = 463420
+SHA256 (xpi/firefox-31.1.0/sk.xpi) = 5dc10006aaa5db88784f1324b1b17f1bcbb909926e2fd4fe1ca8c8e56b5d1975
+SIZE (xpi/firefox-31.1.0/sk.xpi) = 413998
+SHA256 (xpi/firefox-31.1.0/sl.xpi) = ca48c6a9baba6c73e2b245212b0a5813d1891beab76601ec635f0ab70ecdfd29
+SIZE (xpi/firefox-31.1.0/sl.xpi) = 387330
+SHA256 (xpi/firefox-31.1.0/son.xpi) = a6e7198da1f03a6860c75171f5da2a1fe9edb3e3da9b656ac8ac6e45bd7aa1c2
+SIZE (xpi/firefox-31.1.0/son.xpi) = 395339
+SHA256 (xpi/firefox-31.1.0/sq.xpi) = 167963949e564a4229c093f8d753fc96138031907b02da838ba26a9305f0e889
+SIZE (xpi/firefox-31.1.0/sq.xpi) = 431332
+SHA256 (xpi/firefox-31.1.0/sr.xpi) = 0d2d0b8cb485b733f154709cd2c98dfded23b3cdab8ba4c46cff3c9b208282d7
+SIZE (xpi/firefox-31.1.0/sr.xpi) = 426098
+SHA256 (xpi/firefox-31.1.0/sv-SE.xpi) = 45769f32ba897c6dc6b4120571d37150dfb9cc4b92e7f9e1f9e206de5611c30d
+SIZE (xpi/firefox-31.1.0/sv-SE.xpi) = 399222
+SHA256 (xpi/firefox-31.1.0/ta.xpi) = 256937991c1cfb0fb3a68fb6f6a945eaa8fe9efb17c97a1d2d7f9fddc1949365
+SIZE (xpi/firefox-31.1.0/ta.xpi) = 447882
+SHA256 (xpi/firefox-31.1.0/te.xpi) = 932c90edc1d1d5e727c6d1f76daba8981a3c9b8d2973dc190de578ada91e92ba
+SIZE (xpi/firefox-31.1.0/te.xpi) = 462787
+SHA256 (xpi/firefox-31.1.0/th.xpi) = c8f3a9356f9dcf775905d18cfadaeedc8c7438d936d6355b9372a36008ad4cec
+SIZE (xpi/firefox-31.1.0/th.xpi) = 478322
+SHA256 (xpi/firefox-31.1.0/tr.xpi) = 65d8f20053a01a4fecf4ee0ab4702d6117595ab55cd85372ea82411778e76416
+SIZE (xpi/firefox-31.1.0/tr.xpi) = 417566
+SHA256 (xpi/firefox-31.1.0/uk.xpi) = 87974b8599b679aafd5d5df535579bdd6eb3084662b460eb72b1599aae9ef0c8
+SIZE (xpi/firefox-31.1.0/uk.xpi) = 428199
+SHA256 (xpi/firefox-31.1.0/vi.xpi) = e9b7eb60d61e1564597d2fa1e498fbb4c2e9a701d9ad5f22e636a31751c8fb85
+SIZE (xpi/firefox-31.1.0/vi.xpi) = 413570
+SHA256 (xpi/firefox-31.1.0/xh.xpi) = 5b667901df2f46c1d2532921844cddeed8a42e6c15bdd7e4e4e26d5832c01ee7
+SIZE (xpi/firefox-31.1.0/xh.xpi) = 398073
+SHA256 (xpi/firefox-31.1.0/zh-CN.xpi) = c6ea449ec7b810e024611f7f0a5cf53a8b4e2b2c1c0a7cf9c86477feee5e78a2
+SIZE (xpi/firefox-31.1.0/zh-CN.xpi) = 419826
+SHA256 (xpi/firefox-31.1.0/zh-TW.xpi) = b67ac2b60e0ced2f297b8c3c50a869995b1b730a1f517cec64504fa15fe5b70f
+SIZE (xpi/firefox-31.1.0/zh-TW.xpi) = 412717
+SHA256 (xpi/firefox-31.1.0/zu.xpi) = 1f17c41280a3554c984349293673ec91f2fbf22d9d852e83f4cf6fc5b32d5358
+SIZE (xpi/firefox-31.1.0/zu.xpi) = 433412
diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile
index a920ef61b548..c3677f674ea8 100644
--- a/www/firefox-esr/Makefile
+++ b/www/firefox-esr/Makefile
@@ -2,43 +2,44 @@
# $FreeBSD$
PORTNAME= firefox
-DISTVERSION= 24.7.0
+DISTVERSION= 31.1.0
+DISTVERSIONSUFFIX=esr.source
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source
PKGNAMESUFFIX= -esr
-DISTNAME= ${PORTNAME}-${DISTVERSION}esr.source
MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
-BUILD_DEPENDS= nspr>=4.10.2:${PORTSDIR}/devel/nspr \
- nss>=3.15.4:${PORTSDIR}/security/nss \
- sqlite3>=3.7.17:${PORTSDIR}/databases/sqlite3 \
- ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \
- cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \
- soundtouch>=1.7.0:${PORTSDIR}/audio/soundtouch \
- harfbuzz>=0.9.16:${PORTSDIR}/print/harfbuzz \
- graphite2>=1.2.3:${PORTSDIR}/graphics/graphite2 \
+BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \
+ nss>=3.16.2:${PORTSDIR}/security/nss \
+ soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \
+ harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \
+ graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \
libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \
opus>=1.1:${PORTSDIR}/audio/opus \
+ libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \
+ sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \
+ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \
v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \
zip:${PORTSDIR}/archivers/zip \
unzip:${PORTSDIR}/archivers/unzip
+# cairo>=1.12.16,2:${PORTSDIR}/graphics/cairo \
+
LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l
USE_AUTOTOOLS= autoconf213:env
-USE_PYTHON_BUILD=2
OBJDIR_BUILD= # in-tree build broken after bug 789837
USE_GECKO= gecko
CPE_PRODUCT= ${PORTNAME}_esr
-CONFLICTS= firefox-2[0-35-9].* firefox-1[1-689].*
+CONFLICTS= firefox-3[02-9].* firefox-2[0-35-9].*
MOZ_PKGCONFIG_FILES= # empty
-USE_MOZILLA= # empty
+USE_MOZILLA= -cairo
MOZILLA_NAME= Firefox
WANT_GNOME= yes
-USE_QT4= # empty
+USE_QT5= # empty
QT_NONSTANDARD= yes
ALL_TARGET= default
GNU_CONFIGURE= yes
@@ -56,12 +57,33 @@ MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \
.include "${.CURDIR}/../../www/firefox/Makefile.options"
.include <bsd.port.pre.mk>
-WRKSRC:= ${WRKDIR}/mozilla-esr24
+WRKSRC:= ${WRKDIR}/mozilla-esr31
+
+# avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1>
+# http://svnweb.freebsd.org/changeset/base/255804
+.if ${CHOSEN_COMPILER_TYPE} == clang && ${ARCH} == i386 && ${OSVERSION} < 1000056
+. if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
+BROKEN= Cannot build with OPTIMIZED_CFLAGS option due to \
+ a ${CHOSEN_COMPILER_TYPE} bug: unset the option or \
+ use FAVORITE_COMPILER=gcc in Makefile.local/make.conf
+# apply workaround only for -O2 or greater
+. elif ${CXXFLAGS:M-O*} && ! ${CXXFLAGS:M-O[01]}
+. if ${MACHINE_CPU:Msse2}
+CXXFLAGS+= -msse2
+. else
+CXXFLAGS+= -O1
+. endif
+. endif
+.endif
.if ${PORT_OPTIONS:MALSA}
RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib
.endif
+.if ${PORT_OPTIONS:MGSTREAMER}
+RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:${PORTSDIR}/multimedia/gstreamer1-libav
+.endif
+
post-extract:
@${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' -e 's|@MOZILLA@|${MOZILLA}|' \
-e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|' \
diff --git a/www/firefox-esr/distinfo b/www/firefox-esr/distinfo
index ff44c811e43b..e97e56ff251a 100644
--- a/www/firefox-esr/distinfo
+++ b/www/firefox-esr/distinfo
@@ -1,2 +1,2 @@
-SHA256 (firefox-24.7.0esr.source.tar.bz2) = 079b6021f153ba11658cefe41d467e25357cd78e84d3d66c6abcfecb5a00121f
-SIZE (firefox-24.7.0esr.source.tar.bz2) = 119967111
+SHA256 (firefox-31.1.0esr.source.tar.bz2) = 209c2666757c8ffeb9b8139f24a5bfda65fd52c78ce61e300e3547624bc42a7e
+SIZE (firefox-31.1.0esr.source.tar.bz2) = 147741041
diff --git a/www/firefox-esr/files/patch-bug1013675 b/www/firefox-esr/files/patch-bug1013675
index cb1b4d0f5ea7..eac435acf3d0 100644
--- a/www/firefox-esr/files/patch-bug1013675
+++ b/www/firefox-esr/files/patch-bug1013675
@@ -2,7 +2,7 @@ diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp
index 13a286f..293bd73 100644
--- xpcom/base/nsDebugImpl.cpp
+++ xpcom/base/nsDebugImpl.cpp
-@@ -45,13 +45,44 @@
+@@ -45,12 +45,43 @@
#endif
#endif
@@ -10,7 +10,6 @@ index 13a286f..293bd73 100644
+#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
+ || defined(__NetBSD__) || defined(__OpenBSD__)
#include <stdbool.h>
- #include <sys/types.h>
#include <unistd.h>
+#include <sys/param.h>
#include <sys/sysctl.h>
diff --git a/www/firefox-esr/files/patch-bug1013882 b/www/firefox-esr/files/patch-bug1013882
new file mode 100644
index 000000000000..86dc379fe50f
--- /dev/null
+++ b/www/firefox-esr/files/patch-bug1013882
@@ -0,0 +1,69 @@
+diff --git b2g/installer/Makefile.in b2g/installer/Makefile.in
+index 754312a..c69904c 100644
+--- b2g/installer/Makefile.in
++++ b2g/installer/Makefile.in
+@@ -63,6 +63,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)))
+ DEFINES += -DMOZ_RTSP
+ endif
+
++ifdef MOZ_DEBUG
++DEFINES += -DMOZ_DEBUG=1
++endif
++
+ ifdef GKMEDIAS_SHARED_LIBRARY
+ DEFINES += -DGKMEDIAS_SHARED_LIBRARY
+ endif
+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
+@@ -576,7 +576,7 @@
+ @BINPATH@/components/MozKeyboard.js
+ @BINPATH@/components/InputMethod.manifest
+
+-#ifdef MOZ_DEBUG
++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
+ @BINPATH@/components/TestInterfaceJS.js
+ @BINPATH@/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
+@@ -583,7 +583,7 @@
+ @BINPATH@/components/MozKeyboard.js
+ @BINPATH@/components/InputMethod.manifest
+
+-#ifdef MOZ_DEBUG
++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
+ @BINPATH@/components/TestInterfaceJS.js
+ @BINPATH@/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-bug1015547 b/www/firefox-esr/files/patch-bug1015547
index df963e0de88c..ecb488c36e7f 100644
--- a/www/firefox-esr/files/patch-bug1015547
+++ b/www/firefox-esr/files/patch-bug1015547
@@ -2,11 +2,12 @@ diff --git configure.in configure.in
index 7bed45f..053de17 100644
--- configure.in
+++ configure.in
-@@ -3166,6 +3166,7 @@ AC_CHECK_FUNCS(random strerror lchown fc
- AC_CHECK_FUNCS(statvfs64 statvfs statfs64 statfs)
- AC_CHECK_FUNCS(flockfile getpagesize)
- AC_CHECK_FUNCS(localtime_r strtok_r)
-+AC_CHECK_FUNCS(arc4random arc4random_buf)
+@@ -2950,7 +2950,7 @@ dnl Checks for library functions.
+ dnl ========================================================
+ AC_PROG_GCC_TRADITIONAL
+ AC_FUNC_MEMCMP
+-AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r)
++AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r arc4random arc4random_buf)
dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
diff --git a/www/firefox/files/patch-bug1026828 b/www/firefox-esr/files/patch-bug1026828
index 69e79f5ac560..69e79f5ac560 100644
--- a/www/firefox/files/patch-bug1026828
+++ b/www/firefox-esr/files/patch-bug1026828
diff --git a/www/firefox-esr/files/patch-bug1041381 b/www/firefox-esr/files/patch-bug1041381
new file mode 100644
index 000000000000..ef90b7b00c3f
--- /dev/null
+++ b/www/firefox-esr/files/patch-bug1041381
@@ -0,0 +1,12 @@
+diff --git config/rules.mk config/rules.mk
+index 1dee8c3..4d67eda 100644
+--- config/rules.mk
++++ config/rules.mk
+@@ -822,6 +822,7 @@ endif
+ ifdef DTRACE_PROBE_OBJ
+ EXTRA_DEPS += $(DTRACE_PROBE_OBJ)
+ OBJS += $(DTRACE_PROBE_OBJ)
++EXCLUDED_OBJS += $(DTRACE_PROBE_OBJ)
+ endif
+
+ $(filter %.$(LIB_SUFFIX),$(LIBRARY)): $(OBJS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
diff --git a/www/firefox-esr/files/patch-bug1041795 b/www/firefox-esr/files/patch-bug1041795
index ba567f83dcac..3e92884412fb 100644
--- a/www/firefox-esr/files/patch-bug1041795
+++ b/www/firefox-esr/files/patch-bug1041795
@@ -20,28 +20,6 @@ index 4d67eda..783942f 100644
endif
$(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS))
@$(RM) $(DTRACE_PROBE_OBJ)
-diff --git js/src/config/rules.mk js/src/config/rules.mk
-index 4d67eda..783942f 100644
---- js/src/config/rules.mk
-+++ js/src/config/rules.mk
-@@ -858,7 +858,7 @@ ifdef DTRACE_PROBE_OBJ
- ifndef DTRACE_LIB_DEPENDENT
- NON_DTRACE_OBJS := $(filter-out $(DTRACE_PROBE_OBJ),$(OBJS))
- $(DTRACE_PROBE_OBJ): $(NON_DTRACE_OBJS)
-- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
-+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
- endif
- endif
- endif
-@@ -876,7 +876,7 @@ ifndef INCREMENTAL_LINKER
- endif
- ifdef DTRACE_LIB_DEPENDENT
- ifndef XP_MACOSX
-- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
-+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
- endif
- $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS))
- @$(RM) $(DTRACE_PROBE_OBJ)
diff --git js/src/Makefile.in js/src/Makefile.in
index 28ca5e8..96793d7 100644
--- js/src/Makefile.in
diff --git a/www/firefox-esr/files/patch-bug1046224 b/www/firefox-esr/files/patch-bug1046224
new file mode 100644
index 000000000000..50d268f8fabe
--- /dev/null
+++ b/www/firefox-esr/files/patch-bug1046224
@@ -0,0 +1,26 @@
+diff --git configure.in configure.in
+index 1853029..559bd45 100644
+--- configure.in
++++ configure.in
+@@ -2651,7 +2651,7 @@ if test "$ac_cv_sockaddr_sa_len" = true ; then
+ AC_DEFINE(HAVE_SA_LEN)
+ fi
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
+diff --git js/src/configure.in js/src/configure.in
+index 134dfd3..682c1fb 100644
+--- js/src/configure.in
++++ js/src/configure.in
+@@ -2153,7 +2153,7 @@ dnl Quota support
+ MOZ_CHECK_HEADERS(sys/quota.h)
+ MOZ_CHECK_HEADERS(linux/quota.h)
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
diff --git a/www/firefox-esr/files/patch-bug702179 b/www/firefox-esr/files/patch-bug702179
index 5754b607ad57..d7b90a082519 100644
--- a/www/firefox-esr/files/patch-bug702179
+++ b/www/firefox-esr/files/patch-bug702179
@@ -25,11 +25,12 @@ diff --git js/src/Makefile.in js/src/Makefile.in
index e28160a..28ca5e8 100644
--- js/src/Makefile.in
+++ js/src/Makefile.in
-@@ -35,7 +35,6 @@ ifdef JS_SHARED_LIBRARY
- FORCE_SHARED_LIB = 1
- endif
- FORCE_STATIC_LIB = 1
--DIST_INSTALL = 1
+@@ -18,8 +18,6 @@ run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
+ STATIC_LIBRARY_NAME = js_static
+ LIBS = $(NSPR_LIBS)
- ###############################################
- # BEGIN include sources for low-level code shared with mfbt
+-DIST_INSTALL = 1
+-
+ ifdef JS_STANDALONE
+ SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt)
+ ifndef MOZ_NATIVE_ZLIB
diff --git a/www/firefox-esr/files/patch-bug779713 b/www/firefox-esr/files/patch-bug779713
index 1398d36f6a15..e4643f4422cb 100644
--- a/www/firefox-esr/files/patch-bug779713
+++ b/www/firefox-esr/files/patch-bug779713
@@ -1,8 +1,15 @@
-diff --git mfbt/Util.h mfbt/Util.h
+diff --git mfbt/Alignment.h mfbt/Alignment.h
index e0843ca..353ec36 100644
---- mfbt/Util.h
-+++ mfbt/Util.h
-@@ -19,6 +19,13 @@
+--- mfbt/Alignment.h
++++ mfbt/Alignment.h
+@@ -9,11 +9,20 @@
+ #ifndef mozilla_Alignment_h
+ #define mozilla_Alignment_h
+
++#include "mozilla/Attributes.h"
++
+ #include <stddef.h>
+ #include <stdint.h>
namespace mozilla {
@@ -14,9 +21,9 @@ index e0843ca..353ec36 100644
+#define MOZ_ALIGNOF(T) __alignof(T)
+#else
/*
- * This class, and the corresponding macro MOZ_ALIGNOF, figure out how many
+ * This class, and the corresponding macro MOZ_ALIGNOF, figures out how many
* bytes of alignment a given type needs.
-@@ -37,6 +44,7 @@ class AlignmentFinder
+@@ -32,6 +41,7 @@ public:
};
#define MOZ_ALIGNOF(T) mozilla::AlignmentFinder<T>::alignment
@@ -24,7 +31,7 @@ index e0843ca..353ec36 100644
/*
* Declare the MOZ_ALIGNED_DECL macro for declaring aligned types.
-@@ -48,7 +56,10 @@ class AlignmentFinder
+@@ -43,7 +53,10 @@ public:
* will declare a two-character array |arr| aligned to 8 bytes.
*/
@@ -40,7 +47,7 @@ diff --git mfbt/Attributes.h mfbt/Attributes.h
index d317766..ddb13da 100644
--- mfbt/Attributes.h
+++ mfbt/Attributes.h
-@@ -67,6 +67,9 @@
+@@ -54,6 +54,9 @@
# ifndef __has_extension
# define __has_extension __has_feature /* compatibility, for older versions of clang */
# endif
@@ -50,7 +57,7 @@ index d317766..ddb13da 100644
# if __has_extension(cxx_constexpr)
# define MOZ_HAVE_CXX11_CONSTEXPR
# endif
-@@ -85,6 +88,9 @@
+@@ -75,6 +78,9 @@
# endif
#elif defined(__GNUC__)
# if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
@@ -60,13 +67,11 @@ index d317766..ddb13da 100644
# if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0)
# define MOZ_HAVE_CXX11_OVERRIDE
# define MOZ_HAVE_CXX11_FINAL final
-@@ -102,6 +108,9 @@
- # define MOZ_HAVE_NEVER_INLINE __attribute__((noinline))
+@@ -96,6 +102,7 @@
# define MOZ_HAVE_NORETURN __attribute__((noreturn))
#elif defined(_MSC_VER)
-+# if _MSC_VER >= 1800
+ # if _MSC_VER >= 1800
+# define MOZ_HAVE_CXX11_ALIGNAS
-+# endif
+ # define MOZ_HAVE_CXX11_DELETE
+ # endif
# if _MSC_VER >= 1700
- # define MOZ_HAVE_CXX11_FINAL final
- # else
diff --git a/www/firefox-esr/files/patch-bug783463 b/www/firefox-esr/files/patch-bug783463
deleted file mode 100644
index dedbb7003927..000000000000
--- a/www/firefox-esr/files/patch-bug783463
+++ /dev/null
@@ -1,14 +0,0 @@
---- gfx/skia/moz.build~
-+++ gfx/skia/moz.build
-@@ -188,10 +188,9 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
- 'SkMMapStream.cpp',
- 'SkOSFile.cpp',
- ]
-- if CONFIG['OS_TARGET'] == 'Linux':
-+ if CONFIG['MOZ_X11'] == 1 or CONFIG['OS_TARGET'] == 'Linux':
- CPP_SOURCES += [
- 'SkFontHost_linux.cpp',
-- 'SkFontHost_tables.cpp',
- 'SkThread_pthread.cpp',
- 'SkTime_Unix.cpp',
- ]
diff --git a/www/firefox-esr/files/patch-bug803480 b/www/firefox-esr/files/patch-bug803480
deleted file mode 100644
index 5f5b4fe7f392..000000000000
--- a/www/firefox-esr/files/patch-bug803480
+++ /dev/null
@@ -1,102 +0,0 @@
-diff --git configure.in configure.in
-index a0575dc..be327fd 100644
---- configure.in
-+++ configure.in
-@@ -4306,7 +4306,6 @@ NS_PRINTING=1
- MOZ_PDF_PRINTING=
- MOZ_DISABLE_CRYPTOLEGACY=
- NSS_DISABLE_DBM=
--NECKO_WIFI=1
- NECKO_COOKIES=1
- NECKO_PROTOCOLS_DEFAULT="about data file ftp http res viewsource websocket wyciwyg device"
- USE_ARM_KUSER=
-@@ -4336,11 +4335,6 @@ case "${target}" in
- fi
-
- NSS_DISABLE_DBM=1
-- if test -z "$gonkdir"; then
-- NECKO_WIFI=
-- else
-- NECKO_WIFI=1
-- fi
- MOZ_THEME_FASTSTRIPE=1
- MOZ_TREE_FREETYPE=1
- MOZ_MEMORY=1
-@@ -8485,28 +8479,39 @@ done
- dnl
- dnl option to disable necko's wifi scanner
- dnl
-+
-+case "$OS_TARGET" in
-+ OS2)
-+ dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
-+ ;;
-+ Android)
-+ if test -n "$gonkdir"; then
-+ NECKO_WIFI=1
-+ fi
-+ ;;
-+ Darwin|SunOS|WINNT)
-+ NECKO_WIFI=1
-+ ;;
-+ Linux)
-+ if test -z "$MOZ_ENABLE_DBUS"; then
-+ AC_MSG_ERROR([Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi])
-+ fi
-+ NECKO_WIFI=1
-+ NECKO_WIFI_DBUS=1
-+ ;;
-+esac
-+
- MOZ_ARG_DISABLE_BOOL(necko-wifi,
- [ --disable-necko-wifi Disable necko wifi scanner],
- NECKO_WIFI=,
- NECKO_WIFI=1)
-
--if test "$OS_ARCH" = "OS2"; then
-- dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
-- NECKO_WIFI=
--fi
--if test "$NECKO_WIFI" -a \
-- "$OS_ARCH" != "Linux" -a \
-- "$OS_ARCH" != "Darwin" -a \
-- "$OS_ARCH" != "SunOS" -a \
-- "$OS_ARCH" != "WINNT"; then
-- AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi])
--fi
--
- if test "$NECKO_WIFI"; then
- AC_DEFINE(NECKO_WIFI)
- _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_WIFI"
- fi
- AC_SUBST(NECKO_WIFI)
-+AC_SUBST(NECKO_WIFI_DBUS)
-
- dnl
- dnl option to disable cookies
-diff --git netwerk/wifi/Makefile.in netwerk/wifi/Makefile.in
-index 26dbd79..4cbf912 100644
---- netwerk/wifi/Makefile.in
-+++ netwerk/wifi/Makefile.in
-@@ -20,7 +20,7 @@ ifeq ($(OS_ARCH),SunOS)
- OS_INCLUDES += $(GLIB_CFLAGS)
- endif
-
--ifdef MOZ_ENABLE_DBUS
-+ifdef NECKO_WIFI_DBUS
- OS_INCLUDES += $(MOZ_DBUS_GLIB_CFLAGS)
- endif
-
-diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build
-index 5e70211..07b01de 100644
---- netwerk/wifi/moz.build
-+++ netwerk/wifi/moz.build
-@@ -43,7 +43,7 @@ elif CONFIG['OS_ARCH'] == 'SunOS':
- 'nsWifiScannerSolaris.cpp',
- ]
-
--if CONFIG['MOZ_ENABLE_DBUS']:
-+if CONFIG['NECKO_WIFI_DBUS']:
- CPP_SOURCES += [
- 'nsWifiScannerDBus.cpp',
- ]
diff --git a/www/firefox-esr/files/patch-bug807492 b/www/firefox-esr/files/patch-bug807492
deleted file mode 100644
index 3b39766e0492..000000000000
--- a/www/firefox-esr/files/patch-bug807492
+++ /dev/null
@@ -1,628 +0,0 @@
-JJdiff --git configure.in configure.in
-index c167461..8346c11 100644
---- configure.in
-+++ configure.in
-@@ -5246,17 +5246,17 @@ if test "$NS_PRINTING"; then
- AC_DEFINE(NS_PRINT_PREVIEW)
- fi
-
- dnl Turn off webrtc for OS's we don't handle yet, but allow
- dnl --enable-webrtc to override. Can disable for everything in
- dnl the master list above.
- if test -n "$MOZ_WEBRTC"; then
- case "$target" in
-- *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*)
-+ *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*)
- dnl Leave enabled
- ;;
- *)
- dnl default to disabled for all others
- MOZ_WEBRTC=
- ;;
- esac
- fi
-diff --git media/mtransport/objs.mk media/mtransport/objs.mk
-index f1fc85f..141e8ca 100644
---- media/mtransport/objs.mk
-+++ media/mtransport/objs.mk
-@@ -18,22 +18,26 @@ LOCAL_INCLUDES += \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/util/libekr \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/log \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/registry \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/stats \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/plugin \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/event \
- $(NULL)
-
--ifeq ($(OS_TARGET), Darwin)
-+ifneq (,$(filter Darwin DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET)))
- LOCAL_INCLUDES += \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/darwin/include \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/generic/include \
- $(NULL)
-+ifeq ($(OS_TARGET), Darwin)
- DEFINES += -DDARWIN
-+else
-+DEFINES += -DBSD
-+endif
- endif
-
- ifeq ($(OS_TARGET), Linux)
- LOCAL_INCLUDES += \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/linux/include \
- -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/generic/include \
- $(NULL)
- DEFINES += -DLINUX
-diff --git media/mtransport/test/Makefile.in media/mtransport/test/Makefile.in
-index c1d5bf4..2ecf2c7 100644
---- media/mtransport/test/Makefile.in
-+++ media/mtransport/test/Makefile.in
-@@ -73,22 +73,24 @@ DEFINES += -D__Userspace_os_FreeBSD=1
- else
- #default_fallback; probably doesn't work
- DEFINES += -D__Userspace_os_$(OS_TARGET)=1
- endif
- endif
- endif
- endif
-
--ifeq ($(OS_TARGET), Darwin)
-+ifneq (,$(filter Darwin DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET)))
- LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/darwin/include
-+ifeq ($(OS_TARGET), Darwin)
- DEFINES += \
- -DGTEST_USE_OWN_TR1_TUPLE=1 \
- $(NULL)
- endif
-+endif
-
- ifeq ($(OS_TARGET), Linux)
- LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/linux/include
- endif
-
- ifeq ($(OS_TARGET), Android)
- LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/android/include
-
-diff --git media/mtransport/third_party/nICEr/nicer.gyp media/mtransport/third_party/nICEr/nicer.gyp
-index 0e1f8b4..9a4b995 100644
---- media/mtransport/third_party/nICEr/nicer.gyp
-+++ media/mtransport/third_party/nICEr/nicer.gyp
-@@ -126,26 +126,36 @@
- 'R_DEFINED_UINT2=uint16_t',
- 'R_DEFINED_INT4=int32_t',
- 'R_DEFINED_UINT4=uint32_t',
- 'R_DEFINED_INT8=int64_t',
- 'R_DEFINED_UINT8=uint64_t',
- ],
-
- 'conditions' : [
-- ## Mac
-+ ## Mac and BSDs
- [ 'OS == "mac"', {
-+ 'defines' : [
-+ 'DARWIN',
-+ 'HAVE_XLOCALE',
-+ ],
-+ }],
-+ [ 'os_bsd == 1', {
-+ 'defines' : [
-+ 'BSD',
-+ ],
-+ }],
-+ [ 'OS == "mac" or os_bsd == 1', {
- 'cflags_mozilla': [
- '-Wall',
- '-Wno-parentheses',
- '-Wno-strict-prototypes',
- '-Wmissing-prototypes',
- ],
- 'defines' : [
-- 'DARWIN',
- 'HAVE_LIBM=1',
- 'HAVE_STRDUP=1',
- 'HAVE_STRLCPY=1',
- 'HAVE_SYS_TIME_H=1',
- 'HAVE_VFPRINTF=1',
- 'NEW_STDIO'
- 'RETSIGTYPE=void',
- 'TIME_WITH_SYS_TIME_H=1',
-diff --git media/mtransport/third_party/nICEr/src/stun/addrs.c media/mtransport/third_party/nICEr/src/stun/addrs.c
-index b0b66b2..04fea94 100644
---- media/mtransport/third_party/nICEr/src/stun/addrs.c
-+++ media/mtransport/third_party/nICEr/src/stun/addrs.c
-@@ -50,17 +50,19 @@ static char *RCSSTRING __UNUSED__="$Id: addrs.c,v 1.2 2008/04/28 18:21:30 ekr Ex
- #else
- #include <syslog.h>
- /* Work around an Android NDK < r8c bug */
- #undef __unused
- #include <linux/sysctl.h>
- #endif
- #include <net/if.h>
- #ifndef LINUX
-+#if !defined(__OpenBSD__) && !defined(__NetBSD__)
- #include <net/if_var.h>
-+#endif
- #include <net/if_dl.h>
- #include <net/if_types.h>
- #include <sys/sockio.h>
- #else
- #include <linux/if.h>
- #endif
- #include <net/route.h>
-
-@@ -75,17 +77,17 @@ static char *RCSSTRING __UNUSED__="$Id: addrs.c,v 1.2 2008/04/28 18:21:30 ekr Ex
- #include <netdb.h>
- #endif /* UNIX */
-
- #include "stun.h"
- #include "addrs.h"
-
-
-
--#ifdef DARWIN
-+#if defined(BSD) || defined(DARWIN)
- /*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
-@@ -685,17 +687,17 @@ nr_stun_remove_duplicate_addrs(nr_transport_addr addrs[], int remove_loopback, i
- }
-
- int
- nr_stun_get_addrs(nr_transport_addr addrs[], int maxaddrs, int drop_loopback, int *count)
- {
- int _status=0;
- int i;
-
--#ifdef DARWIN
-+#if defined(BSD) || defined(DARWIN)
- _status = stun_get_mib_addrs(addrs, maxaddrs, count);
- #elif defined(WIN32)
- _status = stun_get_win32_addrs(addrs, maxaddrs, count);
- #elif defined(__sparc__)
- _status = stun_get_sparc_addrs(addrs, maxaddrs, count);
- #else
- _status = stun_get_siocgifconf_addrs(addrs, maxaddrs, count);
- #endif
-diff --git media/mtransport/third_party/nICEr/src/stun/stun.h media/mtransport/third_party/nICEr/src/stun/stun.h
-index a3c51f9..eb65ac8 100644
---- media/mtransport/third_party/nICEr/src/stun/stun.h
-+++ media/mtransport/third_party/nICEr/src/stun/stun.h
-@@ -36,21 +36,25 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- #ifdef WIN32
- #include <winsock2.h>
- #else
- #include <sys/param.h>
- #include <sys/socket.h>
- #include <net/if.h>
- #ifndef LINUX
-+#if !defined(__OpenBSD__) && !defined(__NetBSD__)
- #include <net/if_var.h>
-+#endif
- #include <net/if_dl.h>
- #include <net/if_types.h>
- #endif
-+#ifndef BSD
- #include <net/route.h>
-+#endif
- #include <netinet/in.h>
- #ifndef LINUX
- #include <netinet/in_var.h>
- #endif
- #include <arpa/inet.h>
- #include <netdb.h>
- #endif
- #include <time.h>
-diff --git media/mtransport/third_party/nICEr/src/util/mbslen.c media/mtransport/third_party/nICEr/src/util/mbslen.c
-index cc260b7..66af2d7 100644
---- media/mtransport/third_party/nICEr/src/util/mbslen.c
-+++ media/mtransport/third_party/nICEr/src/util/mbslen.c
-@@ -38,50 +38,58 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- #include <errno.h>
- #include <csi_platform.h>
-
- #include <assert.h>
- #include <locale.h>
- #include <stdlib.h>
- #include <wchar.h>
--#ifdef DARWIN
-+
-+#ifdef __FreeBSD__
-+#include <osreldate.h>
-+# if __FreeBSD_version > 900505
-+# define HAVE_XLOCALE
-+# endif
-+#endif
-+
-+#ifdef HAVE_XLOCALE
- #include <xlocale.h>
--#endif /* DARWIN */
-+#endif /* HAVE_XLOCALE */
-
- #include "nr_api.h"
- #include "mbslen.h"
-
- /* get number of characters in a mult-byte character string */
- int
- mbslen(const char *s, size_t *ncharsp)
- {
--#ifdef DARWIN
-+#ifdef HAVE_XLOCALE
- static locale_t loc = 0;
- static int initialized = 0;
--#endif /* DARWIN */
-+#endif /* HAVE_XLOCALE */
- #ifdef WIN32
- char *my_locale=0;
- unsigned int i;
- #endif /* WIN32 */
- int _status;
- size_t nbytes;
- int nchars;
- mbstate_t mbs;
-
--#ifdef DARWIN
-+#ifdef HAVE_XLOCALE
- if (! initialized) {
- initialized = 1;
- loc = newlocale(LC_CTYPE_MASK, "UTF-8", LC_GLOBAL_LOCALE);
- }
-
- if (loc == 0) {
- /* unable to create the UTF-8 locale */
- assert(loc != 0); /* should never happen */
--#endif /* DARWIN */
-+#endif /* HAVE_XLOCALE */
-
- #ifdef WIN32
- if (!setlocale(LC_CTYPE, 0))
- ABORT(R_INTERNAL);
-
- if (!(my_locale = r_strdup(setlocale(LC_CTYPE, 0))))
- ABORT(R_NO_MEMORY);
-
-@@ -94,28 +102,28 @@ mbslen(const char *s, size_t *ncharsp)
- /* can't count UTF-8 characters with mbrlen if the locale isn't UTF-8 */
- /* null-checking setlocale is required because Android */
- char *locale = setlocale(LC_CTYPE, 0);
- /* some systems use "utf8" instead of "UTF-8" like Fedora 17 */
- if (!locale || (!strcasestr(locale, "UTF-8") && !strcasestr(locale, "UTF8")))
- ABORT(R_NOT_FOUND);
- #endif
-
--#ifdef DARWIN
-+#ifdef HAVE_XLOCALE
- }
--#endif /* DARWIN */
-+#endif /* HAVE_XLOCALE */
-
- memset(&mbs, 0, sizeof(mbs));
- nchars = 0;
-
--#ifdef DARWIN
-+#ifdef HAVE_XLOCALE
- while (*s != '\0' && (nbytes = mbrlen_l(s, strlen(s), &mbs, loc)) != 0)
- #else
- while (*s != '\0' && (nbytes = mbrlen(s, strlen(s), &mbs)) != 0)
--#endif /* DARWIN */
-+#endif /* HAVE_XLOCALE */
- {
- if (nbytes == (size_t)-1) /* should never happen */ {
- ABORT(R_INTERNAL);
- }
- if (nbytes == (size_t)-2) /* encoding error */ {
- ABORT(R_BAD_DATA);
- }
-
-diff --git media/mtransport/third_party/nrappkit/nrappkit.gyp media/mtransport/third_party/nrappkit/nrappkit.gyp
-index 3cc8e1c..74016c6 100644
---- media/mtransport/third_party/nrappkit/nrappkit.gyp
-+++ media/mtransport/third_party/nrappkit/nrappkit.gyp
-@@ -142,26 +142,35 @@
- 'R_DEFINED_UINT2=uint16_t',
- 'R_DEFINED_INT4=int32_t',
- 'R_DEFINED_UINT4=uint32_t',
- 'R_DEFINED_INT8=int64_t',
- 'R_DEFINED_UINT8=uint64_t',
- ],
-
- 'conditions' : [
-- ## Mac
-+ ## Mac and BSDs
- [ 'OS == "mac"', {
-+ 'defines' : [
-+ 'DARWIN',
-+ ],
-+ }],
-+ [ 'os_bsd == 1', {
-+ 'defines' : [
-+ 'BSD',
-+ ],
-+ }],
-+ [ 'OS == "mac" or os_bsd == 1', {
- 'cflags_mozilla': [
- '-Wall',
- '-Wno-parentheses',
- '-Wno-strict-prototypes',
- '-Wmissing-prototypes',
- ],
- 'defines' : [
-- 'DARWIN',
- 'HAVE_LIBM=1',
- 'HAVE_STRDUP=1',
- 'HAVE_STRLCPY=1',
- 'HAVE_SYS_TIME_H=1',
- 'HAVE_VFPRINTF=1',
- 'NEW_STDIO'
- 'RETSIGTYPE=void',
- 'TIME_WITH_SYS_TIME_H=1',
-diff --git media/mtransport/third_party/nrappkit/src/log/r_log.c media/mtransport/third_party/nrappkit/src/log/r_log.c
-index efb7ef2..aebf578 100644
---- media/mtransport/third_party/nrappkit/src/log/r_log.c
-+++ media/mtransport/third_party/nrappkit/src/log/r_log.c
-@@ -43,16 +43,17 @@ static char *RCSSTRING __UNUSED__ ="$Id: r_log.c,v 1.10 2008/11/25 22:25:18 adam
- #ifdef LINUX
- #define _BSD_SOURCE
- #endif
-
- #include "r_log.h"
- #include "hex.h"
-
- #include <string.h>
-+#include <errno.h>
- #ifndef _MSC_VER
- #include <strings.h>
- #include <syslog.h>
- #endif
- #include <registry.h>
- #include <time.h>
-
-
-diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-index bcb1ec0..bb73591 100644
---- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-+++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-@@ -33,7 +33,7 @@
- #ifndef _SYS_QUEUE_H_
- #define _SYS_QUEUE_H_
-
--#ifndef DARWIN
-+#if !defined(__FreeBSD__) && !defined(DARWIN)
- #include <stddef.h>
- #define __offsetof offsetof
- #endif
-diff --git media/mtransport/third_party/nrappkit/src/util/util.c media/mtransport/third_party/nrappkit/src/util/util.c
-index a7d4ff1..ff11a60 100644
---- media/mtransport/third_party/nrappkit/src/util/util.c
-+++ media/mtransport/third_party/nrappkit/src/util/util.c
-@@ -40,16 +40,17 @@
- static char *RCSSTRING __UNUSED__ ="$Id: util.c,v 1.5 2007/11/21 00:09:13 adamcain Exp $";
-
- #ifndef WIN32
- #include <sys/uio.h>
- #include <pwd.h>
- #include <dirent.h>
- #endif
- #include <string.h>
-+#include <errno.h>
- #include <ctype.h>
- #include <sys/stat.h>
- #ifdef OPENSSL
- #include <openssl/evp.h>
- #endif
- #include "nr_common.h"
- #include "r_common.h"
- #include "registry.h"
-diff --git media/webrtc/signaling/signaling.gyp media/webrtc/signaling/signaling.gyp
-index 2a91e3d..31de641 100644
---- media/webrtc/signaling/signaling.gyp
-+++ media/webrtc/signaling/signaling.gyp
-@@ -212,16 +212,29 @@
- 'SIPCC_BUILD',
- 'HAVE_WINSOCK2_H',
- 'CPR_STDINT_INCLUDE=\\"mozilla/StandardInteger.h\\"'
- ],
-
- 'cflags_mozilla': [
- ],
- }],
-+ ['os_bsd==1', {
-+ 'include_dirs': [
-+ ],
-+ 'defines': [
-+ # avoiding pointless ifdef churn
-+ 'SIP_OS_OSX',
-+ 'OSX',
-+ 'SECLIB_OPENSSL',
-+ ],
-+
-+ 'cflags_mozilla': [
-+ ],
-+ }],
- ['OS=="mac"', {
- 'include_dirs': [
- ],
- 'defines': [
- 'SIP_OS_OSX',
- 'OSX',
- '_FORTIFY_SOURCE=2',
- ],
-@@ -747,17 +760,17 @@
- 'EXTERNAL_TICK_REQUIRED',
- 'GIPS_VER=3480',
- ],
-
- 'cflags_mozilla': [
- ],
-
- }],
-- ['OS=="mac"', {
-+ ['OS=="mac" or os_bsd==1', {
-
- 'include_dirs': [
- ],
-
- 'sources': [
- # SIPSTACK
- './src/sipcc/core/sipstack/sip_platform_task.c',
-
-@@ -792,24 +805,23 @@
- './src/sipcc/cpr/darwin/cpr_darwin_timers_using_select.c',
- './src/sipcc/cpr/darwin/cpr_darwin_tst.h',
- './src/sipcc/cpr/darwin/cpr_darwin_types.h',
- ],
-
-
- 'defines' : [
- 'SIP_OS_OSX',
-- '_POSIX_SOURCE',
-+ # using BSD extensions, leave _POSIX_SOURCE undefined
- 'CPR_MEMORY_LITTLE_ENDIAN',
- 'NO_SOCKET_POLLING',
- 'USE_TIMER_SELECT_BASED',
- 'FULL_BUILD',
- 'STUBBED_OUT',
- 'USE_PRINTF',
-- '_DARWIN_C_SOURCE',
- 'NO_NSPR_10_SUPPORT',
- ],
-
- 'cflags_mozilla': [
- ],
- }],
- ],
-
-diff --git media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c
-index a7c47e1..4f191de 100644
---- media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c
-+++ media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c
-@@ -317,21 +317,25 @@ cprGetMessage (cprMsgQueue_t msgQueue, boolean waitForever, void **ppUserData)
- {
- static const char fname[] = "cprGetMessage";
-
- void *buffer = 0;
- cpr_msg_queue_t *msgq;
- cpr_msgq_node_t *node;
- struct timespec timeout;
- struct timeval tv;
-+#ifndef __APPLE__
-+ struct timezone tz;
-+#else
- // On the iPhone, there is a DarwinAlias problem with "timezone"
- struct _timezone {
- int tz_minuteswest; /* of Greenwich */
- int tz_dsttime; /* type of dst correction to apply */
- } tz;
-+#endif
-
- /* Initialize ppUserData */
- if (ppUserData) {
- *ppUserData = NULL;
- }
-
- msgq = (cpr_msg_queue_t *) msgQueue;
- if (msgq == NULL) {
-diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in
-index a30e330..cfbd8a3 100644
---- media/webrtc/signaling/test/Makefile.in
-+++ media/webrtc/signaling/test/Makefile.in
-@@ -81,17 +81,17 @@ endif
- ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
- LIBS += \
- $(XLIBS) \
- $(TK_LIBS) \
- $(MOZ_PANGO_LIBS) \
- $(NULL)
- endif
-
--ifeq ($(OS_TARGET),Linux)
-+ifneq (,$(filter Linux DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET)))
- LIBS += \
- $(MOZ_CAIRO_OSLIBS) \
- $(NULL)
- endif
-
- ifeq ($(OS_TARGET),Darwin)
- LIBS += \
- -framework AudioToolbox \
-diff --git media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py
-index 338d0b7..2241d41 100644
---- media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py
-+++ media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py
-@@ -1,16 +1,17 @@
- # Copyright (c) 2012 Mozilla Foundation. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
-
- import collections
- import gyp
- import gyp.common
- import sys
-+import platform
- import os
- import re
- import shlex
-
- generator_wants_sorted_dependencies = True
-
- generator_default_variables = {
- }
-@@ -107,30 +108,44 @@ endif
-
- def ensure_directory_exists(path):
- dir = os.path.dirname(path)
- if dir and not os.path.exists(dir):
- os.makedirs(dir)
-
- def GetFlavor(params):
- """Returns |params.flavor| if it's set, the system's default flavor else."""
-+ system = platform.system().lower()
- flavors = {
-- 'win32': 'win',
-- 'darwin': 'mac',
-- 'sunos5': 'solaris',
-- 'freebsd7': 'freebsd',
-- 'freebsd8': 'freebsd',
-+ 'microsoft': 'win',
-+ 'windows' : 'win',
-+ 'darwin' : 'mac',
-+ 'sunos' : 'solaris',
-+ 'dragonfly': 'bsd',
-+ 'freebsd' : 'bsd',
-+ 'netbsd' : 'bsd',
-+ 'openbsd' : 'bsd',
- }
-- flavor = flavors.get(sys.platform, 'linux')
-- return params.get('flavor', flavor)
-+
-+ if 'flavor' in params:
-+ return params['flavor']
-+ if system.startswith('cygwin'):
-+ return 'win'
-+ if system in flavors:
-+ return flavors[system]
-+
-+ return 'linux'
-
-
- def CalculateVariables(default_variables, params):
-+ flavor = GetFlavor(params)
-+ if flavor == 'bsd':
-+ flavor = platform.system().lower()
- generator_flags = params.get('generator_flags', {})
-- default_variables['OS'] = generator_flags.get('os', GetFlavor(params))
-+ default_variables['OS'] = generator_flags.get('os', flavor)
-
-
- def CalculateGeneratorInputInfo(params):
- """Calculate the generator specific info that gets fed to input (called by
- gyp)."""
- generator_flags = params.get('generator_flags', {})
- if generator_flags.get('adjust_static_libraries', False):
- global generator_wants_static_library_dependencies_adjusted
diff --git a/www/firefox-esr/files/patch-bug810716 b/www/firefox-esr/files/patch-bug810716
deleted file mode 100644
index 8c08e9a66986..000000000000
--- a/www/firefox-esr/files/patch-bug810716
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git configure.in configure.in
-index 2084be9..eb6eeb2 100644
---- configure.in
-+++ configure.in
-@@ -3369,14 +3369,19 @@ fi
- AC_CACHE_CHECK(
- [for res_ninit()],
- ac_cv_func_res_ninit,
-- [AC_TRY_LINK([
-+ [AC_TRY_RUN([
- #ifdef linux
- #define _BSD_SOURCE 1
- #endif
-+ #include <sys/types.h>
-+ #include <netinet/in.h>
-+ #include <arpa/nameser.h>
- #include <resolv.h>
-- ],
-- [int foo = res_ninit(&_res);],
-+ int main(int argc, char **argv){
-+ int foo = res_ninit(&_res);
-+ }],
- [ac_cv_func_res_ninit=yes],
-+ [ac_cv_func_res_ninit=no],
- [ac_cv_func_res_ninit=no])
- ])
-
-diff --git extensions/auth/nsAuthGSSAPI.cpp extensions/auth/nsAuthGSSAPI.cpp
-index e828beb..6444246 100644
---- extensions/auth/nsAuthGSSAPI.cpp
-+++ extensions/auth/nsAuthGSSAPI.cpp
-@@ -39,6 +39,9 @@ typedef KLStatus (*KLCacheHasValidTickets_type)(
- #endif
-
- #if defined(HAVE_RES_NINIT)
-+#include <sys/types.h>
-+#include <netinet/in.h>
-+#include <arpa/nameser.h>
- #include <resolv.h>
- #endif
-
-diff --git js/src/configure.in js/src/configure.in
-index e25f569..b9722f9 100644
---- js/src/configure.in
-+++ js/src/configure.in
-@@ -2797,14 +2797,19 @@ fi
- AC_CACHE_CHECK(
- [for res_ninit()],
- ac_cv_func_res_ninit,
-- [AC_TRY_LINK([
-+ [AC_TRY_RUN([
- #ifdef linux
- #define _BSD_SOURCE 1
- #endif
-+ #include <sys/types.h>
-+ #include <netinet/in.h>
-+ #include <arpa/nameser.h>
- #include <resolv.h>
-- ],
-- [int foo = res_ninit(&_res);],
-+ int main(int argc, char **argv){
-+ int foo = res_ninit(&_res);
-+ }],
- [ac_cv_func_res_ninit=yes],
-+ [ac_cv_func_res_ninit=no],
- [ac_cv_func_res_ninit=no])
- ])
-
diff --git a/www/firefox-esr/files/patch-bug826985 b/www/firefox-esr/files/patch-bug826985
index fe55ff667281..b8eee831f66d 100644
--- a/www/firefox-esr/files/patch-bug826985
+++ b/www/firefox-esr/files/patch-bug826985
@@ -26,22 +26,23 @@ index 55e4cd1..76567b3 100644
dnl enable once Signaling lands
MOZ_WEBRTC_SIGNALING=1
AC_DEFINE(MOZ_WEBRTC_SIGNALING)
-@@ -8981,6 +8984,10 @@ elif test "${OS_TARGET}" = "Android"; then
- fi
- fi
-
-+if test -n "$MOZ_LIBV4L2_LIBS"; then
-+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D use_libv4l2=1"
-+fi
-+
- if test -n "$MOZ_WEBRTC"; then
- AC_MSG_RESULT("generating WebRTC Makefiles...")
-
+diff --git build/gyp.mozbuild build/gyp.mozbuild
+index b483cd1..f1dd1f0 100644
+--- build/gyp.mozbuild
++++ build/gyp.mozbuild
+@@ -11,6 +11,7 @@ gyp_vars = {
+ 'have_ethtool_cmd_speed_hi': 1 if CONFIG['MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI'] else 0,
+ 'include_alsa_audio': 1 if CONFIG['MOZ_ALSA'] else 0,
+ 'include_pulse_audio': 1 if CONFIG['MOZ_PULSEAUDIO'] else 0,
++ 'use_libv4l2': 1 if CONFIG['MOZ_LIBV4L2_LIBS'] else 0,
+ # basic stuff for everything
+ 'include_internal_video_render': 0,
+ 'clang_use_chrome_plugins': 0,
diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in
index b483cd1..f1dd1f0 100644
--- media/webrtc/signaling/test/Makefile.in
+++ media/webrtc/signaling/test/Makefile.in
-@@ -17,6 +17,7 @@ LIBS = \
+@@ -7,6 +7,7 @@ LIBS = \
$(NSPR_LIBS) \
$(NSS_LIBS) \
$(REALTIME_LIBS) \
@@ -53,7 +54,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
-@@ -26,11 +26,23 @@
+@@ -25,10 +25,21 @@
#else
#include <linux/videodev2.h>
#endif
@@ -61,9 +62,8 @@ index 239a292..bab496c 100644
+#include <libv4l2.h>
+#endif
- #include "ref_count.h"
- #include "trace.h"
-
+ #include "webrtc/system_wrappers/interface/ref_count.h"
+ #include "webrtc/system_wrappers/interface/trace.h"
+#ifdef HAVE_LIBV4L2
+#define open v4l2_open
@@ -73,10 +73,9 @@ index 239a292..bab496c 100644
+#define mmap v4l2_mmap
+#define munmap v4l2_munmap
+#endif
-+
+
namespace webrtc
{
- namespace videocapturemodule
@@ -130,6 +142,11 @@ WebRtc_Word32 DeviceInfoLinux::GetDeviceName(
memset(deviceNameUTF8, 0, deviceNameLength);
memcpy(cameraName, cap.card, sizeof(cap.card));
@@ -152,13 +151,16 @@ index d46b5aa..e452223 100644
],
diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
index 9c16ffa..1db3794 100644
---- toolkit/library/Makefile.in
-+++ toolkit/library/Makefile.in
-@@ -405,6 +405,7 @@ endif
+--- toolkit/library/libxul.mk
++++ toolkit/library/libxul.mk
+@@ -182,6 +182,10 @@ endif
+
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib)
- ifdef MOZ_WEBRTC
++ifdef MOZ_LIBV4L2_LIBS
+EXTRA_DSO_LDOPTS += $(MOZ_LIBV4L2_LIBS)
- ifdef MOZ_PEERCONNECTION
- COMPONENT_LIBS += peerconnection
- endif
++endif
++
+ ifdef MOZ_WEBRTC
+ ifeq (WINNT,$(OS_TARGET))
+ EXTRA_DSO_LDOPTS += \
diff --git a/www/firefox-esr/files/patch-z-bug847568 b/www/firefox-esr/files/patch-bug847568
index 9c8105691ab2..1504654a4341 100644
--- a/www/firefox-esr/files/patch-z-bug847568
+++ b/www/firefox-esr/files/patch-bug847568
@@ -33,7 +33,7 @@ diff --git configure.in configure.in
index ac38f40..87536b7 100644
--- configure.in
+++ configure.in
-@@ -8032,6 +8032,56 @@ if test "$USE_FC_FREETYPE"; then
+@@ -8032,6 +8032,52 @@ if test "$USE_FC_FREETYPE"; then
fi
dnl ========================================================
@@ -46,9 +46,7 @@ index ac38f40..87536b7 100644
+MOZ_NATIVE_HARFBUZZ=)
+
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
-+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.16)
-+else
-+ MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
++ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.25)
+fi
+
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
@@ -64,7 +62,7 @@ index ac38f40..87536b7 100644
+MOZ_NATIVE_GRAPHITE2=)
+
+if test -n "$MOZ_NATIVE_GRAPHITE2"; then
-+ PKG_CHECK_MODULES(MOZ_GRAPHITE, graphite2)
++ PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2)
+
+ dnl graphite2.pc has bogus version, check manually
+ AC_TRY_COMPILE([ #include <graphite2/Font.h>
@@ -73,57 +71,35 @@ index ac38f40..87536b7 100644
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
-+ #if !GR2_VERSION_REQUIRE(1,2,3)
++ #if !GR2_VERSION_REQUIRE(1,2,4)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
-++else
-++ MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)'
+fi
+
+AC_SUBST(MOZ_NATIVE_GRAPHITE2)
-+AC_SUBST(MOZ_GRAPHITE_CFLAGS)
-+AC_SUBST(MOZ_GRAPHITE_LIBS)
++AC_SUBST(MOZ_GRAPHITE2_CFLAGS)
++AC_SUBST(MOZ_GRAPHITE2_LIBS)
+
+dnl ========================================================
dnl Check for pixman and cairo
dnl ========================================================
-@@ -8379,18 +8412,6 @@ QCMS_LIBS='$(DEPTH)/gfx/qcms/$(LIB_PREFI
- AC_SUBST(QCMS_LIBS)
+diff --git content/base/src/moz.build content/base/src/moz.build
+index d4f6380..0ee55df 100644
+--- content/base/src/moz.build
++++ content/base/src/moz.build
+@@ -179,6 +179,9 @@ SOURCES += [
+ 'nsObjectLoadingContent.cpp',
+ ]
- dnl ========================================================
--dnl HarfBuzz
--dnl ========================================================
--MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
--AC_SUBST(MOZ_HARFBUZZ_LIBS)
--
--dnl ========================================================
--dnl SIL Graphite
--dnl ========================================================
--MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)'
--AC_SUBST(MOZ_GRAPHITE_LIBS)
--
--dnl ========================================================
- dnl OTS
- dnl ========================================================
- MOZ_OTS_LIBS='$(DEPTH)/gfx/ots/src/$(LIB_PREFIX)mozots.$(LIB_SUFFIX)'
-diff --git content/base/src/Makefile.in content/base/src/Makefile.in
-index a618096..596901a 100644
---- content/base/src/Makefile.in
-+++ content/base/src/Makefile.in
-@@ -5,6 +5,10 @@
-
- include $(topsrcdir)/config/rules.mk
-
-+ifdef MOZ_NATIVE_HARFBUZZ
-+nsContentUtils.$(OBJ_SUFFIX): CXXFLAGS+=$(MOZ_HARFBUZZ_CFLAGS)
-+endif
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']]
+
- # gcc requires -msse2 for this file since it uses SSE2 intrinsics. (See bug
- # 585538 comment 12.)
- ifneq (,$(INTEL_ARCHITECTURE))
+ EXTRA_COMPONENTS += [
+ 'contentAreaDropListener.js',
+ 'contentAreaDropListener.manifest',
diff --git gfx/moz.build gfx/moz.build
index 519aa46..6929751 100644
--- gfx/moz.build
@@ -174,7 +150,7 @@ index 45c36ae..79d32cf 100644
CFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
+ifdef MOZ_NATIVE_GRAPHITE2
-+CXXFLAGS += $(MOZ_GRAPHITE_CFLAGS)
++CXXFLAGS += $(MOZ_GRAPHITE2_CFLAGS)
+endif
+
+ifdef MOZ_NATIVE_HARFBUZZ
@@ -196,29 +172,6 @@ index f6b9f7c..60863f4 100644
+ifdef MOZ_NATIVE_HARFBUZZ
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
+endif
-diff --git layout/media/Makefile.in layout/media/Makefile.in
-index 1cacbd7..a8cd156 100644
---- layout/media/Makefile.in
-+++ layout/media/Makefile.in
-@@ -18,10 +18,16 @@ endif
- SHARED_LIBRARY_LIBS = \
- $(MOZ_OTS_LIBS) \
- $(QCMS_LIBS) \
-- $(MOZ_GRAPHITE_LIBS) \
-- $(MOZ_HARFBUZZ_LIBS) \
- $(NULL)
-
-+ifndef MOZ_NATIVE_GRAPHITE2
-+SHARED_LIBRARY_LIBS += $(MOZ_GRAPHITE_LIBS)
-+endif
-+
-+ifndef MOZ_NATIVE_HARFBUZZ
-+SHARED_LIBRARY_LIBS += $(MOZ_HARFBUZZ_LIBS)
-+endif
-+
- ifdef MOZ_TREE_CAIRO
- SHARED_LIBRARY_LIBS += $(MOZ_CAIRO_LIBS)
- endif
diff --git netwerk/dns/Makefile.in netwerk/dns/Makefile.in
index 1cacbd7..f5d72bb 100644
--- netwerk/dns/Makefile.in
@@ -234,16 +187,16 @@ index 1cacbd7..f5d72bb 100644
# Generate the include file containing compact, static definitions
# for effective TLD data.
etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat
-diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
+diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
index 67f0db9..d42137a 100644
---- toolkit/library/Makefile.in
-+++ toolkit/library/Makefile.in
+--- toolkit/library/libxul.mk
++++ toolkit/library/libxul.mk
@@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN
EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS)
endif
+ifdef MOZ_NATIVE_GRAPHITE2
-+EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE_LIBS)
++EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE2_LIBS)
+endif
+
+ifdef MOZ_NATIVE_HARFBUZZ
diff --git a/www/firefox-esr/files/patch-bug851992 b/www/firefox-esr/files/patch-bug851992
deleted file mode 100644
index 4c322188c47c..000000000000
--- a/www/firefox-esr/files/patch-bug851992
+++ /dev/null
@@ -1,339 +0,0 @@
-diff --git a/config/Makefile.in b/config/Makefile.in
---- config/Makefile.in
-+++ config/Makefile.in
-@@ -97,16 +97,17 @@ export:: $(export-preqs)
- -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \
- -DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \
- -DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \
- -DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \
- -DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \
- -DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \
- -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
- -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
-+ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
- $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
- $(INSTALL) system_wrappers $(DIST)
-
- GARBAGE_DIRS += system_wrappers
- endif
-
- ifdef WRAP_STL_INCLUDES
- ifdef GNU_CXX
-diff --git a/config/system-headers b/config/system-headers
---- config/system-headers
-+++ config/system-headers
-@@ -1125,8 +1125,19 @@ gst/video/video.h
- sys/msg.h
- sys/ipc.h
- sys/thr.h
- sys/user.h
- kvm.h
- spawn.h
- err.h
- xlocale.h
-+#if MOZ_NATIVE_ICU==1
-+unicode/locid.h
-+unicode/numsys.h
-+unicode/ucal.h
-+unicode/ucol.h
-+unicode/udat.h
-+unicode/udatpg.h
-+unicode/uenum.h
-+unicode/unum.h
-+unicode/ustring.h
-+#endif
-diff --git a/configure.in b/configure.in
---- configure.in
-+++ configure.in
-@@ -4134,16 +4134,32 @@ if test -n "$MOZ_NATIVE_FFI"; then
- PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9)
- else
- PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9)
- fi
- MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS"
- fi
-
- dnl ========================================================
-+dnl system icu support
-+dnl ========================================================
-+MOZ_NATIVE_ICU=
-+MOZ_ARG_WITH_BOOL(system-icu,
-+[ --with-system-icu
-+ Use system icu (located with pkgconfig)],
-+ MOZ_NATIVE_ICU=1)
-+
-+if test -n "$MOZ_NATIVE_ICU"; then
-+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
-+ MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_ICU_LIBS"
-+fi
-+
-+AC_SUBST(MOZ_NATIVE_ICU)
-+
-+dnl ========================================================
- dnl Java SDK support
- dnl ========================================================
-
- JAVA_BIN_PATH=
- MOZ_ARG_WITH_STRING(java-bin-path,
- [ --with-java-bin-path=dir
- Location of Java binaries (java, javac, jar)],
- JAVA_BIN_PATH=$withval)
-diff --git a/js/src/Makefile.in b/js/src/Makefile.in
---- js/src/Makefile.in.orig 2013-10-22 08:19:02.000000000 +0200
-+++ js/src/Makefile.in 2013-10-29 10:11:58.272605098 +0100
-@@ -237,10 +237,14 @@
- # ICU headers need to be available whether we build with the complete
- # Internationalization API or not - ICU stubs rely on them.
-
-+ifdef MOZ_NATIVE_ICU
-+LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS)
-+else
- LOCAL_INCLUDES += \
- -I$(topsrcdir)/../../intl/icu/source/common \
- -I$(topsrcdir)/../../intl/icu/source/i18n \
- $(NULL)
-+endif
-
- ifdef ENABLE_INTL_API
-
-@@ -260,6 +264,7 @@
- ICU_MAKE = $(MAKE)
- endif
-
-+ifndef MOZ_NATIVE_ICU
- # - Build ICU as part of the "export" target, so things get built
- # in the right order.
- # - ICU requires GNU make according to its readme.html. pymake can't be used
-@@ -276,6 +281,7 @@
- $(call SUBMAKE,$@,intl/icu)
-
- endif
-+endif
-
- #
- # END ECMAScript Internationalization API
-@@ -413,7 +419,11 @@
- DEFINES += -DUSE_ZLIB
- endif
-
--SHARED_LIBRARY_LIBS += $(ICU_LIBS)
-+ifdef MOZ_NATIVE_ICU
-+EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS)
-+else
-+SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS)
-+endif
-
- # Prevent floating point errors caused by VC++ optimizations
- ifdef _MSC_VER
-diff --git a/js/src/config/Makefile.in b/js/src/config/Makefile.in
---- js/src/config/Makefile.in
-+++ js/src/config/Makefile.in
-@@ -54,16 +54,17 @@ include $(topsrcdir)/config/rules.mk
-
- HOST_CFLAGS += -DUNICODE -D_UNICODE
-
- ifdef WRAP_SYSTEM_INCLUDES
- export:: \
- $(call mkdir_deps,system_wrappers_js) \
- $(NULL)
- $(PYTHON) $(srcdir)/Preprocessor.py $(DEFINES) $(ACDEFINES) \
-+ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
- $(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers_js
- $(INSTALL) system_wrappers_js $(DIST)
-
- GARBAGE_DIRS += system_wrappers_js
- endif
-
- GARBAGE += $(srcdir)/*.pyc *.pyc
-
-diff --git a/js/src/config/system-headers b/js/src/config/system-headers
---- js/src/config/system-headers
-+++ js/src/config/system-headers
-@@ -1125,8 +1125,19 @@ gst/video/video.h
- sys/msg.h
- sys/ipc.h
- sys/thr.h
- sys/user.h
- kvm.h
- spawn.h
- err.h
- xlocale.h
-+#if MOZ_NATIVE_ICU==1
-+unicode/locid.h
-+unicode/numsys.h
-+unicode/ucal.h
-+unicode/ucol.h
-+unicode/udat.h
-+unicode/udatpg.h
-+unicode/uenum.h
-+unicode/unum.h
-+unicode/ustring.h
-+#endif
-diff --git a/js/src/configure.in b/js/src/configure.in
---- js/src/configure.in
-+++ js/src/configure.in
-@@ -4406,59 +4406,68 @@ if test "$ACCESSIBILITY" -a "$MOZ_ENABLE
- AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
- AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
- fi
-
-
- dnl ========================================================
- dnl ECMAScript Internationalization API Support (uses ICU)
- dnl ========================================================
-+ICU_LIB_NAMES=
-+MOZ_NATIVE_ICU=
-+MOZ_ARG_WITH_BOOL(system-icu,
-+[ --with-system-icu
-+ Use system icu (located with pkgconfig)],
-+ MOZ_NATIVE_ICU=1)
-+
-+if test -n "$MOZ_NATIVE_ICU"; then
-+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
-+fi
-
- if test -n "$JS_STANDALONE"; then
- ENABLE_INTL_API=1
- fi
- MOZ_ARG_ENABLE_BOOL(intl-api,
- [ --enable-intl-api Enable ECMAScript Internationalization API (default=yes for standalone JS)],
- ENABLE_INTL_API=1,
- ENABLE_INTL_API= )
-
- dnl Settings for the implementation of the ECMAScript Internationalization API
- if test -n "$ENABLE_INTL_API"; then
- AC_DEFINE(ENABLE_INTL_API)
-- # We build ICU as a static library.
-- AC_DEFINE(U_STATIC_IMPLEMENTATION)
--
-- case "$OS_TARGET" in
-- WINNT)
-- ICU_LIB_NAMES="icuin icuuc icudt"
-- ;;
-- Darwin|Linux)
-- ICU_LIB_NAMES="icui18n icuuc icudata"
-- ;;
-- *)
-- AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
-- esac
--
-- ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
--else
-- ICU_LIB_NAMES=
-- ICU_LIBS=
-+
-+ if test -z "$MOZ_NATIVE_ICU"; then
-+ case "$OS_TARGET" in
-+ WINNT)
-+ ICU_LIB_NAMES="icuin icuuc icudt"
-+ ;;
-+ Darwin|Linux)
-+ ICU_LIB_NAMES="icui18n icuuc icudata"
-+ ;;
-+ *)
-+ AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
-+ esac
-+ MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
-+ fi
- fi
-
- AC_SUBST(ENABLE_INTL_API)
- AC_SUBST(ICU_LIB_NAMES)
--AC_SUBST(ICU_LIBS)
--
--dnl Source files that use ICU should have control over which parts of the ICU
--dnl namespace they want to use.
--AC_DEFINE(U_USING_ICU_NAMESPACE,0)
--
-+AC_SUBST(MOZ_ICU_LIBS)
-+AC_SUBST(MOZ_NATIVE_ICU)
-
- dnl Settings for ICU
--if test -n "$ENABLE_INTL_API" ; then
-+if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then
-+ dnl We build ICU as a static library.
-+ AC_DEFINE(U_STATIC_IMPLEMENTATION)
-+
-+ dnl Source files that use ICU should have control over which parts of the ICU
-+ dnl namespace they want to use.
-+ AC_DEFINE(U_USING_ICU_NAMESPACE,0)
-+
- # Set ICU compile options
- ICU_CPPFLAGS=""
- # don't use icu namespace automatically in client code
- ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_USING_ICU_NAMESPACE=0"
- # don't include obsolete header files
- ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
- # remove chunks of the library that we don't need (yet)
- ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_LEGACY_CONVERSION"
-diff --git a/js/src/gdb/Makefile.in b/js/src/gdb/Makefile.in
---- js/src/gdb/Makefile.in
-+++ js/src/gdb/Makefile.in
-@@ -14,16 +14,20 @@ include $(DEPTH)/config/autoconf.mk
- # Building against js_static requires that we declare mfbt sybols "exported"
- # on its behalf.
- DEFINES += -DEXPORT_JS_API -DIMPL_MFBT
-
- LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS)
-
- LOCAL_INCLUDES += -I$(topsrcdir) -I..
-
-+ifdef MOZ_NATIVE_ICU
-+EXTRA_LIBS += $(MOZ_ICU_LIBS)
-+endif
-+
- EXTRA_LIBS += $(MOZ_FFI_LIBS)
-
- # Place a GDB Python auto-load file next to the gdb-tests executable, both
- # in the build directory and in the dist/bin directory.
- PP_TARGETS += GDB_AUTOLOAD
- GDB_AUTOLOAD := gdb-tests-gdb.py.in
- GDB_AUTOLOAD_FLAGS := -Dtopsrcdir=$(abspath $(topsrcdir))
-
-diff --git a/js/src/jsapi-tests/Makefile.in b/js/src/jsapi-tests/Makefile.in
---- js/src/jsapi-tests/Makefile.in
-+++ js/src/jsapi-tests/Makefile.in
-@@ -15,16 +15,20 @@ DEFINES += -DEXPORT_JS_API
- # Building against js_static requires that we declare mfbt sybols "exported"
- # on its behalf.
- DEFINES += -DIMPL_MFBT
-
- LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS)
-
- LOCAL_INCLUDES += -I$(topsrcdir) -I..
-
-+ifdef MOZ_NATIVE_ICU
-+EXTRA_LIBS += $(MOZ_ICU_LIBS)
-+endif
-+
- EXTRA_LIBS += $(MOZ_FFI_LIBS)
-
- ifdef QEMU_EXE
- MOZ_POST_PROGRAM_COMMAND = $(topsrcdir)/build/qemu-wrap --qemu $(QEMU_EXE) --libdir $(CROSS_LIB)
- endif
-
- # Place a GDB Python auto-load file next to the jsapi-tests executable in
- # the build directory.
-diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in
---- js/src/shell/Makefile.in
-+++ js/src/shell/Makefile.in
-@@ -22,16 +22,19 @@ DEFINES += -DEXPORT_JS_API
- # Building against js_static requires that we declare mfbt sybols "exported"
- # on its behalf.
- DEFINES += -DIMPL_MFBT
-
- LIBS = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(MOZ_ZLIB_LIBS)
- ifdef MOZ_NATIVE_FFI
- EXTRA_LIBS += $(MOZ_FFI_LIBS)
- endif
-+ifdef MOZ_NATIVE_ICU
-+EXTRA_LIBS += $(MOZ_ICU_LIBS)
-+endif
-
- LOCAL_INCLUDES += -I$(topsrcdir) -I..
-
- ifeq ($(OS_ARCH),Darwin)
- ifeq ($(TARGET_CPU),x86_64)
- DARWIN_EXE_LDFLAGS += -pagezero_size 10000 -image_base 100000000
- endif
- endif
diff --git a/www/firefox-esr/files/patch-bug876156 b/www/firefox-esr/files/patch-bug876156
deleted file mode 100644
index 84ecf6170671..000000000000
--- a/www/firefox-esr/files/patch-bug876156
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git mfbt/Atomics.h mfbt/Atomics.h
-index d79af6c..40b9336 100644
---- mfbt/Atomics.h
-+++ mfbt/Atomics.h
-@@ -35,7 +35,7 @@
- */
- # if !defined(__linux__) && !defined(__OpenBSD__) && \
- (__cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)) && \
-- __has_include(<atomic>)
-+ __has_include_next(<atomic>)
- # define MOZ_HAVE_CXX11_ATOMICS
- # endif
- /*
diff --git a/www/firefox-esr/files/patch-bug878791 b/www/firefox-esr/files/patch-bug878791
deleted file mode 100644
index d8a3612e1702..000000000000
--- a/www/firefox-esr/files/patch-bug878791
+++ /dev/null
@@ -1,11 +0,0 @@
---- toolkit/components/osfile/osfile_unix_allthreads.jsm.orig 2013-05-11 21:19:53.000000000 +0200
-+++ toolkit/components/osfile/osfile_unix_allthreads.jsm 2013-06-02 17:15:05.000000000 +0200
-@@ -40,7 +40,7 @@ if (typeof Components != "undefined") {
- // Open libc
- let libc;
- let libc_candidates = [ "libSystem.B.dylib",
-- "libc.so.6",
-+ "libc.so.7",
- "libc.so" ];
- for (let i = 0; i < libc_candidates.length; ++i) {
- try {
diff --git a/www/firefox-esr/files/patch-bug886181 b/www/firefox-esr/files/patch-bug886181
deleted file mode 100644
index ed1c4df8348b..000000000000
--- a/www/firefox-esr/files/patch-bug886181
+++ /dev/null
@@ -1,11 +0,0 @@
---- modules/libpref/src/init/all.js~
-+++ modules/libpref/src/init/all.js
-@@ -193,7 +193,7 @@ pref("media.webm.enabled", true);
- pref("media.dash.enabled", false);
- #endif
- #ifdef MOZ_GSTREAMER
--pref("media.gstreamer.enabled", false);
-+pref("media.gstreamer.enabled", true);
- #endif
- #ifdef MOZ_WEBRTC
- pref("media.navigator.enabled", true);
diff --git a/www/firefox-esr/files/patch-bug889699 b/www/firefox-esr/files/patch-bug889699
deleted file mode 100644
index fef97da4ac50..000000000000
--- a/www/firefox-esr/files/patch-bug889699
+++ /dev/null
@@ -1,175 +0,0 @@
-commit 7eb5827
-Author: Edwin Flores <eflores@mozilla.com>
-Date: Sat Jul 20 12:03:08 2013 +1200
-
- Bug 889699 - Make gstreamer backend return more accurate results for canPlayType() r=alessandro.d
----
- content/media/gstreamer/GStreamerFormatHelper.cpp | 90 +++++++++++++++++------
- 1 file changed, 66 insertions(+), 24 deletions(-)
-
-diff --git content/media/gstreamer/GStreamerFormatHelper.cpp content/media/gstreamer/GStreamerFormatHelper.cpp
-index f05ff8f..39f1fdf 100644
---- content/media/gstreamer/GStreamerFormatHelper.cpp
-+++ content/media/gstreamer/GStreamerFormatHelper.cpp
-@@ -6,7 +6,7 @@
-
- #include "GStreamerFormatHelper.h"
- #include "nsCharSeparatedTokenizer.h"
--#include "nsXPCOMStrings.h"
-+#include "nsString.h"
- #include "GStreamerLoader.h"
-
- #define ENTRY_FORMAT(entry) entry[0]
-@@ -36,7 +36,7 @@ void GStreamerFormatHelper::Shutdown() {
- }
- }
-
--char const *const GStreamerFormatHelper::mContainers[6][2] = {
-+static char const *const sContainers[6][2] = {
- {"video/mp4", "video/quicktime"},
- {"video/quicktime", "video/quicktime"},
- {"audio/mp4", "audio/x-m4a"},
-@@ -45,7 +45,7 @@ char const *const GStreamerFormatHelper::mContainers[6][2] = {
- {"audio/mp3", "audio/mpeg, mpegversion=(int)1"},
- };
-
--char const *const GStreamerFormatHelper::mCodecs[9][2] = {
-+static char const *const sCodecs[9][2] = {
- {"avc1.42E01E", "video/x-h264"},
- {"avc1.42001E", "video/x-h264"},
- {"avc1.58A01E", "video/x-h264"},
-@@ -57,6 +57,15 @@ char const *const GStreamerFormatHelper::mCodecs[9][2] = {
- {"mp3", "audio/mpeg, mpegversion=(int)1"},
- };
-
-+static char const * const sDefaultCodecCaps[][2] = {
-+ {"video/mp4", "video/x-h264"},
-+ {"video/quicktime", "video/x-h264"},
-+ {"audio/mp4", "audio/mpeg, mpegversion=(int)4"},
-+ {"audio/x-m4a", "audio/mpeg, mpegversion=(int)4"},
-+ {"audio/mp3", "audio/mpeg, layer=(int)3"},
-+ {"audio/mpeg", "audio/mpeg, layer=(int)3"}
-+};
-+
- GStreamerFormatHelper::GStreamerFormatHelper()
- : mFactories(nullptr),
- mCookie(static_cast<uint32_t>(-1))
-@@ -66,15 +75,15 @@ GStreamerFormatHelper::GStreamerFormatHelper()
- }
-
- mSupportedContainerCaps = gst_caps_new_empty();
-- for (unsigned int i = 0; i < G_N_ELEMENTS(mContainers); i++) {
-- const char* capsString = mContainers[i][1];
-+ for (unsigned int i = 0; i < G_N_ELEMENTS(sContainers); i++) {
-+ const char* capsString = sContainers[i][1];
- GstCaps* caps = gst_caps_from_string(capsString);
- gst_caps_append(mSupportedContainerCaps, caps);
- }
-
- mSupportedCodecCaps = gst_caps_new_empty();
-- for (unsigned int i = 0; i < G_N_ELEMENTS(mCodecs); i++) {
-- const char* capsString = mCodecs[i][1];
-+ for (unsigned int i = 0; i < G_N_ELEMENTS(sCodecs); i++) {
-+ const char* capsString = sCodecs[i][1];
- GstCaps* caps = gst_caps_from_string(capsString);
- gst_caps_append(mSupportedCodecCaps, caps);
- }
-@@ -92,6 +101,41 @@ GStreamerFormatHelper::~GStreamerFormatHelper() {
- g_list_free(mFactories);
- }
-
-+static GstCaps *
-+GetContainerCapsFromMIMEType(const char *aType) {
-+ /* convert aMIMEType to gst container caps */
-+ const char* capsString = nullptr;
-+ for (uint32_t i = 0; i < G_N_ELEMENTS(sContainers); i++) {
-+ if (!strcmp(ENTRY_FORMAT(sContainers[i]), aType)) {
-+ capsString = ENTRY_CAPS(sContainers[i]);
-+ break;
-+ }
-+ }
-+
-+ if (!capsString) {
-+ /* we couldn't find any matching caps */
-+ return nullptr;
-+ }
-+
-+ return gst_caps_from_string(capsString);
-+}
-+
-+static GstCaps *
-+GetDefaultCapsFromMIMEType(const char *aType) {
-+ GstCaps *caps = GetContainerCapsFromMIMEType(aType);
-+
-+ for (uint32_t i = 0; i < G_N_ELEMENTS(sDefaultCodecCaps); i++) {
-+ if (!strcmp(sDefaultCodecCaps[i][0], aType)) {
-+ GstCaps *tmp = gst_caps_from_string(sDefaultCodecCaps[i][1]);
-+
-+ gst_caps_append(caps, tmp);
-+ return caps;
-+ }
-+ }
-+
-+ return nullptr;
-+}
-+
- bool GStreamerFormatHelper::CanHandleMediaType(const nsACString& aMIMEType,
- const nsAString* aCodecs) {
- if (!sLoadOK) {
-@@ -101,7 +145,15 @@ bool GStreamerFormatHelper::CanHandleMediaType(const nsACString& aMIMEType,
- const char *type;
- NS_CStringGetData(aMIMEType, &type, NULL);
-
-- GstCaps* caps = ConvertFormatsToCaps(type, aCodecs);
-+ GstCaps *caps;
-+ if (aCodecs && !aCodecs->IsEmpty()) {
-+ caps = ConvertFormatsToCaps(type, aCodecs);
-+ } else {
-+ // Get a minimal set of codec caps for this MIME type we should support so
-+ // that we don't overreport MIME types we are able to play.
-+ caps = GetDefaultCapsFromMIMEType(type);
-+ }
-+
- if (!caps) {
- return false;
- }
-@@ -118,21 +170,11 @@ GstCaps* GStreamerFormatHelper::ConvertFormatsToCaps(const char* aMIMEType,
-
- unsigned int i;
-
-- /* convert aMIMEType to gst container caps */
-- const char* capsString = nullptr;
-- for (i = 0; i < G_N_ELEMENTS(mContainers); i++) {
-- if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) {
-- capsString = ENTRY_CAPS(mContainers[i]);
-- break;
-- }
-- }
--
-- if (!capsString) {
-- /* we couldn't find any matching caps */
-+ GstCaps *caps = GetContainerCapsFromMIMEType(aMIMEType);
-+ if (!caps) {
- return nullptr;
- }
-
-- GstCaps* caps = gst_caps_from_string(capsString);
- /* container only */
- if (!aCodecs) {
- return caps;
-@@ -141,11 +183,11 @@ GstCaps* GStreamerFormatHelper::ConvertFormatsToCaps(const char* aMIMEType,
- nsCharSeparatedTokenizer tokenizer(*aCodecs, ',');
- while (tokenizer.hasMoreTokens()) {
- const nsSubstring& codec = tokenizer.nextToken();
-- capsString = nullptr;
-+ const char *capsString = nullptr;
-
-- for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) {
-- if (codec.EqualsASCII(ENTRY_FORMAT(mCodecs[i]))) {
-- capsString = ENTRY_CAPS(mCodecs[i]);
-+ for (i = 0; i < G_N_ELEMENTS(sCodecs); i++) {
-+ if (codec.EqualsASCII(ENTRY_FORMAT(sCodecs[i]))) {
-+ capsString = ENTRY_CAPS(sCodecs[i]);
- break;
- }
- }
diff --git a/www/firefox-esr/files/patch-bug893397 b/www/firefox-esr/files/patch-bug893397
deleted file mode 100644
index 906f712d58dd..000000000000
--- a/www/firefox-esr/files/patch-bug893397
+++ /dev/null
@@ -1,201 +0,0 @@
-diff --git configure.in configure.in
-index 549ad06..2878d9f 100644
---- configure.in
-+++ configure.in
-@@ -8091,7 +8091,7 @@ case "$OS_TARGET" in
- NECKO_WIFI=1
- fi
- ;;
-- Darwin|SunOS|WINNT)
-+ Darwin|FreeBSD|SunOS|WINNT)
- NECKO_WIFI=1
- ;;
- Linux)
-diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build
-index 07b01de..11706af 100644
---- netwerk/wifi/moz.build
-+++ netwerk/wifi/moz.build
-@@ -31,6 +31,10 @@ if CONFIG['OS_ARCH'] == 'Darwin':
- CPP_SOURCES += [
- 'nsWifiScannerMac.cpp',
- ]
-+elif CONFIG['OS_ARCH'] == 'FreeBSD':
-+ CPP_SOURCES += [
-+ 'nsWifiScannerFreeBSD.cpp',
-+ ]
- elif CONFIG['OS_ARCH'] == 'WINNT':
- CPP_SOURCES += [
- 'nsWifiScannerWin.cpp',
-diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp
-new file mode 100644
-index 0000000..80d4cb6
---- /dev/null
-+++ netwerk/wifi/nsWifiScannerFreeBSD.cpp
-@@ -0,0 +1,167 @@
-+/* 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/. */
-+
-+// Developed by J.R. Oldroyd <fbsd@opal.com>, December 2012.
-+
-+// For FreeBSD we use the getifaddrs(3) to obtain the list of interfaces
-+// and then check for those with an 802.11 media type and able to return
-+// a list of stations. This is similar to ifconfig(8).
-+
-+#include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/socket.h>
-+#include <net/if.h>
-+#include <net/if_media.h>
-+#include <net80211/ieee80211_ioctl.h>
-+
-+#include <ifaddrs.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+#include "nsWifiAccessPoint.h"
-+
-+using namespace mozilla;
-+
-+static nsresult
-+FreeBSDGetAccessPointData(nsCOMArray<nsWifiAccessPoint> &accessPoints)
-+{
-+ // get list of interfaces
-+ struct ifaddrs *ifal;
-+ if (getifaddrs(&ifal) < 0) {
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ accessPoints.Clear();
-+
-+ // loop through the interfaces
-+ nsresult rv = NS_ERROR_FAILURE;
-+ struct ifaddrs *ifa;
-+ for (ifa = ifal; ifa; ifa = ifa->ifa_next) {
-+ // limit to one interface per address
-+ if (ifa->ifa_addr->sa_family != AF_LINK) {
-+ continue;
-+ }
-+
-+ // store interface name in socket structure
-+ struct ifreq ifr;
-+ memset(&ifr, 0, sizeof(ifr));
-+ strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name));
-+ ifr.ifr_addr.sa_family = AF_LOCAL;
-+
-+ // open socket to interface
-+ int s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0);
-+ if (s < 0) {
-+ continue;
-+ }
-+
-+ // clear interface media structure
-+ struct ifmediareq ifmr;
-+ memset(&ifmr, 0, sizeof(ifmr));
-+ strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name));
-+
-+ // get interface media information
-+ if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // check interface is a WiFi interface
-+ if (IFM_TYPE(ifmr.ifm_active) != IFM_IEEE80211) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // perform WiFi scan
-+ struct ieee80211req i802r;
-+ char iscanbuf[32*1024];
-+ memset(&i802r, 0, sizeof(i802r));
-+ strncpy(i802r.i_name, ifa->ifa_name, sizeof(i802r.i_name));
-+ i802r.i_type = IEEE80211_IOC_SCAN_RESULTS;
-+ i802r.i_data = iscanbuf;
-+ i802r.i_len = sizeof(iscanbuf);
-+ if (ioctl(s, SIOCG80211, &i802r) < 0) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // close socket
-+ close(s);
-+
-+ // loop through WiFi networks and build geoloc-lookup structure
-+ char *vsr = (char *) i802r.i_data;
-+ unsigned len = i802r.i_len;
-+ while (len >= sizeof(struct ieee80211req_scan_result)) {
-+ struct ieee80211req_scan_result *isr =
-+ (struct ieee80211req_scan_result *) vsr;
-+
-+ // determine size of this entry
-+ char *id;
-+ int idlen;
-+ if (isr->isr_meshid_len) {
-+ id = vsr + isr->isr_ie_off + isr->isr_ssid_len;
-+ idlen = isr->isr_meshid_len;
-+ } else {
-+ id = vsr + isr->isr_ie_off;
-+ idlen = isr->isr_ssid_len;
-+ }
-+
-+ // copy network data
-+ char ssid[IEEE80211_NWID_LEN+1];
-+ strncpy(ssid, id, idlen);
-+ ssid[idlen] = '\0';
-+ nsWifiAccessPoint *ap = new nsWifiAccessPoint();
-+ ap->setSSID(ssid, strlen(ssid));
-+ ap->setMac(isr->isr_bssid);
-+ ap->setSignal(isr->isr_rssi);
-+ accessPoints.AppendObject(ap);
-+ rv = NS_OK;
-+
-+ // log the data
-+ LOG(( "FreeBSD access point: "
-+ "SSID: %s, MAC: %02x-%02x-%02x-%02x-%02x-%02x, "
-+ "Strength: %d, Channel: %dMHz\n",
-+ ssid, isr->isr_bssid[0], isr->isr_bssid[1], isr->isr_bssid[2],
-+ isr->isr_bssid[3], isr->isr_bssid[4], isr->isr_bssid[5],
-+ isr->isr_rssi, isr->isr_freq));
-+
-+ // increment pointers
-+ len -= isr->isr_len;
-+ vsr += isr->isr_len;
-+ }
-+ }
-+
-+ freeifaddrs(ifal);
-+
-+ return rv;
-+}
-+
-+nsresult
-+nsWifiMonitor::DoScan()
-+{
-+ // Regularly get the access point data.
-+
-+ nsCOMArray<nsWifiAccessPoint> lastAccessPoints;
-+ nsCOMArray<nsWifiAccessPoint> accessPoints;
-+
-+ do {
-+ nsresult rv = FreeBSDGetAccessPointData(accessPoints);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ bool accessPointsChanged = !AccessPointsEqual(accessPoints, lastAccessPoints);
-+ ReplaceArray(lastAccessPoints, accessPoints);
-+
-+ rv = CallWifiListeners(lastAccessPoints, accessPointsChanged);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ // wait for some reasonable amount of time. pref?
-+ LOG(("waiting on monitor\n"));
-+
-+ ReentrantMonitorAutoEnter mon(mReentrantMonitor);
-+ mon.Wait(PR_SecondsToInterval(60));
-+ }
-+ while (mKeepGoing);
-+
-+ return NS_OK;
-+}
diff --git a/www/firefox-esr/files/patch-bug910875 b/www/firefox-esr/files/patch-bug910875
deleted file mode 100644
index 4f1d5a521e84..000000000000
--- a/www/firefox-esr/files/patch-bug910875
+++ /dev/null
@@ -1,102 +0,0 @@
-diff --git media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc
-index f231b1e..6087696 100644
---- media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc
-+++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc
-@@ -16,7 +16,9 @@
- #include <assert.h>
- #include <string.h>
-
--#if defined(_WIN32)
-+#if defined(WEBRTC_DUMMY_AUDIO_BUILD)
-+// do not include platform specific headers
-+#elif defined(_WIN32)
- #include "audio_device_utility_win.h"
- #include "audio_device_wave_win.h"
- #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD)
-@@ -32,14 +34,8 @@
- #include <stdlib.h>
- #include "audio_device_utility_android.h"
- #include "audio_device_jni_android.h"
--#elif defined(WEBRTC_LINUX)
-+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
- #include "audio_device_utility_linux.h"
-- #if defined(LINUX_ALSA)
-- #include "audio_device_alsa_linux.h"
-- #endif
-- #if defined(LINUX_PULSE)
-- #include "audio_device_pulse_linux.h"
-- #endif
- #elif defined(WEBRTC_IOS)
- #include "audio_device_utility_ios.h"
- #include "audio_device_ios.h"
-@@ -47,6 +43,12 @@
- #include "audio_device_utility_mac.h"
- #include "audio_device_mac.h"
- #endif
-+#if defined(LINUX_ALSA)
-+ #include "audio_device_alsa_linux.h"
-+#endif
-+#if defined(LINUX_PULSE)
-+ #include "audio_device_pulse_linux.h"
-+#endif
- #include "audio_device_dummy.h"
- #include "audio_device_utility_dummy.h"
- #include "critical_section_wrapper.h"
-@@ -161,7 +163,7 @@ WebRtc_Word32 AudioDeviceModuleImpl::Che
- #elif defined(WEBRTC_ANDROID)
- platform = kPlatformAndroid;
- WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "current platform is ANDROID");
--#elif defined(WEBRTC_LINUX)
-+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
- platform = kPlatformLinux;
- WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "current platform is LINUX");
- #elif defined(WEBRTC_IOS)
-@@ -309,7 +311,7 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects()
-
- // Create the *Linux* implementation of the Audio Device
- //
--#elif defined(WEBRTC_LINUX)
-+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
- if ((audioLayer == kLinuxPulseAudio) || (audioLayer == kPlatformDefaultAudio))
- {
- #if defined(LINUX_PULSE)
-@@ -355,7 +357,7 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects()
- //
- ptrAudioDeviceUtility = new AudioDeviceUtilityLinux(Id());
- }
--#endif // #if defined(WEBRTC_LINUX)
-+#endif // #if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
-
- // Create the *iPhone* implementation of the Audio Device
- //
-diff --git media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc
-index defd7f8..906c4a2 100644
---- media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc
-+++ media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc
-@@ -197,7 +197,7 @@ class AudioDeviceAPITest: public testing::Test {
- // Create default implementation instance
- EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
- kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
--#elif defined(WEBRTC_LINUX)
-+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
- EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
- kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
- EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
-@@ -1690,7 +1690,7 @@ TEST_F(AudioDeviceAPITest, CPULoad) {
-
- // TODO(kjellander): Fix flakiness causing failures on Windows.
- // TODO(phoglund): Fix flakiness causing failures on Linux.
--#if !defined(_WIN32) && !defined(WEBRTC_LINUX)
-+#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
- TEST_F(AudioDeviceAPITest, StartAndStopRawOutputFileRecording) {
- // NOTE: this API is better tested in a functional test
- CheckInitialPlayoutStates();
-@@ -1759,7 +1759,7 @@ TEST_F(AudioDeviceAPITest, StartAndStopRawInputFileRecording) {
- // - size of raw_input_not_recording.pcm shall be 0
- // - size of raw_input_not_recording.pcm shall be > 0
- }
--#endif // !WIN32 && !WEBRTC_LINUX
-+#endif // !WIN32 && !WEBRTC_LINUX && !defined(WEBRTC_BSD)
-
- TEST_F(AudioDeviceAPITest, RecordingSampleRate) {
- uint32_t sampleRate(0);
diff --git a/www/firefox-esr/files/patch-bug916216 b/www/firefox-esr/files/patch-bug916216
deleted file mode 100644
index ca82967fa78c..000000000000
--- a/www/firefox-esr/files/patch-bug916216
+++ /dev/null
@@ -1,39 +0,0 @@
---- media/webrtc/trunk/build/build_config.h~
-+++ media/webrtc/trunk/build/build_config.h
-@@ -37,9 +37,15 @@
- #elif defined(_WIN32)
- #define OS_WIN 1
- #define TOOLKIT_VIEWS 1
--#elif defined(__FreeBSD__)
-+#elif defined(__DragonFly__)
-+#define OS_DRAGONFLY 1
-+#define TOOLKIT_GTK
-+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
- #define OS_FREEBSD 1
- #define TOOLKIT_GTK
-+#elif defined(__NetBSD__)
-+#define OS_NETBSD 1
-+#define TOOLKIT_GTK
- #elif defined(__OpenBSD__)
- #define OS_OPENBSD 1
- #define TOOLKIT_GTK
-@@ -56,15 +62,15 @@
-
- // For access to standard BSD features, use OS_BSD instead of a
- // more specific macro.
--#if defined(OS_FREEBSD) || defined(OS_OPENBSD)
-+#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD) \
-+ || defined(OS_NETBSD) || defined(OS_OPENBSD)
- #define OS_BSD 1
- #endif
-
- // For access to standard POSIXish features, use OS_POSIX instead of a
- // more specific macro.
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD) || \
-- defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_ANDROID) || \
-- defined(OS_NACL)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || \
-+ defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL)
- #define OS_POSIX 1
- #endif
-
diff --git a/www/firefox-esr/files/patch-bug916589 b/www/firefox-esr/files/patch-bug916589
deleted file mode 100644
index c6c6c58c9175..000000000000
--- a/www/firefox-esr/files/patch-bug916589
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-index 5b50785..7cf47d5 100644
---- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-+++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-@@ -33,9 +33,10 @@
- #ifndef _SYS_QUEUE_H_
- #define _SYS_QUEUE_H_
-
--#if !defined(__FreeBSD__) && !defined(DARWIN)
- #include <stddef.h>
--#define __offsetof offsetof
-+
-+#ifndef offsetof
-+#define offsetof(type, field) ((size_t)(&((type *)0)->field))
- #endif
-
- #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
-@@ -43,8 +44,6 @@
- (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
- (var) = (tvar))
-
--// #define __offsetof(type, field) ((size_t)(&((type *)0)->field))
--
- /*
- * This file defines four types of data structures: singly-linked lists,
- * singly-linked tail queues, lists and tail queues.
-@@ -285,7 +284,7 @@ struct { \
- (STAILQ_EMPTY((head)) ? \
- NULL : \
- ((struct type *) \
-- ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
-+ ((char *)((head)->stqh_last) - offsetof(struct type, field))))
-
- #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
-
diff --git a/www/firefox-esr/files/patch-bug918177 b/www/firefox-esr/files/patch-bug918177
deleted file mode 100644
index 76dd34ca040a..000000000000
--- a/www/firefox-esr/files/patch-bug918177
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git config/stl-headers config/stl-headers
-index c057d8e..dc7f6f0 100644
---- config/stl-headers
-+++ config/stl-headers
-@@ -21,6 +21,7 @@ algorithm
- atomic
- deque
- ios
-+iosfwd
- iostream
- iterator
- limits
-diff --git config/system-headers config/system-headers
-index d31c94e..570c82a 100644
---- config/system-headers
-+++ config/system-headers
-@@ -469,6 +469,7 @@ IOKit/IOMessage.h
- IOKit/pwr_mgt/IOPMLib.h
- iomanip
- ios
-+iosfwd
- iostream
- iostream.h
- iterator
-diff --git js/src/config/system-headers js/src/config/system-headers
-index d31c94e..570c82a 100644
---- js/src/config/system-headers
-+++ js/src/config/system-headers
-@@ -469,6 +469,7 @@ IOKit/IOMessage.h
- IOKit/pwr_mgt/IOPMLib.h
- iomanip
- ios
-+iosfwd
- iostream
- iostream.h
- iterator
diff --git a/www/firefox-esr/files/patch-bug938730 b/www/firefox-esr/files/patch-bug938730
deleted file mode 100644
index ac444b228ae6..000000000000
--- a/www/firefox-esr/files/patch-bug938730
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 1961aa2
-Author: Kai Engert <kaie@kuix.de>
-Date: Wed Nov 20 20:25:12 2013 +0100
-
- Bug 938730 - avoid mix of memory allocators (crashes) when using system sqlite, r=asuth
----
- storage/src/Makefile.in | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git storage/src/Makefile.in storage/src/Makefile.in
-index 9418640..c7391ed 100644
---- storage/src/Makefile.in
-+++ storage/src/Makefile.in
-@@ -6,14 +6,21 @@
- # Don't use the jemalloc allocator on Android, because we can't guarantee
- # that Gecko will configure sqlite before it is first used (bug 730495).
- #
-+# Don't use the jemalloc allocator when using system sqlite. Linked in libraries
-+# (such as NSS) might trigger an initialization of sqlite and allocation
-+# of memory using the default allocator, prior to the storage service
-+# registering its allocator, causing memory management failures (bug 938730).
-+#
- # Note: On Windows our sqlite build assumes we use jemalloc. If you disable
- # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
- # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
- ifdef MOZ_MEMORY
-+ifndef MOZ_NATIVE_SQLITE
- ifneq ($(OS_TARGET), Android)
- DEFINES += -DMOZ_STORAGE_MEMORY
- endif
- endif
-+endif
-
- # For nsDependentJSString
- LOCAL_INCLUDES = \
diff --git a/www/firefox-esr/files/patch-bug945046 b/www/firefox-esr/files/patch-bug945046
deleted file mode 100644
index 2da32f78cd4c..000000000000
--- a/www/firefox-esr/files/patch-bug945046
+++ /dev/null
@@ -1,130 +0,0 @@
-diff --git config/system-headers config/system-headers
-index 432cba6..18a9627 100644
---- config/system-headers
-+++ config/system-headers
-@@ -1157,3 +1157,4 @@ unicode/uenum.h
- unicode/unum.h
- unicode/ustring.h
- #endif
-+libutil.h
-diff --git js/src/config/system-headers js/src/config/system-headers
-index 432cba6..18a9627 100644
---- js/src/config/system-headers
-+++ js/src/config/system-headers
-@@ -1157,3 +1157,4 @@ unicode/uenum.h
- unicode/unum.h
- unicode/ustring.h
- #endif
-+libutil.h
-diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
-index 9975621..b4b037d 100644
---- toolkit/library/Makefile.in
-+++ toolkit/library/Makefile.in
-@@ -289,6 +289,10 @@ OS_LIBS += $(call EXPAND_LIBNAME,kvm)
- EXTRA_DSO_LDOPTS += -Wl,--warn-unresolved-symbols
- endif
-
-+ifeq ($(OS_ARCH),FreeBSD)
-+OS_LIBS += $(call EXPAND_LIBNAME,util)
-+endif
-+
- ifeq ($(OS_ARCH),WINNT)
- OS_LIBS += $(call EXPAND_LIBNAME,shell32 ole32 version winspool comdlg32 imm32 msimg32 shlwapi psapi ws2_32 dbghelp rasapi32 rasdlg iphlpapi uxtheme setupapi secur32 sensorsapi portabledeviceguids windowscodecs wininet wbemuuid)
- ifdef ACCESSIBILITY
-diff --git xpcom/base/nsMemoryReporterManager.cpp xpcom/base/nsMemoryReporterManager.cpp
-index b8147c8..0ffb34e 100644
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -153,6 +153,43 @@ static nsresult GetResidentFast(int64_t
- return GetResident(n);
- }
-
-+#ifdef __FreeBSD__
-+#include <libutil.h>
-+
-+static nsresult
-+GetKinfoVmentrySelf(int64_t* prss)
-+{
-+ int cnt;
-+ struct kinfo_vmentry *vmmap, *kve;
-+ if ((vmmap = kinfo_getvmmap(getpid(), &cnt)) == NULL)
-+ return NS_ERROR_FAILURE;
-+
-+ if (prss)
-+ *prss = 0;
-+
-+ for (int i = 0; i < cnt; i++) {
-+ kve = &vmmap[i];
-+ if (prss)
-+ *prss += kve->kve_private_resident;
-+ }
-+
-+ free(vmmap);
-+ return NS_OK;
-+}
-+
-+#define HAVE_PRIVATE_REPORTER
-+static nsresult
-+GetPrivate(int64_t* aN)
-+{
-+ int64_t priv;
-+ nsresult rv = GetKinfoVmentrySelf(&priv);
-+ if (NS_SUCCEEDED(rv))
-+ *aN = priv * getpagesize();
-+
-+ return NS_OK;
-+}
-+#endif // FreeBSD
-+
- #elif defined(SOLARIS)
-
- #include <procfs.h>
-@@ -327,6 +364,24 @@ static nsresult GetResidentFast(int64_t
- }
-
- #define HAVE_PRIVATE_REPORTER
-+static nsresult
-+GetPrivate(int64_t* aN)
-+{
-+ PROCESS_MEMORY_COUNTERS_EX pmcex;
-+ pmcex.cb = sizeof(PROCESS_MEMORY_COUNTERS_EX);
-+
-+ if (!GetProcessMemoryInfo(
-+ GetCurrentProcess(),
-+ (PPROCESS_MEMORY_COUNTERS) &pmcex, sizeof(pmcex))) {
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ *aN = pmcex.PrivateUsage;
-+ return NS_OK;
-+}
-+#endif // XP_<PLATFORM>
-+
-+#ifdef HAVE_PRIVATE_REPORTER
- class PrivateReporter MOZ_FINAL : public MemoryReporterBase
- {
- public:
-@@ -339,21 +394,10 @@ public:
-
- NS_IMETHOD GetAmount(int64_t *aAmount)
- {
-- PROCESS_MEMORY_COUNTERS_EX pmcex;
-- pmcex.cb = sizeof(PROCESS_MEMORY_COUNTERS_EX);
--
-- if (!GetProcessMemoryInfo(
-- GetCurrentProcess(),
-- (PPROCESS_MEMORY_COUNTERS) &pmcex, sizeof(pmcex))) {
-- return NS_ERROR_FAILURE;
-- }
--
-- *aAmount = pmcex.PrivateUsage;
-- return NS_OK;
-+ return GetPrivate(aAmount);
- }
- };
--
--#endif // XP_<PLATFORM>
-+#endif
-
- #ifdef HAVE_VSIZE_AND_RESIDENT_REPORTERS
- class VsizeReporter MOZ_FINAL : public MemoryReporterBase
diff --git a/www/firefox-esr/files/patch-bug946560 b/www/firefox-esr/files/patch-bug946560
deleted file mode 100644
index e2560bd0d0c3..000000000000
--- a/www/firefox-esr/files/patch-bug946560
+++ /dev/null
@@ -1,44 +0,0 @@
-diff --git xpcom/base/nsMemoryInfoDumper.cpp xpcom/base/nsMemoryInfoDumper.cpp
-index 0b2f78c..d857374 100644
---- xpcom/base/nsMemoryInfoDumper.cpp
-+++ xpcom/base/nsMemoryInfoDumper.cpp
-@@ -30,7 +30,7 @@
- #include <unistd.h>
- #endif
-
--#ifdef XP_LINUX
-+#if defined(XP_LINUX) || defined(__FreeBSD__)
- #include <fcntl.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -109,7 +109,7 @@ private:
-
- } // anonymous namespace
-
--#ifdef XP_LINUX // {
-+#if defined(XP_LINUX) || defined(__FreeBSD__) // {
- namespace {
-
- /*
-@@ -548,7 +548,7 @@ nsMemoryInfoDumper::~nsMemoryInfoDumper(
- /* static */ void
- nsMemoryInfoDumper::Initialize()
- {
--#ifdef XP_LINUX
-+#if defined(XP_LINUX) || defined(__FreeBSD__)
- SignalPipeWatcher::Create();
- FifoWatcher::MaybeCreate();
- #endif
-diff --git xpcom/base/nsMemoryReporterManager.cpp xpcom/base/nsMemoryReporterManager.cpp
-index 8c65665..8f6d0e9 100644
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -824,7 +824,7 @@ nsMemoryReporterManager::Init()
- RegisterReporter(new mozilla::dmd::DMDReporter);
- #endif
-
--#if defined(XP_LINUX)
-+#if defined(XP_LINUX) || defined(__FreeBSD__)
- nsMemoryInfoDumper::Initialize();
- #endif
-
diff --git a/www/firefox-esr/files/patch-bug948946 b/www/firefox-esr/files/patch-bug948946
deleted file mode 100644
index 63e35e8f550b..000000000000
--- a/www/firefox-esr/files/patch-bug948946
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git browser/themes/shared/devtools/common.inc.css browser/themes/shared/devtools/common.inc.css
-index 268164e..922f21a 100644
---- browser/themes/shared/devtools/common.inc.css
-+++ browser/themes/shared/devtools/common.inc.css
-@@ -14,7 +14,7 @@
- background-color: transparent;
- background-image: linear-gradient(to bottom, hsla(209,18%,18%,0.9), hsl(210,11%,16%));
- border-radius: 3px;
--%ifdef XP_LINUX
-+%if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_QT)
- max-height: 32rem;
- %else
- max-height: 40rem;
-diff --git browser/themes/shared/devtools/highlighter.inc.css browser/themes/shared/devtools/highlighter.inc.css
-index 3d5ae51..3fb4b01 100644
---- browser/themes/shared/devtools/highlighter.inc.css
-+++ browser/themes/shared/devtools/highlighter.inc.css
-@@ -54,7 +54,7 @@ html|*.highlighter-nodeinfobar-pseudo-classes {
- padding: 0;
- width: 26px;
- min-height: 26px;
--%ifndef XP_LINUX
-+%if !defined(MOZ_WIDGET_GTK) && !defined(MOZ_WIDGET_QT)
- background-color: transparent;
- %endif
- }
diff --git a/www/firefox-esr/files/patch-bug961264 b/www/firefox-esr/files/patch-bug961264
index 85bc94d001ff..94fd84ce5cb6 100644
--- a/www/firefox-esr/files/patch-bug961264
+++ b/www/firefox-esr/files/patch-bug961264
@@ -142,9 +142,9 @@ diff --git js/src/configure.in js/src/configure.in
index bddd46d..d4b522e 100644
--- js/src/configure.in
+++ js/src/configure.in
-@@ -2348,116 +2348,13 @@ fi
+@@ -2077,116 +2077,13 @@ AC_LANG_CPLUSPLUS
- AC_LANG_C
+ MOZ_CXX11
-dnl Check for .hidden assembler directive and visibility attribute.
-dnl Borrowed from glibc configure.in
@@ -249,7 +249,7 @@ index bddd46d..d4b522e 100644
- ])
- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
- "$ac_cv_have_visibility_class_bug" = "no"; then
-- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers_js -include $(topsrcdir)/config/gcc_hidden.h'
+- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
- WRAP_SYSTEM_INCLUDES=1
- else
- VISIBILITY_FLAGS='-fvisibility=hidden'
@@ -259,7 +259,7 @@ index bddd46d..d4b522e 100644
- fi # have visibility(hidden) attribute
+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
-+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers_js -include $(topsrcdir)/config/gcc_hidden.h'
++ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
+ WRAP_SYSTEM_INCLUDES=1
fi # GNU_CC
diff --git a/www/firefox-esr/files/patch-bug961816 b/www/firefox-esr/files/patch-bug961816
deleted file mode 100644
index 322e73f952f6..000000000000
--- a/www/firefox-esr/files/patch-bug961816
+++ /dev/null
@@ -1,48 +0,0 @@
-diff --git config/system-headers config/system-headers
-index 8803150..ae38d68 100644
---- config/system-headers
-+++ config/system-headers
-@@ -1158,3 +1158,4 @@ unicode/unum.h
- unicode/ustring.h
- #endif
- libutil.h
-+unwind.h
-diff --git configure.in configure.in
-index f452a5e..a1ebbcc 100644
---- configure.in
-+++ configure.in
-@@ -7455,7 +7455,10 @@ dnl ========================================================
- dnl = Support for gcc stack unwinding (from gcc 3.3)
- dnl ========================================================
- if test -z "$SKIP_LIBRARY_CHECKS"; then
-+ AC_LANG_SAVE
-+ AC_LANG_CPLUSPLUS
- MOZ_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
-+ AC_LANG_RESTORE
- fi
-
- dnl ========================================================
-diff --git config/system-headers config/system-headers
-index 8803150..ae38d68 100644
---- js/src/config/system-headers
-+++ js/src/config/system-headers
-@@ -1158,3 +1158,4 @@ unicode/unum.h
- unicode/ustring.h
- #endif
- libutil.h
-+unwind.h
-diff --git configure.in configure.in
-index f452a5e..a1ebbcc 100644
---- js/src/configure.in
-+++ js/src/configure.in
-@@ -7455,7 +7455,10 @@ dnl ========================================================
- dnl = Support for gcc stack unwinding (from gcc 3.3)
- dnl ========================================================
- if test -z "$SKIP_LIBRARY_CHECKS"; then
-+ AC_LANG_SAVE
-+ AC_LANG_CPLUSPLUS
- MOZ_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
-+ AC_LANG_RESTORE
- fi
-
- dnl ========================================================
diff --git a/www/firefox-esr/files/patch-bug962345 b/www/firefox-esr/files/patch-bug962345
deleted file mode 100644
index a465c93a51d1..000000000000
--- a/www/firefox-esr/files/patch-bug962345
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git config/system-headers config/system-headers
-index 8803150..ae38d68 100644
---- config/system-headers
-+++ config/system-headers
-@@ -1159,3 +1159,4 @@ unicode/ustring.h
- #endif
- libutil.h
- unwind.h
-+cairo-qt.h
-diff --git config/system-headers config/system-headers
-index 8803150..ae38d68 100644
---- js/src/config/system-headers
-+++ js/src/config/system-headers
-@@ -1159,3 +1159,4 @@ unicode/ustring.h
- #endif
- libutil.h
- unwind.h
-+cairo-qt.h
diff --git a/www/firefox-esr/files/patch-bug975634 b/www/firefox-esr/files/patch-bug975634
deleted file mode 100644
index d41e69e83892..000000000000
--- a/www/firefox-esr/files/patch-bug975634
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git configure.in configure.in
-index 0d9236a..0447104 100644
---- configure.in
-+++ configure.in
-@@ -9034,6 +9034,20 @@ AC_SUBST(MOZ_FOLD_LIBS)
- AC_SUBST(MOZ_ENABLE_SZIP)
- AC_SUBST(MOZ_SZIP_FLAGS)
-
-+AC_MSG_CHECKING([for posix_fadvise])
-+AC_TRY_LINK([#define _XOPEN_SOURCE 600
-+ #include <fcntl.h>],
-+ [posix_fadvise(0, 0, 0, 0);],
-+ [ac_cv___posix_fadvise=true],
-+ [ac_cv___posix_fadvise=false])
-+
-+if test "$ac_cv___posix_fadvise" = true ; then
-+ AC_DEFINE(HAVE_POSIX_FADVISE)
-+ AC_MSG_RESULT(yes)
-+else
-+ AC_MSG_RESULT(no)
-+fi
-+
- AC_MSG_CHECKING([for posix_fallocate])
- AC_TRY_LINK([#define _XOPEN_SOURCE 600
- #include <fcntl.h>],
-diff --git js/src/configure.in js/src/configure.in
-index da9767c..352ba14 100644
---- js/src/configure.in
-+++ js/src/configure.in
-@@ -4025,6 +4025,20 @@ AC_SUBST(CXX_VERSION)
- AC_SUBST(MSMANIFEST_TOOL)
- AC_SUBST(MOZ_LINKER)
-
-+AC_MSG_CHECKING([for posix_fadvise])
-+AC_TRY_LINK([#define _XOPEN_SOURCE 600
-+ #include <fcntl.h>],
-+ [posix_fadvise(0, 0, 0, 0);],
-+ [ac_cv___posix_fadvise=true],
-+ [ac_cv___posix_fadvise=false])
-+
-+if test "$ac_cv___posix_fadvise" = true ; then
-+ AC_DEFINE(HAVE_POSIX_FADVISE)
-+ AC_MSG_RESULT(yes)
-+else
-+ AC_MSG_RESULT(no)
-+fi
-+
- AC_MSG_CHECKING([for posix_fallocate])
- AC_TRY_LINK([#define _XOPEN_SOURCE 600
- #include <fcntl.h>],
-diff --git xpcom/io/nsLocalFileUnix.cpp xpcom/io/nsLocalFileUnix.cpp
-index bacf06c..0e46e4a 100644
---- xpcom/io/nsLocalFileUnix.cpp
-+++ xpcom/io/nsLocalFileUnix.cpp
-@@ -382,7 +382,7 @@ nsLocalFile::OpenNSPRFileDesc(int32_t flags, int32_t mode, PRFileDesc **_retval)
- PR_Delete(mPath.get());
- }
-
--#if defined(LINUX) && !defined(ANDROID)
-+#if defined(HAVE_POSIX_FADVISE)
- if (flags & OS_READAHEAD) {
- posix_fadvise(PR_FileDesc2NativeHandle(*_retval), 0, 0,
- POSIX_FADV_SEQUENTIAL);
diff --git a/www/firefox-esr/files/patch-bug977457 b/www/firefox-esr/files/patch-bug977457
deleted file mode 100644
index cf57b6b1b809..000000000000
--- a/www/firefox-esr/files/patch-bug977457
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git xpcom/base/nsStackWalk.cpp xpcom/base/nsStackWalk.cpp
-index bb0e15b..7641267 100644
---- xpcom/base/nsStackWalk.cpp
-+++ xpcom/base/nsStackWalk.cpp
-@@ -23,6 +23,12 @@ struct CriticalAddress {
- };
- static CriticalAddress gCriticalAddress;
-
-+// for _Unwind_Backtrace from libcxxrt or libunwind
-+// cxxabi.h from libcxxrt implicitly includes unwind.h first
-+#if defined(HAVE__UNWIND_BACKTRACE) && !defined(_GNU_SOURCE)
-+#define _GNU_SOURCE
-+#endif
-+
- #if defined(HAVE_DLOPEN) || defined(XP_MACOSX)
- #include <dlfcn.h>
- #endif
-@@ -1222,9 +1228,6 @@ NS_StackWalk(NS_WalkStackCallback aCallback, uint32_t aSkipFrames,
- #elif defined(HAVE__UNWIND_BACKTRACE)
-
- // libgcc_s.so symbols _Unwind_Backtrace@@GCC_3.3 and _Unwind_GetIP@@GCC_3.0
--#ifndef _GNU_SOURCE
--#define _GNU_SOURCE
--#endif
- #include <unwind.h>
-
- struct unwind_info {
diff --git a/www/firefox-esr/files/patch-bug981348 b/www/firefox-esr/files/patch-bug981348
new file mode 100644
index 000000000000..6eb877b08fa8
--- /dev/null
+++ b/www/firefox-esr/files/patch-bug981348
@@ -0,0 +1,41 @@
+diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp
+index 4b21361..cb3be32 100644
+--- dom/system/OSFileConstants.cpp
++++ dom/system/OSFileConstants.cpp
+@@ -596,7 +596,7 @@ static const dom::ConstantSpec gLibcProperties[] =
+
+ { "OSFILE_SIZEOF_STATVFS", INT_TO_JSVAL(sizeof (struct statvfs)) },
+
+- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_bsize)) },
++ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_frsize)) },
+ { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", INT_TO_JSVAL(offsetof (struct statvfs, f_bavail)) },
+
+ #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
+--- toolkit/components/osfile/modules/osfile_unix_back.jsm
++++ toolkit/components/osfile/modules/osfile_unix_back.jsm
+@@ -228,8 +228,8 @@
+ let statvfs = new SharedAll.HollowStructure("statvfs",
+ Const.OSFILE_SIZEOF_STATVFS);
+
+- statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BSIZE,
+- "f_bsize", Type.unsigned_long.implementation);
++ statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_FRSIZE,
++ "f_frsize", Type.unsigned_long.implementation);
+ statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BAVAIL,
+ "f_bavail", Type.fsblkcnt_t.implementation);
+
+diff --git toolkit/components/osfile/modules/osfile_unix_front.jsm toolkit/components/osfile/modules/osfile_unix_front.jsm
+index 99e5e9b..de642c5 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));
+
+ let bytes = new Type.uint64_t.implementation(
+- fileSystemInfo.f_bsize * fileSystemInfo.f_bavail);
++ fileSystemInfo.f_frsize * fileSystemInfo.f_bavail);
+
+ return bytes.value;
+ };
diff --git a/www/firefox-esr/files/patch-bug985848 b/www/firefox-esr/files/patch-bug985848
deleted file mode 100644
index c20c0e039827..000000000000
--- a/www/firefox-esr/files/patch-bug985848
+++ /dev/null
@@ -1,22 +0,0 @@
---- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
-+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
-@@ -19,7 +19,7 @@
- #include <stdlib.h>
-
- //v4l includes
--#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
-+#if defined(__NetBSD__) || defined(__OpenBSD__)
- #include <sys/videoio.h>
- #elif defined(__sun)
- #include <sys/videodev2.h>
---- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
-+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
-@@ -18,7 +18,7 @@
- #include <string.h>
-
- //v4l includes
--#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
-+#if defined(__NetBSD__) || defined(__OpenBSD__)
- #include <sys/videoio.h>
- #elif defined(__sun)
- #include <sys/videodev2.h>
diff --git a/www/firefox-esr/files/patch-clang34-disable-stdcall b/www/firefox-esr/files/patch-clang34-disable-stdcall
index 8f4bb31b9ccd..de30c49f9950 100644
--- a/www/firefox-esr/files/patch-clang34-disable-stdcall
+++ b/www/firefox-esr/files/patch-clang34-disable-stdcall
@@ -6,8 +6,8 @@
* NS_HIDDEN_(int) NS_FASTCALL func2(char *foo);
*/
--#if defined(__i386__) && defined(__GNUC__) && !defined(XP_OS2)
-+#if defined(__i386__) && defined(__GNUC__) && !defined(XP_OS2) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0)
+-#if defined(__i386__) && defined(__GNUC__)
++#if defined(__i386__) && defined(__GNUC__) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0)
#define NS_FASTCALL __attribute__ ((regparm (3), stdcall))
#define NS_CONSTRUCTOR_FASTCALL __attribute__ ((regparm (3), stdcall))
#elif defined(XP_WIN) && !defined(_WIN64)
diff --git a/www/firefox-esr/files/patch-config-baseconfig.mk b/www/firefox-esr/files/patch-config-baseconfig.mk
index e6fd78f35e7b..9db69516cbcc 100644
--- a/www/firefox-esr/files/patch-config-baseconfig.mk
+++ b/www/firefox-esr/files/patch-config-baseconfig.mk
@@ -1,8 +1,6 @@
--- config/baseconfig.mk~
+++ config/baseconfig.mk
-@@ -1,9 +1,9 @@
- INCLUDED_AUTOCONF_MK = 1
-
+@@ -1,7 +1,7 @@
-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
@@ -11,6 +9,6 @@
+idldir = $(datadir)/idl/%%MOZILLA%%
+installdir = $(libdir)/%%MOZILLA%%
+sdkdir = $(libdir)/%%MOZILLA%%
- DIST = $(DEPTH)/dist
-
- # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't
+ ifndef TOP_DIST
+ TOP_DIST = dist
+ endif
diff --git a/www/firefox-esr/files/patch-toolkit_xre_Makefile.in b/www/firefox-esr/files/patch-toolkit_xre_Makefile.in
deleted file mode 100644
index 4a9c8533a2f8..000000000000
--- a/www/firefox-esr/files/patch-toolkit_xre_Makefile.in
+++ /dev/null
@@ -1,8 +0,0 @@
---- toolkit/xre/Makefile.in.orig 2007-09-10 10:31:53.000000000 -0400
-+++ toolkit/xre/Makefile.in 2007-09-10 10:35:00.000000000 -0400
-@@ -263,5 +263,3 @@
- libs:: platform.ini
- $(INSTALL) $^ $(DIST)/bin
-
--install::
-- $(INSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)
diff --git a/www/firefox-esr/files/patch-z-bug1026828 b/www/firefox-esr/files/patch-z-bug1026828
deleted file mode 100644
index 5d2020cd091f..000000000000
--- a/www/firefox-esr/files/patch-z-bug1026828
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git storage/src/Makefile.in storage/src/Makefile.in
-index 4cd2551..5c40536 100644
---- storage/src/Makefile.in
-+++ storage/src/Makefile.in
-@@ -31,7 +31,7 @@ endif
- # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
- # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
- ifdef MOZ_MEMORY
--ifndef MOZ_NATIVE_SQLITE
-+ifneq (,$(not $(MOZ_NATIVE_SQLITE))$(MOZ_NATIVE_JEMALLOC))
- ifneq ($(OS_TARGET), Android)
- DEFINES += -DMOZ_STORAGE_MEMORY
- endif
diff --git a/www/firefox-esr/files/patch-zz-bug517422 b/www/firefox-esr/files/patch-z-bug517422
index 1c3d05480bc2..17432a29775c 100644
--- a/www/firefox-esr/files/patch-zz-bug517422
+++ b/www/firefox-esr/files/patch-z-bug517422
@@ -18,52 +18,53 @@ index 5383399..0410004 100644
$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
$(INSTALL) system_wrappers $(DIST)
-diff --git toolkit/toolkit.mozbuild toolkit/toolkit.mozbuild
-index c22a36c..2febb45 100644
---- toolkit/toolkit.mozbuild
-+++ toolkit/toolkit.mozbuild
-@@ -64,13 +64,13 @@ add_tier_dir('platform', 'rdf')
- if CONFIG['MOZ_JSDEBUGGER']:
- add_tier_dir('platform', 'js/jsd')
+diff --git config/external/moz.build config/external/moz.build
+index f67c5c7..eb909ce 100644
+--- config/external/moz.build
++++ config/external/moz.build
+@@ -15,13 +15,19 @@ if CONFIG['MOZ_UPDATER']:
+ if not CONFIG['MOZ_NATIVE_BZ2']:
+ external_dirs += ['modules/libbz2']
-if CONFIG['MOZ_VORBIS']:
++if not CONFIG['MOZ_NATIVE_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']:
- add_tier_dir('platform', 'media/libvorbis')
+ external_dirs += ['media/libvorbis']
-if CONFIG['MOZ_TREMOR']:
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']:
- add_tier_dir('platform', 'media/libtremor')
+ external_dirs += ['media/libtremor']
-if CONFIG['MOZ_OPUS']:
+if CONFIG['MOZ_OPUS'] and not CONFIG['MOZ_NATIVE_OPUS']:
- add_tier_dir('platform', 'media/libopus')
+ external_dirs += ['media/libopus']
if CONFIG['MOZ_WEBM']:
-@@ -82,7 +82,10 @@ if CONFIG['MOZ_VP8'] and not CONFIG['MOZ
- add_tier_dir('platform', 'media/libvpx')
-
- if CONFIG['MOZ_OGG']:
-- add_tier_dir('platform', ['media/libogg', 'media/libtheora'])
-+ if not CONFIG['MOZ_NATIVE_OGG']:
-+ add_tier_dir('platform', 'media/libogg')
-+ if not CONFIG['MOZ_NATIVE_THEORA']:
-+ add_tier_dir('platform', 'media/libtheora')
-
- if CONFIG['MOZ_WEBRTC']:
- add_tier_dir('platform', [
-@@ -92,10 +95,10 @@ if CONFIG['MOZ_WEBRTC']:
- 'media/mtransport/standalone',
- ])
+@@ -36,13 +42,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
+ if not CONFIG['MOZ_NATIVE_PNG']:
+ external_dirs += ['media/libpng']
--if CONFIG['MOZ_SPEEX_RESAMPLER']:
-+if CONFIG['MOZ_SPEEX_RESAMPLER'] and not CONFIG['MOZ_NATIVE_SPEEX']:
- add_tier_dir('platform', 'media/libspeex_resampler')
++if not CONFIG['MOZ_NATIVE_SPEEX']:
++ external_dirs += ['media/libspeex_resampler']
++
++if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
++ external_dirs += ['media/libsoundtouch']
++
+ external_dirs += [
+ 'media/kiss_fft',
+ 'media/libcubeb',
+- 'media/libogg',
+- 'media/libtheora',
+- 'media/libspeex_resampler',
+- 'media/libsoundtouch',
+ ]
--if CONFIG['MOZ_SOUNDTOUCH']:
-+if CONFIG['MOZ_SOUNDTOUCH'] and not CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
- add_tier_dir('platform', 'media/libsoundtouch')
-
- if CONFIG['MOZ_CUBEB']:
+ PARALLEL_DIRS += ['../../' + i for i in external_dirs]
diff --git config/system-headers config/system-headers
index bef567c..9807c29 100644
--- config/system-headers
@@ -120,7 +121,7 @@ diff --git configure.in configure.in
index 87db361..7947626 100644
--- configure.in
+++ configure.in
-@@ -5211,6 +5211,57 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then
+@@ -5211,6 +5211,63 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then
fi
dnl ========================================================
@@ -134,6 +135,12 @@ index 87db361..7947626 100644
+
+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)
@@ -244,7 +251,7 @@ index 87db361..7947626 100644
+MOZ_NATIVE_SOUNDTOUCH=)
+
+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
-+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.7.0)
++ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.8.0)
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
@@ -276,15 +283,28 @@ index 87db361..7947626 100644
dnl = Disable VP8 decoder support
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(webm,
+diff --git content/media/AudioStream.h content/media/AudioStream.h
+index 085676d..00c54fb 100644
+--- content/media/AudioStream.h
++++ content/media/AudioStream.h
+@@ -26,7 +26,7 @@ public:
+ };
+
+ namespace soundtouch {
+-class SoundTouch;
++class MOZ_IMPORT_API SoundTouch;
+ }
+
+ namespace mozilla {
diff --git content/media/Makefile.in content/media/Makefile.in
index fd34449..c6c42c8 100644
--- content/media/Makefile.in
+++ content/media/Makefile.in
-@@ -6,4 +6,31 @@ include $(topsrcdir)/config/rules.mk
+@@ -6,3 +6,31 @@ include $(topsrcdir)/config/rules.mk
CFLAGS += $(GSTREAMER_CFLAGS)
CXXFLAGS += $(GSTREAMER_CFLAGS)
-
++
+ifdef MOZ_NATIVE_OGG
+CXXFLAGS += $(MOZ_OGG_CFLAGS)
+endif
@@ -324,98 +344,16 @@ index 4c14494..1cb98e2 100644
+ifdef MOZ_NATIVE_SPEEX
+CFLAGS += $(MOZ_SPEEX_CFLAGS)
+endif
-+
- AudioNodeEngineNEON.$(OBJ_SUFFIX): CXXFLAGS += -mfpu=neon
-diff --git layout/media/Makefile.in layout/media/Makefile.in
-index 1cacbd7..a8cd156 100644
---- layout/media/Makefile.in
-+++ layout/media/Makefile.in
-@@ -36,31 +36,45 @@ ifdef MOZ_TREE_PIXMAN
- SHARED_LIBRARY_LIBS += $(MOZ_PIXMAN_LIBS)
- endif
-
-+ifdef MOZ_OGG
-+ifndef MOZ_NATIVE_OGG
-+SHARED_LIBRARY_LIBS += \
-+ $(DEPTH)/media/libogg/src/$(LIB_PREFIX)ogg.$(LIB_SUFFIX) \
-+ $(NULL)
-+endif
-+endif
-+
- ifdef MOZ_VORBIS
-+ifndef MOZ_NATIVE_VORBIS
- SHARED_LIBRARY_LIBS += \
- $(DEPTH)/media/libvorbis/lib/$(LIB_PREFIX)vorbis.$(LIB_SUFFIX) \
-- $(DEPTH)/media/libogg/src/$(LIB_PREFIX)ogg.$(LIB_SUFFIX) \
- $(NULL)
- endif
-+endif
-
- ifdef MOZ_TREMOR
-+ifndef MOZ_NATIVE_TREMOR
- SHARED_LIBRARY_LIBS += \
- $(DEPTH)/media/libtremor/lib/$(LIB_PREFIX)tremor.$(LIB_SUFFIX) \
-- $(DEPTH)/media/libogg/src/$(LIB_PREFIX)ogg.$(LIB_SUFFIX) \
- $(NULL)
- endif
-+endif
-
- ifdef MOZ_OGG
-+ifndef MOZ_NATIVE_THEORA
- SHARED_LIBRARY_LIBS += \
- $(DEPTH)/media/libtheora/lib/$(LIB_PREFIX)theora.$(LIB_SUFFIX) \
- $(NULL)
- endif
-+endif
-
- ifdef MOZ_OPUS
-+ifndef MOZ_NATIVE_OPUS
- SHARED_LIBRARY_LIBS += \
- $(DEPTH)/media/libopus/$(LIB_PREFIX)opus.$(LIB_SUFFIX) \
- $(NULL)
- endif
-+endif
-
- ifdef MOZ_WEBM
- SHARED_LIBRARY_LIBS += \
-@@ -77,16 +91,20 @@ endif
- endif
-
- ifdef MOZ_SPEEX_RESAMPLER
-+ifndef MOZ_NATIVE_SPEEX
- SHARED_LIBRARY_LIBS += \
- $(DEPTH)/media/libspeex_resampler/src/$(LIB_PREFIX)speex_resampler.$(LIB_SUFFIX) \
- $(NULL)
- endif
-+endif
-
- ifdef MOZ_SOUNDTOUCH
-+ifndef MOZ_NATIVE_SOUNDTOUCH
- SHARED_LIBRARY_LIBS += \
- $(DEPTH)/media/libsoundtouch/src/$(LIB_PREFIX)soundtouch.$(LIB_SUFFIX) \
- $(NULL)
- endif
-+endif
-
- ifdef MOZ_CUBEB
- SHARED_LIBRARY_LIBS += \
diff --git media/libtheora/Makefile.in media/libtheora/Makefile.in
new file mode 100644
index 0000000..1f02dc0
--- /dev/null
+++ media/libtheora/Makefile.in
-@@ -0,0 +1,16 @@
+@@ -0,0 +1,9 @@
+# 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/.
+
-+DEPTH = @DEPTH@
-+topsrcdir = @top_srcdir@
-+srcdir = @srcdir@
-+VPATH = @srcdir@
-+
-+include $(DEPTH)/config/autoconf.mk
-+
+include $(topsrcdir)/config/rules.mk
+
+ifdef MOZ_NATIVE_OGG
@@ -426,18 +364,11 @@ new file mode 100644
index 0000000..1f02dc0
--- /dev/null
+++ media/libtremor/Makefile.in
-@@ -0,0 +1,16 @@
+@@ -0,0 +1,9 @@
+# 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/.
+
-+DEPTH = @DEPTH@
-+topsrcdir = @top_srcdir@
-+srcdir = @srcdir@
-+VPATH = @srcdir@
-+
-+include $(DEPTH)/config/autoconf.mk
-+
+include $(topsrcdir)/config/rules.mk
+
+ifdef MOZ_NATIVE_OGG
@@ -448,18 +379,11 @@ new file mode 100644
index 0000000..1f02dc0
--- /dev/null
+++ media/libvorbis/Makefile.in
-@@ -0,0 +1,16 @@
+@@ -0,0 +1,9 @@
+# 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/.
+
-+DEPTH = @DEPTH@
-+topsrcdir = @top_srcdir@
-+srcdir = @srcdir@
-+VPATH = @srcdir@
-+
-+include $(DEPTH)/config/autoconf.mk
-+
+include $(topsrcdir)/config/rules.mk
+
+ifdef MOZ_NATIVE_OGG
@@ -491,7 +415,7 @@ index 00e77e7..55f48ab 100644
['build_with_mozilla==1', {
# Mozilla provides its own build of the opus library.
- 'include_dirs': [
-- '$(DIST)/include/opus',
+- '/media/libopus/include',
- ]
+ 'cflags_mozilla': [
+ '$(MOZ_OPUS_CFLAGS)',
@@ -499,10 +423,10 @@ index 00e77e7..55f48ab 100644
}, {
'dependencies': [
'<(DEPTH)/third_party/opus/opus.gyp:opus'
-diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
+diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
index d42137a..695e75a8 100644
---- toolkit/library/Makefile.in
-+++ toolkit/library/Makefile.in
+--- toolkit/library/libxul.mk
++++ toolkit/library/libxul.mk
@@ -77,6 +77,34 @@ ifdef MOZ_NATIVE_HUNSPELL
EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS)
endif
@@ -538,3 +462,31 @@ index d42137a..695e75a8 100644
ifdef MOZ_NATIVE_LIBEVENT
EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS)
endif
+diff --git xpcom/build/nsXPComInit.cpp xpcom/build/nsXPComInit.cpp
+index 2cf281e..6d7af0e 100644
+--- xpcom/build/nsXPComInit.cpp
++++ xpcom/build/nsXPComInit.cpp
+@@ -130,7 +130,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports *, REFNSIID, void **)
+ #include "mozilla/VisualEventTracer.h"
+ #endif
+
++#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
+@@ -571,11 +573,13 @@ NS_InitXPCOM2(nsIServiceManager* *result,
+ // this oddness.
+ mozilla::SetICUMemoryFunctions();
+
++#ifndef MOZ_OGG_NO_MEM_REPORTING
+ // Do the same for libogg.
+ ogg_set_mem_functions(OggReporter::CountingMalloc,
+ OggReporter::CountingCalloc,
+ OggReporter::CountingRealloc,
+ OggReporter::CountingFree);
++#endif
+
+ #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
+ // And for VPX.
diff --git a/www/firefox-esr/pkg-message b/www/firefox-esr/pkg-message
index 7a3e4ea85d32..83f7cbefb79f 100644
--- a/www/firefox-esr/pkg-message
+++ b/www/firefox-esr/pkg-message
@@ -16,16 +16,7 @@ The SSH server on remote_host must allow pub key authentication.
Firefox and HTML5
-H.264 or MP3 playback may fail due to ffmpeg/libav bug with one of
-the following messages on the terminal
-
- (gst-plugin-scanner:13877): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-0.10/libgstffmpeg.so': /usr/local/lib/gstreamer-0.10/libgstffmpeg.so: Undefined symbol "ff_mlp_init_x86"
- (gst-plugin-scanner:42518): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-0.10/libgstffmpeg.so': /usr/local/lib/gstreamer-0.10/libgstffmpeg.so: Undefined symbol "ff_deinterlace_line_mmx"
-
-If you happen to be affected please apply the fix in ports/181964 and
-rebuild the ports.
-
-Also, certain functions used to display HTML5 elements need the sem(4)
+Certain functions used to display HTML5 elements need the sem(4)
module but only on 8.x releases (or before r201546).
If your Firefox crashes with the following message while viewing a
diff --git a/www/firefox-i18n/Makefile b/www/firefox-i18n/Makefile
index bae05930cd7a..f7cb4fb0f63b 100644
--- a/www/firefox-i18n/Makefile
+++ b/www/firefox-i18n/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= firefox-i18n
-PORTVERSION= 31.0
+PORTVERSION= 33.0b1
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/linux-i686/xpi
PKGNAMEPREFIX=
@@ -14,7 +14,7 @@ COMMENT= Localized interface for Firefox
EXTRACT_DEPENDS= zip:${PORTSDIR}/archivers/zip
-USES= zip:infozip gecko:firefox,31
+USES= zip:infozip gecko:firefox,33
USE_XPI= firefox linux-firefox
NO_ARCH= yes
diff --git a/www/firefox-i18n/distinfo b/www/firefox-i18n/distinfo
index 332d84b18c2e..359a96676c3c 100644
--- a/www/firefox-i18n/distinfo
+++ b/www/firefox-i18n/distinfo
@@ -1,178 +1,178 @@
-SHA256 (xpi/firefox-i18n-31.0/ach.xpi) = c043fd049cecd1a6af52f30563498e9dacdabe919178cec8928c682497eacbb4
-SIZE (xpi/firefox-i18n-31.0/ach.xpi) = 445518
-SHA256 (xpi/firefox-i18n-31.0/af.xpi) = b3c52bc4d0cd348a04c0149936314c82c6734ed65f76ec8acc754106e0d26f9b
-SIZE (xpi/firefox-i18n-31.0/af.xpi) = 431284
-SHA256 (xpi/firefox-i18n-31.0/an.xpi) = fc9f0fe1868f062212c522f828cebd1065d5d9f06a411e2278f57da44ac64b1d
-SIZE (xpi/firefox-i18n-31.0/an.xpi) = 407344
-SHA256 (xpi/firefox-i18n-31.0/ar.xpi) = abaeb915d12d54e327150c2554440bc96a5b21c5bbf6d8634f8855e988b84bab
-SIZE (xpi/firefox-i18n-31.0/ar.xpi) = 460017
-SHA256 (xpi/firefox-i18n-31.0/as.xpi) = 9fc2e6dd303f11d8658a1a0fb97b089566a467d0f1e9155980cd409c0f384c6b
-SIZE (xpi/firefox-i18n-31.0/as.xpi) = 448762
-SHA256 (xpi/firefox-i18n-31.0/ast.xpi) = 137b0b28087a434fab6580a1386f0a57d211660bb1d5bb420b946b08eaa19d1e
-SIZE (xpi/firefox-i18n-31.0/ast.xpi) = 352533
-SHA256 (xpi/firefox-i18n-31.0/be.xpi) = 10ecc313fbade0f094c047b609e616b2ddeec642fd62d5a886f5382217f7e530
-SIZE (xpi/firefox-i18n-31.0/be.xpi) = 378861
-SHA256 (xpi/firefox-i18n-31.0/bg.xpi) = dcbc8c838f92856a15ce675c35385a3c0c55d9305e0d7750e4977eec66b5c17e
-SIZE (xpi/firefox-i18n-31.0/bg.xpi) = 438254
-SHA256 (xpi/firefox-i18n-31.0/bn-BD.xpi) = 72d769635a3be48bd7816d447806b258ec777ac0cb2abb21f62be7cef86255a3
-SIZE (xpi/firefox-i18n-31.0/bn-BD.xpi) = 472819
-SHA256 (xpi/firefox-i18n-31.0/bn-IN.xpi) = f795e7f10cc816f648e8ff784207558ea9987d2dc7ab4b8e95129f644f572610
-SIZE (xpi/firefox-i18n-31.0/bn-IN.xpi) = 462786
-SHA256 (xpi/firefox-i18n-31.0/br.xpi) = 7388e70a4856a65746533cf98c65102dbfab5f2e56c6b065e7b0e1cb9756b7b6
-SIZE (xpi/firefox-i18n-31.0/br.xpi) = 389897
-SHA256 (xpi/firefox-i18n-31.0/bs.xpi) = e8df928e3468740b5038612fc23a67852f45632a834e32fd750a635c5dab07ea
-SIZE (xpi/firefox-i18n-31.0/bs.xpi) = 429208
-SHA256 (xpi/firefox-i18n-31.0/ca.xpi) = 644a69818eebe1833887e7afeb558a59c24c4f7c74bf77a64e067f5fa09b7181
-SIZE (xpi/firefox-i18n-31.0/ca.xpi) = 403769
-SHA256 (xpi/firefox-i18n-31.0/cs.xpi) = 7c058bb27ccbd10af2c8434b70b597444fd557fccba0eddf63cdf44f62a1fdea
-SIZE (xpi/firefox-i18n-31.0/cs.xpi) = 391171
-SHA256 (xpi/firefox-i18n-31.0/csb.xpi) = d0a9396d135530b940f6f6e96129cf2dfaccbaaf00400dfd1531543f1f48eaca
-SIZE (xpi/firefox-i18n-31.0/csb.xpi) = 383887
-SHA256 (xpi/firefox-i18n-31.0/cy.xpi) = 93a6c7b7e88216dece3a77fa5608a2d08e1dce81f0bfdc59140730ae741e4f1b
-SIZE (xpi/firefox-i18n-31.0/cy.xpi) = 390920
-SHA256 (xpi/firefox-i18n-31.0/da.xpi) = 99d1f942ae49ae2eb47d93c6ee351cb46b475d4963148367b6dd87d062ec65e8
-SIZE (xpi/firefox-i18n-31.0/da.xpi) = 397940
-SHA256 (xpi/firefox-i18n-31.0/de.xpi) = 0d2c095c405538441074125d14937e707f5638bd9c74e0ae69a9671354bfb6a2
-SIZE (xpi/firefox-i18n-31.0/de.xpi) = 395358
-SHA256 (xpi/firefox-i18n-31.0/el.xpi) = 2f0b8beb3b573c241c500183d65ae4cc08f7e55dda59bf4d2400b26696ee0e13
-SIZE (xpi/firefox-i18n-31.0/el.xpi) = 443175
-SHA256 (xpi/firefox-i18n-31.0/en-GB.xpi) = d141edce4aeb7bd6a4ad828cc80767bf00607bb2a3eaaf0a1f022ab3f808d402
-SIZE (xpi/firefox-i18n-31.0/en-GB.xpi) = 390311
-SHA256 (xpi/firefox-i18n-31.0/en-US.xpi) = a44ff56095949010b30a76a2af1c22cb8c7d09cb8610c50d91c04ee2c903d4bb
-SIZE (xpi/firefox-i18n-31.0/en-US.xpi) = 422982
-SHA256 (xpi/firefox-i18n-31.0/en-ZA.xpi) = 44b71794ec3612b74da254b1a4e4e2deaa6fb32adccc8e0f26d196eab3f4d836
-SIZE (xpi/firefox-i18n-31.0/en-ZA.xpi) = 388722
-SHA256 (xpi/firefox-i18n-31.0/eo.xpi) = 5766f74e5c601991edad4143befb2eba4a8b41e86d0a0ee739640158a8200574
-SIZE (xpi/firefox-i18n-31.0/eo.xpi) = 432024
-SHA256 (xpi/firefox-i18n-31.0/es-AR.xpi) = 96d7ca36f5af5eb6e0b1080f509fc891ccb6ea473a57692e2ce28067828de9f2
-SIZE (xpi/firefox-i18n-31.0/es-AR.xpi) = 400131
-SHA256 (xpi/firefox-i18n-31.0/es-CL.xpi) = 8156b29bf446480778aa45a48a75518c6e0e60daf014436c2db7168cba1cdd62
-SIZE (xpi/firefox-i18n-31.0/es-CL.xpi) = 343001
-SHA256 (xpi/firefox-i18n-31.0/es-ES.xpi) = b0e2f582b606e52fb8671a8a62295a86cb8d8b9653206bf6a944cc8ed608f576
-SIZE (xpi/firefox-i18n-31.0/es-ES.xpi) = 336074
-SHA256 (xpi/firefox-i18n-31.0/es-MX.xpi) = f814a2a1fdf793b65db619c22fd9eaa1bdc15498abec01f77598add5d0491ab5
-SIZE (xpi/firefox-i18n-31.0/es-MX.xpi) = 402865
-SHA256 (xpi/firefox-i18n-31.0/et.xpi) = a377291ac4126abc10984a397b1acf67e2c37040d15f9bab410e69249eb34717
-SIZE (xpi/firefox-i18n-31.0/et.xpi) = 390554
-SHA256 (xpi/firefox-i18n-31.0/eu.xpi) = fc2db5d0730742d70c6071c2016179e33b8465ef792700ef6e38cf88de8d65eb
-SIZE (xpi/firefox-i18n-31.0/eu.xpi) = 413192
-SHA256 (xpi/firefox-i18n-31.0/fa.xpi) = bf393bb5fc57d269b435d8ccff8b40d990ae225b51f19151e916ae3bb75e3f31
-SIZE (xpi/firefox-i18n-31.0/fa.xpi) = 461050
-SHA256 (xpi/firefox-i18n-31.0/ff.xpi) = c609b12714067f3a073d4243f743112fa3aa0282099fbb0bfa2bd11a313a94e3
-SIZE (xpi/firefox-i18n-31.0/ff.xpi) = 400336
-SHA256 (xpi/firefox-i18n-31.0/fi.xpi) = 788e0584160f1b4fb1558754e8d901cae5532115bf174346f67394683b43f111
-SIZE (xpi/firefox-i18n-31.0/fi.xpi) = 392932
-SHA256 (xpi/firefox-i18n-31.0/fr.xpi) = 07302d95a22577813ceaf42557120ca4937d6ee4cd54fe47173bed0ceb073a3d
-SIZE (xpi/firefox-i18n-31.0/fr.xpi) = 406655
-SHA256 (xpi/firefox-i18n-31.0/fy-NL.xpi) = a9c2e97a247c7a8d57c84542b4920c2b248b0bf6b35bfd485eba9c740d2f4a86
-SIZE (xpi/firefox-i18n-31.0/fy-NL.xpi) = 402122
-SHA256 (xpi/firefox-i18n-31.0/ga-IE.xpi) = 536bcead2a0f0a6aab897110f3359378e06aa84e964f619a09bcb06619b3a3d8
-SIZE (xpi/firefox-i18n-31.0/ga-IE.xpi) = 410269
-SHA256 (xpi/firefox-i18n-31.0/gd.xpi) = 7aee0379d2654965caa379d6f848d37d7208f26eb1b828425c816d4595b76864
-SIZE (xpi/firefox-i18n-31.0/gd.xpi) = 403207
-SHA256 (xpi/firefox-i18n-31.0/gl.xpi) = 51a640b99a5f534262c730ab9f28ca8070ea4d9d0c99f32bf37c44eefb123f5a
-SIZE (xpi/firefox-i18n-31.0/gl.xpi) = 390792
-SHA256 (xpi/firefox-i18n-31.0/gu-IN.xpi) = 822c226488c566fdfb2e03bc741809ad8a5b0ef828c42b8442e06f4c9743f3fa
-SIZE (xpi/firefox-i18n-31.0/gu-IN.xpi) = 423693
-SHA256 (xpi/firefox-i18n-31.0/he.xpi) = 7536dd41ee7a7c5363405086dcb233902758578a0bd52b7f74262c7e959042c4
-SIZE (xpi/firefox-i18n-31.0/he.xpi) = 427822
-SHA256 (xpi/firefox-i18n-31.0/hi-IN.xpi) = fe1c61fd3f8d2908c0b000c01c058ff2253a9ce7ea81d3fd9b8f976d10edd619
-SIZE (xpi/firefox-i18n-31.0/hi-IN.xpi) = 441594
-SHA256 (xpi/firefox-i18n-31.0/hr.xpi) = 57085c743a3adbb5dab962aa71f526552a43d38cfd91eef7df78852e70e6c867
-SIZE (xpi/firefox-i18n-31.0/hr.xpi) = 424564
-SHA256 (xpi/firefox-i18n-31.0/hsb.xpi) = 11595a4332552906d5126cda6ad64baf678b11817113911d8bff7f882f8d9edd
-SIZE (xpi/firefox-i18n-31.0/hsb.xpi) = 413268
-SHA256 (xpi/firefox-i18n-31.0/hu.xpi) = bdffc3f0a4fc0debabe78fbbe639d7fe3ede2bea402b6e619de96464e022cd55
-SIZE (xpi/firefox-i18n-31.0/hu.xpi) = 398838
-SHA256 (xpi/firefox-i18n-31.0/hy-AM.xpi) = 45581de0b5ebd615c7ac6ca71085b72955a9a24360dbf2d47947447a7a1d49ab
-SIZE (xpi/firefox-i18n-31.0/hy-AM.xpi) = 478936
-SHA256 (xpi/firefox-i18n-31.0/id.xpi) = 4da6927d727a8cb9111c544ddfdcb13c3ad417b665b5565e01fa896b354042b4
-SIZE (xpi/firefox-i18n-31.0/id.xpi) = 378494
-SHA256 (xpi/firefox-i18n-31.0/is.xpi) = d745aebf2d8da70efe62c5aeadc14c5bf4bed1f52e114d520c7f9ca9f4256de8
-SIZE (xpi/firefox-i18n-31.0/is.xpi) = 427521
-SHA256 (xpi/firefox-i18n-31.0/it.xpi) = 3c62b7106c34fac3ce3b2a8a06a5b202605e268e820e18bc3ac005eccfc2baee
-SIZE (xpi/firefox-i18n-31.0/it.xpi) = 331099
-SHA256 (xpi/firefox-i18n-31.0/ja.xpi) = 3d442fddac1853701add6ce9a90b7ccb3f284b635d04b9f8040384c05743926d
-SIZE (xpi/firefox-i18n-31.0/ja.xpi) = 421663
-SHA256 (xpi/firefox-i18n-31.0/kk.xpi) = 9bd6447af21f63178f0d6c67cbb8161eb777a47bcfad1a4221bc2023394198e2
-SIZE (xpi/firefox-i18n-31.0/kk.xpi) = 439310
-SHA256 (xpi/firefox-i18n-31.0/km.xpi) = 2b6127ea6010c1b21db460e0708822d434a523c75e1ccab2b6d175fee6c57dc8
-SIZE (xpi/firefox-i18n-31.0/km.xpi) = 506670
-SHA256 (xpi/firefox-i18n-31.0/kn.xpi) = a0204756151beeed2af17114bef9d94d3106b4f47bc6e779319fdfbca2a9baf8
-SIZE (xpi/firefox-i18n-31.0/kn.xpi) = 459084
-SHA256 (xpi/firefox-i18n-31.0/ko.xpi) = a6dd52bfebfca2129f7895fe95116f64b0849e4debfc11728f0cdffcf8a25cd9
-SIZE (xpi/firefox-i18n-31.0/ko.xpi) = 403008
-SHA256 (xpi/firefox-i18n-31.0/ku.xpi) = d56bbdf2d87d23f854527c46a2cb243921195ed43063ff5eb557735da7f0f1ef
-SIZE (xpi/firefox-i18n-31.0/ku.xpi) = 420256
-SHA256 (xpi/firefox-i18n-31.0/lij.xpi) = 6f7999831c517b0a6484f6c4221be57690443bc42df47aebd5ce08736df995aa
-SIZE (xpi/firefox-i18n-31.0/lij.xpi) = 386057
-SHA256 (xpi/firefox-i18n-31.0/lt.xpi) = fd34ecfc10a5d277fba87b8d756d0671f162a362ba3b65a6768317c499fb87a7
-SIZE (xpi/firefox-i18n-31.0/lt.xpi) = 435625
-SHA256 (xpi/firefox-i18n-31.0/lv.xpi) = 64ec68a9e91ec7e23eb610615bfaaa0b8511d9728cd60da65fd594fe58e433ed
-SIZE (xpi/firefox-i18n-31.0/lv.xpi) = 398770
-SHA256 (xpi/firefox-i18n-31.0/mai.xpi) = 1854eae057ca51a928d2d75605a8b09c49e5ce37859a1c2be668522303e74e0c
-SIZE (xpi/firefox-i18n-31.0/mai.xpi) = 445078
-SHA256 (xpi/firefox-i18n-31.0/mk.xpi) = 2d05606f289a6d7fd7c7362197d4a30ef62b124c4f802d73803987f96d50a365
-SIZE (xpi/firefox-i18n-31.0/mk.xpi) = 475677
-SHA256 (xpi/firefox-i18n-31.0/ml.xpi) = ed265f781b769d690e9d70c1809dda688648822a8ff0cf06b1c76955adc1019f
-SIZE (xpi/firefox-i18n-31.0/ml.xpi) = 466447
-SHA256 (xpi/firefox-i18n-31.0/mr.xpi) = b52360035998ea66829e9d3bb8cd2fa462ae0adb5a248716aa7afc0f63a10f5b
-SIZE (xpi/firefox-i18n-31.0/mr.xpi) = 451485
-SHA256 (xpi/firefox-i18n-31.0/ms.xpi) = 9c82c6883e19d67d94e101272ebbf8367bc75106ee2fce6fe54477d93cf3435e
-SIZE (xpi/firefox-i18n-31.0/ms.xpi) = 436424
-SHA256 (xpi/firefox-i18n-31.0/nb-NO.xpi) = 4d05a61dc863bd7abe378d7565712784bf69efc287dafae555dd21736fef4678
-SIZE (xpi/firefox-i18n-31.0/nb-NO.xpi) = 392199
-SHA256 (xpi/firefox-i18n-31.0/nl.xpi) = 39b53bdf906dd8273c397be1b1b10bc45da62af4f28eb33f3f9bc291e1464c1d
-SIZE (xpi/firefox-i18n-31.0/nl.xpi) = 391078
-SHA256 (xpi/firefox-i18n-31.0/nn-NO.xpi) = 52496ba650ddd38d74d50214e2eb7d15195711264b2d904363a0c1e06f209023
-SIZE (xpi/firefox-i18n-31.0/nn-NO.xpi) = 386475
-SHA256 (xpi/firefox-i18n-31.0/or.xpi) = 7ed8338eabd6a15990272891d18e393819583efadb4aed842c1efb9d4a950cff
-SIZE (xpi/firefox-i18n-31.0/or.xpi) = 464943
-SHA256 (xpi/firefox-i18n-31.0/pa-IN.xpi) = 5607d16fe6a474a7530e5731e0891fee0d6c38a7c7dc27ea71c490fad1e9981c
-SIZE (xpi/firefox-i18n-31.0/pa-IN.xpi) = 439519
-SHA256 (xpi/firefox-i18n-31.0/pl.xpi) = 68bae55ad08937c94603c00cb81723406400884c2af671289ab4228969d60c8c
-SIZE (xpi/firefox-i18n-31.0/pl.xpi) = 374940
-SHA256 (xpi/firefox-i18n-31.0/pt-BR.xpi) = 0702c144569fa1b4acc4b88c4b723a93a2c7be5751e69276c94d84558e3abe92
-SIZE (xpi/firefox-i18n-31.0/pt-BR.xpi) = 405758
-SHA256 (xpi/firefox-i18n-31.0/pt-PT.xpi) = 92a99b29b6b078b36934d29e81462f3508842f99ce64fd13e97866dbc3b7dba0
-SIZE (xpi/firefox-i18n-31.0/pt-PT.xpi) = 386536
-SHA256 (xpi/firefox-i18n-31.0/rm.xpi) = a2f708b1710fc2d473d5b0c8edbb9f8b88f58c8b28c7c62960df80e5d3bc849a
-SIZE (xpi/firefox-i18n-31.0/rm.xpi) = 399478
-SHA256 (xpi/firefox-i18n-31.0/ro.xpi) = 23c3a042262d6c7be84b7065d0eafcfaf069176ef474155bc606f3c2cc3d629d
-SIZE (xpi/firefox-i18n-31.0/ro.xpi) = 439581
-SHA256 (xpi/firefox-i18n-31.0/ru.xpi) = f336f59840fc21761aaaef3f38f38d73a5984eb211de711594dcafe419e2cb0c
-SIZE (xpi/firefox-i18n-31.0/ru.xpi) = 368090
-SHA256 (xpi/firefox-i18n-31.0/si.xpi) = efba0e0146a324c6ba79ac6fc83899236907166f45d4d59de3a26d43257c64dd
-SIZE (xpi/firefox-i18n-31.0/si.xpi) = 463418
-SHA256 (xpi/firefox-i18n-31.0/sk.xpi) = fb69c49c0d71946950e38fef73f1fa823517a1b8c81602f0921353b327706042
-SIZE (xpi/firefox-i18n-31.0/sk.xpi) = 413995
-SHA256 (xpi/firefox-i18n-31.0/sl.xpi) = 6cca51d1ba210c54e296ddbb0caaecd56caf4615e1305fad7e62f8f52c72e99d
-SIZE (xpi/firefox-i18n-31.0/sl.xpi) = 387326
-SHA256 (xpi/firefox-i18n-31.0/son.xpi) = 2d76dc5a37d7fccf277b1d671f50d1368273736c54e5d3616a2af251e0f0c387
-SIZE (xpi/firefox-i18n-31.0/son.xpi) = 395336
-SHA256 (xpi/firefox-i18n-31.0/sq.xpi) = 22b10959e5e6054ccf03864afedbeaeb59e88f8fd12e82888b8901af4abfd596
-SIZE (xpi/firefox-i18n-31.0/sq.xpi) = 431331
-SHA256 (xpi/firefox-i18n-31.0/sr.xpi) = b544f98dee89a043859ae5c554657c258f30e059bbb3a73f62c516e4f0c706c4
-SIZE (xpi/firefox-i18n-31.0/sr.xpi) = 426095
-SHA256 (xpi/firefox-i18n-31.0/sv-SE.xpi) = 066d3cad0cbb20b1e172d9bb98a2dab21cb425f3d644bf58b3e0df52977290de
-SIZE (xpi/firefox-i18n-31.0/sv-SE.xpi) = 399219
-SHA256 (xpi/firefox-i18n-31.0/ta.xpi) = 19dfc532b13b47d652068c34b01430cb53dce3aa9035919f216e4294e3109abe
-SIZE (xpi/firefox-i18n-31.0/ta.xpi) = 447878
-SHA256 (xpi/firefox-i18n-31.0/te.xpi) = 4e08ca67cdd3b926032db97a16c7a16aa984789c79c5f40a46451063b6eb07b0
-SIZE (xpi/firefox-i18n-31.0/te.xpi) = 462785
-SHA256 (xpi/firefox-i18n-31.0/th.xpi) = 1e387122bbb76988a1aaa110019d1dde87192d8c387f58ea54bb41433cd818f8
-SIZE (xpi/firefox-i18n-31.0/th.xpi) = 478321
-SHA256 (xpi/firefox-i18n-31.0/tr.xpi) = 73eddd42b90504f9ed160ecf569fc6067fd7476adc389c4b2630413b4e24f648
-SIZE (xpi/firefox-i18n-31.0/tr.xpi) = 417564
-SHA256 (xpi/firefox-i18n-31.0/uk.xpi) = 962051f56490be60f047bb807b01c63e2ac0fe24165e37f41110fbfd59879908
-SIZE (xpi/firefox-i18n-31.0/uk.xpi) = 428197
-SHA256 (xpi/firefox-i18n-31.0/vi.xpi) = 67a1d478b02d2885d4b5735aab2b040fd7d3c8ead7d5948f6cc15f4d37f487b8
-SIZE (xpi/firefox-i18n-31.0/vi.xpi) = 413568
-SHA256 (xpi/firefox-i18n-31.0/xh.xpi) = 33a833ba8aa8597f8a9bd34a15a62d2d1cedd3b4f2ed64b9e20a0b7ce9ff6b78
-SIZE (xpi/firefox-i18n-31.0/xh.xpi) = 398070
-SHA256 (xpi/firefox-i18n-31.0/zh-CN.xpi) = 0b35be1cc865baae8740ff08de5f5cd334d38618efa03ef633c410358fedf5ce
-SIZE (xpi/firefox-i18n-31.0/zh-CN.xpi) = 419823
-SHA256 (xpi/firefox-i18n-31.0/zh-TW.xpi) = d76aab32932b42273b7f85b8c04c95823bd242804cf439c7a11b43c865977ef7
-SIZE (xpi/firefox-i18n-31.0/zh-TW.xpi) = 412714
-SHA256 (xpi/firefox-i18n-31.0/zu.xpi) = df473118aee16a915c98f275dcc27a22c7fc8aeb0f57dd92257fb4d517275667
-SIZE (xpi/firefox-i18n-31.0/zu.xpi) = 433409
+SHA256 (xpi/firefox-i18n-33.0b1/ach.xpi) = e4d311b0f92f32e646d8bb5b2d3d79dd3141a516ca849ee59311342f85da5541
+SIZE (xpi/firefox-i18n-33.0b1/ach.xpi) = 438058
+SHA256 (xpi/firefox-i18n-33.0b1/af.xpi) = b50d14102e64025d9ac625c7014883aa7f3659c0212d00cc067b462e984836d0
+SIZE (xpi/firefox-i18n-33.0b1/af.xpi) = 439179
+SHA256 (xpi/firefox-i18n-33.0b1/an.xpi) = 74b52cc76246cc4d10d518bc5d3d52d9496bc79fbd946505d7e63c1311e8b595
+SIZE (xpi/firefox-i18n-33.0b1/an.xpi) = 416630
+SHA256 (xpi/firefox-i18n-33.0b1/ar.xpi) = 9a3342b32d403d083c89e5bd52e7f30b72ba98a7353574419973f6e697a7bdcc
+SIZE (xpi/firefox-i18n-33.0b1/ar.xpi) = 470010
+SHA256 (xpi/firefox-i18n-33.0b1/as.xpi) = 8fb7930fa74ec3e4c94dd7ab1b038809246747d2a66cb413cfd7bad72a09b159
+SIZE (xpi/firefox-i18n-33.0b1/as.xpi) = 459067
+SHA256 (xpi/firefox-i18n-33.0b1/ast.xpi) = 818277f090429116b7db140166da14acdbf49fd1629688979362ed8dcb01fbc5
+SIZE (xpi/firefox-i18n-33.0b1/ast.xpi) = 356405
+SHA256 (xpi/firefox-i18n-33.0b1/be.xpi) = 5341080b1cc06f954c265901cd4a167f2256412c91f2e76a8ba4f5635d66e902
+SIZE (xpi/firefox-i18n-33.0b1/be.xpi) = 391580
+SHA256 (xpi/firefox-i18n-33.0b1/bg.xpi) = 3e96f797285a1cfa6dde362f3b4c4f8d62664b48f109d085218c6fbd9ca9db8c
+SIZE (xpi/firefox-i18n-33.0b1/bg.xpi) = 448181
+SHA256 (xpi/firefox-i18n-33.0b1/bn-BD.xpi) = 84a97bde188de712fdf4deb383a1c592574b22bbd5bae35855e1f8e8dbe3d488
+SIZE (xpi/firefox-i18n-33.0b1/bn-BD.xpi) = 482818
+SHA256 (xpi/firefox-i18n-33.0b1/bn-IN.xpi) = 7bf92e5373cee8a5cc9ac4744c9b2aaa47be5638b721c90508c9d2874cab5374
+SIZE (xpi/firefox-i18n-33.0b1/bn-IN.xpi) = 473625
+SHA256 (xpi/firefox-i18n-33.0b1/br.xpi) = 8dee1456b35261821e4f491f1cb6ab80e2a18d7ca1b0d102e7d5f83e8358e4be
+SIZE (xpi/firefox-i18n-33.0b1/br.xpi) = 398474
+SHA256 (xpi/firefox-i18n-33.0b1/bs.xpi) = 9a35a585c491d21cfed7098480ac75f4c7192ab6b9cc1f64113e4a8450256854
+SIZE (xpi/firefox-i18n-33.0b1/bs.xpi) = 439656
+SHA256 (xpi/firefox-i18n-33.0b1/ca.xpi) = 3c4415c6c80f8b965f12101a8ff2eaee0d98902cbd2a334f488d5884a9d19019
+SIZE (xpi/firefox-i18n-33.0b1/ca.xpi) = 413160
+SHA256 (xpi/firefox-i18n-33.0b1/cs.xpi) = 0f4df6dd38a7fcf47168723e6380a7fa21d2bbd3c532c44e2fc2de5192cfc1ac
+SIZE (xpi/firefox-i18n-33.0b1/cs.xpi) = 400638
+SHA256 (xpi/firefox-i18n-33.0b1/csb.xpi) = 087f1290d1009ce2bdcf5b7a8bea59a2d2d11a6204b1b8cc6fcb0e9f8f7a0f43
+SIZE (xpi/firefox-i18n-33.0b1/csb.xpi) = 394398
+SHA256 (xpi/firefox-i18n-33.0b1/cy.xpi) = c264685955a549c9ff19c9438327cb7a4a506336f3259a06aa48daa00ebafba8
+SIZE (xpi/firefox-i18n-33.0b1/cy.xpi) = 399933
+SHA256 (xpi/firefox-i18n-33.0b1/da.xpi) = 7d6cccba398be7995b09f6ddb142724aa9602dbc0294e4ac173d712f4cb208bc
+SIZE (xpi/firefox-i18n-33.0b1/da.xpi) = 406908
+SHA256 (xpi/firefox-i18n-33.0b1/de.xpi) = a13ccdb7531c967137ec2ee8836d6c0c58e5311c0d82856c4b6b08dfc0e75d78
+SIZE (xpi/firefox-i18n-33.0b1/de.xpi) = 405048
+SHA256 (xpi/firefox-i18n-33.0b1/el.xpi) = e6d4b0fd9f8c143a19f153b6a34bc93c64fb0caa48a46b7953860587d784aa46
+SIZE (xpi/firefox-i18n-33.0b1/el.xpi) = 453041
+SHA256 (xpi/firefox-i18n-33.0b1/en-GB.xpi) = 52102003a5eedf071eb451704c57c9331d978115ea03f9d2bf60a933dbeb61f1
+SIZE (xpi/firefox-i18n-33.0b1/en-GB.xpi) = 399778
+SHA256 (xpi/firefox-i18n-33.0b1/en-US.xpi) = 579756463fe2376fa9e657ca63d335f12e1c3bd6dffb6c16cfcfc77c4dcc942b
+SIZE (xpi/firefox-i18n-33.0b1/en-US.xpi) = 431464
+SHA256 (xpi/firefox-i18n-33.0b1/en-ZA.xpi) = 25042fcf9f4805c53008852e143f0ec5b3159c3c9afd31aaf7dbc86c33e0e720
+SIZE (xpi/firefox-i18n-33.0b1/en-ZA.xpi) = 399051
+SHA256 (xpi/firefox-i18n-33.0b1/eo.xpi) = fa8899c6e68ca978b17b239f239251bb8f53b046fb5be084c4b19d4ea786cc85
+SIZE (xpi/firefox-i18n-33.0b1/eo.xpi) = 440954
+SHA256 (xpi/firefox-i18n-33.0b1/es-AR.xpi) = 6376792cc6b38eef0f4454b3dfa1e21d550d4120b92db8b3e2000c94bd1767dc
+SIZE (xpi/firefox-i18n-33.0b1/es-AR.xpi) = 409126
+SHA256 (xpi/firefox-i18n-33.0b1/es-CL.xpi) = be195830d18d52fe5ca59a0eb402b3e731625138376e68267431487fa79bb289
+SIZE (xpi/firefox-i18n-33.0b1/es-CL.xpi) = 348578
+SHA256 (xpi/firefox-i18n-33.0b1/es-ES.xpi) = 8428b28064befe5073124d6270f785e65f254fc1a7aace3a0dacd3246fdd826c
+SIZE (xpi/firefox-i18n-33.0b1/es-ES.xpi) = 340971
+SHA256 (xpi/firefox-i18n-33.0b1/es-MX.xpi) = b8d8fe4222458860f6a280820cb7da3df2a243fdc07229470296ab9a4f8f62b0
+SIZE (xpi/firefox-i18n-33.0b1/es-MX.xpi) = 411638
+SHA256 (xpi/firefox-i18n-33.0b1/et.xpi) = dbb719df6b62c16d398e18d034179d9e29d45b05fd1ee9b54d7bef6ce693c195
+SIZE (xpi/firefox-i18n-33.0b1/et.xpi) = 399281
+SHA256 (xpi/firefox-i18n-33.0b1/eu.xpi) = a6f4912a8b06da602f247e021ec2fcf435f8c5f5e894b21874902262cd52af83
+SIZE (xpi/firefox-i18n-33.0b1/eu.xpi) = 422008
+SHA256 (xpi/firefox-i18n-33.0b1/fa.xpi) = 352c6f75d3ebc8fcb009a7b7ac7b69c59b7484c4fba916626f882a730949f14e
+SIZE (xpi/firefox-i18n-33.0b1/fa.xpi) = 470427
+SHA256 (xpi/firefox-i18n-33.0b1/ff.xpi) = 40039dc5ec29e235067628b1b1e661d51cef2a589eb538bbd08a80ce6c117c5e
+SIZE (xpi/firefox-i18n-33.0b1/ff.xpi) = 409281
+SHA256 (xpi/firefox-i18n-33.0b1/fi.xpi) = fd3b6077dbb32f6027355cf456ab296e7eb8dc22efd6c240f3d07096966a9ef7
+SIZE (xpi/firefox-i18n-33.0b1/fi.xpi) = 401368
+SHA256 (xpi/firefox-i18n-33.0b1/fr.xpi) = 6be8e738c8498708ffca0b4a684a3e953325f7ee152beec413f8caba3df4e50d
+SIZE (xpi/firefox-i18n-33.0b1/fr.xpi) = 416095
+SHA256 (xpi/firefox-i18n-33.0b1/fy-NL.xpi) = 1c57d197cdc0515cc5bce491935bd8e58ba301b2d9708f191b1cd15b457951a9
+SIZE (xpi/firefox-i18n-33.0b1/fy-NL.xpi) = 410821
+SHA256 (xpi/firefox-i18n-33.0b1/ga-IE.xpi) = 7a4f2b48985381114d88fe9a668ff9e8e45cf4365f43ad2f0b3ec3ef1024ec52
+SIZE (xpi/firefox-i18n-33.0b1/ga-IE.xpi) = 418716
+SHA256 (xpi/firefox-i18n-33.0b1/gd.xpi) = f26d3ba4bab41d2302fe669896c99a214028575fbb32c3c52a5d567030e36bec
+SIZE (xpi/firefox-i18n-33.0b1/gd.xpi) = 411859
+SHA256 (xpi/firefox-i18n-33.0b1/gl.xpi) = 32a2f9173d98c0eb9f6042ddc3e5b64ea8dffddc37f89f3ebd116608c8ad8aec
+SIZE (xpi/firefox-i18n-33.0b1/gl.xpi) = 400658
+SHA256 (xpi/firefox-i18n-33.0b1/gu-IN.xpi) = 524ff817e37a68ed184794a1bb064f9b06e34703d2de67d3be70b70bafdbb476
+SIZE (xpi/firefox-i18n-33.0b1/gu-IN.xpi) = 428745
+SHA256 (xpi/firefox-i18n-33.0b1/he.xpi) = 8443bea7a444857d465c7485e355982d59516c1df16dc005ba908240199dfa57
+SIZE (xpi/firefox-i18n-33.0b1/he.xpi) = 437395
+SHA256 (xpi/firefox-i18n-33.0b1/hi-IN.xpi) = e6b0176f2ad8da81aff4f5dd8f405d1f3b7dcd01c700d3271e191e3a1f88f2ee
+SIZE (xpi/firefox-i18n-33.0b1/hi-IN.xpi) = 451178
+SHA256 (xpi/firefox-i18n-33.0b1/hr.xpi) = 0c0d86958a319518e0219096e1b29e1cf1d31d8fb02d50334b98ec3289121ae2
+SIZE (xpi/firefox-i18n-33.0b1/hr.xpi) = 433733
+SHA256 (xpi/firefox-i18n-33.0b1/hsb.xpi) = 4fdd9d88df2b1b6aec7a99d0fa26a47b15f8d62bb3c3164cad5b2ba3ab2ebe40
+SIZE (xpi/firefox-i18n-33.0b1/hsb.xpi) = 422805
+SHA256 (xpi/firefox-i18n-33.0b1/hu.xpi) = 0053a6e587b26f3799cad45968c7c4b55354c433a65377c2afde9408090c8250
+SIZE (xpi/firefox-i18n-33.0b1/hu.xpi) = 408166
+SHA256 (xpi/firefox-i18n-33.0b1/hy-AM.xpi) = 151bd2931361d54a854149c8c5c30315edc43773c214e24e65e0fe16d76d15f0
+SIZE (xpi/firefox-i18n-33.0b1/hy-AM.xpi) = 488862
+SHA256 (xpi/firefox-i18n-33.0b1/id.xpi) = 4ba731dfe8c6ff5c9ab50c342a62ea209c02724c6abd2180da2f4842ed3c932d
+SIZE (xpi/firefox-i18n-33.0b1/id.xpi) = 387156
+SHA256 (xpi/firefox-i18n-33.0b1/is.xpi) = de6077da55bccf68a3168a0cc0317583f820816a6094c627576810edba068820
+SIZE (xpi/firefox-i18n-33.0b1/is.xpi) = 436811
+SHA256 (xpi/firefox-i18n-33.0b1/it.xpi) = 227c6a0bdd3b474373037c10837063fbef5f0343cc29c3457d43af2f9bc7819d
+SIZE (xpi/firefox-i18n-33.0b1/it.xpi) = 335740
+SHA256 (xpi/firefox-i18n-33.0b1/ja.xpi) = 851ffb0320a487ece3979cce3b3060d63bb989cbc224d651e1bddc9ebbb0276a
+SIZE (xpi/firefox-i18n-33.0b1/ja.xpi) = 431104
+SHA256 (xpi/firefox-i18n-33.0b1/kk.xpi) = 066ef43688ec7bce4374dd16b60b77a8c1c0d73bf1a3205dd29580e8ae4f4658
+SIZE (xpi/firefox-i18n-33.0b1/kk.xpi) = 449148
+SHA256 (xpi/firefox-i18n-33.0b1/km.xpi) = 2b42f216a2871968ac02439be2dfe413bd03dce847dd5ee2901cf30650fa0dd9
+SIZE (xpi/firefox-i18n-33.0b1/km.xpi) = 517087
+SHA256 (xpi/firefox-i18n-33.0b1/kn.xpi) = dc17e0f7425bac28b6a3ba92ab85d6df5d7d69db8f2de252055058ad1ae20e19
+SIZE (xpi/firefox-i18n-33.0b1/kn.xpi) = 483822
+SHA256 (xpi/firefox-i18n-33.0b1/ko.xpi) = d312f8e37e3b737fddd33a3f64e124a38a91baf8bd4c6f6ccd5755f4412ab817
+SIZE (xpi/firefox-i18n-33.0b1/ko.xpi) = 412980
+SHA256 (xpi/firefox-i18n-33.0b1/ku.xpi) = dc3548cbe5e49770e70f07ac27a7ac9838c3a39c04be4872bcde15836d91c533
+SIZE (xpi/firefox-i18n-33.0b1/ku.xpi) = 430236
+SHA256 (xpi/firefox-i18n-33.0b1/lij.xpi) = 4cc465a94ee712801181a19f3b48c8d7b0ec52e83e0435256e00b47e03f69de3
+SIZE (xpi/firefox-i18n-33.0b1/lij.xpi) = 396783
+SHA256 (xpi/firefox-i18n-33.0b1/lt.xpi) = 63f555c54c522a7e66cebabf1afb94ef9a9463507313618ef896a8f88afab2cd
+SIZE (xpi/firefox-i18n-33.0b1/lt.xpi) = 440001
+SHA256 (xpi/firefox-i18n-33.0b1/lv.xpi) = c8fa0e8573d4e6ada817b151096c440d5202834f15efb72eed61b35f740d3281
+SIZE (xpi/firefox-i18n-33.0b1/lv.xpi) = 407500
+SHA256 (xpi/firefox-i18n-33.0b1/mai.xpi) = c53424568c857ead57338152f1cf7515c0d77851833bfdb282f60088fadd0cf5
+SIZE (xpi/firefox-i18n-33.0b1/mai.xpi) = 454443
+SHA256 (xpi/firefox-i18n-33.0b1/mk.xpi) = ff2c7d3b36d0c5fa1935fefe0bfef4c1da16c8ac680140c22bbc7ebda70de0cd
+SIZE (xpi/firefox-i18n-33.0b1/mk.xpi) = 485257
+SHA256 (xpi/firefox-i18n-33.0b1/ml.xpi) = da7d9e76d163597ec53fee5e7e6ac3b800f90f57e4ef1c44ffed267078654249
+SIZE (xpi/firefox-i18n-33.0b1/ml.xpi) = 481021
+SHA256 (xpi/firefox-i18n-33.0b1/mr.xpi) = 931c936805de01bdd6988623e6651ec7f7bc16d6c98823b131c7a27dbde4659e
+SIZE (xpi/firefox-i18n-33.0b1/mr.xpi) = 461601
+SHA256 (xpi/firefox-i18n-33.0b1/ms.xpi) = b1c94734c1c18c80fea4842d12ea53c05a857a4a405112a87770d559dc290ecd
+SIZE (xpi/firefox-i18n-33.0b1/ms.xpi) = 444564
+SHA256 (xpi/firefox-i18n-33.0b1/nb-NO.xpi) = c573d9586511f0d818023a8868324abe0dad489de965c9caf72e604c74618069
+SIZE (xpi/firefox-i18n-33.0b1/nb-NO.xpi) = 401108
+SHA256 (xpi/firefox-i18n-33.0b1/nl.xpi) = 294548cbbf8f435f6bb69b2944769ac5f08c0de15ece93ae4e7e604459b5dc2a
+SIZE (xpi/firefox-i18n-33.0b1/nl.xpi) = 399883
+SHA256 (xpi/firefox-i18n-33.0b1/nn-NO.xpi) = 3d15f2e744c874d3724f75e4c53959f83e3519c597759e7fbb568f248ef0dcdd
+SIZE (xpi/firefox-i18n-33.0b1/nn-NO.xpi) = 397309
+SHA256 (xpi/firefox-i18n-33.0b1/or.xpi) = c4e59b13e5528b73b3c53e857774e2f94e77f1b696d0dd63f68a5a7bbb99151d
+SIZE (xpi/firefox-i18n-33.0b1/or.xpi) = 475408
+SHA256 (xpi/firefox-i18n-33.0b1/pa-IN.xpi) = f09c923572da8931aff425be7c1c47c2d4266c822ad8fd52dabfae8391487f22
+SIZE (xpi/firefox-i18n-33.0b1/pa-IN.xpi) = 446917
+SHA256 (xpi/firefox-i18n-33.0b1/pl.xpi) = 0d50baa0aed5d6934112f10882e643189b9d3cec9a7bd1d655e90f2aa7ce559e
+SIZE (xpi/firefox-i18n-33.0b1/pl.xpi) = 382408
+SHA256 (xpi/firefox-i18n-33.0b1/pt-BR.xpi) = e16655a6a5cffa70a5b51fe4d8d46f3aaa88a4e24b0dda0a5e05d2204b267747
+SIZE (xpi/firefox-i18n-33.0b1/pt-BR.xpi) = 414770
+SHA256 (xpi/firefox-i18n-33.0b1/pt-PT.xpi) = b4a993ea4ca309e1c383877e030524f6e70bb85025033a4ad4a98bd28d7021e4
+SIZE (xpi/firefox-i18n-33.0b1/pt-PT.xpi) = 395265
+SHA256 (xpi/firefox-i18n-33.0b1/rm.xpi) = 4221fc53f0eb8768492246f2f3741f66350c88cc1a60e8d2c3da5722e88b2273
+SIZE (xpi/firefox-i18n-33.0b1/rm.xpi) = 409420
+SHA256 (xpi/firefox-i18n-33.0b1/ro.xpi) = 69f626dbac0aa6659947bd9d1176468021839b0508ed47c7c1a088b0589785c1
+SIZE (xpi/firefox-i18n-33.0b1/ro.xpi) = 450344
+SHA256 (xpi/firefox-i18n-33.0b1/ru.xpi) = 397db9bfe475534a82013db3eb35482557aaf1ebadf86488687a6b78d1d0ed74
+SIZE (xpi/firefox-i18n-33.0b1/ru.xpi) = 377954
+SHA256 (xpi/firefox-i18n-33.0b1/si.xpi) = 84f5b2e01d15ea23b86127d7ff7f85d72c1ef0d7a854658bb2d1f972a64110b1
+SIZE (xpi/firefox-i18n-33.0b1/si.xpi) = 471276
+SHA256 (xpi/firefox-i18n-33.0b1/sk.xpi) = 7b99c6b812a6fb40b2fc0fe3e843e5a9f35c6b1c1d9fd381a7001df8eebf4b8f
+SIZE (xpi/firefox-i18n-33.0b1/sk.xpi) = 423458
+SHA256 (xpi/firefox-i18n-33.0b1/sl.xpi) = 982fb0a49ea1f1d7727797df426c0c569167bda5b90724ffc309a14a39345344
+SIZE (xpi/firefox-i18n-33.0b1/sl.xpi) = 395835
+SHA256 (xpi/firefox-i18n-33.0b1/son.xpi) = 14e5cab44b5af31e33202654ed69da0983d3f19b90e57116c810fe278b487459
+SIZE (xpi/firefox-i18n-33.0b1/son.xpi) = 403899
+SHA256 (xpi/firefox-i18n-33.0b1/sq.xpi) = 782c116b693a46ca71b68a1fa1bd2e4586057106de5bcc3d832c29efbed2d5da
+SIZE (xpi/firefox-i18n-33.0b1/sq.xpi) = 440333
+SHA256 (xpi/firefox-i18n-33.0b1/sr.xpi) = f80b348a8f6db1f52c8512132811a0d38184793c2eb92bb43b64eb2dfd6dd777
+SIZE (xpi/firefox-i18n-33.0b1/sr.xpi) = 434722
+SHA256 (xpi/firefox-i18n-33.0b1/sv-SE.xpi) = e86aa2df76ee5edcffa17e80a7bc481880488d97159c9656c8f5bfe89edc4cb9
+SIZE (xpi/firefox-i18n-33.0b1/sv-SE.xpi) = 407801
+SHA256 (xpi/firefox-i18n-33.0b1/ta.xpi) = 8eec74128e6d584bdceb76714f8b945b2ab8d7c486fb3edd5bee86f39911c628
+SIZE (xpi/firefox-i18n-33.0b1/ta.xpi) = 458269
+SHA256 (xpi/firefox-i18n-33.0b1/te.xpi) = 41e60b4268e6fa45605d7d534139f837ec3fd37b2a383705998030a6b7065d9c
+SIZE (xpi/firefox-i18n-33.0b1/te.xpi) = 477177
+SHA256 (xpi/firefox-i18n-33.0b1/th.xpi) = 96faf7ecfbd4d6c28b3fd1752b86027e2415f8170884a1c2788cd3f86226b6d4
+SIZE (xpi/firefox-i18n-33.0b1/th.xpi) = 487651
+SHA256 (xpi/firefox-i18n-33.0b1/tr.xpi) = 7f1e92d8d3539cd38ddde917e58a65bee0e25297a069f3d633f100698b4a3016
+SIZE (xpi/firefox-i18n-33.0b1/tr.xpi) = 427164
+SHA256 (xpi/firefox-i18n-33.0b1/uk.xpi) = 62d00a6644f19233be4e2cd21b7e169d07ac23da5cf68392192a899dc4d15ed8
+SIZE (xpi/firefox-i18n-33.0b1/uk.xpi) = 439276
+SHA256 (xpi/firefox-i18n-33.0b1/vi.xpi) = 9855260a5071fd9c7a108899a2500baa9e1fb3e1e88eecae57c78949264a6a9b
+SIZE (xpi/firefox-i18n-33.0b1/vi.xpi) = 421892
+SHA256 (xpi/firefox-i18n-33.0b1/xh.xpi) = 3e8955f10f451d11af6613ce62bbec1eb010f9fbefc379ba8312fc76045fa26a
+SIZE (xpi/firefox-i18n-33.0b1/xh.xpi) = 407922
+SHA256 (xpi/firefox-i18n-33.0b1/zh-CN.xpi) = ae233abdb5e9817d091fa5c17c90709dcc74ce5905c304cb6c25ebfd6d95906f
+SIZE (xpi/firefox-i18n-33.0b1/zh-CN.xpi) = 429311
+SHA256 (xpi/firefox-i18n-33.0b1/zh-TW.xpi) = b7ad69fb3e445fd4597d7c00109a65f01c530e7df255700552755f2c5944316d
+SIZE (xpi/firefox-i18n-33.0b1/zh-TW.xpi) = 421879
+SHA256 (xpi/firefox-i18n-33.0b1/zu.xpi) = 339059970aa2b9f8d2d04b7d7bfa20d639c0a9478707a155b53d590c16ad4f2e
+SIZE (xpi/firefox-i18n-33.0b1/zu.xpi) = 442936
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index 09d96e9e4913..44cd325e6b2c 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -2,12 +2,12 @@
# $FreeBSD$
PORTNAME= firefox
-DISTVERSION= 31.0
+DISTVERSION= 33.0b1
+DISTVERSIONSUFFIX=.source
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
- https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source/
-DISTNAME= ${PORTNAME}-${DISTVERSION}.source
+ https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source/
MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
@@ -30,10 +30,9 @@ BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \
LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l
USE_AUTOTOOLS= autoconf213:env
-USE_PYTHON_BUILD=2
OBJDIR_BUILD= # in-tree build broken after bug 789837
USE_GECKO= gecko
-CONFLICTS= firefox-esr-24.* firefox-esr-17.* firefox-1[07].*
+CONFLICTS= firefox-esr-31.* firefox-esr-24.* firefox-esr-17.*
MOZ_PKGCONFIG_FILES= # empty
USE_MOZILLA= -cairo
MOZILLA_NAME= Firefox
@@ -57,7 +56,7 @@ MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \
.include "${.CURDIR}/../../www/firefox/Makefile.options"
.include <bsd.port.pre.mk>
-WRKSRC:= ${WRKDIR}/mozilla-release
+WRKSRC:= ${WRKDIR}/mozilla-beta
# avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1>
# http://svnweb.freebsd.org/changeset/base/255804
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index 49e93b662165..99b780181d3c 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,2 +1,2 @@
-SHA256 (firefox-31.0.source.tar.bz2) = 95c789f2f171c4c7bd832999a22bfa9461ac47ba33e97a46392c90e576baf9db
-SIZE (firefox-31.0.source.tar.bz2) = 147507120
+SHA256 (firefox-33.0b1.source.tar.bz2) = 90c5c2db2d13bc5a56a318c37508674707d13b91173363d67416c495581f3cbe
+SIZE (firefox-33.0b1.source.tar.bz2) = 154837284
diff --git a/www/firefox/files/patch-bug1013675 b/www/firefox/files/patch-bug1013675
deleted file mode 100644
index eac435acf3d0..000000000000
--- a/www/firefox/files/patch-bug1013675
+++ /dev/null
@@ -1,88 +0,0 @@
-diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp
-index 13a286f..293bd73 100644
---- xpcom/base/nsDebugImpl.cpp
-+++ xpcom/base/nsDebugImpl.cpp
-@@ -45,12 +45,43 @@
- #endif
- #endif
-
--#if defined(XP_MACOSX)
-+#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
-+ || defined(__NetBSD__) || defined(__OpenBSD__)
- #include <stdbool.h>
- #include <unistd.h>
-+#include <sys/param.h>
- #include <sys/sysctl.h>
- #endif
-
-+#if defined(__OpenBSD__)
-+#include <sys/proc.h>
-+#endif
-+
-+#if defined(__DragonFly__) || defined(__FreeBSD__)
-+#include <sys/user.h>
-+#endif
-+
-+#if defined(__NetBSD__)
-+#undef KERN_PROC
-+#define KERN_PROC KERN_PROC2
-+#define KINFO_PROC struct kinfo_proc2
-+#else
-+#define KINFO_PROC struct kinfo_proc
-+#endif
-+
-+#if defined(XP_MACOSX)
-+#define KP_FLAGS kp_proc.p_flag
-+#elif defined(__DragonFly__)
-+#define KP_FLAGS kp_flags
-+#elif defined(__FreeBSD__)
-+#define KP_FLAGS ki_flag
-+#elif defined(__OpenBSD__) && !defined(_P_TRACED)
-+#define KP_FLAGS p_psflags
-+#define P_TRACED PS_TRACED
-+#else
-+#define KP_FLAGS p_flag
-+#endif
-+
- #include "mozilla/mozalloc_abort.h"
-
- static void
-@@ -144,16 +175,22 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
-
- #if defined(XP_WIN)
- *aResult = ::IsDebuggerPresent();
--#elif defined(XP_MACOSX)
-+#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
-+ || defined(__NetBSD__) || defined(__OpenBSD__)
- // Specify the info we're looking for
-- int mib[4];
-- mib[0] = CTL_KERN;
-- mib[1] = KERN_PROC;
-- mib[2] = KERN_PROC_PID;
-- mib[3] = getpid();
-+ int mib[] = {
-+ CTL_KERN,
-+ KERN_PROC,
-+ KERN_PROC_PID,
-+ getpid(),
-+#if defined(__NetBSD__) || defined(__OpenBSD__)
-+ sizeof(KINFO_PROC),
-+ 1,
-+#endif
-+ };
- size_t mibSize = sizeof(mib) / sizeof(int);
-
-- struct kinfo_proc info;
-+ KINFO_PROC info;
- size_t infoSize = sizeof(info);
- memset(&info, 0, infoSize);
-
-@@ -163,7 +200,7 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
- return NS_OK;
- }
-
-- if (info.kp_proc.p_flag & P_TRACED) {
-+ if (info.KP_FLAGS & P_TRACED) {
- *aResult = true;
- }
- #endif
diff --git a/www/firefox/files/patch-bug1015547 b/www/firefox/files/patch-bug1015547
deleted file mode 100644
index ecb488c36e7f..000000000000
--- a/www/firefox/files/patch-bug1015547
+++ /dev/null
@@ -1,95 +0,0 @@
-diff --git configure.in configure.in
-index 7bed45f..053de17 100644
---- configure.in
-+++ configure.in
-@@ -2950,7 +2950,7 @@ dnl Checks for library functions.
- dnl ========================================================
- AC_PROG_GCC_TRADITIONAL
- AC_FUNC_MEMCMP
--AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r)
-+AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r arc4random arc4random_buf)
-
- dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
- AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
-diff --git xpcom/base/nsUUIDGenerator.cpp xpcom/base/nsUUIDGenerator.cpp
-index 0687344..ca3ff8b 100644
---- xpcom/base/nsUUIDGenerator.cpp
-+++ xpcom/base/nsUUIDGenerator.cpp
-@@ -15,6 +15,10 @@
-
- #include "nsUUIDGenerator.h"
-
-+#ifdef ANDROID
-+extern "C" NS_EXPORT void arc4random_buf(void *, size_t);
-+#endif
-+
- using namespace mozilla;
-
- NS_IMPL_ISUPPORTS1(nsUUIDGenerator, nsIUUIDGenerator)
-@@ -34,7 +38,7 @@ nsUUIDGenerator::Init()
- // We're a service, so we're guaranteed that Init() is not going
- // to be reentered while we're inside Init().
-
--#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
-+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
- /* initialize random number generator using NSPR random noise */
- unsigned int seed;
-
-@@ -67,7 +71,7 @@ nsUUIDGenerator::Init()
- return NS_ERROR_FAILURE;
- #endif
-
--#endif /* non XP_WIN and non XP_MACOSX */
-+#endif /* non XP_WIN and non XP_MACOSX and non ARC4RANDOM */
-
- return NS_OK;
- }
-@@ -114,13 +118,16 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
- * back to it; instead, we use the value returned when we called
- * initstate, since older glibc's have broken setstate() return values
- */
--#ifndef ANDROID
-+#ifndef HAVE_ARC4RANDOM
- setstate(mState);
- #endif
-
-+#ifdef HAVE_ARC4RANDOM_BUF
-+ arc4random_buf(id, sizeof(nsID));
-+#else /* HAVE_ARC4RANDOM_BUF */
- size_t bytesLeft = sizeof(nsID);
- while (bytesLeft > 0) {
--#ifdef ANDROID
-+#ifdef HAVE_ARC4RANDOM
- long rval = arc4random();
- const size_t mRBytes = 4;
- #else
-@@ -141,6 +148,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
-
- bytesLeft -= toWrite;
- }
-+#endif /* HAVE_ARC4RANDOM_BUF */
-
- /* Put in the version */
- id->m2 &= 0x0fff;
-@@ -150,7 +158,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
- id->m3[0] &= 0x3f;
- id->m3[0] |= 0x80;
-
--#ifndef ANDROID
-+#ifndef HAVE_ARC4RANDOM
- /* Restore the previous RNG state */
- setstate(mSavedState);
- #endif
-diff --git xpcom/base/nsUUIDGenerator.h xpcom/base/nsUUIDGenerator.h
-index 6a24212..68ed6f2 100644
---- xpcom/base/nsUUIDGenerator.h
-+++ xpcom/base/nsUUIDGenerator.h
-@@ -27,7 +27,7 @@ private:
- protected:
-
- mozilla::Mutex mLock;
--#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
-+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
- char mState[128];
- char *mSavedState;
- uint8_t mRBytes;
diff --git a/www/firefox/files/patch-bug1041268 b/www/firefox/files/patch-bug1041268
new file mode 100644
index 000000000000..d4ab1a91395e
--- /dev/null
+++ b/www/firefox/files/patch-bug1041268
@@ -0,0 +1,26 @@
+diff --git media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
+index 97f69d3..77a50b3 100644
+--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
++++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
+@@ -18,7 +18,7 @@ ScreenCapturer* ScreenCapturer::Create() {
+ return Create(DesktopCaptureOptions::CreateDefault());
+ }
+
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ ScreenCapturer* ScreenCapturer::CreateWithXDamage(
+ bool use_update_notifications) {
+ DesktopCaptureOptions options;
+diff --git media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
+index a8d40a7..177a6c1 100644
+--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
++++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
+@@ -74,7 +74,7 @@ class ScreenCapturer : public DesktopCapturer {
+ static ScreenCapturer* Create(const DesktopCaptureOptions& options);
+ static ScreenCapturer* Create();
+
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
+ // Creates platform-specific capturer and instructs it whether it should use
+ // X DAMAGE support.
+ static ScreenCapturer* CreateWithXDamage(bool use_x_damage);
diff --git a/www/firefox/files/patch-bug1046224 b/www/firefox/files/patch-bug1046224
new file mode 100644
index 000000000000..50d268f8fabe
--- /dev/null
+++ b/www/firefox/files/patch-bug1046224
@@ -0,0 +1,26 @@
+diff --git configure.in configure.in
+index 1853029..559bd45 100644
+--- configure.in
++++ configure.in
+@@ -2651,7 +2651,7 @@ if test "$ac_cv_sockaddr_sa_len" = true ; then
+ AC_DEFINE(HAVE_SA_LEN)
+ fi
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
+diff --git js/src/configure.in js/src/configure.in
+index 134dfd3..682c1fb 100644
+--- js/src/configure.in
++++ js/src/configure.in
+@@ -2153,7 +2153,7 @@ dnl Quota support
+ MOZ_CHECK_HEADERS(sys/quota.h)
+ MOZ_CHECK_HEADERS(linux/quota.h)
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
diff --git a/www/firefox/files/patch-bug779713 b/www/firefox/files/patch-bug779713
index e4643f4422cb..37e0bc2fb5c0 100644
--- a/www/firefox/files/patch-bug779713
+++ b/www/firefox/files/patch-bug779713
@@ -47,7 +47,15 @@ diff --git mfbt/Attributes.h mfbt/Attributes.h
index d317766..ddb13da 100644
--- mfbt/Attributes.h
+++ mfbt/Attributes.h
-@@ -54,6 +54,9 @@
+@@ -51,6 +51,7 @@
+ * http://stackoverflow.com/questions/20498142/visual-studio-2013-explicit-keyword-bug
+ */
+ # if _MSC_VER >= 1800
++# define MOZ_HAVE_CXX11_ALIGNAS
+ # define MOZ_HAVE_CXX11_DELETE
+ # endif
+ # if _MSC_VER >= 1700
+@@ -74,6 +75,9 @@
# ifndef __has_extension
# define __has_extension __has_feature /* compatibility, for older versions of clang */
# endif
@@ -57,7 +65,7 @@ index d317766..ddb13da 100644
# if __has_extension(cxx_constexpr)
# define MOZ_HAVE_CXX11_CONSTEXPR
# endif
-@@ -75,6 +78,9 @@
+@@ -95,6 +99,9 @@
# endif
#elif defined(__GNUC__)
# if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
@@ -67,11 +75,3 @@ index d317766..ddb13da 100644
# if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0)
# define MOZ_HAVE_CXX11_OVERRIDE
# define MOZ_HAVE_CXX11_FINAL final
-@@ -96,6 +102,7 @@
- # define MOZ_HAVE_NORETURN __attribute__((noreturn))
- #elif defined(_MSC_VER)
- # if _MSC_VER >= 1800
-+# define MOZ_HAVE_CXX11_ALIGNAS
- # define MOZ_HAVE_CXX11_DELETE
- # endif
- # if _MSC_VER >= 1700
diff --git a/www/firefox/files/patch-bug826985 b/www/firefox/files/patch-bug826985
index b8eee831f66d..4e20ff41d658 100644
--- a/www/firefox/files/patch-bug826985
+++ b/www/firefox/files/patch-bug826985
@@ -132,23 +132,26 @@ index d46b5aa..e452223 100644
'targets': [
{
'target_name': 'video_capture_module',
-@@ -49,6 +52,16 @@
- }, { # include_internal_video_capture == 1
- 'conditions': [
- ['include_v4l2_video_capture==1', {
+@@ -46,6 +49,19 @@
+ 'linux/video_capture_linux.cc',
+ 'linux/video_capture_linux.h',
+ ],
+ 'conditions': [
+ ['use_libv4l2==1', {
+ 'defines': [
+ 'HAVE_LIBV4L2',
+ ],
++ 'cflags_mozilla': [
++ '$(MOZ_LIBV4L2_CFLAGS)',
++ ],
+ 'libraries': [
+ '-lv4l2',
+ ],
+ }],
+ ],
- 'include_dirs': [
- 'linux',
- ],
+ }], # linux
+ ['OS=="mac"', {
+ 'sources': [
diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
index 9c16ffa..1db3794 100644
--- toolkit/library/libxul.mk
diff --git a/www/firefox/files/patch-bug847568 b/www/firefox/files/patch-bug847568
index 1504654a4341..a065b937eae9 100644
--- a/www/firefox/files/patch-bug847568
+++ b/www/firefox/files/patch-bug847568
@@ -164,9 +164,9 @@ diff --git intl/unicharutil/util/Makefile.in intl/unicharutil/util/Makefile.in
index f6b9f7c..60863f4 100644
--- intl/unicharutil/util/Makefile.in
+++ intl/unicharutil/util/Makefile.in
-@@ -21,3 +21,7 @@ ifdef _MSC_VER
- OS_COMPILE_CXXFLAGS += -Zl
- OS_COMPILE_CFLAGS += -Zl
+@@ -15,3 +15,7 @@ include $(topsrcdir)/config/rules.mk
+ ifdef ENABLE_INTL_API
+ LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS)
endif
+
+ifdef MOZ_NATIVE_HARFBUZZ
diff --git a/www/firefox/files/patch-bug961264 b/www/firefox/files/patch-bug961264
deleted file mode 100644
index 94fd84ce5cb6..000000000000
--- a/www/firefox/files/patch-bug961264
+++ /dev/null
@@ -1,266 +0,0 @@
-commit d099acd
-Author: Trevor Saunders <trev.saunders@gmail.com>
-Date: Fri Jan 17 15:08:00 2014 -0800
-
- Bug 961264 - Remove obsolete checks for gcc visibility stuff.
----
- configure.in | 115 +++-------------------------------------------------
- js/src/configure.in | 111 ++------------------------------------------------
- 2 files changed, 8 insertions(+), 218 deletions(-)
-
-diff --git configure.in configure.in
-index dfb8193..33d71b3 100644
---- configure.in
-+++ configure.in
-@@ -2507,118 +2507,15 @@ MOZ_CXX11
-
- AC_LANG_C
-
--dnl Check for .hidden assembler directive and visibility attribute.
--dnl Borrowed from glibc configure.in
-+dnl Setup default hidden visibility and wrapped system headers.
- dnl ===============================================================
- if test "$GNU_CC"; then
-- AC_CACHE_CHECK(for visibility(hidden) attribute,
-- ac_cv_visibility_hidden,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("hidden"))) = 1;
--EOF
-- ac_cv_visibility_hidden=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_hidden=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_hidden" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility(default) attribute,
-- ac_cv_visibility_default,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("default"))) = 1;
--EOF
-- ac_cv_visibility_default=no
-- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_default=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_default" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility pragma support,
-- ac_cv_visibility_pragma,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
-- int foo_hidden = 1;
--#pragma GCC visibility push(default)
-- int foo_default = 1;
--EOF
-- ac_cv_visibility_pragma=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
-- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
-- ac_cv_visibility_pragma=yes
-- fi
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_pragma" = "yes"; then
-- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
-- ac_cv_have_visibility_class_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--struct __attribute__ ((visibility ("default"))) TestStruct {
-- static void Init();
--};
--__attribute__ ((visibility ("default"))) void TestFunc() {
-- TestStruct::Init();
--}
--EOF
-- ac_cv_have_visibility_class_bug=no
-- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_class_bug=yes
-- else
-- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
-- ac_cv_have_visibility_class_bug=yes
-- fi
-- fi
-- rm -rf conftest.{c,S}
-- ])
--
-- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
-- ac_cv_have_visibility_builtin_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--#pragma GCC visibility push(default)
--#include <string.h>
--#pragma GCC visibility pop
--
--__attribute__ ((visibility ("default"))) void Func() {
-- char c[[100]];
-- memset(c, 0, sizeof(c));
--}
--EOF
-- ac_cv_have_visibility_builtin_bug=no
-- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_builtin_bug=yes
-- else
-- if test `grep -c "@PLT" conftest.S` = 0; then
-- ac_cv_visibility_builtin_bug=yes
-- fi
-- fi
-- rm -f conftest.{c,S}
-- ])
-- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
-- "$ac_cv_have_visibility_class_bug" = "no"; then
-- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-- WRAP_SYSTEM_INCLUDES=1
-- STL_FLAGS='-I$(DIST)/stl_wrappers'
-- WRAP_STL_INCLUDES=1
-- else
-- VISIBILITY_FLAGS='-fvisibility=hidden'
-- fi # have visibility pragma bug
-- fi # have visibility pragma
-- fi # have visibility(default) attribute
-- fi # have visibility(hidden) attribute
-+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
-+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
-+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-+ WRAP_SYSTEM_INCLUDES=1
-+ STL_FLAGS='-I$(DIST)/stl_wrappers'
-+ WRAP_STL_INCLUDES=1
- fi # GNU_CC
-
- # visibility hidden flag for Sun Studio on Solaris
-diff --git js/src/configure.in js/src/configure.in
-index bddd46d..d4b522e 100644
---- js/src/configure.in
-+++ js/src/configure.in
-@@ -2077,116 +2077,13 @@ AC_LANG_CPLUSPLUS
-
- MOZ_CXX11
-
--dnl Check for .hidden assembler directive and visibility attribute.
--dnl Borrowed from glibc configure.in
-+dnl Setup default hidden visibility and wrapped system headers.
- dnl ===============================================================
- if test "$GNU_CC"; then
-- AC_CACHE_CHECK(for visibility(hidden) attribute,
-- ac_cv_visibility_hidden,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("hidden"))) = 1;
--EOF
-- ac_cv_visibility_hidden=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_hidden=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_hidden" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility(default) attribute,
-- ac_cv_visibility_default,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("default"))) = 1;
--EOF
-- ac_cv_visibility_default=no
-- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_default=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_default" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility pragma support,
-- ac_cv_visibility_pragma,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
-- int foo_hidden = 1;
--#pragma GCC visibility push(default)
-- int foo_default = 1;
--EOF
-- ac_cv_visibility_pragma=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
-- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
-- ac_cv_visibility_pragma=yes
-- fi
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_pragma" = "yes"; then
-- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
-- ac_cv_have_visibility_class_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--struct __attribute__ ((visibility ("default"))) TestStruct {
-- static void Init();
--};
--__attribute__ ((visibility ("default"))) void TestFunc() {
-- TestStruct::Init();
--}
--EOF
-- ac_cv_have_visibility_class_bug=no
-- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_class_bug=yes
-- else
-- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
-- ac_cv_have_visibility_class_bug=yes
-- fi
-- fi
-- rm -rf conftest.{c,S}
-- ])
--
-- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
-- ac_cv_have_visibility_builtin_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--#pragma GCC visibility push(default)
--#include <string.h>
--#pragma GCC visibility pop
--
--__attribute__ ((visibility ("default"))) void Func() {
-- char c[[100]];
-- memset(c, 0, sizeof(c));
--}
--EOF
-- ac_cv_have_visibility_builtin_bug=no
-- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_builtin_bug=yes
-- else
-- if test `grep -c "@PLT" conftest.S` = 0; then
-- ac_cv_visibility_builtin_bug=yes
-- fi
-- fi
-- rm -f conftest.{c,S}
-- ])
-- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
-- "$ac_cv_have_visibility_class_bug" = "no"; then
-- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-- WRAP_SYSTEM_INCLUDES=1
-- else
-- VISIBILITY_FLAGS='-fvisibility=hidden'
-- fi # have visibility pragma bug
-- fi # have visibility pragma
-- fi # have visibility(default) attribute
-- fi # have visibility(hidden) attribute
-+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
-+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
-+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-+ WRAP_SYSTEM_INCLUDES=1
- fi # GNU_CC
-
- # visibility hidden flag for Sun Studio on Solaris
diff --git a/www/firefox/files/patch-media-libstagefright-foundation-AString.cpp b/www/firefox/files/patch-media-libstagefright-foundation-AString.cpp
new file mode 100644
index 000000000000..530902b13393
--- /dev/null
+++ b/www/firefox/files/patch-media-libstagefright-foundation-AString.cpp
@@ -0,0 +1,16 @@
+--- media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp~
++++ media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp
+@@ -23,6 +23,13 @@
+ #include "ADebug.h"
+ #include "AString.h"
+
++#ifdef __FreeBSD__
++# include <osreldate.h>
++# if __FreeBSD_version < 900506
++# undef tolower
++# endif
++#endif
++
+ namespace stagefright {
+
+ // static
diff --git a/www/firefox/files/patch-z-bug517422 b/www/firefox/files/patch-z-bug517422
index 17432a29775c..eb84013cb964 100644
--- a/www/firefox/files/patch-z-bug517422
+++ b/www/firefox/files/patch-z-bug517422
@@ -45,7 +45,7 @@ index f67c5c7..eb909ce 100644
external_dirs += ['media/libopus']
if CONFIG['MOZ_WEBM']:
-@@ -36,13 +42,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
+@@ -36,14 +42,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
if not CONFIG['MOZ_NATIVE_PNG']:
external_dirs += ['media/libpng']
@@ -61,6 +61,7 @@ index f67c5c7..eb909ce 100644
- 'media/libogg',
- 'media/libtheora',
- 'media/libspeex_resampler',
+ 'media/libstagefright',
- 'media/libsoundtouch',
]
diff --git a/www/libxul/Makefile b/www/libxul/Makefile
index 9cf474b39e60..61847fe016a9 100644
--- a/www/libxul/Makefile
+++ b/www/libxul/Makefile
@@ -2,9 +2,10 @@
# $FreeBSD$
PORTNAME= libxul
-DISTVERSION= 24.7.0
+DISTVERSION= 24.8.0
CATEGORIES?= www devel
-MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source
+MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \
+ https://ftp.mozilla.org/pub/mozilla.org/firefox/candidates/${DISTVERSION}esr-candidates/build1/source/
DISTNAME= firefox-${DISTVERSION}esr.source
MAINTAINER?= gecko@FreeBSD.org
@@ -29,7 +30,6 @@ WRKSRC= ${WRKDIR}/mozilla-esr24
CONFLICTS= libxul-1.9.*
USE_AUTOTOOLS= autoconf213:env
-USE_PYTHON_BUILD=2
WANT_GNOME= yes
USE_QT4= # empty
QT_NONSTANDARD= yes
diff --git a/www/libxul/distinfo b/www/libxul/distinfo
index ff44c811e43b..a4762361cfbb 100644
--- a/www/libxul/distinfo
+++ b/www/libxul/distinfo
@@ -1,2 +1,2 @@
-SHA256 (firefox-24.7.0esr.source.tar.bz2) = 079b6021f153ba11658cefe41d467e25357cd78e84d3d66c6abcfecb5a00121f
-SIZE (firefox-24.7.0esr.source.tar.bz2) = 119967111
+SHA256 (firefox-24.8.0esr.source.tar.bz2) = d1247f58f898f2dcc0f21572ac0df6d27a3ed6b0a4c92f6d10ad377ac021c006
+SIZE (firefox-24.8.0esr.source.tar.bz2) = 119635865
diff --git a/www/libxul/files/patch-bug1046224 b/www/libxul/files/patch-bug1046224
new file mode 100644
index 000000000000..50d268f8fabe
--- /dev/null
+++ b/www/libxul/files/patch-bug1046224
@@ -0,0 +1,26 @@
+diff --git configure.in configure.in
+index 1853029..559bd45 100644
+--- configure.in
++++ configure.in
+@@ -2651,7 +2651,7 @@ if test "$ac_cv_sockaddr_sa_len" = true ; then
+ AC_DEFINE(HAVE_SA_LEN)
+ fi
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
+diff --git js/src/configure.in js/src/configure.in
+index 134dfd3..682c1fb 100644
+--- js/src/configure.in
++++ js/src/configure.in
+@@ -2153,7 +2153,7 @@ dnl Quota support
+ MOZ_CHECK_HEADERS(sys/quota.h)
+ MOZ_CHECK_HEADERS(linux/quota.h)
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
diff --git a/www/libxul/files/pkg-deinstall.in b/www/libxul/files/pkg-deinstall.in
new file mode 100644
index 000000000000..2544ee4ed3a2
--- /dev/null
+++ b/www/libxul/files/pkg-deinstall.in
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# $MCom: ports/www/mozilla/pkg-deinstall.in,v 1.25 2008/07/26 19:07:07 ahze Exp $
+#
+# Date created: Mon Nov 29, 2003
+# Whom: Thierry Thomas (<thierry@pompo.net>)
+# Fix the chrome registry.
+
+umask 022
+PATH=/bin:/usr/bin
+
+[ "x$1" = "x" ] && exit 1
+[ "x$2" != "xDEINSTALL" ] && exit 0
+
+MOZDIR=%%MOZDIR%%
+
+rm -rf ${MOZDIR}/chrome/overlayinfo
+rm -f ${MOZDIR}/chrome/*.rdf
+rm -f ${MOZDIR}/component.reg
+rm -f ${MOZDIR}/components/*.dat
+rm -f ${MOZDIR}/components.ini
+rm -f ${MOZDIR}/defaults.ini
+rm -f ${MOZDIR}/chrome/app-chrome.manifest
+rm -rf ${MOZDIR}/updates
+find %%MOZDIR%%/plugins/ -depth 1 -type l -delete > /dev/null 2>&1
+find %%MOZDIR%%/extensions/ -depth 1 -type l -delete > /dev/null 2>&1
+
+exit 0
diff --git a/www/libxul/files/pkg-install.in b/www/libxul/files/pkg-install.in
new file mode 100644
index 000000000000..9feab2225a78
--- /dev/null
+++ b/www/libxul/files/pkg-install.in
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# $MCom: ports/www/mozilla/pkg-install.in,v 1.26 2008/08/04 16:58:03 mezz Exp $
+#
+# Date created: Mon Nov 29, 2003
+# Whom: Thierry Thomas (<thierry@pompo.net>)
+# Fix the chrome registry.
+
+umask 022
+PATH=/bin:/usr/bin
+
+[ "x$1" = "x" ] && exit 1
+[ "x$2" != "xPOST-INSTALL" ] && exit 0
+
+MOZDIR=%%MOZDIR%%
+MOZBIN=${MOZDIR}/%%MOZILLA_BIN%%
+REGXPCOM=${MOZDIR}/regxpcom
+REGCHROME=${MOZDIR}/regchrome
+
+rm -rf ${MOZDIR}/chrome/overlayinfo
+rm -f ${MOZDIR}/chrome/*.rdf
+mkdir -p ${MOZDIR}/chrome/overlayinfo
+rm -f ${MOZDIR}/component.reg
+
+cd ${MOZDIR} || exit 1
+if [ -f ${REGXPCOM} ]; then
+ ./run-mozilla.sh ${REGXPCOM} || true
+fi
+if [ -f ${REGCHROME} ]; then
+ ./run-mozilla.sh ${REGCHROME} || true
+fi
+if [ -f ${MOZBIN} -a "${1%-*}" = "nvu" ]; then
+ ./run-mozilla.sh ${MOZBIN} -register > /dev/null 2>&1
+fi
+cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%MOZILLA%%/ %%MOZDIR%%/extensions/ > /dev/null 2>&1
+
+exit 0
diff --git a/www/linux-firefox/Makefile b/www/linux-firefox/Makefile
index 8da7b9a9b8dc..0c3977aa24fe 100644
--- a/www/linux-firefox/Makefile
+++ b/www/linux-firefox/Makefile
@@ -2,11 +2,10 @@
# $FreeBSD$
PORTNAME= firefox
-DISTVERSION= 31.0
+DISTVERSION= 33.0b1
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US
-DISTNAME= ${PORTNAME}-${DISTVERSION}
MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
@@ -15,8 +14,6 @@ USES= tar:bzip2
WANT_GTK218= yes
-USE_LINUX_APPS= dbusglib dbuslibs alsalib alsa-plugins-oss
-
PREFS_FILE= ${WRKSRC}/${APP_SUBDIR}defaults/preferences/browser-prefs.js
APP_SUBDIR= browser/ # plugins, extensions
diff --git a/www/linux-firefox/distinfo b/www/linux-firefox/distinfo
index 0a159dcce19a..5364af32ed68 100644
--- a/www/linux-firefox/distinfo
+++ b/www/linux-firefox/distinfo
@@ -1,5 +1,5 @@
-SHA256 (firefox-31.0.tar.bz2) = 13b4297db52ef851b38f292eba2b2136e4c2f1453e004012fe8b1fbcf000abce
-SIZE (firefox-31.0.tar.bz2) = 39743397
+SHA256 (firefox-33.0b1.tar.bz2) = 5628ff0ede6b4729c82d078bc6a6b7648681728de5cd2edfcfc27f394e45eb03
+SIZE (firefox-33.0b1.tar.bz2) = 43201709
SHA256 (glib2-2.22.2-2.fc12.i686.rpm) = e3b459c245ec14e7248e9de4b506963a4773407f3e58835db5070d0ed02ecc99
SIZE (glib2-2.22.2-2.fc12.i686.rpm) = 1162908
SHA256 (gtk2-2.18.3-19.fc12.i686.rpm) = aea9cf7ffe9c8dae0faa2bf3d2aa1b2117c55dce03da72dcce8c268279ec0a4b
diff --git a/www/linux-firefox/files/linux-firefox.desktop.in b/www/linux-firefox/files/linux-firefox.desktop.in
index e5ef4664b4c1..8252989cae13 100644
--- a/www/linux-firefox/files/linux-firefox.desktop.in
+++ b/www/linux-firefox/files/linux-firefox.desktop.in
@@ -183,7 +183,7 @@ Comment[wa]=Naivyî avå les waibes
Comment[zh_CN]=浏览 Web
Comment[zh_TW]=瀏覽網頁
Exec=linux-firefox %U
-Icon=%%PREFIX%%/lib/%%APP_NAME%%/chrome/icons/default/default.xpm
+Icon=%%PREFIX%%/lib/%%APP_NAME%%/browser/chrome/icons/default/default48.png
StartupNotify=false
Terminal=false
Type=Application
diff --git a/www/linux-seamonkey/Makefile b/www/linux-seamonkey/Makefile
index 4ec42f867bd1..d99370d1c028 100644
--- a/www/linux-seamonkey/Makefile
+++ b/www/linux-seamonkey/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= seamonkey
-DISTVERSION= 2.26
+DISTVERSION= 2.29
CATEGORIES= www mail news editors irc ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US
@@ -11,7 +11,7 @@ COMMENT= The open source, standards compliant web browser
USES= tar:bzip2
-USE_LINUX_APPS= dbusglib dbuslibs alsalib alsa-plugins-oss
+WANT_GTK218= yes
.include "${.CURDIR}/Makefile.common"
.include <bsd.port.mk>
diff --git a/www/linux-seamonkey/Makefile.common b/www/linux-seamonkey/Makefile.common
index d99f66f9a835..c64b49fc9f8a 100644
--- a/www/linux-seamonkey/Makefile.common
+++ b/www/linux-seamonkey/Makefile.common
@@ -29,7 +29,9 @@ ONLY_FOR_ARCHS= i386 amd64
APP_NAME= ${PKGBASE}
BIN_NAME?= ${PORTNAME}
USE_LINUX= yes
-USE_LINUX_APPS+= atk fontconfig gtk2 hicontheme pango
+USE_LINUX_APPS+=alsalib alsa-plugins-oss atk dbusglib dbuslibs \
+ fontconfig gtk2 hicontheme pango
+
WRKSRC?= ${WRKDIR}/${BIN_NAME}
FDIR= ${STAGEDIR}${PREFIX}/lib/${APP_NAME}
COMMON_DIR= ${.CURDIR}/../../www/linux-seamonkey
@@ -77,14 +79,6 @@ post-patch:
# empty port preferences
@${DO_NADA} >>${PREFS_FILE}
-
-. if (${DISTVERSION:R:R} < 28 && ${PORTNAME} != "seamonkey") || \
- (${PORTNAME} == "seamonkey" && ${DISTVERSION:C/[0-9]*\.//:C/[ab].*//} < 25)
- # dummy resident-unique for make about:memory's "measure"
- @${REINPLACE_CMD} -i '' \
- 's,/proc/self/smaps\(.Private\),////////dev/null\1,' \
- ${WRKSRC}/libxul.so
-. endif
.endif
.if !target(do-install)
diff --git a/www/linux-seamonkey/distinfo b/www/linux-seamonkey/distinfo
index 605d95fac5ea..172dc5249fa9 100644
--- a/www/linux-seamonkey/distinfo
+++ b/www/linux-seamonkey/distinfo
@@ -1,5 +1,5 @@
-SHA256 (seamonkey-2.26.tar.bz2) = 4b306933c629bfaa0f6f4a8e5db08a47055061e3db87010b4c1e058d4ee4e0b2
-SIZE (seamonkey-2.26.tar.bz2) = 30916325
+SHA256 (seamonkey-2.29.tar.bz2) = a720476302ad71f09d8767031bd212d87ee287b4af7ce3d9afb087cedba061fa
+SIZE (seamonkey-2.29.tar.bz2) = 40067489
SHA256 (glib2-2.22.2-2.fc12.i686.rpm) = e3b459c245ec14e7248e9de4b506963a4773407f3e58835db5070d0ed02ecc99
SIZE (glib2-2.22.2-2.fc12.i686.rpm) = 1162908
SHA256 (gtk2-2.18.3-19.fc12.i686.rpm) = aea9cf7ffe9c8dae0faa2bf3d2aa1b2117c55dce03da72dcce8c268279ec0a4b
diff --git a/www/linux-seamonkey/files/linux-seamonkey.desktop.in b/www/linux-seamonkey/files/linux-seamonkey.desktop.in
index 57d2d4a4da65..cf7e4a5a5313 100644
--- a/www/linux-seamonkey/files/linux-seamonkey.desktop.in
+++ b/www/linux-seamonkey/files/linux-seamonkey.desktop.in
@@ -164,6 +164,6 @@ Exec=linux-seamonkey %u
StartupNotify=false
Terminal=false
Type=Application
-Icon=%%PREFIX%%/lib/%%APP_NAME%%/chrome/icons/default/default.xpm
+Icon=%%PREFIX%%/lib/%%APP_NAME%%/chrome/icons/default/default48.png
Categories=Network;WebBrowser;Email;News;TextEditor;IRCClient;
MimeType=text/html;text/xml;application/xhtml+xml;
diff --git a/www/linux-seamonkey/pkg-plist b/www/linux-seamonkey/pkg-plist
index a0afe7ca5e55..71140cc7b9a8 100644
--- a/www/linux-seamonkey/pkg-plist
+++ b/www/linux-seamonkey/pkg-plist
@@ -84,6 +84,10 @@ lib/%%APP_NAME%%/isp/movemail.rdf
lib/%%APP_NAME%%/isp/rss.rdf
lib/%%APP_NAME%%/libfreebl3.chk
lib/%%APP_NAME%%/libfreebl3.so
+%%GTK218%%lib/%%APP_NAME%%/libgdk-x11-2.0.so.0
+%%GTK218%%lib/%%APP_NAME%%/libgio-2.0.so.0
+%%GTK218%%lib/%%APP_NAME%%/libglib-2.0.so.0
+%%GTK218%%lib/%%APP_NAME%%/libgtk-x11-2.0.so.0
lib/%%APP_NAME%%/libldap60.so
lib/%%APP_NAME%%/libldif60.so
lib/%%APP_NAME%%/libmozalloc.so
diff --git a/www/seamonkey-i18n/Makefile b/www/seamonkey-i18n/Makefile
index 622e66045398..9b5116dab5e2 100644
--- a/www/seamonkey-i18n/Makefile
+++ b/www/seamonkey-i18n/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= seamonkey-i18n
-PORTVERSION= 2.26.1
+PORTVERSION= 2.29
CATEGORIES= www mail news editors irc
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/langpack
PKGNAMEPREFIX=
diff --git a/www/seamonkey-i18n/distinfo b/www/seamonkey-i18n/distinfo
index 0d63c6c8fa38..acd1f7c6882b 100644
--- a/www/seamonkey-i18n/distinfo
+++ b/www/seamonkey-i18n/distinfo
@@ -1,54 +1,54 @@
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.be.langpack.xpi) = 1304caf66562d819b8df6089224496d2ef593054201a124fdfea4e8d325268d6
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.be.langpack.xpi) = 818753
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.ca.langpack.xpi) = 77845f85562118ccf17ba7233408516c57aaa91a0b1f5083a08c8341e5c819a9
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.ca.langpack.xpi) = 816736
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.cs.langpack.xpi) = e71366cacb6274864fe5e6f441f3e7ebb15db090a92df30ae2395d9bcb518913
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.cs.langpack.xpi) = 814946
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.de.langpack.xpi) = 9ac22a758f62bc31aaa83a5d3a1d21e2fa0bc06d6f4ee26c8adf85e8225064ae
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.de.langpack.xpi) = 822043
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.en-GB.langpack.xpi) = 30ecd2a83e179017d24eb0dfa9e9ec7d220f0fd16bada1be14ddc69688f74ea6
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.en-GB.langpack.xpi) = 785905
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.en-US.langpack.xpi) = 1fdf1d312b6f82662e877b8361e5ae4df5249958bfd8a454e32b3b9da15867e2
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.en-US.langpack.xpi) = 786790
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.es-AR.langpack.xpi) = e6202b022e8c952449b8509f39803a626e5005fbc11ea1102af8082880b7ff27
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.es-AR.langpack.xpi) = 836836
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.es-ES.langpack.xpi) = 9818c7eb20cb9b5f47928cb8299f4807d1a722995760b70e6cae3a945bd04cc3
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.es-ES.langpack.xpi) = 814004
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.fi.langpack.xpi) = e0c70cf2fdf60b45394d89a8515820b6984edd4b252bfda19c59cb0f405467c2
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.fi.langpack.xpi) = 784389
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.fr.langpack.xpi) = b57475d1b47a2b6fb64d27230212784602146d2c45fa037b57c2ec27c0761311
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.fr.langpack.xpi) = 795190
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.gl.langpack.xpi) = 8c1d47ec6fca70b88f3fde4f2b54c6838d8a6d1cc29fc66d2d1b7f912214b8bf
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.gl.langpack.xpi) = 794260
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.hu.langpack.xpi) = 08311664e95c3da977d81c033bce4d75c1339e9eecff7bcf507318cf54ed9a82
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.hu.langpack.xpi) = 828532
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.it.langpack.xpi) = 128f4fee131b28dcde7464f675e255c5bf31bd5ba99227cc95b4257a98cb726f
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.it.langpack.xpi) = 728567
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.ja-JP-mac.langpack.xpi) = eb0b4075407d56a539b310803c1d1f505aee15253739b87e78e43875cf00331b
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.ja-JP-mac.langpack.xpi) = 892974
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.ja.langpack.xpi) = c8eaf09ad594cd589e9486fa149a695375ce4603bb927ebaafa3b72b8a13c11e
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.ja.langpack.xpi) = 867577
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.lt.langpack.xpi) = ffac3896d8c24aef230918573efa26d0d409aad53708cfdfc94679913b50b262
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.lt.langpack.xpi) = 832069
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.nb-NO.langpack.xpi) = 5f80ae03c4890980031fdc96d422d2713142d3f11e5a6b5bc6ebe106f84d474e
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.nb-NO.langpack.xpi) = 805528
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.nl.langpack.xpi) = 28ea348e46bb9ef6328fad3b1d45a18b103741803b30e4ebe5e746ae3d6b3c69
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.nl.langpack.xpi) = 781833
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.pl.langpack.xpi) = 223ae1798bb0284415218545de43919c4361a5dbd55ab2b5d4805678087e333b
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.pl.langpack.xpi) = 855816
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.pt-PT.langpack.xpi) = 49116b6d66bb00fd16e09cf9a9935cb5228300f6ac209e72ae5fd274d4afc3eb
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.pt-PT.langpack.xpi) = 817866
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.ru.langpack.xpi) = a40a053a9df8174febf2a19f98e11cfef75a82a2c3666e80b551d22ad89a495d
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.ru.langpack.xpi) = 885694
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.sk.langpack.xpi) = c6afd39a1a25384f79c58ad5757c7e15147bae3578f6e6a5d302907fbc8b0bf7
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.sk.langpack.xpi) = 841874
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.sv-SE.langpack.xpi) = 6f1ff640ee52f6f27536a1aa127bb1bc4badefcdc07157c18e3ab6d8d9bececd
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.sv-SE.langpack.xpi) = 809831
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.tr.langpack.xpi) = b7e7a2e962c156b7012d449381d40866d233a460c1f4c45ef91f67d472db2d64
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.tr.langpack.xpi) = 791387
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.uk.langpack.xpi) = 7009492796add5f7e6a6b08eda9a875245f1ed69f6457e4dedc459945694c81c
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.uk.langpack.xpi) = 853570
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.zh-CN.langpack.xpi) = c288ec1f532f021eda32ef6dd10ae12acecbbb9e1797ee21dfaeaa07fc656d7f
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.zh-CN.langpack.xpi) = 818847
-SHA256 (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.zh-TW.langpack.xpi) = 06a8fbb17152d706ec6b880e86572151cfa1a30d0d105514ecc90afcaf1daf22
-SIZE (xpi/seamonkey-i18n-2.26.1/seamonkey-2.26.1.zh-TW.langpack.xpi) = 843202
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.be.langpack.xpi) = 7156f9cf1bdc434df8d787f8781a3fce523cb0b03adbf6d628a633210bea45e2
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.be.langpack.xpi) = 837342
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.ca.langpack.xpi) = 2a5f02b5abc8ca12749526433ca52ced53a114a2cfc3766c93d664d13d402054
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.ca.langpack.xpi) = 830892
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.cs.langpack.xpi) = bf1b71cfc9430a1ed23675dc63f1bd8109e94812f8c4ba37971590f76fe47481
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.cs.langpack.xpi) = 832267
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.de.langpack.xpi) = d58be885968cab5a05ce93925e343bf7a2f1c048f0d77e07c1afa74775ef6fe4
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.de.langpack.xpi) = 837071
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.en-GB.langpack.xpi) = 74ebdfcbe032a008995a8af4851a68aed71c59dcf52ce2c9f62f26e6f1881b5b
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.en-GB.langpack.xpi) = 800824
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.en-US.langpack.xpi) = 90a077d0554a8c2c74adf5d227f979e047fb09263699b19f226003b57074cd98
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.en-US.langpack.xpi) = 800944
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.es-AR.langpack.xpi) = 0b29152faf12eeb15e5e103ade800a84476248533995881d4aec86725b3ba0c2
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.es-AR.langpack.xpi) = 851548
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.es-ES.langpack.xpi) = 760f505e4daf36c7c43280a7e642929408f38d55fbb2fb840cb23a2771a7ecc6
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.es-ES.langpack.xpi) = 827396
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.fi.langpack.xpi) = 5fb0e08c5aaf243e4ea8353646380b0ce3fc1ffdb39b6cc7ba861f68618e2449
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.fi.langpack.xpi) = 798956
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.fr.langpack.xpi) = 463c36cf9bddefd82edb9319f8e8622c2d19042d3e1daa130590b4f57c5bc1fa
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.fr.langpack.xpi) = 809847
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.gl.langpack.xpi) = 86787a3c7f2763015daa41c19c43d4e9a6ff86c94fa73ac7a9ed9a7e1d757eb7
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.gl.langpack.xpi) = 811260
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.hu.langpack.xpi) = b0ae2c18ac97b8d85e7610adc7940b48f7afe05efe96dacbcacd2e98e00435fd
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.hu.langpack.xpi) = 845863
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.it.langpack.xpi) = 5d7a3f10b56055513f6662cfd3f4f3ec875a3ac1bfd80f8f419a755908e68b82
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.it.langpack.xpi) = 747522
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.ja-JP-mac.langpack.xpi) = 01295c4f761047bb4dc922d8413e1ec0dbf1770f26ea8ca2b66d7b4b5f795d77
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.ja-JP-mac.langpack.xpi) = 898135
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.ja.langpack.xpi) = 5c4ebde4f5aa44f783c0fa8049f35743ed9d38d19a8454e5049226fecf5abe5d
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.ja.langpack.xpi) = 882629
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.lt.langpack.xpi) = e51a198178388e904dbbbe6516d11bdebe8088eac8aae592c2d4a74af01ea901
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.lt.langpack.xpi) = 847471
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.nb-NO.langpack.xpi) = 5095a8d70b61aa3c25d85df4a32bdf2ef679b5542a5ec2b30bbbd7945544102c
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.nb-NO.langpack.xpi) = 820413
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.nl.langpack.xpi) = c38dd25bab68fad1a866749a82607f613ca67675a2caefdd9a01c5b46ecb2a5a
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.nl.langpack.xpi) = 795956
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.pl.langpack.xpi) = dc2b727b0eb97f57797b90b51e645a460d114593881496313e4d2af06fc8e9da
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.pl.langpack.xpi) = 868183
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.pt-PT.langpack.xpi) = 22374e79ea755d3059b1978dae3c48c93e4e66858fb0f6e8e44883d820ae23ab
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.pt-PT.langpack.xpi) = 835296
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.ru.langpack.xpi) = 45979fe8e50956ae0eafedc7dc69a8ef3843ccad877270f3a2e6631c0ce5b2b8
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.ru.langpack.xpi) = 904348
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.sk.langpack.xpi) = 1212df2c49c181fd670edd77021541161e1269ab505091b72007b7f4d7a04d6a
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.sk.langpack.xpi) = 859264
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.sv-SE.langpack.xpi) = 4efc90b6202f41ab3dcba433bbdfff8a004b784d9474ac2b1edb1cd85872450b
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.sv-SE.langpack.xpi) = 824245
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.tr.langpack.xpi) = 93839797d69b5a2f7e29505545bf30a270f9cdd14472068aaa6db3e248419113
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.tr.langpack.xpi) = 808130
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.uk.langpack.xpi) = 82d67aba56e2a0db1718d0dc1953c99fd6bcf1c2b0c3246a5e0ad5bb198729cd
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.uk.langpack.xpi) = 870445
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.zh-CN.langpack.xpi) = adad6ec03d8d0ccb55872b642bf6ca41819550d01ef99fe9cdc2df5e3f29657e
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.zh-CN.langpack.xpi) = 833563
+SHA256 (xpi/seamonkey-i18n-2.29/seamonkey-2.29.zh-TW.langpack.xpi) = 9512cc0203dc8af4596fc3ee6ef4bc04af19efc2c967a62818776b02b2d2ebf7
+SIZE (xpi/seamonkey-i18n-2.29/seamonkey-2.29.zh-TW.langpack.xpi) = 858130
diff --git a/www/seamonkey/Makefile b/www/seamonkey/Makefile
index 3d59610f1fac..77b36e22e2e4 100644
--- a/www/seamonkey/Makefile
+++ b/www/seamonkey/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= seamonkey
-DISTVERSION= 2.26.1
-PORTREVISION= 2
+DISTVERSION= 2.29
CATEGORIES?= www mail news editors irc ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source/
@@ -13,15 +12,15 @@ EXTRACT_ONLY= ${PORTNAME}-${DISTVERSION}.source${EXTRACT_SUFX}
MAINTAINER= gecko@FreeBSD.org
COMMENT= The open source, standards compliant web browser
-BUILD_DEPENDS= nspr>=4.10.3:${PORTSDIR}/devel/nspr \
+BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \
nss>=3.16:${PORTSDIR}/security/nss \
- soundtouch>=1.7.0:${PORTSDIR}/audio/soundtouch \
+ soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \
harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \
graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \
libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \
opus>=1.1:${PORTSDIR}/audio/opus \
libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \
- sqlite3>=3.8.2:${PORTSDIR}/databases/sqlite3 \
+ sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \
v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \
zip:${PORTSDIR}/archivers/zip \
@@ -30,16 +29,15 @@ BUILD_DEPENDS= nspr>=4.10.3:${PORTSDIR}/devel/nspr \
LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l
-EM_VERSION= 1.7
-L_VERSION= 3.1
+EM_VERSION= 1.7.2
+L_VERSION= 3.4
SSP_UNSAFE= yes
USE_AUTOTOOLS= autoconf213:env
-USE_PYTHON_BUILD=2
OBJDIR_BUILD= # in-tree build broken after bug 789837
USE_GECKO= gecko
WANT_GNOME= yes
-USE_QT4= # empty
+USE_QT5= # empty
QT_NONSTANDARD= yes
WANT_PERL= yes
ALL_TARGET= default
@@ -192,7 +190,7 @@ post-configure:
.if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL}
post-build:
- ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} all xpi \
+ ${DO_MAKE_BUILD:S/${MAKEFILE}/Makefile/} all xpi \
-C ${WRKSRC}/mailnews/extensions/enigmail
.endif
diff --git a/www/seamonkey/distinfo b/www/seamonkey/distinfo
index 1ecb6b2fc7c2..b21d00105ed9 100644
--- a/www/seamonkey/distinfo
+++ b/www/seamonkey/distinfo
@@ -1,4 +1,4 @@
-SHA256 (seamonkey-2.26.1.source.tar.bz2) = 741d383c87cc58e38b8d5eef34033a88a4352ff7d76064914bfc05fef1c5d2f3
-SIZE (seamonkey-2.26.1.source.tar.bz2) = 165537001
-SHA256 (enigmail-1.7.tar.gz) = cddbf35783194a4e994f9584ad5bee74750e25f690e81727ba9eccc4f814f161
-SIZE (enigmail-1.7.tar.gz) = 1414100
+SHA256 (seamonkey-2.29.source.tar.bz2) = 48945f7832e3c0b527347054f311278aec87175973dcf474a06c2b3a46528e43
+SIZE (seamonkey-2.29.source.tar.bz2) = 174027049
+SHA256 (enigmail-1.7.2.tar.gz) = 7b3a62e83961bafec1cdac60075aa6c317c8f655a837e31a7d1f3ce6a49fc7d6
+SIZE (enigmail-1.7.2.tar.gz) = 1420346
diff --git a/www/seamonkey/files/extra-patch-security_manager_Makefile.in b/www/seamonkey/files/extra-patch-security_manager_Makefile.in
deleted file mode 100644
index c936ae46850d..000000000000
--- a/www/seamonkey/files/extra-patch-security_manager_Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- security/manager/Makefile.in.orig.patched Thu May 25 10:19:22 2006
-+++ security/manager/Makefile.in Thu May 25 10:19:22 2006
-@@ -159,8 +159,6 @@
- $(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS)
- ifeq ($(OS_ARCH),WINNT)
- cd $(DIST)/lib; cp -f $(LIB_PREFIX)dbm$(MOZ_BITS).$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
--else
-- cd $(DIST)/lib; cp -f $(LIB_PREFIX)mozdbm_s.$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX); $(RANLIB) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
- endif
- # $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
- ifndef SKIP_CHK
diff --git a/www/seamonkey/files/patch-bug1013675 b/www/seamonkey/files/patch-bug1013675
deleted file mode 100644
index c8b0a6bf02d0..000000000000
--- a/www/seamonkey/files/patch-bug1013675
+++ /dev/null
@@ -1,88 +0,0 @@
-diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp
-index 13a286f..293bd73 100644
---- mozilla/xpcom/base/nsDebugImpl.cpp
-+++ mozilla/xpcom/base/nsDebugImpl.cpp
-@@ -45,12 +45,43 @@
- #endif
- #endif
-
--#if defined(XP_MACOSX)
-+#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
-+ || defined(__NetBSD__) || defined(__OpenBSD__)
- #include <stdbool.h>
- #include <unistd.h>
-+#include <sys/param.h>
- #include <sys/sysctl.h>
- #endif
-
-+#if defined(__OpenBSD__)
-+#include <sys/proc.h>
-+#endif
-+
-+#if defined(__DragonFly__) || defined(__FreeBSD__)
-+#include <sys/user.h>
-+#endif
-+
-+#if defined(__NetBSD__)
-+#undef KERN_PROC
-+#define KERN_PROC KERN_PROC2
-+#define KINFO_PROC struct kinfo_proc2
-+#else
-+#define KINFO_PROC struct kinfo_proc
-+#endif
-+
-+#if defined(XP_MACOSX)
-+#define KP_FLAGS kp_proc.p_flag
-+#elif defined(__DragonFly__)
-+#define KP_FLAGS kp_flags
-+#elif defined(__FreeBSD__)
-+#define KP_FLAGS ki_flag
-+#elif defined(__OpenBSD__) && !defined(_P_TRACED)
-+#define KP_FLAGS p_psflags
-+#define P_TRACED PS_TRACED
-+#else
-+#define KP_FLAGS p_flag
-+#endif
-+
- #include "mozilla/mozalloc_abort.h"
-
- static void
-@@ -144,16 +175,22 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
-
- #if defined(XP_WIN)
- *aResult = ::IsDebuggerPresent();
--#elif defined(XP_MACOSX)
-+#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
-+ || defined(__NetBSD__) || defined(__OpenBSD__)
- // Specify the info we're looking for
-- int mib[4];
-- mib[0] = CTL_KERN;
-- mib[1] = KERN_PROC;
-- mib[2] = KERN_PROC_PID;
-- mib[3] = getpid();
-+ int mib[] = {
-+ CTL_KERN,
-+ KERN_PROC,
-+ KERN_PROC_PID,
-+ getpid(),
-+#if defined(__NetBSD__) || defined(__OpenBSD__)
-+ sizeof(KINFO_PROC),
-+ 1,
-+#endif
-+ };
- size_t mibSize = sizeof(mib) / sizeof(int);
-
-- struct kinfo_proc info;
-+ KINFO_PROC info;
- size_t infoSize = sizeof(info);
- memset(&info, 0, infoSize);
-
-@@ -163,7 +200,7 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
- return NS_OK;
- }
-
-- if (info.kp_proc.p_flag & P_TRACED) {
-+ if (info.KP_FLAGS & P_TRACED) {
- *aResult = true;
- }
- #endif
diff --git a/www/seamonkey/files/patch-bug1015547 b/www/seamonkey/files/patch-bug1015547
index 8e6189444b50..df794794bc29 100644
--- a/www/seamonkey/files/patch-bug1015547
+++ b/www/seamonkey/files/patch-bug1015547
@@ -15,7 +15,7 @@ diff --git xpcom/base/nsUUIDGenerator.cpp xpcom/base/nsUUIDGenerator.cpp
index 0687344..ca3ff8b 100644
--- mozilla/xpcom/base/nsUUIDGenerator.cpp
+++ mozilla/xpcom/base/nsUUIDGenerator.cpp
-@@ -15,6 +15,10 @@
+@@ -16,6 +16,10 @@
#include "nsUUIDGenerator.h"
@@ -25,71 +25,71 @@ index 0687344..ca3ff8b 100644
+
using namespace mozilla;
- NS_IMPL_ISUPPORTS1(nsUUIDGenerator, nsIUUIDGenerator)
-@@ -34,7 +38,7 @@ nsUUIDGenerator::Init()
- // We're a service, so we're guaranteed that Init() is not going
- // to be reentered while we're inside Init().
-
+ NS_IMPL_ISUPPORTS(nsUUIDGenerator, nsIUUIDGenerator)
+@@ -35,7 +39,7 @@ nsUUIDGenerator::Init()
+ // We're a service, so we're guaranteed that Init() is not going
+ // to be reentered while we're inside Init().
+
-#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
- /* initialize random number generator using NSPR random noise */
- unsigned int seed;
+ /* initialize random number generator using NSPR random noise */
+ unsigned int seed;
-@@ -67,7 +71,7 @@ nsUUIDGenerator::Init()
- return NS_ERROR_FAILURE;
+@@ -72,7 +76,7 @@ nsUUIDGenerator::Init()
+ }
#endif
-#endif /* non XP_WIN and non XP_MACOSX */
+#endif /* non XP_WIN and non XP_MACOSX and non ARC4RANDOM */
- return NS_OK;
+ return NS_OK;
}
-@@ -114,13 +118,16 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
- * back to it; instead, we use the value returned when we called
- * initstate, since older glibc's have broken setstate() return values
- */
+@@ -122,13 +126,16 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* aId)
+ * back to it; instead, we use the value returned when we called
+ * initstate, since older glibc's have broken setstate() return values
+ */
-#ifndef ANDROID
+#ifndef HAVE_ARC4RANDOM
- setstate(mState);
+ setstate(mState);
#endif
+#ifdef HAVE_ARC4RANDOM_BUF
-+ arc4random_buf(id, sizeof(nsID));
++ arc4random_buf(aId, sizeof(nsID));
+#else /* HAVE_ARC4RANDOM_BUF */
- size_t bytesLeft = sizeof(nsID);
- while (bytesLeft > 0) {
+ size_t bytesLeft = sizeof(nsID);
+ while (bytesLeft > 0) {
-#ifdef ANDROID
+#ifdef HAVE_ARC4RANDOM
- long rval = arc4random();
- const size_t mRBytes = 4;
+ long rval = arc4random();
+ const size_t mRBytes = 4;
#else
-@@ -141,6 +148,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
+@@ -150,6 +157,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* aId)
- bytesLeft -= toWrite;
- }
+ bytesLeft -= toWrite;
+ }
+#endif /* HAVE_ARC4RANDOM_BUF */
- /* Put in the version */
- id->m2 &= 0x0fff;
-@@ -150,7 +158,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
- id->m3[0] &= 0x3f;
- id->m3[0] |= 0x80;
+ /* Put in the version */
+ aId->m2 &= 0x0fff;
+@@ -159,7 +167,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* aId)
+ aId->m3[0] &= 0x3f;
+ aId->m3[0] |= 0x80;
-#ifndef ANDROID
+#ifndef HAVE_ARC4RANDOM
- /* Restore the previous RNG state */
- setstate(mSavedState);
+ /* Restore the previous RNG state */
+ setstate(mSavedState);
#endif
diff --git xpcom/base/nsUUIDGenerator.h xpcom/base/nsUUIDGenerator.h
index 6a24212..68ed6f2 100644
--- mozilla/xpcom/base/nsUUIDGenerator.h
+++ mozilla/xpcom/base/nsUUIDGenerator.h
-@@ -27,7 +27,7 @@ private:
+@@ -29,7 +29,7 @@ private:
protected:
- mozilla::Mutex mLock;
+ mozilla::Mutex mLock;
-#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
- char mState[128];
- char *mSavedState;
- uint8_t mRBytes;
+ char mState[128];
+ char* mSavedState;
+ uint8_t mRBytes;
diff --git a/www/seamonkey/files/patch-bug1046224 b/www/seamonkey/files/patch-bug1046224
new file mode 100644
index 000000000000..86c675584859
--- /dev/null
+++ b/www/seamonkey/files/patch-bug1046224
@@ -0,0 +1,26 @@
+diff --git configure.in configure.in
+index 1853029..559bd45 100644
+--- mozilla/configure.in
++++ mozilla/configure.in
+@@ -2651,7 +2651,7 @@ if test "$ac_cv_sockaddr_sa_len" = true ; then
+ AC_DEFINE(HAVE_SA_LEN)
+ fi
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
+diff --git js/src/configure.in js/src/configure.in
+index 134dfd3..682c1fb 100644
+--- mozilla/js/src/configure.in
++++ mozilla/js/src/configure.in
+@@ -2153,7 +2153,7 @@ dnl Quota support
+ MOZ_CHECK_HEADERS(sys/quota.h)
+ MOZ_CHECK_HEADERS(linux/quota.h)
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
diff --git a/www/seamonkey/files/patch-bug702179 b/www/seamonkey/files/patch-bug702179
index 5f90f96d19ae..79bafeb16a22 100644
--- a/www/seamonkey/files/patch-bug702179
+++ b/www/seamonkey/files/patch-bug702179
@@ -17,7 +17,7 @@ index 66549c1..75b848d 100644
MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/media/libpng)'
-MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(LIBXUL_DIST)/lib)'
-+MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(DEPTH)/js/src/js/src)'
++MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(DEPTH)/js/src)'
MOZ_JS_SHARED_LIBS='$(call EXPAND_LIBNAME_PATH,mozjs,$(LIBXUL_DIST)/lib)'
MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
XPCOM_FROZEN_LDOPTS='$(call EXPAND_LIBNAME_PATH,xul mozalloc,$(LIBXUL_DIST)/bin)'
@@ -35,17 +35,14 @@ index e28160a..28ca5e8 100644
SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt)
ifndef MOZ_NATIVE_ZLIB
diff --git suite/build/Makefile.in suite/build/Makefile.in
-index 66549c1..75b848d 100644
+index e28160a..28ca5e8 100644
--- suite/build/Makefile.in
+++ suite/build/Makefile.in
-@@ -33,6 +33,10 @@ EXTRA_DSO_LDOPTS += \
+@@ -28,6 +28,7 @@ EXTRA_DSO_LDOPTS += \
+ $(LIBS_DIR) \
+ $(call EXPAND_LIBNAME_PATH,unicharutil_external_s,$(LIBXUL_DIST)/lib) \
+ $(MOZ_JS_LIBS) \
++ $(MOZ_ZLIB_LIBS) \
+ $(XPCOM_STATICRUNTIME_GLUE_LDOPTS) \
+ $(MOZ_COMPONENT_LIBS) \
$(TK_LIBS) \
- $(NULL)
-
-+ifndef ZLIB_IN_MOZGLUE
-+EXTRA_DSO_LDOPTS += $(MOZ_ZLIB_LIBS)
-+endif
-+
- include $(topsrcdir)/config/rules.mk
-
- # Ensure that we don't embed a manifest referencing the CRT.
diff --git a/www/seamonkey/files/patch-bug806917 b/www/seamonkey/files/patch-bug806917
deleted file mode 100644
index 945e2701b0d9..000000000000
--- a/www/seamonkey/files/patch-bug806917
+++ /dev/null
@@ -1,1999 +0,0 @@
-commit cb40a26
-Author: Alessandro Decina <alessandro.d@gmail.com>
-Date: Fri Jan 03 08:16:54 2014 -0800
-
- Bug 806917 - support GStreamer 1.0
----
- configure.in | 66 ++-
- content/media/gstreamer/GStreamerAllocator.cpp | 197 +++++++
- content/media/gstreamer/GStreamerAllocator.h | 25 +
- content/media/gstreamer/GStreamerFormatHelper.cpp | 13 +-
- content/media/gstreamer/GStreamerFunctionList.h | 93 +++-
- content/media/gstreamer/GStreamerLoader.cpp | 48 +-
- content/media/gstreamer/GStreamerLoader.h | 8 +
- content/media/gstreamer/GStreamerReader-0.10.cpp | 200 +++++++
- content/media/gstreamer/GStreamerReader.cpp | 632 ++++++++++++++--------
- content/media/gstreamer/GStreamerReader.h | 42 +-
- content/media/gstreamer/moz.build | 11 +-
- content/media/test/manifest.js | 6 +-
- 12 files changed, 1057 insertions(+), 284 deletions(-)
-
-diff --git configure.in configure.in
-index 9776b8d..0b1698d 100644
---- mozilla/configure.in
-+++ mozilla/configure.in
-@@ -3988,6 +3988,7 @@ MOZ_SAMPLE_TYPE_FLOAT32=
- MOZ_SAMPLE_TYPE_S16=
- MOZ_OPUS=1
- MOZ_WEBM=1
-+MOZ_GSTREAMER=
- MOZ_DIRECTSHOW=
- MOZ_WMF=
- MOZ_FMP4=
-@@ -5634,44 +5635,61 @@ WINNT|Darwin|Android)
- ;;
- *)
- MOZ_GSTREAMER=1
-+ GST_API_VERSION=0.10
- ;;
- esac
-
--MOZ_ARG_ENABLE_BOOL(gstreamer,
--[ --enable-gstreamer Enable GStreamer support],
--MOZ_GSTREAMER=1,
--MOZ_GSTREAMER=)
--
--if test "$MOZ_GSTREAMER"; then
-- # API version, eg 0.10, 1.0 etc
-+MOZ_ARG_ENABLE_STRING(gstreamer,
-+[ --enable-gstreamer[=0.10] Enable GStreamer support],
-+[ MOZ_GSTREAMER=1
-+ # API version, eg 0.10, 1.0 etc
-+ if test -z "$enableval" -o "$enableval" = "yes"; then
- GST_API_VERSION=0.10
-+ elif test "$enableval" = "no"; then
-+ MOZ_GSTREAMER=
-+ else
-+ GST_API_VERSION=$enableval
-+ fi],
-+)
-+
-+if test -n "$MOZ_GSTREAMER"; then
- # core/base release number
-- GST_VERSION=0.10.25
-+ if test "$GST_API_VERSION" = "1.0"; then
-+ GST_VERSION=1.0
-+ else
-+ GST_VERSION=0.10.25
-+ fi
-+
- PKG_CHECK_MODULES(GSTREAMER,
- gstreamer-$GST_API_VERSION >= $GST_VERSION
- gstreamer-app-$GST_API_VERSION
-- gstreamer-plugins-base-$GST_API_VERSION, ,
-- AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer]))
-- if test -n "$GSTREAMER_LIBS"; then
-- _SAVE_LDFLAGS=$LDFLAGS
-- LDFLAGS="$LDFLAGS $GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION"
-- AC_TRY_LINK(,[return 0;],_HAVE_LIBGSTVIDEO=1,_HAVE_LIBGSTVIDEO=)
-- if test -n "$_HAVE_LIBGSTVIDEO" ; then
-- GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION"
-- else
-- AC_MSG_ERROR([gstreamer-plugins-base found, but no libgstvideo. Something has gone terribly wrong. Try reinstalling gstreamer-plugins-base; failing that, disable the gstreamer backend with --disable-gstreamer.])
-- fi
-- LDFLAGS=$_SAVE_LDFLAGS
-+ gstreamer-plugins-base-$GST_API_VERSION,
-+ [_HAVE_GSTREAMER=1],
-+ [_HAVE_GSTREAMER=])
-+ if test -z "$_HAVE_GSTREAMER"; then
-+ AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer])
-+ fi
-+
-+ _SAVE_LDFLAGS=$LDFLAGS
-+ LDFLAGS="$LDFLAGS $GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION"
-+ AC_TRY_LINK(,[return 0;],_HAVE_LIBGSTVIDEO=1,_HAVE_LIBGSTVIDEO=)
-+ if test -n "$_HAVE_LIBGSTVIDEO" ; then
-+ GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION"
- else
-- AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer])
-+ AC_MSG_ERROR([gstreamer-plugins-base found, but no libgstvideo. Something has gone terribly wrong. Try reinstalling gstreamer-plugins-base; failing that, disable the gstreamer backend with --disable-gstreamer.])
- fi
-+ LDFLAGS=$_SAVE_LDFLAGS
-+
-+ AC_SUBST(GSTREAMER_CFLAGS)
-+ AC_SUBST(GSTREAMER_LIBS)
- fi
--AC_SUBST(GSTREAMER_CFLAGS)
--AC_SUBST(GSTREAMER_LIBS)
-+
- AC_SUBST(MOZ_GSTREAMER)
-+AC_SUBST(GST_API_VERSION)
-
- if test -n "$MOZ_GSTREAMER"; then
-- AC_DEFINE(MOZ_GSTREAMER)
-+ AC_DEFINE(MOZ_GSTREAMER)
-+ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION")
- fi
-
-
-diff --git content/media/gstreamer/GStreamerAllocator.cpp content/media/gstreamer/GStreamerAllocator.cpp
-new file mode 100644
-index 0000000..69d0385
---- /dev/null
-+++ mozilla/content/media/gstreamer/GStreamerAllocator.cpp
-@@ -0,0 +1,197 @@
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#include "GStreamerAllocator.h"
-+
-+#include <gst/video/video.h>
-+#include <gst/video/gstvideometa.h>
-+
-+#include "GStreamerLoader.h"
-+
-+using namespace mozilla::layers;
-+
-+namespace mozilla {
-+
-+typedef struct
-+{
-+ GstAllocator parent;
-+ GStreamerReader *reader;
-+} MozGfxMemoryAllocator;
-+
-+typedef struct
-+{
-+ GstAllocatorClass parent;
-+} MozGfxMemoryAllocatorClass;
-+
-+typedef struct
-+{
-+ GstMemory memory;
-+ PlanarYCbCrImage* image;
-+ guint8* data;
-+} MozGfxMemory;
-+
-+typedef struct
-+{
-+ GstMeta meta;
-+} MozGfxMeta;
-+
-+typedef struct
-+{
-+ GstVideoBufferPoolClass parent_class;
-+} MozGfxBufferPoolClass;
-+
-+typedef struct
-+{
-+ GstVideoBufferPool pool;
-+} MozGfxBufferPool;
-+
-+G_DEFINE_TYPE(MozGfxMemoryAllocator, moz_gfx_memory_allocator, GST_TYPE_ALLOCATOR);
-+G_DEFINE_TYPE(MozGfxBufferPool, moz_gfx_buffer_pool, GST_TYPE_VIDEO_BUFFER_POOL);
-+
-+void
-+moz_gfx_memory_reset(MozGfxMemory *mem)
-+{
-+ if (mem->image)
-+ mem->image->Release();
-+
-+ ImageContainer* container = ((MozGfxMemoryAllocator*) mem->memory.allocator)->reader->GetImageContainer();
-+ mem->image = reinterpret_cast<PlanarYCbCrImage*>(container->CreateImage(ImageFormat::PLANAR_YCBCR).get());
-+ mem->data = mem->image->AllocateAndGetNewBuffer(mem->memory.size);
-+}
-+
-+static GstMemory*
-+moz_gfx_memory_allocator_alloc(GstAllocator* aAllocator, gsize aSize,
-+ GstAllocationParams* aParams)
-+{
-+ MozGfxMemory* mem = g_slice_new (MozGfxMemory);
-+ gsize maxsize = aSize + aParams->prefix + aParams->padding;
-+ gst_memory_init(GST_MEMORY_CAST (mem),
-+ (GstMemoryFlags)aParams->flags,
-+ aAllocator, NULL, maxsize, aParams->align,
-+ aParams->prefix, aSize);
-+ mem->image = NULL;
-+ moz_gfx_memory_reset(mem);
-+
-+ return (GstMemory *) mem;
-+}
-+
-+static void
-+moz_gfx_memory_allocator_free (GstAllocator * allocator, GstMemory * gmem)
-+{
-+ MozGfxMemory *mem = (MozGfxMemory *) gmem;
-+
-+ if (mem->memory.parent)
-+ goto sub_mem;
-+
-+ if (mem->image)
-+ mem->image->Release();
-+
-+sub_mem:
-+ g_slice_free (MozGfxMemory, mem);
-+}
-+
-+static gpointer
-+moz_gfx_memory_map (MozGfxMemory * mem, gsize maxsize, GstMapFlags flags)
-+{
-+ // check that the allocation didn't fail
-+ if (mem->data == nullptr)
-+ return nullptr;
-+
-+ return mem->data + mem->memory.offset;
-+}
-+
-+static gboolean
-+moz_gfx_memory_unmap (MozGfxMemory * mem)
-+{
-+ return TRUE;
-+}
-+
-+static MozGfxMemory *
-+moz_gfx_memory_share (MozGfxMemory * mem, gssize offset, gsize size)
-+{
-+ MozGfxMemory *sub;
-+ GstMemory *parent;
-+
-+ /* find the real parent */
-+ if ((parent = mem->memory.parent) == NULL)
-+ parent = (GstMemory *) mem;
-+
-+ if (size == (gsize) -1)
-+ size = mem->memory.size - offset;
-+
-+ /* the shared memory is always readonly */
-+ sub = g_slice_new (MozGfxMemory);
-+
-+ gst_memory_init (GST_MEMORY_CAST (sub),
-+ (GstMemoryFlags) (GST_MINI_OBJECT_FLAGS (parent) | GST_MINI_OBJECT_FLAG_LOCK_READONLY),
-+ mem->memory.allocator, &mem->memory, mem->memory.maxsize, mem->memory.align,
-+ mem->memory.offset + offset, size);
-+
-+ sub->image = mem->image;
-+ sub->data = mem->data;
-+
-+ return sub;
-+}
-+
-+static void
-+moz_gfx_memory_allocator_class_init (MozGfxMemoryAllocatorClass * klass)
-+{
-+ GstAllocatorClass *allocator_class;
-+
-+ allocator_class = (GstAllocatorClass *) klass;
-+
-+ allocator_class->alloc = moz_gfx_memory_allocator_alloc;
-+ allocator_class->free = moz_gfx_memory_allocator_free;
-+}
-+
-+static void
-+moz_gfx_memory_allocator_init (MozGfxMemoryAllocator * allocator)
-+{
-+ GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
-+
-+ alloc->mem_type = "moz-gfx-image";
-+ alloc->mem_map = (GstMemoryMapFunction) moz_gfx_memory_map;
-+ alloc->mem_unmap = (GstMemoryUnmapFunction) moz_gfx_memory_unmap;
-+ alloc->mem_share = (GstMemoryShareFunction) moz_gfx_memory_share;
-+ /* fallback copy and is_span */
-+}
-+
-+void
-+moz_gfx_memory_allocator_set_reader(GstAllocator* aAllocator, GStreamerReader* aReader)
-+{
-+ MozGfxMemoryAllocator *allocator = (MozGfxMemoryAllocator *) aAllocator;
-+ allocator->reader = aReader;
-+}
-+
-+nsRefPtr<PlanarYCbCrImage>
-+moz_gfx_memory_get_image(GstMemory *aMemory)
-+{
-+ NS_ASSERTION(GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(aMemory->allocator), "Should be a gfx image");
-+
-+ return ((MozGfxMemory *) aMemory)->image;
-+}
-+
-+void
-+moz_gfx_buffer_pool_reset_buffer (GstBufferPool* aPool, GstBuffer* aBuffer)
-+{
-+ GstMemory* mem = gst_buffer_peek_memory(aBuffer, 0);
-+
-+ NS_ASSERTION(GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(mem->allocator), "Should be a gfx image");
-+ moz_gfx_memory_reset((MozGfxMemory *) mem);
-+ GST_BUFFER_POOL_CLASS(moz_gfx_buffer_pool_parent_class)->reset_buffer(aPool, aBuffer);
-+}
-+
-+static void
-+moz_gfx_buffer_pool_class_init (MozGfxBufferPoolClass * klass)
-+{
-+ GstBufferPoolClass *pool_class = (GstBufferPoolClass *) klass;
-+ pool_class->reset_buffer = moz_gfx_buffer_pool_reset_buffer;
-+}
-+
-+static void
-+moz_gfx_buffer_pool_init (MozGfxBufferPool * pool)
-+{
-+}
-+
-+} // namespace mozilla
-diff --git content/media/gstreamer/GStreamerAllocator.h content/media/gstreamer/GStreamerAllocator.h
-new file mode 100644
-index 0000000..05a4412
---- /dev/null
-+++ mozilla/content/media/gstreamer/GStreamerAllocator.h
-@@ -0,0 +1,25 @@
-+/* 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/. */
-+
-+#if !defined(GStreamerAllocator_h_)
-+#define GStreamerAllocator_h_
-+
-+#include "GStreamerReader.h"
-+
-+#define GST_TYPE_MOZ_GFX_MEMORY_ALLOCATOR (moz_gfx_memory_allocator_get_type())
-+#define GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MOZ_GFX_MEMORY_ALLOCATOR))
-+#define GST_TYPE_MOZ_GFX_BUFFER_POOL (moz_gfx_buffer_pool_get_type())
-+#define GST_IS_MOZ_GFX_BUFFER_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MOZ_GFX_BUFFER_POOL))
-+
-+namespace mozilla {
-+
-+GType moz_gfx_memory_allocator_get_type();
-+void moz_gfx_memory_allocator_set_reader(GstAllocator *aAllocator, GStreamerReader* aReader);
-+nsRefPtr<layers::PlanarYCbCrImage> moz_gfx_memory_get_image(GstMemory *aMemory);
-+
-+GType moz_gfx_buffer_pool_get_type();
-+
-+} // namespace mozilla
-+
-+#endif
-diff --git content/media/gstreamer/GStreamerFormatHelper.cpp content/media/gstreamer/GStreamerFormatHelper.cpp
-index be71331..a5e5db8 100644
---- mozilla/content/media/gstreamer/GStreamerFormatHelper.cpp
-+++ mozilla/content/media/gstreamer/GStreamerFormatHelper.cpp
-@@ -294,12 +294,23 @@ bool GStreamerFormatHelper::CanHandleCodecCaps(GstCaps* aCaps)
- GList* GStreamerFormatHelper::GetFactories() {
- NS_ASSERTION(sLoadOK, "GStreamer library not linked");
-
-- uint32_t cookie = gst_default_registry_get_feature_list_cookie ();
-+#if GST_VERSION_MAJOR >= 1
-+ uint32_t cookie = gst_registry_get_feature_list_cookie(gst_registry_get());
-+#else
-+ uint32_t cookie = gst_default_registry_get_feature_list_cookie();
-+#endif
- if (cookie != mCookie) {
- g_list_free(mFactories);
-+#if GST_VERSION_MAJOR >= 1
-+ mFactories =
-+ gst_registry_feature_filter(gst_registry_get(),
-+ (GstPluginFeatureFilter)FactoryFilter,
-+ false, nullptr);
-+#else
- mFactories =
- gst_default_registry_feature_filter((GstPluginFeatureFilter)FactoryFilter,
- false, nullptr);
-+#endif
- mCookie = cookie;
- }
-
-diff --git content/media/gstreamer/GStreamerFunctionList.h content/media/gstreamer/GStreamerFunctionList.h
-index 56877c0..e169449 100644
---- mozilla/content/media/gstreamer/GStreamerFunctionList.h
-+++ mozilla/content/media/gstreamer/GStreamerFunctionList.h
-@@ -9,7 +9,6 @@
- * List of symbol names we need to dlsym from the gstreamer library.
- */
- GST_FUNC(LIBGSTAPP, gst_app_sink_get_type)
--GST_FUNC(LIBGSTAPP, gst_app_sink_pull_buffer)
- GST_FUNC(LIBGSTAPP, gst_app_sink_set_callbacks)
- GST_FUNC(LIBGSTAPP, gst_app_src_end_of_stream)
- GST_FUNC(LIBGSTAPP, gst_app_src_get_size)
-@@ -22,10 +21,8 @@ GST_FUNC(LIBGSTAPP, gst_app_src_set_stream_type)
- GST_FUNC(LIBGSTREAMER, gst_bin_get_by_name)
- GST_FUNC(LIBGSTREAMER, gst_bin_get_type)
- GST_FUNC(LIBGSTREAMER, gst_bin_iterate_recurse)
--GST_FUNC(LIBGSTREAMER, gst_buffer_copy_metadata)
- GST_FUNC(LIBGSTREAMER, gst_buffer_get_type)
- GST_FUNC(LIBGSTREAMER, gst_buffer_new)
--GST_FUNC(LIBGSTREAMER, gst_buffer_new_and_alloc)
- GST_FUNC(LIBGSTREAMER, gst_bus_set_sync_handler)
- GST_FUNC(LIBGSTREAMER, gst_bus_timed_pop_filtered)
- GST_FUNC(LIBGSTREAMER, gst_caps_append)
-@@ -37,47 +34,37 @@ GST_FUNC(LIBGSTREAMER, gst_caps_new_any)
- GST_FUNC(LIBGSTREAMER, gst_caps_new_empty)
- GST_FUNC(LIBGSTREAMER, gst_caps_new_full)
- GST_FUNC(LIBGSTREAMER, gst_caps_new_simple)
--GST_FUNC(LIBGSTREAMER, gst_caps_unref)
--GST_FUNC(LIBGSTREAMER, gst_element_factory_get_klass)
-+GST_FUNC(LIBGSTREAMER, gst_caps_set_simple)
- GST_FUNC(LIBGSTREAMER, gst_element_factory_get_static_pad_templates)
- GST_FUNC(LIBGSTREAMER, gst_element_factory_get_type)
- GST_FUNC(LIBGSTREAMER, gst_element_factory_make)
- GST_FUNC(LIBGSTREAMER, gst_element_get_factory)
--GST_FUNC(LIBGSTREAMER, gst_element_get_pad)
-+GST_FUNC(LIBGSTREAMER, gst_element_get_static_pad)
- GST_FUNC(LIBGSTREAMER, gst_element_get_type)
- GST_FUNC(LIBGSTREAMER, gst_element_query_convert)
- GST_FUNC(LIBGSTREAMER, gst_element_query_duration)
- GST_FUNC(LIBGSTREAMER, gst_element_seek_simple)
- GST_FUNC(LIBGSTREAMER, gst_element_set_state)
--GST_FUNC(LIBGSTREAMER, gst_event_parse_new_segment)
- GST_FUNC(LIBGSTREAMER, gst_flow_get_name)
- GST_FUNC(LIBGSTREAMER, gst_init)
- GST_FUNC(LIBGSTREAMER, gst_init_check)
- GST_FUNC(LIBGSTREAMER, gst_iterator_next)
- GST_FUNC(LIBGSTREAMER, gst_message_parse_error)
- GST_FUNC(LIBGSTREAMER, gst_message_type_get_name)
--GST_FUNC(LIBGSTREAMER, gst_mini_object_get_type)
--GST_FUNC(LIBGSTREAMER, gst_mini_object_new)
- GST_FUNC(LIBGSTREAMER, gst_mini_object_ref)
- GST_FUNC(LIBGSTREAMER, gst_mini_object_unref)
- GST_FUNC(LIBGSTREAMER, gst_object_get_name)
- GST_FUNC(LIBGSTREAMER, gst_object_get_parent)
- GST_FUNC(LIBGSTREAMER, gst_object_unref)
--GST_FUNC(LIBGSTREAMER, gst_pad_add_event_probe)
--GST_FUNC(LIBGSTREAMER, gst_pad_alloc_buffer)
- GST_FUNC(LIBGSTREAMER, gst_pad_get_element_private)
--GST_FUNC(LIBGSTREAMER, gst_pad_get_negotiated_caps)
--GST_FUNC(LIBGSTREAMER, gst_pad_set_bufferalloc_function)
- GST_FUNC(LIBGSTREAMER, gst_pad_set_element_private)
- GST_FUNC(LIBGSTREAMER, gst_parse_bin_from_description)
- GST_FUNC(LIBGSTREAMER, gst_pipeline_get_bus)
- GST_FUNC(LIBGSTREAMER, gst_pipeline_get_type)
- GST_FUNC(LIBGSTREAMER, gst_plugin_feature_get_rank)
- GST_FUNC(LIBGSTREAMER, gst_registry_feature_filter)
--GST_FUNC(LIBGSTREAMER, gst_registry_get_default)
- GST_FUNC(LIBGSTREAMER, gst_registry_get_feature_list_cookie)
- GST_FUNC(LIBGSTREAMER, gst_segment_init)
--GST_FUNC(LIBGSTREAMER, gst_segment_set_newsegment)
- GST_FUNC(LIBGSTREAMER, gst_segment_to_stream_time)
- GST_FUNC(LIBGSTREAMER, gst_static_caps_get)
- GST_FUNC(LIBGSTREAMER, gst_structure_copy)
-@@ -85,11 +72,82 @@ GST_FUNC(LIBGSTREAMER, gst_structure_get_int)
- GST_FUNC(LIBGSTREAMER, gst_structure_get_value)
- GST_FUNC(LIBGSTREAMER, gst_structure_new)
- GST_FUNC(LIBGSTREAMER, gst_util_uint64_scale)
-+
-+#if GST_VERSION_MAJOR == 0
-+GST_FUNC(LIBGSTAPP, gst_app_sink_pull_buffer)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_copy_metadata)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_new_and_alloc)
-+GST_FUNC(LIBGSTREAMER, gst_caps_unref)
-+GST_FUNC(LIBGSTREAMER, gst_element_factory_get_klass)
-+GST_FUNC(LIBGSTREAMER, gst_element_get_pad)
-+GST_FUNC(LIBGSTREAMER, gst_event_parse_new_segment)
-+GST_FUNC(LIBGSTREAMER, gst_mini_object_get_type)
-+GST_FUNC(LIBGSTREAMER, gst_mini_object_new)
-+GST_FUNC(LIBGSTREAMER, gst_pad_add_event_probe)
-+GST_FUNC(LIBGSTREAMER, gst_pad_alloc_buffer)
-+GST_FUNC(LIBGSTREAMER, gst_pad_get_negotiated_caps)
-+GST_FUNC(LIBGSTREAMER, gst_pad_set_bufferalloc_function)
-+GST_FUNC(LIBGSTREAMER, gst_registry_get_default)
-+GST_FUNC(LIBGSTREAMER, gst_segment_set_newsegment)
- GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_height)
- GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_offset)
- GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_width)
-+GST_FUNC(LIBGSTVIDEO, gst_video_format_get_pixel_stride)
- GST_FUNC(LIBGSTVIDEO, gst_video_format_get_row_stride)
- GST_FUNC(LIBGSTVIDEO, gst_video_format_parse_caps)
-+#else
-+
-+GST_FUNC(LIBGSTAPP, gst_app_sink_pull_sample)
-+GST_FUNC(LIBGSTREAMER, _gst_caps_any)
-+GST_FUNC(LIBGSTREAMER, gst_allocator_get_type)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_copy_into)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_extract)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_get_meta)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_get_size)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_map)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_new_allocate)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_n_memory)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_peek_memory)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_acquire_buffer)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_config_set_allocator)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_config_set_params)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_get_config)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_get_type)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_is_active)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_set_active)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_set_config)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_set_size)
-+GST_FUNC(LIBGSTREAMER, gst_buffer_unmap)
-+GST_FUNC(LIBGSTREAMER, gst_element_factory_get_metadata)
-+GST_FUNC(LIBGSTREAMER, gst_event_parse_segment)
-+GST_FUNC(LIBGSTREAMER, gst_memory_init)
-+GST_FUNC(LIBGSTREAMER, gst_memory_map)
-+GST_FUNC(LIBGSTREAMER, gst_memory_unmap)
-+GST_FUNC(LIBGSTREAMER, gst_object_get_type)
-+GST_FUNC(LIBGSTREAMER, gst_pad_add_probe)
-+GST_FUNC(LIBGSTREAMER, gst_pad_get_current_caps)
-+GST_FUNC(LIBGSTREAMER, gst_pad_probe_info_get_query)
-+GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_meta)
-+GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_param)
-+GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_pool)
-+GST_FUNC(LIBGSTREAMER, gst_query_parse_allocation)
-+GST_FUNC(LIBGSTREAMER, gst_registry_get)
-+GST_FUNC(LIBGSTREAMER, gst_sample_get_buffer)
-+GST_FUNC(LIBGSTREAMER, gst_segment_copy_into)
-+GST_FUNC(LIBGSTREAMER, gst_structure_free)
-+GST_FUNC(LIBGSTVIDEO, gst_buffer_pool_config_get_video_alignment)
-+GST_FUNC(LIBGSTVIDEO, gst_buffer_pool_has_option)
-+GST_FUNC(LIBGSTVIDEO, gst_video_buffer_pool_get_type)
-+GST_FUNC(LIBGSTVIDEO, gst_video_frame_map)
-+GST_FUNC(LIBGSTVIDEO, gst_video_frame_unmap)
-+GST_FUNC(LIBGSTVIDEO, gst_video_info_align)
-+GST_FUNC(LIBGSTVIDEO, gst_video_info_from_caps)
-+GST_FUNC(LIBGSTVIDEO, gst_video_info_init)
-+GST_FUNC(LIBGSTVIDEO, gst_video_meta_api_get_type)
-+GST_FUNC(LIBGSTVIDEO, gst_video_meta_map)
-+GST_FUNC(LIBGSTVIDEO, gst_video_meta_unmap)
-+
-+#endif
-
- /*
- * Functions that have been defined in the header file. We replace them so that
-@@ -99,6 +157,11 @@ GST_FUNC(LIBGSTVIDEO, gst_video_format_parse_caps)
- REPLACE_FUNC(gst_buffer_ref);
- REPLACE_FUNC(gst_buffer_unref);
- REPLACE_FUNC(gst_message_unref);
-+
-+#if GST_VERSION_MAJOR == 1
-+REPLACE_FUNC(gst_caps_unref);
-+REPLACE_FUNC(gst_sample_unref);
-+#endif
- #endif
-
- #endif // !defined(__APPLE__)
-diff --git content/media/gstreamer/GStreamerLoader.cpp content/media/gstreamer/GStreamerLoader.cpp
-index 5961b23..e6457e0 100644
---- mozilla/content/media/gstreamer/GStreamerLoader.cpp
-+++ mozilla/content/media/gstreamer/GStreamerLoader.cpp
-@@ -6,13 +6,21 @@
- #include <dlfcn.h>
- #include <stdio.h>
-
--#include "GStreamerLoader.h"
-+#include "nsDebug.h"
- #include "mozilla/NullPtr.h"
-
-+#include "GStreamerLoader.h"
-+
- #define LIBGSTREAMER 0
- #define LIBGSTAPP 1
- #define LIBGSTVIDEO 2
-
-+#ifdef __OpenBSD__
-+#define LIB_GST_SUFFIX ".so"
-+#else
-+#define LIB_GST_SUFFIX ".so.0"
-+#endif
-+
- namespace mozilla {
-
- /*
-@@ -32,6 +40,11 @@ namespace mozilla {
- GstBuffer * gst_buffer_ref_impl(GstBuffer *buf);
- void gst_buffer_unref_impl(GstBuffer *buf);
- void gst_message_unref_impl(GstMessage *msg);
-+void gst_caps_unref_impl(GstCaps *caps);
-+
-+#if GST_VERSION_MAJOR == 1
-+void gst_sample_unref_impl(GstSample *sample);
-+#endif
-
- bool
- load_gstreamer()
-@@ -58,32 +71,25 @@ load_gstreamer()
- if (major == GST_VERSION_MAJOR && minor == GST_VERSION_MINOR) {
- gstreamerLib = RTLD_DEFAULT;
- } else {
--#ifdef __OpenBSD__
-- gstreamerLib = dlopen("libgstreamer-0.10.so", RTLD_NOW | RTLD_LOCAL);
--#else
-- gstreamerLib = dlopen("libgstreamer-0.10.so.0", RTLD_NOW | RTLD_LOCAL);
--#endif
-+ gstreamerLib = dlopen("libgstreamer-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL);
- }
-
-- void *handles[] = {
-+ void *handles[3] = {
- gstreamerLib,
--#ifdef __OpenBSD__
-- dlopen("libgstapp-0.10.so", RTLD_NOW | RTLD_LOCAL),
-- dlopen("libgstvideo-0.10.so", RTLD_NOW | RTLD_LOCAL)
--#else
-- dlopen("libgstapp-0.10.so.0", RTLD_NOW | RTLD_LOCAL),
-- dlopen("libgstvideo-0.10.so.0", RTLD_NOW | RTLD_LOCAL)
--#endif
-+ dlopen("libgstapp-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL),
-+ dlopen("libgstvideo-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL)
- };
-
- for (size_t i = 0; i < sizeof(handles) / sizeof(handles[0]); i++) {
- if (!handles[i]) {
-+ NS_WARNING("Couldn't link gstreamer libraries");
- goto fail;
- }
- }
-
- #define GST_FUNC(lib, symbol) \
- if (!(symbol = (typeof(symbol))dlsym(handles[lib], #symbol))) { \
-+ NS_WARNING("Couldn't link symbol " #symbol); \
- goto fail; \
- }
- #define REPLACE_FUNC(symbol) symbol = symbol##_impl;
-@@ -123,4 +129,18 @@ gst_message_unref_impl(GstMessage *msg)
- gst_mini_object_unref(GST_MINI_OBJECT_CAST(msg));
- }
-
-+#if GST_VERSION_MAJOR == 1
-+void
-+gst_sample_unref_impl(GstSample *sample)
-+{
-+ gst_mini_object_unref(GST_MINI_OBJECT_CAST(sample));
-+}
-+#endif
-+
-+void
-+gst_caps_unref_impl(GstCaps *caps)
-+{
-+ gst_mini_object_unref(GST_MINI_OBJECT_CAST(caps));
-+}
-+
- }
-diff --git content/media/gstreamer/GStreamerLoader.h content/media/gstreamer/GStreamerLoader.h
-index 2d801722..cd7fe6d 100644
---- mozilla/content/media/gstreamer/GStreamerLoader.h
-+++ mozilla/content/media/gstreamer/GStreamerLoader.h
-@@ -22,6 +22,11 @@
- #include <gst/video/video.h>
- #pragma GCC diagnostic pop
-
-+#if GST_VERSION_MAJOR == 1
-+#include <gst/video/gstvideometa.h>
-+#include <gst/video/gstvideopool.h>
-+#endif
-+
- namespace mozilla {
-
- /*
-@@ -42,4 +47,7 @@ bool load_gstreamer();
-
- }
-
-+#undef GST_CAPS_ANY
-+#define GST_CAPS_ANY (*_gst_caps_any)
-+
- #endif // GStreamerLoader_h_
-diff --git content/media/gstreamer/GStreamerReader-0.10.cpp content/media/gstreamer/GStreamerReader-0.10.cpp
-new file mode 100644
-index 0000000..fb98bde
---- /dev/null
-+++ mozilla/content/media/gstreamer/GStreamerReader-0.10.cpp
-@@ -0,0 +1,200 @@
-+#include "nsError.h"
-+#include "MediaDecoderStateMachine.h"
-+#include "AbstractMediaDecoder.h"
-+#include "MediaResource.h"
-+#include "GStreamerReader.h"
-+#include "GStreamerMozVideoBuffer.h"
-+#include "GStreamerFormatHelper.h"
-+#include "VideoUtils.h"
-+#include "mozilla/dom/TimeRanges.h"
-+#include "mozilla/Preferences.h"
-+
-+using namespace mozilla;
-+using mozilla::layers::PlanarYCbCrImage;
-+using mozilla::layers::ImageContainer;
-+
-+GstFlowReturn GStreamerReader::AllocateVideoBufferCb(GstPad* aPad,
-+ guint64 aOffset,
-+ guint aSize,
-+ GstCaps* aCaps,
-+ GstBuffer** aBuf)
-+{
-+ GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(gst_pad_get_element_private(aPad));
-+ return reader->AllocateVideoBuffer(aPad, aOffset, aSize, aCaps, aBuf);
-+}
-+
-+GstFlowReturn GStreamerReader::AllocateVideoBuffer(GstPad* aPad,
-+ guint64 aOffset,
-+ guint aSize,
-+ GstCaps* aCaps,
-+ GstBuffer** aBuf)
-+{
-+ nsRefPtr<PlanarYCbCrImage> image;
-+ return AllocateVideoBufferFull(aPad, aOffset, aSize, aCaps, aBuf, image);
-+}
-+
-+GstFlowReturn GStreamerReader::AllocateVideoBufferFull(GstPad* aPad,
-+ guint64 aOffset,
-+ guint aSize,
-+ GstCaps* aCaps,
-+ GstBuffer** aBuf,
-+ nsRefPtr<PlanarYCbCrImage>& aImage)
-+{
-+ /* allocate an image using the container */
-+ ImageContainer* container = mDecoder->GetImageContainer();
-+ if (container == nullptr) {
-+ return GST_FLOW_ERROR;
-+ }
-+ PlanarYCbCrImage* img = reinterpret_cast<PlanarYCbCrImage*>(container->CreateImage(ImageFormat::PLANAR_YCBCR).get());
-+ nsRefPtr<PlanarYCbCrImage> image = dont_AddRef(img);
-+
-+ /* prepare a GstBuffer pointing to the underlying PlanarYCbCrImage buffer */
-+ GstBuffer* buf = GST_BUFFER(gst_moz_video_buffer_new());
-+ GST_BUFFER_SIZE(buf) = aSize;
-+ /* allocate the actual YUV buffer */
-+ GST_BUFFER_DATA(buf) = image->AllocateAndGetNewBuffer(aSize);
-+
-+ aImage = image;
-+
-+ /* create a GstMozVideoBufferData to hold the image */
-+ GstMozVideoBufferData* bufferdata = new GstMozVideoBufferData(image);
-+
-+ /* Attach bufferdata to our GstMozVideoBuffer, it will take care to free it */
-+ gst_moz_video_buffer_set_data(GST_MOZ_VIDEO_BUFFER(buf), bufferdata);
-+
-+ *aBuf = buf;
-+ return GST_FLOW_OK;
-+}
-+
-+gboolean GStreamerReader::EventProbe(GstPad* aPad, GstEvent* aEvent)
-+{
-+ GstElement* parent = GST_ELEMENT(gst_pad_get_parent(aPad));
-+ switch(GST_EVENT_TYPE(aEvent)) {
-+ case GST_EVENT_NEWSEGMENT:
-+ {
-+ gboolean update;
-+ gdouble rate;
-+ GstFormat format;
-+ gint64 start, stop, position;
-+ GstSegment* segment;
-+
-+ /* Store the segments so we can convert timestamps to stream time, which
-+ * is what the upper layers sync on.
-+ */
-+ ReentrantMonitorAutoEnter mon(mGstThreadsMonitor);
-+ gst_event_parse_new_segment(aEvent, &update, &rate, &format,
-+ &start, &stop, &position);
-+ if (parent == GST_ELEMENT(mVideoAppSink))
-+ segment = &mVideoSegment;
-+ else
-+ segment = &mAudioSegment;
-+ gst_segment_set_newsegment(segment, update, rate, format,
-+ start, stop, position);
-+ break;
-+ }
-+ case GST_EVENT_FLUSH_STOP:
-+ /* Reset on seeks */
-+ ResetDecode();
-+ break;
-+ default:
-+ break;
-+ }
-+ gst_object_unref(parent);
-+
-+ return TRUE;
-+}
-+
-+gboolean GStreamerReader::EventProbeCb(GstPad* aPad,
-+ GstEvent* aEvent,
-+ gpointer aUserData)
-+{
-+ GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(aUserData);
-+ return reader->EventProbe(aPad, aEvent);
-+}
-+
-+nsRefPtr<PlanarYCbCrImage> GStreamerReader::GetImageFromBuffer(GstBuffer* aBuffer)
-+{
-+ if (!GST_IS_MOZ_VIDEO_BUFFER (aBuffer))
-+ return nullptr;
-+
-+ nsRefPtr<PlanarYCbCrImage> image;
-+ GstMozVideoBufferData* bufferdata = reinterpret_cast<GstMozVideoBufferData*>(gst_moz_video_buffer_get_data(GST_MOZ_VIDEO_BUFFER(aBuffer)));
-+ image = bufferdata->mImage;
-+
-+ PlanarYCbCrImage::Data data;
-+ data.mPicX = data.mPicY = 0;
-+ data.mPicSize = gfx::IntSize(mPicture.width, mPicture.height);
-+ data.mStereoMode = StereoMode::MONO;
-+
-+ data.mYChannel = GST_BUFFER_DATA(aBuffer);
-+ data.mYStride = gst_video_format_get_row_stride(mFormat, 0, mPicture.width);
-+ data.mYSize = gfx::IntSize(data.mYStride,
-+ gst_video_format_get_component_height(mFormat, 0, mPicture.height));
-+ data.mYSkip = 0;
-+ data.mCbCrStride = gst_video_format_get_row_stride(mFormat, 1, mPicture.width);
-+ data.mCbCrSize = gfx::IntSize(data.mCbCrStride,
-+ gst_video_format_get_component_height(mFormat, 1, mPicture.height));
-+ data.mCbChannel = data.mYChannel + gst_video_format_get_component_offset(mFormat, 1,
-+ mPicture.width, mPicture.height);
-+ data.mCrChannel = data.mYChannel + gst_video_format_get_component_offset(mFormat, 2,
-+ mPicture.width, mPicture.height);
-+ data.mCbSkip = 0;
-+ data.mCrSkip = 0;
-+
-+ image->SetDataNoCopy(data);
-+
-+ return image;
-+}
-+
-+void GStreamerReader::CopyIntoImageBuffer(GstBuffer* aBuffer,
-+ GstBuffer** aOutBuffer,
-+ nsRefPtr<PlanarYCbCrImage> &aImage)
-+{
-+ AllocateVideoBufferFull(nullptr, GST_BUFFER_OFFSET(aBuffer),
-+ GST_BUFFER_SIZE(aBuffer), nullptr, aOutBuffer, aImage);
-+
-+ gst_buffer_copy_metadata(*aOutBuffer, aBuffer, (GstBufferCopyFlags)GST_BUFFER_COPY_ALL);
-+ memcpy(GST_BUFFER_DATA(*aOutBuffer), GST_BUFFER_DATA(aBuffer), GST_BUFFER_SIZE(*aOutBuffer));
-+
-+ aImage = GetImageFromBuffer(*aOutBuffer);
-+}
-+
-+GstCaps* GStreamerReader::BuildAudioSinkCaps()
-+{
-+ GstCaps* caps;
-+#ifdef IS_LITTLE_ENDIAN
-+ int endianness = 1234;
-+#else
-+ int endianness = 4321;
-+#endif
-+ gint width;
-+#ifdef MOZ_SAMPLE_TYPE_FLOAT32
-+ caps = gst_caps_from_string("audio/x-raw-float, channels={1,2}");
-+ width = 32;
-+#else /* !MOZ_SAMPLE_TYPE_FLOAT32 */
-+ caps = gst_caps_from_string("audio/x-raw-int, channels={1,2}");
-+ width = 16;
-+#endif
-+ gst_caps_set_simple(caps,
-+ "width", G_TYPE_INT, width,
-+ "endianness", G_TYPE_INT, endianness,
-+ NULL);
-+
-+ return caps;
-+}
-+
-+void GStreamerReader::InstallPadCallbacks()
-+{
-+ GstPad* sinkpad = gst_element_get_static_pad(GST_ELEMENT(mVideoAppSink), "sink");
-+ gst_pad_add_event_probe(sinkpad,
-+ G_CALLBACK(&GStreamerReader::EventProbeCb), this);
-+
-+ gst_pad_set_bufferalloc_function(sinkpad, GStreamerReader::AllocateVideoBufferCb);
-+ gst_pad_set_element_private(sinkpad, this);
-+ gst_object_unref(sinkpad);
-+
-+ sinkpad = gst_element_get_static_pad(GST_ELEMENT(mAudioAppSink), "sink");
-+ gst_pad_add_event_probe(sinkpad,
-+ G_CALLBACK(&GStreamerReader::EventProbeCb), this);
-+ gst_object_unref(sinkpad);
-+}
-diff --git content/media/gstreamer/GStreamerReader.cpp content/media/gstreamer/GStreamerReader.cpp
-index 2be45dc..54509e3 100644
---- mozilla/content/media/gstreamer/GStreamerReader.cpp
-+++ mozilla/content/media/gstreamer/GStreamerReader.cpp
-@@ -10,8 +10,10 @@
- #include "AbstractMediaDecoder.h"
- #include "MediaResource.h"
- #include "GStreamerReader.h"
-+#if GST_VERSION_MAJOR >= 1
-+#include "GStreamerAllocator.h"
-+#endif
- #include "GStreamerFormatHelper.h"
--#include "GStreamerMozVideoBuffer.h"
- #include "VideoUtils.h"
- #include "mozilla/dom/TimeRanges.h"
- #include "mozilla/Preferences.h"
-@@ -31,14 +33,16 @@ extern PRLogModuleInfo* gMediaDecoderLog;
- #define LOG(type, msg, ...)
- #endif
-
--extern bool
--IsYV12Format(const VideoData::YCbCrBuffer::Plane& aYPlane,
-- const VideoData::YCbCrBuffer::Plane& aCbPlane,
-- const VideoData::YCbCrBuffer::Plane& aCrPlane);
--
-+#if DEBUG
- static const unsigned int MAX_CHANNELS = 4;
--// Let the demuxer work in pull mode for short files
--static const int SHORT_FILE_SIZE = 1024 * 1024;
-+#endif
-+// Let the demuxer work in pull mode for short files. This used to be a micro
-+// optimization to have more accurate durations for ogg files in mochitests.
-+// Since as of today we aren't using gstreamer to demux ogg, and having demuxers
-+// work in pull mode over http makes them slower (since they really assume
-+// near-zero latency in pull mode) set the constant to 0 for now, which
-+// effectively disables it.
-+static const int SHORT_FILE_SIZE = 0;
- // The default resource->Read() size when working in push mode
- static const int DEFAULT_SOURCE_READ_SIZE = 50 * 1024;
-
-@@ -60,6 +62,10 @@ GStreamerReader::GStreamerReader(AbstractMediaDecoder* aDecoder)
- : MediaDecoderReader(aDecoder),
- mMP3FrameParser(aDecoder->GetResource()->GetLength()),
- mUseParserDuration(false),
-+#if GST_VERSION_MAJOR >= 1
-+ mAllocator(nullptr),
-+ mBufferPool(nullptr),
-+#endif
- mPlayBin(nullptr),
- mBus(nullptr),
- mSource(nullptr),
-@@ -72,6 +78,9 @@ GStreamerReader::GStreamerReader(AbstractMediaDecoder* aDecoder)
- mAudioSinkBufferCount(0),
- mGstThreadsMonitor("media.gst.threads"),
- mReachedEos(false),
-+#if GST_VERSION_MAJOR >= 1
-+ mConfigureAlignment(true),
-+#endif
- fpsNum(0),
- fpsDen(0)
- {
-@@ -83,8 +92,12 @@ GStreamerReader::GStreamerReader(AbstractMediaDecoder* aDecoder)
-
- mSinkCallbacks.eos = GStreamerReader::EosCb;
- mSinkCallbacks.new_preroll = GStreamerReader::NewPrerollCb;
-+#if GST_VERSION_MAJOR >= 1
-+ mSinkCallbacks.new_sample = GStreamerReader::NewBufferCb;
-+#else
- mSinkCallbacks.new_buffer = GStreamerReader::NewBufferCb;
- mSinkCallbacks.new_buffer_list = nullptr;
-+#endif
-
- gst_segment_init(&mVideoSegment, GST_FORMAT_UNDEFINED);
- gst_segment_init(&mAudioSegment, GST_FORMAT_UNDEFINED);
-@@ -108,65 +121,59 @@ GStreamerReader::~GStreamerReader()
- mAudioAppSink = nullptr;
- gst_object_unref(mBus);
- mBus = nullptr;
-+#if GST_VERSION_MAJOR >= 1
-+ g_object_unref(mAllocator);
-+ g_object_unref(mBufferPool);
-+#endif
- }
- }
-
- nsresult GStreamerReader::Init(MediaDecoderReader* aCloneDonor)
- {
-- GError* error = nullptr;
-- if (!gst_init_check(0, 0, &error)) {
-- LOG(PR_LOG_ERROR, "gst initialization failed: %s", error->message);
-- g_error_free(error);
-- return NS_ERROR_FAILURE;
-- }
-+ GStreamerFormatHelper::Instance();
-+
-+#if GST_VERSION_MAJOR >= 1
-+ mAllocator = static_cast<GstAllocator*>(g_object_new(GST_TYPE_MOZ_GFX_MEMORY_ALLOCATOR, nullptr));
-+ moz_gfx_memory_allocator_set_reader(mAllocator, this);
-+
-+ mBufferPool = static_cast<GstBufferPool*>(g_object_new(GST_TYPE_MOZ_GFX_BUFFER_POOL, nullptr));
-+#endif
-
-+#if GST_VERSION_MAJOR >= 1
-+ mPlayBin = gst_element_factory_make("playbin", nullptr);
-+#else
- mPlayBin = gst_element_factory_make("playbin2", nullptr);
-+#endif
- if (!mPlayBin) {
-- LOG(PR_LOG_ERROR, "couldn't create playbin2");
-+ LOG(PR_LOG_ERROR, "couldn't create playbin");
- return NS_ERROR_FAILURE;
- }
- g_object_set(mPlayBin, "buffer-size", 0, nullptr);
- mBus = gst_pipeline_get_bus(GST_PIPELINE(mPlayBin));
-
- mVideoSink = gst_parse_bin_from_description("capsfilter name=filter ! "
-- "appsink name=videosink sync=true max-buffers=1 "
-+ "appsink name=videosink sync=false max-buffers=1 "
-+#if GST_VERSION_MAJOR >= 1
-+ "caps=video/x-raw,format=I420"
-+#else
- "caps=video/x-raw-yuv,format=(fourcc)I420"
-+#endif
- , TRUE, nullptr);
- mVideoAppSink = GST_APP_SINK(gst_bin_get_by_name(GST_BIN(mVideoSink),
- "videosink"));
-- gst_app_sink_set_callbacks(mVideoAppSink, &mSinkCallbacks,
-- (gpointer) this, nullptr);
-- GstPad* sinkpad = gst_element_get_pad(GST_ELEMENT(mVideoAppSink), "sink");
-- gst_pad_add_event_probe(sinkpad,
-- G_CALLBACK(&GStreamerReader::EventProbeCb), this);
-- gst_object_unref(sinkpad);
-- gst_pad_set_bufferalloc_function(sinkpad, GStreamerReader::AllocateVideoBufferCb);
-- gst_pad_set_element_private(sinkpad, this);
--
- mAudioSink = gst_parse_bin_from_description("capsfilter name=filter ! "
--#ifdef MOZ_SAMPLE_TYPE_FLOAT32
-- "appsink name=audiosink max-buffers=2 sync=false caps=audio/x-raw-float,"
--#ifdef IS_LITTLE_ENDIAN
-- "channels={1,2},width=32,endianness=1234", TRUE, nullptr);
--#else
-- "channels={1,2},width=32,endianness=4321", TRUE, nullptr);
--#endif
--#else
-- "appsink name=audiosink max-buffers=2 sync=false caps=audio/x-raw-int,"
--#ifdef IS_LITTLE_ENDIAN
-- "channels={1,2},width=16,endianness=1234", TRUE, nullptr);
--#else
-- "channels={1,2},width=16,endianness=4321", TRUE, nullptr);
--#endif
--#endif
-+ "appsink name=audiosink sync=false max-buffers=1", TRUE, nullptr);
- mAudioAppSink = GST_APP_SINK(gst_bin_get_by_name(GST_BIN(mAudioSink),
- "audiosink"));
-+ GstCaps* caps = BuildAudioSinkCaps();
-+ g_object_set(mAudioAppSink, "caps", caps, nullptr);
-+ gst_caps_unref(caps);
-+
-+ gst_app_sink_set_callbacks(mVideoAppSink, &mSinkCallbacks,
-+ (gpointer) this, nullptr);
- gst_app_sink_set_callbacks(mAudioAppSink, &mSinkCallbacks,
- (gpointer) this, nullptr);
-- sinkpad = gst_element_get_pad(GST_ELEMENT(mAudioAppSink), "sink");
-- gst_pad_add_event_probe(sinkpad,
-- G_CALLBACK(&GStreamerReader::EventProbeCb), this);
-- gst_object_unref(sinkpad);
-+ InstallPadCallbacks();
-
- g_object_set(mPlayBin, "uri", "appsrc://",
- "video-sink", mVideoSink,
-@@ -331,13 +340,12 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo,
- /* Little trick: set the target caps to "skip" so that playbin2 fails to
- * find a decoder for the stream we want to skip.
- */
-- GstCaps* filterCaps = gst_caps_new_simple ("skip", nullptr);
-+ GstCaps* filterCaps = gst_caps_new_simple ("skip", nullptr, nullptr);
- g_object_set(filter, "caps", filterCaps, nullptr);
- gst_caps_unref(filterCaps);
- gst_object_unref(filter);
- }
-
-- /* start the pipeline */
- LOG(PR_LOG_DEBUG, "starting metadata pipeline");
- gst_element_set_state(mPlayBin, GST_STATE_PAUSED);
-
-@@ -358,6 +366,7 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo,
- gst_message_unref(message);
- ret = NS_ERROR_FAILURE;
- } else {
-+ LOG(PR_LOG_DEBUG, "read metadata pipeline prerolled");
- gst_message_unref(message);
- ret = NS_OK;
- break;
-@@ -373,21 +383,24 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo,
-
- /* FIXME: workaround for a bug in matroskademux. This seek makes matroskademux
- * parse the index */
-+ LOG(PR_LOG_DEBUG, "doing matroskademux seek hack");
- if (gst_element_seek_simple(mPlayBin, GST_FORMAT_TIME,
- GST_SEEK_FLAG_FLUSH, 0)) {
- /* after a seek we need to wait again for ASYNC_DONE */
-- message = gst_bus_timed_pop_filtered(mBus, GST_CLOCK_TIME_NONE,
-+ message = gst_bus_timed_pop_filtered(mBus, 5 * GST_SECOND,
- (GstMessageType)(GST_MESSAGE_ASYNC_DONE | GST_MESSAGE_ERROR));
-- if (GST_MESSAGE_TYPE(message) == GST_MESSAGE_ERROR) {
-+ LOG(PR_LOG_DEBUG, "matroskademux seek hack done");
-+ if (GST_MESSAGE_TYPE(message) != GST_MESSAGE_ASYNC_DONE) {
- gst_element_set_state(mPlayBin, GST_STATE_NULL);
- gst_message_unref(message);
- return NS_ERROR_FAILURE;
- }
-+ } else {
-+ LOG(PR_LOG_DEBUG, "matroskademux seek hack failed (non fatal)");
- }
-
- /* report the duration */
- gint64 duration;
-- GstFormat format = GST_FORMAT_TIME;
-
- if (isMP3 && mMP3FrameParser.IsMP3()) {
- // The MP3FrameParser has reported a duration; use that over the gstreamer
-@@ -396,17 +409,25 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo,
- mUseParserDuration = true;
- mLastParserDuration = mMP3FrameParser.GetDuration();
- mDecoder->SetMediaDuration(mLastParserDuration);
--
-- } else if (gst_element_query_duration(GST_ELEMENT(mPlayBin),
-- &format, &duration) && format == GST_FORMAT_TIME) {
-- // Otherwise use the gstreamer duration.
-- ReentrantMonitorAutoEnter mon(mDecoder->GetReentrantMonitor());
-- LOG(PR_LOG_DEBUG, "returning duration %" GST_TIME_FORMAT, GST_TIME_ARGS(duration));
-- duration = GST_TIME_AS_USECONDS (duration);
-- mDecoder->SetMediaDuration(duration);
--
- } else {
-- mDecoder->SetMediaSeekable(false);
-+ LOG(PR_LOG_DEBUG, "querying duration");
-+ // Otherwise use the gstreamer duration.
-+#if GST_VERSION_MAJOR >= 1
-+ if (gst_element_query_duration(GST_ELEMENT(mPlayBin),
-+ GST_FORMAT_TIME, &duration)) {
-+#else
-+ GstFormat format = GST_FORMAT_TIME;
-+ if (gst_element_query_duration(GST_ELEMENT(mPlayBin),
-+ &format, &duration) && format == GST_FORMAT_TIME) {
-+#endif
-+ ReentrantMonitorAutoEnter mon(mDecoder->GetReentrantMonitor());
-+ LOG(PR_LOG_DEBUG, "have duration %" GST_TIME_FORMAT,
-+ GST_TIME_ARGS (duration));
-+ duration = GST_TIME_AS_USECONDS (duration);
-+ mDecoder->SetMediaDuration(duration);
-+ } else {
-+ mDecoder->SetMediaSeekable(false);
-+ }
- }
-
- int n_video = 0, n_audio = 0;
-@@ -410,7 +428,11 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo,
- *aTags = nullptr;
-
- // Watch the pipeline for fatal errors
-+#if GST_VERSION_MAJOR >= 1
-+ gst_bus_set_sync_handler(mBus, GStreamerReader::ErrorCb, this, nullptr);
-+#else
- gst_bus_set_sync_handler(mBus, GStreamerReader::ErrorCb, this);
-+#endif
-
- /* set the pipeline to PLAYING so that it starts decoding and queueing data in
- * the appsinks */
-@@ -424,19 +446,35 @@ nsresult GStreamerReader::CheckSupportedFormats()
- bool done = false;
- bool unsupported = false;
-
-- GstIterator *it = gst_bin_iterate_recurse(GST_BIN(mPlayBin));
-+ GstIterator* it = gst_bin_iterate_recurse(GST_BIN(mPlayBin));
- while (!done) {
-+ GstIteratorResult res;
- GstElement* element;
-- GstIteratorResult res = gst_iterator_next(it, (void **)&element);
-+
-+#if GST_VERSION_MAJOR >= 1
-+ GValue value = {0,};
-+ res = gst_iterator_next(it, &value);
-+#else
-+ res = gst_iterator_next(it, (void **) &element);
-+#endif
- switch(res) {
- case GST_ITERATOR_OK:
- {
-+#if GST_VERSION_MAJOR >= 1
-+ element = GST_ELEMENT (g_value_get_object (&value));
-+#endif
- GstElementFactory* factory = gst_element_get_factory(element);
- if (factory) {
- const char* klass = gst_element_factory_get_klass(factory);
-- GstPad* pad = gst_element_get_pad(element, "sink");
-+ GstPad* pad = gst_element_get_static_pad(element, "sink");
- if (pad) {
-- GstCaps* caps = gst_pad_get_negotiated_caps(pad);
-+ GstCaps* caps;
-+
-+#if GST_VERSION_MAJOR >= 1
-+ caps = gst_pad_get_current_caps(pad);
-+#else
-+ caps = gst_pad_get_negotiated_caps(pad);
-+#endif
-
- if (caps) {
- /* check for demuxers but ignore elements like id3demux */
-@@ -451,7 +489,11 @@ nsresult GStreamerReader::CheckSupportedFormats()
- }
- }
-
-+#if GST_VERSION_MAJOR >= 1
-+ g_value_unset (&value);
-+#else
- gst_object_unref(element);
-+#endif
- done = unsupported;
- break;
- }
-@@ -475,6 +517,8 @@ nsresult GStreamerReader::ResetDecode()
- {
- nsresult res = NS_OK;
-
-+ LOG(PR_LOG_DEBUG, "reset decode");
-+
- if (NS_FAILED(MediaDecoderReader::ResetDecode())) {
- res = NS_ERROR_FAILURE;
- }
-@@ -485,6 +529,11 @@ nsresult GStreamerReader::ResetDecode()
- mVideoSinkBufferCount = 0;
- mAudioSinkBufferCount = 0;
- mReachedEos = false;
-+#if GST_VERSION_MAJOR >= 1
-+ mConfigureAlignment = true;
-+#endif
-+
-+ LOG(PR_LOG_DEBUG, "reset decode done");
-
- return res;
- }
-@@ -508,11 +557,11 @@ bool GStreamerReader::DecodeAudioData()
- /* We have nothing decoded so it makes no sense to return to the state machine
- * as it will call us back immediately, we'll return again and so on, wasting
- * CPU cycles for no job done. So, block here until there is either video or
-- * audio data available
-+ * audio data available
- */
- mon.Wait();
- if (!mAudioSinkBufferCount) {
-- /* There is still no audio data available, so either there is video data or
-+ /* There is still no audio data available, so either there is video data or
- * something else has happened (Eos, etc...). Return to the state machine
- * to process it.
- */
-@@ -533,24 +584,44 @@ bool GStreamerReader::DecodeAudioData()
- }
- }
-
-+#if GST_VERSION_MAJOR >= 1
-+ GstSample *sample = gst_app_sink_pull_sample(mAudioAppSink);
-+ buffer = gst_buffer_ref(gst_sample_get_buffer(sample));
-+ gst_sample_unref(sample);
-+#else
- buffer = gst_app_sink_pull_buffer(mAudioAppSink);
-+#endif
-+
- mAudioSinkBufferCount--;
- }
-
- int64_t timestamp = GST_BUFFER_TIMESTAMP(buffer);
- timestamp = gst_segment_to_stream_time(&mAudioSegment,
- GST_FORMAT_TIME, timestamp);
-+
- timestamp = GST_TIME_AS_USECONDS(timestamp);
-+
- int64_t duration = 0;
- if (GST_CLOCK_TIME_IS_VALID(GST_BUFFER_DURATION(buffer)))
- duration = GST_TIME_AS_USECONDS(GST_BUFFER_DURATION(buffer));
-
- int64_t offset = GST_BUFFER_OFFSET(buffer);
-+#if GST_VERSION_MAJOR >= 1
-+ GstMapInfo info;
-+ gst_buffer_map(buffer, &info, GST_MAP_READ);
-+ unsigned int size = info.size;
-+#else
- unsigned int size = GST_BUFFER_SIZE(buffer);
-+#endif
- int32_t frames = (size / sizeof(AudioDataValue)) / mInfo.mAudio.mChannels;
- ssize_t outSize = static_cast<size_t>(size / sizeof(AudioDataValue));
- nsAutoArrayPtr<AudioDataValue> data(new AudioDataValue[outSize]);
-+#if GST_VERSION_MAJOR >= 1
-+ memcpy(data, info.data, info.size);
-+ gst_buffer_unmap(buffer, &info);
-+#else
- memcpy(data, GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer));
-+#endif
- AudioData* audio = new AudioData(offset, timestamp, duration,
- frames, data.forget(), mInfo.mAudio.mChannels);
-
-@@ -552,7 +620,7 @@ bool GStreamerReader::DecodeAudioData()
- }
-
- bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip,
-- int64_t aTimeThreshold)
-+ int64_t aTimeThreshold)
- {
- NS_ASSERTION(mDecoder->OnDecodeThread(), "Should be on decode thread.");
-
-@@ -571,11 +639,11 @@ bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip,
- /* We have nothing decoded so it makes no sense to return to the state machine
- * as it will call us back immediately, we'll return again and so on, wasting
- * CPU cycles for no job done. So, block here until there is either video or
-- * audio data available
-+ * audio data available
- */
- mon.Wait();
- if (!mVideoSinkBufferCount) {
-- /* There is still no video data available, so either there is audio data or
-+ /* There is still no video data available, so either there is audio data or
- * something else has happened (Eos, etc...). Return to the state machine
- * to process it
- */
-@@ -589,11 +657,17 @@ bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip,
-
- mDecoder->NotifyDecodedFrames(0, 1);
-
-+#if GST_VERSION_MAJOR >= 1
-+ GstSample *sample = gst_app_sink_pull_sample(mVideoAppSink);
-+ buffer = gst_buffer_ref(gst_sample_get_buffer(sample));
-+ gst_sample_unref(sample);
-+#else
- buffer = gst_app_sink_pull_buffer(mVideoAppSink);
-+#endif
- mVideoSinkBufferCount--;
- }
-
-- bool isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer, GST_BUFFER_FLAG_DISCONT);
-+ bool isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer, GST_BUFFER_FLAG_DELTA_UNIT);
- if ((aKeyFrameSkip && !isKeyframe)) {
- gst_buffer_unref(buffer);
- return true;
-@@ -611,10 +687,18 @@ bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip,
- "frame has invalid timestamp");
-
- timestamp = GST_TIME_AS_USECONDS(timestamp);
-+ int64_t duration;
-+ if (GST_CLOCK_TIME_IS_VALID(GST_BUFFER_DURATION(buffer)))
-+ duration = GST_TIME_AS_USECONDS(GST_BUFFER_DURATION(buffer));
-+ else if (fpsNum && fpsDen)
-+ /* add 1-frame duration */
-+ duration = gst_util_uint64_scale(GST_USECOND, fpsDen, fpsNum);
-+
- if (timestamp < aTimeThreshold) {
- LOG(PR_LOG_DEBUG, "skipping frame %" GST_TIME_FORMAT
- " threshold %" GST_TIME_FORMAT,
-- GST_TIME_ARGS(timestamp), GST_TIME_ARGS(aTimeThreshold));
-+ GST_TIME_ARGS(timestamp * 1000),
-+ GST_TIME_ARGS(aTimeThreshold * 1000));
- gst_buffer_unref(buffer);
- return true;
- }
-@@ -623,61 +707,36 @@ bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip,
- /* no more frames */
- return false;
-
-- int64_t duration = 0;
-- if (GST_CLOCK_TIME_IS_VALID(GST_BUFFER_DURATION(buffer)))
-- duration = GST_TIME_AS_USECONDS(GST_BUFFER_DURATION(buffer));
-- else if (fpsNum && fpsDen)
-- /* 1-frame duration */
-- duration = gst_util_uint64_scale(GST_USECOND, fpsNum, fpsDen);
--
-- nsRefPtr<PlanarYCbCrImage> image;
-- GstMozVideoBufferData* bufferdata = reinterpret_cast<GstMozVideoBufferData*>
-- GST_IS_MOZ_VIDEO_BUFFER(buffer)?gst_moz_video_buffer_get_data(GST_MOZ_VIDEO_BUFFER(buffer)):nullptr;
--
-- if(bufferdata)
-- image = bufferdata->mImage;
-+#if GST_VERSION_MAJOR >= 1
-+ if (mConfigureAlignment && buffer->pool) {
-+ GstStructure *config = gst_buffer_pool_get_config(buffer->pool);
-+ GstVideoAlignment align;
-+ if (gst_buffer_pool_config_get_video_alignment(config, &align))
-+ gst_video_info_align(&mVideoInfo, &align);
-+ gst_structure_free(config);
-+ mConfigureAlignment = false;
-+ }
-+#endif
-
-+ nsRefPtr<PlanarYCbCrImage> image = GetImageFromBuffer(buffer);
- if (!image) {
- /* Ugh, upstream is not calling gst_pad_alloc_buffer(). Fallback to
- * allocating a PlanarYCbCrImage backed GstBuffer here and memcpy.
- */
- GstBuffer* tmp = nullptr;
-- AllocateVideoBufferFull(nullptr, GST_BUFFER_OFFSET(buffer),
-- GST_BUFFER_SIZE(buffer), nullptr, &tmp, image);
--
-- /* copy */
-- gst_buffer_copy_metadata(tmp, buffer, (GstBufferCopyFlags)GST_BUFFER_COPY_ALL);
-- memcpy(GST_BUFFER_DATA(tmp), GST_BUFFER_DATA(buffer),
-- GST_BUFFER_SIZE(tmp));
-+ CopyIntoImageBuffer(buffer, &tmp, image);
- gst_buffer_unref(buffer);
- buffer = tmp;
- }
-
-- guint8* data = GST_BUFFER_DATA(buffer);
--
-- int width = mPicture.width;
-- int height = mPicture.height;
-- GstVideoFormat format = mFormat;
--
-- VideoData::YCbCrBuffer b;
-- for(int i = 0; i < 3; i++) {
-- b.mPlanes[i].mData = data + gst_video_format_get_component_offset(format, i,
-- width, height);
-- b.mPlanes[i].mStride = gst_video_format_get_row_stride(format, i, width);
-- b.mPlanes[i].mHeight = gst_video_format_get_component_height(format,
-- i, height);
-- b.mPlanes[i].mWidth = gst_video_format_get_component_width(format,
-- i, width);
-- b.mPlanes[i].mOffset = 0;
-- b.mPlanes[i].mSkip = 0;
-- }
--
-- isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer, GST_BUFFER_FLAG_DELTA_UNIT);
- int64_t offset = mDecoder->GetResource()->Tell(); // Estimate location in media.
-- VideoData* video = VideoData::Create(mInfo.mVideo, image, offset,
-- timestamp, duration, b,
-- isKeyframe, -1, mPicture);
-+ VideoData* video = VideoData::CreateFromImage(mInfo.mVideo,
-+ mDecoder->GetImageContainer(),
-+ offset, timestamp, duration,
-+ static_cast<Image*>(image.get()),
-+ isKeyframe, -1, mPicture);
- mVideoQueue.Push(video);
-+
- gst_buffer_unref(buffer);
-
- return true;
-@@ -698,6 +755,10 @@ nsresult GStreamerReader::Seek(int64_t aTarget,
- return NS_ERROR_FAILURE;
- }
- LOG(PR_LOG_DEBUG, "seek succeeded");
-+ GstMessage* message = gst_bus_timed_pop_filtered(mBus, GST_CLOCK_TIME_NONE,
-+ (GstMessageType)(GST_MESSAGE_ASYNC_DONE | GST_MESSAGE_ERROR));
-+ gst_message_unref(message);
-+ LOG(PR_LOG_DEBUG, "seek completed");
-
- return DecodeToTarget(aTarget);
- }
-@@ -709,7 +770,9 @@ nsresult GStreamerReader::GetBuffered(dom::TimeRanges* aBuffered,
- return NS_OK;
- }
-
-+#if GST_VERSION_MAJOR == 0
- GstFormat format = GST_FORMAT_TIME;
-+#endif
- MediaResource* resource = mDecoder->GetResource();
- nsTArray<MediaByteRange> ranges;
- resource->GetCachedRanges(ranges);
-@@ -731,12 +794,21 @@ nsresult GStreamerReader::GetBuffered(dom::TimeRanges* aBuffered,
- int64_t endOffset = ranges[index].mEnd;
- gint64 startTime, endTime;
-
-+#if GST_VERSION_MAJOR >= 1
-+ if (!gst_element_query_convert(GST_ELEMENT(mPlayBin), GST_FORMAT_BYTES,
-+ startOffset, GST_FORMAT_TIME, &startTime))
-+ continue;
-+ if (!gst_element_query_convert(GST_ELEMENT(mPlayBin), GST_FORMAT_BYTES,
-+ endOffset, GST_FORMAT_TIME, &endTime))
-+ continue;
-+#else
- if (!gst_element_query_convert(GST_ELEMENT(mPlayBin), GST_FORMAT_BYTES,
- startOffset, &format, &startTime) || format != GST_FORMAT_TIME)
- continue;
- if (!gst_element_query_convert(GST_ELEMENT(mPlayBin), GST_FORMAT_BYTES,
- endOffset, &format, &endTime) || format != GST_FORMAT_TIME)
- continue;
-+#endif
-
- double start = (double) GST_TIME_AS_USECONDS (startTime) / GST_MSECOND;
- double end = (double) GST_TIME_AS_USECONDS (endTime) / GST_MSECOND;
-@@ -755,7 +827,13 @@ void GStreamerReader::ReadAndPushData(guint aLength)
- nsresult rv = NS_OK;
-
- GstBuffer* buffer = gst_buffer_new_and_alloc(aLength);
-+#if GST_VERSION_MAJOR >= 1
-+ GstMapInfo info;
-+ gst_buffer_map(buffer, &info, GST_MAP_WRITE);
-+ guint8 *data = info.data;
-+#else
- guint8* data = GST_BUFFER_DATA(buffer);
-+#endif
- uint32_t size = 0, bytesRead = 0;
- while(bytesRead < aLength) {
- rv = resource->Read(reinterpret_cast<char*>(data + bytesRead),
-@@ -780,7 +860,12 @@ void GStreamerReader::ReadAndPushData(guint aLength)
- int64_t offset2 = resource->Tell();
- unused << offset2;
-
-+#if GST_VERSION_MAJOR >= 1
-+ gst_buffer_unmap(buffer, &info);
-+ gst_buffer_set_size(buffer, bytesRead);
-+#else
- GST_BUFFER_SIZE(buffer) = bytesRead;
-+#endif
-
- GstFlowReturn ret = gst_app_src_push_buffer(mSource, gst_buffer_ref(buffer));
- if (ret != GST_FLOW_OK) {
-@@ -786,8 +869,13 @@ int64_t GStreamerReader::QueryDuration()
- gint64 duration = 0;
- GstFormat format = GST_FORMAT_TIME;
-
-+#if GST_VERSION_MAJOR >= 1
-+ if (gst_element_query_duration(GST_ELEMENT(mPlayBin),
-+ format, &duration)) {
-+#else
- if (gst_element_query_duration(GST_ELEMENT(mPlayBin),
- &format, &duration)) {
-+#endif
- if (format == GST_FORMAT_TIME) {
- LOG(PR_LOG_DEBUG, "pipeline duration %" GST_TIME_FORMAT,
- GST_TIME_ARGS (duration));
-@@ -893,109 +984,6 @@ gboolean GStreamerReader::SeekData(GstAppSrc* aSrc, guint64 aOffset)
- return NS_SUCCEEDED(rv);
- }
-
--gboolean GStreamerReader::EventProbeCb(GstPad* aPad,
-- GstEvent* aEvent,
-- gpointer aUserData)
--{
-- GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(aUserData);
-- return reader->EventProbe(aPad, aEvent);
--}
--
--gboolean GStreamerReader::EventProbe(GstPad* aPad, GstEvent* aEvent)
--{
-- GstElement* parent = GST_ELEMENT(gst_pad_get_parent(aPad));
-- switch(GST_EVENT_TYPE(aEvent)) {
-- case GST_EVENT_NEWSEGMENT:
-- {
-- gboolean update;
-- gdouble rate;
-- GstFormat format;
-- gint64 start, stop, position;
-- GstSegment* segment;
--
-- /* Store the segments so we can convert timestamps to stream time, which
-- * is what the upper layers sync on.
-- */
-- ReentrantMonitorAutoEnter mon(mGstThreadsMonitor);
-- gst_event_parse_new_segment(aEvent, &update, &rate, &format,
-- &start, &stop, &position);
-- if (parent == GST_ELEMENT(mVideoAppSink))
-- segment = &mVideoSegment;
-- else
-- segment = &mAudioSegment;
-- gst_segment_set_newsegment(segment, update, rate, format,
-- start, stop, position);
-- break;
-- }
-- case GST_EVENT_FLUSH_STOP:
-- /* Reset on seeks */
-- ResetDecode();
-- break;
-- default:
-- break;
-- }
-- gst_object_unref(parent);
--
-- return TRUE;
--}
--
--GstFlowReturn GStreamerReader::AllocateVideoBufferFull(GstPad* aPad,
-- guint64 aOffset,
-- guint aSize,
-- GstCaps* aCaps,
-- GstBuffer** aBuf,
-- nsRefPtr<PlanarYCbCrImage>& aImage)
--{
-- /* allocate an image using the container */
-- ImageContainer* container = mDecoder->GetImageContainer();
-- if (!container) {
-- // We don't have an ImageContainer. We probably belong to an <audio>
-- // element.
-- return GST_FLOW_NOT_SUPPORTED;
-- }
-- PlanarYCbCrImage* img =
-- reinterpret_cast<PlanarYCbCrImage*>(
-- container->CreateImage(ImageFormat::PLANAR_YCBCR).get());
-- nsRefPtr<PlanarYCbCrImage> image = dont_AddRef(img);
--
-- /* prepare a GstBuffer pointing to the underlying PlanarYCbCrImage buffer */
-- GstBuffer* buf = GST_BUFFER(gst_moz_video_buffer_new());
-- GST_BUFFER_SIZE(buf) = aSize;
-- /* allocate the actual YUV buffer */
-- GST_BUFFER_DATA(buf) = image->AllocateAndGetNewBuffer(aSize);
--
-- aImage = image;
--
-- /* create a GstMozVideoBufferData to hold the image */
-- GstMozVideoBufferData* bufferdata = new GstMozVideoBufferData(image);
--
-- /* Attach bufferdata to our GstMozVideoBuffer, it will take care to free it */
-- gst_moz_video_buffer_set_data(GST_MOZ_VIDEO_BUFFER(buf), bufferdata);
--
-- *aBuf = buf;
-- return GST_FLOW_OK;
--}
--
--GstFlowReturn GStreamerReader::AllocateVideoBufferCb(GstPad* aPad,
-- guint64 aOffset,
-- guint aSize,
-- GstCaps* aCaps,
-- GstBuffer** aBuf)
--{
-- GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(gst_pad_get_element_private(aPad));
-- return reader->AllocateVideoBuffer(aPad, aOffset, aSize, aCaps, aBuf);
--}
--
--GstFlowReturn GStreamerReader::AllocateVideoBuffer(GstPad* aPad,
-- guint64 aOffset,
-- guint aSize,
-- GstCaps* aCaps,
-- GstBuffer** aBuf)
--{
-- nsRefPtr<PlanarYCbCrImage> image;
-- return AllocateVideoBufferFull(aPad, aOffset, aSize, aCaps, aBuf, image);
--}
--
- GstFlowReturn GStreamerReader::NewPrerollCb(GstAppSink* aSink,
- gpointer aUserData)
- {
-@@ -979,8 +970,12 @@ void GStreamerReader::AudioPreroll()
- {
- /* The first audio buffer has reached the audio sink. Get rate and channels */
- LOG(PR_LOG_DEBUG, "Audio preroll");
-- GstPad* sinkpad = gst_element_get_pad(GST_ELEMENT(mAudioAppSink), "sink");
-+ GstPad* sinkpad = gst_element_get_static_pad(GST_ELEMENT(mAudioAppSink), "sink");
-+#if GST_VERSION_MAJOR >= 1
-+ GstCaps *caps = gst_pad_get_current_caps(sinkpad);
-+#else
- GstCaps* caps = gst_pad_get_negotiated_caps(sinkpad);
-+#endif
- GstStructure* s = gst_caps_get_structure(caps, 0);
- mInfo.mAudio.mRate = mInfo.mAudio.mChannels = 0;
- gst_structure_get_int(s, "rate", (gint*) &mInfo.mAudio.mRate);
-@@ -998,9 +993,18 @@ void GStreamerReader::VideoPreroll()
- {
- /* The first video buffer has reached the video sink. Get width and height */
- LOG(PR_LOG_DEBUG, "Video preroll");
-- GstPad* sinkpad = gst_element_get_pad(GST_ELEMENT(mVideoAppSink), "sink");
-+ GstPad* sinkpad = gst_element_get_static_pad(GST_ELEMENT(mVideoAppSink), "sink");
-+#if GST_VERSION_MAJOR >= 1
-+ GstCaps* caps = gst_pad_get_current_caps(sinkpad);
-+ memset (&mVideoInfo, 0, sizeof (mVideoInfo));
-+ gst_video_info_from_caps(&mVideoInfo, caps);
-+ mFormat = mVideoInfo.finfo->format;
-+ mPicture.width = mVideoInfo.width;
-+ mPicture.height = mVideoInfo.height;
-+#else
- GstCaps* caps = gst_pad_get_negotiated_caps(sinkpad);
- gst_video_format_parse_caps(caps, &mFormat, &mPicture.width, &mPicture.height);
-+#endif
- GstStructure* structure = gst_caps_get_structure(caps, 0);
- gst_structure_get_fraction(structure, "framerate", &fpsNum, &fpsDen);
- NS_ASSERTION(mPicture.width && mPicture.height, "invalid video resolution");
-@@ -1029,6 +1033,7 @@ void GStreamerReader::NewVideoBuffer()
- /* We have a new video buffer queued in the video sink. Increment the counter
- * and notify the decode thread potentially blocked in DecodeVideoFrame
- */
-+
- mDecoder->NotifyDecodedFrames(1, 0);
- mVideoSinkBufferCount++;
- mon.NotifyAll();
-@@ -1095,5 +1100,199 @@ void GStreamerReader::NotifyDataArrived(const char *aBuffer,
- }
- }
-
-+#if GST_VERSION_MAJOR >= 1
-+GstCaps* GStreamerReader::BuildAudioSinkCaps()
-+{
-+ GstCaps* caps = gst_caps_from_string("audio/x-raw, channels={1,2}");
-+ const char* format;
-+#ifdef MOZ_SAMPLE_TYPE_FLOAT32
-+#ifdef IS_LITTLE_ENDIAN
-+ format = "F32LE";
-+#else
-+ format = "F32BE";
-+#endif
-+#else /* !MOZ_SAMPLE_TYPE_FLOAT32 */
-+#ifdef IS_LITTLE_ENDIAN
-+ format = "S16LE";
-+#else
-+ format = "S16BE";
-+#endif
-+#endif
-+ gst_caps_set_simple(caps, "format", G_TYPE_STRING, format, nullptr);
-+
-+ return caps;
-+}
-+
-+void GStreamerReader::InstallPadCallbacks()
-+{
-+ GstPad* sinkpad = gst_element_get_static_pad(GST_ELEMENT(mVideoAppSink), "sink");
-+
-+ gst_pad_add_probe(sinkpad,
-+ (GstPadProbeType) (GST_PAD_PROBE_TYPE_SCHEDULING |
-+ GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM |
-+ GST_PAD_PROBE_TYPE_EVENT_UPSTREAM |
-+ GST_PAD_PROBE_TYPE_EVENT_FLUSH),
-+ &GStreamerReader::EventProbeCb, this, nullptr);
-+ gst_pad_add_probe(sinkpad, GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM,
-+ GStreamerReader::QueryProbeCb, nullptr, nullptr);
-+
-+ gst_pad_set_element_private(sinkpad, this);
-+ gst_object_unref(sinkpad);
-+
-+ sinkpad = gst_element_get_static_pad(GST_ELEMENT(mAudioAppSink), "sink");
-+ gst_pad_add_probe(sinkpad,
-+ (GstPadProbeType) (GST_PAD_PROBE_TYPE_SCHEDULING |
-+ GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM |
-+ GST_PAD_PROBE_TYPE_EVENT_UPSTREAM |
-+ GST_PAD_PROBE_TYPE_EVENT_FLUSH),
-+ &GStreamerReader::EventProbeCb, this, nullptr);
-+ gst_object_unref(sinkpad);
-+}
-+
-+GstPadProbeReturn GStreamerReader::EventProbeCb(GstPad *aPad,
-+ GstPadProbeInfo *aInfo,
-+ gpointer aUserData)
-+{
-+ GStreamerReader *reader = (GStreamerReader *) aUserData;
-+ GstEvent *aEvent = (GstEvent *)aInfo->data;
-+ return reader->EventProbe(aPad, aEvent);
-+}
-+
-+GstPadProbeReturn GStreamerReader::EventProbe(GstPad *aPad, GstEvent *aEvent)
-+{
-+ GstElement* parent = GST_ELEMENT(gst_pad_get_parent(aPad));
-+
-+ LOG(PR_LOG_DEBUG, "event probe %s", GST_EVENT_TYPE_NAME (aEvent));
-+
-+ switch(GST_EVENT_TYPE(aEvent)) {
-+ case GST_EVENT_SEGMENT:
-+ {
-+ const GstSegment *newSegment;
-+ GstSegment* segment;
-+
-+ /* Store the segments so we can convert timestamps to stream time, which
-+ * is what the upper layers sync on.
-+ */
-+ ReentrantMonitorAutoEnter mon(mGstThreadsMonitor);
-+#if GST_VERSION_MINOR <= 1 && GST_VERSION_MICRO < 1
-+ ResetDecode();
-+#endif
-+ gst_event_parse_segment(aEvent, &newSegment);
-+ if (parent == GST_ELEMENT(mVideoAppSink))
-+ segment = &mVideoSegment;
-+ else
-+ segment = &mAudioSegment;
-+ gst_segment_copy_into (newSegment, segment);
-+ break;
-+ }
-+ case GST_EVENT_FLUSH_STOP:
-+ /* Reset on seeks */
-+ ResetDecode();
-+ break;
-+ default:
-+ break;
-+ }
-+ gst_object_unref(parent);
-+
-+ return GST_PAD_PROBE_OK;
-+}
-+
-+GstPadProbeReturn GStreamerReader::QueryProbeCb(GstPad* aPad, GstPadProbeInfo* aInfo, gpointer aUserData)
-+{
-+ GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(gst_pad_get_element_private(aPad));
-+ return reader->QueryProbe(aPad, aInfo, aUserData);
-+}
-+
-+GstPadProbeReturn GStreamerReader::QueryProbe(GstPad* aPad, GstPadProbeInfo* aInfo, gpointer aUserData)
-+{
-+ GstQuery *query = gst_pad_probe_info_get_query(aInfo);
-+ GstPadProbeReturn ret = GST_PAD_PROBE_OK;
-+
-+ switch (GST_QUERY_TYPE (query)) {
-+ case GST_QUERY_ALLOCATION:
-+ GstCaps *caps;
-+ GstVideoInfo info;
-+ gboolean need_pool;
-+
-+ gst_query_parse_allocation(query, &caps, &need_pool);
-+ gst_video_info_init(&info);
-+ gst_video_info_from_caps(&info, caps);
-+ gst_query_add_allocation_param(query, mAllocator, nullptr);
-+ gst_query_add_allocation_pool(query, mBufferPool, info.size, 0, 0);
-+ gst_query_add_allocation_meta(query, GST_VIDEO_META_API_TYPE, nullptr);
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ return ret;
-+}
-+
-+void GStreamerReader::ImageDataFromVideoFrame(GstVideoFrame *aFrame,
-+ PlanarYCbCrImage::Data *aData)
-+{
-+ NS_ASSERTION(GST_VIDEO_INFO_IS_YUV(&mVideoInfo),
-+ "Non-YUV video frame formats not supported");
-+ NS_ASSERTION(GST_VIDEO_FRAME_N_COMPONENTS(aFrame) == 3,
-+ "Unsupported number of components in video frame");
-+
-+ aData->mPicX = aData->mPicY = 0;
-+ aData->mPicSize = gfx::IntSize(mPicture.width, mPicture.height);
-+ aData->mStereoMode = StereoMode::MONO;
-+
-+ aData->mYChannel = GST_VIDEO_FRAME_COMP_DATA(aFrame, 0);
-+ aData->mYStride = GST_VIDEO_FRAME_COMP_STRIDE(aFrame, 0);
-+ aData->mYSize = gfx::IntSize(GST_VIDEO_FRAME_COMP_WIDTH(aFrame, 0),
-+ GST_VIDEO_FRAME_COMP_HEIGHT(aFrame, 0));
-+ aData->mYSkip = GST_VIDEO_FRAME_COMP_PSTRIDE(aFrame, 0) - 1;
-+ aData->mCbCrStride = GST_VIDEO_FRAME_COMP_STRIDE(aFrame, 1);
-+ aData->mCbCrSize = gfx::IntSize(GST_VIDEO_FRAME_COMP_WIDTH(aFrame, 1),
-+ GST_VIDEO_FRAME_COMP_HEIGHT(aFrame, 1));
-+ aData->mCbChannel = GST_VIDEO_FRAME_COMP_DATA(aFrame, 1);
-+ aData->mCrChannel = GST_VIDEO_FRAME_COMP_DATA(aFrame, 2);
-+ aData->mCbSkip = GST_VIDEO_FRAME_COMP_PSTRIDE(aFrame, 1) - 1;
-+ aData->mCrSkip = GST_VIDEO_FRAME_COMP_PSTRIDE(aFrame, 2) - 1;
-+}
-+
-+nsRefPtr<PlanarYCbCrImage> GStreamerReader::GetImageFromBuffer(GstBuffer* aBuffer)
-+{
-+ nsRefPtr<PlanarYCbCrImage> image = nullptr;
-+
-+ if (gst_buffer_n_memory(aBuffer) == 1) {
-+ GstMemory* mem = gst_buffer_peek_memory(aBuffer, 0);
-+ if (GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(mem->allocator)) {
-+ image = moz_gfx_memory_get_image(mem);
-+
-+ GstVideoFrame frame;
-+ gst_video_frame_map(&frame, &mVideoInfo, aBuffer, GST_MAP_READ);
-+ PlanarYCbCrImage::Data data;
-+ ImageDataFromVideoFrame(&frame, &data);
-+ image->SetDataNoCopy(data);
-+ gst_video_frame_unmap(&frame);
-+ }
-+ }
-+
-+ return image;
-+}
-+
-+void GStreamerReader::CopyIntoImageBuffer(GstBuffer* aBuffer,
-+ GstBuffer** aOutBuffer,
-+ nsRefPtr<PlanarYCbCrImage> &image)
-+{
-+ *aOutBuffer = gst_buffer_new_allocate(mAllocator, gst_buffer_get_size(aBuffer), nullptr);
-+ GstMemory *mem = gst_buffer_peek_memory(*aOutBuffer, 0);
-+ GstMapInfo map_info;
-+ gst_memory_map(mem, &map_info, GST_MAP_WRITE);
-+ gst_buffer_extract(aBuffer, 0, map_info.data, gst_buffer_get_size(aBuffer));
-+ gst_memory_unmap(mem, &map_info);
-+
-+ /* create a new gst buffer with the newly created memory and copy the
-+ * metadata over from the incoming buffer */
-+ gst_buffer_copy_into(*aOutBuffer, aBuffer,
-+ (GstBufferCopyFlags)(GST_BUFFER_COPY_METADATA), 0, -1);
-+ image = GetImageFromBuffer(*aOutBuffer);
-+}
-+#endif
-+
- } // namespace mozilla
-
-diff --git content/media/gstreamer/GStreamerReader.h content/media/gstreamer/GStreamerReader.h
-index 1e30bed..6a90702 100644
---- mozilla/content/media/gstreamer/GStreamerReader.h
-+++ mozilla/content/media/gstreamer/GStreamerReader.h
-@@ -22,6 +22,7 @@
-
- #include "MediaDecoderReader.h"
- #include "MP3FrameParser.h"
-+#include "ImageContainer.h"
- #include "nsRect.h"
-
- namespace mozilla {
-@@ -30,10 +31,6 @@ namespace dom {
- class TimeRanges;
- }
-
--namespace layers {
--class PlanarYCbCrImage;
--}
--
- class AbstractMediaDecoder;
-
- class GStreamerReader : public MediaDecoderReader
-@@ -67,10 +64,20 @@ public:
- return mInfo.HasVideo();
- }
-
-+ layers::ImageContainer* GetImageContainer() { return mDecoder->GetImageContainer(); }
-+
- private:
-
- void ReadAndPushData(guint aLength);
- int64_t QueryDuration();
-+ nsRefPtr<layers::PlanarYCbCrImage> GetImageFromBuffer(GstBuffer* aBuffer);
-+ void CopyIntoImageBuffer(GstBuffer *aBuffer, GstBuffer** aOutBuffer, nsRefPtr<layers::PlanarYCbCrImage> &image);
-+ GstCaps* BuildAudioSinkCaps();
-+ void InstallPadCallbacks();
-+
-+#if GST_VERSION_MAJOR >= 1
-+ void ImageDataFromVideoFrame(GstVideoFrame *aFrame, layers::PlanarYCbCrImage::Data *aData);
-+#endif
-
- /* Called once the pipeline is setup to check that the stream only contains
- * supported formats
-@@ -105,20 +112,31 @@ private:
- gboolean SeekData(GstAppSrc* aSrc, guint64 aOffset);
-
- /* Called when events reach the sinks. See inline comments */
-+#if GST_VERSION_MAJOR == 1
-+ static GstPadProbeReturn EventProbeCb(GstPad *aPad, GstPadProbeInfo *aInfo, gpointer aUserData);
-+ GstPadProbeReturn EventProbe(GstPad *aPad, GstEvent *aEvent);
-+#else
- static gboolean EventProbeCb(GstPad* aPad, GstEvent* aEvent, gpointer aUserData);
- gboolean EventProbe(GstPad* aPad, GstEvent* aEvent);
-+#endif
-
-- /* Called when elements in the video branch of the pipeline call
-- * gst_pad_alloc_buffer(). Used to provide PlanarYCbCrImage backed GstBuffers
-- * to the pipeline so that a memory copy can be avoided when handling YUV
-- * buffers from the pipeline to the gfx side.
-+ /* Called when the video part of the pipeline allocates buffers. Used to
-+ * provide PlanarYCbCrImage backed GstBuffers to the pipeline so that a memory
-+ * copy can be avoided when handling YUV buffers from the pipeline to the gfx
-+ * side.
- */
-+#if GST_VERSION_MAJOR == 1
-+ static GstPadProbeReturn QueryProbeCb(GstPad *aPad, GstPadProbeInfo *aInfo, gpointer aUserData);
-+ GstPadProbeReturn QueryProbe(GstPad *aPad, GstPadProbeInfo *aInfo, gpointer aUserData);
-+#else
- static GstFlowReturn AllocateVideoBufferCb(GstPad* aPad, guint64 aOffset, guint aSize,
- GstCaps* aCaps, GstBuffer** aBuf);
- GstFlowReturn AllocateVideoBufferFull(GstPad* aPad, guint64 aOffset, guint aSize,
- GstCaps* aCaps, GstBuffer** aBuf, nsRefPtr<layers::PlanarYCbCrImage>& aImage);
- GstFlowReturn AllocateVideoBuffer(GstPad* aPad, guint64 aOffset, guint aSize,
- GstCaps* aCaps, GstBuffer** aBuf);
-+#endif
-+
-
- /* Called when the pipeline is prerolled, that is when at start or after a
- * seek, the first audio and video buffers are queued in the sinks.
-@@ -150,6 +168,11 @@ private:
- bool mUseParserDuration;
- int64_t mLastParserDuration;
-
-+#if GST_VERSION_MAJOR >= 1
-+ GstAllocator *mAllocator;
-+ GstBufferPool *mBufferPool;
-+ GstVideoInfo mVideoInfo;
-+#endif
- GstElement* mPlayBin;
- GstBus* mBus;
- GstAppSrc* mSource;
-@@ -180,6 +203,9 @@ private:
- * DecodeAudioData and DecodeVideoFrame should not expect any more data
- */
- bool mReachedEos;
-+#if GST_VERSION_MAJOR >= 1
-+ bool mConfigureAlignment;
-+#endif
- int fpsNum;
- int fpsDen;
- };
-diff --git content/media/gstreamer/moz.build content/media/gstreamer/moz.build
-index 7d51bf5..a3c1856 100644
---- mozilla/content/media/gstreamer/moz.build
-+++ mozilla/content/media/gstreamer/moz.build
-@@ -15,10 +15,19 @@ SOURCES += [
- 'GStreamerDecoder.cpp',
- 'GStreamerFormatHelper.cpp',
- 'GStreamerLoader.cpp',
-- 'GStreamerMozVideoBuffer.cpp',
- 'GStreamerReader.cpp',
- ]
-
-+if CONFIG['GST_API_VERSION'] == '1.0':
-+ SOURCES += [
-+ 'GStreamerAllocator.cpp',
-+ ]
-+else:
-+ SOURCES += [
-+ 'GStreamerMozVideoBuffer.cpp',
-+ 'GStreamerReader-0.10.cpp',
-+ ]
-+
- FAIL_ON_WARNINGS = True
-
- FINAL_LIBRARY = 'gklayout'
-diff --git content/media/test/manifest.js content/media/test/manifest.js
-index 6e39753..3c8c3b9 100644
---- mozilla/content/media/test/manifest.js
-+++ mozilla/content/media/test/manifest.js
-@@ -357,9 +357,9 @@ var gUnseekableTests = [
- { name:"bogus.duh", type:"bogus/duh"}
- ];
- // Unfortunately big-buck-bunny-unseekable.mp4 is doesn't play on Windows 7, so
--// only include it in the unseekable tests if we're on later versions of Windows.
--if (navigator.userAgent.indexOf("Windows") == -1 ||
-- IsWindows8OrLater()) {
-+// only include it in the unseekable tests if we're on later versions of Windows.
-+// This test actually only passes on win8 at the moment.
-+if (navigator.userAgent.indexOf("Windows") != -1 && IsWindows8OrLater()) {
- gUnseekableTests = gUnseekableTests.concat([
- { name:"big-buck-bunny-unseekable.mp4", type:"video/mp4" }
- ]);
diff --git a/www/seamonkey/files/patch-bug826985 b/www/seamonkey/files/patch-bug826985
index ad74e0ef63a4..9d34ae0eafb2 100644
--- a/www/seamonkey/files/patch-bug826985
+++ b/www/seamonkey/files/patch-bug826985
@@ -132,10 +132,10 @@ index d46b5aa..e452223 100644
'targets': [
{
'target_name': 'video_capture_module',
-@@ -49,6 +52,16 @@
- }, { # include_internal_video_capture == 1
- 'conditions': [
- ['include_v4l2_video_capture==1', {
+@@ -46,6 +49,16 @@
+ 'linux/video_capture_linux.cc',
+ 'linux/video_capture_linux.h',
+ ],
+ 'conditions': [
+ ['use_libv4l2==1', {
+ 'defines': [
@@ -146,13 +146,13 @@ index d46b5aa..e452223 100644
+ ],
+ }],
+ ],
- 'include_dirs': [
- 'linux',
- ],
+ }], # linux
+ ['OS=="mac"', {
+ 'sources': [
diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
index 9c16ffa..1db3794 100644
---- mozilla/toolkit/library/Makefile.in
-+++ mozilla/toolkit/library/Makefile.in
+--- mozilla/toolkit/library/libxul.mk
++++ mozilla/toolkit/library/libxul.mk
@@ -182,6 +182,10 @@ endif
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib)
diff --git a/www/seamonkey/files/patch-bug847568 b/www/seamonkey/files/patch-bug847568
index 279d854dabb9..2eb54438a5b6 100644
--- a/www/seamonkey/files/patch-bug847568
+++ b/www/seamonkey/files/patch-bug847568
@@ -86,21 +86,20 @@ index ac38f40..87536b7 100644
dnl Check for pixman and cairo
dnl ========================================================
-diff --git content/base/src/Makefile.in content/base/src/Makefile.in
-index a618096..596901a 100644
---- mozilla/content/base/src/Makefile.in
-+++ mozilla/content/base/src/Makefile.in
-@@ -5,6 +5,10 @@
-
- include $(topsrcdir)/config/rules.mk
+diff --git content/base/src/moz.build content/base/src/moz.build
+index d4f6380..0ee55df 100644
+--- mozilla/content/base/src/moz.build
++++ mozilla/content/base/src/moz.build
+@@ -179,6 +179,9 @@ SOURCES += [
+ 'nsObjectLoadingContent.cpp',
+ ]
-+ifdef MOZ_NATIVE_HARFBUZZ
-+nsContentUtils.$(OBJ_SUFFIX): CXXFLAGS+=$(MOZ_HARFBUZZ_CFLAGS)
-+endif
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++ SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']]
+
- # gcc requires -msse2 for this file since it uses SSE2 intrinsics. (See bug
- # 585538 comment 12.)
- ifneq (,$(INTEL_ARCHITECTURE))
+ EXTRA_COMPONENTS += [
+ 'contentAreaDropListener.js',
+ 'contentAreaDropListener.manifest',
diff --git gfx/moz.build gfx/moz.build
index 519aa46..6929751 100644
--- mozilla/gfx/moz.build
@@ -188,10 +187,10 @@ index 1cacbd7..f5d72bb 100644
# Generate the include file containing compact, static definitions
# for effective TLD data.
etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat
-diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
+diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
index 67f0db9..d42137a 100644
---- mozilla/toolkit/library/Makefile.in
-+++ mozilla/toolkit/library/Makefile.in
+--- mozilla/toolkit/library/libxul.mk
++++ mozilla/toolkit/library/libxul.mk
@@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN
EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS)
endif
diff --git a/www/seamonkey/files/patch-bug893397 b/www/seamonkey/files/patch-bug893397
deleted file mode 100644
index 989430c379d0..000000000000
--- a/www/seamonkey/files/patch-bug893397
+++ /dev/null
@@ -1,201 +0,0 @@
-diff --git configure.in configure.in
-index 549ad06..2878d9f 100644
---- mozilla/configure.in
-+++ mozilla/configure.in
-@@ -8091,7 +8091,7 @@ case "$OS_TARGET" in
- NECKO_WIFI=1
- fi
- ;;
-- Darwin|SunOS|WINNT)
-+ Darwin|FreeBSD|SunOS|WINNT)
- NECKO_WIFI=1
- ;;
- Linux)
-diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build
-index 07b01de..11706af 100644
---- mozilla/netwerk/wifi/moz.build
-+++ mozilla/netwerk/wifi/moz.build
-@@ -35,6 +35,10 @@ if CONFIG['OS_ARCH'] == 'Darwin':
- UNIFIED_SOURCES += [
- 'osx_corewlan.mm',
- ]
-+elif CONFIG['OS_ARCH'] == 'FreeBSD':
-+ UNIFIED_SOURCES += [
-+ 'nsWifiScannerFreeBSD.cpp',
-+ ]
- elif CONFIG['OS_ARCH'] == 'WINNT':
- UNIFIED_SOURCES += [
- 'nsWifiScannerWin.cpp',
-diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp
-new file mode 100644
-index 0000000..80d4cb6
---- /dev/null
-+++ mozilla/netwerk/wifi/nsWifiScannerFreeBSD.cpp
-@@ -0,0 +1,167 @@
-+/* 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/. */
-+
-+// Developed by J.R. Oldroyd <fbsd@opal.com>, December 2012.
-+
-+// For FreeBSD we use the getifaddrs(3) to obtain the list of interfaces
-+// and then check for those with an 802.11 media type and able to return
-+// a list of stations. This is similar to ifconfig(8).
-+
-+#include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/socket.h>
-+#include <net/if.h>
-+#include <net/if_media.h>
-+#include <net80211/ieee80211_ioctl.h>
-+
-+#include <ifaddrs.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+#include "nsWifiAccessPoint.h"
-+
-+using namespace mozilla;
-+
-+static nsresult
-+FreeBSDGetAccessPointData(nsCOMArray<nsWifiAccessPoint> &accessPoints)
-+{
-+ // get list of interfaces
-+ struct ifaddrs *ifal;
-+ if (getifaddrs(&ifal) < 0) {
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ accessPoints.Clear();
-+
-+ // loop through the interfaces
-+ nsresult rv = NS_ERROR_FAILURE;
-+ struct ifaddrs *ifa;
-+ for (ifa = ifal; ifa; ifa = ifa->ifa_next) {
-+ // limit to one interface per address
-+ if (ifa->ifa_addr->sa_family != AF_LINK) {
-+ continue;
-+ }
-+
-+ // store interface name in socket structure
-+ struct ifreq ifr;
-+ memset(&ifr, 0, sizeof(ifr));
-+ strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name));
-+ ifr.ifr_addr.sa_family = AF_LOCAL;
-+
-+ // open socket to interface
-+ int s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0);
-+ if (s < 0) {
-+ continue;
-+ }
-+
-+ // clear interface media structure
-+ struct ifmediareq ifmr;
-+ memset(&ifmr, 0, sizeof(ifmr));
-+ strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name));
-+
-+ // get interface media information
-+ if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // check interface is a WiFi interface
-+ if (IFM_TYPE(ifmr.ifm_active) != IFM_IEEE80211) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // perform WiFi scan
-+ struct ieee80211req i802r;
-+ char iscanbuf[32*1024];
-+ memset(&i802r, 0, sizeof(i802r));
-+ strncpy(i802r.i_name, ifa->ifa_name, sizeof(i802r.i_name));
-+ i802r.i_type = IEEE80211_IOC_SCAN_RESULTS;
-+ i802r.i_data = iscanbuf;
-+ i802r.i_len = sizeof(iscanbuf);
-+ if (ioctl(s, SIOCG80211, &i802r) < 0) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // close socket
-+ close(s);
-+
-+ // loop through WiFi networks and build geoloc-lookup structure
-+ char *vsr = (char *) i802r.i_data;
-+ unsigned len = i802r.i_len;
-+ while (len >= sizeof(struct ieee80211req_scan_result)) {
-+ struct ieee80211req_scan_result *isr =
-+ (struct ieee80211req_scan_result *) vsr;
-+
-+ // determine size of this entry
-+ char *id;
-+ int idlen;
-+ if (isr->isr_meshid_len) {
-+ id = vsr + isr->isr_ie_off + isr->isr_ssid_len;
-+ idlen = isr->isr_meshid_len;
-+ } else {
-+ id = vsr + isr->isr_ie_off;
-+ idlen = isr->isr_ssid_len;
-+ }
-+
-+ // copy network data
-+ char ssid[IEEE80211_NWID_LEN+1];
-+ strncpy(ssid, id, idlen);
-+ ssid[idlen] = '\0';
-+ nsWifiAccessPoint *ap = new nsWifiAccessPoint();
-+ ap->setSSID(ssid, strlen(ssid));
-+ ap->setMac(isr->isr_bssid);
-+ ap->setSignal(isr->isr_rssi);
-+ accessPoints.AppendObject(ap);
-+ rv = NS_OK;
-+
-+ // log the data
-+ LOG(( "FreeBSD access point: "
-+ "SSID: %s, MAC: %02x-%02x-%02x-%02x-%02x-%02x, "
-+ "Strength: %d, Channel: %dMHz\n",
-+ ssid, isr->isr_bssid[0], isr->isr_bssid[1], isr->isr_bssid[2],
-+ isr->isr_bssid[3], isr->isr_bssid[4], isr->isr_bssid[5],
-+ isr->isr_rssi, isr->isr_freq));
-+
-+ // increment pointers
-+ len -= isr->isr_len;
-+ vsr += isr->isr_len;
-+ }
-+ }
-+
-+ freeifaddrs(ifal);
-+
-+ return rv;
-+}
-+
-+nsresult
-+nsWifiMonitor::DoScan()
-+{
-+ // Regularly get the access point data.
-+
-+ nsCOMArray<nsWifiAccessPoint> lastAccessPoints;
-+ nsCOMArray<nsWifiAccessPoint> accessPoints;
-+
-+ do {
-+ nsresult rv = FreeBSDGetAccessPointData(accessPoints);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ bool accessPointsChanged = !AccessPointsEqual(accessPoints, lastAccessPoints);
-+ ReplaceArray(lastAccessPoints, accessPoints);
-+
-+ rv = CallWifiListeners(lastAccessPoints, accessPointsChanged);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ // wait for some reasonable amount of time. pref?
-+ LOG(("waiting on monitor\n"));
-+
-+ ReentrantMonitorAutoEnter mon(mReentrantMonitor);
-+ mon.Wait(PR_SecondsToInterval(60));
-+ }
-+ while (mKeepGoing);
-+
-+ return NS_OK;
-+}
diff --git a/www/seamonkey/files/patch-bug916589 b/www/seamonkey/files/patch-bug916589
deleted file mode 100644
index 3c24bf7ef332..000000000000
--- a/www/seamonkey/files/patch-bug916589
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-index 5b50785..7cf47d5 100644
---- mozilla/media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-+++ mozilla/media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-@@ -33,9 +33,10 @@
- #ifndef _SYS_QUEUE_H_
- #define _SYS_QUEUE_H_
-
--#if !defined(__FreeBSD__) && !defined(DARWIN)
- #include <stddef.h>
--#define __offsetof offsetof
-+
-+#ifndef offsetof
-+#define offsetof(type, field) ((size_t)(&((type *)0)->field))
- #endif
-
- #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
-@@ -43,8 +44,6 @@
- (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
- (var) = (tvar))
-
--// #define __offsetof(type, field) ((size_t)(&((type *)0)->field))
--
- /*
- * This file defines four types of data structures: singly-linked lists,
- * singly-linked tail queues, lists and tail queues.
-@@ -285,7 +284,7 @@ struct { \
- (STAILQ_EMPTY((head)) ? \
- NULL : \
- ((struct type *) \
-- ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
-+ ((char *)((head)->stqh_last) - offsetof(struct type, field))))
-
- #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
-
diff --git a/www/seamonkey/files/patch-bug961264 b/www/seamonkey/files/patch-bug961264
deleted file mode 100644
index 1a4cd035ab7f..000000000000
--- a/www/seamonkey/files/patch-bug961264
+++ /dev/null
@@ -1,266 +0,0 @@
-commit d099acd
-Author: Trevor Saunders <trev.saunders@gmail.com>
-Date: Fri Jan 17 15:08:00 2014 -0800
-
- Bug 961264 - Remove obsolete checks for gcc visibility stuff.
----
- configure.in | 115 +++-------------------------------------------------
- js/src/configure.in | 111 ++------------------------------------------------
- 2 files changed, 8 insertions(+), 218 deletions(-)
-
-diff --git configure.in configure.in
-index dfb8193..33d71b3 100644
---- mozilla/configure.in
-+++ mozilla/configure.in
-@@ -2507,118 +2507,15 @@ MOZ_CXX11
-
- AC_LANG_C
-
--dnl Check for .hidden assembler directive and visibility attribute.
--dnl Borrowed from glibc configure.in
-+dnl Setup default hidden visibility and wrapped system headers.
- dnl ===============================================================
- if test "$GNU_CC"; then
-- AC_CACHE_CHECK(for visibility(hidden) attribute,
-- ac_cv_visibility_hidden,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("hidden"))) = 1;
--EOF
-- ac_cv_visibility_hidden=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_hidden=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_hidden" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility(default) attribute,
-- ac_cv_visibility_default,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("default"))) = 1;
--EOF
-- ac_cv_visibility_default=no
-- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_default=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_default" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility pragma support,
-- ac_cv_visibility_pragma,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
-- int foo_hidden = 1;
--#pragma GCC visibility push(default)
-- int foo_default = 1;
--EOF
-- ac_cv_visibility_pragma=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
-- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
-- ac_cv_visibility_pragma=yes
-- fi
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_pragma" = "yes"; then
-- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
-- ac_cv_have_visibility_class_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--struct __attribute__ ((visibility ("default"))) TestStruct {
-- static void Init();
--};
--__attribute__ ((visibility ("default"))) void TestFunc() {
-- TestStruct::Init();
--}
--EOF
-- ac_cv_have_visibility_class_bug=no
-- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_class_bug=yes
-- else
-- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
-- ac_cv_have_visibility_class_bug=yes
-- fi
-- fi
-- rm -rf conftest.{c,S}
-- ])
--
-- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
-- ac_cv_have_visibility_builtin_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--#pragma GCC visibility push(default)
--#include <string.h>
--#pragma GCC visibility pop
--
--__attribute__ ((visibility ("default"))) void Func() {
-- char c[[100]];
-- memset(c, 0, sizeof(c));
--}
--EOF
-- ac_cv_have_visibility_builtin_bug=no
-- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_builtin_bug=yes
-- else
-- if test `grep -c "@PLT" conftest.S` = 0; then
-- ac_cv_visibility_builtin_bug=yes
-- fi
-- fi
-- rm -f conftest.{c,S}
-- ])
-- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
-- "$ac_cv_have_visibility_class_bug" = "no"; then
-- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-- WRAP_SYSTEM_INCLUDES=1
-- STL_FLAGS='-I$(DIST)/stl_wrappers'
-- WRAP_STL_INCLUDES=1
-- else
-- VISIBILITY_FLAGS='-fvisibility=hidden'
-- fi # have visibility pragma bug
-- fi # have visibility pragma
-- fi # have visibility(default) attribute
-- fi # have visibility(hidden) attribute
-+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
-+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
-+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-+ WRAP_SYSTEM_INCLUDES=1
-+ STL_FLAGS='-I$(DIST)/stl_wrappers'
-+ WRAP_STL_INCLUDES=1
- fi # GNU_CC
-
- # visibility hidden flag for Sun Studio on Solaris
-diff --git js/src/configure.in js/src/configure.in
-index bddd46d..d4b522e 100644
---- mozilla/js/src/configure.in
-+++ mozilla/js/src/configure.in
-@@ -2077,116 +2077,13 @@ AC_LANG_CPLUSPLUS
-
- MOZ_CXX11
-
--dnl Check for .hidden assembler directive and visibility attribute.
--dnl Borrowed from glibc configure.in
-+dnl Setup default hidden visibility and wrapped system headers.
- dnl ===============================================================
- if test "$GNU_CC"; then
-- AC_CACHE_CHECK(for visibility(hidden) attribute,
-- ac_cv_visibility_hidden,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("hidden"))) = 1;
--EOF
-- ac_cv_visibility_hidden=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_hidden=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_hidden" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility(default) attribute,
-- ac_cv_visibility_default,
-- [cat > conftest.c <<EOF
-- int foo __attribute__ ((visibility ("default"))) = 1;
--EOF
-- ac_cv_visibility_default=no
-- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
-- ac_cv_visibility_default=yes
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_default" = "yes"; then
-- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
--
-- AC_CACHE_CHECK(for visibility pragma support,
-- ac_cv_visibility_pragma,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
-- int foo_hidden = 1;
--#pragma GCC visibility push(default)
-- int foo_default = 1;
--EOF
-- ac_cv_visibility_pragma=no
-- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
-- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
-- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
-- ac_cv_visibility_pragma=yes
-- fi
-- fi
-- fi
-- rm -f conftest.[cs]
-- ])
-- if test "$ac_cv_visibility_pragma" = "yes"; then
-- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
-- ac_cv_have_visibility_class_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--struct __attribute__ ((visibility ("default"))) TestStruct {
-- static void Init();
--};
--__attribute__ ((visibility ("default"))) void TestFunc() {
-- TestStruct::Init();
--}
--EOF
-- ac_cv_have_visibility_class_bug=no
-- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_class_bug=yes
-- else
-- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
-- ac_cv_have_visibility_class_bug=yes
-- fi
-- fi
-- rm -rf conftest.{c,S}
-- ])
--
-- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
-- ac_cv_have_visibility_builtin_bug,
-- [cat > conftest.c <<EOF
--#pragma GCC visibility push(hidden)
--#pragma GCC visibility push(default)
--#include <string.h>
--#pragma GCC visibility pop
--
--__attribute__ ((visibility ("default"))) void Func() {
-- char c[[100]];
-- memset(c, 0, sizeof(c));
--}
--EOF
-- ac_cv_have_visibility_builtin_bug=no
-- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
-- ac_cv_have_visibility_builtin_bug=yes
-- else
-- if test `grep -c "@PLT" conftest.S` = 0; then
-- ac_cv_visibility_builtin_bug=yes
-- fi
-- fi
-- rm -f conftest.{c,S}
-- ])
-- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
-- "$ac_cv_have_visibility_class_bug" = "no"; then
-- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-- WRAP_SYSTEM_INCLUDES=1
-- else
-- VISIBILITY_FLAGS='-fvisibility=hidden'
-- fi # have visibility pragma bug
-- fi # have visibility pragma
-- fi # have visibility(default) attribute
-- fi # have visibility(hidden) attribute
-+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
-+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
-+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
-+ WRAP_SYSTEM_INCLUDES=1
- fi # GNU_CC
-
- # visibility hidden flag for Sun Studio on Solaris
diff --git a/www/seamonkey/files/patch-bug962345 b/www/seamonkey/files/patch-bug962345
deleted file mode 100644
index d59fb9528285..000000000000
--- a/www/seamonkey/files/patch-bug962345
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git config/system-headers config/system-headers
-index 8803150..ae38d68 100644
---- mozilla/config/system-headers
-+++ mozilla/config/system-headers
-@@ -1144,3 +1144,4 @@ unicode/utypes.h
- #endif
- libutil.h
- unwind.h
-+cairo-qt.h
diff --git a/www/seamonkey/files/patch-bug973744 b/www/seamonkey/files/patch-bug973744
deleted file mode 100644
index d1acf2a3ffb0..000000000000
--- a/www/seamonkey/files/patch-bug973744
+++ /dev/null
@@ -1,38 +0,0 @@
-commit 2506904
-Author: Alessandro Decina <alessandro.d@gmail.com>
-Date: Wed Feb 19 11:30:09 2014 -0500
-
- Bug 973744 - Remove matroska seek hack in the gstreamer media backend. r=edwin
----
- content/media/gstreamer/GStreamerReader.cpp | 21 ---------------------
- 1 file changed, 21 deletions(-)
-
-diff --git content/media/gstreamer/GStreamerReader.cpp content/media/gstreamer/GStreamerReader.cpp
-index e21ffdd..82dadeb 100644
---- mozilla/content/media/gstreamer/GStreamerReader.cpp
-+++ mozilla/content/media/gstreamer/GStreamerReader.cpp
-@@ -381,24 +381,6 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo,
- /* we couldn't get this to play */
- return ret;
-
-- /* FIXME: workaround for a bug in matroskademux. This seek makes matroskademux
-- * parse the index */
-- LOG(PR_LOG_DEBUG, "doing matroskademux seek hack");
-- if (gst_element_seek_simple(mPlayBin, GST_FORMAT_TIME,
-- GST_SEEK_FLAG_FLUSH, 0)) {
-- /* after a seek we need to wait again for ASYNC_DONE */
-- message = gst_bus_timed_pop_filtered(mBus, 5 * GST_SECOND,
-- (GstMessageType)(GST_MESSAGE_ASYNC_DONE | GST_MESSAGE_ERROR));
-- LOG(PR_LOG_DEBUG, "matroskademux seek hack done");
-- if (GST_MESSAGE_TYPE(message) != GST_MESSAGE_ASYNC_DONE) {
-- gst_element_set_state(mPlayBin, GST_STATE_NULL);
-- gst_message_unref(message);
-- return NS_ERROR_FAILURE;
-- }
-- } else {
-- LOG(PR_LOG_DEBUG, "matroskademux seek hack failed (non fatal)");
-- }
--
- /* report the duration */
- gint64 duration;
-
diff --git a/www/seamonkey/files/patch-bug975397 b/www/seamonkey/files/patch-bug975397
deleted file mode 100644
index 69e87cef0dc3..000000000000
--- a/www/seamonkey/files/patch-bug975397
+++ /dev/null
@@ -1,73 +0,0 @@
-commit 2fe45fb
-Author: L. David Baron <dbaron@dbaron.org>
-Date: Wed Apr 2 22:56:19 2014 -0700
-
- Bug 975397 - Call TrackImage when constructing a new nsStyleBorder. r=heycam
-
- I confirmed that the crashtest crashes in the harness without the patch.
-
- --HG--
- rename : layout/reftests/backgrounds/blue-32x32.png => layout/style/crashtests/blue-32x32.png
----
- layout/base/nsCSSRendering.cpp | 9 +++++++++
- layout/style/crashtests/blue-32x32.png | Bin 0 -> 110 bytes
- layout/style/crashtests/border-image-visited-link.html | 10 ++++++++++
- layout/style/crashtests/crashtests.list | 1 +
- 4 files changed, 20 insertions(+)
-
-diff --git layout/base/nsCSSRendering.cpp layout/base/nsCSSRendering.cpp
-index d91309b..2d8bb46 100644
---- mozilla/layout/base/nsCSSRendering.cpp
-+++ mozilla/layout/base/nsCSSRendering.cpp
-@@ -419,6 +419,10 @@ nsCSSRendering::PaintBorder(nsPresContext* aPresContext,
- }
-
- nsStyleBorder newStyleBorder(*styleBorder);
-+ // We could do something fancy to avoid the TrackImage/UntrackImage
-+ // work, but it doesn't seem worth it. (We need to call TrackImage
-+ // since we're not going through nsRuleNode::ComputeBorderData.)
-+ newStyleBorder.TrackImage(aPresContext);
-
- NS_FOR_CSS_SIDES(side) {
- newStyleBorder.SetBorderColor(side,
-@@ -428,6 +432,11 @@ nsCSSRendering::PaintBorder(nsPresContext* aPresContext,
- PaintBorderWithStyleBorder(aPresContext, aRenderingContext, aForFrame,
- aDirtyRect, aBorderArea, newStyleBorder,
- aStyleContext, aSkipSides);
-+
-+ // We could do something fancy to avoid the TrackImage/UntrackImage
-+ // work, but it doesn't seem worth it. (We need to call UntrackImage
-+ // since we're not going through nsStyleBorder::Destroy.)
-+ newStyleBorder.UntrackImage(aPresContext);
- }
-
- void
-diff --git layout/style/crashtests/blue-32x32.png layout/style/crashtests/blue-32x32.png
-new file mode 100644
-index 0000000..deefd19
-Binary files /dev/null and layout/style/crashtests/blue-32x32.png differ
-diff --git layout/style/crashtests/border-image-visited-link.html layout/style/crashtests/border-image-visited-link.html
-new file mode 100644
-index 0000000..b6e3ae5
---- /dev/null
-+++ mozilla/layout/style/crashtests/border-image-visited-link.html
-@@ -0,0 +1,10 @@
-+<!DOCTYPE HTML>
-+<title>border-image on link with visited styles</title>
-+<style>
-+
-+:link { color: blue }
-+:visited { color: purple }
-+:link, :visited { border: medium solid; border-image: url(blue-32x32.png) 4 4 4 4; }
-+
-+</style>
-+<a href="http://example.com/">test</a>
-diff --git layout/style/crashtests/crashtests.list layout/style/crashtests/crashtests.list
-index e414f28..acd709c3 100644
---- mozilla/layout/style/crashtests/crashtests.list
-+++ mozilla/layout/style/crashtests/crashtests.list
-@@ -102,3 +102,4 @@ load 930270-1.html
- load 930270-2.html
- load 945048-1.html
- load 989965-1.html
-+load border-image-visited-link.html
diff --git a/www/seamonkey/files/patch-bug975634 b/www/seamonkey/files/patch-bug975634
deleted file mode 100644
index 97f770d09757..000000000000
--- a/www/seamonkey/files/patch-bug975634
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git configure.in configure.in
-index 0d9236a..0447104 100644
---- mozilla/configure.in
-+++ mozilla/configure.in
-@@ -8670,6 +8670,20 @@ fi
- AC_SUBST(MOZ_EM_DEBUG)
-
- if test -n "$COMPILE_ENVIRONMENT"; then
-+AC_MSG_CHECKING([for posix_fadvise])
-+AC_TRY_LINK([#define _XOPEN_SOURCE 600
-+ #include <fcntl.h>],
-+ [posix_fadvise(0, 0, 0, 0);],
-+ [ac_cv___posix_fadvise=true],
-+ [ac_cv___posix_fadvise=false])
-+
-+if test "$ac_cv___posix_fadvise" = true ; then
-+ AC_DEFINE(HAVE_POSIX_FADVISE)
-+ AC_MSG_RESULT(yes)
-+else
-+ AC_MSG_RESULT(no)
-+fi
-+
- AC_MSG_CHECKING([for posix_fallocate])
- AC_TRY_LINK([#define _XOPEN_SOURCE 600
- #include <fcntl.h>],
-diff --git js/src/configure.in js/src/configure.in
-index da9767c..352ba14 100644
---- mozilla/js/src/configure.in
-+++ mozilla/js/src/configure.in
-@@ -4025,6 +4025,20 @@ AC_SUBST(CXX_VERSION)
- AC_SUBST(MSMANIFEST_TOOL)
- AC_SUBST(MOZ_LINKER)
-
-+AC_MSG_CHECKING([for posix_fadvise])
-+AC_TRY_LINK([#define _XOPEN_SOURCE 600
-+ #include <fcntl.h>],
-+ [posix_fadvise(0, 0, 0, 0);],
-+ [ac_cv___posix_fadvise=true],
-+ [ac_cv___posix_fadvise=false])
-+
-+if test "$ac_cv___posix_fadvise" = true ; then
-+ AC_DEFINE(HAVE_POSIX_FADVISE)
-+ AC_MSG_RESULT(yes)
-+else
-+ AC_MSG_RESULT(no)
-+fi
-+
- AC_MSG_CHECKING([for posix_fallocate])
- AC_TRY_LINK([#define _XOPEN_SOURCE 600
- #include <fcntl.h>],
-diff --git xpcom/io/nsLocalFileUnix.cpp xpcom/io/nsLocalFileUnix.cpp
-index bacf06c..0e46e4a 100644
---- mozilla/xpcom/io/nsLocalFileUnix.cpp
-+++ mozilla/xpcom/io/nsLocalFileUnix.cpp
-@@ -382,7 +382,7 @@ nsLocalFile::OpenNSPRFileDesc(int32_t flags, int32_t mode, PRFileDesc **_retval)
- PR_Delete(mPath.get());
- }
-
--#if defined(LINUX) && !defined(ANDROID)
-+#if defined(HAVE_POSIX_FADVISE)
- if (flags & OS_READAHEAD) {
- posix_fadvise(PR_FileDesc2NativeHandle(*_retval), 0, 0,
- POSIX_FADV_SEQUENTIAL);
diff --git a/www/seamonkey/files/patch-bug977457 b/www/seamonkey/files/patch-bug977457
deleted file mode 100644
index 82209ce2ec29..000000000000
--- a/www/seamonkey/files/patch-bug977457
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git xpcom/base/nsStackWalk.cpp xpcom/base/nsStackWalk.cpp
-index bb0e15b..7641267 100644
---- mozilla/xpcom/base/nsStackWalk.cpp
-+++ mozilla/xpcom/base/nsStackWalk.cpp
-@@ -23,6 +23,12 @@ struct CriticalAddress {
- };
- static CriticalAddress gCriticalAddress;
-
-+// for _Unwind_Backtrace from libcxxrt or libunwind
-+// cxxabi.h from libcxxrt implicitly includes unwind.h first
-+#if defined(HAVE__UNWIND_BACKTRACE) && !defined(_GNU_SOURCE)
-+#define _GNU_SOURCE
-+#endif
-+
- #if defined(HAVE_DLOPEN) || defined(XP_MACOSX)
- #include <dlfcn.h>
- #endif
-@@ -1222,9 +1228,6 @@ NS_StackWalk(NS_WalkStackCallback aCallback, uint32_t aSkipFrames,
- #elif defined(HAVE__UNWIND_BACKTRACE)
-
- // libgcc_s.so symbols _Unwind_Backtrace@@GCC_3.3 and _Unwind_GetIP@@GCC_3.0
--#ifndef _GNU_SOURCE
--#define _GNU_SOURCE
--#endif
- #include <unwind.h>
-
- struct unwind_info {
diff --git a/www/seamonkey/files/patch-bug981348 b/www/seamonkey/files/patch-bug981348
new file mode 100644
index 000000000000..d24dec68d05a
--- /dev/null
+++ b/www/seamonkey/files/patch-bug981348
@@ -0,0 +1,41 @@
+diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp
+index 4b21361..cb3be32 100644
+--- mozilla/dom/system/OSFileConstants.cpp
++++ mozilla/dom/system/OSFileConstants.cpp
+@@ -596,7 +596,7 @@ static const dom::ConstantSpec gLibcProperties[] =
+
+ { "OSFILE_SIZEOF_STATVFS", INT_TO_JSVAL(sizeof (struct statvfs)) },
+
+- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_bsize)) },
++ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_frsize)) },
+ { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", INT_TO_JSVAL(offsetof (struct statvfs, f_bavail)) },
+
+ #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
+--- mozilla/toolkit/components/osfile/modules/osfile_unix_back.jsm
++++ mozilla/toolkit/components/osfile/modules/osfile_unix_back.jsm
+@@ -228,8 +228,8 @@
+ let statvfs = new SharedAll.HollowStructure("statvfs",
+ Const.OSFILE_SIZEOF_STATVFS);
+
+- statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BSIZE,
+- "f_bsize", Type.unsigned_long.implementation);
++ statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_FRSIZE,
++ "f_frsize", Type.unsigned_long.implementation);
+ statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BAVAIL,
+ "f_bavail", Type.fsblkcnt_t.implementation);
+
+diff --git toolkit/components/osfile/modules/osfile_unix_front.jsm toolkit/components/osfile/modules/osfile_unix_front.jsm
+index 99e5e9b..de642c5 100644
+--- mozilla/toolkit/components/osfile/modules/osfile_unix_front.jsm
++++ mozilla/toolkit/components/osfile/modules/osfile_unix_front.jsm
+@@ -373,7 +373,7 @@
+ throw_on_negative("statvfs", UnixFile.statvfs(sourcePath, fileSystemInfoPtr));
+
+ let bytes = new Type.uint64_t.implementation(
+- fileSystemInfo.f_bsize * fileSystemInfo.f_bavail);
++ fileSystemInfo.f_frsize * fileSystemInfo.f_bavail);
+
+ return bytes.value;
+ };
diff --git a/www/seamonkey/files/patch-bug985848 b/www/seamonkey/files/patch-bug985848
deleted file mode 100644
index f23d04ad6157..000000000000
--- a/www/seamonkey/files/patch-bug985848
+++ /dev/null
@@ -1,22 +0,0 @@
---- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
-+++ mozilla/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
-@@ -19,7 +19,7 @@
- #include <stdlib.h>
-
- //v4l includes
--#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
-+#if defined(__NetBSD__) || defined(__OpenBSD__)
- #include <sys/videoio.h>
- #elif defined(__sun)
- #include <sys/videodev2.h>
---- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
-+++ mozilla/media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
-@@ -18,7 +18,7 @@
- #include <string.h>
-
- //v4l includes
--#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
-+#if defined(__NetBSD__) || defined(__OpenBSD__)
- #include <sys/videoio.h>
- #elif defined(__sun)
- #include <sys/videodev2.h>
diff --git a/www/seamonkey/files/patch-bug989112 b/www/seamonkey/files/patch-bug989112
deleted file mode 100644
index 0d9b363055c5..000000000000
--- a/www/seamonkey/files/patch-bug989112
+++ /dev/null
@@ -1,10 +0,0 @@
---- mozilla/content/media/gstreamer/GStreamerFunctionList.h~
-+++ mozilla/content/media/gstreamer/GStreamerFunctionList.h
-@@ -122,6 +122,7 @@ GST_FUNC(LIBGSTREAMER, gst_buffer_set_size)
- GST_FUNC(LIBGSTREAMER, gst_buffer_unmap)
- GST_FUNC(LIBGSTREAMER, gst_element_factory_get_metadata)
- GST_FUNC(LIBGSTREAMER, gst_event_parse_segment)
-+GST_FUNC(LIBGSTREAMER, gst_event_type_get_name)
- GST_FUNC(LIBGSTREAMER, gst_memory_init)
- GST_FUNC(LIBGSTREAMER, gst_memory_map)
- GST_FUNC(LIBGSTREAMER, gst_memory_unmap)
diff --git a/www/seamonkey/files/patch-bug993467 b/www/seamonkey/files/patch-bug993467
deleted file mode 100644
index dd9e08a77034..000000000000
--- a/www/seamonkey/files/patch-bug993467
+++ /dev/null
@@ -1,11 +0,0 @@
---- config/config.mk~
-+++ config/config.mk
-@@ -411,7 +411,7 @@ MY_RULES := $(DEPTH)/config/myrules.mk
- #
- CCC = $(CXX)
-
--OS_INCLUDES += $(NSPR_CFLAGS) $(NSS_CFLAGS) $(MOZ_JPEG_CFLAGS) $(MOZ_PNG_CFLAGS) $(MOZ_ZLIB_CFLAGS)
-+OS_INCLUDES += $(NSPR_CFLAGS) $(NSS_CFLAGS) $(MOZ_JPEG_CFLAGS) $(MOZ_PNG_CFLAGS) $(MOZ_ZLIB_CFLAGS) $(MOZ_PIXMAN_CFLAGS)
-
- INCLUDES = \
- $(LOCAL_INCLUDES) \
diff --git a/www/seamonkey/files/patch-clang34-disable-stdcall b/www/seamonkey/files/patch-clang34-disable-stdcall
index 6abb13eb72ef..2b91fba7197f 100644
--- a/www/seamonkey/files/patch-clang34-disable-stdcall
+++ b/www/seamonkey/files/patch-clang34-disable-stdcall
@@ -6,8 +6,8 @@
* NS_HIDDEN_(int) NS_FASTCALL func2(char *foo);
*/
--#if defined(__i386__) && defined(__GNUC__) && !defined(XP_OS2)
-+#if defined(__i386__) && defined(__GNUC__) && !defined(XP_OS2) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0)
+-#if defined(__i386__) && defined(__GNUC__)
++#if defined(__i386__) && defined(__GNUC__) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0)
#define NS_FASTCALL __attribute__ ((regparm (3), stdcall))
#define NS_CONSTRUCTOR_FASTCALL __attribute__ ((regparm (3), stdcall))
#elif defined(XP_WIN) && !defined(_WIN64)
diff --git a/www/seamonkey/files/patch-mozilla-media-libstagefright-foundation-AString.cpp b/www/seamonkey/files/patch-mozilla-media-libstagefright-foundation-AString.cpp
new file mode 100644
index 000000000000..063cc52226d3
--- /dev/null
+++ b/www/seamonkey/files/patch-mozilla-media-libstagefright-foundation-AString.cpp
@@ -0,0 +1,16 @@
+--- mozilla/media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp~
++++ mozilla/media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp
+@@ -23,6 +23,13 @@
+ #include "ADebug.h"
+ #include "AString.h"
+
++#ifdef __FreeBSD__
++# include <osreldate.h>
++# if __FreeBSD_version < 900506
++# undef tolower
++# endif
++#endif
++
+ namespace stagefright {
+
+ // static
diff --git a/www/seamonkey/files/patch-z-bug517422 b/www/seamonkey/files/patch-z-bug517422
index 15728f8cb66e..e1bee6be895e 100644
--- a/www/seamonkey/files/patch-z-bug517422
+++ b/www/seamonkey/files/patch-z-bug517422
@@ -22,11 +22,17 @@ diff --git config/external/moz.build config/external/moz.build
index f67c5c7..eb909ce 100644
--- mozilla/config/external/moz.build
+++ mozilla/config/external/moz.build
-@@ -15,13 +15,13 @@ if CONFIG['MOZ_UPDATER']:
+@@ -15,13 +15,19 @@ if CONFIG['MOZ_UPDATER']:
if not CONFIG['MOZ_NATIVE_BZ2']:
external_dirs += ['modules/libbz2']
-if CONFIG['MOZ_VORBIS']:
++if not CONFIG['MOZ_NATIVE_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']:
external_dirs += ['media/libvorbis']
@@ -39,16 +45,7 @@ index f67c5c7..eb909ce 100644
external_dirs += ['media/libopus']
if CONFIG['MOZ_WEBM']:
-@@ -34,16 +34,23 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
- external_dirs += ['media/libvpx']
-
- if CONFIG['MOZ_OGG']:
-- external_dirs += ['media/libogg', 'media/libtheora']
-+ if not CONFIG['MOZ_NATIVE_OGG']:
-+ external_dirs += ['media/libogg']
-+ if not CONFIG['MOZ_NATIVE_THEORA']:
-+ external_dirs += ['media/libtheora']
-
+@@ -36,14 +42,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
if not CONFIG['MOZ_NATIVE_PNG']:
external_dirs += ['media/libpng']
@@ -61,7 +58,10 @@ index f67c5c7..eb909ce 100644
external_dirs += [
'media/kiss_fft',
'media/libcubeb',
+- 'media/libogg',
+- 'media/libtheora',
- 'media/libspeex_resampler',
+ 'media/libstagefright',
- 'media/libsoundtouch',
]
@@ -122,7 +122,7 @@ diff --git configure.in configure.in
index 87db361..7947626 100644
--- mozilla/configure.in
+++ mozilla/configure.in
-@@ -5211,6 +5211,57 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then
+@@ -5211,6 +5211,63 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then
fi
dnl ========================================================
@@ -136,6 +136,12 @@ index 87db361..7947626 100644
+
+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)
@@ -246,7 +252,7 @@ index 87db361..7947626 100644
+MOZ_NATIVE_SOUNDTOUCH=)
+
+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
-+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.7.0)
++ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.8.0)
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
@@ -278,30 +284,19 @@ index 87db361..7947626 100644
dnl = Disable VP8 decoder support
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(webm,
-diff --git content/media/AudioStream.cpp content/media/AudioStream.cpp
-index 88c8aa6..6b03288 100644
---- mozilla/content/media/AudioStream.cpp
-+++ mozilla/content/media/AudioStream.cpp
-@@ -13,7 +13,6 @@
- #include "mozilla/Mutex.h"
- #include <algorithm>
- #include "mozilla/Preferences.h"
--#include "soundtouch/SoundTouch.h"
- #include "Latency.h"
-
- namespace mozilla {
diff --git content/media/AudioStream.h content/media/AudioStream.h
index 085676d..00c54fb 100644
--- mozilla/content/media/AudioStream.h
+++ mozilla/content/media/AudioStream.h
-@@ -15,6 +15,7 @@
- #include "mozilla/StaticMutex.h"
+@@ -26,7 +26,7 @@ public:
+ };
- #include "cubeb/cubeb.h"
-+#include "soundtouch/SoundTouch.h"
+ namespace soundtouch {
+-class SoundTouch;
++class MOZ_IMPORT_API SoundTouch;
+ }
- template <>
- class nsAutoRefTraits<cubeb_stream> : public nsPointerRefTraits<cubeb_stream>
+ namespace mozilla {
diff --git content/media/Makefile.in content/media/Makefile.in
index fd34449..c6c42c8 100644
--- mozilla/content/media/Makefile.in
@@ -429,10 +424,10 @@ index 00e77e7..55f48ab 100644
}, {
'dependencies': [
'<(DEPTH)/third_party/opus/opus.gyp:opus'
-diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
+diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
index d42137a..695e75a8 100644
---- mozilla/toolkit/library/Makefile.in
-+++ mozilla/toolkit/library/Makefile.in
+--- mozilla/toolkit/library/libxul.mk
++++ mozilla/toolkit/library/libxul.mk
@@ -77,6 +77,34 @@ ifdef MOZ_NATIVE_HUNSPELL
EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS)
endif
@@ -468,3 +463,31 @@ index d42137a..695e75a8 100644
ifdef MOZ_NATIVE_LIBEVENT
EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS)
endif
+diff --git xpcom/build/nsXPComInit.cpp xpcom/build/nsXPComInit.cpp
+index 2cf281e..6d7af0e 100644
+--- mozilla/xpcom/build/nsXPComInit.cpp
++++ mozilla/xpcom/build/nsXPComInit.cpp
+@@ -130,7 +130,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports *, REFNSIID, void **)
+ #include "mozilla/VisualEventTracer.h"
+ #endif
+
++#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
+@@ -571,11 +573,13 @@ NS_InitXPCOM2(nsIServiceManager* *result,
+ // this oddness.
+ mozilla::SetICUMemoryFunctions();
+
++#ifndef MOZ_OGG_NO_MEM_REPORTING
+ // Do the same for libogg.
+ ogg_set_mem_functions(OggReporter::CountingMalloc,
+ OggReporter::CountingCalloc,
+ OggReporter::CountingRealloc,
+ OggReporter::CountingFree);
++#endif
+
+ #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
+ // And for VPX.