Index: head/Mk/Uses/gecko.mk =================================================================== --- head/Mk/Uses/gecko.mk (revision 450706) +++ head/Mk/Uses/gecko.mk (revision 450707) @@ -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 55 +_GECKO_VERSIONS= 52 56 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions 52_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr -55_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox +56_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= 48 _GECKO_VERSIONS= 48 _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 48_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 450706) +++ head/Mk/bsd.gecko.mk (revision 450707) @@ -1,620 +1,625 @@ #-*- 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 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 && ${OPSYS} == FreeBSD && ${OSVERSION} < 1200032 # use jemalloc 3.0.0 (4.0 for firefox 43+) API for stats/tuning MOZ_EXPORT+= MOZ_JEMALLOC4=1 .if ${MOZILLA_VER:R:R} >= 48 MOZ_OPTIONS+= --enable-jemalloc=4 .elif ${OSVERSION} < 1100079 MOZ_OPTIONS+= --enable-jemalloc .endif # Mozilla >= 48 .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} \ --disable-updater \ --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:MJACK} BUILD_DEPENDS+= ${LOCALBASE}/include/jack/jack.h:audio/jack MOZ_OPTIONS+= --enable-jack .endif .if ${PORT_OPTIONS:MPULSEAUDIO} BUILD_DEPENDS+= ${LOCALBASE}/include/pulse/pulseaudio.h:audio/pulseaudio 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} +.if ${PORT_OPTIONS:MRUST} || ${MOZILLA_VER:R:R} >= 54 BUILD_DEPENDS+= rust>=1.19.0_2:${RUST_PORT} RUST_PORT?= lang/rust +. if ${MOZILLA_VER:R:R} < 54 MOZ_OPTIONS+= --enable-rust +. endif .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 +. if ${MOZILLA_VER:R:R} >= 56 +MOZ_OPTIONS+= --enable-rust-simd +. endif .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*} . 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 450706) +++ head/www/firefox/Makefile (revision 450707) @@ -1,78 +1,76 @@ # Created by: Alan Eldridge # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 55.0.3 +DISTVERSION= 56.0 DISTVERSIONSUFFIX=.source -PORTREVISION= 3 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build6/source MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.15:devel/nspr \ - nss>=3.31.1:security/nss \ - libevent>=2.0.22:devel/libevent \ - harfbuzz>=1.4.6:print/harfbuzz \ +BUILD_DEPENDS= nspr>=4.16:devel/nspr \ + nss>=3.32.1:security/nss \ + icu>=59.1,1:devel/icu \ + libevent>=2.1.8:devel/libevent \ + harfbuzz>=1.4.7:print/harfbuzz \ graphite2>=1.3.10:graphics/graphite2 \ - png>=1.6.28:graphics/png \ + png>=1.6.31:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ - sqlite3>=3.19.2:databases/sqlite3 \ + sqlite3>=3.19.3:databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ yasm:devel/yasm \ + llvm40>0:devel/llvm40 \ 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_EXPORT= BINDGEN_CFLAGS="-isystem${LOCALBASE}/include/nspr \ + -isystem${LOCALBASE}/include/pixman-1" # XXX bug 1341234 MOZ_OPTIONS= --enable-application=browser \ --enable-official-branding -OPTIONS_DEFINE= RUST OPTIONS_DEFAULT= BUNDLED_CAIRO OPTIONS_EXCLUDE= GNOMEUI -# XXX lang/rust currently builds only on these platforms -OPTIONS_DEFAULT_aarch64=RUST -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 450706) +++ head/www/firefox/distinfo (revision 450707) @@ -1,3 +1,3 @@ -TIMESTAMP = 1503590171 -SHA256 (firefox-55.0.3.source.tar.xz) = 891836df85f8798c49f7b25661820f64d1311d59703c716eda471819b93ccda2 -SIZE (firefox-55.0.3.source.tar.xz) = 236010652 +TIMESTAMP = 1506460173 +SHA256 (firefox-56.0.source.tar.xz) = 0d8b7e91429f622c25509b7e73530807506ef3ff9f749d962251a35ed2bfed7e +SIZE (firefox-56.0.source.tar.xz) = 255389204 Index: head/www/firefox/files/patch-rust-option =================================================================== --- head/www/firefox/files/patch-rust-option (revision 450706) +++ head/www/firefox/files/patch-rust-option (nonexistent) @@ -1,816 +0,0 @@ -Revert bug 1284816, bug 1341967, bug 1336153 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. -@@ -97,6 +110,9 @@ def rust_compiler(rustc_info, cargo_info): - - return True - -+set_define('MOZ_RUST', rust_compiler) -+set_config('MOZ_RUST', rust_compiler) -+ - @template - def rust_triple_alias(host_or_target): - """Template defining the alias used for rustc's --target flag. -@@ -227,7 +243,8 @@ set_config('RUST_HOST_TARGET', rust_host_triple) - - @depends(rust_target_triple) - def rust_target_env_name(triple): -- return triple.upper().replace('-','_') -+ if triple: -+ return triple.upper().replace('-','_') - - # We need this to form various Cargo environment variables, as there is no - # uppercase function in make, and we don't want to shell out just for -@@ -235,5 +252,6 @@ def rust_target_env_name(triple): - set_config('RUST_TARGET_ENV_NAME', rust_target_env_name) - - # Until we remove all the other Rust checks in old-configure. -+add_old_configure_assignment('MOZ_RUST', rust_compiler) - add_old_configure_assignment('RUSTC', rustc) - add_old_configure_assignment('RUST_TARGET', rust_target_triple) -diff --git config/rules.mk config/rules.mk -index 94cc5556e3d0..7b143ebc5146 100644 ---- config/rules.mk -+++ config/rules.mk -@@ -900,6 +900,7 @@ endif - - $(foreach file,$(DUMP_SYMS_TARGETS),$(eval $(call syms_template,$(file),$(file)_syms.track))) - -+ifdef MOZ_RUST - cargo_host_flag := --target=$(RUST_HOST_TARGET) - cargo_target_flag := --target=$(RUST_TARGET) - -@@ -1055,6 +1056,7 @@ force-cargo-host-program-build: - - $(HOST_RUST_PROGRAMS): force-cargo-host-program-build - endif # HOST_RUST_PROGRAMS -+endif # MOZ_RUST - - $(SOBJS): - $(REPORT_BUILD) -diff --git dom/media/MediaPrefs.h dom/media/MediaPrefs.h -index 4dcc659222a4..559334d89fd1 100644 ---- dom/media/MediaPrefs.h -+++ dom/media/MediaPrefs.h -@@ -183,7 +183,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 dom/media/gtest/moz.build dom/media/gtest/moz.build -index c66ac4a9437f..e2203c0a4321 100644 ---- dom/media/gtest/moz.build -+++ dom/media/gtest/moz.build -@@ -22,7 +22,6 @@ UNIFIED_SOURCES += [ - 'TestMozPromise.cpp', - 'TestMP3Demuxer.cpp', - 'TestMP4Demuxer.cpp', -- 'TestRust.cpp', - 'TestTrackEncoder.cpp', - 'TestVideoSegment.cpp', - 'TestVideoUtils.cpp', -@@ -36,6 +35,9 @@ if CONFIG['MOZ_WEBM_ENCODER']: - 'TestWebMWriter.cpp', - ] - -+if CONFIG['MOZ_RUST']: -+ UNIFIED_SOURCES += ['TestRust.cpp',] -+ - TEST_HARNESS_FILES.gtest += [ - '../test/gizmo-frag.mp4', - '../test/gizmo.mp4', -diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build -index c65b53b80f63..8953f646e831 100644 ---- media/libcubeb/src/moz.build -+++ media/libcubeb/src/moz.build -@@ -32,7 +32,8 @@ if CONFIG['MOZ_PULSEAUDIO']: - 'cubeb_pulse.c', - ] - DEFINES['USE_PULSE'] = True -- DEFINES['USE_PULSE_RUST'] = True -+ if CONFIG['MOZ_RUST']: -+ DEFINES['USE_PULSE_RUST'] = True - - if CONFIG['MOZ_JACK']: - SOURCES += [ -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; - using mozilla::media::TimeUnit; -@@ -177,6 +179,7 @@ MP4VideoInfo::Update(const MetaData* aMetaData, const char* aMimeType) - FindData(aMetaData, kKeyAVCC, mExtraData); - } - -+#ifdef MOZ_RUST_MP4PARSE - static void - UpdateTrackProtectedInfo(mozilla::TrackInfo& aConfig, - const mp4parse_sinf_info& aSinf) -@@ -263,6 +266,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 -@@ -20,14 +20,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; - using mozilla::media::TimeUnit; -@@ -105,6 +109,7 @@ private: - bool mCanSeek; - }; - -+#ifdef MOZ_RUST_MP4PARSE - // Wrap an mp4_demuxer::Stream to remember the read offset. - - class RustStreamAdaptor { -@@ -151,6 +156,7 @@ private: - RustStreamAdaptor mRustSource; - mozilla::UniquePtr mRustParser; - }; -+#endif // MOZ_RUST_MP4PARSE - - class IndiceWrapperStagefright : public IndiceWrapper { - public: -@@ -187,6 +193,7 @@ IndiceWrapperStagefright::GetIndice(size_t aIndex, Index::Indice& aIndice) const - return true; - } - -+#ifdef MOZ_RUST_MP4PARSE - // the owner of mIndice is rust mp4 paser, so lifetime of this class - // SHOULD NOT longer than rust parser. - class IndiceWrapperRust : public IndiceWrapper -@@ -232,9 +239,11 @@ IndiceWrapperRust::GetIndice(size_t aIndex, Index::Indice& aIndice) const - aIndice.sync = indice->sync; - return true; - } -+#endif // MOZ_RUST_MP4PARSE - - MP4Metadata::MP4Metadata(Stream* aSource) - : mStagefright(MakeUnique(aSource)) -+#ifdef MOZ_RUST_MP4PARSE - , mRust(MakeUnique(aSource)) - , mPreferRust(MediaPrefs::EnableRustMP4Parser()) - , mReportedAudioTrackTelemetry(false) -@@ -242,6 +251,7 @@ MP4Metadata::MP4Metadata(Stream* aSource) - #ifndef RELEASE_OR_BETA - , mRustTestMode(MediaPrefs::RustTestMode()) - #endif -+#endif // MOZ_RUST_MP4PARSE - { - } - -@@ -274,8 +284,11 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const - MP4Metadata::ResultAndTrackCount numTracks = - mStagefright->GetNumberTracks(aType); - -+#ifdef MOZ_RUST_MP4PARSE - if (!mRust) { -+#endif // MOZ_RUST_MP4PARSE - return numTracks; -+#ifdef MOZ_RUST_MP4PARSE - } - - MP4Metadata::ResultAndTrackCount numTracksRust = -@@ -350,8 +363,10 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const - // Same non-error numbers, just return any. - // (Choosing Rust here, in case it carries a warning, we'd want to know that.) - return numTracksRust; -+#endif // MOZ_RUST_MP4PARSE - } - -+#ifdef MOZ_RUST_MP4PARSE - bool MP4Metadata::ShouldPreferRust() const { - if (!mRust) { - return false; -@@ -389,6 +404,7 @@ bool MP4Metadata::ShouldPreferRust() const { - // Otherwise, fall back. - return false; - } -+#endif // MOZ_RUST_MP4PARSE - - static const char* - GetDifferentField(const mozilla::TrackInfo& info, -@@ -443,6 +459,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType, - MP4Metadata::ResultAndTrackInfo info = - mStagefright->GetTrackInfo(aType, aTrackNumber); - -+#ifdef MOZ_RUST_MP4PARSE - if (!mRust) { - return info; - } -@@ -514,6 +531,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType, - if (mPreferRust) { - return infoRust; - } -+#endif // MOZ_RUST_MP4PARSE - - return info; - } -@@ -528,6 +546,7 @@ MP4Metadata::ResultAndCryptoFile - MP4Metadata::Crypto() const - { - MP4Metadata::ResultAndCryptoFile crypto = mStagefright->Crypto(); -+#ifdef MOZ_RUST_MP4PARSE - MP4Metadata::ResultAndCryptoFile rustCrypto = mRust->Crypto(); - - #ifndef RELEASE_OR_BETA -@@ -548,6 +567,7 @@ MP4Metadata::Crypto() const - if (mPreferRust) { - return rustCrypto; - } -+#endif // MOZ_RUST_MP4PARSE - - return crypto; - } -@@ -556,17 +576,22 @@ MP4Metadata::ResultAndIndice - MP4Metadata::GetTrackIndice(mozilla::TrackID aTrackID) - { - FallibleTArray indiceSF; -+#ifdef MOZ_RUST_MP4PARSE - if (!mPreferRust - #ifndef RELEASE_OR_BETA - || mRustTestMode - #endif - ) { -+#endif // MOZ_RUST_MP4PARSE - MediaResult rv = mStagefright->ReadTrackIndex(indiceSF, aTrackID); - if (NS_FAILED(rv)) { - return {Move(rv), nullptr}; - } -+#ifdef MOZ_RUST_MP4PARSE - } -+#endif // MOZ_RUST_MP4PARSE - -+#ifdef MOZ_RUST_MP4PARSE - mp4parse_byte_data indiceRust = {}; - if (mPreferRust - #ifndef RELEASE_OR_BETA -@@ -592,13 +617,18 @@ MP4Metadata::GetTrackIndice(mozilla::TrackID aTrackID) - } - } - #endif -+#endif // MOZ_RUST_MP4PARSE - - UniquePtr indice; -+#ifdef MOZ_RUST_MP4PARSE - if (mPreferRust) { - indice = mozilla::MakeUnique(indiceRust); - } else { -+#endif // MOZ_RUST_MP4PARSE - indice = mozilla::MakeUnique(indiceSF); -+#ifdef MOZ_RUST_MP4PARSE - } -+#endif // MOZ_RUST_MP4PARSE - - return {NS_OK, Move(indice)}; - } -@@ -856,6 +886,7 @@ MP4MetadataStagefright::Metadata(Stream* aSource) - return {NS_OK, Move(buffer)}; - } - -+#ifdef MOZ_RUST_MP4PARSE - bool - RustStreamAdaptor::Read(uint8_t* buffer, uintptr_t size, size_t* bytes_read) - { -@@ -1152,5 +1183,6 @@ MP4MetadataRust::Metadata(Stream* aSource) - MOZ_ASSERT(false, "Not yet implemented"); - return {NS_ERROR_NOT_IMPLEMENTED, 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 -@@ -13,7 +13,9 @@ - #include "MediaInfo.h" - #include "MediaResult.h" - #include "Stream.h" -+#ifdef MOZ_RUST_MP4PARSE - #include "mp4parse.h" -+#endif // MOZ_RUST_MP4PARSE - - namespace mp4_demuxer { - -@@ -82,6 +84,7 @@ public: - - private: - UniquePtr mStagefright; -+#ifdef MOZ_RUST_MP4PARSE - UniquePtr mRust; - mutable bool mPreferRust; - mutable bool mReportedAudioTrackTelemetry; -@@ -90,6 +93,7 @@ private: - mutable bool mRustTestMode; - #endif - bool ShouldPreferRust() const; -+#endif // MOZ_RUST_MP4PARSE - }; - - } // namespace mp4_demuxer -diff --git media/libstagefright/gtest/moz.build media/libstagefright/gtest/moz.build -index be4d56fc93f7..66fdd365f8f3 100644 ---- media/libstagefright/gtest/moz.build -+++ media/libstagefright/gtest/moz.build -@@ -38,12 +38,13 @@ TEST_HARNESS_FILES.gtest += [ - 'test_case_1351094.mp4', - ] - --UNIFIED_SOURCES += ['TestMP4Rust.cpp',] --TEST_HARNESS_FILES.gtest += [ -- '../../../dom/media/test/street.mp4', --] --LOCAL_INCLUDES += [ -- '../binding/include', --] -+if CONFIG['MOZ_RUST']: -+ UNIFIED_SOURCES += ['TestMP4Rust.cpp',] -+ TEST_HARNESS_FILES.gtest += [ -+ '../../../dom/media/test/street.mp4', -+ ] -+ LOCAL_INCLUDES += [ -+ '../binding/include', -+ ] - - FINAL_LIBRARY = 'xul-gtest' -diff --git media/libstagefright/moz.build media/libstagefright/moz.build -index af5d1194d621..6725a0179989 100644 ---- media/libstagefright/moz.build -+++ media/libstagefright/moz.build -@@ -83,9 +83,10 @@ SOURCES += [ - 'system/core/libutils/VectorImpl.cpp', - ] - --EXPORTS += [ -- 'binding/include/mp4parse.h', --] -+if CONFIG['MOZ_RUST']: -+ EXPORTS += [ -+ 'binding/include/mp4parse.h', -+ ] - - UNIFIED_SOURCES += [ - 'binding/Adts.cpp', -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 netwerk/base/moz.build netwerk/base/moz.build -index 61d022a9660e..e5ca1d77d859 100644 ---- netwerk/base/moz.build -+++ netwerk/base/moz.build -@@ -256,7 +256,7 @@ UNIFIED_SOURCES += [ - 'TLSServerSocket.cpp', - ] - --if CONFIG['MOZ_RUST_URLPARSE']: -+if CONFIG['MOZ_RUST'] and CONFIG['MOZ_RUST_URLPARSE']: - EXPORTS.mozilla.net += [ 'RustURL.h' ] - UNIFIED_SOURCES += [ 'RustURL.cpp' ] - -diff --git netwerk/base/nsStandardURL.cpp netwerk/base/nsStandardURL.cpp -index 608b918a4ecf..20bcdeb34ab8 100644 ---- netwerk/base/nsStandardURL.cpp -+++ netwerk/base/nsStandardURL.cpp -@@ -858,6 +858,7 @@ nsStandardURL::BuildNormalizedSpec(const char *spec) - if (!SegmentIs(spec, mScheme, "resource") && - !SegmentIs(spec, mScheme, "chrome")) { - nsAutoCString ipString; -+#ifdef MOZ_RUST - if (encHost.Length() > 0 && - encHost.First() == '[' && encHost.Last() == ']' && - ValidIPv6orHostname(encHost.get(), encHost.Length())) { -@@ -866,7 +867,9 @@ nsStandardURL::BuildNormalizedSpec(const char *spec) - return rv; - } - encHost = ipString; -- } else if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) { -+ } else -+#endif -+ if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) { - encHost = ipString; - } - } -@@ -2112,6 +2115,7 @@ nsStandardURL::SetHost(const nsACString &input) - - if (!SegmentIs(mScheme, "resource") && !SegmentIs(mScheme, "chrome")) { - nsAutoCString ipString; -+#ifdef MOZ_RUST - if (hostBuf.Length() > 0 && - hostBuf.First() == '[' && hostBuf.Last() == ']' && - ValidIPv6orHostname(hostBuf.get(), hostBuf.Length())) { -@@ -2120,7 +2124,9 @@ nsStandardURL::SetHost(const nsACString &input) - return rv; - } - hostBuf = ipString; -- } else if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) { -+ } else -+#endif -+ if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) { - hostBuf = ipString; - } - } -diff --git old-configure.in old-configure.in -index 717a94fcc692..54b29d737cc1 100644 ---- old-configure.in -+++ old-configure.in -@@ -2330,9 +2330,14 @@ if test -n "$MOZ_MULET"; then - fi - - # Propagate feature switches for code written in rust from confvars.sh --if test -n "$MOZ_RUST_URLPARSE"; then -- AC_DEFINE(MOZ_RUST_URLPARSE) -- AC_SUBST(MOZ_RUST_URLPARSE) -+if test -n "$MOZ_RUST"; then -+ if test -n "$MOZ_RUST_MP4PARSE"; then -+ AC_DEFINE(MOZ_RUST_MP4PARSE) -+ fi -+ if test -n "$MOZ_RUST_URLPARSE"; then -+ AC_DEFINE(MOZ_RUST_URLPARSE) -+ AC_SUBST(MOZ_RUST_URLPARSE) -+ fi - fi - - AC_SUBST(MOZ_PHOENIX) -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 -@@ -8320,7 +8320,8 @@ - "expires_in_version": "60", - "kind": "boolean", - "bug_numbers": [1220885], -- "description": "Whether the rust mp4 demuxer successfully parsed a stream segment." -+ "description": "Whether the rust mp4 demuxer successfully parsed a stream segment.", -+ "cpp_guard": "MOZ_RUST_MP4PARSE" - }, - "MEDIA_RUST_MP4PARSE_ERROR_CODE": { - "record_in_processes": ["main", "content"], -@@ -8329,7 +8330,8 @@ - "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": { - "record_in_processes": ["main", "content"], -@@ -8337,7 +8339,8 @@ - "expires_in_version": "60", - "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": { - "record_in_processes": ["main", "content"], -@@ -8345,7 +8348,8 @@ - "expires_in_version": "60", - "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": { - "record_in_processes": ["main", "content", "gpu"], -diff --git toolkit/library/gtest/moz.build toolkit/library/gtest/moz.build -index 69a8fb1f4893..c684f48e456e 100644 ---- toolkit/library/gtest/moz.build -+++ toolkit/library/gtest/moz.build -@@ -7,7 +7,6 @@ - FINAL_TARGET = 'dist/bin/gtest' - - USE_LIBS += [ -- 'gkrust-gtest', - 'static:xul', - # xul-gtest is an intermediate static library. It is used as FINAL_TARGET - # for gtest code. -@@ -21,6 +20,11 @@ USE_LIBS += [ - # before StaticXULComponentStart. - Libxul('xul-gtest-real') - -+if CONFIG['MOZ_RUST']: -+ USE_LIBS += [ -+ 'gkrust-gtest', -+ ] -+ - DIRS += [ - 'static', - ] -diff --git toolkit/library/moz.build toolkit/library/moz.build -index 650f6eaba980..191e90ceb09a 100644 ---- toolkit/library/moz.build -+++ toolkit/library/moz.build -@@ -63,7 +63,7 @@ def Libxul(name): - - # This option should go away in bug 1290972, but we need to wait until - # Rust 1.12 has been released. -- if CONFIG['OS_ARCH'] == 'Darwin': -+ if CONFIG['MOZ_RUST'] and CONFIG['OS_ARCH'] == 'Darwin': - LDFLAGS += ['-Wl,-no_compact_unwind'] - - Libxul('xul') -@@ -343,4 +343,5 @@ USE_LIBS += ['StaticXULComponentsEnd'] - # The above library needs to be last for C++ purposes. This library, - # however, is entirely composed of Rust code, and needs to come after - # all the C++ code so any possible C++ -> Rust calls can be resolved. --USE_LIBS += ['gkrust'] -+if CONFIG['MOZ_RUST']: -+ USE_LIBS += ['gkrust'] -diff --git toolkit/moz.configure toolkit/moz.configure -index ac9d123224ce..e90da70f0fa5 100644 ---- toolkit/moz.configure -+++ toolkit/moz.configure -@@ -88,8 +88,7 @@ include('../js/moz.configure') - - # Rust - # ============================================================== --include('../build/moz.configure/rust.configure', -- when='--enable-compile-environment') -+include('../build/moz.configure/rust.configure') - - - # L10N -@@ -623,13 +622,13 @@ id_and_secret_keyfile('Leanplum SDK') - option('--enable-stylo', nargs='?', choices=('build',), - help='Include Stylo in the build and/or enable it at runtime') - --@depends('--enable-stylo') --def stylo_config(value): -+@depends('--enable-stylo', '--enable-rust') -+def stylo_config(value, rust_enabled): - build_stylo = None - enable_stylo = None - - # The default is to not build Stylo at all. -- if value.origin == 'default': -+ if not rust_enabled or value.origin == 'default': - pass - elif value == 'build': - build_stylo = True -@@ -769,12 +768,14 @@ set_config('SERVO_TARGET_DIR', servo_target_dir) - option('--enable-webrender', nargs='?', choices=('build',), - help='Include WebRender in the build and/or enable it at runtime') - --@depends('--enable-webrender', milestone) --def webrender(value, milestone): -+@depends('--enable-webrender', '--enable-rust', milestone) -+def webrender(value, rust_enabled, milestone): - build_webrender = None - enable_webrender = None - -- if value.origin == 'default': -+ if not rust_enabled: -+ pass -+ elif value.origin == 'default': - # if nothing is specified, default to just building on Nightly - build_webrender = milestone.is_nightly - elif value == 'build': -diff --git toolkit/toolkit.mozbuild toolkit/toolkit.mozbuild -index b845aab48023..9215afc6dd2d 100644 ---- toolkit/toolkit.mozbuild -+++ toolkit/toolkit.mozbuild -@@ -133,16 +133,23 @@ if CONFIG['MOZ_PREF_EXTENSIONS']: - - DIRS += [ - '/devtools', -- '/toolkit/library', -- '/toolkit/library/gtest/rust', -- '/toolkit/library/rust', -- '/toolkit/library/StaticXULComponentsEnd', - '/services', - '/startupcache', - '/js/ductwork/debugger', - '/other-licenses/snappy', - ] - -+if CONFIG['MOZ_RUST']: -+ DIRS += [ -+ '/toolkit/library/gtest/rust', -+ '/toolkit/library/rust', -+ ] -+ -+DIRS += [ -+ '/toolkit/library/StaticXULComponentsEnd', -+ '/toolkit/library', -+] -+ - if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: - DIRS += ['/toolkit/system/gnome'] - -diff --git toolkit/xre/nsAppRunner.cpp toolkit/xre/nsAppRunner.cpp -index 667c2eb1b365..6fb6cf102baa 100644 ---- toolkit/xre/nsAppRunner.cpp -+++ toolkit/xre/nsAppRunner.cpp -@@ -227,11 +227,13 @@ - extern uint32_t gRestartMode; - extern void InstallSignalHandlers(const char *ProgramName); - -+#ifdef MOZ_RUST - // This workaround is fixed in Rust 1.19. For details, see bug 1358151. - // Implementation in toolkit/library/rust/shared/lib.rs - extern "C" { - void rust_init_please_remove_this_after_updating_rust_1_19(); - } -+#endif - - #define FILE_COMPATIBILITY_INFO NS_LITERAL_CSTRING("compatibility.ini") - #define FILE_INVALIDATE_CACHES NS_LITERAL_CSTRING(".purgecaches") -@@ -3122,8 +3124,10 @@ XREMain::XRE_mainInit(bool* aExitFlag) - return 1; - *aExitFlag = false; - -+#ifdef MOZ_RUST - // This workaround is fixed in Rust 1.19. For details, see bug 1358151. - rust_init_please_remove_this_after_updating_rust_1_19(); -+#endif - - atexit(UnexpectedExit); - auto expectedShutdown = mozilla::MakeScopeExit([&] { -diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp -index e6bb623c258b..c49d61dce605 100644 ---- xpcom/base/nsDebugImpl.cpp -+++ xpcom/base/nsDebugImpl.cpp -@@ -148,14 +148,20 @@ nsDebugImpl::Abort(const char* aFile, int32_t aLine) - return NS_OK; - } - -+#ifdef MOZ_RUST - // From toolkit/library/rust/lib.rs - extern "C" void intentional_panic(const char* message); -+#endif - - NS_IMETHODIMP - nsDebugImpl::RustPanic(const char* aMessage) - { -+#ifdef MOZ_RUST - intentional_panic(aMessage); - return NS_OK; -+#else -+ return NS_ERROR_NOT_IMPLEMENTED; -+#endif - } - - NS_IMETHODIMP -diff --git xpcom/rust/nsstring/gtest/moz.build xpcom/rust/nsstring/gtest/moz.build -index 197411678815..5bed9e57e57d 100644 ---- xpcom/rust/nsstring/gtest/moz.build -+++ xpcom/rust/nsstring/gtest/moz.build -@@ -4,8 +4,9 @@ - # 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/. - --UNIFIED_SOURCES += [ -- 'Test.cpp' --] -+if CONFIG['MOZ_RUST']: -+ UNIFIED_SOURCES += [ -+ 'Test.cpp' -+ ] - - FINAL_LIBRARY = 'xul-gtest' Property changes on: head/www/firefox/files/patch-rust-option ___________________________________________________________________ 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-bug1312182 =================================================================== --- head/www/firefox/files/patch-bug1312182 (revision 450706) +++ head/www/firefox/files/patch-bug1312182 (nonexistent) @@ -1,376 +0,0 @@ -commit 0d02dac1638ad -Author: Alessio Placitelli -Date: Tue May 30 10:42:42 2017 +0200 - - Bug 1312182 - Consolidate the uses of MOZ_TELEMETRY_REPORTING in the code. r=flod,gfritzsche,jaws - - The MOZ_TELEMETRY_REPORTING define does not control whether or not Telemetry is enabled - but rather if it will send the gathered data to Mozilla servers. We still want to - display the about:preferences options and let developers know about this behaviour. - Please note that this patch is not changing any behaviour: it's only making it explicit - by showing the options as disabled rather than hiding them. - - MozReview-Commit-ID: 7A0y0E0hm0Q - - --HG-- - extra : rebase_source : 36d1a7f5ec5c05b43731daf9507d3068fe7674ee ---- - browser/base/content/baseMenuOverlay.xul | 2 +- - browser/components/nsBrowserGlue.js | 8 +-- - .../components/preferences/in-content-new/main.xul | 2 - - .../preferences/in-content-new/privacy.js | 32 +++++------ - .../preferences/in-content-new/privacy.xul | 14 ++--- - .../components/preferences/in-content/advanced.js | 63 +++++++++++----------- - .../components/preferences/in-content/advanced.xul | 7 ++- - .../chrome/browser/preferences-old/advanced.dtd | 5 ++ - .../en-US/chrome/browser/preferences/advanced.dtd | 5 ++ - 9 files changed, 67 insertions(+), 71 deletions(-) - -diff --git browser/base/content/baseMenuOverlay.xul browser/base/content/baseMenuOverlay.xul -index 1befa2bb66cc..804bbdebb797 100644 ---- browser/base/content/baseMenuOverlay.xul -+++ browser/base/content/baseMenuOverlay.xul -@@ -61,7 +61,7 @@ - onclick="checkForMiddleClick(this, event);" - label="&helpKeyboardShortcuts.label;" - accesskey="&helpKeyboardShortcuts.accesskey;"/> --#ifdef MOZ_TELEMETRY_REPORTING -+#ifdef MOZ_SERVICES_HEALTHREPORT - - --#ifdef MOZ_TELEMETRY_REPORTING - --#endif - - - - --#ifdef MOZ_TELEMETRY_REPORTING --