1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-20 00:21:35 +00:00

mail/thunderbird: update to 60.0

Changes:	https://www.mozilla.org/thunderbird/60.0/releasenotes/
PR:		228477
Differential Revision:	https://reviews.freebsd.org/D15565
This commit is contained in:
Jan Beich 2018-07-19 00:00:51 +00:00
parent e344179e47
commit 29145c76be
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=474921
39 changed files with 37307 additions and 157 deletions

View File

@ -50,8 +50,8 @@ _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:C/[0-9]*\.//:C/\..*//}
.elif ${gecko_ARGS:Mthunderbird}
_GECKO_DEFAULT_VERSION= 52
_GECKO_VERSIONS= 52
_GECKO_DEFAULT_VERSION= 60
_GECKO_VERSIONS= 60
_GECKO_TYPE= thunderbird
.if exists(${LOCALBASE}/bin/thunderbird)
@ -60,7 +60,7 @@ _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:C/\..*//}
.endif
# Dependence lines for different Thunderbird versions
52_DEPENDS= ${LOCALBASE}/lib/thunderbird/thunderbird:mail/thunderbird
60_DEPENDS= ${LOCALBASE}/lib/thunderbird/thunderbird:mail/thunderbird
.else
IGNORE= Unknown type of gecko dependency you may specify either firefox, seamonkey or thunderbird

View File

@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= thunderbird-i18n
PORTVERSION= 52.9.1
PORTVERSION= 60.0
CATEGORIES= mail news net-im
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \
MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build3/linux-i686/xpi
MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build2/linux-i686/xpi
PKGNAMEPREFIX=
DISTFILES= ${THUNDERBIRD_I18N_:S/$/.xpi/}
DIST_SUBDIR= xpi/${DISTNAME}

View File

@ -1,10 +1,10 @@
# $FreeBSD$
THUNDERBIRD_I18N_ALL_= ar ast be bg bn-BD br ca cs cy da de dsb el en-GB \
en-US es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he \
hr hsb hu hy-AM id is it ja kab ko lt nb-NO nl nn-NO \
pa-IN pl pt-BR pt-PT rm ro ru si sk sl sq sr sv-SE \
ta-LK tr uk vi zh-CN zh-TW
THUNDERBIRD_I18N_ALL_= ar ast be bg br ca cs cy da de dsb el en-GB en-US \
es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hsb \
hu hy-AM id is it ja kab kk ko lt ms nb-NO nl nn-NO \
pl pt-BR pt-PT rm ro ru si sk sl sq sr sv-SE tr uk vi \
zh-CN zh-TW
.if defined(THUNDERBIRD_I18N_ALL) || defined(PACKAGE_BUILDING) || target(package)
THUNDERBIRD_I18N= ${THUNDERBIRD_I18N_ALL_}
@ -114,12 +114,18 @@ THUNDERBIRD_I18N+= ja
.if ${PORT_OPTIONS:MLANG_KAB}
THUNDERBIRD_I18N+= kab
.endif
.if ${PORT_OPTIONS:MLANG_KK}
FIREFOX_I18N+= kk
.endif
.if ${PORT_OPTIONS:MLANG_KO}
THUNDERBIRD_I18N+= ko
.endif
.if ${PORT_OPTIONS:MLANG_LT}
THUNDERBIRD_I18N+= lt
.endif
.if ${PORT_OPTIONS:MLANG_MS}
FIREFOX_I18N+= ms
.endif
.if ${PORT_OPTIONS:MLANG_NB}
THUNDERBIRD_I18N+= nb-NO
.endif

View File

@ -36,8 +36,10 @@ OPTIONS_DEFINE= LANG_AR \
LANG_IT \
LANG_JA \
LANG_KAB \
LANG_KK \
LANG_KO \
LANG_LT \
LANG_MS \
LANG_NB \
LANG_NL \
LANG_NN \

View File

@ -1,119 +1,117 @@
TIMESTAMP = 1530448777
SHA256 (xpi/thunderbird-i18n-52.9.1/ar.xpi) = 4e126d51c735e53f4f5fb4bd09094802639b08d42c71b8513398d164946ebba0
SIZE (xpi/thunderbird-i18n-52.9.1/ar.xpi) = 604235
SHA256 (xpi/thunderbird-i18n-52.9.1/ast.xpi) = e74a25ef050bcaf60d086a4460e4ee0c5d24ca9e3298bf7ee510238a5767fa5e
SIZE (xpi/thunderbird-i18n-52.9.1/ast.xpi) = 541173
SHA256 (xpi/thunderbird-i18n-52.9.1/be.xpi) = eacf02c785ad21de6a8fa41dd7d96d0971b3057e427fc8f42425cf504ead2fc7
SIZE (xpi/thunderbird-i18n-52.9.1/be.xpi) = 570931
SHA256 (xpi/thunderbird-i18n-52.9.1/bg.xpi) = 78094a216d300c803a9ffe1053485fc3520c5ac8a7a6880c164661d26446b772
SIZE (xpi/thunderbird-i18n-52.9.1/bg.xpi) = 634897
SHA256 (xpi/thunderbird-i18n-52.9.1/bn-BD.xpi) = e26b5dd3a73377568cc988f74ba103de1582b4327f7364d80ccf36bed75ce47e
SIZE (xpi/thunderbird-i18n-52.9.1/bn-BD.xpi) = 676900
SHA256 (xpi/thunderbird-i18n-52.9.1/br.xpi) = 039135e876e59e111322cb295706c44ec6de8db21ca8a3cd1d4df7b8e97c2561
SIZE (xpi/thunderbird-i18n-52.9.1/br.xpi) = 559380
SHA256 (xpi/thunderbird-i18n-52.9.1/ca.xpi) = bd7a18290ee33e07a9b13b5ac56bae0e05e9e6eadf67bbc846e6fb9942ffecbe
SIZE (xpi/thunderbird-i18n-52.9.1/ca.xpi) = 569910
SHA256 (xpi/thunderbird-i18n-52.9.1/cs.xpi) = 60bb32710a8afda584ca1c2566037f2489e190aaa15b9401eae0c3a6ea87f178
SIZE (xpi/thunderbird-i18n-52.9.1/cs.xpi) = 579149
SHA256 (xpi/thunderbird-i18n-52.9.1/cy.xpi) = 9c6f813b8bae310427729e6f87dd7541e9f0e5012684fcca79df839deffca49d
SIZE (xpi/thunderbird-i18n-52.9.1/cy.xpi) = 554858
SHA256 (xpi/thunderbird-i18n-52.9.1/da.xpi) = 412186224359be3848e12769d4c7564535b2442a785a509cfa95596ebe253c1c
SIZE (xpi/thunderbird-i18n-52.9.1/da.xpi) = 543334
SHA256 (xpi/thunderbird-i18n-52.9.1/de.xpi) = cd8d6b41e53b747e6731b6678ed78100ffeccac2d5b2548f6a817fc7178020cc
SIZE (xpi/thunderbird-i18n-52.9.1/de.xpi) = 555743
SHA256 (xpi/thunderbird-i18n-52.9.1/dsb.xpi) = 208a209a8a930a7c21c0080a2446ce68cc2b69b92debbed9bb11263b6f8599a5
SIZE (xpi/thunderbird-i18n-52.9.1/dsb.xpi) = 584582
SHA256 (xpi/thunderbird-i18n-52.9.1/el.xpi) = 4547a29d281178642ab8e44c3a931256e9ab0f54c2b9e1d070c185f1bc4cd43b
SIZE (xpi/thunderbird-i18n-52.9.1/el.xpi) = 662964
SHA256 (xpi/thunderbird-i18n-52.9.1/en-GB.xpi) = 08fe22418c2f7eb1c905ba8fad946b1a225d8a22f137fcb84eb1c54db8f9d3d7
SIZE (xpi/thunderbird-i18n-52.9.1/en-GB.xpi) = 531233
SHA256 (xpi/thunderbird-i18n-52.9.1/en-US.xpi) = 8fa5e585b1b12a4ba7a839b8f2f6289620e47820fd0b3e5f62b9275788181893
SIZE (xpi/thunderbird-i18n-52.9.1/en-US.xpi) = 529123
SHA256 (xpi/thunderbird-i18n-52.9.1/es-AR.xpi) = 02b6864746d5610ca0d4ca0cb6e66a3ec754646d35edd0f5c6865a00bd37150c
SIZE (xpi/thunderbird-i18n-52.9.1/es-AR.xpi) = 565995
SHA256 (xpi/thunderbird-i18n-52.9.1/es-ES.xpi) = 5a40466e88e3f0c0698281554d7ad2578c9447c04165cf8a2c88ca06c173753f
SIZE (xpi/thunderbird-i18n-52.9.1/es-ES.xpi) = 445464
SHA256 (xpi/thunderbird-i18n-52.9.1/et.xpi) = eceffb5d80f109c0ee015d6818b7e9cf07f67bb56db455ec0bd3076c5879f316
SIZE (xpi/thunderbird-i18n-52.9.1/et.xpi) = 551661
SHA256 (xpi/thunderbird-i18n-52.9.1/eu.xpi) = 035a45221dccb53e4c4d0a23c67cc5130ef277307d4bc122db1fb4bd9b3726f6
SIZE (xpi/thunderbird-i18n-52.9.1/eu.xpi) = 555536
SHA256 (xpi/thunderbird-i18n-52.9.1/fi.xpi) = a8bcef75989b924a29f2433c30d00afbf6ffc20bcdffd4eadc2c78508958d205
SIZE (xpi/thunderbird-i18n-52.9.1/fi.xpi) = 550669
SHA256 (xpi/thunderbird-i18n-52.9.1/fr.xpi) = 5e7d1db861d8035b8e2706ce3ca519a1a607e2fc73f4b7221e81b3cb3d233a66
SIZE (xpi/thunderbird-i18n-52.9.1/fr.xpi) = 577560
SHA256 (xpi/thunderbird-i18n-52.9.1/fy-NL.xpi) = 2f2d0bf3be9c38feb49013330686da2da73efe88a0607ecf7f2169d4eaf83df6
SIZE (xpi/thunderbird-i18n-52.9.1/fy-NL.xpi) = 563632
SHA256 (xpi/thunderbird-i18n-52.9.1/ga-IE.xpi) = 6dbff8d17549b1e01b96ce29c277c71918f2c2eff0767a96f421174aa40c60f8
SIZE (xpi/thunderbird-i18n-52.9.1/ga-IE.xpi) = 583556
SHA256 (xpi/thunderbird-i18n-52.9.1/gd.xpi) = d3fc9cdc6260d4d293160fb3cbd5f984ffe84cbf3d29b1b94e4f7ae5ab375c75
SIZE (xpi/thunderbird-i18n-52.9.1/gd.xpi) = 574065
SHA256 (xpi/thunderbird-i18n-52.9.1/gl.xpi) = fc0405811ff57de111ef67f55dd0c4d28e3c5ec82b0f3f37a51e9288f6287e41
SIZE (xpi/thunderbird-i18n-52.9.1/gl.xpi) = 575150
SHA256 (xpi/thunderbird-i18n-52.9.1/he.xpi) = e8f8d4aa44c9103e078e7642d8d62acde8a16c0dc8813812cc18953496d9119b
SIZE (xpi/thunderbird-i18n-52.9.1/he.xpi) = 592566
SHA256 (xpi/thunderbird-i18n-52.9.1/hr.xpi) = 351f9c8be31e8316220efe707a08e6604fa24303b00d520c0988e426e942d542
SIZE (xpi/thunderbird-i18n-52.9.1/hr.xpi) = 564778
SHA256 (xpi/thunderbird-i18n-52.9.1/hsb.xpi) = 25868d4c144fc1cbe6570a81557a116ade400e8e5a9d991c4f6430b5097ad968
SIZE (xpi/thunderbird-i18n-52.9.1/hsb.xpi) = 582241
SHA256 (xpi/thunderbird-i18n-52.9.1/hu.xpi) = 3673d396f6f2c8532b44c2876b256b6370c299859a874e66a1a497cc7c82bf12
SIZE (xpi/thunderbird-i18n-52.9.1/hu.xpi) = 586446
SHA256 (xpi/thunderbird-i18n-52.9.1/hy-AM.xpi) = 79b83cc198b302e9ad899285d2e22556755f4312fbd03b48a21aefe426adc3db
SIZE (xpi/thunderbird-i18n-52.9.1/hy-AM.xpi) = 629879
SHA256 (xpi/thunderbird-i18n-52.9.1/id.xpi) = 146b1cad707c7e675ac794e5e3b850c225d256c8b7eb209784f37acc8dabc1d1
SIZE (xpi/thunderbird-i18n-52.9.1/id.xpi) = 546526
SHA256 (xpi/thunderbird-i18n-52.9.1/is.xpi) = ee72e9914c047f6dde2a26cadc942362eba9cd9102075632d6c7f1efb55b4e47
SIZE (xpi/thunderbird-i18n-52.9.1/is.xpi) = 555712
SHA256 (xpi/thunderbird-i18n-52.9.1/it.xpi) = b09bf17cf725f0179a441103fff9d6ada44bb27129d403210ebb09e774c6a3c5
SIZE (xpi/thunderbird-i18n-52.9.1/it.xpi) = 455407
SHA256 (xpi/thunderbird-i18n-52.9.1/ja.xpi) = 89c67cd4782ecfee3355cc296d0bb21d15e8ffbfa635a8ec787829c332d9f7f9
SIZE (xpi/thunderbird-i18n-52.9.1/ja.xpi) = 630052
SHA256 (xpi/thunderbird-i18n-52.9.1/kab.xpi) = 9a65c237a28db2b0005cf1ac3a7f8560ce397686b9649b76eee846382b27c9ad
SIZE (xpi/thunderbird-i18n-52.9.1/kab.xpi) = 568691
SHA256 (xpi/thunderbird-i18n-52.9.1/ko.xpi) = 116379d62a97355ce898f8c05a01c8d38499408347f41c0ce68c668abd07d1a6
SIZE (xpi/thunderbird-i18n-52.9.1/ko.xpi) = 595517
SHA256 (xpi/thunderbird-i18n-52.9.1/lt.xpi) = 8c4a14c6f670744233eb6baaf93e9296f931a0f37b52b5d26978866311c19fb7
SIZE (xpi/thunderbird-i18n-52.9.1/lt.xpi) = 580598
SHA256 (xpi/thunderbird-i18n-52.9.1/nb-NO.xpi) = ac281bcccb47b0547649bf2bb0d469cea9972eabbf46fdea3a389b211cd664a7
SIZE (xpi/thunderbird-i18n-52.9.1/nb-NO.xpi) = 551103
SHA256 (xpi/thunderbird-i18n-52.9.1/nl.xpi) = beb67cafd89969eae55e76a754df378d89e123f96b9bd3afeb6727287e8c0a3d
SIZE (xpi/thunderbird-i18n-52.9.1/nl.xpi) = 557956
SHA256 (xpi/thunderbird-i18n-52.9.1/nn-NO.xpi) = 63f11a440531a673a23918c307e7a69a94e9e65ba29d363320736bf25866658b
SIZE (xpi/thunderbird-i18n-52.9.1/nn-NO.xpi) = 551891
SHA256 (xpi/thunderbird-i18n-52.9.1/pa-IN.xpi) = fda332c982bb6d78d3c081648e52fe6ec40a5791bbf8bbf561d74ea2488c339b
SIZE (xpi/thunderbird-i18n-52.9.1/pa-IN.xpi) = 646568
SHA256 (xpi/thunderbird-i18n-52.9.1/pl.xpi) = 2fcd160bacebd77843e6a85eb20e83513870062c7526aa172f270d842668afb0
SIZE (xpi/thunderbird-i18n-52.9.1/pl.xpi) = 469901
SHA256 (xpi/thunderbird-i18n-52.9.1/pt-BR.xpi) = 8f3e9f83dec81527a4048d3d57bc28ce8e11b097474daaccb2f60d32503f08f4
SIZE (xpi/thunderbird-i18n-52.9.1/pt-BR.xpi) = 558223
SHA256 (xpi/thunderbird-i18n-52.9.1/pt-PT.xpi) = 096826fdbeaaebed3886db5fa5025179b7f8abcd80599d68e02f6872ac66c465
SIZE (xpi/thunderbird-i18n-52.9.1/pt-PT.xpi) = 565623
SHA256 (xpi/thunderbird-i18n-52.9.1/rm.xpi) = e2923b46e2f1e1e3af4bc8f41effde5395132404a23160e4a0413fc312e20859
SIZE (xpi/thunderbird-i18n-52.9.1/rm.xpi) = 557605
SHA256 (xpi/thunderbird-i18n-52.9.1/ro.xpi) = 85da875bd3b785f5043b8734042302061436103df943a91671a49abfcb823ab4
SIZE (xpi/thunderbird-i18n-52.9.1/ro.xpi) = 570529
SHA256 (xpi/thunderbird-i18n-52.9.1/ru.xpi) = 20102503cd4a8cda03be12396d1bdfb90623bd54f35c4013fa56723352f74e22
SIZE (xpi/thunderbird-i18n-52.9.1/ru.xpi) = 530670
SHA256 (xpi/thunderbird-i18n-52.9.1/si.xpi) = d66402d1f8b9d16513be5c620348a3703521020e732857647c4b35aeff820d07
SIZE (xpi/thunderbird-i18n-52.9.1/si.xpi) = 649010
SHA256 (xpi/thunderbird-i18n-52.9.1/sk.xpi) = 5ac8d7c810be9797ade84805bf85b7aea215419671d9b77be54413e08f26c018
SIZE (xpi/thunderbird-i18n-52.9.1/sk.xpi) = 583882
SHA256 (xpi/thunderbird-i18n-52.9.1/sl.xpi) = 2c705087f4ac765292a6bac0099be39091a6293e52538112587065e1b1ad794e
SIZE (xpi/thunderbird-i18n-52.9.1/sl.xpi) = 562834
SHA256 (xpi/thunderbird-i18n-52.9.1/sq.xpi) = 862ed58bb0c13633ef0de4577fc738e84d6cc50ed94aa3d617672a88acb4550e
SIZE (xpi/thunderbird-i18n-52.9.1/sq.xpi) = 570617
SHA256 (xpi/thunderbird-i18n-52.9.1/sr.xpi) = 4b4d89bfe976681755b45371d0a4bd6f25a4877f2b694434a142d9251a369992
SIZE (xpi/thunderbird-i18n-52.9.1/sr.xpi) = 609019
SHA256 (xpi/thunderbird-i18n-52.9.1/sv-SE.xpi) = ede899e7554be6b60fb093c31803f5964e33f33bafde79ab95fa31231097c884
SIZE (xpi/thunderbird-i18n-52.9.1/sv-SE.xpi) = 565777
SHA256 (xpi/thunderbird-i18n-52.9.1/ta-LK.xpi) = dcade6aca9be34468a93277903971e248198776f03ebc2ebbe21a3002ca829d0
SIZE (xpi/thunderbird-i18n-52.9.1/ta-LK.xpi) = 675039
SHA256 (xpi/thunderbird-i18n-52.9.1/tr.xpi) = 91d130b3f07b38720f887a323fe49393452fc88b6830540f0cc76682209dbf38
SIZE (xpi/thunderbird-i18n-52.9.1/tr.xpi) = 569926
SHA256 (xpi/thunderbird-i18n-52.9.1/uk.xpi) = da6176a05dc819a5fa7376b5f62a84846e01365b78495a576a2d738edc8b8577
SIZE (xpi/thunderbird-i18n-52.9.1/uk.xpi) = 652854
SHA256 (xpi/thunderbird-i18n-52.9.1/vi.xpi) = e25dfd63f38748c46b7c8d9bf87497e06cfee8de4ace89b9fe13e73a68e818ec
SIZE (xpi/thunderbird-i18n-52.9.1/vi.xpi) = 637163
SHA256 (xpi/thunderbird-i18n-52.9.1/zh-CN.xpi) = ad691e808b25f34c105b80f61b6a2cd8dbbb2230eca741c126954ae4330eac0b
SIZE (xpi/thunderbird-i18n-52.9.1/zh-CN.xpi) = 593611
SHA256 (xpi/thunderbird-i18n-52.9.1/zh-TW.xpi) = 19e45d672c06afe44b1103b94199094374098671b29d84043fe0f4d096b7090f
SIZE (xpi/thunderbird-i18n-52.9.1/zh-TW.xpi) = 595728
TIMESTAMP = 1531797876
SHA256 (xpi/thunderbird-i18n-60.0/ar.xpi) = 11a5a009815ded56f5f370c6823ae6813643d367fea58b83e4d9d768abf53928
SIZE (xpi/thunderbird-i18n-60.0/ar.xpi) = 627180
SHA256 (xpi/thunderbird-i18n-60.0/ast.xpi) = db52ff2e8457437861bd56bc228ce201a96c707dac84cefbfa1f8bd8313ea1ea
SIZE (xpi/thunderbird-i18n-60.0/ast.xpi) = 560865
SHA256 (xpi/thunderbird-i18n-60.0/be.xpi) = b031e89f37bac13d887190f9232110a6caa276df3a4b109af3bc141f377ee1cd
SIZE (xpi/thunderbird-i18n-60.0/be.xpi) = 659078
SHA256 (xpi/thunderbird-i18n-60.0/bg.xpi) = 4dd3a055173d3148e25c62e8774227b56e9be4442bb810e2048904910a1e35b1
SIZE (xpi/thunderbird-i18n-60.0/bg.xpi) = 665511
SHA256 (xpi/thunderbird-i18n-60.0/br.xpi) = 9268af2b4ed1e6b2eddcfac28c8278ff95e94477e3838c8a8c72de6ec6f64aaf
SIZE (xpi/thunderbird-i18n-60.0/br.xpi) = 581591
SHA256 (xpi/thunderbird-i18n-60.0/ca.xpi) = 8f51b603ba22c31b617b2f527d66a022e272f0ea49b2a8d14a20e2abfe8944ba
SIZE (xpi/thunderbird-i18n-60.0/ca.xpi) = 591970
SHA256 (xpi/thunderbird-i18n-60.0/cs.xpi) = e6e9018fdc39e039052621d4b7c02b8eb6d01d7f09dd64be49849596f8b862fa
SIZE (xpi/thunderbird-i18n-60.0/cs.xpi) = 611200
SHA256 (xpi/thunderbird-i18n-60.0/cy.xpi) = f46bfec05cace5f29429537c5b458de2cfcc122fc1e07f58c7256f8a76f197c9
SIZE (xpi/thunderbird-i18n-60.0/cy.xpi) = 582231
SHA256 (xpi/thunderbird-i18n-60.0/da.xpi) = 52b197fa5ba03a6abe53a3bb5c03be097d7c0887cf5efc4d786fe36e2bc00f17
SIZE (xpi/thunderbird-i18n-60.0/da.xpi) = 570805
SHA256 (xpi/thunderbird-i18n-60.0/de.xpi) = 052747d6d22f1672c1b774caa1507bc6917e1717f222f317b2e30646d804ef73
SIZE (xpi/thunderbird-i18n-60.0/de.xpi) = 582574
SHA256 (xpi/thunderbird-i18n-60.0/dsb.xpi) = a285f0fb22bf60a398fc95dff1506db089853096e331669725fd96dc4fb97268
SIZE (xpi/thunderbird-i18n-60.0/dsb.xpi) = 613758
SHA256 (xpi/thunderbird-i18n-60.0/el.xpi) = cd1a18d845903651c28c160ce6fe61015dfb61704fd15fe9b798bc4555b209ee
SIZE (xpi/thunderbird-i18n-60.0/el.xpi) = 691054
SHA256 (xpi/thunderbird-i18n-60.0/en-GB.xpi) = 7babe1d2f58c629c82cc148fb87bda0511fd0641edbab5f100fa3d0d2b869190
SIZE (xpi/thunderbird-i18n-60.0/en-GB.xpi) = 550353
SHA256 (xpi/thunderbird-i18n-60.0/en-US.xpi) = 75f7f04720089eaf8b4d4128f0d0256d3dda0dca0adea31a3e30f0fab91af6fd
SIZE (xpi/thunderbird-i18n-60.0/en-US.xpi) = 546973
SHA256 (xpi/thunderbird-i18n-60.0/es-AR.xpi) = 27ff067330acd3178f1664c7bf28967f3652058ef6b92d4972bdaf8ec3ca2dfc
SIZE (xpi/thunderbird-i18n-60.0/es-AR.xpi) = 595047
SHA256 (xpi/thunderbird-i18n-60.0/es-ES.xpi) = e4150ea5bb481763fbaddb20937fd2c5a4c8d93045e254e0bc158c048f472f00
SIZE (xpi/thunderbird-i18n-60.0/es-ES.xpi) = 492209
SHA256 (xpi/thunderbird-i18n-60.0/et.xpi) = e69290484c09608544f99ceec19e8f4f3fd990340ce1923ef155e04371a1e87a
SIZE (xpi/thunderbird-i18n-60.0/et.xpi) = 570865
SHA256 (xpi/thunderbird-i18n-60.0/eu.xpi) = a4b3f71ad8b00b2ce70b3f814b270f907d756ae0b08f7df95abc13ed59737280
SIZE (xpi/thunderbird-i18n-60.0/eu.xpi) = 577578
SHA256 (xpi/thunderbird-i18n-60.0/fi.xpi) = 948e6310b2942a02b3f12a0c2f4eb49053bead5ef8f1ee1f7df4103507690bde
SIZE (xpi/thunderbird-i18n-60.0/fi.xpi) = 575754
SHA256 (xpi/thunderbird-i18n-60.0/fr.xpi) = 014483ec4815f512b3803485970602334ad5eb891a80a591dbb7d8190b672e75
SIZE (xpi/thunderbird-i18n-60.0/fr.xpi) = 608465
SHA256 (xpi/thunderbird-i18n-60.0/fy-NL.xpi) = dac2e1777b2b0a03749f8190a6a391cf992cba23c66258394415265531316caa
SIZE (xpi/thunderbird-i18n-60.0/fy-NL.xpi) = 590032
SHA256 (xpi/thunderbird-i18n-60.0/ga-IE.xpi) = 7d11d42e417ede0577d0251101953d758d05bc98eabf1bbd89976f2047f68a0f
SIZE (xpi/thunderbird-i18n-60.0/ga-IE.xpi) = 603505
SHA256 (xpi/thunderbird-i18n-60.0/gd.xpi) = c960d26a6fc01d56a94337997597d91a7a3e84c1861549f671a6fabbe7a65ee0
SIZE (xpi/thunderbird-i18n-60.0/gd.xpi) = 599260
SHA256 (xpi/thunderbird-i18n-60.0/gl.xpi) = 0742dfa7ccfc2c6692267a0969205a851369487f215032a65ce70e379190321e
SIZE (xpi/thunderbird-i18n-60.0/gl.xpi) = 576546
SHA256 (xpi/thunderbird-i18n-60.0/he.xpi) = e65a5de1e4f64043c485fa77eda437fd70eeee0cb1c9614718773471380dc54f
SIZE (xpi/thunderbird-i18n-60.0/he.xpi) = 618364
SHA256 (xpi/thunderbird-i18n-60.0/hr.xpi) = eecd63a13d982292fd9ceb95fffecc2dd5f92906b5e52cfb228c18c6973fc913
SIZE (xpi/thunderbird-i18n-60.0/hr.xpi) = 583458
SHA256 (xpi/thunderbird-i18n-60.0/hsb.xpi) = 4918bda163309f2fc826bcbb07117cc1aeb8723087a866c248f4cd382220cee4
SIZE (xpi/thunderbird-i18n-60.0/hsb.xpi) = 611322
SHA256 (xpi/thunderbird-i18n-60.0/hu.xpi) = d7f634f1c60fd7f150948af204abad8264ab6426135424547f7c991b14732f16
SIZE (xpi/thunderbird-i18n-60.0/hu.xpi) = 615344
SHA256 (xpi/thunderbird-i18n-60.0/hy-AM.xpi) = c56d11c6daf8cf90c172a61de470d6e44a27472fde68c9861c80d6942a788426
SIZE (xpi/thunderbird-i18n-60.0/hy-AM.xpi) = 649712
SHA256 (xpi/thunderbird-i18n-60.0/id.xpi) = f7596c4f7f4621186f0dc7a71d257c42d1c4693f5ab2277bc659910890269dba
SIZE (xpi/thunderbird-i18n-60.0/id.xpi) = 568858
SHA256 (xpi/thunderbird-i18n-60.0/is.xpi) = e0708976b463aa0b84a85eef8e438ecd55591109a32892dda05c938c4722b8a3
SIZE (xpi/thunderbird-i18n-60.0/is.xpi) = 579046
SHA256 (xpi/thunderbird-i18n-60.0/it.xpi) = f3010291be6eddff1294bd7e4d44078b3ccc8e016edee1f80d24dd5587613009
SIZE (xpi/thunderbird-i18n-60.0/it.xpi) = 477499
SHA256 (xpi/thunderbird-i18n-60.0/ja.xpi) = af99f62dacd07f49e57f2ff4df8c82c18081f1003717c319e194576558eee2af
SIZE (xpi/thunderbird-i18n-60.0/ja.xpi) = 653343
SHA256 (xpi/thunderbird-i18n-60.0/kab.xpi) = c72b1e3c56b498477cc337ffefb63cc8182f30c5eb4da2f2baca8c72e2f313b7
SIZE (xpi/thunderbird-i18n-60.0/kab.xpi) = 595237
SHA256 (xpi/thunderbird-i18n-60.0/kk.xpi) = a46d3b2afe4c3f20c2fe5eb289174e1779db11810f713550e6fe785ea85ff669
SIZE (xpi/thunderbird-i18n-60.0/kk.xpi) = 670449
SHA256 (xpi/thunderbird-i18n-60.0/ko.xpi) = 4f7ae7b83812da014304c4daabbbb2c72975ccec37739a547c2a153eaa4203b5
SIZE (xpi/thunderbird-i18n-60.0/ko.xpi) = 619729
SHA256 (xpi/thunderbird-i18n-60.0/lt.xpi) = 32522fff0fd62ddf052ca5ab05527572cdca9a42acfb05e94ed2cb2b9cb2b3f7
SIZE (xpi/thunderbird-i18n-60.0/lt.xpi) = 605439
SHA256 (xpi/thunderbird-i18n-60.0/ms.xpi) = c5fd7f9c88108c2223d07da4384d2160775751707ce00d2fdcc6c8cbc8851aed
SIZE (xpi/thunderbird-i18n-60.0/ms.xpi) = 574305
SHA256 (xpi/thunderbird-i18n-60.0/nb-NO.xpi) = 82cf564e2716bce55c2bf0886b0fcc7e1fed9aa25e4083d8eea7cc1b4325b224
SIZE (xpi/thunderbird-i18n-60.0/nb-NO.xpi) = 578231
SHA256 (xpi/thunderbird-i18n-60.0/nl.xpi) = a2964f7ef47133c48d982f97c45dc733ee71aa2bc71d906262ff9487332b906f
SIZE (xpi/thunderbird-i18n-60.0/nl.xpi) = 583912
SHA256 (xpi/thunderbird-i18n-60.0/nn-NO.xpi) = 192fbcca2d605c3bb3b11a0b17f0e31751a4943ee090ddb9594bcce25a0c3850
SIZE (xpi/thunderbird-i18n-60.0/nn-NO.xpi) = 577653
SHA256 (xpi/thunderbird-i18n-60.0/pl.xpi) = e2bb972724d121e533e7691a3a642a8e7aab1642f64249db6a08e5130e9b4f70
SIZE (xpi/thunderbird-i18n-60.0/pl.xpi) = 480722
SHA256 (xpi/thunderbird-i18n-60.0/pt-BR.xpi) = 584da94848d776c59f5afa8f35531dd12be0d50afa280d3164929a5dd64054b6
SIZE (xpi/thunderbird-i18n-60.0/pt-BR.xpi) = 585017
SHA256 (xpi/thunderbird-i18n-60.0/pt-PT.xpi) = f100de434488b774162e2d03819367e8641de73550d5d36a1f973d4c1fe17897
SIZE (xpi/thunderbird-i18n-60.0/pt-PT.xpi) = 593184
SHA256 (xpi/thunderbird-i18n-60.0/rm.xpi) = 4f2b462e2797a253f9e2a8375f8a0806ca6db1e3b3af6df60f963999dcf2a5b2
SIZE (xpi/thunderbird-i18n-60.0/rm.xpi) = 578382
SHA256 (xpi/thunderbird-i18n-60.0/ro.xpi) = 516023538a69843ab2968215ffcc8311be8629272e28b529d43f3cc74fe33d3e
SIZE (xpi/thunderbird-i18n-60.0/ro.xpi) = 584307
SHA256 (xpi/thunderbird-i18n-60.0/ru.xpi) = 5b6c983390dce06895b1d559d289fd93f7341010d6379bd084cf936328fe22b1
SIZE (xpi/thunderbird-i18n-60.0/ru.xpi) = 694704
SHA256 (xpi/thunderbird-i18n-60.0/si.xpi) = 7020b781581863538431b6a4816167304ee56f570669f3dffcf440d41656882a
SIZE (xpi/thunderbird-i18n-60.0/si.xpi) = 643790
SHA256 (xpi/thunderbird-i18n-60.0/sk.xpi) = 2fc32f1c12ac40694809ab3d73fc7335a766c41997fe32ca665cea60077d2a8d
SIZE (xpi/thunderbird-i18n-60.0/sk.xpi) = 612215
SHA256 (xpi/thunderbird-i18n-60.0/sl.xpi) = 6a511da89df22266b780edefb7c3919967d3c3a2bc826a626315b8a29a8bc3d1
SIZE (xpi/thunderbird-i18n-60.0/sl.xpi) = 589946
SHA256 (xpi/thunderbird-i18n-60.0/sq.xpi) = e2c402a9fb6d7962b99d2e895483c92926223ae39da8e925be54b7a4c8741522
SIZE (xpi/thunderbird-i18n-60.0/sq.xpi) = 593095
SHA256 (xpi/thunderbird-i18n-60.0/sr.xpi) = b8a6c95950ab75c802b5e83a72c7d669a51ac99169e26c376116e83bdd03b4d0
SIZE (xpi/thunderbird-i18n-60.0/sr.xpi) = 637720
SHA256 (xpi/thunderbird-i18n-60.0/sv-SE.xpi) = 0c72b2f40dd151efb9d30b53b8e3d1bfa0931785ff02e0e7ee4ec4498d07e56e
SIZE (xpi/thunderbird-i18n-60.0/sv-SE.xpi) = 594077
SHA256 (xpi/thunderbird-i18n-60.0/tr.xpi) = 4800a3201bfdfb64ed6ca09c853f2f62bbc202af0fd8faaf601b78a3501bf915
SIZE (xpi/thunderbird-i18n-60.0/tr.xpi) = 598009
SHA256 (xpi/thunderbird-i18n-60.0/uk.xpi) = 7725b913e5d34353b9ceda07dc0d5a8a3c3f90fd92fbf1ea6023bf461e2249fc
SIZE (xpi/thunderbird-i18n-60.0/uk.xpi) = 684153
SHA256 (xpi/thunderbird-i18n-60.0/vi.xpi) = 9996a26429fd1f89173b4c057a316d316a9ec4acf16c2d18665dd35df0d461af
SIZE (xpi/thunderbird-i18n-60.0/vi.xpi) = 638420
SHA256 (xpi/thunderbird-i18n-60.0/zh-CN.xpi) = 7e1a05b54ff9c998f1c6d32c32f799d47756908a5aca04b7cc151cfe6aab7302
SIZE (xpi/thunderbird-i18n-60.0/zh-CN.xpi) = 622465
SHA256 (xpi/thunderbird-i18n-60.0/zh-TW.xpi) = 40a6d68a67cbb6dfcf232ea0f20b8fc8ca4d1c6349329f4a8bd5999a5b48933a
SIZE (xpi/thunderbird-i18n-60.0/zh-TW.xpi) = 626188

View File

@ -2,24 +2,25 @@
# $FreeBSD$
PORTNAME= thunderbird
DISTVERSION= 52.9.1
DISTVERSION= 60.0
CATEGORIES= mail news net-im ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build3/source
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source
DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX}
MAINTAINER= gecko@FreeBSD.org
COMMENT= Mozilla Thunderbird is standalone mail and news that stands above
BUILD_DEPENDS= nspr>=4.13.1:devel/nspr \
nss>=3.28.6:security/nss \
libevent>=2.0.21_2:devel/libevent \
harfbuzz>=1.4.1:print/harfbuzz \
graphite2>=1.3.8:graphics/graphite2 \
png>=1.6.25:graphics/png \
libvorbis>=1.3.5,3:audio/libvorbis \
BUILD_DEPENDS= nspr>=4.19:devel/nspr \
nss>=3.36.1:security/nss \
icu>=59.1,1:devel/icu \
libevent>=2.1.8:devel/libevent \
harfbuzz>=1.7.6:print/harfbuzz \
graphite2>=1.3.11:graphics/graphite2 \
png>=1.6.34:graphics/png \
libvorbis>=1.3.6,3:audio/libvorbis \
libvpx>=1.5.0:multimedia/libvpx \
sqlite3>=3.17.0:databases/sqlite3 \
sqlite3>=3.22.0:databases/sqlite3 \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
v4l_compat>0:multimedia/v4l_compat \
autoconf-2.13:devel/autoconf213 \
@ -27,16 +28,14 @@ BUILD_DEPENDS= nspr>=4.13.1:devel/nspr \
zip:archivers/zip
# soundtouch>=1.9.0:audio/soundtouch \
LIB_DEPENDS= libv4l2.so:multimedia/libv4l
SSP_UNSAFE= yes
USE_GECKO= gecko
USE_MOZILLA= -soundtouch
USE_MOZILLA= -cairo -soundtouch
USE_GL= gl
USES= tar:xz
MOZ_OPTIONS= --enable-application=mail --enable-official-branding
MOZ_OPTIONS= --enable-application=comm/mail --enable-official-branding
MOZ_MK_OPTIONS= MOZ_THUNDERBIRD=1 MAIL_PKG_SHARED=1
MOZ_EXPORT= MOZ_THUNDERBIRD=1 MAIL_PKG_SHARED=1
MOZ_PKGCONFIG_FILES=
@ -47,20 +46,13 @@ PORTNAME_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/chrome/icons/default/default48.png
SYSTEM_PREFS= ${FAKEDIR}/lib/${PORTNAME}/defaults/pref/${PORTNAME}.js
MOZ_PIS_SCRIPTS=moz_pis_S50cleanhome
OPTIONS_DEFINE= LIGHTNING RUST
OPTIONS_SINGLE= TOOLKIT
OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3
OPTIONS_DEFAULT=BUNDLED_CAIRO CANBERRA GTK3 LIGHTNING
OPTIONS_DEFINE= LIGHTNING
OPTIONS_DEFAULT=CANBERRA LIGHTNING
OPTIONS_EXCLUDE=BUNDLED_CAIRO
.include "${.CURDIR}/../../www/firefox/Makefile.options"
# Inconsistent fallback order (libcubeb vs. audio_device)
SNDIO_PREVENTS= ${OPTIONS_MULTI_AUDIO:NSNDIO}
.include <bsd.port.pre.mk>
MOZSRC:= ${WRKSRC}/mozilla
.if ${PORT_OPTIONS:MLIGHTNING}
MOZ_OPTIONS+= --enable-calendar
.else
@ -73,7 +65,7 @@ post-extract:
post-patch:
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
${WRKSRC}/mail/app/nsMailApp.cpp
${WRKSRC}/comm/mail/app/nsMailApp.cpp
pre-configure:
(cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13)

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1531166133
SHA256 (thunderbird-52.9.1.source.tar.xz) = 286fa71504e7184f3a41bcbdebf591bebe8e04dccbad1c93a47c6e72a7125c4d
SIZE (thunderbird-52.9.1.source.tar.xz) = 230475264
TIMESTAMP = 1531797876
SHA256 (thunderbird-60.0.source.tar.xz) = b3b939e2195eff4c4fcbd00fc4e539ecd0759b99284ec98935b2f5815ae68c31
SIZE (thunderbird-60.0.source.tar.xz) = 284235524

View File

@ -0,0 +1,31 @@
#!/bin/sh
#
# S50cleanhome
# a script to clean up users' Mozilla home directories to make upgrading
# less painful.
# We run in our own subshell
# First, verify protocol
[ "$1" != "start" ] && exit 1
[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
| while read dir
do
[ ! -d "${dir}" ] && continue
# Debian does this for new builds
# rm -f "${dir}/XUL.mfasl"
# force a rebuild of compreg.dat and xpti.dat for new installations
[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
done
fi

View File

@ -0,0 +1,59 @@
https://github.com/mozilla/addons/issues/708
https://github.com/mozilla/addons-frontend/issues/4610
diff --git mail/app/profile/all-thunderbird.js mail/app/profile/all-thunderbird.js
index 75c2c5e435e35..4d8c09c02759b 100644
--- comm/mail/app/profile/all-thunderbird.js
+++ comm/mail/app/profile/all-thunderbird.js
@@ -166,10 +166,10 @@ pref("extensions.getAddons.maxResults", 15);
pref("extensions.getAddons.get.url", "https://live.thunderbird.net/services.addons/api/v3/addons/search/?guid=%IDS%&lang=%LOCALE%");
pref("extensions.getAddons.compatOverides.url", "https://live.thunderbird.net/services.addons/api/v3/addons/compat-override/?guid=%IDS%&lang=%LOCALE%");
pref("extensions.getAddons.link.url", "https://addons.thunderbird.net/%LOCALE%/%APP%/");
-pref("extensions.getAddons.recommended.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/list/recommended/all/%MAX_RESULTS%/%OS%/%VERSION%?src=thunderbird");
+pref("extensions.getAddons.recommended.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/list/recommended/all/%MAX_RESULTS%/Linux/%VERSION%?src=thunderbird");
pref("extensions.getAddons.search.browseURL", "https://addons.thunderbird.net/%LOCALE%/%APP%/search/?q=%TERMS%");
-pref("extensions.getAddons.search.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=thunderbird");
-pref("extensions.webservice.discoverURL", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/discovery/pane/%VERSION%/%OS%");
+pref("extensions.getAddons.search.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/Linux/%VERSION%/%COMPATIBILITY_MODE%?src=thunderbird");
+pref("extensions.webservice.discoverURL", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/discovery/pane/%VERSION%/Linux");
pref("extensions.getAddons.themes.browseURL", "https://addons.thunderbird.net/%LOCALE%/thunderbird/themes/?src=thunderbird");
pref("extensions.getAddons.siteRegExp", "^https://.*addons\\.thunderbird\\.net");
@@ -190,9 +190,9 @@ pref("security.cert_pinning.enforcement_level", 1);
// .. etc ..
//
pref("extensions.update.enabled", true);
-pref("extensions.update.url", "https://versioncheck.addons.thunderbird.net/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
+pref("extensions.update.url", "https://versioncheck.addons.thunderbird.net/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=Linux&appABI=%APP_ABI%&locale=%APP_LOCALE%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
-pref("extensions.update.background.url", "https://versioncheck-bg.addons.thunderbird.net/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
+pref("extensions.update.background.url", "https://versioncheck-bg.addons.thunderbird.net/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=Linux&appABI=%APP_ABI%&locale=%APP_LOCALE%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
pref("extensions.update.interval", 86400); // Check for updates to Extensions and
// Themes every day
diff --git toolkit/mozapps/extensions/internal/AddonRepository.jsm toolkit/mozapps/extensions/internal/AddonRepository.jsm
index f70fd8d7e3bd8..81e8cd7764fdf 100644
--- toolkit/mozapps/extensions/internal/AddonRepository.jsm
+++ toolkit/mozapps/extensions/internal/AddonRepository.jsm
@@ -588,7 +588,7 @@ var AddonRepository = {
addon.version = String(aEntry.current_version.version);
if (Array.isArray(aEntry.current_version.files)) {
for (let file of aEntry.current_version.files) {
- if (file.platform == "all" || file.platform == Services.appinfo.OS.toLowerCase()) {
+ if (file.platform == "all" || file.platform == "linux" || file.platform == Services.appinfo.OS.toLowerCase()) {
if (file.url) {
addon.sourceURI = NetUtil.newURI(file.url);
}
diff --git toolkit/mozapps/extensions/internal/XPIProvider.jsm toolkit/mozapps/extensions/internal/XPIProvider.jsm
index f70fd8d7e3bd8..81e8cd7764fdf 100644
--- toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -4974,7 +4974,7 @@ AddonInternal.prototype = {
// Something is causing errors in here
try {
for (let platform of this.targetPlatforms) {
- if (platform.os == Services.appinfo.OS) {
+ if (platform.os == "Linux" || platform.os == Services.appinfo.OS) {
if (platform.abi) {
needsABI = true;
if (platform.abi === abi)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,100 @@
commit 7e0038706036
Author: Lee Salzman <lsalzman@mozilla.com>
Date: Thu May 24 14:50:31 2018 -0400
Bug 1144632 - fix big-endian Skia builds. r=rhunt
MozReview-Commit-ID: JQivGBE45qy
---
gfx/skia/skia/include/core/SkColorPriv.h | 15 ++++-----------
gfx/skia/skia/include/core/SkImageInfo.h | 2 +-
gfx/skia/skia/include/gpu/GrTypes.h | 5 +----
gfx/skia/skia/src/core/SkColorData.h | 15 ++++-----------
4 files changed, 10 insertions(+), 27 deletions(-)
diff --git gfx/skia/skia/include/core/SkColorPriv.h gfx/skia/skia/include/core/SkColorPriv.h
index 0cd02e8034062..8a7f1501ba434 100644
--- gfx/skia/skia/include/core/SkColorPriv.h
+++ gfx/skia/skia/include/core/SkColorPriv.h
@@ -55,17 +55,10 @@ static inline U8CPU SkUnitScalarClampToByte(SkScalar x) {
* Here we enforce this constraint.
*/
-#ifdef SK_CPU_BENDIAN
- #define SK_RGBA_R32_SHIFT 24
- #define SK_RGBA_G32_SHIFT 16
- #define SK_RGBA_B32_SHIFT 8
- #define SK_RGBA_A32_SHIFT 0
-#else
- #define SK_RGBA_R32_SHIFT 0
- #define SK_RGBA_G32_SHIFT 8
- #define SK_RGBA_B32_SHIFT 16
- #define SK_RGBA_A32_SHIFT 24
-#endif
+#define SK_RGBA_R32_SHIFT 0
+#define SK_RGBA_G32_SHIFT 8
+#define SK_RGBA_B32_SHIFT 16
+#define SK_RGBA_A32_SHIFT 24
#define SkGetPackedA32(packed) ((uint32_t)((packed) << (24 - SK_A32_SHIFT)) >> 24)
#define SkGetPackedR32(packed) ((uint32_t)((packed) << (24 - SK_R32_SHIFT)) >> 24)
diff --git gfx/skia/skia/include/core/SkImageInfo.h gfx/skia/skia/include/core/SkImageInfo.h
index ece47f5c418a8..5b36ba1e4518a 100644
--- gfx/skia/skia/include/core/SkImageInfo.h
+++ gfx/skia/skia/include/core/SkImageInfo.h
@@ -84,7 +84,7 @@ enum SkColorType {
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
kN32_SkColorType = kRGBA_8888_SkColorType,
#else
- #error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order"
+ kN32_SkColorType = kBGRA_8888_SkColorType,
#endif
};
diff --git gfx/skia/skia/include/gpu/GrTypes.h gfx/skia/skia/include/gpu/GrTypes.h
index c88d9ee63b38f..fdca5f29e527b 100644
--- gfx/skia/skia/include/gpu/GrTypes.h
+++ gfx/skia/skia/include/gpu/GrTypes.h
@@ -344,15 +344,12 @@ enum GrPixelConfig {
static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1;
// Aliases for pixel configs that match skia's byte order.
-#ifndef SK_CPU_LENDIAN
- #error "Skia gpu currently assumes little endian"
-#endif
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig;
#else
- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
+ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
#endif
/**
diff --git gfx/skia/skia/src/core/SkColorData.h gfx/skia/skia/src/core/SkColorData.h
index 3fc0113105a5b..43ae01eeaee3e 100644
--- gfx/skia/skia/src/core/SkColorData.h
+++ gfx/skia/skia/src/core/SkColorData.h
@@ -32,17 +32,10 @@
* Here we enforce this constraint.
*/
-#ifdef SK_CPU_BENDIAN
- #define SK_BGRA_B32_SHIFT 24
- #define SK_BGRA_G32_SHIFT 16
- #define SK_BGRA_R32_SHIFT 8
- #define SK_BGRA_A32_SHIFT 0
-#else
- #define SK_BGRA_B32_SHIFT 0
- #define SK_BGRA_G32_SHIFT 8
- #define SK_BGRA_R32_SHIFT 16
- #define SK_BGRA_A32_SHIFT 24
-#endif
+#define SK_BGRA_B32_SHIFT 0
+#define SK_BGRA_G32_SHIFT 8
+#define SK_BGRA_R32_SHIFT 16
+#define SK_BGRA_A32_SHIFT 24
#if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA)
#error "can't define PMCOLOR to be RGBA and BGRA"

View File

@ -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')

View File

@ -0,0 +1,82 @@
commit fc25eb4380d0
Author: Lars T Hansen <lhansen@mozilla.com>
Date: Wed Feb 28 13:57:52 2018 +0100
Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor. r=sstangl
--HG--
extra : rebase_source : 4a2824b23cf7453d07c962123f780c0ff2fd5292
extra : source : dec6ab6522a4eb4b3c2defc5078b38ed904f3383
---
js/src/jit-test/tests/bug1375074.js | 18 ++++++++++++++++++
js/src/vm/UnboxedObject.cpp | 25 ++++++++++++++++++++++++-
2 files changed, 42 insertions(+), 1 deletion(-)
diff --git js/src/jit-test/tests/bug1375074.js js/src/jit-test/tests/bug1375074.js
new file mode 100644
index 0000000000000..8bf01d96903fc
--- /dev/null
+++ js/src/jit-test/tests/bug1375074.js
@@ -0,0 +1,18 @@
+// This forces the VM to start creating unboxed objects and thus stresses a
+// particular path into generated code for a specialized unboxed object
+// constructor.
+
+var K = 2000; // 2000 should be plenty
+var s = "[";
+var i;
+for ( i=0; i < K-1; i++ )
+ s = s + `{"i":${i}},`;
+s += `{"i":${i}}]`;
+var v = JSON.parse(s);
+
+assertEq(v.length == K, true);
+
+for ( i=0; i < K; i++) {
+ assertEq(v[i] instanceof Object, true);
+ assertEq(v[i].i, i);
+}
diff --git js/src/vm/UnboxedObject.cpp js/src/vm/UnboxedObject.cpp
index c8c178965c488..5badf328ede4f 100644
--- js/src/vm/UnboxedObject.cpp
+++ js/src/vm/UnboxedObject.cpp
@@ -95,7 +95,15 @@ UnboxedLayout::makeConstructorCode(JSContext* cx, HandleObjectGroup group)
#endif
#ifdef JS_CODEGEN_ARM64
- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
+ // addressing. The register we use for PSP may however also be used by
+ // calling code, and it is nonvolatile, so save it. Do this as a special
+ // case first because the generic save/restore code needs the PSP to be
+ // initialized already.
+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
+
+ // Initialize the PSP from the SP.
masm.initStackPtr();
#endif
@@ -233,7 +241,22 @@ UnboxedLayout::makeConstructorCode(JSContext* cx, HandleObjectGroup group)
masm.pop(ScratchDoubleReg);
masm.PopRegsInMask(savedNonVolatileRegisters);
+#ifdef JS_CODEGEN_ARM64
+ // Now restore the value that was in the PSP register on entry, and return.
+
+ // Obtain the correct SP from the PSP.
+ masm.Mov(sp, PseudoStackPointer64);
+
+ // Restore the saved value of the PSP register, this value is whatever the
+ // caller had saved in it, not any actual SP value, and it must not be
+ // overwritten subsequently.
+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
+
+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
+ masm.Ret(vixl::lr);
+#else
masm.abiret();
+#endif
masm.bind(&failureStoreOther);

View File

@ -0,0 +1,85 @@
commit 57a55d1c2d33
Author: sotaro <sotaro.ikeda.g@gmail.com>
Date: Wed Mar 21 08:59:38 2018 +0900
Bug 1411481- Enable SkiaGL canvas usage on Mac r=jrmuizel
---
dom/canvas/CanvasRenderingContext2D.cpp | 3 ++-
gfx/thebes/gfxPlatform.cpp | 3 ++-
gfx/thebes/gfxPlatform.h | 2 +-
gfx/thebes/gfxWindowsPlatform.cpp | 7 +++++++
gfx/thebes/gfxWindowsPlatform.h | 2 ++
5 files changed, 14 insertions(+), 3 deletions(-)
diff --git dom/canvas/CanvasRenderingContext2D.cpp dom/canvas/CanvasRenderingContext2D.cpp
index ef3f868bdbf7..8666564b4d0c 100644
--- dom/canvas/CanvasRenderingContext2D.cpp
+++ dom/canvas/CanvasRenderingContext2D.cpp
@@ -1438,7 +1438,8 @@ CanvasRenderingContext2D::AllowOpenGLCanvas() const
// HTMLCanvasElement::GetCompositorBackendType would return LAYERS_NONE
// as well, so it wouldn't help much.
- return (mCompositorBackend == LayersBackend::LAYERS_OPENGL) &&
+ return (mCompositorBackend == LayersBackend::LAYERS_OPENGL ||
+ mCompositorBackend == LayersBackend::LAYERS_WR) &&
gfxPlatform::GetPlatform()->AllowOpenGLCanvas();
}
diff --git gfx/thebes/gfxPlatform.cpp gfx/thebes/gfxPlatform.cpp
index b9beea68d8c5..82635f9ab3ce 100644
--- gfx/thebes/gfxPlatform.cpp
+++ gfx/thebes/gfxPlatform.cpp
@@ -1386,7 +1386,8 @@ bool gfxPlatform::AllowOpenGLCanvas()
// so we let content process always assume correct compositor backend.
// The callers have to do the right thing.
bool correctBackend = !XRE_IsParentProcess() ||
- ((mCompositorBackend == LayersBackend::LAYERS_OPENGL) &&
+ ((mCompositorBackend == LayersBackend::LAYERS_OPENGL ||
+ mCompositorBackend == LayersBackend::LAYERS_WR) &&
(GetContentBackendFor(mCompositorBackend) == BackendType::SKIA));
if (gfxPrefs::CanvasAzureAccelerated() && correctBackend) {
diff --git gfx/thebes/gfxPlatform.h gfx/thebes/gfxPlatform.h
index c988eb1168a8..3bbf2b763f26 100644
--- gfx/thebes/gfxPlatform.h
+++ gfx/thebes/gfxPlatform.h
@@ -286,7 +286,7 @@ public:
/// asking for it, we will examine the commands in the first few seconds
/// of the canvas usage, and potentially change to accelerated or
/// non-accelerated canvas.
- bool AllowOpenGLCanvas();
+ virtual bool AllowOpenGLCanvas();
virtual void InitializeSkiaCacheLimits();
static bool AsyncPanZoomEnabled();
diff --git gfx/thebes/gfxWindowsPlatform.cpp gfx/thebes/gfxWindowsPlatform.cpp
index 9ba6f40c6cc0..4d65791d075f 100644
--- gfx/thebes/gfxWindowsPlatform.cpp
+++ gfx/thebes/gfxWindowsPlatform.cpp
@@ -509,6 +509,13 @@ gfxWindowsPlatform::UpdateRenderMode()
}
}
+bool
+gfxWindowsPlatform::AllowOpenGLCanvas()
+{
+ // OpenGL canvas is not supported on windows
+ return false;
+}
+
mozilla::gfx::BackendType
gfxWindowsPlatform::GetContentBackendFor(mozilla::layers::LayersBackend aLayers)
{
diff --git gfx/thebes/gfxWindowsPlatform.h gfx/thebes/gfxWindowsPlatform.h
index 47048de8f5f5..47ec0e9e5547 100644
--- gfx/thebes/gfxWindowsPlatform.h
+++ gfx/thebes/gfxWindowsPlatform.h
@@ -174,6 +174,8 @@ public:
void SchedulePaintIfDeviceReset() override;
void CheckForContentOnlyDeviceReset();
+ bool AllowOpenGLCanvas() override;
+
mozilla::gfx::BackendType GetContentBackendFor(mozilla::layers::LayersBackend aLayers) override;
mozilla::gfx::BackendType GetPreferredCanvasBackend() override;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,39 @@
commit 7371a080accd
Author: Lars T Hansen <lhansen@mozilla.com>
Date: Mon Mar 5 09:55:28 2018 +0100
Bug 1442583 - Properly initialize ARM64 icache flushing machinery. r=sstangl
--HG--
extra : rebase_source : 73b5921da1fa0a19d6072e35d09bd7b528bb6bfc
extra : intermediate-source : 19516efbbf6750ba04e11c7099586d5be2fe818f
extra : source : 4316cc82d6302edf839a4af6fcb815f0ffa9f65c
---
js/src/jit/ProcessExecutableMemory.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git js/src/jit/ProcessExecutableMemory.cpp js/src/jit/ProcessExecutableMemory.cpp
index e763a9d68dc17..8a6d50b6a7845 100644
--- js/src/jit/ProcessExecutableMemory.cpp
+++ js/src/jit/ProcessExecutableMemory.cpp
@@ -20,6 +20,9 @@
#include "jsutil.h"
#include "gc/Memory.h"
+#ifdef JS_CODEGEN_ARM64
+# include "jit/arm64/vixl/Cpu-vixl.h"
+#endif
#include "threading/LockGuard.h"
#include "threading/Mutex.h"
#include "util/Windows.h"
@@ -621,6 +624,10 @@ js::jit::DeallocateExecutableMemory(void* addr, size_t bytes)
bool
js::jit::InitProcessExecutableMemory()
{
+#ifdef JS_CODEGEN_ARM64
+ // Initialize instruction cache flushing.
+ vixl::CPU::SetUp();
+#endif
return execMemory.init();
}

View File

@ -0,0 +1,45 @@
commit 7871e211ec43
Author: sotaro <sotaro.ikeda.g@gmail.com>
Date: Fri Mar 16 21:03:59 2018 +0900
Bug 1444798 - Fix ExternalImageCallback func types r=jrmuizel
---
gfx/webrender_bindings/src/bindings.rs | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git gfx/webrender_bindings/src/bindings.rs gfx/webrender_bindings/src/bindings.rs
index 8517d7dd33e5..cf885ee713f3 100644
--- gfx/webrender_bindings/src/bindings.rs
+++ gfx/webrender_bindings/src/bindings.rs
@@ -312,8 +312,8 @@ struct WrExternalImage {
size: usize,
}
-type LockExternalImageCallback = fn(*mut c_void, WrExternalImageId, u8) -> WrExternalImage;
-type UnlockExternalImageCallback = fn(*mut c_void, WrExternalImageId, u8);
+type LockExternalImageCallback = unsafe extern "C" fn(*mut c_void, WrExternalImageId, u8) -> WrExternalImage;
+type UnlockExternalImageCallback = unsafe extern "C" fn(*mut c_void, WrExternalImageId, u8);
#[repr(C)]
pub struct WrExternalImageHandler {
@@ -327,7 +327,8 @@ impl ExternalImageHandler for WrExternalImageHandler {
id: ExternalImageId,
channel_index: u8)
-> ExternalImage {
- let image = (self.lock_func)(self.external_image_obj, id.into(), channel_index);
+
+ let image = unsafe { (self.lock_func)(self.external_image_obj, id.into(), channel_index) };
ExternalImage {
uv: TexelRect::new(image.u0, image.v0, image.u1, image.v1),
source: match image.image_type {
@@ -341,7 +342,9 @@ impl ExternalImageHandler for WrExternalImageHandler {
fn unlock(&mut self,
id: ExternalImageId,
channel_index: u8) {
- (self.unlock_func)(self.external_image_obj, id.into(), channel_index);
+ unsafe {
+ (self.unlock_func)(self.external_image_obj, id.into(), channel_index);
+ }
}
}

View File

@ -0,0 +1,75 @@
commit 0c6dd4a750db
Author: Lars T Hansen <lhansen@mozilla.com>
Date: Mon Mar 19 09:58:06 2018 +0100
Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
---
js/src/irregexp/NativeRegExpMacroAssembler.cpp | 25 ++++++++++++++++++++++++-
js/src/jit-test/tests/regexp/bug1445907.js | 15 +++++++++++++++
2 files changed, 39 insertions(+), 1 deletion(-)
diff --git js/src/irregexp/NativeRegExpMacroAssembler.cpp js/src/irregexp/NativeRegExpMacroAssembler.cpp
index 28a4c35e75bfe..c08b005cf856b 100644
--- js/src/irregexp/NativeRegExpMacroAssembler.cpp
+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
@@ -123,7 +123,15 @@ NativeRegExpMacroAssembler::GenerateCode(JSContext* cx, bool match_only)
masm.bind(&entry_label_);
#ifdef JS_CODEGEN_ARM64
- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
+ // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
+ // addressing. The register we use for PSP may however also be used by
+ // calling code, and it is nonvolatile, so save it. Do this as a special
+ // case first because the generic save/restore code needs the PSP to be
+ // initialized already.
+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
+
+ // Initialize the PSP from the SP.
masm.initStackPtr();
#endif
@@ -421,7 +429,22 @@ NativeRegExpMacroAssembler::GenerateCode(JSContext* cx, bool match_only)
for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
masm.Pop(*iter);
+#ifdef JS_CODEGEN_ARM64
+ // Now restore the value that was in the PSP register on entry, and return.
+
+ // Obtain the correct SP from the PSP.
+ masm.Mov(sp, PseudoStackPointer64);
+
+ // Restore the saved value of the PSP register, this value is whatever the
+ // caller had saved in it, not any actual SP value, and it must not be
+ // overwritten subsequently.
+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
+
+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
+ masm.Ret(vixl::lr);
+#else
masm.abiret();
+#endif
// Backtrack code (branch target for conditional backtracks).
if (backtrack_label_.used()) {
diff --git js/src/jit-test/tests/regexp/bug1445907.js js/src/jit-test/tests/regexp/bug1445907.js
new file mode 100644
index 0000000000000..75b23753eaf93
--- /dev/null
+++ js/src/jit-test/tests/regexp/bug1445907.js
@@ -0,0 +1,15 @@
+// On ARM64, we failed to save x28 properly when generating code for the regexp
+// matcher.
+//
+// There's wasm and Debugger code here because the combination forces the use of
+// x28 and exposes the bug when running on the simulator.
+
+if (!wasmIsSupported())
+ quit();
+
+var g = newGlobal('');
+var dbg = new Debugger(g);
+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
+var re = /./;
+dbg.onEnterFrame = function(frame) { re.exec("x") };
+result = g.eval("m.exports.test()");

View File

@ -0,0 +1,45 @@
commit fef467b5a93d
Author: Luke Wagner <luke@mozilla.com>
Date: Thu Mar 22 10:28:13 2018 -0500
Bug 1447359 - Baldr: add AutoForbidPools in a few missing places (r=lth)
--HG--
extra : rebase_source : 75f1909deb352391529ce5e58a89e5f9cfeb3662
---
js/src/jit/arm64/MacroAssembler-arm64-inl.h | 1 +
js/src/jit/arm64/MacroAssembler-arm64.cpp | 2 ++
2 files changed, 3 insertions(+)
diff --git js/src/jit/arm64/MacroAssembler-arm64-inl.h js/src/jit/arm64/MacroAssembler-arm64-inl.h
index 7061cbfd93ebb..190442f7afa0a 100644
--- js/src/jit/arm64/MacroAssembler-arm64-inl.h
+++ js/src/jit/arm64/MacroAssembler-arm64-inl.h
@@ -359,6 +359,7 @@ MacroAssembler::sub32FromStackPtrWithPatch(Register dest)
{
vixl::UseScratchRegisterScope temps(this);
const ARMRegister scratch = temps.AcquireX();
+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 3);
CodeOffset offs = CodeOffset(currentOffset());
movz(scratch, 0, 0);
movk(scratch, 0, 16);
diff --git js/src/jit/arm64/MacroAssembler-arm64.cpp js/src/jit/arm64/MacroAssembler-arm64.cpp
index 7b599b7e9d610..4e8fdb6a67019 100644
--- js/src/jit/arm64/MacroAssembler-arm64.cpp
+++ js/src/jit/arm64/MacroAssembler-arm64.cpp
@@ -707,6 +707,7 @@ MacroAssembler::patchFarJump(CodeOffset farJump, uint32_t targetOffset)
CodeOffset
MacroAssembler::nopPatchableToCall(const wasm::CallSiteDesc& desc)
{
+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 1);
CodeOffset offset(currentOffset());
Nop();
append(desc, CodeOffset(currentOffset()));
@@ -1077,6 +1078,7 @@ MacroAssembler::comment(const char* msg)
CodeOffset
MacroAssembler::wasmTrapInstruction()
{
+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 1);
CodeOffset offs(currentOffset());
Unreachable();
return offs;

View File

@ -0,0 +1,22 @@
Enable SkiaGL by default on OpenGL compositing platforms
diff --git modules/libpref/init/all.js modules/libpref/init/all.js
index 93e56b00a961..61a2174c3384 100644
--- modules/libpref/init/all.js
+++ modules/libpref/init/all.js
@@ -882,15 +882,9 @@ pref("gfx.font_rendering.opentype_svg.enabled", true);
pref("gfx.canvas.azure.backends", "direct2d1.1,skia,cairo");
pref("gfx.content.azure.backends", "direct2d1.1,skia,cairo");
#else
-#ifdef XP_MACOSX
pref("gfx.content.azure.backends", "skia");
pref("gfx.canvas.azure.backends", "skia");
-// Accelerated cg canvas where available (10.7+)
pref("gfx.canvas.azure.accelerated", true);
-#else
-pref("gfx.canvas.azure.backends", "skia");
-pref("gfx.content.azure.backends", "skia");
-#endif
#endif
pref("gfx.canvas.skiagl.dynamic-cache", true);

View File

@ -0,0 +1,27 @@
Disable GL_EXT_debug_marker due to crashes on x86 with Mesa drivers.
diff --git gfx/webrender/src/query.rs gfx/webrender/src/query.rs
index 999abc749115..68850ef025e4 100644
--- gfx/webrender/src/query.rs
+++ gfx/webrender/src/query.rs
@@ -274,17 +274,20 @@ pub struct GpuMarker {
impl GpuMarker {
fn new(gl: &Rc<gl::Gl>, message: &str) -> Self {
+#[cfg(not(target_arch = "x86"))]
gl.push_group_marker_ext(message);
GpuMarker { gl: Rc::clone(gl) }
}
fn fire(gl: &Rc<gl::Gl>, message: &str) {
+#[cfg(not(target_arch = "x86"))]
gl.insert_event_marker_ext(message);
}
}
impl Drop for GpuMarker {
fn drop(&mut self) {
+#[cfg(not(target_arch = "x86"))]
self.gl.pop_group_marker_ext();
}
}

View File

@ -0,0 +1,33 @@
commit b3a02fddbce8
Author: Lars T Hansen <lhansen@mozilla.com>
Date: Wed Apr 4 15:48:48 2018 +0200
Bug 1451292 - Better payload for arm64 breakpoint instruction. r=sstangl
At least some non-zero payloads confuse GDB and make it iloop on the
breakpoint instruction rather than break to the command line as it
should. There seems to be no reason not to use a zero payload.
--HG--
extra : rebase_source : 6d6f9aa2911b86b02572f88948d48bc2238c6353
extra : amend_source : 9fed9235d481a9eadafc4a3e0075c9fef8b6050d
---
js/src/jit/arm64/MacroAssembler-arm64.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git js/src/jit/arm64/MacroAssembler-arm64.cpp js/src/jit/arm64/MacroAssembler-arm64.cpp
index 4ea64b1225d00..a212de0ec2f45 100644
--- js/src/jit/arm64/MacroAssembler-arm64.cpp
+++ js/src/jit/arm64/MacroAssembler-arm64.cpp
@@ -237,8 +237,9 @@ MacroAssemblerCompat::profilerEnterFrame(RegisterOrSP framePtr, Register scratch
void
MacroAssemblerCompat::breakpoint()
{
- static int code = 0xA77;
- Brk((code++) & 0xffff);
+ // Note, other payloads are possible, but GDB is known to misinterpret them
+ // sometimes and iloop on the breakpoint instead of stopping properly.
+ Brk(0);
}
// Either `any` is valid or `sixtyfour` is valid. Return a 32-bit ARMRegister

View File

@ -0,0 +1,22 @@
commit f6fc0b418aa3
Author: Andrea Marchesini <amarchesini@mozilla.com>
Date: Tue May 1 08:47:13 2018 +0200
Bug 1456556 - FetchConsumer scope-exit RAII must grab 'self' by value, r=erahm
---
dom/fetch/FetchConsumer.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git dom/fetch/FetchConsumer.cpp dom/fetch/FetchConsumer.cpp
index 134bf7f2e703a..3c3687fea1d5a 100644
--- dom/fetch/FetchConsumer.cpp
+++ dom/fetch/FetchConsumer.cpp
@@ -582,7 +582,7 @@ FetchBodyConsumer<Derived>::ContinueConsumeBody(nsresult aStatus,
RefPtr<Promise> localPromise = mConsumePromise.forget();
RefPtr<FetchBodyConsumer<Derived>> self = this;
- auto autoReleaseObject = mozilla::MakeScopeExit([&] {
+ auto autoReleaseObject = mozilla::MakeScopeExit([self] {
self->ReleaseObject();
});

View File

@ -0,0 +1,137 @@
# HG changeset patch
# User Alex Chronopoulos <achronop@gmail.com>
# Date 1528999505 25200
# Node ID 0e40938905915ec04bbbccb4f093182a6785ac3a
# Parent a75f33744de61543dc840cbb0324fedf997c3931
Bug 1467882 - Update cubeb from upstream to 0677b30. r=kinetik
diff --git a/media/libcubeb/README_MOZILLA b/media/libcubeb/README_MOZILLA
--- media/libcubeb/README_MOZILLA
+++ media/libcubeb/README_MOZILLA
@@ -1,8 +1,8 @@
The source from this directory was copied from the cubeb
git repository using the update.sh script. The only changes
made were those applied by update.sh and the addition of
Makefile.in build files for the Mozilla build system.
The cubeb git repository is: git://github.com/kinetiknz/cubeb.git
-The git commit ID used was abf6ae235b0f15a2656f2d8692ac13708188165e (2018-06-01 13:02:45 +1200)
+The git commit ID used was 0677b3027b78c629586b099b5155aa6ac7422674 (2018-06-12 08:48:55 -0700)
diff --git a/media/libcubeb/src/cubeb_sndio.c b/media/libcubeb/src/cubeb_sndio.c
--- media/libcubeb/src/cubeb_sndio.c
+++ media/libcubeb/src/cubeb_sndio.c
@@ -46,27 +46,43 @@ struct cubeb_stream {
unsigned int pbpf; /* play bytes per frame */
unsigned int rchan; /* number of rec channels */
unsigned int pchan; /* number of play channels */
unsigned int nblks; /* number of blocks in the buffer */
uint64_t hwpos; /* frame number Joe hears right now */
uint64_t swpos; /* number of frames produced/consumed */
cubeb_data_callback data_cb; /* cb to preapare data */
cubeb_state_callback state_cb; /* cb to notify about state changes */
+ float volume; /* current volume */
};
static void
-float_to_s16(void *ptr, long nsamp)
+s16_setvol(void *ptr, long nsamp, float volume)
+{
+ int16_t *dst = ptr;
+ int32_t mult = volume * 32768;
+ int32_t s;
+
+ while (nsamp-- > 0) {
+ s = *dst;
+ s = (s * mult) >> 15;
+ *(dst++) = s;
+ }
+}
+
+static void
+float_to_s16(void *ptr, long nsamp, float volume)
{
int16_t *dst = ptr;
float *src = ptr;
+ float mult = volume * 32768;
int s;
while (nsamp-- > 0) {
- s = lrintf(*(src++) * 32768);
+ s = lrintf(*(src++) * mult);
if (s < -32768)
s = -32768;
else if (s > 32767)
s = 32767;
*(dst++) = s;
}
}
@@ -164,18 +180,22 @@ sndio_mainloop(void *arg)
/* need to write (aka drain) the partial play block we got */
pend = nfr * s->pbpf;
eof = 1;
}
if (prime > 0)
prime--;
- if ((s->mode & SIO_PLAY) && s->conv)
- float_to_s16(s->pbuf, nfr * s->pchan);
+ if (s->mode & SIO_PLAY) {
+ if (s->conv)
+ float_to_s16(s->pbuf, nfr * s->pchan, s->volume);
+ else
+ s16_setvol(s->pbuf, nfr * s->pchan, s->volume);
+ }
if (s->mode & SIO_REC)
rstart = 0;
if (s->mode & SIO_PLAY)
pstart = 0;
}
events = 0;
@@ -367,16 +387,17 @@ sndio_stream_init(cubeb * context,
if (s->pbuf == NULL)
goto err;
}
if (s->mode & SIO_REC) {
s->rbuf = malloc(bps * rpar.rchan * rpar.round);
if (s->rbuf == NULL)
goto err;
}
+ s->volume = 1.;
*stream = s;
DPR("sndio_stream_init() end, ok\n");
(void)context;
(void)stream_name;
return CUBEB_OK;
err:
if (s->hdl)
sio_close(s->hdl);
@@ -471,17 +492,21 @@ sndio_stream_get_position(cubeb_stream *
return CUBEB_OK;
}
static int
sndio_stream_set_volume(cubeb_stream *s, float volume)
{
DPR("sndio_stream_set_volume(%f)\n", volume);
pthread_mutex_lock(&s->mtx);
- sio_setvol(s->hdl, SIO_MAXVOL * volume);
+ if (volume < 0.)
+ volume = 0.;
+ else if (volume > 1.0)
+ volume = 1.;
+ s->volume = volume;
pthread_mutex_unlock(&s->mtx);
return CUBEB_OK;
}
int
sndio_stream_get_latency(cubeb_stream * stm, uint32_t * latency)
{
// http://www.openbsd.org/cgi-bin/man.cgi?query=sio_open

View File

@ -0,0 +1,232 @@
--- comm/ldap/c-sdk/include/ldap.h~
+++ comm/ldap/c-sdk/include/ldap.h
@@ -40,6 +40,229 @@
#ifndef _LDAP_H
#define _LDAP_H
+/* rename symbols to not clash with openldap (bug 292127) */
+#define ldap_abandon moz_ldap_abandon
+#define ldap_abandon_ext moz_ldap_abandon_ext
+#define ldap_abandoned moz_ldap_abandoned
+#define ldap_add moz_ldap_add
+#define ldap_add_ext moz_ldap_add_ext
+#define ldap_add_ext_s moz_ldap_add_ext_s
+#define ldap_add_result_entry moz_ldap_add_result_entry
+#define ldap_add_s moz_ldap_add_s
+#define ldap_ber_free moz_ldap_ber_free
+#define ldap_bind moz_ldap_bind
+#define ldap_bind_s moz_ldap_bind_s
+#define ldap_build_filter moz_ldap_build_filter
+#define ldap_cache_flush moz_ldap_cache_flush
+#define ldap_charray_add moz_ldap_charray_add
+#define ldap_charray_dup moz_ldap_charray_dup
+#define ldap_charray_free moz_ldap_charray_free
+#define ldap_charray_inlist moz_ldap_charray_inlist
+#define ldap_charray_merge moz_ldap_charray_merge
+#define ldap_charray_position moz_ldap_charray_position
+#define ldap_compare moz_ldap_compare
+#define ldap_compare_ext moz_ldap_compare_ext
+#define ldap_compare_ext_s moz_ldap_compare_ext_s
+#define ldap_compare_s moz_ldap_compare_s
+#define ldap_control_free moz_ldap_control_free
+#define ldap_controls_free moz_ldap_controls_free
+#define ldap_count_entries moz_ldap_count_entries
+#define ldap_count_messages moz_ldap_count_messages
+#define ldap_count_references moz_ldap_count_references
+#define ldap_count_values moz_ldap_count_values
+#define ldap_count_values_len moz_ldap_count_values_len
+#define ldap_create_authzid_control moz_ldap_create_authzid_control
+#define ldap_create_filter moz_ldap_create_filter
+#define ldap_create_geteffectiveRights_control moz_ldap_create_geteffectiveRights_control
+#define ldap_create_passwordpolicy_control moz_ldap_create_passwordpolicy_control
+#define ldap_create_passwordpolicy_control_ext moz_ldap_create_passwordpolicy_control_ext
+#define ldap_create_persistentsearch_control moz_ldap_create_persistentsearch_control
+#define ldap_create_proxiedauth_control moz_ldap_create_proxiedauth_control
+#define ldap_create_proxyauth_control moz_ldap_create_proxyauth_control
+#define ldap_create_sort_control moz_ldap_create_sort_control
+#define ldap_create_sort_keylist moz_ldap_create_sort_keylist
+#define ldap_create_userstatus_control moz_ldap_create_userstatus_control
+#define ldap_create_virtuallist_control moz_ldap_create_virtuallist_control
+#define ldap_delete moz_ldap_delete
+#define ldap_delete_ext moz_ldap_delete_ext
+#define ldap_delete_ext_s moz_ldap_delete_ext_s
+#define ldap_delete_result_entry moz_ldap_delete_result_entry
+#define ldap_delete_s moz_ldap_delete_s
+#define ldap_dn2ufn moz_ldap_dn2ufn
+#define ldap_entry2html moz_ldap_entry2html
+#define ldap_entry2html_search moz_ldap_entry2html_search
+#define ldap_entry2text moz_ldap_entry2text
+#define ldap_entry2text_search moz_ldap_entry2text_search
+#define ldap_err2string moz_ldap_err2string
+#define ldap_errlist moz_ldap_errlist
+#define ldap_explode moz_ldap_explode
+#define ldap_explode_dn moz_ldap_explode_dn
+#define ldap_explode_dns moz_ldap_explode_dns
+#define ldap_explode_rdn moz_ldap_explode_rdn
+#define ldap_extended_operation moz_ldap_extended_operation
+#define ldap_extended_operation_s moz_ldap_extended_operation_s
+#define ldap_find_control moz_ldap_find_control
+#define ldap_first_attribute moz_ldap_first_attribute
+#define ldap_first_disptmpl moz_ldap_first_disptmpl
+#define ldap_first_entry moz_ldap_first_entry
+#define ldap_first_message moz_ldap_first_message
+#define ldap_first_reference moz_ldap_first_reference
+#define ldap_first_searchobj moz_ldap_first_searchobj
+#define ldap_first_tmplcol moz_ldap_first_tmplcol
+#define ldap_first_tmplrow moz_ldap_first_tmplrow
+#define ldap_free_friendlymap moz_ldap_free_friendlymap
+#define ldap_free_searchprefs moz_ldap_free_searchprefs
+#define ldap_free_sort_keylist moz_ldap_free_sort_keylist
+#define ldap_free_templates moz_ldap_free_templates
+#define ldap_free_urldesc moz_ldap_free_urldesc
+#define ldap_friendly_name moz_ldap_friendly_name
+#define ldap_get_dn moz_ldap_get_dn
+#define ldap_get_entry_controls moz_ldap_get_entry_controls
+#define ldap_get_lang_values moz_ldap_get_lang_values
+#define ldap_get_lang_values_len moz_ldap_get_lang_values_len
+#define ldap_get_lderrno moz_ldap_get_lderrno
+#define ldap_get_option moz_ldap_get_option
+#define ldap_get_values moz_ldap_get_values
+#define ldap_get_values_len moz_ldap_get_values_len
+#define ldap_getfilter_free moz_ldap_getfilter_free
+#define ldap_getfirstfilter moz_ldap_getfirstfilter
+#define ldap_getnextfilter moz_ldap_getnextfilter
+#define ldap_init moz_ldap_init
+#define ldap_init_getfilter moz_ldap_init_getfilter
+#define ldap_init_getfilter_buf moz_ldap_init_getfilter_buf
+#define ldap_init_searchprefs moz_ldap_init_searchprefs
+#define ldap_init_searchprefs_buf moz_ldap_init_searchprefs_buf
+#define ldap_init_templates moz_ldap_init_templates
+#define ldap_init_templates_buf moz_ldap_init_templates_buf
+#define ldap_is_dns_dn moz_ldap_is_dns_dn
+#define ldap_is_ldap_url moz_ldap_is_ldap_url
+#define ldap_keysort_entries moz_ldap_keysort_entries
+#define ldap_ld_free moz_ldap_ld_free
+#define ldap_memcache_abandon moz_ldap_memcache_abandon
+#define ldap_memcache_append moz_ldap_memcache_append
+#define ldap_memcache_createkey moz_ldap_memcache_createkey
+#define ldap_memcache_destroy moz_ldap_memcache_destroy
+#define ldap_memcache_flush moz_ldap_memcache_flush
+#define ldap_memcache_flush_results moz_ldap_memcache_flush_results
+#define ldap_memcache_get moz_ldap_memcache_get
+#define ldap_memcache_init moz_ldap_memcache_init
+#define ldap_memcache_new moz_ldap_memcache_new
+#define ldap_memcache_result moz_ldap_memcache_result
+#define ldap_memcache_set moz_ldap_memcache_set
+#define ldap_memcache_update moz_ldap_memcache_update
+#define ldap_memfree moz_ldap_memfree
+#define ldap_modify moz_ldap_modify
+#define ldap_modify_ext moz_ldap_modify_ext
+#define ldap_modify_ext_s moz_ldap_modify_ext_s
+#define ldap_modify_s moz_ldap_modify_s
+#define ldap_modrdn moz_ldap_modrdn
+#define ldap_modrdn2 moz_ldap_modrdn2
+#define ldap_modrdn2_s moz_ldap_modrdn2_s
+#define ldap_modrdn_s moz_ldap_modrdn_s
+#define ldap_mods_free moz_ldap_mods_free
+#define ldap_msgdelete moz_ldap_msgdelete
+#define ldap_msgfree moz_ldap_msgfree
+#define ldap_msgid moz_ldap_msgid
+#define ldap_msgtype moz_ldap_msgtype
+#define ldap_multisort_entries moz_ldap_multisort_entries
+#define ldap_name2template moz_ldap_name2template
+#define ldap_next_attribute moz_ldap_next_attribute
+#define ldap_next_disptmpl moz_ldap_next_disptmpl
+#define ldap_next_entry moz_ldap_next_entry
+#define ldap_next_message moz_ldap_next_message
+#define ldap_next_reference moz_ldap_next_reference
+#define ldap_next_searchobj moz_ldap_next_searchobj
+#define ldap_next_tmplcol moz_ldap_next_tmplcol
+#define ldap_next_tmplrow moz_ldap_next_tmplrow
+#define ldap_oc2template moz_ldap_oc2template
+#define ldap_open moz_ldap_open
+#define ldap_parse_authzid_control moz_ldap_parse_authzid_control
+#define ldap_parse_entrychange_control moz_ldap_parse_entrychange_control
+#define ldap_parse_extended_result moz_ldap_parse_extended_result
+#define ldap_parse_passwd moz_ldap_parse_passwd
+#define ldap_parse_passwordpolicy_control moz_ldap_parse_passwordpolicy_control
+#define ldap_parse_passwordpolicy_control_ext moz_ldap_parse_passwordpolicy_control_ext
+#define ldap_parse_reference moz_ldap_parse_reference
+#define ldap_parse_result moz_ldap_parse_result
+#define ldap_parse_sasl_bind_result moz_ldap_parse_sasl_bind_result
+#define ldap_parse_sort_control moz_ldap_parse_sort_control
+#define ldap_parse_userstatus_control moz_ldap_parse_userstatus_control
+#define ldap_parse_virtuallist_control moz_ldap_parse_virtuallist_control
+#define ldap_parse_whoami moz_ldap_parse_whoami
+#define ldap_passwd moz_ldap_passwd
+#define ldap_passwd_s moz_ldap_passwd_s
+#define ldap_passwordpolicy_err2txt moz_ldap_passwordpolicy_err2txt
+#define ldap_perror moz_ldap_perror
+#define ldap_rename moz_ldap_rename
+#define ldap_rename_s moz_ldap_rename_s
+#define ldap_result moz_ldap_result
+#define ldap_result2error moz_ldap_result2error
+#define ldap_sasl_bind moz_ldap_sasl_bind
+#define ldap_sasl_bind_s moz_ldap_sasl_bind_s
+#define ldap_sasl_interactive_bind_ext_s moz_ldap_sasl_interactive_bind_ext_s
+#define ldap_sasl_interactive_bind_s moz_ldap_sasl_interactive_bind_s
+#define ldap_search moz_ldap_search
+#define ldap_search_ext moz_ldap_search_ext
+#define ldap_search_ext_s moz_ldap_search_ext_s
+#define ldap_search_s moz_ldap_search_s
+#define ldap_search_st moz_ldap_search_st
+#define ldap_set_filter_additions moz_ldap_set_filter_additions
+#define ldap_set_lderrno moz_ldap_set_lderrno
+#define ldap_set_option moz_ldap_set_option
+#define ldap_set_rebind_proc moz_ldap_set_rebind_proc
+#define ldap_setfilteraffixes moz_ldap_setfilteraffixes
+#define ldap_simple_bind moz_ldap_simple_bind
+#define ldap_simple_bind_s moz_ldap_simple_bind_s
+#define ldap_sort_entries moz_ldap_sort_entries
+#define ldap_sort_strcasecmp moz_ldap_sort_strcasecmp
+#define ldap_sort_values moz_ldap_sort_values
+#define ldap_start_tls_s moz_ldap_start_tls_s
+#define ldap_str2charray moz_ldap_str2charray
+#define ldap_tmplattrs moz_ldap_tmplattrs
+#define ldap_tmplerr2string moz_ldap_tmplerr2string
+#define ldap_tmplerrlist moz_ldap_tmplerrlist
+#define ldap_ufn_search_c moz_ldap_ufn_search_c
+#define ldap_ufn_search_ct moz_ldap_ufn_search_ct
+#define ldap_ufn_search_ctx moz_ldap_ufn_search_ctx
+#define ldap_ufn_search_s moz_ldap_ufn_search_s
+#define ldap_ufn_setfilter moz_ldap_ufn_setfilter
+#define ldap_ufn_setprefix moz_ldap_ufn_setprefix
+#define ldap_ufn_timeout moz_ldap_ufn_timeout
+#define ldap_unbind moz_ldap_unbind
+#define ldap_unbind_ext moz_ldap_unbind_ext
+#define ldap_unbind_s moz_ldap_unbind_s
+#define ldap_url_parse moz_ldap_url_parse
+#define ldap_url_parse_no_defaults moz_ldap_url_parse_no_defaults
+#define ldap_url_search moz_ldap_url_search
+#define ldap_url_search_s moz_ldap_url_search_s
+#define ldap_url_search_st moz_ldap_url_search_st
+#define ldap_utf8characters moz_ldap_utf8characters
+#define ldap_utf8copy moz_ldap_utf8copy
+#define ldap_utf8getcc moz_ldap_utf8getcc
+#define ldap_utf8isalnum moz_ldap_utf8isalnum
+#define ldap_utf8isalpha moz_ldap_utf8isalpha
+#define ldap_utf8isdigit moz_ldap_utf8isdigit
+#define ldap_utf8isspace moz_ldap_utf8isspace
+#define ldap_utf8isxdigit moz_ldap_utf8isxdigit
+#define ldap_utf8len moz_ldap_utf8len
+#define ldap_utf8next moz_ldap_utf8next
+#define ldap_utf8prev moz_ldap_utf8prev
+#define ldap_utf8strtok_r moz_ldap_utf8strtok_r
+#define ldap_vals2html moz_ldap_vals2html
+#define ldap_vals2text moz_ldap_vals2text
+#define ldap_value_free moz_ldap_value_free
+#define ldap_value_free_len moz_ldap_value_free_len
+#define ldap_version moz_ldap_version
+#define ldap_whoami moz_ldap_whoami
+#define ldap_whoami_s moz_ldap_whoami_s
+#define ldap_x_calloc moz_ldap_x_calloc
+#define ldap_x_free moz_ldap_x_free
+#define ldap_x_hostlist_first moz_ldap_x_hostlist_first
+#define ldap_x_hostlist_next moz_ldap_x_hostlist_next
+#define ldap_x_hostlist_statusfree moz_ldap_x_hostlist_statusfree
+#define ldap_x_malloc moz_ldap_x_malloc
+#define ldap_x_realloc moz_ldap_x_realloc
+
/* Standard LDAP API functions and declarations */
#include "ldap-standard.h"

View File

@ -0,0 +1,12 @@
Don't build static JS lib to make sure DTrace probes are picked up.
--- js/src/build/moz.build.orig 2017-04-16 18:00:50 UTC
+++ js/src/build/moz.build
@@ -71,7 +71,3 @@ if CONFIG['OS_ARCH'] == 'SunOS':
]
OS_LIBS += CONFIG['REALTIME_LIBS']
-
-NO_EXPAND_LIBS = True
-
-DIST_INSTALL = True

View File

@ -0,0 +1,259 @@
# Allow building against system-wide graphite2/harfbuzz.
diff --git config/system-headers.mozbuild config/system-headers.mozbuild
index 7620b4d00623..09d3db5ca8c0 100644
--- config/system-headers.mozbuild
+++ config/system-headers.mozbuild
@@ -1312,6 +1312,19 @@ if not CONFIG['MOZ_TREE_PIXMAN']:
'pixman.h',
]
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
+ system_headers += [
+ 'graphite2/Font.h',
+ 'graphite2/Segment.h',
+ ]
+
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ system_headers += [
+ 'harfbuzz/hb-glib.h',
+ 'harfbuzz/hb-ot.h',
+ 'harfbuzz/hb.h',
+ ]
+
if CONFIG['MOZ_SYSTEM_LIBVPX']:
system_headers += [
'vpx_mem/vpx_mem.h',
diff --git dom/base/moz.build dom/base/moz.build
index 8e19020315ae..2fcdbb6f7b42 100644
--- dom/base/moz.build
+++ dom/base/moz.build
@@ -470,6 +470,9 @@ if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']:
if CONFIG['MOZ_X11']:
CXXFLAGS += CONFIG['TK_CFLAGS']
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
GENERATED_FILES += [
'PropertyUseCounterMap.inc',
'UseCounterList.h',
diff --git gfx/graphite2/moz-gr-update.sh gfx/graphite2/moz-gr-update.sh
index faaab1b17971..04eff5f09882 100644
--- gfx/graphite2/moz-gr-update.sh
+++ gfx/graphite2/moz-gr-update.sh
@@ -1,6 +1,7 @@
#!/bin/bash
# Script used to update the Graphite2 library in the mozilla source tree
+# and bump version for --with-system-graphite2
# 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." >> 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/" old-configure.in
+
# summarize what's been touched
echo Updated to $RELEASE.
echo Here is what changed in the gfx/graphite2 directory:
echo
-hg stat 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 22c76a7df020..a01490bd49ee 100644
--- gfx/harfbuzz/README-mozilla
+++ gfx/harfbuzz/README-mozilla
@@ -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 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 771f652e837a..3b358d84e384 100644
--- gfx/moz.build
+++ gfx/moz.build
@@ -10,6 +10,12 @@ with Files('**'):
if CONFIG['MOZ_TREE_CAIRO']:
DIRS += ['cairo']
+if not CONFIG['MOZ_SYSTEM_GRAPHITE2']:
+ DIRS += ['graphite2/src' ]
+
+if not CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ DIRS += ['harfbuzz/src']
+
DIRS += [
'2d',
'ycbcr',
@@ -18,8 +24,6 @@ DIRS += [
'qcms',
'gl',
'layers',
- 'graphite2/src',
- 'harfbuzz/src',
'ots/src',
'thebes',
'ipc',
diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py
index e06ae3457a47..93faa61594a3 100755
--- gfx/skia/generate_mozbuild.py
+++ gfx/skia/generate_mozbuild.py
@@ -135,6 +135,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']:
'-Wno-unused-private-field',
]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'):
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
diff --git gfx/skia/moz.build gfx/skia/moz.build
index 2118677ca3a8..e4978b413784 100644
--- gfx/skia/moz.build
+++ gfx/skia/moz.build
@@ -780,6 +780,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']:
'-Wno-unused-private-field',
]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'):
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
diff --git gfx/thebes/moz.build gfx/thebes/moz.build
index 56f1b9fe3f4b..0ac1100b0df3 100644
--- gfx/thebes/moz.build
+++ gfx/thebes/moz.build
@@ -267,7 +267,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'):
LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
-DEFINES['GRAPHITE2_STATIC'] = True
+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['CC_TYPE'] == 'clang':
# Suppress warnings from Skia header files.
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
@@ -25,4 +25,7 @@ UNIFIED_SOURCES += [
'nsUnicodeProperties.cpp',
]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
FINAL_LIBRARY = 'xul'
diff --git netwerk/dns/moz.build netwerk/dns/moz.build
index 79c26e3e7001..c4d93bc5f7dc 100644
--- netwerk/dns/moz.build
+++ netwerk/dns/moz.build
@@ -73,3 +73,6 @@ USE_LIBS += ['icu']
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
CXXFLAGS += ['-Wno-error=shadow']
+
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
diff --git old-configure.in old-configure.in
index 95a58b634593..b614eef85c89 100644
--- old-configure.in
+++ old-configure.in
@@ -4333,6 +4333,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,10)
+ #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 24f940e1ed7e..079a575adec3 100644
--- toolkit/library/moz.build
+++ toolkit/library/moz.build
@@ -231,6 +231,12 @@ if CONFIG['MOZ_SYSTEM_JPEG']:
if CONFIG['MOZ_SYSTEM_PNG']:
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
+ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
+
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ OS_LIBS += CONFIG['MOZ_HARFBUZZ_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
@@ -1065,6 +1065,26 @@ add_old_configure_assignment('FT2_LIBS',
add_old_configure_assignment('FT2_CFLAGS',
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.7.4',
+ when='--with-system-harfbuzz')
+
+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
+
# Mortar
# ==============================================================
option('--enable-mortar', help='Enable mortar extension')

View File

@ -0,0 +1,17 @@
--- extensions/spellcheck/hunspell/glue/mozHunspell.cpp~
+++ extensions/spellcheck/hunspell/glue/mozHunspell.cpp
@@ -392,6 +392,14 @@ mozHunspell::LoadDictionaryList(bool aNo
}
}
+ // load system hunspell dictionaries
+ nsCOMPtr<nsIFile> hunDir;
+ NS_NewNativeLocalFile(NS_LITERAL_CSTRING("%%LOCALBASE%%/share/hunspell"),
+ true, getter_AddRefs(hunDir));
+ if (hunDir) {
+ LoadDictionariesFromDir(hunDir);
+ }
+
// find dictionaries from extensions requiring restart
nsCOMPtr<nsISimpleEnumerator> dictDirs;
rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY_LIST,

View File

@ -0,0 +1,25 @@
Enable FLAC on platforms without ffvpx like powerpc*
diff --git dom/media/flac/FlacDecoder.cpp dom/media/flac/FlacDecoder.cpp
index 53fc3c9937f7..b23771ab80fa 100644
--- dom/media/flac/FlacDecoder.cpp
+++ dom/media/flac/FlacDecoder.cpp
@@ -7,6 +7,7 @@
#include "FlacDecoder.h"
#include "MediaContainerType.h"
#include "MediaPrefs.h"
+#include "PDMFactory.h"
namespace mozilla {
@@ -15,6 +16,10 @@ FlacDecoder::IsEnabled()
{
#ifdef MOZ_FFVPX
return MediaPrefs::FlacEnabled();
+#elif defined(MOZ_FFMPEG)
+ RefPtr<PDMFactory> platform = new PDMFactory();
+ return MediaPrefs::FlacEnabled() && platform->SupportsMimeType(NS_LITERAL_CSTRING("audio/flac"),
+ /* DecoderDoctorDiagnostics* */ nullptr);
#else
// Until bug 1295886 is fixed.
return false;

View File

@ -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

View File

@ -0,0 +1,383 @@
# Partially revert bug 791305 to allow building with system IJG jpeg library
diff --git old-configure.in configure.in
index f0aeb5d..1c01010 100644
--- 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)."
- #endif
- #ifndef JCS_EXTENSIONS
- #error "libjpeg-turbo JCS_EXTENSIONS required"
- #endif
- ],
+ #endif ],
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
index 8fa8200..1d2a259 100644
--- image/decoders/nsJPEGDecoder.cpp
+++ image/decoders/nsJPEGDecoder.cpp
@@ -21,13 +21,28 @@
extern "C" {
#include "iccjpeg.h"
-}
+#ifdef JCS_EXTENSIONS
#if MOZ_BIG_ENDIAN
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB
#else
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX
#endif
+#else
+/* Colorspace conversion (copied from jpegint.h) */
+struct jpeg_color_deconverter {
+ JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
+ JMETHOD(void, color_convert, (j_decompress_ptr cinfo,
+ JSAMPIMAGE input_buf, JDIMENSION input_row,
+ JSAMPARRAY output_buf, int num_rows));
+};
+
+METHODDEF(void)
+ycc_rgb_convert_argb (j_decompress_ptr cinfo,
+ JSAMPIMAGE input_buf, JDIMENSION input_row,
+ JSAMPARRAY output_buf, int num_rows);
+#endif
+}
static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width);
@@ -367,6 +382,7 @@ nsJPEGDecoder::WriteInternal(const char*
case JCS_GRAYSCALE:
case JCS_RGB:
case JCS_YCbCr:
+#ifdef JCS_EXTENSIONS
// if we're not color managing we can decode directly to
// MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
if (mCMSMode != eCMSMode_All) {
@@ -375,6 +391,9 @@ nsJPEGDecoder::WriteInternal(const char*
} else {
mInfo.out_color_space = JCS_RGB;
}
+#else
+ mInfo.out_color_space = JCS_RGB;
+#endif
break;
case JCS_CMYK:
case JCS_YCCK:
@@ -448,6 +467,16 @@ nsJPEGDecoder::WriteInternal(const char*
return; // I/O suspension
}
+#ifndef JCS_EXTENSIONS
+ /* Force to use our YCbCr to Packed RGB converter when possible */
+ if (!mTransform && (mCMSMode != eCMSMode_All) &&
+ mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) {
+ /* Special case for the most common case: transform from YCbCr direct into packed ARGB */
+ mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/
+ mInfo.cconvert->color_convert = ycc_rgb_convert_argb;
+ }
+#endif
+
// If this is a progressive JPEG ...
mState = mInfo.buffered_image ?
JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
@@ -605,7 +633,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
uint32_t* imageRow = ((uint32_t*)mImageData) +
(mInfo.output_scanline * mInfo.output_width);
+#ifdef JCS_EXTENSIONS
if (mInfo.out_color_space == MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB) {
+#else
+ if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) {
+#endif
// Special case: scanline will be directly converted into packed ARGB
if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
*suspend = true; // suspend
@@ -920,6 +952,282 @@ term_source (j_decompress_ptr jd)
} // namespace mozilla
+#ifndef JCS_EXTENSIONS
+/**************** YCbCr -> Cairo's RGB24/ARGB32 conversion: most common case **************/
+
+/*
+ * YCbCr is defined per CCIR 601-1, except that Cb and Cr are
+ * normalized to the range 0..MAXJSAMPLE rather than -0.5 .. 0.5.
+ * The conversion equations to be implemented are therefore
+ * R = Y + 1.40200 * Cr
+ * G = Y - 0.34414 * Cb - 0.71414 * Cr
+ * B = Y + 1.77200 * Cb
+ * where Cb and Cr represent the incoming values less CENTERJSAMPLE.
+ * (These numbers are derived from TIFF 6.0 section 21, dated 3-June-92.)
+ *
+ * To avoid floating-point arithmetic, we represent the fractional constants
+ * as integers scaled up by 2^16 (about 4 digits precision); we have to divide
+ * the products by 2^16, with appropriate rounding, to get the correct answer.
+ * Notice that Y, being an integral input, does not contribute any fraction
+ * so it need not participate in the rounding.
+ *
+ * For even more speed, we avoid doing any multiplications in the inner loop
+ * by precalculating the constants times Cb and Cr for all possible values.
+ * For 8-bit JSAMPLEs this is very reasonable (only 256 entries per table);
+ * for 12-bit samples it is still acceptable. It's not very reasonable for
+ * 16-bit samples, but if you want lossless storage you shouldn't be changing
+ * colorspace anyway.
+ * The Cr=>R and Cb=>B values can be rounded to integers in advance; the
+ * values for the G calculation are left scaled up, since we must add them
+ * together before rounding.
+ */
+
+#define SCALEBITS 16 /* speediest right-shift on some machines */
+
+/* Use static tables for color processing. */
+/* Four tables, each 256 entries of 4 bytes totals 4K which is not bad... */
+
+const int Cr_r_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
+ -0xb3, -0xb2, -0xb1, -0xaf, -0xae, -0xac,
+ -0xab, -0xaa, -0xa8, -0xa7, -0xa5, -0xa4,
+ -0xa3, -0xa1, -0xa0, -0x9e, -0x9d, -0x9c,
+ -0x9a, -0x99, -0x97, -0x96, -0x95, -0x93,
+ -0x92, -0x90, -0x8f, -0x8e, -0x8c, -0x8b,
+ -0x89, -0x88, -0x87, -0x85, -0x84, -0x82,
+ -0x81, -0x80, -0x7e, -0x7d, -0x7b, -0x7a,
+ -0x79, -0x77, -0x76, -0x74, -0x73, -0x72,
+ -0x70, -0x6f, -0x6d, -0x6c, -0x6b, -0x69,
+ -0x68, -0x66, -0x65, -0x64, -0x62, -0x61,
+ -0x5f, -0x5e, -0x5d, -0x5b, -0x5a, -0x58,
+ -0x57, -0x56, -0x54, -0x53, -0x51, -0x50,
+ -0x4f, -0x4d, -0x4c, -0x4a, -0x49, -0x48,
+ -0x46, -0x45, -0x43, -0x42, -0x40, -0x3f,
+ -0x3e, -0x3c, -0x3b, -0x39, -0x38, -0x37,
+ -0x35, -0x34, -0x32, -0x31, -0x30, -0x2e,
+ -0x2d, -0x2b, -0x2a, -0x29, -0x27, -0x26,
+ -0x24, -0x23, -0x22, -0x20, -0x1f, -0x1d,
+ -0x1c, -0x1b, -0x19, -0x18, -0x16, -0x15,
+ -0x14, -0x12, -0x11, -0x0f, -0x0e, -0x0d,
+ -0x0b, -0x0a, -0x08, -0x07, -0x06, -0x04,
+ -0x03, -0x01, 0x00, 0x01, 0x03, 0x04,
+ 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0d,
+ 0x0e, 0x0f, 0x11, 0x12, 0x14, 0x15,
+ 0x16, 0x18, 0x19, 0x1b, 0x1c, 0x1d,
+ 0x1f, 0x20, 0x22, 0x23, 0x24, 0x26,
+ 0x27, 0x29, 0x2a, 0x2b, 0x2d, 0x2e,
+ 0x30, 0x31, 0x32, 0x34, 0x35, 0x37,
+ 0x38, 0x39, 0x3b, 0x3c, 0x3e, 0x3f,
+ 0x40, 0x42, 0x43, 0x45, 0x46, 0x48,
+ 0x49, 0x4a, 0x4c, 0x4d, 0x4f, 0x50,
+ 0x51, 0x53, 0x54, 0x56, 0x57, 0x58,
+ 0x5a, 0x5b, 0x5d, 0x5e, 0x5f, 0x61,
+ 0x62, 0x64, 0x65, 0x66, 0x68, 0x69,
+ 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x72,
+ 0x73, 0x74, 0x76, 0x77, 0x79, 0x7a,
+ 0x7b, 0x7d, 0x7e, 0x80, 0x81, 0x82,
+ 0x84, 0x85, 0x87, 0x88, 0x89, 0x8b,
+ 0x8c, 0x8e, 0x8f, 0x90, 0x92, 0x93,
+ 0x95, 0x96, 0x97, 0x99, 0x9a, 0x9c,
+ 0x9d, 0x9e, 0xa0, 0xa1, 0xa3, 0xa4,
+ 0xa5, 0xa7, 0xa8, 0xaa, 0xab, 0xac,
+ 0xae, 0xaf, 0xb1, 0xb2,
+ };
+
+const int Cb_b_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
+ -0xe3, -0xe1, -0xdf, -0xde, -0xdc, -0xda,
+ -0xd8, -0xd6, -0xd5, -0xd3, -0xd1, -0xcf,
+ -0xce, -0xcc, -0xca, -0xc8, -0xc6, -0xc5,
+ -0xc3, -0xc1, -0xbf, -0xbe, -0xbc, -0xba,
+ -0xb8, -0xb7, -0xb5, -0xb3, -0xb1, -0xaf,
+ -0xae, -0xac, -0xaa, -0xa8, -0xa7, -0xa5,
+ -0xa3, -0xa1, -0x9f, -0x9e, -0x9c, -0x9a,
+ -0x98, -0x97, -0x95, -0x93, -0x91, -0x90,
+ -0x8e, -0x8c, -0x8a, -0x88, -0x87, -0x85,
+ -0x83, -0x81, -0x80, -0x7e, -0x7c, -0x7a,
+ -0x78, -0x77, -0x75, -0x73, -0x71, -0x70,
+ -0x6e, -0x6c, -0x6a, -0x69, -0x67, -0x65,
+ -0x63, -0x61, -0x60, -0x5e, -0x5c, -0x5a,
+ -0x59, -0x57, -0x55, -0x53, -0x52, -0x50,
+ -0x4e, -0x4c, -0x4a, -0x49, -0x47, -0x45,
+ -0x43, -0x42, -0x40, -0x3e, -0x3c, -0x3a,
+ -0x39, -0x37, -0x35, -0x33, -0x32, -0x30,
+ -0x2e, -0x2c, -0x2b, -0x29, -0x27, -0x25,
+ -0x23, -0x22, -0x20, -0x1e, -0x1c, -0x1b,
+ -0x19, -0x17, -0x15, -0x13, -0x12, -0x10,
+ -0x0e, -0x0c, -0x0b, -0x09, -0x07, -0x05,
+ -0x04, -0x02, 0x00, 0x02, 0x04, 0x05,
+ 0x07, 0x09, 0x0b, 0x0c, 0x0e, 0x10,
+ 0x12, 0x13, 0x15, 0x17, 0x19, 0x1b,
+ 0x1c, 0x1e, 0x20, 0x22, 0x23, 0x25,
+ 0x27, 0x29, 0x2b, 0x2c, 0x2e, 0x30,
+ 0x32, 0x33, 0x35, 0x37, 0x39, 0x3a,
+ 0x3c, 0x3e, 0x40, 0x42, 0x43, 0x45,
+ 0x47, 0x49, 0x4a, 0x4c, 0x4e, 0x50,
+ 0x52, 0x53, 0x55, 0x57, 0x59, 0x5a,
+ 0x5c, 0x5e, 0x60, 0x61, 0x63, 0x65,
+ 0x67, 0x69, 0x6a, 0x6c, 0x6e, 0x70,
+ 0x71, 0x73, 0x75, 0x77, 0x78, 0x7a,
+ 0x7c, 0x7e, 0x80, 0x81, 0x83, 0x85,
+ 0x87, 0x88, 0x8a, 0x8c, 0x8e, 0x90,
+ 0x91, 0x93, 0x95, 0x97, 0x98, 0x9a,
+ 0x9c, 0x9e, 0x9f, 0xa1, 0xa3, 0xa5,
+ 0xa7, 0xa8, 0xaa, 0xac, 0xae, 0xaf,
+ 0xb1, 0xb3, 0xb5, 0xb7, 0xb8, 0xba,
+ 0xbc, 0xbe, 0xbf, 0xc1, 0xc3, 0xc5,
+ 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xcf,
+ 0xd1, 0xd3, 0xd5, 0xd6, 0xd8, 0xda,
+ 0xdc, 0xde, 0xdf, 0xe1,
+ };
+
+const int Cr_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
+ 0x5b6900, 0x5ab22e, 0x59fb5c, 0x59448a, 0x588db8, 0x57d6e6,
+ 0x572014, 0x566942, 0x55b270, 0x54fb9e, 0x5444cc, 0x538dfa,
+ 0x52d728, 0x522056, 0x516984, 0x50b2b2, 0x4ffbe0, 0x4f450e,
+ 0x4e8e3c, 0x4dd76a, 0x4d2098, 0x4c69c6, 0x4bb2f4, 0x4afc22,
+ 0x4a4550, 0x498e7e, 0x48d7ac, 0x4820da, 0x476a08, 0x46b336,
+ 0x45fc64, 0x454592, 0x448ec0, 0x43d7ee, 0x43211c, 0x426a4a,
+ 0x41b378, 0x40fca6, 0x4045d4, 0x3f8f02, 0x3ed830, 0x3e215e,
+ 0x3d6a8c, 0x3cb3ba, 0x3bfce8, 0x3b4616, 0x3a8f44, 0x39d872,
+ 0x3921a0, 0x386ace, 0x37b3fc, 0x36fd2a, 0x364658, 0x358f86,
+ 0x34d8b4, 0x3421e2, 0x336b10, 0x32b43e, 0x31fd6c, 0x31469a,
+ 0x308fc8, 0x2fd8f6, 0x2f2224, 0x2e6b52, 0x2db480, 0x2cfdae,
+ 0x2c46dc, 0x2b900a, 0x2ad938, 0x2a2266, 0x296b94, 0x28b4c2,
+ 0x27fdf0, 0x27471e, 0x26904c, 0x25d97a, 0x2522a8, 0x246bd6,
+ 0x23b504, 0x22fe32, 0x224760, 0x21908e, 0x20d9bc, 0x2022ea,
+ 0x1f6c18, 0x1eb546, 0x1dfe74, 0x1d47a2, 0x1c90d0, 0x1bd9fe,
+ 0x1b232c, 0x1a6c5a, 0x19b588, 0x18feb6, 0x1847e4, 0x179112,
+ 0x16da40, 0x16236e, 0x156c9c, 0x14b5ca, 0x13fef8, 0x134826,
+ 0x129154, 0x11da82, 0x1123b0, 0x106cde, 0x0fb60c, 0x0eff3a,
+ 0x0e4868, 0x0d9196, 0x0cdac4, 0x0c23f2, 0x0b6d20, 0x0ab64e,
+ 0x09ff7c, 0x0948aa, 0x0891d8, 0x07db06, 0x072434, 0x066d62,
+ 0x05b690, 0x04ffbe, 0x0448ec, 0x03921a, 0x02db48, 0x022476,
+ 0x016da4, 0x00b6d2, 0x000000, -0x00b6d2, -0x016da4, -0x022476,
+ -0x02db48, -0x03921a, -0x0448ec, -0x04ffbe, -0x05b690, -0x066d62,
+ -0x072434, -0x07db06, -0x0891d8, -0x0948aa, -0x09ff7c, -0x0ab64e,
+ -0x0b6d20, -0x0c23f2, -0x0cdac4, -0x0d9196, -0x0e4868, -0x0eff3a,
+ -0x0fb60c, -0x106cde, -0x1123b0, -0x11da82, -0x129154, -0x134826,
+ -0x13fef8, -0x14b5ca, -0x156c9c, -0x16236e, -0x16da40, -0x179112,
+ -0x1847e4, -0x18feb6, -0x19b588, -0x1a6c5a, -0x1b232c, -0x1bd9fe,
+ -0x1c90d0, -0x1d47a2, -0x1dfe74, -0x1eb546, -0x1f6c18, -0x2022ea,
+ -0x20d9bc, -0x21908e, -0x224760, -0x22fe32, -0x23b504, -0x246bd6,
+ -0x2522a8, -0x25d97a, -0x26904c, -0x27471e, -0x27fdf0, -0x28b4c2,
+ -0x296b94, -0x2a2266, -0x2ad938, -0x2b900a, -0x2c46dc, -0x2cfdae,
+ -0x2db480, -0x2e6b52, -0x2f2224, -0x2fd8f6, -0x308fc8, -0x31469a,
+ -0x31fd6c, -0x32b43e, -0x336b10, -0x3421e2, -0x34d8b4, -0x358f86,
+ -0x364658, -0x36fd2a, -0x37b3fc, -0x386ace, -0x3921a0, -0x39d872,
+ -0x3a8f44, -0x3b4616, -0x3bfce8, -0x3cb3ba, -0x3d6a8c, -0x3e215e,
+ -0x3ed830, -0x3f8f02, -0x4045d4, -0x40fca6, -0x41b378, -0x426a4a,
+ -0x43211c, -0x43d7ee, -0x448ec0, -0x454592, -0x45fc64, -0x46b336,
+ -0x476a08, -0x4820da, -0x48d7ac, -0x498e7e, -0x4a4550, -0x4afc22,
+ -0x4bb2f4, -0x4c69c6, -0x4d2098, -0x4dd76a, -0x4e8e3c, -0x4f450e,
+ -0x4ffbe0, -0x50b2b2, -0x516984, -0x522056, -0x52d728, -0x538dfa,
+ -0x5444cc, -0x54fb9e, -0x55b270, -0x566942, -0x572014, -0x57d6e6,
+ -0x588db8, -0x59448a, -0x59fb5c, -0x5ab22e,
+ };
+
+const int Cb_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={
+ 0x2c8d00, 0x2c34e6, 0x2bdccc, 0x2b84b2, 0x2b2c98, 0x2ad47e,
+ 0x2a7c64, 0x2a244a, 0x29cc30, 0x297416, 0x291bfc, 0x28c3e2,
+ 0x286bc8, 0x2813ae, 0x27bb94, 0x27637a, 0x270b60, 0x26b346,
+ 0x265b2c, 0x260312, 0x25aaf8, 0x2552de, 0x24fac4, 0x24a2aa,
+ 0x244a90, 0x23f276, 0x239a5c, 0x234242, 0x22ea28, 0x22920e,
+ 0x2239f4, 0x21e1da, 0x2189c0, 0x2131a6, 0x20d98c, 0x208172,
+ 0x202958, 0x1fd13e, 0x1f7924, 0x1f210a, 0x1ec8f0, 0x1e70d6,
+ 0x1e18bc, 0x1dc0a2, 0x1d6888, 0x1d106e, 0x1cb854, 0x1c603a,
+ 0x1c0820, 0x1bb006, 0x1b57ec, 0x1affd2, 0x1aa7b8, 0x1a4f9e,
+ 0x19f784, 0x199f6a, 0x194750, 0x18ef36, 0x18971c, 0x183f02,
+ 0x17e6e8, 0x178ece, 0x1736b4, 0x16de9a, 0x168680, 0x162e66,
+ 0x15d64c, 0x157e32, 0x152618, 0x14cdfe, 0x1475e4, 0x141dca,
+ 0x13c5b0, 0x136d96, 0x13157c, 0x12bd62, 0x126548, 0x120d2e,
+ 0x11b514, 0x115cfa, 0x1104e0, 0x10acc6, 0x1054ac, 0x0ffc92,
+ 0x0fa478, 0x0f4c5e, 0x0ef444, 0x0e9c2a, 0x0e4410, 0x0debf6,
+ 0x0d93dc, 0x0d3bc2, 0x0ce3a8, 0x0c8b8e, 0x0c3374, 0x0bdb5a,
+ 0x0b8340, 0x0b2b26, 0x0ad30c, 0x0a7af2, 0x0a22d8, 0x09cabe,
+ 0x0972a4, 0x091a8a, 0x08c270, 0x086a56, 0x08123c, 0x07ba22,
+ 0x076208, 0x0709ee, 0x06b1d4, 0x0659ba, 0x0601a0, 0x05a986,
+ 0x05516c, 0x04f952, 0x04a138, 0x04491e, 0x03f104, 0x0398ea,
+ 0x0340d0, 0x02e8b6, 0x02909c, 0x023882, 0x01e068, 0x01884e,
+ 0x013034, 0x00d81a, 0x008000, 0x0027e6, -0x003034, -0x00884e,
+ -0x00e068, -0x013882, -0x01909c, -0x01e8b6, -0x0240d0, -0x0298ea,
+ -0x02f104, -0x03491e, -0x03a138, -0x03f952, -0x04516c, -0x04a986,
+ -0x0501a0, -0x0559ba, -0x05b1d4, -0x0609ee, -0x066208, -0x06ba22,
+ -0x07123c, -0x076a56, -0x07c270, -0x081a8a, -0x0872a4, -0x08cabe,
+ -0x0922d8, -0x097af2, -0x09d30c, -0x0a2b26, -0x0a8340, -0x0adb5a,
+ -0x0b3374, -0x0b8b8e, -0x0be3a8, -0x0c3bc2, -0x0c93dc, -0x0cebf6,
+ -0x0d4410, -0x0d9c2a, -0x0df444, -0x0e4c5e, -0x0ea478, -0x0efc92,
+ -0x0f54ac, -0x0facc6, -0x1004e0, -0x105cfa, -0x10b514, -0x110d2e,
+ -0x116548, -0x11bd62, -0x12157c, -0x126d96, -0x12c5b0, -0x131dca,
+ -0x1375e4, -0x13cdfe, -0x142618, -0x147e32, -0x14d64c, -0x152e66,
+ -0x158680, -0x15de9a, -0x1636b4, -0x168ece, -0x16e6e8, -0x173f02,
+ -0x17971c, -0x17ef36, -0x184750, -0x189f6a, -0x18f784, -0x194f9e,
+ -0x19a7b8, -0x19ffd2, -0x1a57ec, -0x1ab006, -0x1b0820, -0x1b603a,
+ -0x1bb854, -0x1c106e, -0x1c6888, -0x1cc0a2, -0x1d18bc, -0x1d70d6,
+ -0x1dc8f0, -0x1e210a, -0x1e7924, -0x1ed13e, -0x1f2958, -0x1f8172,
+ -0x1fd98c, -0x2031a6, -0x2089c0, -0x20e1da, -0x2139f4, -0x21920e,
+ -0x21ea28, -0x224242, -0x229a5c, -0x22f276, -0x234a90, -0x23a2aa,
+ -0x23fac4, -0x2452de, -0x24aaf8, -0x250312, -0x255b2c, -0x25b346,
+ -0x260b60, -0x26637a, -0x26bb94, -0x2713ae, -0x276bc8, -0x27c3e2,
+ -0x281bfc, -0x287416, -0x28cc30, -0x29244a, -0x297c64, -0x29d47e,
+ -0x2a2c98, -0x2a84b2, -0x2adccc, -0x2b34e6,
+ };
+
+
+/* We assume that right shift corresponds to signed division by 2 with
+ * rounding towards minus infinity. This is correct for typical "arithmetic
+ * shift" instructions that shift in copies of the sign bit. But some
+ * C compilers implement >> with an unsigned shift. For these machines you
+ * must define RIGHT_SHIFT_IS_UNSIGNED.
+ * RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity.
+ * It is only applied with constant shift counts. SHIFT_TEMPS must be
+ * included in the variables of any routine using RIGHT_SHIFT.
+ */
+
+#ifdef RIGHT_SHIFT_IS_UNSIGNED
+#define SHIFT_TEMPS INT32 shift_temp;
+#define RIGHT_SHIFT(x,shft) \
+ ((shift_temp = (x)) < 0 ? \
+ (shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \
+ (shift_temp >> (shft)))
+#else
+#define SHIFT_TEMPS
+#define RIGHT_SHIFT(x,shft) ((x) >> (shft))
+#endif
+
+
+METHODDEF(void)
+ycc_rgb_convert_argb (j_decompress_ptr cinfo,
+ JSAMPIMAGE input_buf, JDIMENSION input_row,
+ JSAMPARRAY output_buf, int num_rows)
+{
+ JDIMENSION num_cols = cinfo->output_width;
+ JSAMPLE * range_limit = cinfo->sample_range_limit;
+
+ SHIFT_TEMPS
+
+ /* This is used if we don't have SSE2 */
+
+ while (--num_rows >= 0) {
+ JSAMPROW inptr0 = input_buf[0][input_row];
+ JSAMPROW inptr1 = input_buf[1][input_row];
+ JSAMPROW inptr2 = input_buf[2][input_row];
+ input_row++;
+ uint32_t *outptr = (uint32_t *) *output_buf++;
+ for (JDIMENSION col = 0; col < num_cols; col++) {
+ int y = GETJSAMPLE(inptr0[col]);
+ int cb = GETJSAMPLE(inptr1[col]);
+ int cr = GETJSAMPLE(inptr2[col]);
+ JSAMPLE * range_limit_y = range_limit + y;
+ /* Range-limiting is essential due to noise introduced by DCT losses. */
+ outptr[col] = 0xFF000000 |
+ ( range_limit_y[Cr_r_tab[cr]] << 16 ) |
+ ( range_limit_y[((int) RIGHT_SHIFT(Cb_g_tab[cb] + Cr_g_tab[cr], SCALEBITS))] << 8 ) |
+ ( range_limit_y[Cb_b_tab[cb]] );
+ }
+ }
+}
+#endif
+
+
///*************** Inverted CMYK -> RGB conversion *************************
/// Input is (Inverted) CMYK stored as 4 bytes per pixel.
/// Output is RGB stored as 3 bytes per pixel.

View File

@ -0,0 +1,16 @@
To be removed after FreeBSD 10.* EOL
--- ipc/glue/MessageChannel.cpp.orig 2017-11-02 16:16:32 UTC
+++ ipc/glue/MessageChannel.cpp
@@ -685,6 +685,11 @@ MessageChannel::WillDestroyCurrentMessageLoop()
mWorkerLoop = nullptr;
}
+#if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION < 4000
+// Work around UB in __tree crashing mPendingPromises.clear()
+// http://llvm.org/viewvc/llvm-project?view=revision&revision=276003
+[[clang::optnone]]
+#endif
void
MessageChannel::Clear()
{

View File

@ -0,0 +1,12 @@
--- comm/mail/app/nsMailApp.cpp.orig 2017-03-21 17:00:12 UTC
+++ comm/mail/app/nsMailApp.cpp
@@ -322,6 +322,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);
+
#ifdef HAS_DLL_BLOCKLIST
DllBlocklist_Initialize();

View File

@ -0,0 +1,13 @@
# Let ports handle default sample type
--- 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
dnl use integers on ARM with other OS, because it's more efficient.
-if test "$OS_TARGET" = "Android" -o "$CPU_ARCH" = "arm"; then
+if test -n "$MOZ_INTEGER_SAMPLES"; then
MOZ_SAMPLE_TYPE_S16=1
AC_DEFINE(MOZ_SAMPLE_TYPE_S16)
AC_SUBST(MOZ_SAMPLE_TYPE_S16)

View File

@ -0,0 +1,15 @@
diff --git toolkit/moz.configure toolkit/moz.configure
index 1befea00c485..7999b7acd5bd 100644
--- toolkit/moz.configure
+++ toolkit/moz.configure
@@ -842,8 +842,8 @@ def webrender(value, milestone):
enable_webrender = None
if value.origin == 'default':
- # if nothing is specified, default to just building on Nightly
- build_webrender = milestone.is_nightly
+ # build by default downstream
+ build_webrender = True
elif len(value) and value[0] == 'build':
# if explicitly set to 'build', then we build but don't enable
build_webrender = True

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,496 @@
# 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
@@ -285,7 +285,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/external/moz.build config/external/moz.build
index 029ff8504795..2c3a40caa1ba 100644
--- config/external/moz.build
+++ config/external/moz.build
@@ -23,12 +23,21 @@ external_dirs += ['modules/woff2']
external_dirs += ['modules/xz-embedded']
-if CONFIG['MOZ_VORBIS']:
+if not CONFIG['MOZ_SYSTEM_OGG']:
+ external_dirs += ['media/libogg']
+
+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_SYSTEM_TREMOR']:
external_dirs += ['media/libtremor']
+if not CONFIG['MOZ_SYSTEM_THEORA']:
+ external_dirs += ['media/libtheora']
+
+if not CONFIG['MOZ_SYSTEM_SOUNDTOUCH']:
+ external_dirs += ['media/libsoundtouch']
+
if CONFIG['MOZ_WEBM_ENCODER']:
external_dirs += ['media/libmkv']
@@ -51,11 +60,8 @@ external_dirs += [
'media/kiss_fft',
'media/libcubeb',
'media/libnestegg',
- 'media/libogg',
'media/libopus',
- 'media/libtheora',
'media/libspeex_resampler',
- 'media/libsoundtouch',
'media/mp4parse-rust',
'media/psshparser'
]
diff --git config/system-headers.mozbuild config/system-headers.mozbuild
index 09d3db5ca8c0..c6533b84c470 100644
--- config/system-headers.mozbuild
+++ config/system-headers.mozbuild
@@ -1325,6 +1325,28 @@ if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
'harfbuzz/hb.h',
]
+if CONFIG['MOZ_SYSTEM_OGG']:
+ system_headers += [
+ 'ogg/ogg.h',
+ 'ogg/os_types.h',
+ ]
+
+if CONFIG['MOZ_SYSTEM_THEORA']:
+ system_headers += [
+ 'theora/theoradec.h',
+ ]
+
+if CONFIG['MOZ_SYSTEM_VORBIS']:
+ system_headers += [
+ 'vorbis/codec.h',
+ 'vorbis/vorbisenc.h',
+ ]
+
+if CONFIG['MOZ_SYSTEM_TREMOR']:
+ system_headers += [
+ 'tremor/ivorbiscodec.h',
+ ]
+
if CONFIG['MOZ_SYSTEM_LIBVPX']:
system_headers += [
'vpx_mem/vpx_mem.h',
diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp
index 93ecda4319af..ff674c64ea07 100644
--- dom/media/AudioStream.cpp
+++ dom/media/AudioStream.cpp
@@ -121,7 +121,9 @@ AudioStream::AudioStream(DataSource& aSource)
: mMonitor("AudioStream")
, mChannels(0)
, mOutChannels(0)
+#ifndef MOZ_SYSTEM_SOUNDTOUCH
, mTimeStretcher(nullptr)
+#endif
, mDumpFile(nullptr)
, mState(INITIALIZED)
, mDataSource(aSource)
@@ -142,9 +144,11 @@ AudioStream::~AudioStream()
if (mDumpFile) {
fclose(mDumpFile);
}
+#ifndef MOZ_SYSTEM_SOUNDTOUCH
if (mTimeStretcher) {
soundtouch::destroySoundTouchObj(mTimeStretcher);
}
+#endif
#if defined(XP_WIN)
if (XRE_IsContentProcess()) {
audio::AudioNotificationReceiver::Unregister(this);
@@ -168,7 +172,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked()
{
mMonitor.AssertCurrentThreadOwns();
if (!mTimeStretcher) {
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
+ mTimeStretcher = new soundtouch::SoundTouch();
+#else
mTimeStretcher = soundtouch::createSoundTouchObj();
+#endif
mTimeStretcher->setSampleRate(mAudioClock.GetInputRate());
mTimeStretcher->setChannels(mOutChannels);
mTimeStretcher->setPitch(1.0);
diff --git dom/media/AudioStream.h dom/media/AudioStream.h
index 7dc1f60f95cc..67d402a4117f 100644
--- dom/media/AudioStream.h
+++ dom/media/AudioStream.h
@@ -15,7 +15,11 @@
#include "mozilla/TimeStamp.h"
#include "mozilla/UniquePtr.h"
#include "CubebUtils.h"
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
+#include "soundtouch/SoundTouch.h"
+#else
#include "soundtouch/SoundTouchFactory.h"
+#endif
#if defined(XP_WIN)
#include "mozilla/audio/AudioNotificationReceiver.h"
@@ -297,7 +301,11 @@ private:
uint32_t mChannels;
uint32_t mOutChannels;
AudioClock mAudioClock;
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
+ nsAutoPtr<soundtouch::SoundTouch> mTimeStretcher;
+#else
soundtouch::SoundTouch* mTimeStretcher;
+#endif
// Output file for dumping audio
FILE* mDumpFile;
diff --git dom/media/moz.build dom/media/moz.build
index 86b051c58d33..fb6186dce78b 100644
--- dom/media/moz.build
+++ dom/media/moz.build
@@ -326,6 +326,21 @@ if CONFIG['MOZ_WEBRTC']:
DEFINES['MOZILLA_INTERNAL_API'] = True
+if CONFIG['MOZ_SYSTEM_OGG']:
+ CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS']
+
+if CONFIG['MOZ_SYSTEM_THEORA']:
+ CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS']
+
+if CONFIG['MOZ_SYSTEM_VORBIS']:
+ CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS']
+
+if CONFIG['MOZ_SYSTEM_TREMOR']:
+ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
+
+if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']:
+ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
+
if CONFIG['MOZ_ANDROID_HLS_SUPPORT']:
DEFINES['MOZ_ANDROID_HLS_SUPPORT'] = True
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
@@ -15,9 +15,13 @@
#include <windows.h>
#endif
+#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 {
@@ -64,6 +68,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.
PathString lgpllibsname = GetLibraryName(nullptr, "lgpllibs");
@@ -73,6 +83,7 @@ FFVPXRuntimeLinker::Init()
PathString path =
GetLibraryFilePathname(lgpllibsname.get(),
(PRFuncPtr)&soundtouch::SoundTouch::getVersionId);
+#endif
if (path.IsEmpty()) {
return false;
}
diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA
index 6213fdc7770c..ada799916a17 100644
--- media/libogg/README_MOZILLA
+++ media/libogg/README_MOZILLA
@@ -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 old-configure.in in sync on updates.
diff --git media/libsoundtouch/README_MOZILLA media/libsoundtouch/README_MOZILLA
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,
using the script `update.sh`. Some changes have been made to the files, using
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 old-configure.in in sync on updates.
diff --git media/libsoundtouch/src/soundtouch_perms.h media/libsoundtouch/src/soundtouch_perms.h
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_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 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,
the addition/update of Makefile.in files for the Mozilla build system.
The subversion revision used was r17578.
+
+The in-tree copy may be omitted during build by --with-system-theora.
+Keep version in old-configure.in in sync on updates.
diff --git media/libtheora/moz.build media/libtheora/moz.build
index c7f85eebff95..aae7b814adb5 100644
--- media/libtheora/moz.build
+++ media/libtheora/moz.build
@@ -21,6 +21,9 @@ FINAL_LIBRARY = 'gkmedias'
# The encoder is currently not included.
DEFINES['THEORA_DISABLE_ENCODE'] = True
+if CONFIG['MOZ_SYSTEM_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
+
# Suppress warnings in third-party code.
if CONFIG['CC_TYPE'] in ('clang', 'clang-cl', 'gcc'):
CFLAGS += ['-Wno-type-limits']
diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA
index ee67b53a05c5..81c971773d55 100644
--- media/libtremor/README_MOZILLA
+++ media/libtremor/README_MOZILLA
@@ -5,3 +5,6 @@ Makefile.in files for the Mozilla build system.
The upstream release used was http://svn.xiph.org/trunk/Tremor/
The subversion revision used was r17547.
+
+The in-tree copy may be omitted during build by --with-system-tremor.
+Keep version in old-configure.in in sync on updates.
diff --git media/libtremor/moz.build media/libtremor/moz.build
index 83afc8e37c64..71ef159da3d7 100644
--- media/libtremor/moz.build
+++ media/libtremor/moz.build
@@ -9,3 +9,5 @@ with Files('*'):
DIRS += ['include/tremor', 'lib']
+if CONFIG['MOZ_SYSTEM_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
diff --git media/libvorbis/README_MOZILLA media/libvorbis/README_MOZILLA
index 1211ac074b33..eb31084aed25 100644
--- media/libvorbis/README_MOZILLA
+++ media/libvorbis/README_MOZILLA
@@ -8,3 +8,6 @@ from https://git.xiph.org/vorbis.git
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 old-configure.in in sync on updates.
diff --git media/libvorbis/moz.build media/libvorbis/moz.build
index adf393782cc9..923b76231107 100644
--- media/libvorbis/moz.build
+++ media/libvorbis/moz.build
@@ -56,3 +56,6 @@ FINAL_LIBRARY = 'gkmedias'
# Suppress warnings in third-party code.
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
CFLAGS += ['-Wno-uninitialized']
+
+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
@@ -2627,6 +2627,111 @@ if test -n "$MOZ_APPLEMEDIA"; then
fi
fi # COMPILE_ENVIRONMENT
+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.3)
+
+ _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.6)
+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 079a575adec3..514d901195de 100644
--- toolkit/library/moz.build
+++ toolkit/library/moz.build
@@ -240,6 +240,21 @@ if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
if CONFIG['MOZ_SYSTEM_HUNSPELL']:
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
+if CONFIG['MOZ_SYSTEM_OGG']:
+ OS_LIBS += CONFIG['MOZ_OGG_LIBS']
+
+if CONFIG['MOZ_SYSTEM_THEORA']:
+ OS_LIBS += CONFIG['MOZ_THEORA_LIBS']
+
+if CONFIG['MOZ_SYSTEM_VORBIS']:
+ OS_LIBS += CONFIG['MOZ_VORBIS_LIBS']
+
+if CONFIG['MOZ_SYSTEM_TREMOR']:
+ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
+
+if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']:
+ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
+
if CONFIG['MOZ_SYSTEM_LIBEVENT']:
OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
diff --git xpcom/build/XPCOMInit.cpp xpcom/build/XPCOMInit.cpp
index c083ab4bc4f3..62b917043a2c 100644
--- xpcom/build/XPCOMInit.cpp
+++ xpcom/build/XPCOMInit.cpp
@@ -132,7 +132,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)
#if defined(HAVE_STDINT_H)
// mozilla-config.h defines HAVE_STDINT_H, and then it's defined *again* in
@@ -639,11 +641,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult,
// this oddness.
mozilla::SetICUMemoryFunctions();
+#ifndef MOZ_OGG_NO_MEM_REPORTING
// Do the same for libogg.
ogg_set_mem_functions(OggReporter::CountingMalloc,
OggReporter::CountingCalloc,
OggReporter::CountingRealloc,
OggReporter::CountingFree);
+#endif
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
// And for VPX.

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Name=Thunderbird
GenericName=Mail Client
Comment=Mail client and News Reader
Exec=@MOZILLA@ %u
Icon=@PORTNAME_ICON@
StartupNotify=true
Terminal=false
Type=Application
Categories=Network;Email;News;InstantMessaging;