diff options
author | jbeich <jbeich@FreeBSD.org> | 2017-04-20 01:47:46 +0000 |
---|---|---|
committer | jbeich <jbeich@FreeBSD.org> | 2017-04-20 01:47:46 +0000 |
commit | 313ba328deb3fa496487c55f31f71732d169c938 (patch) | |
tree | 13e5025ab339910b7021c2d66a0d0259723df3fa | |
parent | 01b66ca4f738b4de85e4b6566677aaece19ee8e3 (diff) | |
download | FreeBSD-ports-313ba328deb3fa496487c55f31f71732d169c938.zip FreeBSD-ports-313ba328deb3fa496487c55f31f71732d169c938.tar.gz |
MFH: r438316 r438317 r438462 r438814
www/firefox-esr: update to 52.1.0
Changes: https://www.mozilla.org/firefox/52.1.0/releasenotes/
Security: 5e0a038a-ca30-416d-a2f5-38cbf5e7df33
Approved by: ports-secteam (junovitch)
36 files changed, 818 insertions, 2072 deletions
diff --git a/Mk/Uses/gecko.mk b/Mk/Uses/gecko.mk index 54ea673..46cc66c 100644 --- a/Mk/Uses/gecko.mk +++ b/Mk/Uses/gecko.mk @@ -36,12 +36,12 @@ RUN_DEPENDS+= libxul>=45:www/libxul .elif ${gecko_ARGS:Mfirefox} -_GECKO_DEFAULT_VERSION= 45 -_GECKO_VERSIONS= 45 53 +_GECKO_DEFAULT_VERSION= 52 +_GECKO_VERSIONS= 52 53 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions -45_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr +52_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr 53_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox .if exists(${LOCALBASE}/bin/firefox) diff --git a/www/firefox-esr-i18n/Makefile b/www/firefox-esr-i18n/Makefile index 6d2db19..85d47e1 100644 --- a/www/firefox-esr-i18n/Makefile +++ b/www/firefox-esr-i18n/Makefile @@ -2,10 +2,10 @@ # $FreeBSD$ PORTNAME= firefox -PORTVERSION= 45.8.0 +PORTVERSION= 52.1.0 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}esr/linux-i686/xpi \ - MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build2/linux-i686/xpi + MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build3/linux-i686/xpi PKGNAMEPREFIX= PKGNAMESUFFIX= -esr-i18n DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/} diff --git a/www/firefox-esr-i18n/Makefile.lang b/www/firefox-esr-i18n/Makefile.lang index 79a8cfa..e582b54 100644 --- a/www/firefox-esr-i18n/Makefile.lang +++ b/www/firefox-esr-i18n/Makefile.lang @@ -1,7 +1,7 @@ # Created by: Koji Yokota <yokota@res.otaru-uc.ac.jp> # $FreeBSD$ -FIREFOX_I18N_ALL_= ach af an ar as ast az be bg bn-BD bn-IN br bs ca cs \ +FIREFOX_I18N_ALL_= ach af an ar as ast az bg bn-BD bn-IN br bs ca cs \ cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL \ es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn \ gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km \ @@ -33,9 +33,6 @@ FIREFOX_I18N+= ast .if ${PORT_OPTIONS:MLANG_AZ} FIREFOX_I18N+= az .endif -.if ${PORT_OPTIONS:MLANG_BE} -FIREFOX_I18N+= be -.endif .if ${PORT_OPTIONS:MLANG_BG} FIREFOX_I18N+= bg .endif diff --git a/www/firefox-esr-i18n/Makefile.option b/www/firefox-esr-i18n/Makefile.option index 6df5c36..2fbbeef 100644 --- a/www/firefox-esr-i18n/Makefile.option +++ b/www/firefox-esr-i18n/Makefile.option @@ -9,7 +9,6 @@ OPTIONS_DEFINE= LANG_ACH \ LANG_AS \ LANG_AST \ LANG_AZ \ - LANG_BE \ LANG_BG \ LANG_BB \ LANG_BN \ diff --git a/www/firefox-esr-i18n/distinfo b/www/firefox-esr-i18n/distinfo index 8ea829c..8d8ac2e 100644 --- a/www/firefox-esr-i18n/distinfo +++ b/www/firefox-esr-i18n/distinfo @@ -1,181 +1,179 @@ -TIMESTAMP = 1488235265 -SHA256 (xpi/firefox-45.8.0/ach.xpi) = e8337d1951aa8484bfade7a3157529a78a0d6882c4d332e880e1ac1063e028f1 -SIZE (xpi/firefox-45.8.0/ach.xpi) = 426530 -SHA256 (xpi/firefox-45.8.0/af.xpi) = b0d0ff680ae288fca3f319fa54a2607f980845c0384e153523b764fcf4d475b4 -SIZE (xpi/firefox-45.8.0/af.xpi) = 439353 -SHA256 (xpi/firefox-45.8.0/an.xpi) = 8897ebf779339512753770d00cafad01e514e8eec6f89e1887cde3c5c5256209 -SIZE (xpi/firefox-45.8.0/an.xpi) = 449036 -SHA256 (xpi/firefox-45.8.0/ar.xpi) = 7a2142e9eee1f9d798070da889301b0750b7c80aaea511fac6dfa38dc1e2e873 -SIZE (xpi/firefox-45.8.0/ar.xpi) = 474961 -SHA256 (xpi/firefox-45.8.0/as.xpi) = 58a788699e8f2930085b72edbfa03939e82f170258db92bdc7d8b44a4ec695e6 -SIZE (xpi/firefox-45.8.0/as.xpi) = 483096 -SHA256 (xpi/firefox-45.8.0/ast.xpi) = b0dabf6bd67b1bece44728ad600c919bfa0498bc593228b5a2ca46ad0574c7a5 -SIZE (xpi/firefox-45.8.0/ast.xpi) = 419250 -SHA256 (xpi/firefox-45.8.0/az.xpi) = e794b077c1a3e1d0c560dc95f69dcb90a03168032f34ab7822eb44c31ac5782a -SIZE (xpi/firefox-45.8.0/az.xpi) = 464018 -SHA256 (xpi/firefox-45.8.0/be.xpi) = 42c9a3eaf47d5dc59a137b756f80bd8ee79771825f63c8edfdd8366e0a95b63b -SIZE (xpi/firefox-45.8.0/be.xpi) = 442619 -SHA256 (xpi/firefox-45.8.0/bg.xpi) = 5972247e018f6b7165f5f2349a8693475aa046a0fbabd829a4b16d83170be637 -SIZE (xpi/firefox-45.8.0/bg.xpi) = 460809 -SHA256 (xpi/firefox-45.8.0/bn-BD.xpi) = 2d8097d6bc4632a092cf93967998bb76323051cbeb54e8b448d51105dba2fddb -SIZE (xpi/firefox-45.8.0/bn-BD.xpi) = 515643 -SHA256 (xpi/firefox-45.8.0/bn-IN.xpi) = 9b9c18088bb7b93bfb305b7beb86d097372bddf2e2cf1b6a9bea3915f6553a9f -SIZE (xpi/firefox-45.8.0/bn-IN.xpi) = 494076 -SHA256 (xpi/firefox-45.8.0/br.xpi) = 907414ac6a4edd0aece6e855e5fcade6d95fb98bb838c9dbf5c6a7ff22ea2e8e -SIZE (xpi/firefox-45.8.0/br.xpi) = 436390 -SHA256 (xpi/firefox-45.8.0/bs.xpi) = 0a7547b87ff3b16977f12568fee06d50936e33cb60a343cde84ab8f4dcbf17eb -SIZE (xpi/firefox-45.8.0/bs.xpi) = 442998 -SHA256 (xpi/firefox-45.8.0/ca.xpi) = c42c7517e9f16411407d437742c192538fa8996b460e697c455e62069d9e89e7 -SIZE (xpi/firefox-45.8.0/ca.xpi) = 436832 -SHA256 (xpi/firefox-45.8.0/cs.xpi) = 18d5650dd4eaef469228a6fa1a67363b828b17ada1ad861d51db41d9096f51fd -SIZE (xpi/firefox-45.8.0/cs.xpi) = 443482 -SHA256 (xpi/firefox-45.8.0/cy.xpi) = 9b7882133ec2f3b87c6c89c3069d74093c971a8369cbec15a679a75cf6703ad5 -SIZE (xpi/firefox-45.8.0/cy.xpi) = 438907 -SHA256 (xpi/firefox-45.8.0/da.xpi) = 3cb7160d1197f4378f2d9e5a292d69db020f4de33fabf99f772ff1d7a014575f -SIZE (xpi/firefox-45.8.0/da.xpi) = 430078 -SHA256 (xpi/firefox-45.8.0/de.xpi) = 5fbbe236fe80d34c0791fcd8b7492c18ca19bc0b1b093c3888d5ed191739b83f -SIZE (xpi/firefox-45.8.0/de.xpi) = 445482 -SHA256 (xpi/firefox-45.8.0/dsb.xpi) = b133cfb5d4b3556a7a7ed1cae65bd2cd0c271ea7d192c737c3316d1c9c872cda -SIZE (xpi/firefox-45.8.0/dsb.xpi) = 463791 -SHA256 (xpi/firefox-45.8.0/el.xpi) = 440468020d2babb17f28b13e781adf6e94829dde7474edacac9a8b9b0c0a5037 -SIZE (xpi/firefox-45.8.0/el.xpi) = 470867 -SHA256 (xpi/firefox-45.8.0/en-GB.xpi) = 7716fb13674dcff52cfa2d72ca3901e9d72a33f8c3af051bce89739daecf1f56 -SIZE (xpi/firefox-45.8.0/en-GB.xpi) = 423871 -SHA256 (xpi/firefox-45.8.0/en-US.xpi) = 615da888226f0b8052887af96c8269d5af642a203c08a18a450a20756baf8580 -SIZE (xpi/firefox-45.8.0/en-US.xpi) = 425461 -SHA256 (xpi/firefox-45.8.0/en-ZA.xpi) = a9a1cf1e1e3cd9a89698a8b1da8fa868f43216783325974ef966b0b9f7ad17c2 -SIZE (xpi/firefox-45.8.0/en-ZA.xpi) = 420776 -SHA256 (xpi/firefox-45.8.0/eo.xpi) = 61bae1e4100b1132eb534fd68e3889f5f683e65af7fd6165765a2c0203a92135 -SIZE (xpi/firefox-45.8.0/eo.xpi) = 440960 -SHA256 (xpi/firefox-45.8.0/es-AR.xpi) = 1a87cf2b1e1f78c8b6ebf6bc5d6e659c9cec002e47f2db5cd8b0b49b7d0ec87f -SIZE (xpi/firefox-45.8.0/es-AR.xpi) = 441482 -SHA256 (xpi/firefox-45.8.0/es-CL.xpi) = e05a6f9dcf53e32e8ee83e7350dbb6f0f1570ab0bb460fca5f7fbc884216cce9 -SIZE (xpi/firefox-45.8.0/es-CL.xpi) = 368763 -SHA256 (xpi/firefox-45.8.0/es-ES.xpi) = 829634f48d92d17c106bfdb58c054793b6016e61354d83e1c16f6c7cfee7a5a6 -SIZE (xpi/firefox-45.8.0/es-ES.xpi) = 353716 -SHA256 (xpi/firefox-45.8.0/es-MX.xpi) = 878fc31f44841162b748828a33cf0d5e906e0bff5bcf0295d1392395dae3e46d -SIZE (xpi/firefox-45.8.0/es-MX.xpi) = 449395 -SHA256 (xpi/firefox-45.8.0/et.xpi) = 400df3e8d025e106ff6217647bb9be03b75befa6446ef853b8638416665fde14 -SIZE (xpi/firefox-45.8.0/et.xpi) = 433352 -SHA256 (xpi/firefox-45.8.0/eu.xpi) = 650f66dd10372666747891e8ea4ce9a4bc749e9586b69e972517c2ae4a2c9fcd -SIZE (xpi/firefox-45.8.0/eu.xpi) = 441357 -SHA256 (xpi/firefox-45.8.0/fa.xpi) = 09d367036bde6791f39dbe8c33bb6f27c4de2c4c5378129e4eb61ce2635e3d25 -SIZE (xpi/firefox-45.8.0/fa.xpi) = 491941 -SHA256 (xpi/firefox-45.8.0/ff.xpi) = a60f6c1d1ed52e26b2f7dff4aeedfbb986d0d48bbeb031ea5d35dae3dc4e3729 -SIZE (xpi/firefox-45.8.0/ff.xpi) = 441499 -SHA256 (xpi/firefox-45.8.0/fi.xpi) = ddfb255418d7592bcef68cae8897fc18fe5914829c7502d0ff92354fa3cb8aef -SIZE (xpi/firefox-45.8.0/fi.xpi) = 438347 -SHA256 (xpi/firefox-45.8.0/fr.xpi) = 1ef78dde93358f09dcb596905669409f3b072a58dcc7fedc9187a64ff2dd7232 -SIZE (xpi/firefox-45.8.0/fr.xpi) = 450037 -SHA256 (xpi/firefox-45.8.0/fy-NL.xpi) = 6170e0272b70dd9cbd042d8521b154f87a39049ab4186c57f4ff01a35b240cb8 -SIZE (xpi/firefox-45.8.0/fy-NL.xpi) = 447778 -SHA256 (xpi/firefox-45.8.0/ga-IE.xpi) = f1e8faf6df095894c5b615caa0df6f476cadfa68dc5f45dea7136c2dea323975 -SIZE (xpi/firefox-45.8.0/ga-IE.xpi) = 460055 -SHA256 (xpi/firefox-45.8.0/gd.xpi) = a11c18d575fd3e572f7d3ee4a081516dab34390127387c73f524dc705a8c8c42 -SIZE (xpi/firefox-45.8.0/gd.xpi) = 449711 -SHA256 (xpi/firefox-45.8.0/gl.xpi) = b8fb8d3c132d1f5d56bc6b3c24b6c285b9ada68e4c5760bf3356974969d7f8c4 -SIZE (xpi/firefox-45.8.0/gl.xpi) = 434804 -SHA256 (xpi/firefox-45.8.0/gn.xpi) = d29c7b1c8193ed6194daabb57603ef67a0123a69c25be551736bff2268abb19d -SIZE (xpi/firefox-45.8.0/gn.xpi) = 460649 -SHA256 (xpi/firefox-45.8.0/gu-IN.xpi) = cb21847120c5c9bb389cf1f94b353d3b448b76296a3882104c516ede2005db9a -SIZE (xpi/firefox-45.8.0/gu-IN.xpi) = 472566 -SHA256 (xpi/firefox-45.8.0/he.xpi) = 865ecbbf980f14bd5d3341fff508c9af3c30130ebe31a78b1b331dec1cf30e6c -SIZE (xpi/firefox-45.8.0/he.xpi) = 454785 -SHA256 (xpi/firefox-45.8.0/hi-IN.xpi) = a531c8850809b576a5a363b33378f0a21284388317bf5d24a830d01080db810f -SIZE (xpi/firefox-45.8.0/hi-IN.xpi) = 486991 -SHA256 (xpi/firefox-45.8.0/hr.xpi) = 4e01fcfcac300d47cc7e7763d2ef10fec67bd24b5ac5a8916152910d2521fdd3 -SIZE (xpi/firefox-45.8.0/hr.xpi) = 449068 -SHA256 (xpi/firefox-45.8.0/hsb.xpi) = 7643abcd9e9a4183082300215403f2b7a6483bdc3dded68068b68a5b96e8eae3 -SIZE (xpi/firefox-45.8.0/hsb.xpi) = 461454 -SHA256 (xpi/firefox-45.8.0/hu.xpi) = af5f29ebe544af8d94d584b33b60c0aef2ada90b9832570b763cd4ecc8869428 -SIZE (xpi/firefox-45.8.0/hu.xpi) = 449777 -SHA256 (xpi/firefox-45.8.0/hy-AM.xpi) = 8c3d266ba6dbd0e25d0b24822f88f51daf1796ad72a5f329196f0a85f0c3d1e4 -SIZE (xpi/firefox-45.8.0/hy-AM.xpi) = 500040 -SHA256 (xpi/firefox-45.8.0/id.xpi) = 9d387769e3e1023768f4cf67d81e7f7952d33b6d821ba3f9cb4f41f87cf32727 -SIZE (xpi/firefox-45.8.0/id.xpi) = 427175 -SHA256 (xpi/firefox-45.8.0/is.xpi) = 3e4ce279d99fc0d13f153b03cbc2f65f55f7f5cf19116efb40304f36775d3063 -SIZE (xpi/firefox-45.8.0/is.xpi) = 443209 -SHA256 (xpi/firefox-45.8.0/it.xpi) = 4ef4bf7762f371a600b483c0e1331983a5a61c0060df650f375027f782460e82 -SIZE (xpi/firefox-45.8.0/it.xpi) = 343724 -SHA256 (xpi/firefox-45.8.0/ja.xpi) = c4d19e2ac9b3067cd6fae506544467eac85f5364604a2e973db028f3058ab21d -SIZE (xpi/firefox-45.8.0/ja.xpi) = 486331 -SHA256 (xpi/firefox-45.8.0/kk.xpi) = b8c6d314679d5cb13c86feca37277c0b8e84762bfc676f216ce2a22eb575b082 -SIZE (xpi/firefox-45.8.0/kk.xpi) = 498895 -SHA256 (xpi/firefox-45.8.0/km.xpi) = d19c3611bd7ac7366eaf7d1d9cb29389542a7900769db01e06e87ca67c1b3800 -SIZE (xpi/firefox-45.8.0/km.xpi) = 504301 -SHA256 (xpi/firefox-45.8.0/kn.xpi) = 233f6358aabc171d80d4b153757400d41e2b412c69acb208e5e0c9ad128cd542 -SIZE (xpi/firefox-45.8.0/kn.xpi) = 495881 -SHA256 (xpi/firefox-45.8.0/ko.xpi) = ab9a9a655b86ffe8fac739ceb72c9e65b5f765dc90964778d9a6d39b7f1e46f5 -SIZE (xpi/firefox-45.8.0/ko.xpi) = 465289 -SHA256 (xpi/firefox-45.8.0/lij.xpi) = 8a695065e6581135a814f1b5ca63f2c73856ec729e2a86bf6074800ff755866a -SIZE (xpi/firefox-45.8.0/lij.xpi) = 381384 -SHA256 (xpi/firefox-45.8.0/lt.xpi) = 0768f7d2596d33c66fd3d7d9cfeeb1dd91930fa48009c34079227537c436b74f -SIZE (xpi/firefox-45.8.0/lt.xpi) = 454678 -SHA256 (xpi/firefox-45.8.0/lv.xpi) = ff2ed673affc08ee4b5e65f701c082249990015dc32852e5055048f8a7a803c2 -SIZE (xpi/firefox-45.8.0/lv.xpi) = 445720 -SHA256 (xpi/firefox-45.8.0/mai.xpi) = 0152e459d6d5192f45dc29935309bd42001e6035fef225b4f098b7434f55f5b4 -SIZE (xpi/firefox-45.8.0/mai.xpi) = 492650 -SHA256 (xpi/firefox-45.8.0/mk.xpi) = 4dfb44f42d1f2442f19c8b082c07f96470f9cc5135b6266957ee567436ee4ceb -SIZE (xpi/firefox-45.8.0/mk.xpi) = 476391 -SHA256 (xpi/firefox-45.8.0/ml.xpi) = c7a35ae74caec8c252339f0c65dcb406303fca35553e0b9665fb9ca87bd55ea8 -SIZE (xpi/firefox-45.8.0/ml.xpi) = 498681 -SHA256 (xpi/firefox-45.8.0/mr.xpi) = c5c44dd20bdabdf92c1e5d7cce847d280f43182740c1d0a22ae392284a243b9f -SIZE (xpi/firefox-45.8.0/mr.xpi) = 503700 -SHA256 (xpi/firefox-45.8.0/ms.xpi) = 6d8b74dbafd3c490ed345d533c50963a0a5e9204c52d14a28bdda989d84d4c7a -SIZE (xpi/firefox-45.8.0/ms.xpi) = 440065 -SHA256 (xpi/firefox-45.8.0/nb-NO.xpi) = 7fc2e833da70c875aa7eaee49a750565ce663c060e3ac17b6cd88a5e9799fcd6 -SIZE (xpi/firefox-45.8.0/nb-NO.xpi) = 435471 -SHA256 (xpi/firefox-45.8.0/nl.xpi) = ec7725665e885272e51ab0986e19052af01c6179e32a17ca22b64eeb8f6a5d41 -SIZE (xpi/firefox-45.8.0/nl.xpi) = 435202 -SHA256 (xpi/firefox-45.8.0/nn-NO.xpi) = 61eb3e0d76ca7cbb69bbf6bb8c9552f469b71723a0cb4417171fe7b82b89fa3e -SIZE (xpi/firefox-45.8.0/nn-NO.xpi) = 432934 -SHA256 (xpi/firefox-45.8.0/or.xpi) = 943c4c44d1bd776730e098180c08c15a89dceb88b4130a287b5c87ba74bff512 -SIZE (xpi/firefox-45.8.0/or.xpi) = 495922 -SHA256 (xpi/firefox-45.8.0/pa-IN.xpi) = bc6d13e6fe2c12b79f55f04f7e51c4bddcdae66696c669f49dac73285d3fd265 -SIZE (xpi/firefox-45.8.0/pa-IN.xpi) = 489550 -SHA256 (xpi/firefox-45.8.0/pl.xpi) = 261b3c557ae6e53601504f9ad801489bc33fc2aa62ea6d1436e34b69c76c412a -SIZE (xpi/firefox-45.8.0/pl.xpi) = 383929 -SHA256 (xpi/firefox-45.8.0/pt-BR.xpi) = 0959e6b30ef9579b02f8f8ee6cfb148e581329195915d94c05b21489c7d856ff -SIZE (xpi/firefox-45.8.0/pt-BR.xpi) = 450991 -SHA256 (xpi/firefox-45.8.0/pt-PT.xpi) = cb61aa1b149eacda43343368b699c0dcc9fd70ee292293ff82e65263edc6040a -SIZE (xpi/firefox-45.8.0/pt-PT.xpi) = 437022 -SHA256 (xpi/firefox-45.8.0/rm.xpi) = 80b9a7da56be4b82d74ba97ee53fe78609942625a45769a93294a160f5a59c48 -SIZE (xpi/firefox-45.8.0/rm.xpi) = 437717 -SHA256 (xpi/firefox-45.8.0/ro.xpi) = de6e523e7730f0329a5b5753c467cbc8c38aa6628f0746a57febd36633fec9f6 -SIZE (xpi/firefox-45.8.0/ro.xpi) = 444062 -SHA256 (xpi/firefox-45.8.0/ru.xpi) = 0dce53178156223869dbc0a56dfeb203b94770ff32a7029de1af51f662c21363 -SIZE (xpi/firefox-45.8.0/ru.xpi) = 392738 -SHA256 (xpi/firefox-45.8.0/si.xpi) = 55a3ff30146341f0d1e6c86765248d5161d574cccaca1b5da69565d97604e43f -SIZE (xpi/firefox-45.8.0/si.xpi) = 482248 -SHA256 (xpi/firefox-45.8.0/sk.xpi) = b6e248955e8d37d5082664b20f6dddfbf0ee7f9b5151e43789086c6d59632438 -SIZE (xpi/firefox-45.8.0/sk.xpi) = 453607 -SHA256 (xpi/firefox-45.8.0/sl.xpi) = cb23d8e958701534794dedd3cc25fbf85a5238bc0a89ecb479a2550df3fe7f5e -SIZE (xpi/firefox-45.8.0/sl.xpi) = 444963 -SHA256 (xpi/firefox-45.8.0/son.xpi) = 337fba617b16ada119fce0b07a6b8658656a65fd5b429e0b214654fadcdc91a5 -SIZE (xpi/firefox-45.8.0/son.xpi) = 433513 -SHA256 (xpi/firefox-45.8.0/sq.xpi) = c7a71597dc4ca54984200a0da3837100756dbe930eda21ad6ccfab0cc2700f1b -SIZE (xpi/firefox-45.8.0/sq.xpi) = 452186 -SHA256 (xpi/firefox-45.8.0/sr.xpi) = 7185fc946328646b1a80996df71a4f8d02c1033c5c84b546eca01851bc6df337 -SIZE (xpi/firefox-45.8.0/sr.xpi) = 464478 -SHA256 (xpi/firefox-45.8.0/sv-SE.xpi) = a9a9dacf53e510db5fb0476af2f16f3508bd955aecf5cce4b522d07f24c3cafd -SIZE (xpi/firefox-45.8.0/sv-SE.xpi) = 444213 -SHA256 (xpi/firefox-45.8.0/ta.xpi) = f3c24960f752a494a468d878da01e114b886da4b547c6bcf9fbb618a54c4fc93 -SIZE (xpi/firefox-45.8.0/ta.xpi) = 483118 -SHA256 (xpi/firefox-45.8.0/te.xpi) = b8d11b842d31c933e6e74fbad3eb443b7e053740d3d5d7fd1627da8415a0c17d -SIZE (xpi/firefox-45.8.0/te.xpi) = 492471 -SHA256 (xpi/firefox-45.8.0/th.xpi) = 3fca54e4c7bb453f8000d87759a1ec5bcb63e30efc3d5fd6011a0b6eef890936 -SIZE (xpi/firefox-45.8.0/th.xpi) = 477650 -SHA256 (xpi/firefox-45.8.0/tr.xpi) = 17a30f0df5ea59969a7c8f12f81fe40db80281ffb45db770c2a6de5d7797b20c -SIZE (xpi/firefox-45.8.0/tr.xpi) = 451166 -SHA256 (xpi/firefox-45.8.0/uk.xpi) = 7fc8c0e84af1e730ec9cb93f18b889e7ca35445f04081f1fa00c2a19a00b7185 -SIZE (xpi/firefox-45.8.0/uk.xpi) = 494780 -SHA256 (xpi/firefox-45.8.0/uz.xpi) = aeb237a07f02f7680c838518c1ab4c9450a2de87690e1d92b1ec5d317287e399 -SIZE (xpi/firefox-45.8.0/uz.xpi) = 443803 -SHA256 (xpi/firefox-45.8.0/vi.xpi) = 6112ea4ddeb60109f656f902886c2b59b8cb1f34e6c87b966fff558e5aa8561d -SIZE (xpi/firefox-45.8.0/vi.xpi) = 450778 -SHA256 (xpi/firefox-45.8.0/xh.xpi) = d77e888447b44be1716f36f36f599823ea619e6b58673d21123b171402b05203 -SIZE (xpi/firefox-45.8.0/xh.xpi) = 432918 -SHA256 (xpi/firefox-45.8.0/zh-CN.xpi) = 295990f964e9926f20b6a5f06e06686a88a9199a7e4a48e9fa2132e6338cff0c -SIZE (xpi/firefox-45.8.0/zh-CN.xpi) = 475797 -SHA256 (xpi/firefox-45.8.0/zh-TW.xpi) = 004c22566602ef5c3905f0d8818018fc77d9f8022c97e15bb9f2841c9711fde3 -SIZE (xpi/firefox-45.8.0/zh-TW.xpi) = 466529 +TIMESTAMP = 1491886176 +SHA256 (xpi/firefox-52.1.0/ach.xpi) = aaa528f7f394e4801aab21d0d6f0313fc8a4b786873dab9c004c2dd741095c7f +SIZE (xpi/firefox-52.1.0/ach.xpi) = 427640 +SHA256 (xpi/firefox-52.1.0/af.xpi) = 2bda3bfc9b83a76df12234fb68db9bad1f836593b760bcc5dd8c831dff06c994 +SIZE (xpi/firefox-52.1.0/af.xpi) = 436823 +SHA256 (xpi/firefox-52.1.0/an.xpi) = 11984920e096e97b7defa905d749cebf4c4d5a8648bc9263cbd008f8bb9c9af5 +SIZE (xpi/firefox-52.1.0/an.xpi) = 445142 +SHA256 (xpi/firefox-52.1.0/ar.xpi) = 6fedf28099b26244349b8cfd85c8c0d3c44b26e6fc888498413cfad923a8497b +SIZE (xpi/firefox-52.1.0/ar.xpi) = 473382 +SHA256 (xpi/firefox-52.1.0/as.xpi) = 9c64fa1854a0b8bceab3237b7f9516e1bd73cb24089fd4b422b3705958f847fc +SIZE (xpi/firefox-52.1.0/as.xpi) = 486888 +SHA256 (xpi/firefox-52.1.0/ast.xpi) = 2feae76cbfc4a12f8c2ec4788bf16d0ccc1257b90f4d182e7c3d64ece636c0d5 +SIZE (xpi/firefox-52.1.0/ast.xpi) = 440033 +SHA256 (xpi/firefox-52.1.0/az.xpi) = 7dcc5b97f3ecf887f7372f39d050eab1163efa02463f2d689b50e458c75bf8d9 +SIZE (xpi/firefox-52.1.0/az.xpi) = 454923 +SHA256 (xpi/firefox-52.1.0/bg.xpi) = abbf23207d9704b2fdfb2fa3448d07640c4d185ec2a9d427ba37d6aa57886a37 +SIZE (xpi/firefox-52.1.0/bg.xpi) = 487891 +SHA256 (xpi/firefox-52.1.0/bn-BD.xpi) = d697f0eca8217f9e69738e513e82f02cd301ffb42ca1133c8ad464930404c554 +SIZE (xpi/firefox-52.1.0/bn-BD.xpi) = 511994 +SHA256 (xpi/firefox-52.1.0/bn-IN.xpi) = 2669ff2c9c89fa4c10d0f95f08a677420c1a7eaf6e5980c1071e2086fe493990 +SIZE (xpi/firefox-52.1.0/bn-IN.xpi) = 509375 +SHA256 (xpi/firefox-52.1.0/br.xpi) = 97608859ead1b10dc1d2f05ac4bea632ccbe1aea3375a28b2dd36abfd2f6fdee +SIZE (xpi/firefox-52.1.0/br.xpi) = 435482 +SHA256 (xpi/firefox-52.1.0/bs.xpi) = 3ad5709d451a32ef0ac51468588e41e3153bec352221b858c56f82d6cbef55ce +SIZE (xpi/firefox-52.1.0/bs.xpi) = 441782 +SHA256 (xpi/firefox-52.1.0/ca.xpi) = 69af86fe9453373c3b41dc9cd370917f563eeeeba750eb6d99bef31e6050de70 +SIZE (xpi/firefox-52.1.0/ca.xpi) = 443303 +SHA256 (xpi/firefox-52.1.0/cs.xpi) = 0fd5d4786b639fc44fbb8b4d7bcdda883da58204f78fbc55b684139fd72a778a +SIZE (xpi/firefox-52.1.0/cs.xpi) = 444075 +SHA256 (xpi/firefox-52.1.0/cy.xpi) = 78e2c91debf309d1c69f86e1ec8df38a006c23853cee5de87c298167daa47213 +SIZE (xpi/firefox-52.1.0/cy.xpi) = 436583 +SHA256 (xpi/firefox-52.1.0/da.xpi) = 8c73cc13da9fddf78deba643976fb43d493af3e66cc7d0260ecce0674c517189 +SIZE (xpi/firefox-52.1.0/da.xpi) = 424394 +SHA256 (xpi/firefox-52.1.0/de.xpi) = 9a030a63136583c071cdf57c2d857ba1faa2e43c1fb146f0dde48cfb0563e3bb +SIZE (xpi/firefox-52.1.0/de.xpi) = 442478 +SHA256 (xpi/firefox-52.1.0/dsb.xpi) = 7f5078ed137a74d6e441edfc09e2dae084443f292620b4ae37ea29b99ba004e8 +SIZE (xpi/firefox-52.1.0/dsb.xpi) = 459424 +SHA256 (xpi/firefox-52.1.0/el.xpi) = dcb41271678ba967bb8f2df01906dae87e4d14386ef1880675212988d9e01722 +SIZE (xpi/firefox-52.1.0/el.xpi) = 516592 +SHA256 (xpi/firefox-52.1.0/en-GB.xpi) = 24df2612d92ea2ec9b69ac21f377b0061463c1025f5259221c18132b2ed9b627 +SIZE (xpi/firefox-52.1.0/en-GB.xpi) = 419323 +SHA256 (xpi/firefox-52.1.0/en-US.xpi) = 87dd5705c916afc40890fb595bde1b2d5dcc148bf97bfd22cfbd937e004f83e4 +SIZE (xpi/firefox-52.1.0/en-US.xpi) = 428630 +SHA256 (xpi/firefox-52.1.0/en-ZA.xpi) = 00c764b77d38eb66f1975dae4e7eb11c64bd908e08831c98aca1d8b128f75324 +SIZE (xpi/firefox-52.1.0/en-ZA.xpi) = 412211 +SHA256 (xpi/firefox-52.1.0/eo.xpi) = fb85aa82a8937bd36f722a31e47458e62dd74425172222c303408b3a7310aad4 +SIZE (xpi/firefox-52.1.0/eo.xpi) = 437473 +SHA256 (xpi/firefox-52.1.0/es-AR.xpi) = bbf6951dee0edd98af3a6817e80bbfcf263f1530abdf1c1305c607fccff9c4d7 +SIZE (xpi/firefox-52.1.0/es-AR.xpi) = 445925 +SHA256 (xpi/firefox-52.1.0/es-CL.xpi) = b6e62a993c5927c99feeba35e932ba896a14c49c4a8fd1e7f8c606236f263df7 +SIZE (xpi/firefox-52.1.0/es-CL.xpi) = 445675 +SHA256 (xpi/firefox-52.1.0/es-ES.xpi) = fbdf9804d4320a286ddbd75108537819f13979a45d1a16f31956f79bf01836f8 +SIZE (xpi/firefox-52.1.0/es-ES.xpi) = 344875 +SHA256 (xpi/firefox-52.1.0/es-MX.xpi) = d118efbaaa7dd43b1e952691df8438f7243e8783444f66167ae33750919b73ce +SIZE (xpi/firefox-52.1.0/es-MX.xpi) = 448384 +SHA256 (xpi/firefox-52.1.0/et.xpi) = 991c77b981d6d1e4b4bfb6e236fd33bd814aca3212967c2e279d98915ffe3838 +SIZE (xpi/firefox-52.1.0/et.xpi) = 425112 +SHA256 (xpi/firefox-52.1.0/eu.xpi) = ac5d0468e00e9975b1ab7e79f73d662c185a2ab6f3976f67d8bac9b45663cc70 +SIZE (xpi/firefox-52.1.0/eu.xpi) = 438478 +SHA256 (xpi/firefox-52.1.0/fa.xpi) = 907622303642e0d5a09aa6fe4aa5eb5bdca70701ffd57255c1fc1083b89dde82 +SIZE (xpi/firefox-52.1.0/fa.xpi) = 491343 +SHA256 (xpi/firefox-52.1.0/ff.xpi) = 91be72df5b6a67b36c76a609cbfb4431fac3d1208e4423301bf4b14268200056 +SIZE (xpi/firefox-52.1.0/ff.xpi) = 440928 +SHA256 (xpi/firefox-52.1.0/fi.xpi) = 26bf0fcb296bfaa95b4a773d5b24bf5591f67562b5526d4112e772247723210f +SIZE (xpi/firefox-52.1.0/fi.xpi) = 430061 +SHA256 (xpi/firefox-52.1.0/fr.xpi) = 871f861ed6dd9256efcbe0c37937a91323bc61344eac45ff96d35eda37cbc7f3 +SIZE (xpi/firefox-52.1.0/fr.xpi) = 450210 +SHA256 (xpi/firefox-52.1.0/fy-NL.xpi) = 121e2d3d60f05b9715bc78c1abbc4da96d8433b800721ff54399afff6dbc49ca +SIZE (xpi/firefox-52.1.0/fy-NL.xpi) = 444973 +SHA256 (xpi/firefox-52.1.0/ga-IE.xpi) = 302f5693f5be52c96e5261b6552d76f7010aa5db007d8956967d4aac5f94b095 +SIZE (xpi/firefox-52.1.0/ga-IE.xpi) = 458164 +SHA256 (xpi/firefox-52.1.0/gd.xpi) = 756e9e47cf0f5fbc16ee6e697182c1738e8aef303a4b240b82ac61cfccdbabbf +SIZE (xpi/firefox-52.1.0/gd.xpi) = 447267 +SHA256 (xpi/firefox-52.1.0/gl.xpi) = c88a2ee3dfadc5a0ce92bedc81a0aee5f28b60ab6fc025a3252249809d26f630 +SIZE (xpi/firefox-52.1.0/gl.xpi) = 447295 +SHA256 (xpi/firefox-52.1.0/gn.xpi) = 66e621462c612b7857489511f888ea14645805d0eee9b679d04238999ab7f9b2 +SIZE (xpi/firefox-52.1.0/gn.xpi) = 456213 +SHA256 (xpi/firefox-52.1.0/gu-IN.xpi) = 52908d8932a07738f6113a618628086e1a236da6aa34206f0fcac774632634c0 +SIZE (xpi/firefox-52.1.0/gu-IN.xpi) = 489365 +SHA256 (xpi/firefox-52.1.0/he.xpi) = da75ac77f78d71d26ec4cf2dbce7c137d5fe4e78caea88577c550a95f20b9caf +SIZE (xpi/firefox-52.1.0/he.xpi) = 455282 +SHA256 (xpi/firefox-52.1.0/hi-IN.xpi) = 09db771f3b794ce51598cbece81a362a9401fcde8071898db8423ddc031b6f0e +SIZE (xpi/firefox-52.1.0/hi-IN.xpi) = 506518 +SHA256 (xpi/firefox-52.1.0/hr.xpi) = 699db658924dbbb6c0b1f8d160e3c20a0357a6197a7fd6576ca1f3b5bd5ff438 +SIZE (xpi/firefox-52.1.0/hr.xpi) = 447502 +SHA256 (xpi/firefox-52.1.0/hsb.xpi) = e514e07c823bfccc003c7caa93e0d0af49bbcaa7f3f5ec2fd0e35add73ea040d +SIZE (xpi/firefox-52.1.0/hsb.xpi) = 457258 +SHA256 (xpi/firefox-52.1.0/hu.xpi) = 62a65d6dabdc2370987735da7426ce5acc4325b3cbab31b1615d39f4a872d891 +SIZE (xpi/firefox-52.1.0/hu.xpi) = 451495 +SHA256 (xpi/firefox-52.1.0/hy-AM.xpi) = 4987323930c67b85fee1f5a4d775a2ae0748eb6183656f2ff25375e06794f6b9 +SIZE (xpi/firefox-52.1.0/hy-AM.xpi) = 495773 +SHA256 (xpi/firefox-52.1.0/id.xpi) = c1094fa40ca88e22526a1da963e6d3fedf03388701faf9b933869abf69b9a90c +SIZE (xpi/firefox-52.1.0/id.xpi) = 426023 +SHA256 (xpi/firefox-52.1.0/is.xpi) = 00c393fc58daf5fb57f3a289001e19cb28eda9716e07decd52d3d216a62a3584 +SIZE (xpi/firefox-52.1.0/is.xpi) = 442693 +SHA256 (xpi/firefox-52.1.0/it.xpi) = 6bdc6d51dee1fd6a513caf6cc81ae5012d9d5c8639c25957a4019cbf8ab3c408 +SIZE (xpi/firefox-52.1.0/it.xpi) = 339220 +SHA256 (xpi/firefox-52.1.0/ja.xpi) = 0d62b4f0485397a167c4432ee3acb7c6e80557d10cfd3a4734ad02b1b1f93061 +SIZE (xpi/firefox-52.1.0/ja.xpi) = 488342 +SHA256 (xpi/firefox-52.1.0/kk.xpi) = 58c3f660493537076edb1e31b9f89b0492eb359794517bf5b2da511facb53cc3 +SIZE (xpi/firefox-52.1.0/kk.xpi) = 496939 +SHA256 (xpi/firefox-52.1.0/km.xpi) = a9e06fb46b571de4e3e4de68b0e98f71818cbf3ed07e4e278ebf44d1cbf89eae +SIZE (xpi/firefox-52.1.0/km.xpi) = 520343 +SHA256 (xpi/firefox-52.1.0/kn.xpi) = 52790b78f00d530afd06187196cf78004ae6506e8b0d4cc5c9e08b0b3b641dad +SIZE (xpi/firefox-52.1.0/kn.xpi) = 519455 +SHA256 (xpi/firefox-52.1.0/ko.xpi) = 15eeaa8a8dfe177aa65605abd8d06818142865a81f9a19bb39e46844da505931 +SIZE (xpi/firefox-52.1.0/ko.xpi) = 463629 +SHA256 (xpi/firefox-52.1.0/lij.xpi) = bb8647019b8a13ddfe48bda7a9bc5e6641d4c956f9aabfc0baf559fb9ba5d3a9 +SIZE (xpi/firefox-52.1.0/lij.xpi) = 421070 +SHA256 (xpi/firefox-52.1.0/lt.xpi) = 579a850cf726c4e2cc0608218e25e45bd3bfc3f29c44f70e9c299810c3836412 +SIZE (xpi/firefox-52.1.0/lt.xpi) = 452235 +SHA256 (xpi/firefox-52.1.0/lv.xpi) = 9e0d770ee4bc4eda603b27cc69dcbacf922fc58149039b53f715db232ed3891d +SIZE (xpi/firefox-52.1.0/lv.xpi) = 448450 +SHA256 (xpi/firefox-52.1.0/mai.xpi) = 25358f6508930d3960c5ae029bbc5414b93ccc9f21a3bc53268857970698d4ed +SIZE (xpi/firefox-52.1.0/mai.xpi) = 499841 +SHA256 (xpi/firefox-52.1.0/mk.xpi) = 66518b2bf8f43caf02f8f46cdac906f92430b9e30b89f14ae48df8bd8132c4bd +SIZE (xpi/firefox-52.1.0/mk.xpi) = 496199 +SHA256 (xpi/firefox-52.1.0/ml.xpi) = d8c391910e955edf462a279524ca283a0111e57273e9a53467404a244cedda89 +SIZE (xpi/firefox-52.1.0/ml.xpi) = 516486 +SHA256 (xpi/firefox-52.1.0/mr.xpi) = 9152aa3cf23f576d5288b575d67c81b85a8a2059c10a955a08f0e6944c95d15e +SIZE (xpi/firefox-52.1.0/mr.xpi) = 502430 +SHA256 (xpi/firefox-52.1.0/ms.xpi) = f653115354ba1fc458b4fe4d9b357a9b3f958ca7a68d1d93909c922837181ccc +SIZE (xpi/firefox-52.1.0/ms.xpi) = 435990 +SHA256 (xpi/firefox-52.1.0/nb-NO.xpi) = f22e0d4f168946940e76648bf1f7490b18679caf7a4968387adcec3a6356e460 +SIZE (xpi/firefox-52.1.0/nb-NO.xpi) = 434411 +SHA256 (xpi/firefox-52.1.0/nl.xpi) = ea2d7b61f5d63d56b6cf825fea1c13f45049826446a4173f749b80849ed05643 +SIZE (xpi/firefox-52.1.0/nl.xpi) = 432007 +SHA256 (xpi/firefox-52.1.0/nn-NO.xpi) = f2ff89745686fd069c2ace20af3e186c98e6a14516c04a84036fa868e704a778 +SIZE (xpi/firefox-52.1.0/nn-NO.xpi) = 428644 +SHA256 (xpi/firefox-52.1.0/or.xpi) = 216f9e769a3617d1d64b82cbd6ca93cf6cbca87340c3102d27757a861288f434 +SIZE (xpi/firefox-52.1.0/or.xpi) = 496917 +SHA256 (xpi/firefox-52.1.0/pa-IN.xpi) = de2ab48f12e1ee79dd943a17b69c5f54e611de6f5262a3dc26dd44759f3110ac +SIZE (xpi/firefox-52.1.0/pa-IN.xpi) = 476587 +SHA256 (xpi/firefox-52.1.0/pl.xpi) = dcbd1720686c17ed38f565c74e359e1eb3b10593eaf03d69e4c6cc828cba36c1 +SIZE (xpi/firefox-52.1.0/pl.xpi) = 352851 +SHA256 (xpi/firefox-52.1.0/pt-BR.xpi) = 8f7c422d25eb13568802027a47fb544ac6df5274878859747b1d971722e16fbc +SIZE (xpi/firefox-52.1.0/pt-BR.xpi) = 438169 +SHA256 (xpi/firefox-52.1.0/pt-PT.xpi) = c33221725e433dcf43576490054d2eab6508d1d7466a2219a50045fa2829bac5 +SIZE (xpi/firefox-52.1.0/pt-PT.xpi) = 436726 +SHA256 (xpi/firefox-52.1.0/rm.xpi) = 32ffa2f6ec44a00673175e9b2fa9604311261b827752dec21a7b2852149ac714 +SIZE (xpi/firefox-52.1.0/rm.xpi) = 434608 +SHA256 (xpi/firefox-52.1.0/ro.xpi) = 1716cb258768432d6e93725318baaf3dfbfef8e794ef45c175ae36a1ecd3b820 +SIZE (xpi/firefox-52.1.0/ro.xpi) = 449937 +SHA256 (xpi/firefox-52.1.0/ru.xpi) = 7f83816417cf538c922d8956e502afe63785971c9daed0f7612aa6cc7c2c2e45 +SIZE (xpi/firefox-52.1.0/ru.xpi) = 395363 +SHA256 (xpi/firefox-52.1.0/si.xpi) = cf6f951b34148fba88ca4dff0bdbfae5d8e7db4be0e381caab2c3667d6a39c61 +SIZE (xpi/firefox-52.1.0/si.xpi) = 491958 +SHA256 (xpi/firefox-52.1.0/sk.xpi) = 21acf4974b6b130e7be2ddda6d68423c6204f360a5ccbb892ff0ce65b272a7ab +SIZE (xpi/firefox-52.1.0/sk.xpi) = 455819 +SHA256 (xpi/firefox-52.1.0/sl.xpi) = 3298e941c2ab1411e973d13a941edde04563675a9650c244782f89c9bc4138d6 +SIZE (xpi/firefox-52.1.0/sl.xpi) = 433482 +SHA256 (xpi/firefox-52.1.0/son.xpi) = ecc893020de0603f2ee7accf53014740c3dfc0b05eacf11fae96cc36acf4ce73 +SIZE (xpi/firefox-52.1.0/son.xpi) = 435127 +SHA256 (xpi/firefox-52.1.0/sq.xpi) = e7bd223209d997b13addd48a316f93da5687cfd941d027ff1cbbf1ccbc0861eb +SIZE (xpi/firefox-52.1.0/sq.xpi) = 448155 +SHA256 (xpi/firefox-52.1.0/sr.xpi) = 9b28684db2933399a0fd35ad66b938e9c72a445e73e6150928f91359ad399376 +SIZE (xpi/firefox-52.1.0/sr.xpi) = 463394 +SHA256 (xpi/firefox-52.1.0/sv-SE.xpi) = bf7280cd8f995868d7204d12de7f7444daabada8b8a748094d7c460072d551e1 +SIZE (xpi/firefox-52.1.0/sv-SE.xpi) = 441180 +SHA256 (xpi/firefox-52.1.0/ta.xpi) = 8a232709dcbc90fcf55c4245f86f2862c781fe1786076f91dcfc823aaf85e582 +SIZE (xpi/firefox-52.1.0/ta.xpi) = 494797 +SHA256 (xpi/firefox-52.1.0/te.xpi) = 5a4d385bac1db32e082b12c1176fe74990c182a3d80309599a0eefb5ec0ba43b +SIZE (xpi/firefox-52.1.0/te.xpi) = 515240 +SHA256 (xpi/firefox-52.1.0/th.xpi) = 1497f40d9cfc182d864845ed07abd407334b4412a204620f3665b139ea31a190 +SIZE (xpi/firefox-52.1.0/th.xpi) = 489378 +SHA256 (xpi/firefox-52.1.0/tr.xpi) = 98c3189161b5388c807210c3df1fee39a1266752461c497064632d8e4bdaf17d +SIZE (xpi/firefox-52.1.0/tr.xpi) = 443673 +SHA256 (xpi/firefox-52.1.0/uk.xpi) = 7c3d3e674b14df5d34ebaa9acbd8246a5613dbd402c7eb6f9932faffe1feac72 +SIZE (xpi/firefox-52.1.0/uk.xpi) = 495094 +SHA256 (xpi/firefox-52.1.0/uz.xpi) = dd662267de891c3c67f3ba83b679e2cd181f028a7d606f981411a0fd5568476d +SIZE (xpi/firefox-52.1.0/uz.xpi) = 447916 +SHA256 (xpi/firefox-52.1.0/vi.xpi) = b90a4c3845b328436eb908741d8308855cdc25b418553683fc271c31a570cf42 +SIZE (xpi/firefox-52.1.0/vi.xpi) = 450804 +SHA256 (xpi/firefox-52.1.0/xh.xpi) = f24de110815f6d50f70b71b4f59f5c2268d8a00593972ce9f9c9dda269d3f79c +SIZE (xpi/firefox-52.1.0/xh.xpi) = 441172 +SHA256 (xpi/firefox-52.1.0/zh-CN.xpi) = ed4afe83bed6c76b8051a3b4972d2d0469e11e59ea41e38232a94decd8f8e399 +SIZE (xpi/firefox-52.1.0/zh-CN.xpi) = 461694 +SHA256 (xpi/firefox-52.1.0/zh-TW.xpi) = f2aa1acca0afb7de7ae5cb939267cbc71c9fcf5bbd2239f89e8901cbe83fd999 +SIZE (xpi/firefox-52.1.0/zh-TW.xpi) = 472533 diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile index ce44439..04dae97 100644 --- a/www/firefox-esr/Makefile +++ b/www/firefox-esr/Makefile @@ -2,33 +2,33 @@ # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 45.8.0 +DISTVERSION= 52.1.0 DISTVERSIONSUFFIX=esr.source -PORTREVISION= 3 +PORTREVISION= 2 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build2/source + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build3/source PKGNAMESUFFIX= -esr MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.12:devel/nspr \ - nss>=3.21.3:security/nss \ +BUILD_DEPENDS= nspr>=4.13.1:devel/nspr \ + nss>=3.29.5:security/nss \ libevent>=2.0.21_2:devel/libevent \ - soundtouch>=1.9.0:audio/soundtouch \ - harfbuzz>=1.1.0:print/harfbuzz \ - graphite2>=1.3.6:graphics/graphite2 \ - png>=1.6.19:graphics/png \ + harfbuzz>=1.4.1:print/harfbuzz \ + graphite2>=1.3.8:graphics/graphite2 \ + png>=1.6.28:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ - sqlite3>=3.9.1:databases/sqlite3 \ + sqlite3>=3.17.0:databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ yasm:devel/yasm \ zip:archivers/zip +# soundtouch>=1.9.0:audio/soundtouch \ LIB_DEPENDS= libv4l2.so:multimedia/libv4l @@ -36,7 +36,7 @@ USE_GECKO= gecko CPE_PRODUCT= ${PORTNAME}_esr CONFLICTS_INSTALL= firefox-[0-9]* MOZ_PKGCONFIG_FILES= # empty -USE_MOZILLA= # empty +USE_MOZILLA= -soundtouch MOZILLA_NAME= Firefox USE_GL= gl @@ -44,8 +44,7 @@ USES= tar:xz FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png -MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \ - --enable-application=browser \ +MOZ_OPTIONS= --enable-application=browser \ --enable-official-branding OPTIONS_DEFINE= RUST diff --git a/www/firefox-esr/distinfo b/www/firefox-esr/distinfo index ed6516b..3698123 100644 --- a/www/firefox-esr/distinfo +++ b/www/firefox-esr/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1488487483 -SHA256 (firefox-45.8.0esr.source.tar.xz) = 7e28decd81f78070b433c69ebd7498f2e46e7cc5c5c6bff9a8cd7380d09da17a -SIZE (firefox-45.8.0esr.source.tar.xz) = 185229628 +TIMESTAMP = 1492454000 +SHA256 (firefox-52.1.0esr.source.tar.xz) = da2ba9630b8b56c6f5d36d9f3da2d984ef7986dc8b4d804f6947fcea6c24637d +SIZE (firefox-52.1.0esr.source.tar.xz) = 212348684 diff --git a/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp b/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp index 97b7b8d..68cb778 100644 --- a/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp +++ b/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp @@ -1,11 +1,12 @@ ---- browser/app/nsBrowserApp.cpp~ +--- browser/app/nsBrowserApp.cpp.orig 2016-09-19 16:19:28 UTC +++ browser/app/nsBrowserApp.cpp -@@ -417,6 +417,8 @@ int main(int argc, char* argv[]) - TriggerQuirks(); - #endif +@@ -324,6 +324,9 @@ int main(int argc, char* argv[], char* e + { + mozilla::TimeStamp start = mozilla::TimeStamp::Now(); + setenv("MOZ_GMP_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0); + setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0); - int gotCounters; - #if defined(XP_UNIX) - struct rusage initialRUsage; ++ + #ifdef HAS_DLL_BLOCKLIST + DllBlocklist_Initialize(); + diff --git a/www/firefox-esr/files/patch-bug1013882 b/www/firefox-esr/files/patch-bug1013882 deleted file mode 100644 index 80f45c0..0000000 --- a/www/firefox-esr/files/patch-bug1013882 +++ /dev/null @@ -1,69 +0,0 @@ -diff --git b2g/installer/Makefile.in b2g/installer/Makefile.in -index 754312a..c69904c 100644 ---- b2g/installer/Makefile.in -+++ b2g/installer/Makefile.in -@@ -101,6 +101,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS) - DEFINES += -DMOZ_RTSP - endif - -+ifdef MOZ_DEBUG -+DEFINES += -DMOZ_DEBUG=1 -+endif -+ - DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION) - ifdef MOZ_NATIVE_ICU - DEFINES += -DMOZ_NATIVE_ICU -diff --git b2g/installer/package-manifest.in b2g/installer/package-manifest.in -index 17d433c..0416187 100644 ---- b2g/installer/package-manifest.in -+++ b2g/installer/package-manifest.in -@@ -660,7 +660,7 @@ - @RESPATH@/components/EngineeringModeAPI.js - @RESPATH@/components/EngineeringModeService.js - --#ifdef MOZ_DEBUG -+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) - @RESPATH@/components/TestInterfaceJS.js - @RESPATH@/components/TestInterfaceJS.manifest - #endif -diff --git browser/installer/package-manifest.in browser/installer/package-manifest.in -index b509fd4..195345c 100644 ---- browser/installer/package-manifest.in -+++ browser/installer/package-manifest.in -@@ -608,7 +608,7 @@ - @RESPATH@/components/MozKeyboard.js - @RESPATH@/components/InputMethod.manifest - --#ifdef MOZ_DEBUG -+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) - @RESPATH@/components/TestInterfaceJS.js - @RESPATH@/components/TestInterfaceJS.manifest - #endif -diff --git mobile/android/installer/Makefile.in mobile/android/installer/Makefile.in -index 96dceab..3528ad6 100644 ---- mobile/android/installer/Makefile.in -+++ mobile/android/installer/Makefile.in -@@ -41,6 +41,10 @@ BINPATH = bin - endif - DEFINES += -DBINPATH=$(BINPATH) - -+ifdef MOZ_DEBUG -+DEFINES += -DMOZ_DEBUG=1 -+endif -+ - ifdef ENABLE_MARIONETTE - DEFINES += -DENABLE_MARIONETTE=1 - endif -diff --git mobile/android/installer/package-manifest.in mobile/android/installer/package-manifest.in -index 994580b..cf142df 100644 ---- mobile/android/installer/package-manifest.in -+++ mobile/android/installer/package-manifest.in -@@ -440,7 +440,7 @@ - @BINPATH@/components/dom_webspeechsynth.xpt - #endif - --#ifdef MOZ_DEBUG -+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) - @BINPATH@/components/TestInterfaceJS.js - @BINPATH@/components/TestInterfaceJS.manifest - #endif diff --git a/www/firefox-esr/files/patch-bug1021761 b/www/firefox-esr/files/patch-bug1021761 index 3d6ff77..a73bd09 100644 --- a/www/firefox-esr/files/patch-bug1021761 +++ b/www/firefox-esr/files/patch-bug1021761 @@ -1,7 +1,19 @@ -diff --git configure.in configure.in +diff --git build/moz.configure/old.configure build/moz.configure/old.configure +index b95dd2b..4cbefd5 100644 +--- build/moz.configure/old.configure ++++ build/moz.configure/old.configure +@@ -305,6 +305,7 @@ def old_configure_options(*options): + '--with-nspr-prefix', + '--with-nss-exec-prefix', + '--with-nss-prefix', ++ '--with-oss', + '--with-pthreads', + '--with-qemu-exe', + '--with-servo', +diff --git old-configure.in configure.in index 48e60c0..ec08417 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -5591,6 +5591,67 @@ fi AC_SUBST(MOZ_WEBM_ENCODER) @@ -175,22 +187,13 @@ index a962553..1f780f4 100644 }; enum stream_state { -@@ -262,7 +309,7 @@ alsa_refill_stream(cubeb_stream * stm) +@@ -260,10 +307,10 @@ alsa_refill_stream(cubeb_stream * stm) pthread_mutex_lock(&stm->mutex); -- r = snd_pcm_poll_descriptors_revents(stm->pcm, stm->fds, stm->nfds, &revents); -+ r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents); - if (r < 0 || revents != POLLOUT) { - /* This should be a stream error; it makes no sense for poll(2) to wake - for this stream and then have the stream report that it's not ready. -@@ -271,10 +318,10 @@ alsa_refill_stream(cubeb_stream * stm) - return RUNNING; - } - - avail = snd_pcm_avail_update(stm->pcm); + avail = WRAP(snd_pcm_avail_update)(stm->pcm); - if (avail == -EPIPE) { + if (avail < 0) { - snd_pcm_recover(stm->pcm, avail, 1); - avail = snd_pcm_avail_update(stm->pcm); + WRAP(snd_pcm_recover)(stm->pcm, avail, 1); @@ -198,19 +201,8 @@ index a962553..1f780f4 100644 } /* Failed to recover from an xrun, this stream must be broken. */ -@@ -293,8 +340,8 @@ alsa_refill_stream(cubeb_stream * stm) - available to write. If avail is still zero here, the stream must be in - a funky state, so recover and try again. */ - if (avail == 0) { -- snd_pcm_recover(stm->pcm, -EPIPE, 1); -- avail = snd_pcm_avail_update(stm->pcm); -+ WRAP(snd_pcm_recover)(stm->pcm, -EPIPE, 1); -+ avail = WRAP(snd_pcm_avail_update)(stm->pcm); - if (avail <= 0) { - pthread_mutex_unlock(&stm->mutex); - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -@@ -302,7 +349,7 @@ alsa_refill_stream(cubeb_stream * stm) - } +@@ -286,7 +333,7 @@ alsa_refill_stream(cubeb_stream * stm) + return RUNNING; } - p = calloc(1, snd_pcm_frames_to_bytes(stm->pcm, avail)); @@ -218,13 +210,13 @@ index a962553..1f780f4 100644 assert(p); pthread_mutex_unlock(&stm->mutex); -@@ -327,10 +374,10 @@ alsa_refill_stream(cubeb_stream * stm) +@@ -312,10 +359,10 @@ alsa_refill_stream(cubeb_stream * stm) b[i] *= stm->volume; } } - wrote = snd_pcm_writei(stm->pcm, p, got); + wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); - if (wrote == -EPIPE) { + if (wrote < 0) { - snd_pcm_recover(stm->pcm, wrote, 1); - wrote = snd_pcm_writei(stm->pcm, p, got); + WRAP(snd_pcm_recover)(stm->pcm, wrote, 1); @@ -502,24 +494,22 @@ index a962553..1f780f4 100644 + r = WRAP(snd_pcm_nonblock)(stm->pcm, 1); assert(r == 0); - /* Ugly hack: the PA ALSA plugin allows buffer configurations that can't -@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, - latency = latency < 500 ? 500 : latency; + latency_us = latency_frames * 1e6 / stm->params.rate; +@@ -855,7 +961,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre + latency_us = latency_us < min_latency ? min_latency: latency_us; } - r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, -- stm->params.channels, stm->params.rate, 1, -- latency * 1000); + r = WRAP(snd_pcm_set_params)(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, -+ stm->params.channels, stm->params.rate, 1, -+ latency * 1000); + stm->params.channels, stm->params.rate, 1, + latency_us); if (r < 0) { - alsa_stream_destroy(stm); +@@ -867,15 +973,15 @@ alsa_stream_init(cubeb * ctx, cubeb_stre return CUBEB_ERROR_INVALID_FORMAT; } -- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size); -+ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->period_size); +- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &period_size); ++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &period_size); assert(r == 0); - stm->nfds = snd_pcm_poll_descriptors_count(stm->pcm); @@ -557,12 +547,12 @@ index a962553..1f780f4 100644 if (r < 0) { return CUBEB_ERROR; } -@@ -963,34 +1069,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) { +@@ -969,34 +1075,34 @@ alsa_get_preferred_sample_rate(cubeb * c /* get a pcm, disabling resampling, so we get a rate the * hardware/dmix/pulse/etc. supports. */ -- r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); -+ r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); +- r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK, SND_PCM_NO_AUTO_RESAMPLE); ++ r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK, SND_PCM_NO_AUTO_RESAMPLE); if (r < 0) { return CUBEB_ERROR; } @@ -643,7 +633,7 @@ new file mode 100644 index 0000000..5e38e27 --- /dev/null +++ media/libcubeb/src/cubeb_oss.c -@@ -0,0 +1,432 @@ +@@ -0,0 +1,442 @@ +/* + * Copyright © 2014 Mozilla Foundation + * @@ -664,6 +654,7 @@ index 0000000..5e38e27 +#include <errno.h> +#include <pthread.h> +#include <stdio.h> ++#include <assert.h> + +#include "cubeb/cubeb.h" +#include "cubeb-internal.h" @@ -762,7 +753,7 @@ index 0000000..5e38e27 + pthread_mutex_lock(&stream->state_mutex); + if (stream->data_callback && stream->running && !stream->stopped) { + pthread_mutex_unlock(&stream->state_mutex); -+ got = stream->data_callback(stream, stream->user_ptr, buffer, nframes); ++ got = stream->data_callback(stream, stream->user_ptr, NULL, buffer, nframes); + } else { + pthread_mutex_unlock(&stream->state_mutex); + } @@ -892,7 +883,10 @@ index 0000000..5e38e27 + +static int oss_stream_init(cubeb * context, cubeb_stream ** stm, + char const * stream_name, -+ cubeb_stream_params stream_params, ++ cubeb_devid input_device, ++ cubeb_stream_params * input_stream_params, ++ cubeb_devid output_device, ++ cubeb_stream_params * output_stream_params, + unsigned int latency, + cubeb_data_callback data_callback, + cubeb_state_callback state_callback, void * user_ptr) @@ -903,6 +897,12 @@ index 0000000..5e38e27 + stream->state_callback = state_callback; + stream->user_ptr = user_ptr; + ++ assert(!input_stream_params && "not supported."); ++ if (input_device || output_device) { ++ /* Device selection not yet implemented. */ ++ return CUBEB_ERROR_DEVICE_UNAVAILABLE; ++ } ++ + if ((stream->fd = open(CUBEB_OSS_DEFAULT_OUTPUT, O_WRONLY)) == -1) { + free(stream); + return CUBEB_ERROR; @@ -914,7 +914,7 @@ index 0000000..5e38e27 + free(stream); \ + return CUBEB_ERROR_INVALID_FORMAT; } } while (0) + -+ stream->params = stream_params; ++ stream->params = *output_stream_params; + stream->volume = 1.0; + stream->panning = 0.0; + @@ -1117,14 +1117,14 @@ diff --git media/libcubeb/update.sh media/libcubeb/update.sh index a96badd..2f9585e 100755 --- media/libcubeb/update.sh +++ media/libcubeb/update.sh -@@ -10,6 +10,7 @@ cp $1/src/cubeb_audiounit.c src - cp $1/src/cubeb_pulse.c src - cp $1/src/cubeb_sndio.c src +@@ -16,6 +16,7 @@ cp $1/src/cubeb_audiounit.cpp src + cp $1/src/cubeb_osx_run_loop.h src + cp $1/src/cubeb_jack.cpp src cp $1/src/cubeb_opensl.c src +cp $1/src/cubeb_oss.c src - cp $1/src/cubeb_audiotrack.c src - cp $1/src/cubeb_wasapi.cpp src - cp $1/src/cubeb_resampler.h src + cp $1/src/cubeb_panner.cpp src + cp $1/src/cubeb_panner.h src + cp $1/src/cubeb_pulse.c src diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build index 991f03f..3d99eb5 100644 --- media/webrtc/signaling/test/common.build @@ -1138,13 +1138,13 @@ index 991f03f..3d99eb5 100644 +if CONFIG['MOZ_OSS']: + OS_LIBS += CONFIG['MOZ_OSS_LIBS'] - if CONFIG['MOZ_NATIVE_JPEG']: + if CONFIG['MOZ_SYSTEM_JPEG']: OS_LIBS += CONFIG['MOZ_JPEG_LIBS'] diff --git toolkit/library/moz.build toolkit/library/moz.build index e191f13..4fb268a 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build -@@ -234,8 +234,8 @@ if CONFIG['MOZ_NATIVE_LIBVPX']: +@@ -234,8 +234,8 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']: if not CONFIG['MOZ_TREE_PIXMAN']: OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS'] diff --git a/www/firefox-esr/files/patch-bug1130155 b/www/firefox-esr/files/patch-bug1130155 deleted file mode 100644 index 34584d4..0000000 --- a/www/firefox-esr/files/patch-bug1130155 +++ /dev/null @@ -1,179 +0,0 @@ -commit eab3e3a -Author: Mikhail Teterin <mi@aldan.algebra.com> -Date: Tue Dec 16 19:34:02 2014 -0800 - - Bug 1130155 - Avoid assert failures when consuming only part of buffer. ---- - media/libcubeb/src/cubeb_alsa.c | 112 ++++++++++++++++++++++++++++++---------- - 1 file changed, 85 insertions(+), 27 deletions(-) - -diff --git media/libcubeb/src/cubeb_alsa.c media/libcubeb/src/cubeb_alsa.c -index 9bbc129..e72944a 100644 ---- media/libcubeb/src/cubeb_alsa.c -+++ media/libcubeb/src/cubeb_alsa.c -@@ -14,6 +14,8 @@ - #include <limits.h> - #include <dlfcn.h> - #include <poll.h> -+#include <stdlib.h> -+#include <stdio.h> - #include <unistd.h> - #include <alsa/asoundlib.h> - #include "cubeb/cubeb.h" -@@ -45,6 +47,7 @@ MAKE_TYPEDEF(snd_pcm_avail_update); - MAKE_TYPEDEF(snd_pcm_close); - MAKE_TYPEDEF(snd_pcm_delay); - MAKE_TYPEDEF(snd_pcm_drain); -+MAKE_TYPEDEF(snd_pcm_forward); - MAKE_TYPEDEF(snd_pcm_frames_to_bytes); - MAKE_TYPEDEF(snd_pcm_get_params); - /* snd_pcm_hw_params_alloca is actually a macro */ -@@ -305,32 +308,35 @@ alsa_refill_stream(cubeb_stream * stm) - long got; - void * p; - int draining; -+ unsigned pipefailures, againfailures; - - draining = 0; - - pthread_mutex_lock(&stm->mutex); - -- r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents); -- if (r < 0 || revents != POLLOUT) { -- /* This should be a stream error; it makes no sense for poll(2) to wake -- for this stream and then have the stream report that it's not ready. -- Unfortunately, this does happen, so just bail out and try again. */ -- pthread_mutex_unlock(&stm->mutex); -- return RUNNING; -- } -+ for (pipefailures = 0;;) { -+ r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents); -+ if (r < 0 || revents != POLLOUT || -+ (avail = WRAP(snd_pcm_avail_update)(stm->pcm)) == 0) { -+ /* This should be a stream error; it makes no sense for poll(2) to wake -+ for this stream and then have the stream report that it's not ready. -+ Unfortunately, this does happen, so just bail out and try again. */ -+ pthread_mutex_unlock(&stm->mutex); -+ return RUNNING; -+ } - -- avail = WRAP(snd_pcm_avail_update)(stm->pcm); -- if (avail == -EPIPE) { -+ if (avail > 0) -+ break; -+ if (pipefailures++ > 11) { -+ fprintf(stderr, "%s: repeated failures from snd_pcm_avail_update, " -+ "giving up\n", __func__); -+ pthread_mutex_unlock(&stm->mutex); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ return ERROR; -+ } - WRAP(snd_pcm_recover)(stm->pcm, avail, 1); -- avail = WRAP(snd_pcm_avail_update)(stm->pcm); -- } -- -- /* Failed to recover from an xrun, this stream must be broken. */ -- if (avail < 0) { -- pthread_mutex_unlock(&stm->mutex); -- stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -- return ERROR; - } -+ pipefailures = againfailures = 0; - - /* This should never happen. */ - if ((unsigned int) avail > stm->buffer_size) { -@@ -359,10 +365,11 @@ alsa_refill_stream(cubeb_stream * stm) - if (got < 0) { - pthread_mutex_unlock(&stm->mutex); - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ free(p); - return ERROR; - } - if (got > 0) { -- snd_pcm_sframes_t wrote; -+ snd_pcm_sframes_t wrote, towrite = got; - - if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) { - float * b = (float *) p; -@@ -375,14 +382,62 @@ alsa_refill_stream(cubeb_stream * stm) - b[i] *= stm->volume; - } - } -- wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); -- if (wrote == -EPIPE) { -- WRAP(snd_pcm_recover)(stm->pcm, wrote, 1); -- wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); -+ for (;;) { -+ wrote = WRAP(snd_pcm_writei)(stm->pcm, p, -+ towrite > avail ? avail : towrite); -+ switch(wrote) { -+ case -EPIPE: -+ if (pipefailures++ > 3) { -+ fprintf(stderr, "%s: Too many underflows, giving up\n", __func__); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ free(p); -+ return ERROR; -+ } -+ WRAP(snd_pcm_recover)(stm->pcm, wrote, 1); -+ continue; -+ case -EAGAIN: -+ if (againfailures++ > 3) { -+ fprintf(stderr, "%s: Too many -EAGAIN errors from snd_pcm_writei, " -+ "giving up\n", __func__); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ free(p); -+ return ERROR; -+ } -+ continue; -+ case -EBADFD: -+ fprintf(stderr, "%s: snc_pcm_writei returned -%s, giving up\n", -+ __func__, "EBADFD"); -+ free(p); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ return ERROR; -+ } -+ if (wrote < 0) { -+ fprintf(stderr, "%s: snc_pcm_writei returned unexpected error %lld, " -+ "giving up\n", __func__, (long long)wrote); -+ free(p); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ return ERROR; -+ } -+ pipefailures = againfailures = 0; -+ stm->write_position += wrote; -+ gettimeofday(&stm->last_activity, NULL); -+ if (wrote > towrite) { -+ fprintf(stderr, "%s: snc_pcm_writei wrote %lld frames, which was more " -+ "than we requested (%lld). This should not happen, giving up\n", -+ __func__, (long long)wrote, (long long)towrite); -+ free(p); -+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); -+ pthread_mutex_unlock(&stm->mutex); -+ return ERROR; -+ } -+ if (towrite == wrote) -+ break; -+ towrite -= wrote; - } -- assert(wrote >= 0 && wrote == got); -- stm->write_position += wrote; -- gettimeofday(&stm->last_activity, NULL); - } - if (got != avail) { - long buffer_fill = stm->buffer_size - (avail - got); -@@ -1177,7 +1232,10 @@ alsa_stream_get_position(cubeb_stream * stm, uint64_t * position) - return CUBEB_OK; - } - -- assert(delay >= 0); -+ if (delay < 0) { -+ WRAP(snd_pcm_forward)(stm->pcm, -delay); -+ delay = 0; -+ } - - *position = 0; - if (stm->write_position >= (snd_pcm_uframes_t) delay) { diff --git a/www/firefox-esr/files/patch-bug1153151 b/www/firefox-esr/files/patch-bug1153151 deleted file mode 100644 index 855cdab..0000000 --- a/www/firefox-esr/files/patch-bug1153151 +++ /dev/null @@ -1,13 +0,0 @@ -Bug 1153151 - make libcubeb sndio use non-blocking i/o - ---- media/libcubeb/src/cubeb_sndio.c.orig 2017-01-12 17:53:15 UTC -+++ media/libcubeb/src/cubeb_sndio.c -@@ -187,7 +187,7 @@ sndio_stream_init(cubeb *context, - if (s == NULL) - return CUBEB_ERROR; - s->context = context; -- s->hdl = sio_open(NULL, SIO_PLAY, 0); -+ s->hdl = sio_open(NULL, SIO_PLAY, 1); - if (s->hdl == NULL) { - free(s); - DPR("sndio_stream_init(), sio_open() failed\n"); diff --git a/www/firefox-esr/files/patch-bug1153179 b/www/firefox-esr/files/patch-bug1153179 deleted file mode 100644 index f39c9bb..0000000 --- a/www/firefox-esr/files/patch-bug1153179 +++ /dev/null @@ -1,40 +0,0 @@ -Bug 1153179 - fix latency reporting in libcubeb sndio - ---- media/libcubeb/src/cubeb_sndio.c.orig 2017-01-12 17:53:15 UTC -+++ media/libcubeb/src/cubeb_sndio.c -@@ -67,7 +67,7 @@ sndio_onmove(void *arg, int delta) - { - cubeb_stream *s = (cubeb_stream *)arg; - -- s->rdpos += delta; -+ s->rdpos += delta * s->bpf; - } - - static void * -@@ -135,7 +135,7 @@ sndio_mainloop(void *arg) - state = CUBEB_STATE_ERROR; - break; - } -- s->wrpos = 0; -+ s->wrpos += n; - start += n; - } - } -@@ -326,7 +336,7 @@ sndio_stream_get_position(cubeb_stream * - { - pthread_mutex_lock(&s->mtx); - DPR("sndio_stream_get_position() %lld\n", s->rdpos); -- *p = s->rdpos; -+ *p = s->rdpos / s->bpf; - pthread_mutex_unlock(&s->mtx); - return CUBEB_OK; - } -@@ -346,7 +356,7 @@ sndio_stream_get_latency(cubeb_stream * - { - // http://www.openbsd.org/cgi-bin/man.cgi?query=sio_open - // in the "Measuring the latency and buffers usage" paragraph. -- *latency = stm->wrpos - stm->rdpos; -+ *latency = (stm->wrpos - stm->rdpos) / stm->bpf; - return CUBEB_OK; - } - diff --git a/www/firefox-esr/files/patch-bug1232150 b/www/firefox-esr/files/patch-bug1232150 deleted file mode 100644 index 202c0cf..0000000 --- a/www/firefox-esr/files/patch-bug1232150 +++ /dev/null @@ -1,280 +0,0 @@ -commit 9a18802e82c7 -Author: Martin Husemann <martin> -Date: Fri Jan 22 00:09:00 2016 +0100 - - Bug 1232150 - "Atomic operations for PPC/PPC64". r=lhansen ---- - js/src/jit/AtomicOperations.h | 2 + - js/src/jit/none/AtomicOperations-sparc.h | 251 +++++++++++++++++++++++++++++++ - 2 files changed, 253 insertions(+) - -diff --git js/src/jit/AtomicOperations.h js/src/jit/AtomicOperations.h -index 16196342a282..42aee72eb879 100644 ---- js/src/jit/AtomicOperations.h -+++ js/src/jit/AtomicOperations.h -@@ -328,6 +328,8 @@ AtomicOperations::isLockfree(int32_t size) - # include "jit/mips-shared/AtomicOperations-mips-shared.h" - #elif defined(__ppc__) || defined(__PPC__) - # include "jit/none/AtomicOperations-ppc.h" -+#elif defined(__sparc__) -+# include "jit/none/AtomicOperations-sparc.h" - #elif defined(JS_CODEGEN_NONE) - // You can disable the JIT with --disable-ion but you must still - // provide the atomic operations that will be used by the JS engine. -diff --git js/src/jit/none/AtomicOperations-sparc.h js/src/jit/none/AtomicOperations-sparc.h -new file mode 100644 -index 000000000000..706ada86241b ---- /dev/null -+++ js/src/jit/none/AtomicOperations-sparc.h -@@ -0,0 +1,251 @@ -+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- -+ * vim: set ts=8 sts=4 et sw=4 tw=99: -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+/* For documentation, see jit/AtomicOperations.h */ -+ -+#ifndef jit_sparc_AtomicOperations_sparc_h -+#define jit_sparc_AtomicOperations_sparc_h -+ -+#include "mozilla/Assertions.h" -+#include "mozilla/Types.h" -+ -+#if defined(__clang__) || defined(__GNUC__) -+ -+// The default implementation tactic for gcc/clang is to use the newer -+// __atomic intrinsics added for use in C++11 <atomic>. Where that -+// isn't available, we use GCC's older __sync functions instead. -+// -+// ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS is kept as a backward -+// compatible option for older compilers: enable this to use GCC's old -+// __sync functions instead of the newer __atomic functions. This -+// will be required for GCC 4.6.x and earlier, and probably for Clang -+// 3.1, should we need to use those versions. -+ -+//#define ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ -+inline bool -+js::jit::AtomicOperations::isLockfree8() -+{ -+# ifndef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int8_t), 0)); -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int16_t), 0)); -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int32_t), 0)); -+# if defined(__LP64__) -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int64_t), 0)); -+# endif -+ return true; -+# else -+ return false; -+# endif -+} -+ -+inline void -+js::jit::AtomicOperations::fenceSeqCst() -+{ -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ __sync_synchronize(); -+# else -+ __atomic_thread_fence(__ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::loadSeqCst(T* addr) -+{ -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8()); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ __sync_synchronize(); -+ T v = *addr; -+ __sync_synchronize(); -+# else -+ T v; -+ __atomic_load(addr, &v, __ATOMIC_SEQ_CST); -+# endif -+ return v; -+} -+ -+template<typename T> -+inline void -+js::jit::AtomicOperations::storeSeqCst(T* addr, T val) -+{ -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8()); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ __sync_synchronize(); -+ *addr = val; -+ __sync_synchronize(); -+# else -+ __atomic_store(addr, &val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::compareExchangeSeqCst(T* addr, T oldval, T newval) -+{ -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8()); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_val_compare_and_swap(addr, oldval, newval); -+# else -+ __atomic_compare_exchange(addr, &oldval, &newval, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); -+ return oldval; -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchAddSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_add(addr, val); -+# else -+ return __atomic_fetch_add(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchSubSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_sub(addr, val); -+# else -+ return __atomic_fetch_sub(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchAndSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_and(addr, val); -+# else -+ return __atomic_fetch_and(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchOrSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_or(addr, val); -+# else -+ return __atomic_fetch_or(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::fetchXorSeqCst(T* addr, T val) -+{ -+#if !defined( __LP64__) -+ static_assert(sizeof(T) <= 4, "not available for 8-byte values yet"); -+#endif -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ return __sync_fetch_and_xor(addr, val); -+# else -+ return __atomic_fetch_xor(addr, val, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::loadSafeWhenRacy(T* addr) -+{ -+ return *addr; // FIXME (1208663): not yet safe -+} -+ -+template<typename T> -+inline void -+js::jit::AtomicOperations::storeSafeWhenRacy(T* addr, T val) -+{ -+ *addr = val; // FIXME (1208663): not yet safe -+} -+ -+inline void -+js::jit::AtomicOperations::memcpySafeWhenRacy(void* dest, const void* src, size_t nbytes) -+{ -+ ::memcpy(dest, src, nbytes); // FIXME (1208663): not yet safe -+} -+ -+inline void -+js::jit::AtomicOperations::memmoveSafeWhenRacy(void* dest, const void* src, size_t nbytes) -+{ -+ ::memmove(dest, src, nbytes); // FIXME (1208663): not yet safe -+} -+ -+template<typename T> -+inline T -+js::jit::AtomicOperations::exchangeSeqCst(T* addr, T val) -+{ -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8()); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ T v; -+ __sync_synchronize(); -+ do { -+ v = *addr; -+ } while (__sync_val_compare_and_swap(addr, v, val) != v); -+ return v; -+# else -+ T v; -+ __atomic_exchange(addr, &val, &v, __ATOMIC_SEQ_CST); -+ return v; -+# endif -+} -+ -+template<size_t nbytes> -+inline void -+js::jit::RegionLock::acquire(void* addr) -+{ -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ while (!__sync_bool_compare_and_swap(&spinlock, 0, 1)) -+ ; -+# else -+ uint32_t zero = 0; -+ uint32_t one = 1; -+ while (!__atomic_compare_exchange(&spinlock, &zero, &one, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE)) { -+ zero = 0; -+ continue; -+ } -+# endif -+} -+ -+template<size_t nbytes> -+inline void -+js::jit::RegionLock::release(void* addr) -+{ -+ MOZ_ASSERT(AtomicOperations::loadSeqCst(&spinlock) == 1, "releasing unlocked region lock"); -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ __sync_sub_and_fetch(&spinlock, 1); -+# else -+ uint32_t zero = 0; -+ __atomic_store(&spinlock, &zero, __ATOMIC_SEQ_CST); -+# endif -+} -+ -+# undef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS -+ -+#elif defined(ENABLE_SHARED_ARRAY_BUFFER) -+ -+# error "Either disable JS shared memory, use GCC or Clang, or add code here" -+ -+#endif -+ -+#endif // jit_sparc_AtomicOperations_sparc_h diff --git a/www/firefox-esr/files/patch-bug1233275 b/www/firefox-esr/files/patch-bug1233275 deleted file mode 100644 index ac5d9d2..0000000 --- a/www/firefox-esr/files/patch-bug1233275 +++ /dev/null @@ -1,36 +0,0 @@ -# Copy environment for IPC using NSPR to avoid race - -diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc ---- ipc/chromium/src/base/process_util_bsd.cc -+++ ipc/chromium/src/base/process_util_bsd.cc -@@ -12,10 +12,9 @@ - - #include <string> - -+#include "nspr.h" - #include "base/eintr_wrapper.h" - --extern "C" char **environ __attribute__((__visibility__("default"))); -- - namespace base { - - void FreeEnvVarsArray(char* array[], int length) -@@ -66,6 +65,7 @@ bool LaunchApp(const std::vector<std::st - // Existing variables are overwritten by env_vars_to_set. - int pos = 0; - environment_map combined_env_vars = env_vars_to_set; -+ char **environ = PR_DuplicateEnvironment(); - while(environ[pos] != NULL) { - std::string varString = environ[pos]; - std::string varName = varString.substr(0, varString.find_first_of('=')); -@@ -73,8 +73,9 @@ bool LaunchApp(const std::vector<std::st - if (combined_env_vars.find(varName) == combined_env_vars.end()) { - combined_env_vars[varName] = varValue; - } -- pos++; -+ PR_Free(environ[pos++]); - } -+ PR_Free(environ); - int varsLen = combined_env_vars.size() + 1; - - char** vars = new char*[varsLen]; diff --git a/www/firefox-esr/files/patch-bug1245076 b/www/firefox-esr/files/patch-bug1245076 deleted file mode 100644 index 29096af..0000000 --- a/www/firefox-esr/files/patch-bug1245076 +++ /dev/null @@ -1,74 +0,0 @@ - -# HG changeset patch -# User Mike Hommey <mh+mozilla@glandium.org> -# Date 1457596445 -32400 -# Node ID 55212130f19da3079167a6b0a5a0ed6689c9a71d -# Parent 27c94617d7064d566c24a42e11cd4c7ef725923d -Bug 1245076 - Don't include mozalloc.h from the cstdlib wrapper. r=froydnj - -Our STL wrappers do various different things, one of which is including -mozalloc.h for infallible operator new. mozalloc.h includes stdlib.h, -which, in libstdc++ >= 6 is now itself a wrapper around cstdlib, which -circles back to our STL wrapper. - -But of the things our STL wrappers do, including mozalloc.h is not one -that is necessary for cstdlib. So skip including mozalloc.h in our -cstdlib wrapper. - -Additionally, some C++ sources (in media/mtransport) are including -headers in an extern "C" block, which end up including stdlib.h, which -ends up including cstdlib because really, this is all C++, and our -wrapper pre-includes <new> for mozalloc.h, which fails because templates -don't work inside extern "C". So, don't pre-include <new> when we're not -including mozalloc.h. - - -diff --git config/gcc-stl-wrapper.template.h config/gcc-stl-wrapper.template.h ---- config/gcc-stl-wrapper.template.h -+++ config/gcc-stl-wrapper.template.h -@@ -12,33 +12,40 @@ - // compiling ObjC. - #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS) - # error "STL code can only be used with -fno-exceptions" - #endif - - // Silence "warning: #include_next is a GCC extension" - #pragma GCC system_header - -+// Don't include mozalloc for cstdlib. See bug 1245076. -+#ifndef moz_dont_include_mozalloc_for_cstdlib -+# define moz_dont_include_mozalloc_for_cstdlib -+#endif -+#ifndef moz_dont_include_mozalloc_for_${HEADER} - // mozalloc.h wants <new>; break the cycle by always explicitly - // including <new> here. NB: this is a tad sneaky. Sez the gcc docs: - // - // `#include_next' does not distinguish between <file> and "file" - // inclusion, nor does it check that the file you specify has the - // same name as the current file. It simply looks for the file - // named, starting with the directory in the search path after the - // one where the current file was found. --#include_next <new> -+# include_next <new> - - // See if we're in code that can use mozalloc. NB: this duplicates - // code in nscore.h because nscore.h pulls in prtypes.h, and chromium - // can't build with that being included before base/basictypes.h. --#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --#else --# error "STL code can only be used with infallible ::operator new()" -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+ - #endif - - #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) - // Enable checked iterators and other goodies - // - // FIXME/bug 551254: gcc's debug STL implementation requires -frtti. - // Figure out how to resolve this with -fno-rtti. Maybe build with - // -frtti in DEBUG builds? diff --git a/www/firefox-esr/files/patch-bug1252246 b/www/firefox-esr/files/patch-bug1252246 deleted file mode 100644 index 429391f..0000000 --- a/www/firefox-esr/files/patch-bug1252246 +++ /dev/null @@ -1,44 +0,0 @@ -# Prefer PTHREAD_PROCESS_SHARED on FreeBSD 11.0 or later - -diff --git a/ipc/glue/CrossProcessMutex.h b/ipc/glue/CrossProcessMutex.h ---- ipc/glue/CrossProcessMutex.h -+++ ipc/glue/CrossProcessMutex.h -@@ -9,7 +9,7 @@ - #include "base/process.h" - #include "mozilla/Mutex.h" - --#if defined(OS_LINUX) || defined(XP_DARWIN) -+#if !defined(OS_WIN) && !defined(OS_NETBSD) && !defined(OS_OPENBSD) - #include <pthread.h> - #include "SharedMemoryBasic.h" - #include "mozilla/Atomics.h" -@@ -34,7 +34,7 @@ struct ParamTraits; - namespace mozilla { - #if defined(OS_WIN) - typedef HANDLE CrossProcessMutexHandle; --#elif defined(OS_LINUX) || defined(OS_MACOSX) -+#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD) - typedef mozilla::ipc::SharedMemoryBasic::Handle CrossProcessMutexHandle; - #else - // Stub for other platforms. We can't use uintptr_t here since different -@@ -100,7 +100,7 @@ private: - - #if defined(OS_WIN) - HANDLE mMutex; --#elif defined(OS_LINUX) || defined(OS_MACOSX) -+#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD) - RefPtr<mozilla::ipc::SharedMemoryBasic> mSharedBuffer; - pthread_mutex_t* mMutex; - mozilla::Atomic<int32_t>* mCount; -diff --git a/ipc/glue/moz.build b/ipc/glue/moz.build ---- ipc/glue/moz.build -+++ ipc/glue/moz.build -@@ -61,7 +61,7 @@ if CONFIG['OS_ARCH'] == 'WINNT': - SOURCES += [ - 'CrossProcessMutex_windows.cpp', - ] --elif CONFIG['OS_ARCH'] in ('Linux', 'Darwin'): -+elif not CONFIG['OS_ARCH'] in ('NetBSD', 'OpenBSD'): - UNIFIED_SOURCES += [ - 'CrossProcessMutex_posix.cpp', - ] diff --git a/www/firefox-esr/files/patch-bug1257947 b/www/firefox-esr/files/patch-bug1257947 deleted file mode 100644 index 62818bc..0000000 --- a/www/firefox-esr/files/patch-bug1257947 +++ /dev/null @@ -1,13 +0,0 @@ -# Fix Hello icon (bug 1257947) - ---- browser/extensions/loop/jar.mn.orig 2016-04-14 21:11:21.842908299 +0200 -+++ browser/extensions/loop/jar.mn 2016-04-14 21:11:36.570907377 +0200 -@@ -6,7 +6,7 @@ - [features/loop@mozilla.org] chrome.jar: - % content loop %content/ contentaccessible=yes - % content loop-locale-fallback %content/locale-fallback/en-US/ --% skin loop classic/1.0 %skin/linux/ os=Linux -+% skin loop classic/1.0 %skin/linux/ - % skin loop classic/1.0 %skin/osx/ os=Darwin - % skin loop classic/1.0 %skin/windows/ os=WINNT - % skin loop-shared classic/1.0 %skin/shared/ diff --git a/www/firefox-esr/files/patch-bug1268816 b/www/firefox-esr/files/patch-bug1268816 deleted file mode 100644 index 4eeecae..0000000 --- a/www/firefox-esr/files/patch-bug1268816 +++ /dev/null @@ -1,50 +0,0 @@ - -# HG changeset patch -# User Lee Salzman <lsalzman@mozilla.com> -# Date 1461978185 14400 -# Node ID b622cbd9ba13d01abcb1d04684dcb39c22a08590 -# Parent f3a5c8b5e17073a1e68f079da93f8dbe10e454a9 -Bug 1268816 - allow Skia to use C++11 features on platforms that have them. r=froydnj - -diff --git config/stl-headers config/stl-headers ---- config/stl-headers -+++ config/stl-headers -@@ -29,16 +29,17 @@ iterator - limits - list - map - memory - ostream - set - stack - string -+type_traits - utility - vector - cassert - climits - cmath - cstdarg - cstdio - cstdlib -diff --git config/system-headers config/system-headers ---- config/system-headers -+++ config/system-headers -@@ -1109,16 +1109,17 @@ ThreadManagerTests.h - Threads.h - time.h - Timer.h - tlhelp32.h - ToolUtils.h - tr1/functional - trace.h - Traps.h -+type_traits - typeinfo - types.h - Types.h - UAppleEventsMgr.h - UAttachments.h - ucontext.h - uconv.h - UCursor.h diff --git a/www/firefox-esr/files/patch-bug1269171 b/www/firefox-esr/files/patch-bug1269171 deleted file mode 100644 index 9139534..0000000 --- a/www/firefox-esr/files/patch-bug1269171 +++ /dev/null @@ -1,258 +0,0 @@ - -# HG changeset patch -# User Mike Hommey <mh+mozilla@glandium.org> -# Date 1463557039 -32400 -# Node ID 68da139d0866977c0ada86319fa94388f2255446 -# Parent a640e6fa8ab9977fb6c5bcf63dc4daca6699477b -Bug 1269171 - Change how mozalloc.h is hooked in STL wrappers. r=froydnj - -Since the introduction of the STL wrappers, they have included -mozalloc.h, and multiple times, we've hit header reentrancy problems, -and worked around them as best as we could. - -Taking a step back, all mozalloc.h does is: -- declare moz_* allocator functions. -- define inline implementations of various operator new/delete variants. - -The first only requires the functions to be declared before they are used, -so mozalloc.h only needs to be included before anything that would use -those functions. - -The second doesn't actually require a specific order, as long as the -declaration for those functions comes before their use, and they are -either declared in <new> or implicitly by the C++ compiler. - -So all in all, it doesn't matter that mozalloc.h is included before the -wrapped STL headers. What matters is that it's included when STL headers -are included. So arrange things such that mozalloc.h is included after -the first wrapped STL header is fully preprocessed (and all its includes -have been included). - - -diff --git config/gcc-stl-wrapper.template.h config/gcc-stl-wrapper.template.h ---- config/gcc-stl-wrapper.template.h -+++ config/gcc-stl-wrapper.template.h -@@ -12,56 +12,54 @@ - // compiling ObjC. - #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS) - # error "STL code can only be used with -fno-exceptions" - #endif - - // Silence "warning: #include_next is a GCC extension" - #pragma GCC system_header - --// Don't include mozalloc for cstdlib. See bug 1245076. --#ifndef moz_dont_include_mozalloc_for_cstdlib --# define moz_dont_include_mozalloc_for_cstdlib --#endif --#ifndef moz_dont_include_mozalloc_for_${HEADER} --// mozalloc.h wants <new>; break the cycle by always explicitly --// including <new> here. NB: this is a tad sneaky. Sez the gcc docs: --// --// `#include_next' does not distinguish between <file> and "file" --// inclusion, nor does it check that the file you specify has the --// same name as the current file. It simply looks for the file --// named, starting with the directory in the search path after the --// one where the current file was found. --# include_next <new> -- --// See if we're in code that can use mozalloc. NB: this duplicates --// code in nscore.h because nscore.h pulls in prtypes.h, and chromium --// can't build with that being included before base/basictypes.h. --# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --# else --# error "STL code can only be used with infallible ::operator new()" --# endif -- --#endif -- - #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) - // Enable checked iterators and other goodies - // - // FIXME/bug 551254: gcc's debug STL implementation requires -frtti. - // Figure out how to resolve this with -fno-rtti. Maybe build with - // -frtti in DEBUG builds? - // - // # define _GLIBCXX_DEBUG 1 - #endif - -+// Don't include mozalloc for cstdlib. See bug 1245076. -+#ifndef moz_dont_include_mozalloc_for_cstdlib -+# define moz_dont_include_mozalloc_for_cstdlib -+#endif -+ -+// Include mozalloc after the STL header and all other headers it includes -+// have been preprocessed. -+#if !defined(MOZ_INCLUDE_MOZALLOC_H) && \ -+ !defined(moz_dont_include_mozalloc_for_${HEADER}) -+# define MOZ_INCLUDE_MOZALLOC_H -+# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+#endif -+ - #pragma GCC visibility push(default) - #include_next <${HEADER}> - #pragma GCC visibility pop - -+#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+// See if we're in code that can use mozalloc. NB: this duplicates -+// code in nscore.h because nscore.h pulls in prtypes.h, and chromium -+// can't build with that being included before base/basictypes.h. -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+#endif -+ - // gcc calls a __throw_*() function from bits/functexcept.h when it - // wants to "throw an exception". functexcept exists nominally to - // support -fno-exceptions, but since we'll always use the system - // libstdc++, and it's compiled with exceptions, then in practice - // these __throw_*() functions will always throw exceptions (shades of - // -fshort-wchar). We don't want that and so define our own inlined - // __throw_*(). - #ifndef mozilla_throw_gcc_h -diff --git config/make-stl-wrappers.py config/make-stl-wrappers.py ---- config/make-stl-wrappers.py -+++ config/make-stl-wrappers.py -@@ -25,28 +25,26 @@ def header_path(header, compiler): - def is_comment(line): - return re.match(r'\s*#.*', line) - - def main(outdir, compiler, template_file, header_list_file): - if not os.path.isdir(outdir): - os.mkdir(outdir) - - template = open(template_file, 'r').read() -- path_to_new = header_path('new', compiler) - - for header in open(header_list_file, 'r'): - header = header.rstrip() - if 0 == len(header) or is_comment(header): - continue - - path = header_path(header, compiler) - with FileAvoidWrite(os.path.join(outdir, header)) as f: - f.write(string.Template(template).substitute(HEADER=header, -- HEADER_PATH=path, -- NEW_HEADER_PATH=path_to_new)) -+ HEADER_PATH=path)) - - - if __name__ == '__main__': - if 5 != len(sys.argv): - print("""Usage: - python {0} OUT_DIR ('msvc'|'gcc') TEMPLATE_FILE HEADER_LIST_FILE - """.format(sys.argv[0]), file=sys.stderr) - sys.exit(1) -diff --git config/msvc-stl-wrapper.template.h config/msvc-stl-wrapper.template.h ---- config/msvc-stl-wrapper.template.h -+++ config/msvc-stl-wrapper.template.h -@@ -3,45 +3,33 @@ - */ - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - - #ifndef mozilla_${HEADER}_h - #define mozilla_${HEADER}_h - --#ifndef MOZ_HAVE_INCLUDED_ALLOC --#define MOZ_HAVE_INCLUDED_ALLOC -- - #if _HAS_EXCEPTIONS - # error "STL code can only be used with -fno-exceptions" - #endif - -+// Include mozalloc after the STL header and all other headers it includes -+// have been preprocessed. -+#if !defined(MOZ_INCLUDE_MOZALLOC_H) -+# define MOZ_INCLUDE_MOZALLOC_H -+# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+#endif -+ - // Code built with !_HAS_EXCEPTIONS calls std::_Throw(), but the win2k - // CRT doesn't export std::_Throw(). So we define it. - #ifndef mozilla_Throw_h - # include "mozilla/throw_msvc.h" - #endif - --// Code might include <new> before other wrapped headers, but <new> --// includes <exception> and so we want to wrap it. But mozalloc.h --// wants <new> also, so we break the cycle by always explicitly --// including <new> here. --#include <${NEW_HEADER_PATH}> -- --// See if we're in code that can use mozalloc. NB: this duplicates --// code in nscore.h because nscore.h pulls in prtypes.h, and chromium --// can't build with that being included before base/basictypes.h. --#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --#else --# error "STL code can only be used with infallible ::operator new()" --#endif --#endif /* MOZ_HAVE_INCLUDED_ALLOC */ -- - #ifdef _DEBUG - // From - // http://msdn.microsoft.com/en-us/library/aa985982%28VS.80%29.aspx - // and - // http://msdn.microsoft.com/en-us/library/aa985965%28VS.80%29.aspx - // there appear to be two types of STL container checking. The - // former is enabled by -D_DEBUG (which is implied by -MDd or -MTd), and - // looks to be full generation/mutation checked iterators as done by -@@ -70,9 +58,20 @@ - // but that's OK because we're not throwing them. - #pragma warning( push ) - #pragma warning( disable : 4275 4530 ) - - #include <${HEADER_PATH}> - - #pragma warning( pop ) - -+#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+// See if we're in code that can use mozalloc. NB: this duplicates -+// code in nscore.h because nscore.h pulls in prtypes.h, and chromium -+// can't build with that being included before base/basictypes.h. -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+#endif -+ - #endif // if mozilla_${HEADER}_h -diff --git memory/mozalloc/mozalloc.h memory/mozalloc/mozalloc.h ---- memory/mozalloc/mozalloc.h -+++ memory/mozalloc/mozalloc.h -@@ -7,20 +7,27 @@ - - #ifndef mozilla_mozalloc_h - #define mozilla_mozalloc_h - - /* - * https://bugzilla.mozilla.org/show_bug.cgi?id=427099 - */ - --#include <stdlib.h> --#include <string.h> - #if defined(__cplusplus) - # include <new> -+// Since libstdc++ 6, including the C headers (e.g. stdlib.h) instead of the -+// corresponding C++ header (e.g. cstdlib) can cause confusion in C++ code -+// using things defined there. Specifically, with stdlib.h, the use of abs() -+// in gfx/graphite2/src/inc/UtfCodec.h somehow ends up picking the wrong abs() -+# include <cstdlib> -+# include <cstring> -+#else -+# include <stdlib.h> -+# include <string.h> - #endif - - #if defined(__cplusplus) - #include "mozilla/fallible.h" - #include "mozilla/TemplateLib.h" - #endif - #include "mozilla/Attributes.h" - #include "mozilla/Types.h" diff --git a/www/firefox-esr/files/patch-bug1278861 b/www/firefox-esr/files/patch-bug1278861 deleted file mode 100644 index 1790575..0000000 --- a/www/firefox-esr/files/patch-bug1278861 +++ /dev/null @@ -1,38 +0,0 @@ - -# HG changeset patch -# User Nathan Froyd <froydnj@gmail.com> -# Date 1466820205 14400 -# Node ID bd25b06261c840a62d035192cf4b1dbc18f54e3f -# Parent fbe25a30fcbbe172bdd37c70c5b06cdbb07886af -Bug 1278861 - adjust ifdefs in Conversions.h:ToInt32 to catch clang-on-arm-generally; r=luke - -The bug noted in ToInt32 doesn't just exist when compiling for -arm-darwin; it exists for ARM targets generally. The ifdef should -reflect that. - -diff --git js/public/Conversions.h js/public/Conversions.h ---- js/public/Conversions.h -+++ js/public/Conversions.h -@@ -395,19 +395,19 @@ ToIntWidth(double d) - } - - } // namespace detail - - /* ES5 9.5 ToInt32 (specialized for doubles). */ - inline int32_t - ToInt32(double d) - { -- // clang crashes compiling this when targeting arm-darwin: -+ // clang crashes compiling this when targeting arm: - // https://llvm.org/bugs/show_bug.cgi?id=22974 --#if defined (__arm__) && defined (__GNUC__) && !defined(__APPLE__) -+#if defined (__arm__) && defined (__GNUC__) && !defined(__clang__) - int32_t i; - uint32_t tmp0; - uint32_t tmp1; - uint32_t tmp2; - asm ( - // We use a pure integer solution here. In the 'softfp' ABI, the argument - // will start in r0 and r1, and VFP can't do all of the necessary ECMA - // conversions by itself so some integer code will be required anyway. A - diff --git a/www/firefox-esr/files/patch-bug1288587 b/www/firefox-esr/files/patch-bug1288587 new file mode 100644 index 0000000..e10ef85 --- /dev/null +++ b/www/firefox-esr/files/patch-bug1288587 @@ -0,0 +1,67 @@ +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index 855214a..1e91d51 100644 +--- build/moz.configure/init.configure ++++ build/moz.configure/init.configure +@@ -165,16 +165,17 @@ option(env='PYTHON', nargs=1, help='Python interpreter') + # ============================================================== + @depends('PYTHON', check_build_environment, mozconfig, '--help') + @imports('os') + @imports('sys') + @imports('subprocess') + @imports(_from='mozbuild.configure.util', _import='LineIO') + @imports(_from='mozbuild.virtualenv', _import='VirtualenvManager') + @imports(_from='mozbuild.virtualenv', _import='verify_python_version') ++@imports(_from='__builtin__', _import='KeyError') + @imports('distutils.sysconfig') + def virtualenv_python(env_python, build_env, mozconfig, help): + if help: + return + + python = env_python[0] if env_python else None + + # Ideally we'd rely on the mozconfig injection from mozconfig_options, +@@ -184,16 +185,22 @@ def virtualenv_python(env_python, build_env, mozconfig, help): + if 'PYTHON' in mozconfig['env']['added']: + python = mozconfig['env']['added']['PYTHON'] + elif 'PYTHON' in mozconfig['env']['modified']: + python = mozconfig['env']['modified']['PYTHON'][1] + elif 'PYTHON' in mozconfig['vars']['added']: + python = mozconfig['vars']['added']['PYTHON'] + elif 'PYTHON' in mozconfig['vars']['modified']: + python = mozconfig['vars']['modified']['PYTHON'][1] ++ for i in ('env', 'vars'): ++ for j in ('added', 'modified'): ++ try: ++ del mozconfig[i][j]['PYTHON'] ++ except KeyError: ++ pass + + with LineIO(lambda l: log.error(l)) as out: + verify_python_version(out) + topsrcdir, topobjdir = build_env.topsrcdir, build_env.topobjdir + if topobjdir.endswith('/js/src'): + topobjdir = topobjdir[:-7] + + with LineIO(lambda l: log.info(l)) as out: +@@ -219,17 +226,20 @@ def virtualenv_python(env_python, build_env, mozconfig, help): + log.info('Creating Python environment') + manager.build(python) + + python = normsep(manager.python_path) + + if python != normsep(sys.executable): + log.info('Reexecuting in the virtualenv') + if env_python: +- del os.environ['PYTHON'] ++ try: ++ del os.environ['PYTHON'] ++ except KeyError: ++ pass + # One would prefer to use os.execl, but that's completely borked on + # Windows. + sys.exit(subprocess.call([python] + sys.argv)) + + # We are now in the virtualenv + if not distutils.sysconfig.get_python_lib(): + die('Could not determine python site packages directory') + diff --git a/www/firefox-esr/files/patch-bug1320621 b/www/firefox-esr/files/patch-bug1320621 deleted file mode 100644 index 7cfebad..0000000 --- a/www/firefox-esr/files/patch-bug1320621 +++ /dev/null @@ -1,39 +0,0 @@ -Make sure --enable-system-hunspell picks up system headers - ---- extensions/spellcheck/hunspell/glue/moz.build -+++ extensions/spellcheck/hunspell/glue/moz.build -@@ -11,12 +11,14 @@ UNIFIED_SOURCES += [ - 'RemoteSpellCheckEngineParent.cpp', - ] - --CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] -- - FINAL_LIBRARY = 'xul' - -+if CONFIG['MOZ_NATIVE_HUNSPELL']: -+ CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] -+else: -+ LOCAL_INCLUDES += ['../src'] -+ - LOCAL_INCLUDES += [ -- '../src', - '/dom/base', - '/extensions/spellcheck/src', - ] ---- extensions/spellcheck/src/moz.build -+++ extensions/spellcheck/src/moz.build -@@ -17,9 +17,13 @@ UNIFIED_SOURCES += [ - - FINAL_LIBRARY = 'xul' - -+if CONFIG['MOZ_NATIVE_HUNSPELL']: -+ CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] -+else: -+ LOCAL_INCLUDES += ['../hunspell/src'] -+ - LOCAL_INCLUDES += [ - '../hunspell/glue', -- '../hunspell/src', - '/dom/base', - ] - EXPORTS.mozilla += [ diff --git a/www/firefox-esr/files/patch-bug1320991 b/www/firefox-esr/files/patch-bug1320991 deleted file mode 100644 index 6b9ccb5..0000000 --- a/www/firefox-esr/files/patch-bug1320991 +++ /dev/null @@ -1,43 +0,0 @@ -commit 454e2dbe1b4f -Author: Mike Shal <mshal@mozilla.com> -Date: Tue Dec 20 16:37:18 2016 -0500 - - Bug 1320991 - Support --with-system-{nss,nspr} in modules/libmar; r?glandium - - The problem with the modules/libmar/tests/moz.build file when building - --with-system-nspr and --with-system-nss is that the nss libraries don't - exist in the tree, so they fail when trying to copy into the test - directory. - - However, it turns out that the libraries copied into the test directory - aren't even used when building with an in-tree copy, because the - xpcshell launcher sets LD_LIBRARY_PATH to point to dist/bin. Since we - use the dist/bin copies anyway for an in-tree build, we can stop copying - them into the test directory and simultaneously fix the --with-system - build. - - The DEFINES can also go away since this directory doesn't actually build - anything. - - MozReview-Commit-ID: Bk2f28wc9ZJ ---- - modules/libmar/tests/moz.build | 17 ----------------- - 1 file changed, 17 deletions(-) - -diff --git modules/libmar/tests/moz.build modules/libmar/tests/moz.build -index ee72571b0c6b..9642553e8aa2 100644 ---- modules/libmar/tests/Makefile.in -+++ modules/libmar/tests/Makefile.in -@@ -10,12 +10,5 @@ ifneq ($(OS_TARGET),Android) - ifndef MOZ_PROFILE_GENERATE - libs:: - $(INSTALL) ../tool/signmar$(BIN_SUFFIX) $(TESTROOT)/unit -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nss3$(DLL_SUFFIX) $(TESTROOT)/unit --ifndef MOZ_FOLD_LIBS -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nssutil3$(DLL_SUFFIX) $(TESTROOT)/unit -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)plc4$(DLL_SUFFIX) $(TESTROOT)/unit -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nspr4$(DLL_SUFFIX) $(TESTROOT)/unit -- $(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)plds4$(DLL_SUFFIX) $(TESTROOT)/unit --endif - endif - endif # Not Android diff --git a/www/firefox-esr/files/patch-bug1329520 b/www/firefox-esr/files/patch-bug1329520 deleted file mode 100644 index 694b658..0000000 --- a/www/firefox-esr/files/patch-bug1329520 +++ /dev/null @@ -1,146 +0,0 @@ -commit 8b0557b033b9 -Author: Dimitry Andric <dimitry> -Date: Fri Jan 27 13:55:00 2017 +0100 - - Bug 1329520 - Fix "memory/mozalloc/throw_gcc.h:35:1: note: declaration missing '[[noreturn]]' (libc++ 4.0)" r=nfroyd ---- - memory/mozalloc/throw_gcc.h | 47 ++++++++++++++++++++++++++++++--------------- - 1 file changed, 31 insertions(+), 16 deletions(-) - -diff --git memory/mozalloc/throw_gcc.h memory/mozalloc/throw_gcc.h -index 18027e04a4a3..4264df63d493 100644 ---- memory/mozalloc/throw_gcc.h -+++ memory/mozalloc/throw_gcc.h -@@ -19,97 +19,110 @@ - - #include "mozilla/mozalloc_abort.h" - -+// libc++ 4.0.0 and higher use C++11 [[noreturn]] attributes for the functions -+// below, and since clang does not allow mixing __attribute__((noreturn)) and -+// [[noreturn]], we have to explicitly use the latter here. See bug 1329520. -+#if defined(__clang__) -+# if __has_feature(cxx_attributes) && \ -+ defined(_LIBCPP_VERSION) && _LIBCPP_VERSION >= 4000 -+# define MOZ_THROW_NORETURN [[noreturn]] -+# endif -+#endif -+#ifndef MOZ_THROW_NORETURN -+# define MOZ_THROW_NORETURN MOZ_NORETURN -+#endif -+ - namespace std { - - // NB: user code is not supposed to touch the std:: namespace. We're - // doing this after careful review because we want to define our own - // exception throwing semantics. Don't try this at home! - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_bad_exception(void) - { - mozalloc_abort("fatal: STL threw bad_exception"); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_bad_alloc(void) - { - mozalloc_abort("fatal: STL threw bad_alloc"); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_bad_cast(void) - { - mozalloc_abort("fatal: STL threw bad_cast"); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_bad_typeid(void) - { - mozalloc_abort("fatal: STL threw bad_typeid"); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_logic_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_domain_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_invalid_argument(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_length_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_out_of_range(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_runtime_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_range_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_overflow_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_underflow_error(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_ios_failure(const char* msg) - { - mozalloc_abort(msg); - } - --MOZ_NORETURN MOZ_ALWAYS_INLINE void -+MOZ_THROW_NORETURN MOZ_ALWAYS_INLINE void - __throw_system_error(int err) - { - char error[128]; -@@ -120,4 +133,6 @@ __throw_system_error(int err) - - } // namespace std - -+#undef MOZ_THROW_NORETURN -+ - #endif // mozilla_throw_gcc_h diff --git a/www/firefox-esr/files/patch-bug1336791 b/www/firefox-esr/files/patch-bug1336791 deleted file mode 100644 index e9ed891..0000000 --- a/www/firefox-esr/files/patch-bug1336791 +++ /dev/null @@ -1,21 +0,0 @@ -# Allow readelf to print types without parentheses - ---- toolkit/library/dependentlibs.py -+++ toolkit/library/dependentlibs.py -@@ -57,11 +57,15 @@ def dependentlibs_readelf(lib): - for line in proc.stdout: - # Each line has the following format: - # tag (TYPE) value -+ # or with BSD readelf: -+ # tag TYPE value - # Looking for NEEDED type entries - tmp = line.split(' ', 3) -- if len(tmp) > 3 and tmp[2] == '(NEEDED)': -+ if len(tmp) > 3 and 'NEEDED' in tmp[2]: - # NEEDED lines look like: - # 0x00000001 (NEEDED) Shared library: [libname] -+ # or with BSD readelf: -+ # 0x00000001 NEEDED Shared library: [libname] - match = re.search('\[(.*)\]', tmp[3]) - if match: - deps.append(match.group(1)) diff --git a/www/firefox-esr/files/patch-bug757366 b/www/firefox-esr/files/patch-bug757366 deleted file mode 100644 index 20be901..0000000 --- a/www/firefox-esr/files/patch-bug757366 +++ /dev/null @@ -1,58 +0,0 @@ -commit 2a3be4b384b9 -Author: Jonathan Kew <jkew@mozilla.com> -Date: Mon Sep 26 18:05:14 2016 +0100 - - Bug 757366 - Don't cast pointers to 'name'-table data to uint16_t*, as they may not be 16-bit-aligned. r=jrmuizel ---- - gfx/thebes/gfxFontUtils.cpp | 26 ++++++++++++++------------ - 1 file changed, 14 insertions(+), 12 deletions(-) - -diff --git gfx/thebes/gfxFontUtils.cpp gfx/thebes/gfxFontUtils.cpp -index 526e17d..cb505e8 100644 ---- gfx/thebes/gfxFontUtils.cpp -+++ gfx/thebes/gfxFontUtils.cpp -@@ -918,16 +918,18 @@ IsValidSFNTVersion(uint32_t version) - version == TRUETYPE_TAG('t','r','u','e'); - } - --// copy and swap UTF-16 values, assume no surrogate pairs, can be in place -+// Copy and swap UTF-16 values, assume no surrogate pairs, can be in place. -+// aInBuf and aOutBuf are NOT necessarily 16-bit-aligned, so we should avoid -+// accessing them directly as uint16_t* values. -+// aLen is count of UTF-16 values, so the byte buffers are twice that. - static void --CopySwapUTF16(const uint16_t *aInBuf, uint16_t *aOutBuf, uint32_t aLen) -+CopySwapUTF16(const char* aInBuf, char* aOutBuf, uint32_t aLen) - { -- const uint16_t *end = aInBuf + aLen; -+ const char* end = aInBuf + aLen * 2; - while (aInBuf < end) { -- uint16_t value = *aInBuf; -- *aOutBuf = (value >> 8) | (value & 0xff) << 8; -- aOutBuf++; -- aInBuf++; -+ uint8_t b0 = *aInBuf++; -+ *aOutBuf++ = *aInBuf++; -+ *aOutBuf++ = b0; - } - } - -@@ -1446,13 +1448,13 @@ gfxFontUtils::DecodeFontName(const char *aNameData, int32_t aByteLen, - if (csName[0] == 0) { - // empty charset name: data is utf16be, no need to instantiate a converter - uint32_t strLen = aByteLen / 2; --#ifdef IS_LITTLE_ENDIAN - aName.SetLength(strLen); -- CopySwapUTF16(reinterpret_cast<const uint16_t*>(aNameData), -- reinterpret_cast<uint16_t*>(aName.BeginWriting()), strLen); -+#ifdef IS_LITTLE_ENDIAN -+ CopySwapUTF16(aNameData, reinterpret_cast<char*>(aName.BeginWriting()), -+ strLen); - #else -- aName.Assign(reinterpret_cast<const char16_t*>(aNameData), strLen); --#endif -+ memcpy(aName.BeginWriting(), aNameData, strLen * 2); -+#endif - return true; - } - diff --git a/www/firefox-esr/files/patch-bug826985 b/www/firefox-esr/files/patch-bug826985 index 941acf5..1ba4dec 100644 --- a/www/firefox-esr/files/patch-bug826985 +++ b/www/firefox-esr/files/patch-bug826985 @@ -5,7 +5,7 @@ Date: Fri Jan 4 13:49:22 2013 +0100 Bug 826985 - Support more video formats for WebRTC via libv4l2 on Linux. --- config/system-headers | 1 + - configure.in | 7 +++++++ + old-configure.in | 7 +++++++ media/webrtc/signaling/test/Makefile.in | 1 + .../modules/video_capture/linux/device_info_linux.cc | 17 +++++++++++++++++ .../modules/video_capture/linux/video_capture_linux.cc | 16 +++++++++++++++- @@ -17,18 +17,18 @@ diff --git config/system-headers config/system-headers index 55e4cd1..76567b3 100644 --- config/system-headers +++ config/system-headers -@@ -627,6 +627,7 @@ libgnome/libgnome.h +@@ -624,6 +624,7 @@ libgnome/libgnome.h libgnomeui/gnome-icon-lookup.h libgnomeui/gnome-icon-theme.h libgnomeui/gnome-ui-init.h +libv4l2.h - lib$routines.h - limits limits.h -diff --git configure.in configure.in + link.h + #ifdef ANDROID +diff --git old-configure.in configure.in index 55e4cd1..76567b3 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -5309,6 +5309,9 @@ if test -n "$MOZ_WEBRTC"; then MOZ_VP8_ENCODER=1 MOZ_VP8_ERROR_CONCEALMENT=1 @@ -67,7 +67,7 @@ diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_lin index 239a292..bab496c 100644 --- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc +++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -@@ -25,10 +25,21 @@ +@@ -25,6 +25,9 @@ #else #include <linux/videodev2.h> #endif @@ -77,6 +77,9 @@ index 239a292..bab496c 100644 #include "webrtc/system_wrappers/interface/ref_count.h" #include "webrtc/system_wrappers/interface/trace.h" +@@ -34,6 +37,15 @@ + #define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) ) + #endif +#ifdef HAVE_LIBV4L2 +#define open v4l2_open @@ -86,10 +89,11 @@ index 239a292..bab496c 100644 +#define mmap v4l2_mmap +#define munmap v4l2_munmap +#endif - ++ namespace webrtc { -@@ -130,6 +142,11 @@ WebRtc_Word32 DeviceInfoLinux::GetDeviceName( + namespace videocapturemodule +@@ -274,6 +286,11 @@ int32_t DeviceInfoLinux::GetDeviceName( memset(deviceNameUTF8, 0, deviceNameLength); memcpy(cameraName, cap.card, sizeof(cap.card)); diff --git a/www/firefox-esr/files/patch-bug847568 b/www/firefox-esr/files/patch-bug847568 index 6eb00b5..9588ce5 100644 --- a/www/firefox-esr/files/patch-bug847568 +++ b/www/firefox-esr/files/patch-bug847568 @@ -1,104 +1,54 @@ # Allow building against system-wide graphite2/harfbuzz. diff --git config/Makefile.in config/Makefile.in -index 14bfc0d..5383399 100644 +index e2e11dc0e27e..a6206bb0ff30 100644 --- config/Makefile.in +++ config/Makefile.in -@@ -49,6 +49,8 @@ export:: $(export-preqs) - -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \ - -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \ - -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ -+ -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \ -+ -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \ - $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers - $(INSTALL) system_wrappers $(DIST) - +@@ -41,6 +41,8 @@ export:: $(export-preqs) + $(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \ + -DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \ + -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ ++ -DMOZ_SYSTEM_GRAPHITE2=$(MOZ_SYSTEM_GRAPHITE2) \ ++ -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \ + -DMOZ_SYSTEM_HUNSPELL=$(MOZ_SYSTEM_HUNSPELL) \ + -DMOZ_SYSTEM_BZ2=$(MOZ_SYSTEM_BZ2) \ + -DMOZ_SYSTEM_ZLIB=$(MOZ_SYSTEM_ZLIB) \ diff --git config/system-headers config/system-headers -index 18e8703..bdc5f82 100644 +index a0c53c651a3e..5ee7f71f9634 100644 --- config/system-headers +++ config/system-headers -@@ -1344,3 +1344,11 @@ unicode/utypes.h +@@ -1269,6 +1269,15 @@ libsn/sn-launcher.h + libsn/sn-monitor.h + libsn/sn-util.h #endif - libutil.h - unwind.h -+#if MOZ_NATIVE_GRAPHITE2==1 ++#if MOZ_SYSTEM_GRAPHITE2==1 +graphite2/Font.h +graphite2/Segment.h +#endif -+#if MOZ_NATIVE_HARFBUZZ==1 ++#if MOZ_SYSTEM_HARFBUZZ==1 ++harfbuzz/hb-glib.h +harfbuzz/hb-ot.h +harfbuzz/hb.h +#endif -diff --git configure.in configure.in -index ac38f40..87536b7 100644 ---- configure.in -+++ configure.in -@@ -7989,6 +7989,49 @@ if test "$USE_FC_FREETYPE"; then - fi - - dnl ======================================================== -+dnl Check for harfbuzz -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-harfbuzz, -+[ --with-system-harfbuzz Use system harfbuzz (located with pkgconfig)], -+MOZ_NATIVE_HARFBUZZ=1, -+MOZ_NATIVE_HARFBUZZ=) -+ -+if test -n "$MOZ_NATIVE_HARFBUZZ"; then -+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.1.0) -+fi -+ -+AC_SUBST(MOZ_NATIVE_HARFBUZZ) -+ -+dnl ======================================================== -+dnl Check for graphite2 -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-graphite2, -+[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)], -+MOZ_NATIVE_GRAPHITE2=1, -+MOZ_NATIVE_GRAPHITE2=) -+ -+if test -n "$MOZ_NATIVE_GRAPHITE2"; then -+ PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2) -+ -+ dnl graphite2.pc has bogus version, check manually -+ AC_TRY_COMPILE([ #include <graphite2/Font.h> -+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ -+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ -+ * 100 + GR2_VERSION_BUGFIX >= \ -+ (major) * 10000 + (minor) * 100 + (bugfix) ) -+ ], [ -+ #if !GR2_VERSION_REQUIRE(1,3,6) -+ #error "Insufficient graphite2 version." -+ #endif -+ ], [], -+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) -+fi -+ -+AC_SUBST(MOZ_NATIVE_GRAPHITE2) -+ -+dnl ======================================================== - dnl Check for pixman and cairo - dnl ======================================================== - + #if MOZ_SYSTEM_HUNSPELL==1 + hunspell.hxx + #endif diff --git dom/base/moz.build dom/base/moz.build -index a660ba4..6b2f602 100644 +index 8e19020315ae..2fcdbb6f7b42 100644 --- dom/base/moz.build +++ dom/base/moz.build -@@ -397,6 +397,9 @@ if CONFIG['INTEL_ARCHITECTURE']: - SOURCES += ['nsTextFragmentSSE2.cpp'] - SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS'] +@@ -464,6 +464,9 @@ if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']: + if CONFIG['MOZ_X11']: + CXXFLAGS += CONFIG['TK_CFLAGS'] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: -+ SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - EXTRA_COMPONENTS += [ - 'ConsoleAPI.manifest', - 'ConsoleAPIStorage.js', + GENERATED_FILES += [ + 'PropertyUseCounterMap.inc', + 'UseCounterList.h', diff --git gfx/graphite2/moz-gr-update.sh gfx/graphite2/moz-gr-update.sh -index f3d76ea..a9e7fb6 100644 +index faaab1b17971..04eff5f09882 100644 --- gfx/graphite2/moz-gr-update.sh +++ gfx/graphite2/moz-gr-update.sh @@ -1,6 +1,7 @@ @@ -109,13 +59,13 @@ index f3d76ea..a9e7fb6 100644 # This script lives in gfx/graphite2, along with the library source, # but must be run from the top level of the mozilla-central tree. -@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> +@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \; #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \; +# chase version for --with-system-graphite2 +perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \ -+ if /GR2_VERSION_REQUIRE/" configure.in ++ if /GR2_VERSION_REQUIRE/" old-configure.in + # summarize what's been touched echo Updated to $RELEASE. @@ -123,41 +73,41 @@ index f3d76ea..a9e7fb6 100644 echo -hg stat gfx/graphite2 -+hg stat configure.in gfx/graphite2 ++hg stat old-configure.in gfx/graphite2 echo echo If gfx/graphite2/src/files.mk has changed, please make corresponding diff --git gfx/harfbuzz/README-mozilla gfx/harfbuzz/README-mozilla -index ca57d16..1ce21fe 100644 +index 22c76a7df020..a01490bd49ee 100644 --- gfx/harfbuzz/README-mozilla +++ gfx/harfbuzz/README-mozilla -@@ -18,3 +18,8 @@ the mozilla tree. - In addition, the src/Makefile.in file here is NOT from upstream, nor is it - generated from src/Makefile.am (the original harfbuzz version); it is a mozilla- - specific makefile that is maintained by hand. +@@ -19,3 +19,8 @@ the mozilla tree. + + If the collection of source files changes, manual updates to moz.build may be + needed, as we don't use the upstream makefiles. + +The in-tree copy may be omitted during build by --with-system-harfbuzz. -+Make sure to keep pkg-config version check within configure.in in sync ++Make sure to keep pkg-config version check within toolkit/moz.configure in sync +with checkout version or increment latest tag by one if it's not based +on upstream release. diff --git gfx/moz.build gfx/moz.build -index 519aa46..6929751 100644 +index 771f652e837a..3b358d84e384 100644 --- gfx/moz.build +++ gfx/moz.build -@@ -7,6 +7,12 @@ +@@ -10,6 +10,12 @@ with Files('**'): if CONFIG['MOZ_TREE_CAIRO']: DIRS += ['cairo'] -+if not CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if not CONFIG['MOZ_SYSTEM_GRAPHITE2']: + DIRS += ['graphite2/src' ] + -+if not CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: + DIRS += ['harfbuzz/src'] + DIRS += [ '2d', 'ycbcr', -@@ -15,8 +21,6 @@ DIRS += [ +@@ -18,8 +24,6 @@ DIRS += [ 'qcms', 'gl', 'layers', @@ -167,91 +117,155 @@ index 519aa46..6929751 100644 'thebes', 'ipc', diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py -index 28fa6b5..240dced 100755 +index e06ae3457a47..93faa61594a3 100755 --- gfx/skia/generate_mozbuild.py +++ gfx/skia/generate_mozbuild.py -@@ -134,6 +134,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_ +@@ -143,6 +143,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']: '-Wno-unused-private-field', ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/skia/moz.build gfx/skia/moz.build -index 1d0c2f9..adb8941 100644 +index 2118677ca3a8..e4978b413784 100644 --- gfx/skia/moz.build +++ gfx/skia/moz.build -@@ -752,6 +752,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_ +@@ -753,6 +753,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']: '-Wno-unused-private-field', ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/thebes/moz.build gfx/thebes/moz.build -index d5852fa..aeeab25 100644 +index dee9b7bfa2cb..bd801f3a468e 100644 --- gfx/thebes/moz.build +++ gfx/thebes/moz.build -@@ -306,7 +306,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk +@@ -273,7 +273,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'): LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] -DEFINES['GRAPHITE2_STATIC'] = True -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] -+ -+if CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: + CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] +else: + DEFINES['GRAPHITE2_STATIC'] = True ++ ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] if CONFIG['CLANG_CXX']: # Suppress warnings from Skia header files. -index d736943..41a931f 100644 +diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build +index cb1233c56d7e..06fb1f9f174b 100644 --- intl/unicharutil/util/moz.build +++ intl/unicharutil/util/moz.build -@@ -44,4 +44,7 @@ if CONFIG['ENABLE_INTL_API']: - LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES'] +@@ -40,4 +40,7 @@ if CONFIG['_MSC_VER']: + if CONFIG['ENABLE_INTL_API']: USE_LIBS += ['icu'] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + DIST_INSTALL = True diff --git netwerk/dns/moz.build netwerk/dns/moz.build -index 0b0717a..2e665c9 100644 +index 79c26e3e7001..c4d93bc5f7dc 100644 --- netwerk/dns/moz.build +++ netwerk/dns/moz.build -@@ -66,6 +66,9 @@ LOCAL_INCLUDES += [ +@@ -69,6 +69,9 @@ LOCAL_INCLUDES += [ '/netwerk/base', ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19': - LOCAL_INCLUDES += ['%' + '%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']] + if CONFIG['ENABLE_INTL_API']: + DEFINES['IDNA2008'] = True + USE_LIBS += ['icu'] +diff --git old-configure.in old-configure.in +index 95a58b634593..b614eef85c89 100644 +--- old-configure.in ++++ old-configure.in +@@ -4888,6 +4888,27 @@ dnl ======================================================== + AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR) + + dnl ======================================================== ++dnl Check for graphite2 ++dnl ======================================================== ++if test -n "$MOZ_SYSTEM_GRAPHITE2"; then ++ dnl graphite2.pc has bogus version, check manually ++ _SAVE_CFLAGS=$CFLAGS ++ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS" ++ AC_TRY_COMPILE([ #include <graphite2/Font.h> ++ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ ++ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ ++ * 100 + GR2_VERSION_BUGFIX >= \ ++ (major) * 10000 + (minor) * 100 + (bugfix) ) ++ ], [ ++ #if !GR2_VERSION_REQUIRE(1,3,8) ++ #error "Insufficient graphite2 version." ++ #endif ++ ], [], ++ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) ++ CFLAGS=$_SAVE_CFLAGS ++fi ++ ++dnl ======================================================== + dnl Check for pixman and cairo + dnl ======================================================== diff --git toolkit/library/moz.build toolkit/library/moz.build -index 67f0db9..d42137a 100644 +index 24f940e1ed7e..079a575adec3 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build -@@ -231,6 +231,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']: - if not CONFIG['MOZ_TREE_PIXMAN']: - OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS'] +@@ -228,6 +228,12 @@ if CONFIG['MOZ_SYSTEM_JPEG']: + if CONFIG['MOZ_SYSTEM_PNG']: + OS_LIBS += CONFIG['MOZ_PNG_LIBS'] -+if CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: + OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS'] + -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] + - if CONFIG['MOZ_OSS']: - OS_LIBS += CONFIG['MOZ_OSS_LIBS'] + if CONFIG['MOZ_SYSTEM_HUNSPELL']: + OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] + +diff --git toolkit/moz.configure toolkit/moz.configure +index 9297e4d6f501..d8e273887e4b 100644 +--- toolkit/moz.configure ++++ toolkit/moz.configure +@@ -343,6 +343,26 @@ add_old_configure_assignment('FT2_LIBS', + add_old_configure_assignment('FT2_CFLAGS', + delayed_getattr(ft2_info, 'cflags')) ++# Graphite2 ++# ============================================================== ++option('--with-system-graphite2', ++ help="Use system graphite2 (located with pkgconfig)") ++ ++system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2', ++ when='--with-system-graphite2') ++ ++set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True)) ++ ++# HarfBuzz ++# ============================================================== ++option('--with-system-harfbuzz', ++ help="Use system harfbuzz (located with pkgconfig)") ++ ++system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.1', ++ when='--with-system-harfbuzz') ++ ++set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) ++ + # Apple platform decoder support + # ============================================================== + @depends(toolkit) diff --git a/www/firefox-esr/files/patch-bug981348 b/www/firefox-esr/files/patch-bug981348 index e4b7edf..0c2ffea 100644 --- a/www/firefox-esr/files/patch-bug981348 +++ b/www/firefox-esr/files/patch-bug981348 @@ -1,8 +1,28 @@ diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp -index 4b21361..cb3be32 100644 +index 88bba9baa401..99f240952dfe 100644 --- dom/system/OSFileConstants.cpp +++ dom/system/OSFileConstants.cpp -@@ -662,7 +662,7 @@ +@@ -16,14 +16,17 @@ + #include "dirent.h" + #include "poll.h" + #include "sys/stat.h" +-#if defined(ANDROID) ++#if defined(XP_LINUX) + #include <sys/vfs.h> + #define statvfs statfs ++#define f_frsize f_bsize + #else + #include "sys/statvfs.h" ++#endif // defined(XP_LINUX) ++#if !defined(ANDROID) + #include "sys/wait.h" + #include <spawn.h> +-#endif // defined(ANDROID) ++#endif // !defined(ANDROID) + #endif // defined(XP_UNIX) + + #if defined(XP_LINUX) +@@ -699,7 +702,7 @@ static const dom::ConstantSpec gLibcProperties[] = { "OSFILE_SIZEOF_STATVFS", JS::Int32Value(sizeof (struct statvfs)) }, @@ -12,7 +32,7 @@ index 4b21361..cb3be32 100644 #endif // defined(XP_UNIX) diff --git toolkit/components/osfile/modules/osfile_unix_back.jsm toolkit/components/osfile/modules/osfile_unix_back.jsm -index b59fca4..0cf220b 100644 +index a028dda7d5ec..f5c632e3d7e5 100644 --- toolkit/components/osfile/modules/osfile_unix_back.jsm +++ toolkit/components/osfile/modules/osfile_unix_back.jsm @@ -228,8 +228,8 @@ @@ -27,11 +47,11 @@ index b59fca4..0cf220b 100644 "f_bavail", Type.fsblkcnt_t.implementation); diff --git toolkit/components/osfile/modules/osfile_unix_front.jsm toolkit/components/osfile/modules/osfile_unix_front.jsm -index 99e5e9b..de642c5 100644 +index bd60d4d8419c..a8cd6b546b0e 100644 --- toolkit/components/osfile/modules/osfile_unix_front.jsm +++ toolkit/components/osfile/modules/osfile_unix_front.jsm -@@ -373,7 +373,7 @@ - throw_on_negative("statvfs", UnixFile.statvfs(sourcePath, fileSystemInfoPtr)); +@@ -399,7 +399,7 @@ + throw_on_negative("statvfs", (UnixFile.statvfs || UnixFile.statfs)(sourcePath, fileSystemInfoPtr)); let bytes = new Type.uint64_t.implementation( - fileSystemInfo.f_bsize * fileSystemInfo.f_bavail); diff --git a/www/firefox-esr/files/patch-env-api-keys b/www/firefox-esr/files/patch-env-api-keys new file mode 100644 index 0000000..e20b012 --- /dev/null +++ b/www/firefox-esr/files/patch-env-api-keys @@ -0,0 +1,21 @@ +# Accept API keys from environment like before bug 1294585 + +--- build/moz.configure/keyfiles.configure ++++ build/moz.configure/keyfiles.configure +@@ -18,6 +18,7 @@ def keyfile(desc, help=None, callback=lambda x: x): + @checking('for the %s key' % desc, lambda x: x and x is not no_key) + @imports(_from='__builtin__', _import='open') + @imports(_from='__builtin__', _import='IOError') ++ @imports(_from='os', _import='environ') + def keyfile(value): + if value: + try: +@@ -28,7 +29,7 @@ def keyfile(desc, help=None, callback=lambda x: x): + raise FatalCheckError("'%s' is empty." % value[0]) + except IOError as e: + raise FatalCheckError("'%s': %s." % (value[0], e.strerror)) +- return no_key ++ return environ.get('MOZ_%s_KEY' % desc.upper().replace(' ', '_')) or no_key + + return keyfile + diff --git a/www/firefox-esr/files/patch-ijg-libjpeg b/www/firefox-esr/files/patch-ijg-libjpeg index 074297a..b6788ad 100644 --- a/www/firefox-esr/files/patch-ijg-libjpeg +++ b/www/firefox-esr/files/patch-ijg-libjpeg @@ -1,10 +1,10 @@ # Partially revert bug 791305 to allow building with system IJG jpeg library -diff --git configure.in configure.in +diff --git old-configure.in configure.in index f0aeb5d..1c01010 100644 ---- configure.in -+++ configure.in -@@ -4027,11 +4027,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then +--- old-configure.in ++++ old-configure.in +@@ -4027,11 +4027,7 @@ if test "$MOZ_SYSTEM_JPEG" = 1; then #include <jpeglib.h> ], [ #if JPEG_LIB_VERSION < $MOZJPEG #error "Insufficient JPEG library version ($MOZJPEG required)." @@ -14,7 +14,7 @@ index f0aeb5d..1c01010 100644 - #endif - ], + #endif ], - MOZ_NATIVE_JPEG=1, + MOZ_SYSTEM_JPEG=1, AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg])) fi diff --git image/decoders/nsJPEGDecoder.cpp image/decoders/nsJPEGDecoder.cpp diff --git a/www/firefox-esr/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c b/www/firefox-esr/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c deleted file mode 100644 index 69658e2..0000000 --- a/www/firefox-esr/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c +++ /dev/null @@ -1,16 +0,0 @@ ---- media/mtransport/third_party/nICEr/src/util/mbslen.c~ -+++ media/mtransport/third_party/nICEr/src/util/mbslen.c -@@ -54,6 +54,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - # endif - #endif - -+#ifdef __DragonFly__ -+#include <osreldate.h> -+# if __DragonFly_version > 300502 -+# define HAVE_XLOCALE -+# endif -+#endif -+ - #ifdef HAVE_XLOCALE - #include <xlocale.h> - #endif /* HAVE_XLOCALE */ diff --git a/www/firefox-esr/files/patch-modules-libpref-init-all.js b/www/firefox-esr/files/patch-modules-libpref-init-all.js deleted file mode 100644 index 660b538..0000000 --- a/www/firefox-esr/files/patch-modules-libpref-init-all.js +++ /dev/null @@ -1,15 +0,0 @@ ---- modules/libpref/init/all.js.orig 2015-08-06 22:39:34 UTC -+++ modules/libpref/init/all.js -@@ -4052,7 +4052,12 @@ pref("layers.max-active", -1); - pref("layers.tiles.adjust", true); - - // Set the default values, and then override per-platform as needed -+#ifdef MOZ_TREE_CAIRO - pref("layers.offmainthreadcomposition.enabled", true); -+#else -+// Disable for system cairo on suspicion of causing random crashes -+pref("layers.offmainthreadcomposition.enabled", false); -+#endif - // Compositor target frame rate. NOTE: If vsync is enabled the compositor - // frame rate will still be capped. - // -1 -> default (match layout.frame_rate or 60 FPS) diff --git a/www/firefox-esr/files/patch-sample-type b/www/firefox-esr/files/patch-sample-type index 980bde6..cf460a0 100644 --- a/www/firefox-esr/files/patch-sample-type +++ b/www/firefox-esr/files/patch-sample-type @@ -1,7 +1,7 @@ # Let ports handle default sample type ---- configure.in~ -+++ configure.in +--- old-configure.in~ ++++ old-configure.in @@ -5144,7 +5144,7 @@ dnl Use integers over floats for audio o dnl (regarless of the CPU architecture, because audio dnl backends for those platforms don't support floats. We also diff --git a/www/firefox-esr/files/patch-z-bug517422 b/www/firefox-esr/files/patch-z-bug517422 index 723900a..e3c4c41 100644 --- a/www/firefox-esr/files/patch-z-bug517422 +++ b/www/firefox-esr/files/patch-z-bug517422 @@ -1,220 +1,120 @@ # Allow more config/external/ libs built against system-wide version. +diff --git build/moz.configure/old.configure build/moz.configure/old.configure +index d0fe7accffe6..c46bdd023225 100644 +--- build/moz.configure/old.configure ++++ build/moz.configure/old.configure +@@ -288,7 +288,12 @@ def old_configure_options(*options): + '--with-system-libvpx', + '--with-system-nspr', + '--with-system-nss', ++ '--with-system-ogg', + '--with-system-png', ++ '--with-system-soundtouch', ++ '--with-system-theora', ++ '--with-system-tremor', ++ '--with-system-vorbis', + '--with-system-zlib', + '--with-thumb', + '--with-thumb-interwork', diff --git config/Makefile.in config/Makefile.in -index 5383399..0410004 100644 +index a6206bb0ff30..f20987c61754 100644 --- config/Makefile.in +++ config/Makefile.in -@@ -77,6 +77,11 @@ export:: $(export-preqs) - -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ - -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \ - -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \ -+ -DMOZ_NATIVE_OGG=$(MOZ_NATIVE_OGG) \ -+ -DMOZ_NATIVE_THEORA=$(MOZ_NATIVE_THEORA) \ -+ -DMOZ_NATIVE_VORBIS=$(MOZ_NATIVE_VORBIS) \ -+ -DMOZ_NATIVE_TREMOR=$(MOZ_NATIVE_TREMOR) \ -+ -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \ - $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers +@@ -51,6 +51,11 @@ export:: $(export-preqs) + -DMOZ_SYSTEM_LIBEVENT=$(MOZ_SYSTEM_LIBEVENT) \ + -DMOZ_SYSTEM_LIBVPX=$(MOZ_SYSTEM_LIBVPX) \ + -DMOZ_SYSTEM_ICU=$(MOZ_SYSTEM_ICU) \ ++ -DMOZ_SYSTEM_OGG=$(MOZ_SYSTEM_OGG) \ ++ -DMOZ_SYSTEM_THEORA=$(MOZ_SYSTEM_THEORA) \ ++ -DMOZ_SYSTEM_VORBIS=$(MOZ_SYSTEM_VORBIS) \ ++ -DMOZ_SYSTEM_TREMOR=$(MOZ_SYSTEM_TREMOR) \ ++ -DMOZ_SYSTEM_SOUNDTOUCH=$(MOZ_SYSTEM_SOUNDTOUCH) \ + $(srcdir)/system-headers $(srcdir)/stl-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers $(INSTALL) system_wrappers $(DIST) diff --git config/external/moz.build config/external/moz.build -index f67c5c7..eb909ce 100644 +index 029ff8504795..2c3a40caa1ba 100644 --- config/external/moz.build +++ config/external/moz.build -@@ -19,10 +19,16 @@ if CONFIG['MOZ_UPDATER']: - # There's no "native brotli" yet, but probably in the future... +@@ -21,12 +21,21 @@ if CONFIG['MOZ_UPDATER']: external_dirs += ['modules/brotli'] + external_dirs += ['modules/woff2'] -if CONFIG['MOZ_VORBIS']: -+if not CONFIG['MOZ_NATIVE_OGG']: ++if not CONFIG['MOZ_SYSTEM_OGG']: + external_dirs += ['media/libogg'] + -+if not CONFIG['MOZ_NATIVE_THEORA']: -+ external_dirs += ['media/libtheora'] -+ -+if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_SYSTEM_VORBIS']: external_dirs += ['media/libvorbis'] -if CONFIG['MOZ_TREMOR']: -+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_SYSTEM_TREMOR']: external_dirs += ['media/libtremor'] - if CONFIG['MOZ_WEBM']: -@@ -37,15 +46,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ - if not CONFIG['MOZ_NATIVE_PNG']: - external_dirs += ['media/libpng'] - -+if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if not CONFIG['MOZ_SYSTEM_THEORA']: ++ external_dirs += ['media/libtheora'] ++ ++if not CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + external_dirs += ['media/libsoundtouch'] + - external_dirs += [ + if CONFIG['MOZ_WEBM_ENCODER']: + external_dirs += ['media/libmkv'] + +@@ -52,12 +61,9 @@ external_dirs += [ 'media/kiss_fft', 'media/libcubeb', + 'media/libnestegg', - 'media/libogg', 'media/libopus', - 'media/libtheora', 'media/libspeex_resampler', 'media/libstagefright', - 'media/libsoundtouch', + 'media/psshparser' ] - DIRS += ['../../' + i for i in external_dirs] diff --git config/system-headers config/system-headers -index bef567c..9807c29 100644 +index 5ee7f71f9634..13178ac3b3ab 100644 --- config/system-headers +++ config/system-headers -@@ -1364,3 +1363,17 @@ graphite2/Segment.h - harfbuzz/hb-ot.h - harfbuzz/hb.h - #endif -+#if MOZ_NATIVE_OGG==1 +@@ -1348,3 +1348,17 @@ unicode/utypes.h + libutil.h + unwind.h + fenv.h ++#if MOZ_SYSTEM_OGG==1 +ogg/ogg.h +ogg/os_types.h +#endif -+#if MOZ_NATIVE_THEORA==1 ++#if MOZ_SYSTEM_THEORA==1 +theora/theoradec.h +#endif -+#if MOZ_NATIVE_VORBIS==1 ++#if MOZ_SYSTEM_VORBIS==1 +vorbis/codec.h +vorbis/vorbisenc.h +#endif -+#if MOZ_NATIVE_TREMOR==1 ++#if MOZ_SYSTEM_TREMOR==1 +tremor/ivorbiscodec.h +#endif -diff --git configure.in configure.in -index 87db361..7947626 100644 ---- configure.in -+++ configure.in -@@ -5223,6 +5223,111 @@ if test "${ac_cv_c_attribute_aligned}" ! - fi - - dnl ======================================================== -+dnl Check for libogg -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-ogg, -+[ --with-system-ogg Use system libogg (located with pkgconfig)], -+MOZ_NATIVE_OGG=1, -+MOZ_NATIVE_OGG=) -+ -+if test -n "$MOZ_NATIVE_OGG"; then -+ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.2.1) -+ -+ _SAVE_LIBS=$LIBS -+ LIBS="$LIBS $MOZ_OGG_LIBS" -+ AC_CHECK_FUNC(ogg_set_mem_functions, [], -+ [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)]) -+ LIBS=$_SAVE_LIBS -+fi -+ -+AC_SUBST(MOZ_NATIVE_OGG) -+ -+dnl ======================================================== -+dnl Check for libvorbis -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-vorbis, -+[ --with-system-vorbis Use system libvorbis (located with pkgconfig)], -+MOZ_NATIVE_VORBIS=1, -+MOZ_NATIVE_VORBIS=) -+ -+if test -n "$MOZ_NATIVE_VORBIS"; then -+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5) -+fi -+ -+AC_SUBST(MOZ_NATIVE_VORBIS) -+ -+dnl ======================================================== -+dnl Check for integer-only libvorbis aka tremor -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-tremor, -+[ --with-system-tremor Use system libtremor (located with pkgconfig)], -+MOZ_NATIVE_TREMOR=1, -+MOZ_NATIVE_TREMOR=) -+ -+if test -n "$MOZ_NATIVE_TREMOR"; then -+ PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1) -+fi -+ -+AC_SUBST(MOZ_NATIVE_TREMOR) -+ -+dnl ======================================================== -+dnl Check for libtheora -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-theora, -+[ --with-system-theora Use system libtheora (located with pkgconfig)], -+MOZ_NATIVE_THEORA=1, -+MOZ_NATIVE_THEORA=) -+ -+if test -n "$MOZ_NATIVE_THEORA"; then -+ PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2) -+fi -+ -+AC_SUBST(MOZ_NATIVE_THEORA) -+ -+dnl ======================================================== -+dnl Check for libSoundTouch -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-soundtouch, -+[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)], -+MOZ_NATIVE_SOUNDTOUCH=1, -+MOZ_NATIVE_SOUNDTOUCH=) -+ -+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then -+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0) -+ -+ AC_LANG_SAVE -+ AC_LANG_CPLUSPLUS -+ _SAVE_CXXFLAGS=$CXXFLAGS -+ CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS" -+ AC_CACHE_CHECK(for soundtouch sample type, -+ ac_cv_soundtouch_sample_type, -+ [AC_TRY_COMPILE([#include <SoundTouch.h> -+ #ifndef SOUNDTOUCH_INTEGER_SAMPLES -+ #error soundtouch expects float samples -+ #endif], -+ [], -+ [ac_cv_soundtouch_sample_type=short], -+ [ac_cv_soundtouch_sample_type=float])]) -+ CXXFLAGS=$_SAVE_CXXFLAGS -+ AC_LANG_RESTORE -+ -+ if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \ -+ -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then -+ AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.]) -+ fi -+fi -+ -+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then -+ AC_DEFINE(MOZ_NATIVE_SOUNDTOUCH) -+fi -+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH) -+ -+dnl ======================================================== - dnl = Disable VP8 decoder support - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(webm, diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp -index 2127256..1ec09fe 100644 +index 93ecda4319af..ff674c64ea07 100644 --- dom/media/AudioStream.cpp +++ dom/media/AudioStream.cpp -@@ -129,7 +129,9 @@ AudioStream::AudioStream() +@@ -115,7 +115,9 @@ AudioStream::AudioStream(DataSource& aSource) + : mMonitor("AudioStream") + , mChannels(0) , mOutChannels(0) - , mWritten(0) - , mAudioClock(this) -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH , mTimeStretcher(nullptr) +#endif , mDumpFile(nullptr) - , mBytesPerFrame(0) , mState(INITIALIZED) -@@ -152,9 +154,11 @@ AudioStream::~AudioStream() + , mDataSource(aSource) +@@ -130,9 +132,11 @@ AudioStream::~AudioStream() if (mDumpFile) { fclose(mDumpFile); } -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH if (mTimeStretcher) { soundtouch::destroySoundTouchObj(mTimeStretcher); } @@ -222,27 +122,27 @@ index 2127256..1ec09fe 100644 } size_t -@@ -177,7 +181,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked() +@@ -151,7 +155,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked() { mMonitor.AssertCurrentThreadOwns(); if (!mTimeStretcher) { -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH + mTimeStretcher = new soundtouch::SoundTouch(); +#else mTimeStretcher = soundtouch::createSoundTouchObj(); +#endif - mTimeStretcher->setSampleRate(mInRate); + mTimeStretcher->setSampleRate(mAudioClock.GetInputRate()); mTimeStretcher->setChannels(mOutChannels); mTimeStretcher->setPitch(1.0); diff --git dom/media/AudioStream.h dom/media/AudioStream.h -index a552e3e..02b80b1 100644 +index 7dc1f60f95cc..67d402a4117f 100644 --- dom/media/AudioStream.h +++ dom/media/AudioStream.h -@@ -15,7 +15,11 @@ - #include "mozilla/RefPtr.h" +@@ -16,7 +16,11 @@ + #include "mozilla/TimeStamp.h" #include "mozilla/UniquePtr.h" #include "CubebUtils.h" -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH +#include "soundtouch/SoundTouch.h" +#else #include "soundtouch/SoundTouchFactory.h" @@ -250,54 +150,96 @@ index a552e3e..02b80b1 100644 namespace mozilla { -@@ -277,7 +277,11 @@ private: - // Number of frames written to the buffers. - int64_t mWritten; +@@ -287,7 +291,11 @@ private: + uint32_t mChannels; + uint32_t mOutChannels; AudioClock mAudioClock; -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH + nsAutoPtr<soundtouch::SoundTouch> mTimeStretcher; +#else soundtouch::SoundTouch* mTimeStretcher; +#endif - // Stream start time for stream open delay telemetry. - TimeStamp mStartTime; + // Output file for dumping audio + FILE* mDumpFile; diff --git dom/media/moz.build dom/media/moz.build -index 7526cff..e0a0ca0 100644 +index 86b051c58d33..fb6186dce78b 100644 --- dom/media/moz.build +++ dom/media/moz.build -@@ -212,3 +212,18 @@ if CONFIG['ANDROID_VERSION'] > '15': +@@ -308,6 +308,21 @@ if CONFIG['MOZ_WEBRTC']: - CFLAGS += CONFIG['GSTREAMER_CFLAGS'] - CXXFLAGS += CONFIG['GSTREAMER_CFLAGS'] -+ -+if CONFIG['MOZ_NATIVE_OGG']: + DEFINES['MOZILLA_INTERNAL_API'] = True + ++if CONFIG['MOZ_SYSTEM_OGG']: + CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_THEORA']: ++if CONFIG['MOZ_SYSTEM_THEORA']: + CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_SYSTEM_VORBIS']: + CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_SYSTEM_TREMOR']: + CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS'] ++ + if CONFIG['OS_TARGET'] == 'WINNT': + DEFINES['WEBRTC_WIN'] = True + else: +diff --git dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp +index 078f6ea5ef60..c600db067539 100644 +--- dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp ++++ dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp +@@ -11,9 +11,13 @@ + #include "prmem.h" + #include "prlink.h" + ++#ifdef MOZ_SYSTEM_SOUNDTOUCH ++#include "nsXPCOMPrivate.h" // for XUL_DLL ++#else + // We use a known symbol located in lgpllibs to determine its location. + // soundtouch happens to be always included in lgpllibs + #include "soundtouch/SoundTouch.h" ++#endif + + namespace mozilla { + +@@ -50,6 +54,12 @@ FFVPXRuntimeLinker::Init() + + sLinkStatus = LinkStatus_FAILED; + ++#ifdef MOZ_SYSTEM_SOUNDTOUCH ++ // We retrieve the path of the XUL library as this is where mozavcodec and ++ // mozavutil libs are located. ++ char* path = ++ PR_GetLibraryFilePathname(XUL_DLL, (PRFuncPtr)&FFVPXRuntimeLinker::Init); ++#else + // We retrieve the path of the lgpllibs library as this is where mozavcodec + // and mozavutil libs are located. + char* lgpllibsname = PR_GetLibraryName(nullptr, "lgpllibs"); +@@ -60,6 +70,7 @@ FFVPXRuntimeLinker::Init() + PR_GetLibraryFilePathname(lgpllibsname, + (PRFuncPtr)&soundtouch::SoundTouch::getVersionId); + PR_FreeLibraryName(lgpllibsname); ++#endif + if (!path) { + return false; + } diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA -index 0833e4d..7ece97b 100644 +index 6213fdc7770c..ada799916a17 100644 --- media/libogg/README_MOZILLA +++ media/libogg/README_MOZILLA -@@ -6,3 +6,6 @@ The svn revision number used was r17287. +@@ -6,3 +6,6 @@ package downloaded from xiph.org and copied using the update.sh script. The int-types.patch address a bug that config_types.h generated from Linux platform can't be used on OpenSolaris directly see Mozilla bug 449754 + +The in-tree copy may be omitted during build by --with-system-ogg. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libsoundtouch/README_MOZILLA media/libsoundtouch/README_MOZILLA -index bfd4b1a..15b158d 100644 +index dc0dbe8f6886..ea73b55e3e39 100644 --- media/libsoundtouch/README_MOZILLA +++ media/libsoundtouch/README_MOZILLA @@ -6,3 +6,5 @@ The whole library is not used, only the relevant files are imported in the tree, @@ -305,23 +247,23 @@ index bfd4b1a..15b158d 100644 the patch `moz-libsoundtouch.patch`. We also use a custom soundtouch_config.h. +The in-tree copy may be omitted during build by --with-system-soundtouch. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libsoundtouch/src/soundtouch_perms.h media/libsoundtouch/src/soundtouch_perms.h -index 0af2fe6..d80c145 100644 +index 0af2fe618311..10973564e7a4 100644 --- media/libsoundtouch/src/soundtouch_perms.h +++ media/libsoundtouch/src/soundtouch_perms.h @@ -12,7 +12,9 @@ #pragma GCC visibility push(default) #include "SoundTouch.h" -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH #include "SoundTouchFactory.h" +#endif #pragma GCC visibility pop #endif // MOZILLA_SOUNDTOUCH_PERMS_H diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA -index d48dbfa..f08a2ed 100644 +index d48dbfa6f63d..6f30f250220e 100644 --- media/libtheora/README_MOZILLA +++ media/libtheora/README_MOZILLA @@ -3,3 +3,6 @@ using the update.sh script. The changes made were those applied by update.sh, @@ -330,23 +272,23 @@ index d48dbfa..f08a2ed 100644 The subversion revision used was r17578. + +The in-tree copy may be omitted during build by --with-system-theora. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libtheora/moz.build media/libtheora/moz.build -index 14265b1..3069e99 100644 +index c7f85eebff95..aae7b814adb5 100644 --- media/libtheora/moz.build +++ media/libtheora/moz.build -@@ -21,6 +21,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']: +@@ -21,6 +21,9 @@ FINAL_LIBRARY = 'gkmedias' # The encoder is currently not included. DEFINES['THEORA_DISABLE_ENCODE'] = True -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] + # Suppress warnings in third-party code. - if CONFIG['GNU_CC']: + if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']: CFLAGS += ['-Wno-type-limits'] diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA -index ee67b53..3f34a09 100644 +index ee67b53a05c5..81c971773d55 100644 --- media/libtremor/README_MOZILLA +++ media/libtremor/README_MOZILLA @@ -5,3 +5,6 @@ Makefile.in files for the Mozilla build system. @@ -355,80 +297,196 @@ index ee67b53..3f34a09 100644 The subversion revision used was r17547. + +The in-tree copy may be omitted during build by --with-system-tremor. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libtremor/moz.build media/libtremor/moz.build -index 31831ba..a03d576 100644 +index 83afc8e37c64..71ef159da3d7 100644 --- media/libtremor/moz.build +++ media/libtremor/moz.build -@@ -6,3 +6,5 @@ +@@ -9,3 +9,5 @@ with Files('*'): DIRS += ['include/tremor', 'lib'] -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] diff --git media/libvorbis/README_MOZILLA media/libvorbis/README_MOZILLA -index 7c7454c..55baedd 100644 +index 1211ac074b33..eb31084aed25 100644 --- media/libvorbis/README_MOZILLA +++ media/libvorbis/README_MOZILLA -@@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.4@19059 +@@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.5@19464 Some files are renamed during the copy to prevent clashes with object file names with other Mozilla libraries. + +The in-tree copy may be omitted during build by --with-system-vorbis. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libvorbis/moz.build media/libvorbis/moz.build -index 919b99e..cc776f7 100644 +index adf393782cc9..923b76231107 100644 --- media/libvorbis/moz.build +++ media/libvorbis/moz.build -@@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias' +@@ -56,3 +56,6 @@ FINAL_LIBRARY = 'gkmedias' # Suppress warnings in third-party code. if CONFIG['GNU_CC']: CFLAGS += ['-Wno-uninitialized'] + -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] +diff --git old-configure.in old-configure.in +index b614eef85c89..85f9099dba4d 100644 +--- old-configure.in ++++ old-configure.in +@@ -2941,6 +2941,111 @@ if test -n "$MOZ_OMX_PLUGIN"; then + fi + fi + ++dnl ======================================================== ++dnl Check for libogg ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-ogg, ++[ --with-system-ogg Use system libogg (located with pkgconfig)], ++MOZ_SYSTEM_OGG=1, ++MOZ_SYSTEM_OGG=) ++ ++if test -n "$MOZ_SYSTEM_OGG"; then ++ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.3.0) ++ ++ _SAVE_LIBS=$LIBS ++ LIBS="$LIBS $MOZ_OGG_LIBS" ++ AC_CHECK_FUNC(ogg_set_mem_functions, [], ++ [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)]) ++ LIBS=$_SAVE_LIBS ++fi ++ ++AC_SUBST(MOZ_SYSTEM_OGG) ++ ++dnl ======================================================== ++dnl Check for libvorbis ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-vorbis, ++[ --with-system-vorbis Use system libvorbis (located with pkgconfig)], ++MOZ_SYSTEM_VORBIS=1, ++MOZ_SYSTEM_VORBIS=) ++ ++if test -n "$MOZ_SYSTEM_VORBIS"; then ++ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5) ++fi ++ ++AC_SUBST(MOZ_SYSTEM_VORBIS) ++ ++dnl ======================================================== ++dnl Check for integer-only libvorbis aka tremor ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-tremor, ++[ --with-system-tremor Use system libtremor (located with pkgconfig)], ++MOZ_SYSTEM_TREMOR=1, ++MOZ_SYSTEM_TREMOR=) ++ ++if test -n "$MOZ_SYSTEM_TREMOR"; then ++ PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1) ++fi ++ ++AC_SUBST(MOZ_SYSTEM_TREMOR) ++ ++dnl ======================================================== ++dnl Check for libtheora ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-theora, ++[ --with-system-theora Use system libtheora (located with pkgconfig)], ++MOZ_SYSTEM_THEORA=1, ++MOZ_SYSTEM_THEORA=) ++ ++if test -n "$MOZ_SYSTEM_THEORA"; then ++ PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2) ++fi ++ ++AC_SUBST(MOZ_SYSTEM_THEORA) ++ ++dnl ======================================================== ++dnl Check for libSoundTouch ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-soundtouch, ++[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)], ++MOZ_SYSTEM_SOUNDTOUCH=1, ++MOZ_SYSTEM_SOUNDTOUCH=) ++ ++if test -n "$MOZ_SYSTEM_SOUNDTOUCH"; then ++ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0) ++ ++ AC_LANG_SAVE ++ AC_LANG_CPLUSPLUS ++ _SAVE_CXXFLAGS=$CXXFLAGS ++ CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS" ++ AC_CACHE_CHECK(for soundtouch sample type, ++ ac_cv_soundtouch_sample_type, ++ [AC_TRY_COMPILE([#include <SoundTouch.h> ++ #ifndef SOUNDTOUCH_INTEGER_SAMPLES ++ #error soundtouch expects float samples ++ #endif], ++ [], ++ [ac_cv_soundtouch_sample_type=short], ++ [ac_cv_soundtouch_sample_type=float])]) ++ CXXFLAGS=$_SAVE_CXXFLAGS ++ AC_LANG_RESTORE ++ ++ if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \ ++ -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then ++ AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.]) ++ fi ++fi ++ ++if test -n "$MOZ_SYSTEM_SOUNDTOUCH"; then ++ AC_DEFINE(MOZ_SYSTEM_SOUNDTOUCH) ++fi ++AC_SUBST(MOZ_SYSTEM_SOUNDTOUCH) ++ + dnl system libvpx Support + dnl ======================================================== + MOZ_ARG_WITH_BOOL(system-libvpx, diff --git toolkit/library/moz.build toolkit/library/moz.build -index d42137a..695e75a8 100644 +index 079a575adec3..514d901195de 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build -@@ -178,6 +178,21 @@ if CONFIG['MOZ_NATIVE_PNG']: - if CONFIG['MOZ_NATIVE_HUNSPELL']: +@@ -237,6 +237,21 @@ if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + if CONFIG['MOZ_SYSTEM_HUNSPELL']: OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + OS_LIBS += CONFIG['MOZ_OGG_LIBS'] + -+if CONFIG['MOZ_NATIVE_THEORA']: ++if CONFIG['MOZ_SYSTEM_THEORA']: + OS_LIBS += CONFIG['MOZ_THEORA_LIBS'] + -+if CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_SYSTEM_VORBIS']: + OS_LIBS += CONFIG['MOZ_VORBIS_LIBS'] + -+if CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_SYSTEM_TREMOR']: + OS_LIBS += CONFIG['MOZ_TREMOR_LIBS'] + -+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS'] + - if CONFIG['MOZ_NATIVE_LIBEVENT']: + if CONFIG['MOZ_SYSTEM_LIBEVENT']: OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS'] diff --git xpcom/build/XPCOMInit.cpp xpcom/build/XPCOMInit.cpp -index 2cf281e..6d7af0e 100644 +index c083ab4bc4f3..62b917043a2c 100644 --- xpcom/build/XPCOMInit.cpp +++ xpcom/build/XPCOMInit.cpp -@@ -138,7 +138,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**); - #include "mozilla/VisualEventTracer.h" - #endif +@@ -154,7 +154,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**); + + #include "mozilla/ipc/GeckoChildProcessHost.h" +#ifndef MOZ_OGG_NO_MEM_REPORTING #include "ogg/ogg.h" +#endif #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) - #include "vpx_mem/vpx_mem.h" - #endif -@@ -651,11 +653,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult, + #if defined(HAVE_STDINT_H) + // mozilla-config.h defines HAVE_STDINT_H, and then it's defined *again* in +@@ -664,11 +666,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult, // this oddness. mozilla::SetICUMemoryFunctions(); |