Index: head/Mk/Uses/gecko.mk =================================================================== --- head/Mk/Uses/gecko.mk (revision 443535) +++ head/Mk/Uses/gecko.mk (revision 443536) @@ -1,127 +1,127 @@ # $FreeBSD$ # # Handle dependency of different gecko based applications # # MAINTAINER: gecko@FreeBSD.org # # Feature: gecko # Usage: USES=gecko or USES=gecko:ARGS # Valid ARGS: libxul, firefox, seamonkey, thunderbird # in case the first argument is not libxul # The following arguments are available # - build: also add the dependency as a build # dependency # - [0-9][0-9][+]?: a version optionnally # followed by a + # .if !defined(_INCLUDE_USES_GECKO_MK) _INCLUDE_USES_GECKO_MK= yes .if empty(gecko_ARGS) gecko_ARGS= libxul .endif _GECKO_VERSION= ${gecko_ARGS:M[0-9][0-9]*} .if ${gecko_ARGS:Mlibxul} # Compat with older versions GECKO= libxul GECKO_CONFING?= ${LOCALBASE}/bin/${GECKO}-config XPIDL?= ${LOCALBASE}/lib/${GECKO}/xpidl XPIDL_INCL?= `${GECKO_CONFIG} --idlflags` BUILD_DEPENDS+= libxul>=45:www/libxul RUN_DEPENDS+= libxul>=45:www/libxul .elif ${gecko_ARGS:Mfirefox} _GECKO_DEFAULT_VERSION= 52 -_GECKO_VERSIONS= 52 53 +_GECKO_VERSIONS= 52 54 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions 52_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr -53_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox +54_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox .if exists(${LOCALBASE}/bin/firefox) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/firefox --version 2>/dev/null _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:M[0-9][0-9]*:C/([0-9][0-9]).*/\1/g} .endif .elif ${gecko_ARGS:Mseamonkey} _GECKO_DEFAULT_VERSION= 46 _GECKO_VERSIONS= 46 _GECKO_TYPE= seamonkey .if exists(${LOCALBASE}/bin/seamonkey) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/seamonkey --version 2>/dev/null _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:M[0-9]*:C/[0-9].([0-9][0-9]).*/\1/g} .endif # Dependence lines for different Seamonkey versions 46_DEPENDS= ${LOCALBASE}/lib/seamonkey/seamonkey:www/seamonkey .elif ${gecko_ARGS:Mthunderbird} _GECKO_DEFAULT_VERSION= 52 _GECKO_VERSIONS= 52 _GECKO_TYPE= thunderbird .if exists(${LOCALBASE}/bin/thunderbird) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/thunderbird --version 2>/dev/null _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:M[0-9][0-9]*:C/([0-9][0-9]).*/\1/g} .endif # Dependence lines for different Thunderbird versions 52_DEPENDS= ${LOCALBASE}/lib/thunderbird/thunderbird:mail/thunderbird .else IGNORE= Unknown type of gecko dependency you may specify either libxul, firefox, seamonkey or thunderbird .endif .if defined(_GECKO_TYPE) .if ${_GECKO_VERSION:M*+} _GECKO_MIN_VERSION:= ${_GECKO_VERSION:S/+//} _GECKO_WANTED_VERSIONS:= ${_GECKO_DEFAULT_VERSION} .endif .if ${_GECKO_VERSION:M[0-9][0-9]} _GECKO_WANTED_VERSIONS:= ${_GECKO_VERSION:M[0-9][0-9]} .endif _GECKO_WANTED_VERSIONS?= ${_GECKO_DEFAULT_VERSION} .if defined(_GECKO_MIN_VERSION) . for _v in ${_GECKO_VERSIONS} . if ${_GECKO_MIN_VERSION} <= ${_v} _GECKO_WANTED_VERSIONS+= ${_v} . endif . endfor .endif .for _v in ${_GECKO_WANTED_VERSIONS:O:u} _GECKO_HIGHEST_VERSION:= ${_v} .if defined(_GECKO_INSTALLED_VER) && ${_GECKO_INSTALLED_VER} == ${_v} _GECKO_WANTED_VERSION:= ${_v} .endif .endfor .if !defined(_GECKO_WANTED_VERSION) .if defined(_GECKO_INSTALLED_VER) IGNORE= cannot install: ${_GECKO_TYPE} versions mismatch: ${_GECKO_TYPE}-${_GECKO_INSTALLED_VER} is installed and wanted version is ${_GECKO_TYPE}-${_GECKO_VERSION:M[0-9][0-9]} .else _GECKO_WANTED_VERSION:= ${_GECKO_HIGHEST_VERSION} .endif .endif .if ${gecko_ARGS:Mbuild} BUILD_DEPENDS+= ${${_GECKO_WANTED_VERSION}_DEPENDS} .endif RUN_DEPENDS+= ${${_GECKO_WANTED_VERSION}_DEPENDS} .endif .endif Index: head/Mk/bsd.gecko.mk =================================================================== --- head/Mk/bsd.gecko.mk (revision 443535) +++ head/Mk/bsd.gecko.mk (revision 443536) @@ -1,624 +1,628 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # Date created: 12 Nov 2005 # Whom: Michael Johnson # # $FreeBSD$ # # 4 column tabs prevent hair loss and tooth decay! # bsd.gecko.mk abstracts the selection of gecko-based backends. It allows users # and porters to support any available gecko backend without needing to build # many conditional tests. ${USE_GECKO} is the list of backends that your port # can handle, and ${GECKO} is set by bsd.gecko.mk to be the chosen backend. # Users set ${WITH_GECKO} to the list of gecko backends they want on their # system. .if defined(USE_GECKO) .if !defined(_POSTMKINCLUDED) && !defined(Gecko_Pre_Include) Gecko_Pre_Include= bsd.gecko.mk # This file contains some reusable components for mozilla ports. It's of # use primarily to apps from the mozilla project itself (such as Firefox, # Thunderbird, etc.), and probably won't be of use for gecko-based ports # like epiphany, galeon, etc. # # You need to make sure to add USE_GECKO=gecko to for your port can uses # one of these options below. # # Ports can use the following: # # USE_MOZILLA By default, it enables every system dependency # listed in '_ALL_DEPENDS'. If your port doesn't # need one of those then you can use '-' like # 'USE_MOZILLA= -png -vpx' to subtract the # dependencies. Experimental deps use '+' like # 'USE_MOZILLA= +speex +theora'. # # MOZILLA_PLIST_DIRS List of directories to descend into when installing # and creating the plist # # MOZ_PIS_SCRIPTS List of scripts residing in ${FILESDIR} to be # filtered through MOZCONFIG_SED and installed along # with our Pluggable Init Scripts (PIS) # # MOZ_SED_ARGS sed(1) commands through which MOZ_PIS_SCRIPTS are # filtered. There is a default set defined here, so # you probably want to add to MOZ_SED_ARGS rather # than clobber it # # MOZ_OPTIONS configure arguments (added to .mozconfig). If # NOMOZCONFIG is defined, you probably want to set # CONFIGURE_ARGS+=${MOZ_OPTIONS} # # MOZ_MK_OPTIONS The make(1) arguments (added to .mozconfig). If # NOMOZCONFIG is defined, you probably want to set # MAKE_ARGS+=${MOZ_MK_OPTIONS} # # MOZ_EXPORT Environment variables for the build process (added # to .mozconfig). If NOMOZCONFIG is defined, you # probably want to set MAKE_ENV+=${MOZ_EXPORT} # # MOZ_CHROME A variable for the --enable-chrome-format= in # CONFIGURE_ARGS. The default is omni. # # MOZ_TOOLKIT A variable for the --enable-default-toolkit= in # CONFIGURE_ARGS. The default is cairo-gtk2. # # MOZ_EXTENSIONS A list of extensions to build # # MOZ_PROTOCOLS A list of protocols to build (http, ftp, etc.) # # PORT_MOZCONFIG Defaults to ${FILESDIR}/mozconfig.in, but can be # set to a generic mozconfig included with the port # # NOMOZCONFIG Don't drop a customized .mozconfig into the build # directory. Options will have to be specified in # CONFIGURE_ARGS instead # MAINTAINER?= gecko@FreeBSD.org MOZILLA?= ${PORTNAME} MOZILLA_VER?= ${PORTVERSION} MOZILLA_BIN?= ${PORTNAME}-bin MOZILLA_EXEC_NAME?=${MOZILLA} MOZ_RPATH?= ${MOZILLA} USES+= cpe gmake iconv localbase perl5 pkgconfig \ python:2.7,build desktop-file-utils CPE_VENDOR?=mozilla USE_PERL5= build USE_XORG= x11 xcomposite xdamage xext xfixes xrender xt .if ${MOZILLA} != "libxul" BUNDLE_LIBS= yes .endif .if ${MOZILLA_VER:R:R} >= 49 USES+= compiler:c++14-lang FAVORITE_COMPILER= ${COMPILER_TYPE} # c++14-lib CPPFLAGS+= -D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_MATH_TR1 \ -D_DECLARE_C99_LDBL_MATH # XXX ports/193528 .else USES+= compiler:c++11-lang .endif .if ${MOZILLA_VER:R:R} >= 50 USE_XORG+= xcb .endif MOZILLA_SUFX?= none MOZSRC?= ${WRKSRC} WRKSRC?= ${WRKDIR}/mozilla PLISTF?= ${WRKDIR}/plist_files MOZ_OBJDIR?= ${WRKSRC}/obj-${ARCH:C/amd64/x86_64/}-unknown-${OPSYS:tl}${OSREL} MOZ_PIS_DIR?= lib/${MOZILLA}/init.d PORT_MOZCONFIG?= ${FILESDIR}/mozconfig.in MOZCONFIG?= ${WRKSRC}/.mozconfig # XXX Not ?= because fmake uses MAKEFILE internally MAKEFILE= ${WRKSRC}/client.mk MOZILLA_PLIST_DIRS?= bin lib share/pixmaps share/applications PKGINSTALL?= ${WRKDIR}/pkg-install PKGDEINSTALL?= ${WRKDIR}/pkg-deinstall PKGINSTALL_INC?= ${.CURDIR}/../../www/firefox/files/pkg-install.in PKGDEINSTALL_INC?= ${.CURDIR}/../../www/firefox/files/pkg-deinstall.in MOZ_PKGCONFIG_FILES?= ${MOZILLA}-gtkmozembed ${MOZILLA}-js \ ${MOZILLA}-xpcom ${MOZILLA}-plugin ALL_TARGET?= build MOZ_EXPORT+= ${CONFIGURE_ENV} \ PERL="${PERL}" MOZ_OPTIONS+= --prefix="${PREFIX}" MOZ_MK_OPTIONS+=MOZ_OBJDIR="${MOZ_OBJDIR}" LDFLAGS+= -Wl,--as-needed +.if ${MOZILLA_VER:R:R} < 55 .if ${OPSYS} != DragonFly # XXX xpcshell crash during install # use jemalloc 3.0.0 (4.0 for firefox 43+) API for stats/tuning MOZ_EXPORT+= MOZ_JEMALLOC3=1 MOZ_JEMALLOC4=1 .if ${OPSYS} != FreeBSD || ${MOZILLA_VER:R:R} >= 37 . if ${MOZILLA_VER:R:R} >= 48 MOZ_OPTIONS+= --enable-jemalloc=4 .else MOZ_OPTIONS+= --enable-jemalloc . endif .endif .endif # !DragonFly +.endif # Mozilla < 55 # Standard depends _ALL_DEPENDS= cairo event ffi graphite harfbuzz hunspell icu jpeg nspr nss png pixman soundtouch sqlite vpx .if ${PORT_OPTIONS:MINTEGER_SAMPLES} MOZ_EXPORT+= MOZ_INTEGER_SAMPLES=1 _ALL_DEPENDS+= tremor .else _ALL_DEPENDS+= vorbis .endif .if ! ${PORT_OPTIONS:MBUNDLED_CAIRO} cairo_BUILD_DEPENDS=cairo>=1.12.16_1,2:graphics/cairo cairo_LIB_DEPENDS= libcairo.so:graphics/cairo cairo_MOZ_OPTIONS= --enable-system-cairo .endif event_LIB_DEPENDS= libevent.so:devel/libevent event_MOZ_OPTIONS= --with-system-libevent ffi_LIB_DEPENDS= libffi.so:devel/libffi ffi_MOZ_OPTIONS= --enable-system-ffi .if exists(${FILESDIR}/patch-bug847568) graphite_LIB_DEPENDS= libgraphite2.so:graphics/graphite2 graphite_MOZ_OPTIONS= --with-system-graphite2 harfbuzz_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz harfbuzz_MOZ_OPTIONS= --with-system-harfbuzz .endif hunspell_LIB_DEPENDS= libhunspell-1.6.so:textproc/hunspell hunspell_MOZ_OPTIONS= --enable-system-hunspell icu_LIB_DEPENDS= libicui18n.so:devel/icu icu_MOZ_OPTIONS= --with-system-icu --with-intl-api -jpeg_BUILD_DEPENDS=yasm:devel/yasm # XXX Remove files/patch-ijg-libjpeg once -turbo is default jpeg_USES= jpeg jpeg_MOZ_OPTIONS= --with-system-jpeg=${LOCALBASE} nspr_LIB_DEPENDS= libnspr4.so:devel/nspr nspr_MOZ_OPTIONS= --with-system-nspr nss_LIB_DEPENDS= libnss3.so:security/nss nss_MOZ_OPTIONS= --with-system-nss pixman_LIB_DEPENDS= libpixman-1.so:x11/pixman pixman_MOZ_OPTIONS= --enable-system-pixman png_LIB_DEPENDS= libpng.so:graphics/png png_MOZ_OPTIONS= --with-system-png=${LOCALBASE} .if exists(${FILESDIR}/patch-z-bug517422) soundtouch_LIB_DEPENDS= libSoundTouch.so:audio/soundtouch soundtouch_MOZ_OPTIONS= --with-system-soundtouch .endif sqlite_LIB_DEPENDS= libsqlite3.so:databases/sqlite3 sqlite_MOZ_OPTIONS= --enable-system-sqlite .if exists(${FILESDIR}/patch-z-bug517422) # XXX disabled: update to 1.2.x or review backported fixes theora_LIB_DEPENDS= libtheora.so:multimedia/libtheora theora_MOZ_OPTIONS= --with-system-theora tremor_LIB_DEPENDS= libogg.so:audio/libogg libvorbisidec.so:audio/libtremor tremor_MOZ_OPTIONS= --with-system-tremor --with-system-ogg vorbis_LIB_DEPENDS= libogg.so:audio/libogg libvorbis.so:audio/libvorbis vorbis_MOZ_OPTIONS= --with-system-vorbis --with-system-ogg .endif -vpx_BUILD_DEPENDS= yasm:devel/yasm vpx_LIB_DEPENDS= libvpx.so:multimedia/libvpx vpx_MOZ_OPTIONS= --with-system-libvpx .for use in ${USE_MOZILLA} ${use:S/-/_WITHOUT_/}= ${TRUE} .endfor LIB_DEPENDS+= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 .for dep in ${_ALL_DEPENDS} ${USE_MOZILLA:M+*:S/+//} .if !defined(_WITHOUT_${dep}) BUILD_DEPENDS+= ${${dep}_BUILD_DEPENDS} LIB_DEPENDS+= ${${dep}_LIB_DEPENDS} RUN_DEPENDS+= ${${dep}_RUN_DEPENDS} USES+= ${${dep}_USES} MOZ_OPTIONS+= ${${dep}_MOZ_OPTIONS} .else BUILD_DEPENDS+= ${-${dep}_BUILD_DEPENDS} .endif .endfor # Standard options MOZ_CHROME?= omni MOZ_TOOLKIT?= cairo-gtk3 MOZ_CHANNEL?= ${PKGNAMESUFFIX:Urelease:S/^-//} MOZ_OPTIONS+= \ --enable-chrome-format=${MOZ_CHROME} \ --enable-default-toolkit=${MOZ_TOOLKIT} \ --enable-update-channel=${MOZ_CHANNEL} \ --enable-pie \ --with-pthreads # Configure options for install .if !defined(MOZ_EXTENSIONS) MOZ_OPTIONS+= --enable-extensions=default .else MOZ_OPTIONS+= --enable-extensions=${MOZ_EXTENSIONS} .endif .if !defined(MOZ_PROTOCOLS) MOZ_OPTIONS+= --enable-necko-protocols=default .else MOZ_OPTIONS+= --enable-necko-protocols=${MOZ_PROTOCOLS} .endif # others MOZ_OPTIONS+= --with-system-zlib \ --with-system-bz2 # API keys from www/chromium # http://www.chromium.org/developers/how-tos/api-keys # Note: these are for FreeBSD use ONLY. For your own distribution, # please get your own set of keys. MOZ_EXPORT+= MOZ_GOOGLE_API_KEY=AIzaSyBsp9n41JLW8jCokwn7vhoaMejDFRd1mp8 .if ${PORT_OPTIONS:MGTK2} MOZ_TOOLKIT= cairo-gtk2 .endif .if ${MOZ_TOOLKIT:Mcairo-gtk3} BUILD_DEPENDS+= gtk3>=3.14.6:x11-toolkits/gtk30 USE_GNOME+= gdkpixbuf2 gtk20 gtk30 .else # gtk2, cairo-gtk2 USE_GNOME+= gdkpixbuf2 gtk20 .endif .if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} CFLAGS+= -O3 MOZ_EXPORT+= MOZ_OPTIMIZE_FLAGS="${CFLAGS:M-O*}" MOZ_OPTIONS+= --enable-optimize .else MOZ_OPTIONS+= --disable-optimize .endif .if ${PORT_OPTIONS:MCANBERRA} RUN_DEPENDS+= libcanberra>0:audio/libcanberra .endif .if ${PORT_OPTIONS:MDBUS} BUILD_DEPENDS+= libnotify>0:devel/libnotify LIB_DEPENDS+= libdbus-1.so:devel/dbus \ libdbus-glib-1.so:devel/dbus-glib \ libstartup-notification-1.so:x11/startup-notification MOZ_OPTIONS+= --enable-startup-notification .else MOZ_OPTIONS+= --disable-dbus .endif .if ${PORT_OPTIONS:MFFMPEG} # dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp RUN_DEPENDS+= ffmpeg>=0.8,1:multimedia/ffmpeg .endif .if ${MOZILLA_VER:R:R} < 46 MOZ_OPTIONS+= --disable-gstreamer .endif .if ${PORT_OPTIONS:MGCONF} BUILD_DEPENDS+= ${gconf2_DETECT}:${gconf2_LIB_DEPENDS:C/.*://} USE_GNOME+= gconf2:build MOZ_OPTIONS+= --enable-gconf .else MOZ_OPTIONS+= --disable-gconf .endif +.if ${MOZILLA_VER:R:R} < 55 .if ${PORT_OPTIONS:MGNOMEUI} BUILD_DEPENDS+= ${libgnomeui_DETECT}:${libgnomeui_LIB_DEPENDS:C/.*://} USE_GNOME+= libgnomeui:build MOZ_OPTIONS+= --enable-gnomeui .else MOZ_OPTIONS+= --disable-gnomeui .endif +.endif # Mozilla < 55 .if ${PORT_OPTIONS:MLIBPROXY} LIB_DEPENDS+= libproxy.so:net/libproxy MOZ_OPTIONS+= --enable-libproxy .else MOZ_OPTIONS+= --disable-libproxy .endif .if ${PORT_OPTIONS:MPGO} USES:= compiler:gcc-c++11-lib ${USES:Ncompiler*c++11*} USE_DISPLAY=yes ALL_TARGET= profiledbuild MOZ_EXPORT+=MOZ_OPTIMIZE_FLAGS="-Os" MOZ_PGO_OPTIMIZE_FLAGS="${CFLAGS:M-O*}" .endif .if ${PORT_OPTIONS:MALSA} LIB_DEPENDS+= libasound.so:audio/alsa-lib RUN_DEPENDS+= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins RUN_DEPENDS+= alsa-lib>=1.1.1_1:audio/alsa-lib MOZ_OPTIONS+= --enable-alsa .endif .if ${PORT_OPTIONS:MPULSEAUDIO} . if ${PORT_OPTIONS:MALSA} BUILD_DEPENDS+= pulseaudio>0:audio/pulseaudio . else # pull pulse package if we cannot fallback to another backend LIB_DEPENDS+= libpulse.so:audio/pulseaudio . endif MOZ_OPTIONS+= --enable-pulseaudio .else MOZ_OPTIONS+= --disable-pulseaudio .endif .if ${PORT_OPTIONS:MSNDIO} LIB_DEPENDS+= libsndio.so:audio/sndio post-patch-SNDIO-on: @${REINPLACE_CMD} -e 's|OpenBSD|${OPSYS}|g' \ ${MOZSRC}/media/libcubeb/src/moz.build \ ${MOZSRC}/toolkit/library/moz.build . for tests in tests gtest @if [ -f "${MOZSRC}/media/libcubeb/${tests}/moz.build" ]; then \ ${REINPLACE_CMD} -e 's|OpenBSD|${OPSYS}|g' \ ${MOZSRC}/media/libcubeb/${tests}/moz.build \ ; fi . endfor @${REINPLACE_CMD} -e 's|OS==\"openbsd\"|OS==\"${OPSYS:tl}\"|g' \ ${MOZSRC}/media/webrtc/trunk/webrtc/build/common.gypi @${ECHO} "OS_LIBS += ['sndio']" >> \ ${MOZSRC}/media/webrtc/signaling/test/common.build .endif .if ${PORT_OPTIONS:MRUST} -BUILD_DEPENDS+= rustc:${RUST_PORT} +BUILD_DEPENDS+= rust>=1.15.1:${RUST_PORT} . if ${MOZILLA_VER:R:R} >= 51 BUILD_DEPENDS+= cargo>=0.16.0:devel/cargo . endif RUST_PORT?= lang/rust MOZ_OPTIONS+= --enable-rust .else MOZ_OPTIONS+= --disable-rust .endif .if ${PORT_OPTIONS:MDEBUG} MOZ_OPTIONS+= --enable-debug --disable-release STRIP= # ports/184285 .else MOZ_OPTIONS+= --disable-debug --disable-debug-symbols --enable-release .endif .if ${PORT_OPTIONS:MDTRACE} MOZ_OPTIONS+= --enable-dtrace \ --disable-gold . if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100061 LIBS+= -lelf . endif STRIP= .else MOZ_OPTIONS+= --disable-dtrace .endif .if ${PORT_OPTIONS:MPROFILE} MOZ_OPTIONS+= --enable-profiling STRIP= .else MOZ_OPTIONS+= --disable-profiling .endif .if ${PORT_OPTIONS:MTEST} USE_XORG+= xscrnsaver MOZ_OPTIONS+= --enable-tests .else MOZ_OPTIONS+= --disable-tests .endif .if !defined(STRIP) || ${STRIP} == "" MOZ_OPTIONS+= --disable-strip --disable-install-strip .else MOZ_OPTIONS+= --enable-strip --enable-install-strip .endif # _MAKE_JOBS is only available after bsd.port.post.mk, thus cannot be # used in .mozconfig. And client.mk automatically uses -jN where N # is what multiprocessing.cpu_count() returns. .if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE) MAKE_JOBS_NUMBER= 1 .endif .if defined(MAKE_JOBS_NUMBER) MOZ_MAKE_FLAGS+=-j${MAKE_JOBS_NUMBER} .endif .if defined(MOZ_MAKE_FLAGS) MOZ_MK_OPTIONS+=MOZ_MAKE_FLAGS="${MOZ_MAKE_FLAGS}" .endif MOZ_SED_ARGS+= -e's|@CPPFLAGS@|${CPPFLAGS}|g' \ -e 's|@CFLAGS@|${CFLAGS}|g' \ -e 's|@LDFLAGS@|${LDFLAGS}|g' \ -e 's|@LIBS@|${LIBS}|g' \ -e 's|@LOCALBASE@|${LOCALBASE}|g' \ -e 's|@PERL@|${PERL}|g' \ -e 's|@MOZDIR@|${PREFIX}/lib/${MOZILLA}|g' \ -e 's|%%PREFIX%%|${PREFIX}|g' \ -e 's|%%CFLAGS%%|${CFLAGS}|g' \ -e 's|%%LDFLAGS%%|${LDFLAGS}|g' \ -e 's|%%LIBS%%|${LIBS}|g' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ -e 's|%%PERL%%|${PERL}|g' \ -e 's|%%MOZILLA%%|${MOZILLA}|g' \ -e 's|%%MOZILLA_BIN%%|${MOZILLA_BIN}|g' \ -e 's|%%MOZDIR%%|${PREFIX}/lib/${MOZILLA}|g' MOZCONFIG_SED?= ${SED} ${MOZ_SED_ARGS} .if ${ARCH} == amd64 . if ${USE_MOZILLA:M-nss} USE_BINUTILS= # intel-gcm.s CFLAGS+= -B${LOCALBASE}/bin LDFLAGS+= -B${LOCALBASE}/bin . endif .elif ${ARCH:Mpowerpc*} USES:= compiler:gcc-c++11-lib ${USES:Ncompiler*c++11*} . if ${ARCH} == "powerpc64" MOZ_EXPORT+= UNAME_m="${ARCH}" CFLAGS+= -mminimal-toc . endif .elif ${ARCH} == "sparc64" # Work around miscompilation/mislinkage of the sCanonicalVTable hacks. MOZ_OPTIONS+= --disable-v1-string-abi .endif .else # bsd.port.post.mk pre-extract: gecko-pre-extract gecko-pre-extract: .if ${PORT_OPTIONS:MPGO} @${ECHO} "*****************************************************************" @${ECHO} "**************************** attention **************************" @${ECHO} "*****************************************************************" @${ECHO} "To build ${MOZILLA} with PGO support you need a running X server and" @${ECHO} " build this port with an user who could access the X server! " @${ECHO} "" @${ECHO} "During the build a ${MOZILLA} instance will start and run some test." @${ECHO} " Do not interrupt or close ${MOZILLA} during these tests! " @${ECHO} "*****************************************************************" @sleep 10 .endif post-patch: gecko-post-patch gecko-moz-pis-patch gecko-post-patch: .if exists(${PKGINSTALL_INC}) @${MOZCONFIG_SED} < ${PKGINSTALL_INC} > ${PKGINSTALL} .endif .if exists(${PKGDEINSTALL_INC}) @${MOZCONFIG_SED} < ${PKGDEINSTALL_INC} > ${PKGDEINSTALL} .endif @${RM} ${MOZCONFIG} .if !defined(NOMOZCONFIG) @if [ -e ${PORT_MOZCONFIG} ] ; then \ ${MOZCONFIG_SED} < ${PORT_MOZCONFIG} >> ${MOZCONFIG} ; \ fi .for arg in ${MOZ_OPTIONS} @${ECHO_CMD} ac_add_options ${arg:Q} >> ${MOZCONFIG} .endfor .for arg in ${MOZ_MK_OPTIONS} @${ECHO_CMD} mk_add_options ${arg:Q} >> ${MOZCONFIG} .endfor .for var in ${MOZ_EXPORT} @${ECHO_CMD} export ${var:Q} >> ${MOZCONFIG} .endfor .endif # .if !defined(NOMOZCONFIG) .if exists(${MOZSRC}/build/unix/mozilla-config.in) @${REINPLACE_CMD} -e 's/%{idldir}/%idldir%/g ; \ s|"%FULL_NSPR_CFLAGS%"|`nspr-config --cflags`|g ; \ s|"%FULL_NSPR_LIBS%"|`nspr-config --libs`|g' \ ${MOZSRC}/build/unix/mozilla-config.in .endif .if ${USE_MOZILLA:M-nspr} @${ECHO_MSG} "===> Applying NSPR patches" @for i in ${.CURDIR}/../../devel/nspr/files/patch-*; do \ ${PATCH} ${PATCH_ARGS} -d ${MOZSRC}/nsprpub < $$i; \ done .endif .if ${USE_MOZILLA:M-nss} @${ECHO_MSG} "===> Applying NSS patches" @for i in ${.CURDIR}/../../security/nss/files/patch-*; do \ ${PATCH} ${PATCH_ARGS} -d ${MOZSRC}/security/nss < $$i; \ done .endif @for f in \ ${WRKSRC}/directory/c-sdk/config/FreeBSD.mk \ ${WRKSRC}/directory/c-sdk/configure \ ${MOZSRC}/security/coreconf/FreeBSD.mk \ ${MOZSRC}/js/src/Makefile.in \ ${MOZSRC}/js/src/configure \ ${MOZSRC}/configure \ ${WRKSRC}/configure; do \ if [ -f $$f ] ; then \ ${REINPLACE_CMD} -Ee 's|-lc_r|-pthread|g ; \ s|-l?pthread|-pthread|g ; \ s|echo aout|echo elf|g ; \ s|/usr/X11R6|${LOCALBASE}|g' \ $$f; \ fi; \ done @if [ -f ${WRKSRC}/config/baseconfig.mk ] ; then \ ${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ ${WRKSRC}/config/baseconfig.mk; \ fi @${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ ${MOZSRC}/config/baseconfig.mk @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g ; \ s|%%LOCALBASE%%|${LOCALBASE}|g' \ ${MOZSRC}/build/unix/run-mozilla.sh @${REINPLACE_CMD} -e 's|/usr/local/netscape|${LOCALBASE}|g ; \ s|/usr/local/lib/netscape|${LOCALBASE}/lib|g' \ ${MOZSRC}/xpcom/io/SpecialSystemDirectory.cpp @${REINPLACE_CMD} -e 's|/etc|${PREFIX}&|g' \ ${MOZSRC}/xpcom/build/nsXPCOMPrivate.h @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ -e 's|mozilla/plugins|browser_plugins|g' \ -e 's|share/mozilla/extensions|lib/xpi|g' \ ${MOZSRC}/xpcom/io/nsAppFileLocationProvider.cpp \ ${MOZSRC}/toolkit/xre/nsXREDirProvider.cpp @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${MOZSRC}/extensions/spellcheck/hunspell/*/mozHunspell.cpp # handles mozilla pis scripts. gecko-moz-pis-patch: .for moz in ${MOZ_PIS_SCRIPTS} @${MOZCONFIG_SED} < ${FILESDIR}/${moz} > ${WRKDIR}/${moz} .endfor do-configure: gecko-do-configure gecko-do-configure: @(if ! ${CONFIGURE_ENV} ${DO_MAKE_BUILD} configure; then \ ${ECHO_MSG} "===> Script \"${CONFIGURE_SCRIPT}\" failed unexpectedly."; \ (${ECHO_CMD} ${CONFIGURE_FAIL_MESSAGE}) | ${FMT_80} ; \ ${FALSE}; \ fi) pre-install: gecko-moz-pis-pre-install post-install-script: gecko-create-plist gecko-create-plist: # Create the plist ${RM} ${PLISTF} .for dir in ${MOZILLA_PLIST_DIRS} @cd ${STAGEDIR}${PREFIX}/${dir} && ${FIND} -H -s * ! -type d | \ ${SED} -e 's|^|${dir}/|' >> ${PLISTF} .endfor ${CAT} ${PLISTF} | ${SORT} >> ${TMPPLIST} gecko-moz-pis-pre-install: .if defined(MOZ_PIS_SCRIPTS) ${MKDIR} ${STAGEDIR}${PREFIX}/${MOZ_PIS_DIR} .for moz in ${MOZ_PIS_SCRIPTS} ${INSTALL_SCRIPT} ${WRKDIR}/${moz} ${STAGEDIR}${PREFIX}/${MOZ_PIS_DIR} .endfor .endif .endif .endif # HERE THERE BE TACOS -- adamw Index: head/www/firefox/Makefile =================================================================== --- head/www/firefox/Makefile (revision 443535) +++ head/www/firefox/Makefile (revision 443536) @@ -1,76 +1,75 @@ # Created by: Alan Eldridge # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 53.0.3 -PORTREVISION= 1 +DISTVERSION= 54.0 DISTVERSIONSUFFIX=.source PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build3/source MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.13.1:devel/nspr \ - nss>=3.29.5:security/nss \ - libevent>=2.0.21_2:devel/libevent \ - harfbuzz>=1.4.1:print/harfbuzz \ - graphite2>=1.3.8:graphics/graphite2 \ +BUILD_DEPENDS= nspr>=4.14:devel/nspr \ + nss>=3.30.2:security/nss \ + libevent>=2.0.22:devel/libevent \ + harfbuzz>=1.4.3:print/harfbuzz \ + graphite2>=1.3.10:graphics/graphite2 \ png>=1.6.28:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ sqlite3>=3.17.0:databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ yasm:devel/yasm \ zip:archivers/zip # soundtouch>=1.9.0:audio/soundtouch \ LIB_DEPENDS= libv4l2.so:multimedia/libv4l USE_GECKO= gecko CONFLICTS_INSTALL= firefox-esr-45.* firefox-esr-3[18].* firefox-esr-24.* MOZ_PKGCONFIG_FILES= # empty USE_MOZILLA= -soundtouch MOZILLA_NAME= Firefox USE_GL= gl USES= tar:xz FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png MOZ_OPTIONS= --enable-application=browser \ --enable-official-branding OPTIONS_DEFINE= RUST OPTIONS_DEFAULT= BUNDLED_CAIRO # XXX lang/rust and devel/cargo currently build only on these platforms OPTIONS_DEFAULT_amd64= RUST OPTIONS_DEFAULT_i386= RUST .include "${.CURDIR}/../../www/firefox/Makefile.options" WRKSRC:= ${WRKDIR}/${PORTNAME}-${DISTVERSION} post-extract: @${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' -e 's|@MOZILLA@|${MOZILLA}|' \ -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|' \ <${FILESDIR}/firefox.desktop.in >${WRKDIR}/${MOZILLA}.desktop post-patch: @${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: ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps ${INSTALL_DATA} ${WRKDIR}/${MOZILLA}.desktop ${STAGEDIR}${PREFIX}/share/applications/ ${LN} -sf ${FIREFOX_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${FIREFOX_ICON} .include Index: head/www/firefox/distinfo =================================================================== --- head/www/firefox/distinfo (revision 443535) +++ head/www/firefox/distinfo (revision 443536) @@ -1,3 +1,3 @@ -TIMESTAMP = 1495100875 -SHA256 (firefox-53.0.3.source.tar.xz) = 78cc89650b6d8baacaf55f1a486de06bf3bb5b8a3082fd044e70225e2816e348 -SIZE (firefox-53.0.3.source.tar.xz) = 215253212 +TIMESTAMP = 1496961575 +SHA256 (firefox-54.0.source.tar.xz) = 08a9ff6870d904a2af1d03c17c6c44f67413608efb66bb280894d7b92c336a77 +SIZE (firefox-54.0.source.tar.xz) = 229178564 Index: head/www/firefox/files/patch-bug1338655 =================================================================== --- head/www/firefox/files/patch-bug1338655 (revision 443535) +++ head/www/firefox/files/patch-bug1338655 (nonexistent) @@ -1,66 +0,0 @@ -commit bbd48a5613c8 -Author: Ralph Giles -Date: Fri Feb 10 12:58:18 2017 -0800 - - Bug 1338655 - Don't try to build mp4parse bindings. r=froydnj - - We use the cheddar crate to generate a C header file - for our mp4parse_capi wrapper crate. Currently we - do this at code check-in time via update-rust.sh. - - Cargo 0.18 and later will try to execute a build.rs - file in the crate source tree regardless of whether - it's specified in Cargo.toml so patching out that - line just results in 'crate cheddar not found'. - - This change restores the old behaviour by substituting - a 'build = false' line instead. - - We do have syntex vendored, but we don't currently build - it by default, so I prefer this solution to just vendoring - cheddar and generating the header at build time. The syntex - crate is quite large and adds significantly to our compile - time. - - MozReview-Commit-ID: InJRRODWAdP - - --HG-- - extra : rebase_source : 29378fcbc86015ce6cc22dc66d38a43ddbac204e ---- - media/libstagefright/binding/mp4parse-cargo.patch | 5 +++-- - media/libstagefright/binding/mp4parse_capi/Cargo.toml | 2 ++ - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git media/libstagefright/binding/mp4parse-cargo.patch media/libstagefright/binding/mp4parse-cargo.patch -index 1dd13d20472a..bfa0ab74b424 100644 ---- media/libstagefright/binding/mp4parse-cargo.patch -+++ media/libstagefright/binding/mp4parse-cargo.patch -@@ -27,12 +27,13 @@ diff --git a/media/libstagefright/binding/mp4parse_capi/Cargo.toml b/media/libst - index aeeebc65..5c0836a 100644 - --- a/media/libstagefright/binding/mp4parse_capi/Cargo.toml - +++ b/media/libstagefright/binding/mp4parse_capi/Cargo.toml --@@ -18,18 +18,10 @@ exclude = [ -+@@ -18,18 +18,12 @@ exclude = [ - "*.mp4", - ] - - -build = "build.rs" --- -++build = false -+ - [dependencies] - byteorder = "1.0.0" - "mp4parse" = {version = "0.6.0", path = "../mp4parse"} -diff --git media/libstagefright/binding/mp4parse_capi/Cargo.toml media/libstagefright/binding/mp4parse_capi/Cargo.toml -index aee7ee947151..d7e3f55119d3 100644 ---- media/libstagefright/binding/mp4parse_capi/Cargo.toml -+++ media/libstagefright/binding/mp4parse_capi/Cargo.toml -@@ -18,6 +18,8 @@ exclude = [ - "*.mp4", - ] - -+build = false -+ - [dependencies] - byteorder = "1.0.0" - "mp4parse" = {version = "0.6.0", path = "../mp4parse"} Property changes on: head/www/firefox/files/patch-bug1338655 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug1359142 =================================================================== --- head/www/firefox/files/patch-bug1359142 (revision 443535) +++ head/www/firefox/files/patch-bug1359142 (nonexistent) @@ -1,57 +0,0 @@ -Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs - -diff --git js/src/wasm/WasmSignalHandlers.cpp js/src/wasm/WasmSignalHandlers.cpp -index 1ab76eeb4bd9..bcdff0487837 100644 ---- js/src/wasm/WasmSignalHandlers.cpp -+++ js/src/wasm/WasmSignalHandlers.cpp -@@ -108,7 +108,19 @@ class AutoSetHandlingSegFault - # define R12_sig(p) ((p)->sc_r12) - # define R13_sig(p) ((p)->sc_r13) - # define R14_sig(p) ((p)->sc_r14) --# define R15_sig(p) ((p)->sc_r15) -+# if defined(__arm__) -+# define R15_sig(p) ((p)->sc_pc) -+# else -+# define R15_sig(p) ((p)->sc_r15) -+# endif -+# if defined(__aarch64__) -+# define EPC_sig(p) ((p)->sc_elr) -+# define RFP_sig(p) ((p)->sc_x[29]) -+# endif -+# if defined(__mips__) -+# define EPC_sig(p) ((p)->sc_pc) -+# define RFP_sig(p) ((p)->sc_regs[30]) -+# endif - #elif defined(__linux__) || defined(SOLARIS) - # if defined(__linux__) - # define XMM_sig(p,i) ((p)->uc_mcontext.fpregs->_xmm[i]) -@@ -171,6 +183,14 @@ class AutoSetHandlingSegFault - # define R13_sig(p) ((p)->uc_mcontext.__gregs[_REG_R13]) - # define R14_sig(p) ((p)->uc_mcontext.__gregs[_REG_R14]) - # define R15_sig(p) ((p)->uc_mcontext.__gregs[_REG_R15]) -+# if defined(__aarch64__) -+# define EPC_sig(p) ((p)->uc_mcontext.__gregs[_REG_PC]) -+# define RFP_sig(p) ((p)->uc_mcontext.__gregs[_REG_X29]) -+# endif -+# if defined(__mips__) -+# define EPC_sig(p) ((p)->uc_mcontext.__gregs[_REG_EPC]) -+# define RFP_sig(p) ((p)->uc_mcontext.__gregs[_REG_S8]) -+# endif - #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) - # if defined(__DragonFly__) - # define XMM_sig(p,i) (((union savefpu*)(p)->uc_mcontext.mc_fpregs)->sv_xmm.sv_xmm[i]) -@@ -200,6 +220,14 @@ class AutoSetHandlingSegFault - # else - # define R15_sig(p) ((p)->uc_mcontext.mc_r15) - # endif -+# if defined(__FreeBSD__) && defined(__aarch64__) -+# define EPC_sig(p) ((p)->uc_mcontext.mc_gpregs.gp_elr) -+# define RFP_sig(p) ((p)->uc_mcontext.mc_gpregs.gp_x[29]) -+# endif -+# if defined(__FreeBSD__) && defined(__mips__) -+# define EPC_sig(p) ((p)->uc_mcontext.mc_pc) -+# define RFP_sig(p) ((p)->uc_mcontext.mc_regs[30]) -+# endif - #elif defined(XP_DARWIN) - # define EIP_sig(p) ((p)->uc_mcontext->__ss.__eip) - # define EBP_sig(p) ((p)->uc_mcontext->__ss.__ebp) Property changes on: head/www/firefox/files/patch-bug1359142 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug1359051 =================================================================== --- head/www/firefox/files/patch-bug1359051 (revision 443535) +++ head/www/firefox/files/patch-bug1359051 (nonexistent) @@ -1,31 +0,0 @@ -commit fe7592e16fcc -Author: Sean Stangl -Date: Mon Apr 24 07:10:58 2017 -0700 - - Bug 1359051 - Define cacheFlush for non-Simulator ARM64 builds. r=tcampbell ---- - js/src/jit/ExecutableAllocator.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git js/src/jit/ExecutableAllocator.h js/src/jit/ExecutableAllocator.h -index 3a42918142ef..570a25ff0dc3 100644 ---- js/src/jit/ExecutableAllocator.h -+++ js/src/jit/ExecutableAllocator.h -@@ -259,7 +259,7 @@ class ExecutableAllocator - { - __clear_cache(code, reinterpret_cast(code) + size); - } --#elif defined(JS_CODEGEN_ARM) && defined(XP_IOS) -+#elif (defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_ARM64)) && defined(XP_IOS) - static void cacheFlush(void* code, size_t size) - { - sys_icache_invalidate(code, size); -@@ -297,7 +297,7 @@ class ExecutableAllocator - : "r0", "r1", "r2"); - } - } --#elif defined(JS_CODEGEN_ARM64) && (defined(__linux__) || defined(ANDROID)) && defined(__GNUC__) -+#elif defined(JS_CODEGEN_ARM64) - static void cacheFlush(void* code, size_t size) - { - vixl::CPU::EnsureIAndDCacheCoherency(code, size); Property changes on: head/www/firefox/files/patch-bug1359051 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/firefox/files/patch-bug847568 =================================================================== --- head/www/firefox/files/patch-bug847568 (revision 443535) +++ head/www/firefox/files/patch-bug847568 (revision 443536) @@ -1,271 +1,271 @@ # Allow building against system-wide graphite2/harfbuzz. diff --git config/Makefile.in config/Makefile.in index e2e11dc0e27e..a6206bb0ff30 100644 --- config/Makefile.in +++ config/Makefile.in @@ -41,6 +41,8 @@ export:: $(export-preqs) $(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \ -DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \ -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ + -DMOZ_SYSTEM_GRAPHITE2=$(MOZ_SYSTEM_GRAPHITE2) \ + -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \ -DMOZ_SYSTEM_HUNSPELL=$(MOZ_SYSTEM_HUNSPELL) \ -DMOZ_SYSTEM_BZ2=$(MOZ_SYSTEM_BZ2) \ -DMOZ_SYSTEM_ZLIB=$(MOZ_SYSTEM_ZLIB) \ diff --git config/system-headers config/system-headers index a0c53c651a3e..5ee7f71f9634 100644 --- config/system-headers +++ config/system-headers @@ -1269,6 +1269,15 @@ libsn/sn-launcher.h libsn/sn-monitor.h libsn/sn-util.h #endif +#if MOZ_SYSTEM_GRAPHITE2==1 +graphite2/Font.h +graphite2/Segment.h +#endif +#if MOZ_SYSTEM_HARFBUZZ==1 +harfbuzz/hb-glib.h +harfbuzz/hb-ot.h +harfbuzz/hb.h +#endif #if MOZ_SYSTEM_HUNSPELL==1 hunspell.hxx #endif diff --git dom/base/moz.build dom/base/moz.build index 8e19020315ae..2fcdbb6f7b42 100644 --- dom/base/moz.build +++ dom/base/moz.build @@ -464,6 +464,9 @@ if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']: if CONFIG['MOZ_X11']: CXXFLAGS += CONFIG['TK_CFLAGS'] +if CONFIG['MOZ_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///;s/Windows.h/windows.h/;" {} \; #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s///;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 @@ -143,6 +143,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 ('gtk2', '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 @@ -753,6 +753,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 ('gtk2', 'gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/thebes/moz.build gfx/thebes/moz.build -index dee9b7bfa2cb..bd801f3a468e 100644 +index 56f1b9fe3f4b..0ac1100b0df3 100644 --- gfx/thebes/moz.build +++ gfx/thebes/moz.build -@@ -273,7 +273,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'): +@@ -269,7 +269,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['CLANG_CXX']: # 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 -@@ -40,4 +40,7 @@ if CONFIG['_MSC_VER']: - if CONFIG['ENABLE_INTL_API']: - USE_LIBS += ['icu'] +@@ -29,4 +29,7 @@ if CONFIG['ENABLE_INTL_API']: + 'ICUUtils.cpp', + ] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + - DIST_INSTALL = True + 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 @@ -69,6 +69,9 @@ LOCAL_INCLUDES += [ '/netwerk/base', ] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['ENABLE_INTL_API']: DEFINES['IDNA2008'] = True USE_LIBS += ['icu'] diff --git old-configure.in old-configure.in index 95a58b634593..b614eef85c89 100644 --- old-configure.in +++ old-configure.in @@ -4888,6 +4888,27 @@ dnl ======================================================== AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR) dnl ======================================================== +dnl Check for graphite2 +dnl ======================================================== +if test -n "$MOZ_SYSTEM_GRAPHITE2"; then + dnl graphite2.pc has bogus version, check manually + _SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS" + AC_TRY_COMPILE([ #include + #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ + ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ + * 100 + GR2_VERSION_BUGFIX >= \ + (major) * 10000 + (minor) * 100 + (bugfix) ) + ], [ -+ #if !GR2_VERSION_REQUIRE(1,3,8) ++ #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 -@@ -228,6 +228,12 @@ if CONFIG['MOZ_SYSTEM_JPEG']: +@@ -224,6 +224,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 -@@ -343,6 +343,26 @@ add_old_configure_assignment('FT2_LIBS', +@@ -356,6 +356,26 @@ add_old_configure_assignment('FT2_LIBS', add_old_configure_assignment('FT2_CFLAGS', delayed_getattr(ft2_info, 'cflags')) +# Graphite2 +# ============================================================== +option('--with-system-graphite2', + help="Use system graphite2 (located with pkgconfig)") + +system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2', + when='--with-system-graphite2') + +set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True)) + +# HarfBuzz +# ============================================================== +option('--with-system-harfbuzz', + help="Use system harfbuzz (located with pkgconfig)") + -+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.1', ++system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.3', + when='--with-system-harfbuzz') + +set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) + # Apple platform decoder support # ============================================================== @depends(toolkit) Index: head/www/firefox/files/patch-rust-option =================================================================== --- head/www/firefox/files/patch-rust-option (nonexistent) +++ head/www/firefox/files/patch-rust-option (revision 443536) @@ -0,0 +1,345 @@ +Revert bug 1284816 and bug 1341967 to postpone bustage on non-x86 archs. + +diff --git browser/confvars.sh browser/confvars.sh +index d8dcd99c2757..740d9d3e5fcf 100755 +--- browser/confvars.sh ++++ browser/confvars.sh +@@ -30,6 +30,7 @@ if test "$OS_ARCH" = "WINNT"; then + fi + fi + ++MOZ_RUST_MP4PARSE=1 + if test "$NIGHTLY_BUILD"; then + MOZ_RUST_URLPARSE=1 + fi +diff --git build/moz.configure/rust.configure build/moz.configure/rust.configure +index 267d989f1597..f709820e60ae 100644 +--- build/moz.configure/rust.configure ++++ build/moz.configure/rust.configure +@@ -4,10 +4,20 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-# Rust is required by `rust_compiler` below. We allow_missing here +-# to propagate failures to the better error message there. +-rustc = check_prog('RUSTC', ['rustc'], allow_missing=True) +-cargo = check_prog('CARGO', ['cargo'], allow_missing=True) ++option('--disable-rust', help='Don\'t include Rust language sources') ++ ++@depends('--enable-rust') ++def rust_compiler_names(value): ++ if value: ++ return ['rustc'] ++ ++@depends('--enable-rust') ++def cargo_binary_names(value): ++ if value: ++ return ['cargo'] ++ ++rustc = check_prog('RUSTC', rust_compiler_names, allow_missing=True) ++cargo = check_prog('CARGO', cargo_binary_names, allow_missing=True) + + @depends_if(rustc) + @checking('rustc version', lambda info: info.version) +@@ -43,9 +53,12 @@ def cargo_info(cargo): + version=Version(version), + ) + +-@depends(rustc_info, cargo_info) ++@depends('--enable-rust', rustc_info, cargo_info) + @imports(_from='textwrap', _import='dedent') +-def rust_compiler(rustc_info, cargo_info): ++def rust_compiler(value, rustc_info, cargo_info): ++ if not value: ++ return None ++ + if not rustc_info: + die(dedent('''\ + Rust compiler not found. +diff --git dom/media/MediaPrefs.h dom/media/MediaPrefs.h +index 4dcc659222a4..559334d89fd1 100644 +--- dom/media/MediaPrefs.h ++++ dom/media/MediaPrefs.h +@@ -165,7 +165,7 @@ private: + DECL_MEDIA_PREF("media.ogg.flac.enabled", FlacInOgg, bool, false); + DECL_MEDIA_PREF("media.flac.enabled", FlacEnabled, bool, true); + +-#if !defined(RELEASE_OR_BETA) ++#if defined(MOZ_RUST_MP4PARSE) && !defined(RELEASE_OR_BETA) + DECL_MEDIA_PREF("media.rust.test_mode", RustTestMode, bool, false); + #endif + +diff --git media/libstagefright/binding/DecoderData.cpp media/libstagefright/binding/DecoderData.cpp +index 109ea329d154..a06e533b1e62 100644 +--- media/libstagefright/binding/DecoderData.cpp ++++ media/libstagefright/binding/DecoderData.cpp +@@ -13,9 +13,11 @@ + #include "mozilla/ArrayUtils.h" + #include "include/ESDS.h" + ++#ifdef MOZ_RUST_MP4PARSE + // OpusDecoder header is really needed only by MP4 in rust + #include "OpusDecoder.h" + #include "mp4parse.h" ++#endif // MOZ_RUST_MP4PARSE + + using namespace stagefright; + +@@ -187,6 +189,7 @@ MP4VideoInfo::Update(const MetaData* aMetaData, const char* aMimeType) + + } + ++#ifdef MOZ_RUST_MP4PARSE + static void + UpdateTrackProtectedInfo(mozilla::TrackInfo& aConfig, + const mp4parse_sinf_info& aSinf) +@@ -266,6 +269,7 @@ MP4VideoInfo::Update(const mp4parse_track_info* track, + mExtraData->AppendElements(video->extra_data.data, video->extra_data.length); + } + } ++#endif // MOZ_RUST_MP4PARSE + + bool + MP4VideoInfo::IsValid() const +diff --git media/libstagefright/binding/MP4Metadata.cpp media/libstagefright/binding/MP4Metadata.cpp +index 5c3810d99a38..5d14dfd8b8a9 100644 +--- media/libstagefright/binding/MP4Metadata.cpp ++++ media/libstagefright/binding/MP4Metadata.cpp +@@ -19,14 +19,18 @@ + #include "mp4_demuxer/MP4Metadata.h" + #include "mp4_demuxer/Stream.h" + #include "MediaPrefs.h" ++#ifdef MOZ_RUST_MP4PARSE + #include "mp4parse.h" ++#endif // MOZ_RUST_MP4PARSE + + #include + #include + #include + + ++#ifdef MOZ_RUST_MP4PARSE + struct FreeMP4Parser { void operator()(mp4parse_parser* aPtr) { mp4parse_free(aPtr); } }; ++#endif // MOZ_RUST_MP4PARSE + + using namespace stagefright; + +@@ -101,6 +103,7 @@ private: + bool mCanSeek; + }; + ++#ifdef MOZ_RUST_MP4PARSE + // Wrap an mp4_demuxer::Stream to remember the read offset. + + class RustStreamAdaptor { +@@ -145,9 +149,11 @@ private: + RustStreamAdaptor mRustSource; + mozilla::UniquePtr mRustParser; + }; ++#endif // MOZ_RUST_MP4PARSE + + MP4Metadata::MP4Metadata(Stream* aSource) + : mStagefright(MakeUnique(aSource)) ++#ifdef MOZ_RUST_MP4PARSE + , mRust(MakeUnique(aSource)) + , mPreferRust(false) + , mReportedAudioTrackTelemetry(false) +@@ -155,6 +161,7 @@ MP4Metadata::MP4Metadata(Stream* aSource) + #ifndef RELEASE_OR_BETA + , mRustTestMode(MediaPrefs::RustTestMode()) + #endif ++#endif // MOZ_RUST_MP4PARSE + { + } + +@@ -186,6 +193,7 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const + { + uint32_t numTracks = mStagefright->GetNumberTracks(aType); + ++#ifdef MOZ_RUST_MP4PARSE + if (!mRust) { + return numTracks; + } +@@ -211,10 +219,12 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const + mPreferRust = true; + return numTracksRust; + } ++#endif // MOZ_RUST_MP4PARSE + + return numTracks; + } + ++#ifdef MOZ_RUST_MP4PARSE + bool MP4Metadata::ShouldPreferRust() const { + if (!mRust) { + return false; +@@ -245,6 +255,7 @@ bool MP4Metadata::ShouldPreferRust() const { + // Otherwise, fall back. + return false; + } ++#endif // MOZ_RUST_MP4PARSE + + mozilla::UniquePtr + MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType, +@@ -253,6 +264,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType, + mozilla::UniquePtr info = + mStagefright->GetTrackInfo(aType, aTrackNumber); + ++#ifdef MOZ_RUST_MP4PARSE + if (!mRust) { + return info; + } +@@ -305,6 +317,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackTyp + if (mPreferRust) { + return infoRust; + } ++#endif // MOZ_RUST_MP4PARSE + + return info; + } +@@ -319,6 +334,7 @@ const CryptoFile& + MP4Metadata::Crypto() const + { + const CryptoFile& crypto = mStagefright->Crypto(); ++#ifdef MOZ_RUST_MP4PARSE + const CryptoFile& rustCrypto = mRust->Crypto(); + + #ifndef RELEASE_OR_BETA +@@ -330,6 +347,7 @@ MP4Metadata::Crypto() const + if (mPreferRust) { + return rustCrypto; + } ++#endif // MOZ_RUST_MP4PARSE + + return crypto; + } +@@ -594,6 +612,7 @@ MP4MetadataStagefright::Metadata(Stream* aSource) + return parser->Metadata(); + } + ++#ifdef MOZ_RUST_MP4PARSE + bool + RustStreamAdaptor::Read(uint8_t* buffer, uintptr_t size, size_t* bytes_read) + { +@@ -859,5 +878,6 @@ MP4MetadataRust::Metadata(Stream* aSource) + MOZ_ASSERT(false, "Not yet implemented"); + return nullptr; + } ++#endif // MOZ_RUST_MP4PARSE + + } // namespace mp4_demuxer +diff --git media/libstagefright/binding/include/mp4_demuxer/DecoderData.h media/libstagefright/binding/include/mp4_demuxer/DecoderData.h +index 3cd4b7c142f4..dc25ddf03b10 100644 +--- media/libstagefright/binding/include/mp4_demuxer/DecoderData.h ++++ media/libstagefright/binding/include/mp4_demuxer/DecoderData.h +@@ -19,11 +19,13 @@ namespace stagefright + class MetaData; + } + ++#ifdef MOZ_RUST_MP4PARSE + extern "C" { + typedef struct mp4parse_track_info mp4parse_track_info; + typedef struct mp4parse_track_audio_info mp4parse_track_audio_info; + typedef struct mp4parse_track_video_info mp4parse_track_video_info; + } ++#endif // MOZ_RUST_MP4PARSE + + namespace mp4_demuxer + { +@@ -71,8 +73,10 @@ public: + void Update(const stagefright::MetaData* aMetaData, + const char* aMimeType); + ++#ifdef MOZ_RUST_MP4PARSE + void Update(const mp4parse_track_info* track, + const mp4parse_track_audio_info* audio); ++#endif // MOZ_RUST_MP4PARSE + + virtual bool IsValid() const override; + }; +@@ -85,8 +89,10 @@ public: + void Update(const stagefright::MetaData* aMetaData, + const char* aMimeType); + ++#ifdef MOZ_RUST_MP4PARSE + void Update(const mp4parse_track_info* track, + const mp4parse_track_video_info* video); ++#endif // MOZ_RUST_MP4PARSE + + virtual bool IsValid() const override; + }; +diff --git media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h +index 492c9c1c1bc3..e16dbbd1155e 100644 +--- media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h ++++ media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h +@@ -36,6 +36,7 @@ public: + + private: + UniquePtr mStagefright; ++#ifdef MOZ_RUST_MP4PARSE + UniquePtr mRust; + mutable bool mPreferRust; + mutable bool mReportedAudioTrackTelemetry; +@@ -44,6 +45,7 @@ private: + mutable bool mRustTestMode; + #endif + bool ShouldPreferRust() const; ++#endif // MOZ_RUST_MP4PARSE + }; + + } // namespace mp4_demuxer +diff --git mobile/android/confvars.sh mobile/android/confvars.sh +index e79b6f5c0707..eb62763acaf7 100644 +--- mobile/android/confvars.sh ++++ mobile/android/confvars.sh +@@ -30,6 +30,8 @@ MOZ_XULRUNNER= + MOZ_CAPTURE=1 + MOZ_RAW=1 + ++MOZ_RUST_MP4PARSE=1 ++ + # use custom widget for html:select + MOZ_USE_NATIVE_POPUP_WINDOWS=1 + +diff --git toolkit/components/telemetry/Histograms.json toolkit/components/telemetry/Histograms.json +index 061c55f6a5b6..e49dfd176952 100644 +--- toolkit/components/telemetry/Histograms.json ++++ toolkit/components/telemetry/Histograms.json +@@ -6996,7 +6996,8 @@ + "expires_in_version": "55", + "kind": "boolean", + "bug_numbers": [1220885], +- "description": "(Bug 1220885) Whether the rust mp4 demuxer successfully parsed a stream segment." ++ "description": "(Bug 1220885) Whether the rust mp4 demuxer successfully parsed a stream segment.", ++ "cpp_guard": "MOZ_RUST_MP4PARSE" + }, + "MEDIA_RUST_MP4PARSE_ERROR_CODE": { + "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"], +@@ -7004,21 +7005,24 @@ + "kind": "enumerated", + "n_values": 32, + "bug_numbers": [1238420], +- "description": "The error code reported when an MP4 parse attempt has failed.0 = OK, 1 = bad argument, 2 = invalid data, 3 = unsupported, 4 = unexpected end of file, 5 = read error." ++ "description": "The error code reported when an MP4 parse attempt has failed.0 = OK, 1 = bad argument, 2 = invalid data, 3 = unsupported, 4 = unexpected end of file, 5 = read error.", ++ "cpp_guard": "MOZ_RUST_MP4PARSE" + }, + "MEDIA_RUST_MP4PARSE_TRACK_MATCH_AUDIO": { + "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"], + "expires_in_version": "55", + "kind": "boolean", + "bug_numbers": [1231169], +- "description": "Whether rust and stagefight mp4 parser audio track results match." ++ "description": "Whether rust and stagefight mp4 parser audio track results match.", ++ "cpp_guard": "MOZ_RUST_MP4PARSE" + }, + "MEDIA_RUST_MP4PARSE_TRACK_MATCH_VIDEO": { + "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"], + "expires_in_version": "55", + "kind": "boolean", + "bug_numbers": [1231169], +- "description": "Whether rust and stagefight mp4 parser video track results match." ++ "description": "Whether rust and stagefight mp4 parser video track results match.", ++ "cpp_guard": "MOZ_RUST_MP4PARSE" + }, + "MEDIA_WMF_DECODE_ERROR": { + "expires_in_version": "55", Property changes on: head/www/firefox/files/patch-rust-option ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/www/firefox-i18n/Makefile =================================================================== --- head/www/firefox-i18n/Makefile (revision 443535) +++ head/www/firefox-i18n/Makefile (revision 443536) @@ -1,89 +1,89 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= firefox-i18n -PORTVERSION= 53.0.3 +PORTVERSION= 54.0 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \ - MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build1/linux-i686/xpi + MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build3/linux-i686/xpi PKGNAMEPREFIX= 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,53,build +USES= zip:infozip gecko:firefox,54,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 .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 '/ Index: head/www/firefox-i18n/distinfo =================================================================== --- head/www/firefox-i18n/distinfo (revision 443535) +++ head/www/firefox-i18n/distinfo (revision 443536) @@ -1,179 +1,179 @@ -TIMESTAMP = 1495100875 -SHA256 (xpi/firefox-i18n-53.0.3/ach.xpi) = e6a116ee56fda449cdd67585161147cb77dd739667131576d95c0aee94e5ad3a -SIZE (xpi/firefox-i18n-53.0.3/ach.xpi) = 432351 -SHA256 (xpi/firefox-i18n-53.0.3/af.xpi) = 1d0084d8373617e25738a7b3462935369a039d56f82f64527ff0415c3db9e3e7 -SIZE (xpi/firefox-i18n-53.0.3/af.xpi) = 441830 -SHA256 (xpi/firefox-i18n-53.0.3/an.xpi) = b0740572e813b2ba281c190c50e8617dbce274ae16607cdb2f06f42a6c1e49af -SIZE (xpi/firefox-i18n-53.0.3/an.xpi) = 450801 -SHA256 (xpi/firefox-i18n-53.0.3/ar.xpi) = 561d8baac858b8b54d34fec81781645a1faf4b75923095380ce3eede566ee4bb -SIZE (xpi/firefox-i18n-53.0.3/ar.xpi) = 479118 -SHA256 (xpi/firefox-i18n-53.0.3/as.xpi) = fc4f5bfc64ab7bcc0776317ed1a52d5f0c6d612f945bf8ae436a797f745a286b -SIZE (xpi/firefox-i18n-53.0.3/as.xpi) = 491256 -SHA256 (xpi/firefox-i18n-53.0.3/ast.xpi) = cc31c6282534e067e6b09491bd8ce86e84b4c46d5c217a1931f029d9e746ff30 -SIZE (xpi/firefox-i18n-53.0.3/ast.xpi) = 445436 -SHA256 (xpi/firefox-i18n-53.0.3/az.xpi) = 9f55b5cb611c95672e90188ba63a1dfcdeec3c7998688821feb0ac7ef435320a -SIZE (xpi/firefox-i18n-53.0.3/az.xpi) = 459504 -SHA256 (xpi/firefox-i18n-53.0.3/bg.xpi) = 6ae5117b4636b74e6aea42271d109a1f295e3c5f2a1c13d935cccfd8e793df25 -SIZE (xpi/firefox-i18n-53.0.3/bg.xpi) = 492609 -SHA256 (xpi/firefox-i18n-53.0.3/bn-BD.xpi) = bbe8e57e339423e88aef9fab8fd186ab3ccdf5bb3ba3828aec4b53db24feace7 -SIZE (xpi/firefox-i18n-53.0.3/bn-BD.xpi) = 516502 -SHA256 (xpi/firefox-i18n-53.0.3/bn-IN.xpi) = 1bd46b57948be279d93b82f253d749e79919654374998ca814258bb8ecdf36bc -SIZE (xpi/firefox-i18n-53.0.3/bn-IN.xpi) = 513553 -SHA256 (xpi/firefox-i18n-53.0.3/br.xpi) = 231a3bc39f30ca1990deccf7da656958755d2639a97e89396eabd19ffb91d444 -SIZE (xpi/firefox-i18n-53.0.3/br.xpi) = 440068 -SHA256 (xpi/firefox-i18n-53.0.3/bs.xpi) = cf14dd3a7cbae9d247ba8ae43bd8449a758266d768315ac27ecaf790a7775a24 -SIZE (xpi/firefox-i18n-53.0.3/bs.xpi) = 446634 -SHA256 (xpi/firefox-i18n-53.0.3/ca.xpi) = 96c7f00088e2c758071d95c79ec474b9d56ef34c7d11c83b62e069e6d0e15d5e -SIZE (xpi/firefox-i18n-53.0.3/ca.xpi) = 448943 -SHA256 (xpi/firefox-i18n-53.0.3/cs.xpi) = fa3281d69c9f2dac9eda8e96157f2b191641852562fb713dd104c94412112e7f -SIZE (xpi/firefox-i18n-53.0.3/cs.xpi) = 449412 -SHA256 (xpi/firefox-i18n-53.0.3/cy.xpi) = 632866f99885ac791216307f403faffdd36782b59ec4d71e5b80239a3f78782b -SIZE (xpi/firefox-i18n-53.0.3/cy.xpi) = 441505 -SHA256 (xpi/firefox-i18n-53.0.3/da.xpi) = 85c1b80c5a0d4f0b0b991963ddff203624486fbfe51c5012ce656f201449fd1d -SIZE (xpi/firefox-i18n-53.0.3/da.xpi) = 428974 -SHA256 (xpi/firefox-i18n-53.0.3/de.xpi) = 4c8a3bfd1c4fb2975d5a8510a0bf1f15eb1d0bedb583aae05254954ae81c65cc -SIZE (xpi/firefox-i18n-53.0.3/de.xpi) = 447785 -SHA256 (xpi/firefox-i18n-53.0.3/dsb.xpi) = fa0e95bb08506b4978bf57829ab12b030ba995fd49fc6ce6800bad20c1de2b6e -SIZE (xpi/firefox-i18n-53.0.3/dsb.xpi) = 464375 -SHA256 (xpi/firefox-i18n-53.0.3/el.xpi) = a647e41baafbf943051c6632092074f6c753c303698aabfba075ef7e131c5ac7 -SIZE (xpi/firefox-i18n-53.0.3/el.xpi) = 523413 -SHA256 (xpi/firefox-i18n-53.0.3/en-GB.xpi) = f1d6a52496f690a5588f7e7ed6e494ba8dbae32fb11a51a27885d442058fd5dc -SIZE (xpi/firefox-i18n-53.0.3/en-GB.xpi) = 424830 -SHA256 (xpi/firefox-i18n-53.0.3/en-US.xpi) = 193c492ac1473bc3c776d6eb36672eaaa10846882d71222d5bb0ae93eeaec72b -SIZE (xpi/firefox-i18n-53.0.3/en-US.xpi) = 430736 -SHA256 (xpi/firefox-i18n-53.0.3/en-ZA.xpi) = 06fbcdacf39b7230c6ae7f97a6b11d61c649f0db5a48539cf7ac8da194bcfe86 -SIZE (xpi/firefox-i18n-53.0.3/en-ZA.xpi) = 417992 -SHA256 (xpi/firefox-i18n-53.0.3/eo.xpi) = 8d65c14c9946b82f3de6f06ddce3ffca2b8eccf6f8c114c77de5f37fe090c851 -SIZE (xpi/firefox-i18n-53.0.3/eo.xpi) = 442323 -SHA256 (xpi/firefox-i18n-53.0.3/es-AR.xpi) = 1cef38483eab7bad50f814e854fd78b3aae5e94a4fdf886610d0a874c8a3c5c3 -SIZE (xpi/firefox-i18n-53.0.3/es-AR.xpi) = 450768 -SHA256 (xpi/firefox-i18n-53.0.3/es-CL.xpi) = 68f738ae30690751e37d290ff4dc45d6464e659c3c24dd95077e44d5e70af42f -SIZE (xpi/firefox-i18n-53.0.3/es-CL.xpi) = 450477 -SHA256 (xpi/firefox-i18n-53.0.3/es-ES.xpi) = 4b47102f9fc36e651d7501d94e36da372e7e71fd89eed8c13b0b39c64e645a04 -SIZE (xpi/firefox-i18n-53.0.3/es-ES.xpi) = 347589 -SHA256 (xpi/firefox-i18n-53.0.3/es-MX.xpi) = 31992fc3284854d2ecd15c8c05ece2e6912ce8db48a41cab13249604fd0033d9 -SIZE (xpi/firefox-i18n-53.0.3/es-MX.xpi) = 453326 -SHA256 (xpi/firefox-i18n-53.0.3/et.xpi) = c3d9c9f96826712ef327ba273e43bb628e6f1cfb751ff12719d1be659e3c8c7f -SIZE (xpi/firefox-i18n-53.0.3/et.xpi) = 428865 -SHA256 (xpi/firefox-i18n-53.0.3/eu.xpi) = 81481d249ac98833e51b0d847f8fb4091dac80b1ca613303f0067d3b0ae9b677 -SIZE (xpi/firefox-i18n-53.0.3/eu.xpi) = 443204 -SHA256 (xpi/firefox-i18n-53.0.3/fa.xpi) = 88f5a080963cc08d56812683636e8b939c649028822a6c6ff1a2acf7d15254fd -SIZE (xpi/firefox-i18n-53.0.3/fa.xpi) = 496782 -SHA256 (xpi/firefox-i18n-53.0.3/ff.xpi) = 4d335479465769e31ab9d315d1be373da2306b78370a2ca61929f1dce746cd1b -SIZE (xpi/firefox-i18n-53.0.3/ff.xpi) = 446670 -SHA256 (xpi/firefox-i18n-53.0.3/fi.xpi) = 62970f8b0bde16afdb29067887c74ed00bc74d317621335683243a780d30d29d -SIZE (xpi/firefox-i18n-53.0.3/fi.xpi) = 434622 -SHA256 (xpi/firefox-i18n-53.0.3/fr.xpi) = f593570f85f3aed79f99038f93447e41a28f025c5233d75a0b8ca232fcdeec3a -SIZE (xpi/firefox-i18n-53.0.3/fr.xpi) = 457535 -SHA256 (xpi/firefox-i18n-53.0.3/fy-NL.xpi) = dc0e43045727efa78a152ac0398196540cc17e1bd7c450c43a71484131f82701 -SIZE (xpi/firefox-i18n-53.0.3/fy-NL.xpi) = 449823 -SHA256 (xpi/firefox-i18n-53.0.3/ga-IE.xpi) = 04e1a50f8030162244523f92d9cf0ba7a195ba742d292c64b78c88fc983b7584 -SIZE (xpi/firefox-i18n-53.0.3/ga-IE.xpi) = 463130 -SHA256 (xpi/firefox-i18n-53.0.3/gd.xpi) = 0d1890182a95cd2adcba8ed965e0553821d6a9597f577a1197bdcedd855aaad1 -SIZE (xpi/firefox-i18n-53.0.3/gd.xpi) = 452062 -SHA256 (xpi/firefox-i18n-53.0.3/gl.xpi) = acf0716f7f771d73cb21055428128d9498d633fda7763c3db9d427e8ba6e4243 -SIZE (xpi/firefox-i18n-53.0.3/gl.xpi) = 449152 -SHA256 (xpi/firefox-i18n-53.0.3/gn.xpi) = a115f95820f4d653053fec02b1c1400ab957a819722d5a29951aa1407c2024f1 -SIZE (xpi/firefox-i18n-53.0.3/gn.xpi) = 461573 -SHA256 (xpi/firefox-i18n-53.0.3/gu-IN.xpi) = a62119d72e4f8e4b3f00a429ac0028fe6ca53f1294ae2089415ef2050c7f87a6 -SIZE (xpi/firefox-i18n-53.0.3/gu-IN.xpi) = 493672 -SHA256 (xpi/firefox-i18n-53.0.3/he.xpi) = 263d142979b67853d37f60ab29f984b8e14a0609a6dd85da927383d9301e5499 -SIZE (xpi/firefox-i18n-53.0.3/he.xpi) = 460050 -SHA256 (xpi/firefox-i18n-53.0.3/hi-IN.xpi) = 2a450c9aaf941ba8f9c0ec12354529f3dfb47d9de66685066634fd2e5359cfea -SIZE (xpi/firefox-i18n-53.0.3/hi-IN.xpi) = 511788 -SHA256 (xpi/firefox-i18n-53.0.3/hr.xpi) = e931cbf3ace412f860dcc7e0b14d862459f0c54e6f8abffa83825645910f11e7 -SIZE (xpi/firefox-i18n-53.0.3/hr.xpi) = 453110 -SHA256 (xpi/firefox-i18n-53.0.3/hsb.xpi) = 9663469370dc0a6ed450bf4061f0bd491e7766740aafbbc79057534ac319967e -SIZE (xpi/firefox-i18n-53.0.3/hsb.xpi) = 462173 -SHA256 (xpi/firefox-i18n-53.0.3/hu.xpi) = fc28470f937ab701a6262425a01e725d1c12e9fd5045750019608f00434ba93b -SIZE (xpi/firefox-i18n-53.0.3/hu.xpi) = 456925 -SHA256 (xpi/firefox-i18n-53.0.3/hy-AM.xpi) = eec34716ad97a2fe2a1a8449c4f450aef326c2d13b75ec571dacfedae918ee5d -SIZE (xpi/firefox-i18n-53.0.3/hy-AM.xpi) = 500718 -SHA256 (xpi/firefox-i18n-53.0.3/id.xpi) = 25df7f7d38327e8ff8388d9588ebf29423723f76f99b890db8d41c0d6dc6655d -SIZE (xpi/firefox-i18n-53.0.3/id.xpi) = 430281 -SHA256 (xpi/firefox-i18n-53.0.3/is.xpi) = d929734bc994f3b20f7c8cbd4e25d98d9081afd63af81e6fd5318688e6b57eac -SIZE (xpi/firefox-i18n-53.0.3/is.xpi) = 447332 -SHA256 (xpi/firefox-i18n-53.0.3/it.xpi) = 4f8a8855b2680e8bc2323727d3a2d7aab0cdd9f718b1cfd3586f6b93430f88cf -SIZE (xpi/firefox-i18n-53.0.3/it.xpi) = 341969 -SHA256 (xpi/firefox-i18n-53.0.3/ja.xpi) = fd7aa5fa31bf8160ae1bba834bdf43129c14978cacc775d3625bc42555844f2e -SIZE (xpi/firefox-i18n-53.0.3/ja.xpi) = 493029 -SHA256 (xpi/firefox-i18n-53.0.3/kk.xpi) = 085d618e649720ab7a8649f4b5ad0e576aa5dbefee4ae0f23480f19b8dc48ca2 -SIZE (xpi/firefox-i18n-53.0.3/kk.xpi) = 499341 -SHA256 (xpi/firefox-i18n-53.0.3/km.xpi) = d2c3dcede1bd71d85877b8f9b4b6e300275baa9e9f266d65066ed49ffd970fe1 -SIZE (xpi/firefox-i18n-53.0.3/km.xpi) = 524729 -SHA256 (xpi/firefox-i18n-53.0.3/kn.xpi) = fad69dedf7db8d0ba39209dbb4a6e759c60e541c253101ec67b288cb2fed9ceb -SIZE (xpi/firefox-i18n-53.0.3/kn.xpi) = 524037 -SHA256 (xpi/firefox-i18n-53.0.3/ko.xpi) = 7f0b62d524629a037505f8deb1e400c3da5fccf78c0de975655f973e79231285 -SIZE (xpi/firefox-i18n-53.0.3/ko.xpi) = 468653 -SHA256 (xpi/firefox-i18n-53.0.3/lij.xpi) = 54454c19503de03176a98e7a9c1bae14bdc40886bb730b7f26e7b0d38d92a971 -SIZE (xpi/firefox-i18n-53.0.3/lij.xpi) = 435430 -SHA256 (xpi/firefox-i18n-53.0.3/lt.xpi) = 1861bc9a195ea3b0319a8c1b8b664fe1e4b5e007ebdfa4f7d1784631da2f8c0f -SIZE (xpi/firefox-i18n-53.0.3/lt.xpi) = 457034 -SHA256 (xpi/firefox-i18n-53.0.3/lv.xpi) = c00e2a8254107817c1f2d27947bc91755629fa734035099693c04a7ff9065d90 -SIZE (xpi/firefox-i18n-53.0.3/lv.xpi) = 453378 -SHA256 (xpi/firefox-i18n-53.0.3/mai.xpi) = 25665e8c4a73180dca5c6b271c4d89b8a800261b019ff2728a61954af10f5de4 -SIZE (xpi/firefox-i18n-53.0.3/mai.xpi) = 504302 -SHA256 (xpi/firefox-i18n-53.0.3/mk.xpi) = 78868c7546daa620f186c72c84f51d1ff30fb007e3b3dba4dfc194c109525682 -SIZE (xpi/firefox-i18n-53.0.3/mk.xpi) = 499956 -SHA256 (xpi/firefox-i18n-53.0.3/ml.xpi) = 857d6e655c21deef2c0b1010d911c420175e914ec2793239e27b849939f388e2 -SIZE (xpi/firefox-i18n-53.0.3/ml.xpi) = 520667 -SHA256 (xpi/firefox-i18n-53.0.3/mr.xpi) = 56367d182c2815d059c41bbac11825a0b7c72b9b30a5adb57863c42a97fb6624 -SIZE (xpi/firefox-i18n-53.0.3/mr.xpi) = 507882 -SHA256 (xpi/firefox-i18n-53.0.3/ms.xpi) = 4ceb5646daa509065fa5de098600d4b60160052240772d33cef78f8b6a34e697 -SIZE (xpi/firefox-i18n-53.0.3/ms.xpi) = 440728 -SHA256 (xpi/firefox-i18n-53.0.3/nb-NO.xpi) = b812e5b4f681d38dd6ea9a707ce5297e79f25d7216f4436ec22ec580f0880b6e -SIZE (xpi/firefox-i18n-53.0.3/nb-NO.xpi) = 439033 -SHA256 (xpi/firefox-i18n-53.0.3/nl.xpi) = abd34f2c16841f9a6159b4f6de967ea19f1920b941f89802ab8c34347a073932 -SIZE (xpi/firefox-i18n-53.0.3/nl.xpi) = 436860 -SHA256 (xpi/firefox-i18n-53.0.3/nn-NO.xpi) = e42e3197753f83bbda085fad8f7b1582ccc0af48a9b4189f8987d8314ddc7e38 -SIZE (xpi/firefox-i18n-53.0.3/nn-NO.xpi) = 433329 -SHA256 (xpi/firefox-i18n-53.0.3/or.xpi) = 7bdc757b4d74430d0821e6e3cfe6ae252655fa7c1f82478a1140b32d794f5f60 -SIZE (xpi/firefox-i18n-53.0.3/or.xpi) = 501208 -SHA256 (xpi/firefox-i18n-53.0.3/pa-IN.xpi) = a6a94c7bf40c3d50112284c704bec10db14997913d5696b700b78b7e5c7bbc01 -SIZE (xpi/firefox-i18n-53.0.3/pa-IN.xpi) = 480864 -SHA256 (xpi/firefox-i18n-53.0.3/pl.xpi) = d7091eb558474f63d12ac1e182d397c708264f0465444d5bbe06340461409621 -SIZE (xpi/firefox-i18n-53.0.3/pl.xpi) = 354949 -SHA256 (xpi/firefox-i18n-53.0.3/pt-BR.xpi) = 34297b6aff54b29803c2c534fc31405cbc5a34a0ebaa1e2bd5be01674dec0355 -SIZE (xpi/firefox-i18n-53.0.3/pt-BR.xpi) = 442708 -SHA256 (xpi/firefox-i18n-53.0.3/pt-PT.xpi) = b7fd92c3e4bb7425457d1de0a4d0944766635bb984e6d31104704160e465c3d1 -SIZE (xpi/firefox-i18n-53.0.3/pt-PT.xpi) = 441599 -SHA256 (xpi/firefox-i18n-53.0.3/rm.xpi) = 02c74fc48145cc3b40d06c94210313b7f24975b45bab9aa877b392bf932713bc -SIZE (xpi/firefox-i18n-53.0.3/rm.xpi) = 439749 -SHA256 (xpi/firefox-i18n-53.0.3/ro.xpi) = 9d0dc4348d0290b5308cfb3dc2e15583188ed457e5ea3e82e08974eac998519e -SIZE (xpi/firefox-i18n-53.0.3/ro.xpi) = 454823 -SHA256 (xpi/firefox-i18n-53.0.3/ru.xpi) = 51d9943f124ca27928bd2812873b234715b038f2b1cd89cbc1faf9daee0dd0c8 -SIZE (xpi/firefox-i18n-53.0.3/ru.xpi) = 506894 -SHA256 (xpi/firefox-i18n-53.0.3/si.xpi) = 9b20181adeaf5e8a81f0014612d280b80d2d43b9c3da28b45fa2d94c5c16d3d6 -SIZE (xpi/firefox-i18n-53.0.3/si.xpi) = 496183 -SHA256 (xpi/firefox-i18n-53.0.3/sk.xpi) = 3d394c7bcc143c59fb9bebc8309f8ddd4c13ca35fd44400957729b9146b99879 -SIZE (xpi/firefox-i18n-53.0.3/sk.xpi) = 460859 -SHA256 (xpi/firefox-i18n-53.0.3/sl.xpi) = 3f328c63bb70243cc2e74a6a4403f8755354c7b85f6ae87a74853de037a69a26 -SIZE (xpi/firefox-i18n-53.0.3/sl.xpi) = 438369 -SHA256 (xpi/firefox-i18n-53.0.3/son.xpi) = beffa4c7fc7387a04fef9d96ad1cba47c4a4545e6f25d2826c96b11d1dbd8d36 -SIZE (xpi/firefox-i18n-53.0.3/son.xpi) = 439834 -SHA256 (xpi/firefox-i18n-53.0.3/sq.xpi) = e7ba6289dd07bc11df9481bcb6dcf9159a84f163efec5ae92d25a294ef1f6cde -SIZE (xpi/firefox-i18n-53.0.3/sq.xpi) = 453422 -SHA256 (xpi/firefox-i18n-53.0.3/sr.xpi) = 5fa121ca8cf3c8eab17332c9f43bd94414190ccd2827fe51b68946ed04856e77 -SIZE (xpi/firefox-i18n-53.0.3/sr.xpi) = 467997 -SHA256 (xpi/firefox-i18n-53.0.3/sv-SE.xpi) = 71949c2ebf794037b8bf4bd2452a8aaa72f603012fec0a921aead50eae2ef27a -SIZE (xpi/firefox-i18n-53.0.3/sv-SE.xpi) = 445795 -SHA256 (xpi/firefox-i18n-53.0.3/ta.xpi) = 391a6d7622d216673e5f2cf6391724ceecb257aac6089ab290dab510bb5ff92a -SIZE (xpi/firefox-i18n-53.0.3/ta.xpi) = 500480 -SHA256 (xpi/firefox-i18n-53.0.3/te.xpi) = a80e1c178f1d27f2a551665faaab48445fab20238212ae5c0dce9b9cacc1247b -SIZE (xpi/firefox-i18n-53.0.3/te.xpi) = 520475 -SHA256 (xpi/firefox-i18n-53.0.3/th.xpi) = 6357bdc635568f52b9c03b8785b4cf86b656fae69d2393ea7b53fc87360803c5 -SIZE (xpi/firefox-i18n-53.0.3/th.xpi) = 494087 -SHA256 (xpi/firefox-i18n-53.0.3/tr.xpi) = 12e9663e2a591de9b4eba5d689f25ff98e2db45781ada5877d8d21f093800eae -SIZE (xpi/firefox-i18n-53.0.3/tr.xpi) = 445852 -SHA256 (xpi/firefox-i18n-53.0.3/uk.xpi) = 966d51bd93cf4b53721357770fca2c4bbe064a067bc044b1ba0e269213b442a5 -SIZE (xpi/firefox-i18n-53.0.3/uk.xpi) = 497432 -SHA256 (xpi/firefox-i18n-53.0.3/uz.xpi) = 90d44b439af4204fb022e99e045540268d8ac078470e7a7d756671161d79d5db -SIZE (xpi/firefox-i18n-53.0.3/uz.xpi) = 453391 -SHA256 (xpi/firefox-i18n-53.0.3/vi.xpi) = cc67e32dc6aa0f36827e4a9f156b8476950cc876bbbd9668e7f928dc7c90aa9b -SIZE (xpi/firefox-i18n-53.0.3/vi.xpi) = 455841 -SHA256 (xpi/firefox-i18n-53.0.3/xh.xpi) = fceffdd06821fc224e5a7118e54f4ac14d73b175784f654646791878899ea385 -SIZE (xpi/firefox-i18n-53.0.3/xh.xpi) = 446171 -SHA256 (xpi/firefox-i18n-53.0.3/zh-CN.xpi) = befcbbe52e769631c3792555e4e579684762c719696fb4c0e0d48a98e4a5d599 -SIZE (xpi/firefox-i18n-53.0.3/zh-CN.xpi) = 463955 -SHA256 (xpi/firefox-i18n-53.0.3/zh-TW.xpi) = 32e697c5f5188085fc1bf08216ca8d562cd2c286ece23e61d9a6359ff6e78061 -SIZE (xpi/firefox-i18n-53.0.3/zh-TW.xpi) = 474982 +TIMESTAMP = 1496961575 +SHA256 (xpi/firefox-i18n-54.0/ach.xpi) = 7f783745298e65c347f39576d7f4da212d9adbba7fef8e90bd0038af906b4f31 +SIZE (xpi/firefox-i18n-54.0/ach.xpi) = 426784 +SHA256 (xpi/firefox-i18n-54.0/af.xpi) = 8f21ffd7cd10fd05c738a8bd7bf6b4d2f6ff12510385055bc3d81ceb7f0af882 +SIZE (xpi/firefox-i18n-54.0/af.xpi) = 436584 +SHA256 (xpi/firefox-i18n-54.0/an.xpi) = 1d315794e2cb960ea6c2eadca06ddfadd657eb85497f3b294837d1ff6b1da2da +SIZE (xpi/firefox-i18n-54.0/an.xpi) = 445342 +SHA256 (xpi/firefox-i18n-54.0/ar.xpi) = 6292715c142f1be1254f643fe4a75c17539bb4b075bfc3d38b3a1e74dee4753c +SIZE (xpi/firefox-i18n-54.0/ar.xpi) = 473123 +SHA256 (xpi/firefox-i18n-54.0/as.xpi) = f51af18c50e6a167127f702356adc5de6c6d05f732c139b255888349fbeb647e +SIZE (xpi/firefox-i18n-54.0/as.xpi) = 484170 +SHA256 (xpi/firefox-i18n-54.0/ast.xpi) = 40fad9c18ba04550705eb8edad2b0335314613a70ab529f79d003ead0e6e086c +SIZE (xpi/firefox-i18n-54.0/ast.xpi) = 440269 +SHA256 (xpi/firefox-i18n-54.0/az.xpi) = 451b7c74701d02232623b577270b1df32c0651215484bc22213dcb303972634a +SIZE (xpi/firefox-i18n-54.0/az.xpi) = 454242 +SHA256 (xpi/firefox-i18n-54.0/bg.xpi) = 4502e3f5cc05a3f21a4dc51370fcf5f2f895f28bb3af9e1046f62ea6963fdd14 +SIZE (xpi/firefox-i18n-54.0/bg.xpi) = 485834 +SHA256 (xpi/firefox-i18n-54.0/bn-BD.xpi) = e53170b49837a6d50ac01a9c66117911aa70af80a8c5f6a27e9c7b54c608e25c +SIZE (xpi/firefox-i18n-54.0/bn-BD.xpi) = 508866 +SHA256 (xpi/firefox-i18n-54.0/bn-IN.xpi) = 4b5bdfca1440d6b6bd32ada162d0434ad1f1ad29b4b6862a9d04e70fc435d821 +SIZE (xpi/firefox-i18n-54.0/bn-IN.xpi) = 506163 +SHA256 (xpi/firefox-i18n-54.0/br.xpi) = b53d4a2f4006ba6c10d169cb8e22ae3477f67b2ae5de0f42f3cf59dbe977136a +SIZE (xpi/firefox-i18n-54.0/br.xpi) = 434371 +SHA256 (xpi/firefox-i18n-54.0/bs.xpi) = e90f46df8efe339966cdba9779fb10489c2a85eabeab888c59360e67d9b44283 +SIZE (xpi/firefox-i18n-54.0/bs.xpi) = 441130 +SHA256 (xpi/firefox-i18n-54.0/ca.xpi) = 297fe08327c58e76beced92ef3d99662e616cff4f13b48f4a88fae010488cffa +SIZE (xpi/firefox-i18n-54.0/ca.xpi) = 443025 +SHA256 (xpi/firefox-i18n-54.0/cs.xpi) = ac29ec8e63bb16482cdcf868f879aa91d9f896766d7ad799ed20eed0b6fca054 +SIZE (xpi/firefox-i18n-54.0/cs.xpi) = 443928 +SHA256 (xpi/firefox-i18n-54.0/cy.xpi) = 7181795e00673ed6a47a08f7823c9ff08060be9db32f7a2be8990aa87a2eb9f8 +SIZE (xpi/firefox-i18n-54.0/cy.xpi) = 436309 +SHA256 (xpi/firefox-i18n-54.0/da.xpi) = 56778ce556670dffd2d5baf1396e991b19cba494bb30c4a6f82ed2b78c52cf36 +SIZE (xpi/firefox-i18n-54.0/da.xpi) = 423764 +SHA256 (xpi/firefox-i18n-54.0/de.xpi) = 44775ef605e4d57c41eed99613d2eae2b9d0e53c642be91a90ebf8f43d0eb50a +SIZE (xpi/firefox-i18n-54.0/de.xpi) = 442813 +SHA256 (xpi/firefox-i18n-54.0/dsb.xpi) = 95ed7b67a85bc1e937db3c1bf8a9041697bf8cadf90a2533a60cf40b9305080d +SIZE (xpi/firefox-i18n-54.0/dsb.xpi) = 458687 +SHA256 (xpi/firefox-i18n-54.0/el.xpi) = 6bb35d24d1262b65f5a1d39d0f629ce51202197ae5585d708750d243083da869 +SIZE (xpi/firefox-i18n-54.0/el.xpi) = 511227 +SHA256 (xpi/firefox-i18n-54.0/en-GB.xpi) = b33babbb6bfbf6d740158bdc576b4f1d8c3fdd4d8fb23aa2f0cdc1fe9051b179 +SIZE (xpi/firefox-i18n-54.0/en-GB.xpi) = 419544 +SHA256 (xpi/firefox-i18n-54.0/en-US.xpi) = 0b03dac051a6a82165882106094e1bfa0ba9f6b31f17f033575dd9683cc032a9 +SIZE (xpi/firefox-i18n-54.0/en-US.xpi) = 425756 +SHA256 (xpi/firefox-i18n-54.0/en-ZA.xpi) = 406e1109a9eb58c5c10fbcd329414ab731900c98199d0873e7cfd4a321e0e878 +SIZE (xpi/firefox-i18n-54.0/en-ZA.xpi) = 413430 +SHA256 (xpi/firefox-i18n-54.0/eo.xpi) = e02532f575b2fca711119812e733c657c5456993d4f046fed88cdf88d88443d6 +SIZE (xpi/firefox-i18n-54.0/eo.xpi) = 437025 +SHA256 (xpi/firefox-i18n-54.0/es-AR.xpi) = ad52c7efdf58d8a690c7db4d1cb19c5d5ac1bfd435ade9eff6125ba129bd257b +SIZE (xpi/firefox-i18n-54.0/es-AR.xpi) = 445557 +SHA256 (xpi/firefox-i18n-54.0/es-CL.xpi) = 55fcffd87b1b481b86f5cbfe3415241b69eb384a296a59e8a47cc009841fb0cd +SIZE (xpi/firefox-i18n-54.0/es-CL.xpi) = 445583 +SHA256 (xpi/firefox-i18n-54.0/es-ES.xpi) = 925cb493c9a773b3b90de7adaa8adaecc0ac416dcfc0dfcfa7bbe631d5d89d9c +SIZE (xpi/firefox-i18n-54.0/es-ES.xpi) = 341279 +SHA256 (xpi/firefox-i18n-54.0/es-MX.xpi) = 0433d137dcd0efb5372623f091c5dd6214cff27b39d1e2717957881c41a288fb +SIZE (xpi/firefox-i18n-54.0/es-MX.xpi) = 447975 +SHA256 (xpi/firefox-i18n-54.0/et.xpi) = 10f27527f61337929a89caa36a5680839e4d9b446fc3098db921747778e1c663 +SIZE (xpi/firefox-i18n-54.0/et.xpi) = 423853 +SHA256 (xpi/firefox-i18n-54.0/eu.xpi) = a90e8bc05e12809763efc89b36d8b141d979b7a243ddd666495ea69c5b7ca969 +SIZE (xpi/firefox-i18n-54.0/eu.xpi) = 438024 +SHA256 (xpi/firefox-i18n-54.0/fa.xpi) = 0722a962e8e96db6fdc0272ed95bc76396c040eac60ea19b846b4e913a879e42 +SIZE (xpi/firefox-i18n-54.0/fa.xpi) = 490359 +SHA256 (xpi/firefox-i18n-54.0/ff.xpi) = bd29a7aef898c7f784682a6dc7832d7464f3dea7a44a1a3bf06e826996b6c938 +SIZE (xpi/firefox-i18n-54.0/ff.xpi) = 441538 +SHA256 (xpi/firefox-i18n-54.0/fi.xpi) = 481b6a5c9526622f2e2deec64a671146d8085bf22c9e43d54ed0ae3a5c1560a8 +SIZE (xpi/firefox-i18n-54.0/fi.xpi) = 428996 +SHA256 (xpi/firefox-i18n-54.0/fr.xpi) = daff81d6ca8bc10a2577461b64454cb8d9ddf4c64672ef131bee614d13a157c8 +SIZE (xpi/firefox-i18n-54.0/fr.xpi) = 451594 +SHA256 (xpi/firefox-i18n-54.0/fy-NL.xpi) = c51621608972a81f032bbbfaab0a7f203201c3c7eae5ad5237733db5b133252a +SIZE (xpi/firefox-i18n-54.0/fy-NL.xpi) = 444472 +SHA256 (xpi/firefox-i18n-54.0/ga-IE.xpi) = 021a86749b08b16ef6c2812a280675703f72a696112caa65172370b00a0acb0a +SIZE (xpi/firefox-i18n-54.0/ga-IE.xpi) = 457482 +SHA256 (xpi/firefox-i18n-54.0/gd.xpi) = ca7601a3b8c20477072681af474958af447c0e771bd15a796212d58bcbaccd70 +SIZE (xpi/firefox-i18n-54.0/gd.xpi) = 446083 +SHA256 (xpi/firefox-i18n-54.0/gl.xpi) = eef6b1e2f5889799a9ca4f42ffc9a5943b1b7a3e0aff6d2b679f3845afdf0686 +SIZE (xpi/firefox-i18n-54.0/gl.xpi) = 443275 +SHA256 (xpi/firefox-i18n-54.0/gn.xpi) = 965632ef1b87528cec4b22d21340a938b86554c63187dc062c14b295ee04b976 +SIZE (xpi/firefox-i18n-54.0/gn.xpi) = 456066 +SHA256 (xpi/firefox-i18n-54.0/gu-IN.xpi) = 2d89112472e65ad8801393aab669e7ccbcc83a54205113f5f00dcccf3ed46789 +SIZE (xpi/firefox-i18n-54.0/gu-IN.xpi) = 487117 +SHA256 (xpi/firefox-i18n-54.0/he.xpi) = 769e7c50cea5e8bd1d3214c1c0c509ab7f6edeee19e587846fc1b9905eb82404 +SIZE (xpi/firefox-i18n-54.0/he.xpi) = 454286 +SHA256 (xpi/firefox-i18n-54.0/hi-IN.xpi) = 45069a5493735e4b8856c1f34c00d543b11405aec9eb6744e861035fc5e6e315 +SIZE (xpi/firefox-i18n-54.0/hi-IN.xpi) = 504631 +SHA256 (xpi/firefox-i18n-54.0/hr.xpi) = 7555bbbf2e060acbdb2538b12c857743a7abbc5e3ca0a3a868545f61698a5f5d +SIZE (xpi/firefox-i18n-54.0/hr.xpi) = 447779 +SHA256 (xpi/firefox-i18n-54.0/hsb.xpi) = 4bb60b51acac017c3c3cc0524182a6d791acba8b5a9601d78fa1d882acbd5258 +SIZE (xpi/firefox-i18n-54.0/hsb.xpi) = 456525 +SHA256 (xpi/firefox-i18n-54.0/hu.xpi) = 59eeef5917e20a80d76f3fcfb73fbce6f1fabaf3856eb76c42084831d095bf4f +SIZE (xpi/firefox-i18n-54.0/hu.xpi) = 451119 +SHA256 (xpi/firefox-i18n-54.0/hy-AM.xpi) = 08cd87b9bd9ec8962be05fd183dc81c88cd869a316a78e37f4349423bf637e1c +SIZE (xpi/firefox-i18n-54.0/hy-AM.xpi) = 496019 +SHA256 (xpi/firefox-i18n-54.0/id.xpi) = e90873350cc4629e6291059f347c13c494b087b02d24c71978f7dcb55a4cebc3 +SIZE (xpi/firefox-i18n-54.0/id.xpi) = 425282 +SHA256 (xpi/firefox-i18n-54.0/is.xpi) = 85f8e6b62f8f095eb5aadd53297b00156db484bacbbfa8cfc8e9858ca9b97a5c +SIZE (xpi/firefox-i18n-54.0/is.xpi) = 441707 +SHA256 (xpi/firefox-i18n-54.0/it.xpi) = 2c4a202e18abb9a6ca440b7a1c95dd702644f4146b5c5e6ed01fbbd2ebb7d4d2 +SIZE (xpi/firefox-i18n-54.0/it.xpi) = 335499 +SHA256 (xpi/firefox-i18n-54.0/ja.xpi) = 9a2a44a59a3baebfdba32a6acce42a9d0e191b510d8b85a63dd4b8df80fff935 +SIZE (xpi/firefox-i18n-54.0/ja.xpi) = 486805 +SHA256 (xpi/firefox-i18n-54.0/kk.xpi) = 1aebc18f5eaa33119c04d573b2292a4879398798c7e1e13a27bb06204df81236 +SIZE (xpi/firefox-i18n-54.0/kk.xpi) = 493047 +SHA256 (xpi/firefox-i18n-54.0/km.xpi) = cc763200afaf9dc8ea905df9cece16107b9de18ad287ac649cba2d5f49f5f0d3 +SIZE (xpi/firefox-i18n-54.0/km.xpi) = 517239 +SHA256 (xpi/firefox-i18n-54.0/kn.xpi) = d0f50369a6ac5da6ea463c4aef2923f3a9ee6b7ef7c456ef98a6219a54cf60d0 +SIZE (xpi/firefox-i18n-54.0/kn.xpi) = 516491 +SHA256 (xpi/firefox-i18n-54.0/ko.xpi) = 37a44a4e8bfebe5dd1f1bef894606176aa993c1d68b4b062dc0315d10ac16e64 +SIZE (xpi/firefox-i18n-54.0/ko.xpi) = 460422 +SHA256 (xpi/firefox-i18n-54.0/lij.xpi) = 3a7933758f05dfaed5f8ef3db85f2a24542346f766b6606b54d44992ee450645 +SIZE (xpi/firefox-i18n-54.0/lij.xpi) = 431673 +SHA256 (xpi/firefox-i18n-54.0/lt.xpi) = 355d7ac647cfa17ab2ca89e5429f98f5da0983e9a060c6f6e9cc17c8d9eb2dc2 +SIZE (xpi/firefox-i18n-54.0/lt.xpi) = 451193 +SHA256 (xpi/firefox-i18n-54.0/lv.xpi) = 69ee0ea0b565e923e738268341f25b3529dd99f9366cbd00abeab695eaa0d1a0 +SIZE (xpi/firefox-i18n-54.0/lv.xpi) = 447752 +SHA256 (xpi/firefox-i18n-54.0/mai.xpi) = cd475bcd0aa8bb981804cd6eb3365ba9187029ea70e1f1c96d5dde1c3ae7b980 +SIZE (xpi/firefox-i18n-54.0/mai.xpi) = 497011 +SHA256 (xpi/firefox-i18n-54.0/mk.xpi) = 377294d926f09e59667f2acf0ac867f3fc1f12668f320f448b672109eab99d01 +SIZE (xpi/firefox-i18n-54.0/mk.xpi) = 493117 +SHA256 (xpi/firefox-i18n-54.0/ml.xpi) = cb110e4a1b55a190a875e00bc08efabf9d52228c9ab12238c771af2157d414f2 +SIZE (xpi/firefox-i18n-54.0/ml.xpi) = 512264 +SHA256 (xpi/firefox-i18n-54.0/mr.xpi) = 64d18d7927d4bfae2ffaddb559ad5e74b642e72dabc3cb60052804807891b015 +SIZE (xpi/firefox-i18n-54.0/mr.xpi) = 501033 +SHA256 (xpi/firefox-i18n-54.0/ms.xpi) = 5950945e46e21891ab53f3bf5828888f132a056ffe5933a1acae94c031139015 +SIZE (xpi/firefox-i18n-54.0/ms.xpi) = 435500 +SHA256 (xpi/firefox-i18n-54.0/nb-NO.xpi) = efafebc209ef2d81e09ddc36809071064ab0ce2cbbed77adb621341d9d66962c +SIZE (xpi/firefox-i18n-54.0/nb-NO.xpi) = 433680 +SHA256 (xpi/firefox-i18n-54.0/nl.xpi) = aa9fe3c007e84bb12267d789a41fff32caa235d6f242fc9ba7ed86da8d942968 +SIZE (xpi/firefox-i18n-54.0/nl.xpi) = 431500 +SHA256 (xpi/firefox-i18n-54.0/nn-NO.xpi) = 882a058faf72685ea0ff41900b57ff5eb0d97e892072ae0521ffbb05e4a0ccff +SIZE (xpi/firefox-i18n-54.0/nn-NO.xpi) = 427869 +SHA256 (xpi/firefox-i18n-54.0/or.xpi) = 708a93f11bc6f71c1309da18e29ea18fd5be7daceb908909788766e22e336ae0 +SIZE (xpi/firefox-i18n-54.0/or.xpi) = 494076 +SHA256 (xpi/firefox-i18n-54.0/pa-IN.xpi) = 55e98f21d75ebe69b57eefa4ae2a1a32f60d108fc7ab4177138c77bdc32ae314 +SIZE (xpi/firefox-i18n-54.0/pa-IN.xpi) = 473515 +SHA256 (xpi/firefox-i18n-54.0/pl.xpi) = 3012752259b1043d55b71418eb23c69ee74230d39c0f5c336c6471b41ac2a60d +SIZE (xpi/firefox-i18n-54.0/pl.xpi) = 347203 +SHA256 (xpi/firefox-i18n-54.0/pt-BR.xpi) = ef23036aedc70ff1c7b35890c9e8bd738da7df44d71f91a4bfe3d5c4206d6cad +SIZE (xpi/firefox-i18n-54.0/pt-BR.xpi) = 437172 +SHA256 (xpi/firefox-i18n-54.0/pt-PT.xpi) = 9da6b5aa0f36e94ff7fb7bba94c9caf43614a985e07cf64544a92596a3acd874 +SIZE (xpi/firefox-i18n-54.0/pt-PT.xpi) = 436177 +SHA256 (xpi/firefox-i18n-54.0/rm.xpi) = 0d8e67d5650d7331640ea54c20572e75af24f08011ed4d10d9362a4ca64c1c61 +SIZE (xpi/firefox-i18n-54.0/rm.xpi) = 433404 +SHA256 (xpi/firefox-i18n-54.0/ro.xpi) = 7d48ec24b3edfce6da4182ab194cbc3051cea3898aef66cf8ceee20f50b275a3 +SIZE (xpi/firefox-i18n-54.0/ro.xpi) = 449473 +SHA256 (xpi/firefox-i18n-54.0/ru.xpi) = c4d107b88feef02fa1a510389102f6de58c372ecb7600c51b4cb6782f277b91e +SIZE (xpi/firefox-i18n-54.0/ru.xpi) = 487731 +SHA256 (xpi/firefox-i18n-54.0/si.xpi) = 653e6314e92b9c7f156b5e57153eb4002dc6e8826c4c5fd7904a2cb8c0b37963 +SIZE (xpi/firefox-i18n-54.0/si.xpi) = 491068 +SHA256 (xpi/firefox-i18n-54.0/sk.xpi) = 478effe7b9e5e2328f47d9eeca2373af9bfc34293a715da482d89e7cba732379 +SIZE (xpi/firefox-i18n-54.0/sk.xpi) = 455015 +SHA256 (xpi/firefox-i18n-54.0/sl.xpi) = 5b2d34ddefda99b5420f94dd2bc1f52765a28cf949e317e9f2d2580bb78cebcd +SIZE (xpi/firefox-i18n-54.0/sl.xpi) = 433174 +SHA256 (xpi/firefox-i18n-54.0/son.xpi) = a6ebc9f018ebff9ba6d7cf5302da772f8ad118489b05e44d64dc86331a521150 +SIZE (xpi/firefox-i18n-54.0/son.xpi) = 435052 +SHA256 (xpi/firefox-i18n-54.0/sq.xpi) = a19a8faeb8a28599dac9a0d2ca7432c72b12d5efabc9e5e4a696a46c5b8756d5 +SIZE (xpi/firefox-i18n-54.0/sq.xpi) = 448157 +SHA256 (xpi/firefox-i18n-54.0/sr.xpi) = a706281a42662db287adb9351df8a8d0b516368442063d5722a31cedd2d49044 +SIZE (xpi/firefox-i18n-54.0/sr.xpi) = 461354 +SHA256 (xpi/firefox-i18n-54.0/sv-SE.xpi) = 6055191f2b0aa12202630d98de3068e19675b05aa3ee063aec39d00a02892dad +SIZE (xpi/firefox-i18n-54.0/sv-SE.xpi) = 440478 +SHA256 (xpi/firefox-i18n-54.0/ta.xpi) = ed574652254367b061ffcdb6a802ab8a6ccd7c3a30827ba90a3d141aa202c86f +SIZE (xpi/firefox-i18n-54.0/ta.xpi) = 493956 +SHA256 (xpi/firefox-i18n-54.0/te.xpi) = 9e6e718564ddafd81b0dbc52cf9e91c06889ef5b8b1b270644985e6d02fd1f4d +SIZE (xpi/firefox-i18n-54.0/te.xpi) = 513337 +SHA256 (xpi/firefox-i18n-54.0/th.xpi) = d25d08b7179a994b49dd6c90ecd2f88782b5fe16ade39b61be0a5e17461d7bc8 +SIZE (xpi/firefox-i18n-54.0/th.xpi) = 487217 +SHA256 (xpi/firefox-i18n-54.0/tr.xpi) = 57d9f03344ddc87bf4ec33406f5f22b31acc5d9ee821fcbe64fd288805c52038 +SIZE (xpi/firefox-i18n-54.0/tr.xpi) = 440412 +SHA256 (xpi/firefox-i18n-54.0/uk.xpi) = cfed556b32924b48084a0645bd30ec12c5de463edcb4bec1f349be08f55ba1e0 +SIZE (xpi/firefox-i18n-54.0/uk.xpi) = 490755 +SHA256 (xpi/firefox-i18n-54.0/uz.xpi) = a7d2c2182b873c694a19d48638cd72ff11c2a9c0dce12ccd486727bbf71c5ac1 +SIZE (xpi/firefox-i18n-54.0/uz.xpi) = 448113 +SHA256 (xpi/firefox-i18n-54.0/vi.xpi) = eb8a9f2177b5649a1227f1e850d1bf546bc3943ab5b5b19d587de49761522146 +SIZE (xpi/firefox-i18n-54.0/vi.xpi) = 449653 +SHA256 (xpi/firefox-i18n-54.0/xh.xpi) = bf99aaa4576ed39eb62ab8ffdd889833fb97c3d827bb374d2b71aa09fec8c04e +SIZE (xpi/firefox-i18n-54.0/xh.xpi) = 440801 +SHA256 (xpi/firefox-i18n-54.0/zh-CN.xpi) = f066b94bc64a66d64848ccfea5989cf729c90023dd16a472a9f88a40fde1d493 +SIZE (xpi/firefox-i18n-54.0/zh-CN.xpi) = 458332 +SHA256 (xpi/firefox-i18n-54.0/zh-TW.xpi) = d2eee4a98157a120c112eb3a06a4bafd154938f8190d63ff1de48cf5e8f94a5e +SIZE (xpi/firefox-i18n-54.0/zh-TW.xpi) = 469164