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

www/firefox-esr: update to 60.1.0

Changes:	https://www.mozilla.org/firefox/60.1.0/releasenotes/
This commit is contained in:
Jan Beich 2018-06-20 00:22:05 +00:00
parent 1ffba2ac4c
commit d623046854
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=472833
39 changed files with 37598 additions and 3 deletions

View File

@ -36,12 +36,12 @@ RUN_DEPENDS+= libxul>=45:www/libxul
.elif ${gecko_ARGS:Mfirefox}
_GECKO_DEFAULT_VERSION= 52
_GECKO_VERSIONS= 52 61
_GECKO_DEFAULT_VERSION= 60
_GECKO_VERSIONS= 60 61
_GECKO_TYPE= firefox
# Dependence lines for different Firefox versions
52_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr
60_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr
61_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox
.if exists(${LOCALBASE}/bin/firefox)

View File

@ -0,0 +1,90 @@
# Created by: Andrew Pantyukhin <infofarmer@FreeBSD.org>
# $FreeBSD$
PORTNAME= firefox-i18n
PORTVERSION= 60.1.0
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}esr/linux-i686/xpi \
MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build1/linux-i686/xpi
PKGNAMEPREFIX=
PKGNAMESUFFIX= -esr-i18n
DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/}
DIST_SUBDIR= xpi/${DISTNAME}
MAINTAINER= gecko@FreeBSD.org
COMMENT= Localized interface for Firefox
EXTRACT_DEPENDS= zip:archivers/zip
USES= zip:infozip gecko:firefox,build
USE_XPI= firefox
NO_ARCH= yes
USE_SUBMAKE= yes
WDIR= langpack-*@firefox.mozilla.org
XPI_DISTNAMES= ${FIREFOX_I18N_}
PLIST?= ${WRKDIR}/plist
PLISTF?= ${WRKDIR}/plist_files
.include "${.CURDIR}/Makefile.option"
.include <bsd.port.pre.mk>
.ifndef WITHOUT_SWITCHER
RUN_DEPENDS+= xpi-quick-locale-switcher>=0:www/xpi-quick-locale-switcher
.endif
.include "${.CURDIR}/Makefile.lang"
FIREFOX_I18N_?= ${FIREFOX_I18N}
.for dist in ${XPI_DISTNAMES}
XPI_ID_${dist}= langpack-${dist}@firefox.mozilla.org
.endfor
pre-everything::
@${ECHO_CMD}
@${ECHO_CMD} "Please define FIREFOX_I18N_ALL to install all languages."
@${ECHO_CMD}
do-extract:
@${MKDIR} ${WRKSRC}
@for lang in ${FIREFOX_I18N_}; do \
if ! (${UNZIP_CMD} -qo ${_DISTDIR}/$$lang.xpi -d ${WRKSRC}/langpack-$$lang@firefox.mozilla.org);\
then \
exit 1; \
fi; \
cd ${WRKSRC}/langpack-$$lang@firefox.mozilla.org/; \
${FIND} -H -s * ! -type d | \
${SED} -e "s|^|lib/xpi/langpack-$$lang@firefox.mozilla.org/|" >> ${PLISTF}; \
done
${CAT} ${PLISTF} | ${SORT} >> ${PLIST}
do-install:
@${MKDIR} ${STAGEDIR}${XPI_LIBDIR}
cd ${WRKSRC}; ${PAX} -rw . ${STAGEDIR}${XPI_LIBDIR}
${CHMOD} -R a+rX,go-w ${STAGEDIR}${XPI_LIBDIR}/${WDIR}/
@for e in ${STAGEDIR}${XPI_LIBDIR}/${WDIR}; do \
for _dir in ${XPI_LINKFARMS} ; do \
${LN} -sf $${_e##*/} ${STAGEDIR}$$_dir/ ${_Q} ; \
done \
done
@${ECHO_CMD} '@exec ${INSTALL} -d ${XPI_SLDIRS_ALL:S,^${PREFIX},%D,}' ${_A}
@${ECHO_CMD} '@exec for _dir in ${XPI_LINKFARMS} ; { \
${LN} -sf ${XPI_LIBDIR}/${WDIR} $$_dir/ ${_Q}; }' ${_A}
@${ECHO_CMD} '@unexec for _dir in ${XPI_LINKFARMS} ; { ${RM} $$_dir/${WDIR} ; }' ${_A}
post-patch:
${FIND} ${WRKSRC} -name install.rdf -print0 | \
${XARGS} -0L1 ${REINPLACE_CMD} -i '' -e '/<?xml/,$$!d'
list-langs:
@fetch -qo- "https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}esr/linux-i686/xpi"|\
${PERL} -ne 'if(/.*href="([a-zA-Z-]+).xpi.*/){print "$$1\n"}' |\
${AWK} 'BEGIN{ORS=" "}{print $$1}END{printf "\nNumber of languages: %d\n",NR}'
.include "${.CURDIR}/../xpi-adblock/Makefile.xpi"
.include <bsd.port.post.mk>

View File

@ -0,0 +1,309 @@
# Created by: Koji Yokota <yokota@res.otaru-uc.ac.jp>
# $FreeBSD$
FIREFOX_I18N_ALL_= ach af an ar as ast az be bg bn-BD bn-IN br bs ca cak \
cs cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL \
es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn \
gu-IN he hi-IN hr hsb hu hy-AM ia id is it ja ka kab \
kk km kn ko lij lt lv mai mk ml mr ms my nb-NO ne-NP nl \
nn-NO oc or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son \
sq sr sv-SE ta te th tr uk ur uz vi xh zh-CN zh-TW
.if defined(FIREFOX_I18N_ALL) || defined(PACKAGE_BUILDING) || target(package)
FIREFOX_I18N= ${FIREFOX_I18N_ALL_}
.else
.if ${PORT_OPTIONS:MLANG_ACH}
FIREFOX_I18N+= ach
.endif
.if ${PORT_OPTIONS:MLANG_AF}
FIREFOX_I18N+= af
.endif
.if ${PORT_OPTIONS:MLANG_AN}
FIREFOX_I18N+= an
.endif
.if ${PORT_OPTIONS:MLANG_AR}
FIREFOX_I18N+= ar
.endif
.if ${PORT_OPTIONS:MLANG_AS}
FIREFOX_I18N+= as
.endif
.if ${PORT_OPTIONS:MLANG_AST}
FIREFOX_I18N+= ast
.endif
.if ${PORT_OPTIONS:MLANG_AZ}
FIREFOX_I18N+= az
.endif
.if ${PORT_OPTIONS:MLANG_BE}
FIREFOX_I18N+= be
.endif
.if ${PORT_OPTIONS:MLANG_BG}
FIREFOX_I18N+= bg
.endif
.if ${PORT_OPTIONS:MLANG_BB}
FIREFOX_I18N+= bn-BD
.endif
.if ${PORT_OPTIONS:MLANG_BN}
FIREFOX_I18N+= bn-IN
.endif
.if ${PORT_OPTIONS:MLANG_BR}
FIREFOX_I18N+= br
.endif
.if ${PORT_OPTIONS:MLANG_BS}
FIREFOX_I18N+= bs
.endif
.if ${PORT_OPTIONS:MLANG_CA}
FIREFOX_I18N+= ca
.endif
.if ${PORT_OPTIONS:MLANG_CAK}
FIREFOX_I18N+= cak
.endif
.if ${PORT_OPTIONS:MLANG_CS}
FIREFOX_I18N+= cs
.endif
.if ${PORT_OPTIONS:MLANG_CY}
FIREFOX_I18N+= cy
.endif
.if ${PORT_OPTIONS:MLANG_DA}
FIREFOX_I18N+= da
.endif
.if ${PORT_OPTIONS:MLANG_DE}
FIREFOX_I18N+= de
.endif
.if ${PORT_OPTIONS:MLANG_DSB}
FIREFOX_I18N+= dsb
.endif
.if ${PORT_OPTIONS:MLANG_EL}
FIREFOX_I18N+= el
.endif
.if ${PORT_OPTIONS:MLANG_GB}
FIREFOX_I18N+= en-GB
.endif
.if ${PORT_OPTIONS:MLANG_US}
FIREFOX_I18N+= en-US
.endif
.if ${PORT_OPTIONS:MLANG_ZA}
FIREFOX_I18N+= en-ZA
.endif
.if ${PORT_OPTIONS:MLANG_EO}
FIREFOX_I18N+= eo
.endif
.if ${PORT_OPTIONS:MLANG_SA}
FIREFOX_I18N+= es-AR
.endif
.if ${PORT_OPTIONS:MLANG_SC}
FIREFOX_I18N+= es-CL
.endif
.if ${PORT_OPTIONS:MLANG_ES}
FIREFOX_I18N+= es-ES
.endif
.if ${PORT_OPTIONS:MLANG_SM}
FIREFOX_I18N+= es-MX
.endif
.if ${PORT_OPTIONS:MLANG_ET}
FIREFOX_I18N+= et
.endif
.if ${PORT_OPTIONS:MLANG_EU}
FIREFOX_I18N+= eu
.endif
.if ${PORT_OPTIONS:MLANG_FA}
FIREFOX_I18N+= fa
.endif
.if ${PORT_OPTIONS:MLANG_FF}
FIREFOX_I18N+= ff
.endif
.if ${PORT_OPTIONS:MLANG_FI}
FIREFOX_I18N+= fi
.endif
.if ${PORT_OPTIONS:MLANG_FR}
FIREFOX_I18N+= fr
.endif
.if ${PORT_OPTIONS:MLANG_FY}
FIREFOX_I18N+= fy-NL
.endif
.if ${PORT_OPTIONS:MLANG_GA}
FIREFOX_I18N+= ga-IE
.endif
.if ${PORT_OPTIONS:MLANG_GD}
FIREFOX_I18N+= gd
.endif
.if ${PORT_OPTIONS:MLANG_GL}
FIREFOX_I18N+= gl
.endif
.if ${PORT_OPTIONS:MLANG_GN}
FIREFOX_I18N+= gn
.endif
.if ${PORT_OPTIONS:MLANG_GU}
FIREFOX_I18N+= gu-IN
.endif
.if ${PORT_OPTIONS:MLANG_HE}
FIREFOX_I18N+= he
.endif
.if ${PORT_OPTIONS:MLANG_HI}
FIREFOX_I18N+= hi-IN
.endif
.if ${PORT_OPTIONS:MLANG_HR}
FIREFOX_I18N+= hr
.endif
.if ${PORT_OPTIONS:MLANG_HSB}
FIREFOX_I18N+= hsb
.endif
.if ${PORT_OPTIONS:MLANG_HU}
FIREFOX_I18N+= hu
.endif
.if ${PORT_OPTIONS:MLANG_AM}
FIREFOX_I18N+= hy-AM
.endif
.if ${PORT_OPTIONS:MLANG_IA}
FIREFOX_I18N+= ia
.endif
.if ${PORT_OPTIONS:MLANG_ID}
FIREFOX_I18N+= id
.endif
.if ${PORT_OPTIONS:MLANG_IS}
FIREFOX_I18N+= is
.endif
.if ${PORT_OPTIONS:MLANG_IT}
FIREFOX_I18N+= it
.endif
.if ${PORT_OPTIONS:MLANG_JA}
FIREFOX_I18N+= ja
.endif
.if ${PORT_OPTIONS:MLANG_KA}
FIREFOX_I18N+= ka
.endif
.if ${PORT_OPTIONS:MLANG_KAB}
FIREFOX_I18N+= kab
.endif
.if ${PORT_OPTIONS:MLANG_KK}
FIREFOX_I18N+= kk
.endif
.if ${PORT_OPTIONS:MLANG_KM}
FIREFOX_I18N+= km
.endif
.if ${PORT_OPTIONS:MLANG_KN}
FIREFOX_I18N+= kn
.endif
.if ${PORT_OPTIONS:MLANG_KO}
FIREFOX_I18N+= ko
.endif
.if ${PORT_OPTIONS:MLANG_LIJ}
FIREFOX_I18N+= lij
.endif
.if ${PORT_OPTIONS:MLANG_LT}
FIREFOX_I18N+= lt
.endif
.if ${PORT_OPTIONS:MLANG_LV}
FIREFOX_I18N+= lv
.endif
.if ${PORT_OPTIONS:MLANG_MAI}
FIREFOX_I18N+= mai
.endif
.if ${PORT_OPTIONS:MLANG_MK}
FIREFOX_I18N+= mk
.endif
.if ${PORT_OPTIONS:MLANG_ML}
FIREFOX_I18N+= ml
.endif
.if ${PORT_OPTIONS:MLANG_MR}
FIREFOX_I18N+= mr
.endif
.if ${PORT_OPTIONS:MLANG_MS}
FIREFOX_I18N+= ms
.endif
.if ${PORT_OPTIONS:MLANG_MY}
FIREFOX_I18N+= my
.endif
.if ${PORT_OPTIONS:MLANG_NB}
FIREFOX_I18N+= nb-NO
.endif
.if ${PORT_OPTIONS:MLANG_NE}
FIREFOX_I18N+= ne-NP
.endif
.if ${PORT_OPTIONS:MLANG_NL}
FIREFOX_I18N+= nl
.endif
.if ${PORT_OPTIONS:MLANG_NN}
FIREFOX_I18N+= nn-NO
.endif
.if ${PORT_OPTIONS:MLANG_OC}
FIREFOX_I18N+= oc
.endif
.if ${PORT_OPTIONS:MLANG_OR}
FIREFOX_I18N+= or
.endif
.if ${PORT_OPTIONS:MLANG_PA}
FIREFOX_I18N+= pa-IN
.endif
.if ${PORT_OPTIONS:MLANG_PL}
FIREFOX_I18N+= pl
.endif
.if ${PORT_OPTIONS:MLANG_PBR}
FIREFOX_I18N+= pt-BR
.endif
.if ${PORT_OPTIONS:MLANG_PT}
FIREFOX_I18N+= pt-PT
.endif
.if ${PORT_OPTIONS:MLANG_RM}
FIREFOX_I18N+= rm
.endif
.if ${PORT_OPTIONS:MLANG_RO}
FIREFOX_I18N+= ro
.endif
.if ${PORT_OPTIONS:MLANG_RU}
FIREFOX_I18N+= ru
.endif
.if ${PORT_OPTIONS:MLANG_SI}
FIREFOX_I18N+= si
.endif
.if ${PORT_OPTIONS:MLANG_SK}
FIREFOX_I18N+= sk
.endif
.if ${PORT_OPTIONS:MLANG_SL}
FIREFOX_I18N+= sl
.endif
.if ${PORT_OPTIONS:MLANG_SON}
FIREFOX_I18N+= son
.endif
.if ${PORT_OPTIONS:MLANG_SQ}
FIREFOX_I18N+= sq
.endif
.if ${PORT_OPTIONS:MLANG_SR}
FIREFOX_I18N+= sr
.endif
.if ${PORT_OPTIONS:MLANG_SV}
FIREFOX_I18N+= sv-SE
.endif
.if ${PORT_OPTIONS:MLANG_TA}
FIREFOX_I18N+= ta
.endif
.if ${PORT_OPTIONS:MLANG_TE}
FIREFOX_I18N+= te
.endif
.if ${PORT_OPTIONS:MLANG_TH}
FIREFOX_I18N+= th
.endif
.if ${PORT_OPTIONS:MLANG_TR}
FIREFOX_I18N+= tr
.endif
.if ${PORT_OPTIONS:MLANG_UK}
FIREFOX_I18N+= uk
.endif
.if ${PORT_OPTIONS:MLANG_UR}
FIREFOX_I18N+= ur
.endif
.if ${PORT_OPTIONS:MLANG_UZ}
FIREFOX_I18N+= uz
.endif
.if ${PORT_OPTIONS:MLANG_VI}
FIREFOX_I18N+= vi
.endif
.if ${PORT_OPTIONS:MLANG_XH}
FIREFOX_I18N+= xh
.endif
.if ${PORT_OPTIONS:MLANG_CN}
FIREFOX_I18N+= zh-CN
.endif
.if ${PORT_OPTIONS:MLANG_TW}
FIREFOX_I18N+= zh-TW
.endif
.endif

View File

@ -0,0 +1,130 @@
# Created by: Koji Yokota <yokota@res.otaru-uc.ac.jp>
# $FreeBSD$
# this is sorted on the name of the xpi files, not the option name
OPTIONS_DEFINE= LANG_ACH \
LANG_AF \
LANG_AN \
LANG_AR \
LANG_AS \
LANG_AST \
LANG_AZ \
LANG_BE \
LANG_BG \
LANG_BB \
LANG_BN \
LANG_BR \
LANG_BS \
LANG_CA \
LANG_CAK \
LANG_CS \
LANG_CY \
LANG_DA \
LANG_DE \
LANG_DSB \
LANG_EL \
LANG_GB \
LANG_US \
LANG_ZA \
LANG_EO \
LANG_SA \
LANG_SC \
LANG_ES \
LANG_SM \
LANG_ET \
LANG_EU \
LANG_FA \
LANG_FF \
LANG_FI \
LANG_FR \
LANG_FY \
LANG_GA \
LANG_GD \
LANG_GL \
LANG_GN \
LANG_GU \
LANG_HE \
LANG_HI \
LANG_HR \
LANG_HSB \
LANG_HU \
LANG_AM \
LANG_IA \
LANG_ID \
LANG_IS \
LANG_IT \
LANG_JA \
LANG_KA \
LANG_KAB \
LANG_KK \
LANG_KM \
LANG_KN \
LANG_KO \
LANG_LIJ \
LANG_LT \
LANG_LV \
LANG_MAI \
LANG_MK \
LANG_ML \
LANG_MR \
LANG_MS \
LANG_MY \
LANG_NB \
LANG_NE \
LANG_NL \
LANG_NN \
LANG_OC \
LANG_OR \
LANG_PA \
LANG_PL \
LANG_PBR\
LANG_PT \
LANG_RM \
LANG_RO \
LANG_RU \
LANG_SI \
LANG_SK \
LANG_SL \
LANG_SON \
LANG_SQ \
LANG_SR \
LANG_SV \
LANG_TA \
LANG_TE \
LANG_TH \
LANG_TR \
LANG_UK \
LANG_UR \
LANG_UZ \
LANG_VI \
LANG_XH \
LANG_CN \
LANG_TW
OPTIONS_DEFAULT=LANG_AR LANG_BN LANG_BR LANG_CN LANG_ET LANG_DE LANG_FR \
LANG_HI LANG_ID LANG_IT LANG_JA LANG_KO LANG_MK LANG_MR \
LANG_PBR LANG_PA LANG_RU LANG_ES LANG_SON LANG_TE
LANG_ACH_DESC?= Acholi language support
LANG_AN_DESC?= Aragonese language support
LANG_AS_DESC?= Assamese language support
LANG_AZ_DESC?= Azerbaijani language support
LANG_CAK_DESC?= Kaqchikel (Guatemala) language support
LANG_CSB_DESC?= Kashubian language support
LANG_DSB_DESC?= Lower Sorbian language support
LANG_FF_DESC?= Fulah language support
LANG_GN_DESC?= Guarani (Paraguay) language support
LANG_HSB_DESC?= Upper Sorbian language support
LANG_IA_DESC?= Interlingua language support
LANG_KA_DESC?= Georgian language support
LANG_KAB_DESC?= Taqbaylit language support
LANG_KM_DESC?= Khmer language support
LANG_LIJ_DESC?= Ligurian (Genoa) language support
LANG_MS_DESC?= Malay language support
LANG_MY_DESC?= Burmese language support
LANG_NE_DESC?= Nepali language support
LANG_OC_DESC?= Occitan (lengadocian) language support
LANG_SW_DESC?= Swahili language support
LANG_UR_DESC?= Urdu (Pakistan) language support
LANG_UZ_DESC?= Uzbek language support
LANG_XH_DESC?= Xhosa language support

View File

@ -0,0 +1,197 @@
TIMESTAMP = 1528228087
SHA256 (xpi/firefox-i18n-60.1.0/ach.xpi) = 5e26041e4a6bf3d602b00c5990238676d5747f3265dac5552b71859c61bc272c
SIZE (xpi/firefox-i18n-60.1.0/ach.xpi) = 496061
SHA256 (xpi/firefox-i18n-60.1.0/af.xpi) = c9f675656e0934c4459c86556debf08b1c9306f8466593713875e5c30e67428f
SIZE (xpi/firefox-i18n-60.1.0/af.xpi) = 486533
SHA256 (xpi/firefox-i18n-60.1.0/an.xpi) = d645b169c68c3cd34d1cd33dd84912c8f0bb46ed3650434b092a250a8e97f547
SIZE (xpi/firefox-i18n-60.1.0/an.xpi) = 519726
SHA256 (xpi/firefox-i18n-60.1.0/ar.xpi) = 15e4f2833734bcab82a9b7421bfc87b424f7b40e8f05caf98f0122988e13d97a
SIZE (xpi/firefox-i18n-60.1.0/ar.xpi) = 546953
SHA256 (xpi/firefox-i18n-60.1.0/as.xpi) = 34a5908ce9bedb219cf89bbca86585f11a8c6260ee74253be8d7cbc8c9646ece
SIZE (xpi/firefox-i18n-60.1.0/as.xpi) = 529944
SHA256 (xpi/firefox-i18n-60.1.0/ast.xpi) = 93b838cf4dfeebaffdea93a66f86932d94c1550cee00770dcaaefb567618e880
SIZE (xpi/firefox-i18n-60.1.0/ast.xpi) = 507869
SHA256 (xpi/firefox-i18n-60.1.0/az.xpi) = 7056cbeb3d7eda3aa42fc0217257ad897daf729f5e04708b695cebb53f7fbee0
SIZE (xpi/firefox-i18n-60.1.0/az.xpi) = 523969
SHA256 (xpi/firefox-i18n-60.1.0/be.xpi) = ad5ab678b7b6ac74a93b6dc4aef25fb2f7583966808569fb2cda7833cef1e603
SIZE (xpi/firefox-i18n-60.1.0/be.xpi) = 579949
SHA256 (xpi/firefox-i18n-60.1.0/bg.xpi) = c8f43529614faf19faf331d154bd1ffe25fb2b896b82d99cd4597bfdfa33b1b4
SIZE (xpi/firefox-i18n-60.1.0/bg.xpi) = 573074
SHA256 (xpi/firefox-i18n-60.1.0/bn-BD.xpi) = 1626e73b4dab81a13b5b11c1820396077bca065f45a7bb0cc6d4f8593f6410e3
SIZE (xpi/firefox-i18n-60.1.0/bn-BD.xpi) = 589631
SHA256 (xpi/firefox-i18n-60.1.0/bn-IN.xpi) = dfc6431a6a2ea504abe26dbf73bd889507ba351afcf51d7384119514b4ad5bd3
SIZE (xpi/firefox-i18n-60.1.0/bn-IN.xpi) = 570077
SHA256 (xpi/firefox-i18n-60.1.0/br.xpi) = cf7635d6456286ee278c60818a9ffe195f104010e36d1ce83e0b47a6df4fc718
SIZE (xpi/firefox-i18n-60.1.0/br.xpi) = 511254
SHA256 (xpi/firefox-i18n-60.1.0/bs.xpi) = 2916fd5b52f39ca7efcecdaed7f9769abbb1a196d982837351d0f9522860b1b6
SIZE (xpi/firefox-i18n-60.1.0/bs.xpi) = 513932
SHA256 (xpi/firefox-i18n-60.1.0/ca.xpi) = 2986fd0d15201d6ac3e1d84d0b8e80e600d6039e0b4c3495138083011ad038e3
SIZE (xpi/firefox-i18n-60.1.0/ca.xpi) = 524475
SHA256 (xpi/firefox-i18n-60.1.0/cak.xpi) = f02921d89d2b77d03ed20ca9573ab7a203fd6f2eb098313d84b65475b5e27278
SIZE (xpi/firefox-i18n-60.1.0/cak.xpi) = 535514
SHA256 (xpi/firefox-i18n-60.1.0/cs.xpi) = e7a6a9a75599fd90fa3c556c820cad7bda7472b21c7bbbff3474abe196dd3fd6
SIZE (xpi/firefox-i18n-60.1.0/cs.xpi) = 531022
SHA256 (xpi/firefox-i18n-60.1.0/cy.xpi) = 93d722576846a2bf49250fc3ef7fef2111dbf34d3b7d946b3946da9add85706c
SIZE (xpi/firefox-i18n-60.1.0/cy.xpi) = 515862
SHA256 (xpi/firefox-i18n-60.1.0/da.xpi) = d74f2f8727e0b899c769778bf9364e9afe3c314d17c3a71d35c6eb48519f1ac6
SIZE (xpi/firefox-i18n-60.1.0/da.xpi) = 509980
SHA256 (xpi/firefox-i18n-60.1.0/de.xpi) = 771d8320cae87d125b924dccb6d77a2a44e02a380b52553fca9b989b46419e2c
SIZE (xpi/firefox-i18n-60.1.0/de.xpi) = 525695
SHA256 (xpi/firefox-i18n-60.1.0/dsb.xpi) = cb1c6d535f741a73b0325e4581b4ef1b9d390b38dacd0a202499ff80a8d58b47
SIZE (xpi/firefox-i18n-60.1.0/dsb.xpi) = 538750
SHA256 (xpi/firefox-i18n-60.1.0/el.xpi) = a67d8ecefb33ed4dcb7a455e05a46bc2675fda1c9068001ec1e8184d528198d0
SIZE (xpi/firefox-i18n-60.1.0/el.xpi) = 592912
SHA256 (xpi/firefox-i18n-60.1.0/en-GB.xpi) = 7254855553747f27a7521249980a740ad528f305fdb5a2951d5b5cc95d5c55d3
SIZE (xpi/firefox-i18n-60.1.0/en-GB.xpi) = 490906
SHA256 (xpi/firefox-i18n-60.1.0/en-US.xpi) = 2b5ef8252b9a773eddc891a58b9ddd192f641380924615a0b6fd5077dc48e6f6
SIZE (xpi/firefox-i18n-60.1.0/en-US.xpi) = 472388
SHA256 (xpi/firefox-i18n-60.1.0/en-ZA.xpi) = 8bad395bccc349070da0817dabe381b30a1be380f5a19d76312ef62e3a8e68e6
SIZE (xpi/firefox-i18n-60.1.0/en-ZA.xpi) = 473899
SHA256 (xpi/firefox-i18n-60.1.0/eo.xpi) = b332eb5f1f7cb4a24ad0cc034672b5ad0d723c6a0e5b1e416af22311dc92a9e4
SIZE (xpi/firefox-i18n-60.1.0/eo.xpi) = 510489
SHA256 (xpi/firefox-i18n-60.1.0/es-AR.xpi) = 0d00f6d5ef54660eb5670e08dd2a87ae43e6d98ce7e0b2f60f5b3b2661cca6f4
SIZE (xpi/firefox-i18n-60.1.0/es-AR.xpi) = 523825
SHA256 (xpi/firefox-i18n-60.1.0/es-CL.xpi) = c7f5d24bb145cbe79bb1edcb7691f0d60d2bf127b683da11d05b48dc1fb2d0bd
SIZE (xpi/firefox-i18n-60.1.0/es-CL.xpi) = 526509
SHA256 (xpi/firefox-i18n-60.1.0/es-ES.xpi) = d94773baa6ad16cd833a568502ca2b0130caed03ae4c6e653597d29e1a7da82c
SIZE (xpi/firefox-i18n-60.1.0/es-ES.xpi) = 459139
SHA256 (xpi/firefox-i18n-60.1.0/es-MX.xpi) = 5587089caa97dbbbcf7e30831df73c17db157f5172fb82ba82722f4d92db27aa
SIZE (xpi/firefox-i18n-60.1.0/es-MX.xpi) = 527842
SHA256 (xpi/firefox-i18n-60.1.0/et.xpi) = 99cbab52e159b5b5ff7ec3569968a89d369727095a247f0a5fd089c0dcf1b401
SIZE (xpi/firefox-i18n-60.1.0/et.xpi) = 504172
SHA256 (xpi/firefox-i18n-60.1.0/eu.xpi) = 718212dfd3c6d4efd63afc7bca0eadb6b72f23e026a86b7f4fe6f6f27dded0d1
SIZE (xpi/firefox-i18n-60.1.0/eu.xpi) = 510938
SHA256 (xpi/firefox-i18n-60.1.0/fa.xpi) = a106e50ac0139d7d5aea786a98f55ea4f8fb2aeadd06106447b97470a51b9c19
SIZE (xpi/firefox-i18n-60.1.0/fa.xpi) = 565490
SHA256 (xpi/firefox-i18n-60.1.0/ff.xpi) = 748fe1a9c451097656cd85a190e9d355afb3243333e31fbc4bb8d607d506dba9
SIZE (xpi/firefox-i18n-60.1.0/ff.xpi) = 511435
SHA256 (xpi/firefox-i18n-60.1.0/fi.xpi) = f8f17d3c181efdeb363b2d055bd8c0d9ca41fdc4cd0ea773e5841b0cb23e4f71
SIZE (xpi/firefox-i18n-60.1.0/fi.xpi) = 505409
SHA256 (xpi/firefox-i18n-60.1.0/fr.xpi) = 2e436b9daa98a28705a4b4d8ce760da70ca13e53bc39fedc0ab125d99075d90f
SIZE (xpi/firefox-i18n-60.1.0/fr.xpi) = 535234
SHA256 (xpi/firefox-i18n-60.1.0/fy-NL.xpi) = 886c528e010fc6b0f800d13de7e55adebb3ced580e4f94d911f0340d26011039
SIZE (xpi/firefox-i18n-60.1.0/fy-NL.xpi) = 523740
SHA256 (xpi/firefox-i18n-60.1.0/ga-IE.xpi) = b18291cca9f22bec9acc063a827226d6f08d5adc94bfc0b49d3153decb87d53b
SIZE (xpi/firefox-i18n-60.1.0/ga-IE.xpi) = 526204
SHA256 (xpi/firefox-i18n-60.1.0/gd.xpi) = db77b0608fc6e0f0b749ff92ef0907d42753e3932c90cce94fca51a4679cbfec
SIZE (xpi/firefox-i18n-60.1.0/gd.xpi) = 520093
SHA256 (xpi/firefox-i18n-60.1.0/gl.xpi) = 6dd68657f6f37e8ed369cd0ec5f7b3436ca97b15ed31c00d203274b5a111ceeb
SIZE (xpi/firefox-i18n-60.1.0/gl.xpi) = 496589
SHA256 (xpi/firefox-i18n-60.1.0/gn.xpi) = 25c8af49d1142db5b1aee183d82781f087c8abcc0e0cc94d58491d79b8ee3e9a
SIZE (xpi/firefox-i18n-60.1.0/gn.xpi) = 532446
SHA256 (xpi/firefox-i18n-60.1.0/gu-IN.xpi) = 635d57fb3e1735953f77e79b8444f453eb12b36ddc07f18350ebd36e3e793c4e
SIZE (xpi/firefox-i18n-60.1.0/gu-IN.xpi) = 589482
SHA256 (xpi/firefox-i18n-60.1.0/he.xpi) = 7c9c15653d4a30099c7039e6a66c126934a8b7fc30e70aee93b4e3f090e01d69
SIZE (xpi/firefox-i18n-60.1.0/he.xpi) = 535210
SHA256 (xpi/firefox-i18n-60.1.0/hi-IN.xpi) = 173eab4fed5d24f0c2f997dc7ad6ef8eb4f1b08ecfb60559c91d621336ef848c
SIZE (xpi/firefox-i18n-60.1.0/hi-IN.xpi) = 590079
SHA256 (xpi/firefox-i18n-60.1.0/hr.xpi) = 3ec839fae3bb316f54cdc59d7ccf81f6ed74a2722c6b00ca92c6e0a307065f7d
SIZE (xpi/firefox-i18n-60.1.0/hr.xpi) = 515188
SHA256 (xpi/firefox-i18n-60.1.0/hsb.xpi) = 7436c701e004a6b720bd997a096f19072f98a9320ea91511cf45c540caa2c902
SIZE (xpi/firefox-i18n-60.1.0/hsb.xpi) = 536281
SHA256 (xpi/firefox-i18n-60.1.0/hu.xpi) = 60b0363b5c9070b8225077badae42db0097c9bd02015ee073e740be0d1845ee8
SIZE (xpi/firefox-i18n-60.1.0/hu.xpi) = 537576
SHA256 (xpi/firefox-i18n-60.1.0/hy-AM.xpi) = 6a447a0fd2f6e15ba87596cbb1a9469932e3e6a2a2f9f8625dc3b566a9dda8bd
SIZE (xpi/firefox-i18n-60.1.0/hy-AM.xpi) = 568635
SHA256 (xpi/firefox-i18n-60.1.0/ia.xpi) = ebc8bc6af5aa3c0ac5203c8b3539ac814d7187b5b14b2d1ac238dc4e4c55f3e9
SIZE (xpi/firefox-i18n-60.1.0/ia.xpi) = 509960
SHA256 (xpi/firefox-i18n-60.1.0/id.xpi) = b2ce847635a01a3f3270fc3803146e1846e74377d0b769f82b0637339236968f
SIZE (xpi/firefox-i18n-60.1.0/id.xpi) = 501445
SHA256 (xpi/firefox-i18n-60.1.0/is.xpi) = 377a3b6e10c95a94764c0ee61616a5a2508c67aacde6c6e320b4a1006cb03c78
SIZE (xpi/firefox-i18n-60.1.0/is.xpi) = 512502
SHA256 (xpi/firefox-i18n-60.1.0/it.xpi) = 3e7b55c2b4a99ba900730c072c668f4de3b95e05cf4bb78414648e7239a13f68
SIZE (xpi/firefox-i18n-60.1.0/it.xpi) = 398261
SHA256 (xpi/firefox-i18n-60.1.0/ja.xpi) = 103d545d2f279ffdedf074027511ed0ad36fcce396224f90851333b522d7fdde
SIZE (xpi/firefox-i18n-60.1.0/ja.xpi) = 571240
SHA256 (xpi/firefox-i18n-60.1.0/ka.xpi) = f3cb7cccee49a2d444226b6ecb1962c4c67ce075bb573dfb31fa0378a3713221
SIZE (xpi/firefox-i18n-60.1.0/ka.xpi) = 556073
SHA256 (xpi/firefox-i18n-60.1.0/kab.xpi) = 721c28ce53f174e084ebc9fe2bb0c01d6118dc4a6f0c01f8c373e2979ad89c3d
SIZE (xpi/firefox-i18n-60.1.0/kab.xpi) = 519626
SHA256 (xpi/firefox-i18n-60.1.0/kk.xpi) = 13486d47e84d6da4e21edf699c9eefa0a918f7f3c9cedb17e4a29502e92014eb
SIZE (xpi/firefox-i18n-60.1.0/kk.xpi) = 582205
SHA256 (xpi/firefox-i18n-60.1.0/km.xpi) = 2f2ff12d12cfdf6cbe916fcfe2961f17c5e03f7215f8e3e6c3da120078f5a252
SIZE (xpi/firefox-i18n-60.1.0/km.xpi) = 582334
SHA256 (xpi/firefox-i18n-60.1.0/kn.xpi) = 06b1d0665ca39ba00a9623142b749713cc8706dc2174e6457d56d212b5cc1cb7
SIZE (xpi/firefox-i18n-60.1.0/kn.xpi) = 585096
SHA256 (xpi/firefox-i18n-60.1.0/ko.xpi) = 6b4e294f09726deb59ba00a0b3fdcda7257ae10159d1bf1cace532042840b543
SIZE (xpi/firefox-i18n-60.1.0/ko.xpi) = 547046
SHA256 (xpi/firefox-i18n-60.1.0/lij.xpi) = db4ad9772cf45751f26d9366a530a861998f294a225ee978b7fd95d86df81b57
SIZE (xpi/firefox-i18n-60.1.0/lij.xpi) = 512399
SHA256 (xpi/firefox-i18n-60.1.0/lt.xpi) = 302b586fcf05cd5cf927eb7083d10b9a81b9ca8f0bf96dfef5a6099f344e40cb
SIZE (xpi/firefox-i18n-60.1.0/lt.xpi) = 535630
SHA256 (xpi/firefox-i18n-60.1.0/lv.xpi) = eb6714574cea1c2cab5de1c0a39edc8d66ccbb4e8c1d984c63adfd4e4ba5c04a
SIZE (xpi/firefox-i18n-60.1.0/lv.xpi) = 525645
SHA256 (xpi/firefox-i18n-60.1.0/mai.xpi) = 0dc6b4f64f6f70c68bc02f64849092570e85cc98e2e34db5fea37283030caeaa
SIZE (xpi/firefox-i18n-60.1.0/mai.xpi) = 548474
SHA256 (xpi/firefox-i18n-60.1.0/mk.xpi) = ad906c47ec3d50cd443a776dbaf8c3b365a8c1c01d9e9b64f4960398229f9ea0
SIZE (xpi/firefox-i18n-60.1.0/mk.xpi) = 513026
SHA256 (xpi/firefox-i18n-60.1.0/ml.xpi) = 1eaf9ec1b5a47b57f716d27ebd358117e5f71a324e8b731c68d1510d9f6a0a92
SIZE (xpi/firefox-i18n-60.1.0/ml.xpi) = 598192
SHA256 (xpi/firefox-i18n-60.1.0/mr.xpi) = 91539ad08fad6c5d8201bbee618f251a7f224d145539c36c16003d1ab9129e7a
SIZE (xpi/firefox-i18n-60.1.0/mr.xpi) = 578342
SHA256 (xpi/firefox-i18n-60.1.0/ms.xpi) = 84993cd8a3343c9c0acca15b53efda6bda19d25cf69b6c6eedcbd4d19d6464f4
SIZE (xpi/firefox-i18n-60.1.0/ms.xpi) = 508780
SHA256 (xpi/firefox-i18n-60.1.0/my.xpi) = d0210c2480d51cfb6af0f169aa9fd6a8c241e23cb8f3c28bb5405ff2f217236b
SIZE (xpi/firefox-i18n-60.1.0/my.xpi) = 569574
SHA256 (xpi/firefox-i18n-60.1.0/nb-NO.xpi) = f171fd05cd390091122cb4f36e80e933deb9f7d8580963878740bddda1be4071
SIZE (xpi/firefox-i18n-60.1.0/nb-NO.xpi) = 509103
SHA256 (xpi/firefox-i18n-60.1.0/ne-NP.xpi) = 5c285fbfff385942b2b5d220fe86840cf25511c9d9cd9e9d2b583a02b965704d
SIZE (xpi/firefox-i18n-60.1.0/ne-NP.xpi) = 554585
SHA256 (xpi/firefox-i18n-60.1.0/nl.xpi) = accbcb416a44cf7294b2ad3549f5519dfa813ba1eb957eefb93b129c5f06c3f8
SIZE (xpi/firefox-i18n-60.1.0/nl.xpi) = 516658
SHA256 (xpi/firefox-i18n-60.1.0/nn-NO.xpi) = e12b6c982fdc46ac80a00e323e1cf4cbd9a4b9439d66461a75a7f9bb8a18dafd
SIZE (xpi/firefox-i18n-60.1.0/nn-NO.xpi) = 510615
SHA256 (xpi/firefox-i18n-60.1.0/oc.xpi) = 19e77dbaba2134edcfe715651e78cd161c4aee08d5b3099387e3a561dd4c5bb5
SIZE (xpi/firefox-i18n-60.1.0/oc.xpi) = 526210
SHA256 (xpi/firefox-i18n-60.1.0/or.xpi) = 93767d4e45b297adec5419c4a105764c32154b56c0c7a2a6ef1212a3d74ffd4f
SIZE (xpi/firefox-i18n-60.1.0/or.xpi) = 540091
SHA256 (xpi/firefox-i18n-60.1.0/pa-IN.xpi) = 0b560eb40d9f8321a9423b97418b3d459287db012238fdbf656e7aadfcfc0875
SIZE (xpi/firefox-i18n-60.1.0/pa-IN.xpi) = 557084
SHA256 (xpi/firefox-i18n-60.1.0/pl.xpi) = 7b037320a9fd035a2a82018cddfb91d5101eb8af507089e47b2b1f85b9ae1387
SIZE (xpi/firefox-i18n-60.1.0/pl.xpi) = 418199
SHA256 (xpi/firefox-i18n-60.1.0/pt-BR.xpi) = df1cb8f6dccae58889b36e09b9bd203c772bd4c6aa9d9c21d2aa2acd355af9a1
SIZE (xpi/firefox-i18n-60.1.0/pt-BR.xpi) = 513939
SHA256 (xpi/firefox-i18n-60.1.0/pt-PT.xpi) = 417b825da5d7228f9d0d6555f5194f8fe43b9cf066430a62e25304220a43c0a1
SIZE (xpi/firefox-i18n-60.1.0/pt-PT.xpi) = 518536
SHA256 (xpi/firefox-i18n-60.1.0/rm.xpi) = d577804b30fe636159d14ec3d4072ee2a383691b3684b37dccacc4d74432ceae
SIZE (xpi/firefox-i18n-60.1.0/rm.xpi) = 505264
SHA256 (xpi/firefox-i18n-60.1.0/ro.xpi) = 7fa2d7db5bbdb7a39e855628cb8303d8633a67fae136c43ebf07d3264375d70b
SIZE (xpi/firefox-i18n-60.1.0/ro.xpi) = 513284
SHA256 (xpi/firefox-i18n-60.1.0/ru.xpi) = a045fa459b42020cb681175517405d9426e609b73959f9ec9b0ddd98578e6e15
SIZE (xpi/firefox-i18n-60.1.0/ru.xpi) = 590513
SHA256 (xpi/firefox-i18n-60.1.0/si.xpi) = 155a453ea78cbdf6c7be75a5bbc78a84a4208d5bc010b65f9621546056d8ecf6
SIZE (xpi/firefox-i18n-60.1.0/si.xpi) = 544796
SHA256 (xpi/firefox-i18n-60.1.0/sk.xpi) = 8e782b3bb378c11c36758d8645ea365ca92091a1b1b055bc2c086606b109219f
SIZE (xpi/firefox-i18n-60.1.0/sk.xpi) = 540926
SHA256 (xpi/firefox-i18n-60.1.0/sl.xpi) = f94d25e47191b76cbe73a0a97143e1dfb07ed77aff45ce007216dd95e6b270cf
SIZE (xpi/firefox-i18n-60.1.0/sl.xpi) = 518579
SHA256 (xpi/firefox-i18n-60.1.0/son.xpi) = a34bbaad893cd4f829c712d8cdb564a38f76a3c8f0ee0231e928dd2827ea5015
SIZE (xpi/firefox-i18n-60.1.0/son.xpi) = 496920
SHA256 (xpi/firefox-i18n-60.1.0/sq.xpi) = 16a852e9119d8d0fa97ee6c35ca94b669b049347e732eea12ddb474155dbd697
SIZE (xpi/firefox-i18n-60.1.0/sq.xpi) = 520486
SHA256 (xpi/firefox-i18n-60.1.0/sr.xpi) = f90e67c38f43d12aa7702a03ee36fc51f54c3493095d6e47907e1639ae3b7a6c
SIZE (xpi/firefox-i18n-60.1.0/sr.xpi) = 547997
SHA256 (xpi/firefox-i18n-60.1.0/sv-SE.xpi) = a622eaba072867ccf67f63ab1e18f1ff9fc9846e5bbe30fb6746789c3ece5e7d
SIZE (xpi/firefox-i18n-60.1.0/sv-SE.xpi) = 517849
SHA256 (xpi/firefox-i18n-60.1.0/ta.xpi) = 75edb2dcf5a9f9b0db4312460b4e877b675f47e165df67b3452ac307fec8c8d1
SIZE (xpi/firefox-i18n-60.1.0/ta.xpi) = 577139
SHA256 (xpi/firefox-i18n-60.1.0/te.xpi) = f3e390f930fdfade07cc51b3f3748b249377248a812a61b1e7426f545e4527c6
SIZE (xpi/firefox-i18n-60.1.0/te.xpi) = 590183
SHA256 (xpi/firefox-i18n-60.1.0/th.xpi) = 22085314a0cbc7af8a0da02c09dceec1e9d1ed390ea8d6ef994f0f95d603bc92
SIZE (xpi/firefox-i18n-60.1.0/th.xpi) = 562043
SHA256 (xpi/firefox-i18n-60.1.0/tr.xpi) = 29a9b015b9ad77105839e99209d4ce9762e6a8fad46bf557bb0b8cee01a5ab4c
SIZE (xpi/firefox-i18n-60.1.0/tr.xpi) = 525041
SHA256 (xpi/firefox-i18n-60.1.0/uk.xpi) = 9b6e64d61d540f267ea786a5cf7e87d19c702aff9e8e538870a19d72996ff93e
SIZE (xpi/firefox-i18n-60.1.0/uk.xpi) = 580142
SHA256 (xpi/firefox-i18n-60.1.0/ur.xpi) = 6feaabb90c30e04001981e68a3b218f2da325200555e78bdc2c9d8850e2fc69f
SIZE (xpi/firefox-i18n-60.1.0/ur.xpi) = 562606
SHA256 (xpi/firefox-i18n-60.1.0/uz.xpi) = e1356213b3d2af00e873b4e9d2e625f037d98687f04eaff3bd53f8b7cc15fda2
SIZE (xpi/firefox-i18n-60.1.0/uz.xpi) = 512905
SHA256 (xpi/firefox-i18n-60.1.0/vi.xpi) = 9226d9d530fa40a4ed6217e335508d7f67ff7cbbe8cfcba31c4a0f8d21614a8b
SIZE (xpi/firefox-i18n-60.1.0/vi.xpi) = 527416
SHA256 (xpi/firefox-i18n-60.1.0/xh.xpi) = bb867d93d090f6ae7ff8ce860fb3ff49cc70766dfd6116ed05048eb9cf493072
SIZE (xpi/firefox-i18n-60.1.0/xh.xpi) = 511083
SHA256 (xpi/firefox-i18n-60.1.0/zh-CN.xpi) = b22b63acf29357ed765523715ba4f0c2371767c075e922638f80eae52799715f
SIZE (xpi/firefox-i18n-60.1.0/zh-CN.xpi) = 542803
SHA256 (xpi/firefox-i18n-60.1.0/zh-TW.xpi) = c39e4d114603e95b815755aee4713081d4262a7fee96ba55f0321d15584ff30a
SIZE (xpi/firefox-i18n-60.1.0/zh-TW.xpi) = 541120

View File

@ -0,0 +1,3 @@
Language packs for Firefox
WWW: http://www.mozilla.org/projects/l10n/

68
www/firefox-esr/Makefile Normal file
View File

@ -0,0 +1,68 @@
# Created by: Alan Eldridge <alane@FreeBSD.org>
# $FreeBSD$
PORTNAME= firefox
DISTVERSION= 60.1.0
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source
PKGNAMESUFFIX= -esr
DISTFILES= ${DISTNAME}esr.source${EXTRACT_SUFX}
MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
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.22.0:databases/sqlite3 \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
v4l_compat>0:multimedia/v4l_compat \
autoconf-2.13:devel/autoconf213 \
yasm:devel/yasm \
zip:archivers/zip
# soundtouch>=1.9.0:audio/soundtouch \
USE_GECKO= gecko
CPE_PRODUCT= ${PORTNAME}_esr
CONFLICTS_INSTALL= firefox
MOZ_PKGCONFIG_FILES= # empty
USE_MOZILLA= -cairo -soundtouch
USE_GL= gl
USES= tar:xz
FIREFOX_ICON= ${MOZILLA}.png
FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png
FIREFOX_DESKTOP= ${MOZSRC}/taskcluster/docker/${MOZILLA}-snap/${MOZILLA}.desktop
MOZ_OPTIONS= --enable-application=browser \
--enable-official-branding
OPTIONS_EXCLUDE= BUNDLED_CAIRO
.include "${.CURDIR}/../../www/firefox/Makefile.options"
post-patch:
@${REINPLACE_CMD} -e 's/%u/%U/' -e '/X-MultipleArgs/d' \
-e '/^Icon/s/=.*/=${FIREFOX_ICON:R}/' \
${FIREFOX_DESKTOP}
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
${WRKSRC}/browser/app/nsBrowserApp.cpp
pre-configure:
(cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13)
(cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13)
post-install:
${INSTALL_DATA} ${FIREFOX_DESKTOP} ${STAGEDIR}${PREFIX}/share/applications/
${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
${LN} -sf ${FIREFOX_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${FIREFOX_ICON}
.include <bsd.port.mk>

3
www/firefox-esr/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1528228087
SHA256 (firefox-60.1.0esr.source.tar.xz) = 6c6247b6fd63b4b08b85d3a7a536ce9238c3ce84de6c62ca0a5fdd2643d0cd1b
SIZE (firefox-60.1.0esr.source.tar.xz) = 267439036

View File

@ -0,0 +1,55 @@
https://github.com/mozilla/addons/issues/708
https://github.com/mozilla/addons-frontend/issues/4610
diff --git browser/app/profile/firefox.js browser/app/profile/firefox.js
index 75c2c5e435e35..4d8c09c02759b 100644
--- browser/app/profile/firefox.js
+++ browser/app/profile/firefox.js
@@ -45,8 +45,8 @@ pref("extensions.webextOptionalPermissionPrompts", tru
pref("extensions.getAddons.cache.enabled", true);
pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v3/addons/search/?guid=%IDS%&lang=%LOCALE%");
pref("extensions.getAddons.compatOverides.url", "https://services.addons.mozilla.org/api/v3/addons/compat-override/?guid=%IDS%&lang=%LOCALE%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
-pref("extensions.webservice.discoverURL", "https://discovery.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/%OS%/%COMPATIBILITY_MODE%");
+pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=Linux&appver=%VERSION%");
+pref("extensions.webservice.discoverURL", "https://discovery.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/Linux/%COMPATIBILITY_MODE%");
pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/");
pref("extensions.getAddons.themes.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes/?src=firefox");
@@ -186,8 +186,8 @@ pref("app.update.service.enabled", true);
// .. etc ..
//
pref("extensions.update.enabled", true);
-pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/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.mozilla.org/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.mozilla.org/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.mozilla.org/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
// Non-symmetric (not shared by extensions) extension-specific [update] preferences
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)

View File

@ -0,0 +1,12 @@
--- browser/app/nsBrowserApp.cpp.orig 2016-09-19 16:19:28 UTC
+++ browser/app/nsBrowserApp.cpp
@@ -324,6 +324,9 @@ int main(int argc, char* argv[], char* e
{
mozilla::TimeStamp start = mozilla::TimeStamp::Now();
+ setenv("MOZ_GMP_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
+ setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
+
#ifdef HAS_DLL_BLOCKLIST
DllBlocklist_Initialize();

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,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,11 @@
--- build/pgo/profileserver.py.orig 2017-09-15 04:15:39 UTC
+++ build/pgo/profileserver.py
@@ -87,7 +87,7 @@ if __name__ == '__main__':
env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog)
print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"]
- cmdargs = ["http://localhost:%d/index.html" % PORT]
+ cmdargs = ["http://127.0.0.1:%d/index.html" % PORT]
runner = FirefoxRunner(profile=profile,
binary=build.get_binary_path(
where="staged-package"),

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,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.

13
www/firefox-esr/pkg-descr Normal file
View File

@ -0,0 +1,13 @@
Mozilla Firefox is a free and open source web browser descended from the
Mozilla Application Suite. It is small, fast and easy to use, and offers
many advanced features:
o Popup Blocking
o Tabbed Browsing
o Live Bookmarks (ie. RSS)
o Extensions
o Themes
o FastFind
o Improved Security
WWW: http://www.mozilla.com/firefox

View File

@ -0,0 +1,34 @@
======================================================================
Some features available on other platforms are not implemented:
- Native audio (OSS backend is incomplete, doesn't support WebRTC)
- Encrypted Media Extensions (requires Widevine CDM binary)
- Process sandboxing (requires Capsicum backend)
- Reduced memory usage (requires mozjemalloc)
- Performance profiling (requires GeckoProfiler)
- Gamepad API (requires libusbhid backend)
- WebVR (requires open source runtime)
- TCP fast open
======================================================================
To select non-default audio backend open about:config page and create
media.cubeb.backend preference. Supported values are: alsa, jack,
pulse, pulse-rust, oss, sndio. Currently used backend can be inspected
on about:support page.
======================================================================
smb:// issues (Gvfs/GIO option):
Network group, machine, and share browsing does not work correctly.
sftp:// (Gvfs/GIO option):
Only sftp access using public key authentication works. To easily
setup public key authentication to "remote_host":
ssh-keygen
cat ~/.ssh/id_rsa.pub | ssh remote_host "cat >> .ssh/authorized_keys"
The SSH server on remote_host must allow pub key authentication.
======================================================================