diff options
author | bapt <bapt@FreeBSD.org> | 2014-09-09 14:16:35 +0800 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2014-09-09 14:16:35 +0800 |
commit | 810ee4b28dab90c036696f081a69b9bfd1073afd (patch) | |
tree | 781de0366f06f8728245988a38a42d4e172d024d /www | |
parent | 0b1c4ffd78335ffea5779da45a6875656df9d40f (diff) | |
download | freebsd-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')
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. |