Index: branches/2016Q2/Mk/Uses/gecko.mk =================================================================== --- branches/2016Q2/Mk/Uses/gecko.mk (revision 416429) +++ branches/2016Q2/Mk/Uses/gecko.mk (revision 416430) @@ -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= 45 -_GECKO_VERSIONS= 45 46 +_GECKO_VERSIONS= 45 47 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions 45_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr -46_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox +47_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= 39 _GECKO_VERSIONS= 39 _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 39_DEPENDS= ${LOCALBASE}/lib/seamonkey/seamonkey:www/seamonkey .elif ${gecko_ARGS:Mthunderbird} _GECKO_DEFAULT_VERSION= 45 _GECKO_VERSIONS= 45 _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 45_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: branches/2016Q2/Mk/bsd.gecko.mk =================================================================== --- branches/2016Q2/Mk/bsd.gecko.mk (revision 416429) +++ branches/2016Q2/Mk/bsd.gecko.mk (revision 416430) @@ -1,644 +1,643 @@ #-*- 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 compiler:c++11-lang gmake iconv perl5 pkgconfig \ python:2.7,build desktop-file-utils CPE_VENDOR?=mozilla USE_PERL5= build USE_XORG= xext xrender xt .if ${MOZILLA} != "libxul" BUNDLE_LIBS= yes .endif MOZILLA_SUFX?= none MOZSRC?= ${WRKSRC} WRKSRC?= ${WRKDIR}/mozilla PLISTF?= ${WRKDIR}/plist_files MOZ_OBJDIR?= ${WRKSRC}/obj-${CONFIGURE_TARGET} 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 CONFIGURE_TARGET:=${ARCH:C/amd64/x86_64/}-portbld-${OPSYS:tl}${OSREL} MOZ_EXPORT+= ${CONFIGURE_ENV} \ PERL="${PERL}" MOZ_OPTIONS+= ${CONFIGURE_TARGET} --prefix="${PREFIX}" MOZ_MK_OPTIONS+=MOZ_OBJDIR="${MOZ_OBJDIR}" CPPFLAGS+= -isystem${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib -Wl,-rpath,${PREFIX}/lib/${MOZILLA} .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 && ${OSVERSION} >= 1100079 . if ${MOZILLA_VER:R:R} < 43 # system jemalloc 4.0.0 vs. bundled jemalloc 3.6.0-204-gb4acf73 EXTRA_PATCHES+= ${FILESDIR}/extra-patch-bug1125514 . endif .elif ${OPSYS} != FreeBSD || ${OSVERSION} < 1000012 || ${MOZILLA_VER:R:R} >= 37 MOZ_OPTIONS+= --enable-jemalloc .endif .endif # !DragonFly # Standard depends _ALL_DEPENDS= cairo event ffi graphite harfbuzz hunspell icu jpeg nspr nss opus 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/libevent2 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.3.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 .if exists(${FILESDIR}/patch-z-bug517422) && ${MOZILLA_VER:R:R} < 45 opus_LIB_DEPENDS= libopus.so:audio/opus opus_MOZ_OPTIONS= --with-system-opus .endif 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= libvorbisidec.so:audio/libtremor tremor_MOZ_OPTIONS= --with-system-tremor --with-system-ogg vorbis_LIB_DEPENDS= 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 .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-gtk2 MOZ_OPTIONS+= \ --enable-chrome-format=${MOZ_CHROME} \ --enable-default-toolkit=${MOZ_TOOLKIT} \ --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 \ --enable-unified-compilation \ --disable-debug-symbols \ --disable-glibtest \ --disable-gtktest \ --disable-freetypetest \ --disable-installer \ --disable-updater \ --disable-pedantic # 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 \ MOZ_GOOGLE_OAUTH_API_CLIENTID=996322985003.apps.googleusercontent.com \ MOZ_GOOGLE_OAUTH_API_KEY=IR1za9-1VK0zZ0f_O8MVFicn .if ${PORT_OPTIONS:MGTK3} MOZ_TOOLKIT= cairo-gtk3 .endif .if ${MOZ_TOOLKIT:Mcairo-qt} # don't use - transparent backgrounds (bug 521582), USE_MOZILLA+= -cairo # ports/169343 USE_DISPLAY=yes # install USE_GNOME+= pango USE_QT5+= qmake_build buildtools_build gui network quick printsupport MOZ_EXPORT+= HOST_QMAKE="${QMAKE}" HOST_MOC="${MOC}" HOST_RCC="${RCC}" .elif ${MOZ_TOOLKIT:Mcairo-gtk3} BUILD_DEPENDS+= gtk3>=3.14.6:x11-toolkits/gtk30 USE_GNOME+= gtk30 . if ${MOZILLA_VER:R:R} >= 32 USE_GNOME+= gtk20 # bug 624422 . endif .else # gtk2, cairo-gtk2 USE_GNOME+= gtk20 .endif .if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} CFLAGS+= -O3 MOZ_EXPORT+= MOZ_OPTIMIZE_FLAGS="${CFLAGS:M-O*}" MOZ_OPTIONS+= --enable-optimize .else . if ${MOZILLA_VER:R:R} >= 45 && ${ARCH} == i386 && \ (${OSVERSION} >= 1000000 && ${OSVERSION} < 1003501) USES:= compiler:c++14-lang ${USES:Ncompiler*c++11*} # XXX ports/207837 . endif 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-glib-1.so:devel/dbus-glib \ libstartup-notification-1.so:x11/startup-notification MOZ_OPTIONS+= --enable-startup-notification .else MOZ_OPTIONS+= --disable-dbus --disable-libnotify .endif .if ${PORT_OPTIONS:MFFMPEG} # dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp RUN_DEPENDS+= ffmpeg>=0.8,1:multimedia/ffmpeg -.else -MOZ_OPTIONS+= --disable-ffmpeg .endif .if ${PORT_OPTIONS:MGSTREAMER} RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:multimedia/gstreamer1-libav USE_GSTREAMER1?=good libav MOZ_OPTIONS+= --enable-gstreamer=1.0 .else 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 ${PORT_OPTIONS:MGIO} && ! ${MOZ_TOOLKIT:Mcairo-qt} MOZ_OPTIONS+= --enable-gio .else MOZ_OPTIONS+= --disable-gio .endif .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 .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 ${MOZILLA_VER:R:R} >= 40 .if ${PORT_OPTIONS:MRUST} BUILD_DEPENDS+= rustc:${RUST_PORT} RUST_PORT?= lang/rust MOZ_OPTIONS+= --enable-rust .else MOZ_OPTIONS+= --disable-rust .endif .endif .if ${PORT_OPTIONS:MDEBUG} MOZ_OPTIONS+= --enable-debug --disable-release STRIP= # ports/184285 .else MOZ_OPTIONS+= --disable-debug --enable-release .endif .if ${PORT_OPTIONS:MDTRACE} -MOZ_OPTIONS+= --enable-dtrace +MOZ_OPTIONS+= --enable-dtrace \ + --disable-gold . if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100061 LIBS+= -lelf . endif STRIP= .else MOZ_OPTIONS+= --disable-dtrace .endif .if ${MOZILLA_VER:R:R} < 40 . if ${PORT_OPTIONS:MLOGGING} || ${PORT_OPTIONS:MDEBUG} MOZ_OPTIONS+= --enable-logging . else MOZ_OPTIONS+= --disable-logging . endif .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 this 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} -f ${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} 75 79 ; \ ${FALSE}; \ fi) pre-install: gecko-moz-pis-pre-install post-install-script: gecko-create-plist gecko-create-plist: port-post-install .if !target(port-post-install) port-post-install: @${DO_NADA} .endif gecko-create-plist: # Create the plist ${RM} -f ${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: branches/2016Q2/www/firefox/Makefile =================================================================== --- branches/2016Q2/www/firefox/Makefile (revision 416429) +++ branches/2016Q2/www/firefox/Makefile (revision 416430) @@ -1,87 +1,88 @@ # Created by: Alan Eldridge # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 46.0.1 +DISTVERSION= 47.0 DISTVERSIONSUFFIX=.source +PORTREVISION= 1 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.12:devel/nspr \ - nss>=3.22.3:security/nss \ + nss>=3.23:security/nss \ libevent2>=2.0.21_2:devel/libevent2 \ soundtouch>=1.9.0:audio/soundtouch \ - harfbuzz>=1.1.3:print/harfbuzz \ - graphite2>=1.3.7:graphics/graphite2 \ - png>=1.6.19:graphics/png \ + harfbuzz>=1.2.2:print/harfbuzz \ + graphite2>=1.3.8:graphics/graphite2 \ + png>=1.6.21:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ - sqlite3>=3.10.2:databases/sqlite3 \ + sqlite3>=3.11.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 \ unzip:archivers/unzip 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= # empty MOZILLA_NAME= Firefox USE_QT5= # empty QT_NONSTANDARD= yes USE_GL= gl USES= tar:xz FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \ --enable-application=browser \ --enable-official-branding OPTIONS_EXCLUDE= GSTREAMER LOGGING OPTIONS_DEFINE= RUST OPTIONS_DEFAULT= BUNDLED_CAIRO GTK3 ${OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}_${ARCH}} # XXX lang/rust currently builds only on these platforms OPTIONS_DEFAULT_DragonFly_4_x86_64= RUST OPTIONS_DEFAULT_FreeBSD_10_amd64= RUST OPTIONS_DEFAULT_FreeBSD_10_i386= RUST OPTIONS_DEFAULT_FreeBSD_11_amd64= RUST OPTIONS_DEFAULT_FreeBSD_11_i386= RUST OPTIONS_SINGLE+= TOOLKIT OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3 .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: branches/2016Q2/www/firefox/distinfo =================================================================== --- branches/2016Q2/www/firefox/distinfo (revision 416429) +++ branches/2016Q2/www/firefox/distinfo (revision 416430) @@ -1,2 +1,2 @@ -SHA256 (firefox-46.0.1.source.tar.xz) = 98b8292a31b7e3e426f3204de1fed2a6ab38dcf64dd27bdfae556b407a198bf9 -SIZE (firefox-46.0.1.source.tar.xz) = 187160976 +SHA256 (firefox-47.0.source.tar.xz) = 51936fcf86c5f84e7fdd377d07658a02a1c99d2ebdc3c8aae01d70f947331d12 +SIZE (firefox-47.0.source.tar.xz) = 187883964 Index: branches/2016Q2/www/firefox/files/patch-bug1243312 =================================================================== --- branches/2016Q2/www/firefox/files/patch-bug1243312 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-bug1243312 (nonexistent) @@ -1,21 +0,0 @@ -commit a5c6f19 -Author: Dragana Damjanovic -Date: Wed Jan 27 01:47:00 2016 +0100 - - Bug 1243312 - nsNetCID is missing in toolkit/system/unixproxy/nsLibProxySettings.cpp. r=jduell ---- - toolkit/system/unixproxy/nsLibProxySettings.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git toolkit/system/unixproxy/nsLibProxySettings.cpp toolkit/system/unixproxy/nsLibProxySettings.cpp -index f6ec377..e9179c1 100644 ---- toolkit/system/unixproxy/nsLibProxySettings.cpp -+++ toolkit/system/unixproxy/nsLibProxySettings.cpp -@@ -9,6 +9,7 @@ - #include "nsIURI.h" - #include "nsString.h" - #include "nsCOMPtr.h" -+#include "nsNetCID.h" - #include "nspr.h" - - extern "C" { Property changes on: branches/2016Q2/www/firefox/files/patch-bug1243312 ___________________________________________________________________ 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: branches/2016Q2/www/firefox/files/patch-bug1242132 =================================================================== --- branches/2016Q2/www/firefox/files/patch-bug1242132 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-bug1242132 (nonexistent) @@ -1,13 +0,0 @@ -# nss-config --cflags returns multiple flags, don't treat them as one string - ---- python/mozbuild/mozbuild/frontend/gyp_reader.py~ -+++ python/mozbuild/mozbuild/frontend/gyp_reader.py -@@ -217,7 +217,7 @@ def read_from_gyp(config, path, output, - # We may be getting make variable references out of the - # gyp data, and we don't want those in emitted data, so - # substitute them with their actual value. -- f = expand_variables(f, config.substs) -+ f = expand_variables(f, config.substs).split() - if not f: - continue - # the result may be a string or a list. Property changes on: branches/2016Q2/www/firefox/files/patch-bug1242132 ___________________________________________________________________ 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: branches/2016Q2/www/firefox/files/patch-bug1252246 =================================================================== --- branches/2016Q2/www/firefox/files/patch-bug1252246 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-bug1252246 (nonexistent) @@ -1,44 +0,0 @@ -# Prefer PTHREAD_PROCESS_SHARED on FreeBSD 11.0 or later - -diff --git a/ipc/glue/CrossProcessMutex.h b/ipc/glue/CrossProcessMutex.h ---- ipc/glue/CrossProcessMutex.h -+++ ipc/glue/CrossProcessMutex.h -@@ -9,7 +9,7 @@ - #include "base/process.h" - #include "mozilla/Mutex.h" - --#if defined(OS_LINUX) || defined(XP_DARWIN) -+#if !defined(OS_WIN) && !defined(OS_NETBSD) && !defined(OS_OPENBSD) - #include - #include "SharedMemoryBasic.h" - #include "mozilla/Atomics.h" -@@ -34,7 +34,7 @@ struct ParamTraits; - namespace mozilla { - #if defined(OS_WIN) - typedef HANDLE CrossProcessMutexHandle; --#elif defined(OS_LINUX) || defined(OS_MACOSX) -+#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD) - typedef mozilla::ipc::SharedMemoryBasic::Handle CrossProcessMutexHandle; - #else - // Stub for other platforms. We can't use uintptr_t here since different -@@ -100,7 +100,7 @@ private: - - #if defined(OS_WIN) - HANDLE mMutex; --#elif defined(OS_LINUX) || defined(OS_MACOSX) -+#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD) - RefPtr mSharedBuffer; - pthread_mutex_t* mMutex; - mozilla::Atomic* mCount; -diff --git a/ipc/glue/moz.build b/ipc/glue/moz.build ---- ipc/glue/moz.build -+++ ipc/glue/moz.build -@@ -61,7 +61,7 @@ if CONFIG['OS_ARCH'] == 'WINNT': - SOURCES += [ - 'CrossProcessMutex_windows.cpp', - ] --elif CONFIG['OS_ARCH'] in ('Linux', 'Darwin'): -+elif not CONFIG['OS_ARCH'] in ('NetBSD', 'OpenBSD'): - UNIFIED_SOURCES += [ - 'CrossProcessMutex_posix.cpp', - ] Property changes on: branches/2016Q2/www/firefox/files/patch-bug1252246 ___________________________________________________________________ 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: branches/2016Q2/www/firefox/files/patch-bug1239550 =================================================================== --- branches/2016Q2/www/firefox/files/patch-bug1239550 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-bug1239550 (nonexistent) @@ -1,144 +0,0 @@ -diff --git a/media/ffvpx/config.asm b/media/ffvpx/config.asm ---- media/ffvpx/config.asm -+++ media/ffvpx/config.asm -@@ -192,7 +192,6 @@ - %define HAVE_MACH_MACH_TIME_H 0 - %define HAVE_MACHINE_IOCTL_BT848_H 0 - %define HAVE_MACHINE_IOCTL_METEOR_H 0 --%define HAVE_MALLOC_H 1 - %define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 - %define HAVE_OPENGL_GL3_H 0 - %define HAVE_POLL_H 1 -@@ -268,18 +267,15 @@ - %define HAVE_ISATTY 1 - %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 - %define HAVE_KBHIT 0 --%define HAVE_LOCALTIME_R 1 - %define HAVE_LSTAT 1 - %define HAVE_LZO1X_999_COMPRESS 0 - %define HAVE_MACH_ABSOLUTE_TIME 0 - %define HAVE_MAPVIEWOFFILE 0 --%define HAVE_MEMALIGN 1 - %define HAVE_MKSTEMP 1 - %define HAVE_MMAP 1 - %define HAVE_MPROTECT 1 - %define HAVE_NANOSLEEP 1 - %define HAVE_PEEKNAMEDPIPE 0 --%define HAVE_POSIX_MEMALIGN 1 - %define HAVE_PTHREAD_CANCEL 1 - %define HAVE_SCHED_GETAFFINITY 1 - %define HAVE_SETCONSOLETEXTATTRIBUTE 0 -diff --git a/media/ffvpx/config_unix32.h b/media/ffvpx/config_unix32.h ---- media/ffvpx/config_unix32.h -+++ media/ffvpx/config_unix32.h -@@ -216,7 +216,6 @@ - #define HAVE_MACH_MACH_TIME_H 0 - #define HAVE_MACHINE_IOCTL_BT848_H 0 - #define HAVE_MACHINE_IOCTL_METEOR_H 0 --#define HAVE_MALLOC_H 1 - #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 - #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 - #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 -@@ -269,7 +268,6 @@ - #define HAVE_TRUNCF 1 - #define HAVE_ACCESS 1 - #define HAVE_ALIGNED_MALLOC 0 --#define HAVE_ARC4RANDOM 0 - #define HAVE_CLOCK_GETTIME 1 - #define HAVE_CLOSESOCKET 0 - #define HAVE_COMMANDLINETOARGVW 0 -@@ -295,18 +293,15 @@ - #define HAVE_ISATTY 1 - #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 - #define HAVE_KBHIT 0 --#define HAVE_LOCALTIME_R 1 - #define HAVE_LSTAT 1 - #define HAVE_LZO1X_999_COMPRESS 0 - #define HAVE_MACH_ABSOLUTE_TIME 0 - #define HAVE_MAPVIEWOFFILE 0 --#define HAVE_MEMALIGN 0 - #define HAVE_MKSTEMP 1 - #define HAVE_MMAP 1 - #define HAVE_MPROTECT 1 - #define HAVE_NANOSLEEP 1 - #define HAVE_PEEKNAMEDPIPE 0 --#define HAVE_POSIX_MEMALIGN 0 - #define HAVE_PTHREAD_CANCEL 1 - #define HAVE_SCHED_GETAFFINITY 1 - #define HAVE_SETCONSOLETEXTATTRIBUTE 0 -diff --git a/media/ffvpx/config_unix64.asm b/media/ffvpx/config_unix64.asm ---- media/ffvpx/config_unix64.asm -+++ media/ffvpx/config_unix64.asm -@@ -200,7 +200,6 @@ - %define HAVE_MACH_MACH_TIME_H 0 - %define HAVE_MACHINE_IOCTL_BT848_H 0 - %define HAVE_MACHINE_IOCTL_METEOR_H 0 --%define HAVE_MALLOC_H 1 - %define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 - %define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 - %define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 -@@ -253,7 +252,6 @@ - %define HAVE_TRUNCF 1 - %define HAVE_ACCESS 1 - %define HAVE_ALIGNED_MALLOC 0 --%define HAVE_ARC4RANDOM 0 - %define HAVE_CLOCK_GETTIME 1 - %define HAVE_CLOSESOCKET 0 - %define HAVE_COMMANDLINETOARGVW 0 -@@ -279,18 +277,15 @@ - %define HAVE_ISATTY 1 - %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 - %define HAVE_KBHIT 0 --%define HAVE_LOCALTIME_R 1 - %define HAVE_LSTAT 1 - %define HAVE_LZO1X_999_COMPRESS 0 - %define HAVE_MACH_ABSOLUTE_TIME 0 - %define HAVE_MAPVIEWOFFILE 0 --%define HAVE_MEMALIGN 1 - %define HAVE_MKSTEMP 1 - %define HAVE_MMAP 1 - %define HAVE_MPROTECT 1 - %define HAVE_NANOSLEEP 1 - %define HAVE_PEEKNAMEDPIPE 0 --%define HAVE_POSIX_MEMALIGN 1 - %define HAVE_PTHREAD_CANCEL 1 - %define HAVE_SCHED_GETAFFINITY 1 - %define HAVE_SETCONSOLETEXTATTRIBUTE 0 -diff --git a/media/ffvpx/config_unix64.h b/media/ffvpx/config_unix64.h ---- media/ffvpx/config_unix64.h -+++ media/ffvpx/config_unix64.h -@@ -216,7 +216,6 @@ - #define HAVE_MACH_MACH_TIME_H 0 - #define HAVE_MACHINE_IOCTL_BT848_H 0 - #define HAVE_MACHINE_IOCTL_METEOR_H 0 --#define HAVE_MALLOC_H 1 - #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 - #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 - #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 -@@ -269,7 +268,6 @@ - #define HAVE_TRUNCF 1 - #define HAVE_ACCESS 1 - #define HAVE_ALIGNED_MALLOC 0 --#define HAVE_ARC4RANDOM 0 - #define HAVE_CLOCK_GETTIME 1 - #define HAVE_CLOSESOCKET 0 - #define HAVE_COMMANDLINETOARGVW 0 -@@ -295,18 +293,15 @@ - #define HAVE_ISATTY 1 - #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 - #define HAVE_KBHIT 0 --#define HAVE_LOCALTIME_R 1 - #define HAVE_LSTAT 1 - #define HAVE_LZO1X_999_COMPRESS 0 - #define HAVE_MACH_ABSOLUTE_TIME 0 - #define HAVE_MAPVIEWOFFILE 0 --#define HAVE_MEMALIGN 1 - #define HAVE_MKSTEMP 1 - #define HAVE_MMAP 1 - #define HAVE_MPROTECT 1 - #define HAVE_NANOSLEEP 1 - #define HAVE_PEEKNAMEDPIPE 0 --#define HAVE_POSIX_MEMALIGN 1 - #define HAVE_PTHREAD_CANCEL 1 - #define HAVE_SCHED_GETAFFINITY 1 - #define HAVE_SETCONSOLETEXTATTRIBUTE 0 Property changes on: branches/2016Q2/www/firefox/files/patch-bug1239550 ___________________________________________________________________ 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: branches/2016Q2/www/firefox/files/patch-bug1269165 =================================================================== --- branches/2016Q2/www/firefox/files/patch-bug1269165 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-bug1269165 (nonexistent) @@ -1,24 +0,0 @@ -# getUserMedia fails to enumerate ALSA plugins - ---- media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa_linux.cc.orig 2016-04-22 00:37:17 UTC -+++ media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa_linux.cc -@@ -1752,7 +1752,9 @@ int32_t AudioDeviceLinuxALSA::GetDevices - // Don't use snd_device_name_hint(-1,..) since there is a access violation - // inside this ALSA API with libasound.so.2.0.0. - int card = -1; -+#ifdef WEBRTC_LINUX - while (!(LATE(snd_card_next)(&card)) && (card >= 0) && keepSearching) { -+#endif - void **hints; - err = LATE(snd_device_name_hint)(card, "pcm", &hints); - if (err != 0) -@@ -1878,7 +1880,9 @@ int32_t AudioDeviceLinuxALSA::GetDevices - LATE(snd_strerror)(err)); - // Continue and return true anyway, since we did get the whole list. - } -+#ifdef WEBRTC_LINUX - } -+#endif - - if (FUNC_GET_NUM_OF_DEVICE == function) - { Property changes on: branches/2016Q2/www/firefox/files/patch-bug1269165 ___________________________________________________________________ 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: branches/2016Q2/www/firefox/files/patch-bug1021761 =================================================================== --- branches/2016Q2/www/firefox/files/patch-bug1021761 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-bug1021761 (revision 416430) @@ -1,1110 +1,1110 @@ -diff --git configure.in configure.in +diff --git old-configure.in configure.in index 48e60c0..ec08417 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -5591,6 +5591,67 @@ fi AC_SUBST(MOZ_WEBM_ENCODER) dnl ================================== +dnl = Check OSS availability +dnl ================================== + +dnl If using Linux, Solaris or BSDs, ensure that OSS is available +case "$OS_TARGET" in +Linux|SunOS|DragonFly|FreeBSD|GNU/kFreeBSD) + MOZ_OSS=1 + ;; +esac + +MOZ_ARG_WITH_STRING(oss, +[ --with-oss[=PFX] Enable OpenSoundSystem support [installed at prefix PFX]], + OSSPREFIX=$withval) + +if test -n "$OSSPREFIX"; then + if test "$OSSPREFIX" != "no"; then + MOZ_OSS=1 + else + MOZ_OSS= + fi +fi + +_SAVE_CFLAGS=$CFLAGS +_SAVE_LIBS=$LIBS +if test -n "$MOZ_OSS"; then + dnl Prefer 4Front implementation + AC_MSG_CHECKING([MOZ_OSS_CFLAGS]) + if test "$OSSPREFIX" != "yes"; then + oss_conf=${OSSPREFIX%/usr}/etc/oss.conf + if test -f "$oss_conf"; then + . "$oss_conf" + else + OSSLIBDIR=$OSSPREFIX/lib/oss + fi + if test -d "$OSSLIBDIR"; then + MOZ_OSS_CFLAGS="$MOZ_OSS_CFLAGS -I$OSSLIBDIR/include" + fi + fi + AC_MSG_RESULT([$MOZ_OSS_CFLAGS]) + + CFLAGS="$CFLAGS $MOZ_OSS_CFLAGS" + MOZ_CHECK_HEADERS(sys/soundcard.h soundcard.h) + + if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \ + "$ac_cv_header_soundcard_h" != "yes"; then + AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET. Disable with --disable-ogg --disable-wave --disable-webm.]) + fi + + dnl Assume NetBSD implementation over SunAudio + AC_CHECK_LIB(ossaudio, _oss_ioctl, + [AC_DEFINE_UNQUOTED(CUBEB_OSS_DEFAULT_OUTPUT, "/dev/sound") + MOZ_OSS_LIBS="$MOZ_OSS_LIBS -lossaudio"]) +fi +CFLAGS=$_SAVE_CFLAGS +LIBS=$_SAVE_LIBS + +AC_SUBST(MOZ_OSS) +AC_SUBST_LIST(MOZ_OSS_CFLAGS) +AC_SUBST_LIST(MOZ_OSS_LIBS) + +dnl ================================== dnl = Check alsa availability on Linux dnl ================================== diff --git media/libcubeb/AUTHORS media/libcubeb/AUTHORS index b441e8a..950d9e5 100644 --- media/libcubeb/AUTHORS +++ media/libcubeb/AUTHORS @@ -4,3 +4,4 @@ Michael Wu Paul Adenot David Richards Sebastien Alaiwan +Evgeniy Vodolazskiy diff --git media/libcubeb/src/cubeb.c media/libcubeb/src/cubeb.c index 9c3adcc..45d765b 100644 --- media/libcubeb/src/cubeb.c +++ media/libcubeb/src/cubeb.c @@ -54,6 +54,9 @@ int opensl_init(cubeb ** context, char const * context_name); #if defined(USE_AUDIOTRACK) int audiotrack_init(cubeb ** context, char const * context_name); #endif +#if defined(USE_OSS) +int oss_init(cubeb ** context, char const * context_name); +#endif int validate_stream_params(cubeb_stream_params stream_params) @@ -120,6 +123,9 @@ cubeb_init(cubeb ** context, char const * context_name) #if defined(USE_AUDIOTRACK) audiotrack_init, #endif +#if defined(USE_OSS) + oss_init, +#endif }; int i; diff --git media/libcubeb/src/cubeb_alsa.c media/libcubeb/src/cubeb_alsa.c index a962553..1f780f4 100644 --- media/libcubeb/src/cubeb_alsa.c +++ media/libcubeb/src/cubeb_alsa.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -24,6 +25,50 @@ #define ALSA_PA_PLUGIN "ALSA <-> PulseAudio PCM I/O Plugin" +#ifdef DISABLE_LIBASOUND_DLOPEN +#define WRAP(x) x +#else +#define WRAP(x) cubeb_##x +#define MAKE_TYPEDEF(x) static typeof(x) * cubeb_##x +MAKE_TYPEDEF(snd_config); +MAKE_TYPEDEF(snd_config_add); +MAKE_TYPEDEF(snd_config_copy); +MAKE_TYPEDEF(snd_config_delete); +MAKE_TYPEDEF(snd_config_get_id); +MAKE_TYPEDEF(snd_config_get_string); +MAKE_TYPEDEF(snd_config_imake_integer); +MAKE_TYPEDEF(snd_config_search); +MAKE_TYPEDEF(snd_config_search_definition); +MAKE_TYPEDEF(snd_lib_error_set_handler); +MAKE_TYPEDEF(snd_pcm_avail_update); +MAKE_TYPEDEF(snd_pcm_close); +MAKE_TYPEDEF(snd_pcm_delay); +MAKE_TYPEDEF(snd_pcm_drain); +MAKE_TYPEDEF(snd_pcm_frames_to_bytes); +MAKE_TYPEDEF(snd_pcm_get_params); +/* snd_pcm_hw_params_alloca is actually a macro */ +/* MAKE_TYPEDEF(snd_pcm_hw_params_alloca); */ +MAKE_TYPEDEF(snd_pcm_hw_params_sizeof); +#define snd_pcm_hw_params_sizeof cubeb_snd_pcm_hw_params_sizeof +MAKE_TYPEDEF(snd_pcm_hw_params_any); +MAKE_TYPEDEF(snd_pcm_hw_params_get_channels_max); +MAKE_TYPEDEF(snd_pcm_hw_params_get_rate); +MAKE_TYPEDEF(snd_pcm_hw_params_set_rate_near); +MAKE_TYPEDEF(snd_pcm_nonblock); +MAKE_TYPEDEF(snd_pcm_open); +MAKE_TYPEDEF(snd_pcm_open_lconf); +MAKE_TYPEDEF(snd_pcm_pause); +MAKE_TYPEDEF(snd_pcm_poll_descriptors); +MAKE_TYPEDEF(snd_pcm_poll_descriptors_count); +MAKE_TYPEDEF(snd_pcm_poll_descriptors_revents); +MAKE_TYPEDEF(snd_pcm_recover); +MAKE_TYPEDEF(snd_pcm_set_params); +MAKE_TYPEDEF(snd_pcm_state); +MAKE_TYPEDEF(snd_pcm_writei); + +#undef MAKE_TYPEDEF +#endif + /* ALSA is not thread-safe. snd_pcm_t instances are individually protected by the owning cubeb_stream's mutex. snd_pcm_t creation and destruction is not thread-safe until ALSA 1.0.24 (see alsa-lib.git commit 91c9c8f1), @@ -64,6 +109,8 @@ struct cubeb { workaround is not required. */ snd_config_t * local_config; int is_pa; + + void * libasound; }; enum stream_state { @@ -262,7 +309,7 @@ alsa_refill_stream(cubeb_stream * stm) pthread_mutex_lock(&stm->mutex); - r = snd_pcm_poll_descriptors_revents(stm->pcm, stm->fds, stm->nfds, &revents); + r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents); if (r < 0 || revents != POLLOUT) { /* This should be a stream error; it makes no sense for poll(2) to wake for this stream and then have the stream report that it's not ready. @@ -271,10 +318,10 @@ alsa_refill_stream(cubeb_stream * stm) return RUNNING; } - avail = snd_pcm_avail_update(stm->pcm); + avail = WRAP(snd_pcm_avail_update)(stm->pcm); if (avail == -EPIPE) { - snd_pcm_recover(stm->pcm, avail, 1); - avail = snd_pcm_avail_update(stm->pcm); + WRAP(snd_pcm_recover)(stm->pcm, avail, 1); + avail = WRAP(snd_pcm_avail_update)(stm->pcm); } /* Failed to recover from an xrun, this stream must be broken. */ @@ -293,8 +340,8 @@ alsa_refill_stream(cubeb_stream * stm) available to write. If avail is still zero here, the stream must be in a funky state, so recover and try again. */ if (avail == 0) { - snd_pcm_recover(stm->pcm, -EPIPE, 1); - avail = snd_pcm_avail_update(stm->pcm); + WRAP(snd_pcm_recover)(stm->pcm, -EPIPE, 1); + avail = WRAP(snd_pcm_avail_update)(stm->pcm); if (avail <= 0) { pthread_mutex_unlock(&stm->mutex); stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); @@ -302,7 +349,7 @@ alsa_refill_stream(cubeb_stream * stm) } } - p = calloc(1, snd_pcm_frames_to_bytes(stm->pcm, avail)); + p = calloc(1, WRAP(snd_pcm_frames_to_bytes)(stm->pcm, avail)); assert(p); pthread_mutex_unlock(&stm->mutex); @@ -327,10 +374,10 @@ alsa_refill_stream(cubeb_stream * stm) b[i] *= stm->volume; } } - wrote = snd_pcm_writei(stm->pcm, p, got); + wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); if (wrote == -EPIPE) { - snd_pcm_recover(stm->pcm, wrote, 1); - wrote = snd_pcm_writei(stm->pcm, p, got); + WRAP(snd_pcm_recover)(stm->pcm, wrote, 1); + wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); } assert(wrote >= 0 && wrote == got); stm->write_position += wrote; @@ -342,7 +389,7 @@ alsa_refill_stream(cubeb_stream * stm) /* Fill the remaining buffer with silence to guarantee one full period has been written. */ - snd_pcm_writei(stm->pcm, (char *) p + got, avail - got); + WRAP(snd_pcm_writei)(stm->pcm, (char *) p + got, avail - got); set_timeout(&stm->drain_timeout, buffer_time * 1000); @@ -453,26 +500,26 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm) slave_def = NULL; - r = snd_config_search(root_pcm, "slave", &slave_pcm); + r = WRAP(snd_config_search)(root_pcm, "slave", &slave_pcm); if (r < 0) { return NULL; } - r = snd_config_get_string(slave_pcm, &string); + r = WRAP(snd_config_get_string)(slave_pcm, &string); if (r >= 0) { - r = snd_config_search_definition(lconf, "pcm_slave", string, &slave_def); + r = WRAP(snd_config_search_definition)(lconf, "pcm_slave", string, &slave_def); if (r < 0) { return NULL; } } do { - r = snd_config_search(slave_def ? slave_def : slave_pcm, "pcm", &pcm); + r = WRAP(snd_config_search)(slave_def ? slave_def : slave_pcm, "pcm", &pcm); if (r < 0) { break; } - r = snd_config_get_string(slave_def ? slave_def : slave_pcm, &string); + r = WRAP(snd_config_get_string)(slave_def ? slave_def : slave_pcm, &string); if (r < 0) { break; } @@ -481,7 +528,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm) if (r < 0 || r > (int) sizeof(node_name)) { break; } - r = snd_config_search(lconf, node_name, &pcm); + r = WRAP(snd_config_search)(lconf, node_name, &pcm); if (r < 0) { break; } @@ -490,7 +537,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm) } while (0); if (slave_def) { - snd_config_delete(slave_def); + WRAP(snd_config_delete)(slave_def); } return NULL; @@ -513,22 +560,22 @@ init_local_config_with_workaround(char const * pcm_name) lconf = NULL; - if (snd_config == NULL) { + if (*WRAP(snd_config) == NULL) { return NULL; } - r = snd_config_copy(&lconf, snd_config); + r = WRAP(snd_config_copy)(&lconf, *WRAP(snd_config)); if (r < 0) { return NULL; } do { - r = snd_config_search_definition(lconf, "pcm", pcm_name, &pcm_node); + r = WRAP(snd_config_search_definition)(lconf, "pcm", pcm_name, &pcm_node); if (r < 0) { break; } - r = snd_config_get_id(pcm_node, &string); + r = WRAP(snd_config_get_id)(pcm_node, &string); if (r < 0) { break; } @@ -537,7 +584,7 @@ init_local_config_with_workaround(char const * pcm_name) if (r < 0 || r > (int) sizeof(node_name)) { break; } - r = snd_config_search(lconf, node_name, &pcm_node); + r = WRAP(snd_config_search)(lconf, node_name, &pcm_node); if (r < 0) { break; } @@ -548,12 +595,12 @@ init_local_config_with_workaround(char const * pcm_name) } /* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */ - r = snd_config_search(pcm_node, "type", &node); + r = WRAP(snd_config_search)(pcm_node, "type", &node); if (r < 0) { break; } - r = snd_config_get_string(node, &string); + r = WRAP(snd_config_get_string)(node, &string); if (r < 0) { break; } @@ -564,18 +611,18 @@ init_local_config_with_workaround(char const * pcm_name) /* Don't clobber an explicit existing handle_underrun value, set it only if it doesn't already exist. */ - r = snd_config_search(pcm_node, "handle_underrun", &node); + r = WRAP(snd_config_search)(pcm_node, "handle_underrun", &node); if (r != -ENOENT) { break; } /* Disable pcm_pulse's asynchronous underrun handling. */ - r = snd_config_imake_integer(&node, "handle_underrun", 0); + r = WRAP(snd_config_imake_integer)(&node, "handle_underrun", 0); if (r < 0) { break; } - r = snd_config_add(pcm_node, node); + r = WRAP(snd_config_add)(pcm_node, node); if (r < 0) { break; } @@ -583,7 +630,7 @@ init_local_config_with_workaround(char const * pcm_name) return lconf; } while (0); - snd_config_delete(lconf); + WRAP(snd_config_delete)(lconf); return NULL; } @@ -595,9 +642,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, snd_pcm_stream_t stream, snd_config_t * l pthread_mutex_lock(&cubeb_alsa_mutex); if (local_config) { - r = snd_pcm_open_lconf(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config); + r = WRAP(snd_pcm_open_lconf)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config); } else { - r = snd_pcm_open(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK); + r = WRAP(snd_pcm_open)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK); } pthread_mutex_unlock(&cubeb_alsa_mutex); @@ -610,7 +657,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm) int r; pthread_mutex_lock(&cubeb_alsa_mutex); - r = snd_pcm_close(pcm); + r = WRAP(snd_pcm_close)(pcm); pthread_mutex_unlock(&cubeb_alsa_mutex); return r; @@ -667,12 +714,65 @@ alsa_init(cubeb ** context, char const * context_name) pthread_attr_t attr; snd_pcm_t * dummy; + void * libasound = NULL; + +#ifndef DISABLE_LIBASOUND_DLOPEN + libasound = dlopen("libasound.so", RTLD_LAZY); + if (!libasound) { + return CUBEB_ERROR; + } + +#define LOAD(x) do { \ + cubeb_##x = dlsym(libasound, #x); \ + if (!cubeb_##x) { \ + dlclose(libasound); \ + return CUBEB_ERROR; \ + } \ + } while(0) + + LOAD(snd_config); + LOAD(snd_config_add); + LOAD(snd_config_copy); + LOAD(snd_config_delete); + LOAD(snd_config_get_id); + LOAD(snd_config_get_string); + LOAD(snd_config_imake_integer); + LOAD(snd_config_search); + LOAD(snd_config_search_definition); + LOAD(snd_lib_error_set_handler); + LOAD(snd_pcm_avail_update); + LOAD(snd_pcm_close); + LOAD(snd_pcm_delay); + LOAD(snd_pcm_drain); + LOAD(snd_pcm_frames_to_bytes); + LOAD(snd_pcm_get_params); + /* snd_pcm_hw_params_alloca is actually a macro */ + /* LOAD(snd_pcm_hw_params_alloca); */ + LOAD(snd_pcm_hw_params_sizeof); + LOAD(snd_pcm_hw_params_any); + LOAD(snd_pcm_hw_params_get_channels_max); + LOAD(snd_pcm_hw_params_get_rate); + LOAD(snd_pcm_hw_params_set_rate_near); + LOAD(snd_pcm_nonblock); + LOAD(snd_pcm_open); + LOAD(snd_pcm_open_lconf); + LOAD(snd_pcm_pause); + LOAD(snd_pcm_poll_descriptors); + LOAD(snd_pcm_poll_descriptors_count); + LOAD(snd_pcm_poll_descriptors_revents); + LOAD(snd_pcm_recover); + LOAD(snd_pcm_set_params); + LOAD(snd_pcm_state); + LOAD(snd_pcm_writei); + +#undef LOAD +#endif assert(context); *context = NULL; pthread_mutex_lock(&cubeb_alsa_mutex); if (!cubeb_alsa_error_handler_set) { - snd_lib_error_set_handler(silent_error_handler); + WRAP(snd_lib_error_set_handler)(silent_error_handler); cubeb_alsa_error_handler_set = 1; } pthread_mutex_unlock(&cubeb_alsa_mutex); @@ -680,6 +780,8 @@ alsa_init(cubeb ** context, char const * context_name) ctx = calloc(1, sizeof(*ctx)); assert(ctx); + ctx->libasound = libasound; + ctx->ops = &alsa_ops; r = pthread_mutex_init(&ctx->mutex, NULL); @@ -729,7 +831,7 @@ alsa_init(cubeb ** context, char const * context_name) config fails with EINVAL, the PA PCM is too old for this workaround. */ if (r == -EINVAL) { pthread_mutex_lock(&cubeb_alsa_mutex); - snd_config_delete(ctx->local_config); + WRAP(snd_config_delete)(ctx->local_config); pthread_mutex_unlock(&cubeb_alsa_mutex); ctx->local_config = NULL; } else if (r >= 0) { @@ -768,9 +870,13 @@ alsa_destroy(cubeb * ctx) pthread_mutex_destroy(&ctx->mutex); free(ctx->fds); + if (ctx->libasound) { + dlclose(ctx->libasound); + } + if (ctx->local_config) { pthread_mutex_lock(&cubeb_alsa_mutex); - snd_config_delete(ctx->local_config); + WRAP(snd_config_delete)(ctx->local_config); pthread_mutex_unlock(&cubeb_alsa_mutex); } @@ -838,7 +944,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, return CUBEB_ERROR; } - r = snd_pcm_nonblock(stm->pcm, 1); + r = WRAP(snd_pcm_nonblock)(stm->pcm, 1); assert(r == 0); /* Ugly hack: the PA ALSA plugin allows buffer configurations that can't @@ -859,7 +965,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre latency = latency < 500 ? 500 : latency; } - r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, + r = WRAP(snd_pcm_set_params)(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, stm->params.channels, stm->params.rate, 1, latency * 1000); if (r < 0) { @@ -867,15 +973,15 @@ alsa_stream_init(cubeb * ctx, cubeb_stre return CUBEB_ERROR_INVALID_FORMAT; } - r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &period_size); + r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &period_size); assert(r == 0); - stm->nfds = snd_pcm_poll_descriptors_count(stm->pcm); + stm->nfds = WRAP(snd_pcm_poll_descriptors_count)(stm->pcm); assert(stm->nfds > 0); stm->saved_fds = calloc(stm->nfds, sizeof(struct pollfd)); assert(stm->saved_fds); - r = snd_pcm_poll_descriptors(stm->pcm, stm->saved_fds, stm->nfds); + r = WRAP(snd_pcm_poll_descriptors)(stm->pcm, stm->saved_fds, stm->nfds); assert((nfds_t) r == stm->nfds); r = pthread_cond_init(&stm->cond, NULL); @@ -895,7 +1001,7 @@ alsa_stream_destroy(cubeb_stream * stm) pthread_mutex_lock(&stm->mutex); if (stm->pcm) { if (stm->state == DRAINING) { - snd_pcm_drain(stm->pcm); + WRAP(snd_pcm_drain)(stm->pcm); } alsa_locked_pcm_close(stm->pcm); stm->pcm = NULL; @@ -938,12 +1044,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) return CUBEB_ERROR; } - r = snd_pcm_hw_params_any(stm->pcm, hw_params); + r = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params); if (r < 0) { return CUBEB_ERROR; } - r = snd_pcm_hw_params_get_channels_max(hw_params, max_channels); + r = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels); if (r < 0) { return CUBEB_ERROR; } @@ -963,34 +1069,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) { /* get a pcm, disabling resampling, so we get a rate the * hardware/dmix/pulse/etc. supports. */ - r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); + r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); if (r < 0) { return CUBEB_ERROR; } - r = snd_pcm_hw_params_any(pcm, hw_params); + r = WRAP(snd_pcm_hw_params_any)(pcm, hw_params); if (r < 0) { - snd_pcm_close(pcm); + WRAP(snd_pcm_close)(pcm); return CUBEB_ERROR; } - r = snd_pcm_hw_params_get_rate(hw_params, rate, &dir); + r = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir); if (r >= 0) { /* There is a default rate: use it. */ - snd_pcm_close(pcm); + WRAP(snd_pcm_close)(pcm); return CUBEB_OK; } /* Use a common rate, alsa may adjust it based on hw/etc. capabilities. */ *rate = 44100; - r = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL); + r = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL); if (r < 0) { - snd_pcm_close(pcm); + WRAP(snd_pcm_close)(pcm); return CUBEB_ERROR; } - snd_pcm_close(pcm); + WRAP(snd_pcm_close)(pcm); return CUBEB_OK; } @@ -1013,7 +1119,7 @@ alsa_stream_start(cubeb_stream * stm) ctx = stm->context; pthread_mutex_lock(&stm->mutex); - snd_pcm_pause(stm->pcm, 0); + WRAP(snd_pcm_pause)(stm->pcm, 0); gettimeofday(&stm->last_activity, NULL); pthread_mutex_unlock(&stm->mutex); @@ -1047,7 +1153,7 @@ alsa_stream_stop(cubeb_stream * stm) pthread_mutex_unlock(&ctx->mutex); pthread_mutex_lock(&stm->mutex); - snd_pcm_pause(stm->pcm, 1); + WRAP(snd_pcm_pause)(stm->pcm, 1); pthread_mutex_unlock(&stm->mutex); return CUBEB_OK; @@ -1063,8 +1169,8 @@ alsa_stream_get_position(cubeb_stream * stm, uint64_t * position) pthread_mutex_lock(&stm->mutex); delay = -1; - if (snd_pcm_state(stm->pcm) != SND_PCM_STATE_RUNNING || - snd_pcm_delay(stm->pcm, &delay) != 0) { + if (WRAP(snd_pcm_state)(stm->pcm) != SND_PCM_STATE_RUNNING || + WRAP(snd_pcm_delay)(stm->pcm, &delay) != 0) { *position = stm->last_position; pthread_mutex_unlock(&stm->mutex); return CUBEB_OK; @@ -1089,7 +1195,7 @@ alsa_stream_get_latency(cubeb_stream * stm, uint32_t * latency) snd_pcm_sframes_t delay; /* This function returns the delay in frames until a frame written using snd_pcm_writei is sent to the DAC. The DAC delay should be < 1ms anyways. */ - if (snd_pcm_delay(stm->pcm, &delay)) { + if (WRAP(snd_pcm_delay)(stm->pcm, &delay)) { return CUBEB_ERROR; } diff --git media/libcubeb/src/cubeb_oss.c media/libcubeb/src/cubeb_oss.c new file mode 100644 index 0000000..5e38e27 --- /dev/null +++ media/libcubeb/src/cubeb_oss.c @@ -0,0 +1,412 @@ +/* + * Copyright © 2014 Mozilla Foundation + * + * This program is made available under an ISC-style license. See the + * accompanying file LICENSE for details. + */ +#if defined(HAVE_SYS_SOUNDCARD_H) +#include +#else +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "cubeb/cubeb.h" +#include "cubeb-internal.h" + +#ifndef CUBEB_OSS_DEFAULT_OUTPUT +#define CUBEB_OSS_DEFAULT_OUTPUT "/dev/dsp" +#endif + +#define OSS_BUFFER_SIZE 1024 + +struct cubeb { + struct cubeb_ops const * ops; +}; + +struct cubeb_stream { + cubeb * context; + + cubeb_data_callback data_callback; + cubeb_state_callback state_callback; + void * user_ptr; + float volume; + float panning; + + pthread_mutex_t state_mutex; + pthread_cond_t state_cond; + + int running; + int stopped; + int floating; + + /* These two vars are needed to support old versions of OSS */ + unsigned int position_bytes; + unsigned int last_position_bytes; + + uint64_t written_frags; /* The number of fragments written to /dev/dsp */ + uint64_t missed_frags; /* fragments output with stopped stream */ + + cubeb_stream_params params; + int fd; + pthread_t th; +}; + +static struct cubeb_ops const oss_ops; + +int oss_init(cubeb ** context, char const * context_name) +{ + cubeb* ctx = (cubeb*)malloc(sizeof(cubeb)); + ctx->ops = &oss_ops; + *context = ctx; + return CUBEB_OK; +} + +static void oss_destroy(cubeb *ctx) +{ + free(ctx); +} + +static char const * oss_get_backend_id(cubeb * context) +{ + static char oss_name[] = "oss"; + return oss_name; +} + +static int oss_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) +{ + *max_channels = 2; /* Let's support only stereo for now */ + return CUBEB_OK; +} + +static int oss_get_min_latency(cubeb * context, cubeb_stream_params params, + uint32_t * latency_ms) +{ + /* 40ms is a big enough number to work ok */ + *latency_ms = 40; + return CUBEB_OK; +} + +static int oss_get_preferred_sample_rate(cubeb *context, uint32_t * rate) +{ + /* 48000 seems a prefered choice for most audio devices + * and a good choice for OSS */ + *rate = 48000; + return CUBEB_OK; +} + +static void run_state_callback(cubeb_stream *stream, cubeb_state state) +{ + if (stream->state_callback) { + stream->state_callback(stream, stream->user_ptr, state); + } +} + +static long run_data_callback(cubeb_stream *stream, void *buffer, long nframes) +{ + long got = 0; + pthread_mutex_lock(&stream->state_mutex); + if (stream->data_callback && stream->running && !stream->stopped) { + pthread_mutex_unlock(&stream->state_mutex); + got = stream->data_callback(stream, stream->user_ptr, NULL, buffer, nframes); + } else { + pthread_mutex_unlock(&stream->state_mutex); + } + return got; +} + +static void apply_volume(int16_t* buffer, unsigned int n, + float volume, float panning) +{ + float left = volume; + float right = volume; + unsigned int i; + int pan[2]; + if (panning<0) { + right *= (1+panning); + } else { + left *= (1-panning); + } + pan[0] = 128.0*left; + pan[1] = 128.0*right; + for(i=0; irunning) { + pthread_mutex_lock(&stream->state_mutex); + if (stream->stopped) { + pthread_mutex_unlock(&stream->state_mutex); + run_state_callback(stream, CUBEB_STATE_STOPPED); + pthread_mutex_lock(&stream->state_mutex); + while (stream->stopped) { + pthread_cond_wait(&stream->state_cond, &stream->state_mutex); + } + pthread_mutex_unlock(&stream->state_mutex); + run_state_callback(stream, CUBEB_STATE_STARTED); + continue; + } + pthread_mutex_unlock(&stream->state_mutex); + if (stream->floating) { + got = run_data_callback(stream, f_buffer, + OSS_BUFFER_SIZE/stream->params.channels); + for (i=0; i<((unsigned long)got)*stream->params.channels; i++) { + buffer[i] = f_buffer[i]*32767.0; + } + } else { + got = run_data_callback(stream, buffer, + OSS_BUFFER_SIZE/stream->params.channels); + } + apply_volume(buffer, got*stream->params.channels, + stream->volume, stream->panning); + if (got<0) { + run_state_callback(stream, CUBEB_STATE_ERROR); + break; + } + if (!got) { + run_state_callback(stream, CUBEB_STATE_DRAINED); + } + if (got) { + size_t i = 0; + size_t s = got*stream->params.channels*sizeof(int16_t); + while (i < s) { + ssize_t n = write(stream->fd, ((char*)buffer) + i, s - i); + if (n<=0) { + run_state_callback(stream, CUBEB_STATE_ERROR); + break; + } + i+=n; + } + stream->written_frags+=got; + } + } + return NULL; +} + +static void oss_try_set_latency(cubeb_stream* stream, unsigned int latency) +{ + unsigned int latency_bytes, n_frag; + int frag; + /* fragment size of 1024 is a good choice with good chances to be accepted */ + unsigned int frag_size=1024; + unsigned int frag_log=10; /* 2^frag_log = frag_size */ + latency_bytes = + latency*stream->params.rate*stream->params.channels*sizeof(uint16_t)/1000; + n_frag = latency_bytes>>frag_log; + frag = (n_frag<<16) | frag_log; + /* Even if this fails we wish to continue, not checking for errors */ + ioctl(stream->fd, SNDCTL_DSP_SETFRAGMENT, &frag); +} + +static int oss_stream_init(cubeb * context, cubeb_stream ** stm, + char const * stream_name, + cubeb_devid input_device, + cubeb_stream_params * input_stream_params, + cubeb_devid output_device, + cubeb_stream_params * output_stream_params, + unsigned int latency, + cubeb_data_callback data_callback, + cubeb_state_callback state_callback, void * user_ptr) +{ + cubeb_stream* stream = (cubeb_stream*)malloc(sizeof(cubeb_stream)); + stream->context = context; + stream->data_callback = data_callback; + stream->state_callback = state_callback; + stream->user_ptr = user_ptr; + + assert(!input_stream_params && "not supported."); + if (input_device || output_device) { + /* Device selection not yet implemented. */ + return CUBEB_ERROR_DEVICE_UNAVAILABLE; + } + + if ((stream->fd = open(CUBEB_OSS_DEFAULT_OUTPUT, O_WRONLY)) == -1) { + free(stream); + return CUBEB_ERROR; + } +#define SET(what, to) do { unsigned int i = to; \ + int j = ioctl(stream->fd, what, &i); \ + if (j == -1 || i != to) { \ + close(stream->fd); \ + free(stream); \ + return CUBEB_ERROR_INVALID_FORMAT; } } while (0) + + stream->params = *output_stream_params; + stream->volume = 1.0; + stream->panning = 0.0; + + oss_try_set_latency(stream, latency); + + stream->floating = 0; + SET(SNDCTL_DSP_CHANNELS, output_stream_params->channels); + SET(SNDCTL_DSP_SPEED, output_stream_params->rate); + switch (output_stream_params->format) { + case CUBEB_SAMPLE_S16LE: + SET(SNDCTL_DSP_SETFMT, AFMT_S16_LE); + break; + case CUBEB_SAMPLE_S16BE: + SET(SNDCTL_DSP_SETFMT, AFMT_S16_BE); + break; + case CUBEB_SAMPLE_FLOAT32LE: + SET(SNDCTL_DSP_SETFMT, AFMT_S16_NE); + stream->floating = 1; + break; + default: + close(stream->fd); + free(stream); + return CUBEB_ERROR; + } + + + pthread_mutex_init(&stream->state_mutex, NULL); + pthread_cond_init(&stream->state_cond, NULL); + + stream->running = 1; + stream->stopped = 1; + stream->position_bytes = 0; + stream->last_position_bytes = 0; + stream->written_frags = 0; + stream->missed_frags = 0; + + pthread_create(&stream->th, NULL, writer, (void*)stream); + + *stm = stream; + + return CUBEB_OK; +} + +static void oss_stream_destroy(cubeb_stream * stream) +{ + pthread_mutex_lock(&stream->state_mutex); + + stream->running = 0; + stream->stopped = 0; + pthread_cond_signal(&stream->state_cond); + + pthread_mutex_unlock(&stream->state_mutex); + + pthread_join(stream->th, NULL); + + pthread_mutex_destroy(&stream->state_mutex); + pthread_cond_destroy(&stream->state_cond); + close(stream->fd); + free(stream); +} + +static int oss_stream_get_latency(cubeb_stream * stream, uint32_t * latency) +{ + if (ioctl(stream->fd, SNDCTL_DSP_GETODELAY, latency)==-1) { + return CUBEB_ERROR; + } + /* Convert latency from bytes to frames */ + *latency /= stream->params.channels*sizeof(int16_t); + return CUBEB_OK; +} + + +static int oss_stream_current_optr(cubeb_stream * stream, uint64_t * position) +{ + count_info ci; + /* Unfortunately, this ioctl is only available in OSS 4.x */ +#ifdef SNDCTL_DSP_CURRENT_OPTR + oss_count_t count; + if (ioctl(stream->fd, SNDCTL_DSP_CURRENT_OPTR, &count) != -1) { + *position = count.samples;// + count.fifo_samples; + return CUBEB_OK; + } +#endif + /* Fall back to this ioctl in case the previous one fails */ + if (ioctl(stream->fd, SNDCTL_DSP_GETOPTR, &ci) == -1) { + return CUBEB_ERROR; + } + /* ci.bytes is only 32 bit and will start to wrap after arithmetic overflow */ + stream->position_bytes += ci.bytes - stream->last_position_bytes; + stream->last_position_bytes = ci.bytes; + *position = stream->position_bytes/stream->params.channels/sizeof(int16_t); + return CUBEB_OK; +} + +static int oss_stream_get_position(cubeb_stream * stream, uint64_t * position) +{ + if ( oss_stream_current_optr(stream, position) == CUBEB_OK ){ + *position -= stream->missed_frags; + return CUBEB_OK; + } + /* If no correct method to get position works we resort to this */ + *position = stream->written_frags; + return CUBEB_OK; +} + + +static int oss_stream_start(cubeb_stream * stream) +{ + pthread_mutex_lock(&stream->state_mutex); + if (stream->stopped) { + uint64_t ptr; + oss_stream_current_optr(stream, &ptr); + stream->missed_frags = ptr - stream->written_frags; + stream->stopped = 0; + pthread_cond_signal(&stream->state_cond); + } + pthread_mutex_unlock(&stream->state_mutex); + return CUBEB_OK; +} + +static int oss_stream_stop(cubeb_stream * stream) +{ + pthread_mutex_lock(&stream->state_mutex); + stream->stopped = 1; + pthread_mutex_unlock(&stream->state_mutex); + return CUBEB_OK; +} + +int oss_stream_set_panning(cubeb_stream * stream, float panning) +{ + if (stream->params.channels == 2) { + stream->panning=panning; + } + return CUBEB_OK; +} + +int oss_stream_set_volume(cubeb_stream * stream, float volume) +{ + stream->volume=volume; + return CUBEB_OK; +} + +static struct cubeb_ops const oss_ops = { + .init = oss_init, + .get_backend_id = oss_get_backend_id, + .get_max_channel_count = oss_get_max_channel_count, + .get_min_latency = oss_get_min_latency, + .get_preferred_sample_rate = oss_get_preferred_sample_rate, + .destroy = oss_destroy, + .stream_init = oss_stream_init, + .stream_destroy = oss_stream_destroy, + .stream_start = oss_stream_start, + .stream_stop = oss_stream_stop, + .stream_get_position = oss_stream_get_position, + .stream_get_latency = oss_stream_get_latency, + .stream_set_volume = oss_stream_set_volume, + .stream_set_panning = oss_stream_set_panning, + .stream_get_current_device = NULL, + .stream_device_destroy = NULL, + .stream_register_device_changed_callback = NULL +}; diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build index 8b7a0dd..31212ce 100644 --- media/libcubeb/src/moz.build +++ media/libcubeb/src/moz.build @@ -17,6 +17,12 @@ if CONFIG['MOZ_ALSA']: ] DEFINES['USE_ALSA'] = True +if CONFIG['MOZ_OSS']: + SOURCES += [ + 'cubeb_oss.c', + ] + DEFINES['USE_OSS'] = True + if CONFIG['MOZ_PULSEAUDIO']: SOURCES += [ 'cubeb_pulse.c', @@ -75,5 +81,6 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk': FAIL_ON_WARNINGS = True +CFLAGS += CONFIG['MOZ_OSS_CFLAGS'] CFLAGS += CONFIG['MOZ_ALSA_CFLAGS'] CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS'] diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build index 991f03f..3d99eb5 100644 --- media/webrtc/signaling/test/common.build +++ media/webrtc/signaling/test/common.build @@ -102,8 +102,8 @@ USE_LIBS += ['mozglue'] OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS'] OS_LIBS += CONFIG['REALTIME_LIBS'] -if CONFIG['MOZ_ALSA']: - OS_LIBS += CONFIG['MOZ_ALSA_LIBS'] +if CONFIG['MOZ_OSS']: + OS_LIBS += CONFIG['MOZ_OSS_LIBS'] if CONFIG['MOZ_NATIVE_JPEG']: OS_LIBS += CONFIG['MOZ_JPEG_LIBS'] diff --git toolkit/library/moz.build toolkit/library/moz.build index e191f13..4fb268a 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build @@ -234,8 +234,8 @@ if CONFIG['MOZ_NATIVE_LIBVPX']: if not CONFIG['MOZ_TREE_PIXMAN']: OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS'] -if CONFIG['MOZ_ALSA']: - OS_LIBS += CONFIG['MOZ_ALSA_LIBS'] +if CONFIG['MOZ_OSS']: + OS_LIBS += CONFIG['MOZ_OSS_LIBS'] if CONFIG['HAVE_CLOCK_MONOTONIC']: OS_LIBS += CONFIG['REALTIME_LIBS'] Index: branches/2016Q2/www/firefox/files/patch-bug826985 =================================================================== --- branches/2016Q2/www/firefox/files/patch-bug826985 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-bug826985 (revision 416430) @@ -1,179 +1,179 @@ commit 8024d93 Author: Henrik Gulbrandsen Date: Fri Jan 4 13:49:22 2013 +0100 Bug 826985 - Support more video formats for WebRTC via libv4l2 on Linux. --- config/system-headers | 1 + - configure.in | 7 +++++++ + old-configure.in | 7 +++++++ media/webrtc/signaling/test/Makefile.in | 1 + .../modules/video_capture/linux/device_info_linux.cc | 17 +++++++++++++++++ .../modules/video_capture/linux/video_capture_linux.cc | 16 +++++++++++++++- .../webrtc/modules/video_capture/video_capture.gypi | 11 +++++++++++ toolkit/library/Makefile.in | 1 + 6 files changed, 52 insertions(+), 1 deletion(-) diff --git config/system-headers config/system-headers index 55e4cd1..76567b3 100644 --- config/system-headers +++ config/system-headers @@ -629,6 +629,7 @@ libgnome/libgnome.h libgnomeui/gnome-icon-lookup.h libgnomeui/gnome-icon-theme.h libgnomeui/gnome-ui-init.h +libv4l2.h limits limits.h link.h -diff --git configure.in configure.in +diff --git old-configure.in configure.in index 55e4cd1..76567b3 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -5309,6 +5309,9 @@ if test -n "$MOZ_WEBRTC"; then MOZ_VP8_ENCODER=1 MOZ_VP8_ERROR_CONCEALMENT=1 + dnl with libv4l2 we can support more cameras + PKG_CHECK_MODULES(MOZ_LIBV4L2, libv4l2) + dnl enable once Signaling lands MOZ_WEBRTC_SIGNALING=1 AC_DEFINE(MOZ_WEBRTC_SIGNALING) diff --git build/gyp.mozbuild build/gyp.mozbuild index b483cd1..f1dd1f0 100644 --- build/gyp.mozbuild +++ build/gyp.mozbuild @@ -11,6 +11,7 @@ gyp_vars = { 'have_ethtool_cmd_speed_hi': 1 if CONFIG['MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI'] else 0, 'include_alsa_audio': 1 if CONFIG['MOZ_ALSA'] else 0, 'include_pulse_audio': 1 if CONFIG['MOZ_PULSEAUDIO'] else 0, + 'use_libv4l2': 1 if CONFIG['MOZ_LIBV4L2_LIBS'] else 0, # basic stuff for everything 'include_internal_video_render': 0, 'clang_use_chrome_plugins': 0, diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build index b483cd1..f1dd1f0 100644 --- media/webrtc/signaling/test/common.build +++ media/webrtc/signaling/test/common.build @@ -99,6 +99,7 @@ if CONFIG['JS_SHARED_LIBRARY']: USE_LIBS += ['mozglue'] +OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS'] OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS'] OS_LIBS += CONFIG['REALTIME_LIBS'] diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc index 239a292..bab496c 100644 --- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc +++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc @@ -25,10 +25,21 @@ #else #include #endif +#ifdef HAVE_LIBV4L2 +#include +#endif #include "webrtc/system_wrappers/interface/ref_count.h" #include "webrtc/system_wrappers/interface/trace.h" +#ifdef HAVE_LIBV4L2 +#define open v4l2_open +#define close v4l2_close +#define dup v4l2_dup +#define ioctl v4l2_ioctl +#define mmap v4l2_mmap +#define munmap v4l2_munmap +#endif namespace webrtc { @@ -130,6 +142,11 @@ WebRtc_Word32 DeviceInfoLinux::GetDeviceName( memset(deviceNameUTF8, 0, deviceNameLength); memcpy(cameraName, cap.card, sizeof(cap.card)); + if (cameraName[0] == '\0') + { + sprintf(cameraName, "Camera at /dev/video%d", deviceNumber); + } + if (deviceNameLength >= strlen(cameraName)) { memcpy(deviceNameUTF8, cameraName, strlen(cameraName)); diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc index 12df1b3..e9863ba 100644 --- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc +++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc @@ -25,6 +25,9 @@ #else #include #endif +#ifdef HAVE_LIBV4L2 +#include +#endif #include @@ -26,6 +31,15 @@ #include "critical_section_wrapper.h" #include "video_capture_linux.h" +#ifdef HAVE_LIBV4L2 +#define open v4l2_open +#define close v4l2_close +#define dup v4l2_dup +#define ioctl v4l2_ioctl +#define mmap v4l2_mmap +#define munmap v4l2_munmap +#endif + namespace webrtc { namespace videocapturemodule diff --git media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi index d46b5aa..e452223 100644 --- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi +++ media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi @@ -7,6 +7,9 @@ # be found in the AUTHORS file in the root of the source tree. { + 'variables': { + 'use_libv4l2%': 0, + }, 'targets': [ { 'target_name': 'video_capture_module', @@ -75,6 +78,19 @@ 'linux/video_capture_linux.cc', 'linux/video_capture_linux.h', ], + 'conditions': [ + ['use_libv4l2==1', { + 'defines': [ + 'HAVE_LIBV4L2', + ], + 'cflags_mozilla': [ + '$(MOZ_LIBV4L2_CFLAGS)', + ], + 'libraries': [ + '-lv4l2', + ], + }], + ], }], # linux ['OS=="mac"', { 'sources': [ diff --git toolkit/library/moz.build toolkit/library/moz.build index 9c16ffa..1db3794 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build @@ -163,6 +163,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF ] OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS'] +OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS'] OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS'] OS_LIBS += CONFIG['MOZ_APP_EXTRA_LIBS'] Index: branches/2016Q2/www/firefox/files/patch-bug847568 =================================================================== --- branches/2016Q2/www/firefox/files/patch-bug847568 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-bug847568 (revision 416430) @@ -1,257 +1,257 @@ # Allow building against system-wide graphite2/harfbuzz. diff --git config/Makefile.in config/Makefile.in index 14bfc0d..5383399 100644 --- config/Makefile.in +++ config/Makefile.in @@ -49,6 +49,8 @@ export:: $(export-preqs) -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \ -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ + -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \ + -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \ $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers $(INSTALL) system_wrappers $(DIST) diff --git config/system-headers config/system-headers index 18e8703..bdc5f82 100644 --- config/system-headers +++ config/system-headers @@ -1344,3 +1344,11 @@ unicode/utypes.h #endif libutil.h unwind.h +#if MOZ_NATIVE_GRAPHITE2==1 +graphite2/Font.h +graphite2/Segment.h +#endif +#if MOZ_NATIVE_HARFBUZZ==1 +harfbuzz/hb-ot.h +harfbuzz/hb.h +#endif -diff --git configure.in configure.in +diff --git old-configure.in configure.in index ac38f40..87536b7 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -7989,6 +7989,49 @@ if test "$USE_FC_FREETYPE"; then fi dnl ======================================================== +dnl Check for harfbuzz +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-harfbuzz, +[ --with-system-harfbuzz Use system harfbuzz (located with pkgconfig)], +MOZ_NATIVE_HARFBUZZ=1, +MOZ_NATIVE_HARFBUZZ=) + +if test -n "$MOZ_NATIVE_HARFBUZZ"; then -+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.1.3) ++ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.2.2) +fi + +AC_SUBST(MOZ_NATIVE_HARFBUZZ) + +dnl ======================================================== +dnl Check for graphite2 +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-graphite2, +[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)], +MOZ_NATIVE_GRAPHITE2=1, +MOZ_NATIVE_GRAPHITE2=) + +if test -n "$MOZ_NATIVE_GRAPHITE2"; then + PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2) + + dnl graphite2.pc has bogus version, check manually + AC_TRY_COMPILE([ #include + #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,7) ++ #if !GR2_VERSION_REQUIRE(1,3,8) + #error "Insufficient graphite2 version." + #endif + ], [], + [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) +fi + +AC_SUBST(MOZ_NATIVE_GRAPHITE2) + +dnl ======================================================== dnl Check for pixman and cairo dnl ======================================================== diff --git dom/base/moz.build dom/base/moz.build index a660ba4..6b2f602 100644 --- dom/base/moz.build +++ dom/base/moz.build @@ -397,6 +397,9 @@ if CONFIG['INTEL_ARCHITECTURE']: SOURCES += ['nsTextFragmentSSE2.cpp'] SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS'] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + EXTRA_COMPONENTS += [ 'ConsoleAPI.manifest', 'ConsoleAPIStorage.js', diff --git gfx/graphite2/moz-gr-update.sh gfx/graphite2/moz-gr-update.sh index f3d76ea..a9e7fb6 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." >> #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/" configure.in ++ 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 configure.in gfx/graphite2 ++hg stat old-configure.in gfx/graphite2 echo echo If gfx/graphite2/src/files.mk has changed, please make corresponding diff --git gfx/harfbuzz/README-mozilla gfx/harfbuzz/README-mozilla index ca57d16..1ce21fe 100644 --- gfx/harfbuzz/README-mozilla +++ gfx/harfbuzz/README-mozilla @@ -18,3 +18,8 @@ the mozilla tree. In addition, the src/Makefile.in file here is NOT from upstream, nor is it generated from src/Makefile.am (the original harfbuzz version); it is a mozilla- specific makefile that is maintained by hand. + +The in-tree copy may be omitted during build by --with-system-harfbuzz. -+Make sure to keep pkg-config version check within configure.in in sync ++Make sure to keep pkg-config version check within old-configure.in in sync +with checkout version or increment latest tag by one if it's not based +on upstream release. diff --git gfx/moz.build gfx/moz.build index 519aa46..6929751 100644 --- gfx/moz.build +++ gfx/moz.build @@ -7,6 +7,12 @@ if CONFIG['MOZ_TREE_CAIRO']: DIRS += ['cairo'] +if not CONFIG['MOZ_NATIVE_GRAPHITE2']: + DIRS += ['graphite2/src' ] + +if not CONFIG['MOZ_NATIVE_HARFBUZZ']: + DIRS += ['harfbuzz/src'] + DIRS += [ '2d', 'ycbcr', @@ -15,8 +21,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 28fa6b5..240dced 100755 --- gfx/skia/generate_mozbuild.py +++ gfx/skia/generate_mozbuild.py @@ -134,6 +134,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_ '-Wno-unused-private-field', ] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/skia/moz.build gfx/skia/moz.build index 1d0c2f9..adb8941 100644 --- gfx/skia/moz.build +++ gfx/skia/moz.build @@ -752,6 +752,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_ '-Wno-unused-private-field', ] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/thebes/moz.build gfx/thebes/moz.build index d5852fa..aeeab25 100644 --- gfx/thebes/moz.build +++ gfx/thebes/moz.build @@ -306,7 +306,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] -DEFINES['GRAPHITE2_STATIC'] = True +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + +if CONFIG['MOZ_NATIVE_GRAPHITE2']: + CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] +else: + DEFINES['GRAPHITE2_STATIC'] = True if CONFIG['CLANG_CXX']: # Suppress warnings from Skia header files. index d736943..41a931f 100644 --- intl/unicharutil/util/moz.build +++ intl/unicharutil/util/moz.build @@ -44,4 +44,7 @@ if CONFIG['ENABLE_INTL_API']: LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES'] USE_LIBS += ['icu'] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + DIST_INSTALL = True diff --git netwerk/dns/moz.build netwerk/dns/moz.build index 0b0717a..2e665c9 100644 --- netwerk/dns/moz.build +++ netwerk/dns/moz.build @@ -66,6 +66,9 @@ LOCAL_INCLUDES += [ '/netwerk/base', ] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19': LOCAL_INCLUDES += ['%' + '%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']] diff --git toolkit/library/moz.build toolkit/library/moz.build index 67f0db9..d42137a 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build @@ -231,6 +231,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']: if not CONFIG['MOZ_TREE_PIXMAN']: OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS'] +if CONFIG['MOZ_NATIVE_GRAPHITE2']: + OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS'] + +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] + if CONFIG['MOZ_OSS']: OS_LIBS += CONFIG['MOZ_OSS_LIBS'] Index: branches/2016Q2/www/firefox/files/patch-ijg-libjpeg =================================================================== --- branches/2016Q2/www/firefox/files/patch-ijg-libjpeg (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-ijg-libjpeg (revision 416430) @@ -1,383 +1,383 @@ # Partially revert bug 791305 to allow building with system IJG jpeg library -diff --git configure.in configure.in +diff --git old-configure.in configure.in index f0aeb5d..1c01010 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -4027,11 +4027,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then #include ], [ #if JPEG_LIB_VERSION < $MOZJPEG #error "Insufficient JPEG library version ($MOZJPEG required)." - #endif - #ifndef JCS_EXTENSIONS - #error "libjpeg-turbo JCS_EXTENSIONS required" - #endif - ], + #endif ], MOZ_NATIVE_JPEG=1, AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg])) fi diff --git image/decoders/nsJPEGDecoder.cpp image/decoders/nsJPEGDecoder.cpp index 8fa8200..1d2a259 100644 --- image/decoders/nsJPEGDecoder.cpp +++ image/decoders/nsJPEGDecoder.cpp @@ -21,13 +21,28 @@ extern "C" { #include "iccjpeg.h" -} +#ifdef JCS_EXTENSIONS #if MOZ_BIG_ENDIAN #define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB #else #define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX #endif +#else +/* Colorspace conversion (copied from jpegint.h) */ +struct jpeg_color_deconverter { + JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); + JMETHOD(void, color_convert, (j_decompress_ptr cinfo, + JSAMPIMAGE input_buf, JDIMENSION input_row, + JSAMPARRAY output_buf, int num_rows)); +}; + +METHODDEF(void) +ycc_rgb_convert_argb (j_decompress_ptr cinfo, + JSAMPIMAGE input_buf, JDIMENSION input_row, + JSAMPARRAY output_buf, int num_rows); +#endif +} static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width); @@ -367,6 +382,7 @@ nsJPEGDecoder::WriteInternal(const char* case JCS_GRAYSCALE: case JCS_RGB: case JCS_YCbCr: +#ifdef JCS_EXTENSIONS // if we're not color managing we can decode directly to // MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB if (mCMSMode != eCMSMode_All) { @@ -375,6 +391,9 @@ nsJPEGDecoder::WriteInternal(const char* } else { mInfo.out_color_space = JCS_RGB; } +#else + mInfo.out_color_space = JCS_RGB; +#endif break; case JCS_CMYK: case JCS_YCCK: @@ -448,6 +467,16 @@ nsJPEGDecoder::WriteInternal(const char* return; // I/O suspension } +#ifndef JCS_EXTENSIONS + /* Force to use our YCbCr to Packed RGB converter when possible */ + if (!mTransform && (mCMSMode != eCMSMode_All) && + mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) { + /* Special case for the most common case: transform from YCbCr direct into packed ARGB */ + mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/ + mInfo.cconvert->color_convert = ycc_rgb_convert_argb; + } +#endif + // If this is a progressive JPEG ... mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL; @@ -605,7 +633,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus uint32_t* imageRow = ((uint32_t*)mImageData) + (mInfo.output_scanline * mInfo.output_width); +#ifdef JCS_EXTENSIONS if (mInfo.out_color_space == MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB) { +#else + if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) { +#endif // Special case: scanline will be directly converted into packed ARGB if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) { *suspend = true; // suspend @@ -920,6 +952,282 @@ term_source (j_decompress_ptr jd) } // namespace mozilla +#ifndef JCS_EXTENSIONS +/**************** YCbCr -> Cairo's RGB24/ARGB32 conversion: most common case **************/ + +/* + * YCbCr is defined per CCIR 601-1, except that Cb and Cr are + * normalized to the range 0..MAXJSAMPLE rather than -0.5 .. 0.5. + * The conversion equations to be implemented are therefore + * R = Y + 1.40200 * Cr + * G = Y - 0.34414 * Cb - 0.71414 * Cr + * B = Y + 1.77200 * Cb + * where Cb and Cr represent the incoming values less CENTERJSAMPLE. + * (These numbers are derived from TIFF 6.0 section 21, dated 3-June-92.) + * + * To avoid floating-point arithmetic, we represent the fractional constants + * as integers scaled up by 2^16 (about 4 digits precision); we have to divide + * the products by 2^16, with appropriate rounding, to get the correct answer. + * Notice that Y, being an integral input, does not contribute any fraction + * so it need not participate in the rounding. + * + * For even more speed, we avoid doing any multiplications in the inner loop + * by precalculating the constants times Cb and Cr for all possible values. + * For 8-bit JSAMPLEs this is very reasonable (only 256 entries per table); + * for 12-bit samples it is still acceptable. It's not very reasonable for + * 16-bit samples, but if you want lossless storage you shouldn't be changing + * colorspace anyway. + * The Cr=>R and Cb=>B values can be rounded to integers in advance; the + * values for the G calculation are left scaled up, since we must add them + * together before rounding. + */ + +#define SCALEBITS 16 /* speediest right-shift on some machines */ + +/* Use static tables for color processing. */ +/* Four tables, each 256 entries of 4 bytes totals 4K which is not bad... */ + +const int Cr_r_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ + -0xb3, -0xb2, -0xb1, -0xaf, -0xae, -0xac, + -0xab, -0xaa, -0xa8, -0xa7, -0xa5, -0xa4, + -0xa3, -0xa1, -0xa0, -0x9e, -0x9d, -0x9c, + -0x9a, -0x99, -0x97, -0x96, -0x95, -0x93, + -0x92, -0x90, -0x8f, -0x8e, -0x8c, -0x8b, + -0x89, -0x88, -0x87, -0x85, -0x84, -0x82, + -0x81, -0x80, -0x7e, -0x7d, -0x7b, -0x7a, + -0x79, -0x77, -0x76, -0x74, -0x73, -0x72, + -0x70, -0x6f, -0x6d, -0x6c, -0x6b, -0x69, + -0x68, -0x66, -0x65, -0x64, -0x62, -0x61, + -0x5f, -0x5e, -0x5d, -0x5b, -0x5a, -0x58, + -0x57, -0x56, -0x54, -0x53, -0x51, -0x50, + -0x4f, -0x4d, -0x4c, -0x4a, -0x49, -0x48, + -0x46, -0x45, -0x43, -0x42, -0x40, -0x3f, + -0x3e, -0x3c, -0x3b, -0x39, -0x38, -0x37, + -0x35, -0x34, -0x32, -0x31, -0x30, -0x2e, + -0x2d, -0x2b, -0x2a, -0x29, -0x27, -0x26, + -0x24, -0x23, -0x22, -0x20, -0x1f, -0x1d, + -0x1c, -0x1b, -0x19, -0x18, -0x16, -0x15, + -0x14, -0x12, -0x11, -0x0f, -0x0e, -0x0d, + -0x0b, -0x0a, -0x08, -0x07, -0x06, -0x04, + -0x03, -0x01, 0x00, 0x01, 0x03, 0x04, + 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0d, + 0x0e, 0x0f, 0x11, 0x12, 0x14, 0x15, + 0x16, 0x18, 0x19, 0x1b, 0x1c, 0x1d, + 0x1f, 0x20, 0x22, 0x23, 0x24, 0x26, + 0x27, 0x29, 0x2a, 0x2b, 0x2d, 0x2e, + 0x30, 0x31, 0x32, 0x34, 0x35, 0x37, + 0x38, 0x39, 0x3b, 0x3c, 0x3e, 0x3f, + 0x40, 0x42, 0x43, 0x45, 0x46, 0x48, + 0x49, 0x4a, 0x4c, 0x4d, 0x4f, 0x50, + 0x51, 0x53, 0x54, 0x56, 0x57, 0x58, + 0x5a, 0x5b, 0x5d, 0x5e, 0x5f, 0x61, + 0x62, 0x64, 0x65, 0x66, 0x68, 0x69, + 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x72, + 0x73, 0x74, 0x76, 0x77, 0x79, 0x7a, + 0x7b, 0x7d, 0x7e, 0x80, 0x81, 0x82, + 0x84, 0x85, 0x87, 0x88, 0x89, 0x8b, + 0x8c, 0x8e, 0x8f, 0x90, 0x92, 0x93, + 0x95, 0x96, 0x97, 0x99, 0x9a, 0x9c, + 0x9d, 0x9e, 0xa0, 0xa1, 0xa3, 0xa4, + 0xa5, 0xa7, 0xa8, 0xaa, 0xab, 0xac, + 0xae, 0xaf, 0xb1, 0xb2, + }; + +const int Cb_b_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ + -0xe3, -0xe1, -0xdf, -0xde, -0xdc, -0xda, + -0xd8, -0xd6, -0xd5, -0xd3, -0xd1, -0xcf, + -0xce, -0xcc, -0xca, -0xc8, -0xc6, -0xc5, + -0xc3, -0xc1, -0xbf, -0xbe, -0xbc, -0xba, + -0xb8, -0xb7, -0xb5, -0xb3, -0xb1, -0xaf, + -0xae, -0xac, -0xaa, -0xa8, -0xa7, -0xa5, + -0xa3, -0xa1, -0x9f, -0x9e, -0x9c, -0x9a, + -0x98, -0x97, -0x95, -0x93, -0x91, -0x90, + -0x8e, -0x8c, -0x8a, -0x88, -0x87, -0x85, + -0x83, -0x81, -0x80, -0x7e, -0x7c, -0x7a, + -0x78, -0x77, -0x75, -0x73, -0x71, -0x70, + -0x6e, -0x6c, -0x6a, -0x69, -0x67, -0x65, + -0x63, -0x61, -0x60, -0x5e, -0x5c, -0x5a, + -0x59, -0x57, -0x55, -0x53, -0x52, -0x50, + -0x4e, -0x4c, -0x4a, -0x49, -0x47, -0x45, + -0x43, -0x42, -0x40, -0x3e, -0x3c, -0x3a, + -0x39, -0x37, -0x35, -0x33, -0x32, -0x30, + -0x2e, -0x2c, -0x2b, -0x29, -0x27, -0x25, + -0x23, -0x22, -0x20, -0x1e, -0x1c, -0x1b, + -0x19, -0x17, -0x15, -0x13, -0x12, -0x10, + -0x0e, -0x0c, -0x0b, -0x09, -0x07, -0x05, + -0x04, -0x02, 0x00, 0x02, 0x04, 0x05, + 0x07, 0x09, 0x0b, 0x0c, 0x0e, 0x10, + 0x12, 0x13, 0x15, 0x17, 0x19, 0x1b, + 0x1c, 0x1e, 0x20, 0x22, 0x23, 0x25, + 0x27, 0x29, 0x2b, 0x2c, 0x2e, 0x30, + 0x32, 0x33, 0x35, 0x37, 0x39, 0x3a, + 0x3c, 0x3e, 0x40, 0x42, 0x43, 0x45, + 0x47, 0x49, 0x4a, 0x4c, 0x4e, 0x50, + 0x52, 0x53, 0x55, 0x57, 0x59, 0x5a, + 0x5c, 0x5e, 0x60, 0x61, 0x63, 0x65, + 0x67, 0x69, 0x6a, 0x6c, 0x6e, 0x70, + 0x71, 0x73, 0x75, 0x77, 0x78, 0x7a, + 0x7c, 0x7e, 0x80, 0x81, 0x83, 0x85, + 0x87, 0x88, 0x8a, 0x8c, 0x8e, 0x90, + 0x91, 0x93, 0x95, 0x97, 0x98, 0x9a, + 0x9c, 0x9e, 0x9f, 0xa1, 0xa3, 0xa5, + 0xa7, 0xa8, 0xaa, 0xac, 0xae, 0xaf, + 0xb1, 0xb3, 0xb5, 0xb7, 0xb8, 0xba, + 0xbc, 0xbe, 0xbf, 0xc1, 0xc3, 0xc5, + 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xcf, + 0xd1, 0xd3, 0xd5, 0xd6, 0xd8, 0xda, + 0xdc, 0xde, 0xdf, 0xe1, + }; + +const int Cr_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ + 0x5b6900, 0x5ab22e, 0x59fb5c, 0x59448a, 0x588db8, 0x57d6e6, + 0x572014, 0x566942, 0x55b270, 0x54fb9e, 0x5444cc, 0x538dfa, + 0x52d728, 0x522056, 0x516984, 0x50b2b2, 0x4ffbe0, 0x4f450e, + 0x4e8e3c, 0x4dd76a, 0x4d2098, 0x4c69c6, 0x4bb2f4, 0x4afc22, + 0x4a4550, 0x498e7e, 0x48d7ac, 0x4820da, 0x476a08, 0x46b336, + 0x45fc64, 0x454592, 0x448ec0, 0x43d7ee, 0x43211c, 0x426a4a, + 0x41b378, 0x40fca6, 0x4045d4, 0x3f8f02, 0x3ed830, 0x3e215e, + 0x3d6a8c, 0x3cb3ba, 0x3bfce8, 0x3b4616, 0x3a8f44, 0x39d872, + 0x3921a0, 0x386ace, 0x37b3fc, 0x36fd2a, 0x364658, 0x358f86, + 0x34d8b4, 0x3421e2, 0x336b10, 0x32b43e, 0x31fd6c, 0x31469a, + 0x308fc8, 0x2fd8f6, 0x2f2224, 0x2e6b52, 0x2db480, 0x2cfdae, + 0x2c46dc, 0x2b900a, 0x2ad938, 0x2a2266, 0x296b94, 0x28b4c2, + 0x27fdf0, 0x27471e, 0x26904c, 0x25d97a, 0x2522a8, 0x246bd6, + 0x23b504, 0x22fe32, 0x224760, 0x21908e, 0x20d9bc, 0x2022ea, + 0x1f6c18, 0x1eb546, 0x1dfe74, 0x1d47a2, 0x1c90d0, 0x1bd9fe, + 0x1b232c, 0x1a6c5a, 0x19b588, 0x18feb6, 0x1847e4, 0x179112, + 0x16da40, 0x16236e, 0x156c9c, 0x14b5ca, 0x13fef8, 0x134826, + 0x129154, 0x11da82, 0x1123b0, 0x106cde, 0x0fb60c, 0x0eff3a, + 0x0e4868, 0x0d9196, 0x0cdac4, 0x0c23f2, 0x0b6d20, 0x0ab64e, + 0x09ff7c, 0x0948aa, 0x0891d8, 0x07db06, 0x072434, 0x066d62, + 0x05b690, 0x04ffbe, 0x0448ec, 0x03921a, 0x02db48, 0x022476, + 0x016da4, 0x00b6d2, 0x000000, -0x00b6d2, -0x016da4, -0x022476, + -0x02db48, -0x03921a, -0x0448ec, -0x04ffbe, -0x05b690, -0x066d62, + -0x072434, -0x07db06, -0x0891d8, -0x0948aa, -0x09ff7c, -0x0ab64e, + -0x0b6d20, -0x0c23f2, -0x0cdac4, -0x0d9196, -0x0e4868, -0x0eff3a, + -0x0fb60c, -0x106cde, -0x1123b0, -0x11da82, -0x129154, -0x134826, + -0x13fef8, -0x14b5ca, -0x156c9c, -0x16236e, -0x16da40, -0x179112, + -0x1847e4, -0x18feb6, -0x19b588, -0x1a6c5a, -0x1b232c, -0x1bd9fe, + -0x1c90d0, -0x1d47a2, -0x1dfe74, -0x1eb546, -0x1f6c18, -0x2022ea, + -0x20d9bc, -0x21908e, -0x224760, -0x22fe32, -0x23b504, -0x246bd6, + -0x2522a8, -0x25d97a, -0x26904c, -0x27471e, -0x27fdf0, -0x28b4c2, + -0x296b94, -0x2a2266, -0x2ad938, -0x2b900a, -0x2c46dc, -0x2cfdae, + -0x2db480, -0x2e6b52, -0x2f2224, -0x2fd8f6, -0x308fc8, -0x31469a, + -0x31fd6c, -0x32b43e, -0x336b10, -0x3421e2, -0x34d8b4, -0x358f86, + -0x364658, -0x36fd2a, -0x37b3fc, -0x386ace, -0x3921a0, -0x39d872, + -0x3a8f44, -0x3b4616, -0x3bfce8, -0x3cb3ba, -0x3d6a8c, -0x3e215e, + -0x3ed830, -0x3f8f02, -0x4045d4, -0x40fca6, -0x41b378, -0x426a4a, + -0x43211c, -0x43d7ee, -0x448ec0, -0x454592, -0x45fc64, -0x46b336, + -0x476a08, -0x4820da, -0x48d7ac, -0x498e7e, -0x4a4550, -0x4afc22, + -0x4bb2f4, -0x4c69c6, -0x4d2098, -0x4dd76a, -0x4e8e3c, -0x4f450e, + -0x4ffbe0, -0x50b2b2, -0x516984, -0x522056, -0x52d728, -0x538dfa, + -0x5444cc, -0x54fb9e, -0x55b270, -0x566942, -0x572014, -0x57d6e6, + -0x588db8, -0x59448a, -0x59fb5c, -0x5ab22e, + }; + +const int Cb_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ + 0x2c8d00, 0x2c34e6, 0x2bdccc, 0x2b84b2, 0x2b2c98, 0x2ad47e, + 0x2a7c64, 0x2a244a, 0x29cc30, 0x297416, 0x291bfc, 0x28c3e2, + 0x286bc8, 0x2813ae, 0x27bb94, 0x27637a, 0x270b60, 0x26b346, + 0x265b2c, 0x260312, 0x25aaf8, 0x2552de, 0x24fac4, 0x24a2aa, + 0x244a90, 0x23f276, 0x239a5c, 0x234242, 0x22ea28, 0x22920e, + 0x2239f4, 0x21e1da, 0x2189c0, 0x2131a6, 0x20d98c, 0x208172, + 0x202958, 0x1fd13e, 0x1f7924, 0x1f210a, 0x1ec8f0, 0x1e70d6, + 0x1e18bc, 0x1dc0a2, 0x1d6888, 0x1d106e, 0x1cb854, 0x1c603a, + 0x1c0820, 0x1bb006, 0x1b57ec, 0x1affd2, 0x1aa7b8, 0x1a4f9e, + 0x19f784, 0x199f6a, 0x194750, 0x18ef36, 0x18971c, 0x183f02, + 0x17e6e8, 0x178ece, 0x1736b4, 0x16de9a, 0x168680, 0x162e66, + 0x15d64c, 0x157e32, 0x152618, 0x14cdfe, 0x1475e4, 0x141dca, + 0x13c5b0, 0x136d96, 0x13157c, 0x12bd62, 0x126548, 0x120d2e, + 0x11b514, 0x115cfa, 0x1104e0, 0x10acc6, 0x1054ac, 0x0ffc92, + 0x0fa478, 0x0f4c5e, 0x0ef444, 0x0e9c2a, 0x0e4410, 0x0debf6, + 0x0d93dc, 0x0d3bc2, 0x0ce3a8, 0x0c8b8e, 0x0c3374, 0x0bdb5a, + 0x0b8340, 0x0b2b26, 0x0ad30c, 0x0a7af2, 0x0a22d8, 0x09cabe, + 0x0972a4, 0x091a8a, 0x08c270, 0x086a56, 0x08123c, 0x07ba22, + 0x076208, 0x0709ee, 0x06b1d4, 0x0659ba, 0x0601a0, 0x05a986, + 0x05516c, 0x04f952, 0x04a138, 0x04491e, 0x03f104, 0x0398ea, + 0x0340d0, 0x02e8b6, 0x02909c, 0x023882, 0x01e068, 0x01884e, + 0x013034, 0x00d81a, 0x008000, 0x0027e6, -0x003034, -0x00884e, + -0x00e068, -0x013882, -0x01909c, -0x01e8b6, -0x0240d0, -0x0298ea, + -0x02f104, -0x03491e, -0x03a138, -0x03f952, -0x04516c, -0x04a986, + -0x0501a0, -0x0559ba, -0x05b1d4, -0x0609ee, -0x066208, -0x06ba22, + -0x07123c, -0x076a56, -0x07c270, -0x081a8a, -0x0872a4, -0x08cabe, + -0x0922d8, -0x097af2, -0x09d30c, -0x0a2b26, -0x0a8340, -0x0adb5a, + -0x0b3374, -0x0b8b8e, -0x0be3a8, -0x0c3bc2, -0x0c93dc, -0x0cebf6, + -0x0d4410, -0x0d9c2a, -0x0df444, -0x0e4c5e, -0x0ea478, -0x0efc92, + -0x0f54ac, -0x0facc6, -0x1004e0, -0x105cfa, -0x10b514, -0x110d2e, + -0x116548, -0x11bd62, -0x12157c, -0x126d96, -0x12c5b0, -0x131dca, + -0x1375e4, -0x13cdfe, -0x142618, -0x147e32, -0x14d64c, -0x152e66, + -0x158680, -0x15de9a, -0x1636b4, -0x168ece, -0x16e6e8, -0x173f02, + -0x17971c, -0x17ef36, -0x184750, -0x189f6a, -0x18f784, -0x194f9e, + -0x19a7b8, -0x19ffd2, -0x1a57ec, -0x1ab006, -0x1b0820, -0x1b603a, + -0x1bb854, -0x1c106e, -0x1c6888, -0x1cc0a2, -0x1d18bc, -0x1d70d6, + -0x1dc8f0, -0x1e210a, -0x1e7924, -0x1ed13e, -0x1f2958, -0x1f8172, + -0x1fd98c, -0x2031a6, -0x2089c0, -0x20e1da, -0x2139f4, -0x21920e, + -0x21ea28, -0x224242, -0x229a5c, -0x22f276, -0x234a90, -0x23a2aa, + -0x23fac4, -0x2452de, -0x24aaf8, -0x250312, -0x255b2c, -0x25b346, + -0x260b60, -0x26637a, -0x26bb94, -0x2713ae, -0x276bc8, -0x27c3e2, + -0x281bfc, -0x287416, -0x28cc30, -0x29244a, -0x297c64, -0x29d47e, + -0x2a2c98, -0x2a84b2, -0x2adccc, -0x2b34e6, + }; + + +/* We assume that right shift corresponds to signed division by 2 with + * rounding towards minus infinity. This is correct for typical "arithmetic + * shift" instructions that shift in copies of the sign bit. But some + * C compilers implement >> with an unsigned shift. For these machines you + * must define RIGHT_SHIFT_IS_UNSIGNED. + * RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity. + * It is only applied with constant shift counts. SHIFT_TEMPS must be + * included in the variables of any routine using RIGHT_SHIFT. + */ + +#ifdef RIGHT_SHIFT_IS_UNSIGNED +#define SHIFT_TEMPS INT32 shift_temp; +#define RIGHT_SHIFT(x,shft) \ + ((shift_temp = (x)) < 0 ? \ + (shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \ + (shift_temp >> (shft))) +#else +#define SHIFT_TEMPS +#define RIGHT_SHIFT(x,shft) ((x) >> (shft)) +#endif + + +METHODDEF(void) +ycc_rgb_convert_argb (j_decompress_ptr cinfo, + JSAMPIMAGE input_buf, JDIMENSION input_row, + JSAMPARRAY output_buf, int num_rows) +{ + JDIMENSION num_cols = cinfo->output_width; + JSAMPLE * range_limit = cinfo->sample_range_limit; + + SHIFT_TEMPS + + /* This is used if we don't have SSE2 */ + + while (--num_rows >= 0) { + JSAMPROW inptr0 = input_buf[0][input_row]; + JSAMPROW inptr1 = input_buf[1][input_row]; + JSAMPROW inptr2 = input_buf[2][input_row]; + input_row++; + uint32_t *outptr = (uint32_t *) *output_buf++; + for (JDIMENSION col = 0; col < num_cols; col++) { + int y = GETJSAMPLE(inptr0[col]); + int cb = GETJSAMPLE(inptr1[col]); + int cr = GETJSAMPLE(inptr2[col]); + JSAMPLE * range_limit_y = range_limit + y; + /* Range-limiting is essential due to noise introduced by DCT losses. */ + outptr[col] = 0xFF000000 | + ( range_limit_y[Cr_r_tab[cr]] << 16 ) | + ( range_limit_y[((int) RIGHT_SHIFT(Cb_g_tab[cb] + Cr_g_tab[cr], SCALEBITS))] << 8 ) | + ( range_limit_y[Cb_b_tab[cb]] ); + } + } +} +#endif + + ///*************** Inverted CMYK -> RGB conversion ************************* /// Input is (Inverted) CMYK stored as 4 bytes per pixel. /// Output is RGB stored as 3 bytes per pixel. Index: branches/2016Q2/www/firefox/files/patch-sample-type =================================================================== --- branches/2016Q2/www/firefox/files/patch-sample-type (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-sample-type (revision 416430) @@ -1,13 +1,13 @@ # Let ports handle default sample type ---- configure.in~ -+++ configure.in +--- old-configure.in~ ++++ old-configure.in @@ -5144,7 +5144,7 @@ dnl Use integers over floats for audio o dnl (regarless of the CPU architecture, because audio dnl backends for those platforms don't support floats. We also dnl use integers on ARM with other OS, because it's more efficient. -if test "$OS_TARGET" = "Android" -o "$CPU_ARCH" = "arm"; then +if test -n "$MOZ_INTEGER_SAMPLES"; then MOZ_SAMPLE_TYPE_S16=1 AC_DEFINE(MOZ_SAMPLE_TYPE_S16) AC_SUBST(MOZ_SAMPLE_TYPE_S16) Index: branches/2016Q2/www/firefox/files/patch-z-bug517422 =================================================================== --- branches/2016Q2/www/firefox/files/patch-z-bug517422 (revision 416429) +++ branches/2016Q2/www/firefox/files/patch-z-bug517422 (revision 416430) @@ -1,446 +1,446 @@ # Allow more config/external/ libs built against system-wide version. diff --git config/Makefile.in config/Makefile.in index 5383399..0410004 100644 --- config/Makefile.in +++ config/Makefile.in @@ -77,6 +77,11 @@ export:: $(export-preqs) -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \ -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \ + -DMOZ_NATIVE_OGG=$(MOZ_NATIVE_OGG) \ + -DMOZ_NATIVE_THEORA=$(MOZ_NATIVE_THEORA) \ + -DMOZ_NATIVE_VORBIS=$(MOZ_NATIVE_VORBIS) \ + -DMOZ_NATIVE_TREMOR=$(MOZ_NATIVE_TREMOR) \ + -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \ $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers $(INSTALL) system_wrappers $(DIST) diff --git config/external/moz.build config/external/moz.build index f67c5c7..eb909ce 100644 --- config/external/moz.build +++ config/external/moz.build @@ -20,12 +20,21 @@ if CONFIG['MOZ_UPDATER']: # There's no "native brotli" yet, but probably in the future... external_dirs += ['modules/brotli'] -if CONFIG['MOZ_VORBIS']: +if not CONFIG['MOZ_NATIVE_OGG']: + external_dirs += ['media/libogg'] + +if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']: external_dirs += ['media/libvorbis'] -if CONFIG['MOZ_TREMOR']: +if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']: external_dirs += ['media/libtremor'] +if not CONFIG['MOZ_NATIVE_THEORA']: + external_dirs += ['media/libtheora'] + +if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']: + external_dirs += ['media/libsoundtouch'] + if CONFIG['MOZ_WEBM_ENCODER']: external_dirs += ['media/libmkv'] @@ -51,12 +60,9 @@ external_dirs += [ 'media/kiss_fft', 'media/libcubeb', 'media/libnestegg', - 'media/libogg', 'media/libopus', - 'media/libtheora', 'media/libspeex_resampler', 'media/libstagefright', - 'media/libsoundtouch', ] DIRS += ['../../' + i for i in external_dirs] diff --git config/system-headers config/system-headers index bef567c..9807c29 100644 --- config/system-headers +++ config/system-headers @@ -1364,3 +1363,17 @@ graphite2/Segment.h harfbuzz/hb-ot.h harfbuzz/hb.h #endif +#if MOZ_NATIVE_OGG==1 +ogg/ogg.h +ogg/os_types.h +#endif +#if MOZ_NATIVE_THEORA==1 +theora/theoradec.h +#endif +#if MOZ_NATIVE_VORBIS==1 +vorbis/codec.h +vorbis/vorbisenc.h +#endif +#if MOZ_NATIVE_TREMOR==1 +tremor/ivorbiscodec.h +#endif -diff --git configure.in configure.in +diff --git old-configure.in configure.in index 87db361..7947626 100644 ---- configure.in -+++ configure.in +--- old-configure.in ++++ old-configure.in @@ -5401,6 +5401,111 @@ if test -n "$MOZ_OMX_PLUGIN"; then fi fi +dnl ======================================================== +dnl Check for libogg +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-ogg, +[ --with-system-ogg Use system libogg (located with pkgconfig)], +MOZ_NATIVE_OGG=1, +MOZ_NATIVE_OGG=) + +if test -n "$MOZ_NATIVE_OGG"; then + PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.2.1) + + _SAVE_LIBS=$LIBS + LIBS="$LIBS $MOZ_OGG_LIBS" + AC_CHECK_FUNC(ogg_set_mem_functions, [], + [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)]) + LIBS=$_SAVE_LIBS +fi + +AC_SUBST(MOZ_NATIVE_OGG) + +dnl ======================================================== +dnl Check for libvorbis +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-vorbis, +[ --with-system-vorbis Use system libvorbis (located with pkgconfig)], +MOZ_NATIVE_VORBIS=1, +MOZ_NATIVE_VORBIS=) + +if test -n "$MOZ_NATIVE_VORBIS"; then + PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5) +fi + +AC_SUBST(MOZ_NATIVE_VORBIS) + +dnl ======================================================== +dnl Check for integer-only libvorbis aka tremor +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-tremor, +[ --with-system-tremor Use system libtremor (located with pkgconfig)], +MOZ_NATIVE_TREMOR=1, +MOZ_NATIVE_TREMOR=) + +if test -n "$MOZ_NATIVE_TREMOR"; then + PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1) +fi + +AC_SUBST(MOZ_NATIVE_TREMOR) + +dnl ======================================================== +dnl Check for libtheora +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-theora, +[ --with-system-theora Use system libtheora (located with pkgconfig)], +MOZ_NATIVE_THEORA=1, +MOZ_NATIVE_THEORA=) + +if test -n "$MOZ_NATIVE_THEORA"; then + PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2) +fi + +AC_SUBST(MOZ_NATIVE_THEORA) + +dnl ======================================================== +dnl Check for libSoundTouch +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-soundtouch, +[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)], +MOZ_NATIVE_SOUNDTOUCH=1, +MOZ_NATIVE_SOUNDTOUCH=) + +if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then + PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0) + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + _SAVE_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS" + AC_CACHE_CHECK(for soundtouch sample type, + ac_cv_soundtouch_sample_type, + [AC_TRY_COMPILE([#include + #ifndef SOUNDTOUCH_INTEGER_SAMPLES + #error soundtouch expects float samples + #endif], + [], + [ac_cv_soundtouch_sample_type=short], + [ac_cv_soundtouch_sample_type=float])]) + CXXFLAGS=$_SAVE_CXXFLAGS + AC_LANG_RESTORE + + if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \ + -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then + AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.]) + fi +fi + +if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then + AC_DEFINE(MOZ_NATIVE_SOUNDTOUCH) +fi +AC_SUBST(MOZ_NATIVE_SOUNDTOUCH) + dnl system libvpx Support dnl ======================================================== MOZ_ARG_WITH_BOOL(system-libvpx, diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp index 2127256..1ec09fe 100644 --- dom/media/AudioStream.cpp +++ dom/media/AudioStream.cpp @@ -129,7 +129,9 @@ AudioStream::AudioStream() , mOutChannels(0) , mWritten(0) , mAudioClock(this) +#ifndef MOZ_NATIVE_SOUNDTOUCH , mTimeStretcher(nullptr) +#endif , mDumpFile(nullptr) , mBytesPerFrame(0) , mState(INITIALIZED) @@ -152,9 +154,11 @@ AudioStream::~AudioStream() if (mDumpFile) { fclose(mDumpFile); } +#ifndef MOZ_NATIVE_SOUNDTOUCH if (mTimeStretcher) { soundtouch::destroySoundTouchObj(mTimeStretcher); } +#endif } size_t @@ -177,7 +181,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked() { mMonitor.AssertCurrentThreadOwns(); if (!mTimeStretcher) { +#ifdef MOZ_NATIVE_SOUNDTOUCH + mTimeStretcher = new soundtouch::SoundTouch(); +#else mTimeStretcher = soundtouch::createSoundTouchObj(); +#endif mTimeStretcher->setSampleRate(mInRate); mTimeStretcher->setChannels(mOutChannels); mTimeStretcher->setPitch(1.0); diff --git dom/media/AudioStream.h dom/media/AudioStream.h index a552e3e..02b80b1 100644 --- dom/media/AudioStream.h +++ dom/media/AudioStream.h @@ -15,7 +15,11 @@ #include "mozilla/RefPtr.h" #include "mozilla/UniquePtr.h" #include "CubebUtils.h" +#ifdef MOZ_NATIVE_SOUNDTOUCH +#include "soundtouch/SoundTouch.h" +#else #include "soundtouch/SoundTouchFactory.h" +#endif namespace mozilla { @@ -277,7 +277,11 @@ private: // Number of frames written to the buffers. int64_t mWritten; AudioClock mAudioClock; +#ifdef MOZ_NATIVE_SOUNDTOUCH + nsAutoPtr mTimeStretcher; +#else soundtouch::SoundTouch* mTimeStretcher; +#endif // Stream start time for stream open delay telemetry. TimeStamp mStartTime; diff --git dom/media/moz.build dom/media/moz.build index 7526cff..e0a0ca0 100644 --- dom/media/moz.build +++ dom/media/moz.build @@ -300,6 +300,21 @@ if CONFIG['MOZ_WEBRTC']: DEFINES['MOZILLA_INTERNAL_API'] = True +if CONFIG['MOZ_NATIVE_OGG']: + CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS'] + +if CONFIG['MOZ_NATIVE_THEORA']: + CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS'] + +if CONFIG['MOZ_NATIVE_VORBIS']: + CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS'] + +if CONFIG['MOZ_NATIVE_TREMOR']: + CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS'] + +if CONFIG['MOZ_NATIVE_SOUNDTOUCH']: + CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS'] + if CONFIG['OS_TARGET'] == 'WINNT': DEFINES['WEBRTC_WIN'] = True else: diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA index 0833e4d..7ece97b 100644 --- media/libogg/README_MOZILLA +++ media/libogg/README_MOZILLA @@ -6,3 +6,6 @@ The svn revision number used was r17287. The int-types.patch address a bug that config_types.h generated from Linux platform can't be used on OpenSolaris directly see Mozilla bug 449754 + +The in-tree copy may be omitted during build by --with-system-ogg. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libsoundtouch/README_MOZILLA media/libsoundtouch/README_MOZILLA index bfd4b1a..15b158d 100644 --- media/libsoundtouch/README_MOZILLA +++ media/libsoundtouch/README_MOZILLA @@ -6,3 +6,5 @@ The whole library is not used, only the relevant files are imported in the tree, using the script `update.sh`. Some changes have been made to the files, using the patch `moz-libsoundtouch.patch`. We also use a custom soundtouch_config.h. +The in-tree copy may be omitted during build by --with-system-soundtouch. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libsoundtouch/src/soundtouch_perms.h media/libsoundtouch/src/soundtouch_perms.h index 0af2fe6..d80c145 100644 --- media/libsoundtouch/src/soundtouch_perms.h +++ media/libsoundtouch/src/soundtouch_perms.h @@ -12,7 +12,9 @@ #pragma GCC visibility push(default) #include "SoundTouch.h" +#ifndef MOZ_NATIVE_SOUNDTOUCH #include "SoundTouchFactory.h" +#endif #pragma GCC visibility pop #endif // MOZILLA_SOUNDTOUCH_PERMS_H diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA index d48dbfa..f08a2ed 100644 --- media/libtheora/README_MOZILLA +++ media/libtheora/README_MOZILLA @@ -3,3 +3,6 @@ using the update.sh script. The changes made were those applied by update.sh, the addition/update of Makefile.in files for the Mozilla build system. The subversion revision used was r17578. + +The in-tree copy may be omitted during build by --with-system-theora. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libtheora/moz.build media/libtheora/moz.build index 14265b1..3069e99 100644 --- media/libtheora/moz.build +++ media/libtheora/moz.build @@ -21,6 +21,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']: # The encoder is currently not included. DEFINES['THEORA_DISABLE_ENCODE'] = True +if CONFIG['MOZ_NATIVE_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] + # Suppress warnings in third-party code. if CONFIG['GNU_CC']: CFLAGS += ['-Wno-type-limits'] diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA index ee67b53..3f34a09 100644 --- media/libtremor/README_MOZILLA +++ media/libtremor/README_MOZILLA @@ -5,3 +5,6 @@ Makefile.in files for the Mozilla build system. The upstream release used was http://svn.xiph.org/trunk/Tremor/ The subversion revision used was r17547. + +The in-tree copy may be omitted during build by --with-system-tremor. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libtremor/moz.build media/libtremor/moz.build index 31831ba..a03d576 100644 --- media/libtremor/moz.build +++ media/libtremor/moz.build @@ -6,3 +6,5 @@ DIRS += ['include/tremor', 'lib'] +if CONFIG['MOZ_NATIVE_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] diff --git media/libvorbis/README_MOZILLA media/libvorbis/README_MOZILLA index 7c7454c..55baedd 100644 --- media/libvorbis/README_MOZILLA +++ media/libvorbis/README_MOZILLA @@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.4@19059 Some files are renamed during the copy to prevent clashes with object file names with other Mozilla libraries. + +The in-tree copy may be omitted during build by --with-system-vorbis. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libvorbis/moz.build media/libvorbis/moz.build index 919b99e..cc776f7 100644 --- media/libvorbis/moz.build +++ media/libvorbis/moz.build @@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias' # Suppress warnings in third-party code. if CONFIG['GNU_CC']: CFLAGS += ['-Wno-uninitialized'] + +if CONFIG['MOZ_NATIVE_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] diff --git toolkit/library/moz.build toolkit/library/moz.build index d42137a..695e75a8 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build @@ -178,6 +178,21 @@ if CONFIG['MOZ_NATIVE_PNG']: if CONFIG['MOZ_NATIVE_HUNSPELL']: OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] +if CONFIG['MOZ_NATIVE_OGG']: + OS_LIBS += CONFIG['MOZ_OGG_LIBS'] + +if CONFIG['MOZ_NATIVE_THEORA']: + OS_LIBS += CONFIG['MOZ_THEORA_LIBS'] + +if CONFIG['MOZ_NATIVE_VORBIS']: + OS_LIBS += CONFIG['MOZ_VORBIS_LIBS'] + +if CONFIG['MOZ_NATIVE_TREMOR']: + OS_LIBS += CONFIG['MOZ_TREMOR_LIBS'] + +if CONFIG['MOZ_NATIVE_SOUNDTOUCH']: + OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS'] + if CONFIG['MOZ_NATIVE_LIBEVENT']: OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS'] diff --git xpcom/build/XPCOMInit.cpp xpcom/build/XPCOMInit.cpp index 2cf281e..6d7af0e 100644 --- xpcom/build/XPCOMInit.cpp +++ xpcom/build/XPCOMInit.cpp @@ -138,7 +138,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**); #include "mozilla/VisualEventTracer.h" #endif +#ifndef MOZ_OGG_NO_MEM_REPORTING #include "ogg/ogg.h" +#endif #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) #include "vpx_mem/vpx_mem.h" #endif @@ -651,11 +653,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult, // this oddness. mozilla::SetICUMemoryFunctions(); +#ifndef MOZ_OGG_NO_MEM_REPORTING // Do the same for libogg. ogg_set_mem_functions(OggReporter::CountingMalloc, OggReporter::CountingCalloc, OggReporter::CountingRealloc, OggReporter::CountingFree); +#endif #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) // And for VPX. Index: branches/2016Q2/www/firefox-esr/Makefile =================================================================== --- branches/2016Q2/www/firefox-esr/Makefile (revision 416429) +++ branches/2016Q2/www/firefox-esr/Makefile (revision 416430) @@ -1,82 +1,82 @@ # Created by: Alan Eldridge # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 45.1.1 +DISTVERSION= 45.2.0 DISTVERSIONSUFFIX=esr.source PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build2/source PKGNAMESUFFIX= -esr MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla BUILD_DEPENDS= nspr>=4.12:devel/nspr \ nss>=3.21.1:security/nss \ libevent2>=2.0.21_2:devel/libevent2 \ soundtouch>=1.9.0:audio/soundtouch \ harfbuzz>=1.1.0:print/harfbuzz \ graphite2>=1.3.6:graphics/graphite2 \ png>=1.6.19:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ sqlite3>=3.9.1: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 \ unzip:archivers/unzip LIB_DEPENDS= libv4l2.so:multimedia/libv4l USE_GECKO= gecko CPE_PRODUCT= ${PORTNAME}_esr CONFLICTS_INSTALL= firefox-[0-9]* MOZ_PKGCONFIG_FILES= # empty USE_MOZILLA= # empty MOZILLA_NAME= Firefox USE_QT5= # empty QT_NONSTANDARD= yes USE_GL= gl USES= tar:xz FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \ --enable-application=browser \ --enable-official-branding OPTIONS_EXCLUDE= GSTREAMER LOGGING OPTIONS_DEFINE= RUST OPTIONS_DEFAULT= BUNDLED_CAIRO GTK2 OPTIONS_SINGLE+= TOOLKIT OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3 .include "${.CURDIR}/../../www/firefox/Makefile.options" WRKSRC:= ${WRKDIR}/${PORTNAME}-${DISTVERSION}esr 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: branches/2016Q2/www/firefox-esr/distinfo =================================================================== --- branches/2016Q2/www/firefox-esr/distinfo (revision 416429) +++ branches/2016Q2/www/firefox-esr/distinfo (revision 416430) @@ -1,2 +1,2 @@ -SHA256 (firefox-45.1.1esr.source.tar.xz) = a27e36aa1ccebddfe5a113f7f15b09a61e35644be58029b00b0d996a00d04562 -SIZE (firefox-45.1.1esr.source.tar.xz) = 184360800 +SHA256 (firefox-45.2.0esr.source.tar.xz) = 1a729774034231c919dc5a556e17d3342792d5347c755d8d0a4f67a07374804b +SIZE (firefox-45.2.0esr.source.tar.xz) = 185458280 Index: branches/2016Q2/www/firefox-esr/files/patch-bug1269165 =================================================================== --- branches/2016Q2/www/firefox-esr/files/patch-bug1269165 (revision 416429) +++ branches/2016Q2/www/firefox-esr/files/patch-bug1269165 (nonexistent) @@ -1,24 +0,0 @@ -# getUserMedia fails to enumerate ALSA plugins - ---- media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa_linux.cc.orig 2016-04-22 00:37:17 UTC -+++ media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa_linux.cc -@@ -1752,7 +1752,9 @@ int32_t AudioDeviceLinuxALSA::GetDevices - // Don't use snd_device_name_hint(-1,..) since there is a access violation - // inside this ALSA API with libasound.so.2.0.0. - int card = -1; -+#ifdef WEBRTC_LINUX - while (!(LATE(snd_card_next)(&card)) && (card >= 0) && keepSearching) { -+#endif - void **hints; - err = LATE(snd_device_name_hint)(card, "pcm", &hints); - if (err != 0) -@@ -1878,7 +1880,9 @@ int32_t AudioDeviceLinuxALSA::GetDevices - LATE(snd_strerror)(err)); - // Continue and return true anyway, since we did get the whole list. - } -+#ifdef WEBRTC_LINUX - } -+#endif - - if (FUNC_GET_NUM_OF_DEVICE == function) - { Property changes on: branches/2016Q2/www/firefox-esr/files/patch-bug1269165 ___________________________________________________________________ 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: branches/2016Q2/www/firefox-esr-i18n/Makefile =================================================================== --- branches/2016Q2/www/firefox-esr-i18n/Makefile (revision 416429) +++ branches/2016Q2/www/firefox-esr-i18n/Makefile (revision 416430) @@ -1,90 +1,90 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= firefox -PORTVERSION= 45.1.1 +PORTVERSION= 45.2.0 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}esr/linux-i686/xpi \ - MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build1/linux-i686/xpi + MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build2/linux-i686/xpi PKGNAMEPREFIX= PKGNAMESUFFIX= -esr-i18n DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/} DIST_SUBDIR= xpi/${DISTNAME} MAINTAINER= gecko@FreeBSD.org COMMENT= Localized interface for Firefox EXTRACT_DEPENDS= zip:archivers/zip USES= zip:infozip gecko:firefox,build -USE_XPI= firefox +USE_XPI= firefox linux-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} -f $$_dir/${WDIR} ; }' ${_A} post-patch: ${FIND} ${WRKSRC} -name install.rdf -print0 | \ ${XARGS} -0L1 ${REINPLACE_CMD} -i '' -e '/ Index: branches/2016Q2/www/firefox-esr-i18n/distinfo =================================================================== --- branches/2016Q2/www/firefox-esr-i18n/distinfo (revision 416429) +++ branches/2016Q2/www/firefox-esr-i18n/distinfo (revision 416430) @@ -1,180 +1,180 @@ -SHA256 (xpi/firefox-45.1.1/ach.xpi) = d83055ca8b37a345abc83272fcdb98fd12282152763157589a975ecf4f7a17fa -SIZE (xpi/firefox-45.1.1/ach.xpi) = 426525 -SHA256 (xpi/firefox-45.1.1/af.xpi) = dd994cf4e196ba8928018fdff624b448efd7519560b1bed09aaa61fe740bc04e -SIZE (xpi/firefox-45.1.1/af.xpi) = 439350 -SHA256 (xpi/firefox-45.1.1/an.xpi) = 5b924b7b5893f770c23e7a3c5cf20759f6039d89a7336ca8fc0a93ca119f81c4 -SIZE (xpi/firefox-45.1.1/an.xpi) = 449031 -SHA256 (xpi/firefox-45.1.1/ar.xpi) = e31158a718f2456a5476e3cf40d3230e5661a59ffd52b7c831f23759d1ea3b31 -SIZE (xpi/firefox-45.1.1/ar.xpi) = 474955 -SHA256 (xpi/firefox-45.1.1/as.xpi) = 09aba7093334335f399eed15b3827697a1f66052602af842b61b8fe870e2b5a6 -SIZE (xpi/firefox-45.1.1/as.xpi) = 483091 -SHA256 (xpi/firefox-45.1.1/ast.xpi) = 5b03cfd06270a6f80e77935fdca231b4089e806cc244f83c6a4886ed908152b6 -SIZE (xpi/firefox-45.1.1/ast.xpi) = 419244 -SHA256 (xpi/firefox-45.1.1/az.xpi) = 56a3a2c8ccd8afbbd9c272f8b12f4bb7b2b4bc072828c3a2e8e98ffeae61fa07 -SIZE (xpi/firefox-45.1.1/az.xpi) = 464013 -SHA256 (xpi/firefox-45.1.1/be.xpi) = ee66ead5c254eec4cc7400ba0f29772cc76ada94542442c47668e885b75146cd -SIZE (xpi/firefox-45.1.1/be.xpi) = 442615 -SHA256 (xpi/firefox-45.1.1/bg.xpi) = 2f97043dbe9d611da03f92780d40c9c6925153c584c0a01241289e3aeef42336 -SIZE (xpi/firefox-45.1.1/bg.xpi) = 460803 -SHA256 (xpi/firefox-45.1.1/bn-BD.xpi) = 164c51026a76126f225c0e626788bf1a17ce79cb0921e9920fd18bc19765bcfe -SIZE (xpi/firefox-45.1.1/bn-BD.xpi) = 515638 -SHA256 (xpi/firefox-45.1.1/bn-IN.xpi) = 8adeb66997ba426da30c547366772d13daa7cad7e1afa84c91f0f8f48583dc01 -SIZE (xpi/firefox-45.1.1/bn-IN.xpi) = 494070 -SHA256 (xpi/firefox-45.1.1/br.xpi) = 9e4d131052a40f686783788517b21605832d4cb32acc5a7529a732ccbd646233 -SIZE (xpi/firefox-45.1.1/br.xpi) = 436387 -SHA256 (xpi/firefox-45.1.1/bs.xpi) = 26ff067f53933358ca06419059ccdc0178b1645b190db5c1069ccdcd5d28d088 -SIZE (xpi/firefox-45.1.1/bs.xpi) = 442991 -SHA256 (xpi/firefox-45.1.1/ca.xpi) = 55f09e4ffe22f0e17eec7f4e7ec6a0980beb77f785b38ea9bbd36a7252cea000 -SIZE (xpi/firefox-45.1.1/ca.xpi) = 436829 -SHA256 (xpi/firefox-45.1.1/cs.xpi) = f2a087e3d15cf9cebbaef4d8021d0cd57cbadbffdc4b3e8255e781048ae46079 -SIZE (xpi/firefox-45.1.1/cs.xpi) = 443479 -SHA256 (xpi/firefox-45.1.1/cy.xpi) = 83362ff6880072fe09ac17cf1c1c005b1585f5a3a0dc8d8346f64c86dc21951a -SIZE (xpi/firefox-45.1.1/cy.xpi) = 438904 -SHA256 (xpi/firefox-45.1.1/da.xpi) = 5e7ad2b10abcf56ee0e2571bd356369f9acbb9e8dd8a39d202da58d7efa514a3 -SIZE (xpi/firefox-45.1.1/da.xpi) = 430073 -SHA256 (xpi/firefox-45.1.1/de.xpi) = 53632d86e03b462a54afb5cb225db82e2f256f8439be0c41569154b9fc1d0897 -SIZE (xpi/firefox-45.1.1/de.xpi) = 445477 -SHA256 (xpi/firefox-45.1.1/dsb.xpi) = 146c7acc29ef17b8a128013b681a73b9932abd83a4f16facb6d564ffdf0eacbc -SIZE (xpi/firefox-45.1.1/dsb.xpi) = 463786 -SHA256 (xpi/firefox-45.1.1/el.xpi) = 708c7fa8e513f5c3c2dcf68b2f167c401fd084fa40a77c50fa4ad0c4208b3297 -SIZE (xpi/firefox-45.1.1/el.xpi) = 470861 -SHA256 (xpi/firefox-45.1.1/en-GB.xpi) = bc6e1b550c28e2de857afd19442a99d54e61419adcb6e9c558a319d52e95b7a2 -SIZE (xpi/firefox-45.1.1/en-GB.xpi) = 423865 -SHA256 (xpi/firefox-45.1.1/en-US.xpi) = 8cf66fdf60c680886a6679e36178d2800a66b4958c9c1b530e39875ab97fe4b8 -SIZE (xpi/firefox-45.1.1/en-US.xpi) = 425464 -SHA256 (xpi/firefox-45.1.1/en-ZA.xpi) = 37e00a701eabae66fd8bd348e94f6ffdf381a0e1d82a1138f0780e9d7260d53f -SIZE (xpi/firefox-45.1.1/en-ZA.xpi) = 420770 -SHA256 (xpi/firefox-45.1.1/eo.xpi) = 40b05996c059a9192cfcc328b1e21535f04ff487402eae31d4c1e5da11a89ecf -SIZE (xpi/firefox-45.1.1/eo.xpi) = 440955 -SHA256 (xpi/firefox-45.1.1/es-AR.xpi) = 8738b135c875ccead5705faa6430d8fc514675e5fceae6b46a72905b19031c81 -SIZE (xpi/firefox-45.1.1/es-AR.xpi) = 441477 -SHA256 (xpi/firefox-45.1.1/es-CL.xpi) = f9e2d636093aacd073318ca937baa90acac5ca5454e01068d274026065e0360b -SIZE (xpi/firefox-45.1.1/es-CL.xpi) = 368759 -SHA256 (xpi/firefox-45.1.1/es-ES.xpi) = d5cbdd9d45c507c3d6727749eccead5c246674a8ba935be0006ac88bff086c48 -SIZE (xpi/firefox-45.1.1/es-ES.xpi) = 353711 -SHA256 (xpi/firefox-45.1.1/es-MX.xpi) = ae5d50462d73824068acd0c1cc790f27d72e211cdeed6030b0bbbc32f098ada2 -SIZE (xpi/firefox-45.1.1/es-MX.xpi) = 449390 -SHA256 (xpi/firefox-45.1.1/et.xpi) = 9270f2850624c80b06f462ab38e36588d7a7cf9c2043a956bc72e1a78fe196e5 -SIZE (xpi/firefox-45.1.1/et.xpi) = 433347 -SHA256 (xpi/firefox-45.1.1/eu.xpi) = 1ede6524e697b29a6b309179dec0b6492cff485b62e3a00df281510f994c7b03 -SIZE (xpi/firefox-45.1.1/eu.xpi) = 441352 -SHA256 (xpi/firefox-45.1.1/fa.xpi) = d3b5580b8080022fbb1863f959d40e14c3e9e143b33b8a0436e282a8f8030dd3 -SIZE (xpi/firefox-45.1.1/fa.xpi) = 491936 -SHA256 (xpi/firefox-45.1.1/ff.xpi) = fab5cde7546ae3ff7a5c166018246e5c9ccc4270775a916dd0df56063862151a -SIZE (xpi/firefox-45.1.1/ff.xpi) = 441494 -SHA256 (xpi/firefox-45.1.1/fi.xpi) = f2f9060386db9a14840f42cc0c298bf17eee0662472bbac90be6733fad246ce9 -SIZE (xpi/firefox-45.1.1/fi.xpi) = 438343 -SHA256 (xpi/firefox-45.1.1/fr.xpi) = 7f40ec62c37479a1493c78a54a82b9d333f2991888b61f72e24074eedbe44a34 -SIZE (xpi/firefox-45.1.1/fr.xpi) = 450032 -SHA256 (xpi/firefox-45.1.1/fy-NL.xpi) = d72cee29697aa248b5aae12b9ef09a09e28ef375029be4c1a673265ddc7ab25d -SIZE (xpi/firefox-45.1.1/fy-NL.xpi) = 447773 -SHA256 (xpi/firefox-45.1.1/ga-IE.xpi) = 5e1dad1f15e5b9aae87d147b1467aa345f3e15594de6e21b19ba5a2ce7302679 -SIZE (xpi/firefox-45.1.1/ga-IE.xpi) = 460050 -SHA256 (xpi/firefox-45.1.1/gd.xpi) = 7fb26a668acc2c0c6da4264bfd1c8b5c3377ccd61037560a617d5005064bfd81 -SIZE (xpi/firefox-45.1.1/gd.xpi) = 449705 -SHA256 (xpi/firefox-45.1.1/gl.xpi) = bcca0faeb5266d16040880daa5a083616bee93ed8077b42eff2368d583fa47d0 -SIZE (xpi/firefox-45.1.1/gl.xpi) = 434799 -SHA256 (xpi/firefox-45.1.1/gn.xpi) = 7ad0548c25d0858d0694996bfcaa132771edd6ab026f214d79c8852bd9ade6c0 -SIZE (xpi/firefox-45.1.1/gn.xpi) = 460643 -SHA256 (xpi/firefox-45.1.1/gu-IN.xpi) = b5c344b9e6f750b0b63c35dc279982ce2294cce3a5275e44741da66abc320193 -SIZE (xpi/firefox-45.1.1/gu-IN.xpi) = 472562 -SHA256 (xpi/firefox-45.1.1/he.xpi) = d4814f3dac155439a6ce2488bf19e0fd70a2ed85989f5699519a33174359677b -SIZE (xpi/firefox-45.1.1/he.xpi) = 454782 -SHA256 (xpi/firefox-45.1.1/hi-IN.xpi) = d5b71557d0e40e9ee3d79aa1e2ce0b3af34df6d85d68b7ac52d4a67ee644f068 -SIZE (xpi/firefox-45.1.1/hi-IN.xpi) = 486986 -SHA256 (xpi/firefox-45.1.1/hr.xpi) = 476ee9610d7002551c1a81a00fe0caa47c30b02bc3478562ed3e96fc9539a485 -SIZE (xpi/firefox-45.1.1/hr.xpi) = 449063 -SHA256 (xpi/firefox-45.1.1/hsb.xpi) = e949a95ed6788525b3bae044e45fc22fac45ba09e33c2de63776fa168f6c51c2 -SIZE (xpi/firefox-45.1.1/hsb.xpi) = 461453 -SHA256 (xpi/firefox-45.1.1/hu.xpi) = eb2b2d2b59b9fdf25f30596b4ee2262d4756e1324daa507901e197e208542bcc -SIZE (xpi/firefox-45.1.1/hu.xpi) = 449772 -SHA256 (xpi/firefox-45.1.1/hy-AM.xpi) = ab5db1d2d6b18df71757420c5d77178adfdedc9779e7c944bd2221279fd83085 -SIZE (xpi/firefox-45.1.1/hy-AM.xpi) = 500035 -SHA256 (xpi/firefox-45.1.1/id.xpi) = 719dc2d7875378d2eafb950c50a720d15a2c104840bc7fcfe53a1f6d75cfadb7 -SIZE (xpi/firefox-45.1.1/id.xpi) = 427171 -SHA256 (xpi/firefox-45.1.1/is.xpi) = 81a974a7a697aa07c691a9b9498a2190e00f27f2cc9a5a2190d5af8facf9034c -SIZE (xpi/firefox-45.1.1/is.xpi) = 443209 -SHA256 (xpi/firefox-45.1.1/it.xpi) = a6352ff97bd2bf30b34a5031ae8fb4754ff7cd5fecab22eb9681a9e366b1276d -SIZE (xpi/firefox-45.1.1/it.xpi) = 343721 -SHA256 (xpi/firefox-45.1.1/ja.xpi) = 3ed23a89edd79b14350ba6dac759aa2c53b4b80914430854a774e0a407c2f6d5 -SIZE (xpi/firefox-45.1.1/ja.xpi) = 486326 -SHA256 (xpi/firefox-45.1.1/kk.xpi) = e97977832c4163b1041b3c74885ede4dc866cdd666315c38b1cd14838e9e197f -SIZE (xpi/firefox-45.1.1/kk.xpi) = 498890 -SHA256 (xpi/firefox-45.1.1/km.xpi) = fac7e5eef4b9f3eef29c190e26e8907b42b2513933d3a9ff14820205376fbf46 -SIZE (xpi/firefox-45.1.1/km.xpi) = 504297 -SHA256 (xpi/firefox-45.1.1/kn.xpi) = e93c5157c2e8da41118164f872498a488c870add2f5bd51d44b0d4c429fd5be0 -SIZE (xpi/firefox-45.1.1/kn.xpi) = 495877 -SHA256 (xpi/firefox-45.1.1/ko.xpi) = dbabcbf7eb3c91135c878f2fc60fef425a49d44802f77ae390623fe9fcc7d998 -SIZE (xpi/firefox-45.1.1/ko.xpi) = 465285 -SHA256 (xpi/firefox-45.1.1/lij.xpi) = 3602d267fd9dc509a82503aba560b897c832d4b7b77a239c375725d5276cce64 -SIZE (xpi/firefox-45.1.1/lij.xpi) = 381382 -SHA256 (xpi/firefox-45.1.1/lt.xpi) = 03aaf4c628851b180dcee65339149f3c988dd95364eab664e49e40add844b805 -SIZE (xpi/firefox-45.1.1/lt.xpi) = 454675 -SHA256 (xpi/firefox-45.1.1/lv.xpi) = 2e39a7fb32c349fc0305e42da6e0abaeba276f8ed870e024e54e13c457dfd318 -SIZE (xpi/firefox-45.1.1/lv.xpi) = 445716 -SHA256 (xpi/firefox-45.1.1/mai.xpi) = 7e575105a99b516cce1eeba46e55180e5606175ed42e187e6088c9aa0b4c867d -SIZE (xpi/firefox-45.1.1/mai.xpi) = 492643 -SHA256 (xpi/firefox-45.1.1/mk.xpi) = 84f6bbaea802d5cdb65cc42386e92e80c6e0f6a4da97c501eb6c0ec649ac7f9c -SIZE (xpi/firefox-45.1.1/mk.xpi) = 476389 -SHA256 (xpi/firefox-45.1.1/ml.xpi) = 53398c5163ab97bc87c396ce731883da3de060c4a18bbdb5f0daa88d2313538b -SIZE (xpi/firefox-45.1.1/ml.xpi) = 498677 -SHA256 (xpi/firefox-45.1.1/mr.xpi) = 7e450bc14788fa5a59533289a98c81d44e1dc159484f6c86c6dbcb1e2d370699 -SIZE (xpi/firefox-45.1.1/mr.xpi) = 503695 -SHA256 (xpi/firefox-45.1.1/ms.xpi) = e4cf31c4086c81affb738e42d4f6acc0ef54e855dce92dab0df348d49d0760de -SIZE (xpi/firefox-45.1.1/ms.xpi) = 440061 -SHA256 (xpi/firefox-45.1.1/nb-NO.xpi) = 0001e6a8fdf69acea398930e331ef0c22706d1e853e7a345c1f0ddb47d39185c -SIZE (xpi/firefox-45.1.1/nb-NO.xpi) = 435466 -SHA256 (xpi/firefox-45.1.1/nl.xpi) = 5133bf601b0bbe8a5378cf2086f0196dabc46567c5e906115a7361d6467c840a -SIZE (xpi/firefox-45.1.1/nl.xpi) = 435198 -SHA256 (xpi/firefox-45.1.1/nn-NO.xpi) = ae7f0431315024ec41c69893dc8c0c231f1cdb1f7331bd86101c0fc43314a126 -SIZE (xpi/firefox-45.1.1/nn-NO.xpi) = 432930 -SHA256 (xpi/firefox-45.1.1/or.xpi) = a6ceb9afd32665e3ab6ee262809f35714d45f54f6c12f26b03a0d4c63de22cb9 -SIZE (xpi/firefox-45.1.1/or.xpi) = 495918 -SHA256 (xpi/firefox-45.1.1/pa-IN.xpi) = d44be9e06234d1be404335bfe7c5aeecc9ccb3e62aaa82e14422f8b072e4c6dd -SIZE (xpi/firefox-45.1.1/pa-IN.xpi) = 489546 -SHA256 (xpi/firefox-45.1.1/pl.xpi) = 543d72ff9f59cc1eacf0fc5b5bede92ae09abfd33946de214a0cff18d7161621 -SIZE (xpi/firefox-45.1.1/pl.xpi) = 383925 -SHA256 (xpi/firefox-45.1.1/pt-BR.xpi) = 4e2866a37ad4aff1376e13b6559acbfad3266259daf9b296505780f73af0085c -SIZE (xpi/firefox-45.1.1/pt-BR.xpi) = 450986 -SHA256 (xpi/firefox-45.1.1/pt-PT.xpi) = 1b7a6eaffc5282dcbeb8de95a79aee457c6dd2be9000410245a8e6131756bea6 -SIZE (xpi/firefox-45.1.1/pt-PT.xpi) = 437018 -SHA256 (xpi/firefox-45.1.1/rm.xpi) = cf1dcaddda433c7419b67456133ab9a1db4464a7d7481d7622679e047af99d8e -SIZE (xpi/firefox-45.1.1/rm.xpi) = 437714 -SHA256 (xpi/firefox-45.1.1/ro.xpi) = 501da53fdd20aaafc736509e5efc46df07c1612949dfcf7099143d4783b6d03a -SIZE (xpi/firefox-45.1.1/ro.xpi) = 444056 -SHA256 (xpi/firefox-45.1.1/ru.xpi) = 789e501b0b548f442edbd5068d22248e69aabea2ffc527c21eae4ed26eab6f75 -SIZE (xpi/firefox-45.1.1/ru.xpi) = 392734 -SHA256 (xpi/firefox-45.1.1/si.xpi) = 61dd114357a8e515f88c5c1552f4520c246b3c5410ed0b7f8d5d88bc631c5c1a -SIZE (xpi/firefox-45.1.1/si.xpi) = 482242 -SHA256 (xpi/firefox-45.1.1/sk.xpi) = 2366d4536443d89807e7a089ec3b2efd1ff40d2d45343bb070eab0a6644f69e2 -SIZE (xpi/firefox-45.1.1/sk.xpi) = 453602 -SHA256 (xpi/firefox-45.1.1/sl.xpi) = 48ff2e41664ae674d40b377d8d0c88b5e66cd094928f0a62dccff47ababf155c -SIZE (xpi/firefox-45.1.1/sl.xpi) = 444959 -SHA256 (xpi/firefox-45.1.1/son.xpi) = abb8e49455d60d8e250ec2ea16b5f1e2137bf55e98cff70c2f506d29fe32065c -SIZE (xpi/firefox-45.1.1/son.xpi) = 433510 -SHA256 (xpi/firefox-45.1.1/sq.xpi) = 854e5e89707d0e190321c84dde2053022859cdcf44e765be1f3a3f02fe300e0e -SIZE (xpi/firefox-45.1.1/sq.xpi) = 452183 -SHA256 (xpi/firefox-45.1.1/sr.xpi) = 9882dff840c774a92b2c5b704488d284da11b0ed730fc2a5146d139e9ca9520e -SIZE (xpi/firefox-45.1.1/sr.xpi) = 464474 -SHA256 (xpi/firefox-45.1.1/sv-SE.xpi) = dfabb4ac996e9023dff676621be12f2a9908f965c015b6776780bb1257456c74 -SIZE (xpi/firefox-45.1.1/sv-SE.xpi) = 444209 -SHA256 (xpi/firefox-45.1.1/ta.xpi) = 1fdd03dd1af63c4c7fa47b2c011e508699cb293618ef3103f9c464a2fbb09bf7 -SIZE (xpi/firefox-45.1.1/ta.xpi) = 483115 -SHA256 (xpi/firefox-45.1.1/te.xpi) = dbd40c37d1cfbdb2a20608ad5ca43cfd3e63b70cd0f6ae4b6def37e0867f792a -SIZE (xpi/firefox-45.1.1/te.xpi) = 492463 -SHA256 (xpi/firefox-45.1.1/th.xpi) = 44b610ec4753c587275a67f90679782d482de7901911d439bdf1f85be2ba1ac1 -SIZE (xpi/firefox-45.1.1/th.xpi) = 477645 -SHA256 (xpi/firefox-45.1.1/tr.xpi) = 12875bf1f2fe0e59b9072d898513da94391cdf0d2b00841edda12d62bbe49bc5 -SIZE (xpi/firefox-45.1.1/tr.xpi) = 451160 -SHA256 (xpi/firefox-45.1.1/uk.xpi) = 8a6ab975de9e7705fb397e6375d5f8a7652eebfe8ac5eb321bad724b7c2531bd -SIZE (xpi/firefox-45.1.1/uk.xpi) = 494777 -SHA256 (xpi/firefox-45.1.1/uz.xpi) = 55be80aeec41b284a5ac60a290f23c76c08d621c37281c7bf23e05deb42cd567 -SIZE (xpi/firefox-45.1.1/uz.xpi) = 443798 -SHA256 (xpi/firefox-45.1.1/vi.xpi) = 9c2530a840975d755bc7571bbb1e012159d50b834fc85b00833c9305a39d3729 -SIZE (xpi/firefox-45.1.1/vi.xpi) = 450775 -SHA256 (xpi/firefox-45.1.1/xh.xpi) = 8f7eabfe6f34624ce419da4e43a7a00dbad3298badb56119abee6b425466321a -SIZE (xpi/firefox-45.1.1/xh.xpi) = 432914 -SHA256 (xpi/firefox-45.1.1/zh-CN.xpi) = bcc5929c954fdabc359768309d90cce3a929d58313f2aba24d08d50f8abd2ab3 -SIZE (xpi/firefox-45.1.1/zh-CN.xpi) = 475791 -SHA256 (xpi/firefox-45.1.1/zh-TW.xpi) = 8eec6417d7c44b44669a8c5901adfdd6f9ea8115e6a4fa773a3ac4bf2b36e975 -SIZE (xpi/firefox-45.1.1/zh-TW.xpi) = 466525 +SHA256 (xpi/firefox-45.2.0/ach.xpi) = ab32a48c5904390b6bae54666d6cdade4500256314b427d84c92aed6a545365e +SIZE (xpi/firefox-45.2.0/ach.xpi) = 426530 +SHA256 (xpi/firefox-45.2.0/af.xpi) = ad0cac28e5f308d1b28c871a7a19ae8f90b5f766664a6d5f3bb4180035e39250 +SIZE (xpi/firefox-45.2.0/af.xpi) = 439353 +SHA256 (xpi/firefox-45.2.0/an.xpi) = 800b61986f4a120ece9746abdf3c0eff4702c16bc4968cd517d464705f40c848 +SIZE (xpi/firefox-45.2.0/an.xpi) = 449036 +SHA256 (xpi/firefox-45.2.0/ar.xpi) = e59ce49538ea7825c762acf88263cd8cb3ceb2c51184ead1035d6995e8ee3e36 +SIZE (xpi/firefox-45.2.0/ar.xpi) = 474961 +SHA256 (xpi/firefox-45.2.0/as.xpi) = 67f6fd6bd8c40c97b339fa98f10b34dc23c149260a130bcdb60fdd3f9914ef8f +SIZE (xpi/firefox-45.2.0/as.xpi) = 483096 +SHA256 (xpi/firefox-45.2.0/ast.xpi) = 2b9ebd133922ea270fcec57b41f0c123fd3fdbd24fb0ff5a1afde2595691a3cc +SIZE (xpi/firefox-45.2.0/ast.xpi) = 419249 +SHA256 (xpi/firefox-45.2.0/az.xpi) = 8eb51f7a8ba22cc2d98d017c8935e34e8fb4bad55faac7d4b2a2554ea2b41ee7 +SIZE (xpi/firefox-45.2.0/az.xpi) = 464018 +SHA256 (xpi/firefox-45.2.0/be.xpi) = 70fca224ef5d1511b407bcb03f555d0efbdd0917beb6d1d813da7d6e1b4ff5db +SIZE (xpi/firefox-45.2.0/be.xpi) = 442619 +SHA256 (xpi/firefox-45.2.0/bg.xpi) = eee477ac2a49d30afaccff8442936ccdc19848806aa71213982f7f4f21ffd5fb +SIZE (xpi/firefox-45.2.0/bg.xpi) = 460809 +SHA256 (xpi/firefox-45.2.0/bn-BD.xpi) = 1f58d1245fac7492bcd1ec42aa1c2179539bf515dc2a82bf7cc9695e3f78728c +SIZE (xpi/firefox-45.2.0/bn-BD.xpi) = 515643 +SHA256 (xpi/firefox-45.2.0/bn-IN.xpi) = b83af2acca411bf6213bcf2d320c5b40c20733baf712a053460222aaa6e0c8f2 +SIZE (xpi/firefox-45.2.0/bn-IN.xpi) = 494076 +SHA256 (xpi/firefox-45.2.0/br.xpi) = 14b1c5e5f904cd41e2fd4e1313918f29b2df318017bbab6e757a642b7bb85106 +SIZE (xpi/firefox-45.2.0/br.xpi) = 436390 +SHA256 (xpi/firefox-45.2.0/bs.xpi) = 4ec98ec6a9a72a9973bd2d422ba0192257a9162ad11b12d080b1c0681bdc4a0c +SIZE (xpi/firefox-45.2.0/bs.xpi) = 442998 +SHA256 (xpi/firefox-45.2.0/ca.xpi) = f894c0a2ac465f8391bff78287444837dabf1179901968360157bba3ec5b6efd +SIZE (xpi/firefox-45.2.0/ca.xpi) = 436832 +SHA256 (xpi/firefox-45.2.0/cs.xpi) = 7f03c25a4889f68b95127ccf05a5cd31e7239fa494364037e8982dc120750aff +SIZE (xpi/firefox-45.2.0/cs.xpi) = 443482 +SHA256 (xpi/firefox-45.2.0/cy.xpi) = c553756f9c8e637e575994fc6ab7947ae4a7a56d795049800c33460c6dae15d1 +SIZE (xpi/firefox-45.2.0/cy.xpi) = 438907 +SHA256 (xpi/firefox-45.2.0/da.xpi) = 73451be8019a5d58277abac7882deb87fcb9ed2a3623af84ba1b36dfb8c2c63a +SIZE (xpi/firefox-45.2.0/da.xpi) = 430078 +SHA256 (xpi/firefox-45.2.0/de.xpi) = 39cfb1784510fb2e3554853504c5134f375976062625d42eaaaeb7285cde6da5 +SIZE (xpi/firefox-45.2.0/de.xpi) = 445481 +SHA256 (xpi/firefox-45.2.0/dsb.xpi) = 2074c16b5182987cce55976c8a37fbd547d41691e9d2445deddfe8a6a90a306d +SIZE (xpi/firefox-45.2.0/dsb.xpi) = 463791 +SHA256 (xpi/firefox-45.2.0/el.xpi) = fba350202bf123c1c653f8a39c63bf751699e2f4e6381add7b0ef43cca6c6a5a +SIZE (xpi/firefox-45.2.0/el.xpi) = 470866 +SHA256 (xpi/firefox-45.2.0/en-GB.xpi) = 93023222bd0692ddf0e68b15c4f4237a0103e132d3b9b75aa34cde4da5a37822 +SIZE (xpi/firefox-45.2.0/en-GB.xpi) = 423871 +SHA256 (xpi/firefox-45.2.0/en-US.xpi) = 99d2186606e994592ce8cac8652efaa6cf9d2c74ec877a086f876547bc326796 +SIZE (xpi/firefox-45.2.0/en-US.xpi) = 425461 +SHA256 (xpi/firefox-45.2.0/en-ZA.xpi) = 80d207cae72da385aca4745d7eb726aadc12b3ba74ddf0ade07f3e0a0d4f40d4 +SIZE (xpi/firefox-45.2.0/en-ZA.xpi) = 420776 +SHA256 (xpi/firefox-45.2.0/eo.xpi) = bc9cede961a4af1077b1a5cec9ca44b69f2b88aaa5daa53ebb432adccbbc1ab3 +SIZE (xpi/firefox-45.2.0/eo.xpi) = 440960 +SHA256 (xpi/firefox-45.2.0/es-AR.xpi) = 692d0087ff79da78962576bf56bea48152f71817e339d41d05012346a61a473d +SIZE (xpi/firefox-45.2.0/es-AR.xpi) = 441481 +SHA256 (xpi/firefox-45.2.0/es-CL.xpi) = 2551e0a0f2866a7bd1190bf00926c500e3ec28e1090f19320926b14babaaddd4 +SIZE (xpi/firefox-45.2.0/es-CL.xpi) = 368763 +SHA256 (xpi/firefox-45.2.0/es-ES.xpi) = 580d3c833e2337f9e54cda734153fa80f0a14f43e72b7c38f80add9b18405a10 +SIZE (xpi/firefox-45.2.0/es-ES.xpi) = 353716 +SHA256 (xpi/firefox-45.2.0/es-MX.xpi) = 53511dae1d4de036953ca1f5fa1faee7bb63d1229c31c95e8d5e3bb94efdcac8 +SIZE (xpi/firefox-45.2.0/es-MX.xpi) = 449395 +SHA256 (xpi/firefox-45.2.0/et.xpi) = b5a2388d7ba5d50a00c8816b48ba344e088103f6637686df36a0ee0d2d7356b1 +SIZE (xpi/firefox-45.2.0/et.xpi) = 433352 +SHA256 (xpi/firefox-45.2.0/eu.xpi) = ed94e9950608c75acb4f08bedf645dfec6a390dab3221be7aaa124297bae1166 +SIZE (xpi/firefox-45.2.0/eu.xpi) = 441357 +SHA256 (xpi/firefox-45.2.0/fa.xpi) = 6cd12a4e763c01802d1807e3c4c0bbf30ab3e6fb8898064770d2ea8ca105b980 +SIZE (xpi/firefox-45.2.0/fa.xpi) = 491941 +SHA256 (xpi/firefox-45.2.0/ff.xpi) = e8d5cdc8269924c7ca6865e623bf529cac2b4c2cc7660c403f9d1e80f85951bf +SIZE (xpi/firefox-45.2.0/ff.xpi) = 441499 +SHA256 (xpi/firefox-45.2.0/fi.xpi) = 9e71e711df882e30a5707f9e94b7fee46ad9b31b6be8f381f1a8c29d446f9374 +SIZE (xpi/firefox-45.2.0/fi.xpi) = 438347 +SHA256 (xpi/firefox-45.2.0/fr.xpi) = d54ecb0438c531e95f605c29dac47c700a03e4e4f3759a51fd7e956586015928 +SIZE (xpi/firefox-45.2.0/fr.xpi) = 450037 +SHA256 (xpi/firefox-45.2.0/fy-NL.xpi) = 5f04850dedf9b6bc6fb5e566b498ce94bdd4402e56cd8b3e1c738dd35aebc567 +SIZE (xpi/firefox-45.2.0/fy-NL.xpi) = 447779 +SHA256 (xpi/firefox-45.2.0/ga-IE.xpi) = 82af32ddc3a958b3a0ff7ed5ef40085c6b1736bba071a6308febec066ce1ad5c +SIZE (xpi/firefox-45.2.0/ga-IE.xpi) = 460055 +SHA256 (xpi/firefox-45.2.0/gd.xpi) = 737e7dc382486d00c0c453e010a2d3d38b6a5dcd62517b56ab221ffa6c54b9ad +SIZE (xpi/firefox-45.2.0/gd.xpi) = 449711 +SHA256 (xpi/firefox-45.2.0/gl.xpi) = d306890e910978682d4d547a05b86135bf1db4cbbc9fd3fbad646ea237385fd2 +SIZE (xpi/firefox-45.2.0/gl.xpi) = 434804 +SHA256 (xpi/firefox-45.2.0/gn.xpi) = 9e26501f999a5a3db51408b8a31f2187fccc98469c4b0d2cc49266dc7e91439a +SIZE (xpi/firefox-45.2.0/gn.xpi) = 460648 +SHA256 (xpi/firefox-45.2.0/gu-IN.xpi) = 139545d1c9db7a2a2c8c3a281a07f9486331db9c3c5f408e688218cd927fb270 +SIZE (xpi/firefox-45.2.0/gu-IN.xpi) = 472566 +SHA256 (xpi/firefox-45.2.0/he.xpi) = 686d7def4db270016f9439e848741ba5b54db1ecc8965834b43e49f9324a9ff4 +SIZE (xpi/firefox-45.2.0/he.xpi) = 454785 +SHA256 (xpi/firefox-45.2.0/hi-IN.xpi) = ba1baa71fb8cb0820101dad05f5192811d77a3c155a1ef032c8b1abeb97225bf +SIZE (xpi/firefox-45.2.0/hi-IN.xpi) = 486991 +SHA256 (xpi/firefox-45.2.0/hr.xpi) = b29db58626d46a7dca1ee5e4529f40b2fde142068c84ddbefdc5e623e820b709 +SIZE (xpi/firefox-45.2.0/hr.xpi) = 449068 +SHA256 (xpi/firefox-45.2.0/hsb.xpi) = 3c0c5567f58322f2b34445ecd9e08a0e1f927fd912a9c269c9643a821401b134 +SIZE (xpi/firefox-45.2.0/hsb.xpi) = 461454 +SHA256 (xpi/firefox-45.2.0/hu.xpi) = 28cca2db55be3ea6c71a687cb88187b1835fd4ced2aee17a52c3cf2dadbe67c9 +SIZE (xpi/firefox-45.2.0/hu.xpi) = 449777 +SHA256 (xpi/firefox-45.2.0/hy-AM.xpi) = 1ee6ddf381c1a1260c64c158aa807e4ca66555905f40bdce7de5b7956641959e +SIZE (xpi/firefox-45.2.0/hy-AM.xpi) = 500040 +SHA256 (xpi/firefox-45.2.0/id.xpi) = ec275678c1db4e70b2a2da48c19bf0572d7f74478cb42c04a81be92d3aa46d78 +SIZE (xpi/firefox-45.2.0/id.xpi) = 427175 +SHA256 (xpi/firefox-45.2.0/is.xpi) = c8b8fa447a48d9dd571345a4674b0cfd0b8bd1ba5504e1510e13f97fc7148ebb +SIZE (xpi/firefox-45.2.0/is.xpi) = 443209 +SHA256 (xpi/firefox-45.2.0/it.xpi) = 56fd3ee3a3a74c168b6e0bf51a89d420f53e13c2de96bb5866c70f0b9d4d22e3 +SIZE (xpi/firefox-45.2.0/it.xpi) = 343724 +SHA256 (xpi/firefox-45.2.0/ja.xpi) = 71d204506415314995661a7e0dbe7cdc0ff5a172308496b92c0c95b1610a8678 +SIZE (xpi/firefox-45.2.0/ja.xpi) = 486331 +SHA256 (xpi/firefox-45.2.0/kk.xpi) = ddda566a4a597c96241772115d61b930b6943dbb3c01043329c302799ecbedba +SIZE (xpi/firefox-45.2.0/kk.xpi) = 498895 +SHA256 (xpi/firefox-45.2.0/km.xpi) = ff359fa2d93a2cc513d0b1993dc06cd259cfd919ca708b4d4ae045829206c96d +SIZE (xpi/firefox-45.2.0/km.xpi) = 504301 +SHA256 (xpi/firefox-45.2.0/kn.xpi) = 0a5f165bc7ae67e5fef88d4a3f562910f0bd327145978a122f4631734835f01c +SIZE (xpi/firefox-45.2.0/kn.xpi) = 495880 +SHA256 (xpi/firefox-45.2.0/ko.xpi) = 15494988b0018752122cc4c798b090793df515f21b18a3a0a510159d33571e38 +SIZE (xpi/firefox-45.2.0/ko.xpi) = 465289 +SHA256 (xpi/firefox-45.2.0/lij.xpi) = 264ca757f638025039ab9d456503e70dc2689b4d3d8139f011b87aeac09c3c66 +SIZE (xpi/firefox-45.2.0/lij.xpi) = 381384 +SHA256 (xpi/firefox-45.2.0/lt.xpi) = 544687a52e5be21badd5aebea8f30a0f54fffc2b41e0c6b1b928e62f2ac76689 +SIZE (xpi/firefox-45.2.0/lt.xpi) = 454678 +SHA256 (xpi/firefox-45.2.0/lv.xpi) = 353b4287e9ae5ad161f84f3ccbda94b701cdcae4fded73f3683dbbcf6776996d +SIZE (xpi/firefox-45.2.0/lv.xpi) = 445720 +SHA256 (xpi/firefox-45.2.0/mai.xpi) = 6704741e8db60752a33d22513fcbd4def443c341b2dd79694517eea449c877b9 +SIZE (xpi/firefox-45.2.0/mai.xpi) = 492650 +SHA256 (xpi/firefox-45.2.0/mk.xpi) = eaa3d2ac2ec030120222ef7be87a14c74137a923642c0d34db800f85ce5a5c41 +SIZE (xpi/firefox-45.2.0/mk.xpi) = 476391 +SHA256 (xpi/firefox-45.2.0/ml.xpi) = ebb1e4efa5bd1f30326cae5dab1c34586b6b30c8a12cf70b43c596ad9b1f3d55 +SIZE (xpi/firefox-45.2.0/ml.xpi) = 498681 +SHA256 (xpi/firefox-45.2.0/mr.xpi) = 9d0dd0add1a43827c7d2ddc92179cf160d4705b23d90e485e878cc0d5292a394 +SIZE (xpi/firefox-45.2.0/mr.xpi) = 503700 +SHA256 (xpi/firefox-45.2.0/ms.xpi) = 6b9c129e22b336a3b02dc355144db4b4e70fdda80b2aef02907facf51f409c3d +SIZE (xpi/firefox-45.2.0/ms.xpi) = 440064 +SHA256 (xpi/firefox-45.2.0/nb-NO.xpi) = e3d543509ae33fc8d7aee2df3eaa88b98e747251284428ea45d5e8930217a416 +SIZE (xpi/firefox-45.2.0/nb-NO.xpi) = 435470 +SHA256 (xpi/firefox-45.2.0/nl.xpi) = 3d702d1762196e62ebba04fbc1d413ecb506cdbc3db0ecbdd3e3b238687efde9 +SIZE (xpi/firefox-45.2.0/nl.xpi) = 435202 +SHA256 (xpi/firefox-45.2.0/nn-NO.xpi) = 0d6452c5d10fa1a3321ab0b029c9d6bc04a9cb2ccdc8df9789af921a77e656c6 +SIZE (xpi/firefox-45.2.0/nn-NO.xpi) = 432934 +SHA256 (xpi/firefox-45.2.0/or.xpi) = fd59ed99ab8dc8940037d920d304e4b73f4b5ecb26435c612bb10905d4c9e24c +SIZE (xpi/firefox-45.2.0/or.xpi) = 495922 +SHA256 (xpi/firefox-45.2.0/pa-IN.xpi) = b9dc7f16072915f7c73bb76c05482922c152c4dcedc033b5eec6100a947ccb76 +SIZE (xpi/firefox-45.2.0/pa-IN.xpi) = 489550 +SHA256 (xpi/firefox-45.2.0/pl.xpi) = ee5c3299ad6093c13a11a2bf0b84a673c3b8d7f213d0eccca66ad5a45b40481b +SIZE (xpi/firefox-45.2.0/pl.xpi) = 383929 +SHA256 (xpi/firefox-45.2.0/pt-BR.xpi) = 13a0247861b12e75004688c6f66b43a8f77585129e0f9aad648762991018a137 +SIZE (xpi/firefox-45.2.0/pt-BR.xpi) = 450991 +SHA256 (xpi/firefox-45.2.0/pt-PT.xpi) = 15d312442e670c2c82742086bc131e56a507813954a6001ed60f9ec80487cfe9 +SIZE (xpi/firefox-45.2.0/pt-PT.xpi) = 437022 +SHA256 (xpi/firefox-45.2.0/rm.xpi) = b25a99bc87671f42d652090f3216875848c1ebe44c3229312146c8a0e1adab64 +SIZE (xpi/firefox-45.2.0/rm.xpi) = 437717 +SHA256 (xpi/firefox-45.2.0/ro.xpi) = ec785f0e3f7c9c8d753efeba0fcebb936ba3879c43decc6a627fd0a7e9e108f2 +SIZE (xpi/firefox-45.2.0/ro.xpi) = 444062 +SHA256 (xpi/firefox-45.2.0/ru.xpi) = 4e87a586a2a7180e7b816f0633dc4fd04bfddf92539d1b6cfe553fd18a0b1c7c +SIZE (xpi/firefox-45.2.0/ru.xpi) = 392738 +SHA256 (xpi/firefox-45.2.0/si.xpi) = 229cee5f06a0f9a09bf6c3220b78d06433b3b86d6fdfccbb095ceccf5cb23f37 +SIZE (xpi/firefox-45.2.0/si.xpi) = 482248 +SHA256 (xpi/firefox-45.2.0/sk.xpi) = fb4fb1df2c1f9001fc52694606eaa20ddb3500d19845adbbbd243acff5dd00b2 +SIZE (xpi/firefox-45.2.0/sk.xpi) = 453606 +SHA256 (xpi/firefox-45.2.0/sl.xpi) = 468fe8a06ec6cf8857be2db2fce922c864dd9fc3cf32792b901cdf8e9a170bb3 +SIZE (xpi/firefox-45.2.0/sl.xpi) = 444963 +SHA256 (xpi/firefox-45.2.0/son.xpi) = 92f165d1d15ca97c2307076a2b50f5768fb6c4949d1fdbe4866fa93a1105f7ab +SIZE (xpi/firefox-45.2.0/son.xpi) = 433513 +SHA256 (xpi/firefox-45.2.0/sq.xpi) = e8be4541145770f51fcc684ec03eb1a5c9fb55bfd3ed67608435f605f0a130e2 +SIZE (xpi/firefox-45.2.0/sq.xpi) = 452186 +SHA256 (xpi/firefox-45.2.0/sr.xpi) = aa8b65cdee5a9c22a2be0f417cfbd5af6cb4a286143aa3b07303fc581d627cd5 +SIZE (xpi/firefox-45.2.0/sr.xpi) = 464479 +SHA256 (xpi/firefox-45.2.0/sv-SE.xpi) = 153633ec437e931061e0a425a9eca68d7576d45865e5f6387b3d639a7d6d544c +SIZE (xpi/firefox-45.2.0/sv-SE.xpi) = 444214 +SHA256 (xpi/firefox-45.2.0/ta.xpi) = 44e0606031bc956658b593a53c8c4d70eac1ea48252c7e2f006921f07e054640 +SIZE (xpi/firefox-45.2.0/ta.xpi) = 483117 +SHA256 (xpi/firefox-45.2.0/te.xpi) = b4cc2afa5333eb7fa2caf31d29ae8fcce3ee7b67baecc7efc7c7e5167add6d72 +SIZE (xpi/firefox-45.2.0/te.xpi) = 492471 +SHA256 (xpi/firefox-45.2.0/th.xpi) = ad37cf4d00223d0f58304bbfef3b08e56c69e0a63dcc479e31228fcb41558643 +SIZE (xpi/firefox-45.2.0/th.xpi) = 477650 +SHA256 (xpi/firefox-45.2.0/tr.xpi) = d28a503d950418add2f603ae466086b35d6a019c4aa710a7e18b9606249db0d6 +SIZE (xpi/firefox-45.2.0/tr.xpi) = 451166 +SHA256 (xpi/firefox-45.2.0/uk.xpi) = de02a2a23c4b43eed07014951aaf8a0dc664880ad3d40db75959b8e907c72f82 +SIZE (xpi/firefox-45.2.0/uk.xpi) = 494780 +SHA256 (xpi/firefox-45.2.0/uz.xpi) = 4ab5efc5ea6e947b20d0ef37609b37b9b39c3e8fc5c8e920ddc898211c487cfa +SIZE (xpi/firefox-45.2.0/uz.xpi) = 443803 +SHA256 (xpi/firefox-45.2.0/vi.xpi) = b8494e8e5b9b6bd9e2330cd0baced8a87cbd5c7c5725350a372643e9ffabea5f +SIZE (xpi/firefox-45.2.0/vi.xpi) = 450778 +SHA256 (xpi/firefox-45.2.0/xh.xpi) = 435306cfa84825c72b2e15811d81e561ca863a5e80d3d1481b8726c5a2e44c55 +SIZE (xpi/firefox-45.2.0/xh.xpi) = 432918 +SHA256 (xpi/firefox-45.2.0/zh-CN.xpi) = dfbd3199e8b98916daf2a79dabdc21632e71645dcca876751807ae766714d695 +SIZE (xpi/firefox-45.2.0/zh-CN.xpi) = 475797 +SHA256 (xpi/firefox-45.2.0/zh-TW.xpi) = 6f9e0d6446aa9c4fe3806e82e012ef60e16007584a59bc08a4316df57cbaa3ef +SIZE (xpi/firefox-45.2.0/zh-TW.xpi) = 466529 Index: branches/2016Q2/www/firefox-i18n/Makefile =================================================================== --- branches/2016Q2/www/firefox-i18n/Makefile (revision 416429) +++ branches/2016Q2/www/firefox-i18n/Makefile (revision 416430) @@ -1,89 +1,89 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= firefox-i18n -PORTVERSION= 46.0.1 +PORTVERSION= 47.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/build2/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,46,build -USE_XPI= firefox linux-firefox +USES= zip:infozip gecko:firefox,47,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} -f $$_dir/${WDIR} ; }' ${_A} post-patch: ${FIND} ${WRKSRC} -name install.rdf -print0 | \ ${XARGS} -0L1 ${REINPLACE_CMD} -i '' -e '/ Index: branches/2016Q2/www/firefox-i18n/Makefile.lang =================================================================== --- branches/2016Q2/www/firefox-i18n/Makefile.lang (revision 416429) +++ branches/2016Q2/www/firefox-i18n/Makefile.lang (revision 416430) @@ -1,282 +1,285 @@ # Created by: Koji Yokota # $FreeBSD$ FIREFOX_I18N_ALL_= ach af an ar as ast az be bg bn-BD bn-IN br bs ca cs \ - cy da de dsb el en-GB en-ZA eo es-AR es-CL \ + cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL \ es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn \ gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km \ kn ko lij lt lv mai mk ml mr ms nb-NO nl nn-NO \ or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq \ sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW .if defined(FIREFOX_I18N_ALL) || defined(PACKAGE_BUILDING) || target(package) FIREFOX_I18N= ${FIREFOX_I18N_ALL_} .else .if ${PORT_OPTIONS:MLANG_ACH} FIREFOX_I18N+= ach .endif .if ${PORT_OPTIONS:MLANG_AF} FIREFOX_I18N+= af .endif .if ${PORT_OPTIONS:MLANG_AN} FIREFOX_I18N+= an .endif .if ${PORT_OPTIONS:MLANG_AR} FIREFOX_I18N+= ar .endif .if ${PORT_OPTIONS:MLANG_AS} FIREFOX_I18N+= as .endif .if ${PORT_OPTIONS:MLANG_AST} FIREFOX_I18N+= ast .endif .if ${PORT_OPTIONS:MLANG_AZ} FIREFOX_I18N+= az .endif .if ${PORT_OPTIONS:MLANG_BE} FIREFOX_I18N+= be .endif .if ${PORT_OPTIONS:MLANG_BG} FIREFOX_I18N+= bg .endif .if ${PORT_OPTIONS:MLANG_BB} FIREFOX_I18N+= bn-BD .endif .if ${PORT_OPTIONS:MLANG_BN} FIREFOX_I18N+= bn-IN .endif .if ${PORT_OPTIONS:MLANG_BR} FIREFOX_I18N+= br .endif .if ${PORT_OPTIONS:MLANG_BS} FIREFOX_I18N+= bs .endif .if ${PORT_OPTIONS:MLANG_CA} FIREFOX_I18N+= ca .endif .if ${PORT_OPTIONS:MLANG_CS} FIREFOX_I18N+= cs .endif .if ${PORT_OPTIONS:MLANG_CY} FIREFOX_I18N+= cy .endif .if ${PORT_OPTIONS:MLANG_DA} FIREFOX_I18N+= da .endif .if ${PORT_OPTIONS:MLANG_DE} FIREFOX_I18N+= de .endif .if ${PORT_OPTIONS:MLANG_DSB} FIREFOX_I18N+= dsb .endif .if ${PORT_OPTIONS:MLANG_EL} FIREFOX_I18N+= el .endif .if ${PORT_OPTIONS:MLANG_GB} FIREFOX_I18N+= en-GB +.endif +.if ${PORT_OPTIONS:MLANG_US} +FIREFOX_I18N+= en-US .endif .if ${PORT_OPTIONS:MLANG_ZA} FIREFOX_I18N+= en-ZA .endif .if ${PORT_OPTIONS:MLANG_EO} FIREFOX_I18N+= eo .endif .if ${PORT_OPTIONS:MLANG_SA} FIREFOX_I18N+= es-AR .endif .if ${PORT_OPTIONS:MLANG_SC} FIREFOX_I18N+= es-CL .endif .if ${PORT_OPTIONS:MLANG_ES} FIREFOX_I18N+= es-ES .endif .if ${PORT_OPTIONS:MLANG_SM} FIREFOX_I18N+= es-MX .endif .if ${PORT_OPTIONS:MLANG_ET} FIREFOX_I18N+= et .endif .if ${PORT_OPTIONS:MLANG_EU} FIREFOX_I18N+= eu .endif .if ${PORT_OPTIONS:MLANG_FA} FIREFOX_I18N+= fa .endif .if ${PORT_OPTIONS:MLANG_FF} FIREFOX_I18N+= ff .endif .if ${PORT_OPTIONS:MLANG_FI} FIREFOX_I18N+= fi .endif .if ${PORT_OPTIONS:MLANG_FR} FIREFOX_I18N+= fr .endif .if ${PORT_OPTIONS:MLANG_FY} FIREFOX_I18N+= fy-NL .endif .if ${PORT_OPTIONS:MLANG_GA} FIREFOX_I18N+= ga-IE .endif .if ${PORT_OPTIONS:MLANG_GD} FIREFOX_I18N+= gd .endif .if ${PORT_OPTIONS:MLANG_GL} FIREFOX_I18N+= gl .endif .if ${PORT_OPTIONS:MLANG_GN} FIREFOX_I18N+= gn .endif .if ${PORT_OPTIONS:MLANG_GU} FIREFOX_I18N+= gu-IN .endif .if ${PORT_OPTIONS:MLANG_HE} FIREFOX_I18N+= he .endif .if ${PORT_OPTIONS:MLANG_HI} FIREFOX_I18N+= hi-IN .endif .if ${PORT_OPTIONS:MLANG_HR} FIREFOX_I18N+= hr .endif .if ${PORT_OPTIONS:MLANG_HSB} FIREFOX_I18N+= hsb .endif .if ${PORT_OPTIONS:MLANG_HU} FIREFOX_I18N+= hu .endif .if ${PORT_OPTIONS:MLANG_AM} FIREFOX_I18N+= hy-AM .endif .if ${PORT_OPTIONS:MLANG_ID} FIREFOX_I18N+= id .endif .if ${PORT_OPTIONS:MLANG_IS} FIREFOX_I18N+= is .endif .if ${PORT_OPTIONS:MLANG_IT} FIREFOX_I18N+= it .endif .if ${PORT_OPTIONS:MLANG_JA} FIREFOX_I18N+= ja .endif .if ${PORT_OPTIONS:MLANG_KK} FIREFOX_I18N+= kk .endif .if ${PORT_OPTIONS:MLANG_KM} FIREFOX_I18N+= km .endif .if ${PORT_OPTIONS:MLANG_KN} FIREFOX_I18N+= kn .endif .if ${PORT_OPTIONS:MLANG_KO} FIREFOX_I18N+= ko .endif .if ${PORT_OPTIONS:MLANG_LIJ} FIREFOX_I18N+= lij .endif .if ${PORT_OPTIONS:MLANG_LT} FIREFOX_I18N+= lt .endif .if ${PORT_OPTIONS:MLANG_LV} FIREFOX_I18N+= lv .endif .if ${PORT_OPTIONS:MLANG_MAI} FIREFOX_I18N+= mai .endif .if ${PORT_OPTIONS:MLANG_MK} FIREFOX_I18N+= mk .endif .if ${PORT_OPTIONS:MLANG_ML} FIREFOX_I18N+= ml .endif .if ${PORT_OPTIONS:MLANG_MR} FIREFOX_I18N+= mr .endif .if ${PORT_OPTIONS:MLANG_MS} FIREFOX_I18N+= ms .endif .if ${PORT_OPTIONS:MLANG_NB} FIREFOX_I18N+= nb-NO .endif .if ${PORT_OPTIONS:MLANG_NL} FIREFOX_I18N+= nl .endif .if ${PORT_OPTIONS:MLANG_NN} FIREFOX_I18N+= nn-NO .endif .if ${PORT_OPTIONS:MLANG_OR} FIREFOX_I18N+= or .endif .if ${PORT_OPTIONS:MLANG_PA} FIREFOX_I18N+= pa-IN .endif .if ${PORT_OPTIONS:MLANG_PL} FIREFOX_I18N+= pl .endif .if ${PORT_OPTIONS:MLANG_PBR} FIREFOX_I18N+= pt-BR .endif .if ${PORT_OPTIONS:MLANG_PT} FIREFOX_I18N+= pt-PT .endif .if ${PORT_OPTIONS:MLANG_RM} FIREFOX_I18N+= rm .endif .if ${PORT_OPTIONS:MLANG_RO} FIREFOX_I18N+= ro .endif .if ${PORT_OPTIONS:MLANG_RU} FIREFOX_I18N+= ru .endif .if ${PORT_OPTIONS:MLANG_SI} FIREFOX_I18N+= si .endif .if ${PORT_OPTIONS:MLANG_SK} FIREFOX_I18N+= sk .endif .if ${PORT_OPTIONS:MLANG_SL} FIREFOX_I18N+= sl .endif .if ${PORT_OPTIONS:MLANG_SON} FIREFOX_I18N+= son .endif .if ${PORT_OPTIONS:MLANG_SQ} FIREFOX_I18N+= sq .endif .if ${PORT_OPTIONS:MLANG_SR} FIREFOX_I18N+= sr .endif .if ${PORT_OPTIONS:MLANG_SV} FIREFOX_I18N+= sv-SE .endif .if ${PORT_OPTIONS:MLANG_TA} FIREFOX_I18N+= ta .endif .if ${PORT_OPTIONS:MLANG_TE} FIREFOX_I18N+= te .endif .if ${PORT_OPTIONS:MLANG_TH} FIREFOX_I18N+= th .endif .if ${PORT_OPTIONS:MLANG_TR} FIREFOX_I18N+= tr .endif .if ${PORT_OPTIONS:MLANG_UK} FIREFOX_I18N+= uk .endif .if ${PORT_OPTIONS:MLANG_UZ} FIREFOX_I18N+= uz .endif .if ${PORT_OPTIONS:MLANG_VI} FIREFOX_I18N+= vi .endif .if ${PORT_OPTIONS:MLANG_XH} FIREFOX_I18N+= xh .endif .if ${PORT_OPTIONS:MLANG_CN} FIREFOX_I18N+= zh-CN .endif .if ${PORT_OPTIONS:MLANG_TW} FIREFOX_I18N+= zh-TW .endif .endif Index: branches/2016Q2/www/firefox-i18n/Makefile.option =================================================================== --- branches/2016Q2/www/firefox-i18n/Makefile.option (revision 416429) +++ branches/2016Q2/www/firefox-i18n/Makefile.option (revision 416430) @@ -1,113 +1,114 @@ # Created by: Koji Yokota # $FreeBSD$ # this is sorted on the name of the xpi files, not the option name OPTIONS_DEFINE= LANG_ACH \ LANG_AF \ LANG_AN \ LANG_AR \ LANG_AS \ LANG_AST \ LANG_AZ \ LANG_BE \ LANG_BG \ LANG_BB \ LANG_BN \ LANG_BR \ LANG_BS \ LANG_CA \ LANG_CS \ LANG_CY \ LANG_DA \ LANG_DE \ LANG_DSB \ LANG_EL \ LANG_GB \ + LANG_US \ LANG_ZA \ LANG_EO \ LANG_SA \ LANG_SC \ LANG_ES \ LANG_SM \ LANG_ET \ LANG_EU \ LANG_FA \ LANG_FF \ LANG_FI \ LANG_FR \ LANG_FY \ LANG_GA \ LANG_GD \ LANG_GL \ LANG_GN \ LANG_GU \ LANG_HE \ LANG_HI \ LANG_HR \ LANG_HSB \ LANG_HU \ LANG_AM \ LANG_ID \ LANG_IS \ LANG_IT \ LANG_JA \ LANG_KK \ LANG_KM \ LANG_KN \ LANG_KO \ LANG_LIJ \ LANG_LT \ LANG_LV \ LANG_MAI \ LANG_MK \ LANG_ML \ LANG_MR \ LANG_MS \ LANG_NB \ LANG_NL \ LANG_NN \ LANG_OR \ LANG_PA \ LANG_PL \ LANG_PBR\ LANG_PT \ LANG_RM \ LANG_RO \ LANG_RU \ LANG_SI \ LANG_SK \ LANG_SL \ LANG_SON \ LANG_SQ \ LANG_SR \ LANG_SV \ LANG_TA \ LANG_TE \ LANG_TH \ LANG_TR \ LANG_UK \ LANG_UZ \ LANG_VI \ LANG_XH \ LANG_CN \ LANG_TW OPTIONS_DEFAULT=LANG_AR LANG_BN LANG_BR LANG_CN LANG_ET LANG_DE LANG_FR \ LANG_HI LANG_ID LANG_IT LANG_JA LANG_KO LANG_MK LANG_MR \ LANG_PBR LANG_PA LANG_RU LANG_ES LANG_SON LANG_TE LANG_ACH_DESC?= Acholi language support LANG_AN_DESC?= Aragonese language support LANG_AS_DESC?= Assamese language support LANG_AZ_DESC?= Azerbaijani language support LANG_CSB_DESC?= Kashubian language support LANG_DSB_DESC?= Lower Sorbian language support LANG_FF_DESC?= Fulah language support LANG_GN_DESC?= Guarani (Paraguay) language support LANG_HSB_DESC?= Upper Sorbian language support LANG_KM_DESC?= Khmer language support LANG_LIJ_DESC?= Ligurian (Genoa) language support LANG_MS_DESC?= Malay language support LANG_SW_DESC?= Swahili language support LANG_UZ_DESC?= Uzbek language support LANG_XH_DESC?= Xhosa language support Index: branches/2016Q2/www/firefox-i18n/distinfo =================================================================== --- branches/2016Q2/www/firefox-i18n/distinfo (revision 416429) +++ branches/2016Q2/www/firefox-i18n/distinfo (revision 416430) @@ -1,178 +1,180 @@ -SHA256 (xpi/firefox-i18n-46.0.1/ach.xpi) = f0d47951dfdeaa97752afa5f860ec90d775b6124fc393a7c8ff04e507afc61d3 -SIZE (xpi/firefox-i18n-46.0.1/ach.xpi) = 430444 -SHA256 (xpi/firefox-i18n-46.0.1/af.xpi) = 94a037ca774b48f44db941c0074b118c9c2a226f8d7448e17a8e35b93626441d -SIZE (xpi/firefox-i18n-46.0.1/af.xpi) = 437790 -SHA256 (xpi/firefox-i18n-46.0.1/an.xpi) = 5f352fd2d500c224c10e6762b73940f8cfd11aac84c01635ff3af3677dfa85e6 -SIZE (xpi/firefox-i18n-46.0.1/an.xpi) = 447584 -SHA256 (xpi/firefox-i18n-46.0.1/ar.xpi) = 8e22844d0e461b908fe4f5213a22ca1722afaac4106938eb5e88e18565b46cd8 -SIZE (xpi/firefox-i18n-46.0.1/ar.xpi) = 473523 -SHA256 (xpi/firefox-i18n-46.0.1/as.xpi) = fedd32a271d0980d2cf6a42560b240e744d87be38c7fdc9c9b9e802cea11312d -SIZE (xpi/firefox-i18n-46.0.1/as.xpi) = 485695 -SHA256 (xpi/firefox-i18n-46.0.1/ast.xpi) = dee65a28152aa0b09bfe59f83b7678bf29bebb2e41eabd07684777c782e9d920 -SIZE (xpi/firefox-i18n-46.0.1/ast.xpi) = 421893 -SHA256 (xpi/firefox-i18n-46.0.1/az.xpi) = 645e6d94631cf67f7238658795ba8170a4cffe4a02247d1b6aad918c1bce1fb0 -SIZE (xpi/firefox-i18n-46.0.1/az.xpi) = 458475 -SHA256 (xpi/firefox-i18n-46.0.1/be.xpi) = 37451d28220bf33640a58dfa2dc3040b4b0bbe49b176660b3cfbf6850982f7a1 -SIZE (xpi/firefox-i18n-46.0.1/be.xpi) = 447216 -SHA256 (xpi/firefox-i18n-46.0.1/bg.xpi) = e99d5bb1f5f3f60e3a7ed89b5ec66f2409249bf80e6c7904aa7672083b2327ca -SIZE (xpi/firefox-i18n-46.0.1/bg.xpi) = 485177 -SHA256 (xpi/firefox-i18n-46.0.1/bn-BD.xpi) = 14608b1a98e48fecbc54908f748569184aa8372927e8e60301734d8da4da763a -SIZE (xpi/firefox-i18n-46.0.1/bn-BD.xpi) = 514992 -SHA256 (xpi/firefox-i18n-46.0.1/bn-IN.xpi) = afbe7cdaaeb11d95485b539e40d9624c5ae232ff5deab4fcc1ccb13a89f43d15 -SIZE (xpi/firefox-i18n-46.0.1/bn-IN.xpi) = 511120 -SHA256 (xpi/firefox-i18n-46.0.1/br.xpi) = 82a7326e73735cdaf21b2867cfc5e2f64a7111d03fe0d5996b2dea19e29ce43d -SIZE (xpi/firefox-i18n-46.0.1/br.xpi) = 434622 -SHA256 (xpi/firefox-i18n-46.0.1/bs.xpi) = a1404fefd9f65c9bae4fb6728ace056fa72d6263c394b7a0915e5df7566d212a -SIZE (xpi/firefox-i18n-46.0.1/bs.xpi) = 441622 -SHA256 (xpi/firefox-i18n-46.0.1/ca.xpi) = a9642a3d72a83cdf8083262381cf68f43118784da20dbaa105314f8661c747b5 -SIZE (xpi/firefox-i18n-46.0.1/ca.xpi) = 439861 -SHA256 (xpi/firefox-i18n-46.0.1/cs.xpi) = 70b2fec4f524afcc34b2cbfc43fc9f317d7191d4811945be4e6ce069fd65169f -SIZE (xpi/firefox-i18n-46.0.1/cs.xpi) = 442446 -SHA256 (xpi/firefox-i18n-46.0.1/cy.xpi) = 32110478415c096040c843042375bfd8270e98ddc5c395c74f63ed5a97fe1809 -SIZE (xpi/firefox-i18n-46.0.1/cy.xpi) = 437878 -SHA256 (xpi/firefox-i18n-46.0.1/da.xpi) = f0daf30e06e84ba45379c856900117c0971ff092310ca04b88251222752cd400 -SIZE (xpi/firefox-i18n-46.0.1/da.xpi) = 428343 -SHA256 (xpi/firefox-i18n-46.0.1/de.xpi) = e60717631e6400fe3129b6419d3a33294ab18fe1c509f80598f799d16ec11508 -SIZE (xpi/firefox-i18n-46.0.1/de.xpi) = 444269 -SHA256 (xpi/firefox-i18n-46.0.1/dsb.xpi) = 50b5e36eaec33550245267a9965adfbd0058cccf49882645cdcd618dfc63083a -SIZE (xpi/firefox-i18n-46.0.1/dsb.xpi) = 462492 -SHA256 (xpi/firefox-i18n-46.0.1/el.xpi) = 0423a99f8eb2c3b4fdaea26e073169537e67943831579242e3b9ca95617eae75 -SIZE (xpi/firefox-i18n-46.0.1/el.xpi) = 473312 -SHA256 (xpi/firefox-i18n-46.0.1/en-GB.xpi) = f85ab43812f9e36529abd7d0563f0ba6047eb0520c6ff96b845e19abace29a5a -SIZE (xpi/firefox-i18n-46.0.1/en-GB.xpi) = 421833 -SHA256 (xpi/firefox-i18n-46.0.1/en-ZA.xpi) = a259e1e77c5d008044843789c16479979b194630e54a36d52289a5bce1bd9a8c -SIZE (xpi/firefox-i18n-46.0.1/en-ZA.xpi) = 411467 -SHA256 (xpi/firefox-i18n-46.0.1/eo.xpi) = fd4b4be0a5ee625f11496b4e0ac80b516f0f8862458bb815878c10cfb911e349 -SIZE (xpi/firefox-i18n-46.0.1/eo.xpi) = 438145 -SHA256 (xpi/firefox-i18n-46.0.1/es-AR.xpi) = 578b12e91a596cad9c78f602863cc3473dd711ee83ee651a147157b17a78eada -SIZE (xpi/firefox-i18n-46.0.1/es-AR.xpi) = 439952 -SHA256 (xpi/firefox-i18n-46.0.1/es-CL.xpi) = 27f880560d846a81ca19de6926e2dc2c70e3975f96986330e960d8d7ad24ce75 -SIZE (xpi/firefox-i18n-46.0.1/es-CL.xpi) = 369971 -SHA256 (xpi/firefox-i18n-46.0.1/es-ES.xpi) = 94f6c156574add6ad334b6ada0645a56d67c7de67dd7d385381622b9a8d4381d -SIZE (xpi/firefox-i18n-46.0.1/es-ES.xpi) = 351183 -SHA256 (xpi/firefox-i18n-46.0.1/es-MX.xpi) = f2a064adeac314b67dd7896284dfb75ce4942850f8dbea57db7caecff59c927e -SIZE (xpi/firefox-i18n-46.0.1/es-MX.xpi) = 447980 -SHA256 (xpi/firefox-i18n-46.0.1/et.xpi) = 7ed3b29ae516d11267cd5e0637dacfa188894233291bf8f30c3b9094c27e1c34 -SIZE (xpi/firefox-i18n-46.0.1/et.xpi) = 431025 -SHA256 (xpi/firefox-i18n-46.0.1/eu.xpi) = ea7c9b8ecce4f42dbd1c71f922bf50d50c66b63bcba8ef9f4d52f7c7e5236b2b -SIZE (xpi/firefox-i18n-46.0.1/eu.xpi) = 439772 -SHA256 (xpi/firefox-i18n-46.0.1/fa.xpi) = f7183cbc12774a41e7d5f7b701afa5d0f7a4ff7b3104c9ba9fd36099019b6423 -SIZE (xpi/firefox-i18n-46.0.1/fa.xpi) = 490946 -SHA256 (xpi/firefox-i18n-46.0.1/ff.xpi) = b5d4e0961d1691dbb907fc8ad544dd479432713871b0fdcc80ec5349bfe24a92 -SIZE (xpi/firefox-i18n-46.0.1/ff.xpi) = 444064 -SHA256 (xpi/firefox-i18n-46.0.1/fi.xpi) = e2c5608bd13f0749221e05be448e9e626e24966f9f7cce1870308ccaaac9cc8a -SIZE (xpi/firefox-i18n-46.0.1/fi.xpi) = 433022 -SHA256 (xpi/firefox-i18n-46.0.1/fr.xpi) = 5707d498995be7a8576040d2308502f4c310c6406250a8e4ff92fee6c47adc2c -SIZE (xpi/firefox-i18n-46.0.1/fr.xpi) = 452730 -SHA256 (xpi/firefox-i18n-46.0.1/fy-NL.xpi) = a4ed390004026a5b4757c944f016ec006e0779acb6471f18f3c7b44eeb11f7bf -SIZE (xpi/firefox-i18n-46.0.1/fy-NL.xpi) = 446172 -SHA256 (xpi/firefox-i18n-46.0.1/ga-IE.xpi) = 67cac34d026365980b2e68e4c87dd9089005a776f25e477130b301e9856ecc36 -SIZE (xpi/firefox-i18n-46.0.1/ga-IE.xpi) = 458905 -SHA256 (xpi/firefox-i18n-46.0.1/gd.xpi) = d3737b985d8912cab025a7c24490da1a59cf4e4bc29f9986aa42b6803e5896be -SIZE (xpi/firefox-i18n-46.0.1/gd.xpi) = 448231 -SHA256 (xpi/firefox-i18n-46.0.1/gl.xpi) = 42233cc32d13dd8c5a3f518db6056edab6219c44f8313436744eb5d35b04faf2 -SIZE (xpi/firefox-i18n-46.0.1/gl.xpi) = 437767 -SHA256 (xpi/firefox-i18n-46.0.1/gn.xpi) = f3ed9eee677aa9b0ebd6c43f63d695557fae3b8ddf6b8eee7827708a7b5a59b8 -SIZE (xpi/firefox-i18n-46.0.1/gn.xpi) = 459163 -SHA256 (xpi/firefox-i18n-46.0.1/gu-IN.xpi) = d0a47f85673f9ae38a29bb522c39f09761632e2d143b2da8cf44b2c658cb9355 -SIZE (xpi/firefox-i18n-46.0.1/gu-IN.xpi) = 475143 -SHA256 (xpi/firefox-i18n-46.0.1/he.xpi) = 9be91c79406f5c3cfbbf7ce9dbca81e8b63473253811e13883b27f4528bef5b8 -SIZE (xpi/firefox-i18n-46.0.1/he.xpi) = 458182 -SHA256 (xpi/firefox-i18n-46.0.1/hi-IN.xpi) = a83e219fa35bc40c464a3ac6d3868b4c40f8b9d3b9a5e1f98e1e7d152c96ba2b -SIZE (xpi/firefox-i18n-46.0.1/hi-IN.xpi) = 489652 -SHA256 (xpi/firefox-i18n-46.0.1/hr.xpi) = ae3596469b937e216f6fea4f29313ea1935231b979c6bd23fcde877369c7790e -SIZE (xpi/firefox-i18n-46.0.1/hr.xpi) = 447691 -SHA256 (xpi/firefox-i18n-46.0.1/hsb.xpi) = 856745c8ccd328545f9e5e1e3cd5ae56b22bbc53f90a34dba3c7d76af4cf7af8 -SIZE (xpi/firefox-i18n-46.0.1/hsb.xpi) = 460156 -SHA256 (xpi/firefox-i18n-46.0.1/hu.xpi) = 5e4e98334f6938dd9eee38869283091f54b848cd75ad69a85deef91887518d8b -SIZE (xpi/firefox-i18n-46.0.1/hu.xpi) = 452539 -SHA256 (xpi/firefox-i18n-46.0.1/hy-AM.xpi) = 5d58d351167c5f062c8c74713dbe3ec86226ea13babba5e26b46c891a84fa392 -SIZE (xpi/firefox-i18n-46.0.1/hy-AM.xpi) = 499569 -SHA256 (xpi/firefox-i18n-46.0.1/id.xpi) = afd2c57e56dd7e42249fda83442c7e4fbb04518665707a6b02fa0684dd14bb7b -SIZE (xpi/firefox-i18n-46.0.1/id.xpi) = 424739 -SHA256 (xpi/firefox-i18n-46.0.1/is.xpi) = 813f7da71ee99418d8a8256da843b5c798ace592d0d4a6ca8d6a0ddcd7dfe7f3 -SIZE (xpi/firefox-i18n-46.0.1/is.xpi) = 441735 -SHA256 (xpi/firefox-i18n-46.0.1/it.xpi) = 1fe6cea75803b9be36167558cca32afbece3b01c158c754b5a185cf7dcadae30 -SIZE (xpi/firefox-i18n-46.0.1/it.xpi) = 345367 -SHA256 (xpi/firefox-i18n-46.0.1/ja.xpi) = 32d7aaf26a0cdb92d884361931483a69312cf94b8e62758f5b8033c3d2b6d2bf -SIZE (xpi/firefox-i18n-46.0.1/ja.xpi) = 489475 -SHA256 (xpi/firefox-i18n-46.0.1/kk.xpi) = 4ac9051a94a9587cf606c0c6ffe0275c6fa038c7420e410d2768b78ef0e2b917 -SIZE (xpi/firefox-i18n-46.0.1/kk.xpi) = 496354 -SHA256 (xpi/firefox-i18n-46.0.1/km.xpi) = abfab1c0e4276b87b97f6fb41823805853d43b7ae213f3ffaa4ef529f164075a -SIZE (xpi/firefox-i18n-46.0.1/km.xpi) = 507045 -SHA256 (xpi/firefox-i18n-46.0.1/kn.xpi) = 5e0265bdf3d5101539e88d711052a0ff467dd06489fd3a691c40e7260c448568 -SIZE (xpi/firefox-i18n-46.0.1/kn.xpi) = 516230 -SHA256 (xpi/firefox-i18n-46.0.1/ko.xpi) = 98e1b9cddf40a6cb71243d951202aca0b7c7f9e470d53b118085b30a11e669de -SIZE (xpi/firefox-i18n-46.0.1/ko.xpi) = 464534 -SHA256 (xpi/firefox-i18n-46.0.1/lij.xpi) = 83cab4238a3baf60f253d954a2e7b564efb45aa4ba4789d87ef30df1b2956cbe -SIZE (xpi/firefox-i18n-46.0.1/lij.xpi) = 386448 -SHA256 (xpi/firefox-i18n-46.0.1/lt.xpi) = b683dabe8edae09e9c46b864516a8f8162e0902b6d5238e2b1194db546f40e3e -SIZE (xpi/firefox-i18n-46.0.1/lt.xpi) = 453290 -SHA256 (xpi/firefox-i18n-46.0.1/lv.xpi) = d1f35372a9d76fd979d7893da186abdf19644613315d2916efe1216caf738932 -SIZE (xpi/firefox-i18n-46.0.1/lv.xpi) = 444309 -SHA256 (xpi/firefox-i18n-46.0.1/mai.xpi) = f267d4cb4d8265b458cef3d0dc5b3f4d4908cd5b68bf95d1cce4945f868f54ac -SIZE (xpi/firefox-i18n-46.0.1/mai.xpi) = 495281 -SHA256 (xpi/firefox-i18n-46.0.1/mk.xpi) = 2667a8c68472a8cb43f6bf33615c5fbcb27f7b55b3da71ca1f6d214c45706401 -SIZE (xpi/firefox-i18n-46.0.1/mk.xpi) = 478877 -SHA256 (xpi/firefox-i18n-46.0.1/ml.xpi) = ae7f8bb4eecbfd6f633f7f5e9acfabf76bb0e98a685706da531c2a64d16dedd8 -SIZE (xpi/firefox-i18n-46.0.1/ml.xpi) = 520779 -SHA256 (xpi/firefox-i18n-46.0.1/mr.xpi) = 083b99cf39f6ff85486f21ce04c9a8362de18b8911f9e3ce11bfb4abb5271b0c -SIZE (xpi/firefox-i18n-46.0.1/mr.xpi) = 502342 -SHA256 (xpi/firefox-i18n-46.0.1/ms.xpi) = a9bd85db2eabced2bbc133b412d4a75875bd0eae8125ef5e72c748493e41d4cf -SIZE (xpi/firefox-i18n-46.0.1/ms.xpi) = 442936 -SHA256 (xpi/firefox-i18n-46.0.1/nb-NO.xpi) = 71ca049757dd6e55d48a49a42f668386f78870da14733307106d4e7187fa04b4 -SIZE (xpi/firefox-i18n-46.0.1/nb-NO.xpi) = 433764 -SHA256 (xpi/firefox-i18n-46.0.1/nl.xpi) = 6eb39f4716b497a14abfdb366bccb5c8cd35fa1bd50fc563c3bc904c69c7965e -SIZE (xpi/firefox-i18n-46.0.1/nl.xpi) = 433504 -SHA256 (xpi/firefox-i18n-46.0.1/nn-NO.xpi) = 12b23858b7b33767823bdb7e1960a78391c80c6874cdc0bf61d3328556842743 -SIZE (xpi/firefox-i18n-46.0.1/nn-NO.xpi) = 429675 -SHA256 (xpi/firefox-i18n-46.0.1/or.xpi) = 861f4c661888e3abd2cac861870922914f096c910b8aea2385bd0ede4c0c909b -SIZE (xpi/firefox-i18n-46.0.1/or.xpi) = 498524 -SHA256 (xpi/firefox-i18n-46.0.1/pa-IN.xpi) = 6b6968aaa0dd15313176677b62de5dbe9dc5ae8952f6575b0e67830f23c36d24 -SIZE (xpi/firefox-i18n-46.0.1/pa-IN.xpi) = 492244 -SHA256 (xpi/firefox-i18n-46.0.1/pl.xpi) = fa8e15e9842382da18a47e7b7974af94194a595916c93c0831ef16e4f97a4d47 -SIZE (xpi/firefox-i18n-46.0.1/pl.xpi) = 385183 -SHA256 (xpi/firefox-i18n-46.0.1/pt-BR.xpi) = f4c13bce735a1554a560c499152a11189d8443d79d2ed18d659d6cbe4218d31e -SIZE (xpi/firefox-i18n-46.0.1/pt-BR.xpi) = 449181 -SHA256 (xpi/firefox-i18n-46.0.1/pt-PT.xpi) = b0110cb8a24ba7908a1151195725dca3bf7e448e18e4f5b87273a3d19efc7163 -SIZE (xpi/firefox-i18n-46.0.1/pt-PT.xpi) = 435561 -SHA256 (xpi/firefox-i18n-46.0.1/rm.xpi) = 52e28fdac9edbae28260ba50a770080e5c4a4beaf17f383ddec93a759c2ecc57 -SIZE (xpi/firefox-i18n-46.0.1/rm.xpi) = 436665 -SHA256 (xpi/firefox-i18n-46.0.1/ro.xpi) = 5bdd9bb5a56e536223f0f36f7551efc01e56d847b2f73e84a76bc010d5491f6d -SIZE (xpi/firefox-i18n-46.0.1/ro.xpi) = 449482 -SHA256 (xpi/firefox-i18n-46.0.1/ru.xpi) = 24001217f6b2f222037fff74d4de42ae55b301f668eb6a3635d5d090c5c0ac10 -SIZE (xpi/firefox-i18n-46.0.1/ru.xpi) = 396303 -SHA256 (xpi/firefox-i18n-46.0.1/si.xpi) = dda3c6680a62d27d1465c2c018521b214b1c0a6d9de53290a3bcb1e31e6cbdd1 -SIZE (xpi/firefox-i18n-46.0.1/si.xpi) = 484912 -SHA256 (xpi/firefox-i18n-46.0.1/sk.xpi) = 6150daff402bacc8e4c0dfaa2df9d87589c24bbf4f565ef7b39d394164861b4c -SIZE (xpi/firefox-i18n-46.0.1/sk.xpi) = 452440 -SHA256 (xpi/firefox-i18n-46.0.1/sl.xpi) = 0bb6045168dc2c64d3c936bb09178b493924c04ad769a27ea118e2ad35aeba5b -SIZE (xpi/firefox-i18n-46.0.1/sl.xpi) = 443726 -SHA256 (xpi/firefox-i18n-46.0.1/son.xpi) = 0d2a94aad4bafa4e626d51a3e39a57220728872893a6a45d2b9682121e430ac0 -SIZE (xpi/firefox-i18n-46.0.1/son.xpi) = 436206 -SHA256 (xpi/firefox-i18n-46.0.1/sq.xpi) = 9fb1822eeea4ebce7cbf3e037ad89239125a1d012b972a892bb50d365f19b7b2 -SIZE (xpi/firefox-i18n-46.0.1/sq.xpi) = 450773 -SHA256 (xpi/firefox-i18n-46.0.1/sr.xpi) = edfb6133babd29e6d3b6083266d4bcbb87d51212668c5f27be2f0d66a08dca58 -SIZE (xpi/firefox-i18n-46.0.1/sr.xpi) = 467599 -SHA256 (xpi/firefox-i18n-46.0.1/sv-SE.xpi) = 27d6287973462dae2b6d6e4874ecbd9cc8890c2408eedfd599e62efcfeb146ee -SIZE (xpi/firefox-i18n-46.0.1/sv-SE.xpi) = 442644 -SHA256 (xpi/firefox-i18n-46.0.1/ta.xpi) = 354e5657999a12d3a2d4dc564fe81fa4c0cb74b9452d893bebc0da092ee022d4 -SIZE (xpi/firefox-i18n-46.0.1/ta.xpi) = 485895 -SHA256 (xpi/firefox-i18n-46.0.1/te.xpi) = 1e86f0ed15a928c5f9d097ad7e977d4d5c20ed7809c9d2b8963d43585541e673 -SIZE (xpi/firefox-i18n-46.0.1/te.xpi) = 512320 -SHA256 (xpi/firefox-i18n-46.0.1/th.xpi) = 0f473c1686c97c96788176a4df2a799bbba180c36fc071215eb1f5e84c2fcb3b -SIZE (xpi/firefox-i18n-46.0.1/th.xpi) = 489020 -SHA256 (xpi/firefox-i18n-46.0.1/tr.xpi) = 94050219121fa0a4102e636e8a72be638dc180ae9d21ef62e41820aa355b9871 -SIZE (xpi/firefox-i18n-46.0.1/tr.xpi) = 443018 -SHA256 (xpi/firefox-i18n-46.0.1/uk.xpi) = 1c131d8ed6b259587fd24629fdf17f5a1b502b605e59ea87190c28e49ae0d595 -SIZE (xpi/firefox-i18n-46.0.1/uk.xpi) = 492434 -SHA256 (xpi/firefox-i18n-46.0.1/uz.xpi) = 9baef189da768da46772a31654ef4151e6f42212b82603a8ae5d305a562fa4b4 -SIZE (xpi/firefox-i18n-46.0.1/uz.xpi) = 450194 -SHA256 (xpi/firefox-i18n-46.0.1/vi.xpi) = 33ae4068d12b9f30b4ce6da59e5c9ba10bdcab0fa8436033187416f586076ece -SIZE (xpi/firefox-i18n-46.0.1/vi.xpi) = 453663 -SHA256 (xpi/firefox-i18n-46.0.1/xh.xpi) = 29a5c75fec307430136ef6a46c17ce77c7cecce31da01e912d92ea5578ec8590 -SIZE (xpi/firefox-i18n-46.0.1/xh.xpi) = 439664 -SHA256 (xpi/firefox-i18n-46.0.1/zh-CN.xpi) = bccb8ecc0ab6262f055e40fc9af998fce2dcf50890963f3d463acb8ae3fb18b2 -SIZE (xpi/firefox-i18n-46.0.1/zh-CN.xpi) = 464301 -SHA256 (xpi/firefox-i18n-46.0.1/zh-TW.xpi) = 1f8e3aefb8eacb5ea0fa9fb631ec0eb17000408cb15a6d39e08c09ff2f2cdde6 -SIZE (xpi/firefox-i18n-46.0.1/zh-TW.xpi) = 472118 +SHA256 (xpi/firefox-i18n-47.0/ach.xpi) = 90d6783f1e1a8b56fe4bd9275ea00c194bbc742148eca0a72136f791107f6b67 +SIZE (xpi/firefox-i18n-47.0/ach.xpi) = 425996 +SHA256 (xpi/firefox-i18n-47.0/af.xpi) = 63242ab9f9c417a16a67011bebf561a8ff4d464b5b7b875ea068133199215965 +SIZE (xpi/firefox-i18n-47.0/af.xpi) = 441513 +SHA256 (xpi/firefox-i18n-47.0/an.xpi) = f2745a4aec44a791a07b0055de10258dd92535fe8e34372875a2b8fe7ce94b59 +SIZE (xpi/firefox-i18n-47.0/an.xpi) = 453259 +SHA256 (xpi/firefox-i18n-47.0/ar.xpi) = b918866a4b2acff45ea383e128618512a80eb797a5aecb52321f38c25b39284f +SIZE (xpi/firefox-i18n-47.0/ar.xpi) = 478501 +SHA256 (xpi/firefox-i18n-47.0/as.xpi) = 2ccde82a79a8e5794ce3b39ddc27edeb8e31af6613ae5f7304737e7b3c1a7d21 +SIZE (xpi/firefox-i18n-47.0/as.xpi) = 484618 +SHA256 (xpi/firefox-i18n-47.0/ast.xpi) = bb9e6f535e748dcb72fc1c7930b14eeb7661dd8424c853623a67617ccbd45e3e +SIZE (xpi/firefox-i18n-47.0/ast.xpi) = 422167 +SHA256 (xpi/firefox-i18n-47.0/az.xpi) = f519a67eec1cfaa33ad2b821feab03b37b7418724574b55790c7e75b678e3592 +SIZE (xpi/firefox-i18n-47.0/az.xpi) = 453801 +SHA256 (xpi/firefox-i18n-47.0/be.xpi) = 2cb8d03c904207dbd8b3de78d68274796459985f68b542e00d720fafac89262f +SIZE (xpi/firefox-i18n-47.0/be.xpi) = 445103 +SHA256 (xpi/firefox-i18n-47.0/bg.xpi) = 25e7360aa4e4724727033ec254fa61fc4ffd32808bb327bdbcf2e36b90820eca +SIZE (xpi/firefox-i18n-47.0/bg.xpi) = 490773 +SHA256 (xpi/firefox-i18n-47.0/bn-BD.xpi) = 58250cb374132956921781ab6b2ddac112800ad33fc42f4c10ef112b42d1b2d7 +SIZE (xpi/firefox-i18n-47.0/bn-BD.xpi) = 509736 +SHA256 (xpi/firefox-i18n-47.0/bn-IN.xpi) = 6bd932435431b526723689e02527e25059db452ebe787ca4e87089076db55977 +SIZE (xpi/firefox-i18n-47.0/bn-IN.xpi) = 515477 +SHA256 (xpi/firefox-i18n-47.0/br.xpi) = 6706b2b371d092b803e554ffe5c38ba63bd23ed5e43b91ceefab4c186ea3d772 +SIZE (xpi/firefox-i18n-47.0/br.xpi) = 430466 +SHA256 (xpi/firefox-i18n-47.0/bs.xpi) = 1eede930802298168b6515575ee501d7f06f6f432abb3aa64d73ab5fc0ea5282 +SIZE (xpi/firefox-i18n-47.0/bs.xpi) = 447151 +SHA256 (xpi/firefox-i18n-47.0/ca.xpi) = 02cb40821769add87a25f13cd47e93385ef02bcd8747b68ce5ffa3d4e294e675 +SIZE (xpi/firefox-i18n-47.0/ca.xpi) = 438338 +SHA256 (xpi/firefox-i18n-47.0/cs.xpi) = 7a8b459b22f15e0b99d27b3f6a1d71eaeab471de8629c1869e635dbce80a61dc +SIZE (xpi/firefox-i18n-47.0/cs.xpi) = 438403 +SHA256 (xpi/firefox-i18n-47.0/cy.xpi) = 20c266cd28c926d31a36ea6497482286e680f78aeb5f9a6c097767002f98150e +SIZE (xpi/firefox-i18n-47.0/cy.xpi) = 433788 +SHA256 (xpi/firefox-i18n-47.0/da.xpi) = 09ff084b5348771f87eb435f5b562908e783183c66c46253f6c814523f92b31d +SIZE (xpi/firefox-i18n-47.0/da.xpi) = 424568 +SHA256 (xpi/firefox-i18n-47.0/de.xpi) = 269c5109a80653d6c99c431712517de78e7951332fa7fdcbc65a4a7a293f7ce9 +SIZE (xpi/firefox-i18n-47.0/de.xpi) = 440550 +SHA256 (xpi/firefox-i18n-47.0/dsb.xpi) = 4cf78e541c17a5ec0cda610f5e64442f0a77a1a8a846d9cf07026aa3d2b50879 +SIZE (xpi/firefox-i18n-47.0/dsb.xpi) = 458251 +SHA256 (xpi/firefox-i18n-47.0/el.xpi) = 1b0797271bfe46c9c0a824a68bd0d09576185ff20aefa5c947dbbd52b3be6505 +SIZE (xpi/firefox-i18n-47.0/el.xpi) = 470594 +SHA256 (xpi/firefox-i18n-47.0/en-GB.xpi) = d2e9b4b39c4c1f4a62095bbc44957f9e2d89d03275edba817a66b45ca90b0825 +SIZE (xpi/firefox-i18n-47.0/en-GB.xpi) = 418328 +SHA256 (xpi/firefox-i18n-47.0/en-US.xpi) = 19f782c9f10924fcbed5f8ac777ed13192be52ad400d07a771dc572e84d33697 +SIZE (xpi/firefox-i18n-47.0/en-US.xpi) = 426930 +SHA256 (xpi/firefox-i18n-47.0/en-ZA.xpi) = 624e348a101c4efc39c299da7cc8aa2d3568ce5ddd064a78a91cb668062e86f1 +SIZE (xpi/firefox-i18n-47.0/en-ZA.xpi) = 407833 +SHA256 (xpi/firefox-i18n-47.0/eo.xpi) = 0d62974e28b8634db7682fc3d749c2e12cd5ef5455076c51dc64f858613ef1ec +SIZE (xpi/firefox-i18n-47.0/eo.xpi) = 434239 +SHA256 (xpi/firefox-i18n-47.0/es-AR.xpi) = 110895f1580d526e814fd3fa62a29a82040fcc83dec437d349bd809a13092c0e +SIZE (xpi/firefox-i18n-47.0/es-AR.xpi) = 435265 +SHA256 (xpi/firefox-i18n-47.0/es-CL.xpi) = f2e4edb6a1fe6f6078cd61b63e70804d96b0fef93325525a3fd258641d83e148 +SIZE (xpi/firefox-i18n-47.0/es-CL.xpi) = 372783 +SHA256 (xpi/firefox-i18n-47.0/es-ES.xpi) = 91eddc7c16498db30921afae2476b5d28d0acc4d515efbb8e1c7e2dd7fa21c8b +SIZE (xpi/firefox-i18n-47.0/es-ES.xpi) = 348230 +SHA256 (xpi/firefox-i18n-47.0/es-MX.xpi) = 6dd35669516cad479782051da63704cc940d78d08a3f444117dbc873007ac02d +SIZE (xpi/firefox-i18n-47.0/es-MX.xpi) = 445765 +SHA256 (xpi/firefox-i18n-47.0/et.xpi) = 978722383a646c1a05951063bd8c0478c0b7d5aac93615f079174ce8031ad121 +SIZE (xpi/firefox-i18n-47.0/et.xpi) = 434959 +SHA256 (xpi/firefox-i18n-47.0/eu.xpi) = 71c55fb4084fb2576f2b7a0725549ec5ff155f5757b9871f0e77147e782172cd +SIZE (xpi/firefox-i18n-47.0/eu.xpi) = 435864 +SHA256 (xpi/firefox-i18n-47.0/fa.xpi) = 60c3027b449d84a8d29a1b063f80ab2c8d2017c097f71b366036d6512a5740af +SIZE (xpi/firefox-i18n-47.0/fa.xpi) = 486496 +SHA256 (xpi/firefox-i18n-47.0/ff.xpi) = 81fa9cddc027fe0846f06c193dde6f250fa9c61bf785ffef3557ad3ac19fc301 +SIZE (xpi/firefox-i18n-47.0/ff.xpi) = 443578 +SHA256 (xpi/firefox-i18n-47.0/fi.xpi) = a7dae5cddd0093641e0adb2b9850e581e2cabd3ba8f1406eb67a828eef2fcb26 +SIZE (xpi/firefox-i18n-47.0/fi.xpi) = 429549 +SHA256 (xpi/firefox-i18n-47.0/fr.xpi) = ad84aca0207435dc1bcdc89c7dbf81f7bc657ac10fe80fd6f5f3590662a9274c +SIZE (xpi/firefox-i18n-47.0/fr.xpi) = 450327 +SHA256 (xpi/firefox-i18n-47.0/fy-NL.xpi) = 01e4b12846f15cc47a0beaf1817c5e3b12255f12aed7d344670c52762cc28734 +SIZE (xpi/firefox-i18n-47.0/fy-NL.xpi) = 442462 +SHA256 (xpi/firefox-i18n-47.0/ga-IE.xpi) = 6bbc5beb0d0b37e297f893e8e0253c3194651a16b3ac5fc5e57921da0dfb54fc +SIZE (xpi/firefox-i18n-47.0/ga-IE.xpi) = 454692 +SHA256 (xpi/firefox-i18n-47.0/gd.xpi) = 6d828eb1e85d3ea45753bd7c2316b26c9291cf941d47426bd821734c6992f095 +SIZE (xpi/firefox-i18n-47.0/gd.xpi) = 443137 +SHA256 (xpi/firefox-i18n-47.0/gl.xpi) = 520436f22de5b6132f236f1ebe1498895c85cdfee23333dde62ce5a5cd020a7e +SIZE (xpi/firefox-i18n-47.0/gl.xpi) = 438908 +SHA256 (xpi/firefox-i18n-47.0/gn.xpi) = dfec89249ae3a7f66830e78af88017a2ef726d4493efbb9719762ebd04d6a6a3 +SIZE (xpi/firefox-i18n-47.0/gn.xpi) = 464959 +SHA256 (xpi/firefox-i18n-47.0/gu-IN.xpi) = f819bd9878095f12bbdf76dbb793e27be4f882f3cf3a9d145e6b603db013f47d +SIZE (xpi/firefox-i18n-47.0/gu-IN.xpi) = 472818 +SHA256 (xpi/firefox-i18n-47.0/he.xpi) = acce7b941d248d8e733201c235ef65362b8001a59cb51d4f80083017a1e13bd6 +SIZE (xpi/firefox-i18n-47.0/he.xpi) = 449443 +SHA256 (xpi/firefox-i18n-47.0/hi-IN.xpi) = 68a25bf51bb0887917aa129e3f57193b7b7055469bc1daf38a056f138804d3a8 +SIZE (xpi/firefox-i18n-47.0/hi-IN.xpi) = 489304 +SHA256 (xpi/firefox-i18n-47.0/hr.xpi) = 854408302d28fa7fb1e9b472b47266c3108b69e7738c314ce8c9a66e1c0e334f +SIZE (xpi/firefox-i18n-47.0/hr.xpi) = 443334 +SHA256 (xpi/firefox-i18n-47.0/hsb.xpi) = 2471f4a8c09a66663c5f8168dc4d69650ab3cebf5cedbcd2132f255a1d17cbd0 +SIZE (xpi/firefox-i18n-47.0/hsb.xpi) = 455856 +SHA256 (xpi/firefox-i18n-47.0/hu.xpi) = c9b090616464220b7015188299570b07f4902edae63623ea050c9542d494ea23 +SIZE (xpi/firefox-i18n-47.0/hu.xpi) = 448451 +SHA256 (xpi/firefox-i18n-47.0/hy-AM.xpi) = 8148372d3bf6443b53adcf31c0ec41d998bcc28c0ed428b6387510beab4e9cab +SIZE (xpi/firefox-i18n-47.0/hy-AM.xpi) = 494269 +SHA256 (xpi/firefox-i18n-47.0/id.xpi) = c0e4a8254072144a5fb1b36a55307b957339ed500e6416e24ad69a4b610752d9 +SIZE (xpi/firefox-i18n-47.0/id.xpi) = 420862 +SHA256 (xpi/firefox-i18n-47.0/is.xpi) = 1a20cff2ba6044314153ed7a9c6dc892a5385f074f9a1ced244a8fb8abf9e223 +SIZE (xpi/firefox-i18n-47.0/is.xpi) = 437342 +SHA256 (xpi/firefox-i18n-47.0/it.xpi) = 28057739849ac9c483742483ecff9acb60673418375d25d0739a8be8841aa537 +SIZE (xpi/firefox-i18n-47.0/it.xpi) = 342327 +SHA256 (xpi/firefox-i18n-47.0/ja.xpi) = d234a9085b933a44dcaa531957bda580b3d29fcaef39278bac7d002356b1e712 +SIZE (xpi/firefox-i18n-47.0/ja.xpi) = 485004 +SHA256 (xpi/firefox-i18n-47.0/kk.xpi) = 74461c9edc1b950a5f69b66add3400ad14ffe59c65ad3789e974dbeee39510ca +SIZE (xpi/firefox-i18n-47.0/kk.xpi) = 491493 +SHA256 (xpi/firefox-i18n-47.0/km.xpi) = dc2777bc4f46390c3aad32aa8bf6badf2979b071fb1c6318ca66c9dea54527ab +SIZE (xpi/firefox-i18n-47.0/km.xpi) = 507773 +SHA256 (xpi/firefox-i18n-47.0/kn.xpi) = 3b39b35b6141833fc12130ffdfc5152ae0c02ac1ef1247458cd5ace64cf1b7c0 +SIZE (xpi/firefox-i18n-47.0/kn.xpi) = 512033 +SHA256 (xpi/firefox-i18n-47.0/ko.xpi) = 6a07e6ba259e074d2f6ed83006b7b1a18b212cb599363fbc10ed4df0d9b605c9 +SIZE (xpi/firefox-i18n-47.0/ko.xpi) = 457471 +SHA256 (xpi/firefox-i18n-47.0/lij.xpi) = 13ece3a5fb4e5b60c30f5c858b4998fbd615725c49c9a364ca227e509e96d508 +SIZE (xpi/firefox-i18n-47.0/lij.xpi) = 391955 +SHA256 (xpi/firefox-i18n-47.0/lt.xpi) = aebaea07258eaeb73927cd3215bea560941ac4ff7b0f988f6ceedd2b8cf02f29 +SIZE (xpi/firefox-i18n-47.0/lt.xpi) = 449057 +SHA256 (xpi/firefox-i18n-47.0/lv.xpi) = bbcf7d6ae4c40bbcde73a881cffe244b0e80eb6515e63f40ceab734efa62af72 +SIZE (xpi/firefox-i18n-47.0/lv.xpi) = 442455 +SHA256 (xpi/firefox-i18n-47.0/mai.xpi) = 613af296d5ad5fedc2bc73f7b89afeecccf4416946960c94bfa1e4925a07a282 +SIZE (xpi/firefox-i18n-47.0/mai.xpi) = 494894 +SHA256 (xpi/firefox-i18n-47.0/mk.xpi) = be53087229fb8da59fbe3b915c86c155f0acc711a26eefdc2edba617b7487cfa +SIZE (xpi/firefox-i18n-47.0/mk.xpi) = 476188 +SHA256 (xpi/firefox-i18n-47.0/ml.xpi) = 30b32ccce5167b87ee00b714744a2ed2126489b929bfcf70465ab8eb8e1a381d +SIZE (xpi/firefox-i18n-47.0/ml.xpi) = 524948 +SHA256 (xpi/firefox-i18n-47.0/mr.xpi) = 6f5db218d97a92525c6d60ea061c96ad6254c017e454b027dbd9496e255dcf8c +SIZE (xpi/firefox-i18n-47.0/mr.xpi) = 497586 +SHA256 (xpi/firefox-i18n-47.0/ms.xpi) = 357c17cf6bc1424b58bd109e2216f65c3682ae9a05df2156f6e418e74c606ee0 +SIZE (xpi/firefox-i18n-47.0/ms.xpi) = 443218 +SHA256 (xpi/firefox-i18n-47.0/nb-NO.xpi) = 0e3e49f4c2e300202b9e26d638ba05237e604b323c3e95a38a19ba2977bc20f7 +SIZE (xpi/firefox-i18n-47.0/nb-NO.xpi) = 429969 +SHA256 (xpi/firefox-i18n-47.0/nl.xpi) = 1ca808f58ee49d94958dd2739fae33735fcb888940107b1c1b710364f668532d +SIZE (xpi/firefox-i18n-47.0/nl.xpi) = 429575 +SHA256 (xpi/firefox-i18n-47.0/nn-NO.xpi) = 3461e96586f5a47c1bdbf55b20e8e1c2b3985c6c24847be0756f6e867809fd8a +SIZE (xpi/firefox-i18n-47.0/nn-NO.xpi) = 425796 +SHA256 (xpi/firefox-i18n-47.0/or.xpi) = af0b8f86e3e173a98dd97e39ff60d09d8264fb7c6ecca47793cad52c00ba5cbf +SIZE (xpi/firefox-i18n-47.0/or.xpi) = 497585 +SHA256 (xpi/firefox-i18n-47.0/pa-IN.xpi) = da805823c10b95f6149232d37bd1fc40da562fd1068c3c5b56562fd605ce1df3 +SIZE (xpi/firefox-i18n-47.0/pa-IN.xpi) = 492396 +SHA256 (xpi/firefox-i18n-47.0/pl.xpi) = 1e47ca5ea31b4f22e11fd28ce1f3446b33fff5b047659400def022bcf163343d +SIZE (xpi/firefox-i18n-47.0/pl.xpi) = 371970 +SHA256 (xpi/firefox-i18n-47.0/pt-BR.xpi) = 48bdeb1eb179518061d350e07246eb32cf26aeafb3cf8b58ea9e66e4fe79076a +SIZE (xpi/firefox-i18n-47.0/pt-BR.xpi) = 443876 +SHA256 (xpi/firefox-i18n-47.0/pt-PT.xpi) = 93c6d34c021961ab28a6f17d00cbecdfb93e28f44f16e205713bdfa58a941189 +SIZE (xpi/firefox-i18n-47.0/pt-PT.xpi) = 431642 +SHA256 (xpi/firefox-i18n-47.0/rm.xpi) = 2b0e71c1e0d18fc89cc07c836eb8b91de1e570e1fc17625a4527e2afe819e8ee +SIZE (xpi/firefox-i18n-47.0/rm.xpi) = 431927 +SHA256 (xpi/firefox-i18n-47.0/ro.xpi) = 49d22ee13d7966bf5655447f3962214ab27a59b1c3e278b5a1d99014832785a8 +SIZE (xpi/firefox-i18n-47.0/ro.xpi) = 445165 +SHA256 (xpi/firefox-i18n-47.0/ru.xpi) = b012064bab63da49e9367fa98656365f043f6c696cf07ad5c360a2e32e3e0a36 +SIZE (xpi/firefox-i18n-47.0/ru.xpi) = 392467 +SHA256 (xpi/firefox-i18n-47.0/si.xpi) = ec6a81d32d5e8e3e6b12eba7c5a921e274f74173e0ee975b0453682bd049dc00 +SIZE (xpi/firefox-i18n-47.0/si.xpi) = 488800 +SHA256 (xpi/firefox-i18n-47.0/sk.xpi) = 28f1f60c17120c8359c00ff9ef2ec1b62b2b380965fcf9a792615bf9d6852a70 +SIZE (xpi/firefox-i18n-47.0/sk.xpi) = 452876 +SHA256 (xpi/firefox-i18n-47.0/sl.xpi) = 808e91c8ecf181250ce6c0ce95f4404e68014bbc122ec953d63fde5a13d80e31 +SIZE (xpi/firefox-i18n-47.0/sl.xpi) = 429762 +SHA256 (xpi/firefox-i18n-47.0/son.xpi) = fb9b6bfcf0a87366ef4418494027ec4f3288a96d291e5df2d5cad838bbd63a2b +SIZE (xpi/firefox-i18n-47.0/son.xpi) = 441954 +SHA256 (xpi/firefox-i18n-47.0/sq.xpi) = 981c9379448c6047c9202525fea0cca7ce1af7a801006b94909362c2879268f7 +SIZE (xpi/firefox-i18n-47.0/sq.xpi) = 446756 +SHA256 (xpi/firefox-i18n-47.0/sr.xpi) = 6e774d8e0f036f783e7d4db2b14cdbe962bec907b92cf0c7babaca14e0f002e5 +SIZE (xpi/firefox-i18n-47.0/sr.xpi) = 462407 +SHA256 (xpi/firefox-i18n-47.0/sv-SE.xpi) = 16faf547324a7fd7c89dc10ecb83e9977ad1cb04325751f2b457e1e34da1f4f3 +SIZE (xpi/firefox-i18n-47.0/sv-SE.xpi) = 438737 +SHA256 (xpi/firefox-i18n-47.0/ta.xpi) = c9ab481fab0723a4fbb8e37b6146264be7db5a38318a34db52c8c7637c176721 +SIZE (xpi/firefox-i18n-47.0/ta.xpi) = 485392 +SHA256 (xpi/firefox-i18n-47.0/te.xpi) = 633f48a4ac4ef981eaf88259771e8ec7968ede0a701d3f71bb70aa8c8e6b9928 +SIZE (xpi/firefox-i18n-47.0/te.xpi) = 516412 +SHA256 (xpi/firefox-i18n-47.0/th.xpi) = da62e1732168c86192bd00e475f5edb5ec4831c7fb6dd2066b95c189b0b0bb80 +SIZE (xpi/firefox-i18n-47.0/th.xpi) = 492434 +SHA256 (xpi/firefox-i18n-47.0/tr.xpi) = 939e53a11429eab44f365fe7ee7f893f421bd26358259c3b5c84d0a65b24aad5 +SIZE (xpi/firefox-i18n-47.0/tr.xpi) = 438666 +SHA256 (xpi/firefox-i18n-47.0/uk.xpi) = be577eb4f263238a33b46afbdbe0241eae64de18cb386815b3740c945fb220a1 +SIZE (xpi/firefox-i18n-47.0/uk.xpi) = 487552 +SHA256 (xpi/firefox-i18n-47.0/uz.xpi) = 9e5ee75e84bd299656983b7bce2b56626c3f813e44ca7e228ca89b13f87b6a14 +SIZE (xpi/firefox-i18n-47.0/uz.xpi) = 446245 +SHA256 (xpi/firefox-i18n-47.0/vi.xpi) = c570a462781c0fa5020fd4fea041f19ba0e6488fad8c71203c91731676560c81 +SIZE (xpi/firefox-i18n-47.0/vi.xpi) = 454208 +SHA256 (xpi/firefox-i18n-47.0/xh.xpi) = bdd81444b045b09b0b1ccafc4dec8c2068a66d8eb1f47b3438e5b1fe8628ced3 +SIZE (xpi/firefox-i18n-47.0/xh.xpi) = 435192 +SHA256 (xpi/firefox-i18n-47.0/zh-CN.xpi) = a27f813cdce29d262f718c5d6a7c1ab8079710513dda8dc8865f5fd39bf2e217 +SIZE (xpi/firefox-i18n-47.0/zh-CN.xpi) = 459552 +SHA256 (xpi/firefox-i18n-47.0/zh-TW.xpi) = 78472471cfc53ed7a3fe0a089a37dd23624f52c16a54466beb28dc368a52dd8d +SIZE (xpi/firefox-i18n-47.0/zh-TW.xpi) = 467823 Index: branches/2016Q2/www/libxul/Makefile =================================================================== --- branches/2016Q2/www/libxul/Makefile (revision 416429) +++ branches/2016Q2/www/libxul/Makefile (revision 416430) @@ -1,80 +1,80 @@ # Created by: Michael Johnson # $FreeBSD$ PORTNAME= libxul -DISTVERSION= 45.1.1 +DISTVERSION= 45.2.0 CATEGORIES?= www devel MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \ - MOZILLA/firefox/candidates/${DISTVERSION}esr-candidates/build1/source + MOZILLA/firefox/candidates/${DISTVERSION}esr-candidates/build2/source DISTNAME= firefox-${DISTVERSION}esr.source MAINTAINER?= gecko@FreeBSD.org COMMENT?= Mozilla runtime package that can be used to bootstrap XUL+XPCOM apps BUILD_DEPENDS= nspr>=4.12:devel/nspr \ nss>=3.21.1:security/nss \ libevent2>=2.0.21_2:devel/libevent2 \ soundtouch>=1.9.0:audio/soundtouch \ harfbuzz>=1.1.0:print/harfbuzz \ graphite2>=1.3.6:graphics/graphite2 \ png>=1.6.19:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ sqlite3>=3.9.1: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 \ unzip:archivers/unzip LIB_DEPENDS= libv4l2.so:multimedia/libv4l WRKSRC:= ${WRKDIR}/firefox-${DISTVERSION}esr CONFLICTS_INSTALL= libxul-1.9.* USE_QT5= # empty QT_NONSTANDARD= yes USE_GL= gl USES= pathfix tar:xz MAKE_ENV= SKIP_GRE_REGISTRATION=1 mozappdir=${PREFIX}/lib/${MOZILLA} LDFLAGS+= -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH} USE_LDCONFIG= ${PREFIX}/lib/${MOZILLA} MOZ_OPTIONS?= --enable-application=xulrunner USE_GECKO= gecko CPE_PRODUCT= firefox_esr MOZILLA_EXEC_NAME=xulrunner USE_MOZILLA= # empty MOZILLA_PLIST_DIRS= bin include lib share/idl libdata MOZ_PKGCONFIG_FILES= libxul-embedding libxul mozilla-js \ mozilla-plugin OPTIONS_EXCLUDE= GSTREAMER LOGGING OPTIONS_DEFINE= RUST OPTIONS_DEFAULT= BUNDLED_CAIRO GTK2 OPTIONS_SINGLE+= TOOLKIT OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3 .include "${.CURDIR}/../../www/firefox/Makefile.options" .if ${USE_MOZILLA:M-nss} MOZ_PKGCONFIG_FILES+= mozilla-nss .endif post-patch: @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/xulrunner/stub/nsXULStub.cpp pre-configure: (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13) (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13) post-build: @${REINPLACE_CMD} -e "s|\(Libs:.*\)\($$\)|\1 -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}\2| ; \ s|%sdkdir%|%sdkdir%/sdk|g ; \ s|%%MOZ_LIBDIR%%|${PREFIX}/lib/${MOZILLA}|g" \ ${WRKSRC}/xulrunner/installer/*.pc.in || ${TRUE} .include Index: branches/2016Q2/www/libxul/distinfo =================================================================== --- branches/2016Q2/www/libxul/distinfo (revision 416429) +++ branches/2016Q2/www/libxul/distinfo (revision 416430) @@ -1,2 +1,2 @@ -SHA256 (firefox-45.1.1esr.source.tar.xz) = a27e36aa1ccebddfe5a113f7f15b09a61e35644be58029b00b0d996a00d04562 -SIZE (firefox-45.1.1esr.source.tar.xz) = 184360800 +SHA256 (firefox-45.2.0esr.source.tar.xz) = 1a729774034231c919dc5a556e17d3342792d5347c755d8d0a4f67a07374804b +SIZE (firefox-45.2.0esr.source.tar.xz) = 185458280 Index: branches/2016Q2/www/libxul/files/patch-bug1269165 =================================================================== --- branches/2016Q2/www/libxul/files/patch-bug1269165 (revision 416429) +++ branches/2016Q2/www/libxul/files/patch-bug1269165 (nonexistent) @@ -1,24 +0,0 @@ -# getUserMedia fails to enumerate ALSA plugins - ---- media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa_linux.cc.orig 2016-04-22 00:37:17 UTC -+++ media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa_linux.cc -@@ -1752,7 +1752,9 @@ int32_t AudioDeviceLinuxALSA::GetDevices - // Don't use snd_device_name_hint(-1,..) since there is a access violation - // inside this ALSA API with libasound.so.2.0.0. - int card = -1; -+#ifdef WEBRTC_LINUX - while (!(LATE(snd_card_next)(&card)) && (card >= 0) && keepSearching) { -+#endif - void **hints; - err = LATE(snd_device_name_hint)(card, "pcm", &hints); - if (err != 0) -@@ -1878,7 +1880,9 @@ int32_t AudioDeviceLinuxALSA::GetDevices - LATE(snd_strerror)(err)); - // Continue and return true anyway, since we did get the whole list. - } -+#ifdef WEBRTC_LINUX - } -+#endif - - if (FUNC_GET_NUM_OF_DEVICE == function) - { Property changes on: branches/2016Q2/www/libxul/files/patch-bug1269165 ___________________________________________________________________ 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: branches/2016Q2/www/linux-firefox/Makefile =================================================================== --- branches/2016Q2/www/linux-firefox/Makefile (revision 416429) +++ branches/2016Q2/www/linux-firefox/Makefile (revision 416430) @@ -1,23 +1,23 @@ # Created by: voisine # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 45.1.1 +DISTVERSION= 45.2.0 DISTVERSIONSUFFIX=esr PORTEPOCH= 2 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/linux-i686/en-US \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/linux-i686/en-US + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build2/linux-i686/en-US MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla USES= tar:bzip2 WANT_GTK218= yes PREFS_FILE= ${WRKSRC}/${APP_SUBDIR}defaults/preferences/browser-prefs.js APP_SUBDIR= browser/ # plugins, extensions .include "${.CURDIR}/../linux-seamonkey/Makefile.common" .include Index: branches/2016Q2/www/linux-firefox/distinfo =================================================================== --- branches/2016Q2/www/linux-firefox/distinfo (revision 416429) +++ branches/2016Q2/www/linux-firefox/distinfo (revision 416430) @@ -1,6 +1,6 @@ -SHA256 (firefox-45.1.1esr.tar.bz2) = 6226926c9b2eea44b82ae09f5a853bded58fb2a2afc0d53d5c6d73b3d06a1f8d -SIZE (firefox-45.1.1esr.tar.bz2) = 52102386 +SHA256 (firefox-45.2.0esr.tar.bz2) = 8eb51168d86cbb87cb039ec9a31320f4239c4e8ea7901a092bf63973b47e3f8e +SIZE (firefox-45.2.0esr.tar.bz2) = 52163569 SHA256 (glib2-2.22.2-2.fc12.i686.rpm) = e3b459c245ec14e7248e9de4b506963a4773407f3e58835db5070d0ed02ecc99 SIZE (glib2-2.22.2-2.fc12.i686.rpm) = 1162908 SHA256 (gtk2-2.18.3-19.fc12.i686.rpm) = aea9cf7ffe9c8dae0faa2bf3d2aa1b2117c55dce03da72dcce8c268279ec0a4b SIZE (gtk2-2.18.3-19.fc12.i686.rpm) = 3198708 Index: branches/2016Q2 =================================================================== --- branches/2016Q2 (revision 416429) +++ branches/2016Q2 (revision 416430) Property changes on: branches/2016Q2 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r416309,416312,416394