Index: branches/2014Q4/Mk/Uses/gecko.mk =================================================================== --- branches/2014Q4/Mk/Uses/gecko.mk (revision 370968) +++ branches/2014Q4/Mk/Uses/gecko.mk (revision 370969) @@ -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>=24:${PORTSDIR}/www/libxul -RUN_DEPENDS+= libxul>=24:${PORTSDIR}/www/libxul +BUILD_DEPENDS+= libxul>=31:${PORTSDIR}/www/libxul +RUN_DEPENDS+= libxul>=31:${PORTSDIR}/www/libxul .elif ${gecko_ARGS:Mfirefox} _GECKO_DEFAULT_VERSION= 31 -_GECKO_VERSIONS= 31 32 +_GECKO_VERSIONS= 31 33 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions 31_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox-esr -32_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox +33_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/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= 29 _GECKO_VERSIONS= 29 _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 29_DEPENDS= ${LOCALBASE}/lib/seamonkey/seamonkey:${PORTSDIR}/www/seamonkey .elif ${gecko_ARGS:Mthunderbird} _GECKO_DEFAULT_VERSION= 31 _GECKO_VERSIONS= 31 _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 31_DEPENDS= ${LOCALBASE}/lib/thunderbird/thunderbird:${PORTSDIR}/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/2014Q4/Mk/bsd.gecko.mk =================================================================== --- branches/2014Q4/Mk/bsd.gecko.mk (revision 370968) +++ branches/2014Q4/Mk/bsd.gecko.mk (revision 370969) @@ -1,623 +1,610 @@ #-*- 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-lib gmake iconv perl5 pkgconfig \ python:2,build desktop-file-utils CPE_VENDOR?=mozilla USE_PERL5= build USE_XORG= xext xrender xt MOZILLA_SUFX?= none MOZSRC?= ${WRKSRC} WRKSRC?= ${WRKDIR}/mozilla -PLISTD?= ${WRKDIR}/plist_dirs PLISTF?= ${WRKDIR}/plist_files MOZ_PIS_DIR?= lib/${MOZILLA}/init.d PORT_MOZCONFIG?= ${FILESDIR}/mozconfig.in MOZCONFIG?= ${WRKSRC}/.mozconfig 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 MOZ_EXPORT+= ${CONFIGURE_ENV} \ PERL="${PERL}" MOZ_OPTIONS+= --prefix="${PREFIX}" CPPFLAGS+= -isystem${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib -Wl,-rpath,${PREFIX}/lib/${MOZILLA} # use jemalloc 3.0.0 API for stats/tuning MOZ_EXPORT+= MOZ_JEMALLOC3=1 .if ${OSVERSION} < 1000012 MOZ_OPTIONS+= --enable-jemalloc .endif # Standard depends _ALL_DEPENDS= cairo event ffi graphite harfbuzz hunspell icu jpeg nspr nss opus png pixman soundtouch sqlite vorbis vpx cairo_LIB_DEPENDS= libcairo.so:${PORTSDIR}/graphics/cairo cairo_MOZ_OPTIONS= --enable-system-cairo event_LIB_DEPENDS= libevent.so:${PORTSDIR}/devel/libevent2 event_MOZ_OPTIONS= --with-system-libevent ffi_LIB_DEPENDS= libffi.so:${PORTSDIR}/devel/libffi ffi_MOZ_OPTIONS= --enable-system-ffi .if exists(${FILESDIR}/patch-bug847568) || exists(${FILESDIR}/patch-z-bug847568) graphite_LIB_DEPENDS= libgraphite2.so:${PORTSDIR}/graphics/graphite2 graphite_MOZ_OPTIONS= --with-system-graphite2 harfbuzz_LIB_DEPENDS= libharfbuzz.so:${PORTSDIR}/print/harfbuzz harfbuzz_MOZ_OPTIONS= --with-system-harfbuzz .endif hunspell_LIB_DEPENDS= libhunspell-1.3.so:${PORTSDIR}/textproc/hunspell hunspell_MOZ_OPTIONS= --enable-system-hunspell icu_LIB_DEPENDS= libicui18n.so:${PORTSDIR}/devel/icu icu_MOZ_OPTIONS= --with-system-icu --with-intl-api -jpeg_BUILD_DEPENDS=yasm:${PORTSDIR}/devel/yasm # XXX depends on ports/180159 or package flavor support #jpeg_LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/libjpeg-turbo jpeg_LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/jpeg jpeg_MOZ_OPTIONS= --with-system-jpeg=${LOCALBASE} nspr_LIB_DEPENDS= libnspr4.so:${PORTSDIR}/devel/nspr nspr_MOZ_OPTIONS= --with-system-nspr nss_LIB_DEPENDS= libnss3.so:${PORTSDIR}/security/nss nss_MOZ_OPTIONS= --with-system-nss .if exists(${FILESDIR}/patch-z-bug517422) || exists(${FILESDIR}/patch-zz-bug517422) opus_LIB_DEPENDS= libopus.so:${PORTSDIR}/audio/opus opus_MOZ_OPTIONS= --with-system-opus .endif pixman_LIB_DEPENDS= libpixman-1.so:${PORTSDIR}/x11/pixman pixman_MOZ_OPTIONS= --enable-system-pixman png_LIB_DEPENDS= libpng15.so:${PORTSDIR}/graphics/png png_MOZ_OPTIONS= --with-system-png=${LOCALBASE} .if exists(${FILESDIR}/patch-z-bug517422) || exists(${FILESDIR}/patch-zz-bug517422) soundtouch_LIB_DEPENDS= libSoundTouch.so:${PORTSDIR}/audio/soundtouch soundtouch_MOZ_OPTIONS= --with-system-soundtouch # XXX disabled: bug 913854 not yet upstreamed speex_LIB_DEPENDS= libspeexdsp.so:${PORTSDIR}/audio/speex speex_MOZ_OPTIONS= --with-system-speex .endif sqlite_LIB_DEPENDS= libsqlite3.so:${PORTSDIR}/databases/sqlite3 sqlite_MOZ_OPTIONS= --enable-system-sqlite .if exists(${FILESDIR}/patch-z-bug517422) || exists(${FILESDIR}/patch-zz-bug517422) # XXX disabled: update to 1.2.x or review backported fixes theora_LIB_DEPENDS= libtheora.so:${PORTSDIR}/multimedia/libtheora theora_MOZ_OPTIONS= --with-system-theora vorbis_LIB_DEPENDS= libvorbis.so:${PORTSDIR}/audio/libvorbis vorbis_MOZ_OPTIONS= --with-system-vorbis --with-system-ogg .endif -vpx_BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm vpx_LIB_DEPENDS= libvpx.so:${PORTSDIR}/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} 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} \ --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 # XXX stolen from www/chromium MOZ_EXPORT+= MOZ_GOOGLE_API_KEY=AIzaSyBsp9n41JLW8jCokwn7vhoaMejDFRd1mp8 .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 -. if ${MOZILLA_VER:R:R} >= 30 || ${MOZILLA} == "seamonkey" USE_QT5+= qmake_build buildtools_build gui network quick printsupport -. else -USE_QT4+= qmake_build moc_build rcc_build gui network opengl -. endif MOZ_EXPORT+= HOST_QMAKE="${QMAKE}" HOST_MOC="${MOC}" HOST_RCC="${RCC}" .elif ${MOZ_TOOLKIT:Mcairo-gtk3} 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 MOZ_OPTIONS+= --disable-optimize .endif .if ${PORT_OPTIONS:MDBUS} BUILD_DEPENDS+= libnotify>0:${PORTSDIR}/devel/libnotify LIB_DEPENDS+= libdbus-glib-1.so:${PORTSDIR}/devel/dbus-glib \ libstartup-notification-1.so:${PORTSDIR}/x11/startup-notification MOZ_OPTIONS+= --enable-startup-notification .else MOZ_OPTIONS+= --disable-dbus --disable-libnotify .endif .if ${PORT_OPTIONS:MGSTREAMER} -. if ${MOZILLA_VER:R:R} >= 30 || ${MOZILLA} == "seamonkey" USE_GSTREAMER1?=good libav MOZ_OPTIONS+= --enable-gstreamer=1.0 -. else -USE_GSTREAMER?= good ffmpeg -MOZ_OPTIONS+= --enable-gstreamer -. endif .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:MGNOMEVFS2} BUILD_DEPENDS+= ${gnomevfs2_DETECT}:${gnomevfs2_LIB_DEPENDS:C/.*://} USE_GNOME+= gnomevfs2:build MOZ_OPTIONS+= --enable-gnomevfs MOZ_OPTIONS:= ${MOZ_OPTIONS:C/(extensions)=(.*)/\1=\2,gnomevfs/} .else MOZ_OPTIONS+= --disable-gnomevfs .endif .if ${PORT_OPTIONS:MLIBPROXY} LIB_DEPENDS+= libproxy.so:${PORTSDIR}/net/libproxy MOZ_OPTIONS+= --enable-libproxy .else MOZ_OPTIONS+= --disable-libproxy .endif .if ${PORT_OPTIONS:MPGO} -USE_GCC?= yes +USES:= compiler:gcc-c++11-lib ${USES:Ncompiler*c++11*} USE_DISPLAY=yes .undef GNU_CONFIGURE MAKEFILE= ${WRKSRC}/client.mk 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:${PORTSDIR}/audio/alsa-lib RUN_DEPENDS+= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins MOZ_OPTIONS+= --enable-alsa .endif .if ${PORT_OPTIONS:MPULSEAUDIO} . if ${PORT_OPTIONS:MALSA} BUILD_DEPENDS+= pulseaudio>0:${PORTSDIR}/audio/pulseaudio . else # pull pulse package if we cannot fallback to another backend LIB_DEPENDS+= libpulse.so:${PORTSDIR}/audio/pulseaudio . endif MOZ_OPTIONS+= --enable-pulseaudio .else MOZ_OPTIONS+= --disable-pulseaudio .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} . if ${OSVERSION} < 1000510 BROKEN= dtrace -G crashes with C++ object files . endif MOZ_OPTIONS+= --enable-dtrace LIBS+= -lelf STRIP= .else MOZ_OPTIONS+= --disable-dtrace .endif .if ${PORT_OPTIONS:MLOGGING} || ${PORT_OPTIONS:MDEBUG} MOZ_OPTIONS+= --enable-logging .else MOZ_OPTIONS+= --disable-logging .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(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@|${PERL5}|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%%|${PERL5}|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 CONFIGURE_TARGET=x86_64-unknown-${OPSYS:tl}${OSREL} . if ${USE_MOZILLA:M-nss} USE_BINUTILS= # intel-gcm.s CFLAGS+= -B${LOCALBASE}/bin LDFLAGS+= -B${LOCALBASE}/bin . if ${OSVERSION} < 1000041 && exists(/usr/lib/libcxxrt.so) && \ ${CXXFLAGS:M-stdlib=libc++} LIBS+= -lcxxrt . endif . endif .elif ${ARCH:Mpowerpc*} -USE_GCC?= yes +USES:= compiler:gcc-c++11-lib ${USES:Ncompiler*c++11*} CFLAGS+= -D__STDC_CONSTANT_MACROS . 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 .if defined(OBJDIR_BUILD) CONFIGURE_SCRIPT=../configure MOZ_OBJDIR= ${WRKSRC}/obj-${CONFIGURE_TARGET} CONFIGURE_WRKSRC=${MOZ_OBJDIR} BUILD_WRKSRC= ${MOZ_OBJDIR} INSTALL_WRKSRC= ${MOZ_OBJDIR} .else MOZ_OBJDIR= ${WRKSRC} .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/build < $$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_LIBS}|g ; \ s|-l?pthread|${PTHREAD_LIBS}|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; \ else \ ${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ ${WRKSRC}/config/autoconf.mk.in; \ fi @${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/src/mozHunspell.cpp # handles mozilla pis scripts. gecko-moz-pis-patch: .for moz in ${MOZ_PIS_SCRIPTS} @${MOZCONFIG_SED} < ${FILESDIR}/${moz} > ${WRKDIR}/${moz} .endfor pre-configure: gecko-pre-configure gecko-pre-configure: .if defined(OBJDIR_BUILD) ${MKDIR} ${MOZ_OBJDIR} .endif post-configure: gecko-post-configure gecko-post-configure: @${ECHO_CMD} "#define JNIIMPORT" >> ${MOZSRC}/mozilla-config.h 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} ${PLISTD} + ${RM} -f ${PLISTF} .for dir in ${MOZILLA_PLIST_DIRS} @cd ${STAGEDIR}${PREFIX}/${dir} && ${FIND} -H -s * ! -type d | \ - ${SED} -e 's|^|${dir}/|' >> ${PLISTF} && \ - ${FIND} -d * -type d | \ - ${SED} -e 's|^|@dirrm ${dir}/|' >> ${PLISTD} + ${SED} -e 's|^|${dir}/|' >> ${PLISTF} .endfor ${CAT} ${PLISTF} | ${SORT} >> ${TMPPLIST} - ${CAT} ${PLISTD} | ${SORT} -r >> ${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/2014Q4/devel/nspr/pkg-plist =================================================================== --- branches/2014Q4/devel/nspr/pkg-plist (revision 370968) +++ branches/2014Q4/devel/nspr/pkg-plist (revision 370969) @@ -1,96 +1,92 @@ bin/nspr-config include/nspr/md/_aix32.cfg include/nspr/md/_aix64.cfg include/nspr/md/_beos.cfg include/nspr/md/_bsdi.cfg include/nspr/md/_darwin.cfg include/nspr/md/_dgux.cfg include/nspr/md/_freebsd.cfg include/nspr/md/_hpux32.cfg include/nspr/md/_hpux64.cfg include/nspr/md/_irix32.cfg include/nspr/md/_irix64.cfg include/nspr/md/_linux.cfg include/nspr/md/_netbsd.cfg include/nspr/md/_nto.cfg include/nspr/md/_openbsd.cfg include/nspr/md/_os2.cfg include/nspr/md/_osf1.cfg include/nspr/md/_qnx.cfg include/nspr/md/_riscos.cfg include/nspr/md/_scoos.cfg include/nspr/md/_solaris.cfg include/nspr/md/_symbian.cfg include/nspr/md/_unixware.cfg include/nspr/md/_unixware7.cfg include/nspr/md/_win95.cfg include/nspr/md/_winnt.cfg include/nspr/nspr.h include/nspr/obsolete/pralarm.h include/nspr/obsolete/probslet.h include/nspr/obsolete/protypes.h include/nspr/obsolete/prsem.h include/nspr/plarena.h include/nspr/plarenas.h include/nspr/plbase64.h include/nspr/plerror.h include/nspr/plgetopt.h include/nspr/plhash.h include/nspr/plstr.h include/nspr/pratom.h include/nspr/prbit.h include/nspr/prclist.h include/nspr/prcmon.h include/nspr/prcountr.h include/nspr/prcpucfg.h include/nspr/prcvar.h include/nspr/prdtoa.h include/nspr/prenv.h include/nspr/prerr.h include/nspr/prerror.h include/nspr/prinet.h include/nspr/prinit.h include/nspr/prinrval.h include/nspr/prio.h include/nspr/pripcsem.h include/nspr/private/pprio.h include/nspr/private/pprthred.h include/nspr/private/prpriv.h include/nspr/prlink.h include/nspr/prlock.h include/nspr/prlog.h include/nspr/prlong.h include/nspr/prmem.h include/nspr/prmon.h include/nspr/prmwait.h include/nspr/prnetdb.h include/nspr/prolock.h include/nspr/prpdce.h include/nspr/prprf.h include/nspr/prproces.h include/nspr/prrng.h include/nspr/prrwlock.h include/nspr/prshm.h include/nspr/prshma.h include/nspr/prsystem.h include/nspr/prthread.h include/nspr/prtime.h include/nspr/prtpool.h include/nspr/prtrace.h include/nspr/prtypes.h include/nspr/prvrsion.h include/nspr/prwin16.h lib/libnspr4.a lib/libnspr4.so lib/libnspr4.so.1 lib/libplc4.a lib/libplc4.so lib/libplc4.so.1 lib/libplds4.a lib/libplds4.so lib/libplds4.so.1 libdata/pkgconfig/nspr.pc -@dirrm include/nspr/private -@dirrm include/nspr/obsolete -@dirrm include/nspr/md -@dirrm include/nspr Index: branches/2014Q4/mail/linux-thunderbird/Makefile =================================================================== --- branches/2014Q4/mail/linux-thunderbird/Makefile (revision 370968) +++ branches/2014Q4/mail/linux-thunderbird/Makefile (revision 370969) @@ -1,17 +1,17 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= thunderbird -DISTVERSION= 31.1.2 +DISTVERSION= 31.2.0 CATEGORIES= mail news net-im ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US MAINTAINER= gecko@FreeBSD.org COMMENT= Mozilla Thunderbird is standalone mail and news that stands above USES= tar:bzip2 WANT_GTK218= yes .include "${.CURDIR}/../../www/linux-seamonkey/Makefile.common" .include Index: branches/2014Q4/mail/linux-thunderbird/distinfo =================================================================== --- branches/2014Q4/mail/linux-thunderbird/distinfo (revision 370968) +++ branches/2014Q4/mail/linux-thunderbird/distinfo (revision 370969) @@ -1,6 +1,6 @@ -SHA256 (thunderbird-31.1.2.tar.bz2) = 9209fa7bdada6245717dbfaf517d68cef04719812504bc0c988def6adc7baab5 -SIZE (thunderbird-31.1.2.tar.bz2) = 33552961 +SHA256 (thunderbird-31.2.0.tar.bz2) = 4c4da90f383d7b43e97e471656a6cfbbd44d1b80d57b8b2405497678aced46b5 +SIZE (thunderbird-31.2.0.tar.bz2) = 33559450 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/2014Q4/mail/linux-thunderbird/pkg-plist =================================================================== --- branches/2014Q4/mail/linux-thunderbird/pkg-plist (revision 370968) +++ branches/2014Q4/mail/linux-thunderbird/pkg-plist (revision 370969) @@ -1,94 +1,80 @@ bin/%%APP_NAME%% share/applications/%%APP_NAME%%.desktop lib/%%APP_NAME%%/Throbber-small.gif lib/%%APP_NAME%%/application.ini lib/%%APP_NAME%%/blocklist.xml lib/%%APP_NAME%%/chrome.manifest lib/%%APP_NAME%%/chrome/icons/default/default16.png lib/%%APP_NAME%%/chrome/icons/default/default22.png lib/%%APP_NAME%%/chrome/icons/default/default24.png lib/%%APP_NAME%%/chrome/icons/default/default256.png lib/%%APP_NAME%%/chrome/icons/default/default32.png lib/%%APP_NAME%%/chrome/icons/default/default48.png lib/%%APP_NAME%%/components/components.manifest lib/%%APP_NAME%%/components/libdbusservice.so lib/%%APP_NAME%%/components/libmozgnome.so lib/%%APP_NAME%%/crashreporter lib/%%APP_NAME%%/crashreporter.ini lib/%%APP_NAME%%/defaults/messenger/mailViews.dat lib/%%APP_NAME%%/defaults/pref/browser-prefs.js lib/%%APP_NAME%%/defaults/pref/channel-prefs.js lib/%%APP_NAME%%/dependentlibs.list lib/%%APP_NAME%%/dictionaries/en-US.aff lib/%%APP_NAME%%/dictionaries/en-US.dic lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/preview.png lib/%%APP_NAME%%/icons/updater.png lib/%%APP_NAME%%/isp/Bogofilter.sfd lib/%%APP_NAME%%/isp/DSPAM.sfd lib/%%APP_NAME%%/isp/POPFile.sfd lib/%%APP_NAME%%/isp/SpamAssassin.sfd lib/%%APP_NAME%%/isp/SpamPal.sfd lib/%%APP_NAME%%/isp/movemail.rdf lib/%%APP_NAME%%/isp/rss.rdf lib/%%APP_NAME%%/libfreebl3.chk lib/%%APP_NAME%%/libfreebl3.so %%GTK218%%lib/%%APP_NAME%%/libgdk-x11-2.0.so.0 %%GTK218%%lib/%%APP_NAME%%/libgio-2.0.so.0 %%GTK218%%lib/%%APP_NAME%%/libglib-2.0.so.0 %%GTK218%%lib/%%APP_NAME%%/libgtk-x11-2.0.so.0 lib/%%APP_NAME%%/libldap60.so lib/%%APP_NAME%%/libldif60.so lib/%%APP_NAME%%/libmozalloc.so lib/%%APP_NAME%%/libmozsqlite3.so lib/%%APP_NAME%%/libnspr4.so lib/%%APP_NAME%%/libnss3.so lib/%%APP_NAME%%/libnssckbi.so lib/%%APP_NAME%%/libnssdbm3.chk lib/%%APP_NAME%%/libnssdbm3.so lib/%%APP_NAME%%/libnssutil3.so lib/%%APP_NAME%%/libplc4.so lib/%%APP_NAME%%/libplds4.so lib/%%APP_NAME%%/libprldap60.so lib/%%APP_NAME%%/libsmime3.so lib/%%APP_NAME%%/libsoftokn3.chk lib/%%APP_NAME%%/libsoftokn3.so lib/%%APP_NAME%%/libssl3.so lib/%%APP_NAME%%/libxul.so lib/%%APP_NAME%%/mozilla-xremote-client lib/%%APP_NAME%%/omni.ja lib/%%APP_NAME%%/platform.ini lib/%%APP_NAME%%/plugin-container lib/%%APP_NAME%%/plugins lib/%%APP_NAME%%/precomplete lib/%%APP_NAME%%/removed-files lib/%%APP_NAME%%/run-mozilla.sh lib/%%APP_NAME%%/searchplugins/amazondotcom.xml lib/%%APP_NAME%%/searchplugins/aol-web-search.xml lib/%%APP_NAME%%/searchplugins/bing.xml lib/%%APP_NAME%%/searchplugins/eBay.xml lib/%%APP_NAME%%/searchplugins/twitter.xml lib/%%APP_NAME%%/searchplugins/wikipedia.xml lib/%%APP_NAME%%/searchplugins/yahoo.xml lib/%%APP_NAME%%/thunderbird lib/%%APP_NAME%%/thunderbird-bin lib/%%APP_NAME%%/update-settings.ini lib/%%APP_NAME%%/updater lib/%%APP_NAME%%/updater.ini @exec /bin/cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%APP_NAME%%/ %D/lib/%%APP_NAME%%/extensions/ 2>/dev/null || true @unexec /usr/bin/find %D/lib/%%APP_NAME%%/extensions/ -depth 1 -type l -delete 2>/dev/null || true -@dirrm lib/%%APP_NAME%%/chrome/icons/default -@dirrm lib/%%APP_NAME%%/chrome/icons -@dirrm lib/%%APP_NAME%%/chrome -@dirrm lib/%%APP_NAME%%/components -@dirrm lib/%%APP_NAME%%/defaults/messenger -@dirrm lib/%%APP_NAME%%/defaults/pref -@dirrm lib/%%APP_NAME%%/defaults -@dirrm lib/%%APP_NAME%%/dictionaries -@dirrm lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} -@dirrm lib/%%APP_NAME%%/extensions -@dirrm lib/%%APP_NAME%%/icons -@dirrm lib/%%APP_NAME%%/isp -@dirrm lib/%%APP_NAME%%/searchplugins -@dirrm lib/%%APP_NAME%% Index: branches/2014Q4/mail/thunderbird/Makefile =================================================================== --- branches/2014Q4/mail/thunderbird/Makefile (revision 370968) +++ branches/2014Q4/mail/thunderbird/Makefile (revision 370969) @@ -1,198 +1,198 @@ # Created by: Joe Marcus Clarke # $FreeBSD$ PORTNAME= thunderbird -DISTVERSION= 31.1.2 +DISTVERSION= 31.2.0 CATEGORIES= mail news net-im ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ - https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source/ + https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source/ DISTFILES= ${PORTNAME}-${DISTVERSION}.source${EXTRACT_SUFX} EXTRACT_ONLY= ${PORTNAME}-${DISTVERSION}.source${EXTRACT_SUFX} MAINTAINER= gecko@FreeBSD.org COMMENT= Mozilla Thunderbird is standalone mail and news that stands above BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \ nss>=3.16:${PORTSDIR}/security/nss \ libevent2>=2.0.21_2:${PORTSDIR}/devel/libevent2 \ cairo>=1.12.16_1,2:${PORTSDIR}/graphics/cairo \ soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \ harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \ graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \ libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \ opus>=1.1:${PORTSDIR}/audio/opus \ libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \ sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ zip:${PORTSDIR}/archivers/zip \ unzip:${PORTSDIR}/archivers/unzip LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l EM_VERSION= 1.7.2 -L_VERSION= 3.3.1.2 +L_VERSION= 3.3.2 SSP_UNSAFE= yes USE_AUTOTOOLS= autoconf213:env OBJDIR_BUILD= # in-tree build broken after bug 789837 USE_GECKO= gecko USE_MOZILLA= # empty WANT_GNOME= yes USE_QT5= # empty QT_NONSTANDARD= yes ALL_TARGET= default USE_GL= gl USES= dos2unix tar:bzip2 DOS2UNIX_FILES= mozilla/media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp MOZ_OPTIONS= --program-transform-name='s/thunderbird/${MOZILLA}/' \ --enable-single-profile --disable-profilesharing \ --enable-application=mail --enable-official-branding MOZ_MK_OPTIONS= MOZ_THUNDERBIRD=1 MAIL_PKG_SHARED=1 MOZ_EXPORT= MOZ_THUNDERBIRD=1 MAIL_PKG_SHARED=1 MOZ_PKGCONFIG_FILES= PORTNAME_ICON= ${MOZILLA}.png PORTNAME_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/chrome/icons/default/default48.png SYSTEM_PREFS= ${FAKEDIR}/lib/${PORTNAME}/defaults/pref/${PORTNAME}.js MOZ_PIS_SCRIPTS=moz_pis_S50cleanhome OPTIONS_DEFINE= ENIGMAIL LIGHTNING OPTIONS_DEFAULT=ENIGMAIL LIGHTNING # non-client.mk objdir build broken after bug 846540 .undef GNU_CONFIGURE ALL_TARGET= build MAKEFILE= ${WRKSRC}/client.mk .include "${.CURDIR}/../../www/firefox/Makefile.options" OPTIONS_DEFAULT:=${OPTIONS_DEFAULT:S/GSTREAMER//} .include WRKSRC= ${WRKDIR}/comm-esr31 MOZSRC:= ${WRKSRC}/mozilla XPI_LIBDIR= ${PREFIX}/lib/xpi # avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1> -# http://svnweb.freebsd.org/changeset/base/255804 -.if ${CHOSEN_COMPILER_TYPE} == clang && ${ARCH} == i386 && ${OSVERSION} < 1000056 +# To be removed when 9.2R goes EOL. http://llvm.org/PR15840 +.if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION:M3[23]} . if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} BROKEN= Cannot build with OPTIMIZED_CFLAGS option due to \ a ${CHOSEN_COMPILER_TYPE} bug: unset the option or \ use FAVORITE_COMPILER=gcc in Makefile.local/make.conf # apply workaround only for -O2 or greater . elif ${CXXFLAGS:M-O*} && ! ${CXXFLAGS:M-O[01]} . if ${MACHINE_CPU:Msse2} CXXFLAGS+= -msse2 . else CXXFLAGS+= -O1 . endif . endif .endif .if ${PORT_OPTIONS:MALSA} RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib .endif .if ${PORT_OPTIONS:MGSTREAMER} RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:${PORTSDIR}/multimedia/gstreamer1-libav .endif .if ${PORT_OPTIONS:MENIGMAIL} MASTER_SITES+= https://www.enigmail.net/download/source/:enigmail DISTFILES+= ${EM_DISTFILE}:enigmail RUN_DEPENDS+= gpg:${PORTSDIR}/security/gnupg EM_DISTNAME= enigmail-${EM_VERSION} EM_DISTFILE= ${EM_DISTNAME}.tar.gz EM_XPI_FILE= ${WRKSRC}/mailnews/extensions/enigmail/build/${EM_DISTNAME}-${OPSYS:tl}-${ARCH:S/amd64/x86_64/:S/i386/x86/}-gcc3.xpi EM_ORIG_ID= {847b3a00-7ab1-11d4-8f02-006008948af5} EM_ID= ${PORTNAME}@mozilla-enigmail.org EM_ID_RFILES= ${XPI_LIBDIR}/${EM_ID}/install.rdf \ ${XPI_LIBDIR}/${EM_ID}/components/enigmail.js \ ${XPI_LIBDIR}/${EM_ID}/modules/enigmailCommon.jsm .endif .if ${PORT_OPTIONS:MLIGHTNING} MOZ_OPTIONS+= --enable-calendar MOZ_MK_OPTIONS+= MOZ_CO_PROJECT=calendar LIGHTNING_DIR= share/lightning XPI_FILE= ${MOZ_OBJDIR}/mozilla/dist/xpi-stage/lightning-${L_VERSION}.en-US.${OPSYS:tl}${OSREL}-${ARCH:S/amd64/x86_64/}.xpi XPI_ORIG_ID= {e2fda1a4-762b-4020-b5ad-a41df1933103} XPI_ID= lightning@thunderbird.mozilla.org .else MOZ_OPTIONS+= --disable-calendar .endif post-extract: @${SED} -e 's|@PORTNAME_ICON@|${PORTNAME_ICON}|;s|@MOZILLA@|${MOZILLA}|' \ <${FILESDIR}/thunderbird.desktop.in >${WRKDIR}/${MOZILLA_EXEC_NAME}.desktop .if ${PORT_OPTIONS:MENIGMAIL} @${TAR} -xf ${_DISTDIR}/${EM_DISTFILE} \ -C ${WRKSRC}/mailnews/extensions .endif post-patch: @${REINPLACE_CMD} -e '/MOZPNG/s/=[0-9]*/=10511/' \ ${MOZSRC}/configure.in ${WRKSRC}/configure.in @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/mail/app/nsMailApp.cpp .if ${PORT_OPTIONS:MENIGMAIL} @${REINPLACE_CMD} -e 's,/usr/bin/perl,${PERL},' \ ${WRKSRC}/mailnews/extensions/enigmail/util/fixlang.pl \ ${WRKSRC}/mailnews/extensions/enigmail/util/make-lang-xpi.pl @${REINPLACE_CMD} -e '/^xpi/s/$$/ all/' \ -e '/^all/s/ xpi//' \ -e '/^XPI_MODULE_VERS/s/= .*/= ${EM_VERSION}/' \ ${WRKSRC}/mailnews/extensions/enigmail/Makefile @${REINPLACE_CMD} -e '/em:version/s,>[^<]*<,>${EM_VERSION}<,' \ -e '/em:maxVersion/s/pre//' \ ${WRKSRC}/mailnews/extensions/enigmail/package/install.rdf .endif pre-configure: (cd ${WRKSRC} && ${AUTOCONF}) (cd ${MOZSRC} && ${AUTOCONF}) (cd ${MOZSRC}/js/src/ && ${AUTOCONF}) .if ${PORT_OPTIONS:MENIGMAIL} post-configure: cd ${WRKSRC}/mailnews/extensions/enigmail/ && \ ${SETENV} ${MAKE_ENV} ./configure post-build: ${DO_MAKE_BUILD:S/${MAKEFILE}/Makefile/} all xpi \ -C ${WRKSRC}/mailnews/extensions/enigmail .endif port-pre-install: ${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/defaults post-install: ${INSTALL_DATA} ${WRKDIR}/${MOZILLA_EXEC_NAME}.desktop ${STAGEDIR}${PREFIX}/share/applications ${LN} -sf ${PORTNAME_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME_ICON} .if ${PORT_OPTIONS:MLIGHTNING} @${MKDIR} ${STAGEDIR}${XPI_LIBDIR}/${XPI_ID} ${STAGEDIR}${XPI_LIBDIR}/symlinks/thunderbird @(cd ${STAGEDIR}${XPI_LIBDIR}/${XPI_ID}; ${TAR} -xf ${XPI_FILE}) @${REINPLACE_CMD} -i "" "s/${XPI_ORIG_ID}/${XPI_ID}/" ${STAGEDIR}${XPI_LIBDIR}/${XPI_ID}/install.rdf @${CHMOD} -R a+rX,go-w ${STAGEDIR}${XPI_LIBDIR}/${XPI_ID} @${LN} -sf ${XPI_LIBDIR}/${XPI_ID} ${STAGEDIR}${XPI_LIBDIR}/symlinks/thunderbird 2>/dev/null || true @${ECHO_CMD} '@exec ${LN} -sf %D/lib/xpi/${XPI_ID} ${LOCALBASE}/lib/thunderbird/extensions 2>/dev/null || true' >> ${TMPPLIST} @${ECHO_CMD} '@unexec ${RM} -f ${LOCALBASE}/lib/thunderbird/extensions/${XPI_ID}' >> ${TMPPLIST} .endif .if ${PORT_OPTIONS:MENIGMAIL} @${MKDIR} ${STAGEDIR}${XPI_LIBDIR}/${EM_ID} ${STAGEDIR}${XPI_LIBDIR}/symlinks/${PORTNAME} @(cd ${STAGEDIR}${XPI_LIBDIR}/${EM_ID}; ${TAR} -xf ${EM_XPI_FILE}) @${REINPLACE_CMD} -i "" "s/${EM_ORIG_ID}/${EM_ID}/" ${EM_ID_RFILES:S/^/${STAGEDIR}/} @${CHMOD} -R a+rX,go-w ${STAGEDIR}${XPI_LIBDIR}/${EM_ID} @${LN} -sf ${XPI_LIBDIR}/${EM_ID} ${STAGEDIR}${XPI_LIBDIR}/symlinks/${PORTNAME} 2>/dev/null || true @${ECHO_CMD} '@exec ${LN} -sf %D/lib/xpi/${EM_ID} ${LOCALBASE}/lib/${PORTNAME}/extensions 2>/dev/null || true' >> ${TMPPLIST} @${ECHO_CMD} '@unexec ${RM} -f ${LOCALBASE}/lib/${PORTNAME}/extensions/${EM_ID}' >> ${TMPPLIST} .endif .include Index: branches/2014Q4/mail/thunderbird/distinfo =================================================================== --- branches/2014Q4/mail/thunderbird/distinfo (revision 370968) +++ branches/2014Q4/mail/thunderbird/distinfo (revision 370969) @@ -1,4 +1,4 @@ -SHA256 (thunderbird-31.1.2.source.tar.bz2) = 86b18e7642ad8e6004cb4826daec586a24fae8a27da59df49f0039495dd5d7b5 -SIZE (thunderbird-31.1.2.source.tar.bz2) = 171033949 +SHA256 (thunderbird-31.2.0.source.tar.bz2) = 48130bbd9102303167aa832ea80970201777ee65b91fbab515332527850749b4 +SIZE (thunderbird-31.2.0.source.tar.bz2) = 171047372 SHA256 (enigmail-1.7.2.tar.gz) = 7b3a62e83961bafec1cdac60075aa6c317c8f655a837e31a7d1f3ce6a49fc7d6 SIZE (enigmail-1.7.2.tar.gz) = 1420346 Index: branches/2014Q4/mail/thunderbird/files/patch-clang34-disable-stdcall =================================================================== --- branches/2014Q4/mail/thunderbird/files/patch-clang34-disable-stdcall (revision 370968) +++ branches/2014Q4/mail/thunderbird/files/patch-clang34-disable-stdcall (nonexistent) @@ -1,13 +0,0 @@ -# http://llvm.org/bugs/show_bug.cgi?id=19007 - ---- mozilla/xpcom/base/nscore.h~ -+++ mozilla/xpcom/base/nscore.h -@@ -110,7 +110,7 @@ - * NS_HIDDEN_(int) NS_FASTCALL func2(char *foo); - */ - --#if defined(__i386__) && defined(__GNUC__) -+#if defined(__i386__) && defined(__GNUC__) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0) - #define NS_FASTCALL __attribute__ ((regparm (3), stdcall)) - #define NS_CONSTRUCTOR_FASTCALL __attribute__ ((regparm (3), stdcall)) - #elif defined(XP_WIN) && !defined(_WIN64) Property changes on: branches/2014Q4/mail/thunderbird/files/patch-clang34-disable-stdcall ___________________________________________________________________ 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/2014Q4/mail/thunderbird/files/patch-bug1021761 =================================================================== --- branches/2014Q4/mail/thunderbird/files/patch-bug1021761 (nonexistent) +++ branches/2014Q4/mail/thunderbird/files/patch-bug1021761 (revision 370969) @@ -0,0 +1,1092 @@ +diff --git configure.in configure.in +index 48e60c0..ec08417 100644 +--- mozilla/configure.in ++++ mozilla/configure.in +@@ -5438,6 +5438,60 @@ 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|NetBSD|GNU/kFreeBSD) ++ MOZ_OSS=1 ++ ;; ++esac ++ ++MOZ_ARG_DISABLE_BOOL(oss, ++[ --disable-oss Disable OpenSoundSystem support], ++ MOZ_OSS=, ++ MOZ_OSS=1) ++ ++_SAVE_CFLAGS=$CFLAGS ++_SAVE_LIBS=$LIBS ++if test -n "$MOZ_OSS"; then ++ dnl Prefer 4Front implementation ++ AC_MSG_CHECKING([MOZ_OSS_CFLAGS]) ++ if test -z "$MOZ_OSS_CFLAGS"; then ++ for oss_conf in /etc/oss.conf /usr/local/etc/oss.conf; do ++ if test -e "$oss_conf"; then ++ . "$oss_conf" ++ fi ++ done ++ if test -d "$OSSLIBDIR"; then ++ 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 linux/soundcard.h soundcard.h) ++ ++ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \ ++ "$ac_cv_header_linux_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="-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 ================================== + +@@ -5451,12 +5505,23 @@ MOZ_ARG_ENABLE_BOOL(alsa, + MOZ_ALSA=1, + MOZ_ALSA=) + ++MOZ_ARG_DISABLE_BOOL(alsa-dlopen, ++[ --disable-alsa-dlopen Disable runtime linking of libasound.so], ++ DISABLE_LIBASOUND_DLOPEN=1, ++ DISABLE_LIBASOUND_DLOPEN=) ++ + if test -n "$MOZ_ALSA"; then + PKG_CHECK_MODULES(MOZ_ALSA, alsa, , + [echo "$MOZ_ALSA_PKG_ERRORS" + AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])]) + fi + ++if test -n "$DISABLE_LIBASOUND_DLOPEN"; then ++ AC_DEFINE(DISABLE_LIBASOUND_DLOPEN) ++else ++ MOZ_ALSA_LIBS= ++fi ++ + AC_SUBST(MOZ_ALSA) + + dnl ======================================================== +diff --git media/libcubeb/AUTHORS media/libcubeb/AUTHORS +index b441e8a..950d9e5 100644 +--- mozilla/media/libcubeb/AUTHORS ++++ mozilla/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 +--- mozilla/media/libcubeb/src/cubeb.c ++++ mozilla/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 +--- mozilla/media/libcubeb/src/cubeb_alsa.c ++++ mozilla/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); +@@ -313,10 +360,10 @@ alsa_refill_stream(cubeb_stream * stm) + return ERROR; + } + if (got > 0) { +- snd_pcm_sframes_t wrote = snd_pcm_writei(stm->pcm, p, got); ++ snd_pcm_sframes_t 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 +@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, + latency = latency < 500 ? 500 : latency; + } + +- r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, +- stm->params.channels, stm->params.rate, 1, +- latency * 1000); ++ 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) { + alsa_stream_destroy(stm); + return CUBEB_ERROR_INVALID_FORMAT; + } + +- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size); ++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->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); +@@ -937,12 +1043,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_any(stm->pcm, hw_params); ++ rv = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params); + if (rv < 0) { + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_get_channels_max(hw_params, max_channels); ++ rv = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels); + if (rv < 0) { + return CUBEB_ERROR; + } +@@ -962,34 +1068,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. */ +- rv = snd_pcm_open(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); ++ rv = WRAP(snd_pcm_open)(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); + if (rv < 0) { + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_any(pcm, hw_params); ++ rv = WRAP(snd_pcm_hw_params_any)(pcm, hw_params); + if (rv < 0) { +- snd_pcm_close(pcm); ++ WRAP(snd_pcm_close)(pcm); + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_get_rate(hw_params, rate, &dir); ++ rv = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir); + if (rv >= 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; + +- rv = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL); ++ rv = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL); + if (rv < 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 ++++ mozilla/media/libcubeb/src/cubeb_oss.c +@@ -0,0 +1,399 @@ ++/* ++ * 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 ++#elif defined(HAVE_LINUX_SOUNDCARD_H) ++#include ++#else ++#include ++#endif ++#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, 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_stream_params 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; ++ ++ 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 = stream_params; ++ stream->volume = 1.0; ++ stream->panning = 0.0; ++ ++ oss_try_set_latency(stream, latency); ++ ++ stream->floating = 0; ++ SET(SNDCTL_DSP_CHANNELS, stream_params.channels); ++ SET(SNDCTL_DSP_SPEED, stream_params.rate); ++ switch (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 ++}; +diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build +index 8b7a0dd..31212ce 100644 +--- mozilla/media/libcubeb/src/moz.build ++++ mozilla/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 toolkit/library/libxul.mk toolkit/library/libxul.mk +index e191f13..4fb268a 100644 +--- mozilla/toolkit/library/libxul.mk ++++ mozilla/toolkit/library/libxul.mk +@@ -146,6 +146,10 @@ OS_LIBS += $(call EXPAND_LIBNAME,secur32 + endif + endif + ++ifdef MOZ_OSS ++EXTRA_DSO_LDOPTS += $(MOZ_OSS_LIBS) ++endif ++ + ifdef MOZ_ALSA + EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS) + endif Property changes on: branches/2014Q4/mail/thunderbird/files/patch-bug1021761 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/mail/thunderbird/files/patch-bug1073709 =================================================================== --- branches/2014Q4/mail/thunderbird/files/patch-bug1073709 (nonexistent) +++ branches/2014Q4/mail/thunderbird/files/patch-bug1073709 (revision 370969) @@ -0,0 +1,18 @@ +diff --git mfbt/Atomics.h mfbt/Atomics.h +index 495a9d3..c7f7601 100644 +--- mozilla/mfbt/Atomics.h ++++ mozilla/mfbt/Atomics.h +@@ -34,10 +34,12 @@ + * loose typing of the atomic builtins. GCC 4.5 and 4.6 lacks inline + * definitions for unspecialized std::atomic and causes linking errors. + * Therefore, we require at least 4.7.0 for using libstdc++. ++ * ++ * libc++ is only functional with clang. + */ + # if MOZ_USING_LIBSTDCXX && MOZ_LIBSTDCXX_VERSION_AT_LEAST(4, 7, 0) + # define MOZ_HAVE_CXX11_ATOMICS +-# elif MOZ_USING_LIBCXX ++# elif MOZ_USING_LIBCXX && defined(__clang__) + # define MOZ_HAVE_CXX11_ATOMICS + # endif + /* Property changes on: branches/2014Q4/mail/thunderbird/files/patch-bug1073709 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/mail/thunderbird/files/patch-bug1076983 =================================================================== --- branches/2014Q4/mail/thunderbird/files/patch-bug1076983 (nonexistent) +++ branches/2014Q4/mail/thunderbird/files/patch-bug1076983 (revision 370969) @@ -0,0 +1,45 @@ +commit e10ee74 +Author: Martin Thomson +Date: Tue Oct 14 17:17:35 2014 -0700 + + Bug 1076983 - Disabling SSL 3.0 with pref +--- + netwerk/base/public/security-prefs.js | 2 +- + security/manager/ssl/src/nsNSSComponent.cpp | 7 +++---- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git netwerk/base/public/security-prefs.js netwerk/base/public/security-prefs.js +index 352552e..c12731b 100644 +--- mozilla/netwerk/base/public/security-prefs.js ++++ mozilla/netwerk/base/public/security-prefs.js +@@ -2,7 +2,7 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +-pref("security.tls.version.min", 0); ++pref("security.tls.version.min", 1); + pref("security.tls.version.max", 3); + + pref("security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref", false); +diff --git security/manager/ssl/src/nsNSSComponent.cpp security/manager/ssl/src/nsNSSComponent.cpp +index 8cab67b..772959d 100644 +--- mozilla/security/manager/ssl/src/nsNSSComponent.cpp ++++ mozilla/security/manager/ssl/src/nsNSSComponent.cpp +@@ -829,14 +829,13 @@ void nsNSSComponent::setValidationOptions(bool isInitialSetting, + mDefaultCertVerifier = new SharedCertVerifier(odc, osc, ogc, pinningMode); + } + +-// Enable the TLS versions given in the prefs, defaulting to SSL 3.0 (min +-// version) and TLS 1.2 (max version) when the prefs aren't set or set to +-// invalid values. ++// Enable the TLS versions given in the prefs, defaulting to TLS 1.0 (min) and ++// TLS 1.2 (max) when the prefs aren't set or set to invalid values. + nsresult + nsNSSComponent::setEnabledTLSVersions() + { + // keep these values in sync with security-prefs.js +- static const int32_t PSM_DEFAULT_MIN_TLS_VERSION = 0; ++ static const int32_t PSM_DEFAULT_MIN_TLS_VERSION = 1; + static const int32_t PSM_DEFAULT_MAX_TLS_VERSION = 3; + + int32_t minVersion = Preferences::GetInt("security.tls.version.min", Property changes on: branches/2014Q4/mail/thunderbird/files/patch-bug1076983 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/mail/thunderbird-i18n/Makefile =================================================================== --- branches/2014Q4/mail/thunderbird-i18n/Makefile (revision 370968) +++ branches/2014Q4/mail/thunderbird-i18n/Makefile (revision 370969) @@ -1,91 +1,84 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= thunderbird-i18n -PORTVERSION= 31.1.2 +PORTVERSION= 31.2.0 CATEGORIES= mail news net-im MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/linux-i686/xpi PKGNAMEPREFIX= DISTFILES= ${THUNDERBIRD_I18N_:S/$/.xpi/} DIST_SUBDIR= xpi/${DISTNAME} MAINTAINER= gecko@FreeBSD.org COMMENT= Localized interface for Thunderbird -USES= gecko:thunderbird zip +USES= gecko:thunderbird,build zip USE_XPI= thunderbird NO_BUILD= yes NO_ARCH= yes USE_SUBMAKE= yes WDIR= langpack-*@thunderbird.mozilla.org XPI_DISTNAMES= ${THUNDERBIRD_I18N_} PLIST?= ${WRKDIR}/plist -PLISTD?= ${WRKDIR}/plist_dirs PLISTF?= ${WRKDIR}/plist_files .include "${.CURDIR}/Makefile.option" .include -# make sure that thunderbird always gets upgraded before this port -BUILD_DEPENDS= thunderbird>=0:${PORTSDIR}/mail/thunderbird - .ifndef WITHOUT_SWITCHER RUN_DEPENDS+= xpi-quick-locale-switcher>=0:${PORTSDIR}/www/xpi-quick-locale-switcher .endif .include "${.CURDIR}/Makefile.lang" THUNDERBIRD_I18N_?= ${THUNDERBIRD_I18N} .for dist in ${XPI_DISTNAMES} XPI_ID_${dist}= langpack-${dist}@thunderbird.mozilla.org .endfor do-extract: @${RM} -rf ${WRKDIR} @${MKDIR} ${WRKDIR} ${WRKSRC} @for lang in ${THUNDERBIRD_I18N_}; do \ if ! (${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/$$lang.xpi -d ${WRKSRC}/langpack-$$lang@thunderbird.mozilla.org);\ then \ exit 1; \ fi; \ cd ${WRKSRC}/langpack-$$lang@thunderbird.mozilla.org/; \ ${FIND} -H -s * ! -type d | \ - ${SED} -e "s|^|lib/xpi/langpack-$$lang@thunderbird.mozilla.org/|" >> ${PLISTF} && \ - ${FIND} -d * -type d | \ - ${SED} -e "s|^|@dirrm lib/xpi/langpack-$$lang@thunderbird.mozilla.org/|" >> ${PLISTD}; \ + ${SED} -e "s|^|lib/xpi/langpack-$$lang@thunderbird.mozilla.org/|" >> ${PLISTF}; \ done ${CAT} ${PLISTF} | ${SORT} >> ${PLIST} - ${CAT} ${PLISTD} | ${SORT} -r >> ${PLIST} do-install: @${MKDIR} ${STAGEDIR}${XPI_LIBDIR} ${XPI_SLDIRS_ALL:S,^,${STAGEDIR},} 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} ${XPI_LIBDIR}; { ${RM} -f $$_dir/${WDIR} ; }' ${_A} post-patch: ${FIND} ${WRKSRC} -name install.rdf -print0 | \ ${XARGS} -0L1 ${REINPLACE_CMD} -i '' -e '/ Index: branches/2014Q4/mail/thunderbird-i18n/distinfo =================================================================== --- branches/2014Q4/mail/thunderbird-i18n/distinfo (revision 370968) +++ branches/2014Q4/mail/thunderbird-i18n/distinfo (revision 370969) @@ -1,110 +1,110 @@ -SHA256 (xpi/thunderbird-i18n-31.1.2/ar.xpi) = d7f7f5fa42bc7dbeeb67ea312cd1390f9daf38cf22db2d29acebcd1d3e74d1fa -SIZE (xpi/thunderbird-i18n-31.1.2/ar.xpi) = 472810 -SHA256 (xpi/thunderbird-i18n-31.1.2/ast.xpi) = 635422fbc96177f43cb01c292a3b0a06ceb3040355d00880a6ddeffb4dcfeb4a -SIZE (xpi/thunderbird-i18n-31.1.2/ast.xpi) = 393048 -SHA256 (xpi/thunderbird-i18n-31.1.2/be.xpi) = a8a48f464b3a44a5724096995431606b740af3247bb325f47a63c065f626c1d7 -SIZE (xpi/thunderbird-i18n-31.1.2/be.xpi) = 427488 -SHA256 (xpi/thunderbird-i18n-31.1.2/bg.xpi) = e5dd2c1c5a97cc90514a1d0e0852e8579e625d689964b198036a6ac6f33e446c -SIZE (xpi/thunderbird-i18n-31.1.2/bg.xpi) = 493735 -SHA256 (xpi/thunderbird-i18n-31.1.2/bn-BD.xpi) = 461fac71d5d8a3910d68740def12b2235374b39f5cfa01ab912021e295cbd3c2 -SIZE (xpi/thunderbird-i18n-31.1.2/bn-BD.xpi) = 555612 -SHA256 (xpi/thunderbird-i18n-31.1.2/br.xpi) = 3c1d248c517de97d559a85f127e6871afd1a8c245cb4999be80626a258bdbb49 -SIZE (xpi/thunderbird-i18n-31.1.2/br.xpi) = 441444 -SHA256 (xpi/thunderbird-i18n-31.1.2/ca.xpi) = fff999721e7b388880a7a9c64d73add479e2a2f9e447b8d4e506a318efde9069 -SIZE (xpi/thunderbird-i18n-31.1.2/ca.xpi) = 441712 -SHA256 (xpi/thunderbird-i18n-31.1.2/cs.xpi) = 40c16d650c2f48ea945daca989f24cc293343794c45c5cde3f7ffe1305b8f159 -SIZE (xpi/thunderbird-i18n-31.1.2/cs.xpi) = 444701 -SHA256 (xpi/thunderbird-i18n-31.1.2/da.xpi) = fdfd890e09e23004cc1ba4c0df38648cd74f1c8d9d8d336c15a2aee8f75d98fc -SIZE (xpi/thunderbird-i18n-31.1.2/da.xpi) = 422052 -SHA256 (xpi/thunderbird-i18n-31.1.2/de.xpi) = da60f2a84ca8cb6b4e15393046ae43adac368dac35327f04bf89d31e8e0f829e -SIZE (xpi/thunderbird-i18n-31.1.2/de.xpi) = 424665 -SHA256 (xpi/thunderbird-i18n-31.1.2/el.xpi) = 975fdb6134fe5436d0459eb89dc6e8ae3d8829f2b8f7b5a3387011215184cef5 -SIZE (xpi/thunderbird-i18n-31.1.2/el.xpi) = 484855 -SHA256 (xpi/thunderbird-i18n-31.1.2/en-GB.xpi) = 87ac86fac2b341286e9789c1037404588813bb858e9cd718f7de5e401ddade6e -SIZE (xpi/thunderbird-i18n-31.1.2/en-GB.xpi) = 412515 -SHA256 (xpi/thunderbird-i18n-31.1.2/en-US.xpi) = f96739de83f760ee65727e9a68ad59e13cc60d2272b6a03bc80b5153fa0a365a -SIZE (xpi/thunderbird-i18n-31.1.2/en-US.xpi) = 413660 -SHA256 (xpi/thunderbird-i18n-31.1.2/es-AR.xpi) = d50ef569c6f74ceac8d9eb128cd98c3b2bb0af4853d1bf7a26265d5f31a8d452 -SIZE (xpi/thunderbird-i18n-31.1.2/es-AR.xpi) = 438530 -SHA256 (xpi/thunderbird-i18n-31.1.2/es-ES.xpi) = 6a9ec42a0f90b1d59fb61e47e533b5c79df41e13d8452d2fba5e5a649527cffe -SIZE (xpi/thunderbird-i18n-31.1.2/es-ES.xpi) = 374979 -SHA256 (xpi/thunderbird-i18n-31.1.2/et.xpi) = 7763519e3c74f37afa026a8fe7214a2b99e9d0f86391031eaa66869e3ef74870 -SIZE (xpi/thunderbird-i18n-31.1.2/et.xpi) = 434364 -SHA256 (xpi/thunderbird-i18n-31.1.2/eu.xpi) = 233ce00a457754f2454f26e618cc01f1736671a717a96b63cc7bea3d72193172 -SIZE (xpi/thunderbird-i18n-31.1.2/eu.xpi) = 431448 -SHA256 (xpi/thunderbird-i18n-31.1.2/fi.xpi) = 833ce0403ed46f87cb2730d2a0a4f3cdaa383295f84e7beeb90d6e48b2a0ddf7 -SIZE (xpi/thunderbird-i18n-31.1.2/fi.xpi) = 435632 -SHA256 (xpi/thunderbird-i18n-31.1.2/fr.xpi) = daf99b99c3fa73679801750bfbd33ac007edc05621ad663e4e26ddfee17b5dd2 -SIZE (xpi/thunderbird-i18n-31.1.2/fr.xpi) = 444143 -SHA256 (xpi/thunderbird-i18n-31.1.2/fy-NL.xpi) = f775a2236591a18d84fcf36e5b5a5d1bb8a5864b91faa29c2b39e0bee599ff0e -SIZE (xpi/thunderbird-i18n-31.1.2/fy-NL.xpi) = 438544 -SHA256 (xpi/thunderbird-i18n-31.1.2/ga-IE.xpi) = 6eed7b3ac1e4f9ac89b138041c2a10d7fae0ef5492035397bfafe771952526db -SIZE (xpi/thunderbird-i18n-31.1.2/ga-IE.xpi) = 449361 -SHA256 (xpi/thunderbird-i18n-31.1.2/gd.xpi) = 0576fb35d74a20624581b4fe53ef916032e77e3c7bfd9a7b86fdf687a413c923 -SIZE (xpi/thunderbird-i18n-31.1.2/gd.xpi) = 453171 -SHA256 (xpi/thunderbird-i18n-31.1.2/gl.xpi) = 274c45fe7bffe038a9c846359e99847193672e7c4dcec4c47e65720a8d16e3c0 -SIZE (xpi/thunderbird-i18n-31.1.2/gl.xpi) = 446787 -SHA256 (xpi/thunderbird-i18n-31.1.2/he.xpi) = 784505dd220387ff2b569118380957882feabf61366a9cde1e794e4fc08414f7 -SIZE (xpi/thunderbird-i18n-31.1.2/he.xpi) = 476111 -SHA256 (xpi/thunderbird-i18n-31.1.2/hr.xpi) = 4908835dafeb9bef43f4fa294f254bcd64c611c40f1aa35716730f179a3af554 -SIZE (xpi/thunderbird-i18n-31.1.2/hr.xpi) = 436982 -SHA256 (xpi/thunderbird-i18n-31.1.2/hu.xpi) = 210f50f948c726744ffdfa33cdb1fd9f4434698bd6c131257984f2e2cdcc1ecc -SIZE (xpi/thunderbird-i18n-31.1.2/hu.xpi) = 454541 -SHA256 (xpi/thunderbird-i18n-31.1.2/hy-AM.xpi) = 8acd553aacfdf9f4ed66fdd50454f473146fa1762309ff48104a941e62cff995 -SIZE (xpi/thunderbird-i18n-31.1.2/hy-AM.xpi) = 492767 -SHA256 (xpi/thunderbird-i18n-31.1.2/id.xpi) = 8388260bdb9d7d715e7cfdfe21826e5d390bcb1f48d1e649d82d0142f360d42d -SIZE (xpi/thunderbird-i18n-31.1.2/id.xpi) = 475875 -SHA256 (xpi/thunderbird-i18n-31.1.2/is.xpi) = cebe06ca5e72448ffe8e5d97c61b2be3a898b1ceb9726f9a0bfa7cec714f8eb2 -SIZE (xpi/thunderbird-i18n-31.1.2/is.xpi) = 437959 -SHA256 (xpi/thunderbird-i18n-31.1.2/it.xpi) = d5bab57141fbae37f3a983ed85983d91fff71f005da1dcf89682563c92baf3f3 -SIZE (xpi/thunderbird-i18n-31.1.2/it.xpi) = 368000 -SHA256 (xpi/thunderbird-i18n-31.1.2/ja.xpi) = 06a62d4ef79c2a7006b15fae6882b7919b10843c2b93cd23decf9e4d07151555 -SIZE (xpi/thunderbird-i18n-31.1.2/ja.xpi) = 489267 -SHA256 (xpi/thunderbird-i18n-31.1.2/ko.xpi) = fb40e186e31bc836a8f18be6df4dc654b793a782f1b79f4b143ff3830781dca2 -SIZE (xpi/thunderbird-i18n-31.1.2/ko.xpi) = 448920 -SHA256 (xpi/thunderbird-i18n-31.1.2/lt.xpi) = 80dc6b4ba4fef803776e3634682cded4ae4df1a35771d30ed0c2a1f4af6a6e30 -SIZE (xpi/thunderbird-i18n-31.1.2/lt.xpi) = 457812 -SHA256 (xpi/thunderbird-i18n-31.1.2/nb-NO.xpi) = be32cfc7192a3836f48c11022ec58d28091f568f1bf2fc25e1d7667ac6222603 -SIZE (xpi/thunderbird-i18n-31.1.2/nb-NO.xpi) = 430941 -SHA256 (xpi/thunderbird-i18n-31.1.2/nl.xpi) = 0607fe516735fea3763154f63bc2212f1b76ea3cfae26f1748e7d3f05b5a1301 -SIZE (xpi/thunderbird-i18n-31.1.2/nl.xpi) = 431887 -SHA256 (xpi/thunderbird-i18n-31.1.2/nn-NO.xpi) = 31782ee5743442de756d7eb6dc601ec5843af0d6f45254f946fedca23dfbf9f5 -SIZE (xpi/thunderbird-i18n-31.1.2/nn-NO.xpi) = 433198 -SHA256 (xpi/thunderbird-i18n-31.1.2/pa-IN.xpi) = 4f3849fb31c8fe4f65869b35595621df22d2491d08df259d9fdb14ee89b9df04 -SIZE (xpi/thunderbird-i18n-31.1.2/pa-IN.xpi) = 525323 -SHA256 (xpi/thunderbird-i18n-31.1.2/pl.xpi) = ea31936122f377d83c6d059435c28c3e990cadd6d1332d97ac3a7bb196ad085b -SIZE (xpi/thunderbird-i18n-31.1.2/pl.xpi) = 410872 -SHA256 (xpi/thunderbird-i18n-31.1.2/pt-BR.xpi) = 74501df72d4747944fafafde1fedf2214c86c4f4ba594d276f5efec437f14a28 -SIZE (xpi/thunderbird-i18n-31.1.2/pt-BR.xpi) = 450477 -SHA256 (xpi/thunderbird-i18n-31.1.2/pt-PT.xpi) = 43f0d1a2a6187e3f01e75c091c599341b0895e71e3c76b7e6cd040fd95d69482 -SIZE (xpi/thunderbird-i18n-31.1.2/pt-PT.xpi) = 439603 -SHA256 (xpi/thunderbird-i18n-31.1.2/rm.xpi) = 5c8c153c5f36e7237605fcbaa2d66df0e72b7c6a20f793b9113c3e16c87240b8 -SIZE (xpi/thunderbird-i18n-31.1.2/rm.xpi) = 439185 -SHA256 (xpi/thunderbird-i18n-31.1.2/ro.xpi) = 381a1f57aa7e3646dcd29aa28eec1bd951cff1e378d5fe795a5e87556fd286ae -SIZE (xpi/thunderbird-i18n-31.1.2/ro.xpi) = 479746 -SHA256 (xpi/thunderbird-i18n-31.1.2/ru.xpi) = 667ffecf4065352a0e6b32ed5d4535dc9758167cb431b01b13bac9d4027719e5 -SIZE (xpi/thunderbird-i18n-31.1.2/ru.xpi) = 436156 -SHA256 (xpi/thunderbird-i18n-31.1.2/si.xpi) = 5bb7054dc79e73852f39464b3cabeb28ef45dd814a2fbef699fd8ac0d28cfa15 -SIZE (xpi/thunderbird-i18n-31.1.2/si.xpi) = 528812 -SHA256 (xpi/thunderbird-i18n-31.1.2/sk.xpi) = e8f13c479e58e7858ef82864927bb48d013d3f1b7c04b26b525504cb475ba02e -SIZE (xpi/thunderbird-i18n-31.1.2/sk.xpi) = 452995 -SHA256 (xpi/thunderbird-i18n-31.1.2/sl.xpi) = 4e2c3392ae516d34f2568a6de607e86e641eda8e1dd211420ab9c569354757b2 -SIZE (xpi/thunderbird-i18n-31.1.2/sl.xpi) = 433874 -SHA256 (xpi/thunderbird-i18n-31.1.2/sq.xpi) = f38d505b006a209c28fbe2497e2840b1402f15659ab8850b96e401b37439aa43 -SIZE (xpi/thunderbird-i18n-31.1.2/sq.xpi) = 454695 -SHA256 (xpi/thunderbird-i18n-31.1.2/sr.xpi) = 0ea7ab963f7316a8c99c4ede0d2604532b8e9c640d1c1ad17b5aef52410efb6a -SIZE (xpi/thunderbird-i18n-31.1.2/sr.xpi) = 537335 -SHA256 (xpi/thunderbird-i18n-31.1.2/sv-SE.xpi) = c2be7fa0cc149411afa6cd697fc5f9c5db8e8dc94eb361e9005a7c85207812ad -SIZE (xpi/thunderbird-i18n-31.1.2/sv-SE.xpi) = 436105 -SHA256 (xpi/thunderbird-i18n-31.1.2/ta-LK.xpi) = 2990c01eccc33ba92e4bd4a5b6bc6a862a3d4ba038187193862aee20590f222f -SIZE (xpi/thunderbird-i18n-31.1.2/ta-LK.xpi) = 553508 -SHA256 (xpi/thunderbird-i18n-31.1.2/tr.xpi) = 7c28f5337d0f5265ffc264e06b7f18b733358ba040d36cccc14586e4b2b212d5 -SIZE (xpi/thunderbird-i18n-31.1.2/tr.xpi) = 457359 -SHA256 (xpi/thunderbird-i18n-31.1.2/uk.xpi) = 711e037fe115f63b560e59ca33f26fe89b021587d3ade4706df0fe5c4822af16 -SIZE (xpi/thunderbird-i18n-31.1.2/uk.xpi) = 499656 -SHA256 (xpi/thunderbird-i18n-31.1.2/vi.xpi) = 9889f4d9ebf9d298b7a5076879bf34e71dd00665a6be69ff2331df49fdc0b620 -SIZE (xpi/thunderbird-i18n-31.1.2/vi.xpi) = 513834 -SHA256 (xpi/thunderbird-i18n-31.1.2/zh-CN.xpi) = b29c35c9b4de9678f8f15d5910b23b842553b80763f41f2340e823a03b44700e -SIZE (xpi/thunderbird-i18n-31.1.2/zh-CN.xpi) = 462667 -SHA256 (xpi/thunderbird-i18n-31.1.2/zh-TW.xpi) = 9c76eae686d8a72ceb11a24ad155521aa02ee65ade6a068a4dfe6df5f7ba4698 -SIZE (xpi/thunderbird-i18n-31.1.2/zh-TW.xpi) = 463408 +SHA256 (xpi/thunderbird-i18n-31.2.0/ar.xpi) = de2222b5edbe334c323086d2f4742b3d89abf53ea9d04e7b145b56e06203490a +SIZE (xpi/thunderbird-i18n-31.2.0/ar.xpi) = 472812 +SHA256 (xpi/thunderbird-i18n-31.2.0/ast.xpi) = 5d8a3d7cf8a8777595d9427f9ef9fa50af9e42d3c02fb0eaf23bc98ee5fc673d +SIZE (xpi/thunderbird-i18n-31.2.0/ast.xpi) = 393049 +SHA256 (xpi/thunderbird-i18n-31.2.0/be.xpi) = f8228331079c95d98aff60c49039b41bc494c10074b19d92850d0abc88b94da2 +SIZE (xpi/thunderbird-i18n-31.2.0/be.xpi) = 427488 +SHA256 (xpi/thunderbird-i18n-31.2.0/bg.xpi) = 4c7ec26c111e810476f8308a2b65c1fd754c9a970eec04440a186cab9487dd5b +SIZE (xpi/thunderbird-i18n-31.2.0/bg.xpi) = 493734 +SHA256 (xpi/thunderbird-i18n-31.2.0/bn-BD.xpi) = 41cd06883895d4813f140aeb2c9592ded5c1971e035373a79ff9484dc731e8de +SIZE (xpi/thunderbird-i18n-31.2.0/bn-BD.xpi) = 555613 +SHA256 (xpi/thunderbird-i18n-31.2.0/br.xpi) = a4fbe64d4b4e2c4a0c92a1679459b774b6f19838203661c97bfdd4bd132e0918 +SIZE (xpi/thunderbird-i18n-31.2.0/br.xpi) = 441444 +SHA256 (xpi/thunderbird-i18n-31.2.0/ca.xpi) = ff37b69e48d8fe429a981bce805cf6470f21ccfb9718762aa49fbe16246e0e6a +SIZE (xpi/thunderbird-i18n-31.2.0/ca.xpi) = 441713 +SHA256 (xpi/thunderbird-i18n-31.2.0/cs.xpi) = 11c4d4d9aa51b4db454ea0aa3164d62ed17c6b108be18b28bf2eacf626546737 +SIZE (xpi/thunderbird-i18n-31.2.0/cs.xpi) = 444701 +SHA256 (xpi/thunderbird-i18n-31.2.0/da.xpi) = c11a949b9e20375542b72dfd631091db3ae29040cf32f15cf661c141b72d9503 +SIZE (xpi/thunderbird-i18n-31.2.0/da.xpi) = 422051 +SHA256 (xpi/thunderbird-i18n-31.2.0/de.xpi) = c5a529579a4884a9efd7dade99fda51fb17f1918e68439719c4d4cb9f303d908 +SIZE (xpi/thunderbird-i18n-31.2.0/de.xpi) = 424665 +SHA256 (xpi/thunderbird-i18n-31.2.0/el.xpi) = 3a60bd9b6d3806794ae7a45f5ed51ddaed0cc7d3d4eefb32e1a048e92e3bd617 +SIZE (xpi/thunderbird-i18n-31.2.0/el.xpi) = 484855 +SHA256 (xpi/thunderbird-i18n-31.2.0/en-GB.xpi) = 2d96c8962746fe12c42d6d161d0993c317344b6ce236689a33554f432832922b +SIZE (xpi/thunderbird-i18n-31.2.0/en-GB.xpi) = 412515 +SHA256 (xpi/thunderbird-i18n-31.2.0/en-US.xpi) = b3ce584db1780e96d42284945d5accde989ee747bbe5d56fa26df500a4f8655d +SIZE (xpi/thunderbird-i18n-31.2.0/en-US.xpi) = 413660 +SHA256 (xpi/thunderbird-i18n-31.2.0/es-AR.xpi) = 24b5ce7d75676056103ae24c589b19e707c94ad1e79dc5cb8d9aa85abeef40a2 +SIZE (xpi/thunderbird-i18n-31.2.0/es-AR.xpi) = 438531 +SHA256 (xpi/thunderbird-i18n-31.2.0/es-ES.xpi) = 2d879a455caac1fb21cf7f4cbedd0a685e8a13c4048d9182c0027ee7b947f398 +SIZE (xpi/thunderbird-i18n-31.2.0/es-ES.xpi) = 374979 +SHA256 (xpi/thunderbird-i18n-31.2.0/et.xpi) = 1f7a2196700782542290c7c28d0da7c6f9e958f8ff9c2e00318c4bfe4fa26f97 +SIZE (xpi/thunderbird-i18n-31.2.0/et.xpi) = 434364 +SHA256 (xpi/thunderbird-i18n-31.2.0/eu.xpi) = 006bc0dad91e8ed9d5b1b0b812171a147bc34fb5b8159f5b990a14b34e426941 +SIZE (xpi/thunderbird-i18n-31.2.0/eu.xpi) = 431448 +SHA256 (xpi/thunderbird-i18n-31.2.0/fi.xpi) = 0ee12f069f1ca5e36873b5ed7ddf42539358dbee321dd2c60c9d86c0b099ad87 +SIZE (xpi/thunderbird-i18n-31.2.0/fi.xpi) = 435632 +SHA256 (xpi/thunderbird-i18n-31.2.0/fr.xpi) = db6cc05b0c2ba94130cf065e4ee9c0440c5583bed557e46453a1cbc0df3c2cb4 +SIZE (xpi/thunderbird-i18n-31.2.0/fr.xpi) = 444144 +SHA256 (xpi/thunderbird-i18n-31.2.0/fy-NL.xpi) = 041ade3e98acdcb4ef5589aea49c9c8cd49730fd117d7fc0f45c4a24db9235d9 +SIZE (xpi/thunderbird-i18n-31.2.0/fy-NL.xpi) = 438545 +SHA256 (xpi/thunderbird-i18n-31.2.0/ga-IE.xpi) = f25ca1b71b9ab326a08a74492de3bf7ab276751e79ac3bba97e017b6d63b35a0 +SIZE (xpi/thunderbird-i18n-31.2.0/ga-IE.xpi) = 449362 +SHA256 (xpi/thunderbird-i18n-31.2.0/gd.xpi) = f520c4ffff9903ae8277f59c90e3d0a8f7c3dbdfcf08f7a09eed5e52be28ab75 +SIZE (xpi/thunderbird-i18n-31.2.0/gd.xpi) = 453171 +SHA256 (xpi/thunderbird-i18n-31.2.0/gl.xpi) = 49e151a0e9fb797534095177a36c8323f4b21af7c3b0cd119cddb5c8c3991a38 +SIZE (xpi/thunderbird-i18n-31.2.0/gl.xpi) = 446788 +SHA256 (xpi/thunderbird-i18n-31.2.0/he.xpi) = db3ec6a406074229b5d470147ed18c195d1c83ff002c9c6692e5a974fce68109 +SIZE (xpi/thunderbird-i18n-31.2.0/he.xpi) = 476111 +SHA256 (xpi/thunderbird-i18n-31.2.0/hr.xpi) = a79194cb6a188515b02591bb4d10aab2f0a4f51ad7d9de880e5f97b0d824b6bb +SIZE (xpi/thunderbird-i18n-31.2.0/hr.xpi) = 436980 +SHA256 (xpi/thunderbird-i18n-31.2.0/hu.xpi) = 57ee1d724aed1a7afc67fcc58905f74c2d5694602ccc54218266a608611e90b8 +SIZE (xpi/thunderbird-i18n-31.2.0/hu.xpi) = 454542 +SHA256 (xpi/thunderbird-i18n-31.2.0/hy-AM.xpi) = 2626af0ff4cd8023c599abb158a5f61e4e507112f1c7ccf470bef16896a3224c +SIZE (xpi/thunderbird-i18n-31.2.0/hy-AM.xpi) = 492765 +SHA256 (xpi/thunderbird-i18n-31.2.0/id.xpi) = a053c4935b4088c8fbb0850a73b4177ae854462f8ad37d130581879969fad498 +SIZE (xpi/thunderbird-i18n-31.2.0/id.xpi) = 475876 +SHA256 (xpi/thunderbird-i18n-31.2.0/is.xpi) = 63a39a88a75fabc271e09f8a8bed08388a1c3aa1fbb6b8a3e2946f7ba3ba008d +SIZE (xpi/thunderbird-i18n-31.2.0/is.xpi) = 437959 +SHA256 (xpi/thunderbird-i18n-31.2.0/it.xpi) = b7a9c9454d038bda5138bbf73c30af650d79aa5de017c3d4eefd039cbfa6ca27 +SIZE (xpi/thunderbird-i18n-31.2.0/it.xpi) = 368001 +SHA256 (xpi/thunderbird-i18n-31.2.0/ja.xpi) = 128c6413771d621a80840f26d9248f52ca6d16456e032f2f754058dca233eab3 +SIZE (xpi/thunderbird-i18n-31.2.0/ja.xpi) = 489267 +SHA256 (xpi/thunderbird-i18n-31.2.0/ko.xpi) = 949d6bbc2c35c4fa2751a4efdd21d253f60c30e7ff975fd4b5806d89d1737a3c +SIZE (xpi/thunderbird-i18n-31.2.0/ko.xpi) = 448920 +SHA256 (xpi/thunderbird-i18n-31.2.0/lt.xpi) = c6eb3433657dab7ebb01cbb86d0024aa49598a4fca61f500ed9e44c4e74fdc95 +SIZE (xpi/thunderbird-i18n-31.2.0/lt.xpi) = 456351 +SHA256 (xpi/thunderbird-i18n-31.2.0/nb-NO.xpi) = 2779fff656aaebaa852aa79c0685a801159a5d5b296bc239a871e0ca3b77558f +SIZE (xpi/thunderbird-i18n-31.2.0/nb-NO.xpi) = 430941 +SHA256 (xpi/thunderbird-i18n-31.2.0/nl.xpi) = 21da7b7403d3c3746ff560a541dc87fdce9537fd14bfaee3904e936c426d4400 +SIZE (xpi/thunderbird-i18n-31.2.0/nl.xpi) = 431888 +SHA256 (xpi/thunderbird-i18n-31.2.0/nn-NO.xpi) = c79700f36907cde8d2a5788b121a7d0118f8b2471c72eda8f6aaf41f6049293b +SIZE (xpi/thunderbird-i18n-31.2.0/nn-NO.xpi) = 433198 +SHA256 (xpi/thunderbird-i18n-31.2.0/pa-IN.xpi) = 899c8f1dc900280a44869bd5c4be649f30186c361b717a9e996d269c744fce7e +SIZE (xpi/thunderbird-i18n-31.2.0/pa-IN.xpi) = 525323 +SHA256 (xpi/thunderbird-i18n-31.2.0/pl.xpi) = 489f30d45340cc7fdfc3a84d7459f464404ad5abd4cc72d4091c1e1c167f2533 +SIZE (xpi/thunderbird-i18n-31.2.0/pl.xpi) = 410872 +SHA256 (xpi/thunderbird-i18n-31.2.0/pt-BR.xpi) = 2459b15a8277d9c636f7380201f9636a98f7be66e695567bb545af21bed3f581 +SIZE (xpi/thunderbird-i18n-31.2.0/pt-BR.xpi) = 450477 +SHA256 (xpi/thunderbird-i18n-31.2.0/pt-PT.xpi) = f44efe77338e3bac23eb4e266a22e7e21c977db0b1740e2e2bb8978cb2724d75 +SIZE (xpi/thunderbird-i18n-31.2.0/pt-PT.xpi) = 439604 +SHA256 (xpi/thunderbird-i18n-31.2.0/rm.xpi) = b0f7e929ebe3e1c88b304e7df9cc3f5fc185effe1666bf5bebaab5874d1706d7 +SIZE (xpi/thunderbird-i18n-31.2.0/rm.xpi) = 439185 +SHA256 (xpi/thunderbird-i18n-31.2.0/ro.xpi) = 4c60b7a9233ed19b79f38f2c1acdd3c3c421e83866986720d36bc2dd5852c5ab +SIZE (xpi/thunderbird-i18n-31.2.0/ro.xpi) = 479747 +SHA256 (xpi/thunderbird-i18n-31.2.0/ru.xpi) = 8098a2085dc282b70d5f2ec44a51676086d7e930c45056b8be8225529c0a93bd +SIZE (xpi/thunderbird-i18n-31.2.0/ru.xpi) = 436156 +SHA256 (xpi/thunderbird-i18n-31.2.0/si.xpi) = 07a599cddff30ebdb245b03cf7fb3f10fd7dab77c7d5f72043a348147d9561b1 +SIZE (xpi/thunderbird-i18n-31.2.0/si.xpi) = 528812 +SHA256 (xpi/thunderbird-i18n-31.2.0/sk.xpi) = c2a10018d3a697735368112b957f84bfb1033567a04897e744e1a4d25cb91e1b +SIZE (xpi/thunderbird-i18n-31.2.0/sk.xpi) = 452995 +SHA256 (xpi/thunderbird-i18n-31.2.0/sl.xpi) = 03391be8d12577f9e733e137818fdda4f4f28724ddbd4d9548e4ad26da94296a +SIZE (xpi/thunderbird-i18n-31.2.0/sl.xpi) = 433874 +SHA256 (xpi/thunderbird-i18n-31.2.0/sq.xpi) = be5ba55ce94531b3dc84056e0433f78d341fe3b4f8ba5c68f67795aca44c8490 +SIZE (xpi/thunderbird-i18n-31.2.0/sq.xpi) = 454694 +SHA256 (xpi/thunderbird-i18n-31.2.0/sr.xpi) = e8f23cffa3b76f867dd0209f1f65a2b55d3f80245dbba9946b0f1993c1759791 +SIZE (xpi/thunderbird-i18n-31.2.0/sr.xpi) = 537335 +SHA256 (xpi/thunderbird-i18n-31.2.0/sv-SE.xpi) = 1760e8023cb00f33111279f25b60604613b682385aa735c2286fdd3d909853e2 +SIZE (xpi/thunderbird-i18n-31.2.0/sv-SE.xpi) = 436105 +SHA256 (xpi/thunderbird-i18n-31.2.0/ta-LK.xpi) = 1fe61ab35f687cd2389296783b7896b191bcc3ce02f7229404e1adc46360fe0e +SIZE (xpi/thunderbird-i18n-31.2.0/ta-LK.xpi) = 553508 +SHA256 (xpi/thunderbird-i18n-31.2.0/tr.xpi) = a44cfd98890ab255a21b54991de71eca5f06a17e5cf825c01f8b7874ff2b2edd +SIZE (xpi/thunderbird-i18n-31.2.0/tr.xpi) = 457360 +SHA256 (xpi/thunderbird-i18n-31.2.0/uk.xpi) = 7942f621505ce2270dbac9aecded2be7457aedf8ae345ffa776dfa5f3e524cb6 +SIZE (xpi/thunderbird-i18n-31.2.0/uk.xpi) = 499656 +SHA256 (xpi/thunderbird-i18n-31.2.0/vi.xpi) = 132981f1bdcf48ffb630965052713425d93fed862d0a87e9878c2196f64fd684 +SIZE (xpi/thunderbird-i18n-31.2.0/vi.xpi) = 513835 +SHA256 (xpi/thunderbird-i18n-31.2.0/zh-CN.xpi) = d6382bf21c901de5301a2ce4f2aaba839ba4ea3171bb2b965fca6876703c79cf +SIZE (xpi/thunderbird-i18n-31.2.0/zh-CN.xpi) = 462668 +SHA256 (xpi/thunderbird-i18n-31.2.0/zh-TW.xpi) = 7704b9a4ed6f20c94b1390349614e18af643bf6d58b9cef38664afcc7048346f +SIZE (xpi/thunderbird-i18n-31.2.0/zh-TW.xpi) = 463408 Index: branches/2014Q4/net-im/linux-instantbird/pkg-plist =================================================================== --- branches/2014Q4/net-im/linux-instantbird/pkg-plist (revision 370968) +++ branches/2014Q4/net-im/linux-instantbird/pkg-plist (revision 370969) @@ -1,74 +1,63 @@ bin/%%APP_NAME%% share/applications/%%APP_NAME%%.desktop lib/%%APP_NAME%%/Throbber-small.gif lib/%%APP_NAME%%/application.ini lib/%%APP_NAME%%/chrome.manifest lib/%%APP_NAME%%/chrome/icons/default/blistWindow.png lib/%%APP_NAME%%/chrome/icons/default/blistWindow16.png lib/%%APP_NAME%%/chrome/icons/default/blistWindow48.png lib/%%APP_NAME%%/chrome/icons/default/convWindow.png lib/%%APP_NAME%%/chrome/icons/default/convWindow16.png lib/%%APP_NAME%%/chrome/icons/default/convWindow48.png lib/%%APP_NAME%%/chrome/icons/default/default.png lib/%%APP_NAME%%/chrome/icons/default/default16.png lib/%%APP_NAME%%/chrome/icons/default/default48.png lib/%%APP_NAME%%/components/components.manifest lib/%%APP_NAME%%/components/libbonjour.so lib/%%APP_NAME%%/components/libmozgnome.so lib/%%APP_NAME%%/components/libpurplexpcom.so lib/%%APP_NAME%%/components/libtrayToolkit.so lib/%%APP_NAME%%/crashreporter lib/%%APP_NAME%%/crashreporter.ini lib/%%APP_NAME%%/defaults/pref/browser-prefs.js lib/%%APP_NAME%%/defaults/pref/channel-prefs.js lib/%%APP_NAME%%/dependentlibs.list lib/%%APP_NAME%%/dictionaries/%%LOCALE%%.aff lib/%%APP_NAME%%/dictionaries/%%LOCALE%%.dic lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/preview.png lib/%%APP_NAME%%/icons/default16.png lib/%%APP_NAME%%/icons/mozicon128.png lib/%%APP_NAME%%/icons/updater.png lib/%%APP_NAME%%/instantbird lib/%%APP_NAME%%/instantbird-bin lib/%%APP_NAME%%/libfreebl3.chk lib/%%APP_NAME%%/libfreebl3.so lib/%%APP_NAME%%/libmozalloc.so lib/%%APP_NAME%%/libmozsqlite3.so lib/%%APP_NAME%%/libnspr4.so lib/%%APP_NAME%%/libnss3.so lib/%%APP_NAME%%/libnssckbi.so lib/%%APP_NAME%%/libnssdbm3.chk lib/%%APP_NAME%%/libnssdbm3.so lib/%%APP_NAME%%/libnssutil3.so lib/%%APP_NAME%%/libplc4.so lib/%%APP_NAME%%/libplds4.so lib/%%APP_NAME%%/libsmime3.so lib/%%APP_NAME%%/libsoftokn3.chk lib/%%APP_NAME%%/libsoftokn3.so lib/%%APP_NAME%%/libssl3.so lib/%%APP_NAME%%/libxul.so lib/%%APP_NAME%%/mozilla-xremote-client lib/%%APP_NAME%%/omni.ja lib/%%APP_NAME%%/platform.ini lib/%%APP_NAME%%/plugin-container lib/%%APP_NAME%%/plugins lib/%%APP_NAME%%/precomplete lib/%%APP_NAME%%/removed-files lib/%%APP_NAME%%/run-mozilla.sh lib/%%APP_NAME%%/updater lib/%%APP_NAME%%/updater.ini @exec /bin/cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%APP_NAME%%/ %D/lib/%%APP_NAME%%/extensions/ 2>/dev/null || true @unexec /usr/bin/find %D/lib/%%APP_NAME%%/extensions/ -depth 1 -type l -delete 2>/dev/null || true -@dirrm lib/%%APP_NAME%%/chrome/icons/default -@dirrm lib/%%APP_NAME%%/chrome/icons -@dirrm lib/%%APP_NAME%%/chrome -@dirrm lib/%%APP_NAME%%/components -@dirrm lib/%%APP_NAME%%/defaults/pref -@dirrm lib/%%APP_NAME%%/defaults -@dirrm lib/%%APP_NAME%%/dictionaries -@dirrm lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} -@dirrm lib/%%APP_NAME%%/extensions -@dirrm lib/%%APP_NAME%%/icons -@dirrm lib/%%APP_NAME%% Index: branches/2014Q4/security/ca_root_nss/Makefile =================================================================== --- branches/2014Q4/security/ca_root_nss/Makefile (revision 370968) +++ branches/2014Q4/security/ca_root_nss/Makefile (revision 370969) @@ -1,66 +1,66 @@ # $FreeBSD$ PORTNAME= ca_root_nss PORTVERSION= ${VERSION_NSS} CATEGORIES= security MASTER_SITES= MOZILLA/security/nss/releases/${DISTNAME:tu:C/[-.]/_/g}_RTM/src DISTNAME= nss-${VERSION_NSS}${NSS_SUFFIX} MAINTAINER= gecko@FreeBSD.org COMMENT= The root certificate bundle from the Mozilla Project OPTIONS_DEFINE= ETCSYMLINK ETCSYMLINK_DESC= Add symlink to /etc/ssl/cert.pem USES= perl5 USE_PERL5= build NO_ARCH= yes NO_WRKSUBDIR= yes CERTDIR?= share/certs PLIST_SUB+= CERTDIR=${CERTDIR} # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # !!! These versions are indented to track security/nss. !!! # !!! Please DO NOT submit patches for new version until it has !!! # !!! been committed there first. !!! # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -VERSION_NSS= 3.17.1 +VERSION_NSS= 3.17.2 #NSS_SUFFIX= .with.ckbi.1.93 CERTDATA_TXT_PATH= nss-${VERSION_NSS}/nss/lib/ckfw/builtins/certdata.txt BUNDLE_PROCESSOR= MAca-bundle.pl SUB_FILES= MAca-bundle.pl SUB_LIST= VERSION_NSS=${VERSION_NSS} .include .if ${PORT_OPTIONS:METCSYMLINK} PLIST_SUB+= ETCSYMLINK= CONFLICTS= ca-roots-[0-9]* .else PLIST_SUB+= ETCSYMLINK="@comment " .endif do-extract: @${MKDIR} ${WRKDIR} @${TAR} -C ${WRKDIR} -xf ${DISTDIR}/nss-${VERSION_NSS}${NSS_SUFFIX}${EXTRACT_SUFX} \ ${CERTDATA_TXT_PATH} @${CP} ${WRKDIR}/${CERTDATA_TXT_PATH} ${WRKDIR} @${RM} -rf ${WRKDIR}/nss-${VERSION_NSS} do-build: apply-slist @${PERL} ${WRKDIR}/${BUNDLE_PROCESSOR} \ < ${WRKDIR}/certdata.txt > \ ${WRKDIR}/ca-root-nss.crt do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/${CERTDIR} ${INSTALL_DATA} ${WRKDIR}/ca-root-nss.crt ${STAGEDIR}${PREFIX}/${CERTDIR} post-install: .if ${PORT_OPTIONS:METCSYMLINK} ${MKDIR} ${STAGEDIR}/etc/ssl ${LN} -sf ${PREFIX}/${CERTDIR}/ca-root-nss.crt ${STAGEDIR}/etc/ssl/cert.pem .endif .include Index: branches/2014Q4/security/ca_root_nss/distinfo =================================================================== --- branches/2014Q4/security/ca_root_nss/distinfo (revision 370968) +++ branches/2014Q4/security/ca_root_nss/distinfo (revision 370969) @@ -1,2 +1,2 @@ -SHA256 (nss-3.17.1.tar.gz) = 0e210afba7cd1e033a08f61fcd1f466639649fc413e72aa050f3d52c19376e5f -SIZE (nss-3.17.1.tar.gz) = 6927105 +SHA256 (nss-3.17.2.tar.gz) = 134929e44e44b968a4883f4ee513a71ae45d55b486cee41ee8e26c3cc84dab8b +SIZE (nss-3.17.2.tar.gz) = 6927414 Index: branches/2014Q4/security/ca_root_nss/pkg-plist =================================================================== --- branches/2014Q4/security/ca_root_nss/pkg-plist (revision 370968) +++ branches/2014Q4/security/ca_root_nss/pkg-plist (revision 370969) @@ -1,2 +1,3 @@ %%CERTDIR%%/ca-root-nss.crt -%%ETCSYMLINK%%/etc/ssl/cert.pem +%%ETCSYMLINK%%@cwd / +%%ETCSYMLINK%%etc/ssl/cert.pem Index: branches/2014Q4/security/nss/Makefile =================================================================== --- branches/2014Q4/security/nss/Makefile (revision 370968) +++ branches/2014Q4/security/nss/Makefile (revision 370969) @@ -1,99 +1,100 @@ # Created by: Maxim Sobolev # $FreeBSD$ PORTNAME= nss -PORTVERSION= 3.17.1 +PORTVERSION= 3.17.2 +#DISTVERSIONSUFFIX= .with.ckbi.1.93 CATEGORIES= security MASTER_SITES= MOZILLA/security/${PORTNAME}/releases/${DISTNAME:tu:C/[-.]/_/g}_RTM/src MAINTAINER= gecko@FreeBSD.org COMMENT= Libraries to support development of security-enabled applications BUILD_DEPENDS= zip:${PORTSDIR}/archivers/zip \ nspr>=4.10.5:${PORTSDIR}/devel/nspr \ sqlite3>=3.7.15:${PORTSDIR}/databases/sqlite3 LIB_DEPENDS= libnspr4.so:${PORTSDIR}/devel/nspr \ libsqlite3.so:${PORTSDIR}/databases/sqlite3 WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}/nss MAKE_JOBS_UNSAFE= yes USE_LDCONFIG= ${PREFIX}/lib/nss USES= cpe gmake perl5 CPE_VENDOR= mozilla CPE_PRODUCT= network_security_services USE_PERL5= build MAKE_ENV= LIBRARY_PATH="${LOCALBASE}/lib" \ SQLITE_INCLUDE_DIR="${LOCALBASE}/include" \ NSS_USE_SYSTEM_SQLITE=1 CFLAGS+= -I${LOCALBASE}/include/nspr SUB_FILES= nss-config nss.pc SUB_LIST= PORTVERSION=${PORTVERSION} DIST= ${WRKSRC:H}/dist EXTRACT_AFTER_ARGS=--exclude */lib/zlib --exclude */lib/dbm --exclude */lib/sqlite INSTALL_BINS= certcgi certutil checkcert cmsutil crlutil derdump makepqg \ mangle modutil ocspclnt oidcalc p7content p7env p7sign \ p7verify pk12util rsaperf shlibsign signtool signver \ ssltap strsclnt symkeyutil vfychain vfyserv OPTIONS_DEFINE= DEBUG .include .if ! ${PORT_OPTIONS:MDEBUG} MAKE_ENV+= BUILD_OPT=1 BINS= ${DIST}/${OPSYS}${OSREL}_OPT.OBJ .else BINS= ${DIST}/${OPSYS}${OSREL}_DBG.OBJ .endif .if ${ARCH} == amd64 USE_BINUTILS= # intel-gcm.s CFLAGS+= -B${LOCALBASE}/bin .endif check regression-test test: cd ${WRKSRC}/tests; \ ${SETENV} PATH="${BINS}/bin:${PATH}" \ LD_LIBRARY_PATH="${BINS}/lib" \ ${MAKE_ENV} \ ./all.sh @if ${GREP} -Fh '>Failed<' \ ${WRKSRC:H}/tests_results/security/*/results.html; then \ echo "Some tests have failed. Let ${MAINTAINER} know."; \ exit 1; \ else \ echo "All tests succeeded. Good news."; \ fi post-patch: @${REINPLACE_CMD} '/NSS_DEFAULT_SYSTEM/s,/etc,${PREFIX}&,' \ ${WRKSRC}/lib/sysinit/nsssysinit.c @cd ${WRKSRC} && \ ${FIND} . -name "*.c" -o -name "*.h" | \ ${XARGS} ${REINPLACE_CMD} -e 's|"nspr.h"||' ${FIND} ${WRKSRC}/tests -name '*.sh' | ${XARGS} ${GREP} -l -F '/bin/bash' | \ ${XARGS} ${REINPLACE_CMD} -e 's|#! */bin/bash|#!${SH}|' do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/include/nss/nss ${STAGEDIR}${PREFIX}/lib/nss ${FIND} ${DIST}/public/nss -type l \ -exec ${INSTALL_DATA} {} ${STAGEDIR}${PREFIX}/include/nss/nss \; ${INSTALL_LIB} ${BINS}/lib/*.so.1 \ ${STAGEDIR}${PREFIX}/lib/nss ${INSTALL_DATA} ${BINS}/lib/libcrmf.a \ ${STAGEDIR}${PREFIX}/lib/nss .for bin in ${INSTALL_BINS} ${INSTALL_PROGRAM} ${BINS}/bin/${bin} \ ${STAGEDIR}${PREFIX}/bin .endfor cd ${BINS}/lib && \ ${TAR} -cf - *.so | ${TAR} --unlink -C ${STAGEDIR}${PREFIX}/lib/nss -xf - ${INSTALL_SCRIPT} ${WRKDIR}/nss-config ${STAGEDIR}${PREFIX}/bin ${INSTALL_DATA} ${WRKDIR}/nss.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig .include Index: branches/2014Q4/security/nss/distinfo =================================================================== --- branches/2014Q4/security/nss/distinfo (revision 370968) +++ branches/2014Q4/security/nss/distinfo (revision 370969) @@ -1,2 +1,2 @@ -SHA256 (nss-3.17.1.tar.gz) = 0e210afba7cd1e033a08f61fcd1f466639649fc413e72aa050f3d52c19376e5f -SIZE (nss-3.17.1.tar.gz) = 6927105 +SHA256 (nss-3.17.2.tar.gz) = 134929e44e44b968a4883f4ee513a71ae45d55b486cee41ee8e26c3cc84dab8b +SIZE (nss-3.17.2.tar.gz) = 6927414 Index: branches/2014Q4/security/nss/pkg-plist =================================================================== --- branches/2014Q4/security/nss/pkg-plist (revision 370968) +++ branches/2014Q4/security/nss/pkg-plist (revision 370969) @@ -1,141 +1,138 @@ bin/certcgi bin/certutil bin/checkcert bin/cmsutil bin/crlutil bin/derdump bin/makepqg bin/mangle bin/modutil bin/nss-config bin/ocspclnt bin/oidcalc bin/p7content bin/p7env bin/p7sign bin/p7verify bin/pk12util bin/rsaperf bin/shlibsign bin/signtool bin/signver bin/ssltap bin/strsclnt bin/symkeyutil bin/vfychain bin/vfyserv include/nss/nss/base64.h include/nss/nss/blapit.h include/nss/nss/cert.h include/nss/nss/certdb.h include/nss/nss/certt.h include/nss/nss/ciferfam.h include/nss/nss/cmmf.h include/nss/nss/cmmft.h include/nss/nss/cms.h include/nss/nss/cmsreclist.h include/nss/nss/cmst.h include/nss/nss/crmf.h include/nss/nss/crmft.h include/nss/nss/cryptohi.h include/nss/nss/cryptoht.h include/nss/nss/ecl-exp.h include/nss/nss/hasht.h include/nss/nss/jar-ds.h include/nss/nss/jar.h include/nss/nss/jarfile.h include/nss/nss/key.h include/nss/nss/keyhi.h include/nss/nss/keyt.h include/nss/nss/keythi.h include/nss/nss/nss.h include/nss/nss/nssb64.h include/nss/nss/nssb64t.h include/nss/nss/nssbase.h include/nss/nss/nssbaset.h include/nss/nss/nssck.api include/nss/nss/nssckbi.h include/nss/nss/nssckepv.h include/nss/nss/nssckft.h include/nss/nss/nssckfw.h include/nss/nss/nssckfwc.h include/nss/nss/nssckfwt.h include/nss/nss/nssckg.h include/nss/nss/nssckmdt.h include/nss/nss/nssckt.h include/nss/nss/nssilckt.h include/nss/nss/nssilock.h include/nss/nss/nsslocks.h include/nss/nss/nssrwlk.h include/nss/nss/nssrwlkt.h include/nss/nss/nssutil.h include/nss/nss/ocsp.h include/nss/nss/ocspt.h include/nss/nss/p12.h include/nss/nss/p12plcy.h include/nss/nss/p12t.h include/nss/nss/pk11func.h include/nss/nss/pk11pqg.h include/nss/nss/pk11priv.h include/nss/nss/pk11pub.h include/nss/nss/pk11sdr.h include/nss/nss/pkcs11.h include/nss/nss/pkcs11f.h include/nss/nss/pkcs11n.h include/nss/nss/pkcs11p.h include/nss/nss/pkcs11t.h include/nss/nss/pkcs11u.h include/nss/nss/pkcs12.h include/nss/nss/pkcs12t.h include/nss/nss/pkcs7t.h include/nss/nss/portreg.h include/nss/nss/preenc.h include/nss/nss/secasn1.h include/nss/nss/secasn1t.h include/nss/nss/seccomon.h include/nss/nss/secder.h include/nss/nss/secdert.h include/nss/nss/secdig.h include/nss/nss/secdigt.h include/nss/nss/secerr.h include/nss/nss/sechash.h include/nss/nss/secitem.h include/nss/nss/secmime.h include/nss/nss/secmod.h include/nss/nss/secmodt.h include/nss/nss/secoid.h include/nss/nss/secoidt.h include/nss/nss/secpkcs5.h include/nss/nss/secpkcs7.h include/nss/nss/secport.h include/nss/nss/shsign.h include/nss/nss/smime.h include/nss/nss/ssl.h include/nss/nss/sslerr.h include/nss/nss/sslproto.h include/nss/nss/sslt.h include/nss/nss/utilmodt.h include/nss/nss/utilpars.h include/nss/nss/utilparst.h include/nss/nss/utilrename.h lib/nss/libcrmf.a lib/nss/libfreebl3.so lib/nss/libfreebl3.so.1 lib/nss/libnss3.so lib/nss/libnss3.so.1 lib/nss/libnssckbi.so lib/nss/libnssckbi.so.1 lib/nss/libnssdbm3.so lib/nss/libnssdbm3.so.1 lib/nss/libnssutil3.so lib/nss/libnssutil3.so.1 lib/nss/libsmime3.so lib/nss/libsmime3.so.1 lib/nss/libsoftokn3.so lib/nss/libsoftokn3.so.1 lib/nss/libssl3.so lib/nss/libssl3.so.1 libdata/pkgconfig/nss.pc -@dirrm lib/nss -@dirrm include/nss/nss -@dirrm include/nss Index: branches/2014Q4/www/firefox/Makefile =================================================================== --- branches/2014Q4/www/firefox/Makefile (revision 370968) +++ branches/2014Q4/www/firefox/Makefile (revision 370969) @@ -1,107 +1,107 @@ # Created by: Alan Eldridge # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 32.0.3 +DISTVERSION= 33.0 DISTVERSIONSUFFIX=.source PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ - https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source/ + https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source/ MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \ nss>=3.16.2:${PORTSDIR}/security/nss \ libevent2>=2.0.21_2:${PORTSDIR}/devel/libevent2 \ cairo>=1.12.16_1,2:${PORTSDIR}/graphics/cairo \ soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \ harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \ graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \ libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \ opus>=1.1:${PORTSDIR}/audio/opus \ libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \ sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ zip:${PORTSDIR}/archivers/zip \ unzip:${PORTSDIR}/archivers/unzip LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l USE_AUTOTOOLS= autoconf213:env OBJDIR_BUILD= # in-tree build broken after bug 789837 USE_GECKO= gecko CONFLICTS= firefox-esr-31.* firefox-esr-24.* firefox-esr-17.* MOZ_PKGCONFIG_FILES= # empty USE_MOZILLA= # empty MOZILLA_NAME= Firefox WANT_GNOME= yes USE_QT5= # empty QT_NONSTANDARD= yes ALL_TARGET= default GNU_CONFIGURE= yes USE_GL= gl USES= dos2unix tar:bzip2 DOS2UNIX_FILES= media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp NO_MOZPKGINSTALL=yes 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 .include "${.CURDIR}/../../www/firefox/Makefile.options" .include WRKSRC:= ${WRKDIR}/mozilla-release # avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1> -# http://svnweb.freebsd.org/changeset/base/255804 -.if ${CHOSEN_COMPILER_TYPE} == clang && ${ARCH} == i386 && ${OSVERSION} < 1000056 +# To be removed when 9.2R goes EOL. http://llvm.org/PR15840 +.if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION:M3[23]} . if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} BROKEN= Cannot build with OPTIMIZED_CFLAGS option due to \ a ${CHOSEN_COMPILER_TYPE} bug: unset the option or \ use FAVORITE_COMPILER=gcc in Makefile.local/make.conf # apply workaround only for -O2 or greater . elif ${CXXFLAGS:M-O*} && ! ${CXXFLAGS:M-O[01]} . if ${MACHINE_CPU:Msse2} CXXFLAGS+= -msse2 . else CXXFLAGS+= -O1 . endif . endif .endif .if ${PORT_OPTIONS:MALSA} RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib .endif .if ${PORT_OPTIONS:MGSTREAMER} RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:${PORTSDIR}/multimedia/gstreamer1-libav .endif 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 '/MOZPNG/s/=[0-9]*/=10511/' \ ${WRKSRC}/configure.in @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/browser/app/nsBrowserApp.cpp pre-configure: (cd ${WRKSRC} && ${AUTOCONF}) (cd ${WRKSRC}/js/src/ && ${AUTOCONF}) 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/2014Q4/www/firefox/distinfo =================================================================== --- branches/2014Q4/www/firefox/distinfo (revision 370968) +++ branches/2014Q4/www/firefox/distinfo (revision 370969) @@ -1,2 +1,2 @@ -SHA256 (firefox-32.0.3.source.tar.bz2) = ae2aa20538d03b392a04663593fb106c0aec2d8bbb78ddac84a88ce7617b1efe -SIZE (firefox-32.0.3.source.tar.bz2) = 150323569 +SHA256 (firefox-33.0.source.tar.bz2) = 1018c2fae8c54c8a45f5a3ce348a2617a3f8039a789b09b7cfa5a27be069b229 +SIZE (firefox-33.0.source.tar.bz2) = 155177527 Index: branches/2014Q4/www/firefox/files/patch-bug1026828 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug1026828 (revision 370968) +++ branches/2014Q4/www/firefox/files/patch-bug1026828 (nonexistent) @@ -1,20 +0,0 @@ -diff --git storage/src/moz.build storage/src/moz.build -index 4cd2551..5c40536 100644 ---- storage/src/moz.build -+++ storage/src/moz.build -@@ -50,11 +50,14 @@ FINAL_LIBRARY = 'storagecomps' - # (such as NSS) might trigger an initialization of sqlite and allocation - # of memory using the default allocator, prior to the storage service - # registering its allocator, causing memory management failures (bug 938730). -+# However, this is not an issue if both the jemalloc allocator and the default -+# allocator are the same thing. - # - # Note: On Windows our sqlite build assumes we use jemalloc. If you disable - # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef - # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in. --if CONFIG['MOZ_MEMORY'] and not CONFIG['MOZ_NATIVE_SQLITE']: -+if CONFIG['MOZ_MEMORY'] and (not CONFIG['MOZ_NATIVE_SQLITE'] -+ or CONFIG['MOZ_NATIVE_JEMALLOC']): - if CONFIG['OS_TARGET'] != 'Android': - DEFINES['MOZ_STORAGE_MEMORY'] = True - Property changes on: branches/2014Q4/www/firefox/files/patch-bug1026828 ___________________________________________________________________ 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/2014Q4/www/firefox/files/patch-bug1015547 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug1015547 (revision 370968) +++ branches/2014Q4/www/firefox/files/patch-bug1015547 (nonexistent) @@ -1,95 +0,0 @@ -diff --git configure.in configure.in -index 7bed45f..053de17 100644 ---- configure.in -+++ configure.in -@@ -2950,7 +2950,7 @@ dnl Checks for library functions. - dnl ======================================================== - AC_PROG_GCC_TRADITIONAL - AC_FUNC_MEMCMP --AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r) -+AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r arc4random arc4random_buf) - - dnl check for clock_gettime(), the CLOCK_MONOTONIC clock - AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC), -diff --git xpcom/base/nsUUIDGenerator.cpp xpcom/base/nsUUIDGenerator.cpp -index 0687344..ca3ff8b 100644 ---- xpcom/base/nsUUIDGenerator.cpp -+++ xpcom/base/nsUUIDGenerator.cpp -@@ -16,6 +16,10 @@ - - #include "nsUUIDGenerator.h" - -+#ifdef ANDROID -+extern "C" NS_EXPORT void arc4random_buf(void *, size_t); -+#endif -+ - using namespace mozilla; - - NS_IMPL_ISUPPORTS(nsUUIDGenerator, nsIUUIDGenerator) -@@ -35,7 +39,7 @@ nsUUIDGenerator::Init() - // We're a service, so we're guaranteed that Init() is not going - // to be reentered while we're inside Init(). - --#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID) -+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM) - /* initialize random number generator using NSPR random noise */ - unsigned int seed; - -@@ -72,7 +76,7 @@ nsUUIDGenerator::Init() - } - #endif - --#endif /* non XP_WIN and non XP_MACOSX */ -+#endif /* non XP_WIN and non XP_MACOSX and non ARC4RANDOM */ - - return NS_OK; - } -@@ -122,13 +126,16 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* aId) - * back to it; instead, we use the value returned when we called - * initstate, since older glibc's have broken setstate() return values - */ --#ifndef ANDROID -+#ifndef HAVE_ARC4RANDOM - setstate(mState); - #endif - -+#ifdef HAVE_ARC4RANDOM_BUF -+ arc4random_buf(aId, sizeof(nsID)); -+#else /* HAVE_ARC4RANDOM_BUF */ - size_t bytesLeft = sizeof(nsID); - while (bytesLeft > 0) { --#ifdef ANDROID -+#ifdef HAVE_ARC4RANDOM - long rval = arc4random(); - const size_t mRBytes = 4; - #else -@@ -150,6 +157,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* aId) - - bytesLeft -= toWrite; - } -+#endif /* HAVE_ARC4RANDOM_BUF */ - - /* Put in the version */ - aId->m2 &= 0x0fff; -@@ -159,7 +167,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* aId) - aId->m3[0] &= 0x3f; - aId->m3[0] |= 0x80; - --#ifndef ANDROID -+#ifndef HAVE_ARC4RANDOM - /* Restore the previous RNG state */ - setstate(mSavedState); - #endif -diff --git xpcom/base/nsUUIDGenerator.h xpcom/base/nsUUIDGenerator.h -index 6a24212..68ed6f2 100644 ---- xpcom/base/nsUUIDGenerator.h -+++ xpcom/base/nsUUIDGenerator.h -@@ -29,7 +29,7 @@ private: - protected: - - mozilla::Mutex mLock; --#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID) -+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM) - char mState[128]; - char* mSavedState; - uint8_t mRBytes; Property changes on: branches/2014Q4/www/firefox/files/patch-bug1015547 ___________________________________________________________________ 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/2014Q4/www/firefox/files/patch-clang34-disable-stdcall =================================================================== --- branches/2014Q4/www/firefox/files/patch-clang34-disable-stdcall (revision 370968) +++ branches/2014Q4/www/firefox/files/patch-clang34-disable-stdcall (nonexistent) @@ -1,13 +0,0 @@ -# http://llvm.org/bugs/show_bug.cgi?id=19007 - ---- xpcom/base/nscore.h~ -+++ xpcom/base/nscore.h -@@ -110,7 +110,7 @@ - * NS_HIDDEN_(int) NS_FASTCALL func2(char *foo); - */ - --#if defined(__i386__) && defined(__GNUC__) -+#if defined(__i386__) && defined(__GNUC__) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0) - #define NS_FASTCALL __attribute__ ((regparm (3), stdcall)) - #define NS_CONSTRUCTOR_FASTCALL __attribute__ ((regparm (3), stdcall)) - #elif defined(XP_WIN) && !defined(_WIN64) Property changes on: branches/2014Q4/www/firefox/files/patch-clang34-disable-stdcall ___________________________________________________________________ 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/2014Q4/www/firefox/files/patch-bug1021761 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug1021761 (nonexistent) +++ branches/2014Q4/www/firefox/files/patch-bug1021761 (revision 370969) @@ -0,0 +1,1101 @@ +diff --git configure.in configure.in +index 48e60c0..ec08417 100644 +--- configure.in ++++ configure.in +@@ -5438,6 +5438,60 @@ 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|NetBSD|GNU/kFreeBSD) ++ MOZ_OSS=1 ++ ;; ++esac ++ ++MOZ_ARG_DISABLE_BOOL(oss, ++[ --disable-oss Disable OpenSoundSystem support], ++ MOZ_OSS=, ++ MOZ_OSS=1) ++ ++_SAVE_CFLAGS=$CFLAGS ++_SAVE_LIBS=$LIBS ++if test -n "$MOZ_OSS"; then ++ dnl Prefer 4Front implementation ++ AC_MSG_CHECKING([MOZ_OSS_CFLAGS]) ++ if test -z "$MOZ_OSS_CFLAGS"; then ++ for oss_conf in /etc/oss.conf /usr/local/etc/oss.conf; do ++ if test -e "$oss_conf"; then ++ . "$oss_conf" ++ fi ++ done ++ if test -d "$OSSLIBDIR"; then ++ 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 linux/soundcard.h soundcard.h) ++ ++ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \ ++ "$ac_cv_header_linux_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="-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 ================================== + +@@ -5451,12 +5505,23 @@ MOZ_ARG_ENABLE_BOOL(alsa, + MOZ_ALSA=1, + MOZ_ALSA=) + ++MOZ_ARG_DISABLE_BOOL(alsa-dlopen, ++[ --disable-alsa-dlopen Disable runtime linking of libasound.so], ++ DISABLE_LIBASOUND_DLOPEN=1, ++ DISABLE_LIBASOUND_DLOPEN=) ++ + if test -n "$MOZ_ALSA"; then + PKG_CHECK_MODULES(MOZ_ALSA, alsa, , + [echo "$MOZ_ALSA_PKG_ERRORS" + AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])]) + fi + ++if test -n "$DISABLE_LIBASOUND_DLOPEN"; then ++ AC_DEFINE(DISABLE_LIBASOUND_DLOPEN) ++else ++ MOZ_ALSA_LIBS= ++fi ++ + AC_SUBST(MOZ_ALSA) + + 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); +@@ -313,10 +360,10 @@ alsa_refill_stream(cubeb_stream * stm) + return ERROR; + } + if (got > 0) { +- snd_pcm_sframes_t wrote = snd_pcm_writei(stm->pcm, p, got); ++ snd_pcm_sframes_t 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 +@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, + latency = latency < 500 ? 500 : latency; + } + +- r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, +- stm->params.channels, stm->params.rate, 1, +- latency * 1000); ++ 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) { + alsa_stream_destroy(stm); + return CUBEB_ERROR_INVALID_FORMAT; + } + +- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size); ++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->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; +@@ -937,12 +1043,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_any(stm->pcm, hw_params); ++ rv = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params); + if (rv < 0) { + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_get_channels_max(hw_params, max_channels); ++ rv = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels); + if (rv < 0) { + return CUBEB_ERROR; + } +@@ -962,34 +1068,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. */ +- rv = snd_pcm_open(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); ++ rv = WRAP(snd_pcm_open)(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); + if (rv < 0) { + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_any(pcm, hw_params); ++ rv = WRAP(snd_pcm_hw_params_any)(pcm, hw_params); + if (rv < 0) { +- snd_pcm_close(pcm); ++ WRAP(snd_pcm_close)(pcm); + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_get_rate(hw_params, rate, &dir); ++ rv = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir); + if (rv >= 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; + +- rv = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL); ++ rv = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL); + if (rv < 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,399 @@ ++/* ++ * 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 ++#elif defined(HAVE_LINUX_SOUNDCARD_H) ++#include ++#else ++#include ++#endif ++#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, 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_stream_params 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; ++ ++ 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 = stream_params; ++ stream->volume = 1.0; ++ stream->panning = 0.0; ++ ++ oss_try_set_latency(stream, latency); ++ ++ stream->floating = 0; ++ SET(SNDCTL_DSP_CHANNELS, stream_params.channels); ++ SET(SNDCTL_DSP_SPEED, stream_params.rate); ++ switch (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 ++}; +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 toolkit/library/libxul.mk toolkit/library/libxul.mk +index e191f13..4fb268a 100644 +--- toolkit/library/libxul.mk ++++ toolkit/library/libxul.mk +@@ -146,6 +146,10 @@ OS_LIBS += $(call EXPAND_LIBNAME,secur32 + endif + endif + ++ifdef MOZ_OSS ++EXTRA_DSO_LDOPTS += $(MOZ_OSS_LIBS) ++endif ++ + ifdef MOZ_ALSA + EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS) + endif Property changes on: branches/2014Q4/www/firefox/files/patch-bug1021761 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/firefox/files/patch-bug1041268 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug1041268 (nonexistent) +++ branches/2014Q4/www/firefox/files/patch-bug1041268 (revision 370969) @@ -0,0 +1,26 @@ +diff --git media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc +index 97f69d3..77a50b3 100644 +--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc ++++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc +@@ -18,7 +18,7 @@ ScreenCapturer* ScreenCapturer::Create() { + return Create(DesktopCaptureOptions::CreateDefault()); + } + +-#if defined(WEBRTC_LINUX) ++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + ScreenCapturer* ScreenCapturer::CreateWithXDamage( + bool use_update_notifications) { + DesktopCaptureOptions options; +diff --git media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h +index a8d40a7..177a6c1 100644 +--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h ++++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h +@@ -74,7 +74,7 @@ class ScreenCapturer : public DesktopCapturer { + static ScreenCapturer* Create(const DesktopCaptureOptions& options); + static ScreenCapturer* Create(); + +-#if defined(WEBRTC_LINUX) ++#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + // Creates platform-specific capturer and instructs it whether it should use + // X DAMAGE support. + static ScreenCapturer* CreateWithXDamage(bool use_x_damage); Property changes on: branches/2014Q4/www/firefox/files/patch-bug1041268 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/firefox/files/patch-bug1073709 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug1073709 (nonexistent) +++ branches/2014Q4/www/firefox/files/patch-bug1073709 (revision 370969) @@ -0,0 +1,18 @@ +diff --git mfbt/Atomics.h mfbt/Atomics.h +index 495a9d3..c7f7601 100644 +--- mfbt/Atomics.h ++++ mfbt/Atomics.h +@@ -34,10 +34,12 @@ + * loose typing of the atomic builtins. GCC 4.5 and 4.6 lacks inline + * definitions for unspecialized std::atomic and causes linking errors. + * Therefore, we require at least 4.7.0 for using libstdc++. ++ * ++ * libc++ is only functional with clang. + */ + # if MOZ_USING_LIBSTDCXX && MOZ_LIBSTDCXX_VERSION_AT_LEAST(4, 7, 0) + # define MOZ_HAVE_CXX11_ATOMICS +-# elif MOZ_USING_LIBCXX ++# elif MOZ_USING_LIBCXX && defined(__clang__) + # define MOZ_HAVE_CXX11_ATOMICS + # endif + /* Property changes on: branches/2014Q4/www/firefox/files/patch-bug1073709 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/firefox/files/patch-bug1076983 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug1076983 (nonexistent) +++ branches/2014Q4/www/firefox/files/patch-bug1076983 (revision 370969) @@ -0,0 +1,45 @@ +commit e10ee74 +Author: Martin Thomson +Date: Tue Oct 14 17:17:35 2014 -0700 + + Bug 1076983 - Disabling SSL 3.0 with pref +--- + netwerk/base/public/security-prefs.js | 2 +- + security/manager/ssl/src/nsNSSComponent.cpp | 7 +++---- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git netwerk/base/public/security-prefs.js netwerk/base/public/security-prefs.js +index 352552e..c12731b 100644 +--- netwerk/base/public/security-prefs.js ++++ netwerk/base/public/security-prefs.js +@@ -2,7 +2,7 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +-pref("security.tls.version.min", 0); ++pref("security.tls.version.min", 1); + pref("security.tls.version.max", 3); + + pref("security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref", false); +diff --git security/manager/ssl/src/nsNSSComponent.cpp security/manager/ssl/src/nsNSSComponent.cpp +index 8cab67b..772959d 100644 +--- security/manager/ssl/src/nsNSSComponent.cpp ++++ security/manager/ssl/src/nsNSSComponent.cpp +@@ -829,14 +829,13 @@ void nsNSSComponent::setValidationOptions(bool isInitialSetting, + mDefaultCertVerifier = new SharedCertVerifier(odc, osc, ogc, pinningMode); + } + +-// Enable the TLS versions given in the prefs, defaulting to SSL 3.0 (min +-// version) and TLS 1.2 (max version) when the prefs aren't set or set to +-// invalid values. ++// Enable the TLS versions given in the prefs, defaulting to TLS 1.0 (min) and ++// TLS 1.2 (max) when the prefs aren't set or set to invalid values. + nsresult + nsNSSComponent::setEnabledTLSVersions() + { + // keep these values in sync with security-prefs.js +- static const int32_t PSM_DEFAULT_MIN_TLS_VERSION = 0; ++ static const int32_t PSM_DEFAULT_MIN_TLS_VERSION = 1; + static const int32_t PSM_DEFAULT_MAX_TLS_VERSION = 3; + + int32_t minVersion = Preferences::GetInt("security.tls.version.min", Property changes on: branches/2014Q4/www/firefox/files/patch-bug1076983 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/firefox/files/patch-bug779713 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug779713 (revision 370968) +++ branches/2014Q4/www/firefox/files/patch-bug779713 (revision 370969) @@ -1,77 +1,77 @@ diff --git mfbt/Alignment.h mfbt/Alignment.h index e0843ca..353ec36 100644 --- mfbt/Alignment.h +++ mfbt/Alignment.h @@ -9,11 +9,20 @@ #ifndef mozilla_Alignment_h #define mozilla_Alignment_h +#include "mozilla/Attributes.h" + #include #include namespace mozilla { +#if defined(MOZ_HAVE_CXX11_ALIGNAS) +#define MOZ_ALIGNOF(T) alignof(T) +#elif defined(__GNUC__) +#define MOZ_ALIGNOF(T) __alignof__(T) +#elif defined(_MSC_VER) +#define MOZ_ALIGNOF(T) __alignof(T) +#else /* * This class, and the corresponding macro MOZ_ALIGNOF, figures out how many * bytes of alignment a given type needs. @@ -32,6 +41,7 @@ public: }; #define MOZ_ALIGNOF(T) mozilla::AlignmentFinder::alignment +#endif /* * Declare the MOZ_ALIGNED_DECL macro for declaring aligned types. @@ -43,7 +53,10 @@ public: * will declare a two-character array |arr| aligned to 8 bytes. */ -#if defined(__GNUC__) +#if defined(MOZ_HAVE_CXX11_ALIGNAS) +# define MOZ_ALIGNED_DECL(_type, _align) \ + alignas(_align) _type +#elif defined(__GNUC__) # define MOZ_ALIGNED_DECL(_type, _align) \ _type __attribute__((aligned(_align))) #elif defined(_MSC_VER) diff --git mfbt/Attributes.h mfbt/Attributes.h index d317766..ddb13da 100644 --- mfbt/Attributes.h +++ mfbt/Attributes.h -@@ -54,6 +54,9 @@ +@@ -51,6 +51,7 @@ + * http://stackoverflow.com/questions/20498142/visual-studio-2013-explicit-keyword-bug + */ + # if _MSC_VER >= 1800 ++# define MOZ_HAVE_CXX11_ALIGNAS + # define MOZ_HAVE_CXX11_DELETE + # endif + # if _MSC_VER >= 1700 +@@ -74,6 +75,9 @@ # ifndef __has_extension # define __has_extension __has_feature /* compatibility, for older versions of clang */ # endif +# if __has_extension(cxx_alignas) +# define MOZ_HAVE_CXX11_ALIGNAS +# endif # if __has_extension(cxx_constexpr) # define MOZ_HAVE_CXX11_CONSTEXPR # endif -@@ -75,6 +78,9 @@ +@@ -95,6 +99,9 @@ # endif #elif defined(__GNUC__) # if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L +# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0) +# define MOZ_HAVE_CXX11_ALIGNAS +# endif # if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0) # define MOZ_HAVE_CXX11_OVERRIDE # define MOZ_HAVE_CXX11_FINAL final -@@ -96,6 +102,7 @@ - # define MOZ_HAVE_NORETURN __attribute__((noreturn)) - #elif defined(_MSC_VER) - # if _MSC_VER >= 1800 -+# define MOZ_HAVE_CXX11_ALIGNAS - # define MOZ_HAVE_CXX11_DELETE - # endif - # if _MSC_VER >= 1700 Index: branches/2014Q4/www/firefox/files/patch-bug826985 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug826985 (revision 370968) +++ branches/2014Q4/www/firefox/files/patch-bug826985 (revision 370969) @@ -1,166 +1,169 @@ 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. --- 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 configure.in configure.in index 55e4cd1..76567b3 100644 --- configure.in +++ 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/Makefile.in media/webrtc/signaling/test/Makefile.in index b483cd1..f1dd1f0 100644 --- media/webrtc/signaling/test/Makefile.in +++ media/webrtc/signaling/test/Makefile.in @@ -7,6 +7,7 @@ LIBS = \ $(NSPR_LIBS) \ $(NSS_LIBS) \ $(REALTIME_LIBS) \ + $(MOZ_LIBV4L2_LIBS) \ $(DEPTH)/xpcom/glue/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \ $(DEPTH)/media/mtransport/standalone/$(LIB_PREFIX)mtransport_s.$(LIB_SUFFIX) \ $(DEPTH)/media/webrtc/signalingtest/signaling_ecc/$(LIB_PREFIX)ecc.$(LIB_SUFFIX) \ 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', -@@ -46,6 +49,16 @@ +@@ -46,6 +49,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/Makefile.in toolkit/library/Makefile.in index 9c16ffa..1db3794 100644 --- toolkit/library/libxul.mk +++ toolkit/library/libxul.mk @@ -182,6 +182,10 @@ endif EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib) +ifdef MOZ_LIBV4L2_LIBS +EXTRA_DSO_LDOPTS += $(MOZ_LIBV4L2_LIBS) +endif + ifdef MOZ_WEBRTC ifeq (WINNT,$(OS_TARGET)) EXTRA_DSO_LDOPTS += \ Index: branches/2014Q4/www/firefox/files/patch-bug847568 =================================================================== --- branches/2014Q4/www/firefox/files/patch-bug847568 (revision 370968) +++ branches/2014Q4/www/firefox/files/patch-bug847568 (revision 370969) @@ -1,208 +1,208 @@ # 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 @@ -77,6 +77,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 @@ -1145,3 +1145,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 index ac38f40..87536b7 100644 --- configure.in +++ configure.in @@ -8032,6 +8032,52 @@ 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 >= 0.9.25) +fi + +AC_SUBST(MOZ_NATIVE_HARFBUZZ) +AC_SUBST(MOZ_HARFBUZZ_CFLAGS) +AC_SUBST(MOZ_HARFBUZZ_LIBS) + +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,2,4) + #error "Insufficient graphite2 version." + #endif + ], [], + [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) +fi + +AC_SUBST(MOZ_NATIVE_GRAPHITE2) +AC_SUBST(MOZ_GRAPHITE2_CFLAGS) +AC_SUBST(MOZ_GRAPHITE2_LIBS) + +dnl ======================================================== dnl Check for pixman and cairo dnl ======================================================== diff --git content/base/src/moz.build content/base/src/moz.build index d4f6380..0ee55df 100644 --- content/base/src/moz.build +++ content/base/src/moz.build @@ -179,6 +179,9 @@ SOURCES += [ 'nsObjectLoadingContent.cpp', ] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']] + EXTRA_COMPONENTS += [ 'contentAreaDropListener.js', 'contentAreaDropListener.manifest', 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/Makefile.in gfx/skia/Makefile.in index ee0efb2..98e169d6f 100644 --- gfx/skia/Makefile.in +++ gfx/skia/Makefile.in @@ -15,6 +15,10 @@ ifeq (qt,$(MOZ_WIDGET_TOOLKIT)) OS_CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PANGO_CFLAGS) $(CAIRO_FT_CFLAGS) endif +ifdef MOZ_NATIVE_HARFBUZZ +OS_CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) +endif + include $(topsrcdir)/config/rules.mk ifeq ($(CPU_ARCH)_$(GNU_CC),arm_1) diff --git gfx/thebes/Makefile.in gfx/thebes/Makefile.in index 45c36ae..79d32cf 100644 --- gfx/thebes/Makefile.in +++ gfx/thebes/Makefile.in @@ -13,6 +13,14 @@ DEFINES := $(filter-out -DUNICODE,$(DEFINES)) CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS) CFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS) +ifdef MOZ_NATIVE_GRAPHITE2 +CXXFLAGS += $(MOZ_GRAPHITE2_CFLAGS) +endif + +ifdef MOZ_NATIVE_HARFBUZZ +CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) +endif + ifeq ($(MOZ_WIDGET_TOOLKIT),android) CXXFLAGS += $(CAIRO_FT_CFLAGS) endif diff --git intl/unicharutil/util/Makefile.in intl/unicharutil/util/Makefile.in index f6b9f7c..60863f4 100644 --- intl/unicharutil/util/Makefile.in +++ intl/unicharutil/util/Makefile.in -@@ -21,3 +21,7 @@ ifdef _MSC_VER - OS_COMPILE_CXXFLAGS += -Zl - OS_COMPILE_CFLAGS += -Zl +@@ -15,3 +15,7 @@ include $(topsrcdir)/config/rules.mk + ifdef ENABLE_INTL_API + LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS) endif + +ifdef MOZ_NATIVE_HARFBUZZ +CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) +endif diff --git netwerk/dns/Makefile.in netwerk/dns/Makefile.in index 1cacbd7..f5d72bb 100644 --- netwerk/dns/Makefile.in +++ netwerk/dns/Makefile.in @@ -5,6 +5,10 @@ include $(topsrcdir)/config/rules.mk +ifdef MOZ_NATIVE_HARFBUZZ +CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) +endif + # Generate the include file containing compact, static definitions # for effective TLD data. etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk index 67f0db9..d42137a 100644 --- toolkit/library/libxul.mk +++ toolkit/library/libxul.mk @@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS) endif +ifdef MOZ_NATIVE_GRAPHITE2 +EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE2_LIBS) +endif + +ifdef MOZ_NATIVE_HARFBUZZ +EXTRA_DSO_LDOPTS += $(MOZ_HARFBUZZ_LIBS) +endif + ifdef MOZ_DMD EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,dmd,$(DIST)/lib) endif Index: branches/2014Q4/www/firefox/files/patch-system-openh264 =================================================================== --- branches/2014Q4/www/firefox/files/patch-system-openh264 (nonexistent) +++ branches/2014Q4/www/firefox/files/patch-system-openh264 (revision 370969) @@ -0,0 +1,218 @@ +# Revert bug 1045209 to allow using absolute path + +diff --git content/media/gmp/GMPChild.cpp content/media/gmp/GMPChild.cpp +index 4165a75..81914d5 100644 +--- content/media/gmp/GMPChild.cpp ++++ content/media/gmp/GMPChild.cpp +@@ -66,19 +66,11 @@ + } + #endif + +- nsCOMPtr parent; +- rv = aLibFile->GetParent(getter_AddRefs(parent)); +- if (NS_FAILED(rv)) { +- return false; +- } +- +- nsAutoString parentLeafName; +- rv = parent->GetLeafName(parentLeafName); +- if (NS_FAILED(rv)) { ++ nsAutoString leafName; ++ if (NS_FAILED(aLibFile->GetLeafName(leafName))) { + return false; + } +- +- nsAutoString baseName(Substring(parentLeafName, 4, parentLeafName.Length() - 1)); ++ nsAutoString baseName(Substring(leafName, 4, leafName.Length() - 1)); + + #if defined(XP_MACOSX) + nsAutoString binaryName = NS_LITERAL_STRING("lib") + baseName + NS_LITERAL_STRING(".dylib"); +diff --git content/media/gmp/GMPParent.cpp content/media/gmp/GMPParent.cpp +index e63453e..bf83b30 100644 +--- content/media/gmp/GMPParent.cpp ++++ content/media/gmp/GMPParent.cpp +@@ -87,23 +87,16 @@ + mService = aService; + mDirectory = aPluginDir; + +- // aPluginDir is // +- // where should be gmp-gmpopenh264 +- nsCOMPtr parent; +- nsresult rv = aPluginDir->GetParent(getter_AddRefs(parent)); +- if (NS_FAILED(rv)) { +- return rv; +- } +- nsAutoString parentLeafName; +- rv = parent->GetLeafName(parentLeafName); ++ nsAutoString leafname; ++ nsresult rv = aPluginDir->GetLeafName(leafname); + if (NS_FAILED(rv)) { + return rv; + } + LOGD(("%s::%s: %p for %s", __CLASS__, __FUNCTION__, this, +- NS_LossyConvertUTF16toASCII(parentLeafName).get())); ++ NS_LossyConvertUTF16toASCII(leafname).get())); + +- MOZ_ASSERT(parentLeafName.Length() > 4); +- mName = Substring(parentLeafName, 4); ++ MOZ_ASSERT(leafname.Length() > 4); ++ mName = Substring(leafname, 4); + + return ReadGMPMetaData(); + } +diff --git toolkit/modules/GMPInstallManager.jsm toolkit/modules/GMPInstallManager.jsm +index 9593492..470384b 100644 +--- toolkit/modules/GMPInstallManager.jsm ++++ toolkit/modules/GMPInstallManager.jsm +@@ -107,6 +107,7 @@ + */ + KEY_LOG_ENABLED: "media.gmp-manager.log", + KEY_ADDON_LAST_UPDATE: "media.{0}.lastUpdate", ++ KEY_ADDON_PATH: "media.{0}.path", + KEY_ADDON_VERSION: "media.{0}.version", + KEY_ADDON_AUTOUPDATE: "media.{0}.autoupdate", + KEY_URL: "media.gmp-manager.url", +@@ -888,9 +889,7 @@ + let gmpAddon = this._gmpAddon; + let installToDirPath = Cc["@mozilla.org/file/local;1"]. + createInstance(Ci.nsIFile); +- let path = OS.Path.join(OS.Constants.Path.profileDir, +- gmpAddon.id, +- gmpAddon.version); ++ let path = OS.Path.join(OS.Constants.Path.profileDir, gmpAddon.id); + installToDirPath.initWithPath(path); + log.info("install to directory path: " + installToDirPath.path); + let gmpInstaller = new GMPExtractor(zipPath, installToDirPath.path); +@@ -899,10 +898,12 @@ + // Success, set the prefs + let now = Math.round(Date.now() / 1000); + GMPPrefs.set(GMPPrefs.KEY_ADDON_LAST_UPDATE, now, gmpAddon.id); +- // Setting the version pref signals installation completion to consumers, +- // if you need to set other prefs etc. do it before this. ++ // Setting the path pref signals installation completion to consumers, ++ // so set the version and potential other information they use first. + GMPPrefs.set(GMPPrefs.KEY_ADDON_VERSION, gmpAddon.version, + gmpAddon.id); ++ GMPPrefs.set(GMPPrefs.KEY_ADDON_PATH, ++ installToDirPath.path, gmpAddon.id); + this._deferred.resolve(extractedPaths); + }, err => { + this._deferred.reject(err); +diff --git toolkit/mozapps/extensions/internal/OpenH264Provider.jsm toolkit/mozapps/extensions/internal/OpenH264Provider.jsm +index 1f3a0b1..93517be 100644 +--- toolkit/mozapps/extensions/internal/OpenH264Provider.jsm ++++ toolkit/mozapps/extensions/internal/OpenH264Provider.jsm +@@ -29,6 +29,7 @@ + const OPENH264_PLUGIN_ID = "gmp-gmpopenh264"; + const OPENH264_PREF_BRANCH = "media." + OPENH264_PLUGIN_ID + "."; + const OPENH264_PREF_ENABLED = "enabled"; ++const OPENH264_PREF_PATH = "path"; + const OPENH264_PREF_VERSION = "version"; + const OPENH264_PREF_LASTUPDATE = "lastUpdate"; + const OPENH264_PREF_AUTOUPDATE = "autoupdate"; +@@ -93,7 +94,12 @@ + + get description() { return pluginsBundle.GetStringFromName("openH264_description"); }, + +- get version() { return prefs.get(OPENH264_PREF_VERSION, ""); }, ++ get version() { ++ if (this.isInstalled) { ++ return prefs.get(OPENH264_PREF_VERSION, ""); ++ } ++ return ""; ++ }, + + get isActive() { return !this.userDisabled; }, + get appDisabled() { return false; }, +@@ -217,24 +223,17 @@ + + get pluginMimeTypes() { return []; }, + get pluginLibraries() { +- if (this.isInstalled) { +- let path = this.version; +- return [path]; +- } +- return []; ++ let path = prefs.get(OPENH264_PREF_PATH, null); ++ return path && path.length ? [OS.Path.basename(path)] : []; + }, + get pluginFullpath() { +- if (this.isInstalled) { +- let path = OS.Path.join(OS.Constants.Path.profileDir, +- OPENH264_PLUGIN_ID, +- this.version); +- return [path]; +- } +- return []; ++ let path = prefs.get(OPENH264_PREF_PATH, null); ++ return path && path.length ? [path] : []; + }, + + get isInstalled() { +- return this.version.length > 0; ++ let path = prefs.get(OPENH264_PREF_PATH, ""); ++ return path.length > 0; + }, + }; + +@@ -245,19 +244,14 @@ + "OpenH264Provider" + "::"); + OpenH264Wrapper._log = Log.repository.getLoggerWithMessagePrefix("Toolkit.OpenH264Provider", + "OpenH264Wrapper" + "::"); +- this.gmpPath = null; +- if (OpenH264Wrapper.isInstalled) { +- this.gmpPath = OS.Path.join(OS.Constants.Path.profileDir, +- OPENH264_PLUGIN_ID, +- prefs.get(OPENH264_PREF_VERSION, null)); +- } ++ this.gmpPath = prefs.get(OPENH264_PREF_PATH, null); + let enabled = prefs.get(OPENH264_PREF_ENABLED, true); + this._log.trace("startup() - enabled=" + enabled + ", gmpPath="+this.gmpPath); + + + Services.obs.addObserver(this, AddonManager.OPTIONS_NOTIFICATION_DISPLAYED, false); + prefs.observe(OPENH264_PREF_ENABLED, this.onPrefEnabledChanged, this); +- prefs.observe(OPENH264_PREF_VERSION, this.onPrefVersionChanged, this); ++ prefs.observe(OPENH264_PREF_PATH, this.onPrefPathChanged, this); + prefs.observe(OPENH264_PREF_LOGGING, configureLogging); + + if (this.gmpPath && enabled) { +@@ -270,7 +264,7 @@ + this._log.trace("shutdown()"); + Services.obs.removeObserver(this, AddonManager.OPTIONS_NOTIFICATION_DISPLAYED); + prefs.ignore(OPENH264_PREF_ENABLED, this.onPrefEnabledChanged, this); +- prefs.ignore(OPENH264_PREF_VERSION, this.onPrefVersionChanged, this); ++ prefs.ignore(OPENH264_PREF_PATH, this.onPrefPathChanged, this); + prefs.ignore(OPENH264_PREF_LOGGING, configureLogging); + + return OpenH264Wrapper._updateTask; +@@ -296,25 +290,20 @@ + wrapper); + }, + +- onPrefVersionChanged: function() { ++ onPrefPathChanged: function() { + let wrapper = OpenH264Wrapper; + + AddonManagerPrivate.callAddonListeners("onUninstalling", wrapper, false); + if (this.gmpPath) { +- this._log.info("onPrefVersionChanged() - unregistering gmp directory " + this.gmpPath); ++ this._log.info("onPrefPathChanged() - removing gmp directory " + this.gmpPath); + gmpService.removePluginDirectory(this.gmpPath); + } + AddonManagerPrivate.callAddonListeners("onUninstalled", wrapper); + + AddonManagerPrivate.callInstallListeners("onExternalInstall", null, wrapper, null, false); +- this.gmpPath = null; +- if (OpenH264Wrapper.isInstalled) { +- this.gmpPath = OS.Path.join(OS.Constants.Path.profileDir, +- OPENH264_PLUGIN_ID, +- prefs.get(OPENH264_PREF_VERSION, null)); +- } ++ this.gmpPath = prefs.get(OPENH264_PREF_PATH, null); + if (this.gmpPath && wrapper.isActive) { +- this._log.info("onPrefVersionChanged() - registering gmp directory " + this.gmpPath); ++ this._log.info("onPrefPathChanged() - adding gmp directory " + this.gmpPath); + gmpService.addPluginDirectory(this.gmpPath); + } + AddonManagerPrivate.callAddonListeners("onInstalled", wrapper); Property changes on: branches/2014Q4/www/firefox/files/patch-system-openh264 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/firefox-esr/Makefile =================================================================== --- branches/2014Q4/www/firefox-esr/Makefile (revision 370968) +++ branches/2014Q4/www/firefox-esr/Makefile (revision 370969) @@ -1,108 +1,108 @@ # Created by: Alan Eldridge # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 31.1.1 +DISTVERSION= 31.2.0 DISTVERSIONSUFFIX=esr.source PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source PKGNAMESUFFIX= -esr MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \ nss>=3.16.2:${PORTSDIR}/security/nss \ libevent2>=2.0.21_2:${PORTSDIR}/devel/libevent2 \ cairo>=1.12.16_1,2:${PORTSDIR}/graphics/cairo \ soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \ harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \ graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \ libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \ opus>=1.1:${PORTSDIR}/audio/opus \ libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \ sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ zip:${PORTSDIR}/archivers/zip \ unzip:${PORTSDIR}/archivers/unzip LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l USE_AUTOTOOLS= autoconf213:env OBJDIR_BUILD= # in-tree build broken after bug 789837 USE_GECKO= gecko CPE_PRODUCT= ${PORTNAME}_esr CONFLICTS= firefox-3[02-9].* firefox-2[0-35-9].* MOZ_PKGCONFIG_FILES= # empty USE_MOZILLA= # empty MOZILLA_NAME= Firefox WANT_GNOME= yes USE_QT5= # empty QT_NONSTANDARD= yes ALL_TARGET= default GNU_CONFIGURE= yes USE_GL= gl USES= dos2unix tar:bzip2 DOS2UNIX_FILES= media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp NO_MOZPKGINSTALL=yes 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 .include "${.CURDIR}/../../www/firefox/Makefile.options" .include WRKSRC:= ${WRKDIR}/mozilla-esr31 # avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1> -# http://svnweb.freebsd.org/changeset/base/255804 -.if ${CHOSEN_COMPILER_TYPE} == clang && ${ARCH} == i386 && ${OSVERSION} < 1000056 +# To be removed when 9.2R goes EOL. http://llvm.org/PR15840 +.if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION:M3[23]} . if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} BROKEN= Cannot build with OPTIMIZED_CFLAGS option due to \ a ${CHOSEN_COMPILER_TYPE} bug: unset the option or \ use FAVORITE_COMPILER=gcc in Makefile.local/make.conf # apply workaround only for -O2 or greater . elif ${CXXFLAGS:M-O*} && ! ${CXXFLAGS:M-O[01]} . if ${MACHINE_CPU:Msse2} CXXFLAGS+= -msse2 . else CXXFLAGS+= -O1 . endif . endif .endif .if ${PORT_OPTIONS:MALSA} RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib .endif .if ${PORT_OPTIONS:MGSTREAMER} RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:${PORTSDIR}/multimedia/gstreamer1-libav .endif 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 '/MOZPNG/s/=[0-9]*/=10511/' \ ${WRKSRC}/configure.in @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/browser/app/nsBrowserApp.cpp pre-configure: (cd ${WRKSRC} && ${AUTOCONF}) (cd ${WRKSRC}/js/src/ && ${AUTOCONF}) 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/2014Q4/www/firefox-esr/distinfo =================================================================== --- branches/2014Q4/www/firefox-esr/distinfo (revision 370968) +++ branches/2014Q4/www/firefox-esr/distinfo (revision 370969) @@ -1,2 +1,2 @@ -SHA256 (firefox-31.1.1esr.source.tar.bz2) = 79be660e766b5adfaf3fc8031804bd64d27d330231f0de5995dd89671d1998d2 -SIZE (firefox-31.1.1esr.source.tar.bz2) = 147904415 +SHA256 (firefox-31.2.0esr.source.tar.bz2) = 02de399cbf467ea536042008d1e0cd4ac6ffdc9b469d3189384f02ec0590d378 +SIZE (firefox-31.2.0esr.source.tar.bz2) = 147362334 Index: branches/2014Q4/www/firefox-esr/files/patch-clang34-disable-stdcall =================================================================== --- branches/2014Q4/www/firefox-esr/files/patch-clang34-disable-stdcall (revision 370968) +++ branches/2014Q4/www/firefox-esr/files/patch-clang34-disable-stdcall (nonexistent) @@ -1,13 +0,0 @@ -# http://llvm.org/bugs/show_bug.cgi?id=19007 - ---- xpcom/base/nscore.h~ -+++ xpcom/base/nscore.h -@@ -110,7 +110,7 @@ - * NS_HIDDEN_(int) NS_FASTCALL func2(char *foo); - */ - --#if defined(__i386__) && defined(__GNUC__) -+#if defined(__i386__) && defined(__GNUC__) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0) - #define NS_FASTCALL __attribute__ ((regparm (3), stdcall)) - #define NS_CONSTRUCTOR_FASTCALL __attribute__ ((regparm (3), stdcall)) - #elif defined(XP_WIN) && !defined(_WIN64) Property changes on: branches/2014Q4/www/firefox-esr/files/patch-clang34-disable-stdcall ___________________________________________________________________ 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/2014Q4/www/firefox-esr/files/patch-bug1021761 =================================================================== --- branches/2014Q4/www/firefox-esr/files/patch-bug1021761 (nonexistent) +++ branches/2014Q4/www/firefox-esr/files/patch-bug1021761 (revision 370969) @@ -0,0 +1,1092 @@ +diff --git configure.in configure.in +index 48e60c0..ec08417 100644 +--- configure.in ++++ configure.in +@@ -5438,6 +5438,60 @@ 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|NetBSD|GNU/kFreeBSD) ++ MOZ_OSS=1 ++ ;; ++esac ++ ++MOZ_ARG_DISABLE_BOOL(oss, ++[ --disable-oss Disable OpenSoundSystem support], ++ MOZ_OSS=, ++ MOZ_OSS=1) ++ ++_SAVE_CFLAGS=$CFLAGS ++_SAVE_LIBS=$LIBS ++if test -n "$MOZ_OSS"; then ++ dnl Prefer 4Front implementation ++ AC_MSG_CHECKING([MOZ_OSS_CFLAGS]) ++ if test -z "$MOZ_OSS_CFLAGS"; then ++ for oss_conf in /etc/oss.conf /usr/local/etc/oss.conf; do ++ if test -e "$oss_conf"; then ++ . "$oss_conf" ++ fi ++ done ++ if test -d "$OSSLIBDIR"; then ++ 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 linux/soundcard.h soundcard.h) ++ ++ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \ ++ "$ac_cv_header_linux_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="-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 ================================== + +@@ -5451,12 +5505,23 @@ MOZ_ARG_ENABLE_BOOL(alsa, + MOZ_ALSA=1, + MOZ_ALSA=) + ++MOZ_ARG_DISABLE_BOOL(alsa-dlopen, ++[ --disable-alsa-dlopen Disable runtime linking of libasound.so], ++ DISABLE_LIBASOUND_DLOPEN=1, ++ DISABLE_LIBASOUND_DLOPEN=) ++ + if test -n "$MOZ_ALSA"; then + PKG_CHECK_MODULES(MOZ_ALSA, alsa, , + [echo "$MOZ_ALSA_PKG_ERRORS" + AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])]) + fi + ++if test -n "$DISABLE_LIBASOUND_DLOPEN"; then ++ AC_DEFINE(DISABLE_LIBASOUND_DLOPEN) ++else ++ MOZ_ALSA_LIBS= ++fi ++ + AC_SUBST(MOZ_ALSA) + + 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); +@@ -313,10 +360,10 @@ alsa_refill_stream(cubeb_stream * stm) + return ERROR; + } + if (got > 0) { +- snd_pcm_sframes_t wrote = snd_pcm_writei(stm->pcm, p, got); ++ snd_pcm_sframes_t 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 +@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, + latency = latency < 500 ? 500 : latency; + } + +- r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, +- stm->params.channels, stm->params.rate, 1, +- latency * 1000); ++ 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) { + alsa_stream_destroy(stm); + return CUBEB_ERROR_INVALID_FORMAT; + } + +- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size); ++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->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); +@@ -937,12 +1043,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_any(stm->pcm, hw_params); ++ rv = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params); + if (rv < 0) { + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_get_channels_max(hw_params, max_channels); ++ rv = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels); + if (rv < 0) { + return CUBEB_ERROR; + } +@@ -962,34 +1068,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. */ +- rv = snd_pcm_open(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); ++ rv = WRAP(snd_pcm_open)(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); + if (rv < 0) { + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_any(pcm, hw_params); ++ rv = WRAP(snd_pcm_hw_params_any)(pcm, hw_params); + if (rv < 0) { +- snd_pcm_close(pcm); ++ WRAP(snd_pcm_close)(pcm); + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_get_rate(hw_params, rate, &dir); ++ rv = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir); + if (rv >= 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; + +- rv = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL); ++ rv = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL); + if (rv < 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,399 @@ ++/* ++ * 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 ++#elif defined(HAVE_LINUX_SOUNDCARD_H) ++#include ++#else ++#include ++#endif ++#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, 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_stream_params 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; ++ ++ 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 = stream_params; ++ stream->volume = 1.0; ++ stream->panning = 0.0; ++ ++ oss_try_set_latency(stream, latency); ++ ++ stream->floating = 0; ++ SET(SNDCTL_DSP_CHANNELS, stream_params.channels); ++ SET(SNDCTL_DSP_SPEED, stream_params.rate); ++ switch (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 ++}; +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 toolkit/library/libxul.mk toolkit/library/libxul.mk +index e191f13..4fb268a 100644 +--- toolkit/library/libxul.mk ++++ toolkit/library/libxul.mk +@@ -146,6 +146,10 @@ OS_LIBS += $(call EXPAND_LIBNAME,secur32 + endif + endif + ++ifdef MOZ_OSS ++EXTRA_DSO_LDOPTS += $(MOZ_OSS_LIBS) ++endif ++ + ifdef MOZ_ALSA + EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS) + endif Property changes on: branches/2014Q4/www/firefox-esr/files/patch-bug1021761 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/firefox-esr/files/patch-bug1073709 =================================================================== --- branches/2014Q4/www/firefox-esr/files/patch-bug1073709 (nonexistent) +++ branches/2014Q4/www/firefox-esr/files/patch-bug1073709 (revision 370969) @@ -0,0 +1,18 @@ +diff --git mfbt/Atomics.h mfbt/Atomics.h +index 495a9d3..c7f7601 100644 +--- mfbt/Atomics.h ++++ mfbt/Atomics.h +@@ -34,10 +34,12 @@ + * loose typing of the atomic builtins. GCC 4.5 and 4.6 lacks inline + * definitions for unspecialized std::atomic and causes linking errors. + * Therefore, we require at least 4.7.0 for using libstdc++. ++ * ++ * libc++ is only functional with clang. + */ + # if MOZ_USING_LIBSTDCXX && MOZ_LIBSTDCXX_VERSION_AT_LEAST(4, 7, 0) + # define MOZ_HAVE_CXX11_ATOMICS +-# elif MOZ_USING_LIBCXX ++# elif MOZ_USING_LIBCXX && defined(__clang__) + # define MOZ_HAVE_CXX11_ATOMICS + # endif + /* Property changes on: branches/2014Q4/www/firefox-esr/files/patch-bug1073709 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/firefox-esr/files/patch-bug1076983 =================================================================== --- branches/2014Q4/www/firefox-esr/files/patch-bug1076983 (nonexistent) +++ branches/2014Q4/www/firefox-esr/files/patch-bug1076983 (revision 370969) @@ -0,0 +1,45 @@ +commit e10ee74 +Author: Martin Thomson +Date: Tue Oct 14 17:17:35 2014 -0700 + + Bug 1076983 - Disabling SSL 3.0 with pref +--- + netwerk/base/public/security-prefs.js | 2 +- + security/manager/ssl/src/nsNSSComponent.cpp | 7 +++---- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git netwerk/base/public/security-prefs.js netwerk/base/public/security-prefs.js +index 352552e..c12731b 100644 +--- netwerk/base/public/security-prefs.js ++++ netwerk/base/public/security-prefs.js +@@ -2,7 +2,7 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +-pref("security.tls.version.min", 0); ++pref("security.tls.version.min", 1); + pref("security.tls.version.max", 3); + + pref("security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref", false); +diff --git security/manager/ssl/src/nsNSSComponent.cpp security/manager/ssl/src/nsNSSComponent.cpp +index 8cab67b..772959d 100644 +--- security/manager/ssl/src/nsNSSComponent.cpp ++++ security/manager/ssl/src/nsNSSComponent.cpp +@@ -829,14 +829,13 @@ void nsNSSComponent::setValidationOptions(bool isInitialSetting, + mDefaultCertVerifier = new SharedCertVerifier(odc, osc, ogc, pinningMode); + } + +-// Enable the TLS versions given in the prefs, defaulting to SSL 3.0 (min +-// version) and TLS 1.2 (max version) when the prefs aren't set or set to +-// invalid values. ++// Enable the TLS versions given in the prefs, defaulting to TLS 1.0 (min) and ++// TLS 1.2 (max) when the prefs aren't set or set to invalid values. + nsresult + nsNSSComponent::setEnabledTLSVersions() + { + // keep these values in sync with security-prefs.js +- static const int32_t PSM_DEFAULT_MIN_TLS_VERSION = 0; ++ static const int32_t PSM_DEFAULT_MIN_TLS_VERSION = 1; + static const int32_t PSM_DEFAULT_MAX_TLS_VERSION = 3; + + int32_t minVersion = Preferences::GetInt("security.tls.version.min", Property changes on: branches/2014Q4/www/firefox-esr/files/patch-bug1076983 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/firefox-esr-i18n/Makefile =================================================================== --- branches/2014Q4/www/firefox-esr-i18n/Makefile (revision 370968) +++ branches/2014Q4/www/firefox-esr-i18n/Makefile (revision 370969) @@ -1,96 +1,89 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= firefox -PORTVERSION= 31.1.1 +PORTVERSION= 31.2.0 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}esr/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:${PORTSDIR}/archivers/zip -USES= zip:infozip gecko:firefox +USES= zip:infozip gecko:firefox,build USE_XPI= firefox NO_ARCH= yes USE_SUBMAKE= yes WDIR= langpack-*@firefox.mozilla.org XPI_DISTNAMES= ${FIREFOX_I18N_} PLIST?= ${WRKDIR}/plist -PLISTD?= ${WRKDIR}/plist_dirs PLISTF?= ${WRKDIR}/plist_files .include "${.CURDIR}/Makefile.option" .include -# make sure that firefox always gets upgraded before this port -BUILD_DEPENDS+= firefox-esr>=0:${PORTSDIR}/www/firefox-esr - .ifndef WITHOUT_SWITCHER RUN_DEPENDS+= xpi-quick-locale-switcher>=0:${PORTSDIR}/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} && \ - ${FIND} -d * -type d | \ - ${SED} -e "s|^|@dirrm lib/xpi/langpack-$$lang@firefox.mozilla.org/|" >> ${PLISTD}; \ + ${SED} -e "s|^|lib/xpi/langpack-$$lang@firefox.mozilla.org/|" >> ${PLISTF}; \ done ${CAT} ${PLISTF} | ${SORT} >> ${PLIST} - ${CAT} ${PLISTD} | ${SORT} -r >> ${PLIST} do-install: @${MKDIR} ${STAGEDIR}${XPI_LIBDIR} ${STAGEDIR}${XPI_SLDIRS_ALL} 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} ${XPI_LIBDIR}; { ${RM} -f $$_dir/${WDIR} ; }' ${_A} post-patch: ${FIND} ${WRKSRC} -name install.rdf -print0 | \ ${XARGS} -0L1 ${REINPLACE_CMD} -i '' -e '/ Index: branches/2014Q4/www/firefox-esr-i18n/distinfo =================================================================== --- branches/2014Q4/www/firefox-esr-i18n/distinfo (revision 370968) +++ branches/2014Q4/www/firefox-esr-i18n/distinfo (revision 370969) @@ -1,178 +1,178 @@ -SHA256 (xpi/firefox-31.1.1/ach.xpi) = 6fdf1f2e6656c3a080a05f6a613578352eb61a437247c72f94cf4503c67d8ab0 -SIZE (xpi/firefox-31.1.1/ach.xpi) = 445521 -SHA256 (xpi/firefox-31.1.1/af.xpi) = 5874296d3904ae2badcf6c3b9c429bf3293a1460465ec17b1042dc31d2c5eefb -SIZE (xpi/firefox-31.1.1/af.xpi) = 431286 -SHA256 (xpi/firefox-31.1.1/an.xpi) = 3c095a587b861f5a2b5e3ffdf30baba14f48b216c9f45c400c1bf7a6b9a4c578 -SIZE (xpi/firefox-31.1.1/an.xpi) = 407347 -SHA256 (xpi/firefox-31.1.1/ar.xpi) = 03eecec3999d308e11f5d6dbd95f3bc20c4c6764f3fd742631d966cd22c1b1a9 -SIZE (xpi/firefox-31.1.1/ar.xpi) = 460019 -SHA256 (xpi/firefox-31.1.1/as.xpi) = 4eb785835ac928665f9f7c24c3c6d3f9b4c85c2e88f637c9dca92ac1dd154e79 -SIZE (xpi/firefox-31.1.1/as.xpi) = 448764 -SHA256 (xpi/firefox-31.1.1/ast.xpi) = c4200329d076109584df6a3098918c8d39441b75e45fa9cdfed24ed9238993c8 -SIZE (xpi/firefox-31.1.1/ast.xpi) = 352536 -SHA256 (xpi/firefox-31.1.1/be.xpi) = d5343bbedf7c50466ce1d7e62cb362009448efddfe93fe30a030443f92f60a34 -SIZE (xpi/firefox-31.1.1/be.xpi) = 378864 -SHA256 (xpi/firefox-31.1.1/bg.xpi) = 8b2c1106301953f967dc47535b19ea86b626ec9ea36f52e6247e4ec96d4998ca -SIZE (xpi/firefox-31.1.1/bg.xpi) = 438256 -SHA256 (xpi/firefox-31.1.1/bn-BD.xpi) = 1ce1de4604dfbd5c80ef714e2e1475702a9dadaaa3fd208867a5e991271423ab -SIZE (xpi/firefox-31.1.1/bn-BD.xpi) = 472822 -SHA256 (xpi/firefox-31.1.1/bn-IN.xpi) = 2d7ba974217ec760593a84b8cf06c6c4db734e8f7ab4e43a297b9d943fb972f4 -SIZE (xpi/firefox-31.1.1/bn-IN.xpi) = 462788 -SHA256 (xpi/firefox-31.1.1/br.xpi) = 17eb535edbc81938d2e1921ccc8cfebfc2b1196d5eaa9188030c016c8f4eeab8 -SIZE (xpi/firefox-31.1.1/br.xpi) = 389901 -SHA256 (xpi/firefox-31.1.1/bs.xpi) = 6d9c82c976cc17db39b04d216c86eb4a209355257c93025779dd423d735ee5bb -SIZE (xpi/firefox-31.1.1/bs.xpi) = 429210 -SHA256 (xpi/firefox-31.1.1/ca.xpi) = bfe41867be0b9f537b55f7ed08818050794db65262690c2f067b009487cac302 -SIZE (xpi/firefox-31.1.1/ca.xpi) = 403771 -SHA256 (xpi/firefox-31.1.1/cs.xpi) = f3cc9f6ae8052375b913004a9a8fc32af3cbecdadb33fa550eeec277046400be -SIZE (xpi/firefox-31.1.1/cs.xpi) = 391174 -SHA256 (xpi/firefox-31.1.1/csb.xpi) = fccdbc4ad797ed4a030713af86db74fd785bf6ed1491fe630f9a6fb1654ba866 -SIZE (xpi/firefox-31.1.1/csb.xpi) = 383891 -SHA256 (xpi/firefox-31.1.1/cy.xpi) = 8a89d240e1dd6a836c97e1f23b252211fec9bd489c287dbac4a7a382d2d7fd56 -SIZE (xpi/firefox-31.1.1/cy.xpi) = 390923 -SHA256 (xpi/firefox-31.1.1/da.xpi) = c838feb1fe2974bb3dbafa662d4598a9dc2fd19e44a87ae27cbc7a8bf208c8a3 -SIZE (xpi/firefox-31.1.1/da.xpi) = 397943 -SHA256 (xpi/firefox-31.1.1/de.xpi) = 7f40ed6ade9bbb99cfe98097014f6a736c3c548d31a490ec44198497fdab293d -SIZE (xpi/firefox-31.1.1/de.xpi) = 395360 -SHA256 (xpi/firefox-31.1.1/el.xpi) = bf3cadfb7a1b5e55174c27865629d64cfda90afc37acb16175623ec054519b9b -SIZE (xpi/firefox-31.1.1/el.xpi) = 443178 -SHA256 (xpi/firefox-31.1.1/en-GB.xpi) = 223532757c5cbf945fd623db9decfb47576e54fe8df5e30e28cb29f24c5631fd -SIZE (xpi/firefox-31.1.1/en-GB.xpi) = 390314 -SHA256 (xpi/firefox-31.1.1/en-US.xpi) = 1677b307f95d3d0e27bdb156390d7e7baf8abf735b674828905d52d9a2c719c0 -SIZE (xpi/firefox-31.1.1/en-US.xpi) = 422983 -SHA256 (xpi/firefox-31.1.1/en-ZA.xpi) = 43b63fd60c4b2df5961736b9c79bf471ec0fa8b6223e3e37eae7c5e5d932e9dc -SIZE (xpi/firefox-31.1.1/en-ZA.xpi) = 388724 -SHA256 (xpi/firefox-31.1.1/eo.xpi) = 05a6c5e36a55abfa57d51fa2462177e1504b2316f76dc8f290d5d27ed2a0a0d1 -SIZE (xpi/firefox-31.1.1/eo.xpi) = 432027 -SHA256 (xpi/firefox-31.1.1/es-AR.xpi) = 215358c70e1c0a1b7d17175d34f71ac01ce097a54894dd11b10dc047cd0cfb00 -SIZE (xpi/firefox-31.1.1/es-AR.xpi) = 400133 -SHA256 (xpi/firefox-31.1.1/es-CL.xpi) = c4ad585111d1ee2a15b2fe9b25de34b28076e19a6c61adaea458fd09de9c904d -SIZE (xpi/firefox-31.1.1/es-CL.xpi) = 343004 -SHA256 (xpi/firefox-31.1.1/es-ES.xpi) = 3a9f723c6ab2e1ab0d3b54b3b8fd1af6eee80b85d22bd2a70d9a1be377e13dd5 -SIZE (xpi/firefox-31.1.1/es-ES.xpi) = 336076 -SHA256 (xpi/firefox-31.1.1/es-MX.xpi) = 6035872b5923648fea348a97e7728a82fa5efb576fee5ca081fd529be37265af -SIZE (xpi/firefox-31.1.1/es-MX.xpi) = 402868 -SHA256 (xpi/firefox-31.1.1/et.xpi) = 21abe762a361f7e4c46653ceb76bd403fe89ee72fd3747b12457ec6fa152474d -SIZE (xpi/firefox-31.1.1/et.xpi) = 390557 -SHA256 (xpi/firefox-31.1.1/eu.xpi) = e25a2edd774fac26ec91bf8d14682f861529955f9744f797d711341e5df52cbd -SIZE (xpi/firefox-31.1.1/eu.xpi) = 413195 -SHA256 (xpi/firefox-31.1.1/fa.xpi) = 4380d34f6faea6768e36ed6378786a113150da69f3e7a9ed6cd6f3ef3478a2d4 -SIZE (xpi/firefox-31.1.1/fa.xpi) = 461053 -SHA256 (xpi/firefox-31.1.1/ff.xpi) = 7b98d33bcfbe159dadc1ecd1b81f79881c8774cf1a6cc3fa5d90f5c0974c2082 -SIZE (xpi/firefox-31.1.1/ff.xpi) = 400339 -SHA256 (xpi/firefox-31.1.1/fi.xpi) = a6181675e753d2f38505a829409f58264a4d48c9e7eb88f67bada06143a542f8 -SIZE (xpi/firefox-31.1.1/fi.xpi) = 392935 -SHA256 (xpi/firefox-31.1.1/fr.xpi) = af8d1c53d9aab9610c5832a55ecc0681cf242b2dfefb10d32be5a7c7d5df7d92 -SIZE (xpi/firefox-31.1.1/fr.xpi) = 406658 -SHA256 (xpi/firefox-31.1.1/fy-NL.xpi) = 69f6f76874531b78a903353e42cb4c6be1b48cde6a826657d5750295bde241ea -SIZE (xpi/firefox-31.1.1/fy-NL.xpi) = 402126 -SHA256 (xpi/firefox-31.1.1/ga-IE.xpi) = 556ba1ab2358d4b0342d0857d33fe30cce0159b5b56c868795ee07ef52898102 -SIZE (xpi/firefox-31.1.1/ga-IE.xpi) = 410272 -SHA256 (xpi/firefox-31.1.1/gd.xpi) = 62cc0784e8505aa65bd473013d29ce340733c7bd8310a58ae8864e182b9e82a9 -SIZE (xpi/firefox-31.1.1/gd.xpi) = 403209 -SHA256 (xpi/firefox-31.1.1/gl.xpi) = cac80900712c81e12ec130c209765bf68b46fcff5eabee8b9152089903d77930 -SIZE (xpi/firefox-31.1.1/gl.xpi) = 390795 -SHA256 (xpi/firefox-31.1.1/gu-IN.xpi) = 371f13f674423f1dfd88ab7c64883440afed9dee347116dddc1aab6cb86e9f0f -SIZE (xpi/firefox-31.1.1/gu-IN.xpi) = 423698 -SHA256 (xpi/firefox-31.1.1/he.xpi) = 5d71c412e54e4a99050f57b46ab17f304a09b237fec129a1442dde5cc6911aee -SIZE (xpi/firefox-31.1.1/he.xpi) = 427826 -SHA256 (xpi/firefox-31.1.1/hi-IN.xpi) = 05d20383bc27e75c6535101a1eadc5f60d52b618d0cddfbe04161852bc31c4e5 -SIZE (xpi/firefox-31.1.1/hi-IN.xpi) = 441597 -SHA256 (xpi/firefox-31.1.1/hr.xpi) = ce3c722bd803b404600a12cbcee089667b069b012368b3d7970d00e16be501c1 -SIZE (xpi/firefox-31.1.1/hr.xpi) = 424567 -SHA256 (xpi/firefox-31.1.1/hsb.xpi) = ad80ddd7dbd7c8beef870c5260b1a57071dee059f28ede6dd9a5d8499fe5ab6d -SIZE (xpi/firefox-31.1.1/hsb.xpi) = 413272 -SHA256 (xpi/firefox-31.1.1/hu.xpi) = 56106ebf8f077e0164daf24ec2958c2827ab8faa6c82674702a4da36b71775fa -SIZE (xpi/firefox-31.1.1/hu.xpi) = 398840 -SHA256 (xpi/firefox-31.1.1/hy-AM.xpi) = aa5066e369b9059f5703472e9aa4b74eef359421a18c32e32d5ab096ebf4d744 -SIZE (xpi/firefox-31.1.1/hy-AM.xpi) = 478939 -SHA256 (xpi/firefox-31.1.1/id.xpi) = 4dae7e640509860e73039c62cce36547c7548807768ed76f106933962eb5924f -SIZE (xpi/firefox-31.1.1/id.xpi) = 378497 -SHA256 (xpi/firefox-31.1.1/is.xpi) = 6f333874466de53763ab43c17a0e19ad072bb08e07c312ee2d45246f24216a06 -SIZE (xpi/firefox-31.1.1/is.xpi) = 427523 -SHA256 (xpi/firefox-31.1.1/it.xpi) = bea9801005341306abb709f5b5e1baf6c24454b1f6883e114d4d7ec8c430f4a0 -SIZE (xpi/firefox-31.1.1/it.xpi) = 331101 -SHA256 (xpi/firefox-31.1.1/ja.xpi) = 8034e32113788b71c4a5461d435eaf5c9e0e29fc6253c08ca6681c0aa2c587cf -SIZE (xpi/firefox-31.1.1/ja.xpi) = 421664 -SHA256 (xpi/firefox-31.1.1/kk.xpi) = 928da032eaca0c2d00adc8d18909f48a4ebe314f1bdcfecb4226f2b201ffc90c -SIZE (xpi/firefox-31.1.1/kk.xpi) = 439312 -SHA256 (xpi/firefox-31.1.1/km.xpi) = a9766a123776bf9e0bab3fe1dc9a5ec1e8547a604eeffdb83dcfa3588764fffe -SIZE (xpi/firefox-31.1.1/km.xpi) = 506672 -SHA256 (xpi/firefox-31.1.1/kn.xpi) = c34a3b1b7a6d73037c0aff4b439d1bd4a763ca30ac6384eefa572a007258ab07 -SIZE (xpi/firefox-31.1.1/kn.xpi) = 459087 -SHA256 (xpi/firefox-31.1.1/ko.xpi) = 7786691a1cdce405825be81ca3a34e334b0faa7a5b9aef0138a403946d9da2db -SIZE (xpi/firefox-31.1.1/ko.xpi) = 403010 -SHA256 (xpi/firefox-31.1.1/ku.xpi) = 016ac15dbe6ec47539caff01c3da210f30c9b7f2a762c4b2e3b2c90555b71078 -SIZE (xpi/firefox-31.1.1/ku.xpi) = 420259 -SHA256 (xpi/firefox-31.1.1/lij.xpi) = 22d338a6c0a79637faf87e6ed4f5bcc3bcfb1eddf24c302f316c7c5ca4980a7d -SIZE (xpi/firefox-31.1.1/lij.xpi) = 386060 -SHA256 (xpi/firefox-31.1.1/lt.xpi) = 1af446a4e81b6deadc7f5b8a1636970af443a2559f8d567dee1b3a57e33f3919 -SIZE (xpi/firefox-31.1.1/lt.xpi) = 435627 -SHA256 (xpi/firefox-31.1.1/lv.xpi) = b97839604f2f11447311b002cb0bc2b10d1f05df186d8d993a4deac9fae49c20 -SIZE (xpi/firefox-31.1.1/lv.xpi) = 398772 -SHA256 (xpi/firefox-31.1.1/mai.xpi) = a9e704365371a55f301bbca9b6cf637df7b31023337af2b0e3d8c756b3fea340 -SIZE (xpi/firefox-31.1.1/mai.xpi) = 445080 -SHA256 (xpi/firefox-31.1.1/mk.xpi) = ba59a414acd349cfc8854c35cbb41e479469437addb89dcae88eb511051e0691 -SIZE (xpi/firefox-31.1.1/mk.xpi) = 475679 -SHA256 (xpi/firefox-31.1.1/ml.xpi) = d7915d1dae94507e63bce378a0c39343328577206134ec58481838e164b26130 -SIZE (xpi/firefox-31.1.1/ml.xpi) = 466450 -SHA256 (xpi/firefox-31.1.1/mr.xpi) = 6363700e29ddd2908ddffbff2dc33d4a1a18d1a2f76e71c965fd268842b9eaa9 -SIZE (xpi/firefox-31.1.1/mr.xpi) = 451487 -SHA256 (xpi/firefox-31.1.1/ms.xpi) = 604dc5f23278c91fe6259cebc91beab8b5cbcf09cfe308daa438612fb2a03fdd -SIZE (xpi/firefox-31.1.1/ms.xpi) = 436427 -SHA256 (xpi/firefox-31.1.1/nb-NO.xpi) = af19788ad67b8ebbdb6abe50b18650d3655c0fb95d602867eaea86bcf5715d28 -SIZE (xpi/firefox-31.1.1/nb-NO.xpi) = 392201 -SHA256 (xpi/firefox-31.1.1/nl.xpi) = ce4db00532785488cd10450231cef90aa0e93572c83c8da9cfd6a91c631bc1b0 -SIZE (xpi/firefox-31.1.1/nl.xpi) = 391081 -SHA256 (xpi/firefox-31.1.1/nn-NO.xpi) = 9dfb2fb13405ed19d8d880623d58457738a8984d44b47298649deb41c052ad68 -SIZE (xpi/firefox-31.1.1/nn-NO.xpi) = 386477 -SHA256 (xpi/firefox-31.1.1/or.xpi) = 1f179e14464af7832aa85ef3a392735a5d08e6ef8ad415d5670cda3a121310e6 -SIZE (xpi/firefox-31.1.1/or.xpi) = 464946 -SHA256 (xpi/firefox-31.1.1/pa-IN.xpi) = 78a26f4751d5a7018af41084d7e078d6741465f49ae6b2d0dc89e3d3f4d4848f -SIZE (xpi/firefox-31.1.1/pa-IN.xpi) = 439522 -SHA256 (xpi/firefox-31.1.1/pl.xpi) = 91e8441981e9684f8c521d4fbb4b393748de2f03aca8fe08c4849eb1189cfa98 -SIZE (xpi/firefox-31.1.1/pl.xpi) = 374942 -SHA256 (xpi/firefox-31.1.1/pt-BR.xpi) = 0febcf4143322916cc959a986ef1bb0d3dadd3ad562861c58aca0c4952348831 -SIZE (xpi/firefox-31.1.1/pt-BR.xpi) = 405761 -SHA256 (xpi/firefox-31.1.1/pt-PT.xpi) = 5ea85bd2f7dc5b59313e7951fd220fb9156b82d0244440b530ce920f8d8c4870 -SIZE (xpi/firefox-31.1.1/pt-PT.xpi) = 386540 -SHA256 (xpi/firefox-31.1.1/rm.xpi) = aa669ecb03ce28ef863bd2aec634f56bc893e264c29e32580bb0b2582619dbd8 -SIZE (xpi/firefox-31.1.1/rm.xpi) = 399482 -SHA256 (xpi/firefox-31.1.1/ro.xpi) = 129f2f91ccd94e910071ca2c04abc70df6ea343454c6b7cbb91fa70a09c57a40 -SIZE (xpi/firefox-31.1.1/ro.xpi) = 439583 -SHA256 (xpi/firefox-31.1.1/ru.xpi) = 653b01e41b465517f92ef604c1ef050bbacd9890b10a53af4324382d174bf4cb -SIZE (xpi/firefox-31.1.1/ru.xpi) = 368093 -SHA256 (xpi/firefox-31.1.1/si.xpi) = 06861fc68e466857de23928263c53bec114eb48d02b86555b3b0b2ebea6eaa29 -SIZE (xpi/firefox-31.1.1/si.xpi) = 463420 -SHA256 (xpi/firefox-31.1.1/sk.xpi) = fbb10e2de2d07d5573d9940fa7a56214619c1454b3e53698d455249fd15597fe -SIZE (xpi/firefox-31.1.1/sk.xpi) = 413998 -SHA256 (xpi/firefox-31.1.1/sl.xpi) = 639948ffb5acd1871ea736256eb6c34e139d1bf5de89a16ff98382d73c4b6389 -SIZE (xpi/firefox-31.1.1/sl.xpi) = 387330 -SHA256 (xpi/firefox-31.1.1/son.xpi) = ef988159928608d56ea34af4b7d5a37ec91ad7c7bba2a692e48717f35142be06 -SIZE (xpi/firefox-31.1.1/son.xpi) = 395339 -SHA256 (xpi/firefox-31.1.1/sq.xpi) = 5b7e3b0a8c8792196465c30260820f8365e8b3045a7d2786e2ad27101dec0bb4 -SIZE (xpi/firefox-31.1.1/sq.xpi) = 431332 -SHA256 (xpi/firefox-31.1.1/sr.xpi) = cf71728a9de5d45eae8688a85a9018404e37ec695cc8894fca8516d5b0fac2df -SIZE (xpi/firefox-31.1.1/sr.xpi) = 426098 -SHA256 (xpi/firefox-31.1.1/sv-SE.xpi) = fc6caed086a855da848ceb68cac8fe2b9a6a64b5a3a6605cf5c9bba84532ccd0 -SIZE (xpi/firefox-31.1.1/sv-SE.xpi) = 399222 -SHA256 (xpi/firefox-31.1.1/ta.xpi) = 28dbd7dd6a47b617b77a7dd5329ca69f5caa43ed795b7ba97500b923f2ae8b5a -SIZE (xpi/firefox-31.1.1/ta.xpi) = 447882 -SHA256 (xpi/firefox-31.1.1/te.xpi) = 0d9b89c3ee2a4939eb1f25942649a6767bf774ff3fb56b5612cb4c8ff40e12bf -SIZE (xpi/firefox-31.1.1/te.xpi) = 462784 -SHA256 (xpi/firefox-31.1.1/th.xpi) = 0c83a11e5b502d4bfd9ef8e8f1876d7a2aafd34d25d32d5d28e83b4bce26c2e8 -SIZE (xpi/firefox-31.1.1/th.xpi) = 478322 -SHA256 (xpi/firefox-31.1.1/tr.xpi) = 38e657289b5e23c0af4dac58943ef028bc52806ee9771f5fbd616530d561e56e -SIZE (xpi/firefox-31.1.1/tr.xpi) = 417566 -SHA256 (xpi/firefox-31.1.1/uk.xpi) = b3a2c405fc815451952517ec0b132699cbb247f291cd5a2190791223a744d581 -SIZE (xpi/firefox-31.1.1/uk.xpi) = 428198 -SHA256 (xpi/firefox-31.1.1/vi.xpi) = 29201bfd7c77c405e1d5f49694b398b1e205b632b8e958b5a0ba839e7eabbf3e -SIZE (xpi/firefox-31.1.1/vi.xpi) = 413570 -SHA256 (xpi/firefox-31.1.1/xh.xpi) = 38a24819d64c9f09b578601f2f285e55290d26475f806720dd1c1aa0281fdb60 -SIZE (xpi/firefox-31.1.1/xh.xpi) = 398072 -SHA256 (xpi/firefox-31.1.1/zh-CN.xpi) = 03f44281fe0d63243d6d975b1c030c202a0eba8862d507464b22bc3b69a0a9ac -SIZE (xpi/firefox-31.1.1/zh-CN.xpi) = 419826 -SHA256 (xpi/firefox-31.1.1/zh-TW.xpi) = 3ea6c0b5bf573259bbfda7fcc3933739cd2d14ce08911731157376724bc1f420 -SIZE (xpi/firefox-31.1.1/zh-TW.xpi) = 412717 -SHA256 (xpi/firefox-31.1.1/zu.xpi) = 3ad0b6daf51f88997e438d4b9e076b9f78ab8e6118b9fe153c1ff719ec4dac2b -SIZE (xpi/firefox-31.1.1/zu.xpi) = 433412 +SHA256 (xpi/firefox-31.2.0/ach.xpi) = c769e86035a60f576525823a7a36607a411b202c3d7604ebc5da5bed2124bed9 +SIZE (xpi/firefox-31.2.0/ach.xpi) = 445523 +SHA256 (xpi/firefox-31.2.0/af.xpi) = 57cdf7f14b5a005b701168f5b00921d6969462e44432547f1654b58c377c0b77 +SIZE (xpi/firefox-31.2.0/af.xpi) = 431286 +SHA256 (xpi/firefox-31.2.0/an.xpi) = dbb32e0247988d700b1d3a92bf88d477252c655aabcc014fc5ed4f6809368e82 +SIZE (xpi/firefox-31.2.0/an.xpi) = 407348 +SHA256 (xpi/firefox-31.2.0/ar.xpi) = b06fa502bc99c5a9e92540a1520c0978d05806520a91a9bb3d7c10888b32ccb9 +SIZE (xpi/firefox-31.2.0/ar.xpi) = 460021 +SHA256 (xpi/firefox-31.2.0/as.xpi) = bb6f9a5102f1f38ac6f234fc0c767d732bf97baa0e419d78bf9b75b1a9bd12b0 +SIZE (xpi/firefox-31.2.0/as.xpi) = 448765 +SHA256 (xpi/firefox-31.2.0/ast.xpi) = 0fe5e881a60cb60cade90c708710ec56270e188ede4b39e06fd7b505fe823a0b +SIZE (xpi/firefox-31.2.0/ast.xpi) = 352537 +SHA256 (xpi/firefox-31.2.0/be.xpi) = 0355ee81c6feb0df5c088099841d86ba05050fd9e79eca62170457b79757b4c6 +SIZE (xpi/firefox-31.2.0/be.xpi) = 378865 +SHA256 (xpi/firefox-31.2.0/bg.xpi) = e4246b7a7278974dad4c6bb60eea2984d436e1cca839dd3b8d583c447a03615c +SIZE (xpi/firefox-31.2.0/bg.xpi) = 438257 +SHA256 (xpi/firefox-31.2.0/bn-BD.xpi) = 38d5e7e6d9f7835ca764213bbd2a31346358cbb61bb8dd3789e16798a112ddb7 +SIZE (xpi/firefox-31.2.0/bn-BD.xpi) = 472823 +SHA256 (xpi/firefox-31.2.0/bn-IN.xpi) = 1afeea551763b587256421a601ff4b6ce60e53b287bf712a835e7b17fed875e8 +SIZE (xpi/firefox-31.2.0/bn-IN.xpi) = 462789 +SHA256 (xpi/firefox-31.2.0/br.xpi) = d8ddd888288ab49b6904c1f4abb7ce4c38acae1efaa46759938d81b047cc83b6 +SIZE (xpi/firefox-31.2.0/br.xpi) = 389901 +SHA256 (xpi/firefox-31.2.0/bs.xpi) = 837e4a8889ff6c1d017e5ae5b1dede1d7a5cb3d0d083aecbc7b21a88a0cff2ae +SIZE (xpi/firefox-31.2.0/bs.xpi) = 429211 +SHA256 (xpi/firefox-31.2.0/ca.xpi) = 537a4711f2a142014fbccfaf3bc31ba42af643544d0125cf06778acd4abe4e07 +SIZE (xpi/firefox-31.2.0/ca.xpi) = 403772 +SHA256 (xpi/firefox-31.2.0/cs.xpi) = 482090ca325690abd77eef212824869a87654231f02f23bae50bbb7a2fafdf87 +SIZE (xpi/firefox-31.2.0/cs.xpi) = 391176 +SHA256 (xpi/firefox-31.2.0/csb.xpi) = ea225f7b951d602ade09b2542a5c0784b604709207f4cf5433ac83e1698b1eb3 +SIZE (xpi/firefox-31.2.0/csb.xpi) = 383891 +SHA256 (xpi/firefox-31.2.0/cy.xpi) = 510150d21176fb7f643b7e14cdd70673d5013b3a0e609d2ca384ca094ef69f76 +SIZE (xpi/firefox-31.2.0/cy.xpi) = 390924 +SHA256 (xpi/firefox-31.2.0/da.xpi) = 0132e0748a0cc5f7e43ae61b070b9c4112dce750878ddc2aa27dfc2c72b035f3 +SIZE (xpi/firefox-31.2.0/da.xpi) = 397944 +SHA256 (xpi/firefox-31.2.0/de.xpi) = 1465a28db347e3c0df9e01739e345035335f6490ca7518b198b1a63dee60d5f5 +SIZE (xpi/firefox-31.2.0/de.xpi) = 395361 +SHA256 (xpi/firefox-31.2.0/el.xpi) = 78c1461e87834b59ac58125e01d3687e058ab302d01569a5bf2807856977bac4 +SIZE (xpi/firefox-31.2.0/el.xpi) = 443179 +SHA256 (xpi/firefox-31.2.0/en-GB.xpi) = 54965babb2213abf774d42888f6e2f6f2edaa22d4694879d883cf4fcf2e40364 +SIZE (xpi/firefox-31.2.0/en-GB.xpi) = 390315 +SHA256 (xpi/firefox-31.2.0/en-US.xpi) = 1a3749346ca21a483e251fe6e481a20164f872c1b12a5346924d9f22c9d54aac +SIZE (xpi/firefox-31.2.0/en-US.xpi) = 422984 +SHA256 (xpi/firefox-31.2.0/en-ZA.xpi) = 9368f89b995028edc2862bce1d63dc513bc0e48bb6fe8f5db103abdc1dabfd2b +SIZE (xpi/firefox-31.2.0/en-ZA.xpi) = 388725 +SHA256 (xpi/firefox-31.2.0/eo.xpi) = 5e4931c8f711c2425600736aa8aa09a43e198d407ce895ec9e99ebd052789a59 +SIZE (xpi/firefox-31.2.0/eo.xpi) = 432028 +SHA256 (xpi/firefox-31.2.0/es-AR.xpi) = 3fb090888018f4af3adecaaa1784d0e2d4f7951caac9ab043cfeb8f8a9332958 +SIZE (xpi/firefox-31.2.0/es-AR.xpi) = 400134 +SHA256 (xpi/firefox-31.2.0/es-CL.xpi) = a02fe5632557dc92508b6c320a14b7020d5dde0e7932e3b4f4aad18bedd318b7 +SIZE (xpi/firefox-31.2.0/es-CL.xpi) = 343005 +SHA256 (xpi/firefox-31.2.0/es-ES.xpi) = a32e7bfb38a3ac4be877f9633a8c66c7aacb8ef46da2efa560b624460f4565bd +SIZE (xpi/firefox-31.2.0/es-ES.xpi) = 336077 +SHA256 (xpi/firefox-31.2.0/es-MX.xpi) = ff372bfa355b8ef259fd99fce95c4125cc28f5095c8f7a08c769517dda557ed3 +SIZE (xpi/firefox-31.2.0/es-MX.xpi) = 402869 +SHA256 (xpi/firefox-31.2.0/et.xpi) = 2c28f96ff32ad93b8b1f44c7fafeffeae7d1d6c659dca1b21d12fa486e90f143 +SIZE (xpi/firefox-31.2.0/et.xpi) = 390557 +SHA256 (xpi/firefox-31.2.0/eu.xpi) = b24004437d622122bb8d4bfd54334c6d89e4ef5640d3abd047459d8fd9d7425d +SIZE (xpi/firefox-31.2.0/eu.xpi) = 413196 +SHA256 (xpi/firefox-31.2.0/fa.xpi) = 7827842cd6534550afae0152c35744e12a9d6db21aa74677aff3978bc941319f +SIZE (xpi/firefox-31.2.0/fa.xpi) = 461054 +SHA256 (xpi/firefox-31.2.0/ff.xpi) = 074b0141d94be2fb03d0dd2842c0797cc575e0c87ca6ab3715c82b79738d4649 +SIZE (xpi/firefox-31.2.0/ff.xpi) = 400340 +SHA256 (xpi/firefox-31.2.0/fi.xpi) = 006ec627541f25c5e5f7dafc867145537fae603ed284f8f8b60d581631b41199 +SIZE (xpi/firefox-31.2.0/fi.xpi) = 392936 +SHA256 (xpi/firefox-31.2.0/fr.xpi) = 5a9cffccefd8ddf04f3272cb2f4b7572fece6a18f7c3668e409acdbd6286e977 +SIZE (xpi/firefox-31.2.0/fr.xpi) = 406659 +SHA256 (xpi/firefox-31.2.0/fy-NL.xpi) = 9881d96cc165c9d9a2df59ce4727d755ca621ea8611121ff08fbdd3fb69fc5ac +SIZE (xpi/firefox-31.2.0/fy-NL.xpi) = 402126 +SHA256 (xpi/firefox-31.2.0/ga-IE.xpi) = bca393f87d5fd0924837765f64541742e0863ec7e79aad080ecbfa89a53f1104 +SIZE (xpi/firefox-31.2.0/ga-IE.xpi) = 410274 +SHA256 (xpi/firefox-31.2.0/gd.xpi) = 255ee1279267c7272290884a578b5481e1a69541dfc25429da7947d6d9fc8bff +SIZE (xpi/firefox-31.2.0/gd.xpi) = 403210 +SHA256 (xpi/firefox-31.2.0/gl.xpi) = 1568276d2872d6d8b723e42947604290951702aea9316a9d38fc77a15613913a +SIZE (xpi/firefox-31.2.0/gl.xpi) = 390796 +SHA256 (xpi/firefox-31.2.0/gu-IN.xpi) = 0dd85acebb39393984549eefeb5b499cdd10c5bb1512221458cac759032f2245 +SIZE (xpi/firefox-31.2.0/gu-IN.xpi) = 423699 +SHA256 (xpi/firefox-31.2.0/he.xpi) = 823c801d00be4aa28a8bb58449cfc236f3d3451c34636a9343fd3c608999a3e9 +SIZE (xpi/firefox-31.2.0/he.xpi) = 427827 +SHA256 (xpi/firefox-31.2.0/hi-IN.xpi) = dc46b295b2b3effac251006b2288f8879c0660fb7e34cb018ffbdf76113849ba +SIZE (xpi/firefox-31.2.0/hi-IN.xpi) = 441599 +SHA256 (xpi/firefox-31.2.0/hr.xpi) = 9d1d4043ec2a9582944e6b3bd1cf530c552c3f2b5ed311167e95c86486deb9c4 +SIZE (xpi/firefox-31.2.0/hr.xpi) = 424568 +SHA256 (xpi/firefox-31.2.0/hsb.xpi) = 48b13132f0f31fb9f0841b3af14928813deb04a7dbdd12318433b730e38f161c +SIZE (xpi/firefox-31.2.0/hsb.xpi) = 413273 +SHA256 (xpi/firefox-31.2.0/hu.xpi) = 37ab26915267e7e18e6fc319a15ac3024035e33ff176cef87b9c0322e23e799a +SIZE (xpi/firefox-31.2.0/hu.xpi) = 398841 +SHA256 (xpi/firefox-31.2.0/hy-AM.xpi) = 56a0495127d8afe15dde6ec9405d4ffcfbed3fe1fbea916eaae716d135566a96 +SIZE (xpi/firefox-31.2.0/hy-AM.xpi) = 478940 +SHA256 (xpi/firefox-31.2.0/id.xpi) = 51f32b7cf43083a7c9a4909c87ac5708f0d4095e1b88b576fa00531b45639576 +SIZE (xpi/firefox-31.2.0/id.xpi) = 378498 +SHA256 (xpi/firefox-31.2.0/is.xpi) = 211287e74680cff1f0f2ff98666ae3e794ce8b20e2d278b2fe0a9c2e9b8c5e1b +SIZE (xpi/firefox-31.2.0/is.xpi) = 427524 +SHA256 (xpi/firefox-31.2.0/it.xpi) = 050ef8be24f69022fc9d06a34288ae7f531c0a8e341d959ccde1338298c16e0e +SIZE (xpi/firefox-31.2.0/it.xpi) = 331102 +SHA256 (xpi/firefox-31.2.0/ja.xpi) = 6782829c967cdd70dfeffc682e5d4964e4e3c6171ce3b98ab5fdb315d4e3aa5c +SIZE (xpi/firefox-31.2.0/ja.xpi) = 421664 +SHA256 (xpi/firefox-31.2.0/kk.xpi) = faf857b0f39559d0a462f1f7a9eda0e82ceaafb26d261107ff737c3df9fcf94b +SIZE (xpi/firefox-31.2.0/kk.xpi) = 439313 +SHA256 (xpi/firefox-31.2.0/km.xpi) = 34f832f39ec8e76c89ad27a9eaf2b98d4023b16b28f8b8f4a8e7dc072f865656 +SIZE (xpi/firefox-31.2.0/km.xpi) = 506673 +SHA256 (xpi/firefox-31.2.0/kn.xpi) = d8f70817729b91a823b133ac4e44f3a93e4acb47bde85e97212de636e16f203b +SIZE (xpi/firefox-31.2.0/kn.xpi) = 459088 +SHA256 (xpi/firefox-31.2.0/ko.xpi) = 2ebc4178fd8e3f2a4ad270994413bb72e5242b6933b941a5c2b5ddc30ee7bd45 +SIZE (xpi/firefox-31.2.0/ko.xpi) = 403011 +SHA256 (xpi/firefox-31.2.0/ku.xpi) = a706dc8164911ffd151670deb5b39310065915ff90ab00b332442d790d728fc0 +SIZE (xpi/firefox-31.2.0/ku.xpi) = 420260 +SHA256 (xpi/firefox-31.2.0/lij.xpi) = 3893fc559cc1c5ebee0b82034cb87b17140231d47e3ddb9c89b6c011fdc7b8dd +SIZE (xpi/firefox-31.2.0/lij.xpi) = 386061 +SHA256 (xpi/firefox-31.2.0/lt.xpi) = b5183c5874ca9df14343eb1c818de9d3ae5cf190d0f299d0ac6dd791f1c5922d +SIZE (xpi/firefox-31.2.0/lt.xpi) = 435628 +SHA256 (xpi/firefox-31.2.0/lv.xpi) = 78674c9deb360ac74425cda52c5acb9ea7358fd08a7145ad02379209a695c66b +SIZE (xpi/firefox-31.2.0/lv.xpi) = 398773 +SHA256 (xpi/firefox-31.2.0/mai.xpi) = 37be09e55574343c15f7dbdb0d175dbc6d08c5a98d3c0d806ea93168db2d2bfd +SIZE (xpi/firefox-31.2.0/mai.xpi) = 445082 +SHA256 (xpi/firefox-31.2.0/mk.xpi) = 4d1e11edc32d66753c9474403b66cfada750b1093ec888d94c01fb5a5be33148 +SIZE (xpi/firefox-31.2.0/mk.xpi) = 475680 +SHA256 (xpi/firefox-31.2.0/ml.xpi) = 2329f4af84513c928e401cb40614ecc18ad041ec60d42832ec5d14c0f5204580 +SIZE (xpi/firefox-31.2.0/ml.xpi) = 466451 +SHA256 (xpi/firefox-31.2.0/mr.xpi) = daf65260a17f6b83834b1d5c377af999810a1c7bed3a5b4aa40e183fbd733314 +SIZE (xpi/firefox-31.2.0/mr.xpi) = 451488 +SHA256 (xpi/firefox-31.2.0/ms.xpi) = 5568d4cdf4574ab6e4b60aa6d83a3ef80bd62699a2ba1c6a78dbc11f34c2f1b6 +SIZE (xpi/firefox-31.2.0/ms.xpi) = 436427 +SHA256 (xpi/firefox-31.2.0/nb-NO.xpi) = 8a313933ad2b47d73fcd8039831fcde57c628d129e63d67fd2a620f9fbcc2fc0 +SIZE (xpi/firefox-31.2.0/nb-NO.xpi) = 392203 +SHA256 (xpi/firefox-31.2.0/nl.xpi) = d2d787673e4be5b54569bb6a4bed3b6353a01bcaf6626cd6cd7caf10424432c8 +SIZE (xpi/firefox-31.2.0/nl.xpi) = 391082 +SHA256 (xpi/firefox-31.2.0/nn-NO.xpi) = 23babb9300e18e16e9cebacca00a2cc33685dafde3ad3d331ab40e820a94fa26 +SIZE (xpi/firefox-31.2.0/nn-NO.xpi) = 386478 +SHA256 (xpi/firefox-31.2.0/or.xpi) = 1d7ab1bc8ba86d19f84ad04f26edfe1dd029b5a49baaaddf946f083012e0b934 +SIZE (xpi/firefox-31.2.0/or.xpi) = 464946 +SHA256 (xpi/firefox-31.2.0/pa-IN.xpi) = 2b5ca7f0a23d671a72f4df7b204791d6c492c4d883d53b708568600f6578baee +SIZE (xpi/firefox-31.2.0/pa-IN.xpi) = 439523 +SHA256 (xpi/firefox-31.2.0/pl.xpi) = 407985b06154518eb72b0f1da73c87c068d5da4dca539ec8b8bca9add870d6bf +SIZE (xpi/firefox-31.2.0/pl.xpi) = 374944 +SHA256 (xpi/firefox-31.2.0/pt-BR.xpi) = e763c07a6b80ed36c5747f1a32d111021bd17fc1ef2cd9e1aa12c1c90951cace +SIZE (xpi/firefox-31.2.0/pt-BR.xpi) = 405762 +SHA256 (xpi/firefox-31.2.0/pt-PT.xpi) = 381e2a663c660ed9cf63eaed262b396d65f2c70854beb3fbec89ddcc972762f4 +SIZE (xpi/firefox-31.2.0/pt-PT.xpi) = 386541 +SHA256 (xpi/firefox-31.2.0/rm.xpi) = da3e9f63941cc72c0cc070217bf2fa71801098e990a16165710aadb1a285547d +SIZE (xpi/firefox-31.2.0/rm.xpi) = 399482 +SHA256 (xpi/firefox-31.2.0/ro.xpi) = 4b1d62a87be63f08318274c256ae282900b917b175d1502d2f2556fee93b3ddb +SIZE (xpi/firefox-31.2.0/ro.xpi) = 439584 +SHA256 (xpi/firefox-31.2.0/ru.xpi) = e8732b5b096db9dc60eb6a9ebae9e78a5e7c9997ddf2fb97f3b62ddbb15cecff +SIZE (xpi/firefox-31.2.0/ru.xpi) = 368094 +SHA256 (xpi/firefox-31.2.0/si.xpi) = 27872434fa0ae19d1044229af86aca23cb6b02f033ccd9228920689b2d71e060 +SIZE (xpi/firefox-31.2.0/si.xpi) = 463420 +SHA256 (xpi/firefox-31.2.0/sk.xpi) = a631838713bf217783d0ed83337a778569afb94e13735a70925d0c5079db151e +SIZE (xpi/firefox-31.2.0/sk.xpi) = 413999 +SHA256 (xpi/firefox-31.2.0/sl.xpi) = 855e46b2b49d02809dc068dee1e98ee51394ec3549fffd5cdc0dad93409c453d +SIZE (xpi/firefox-31.2.0/sl.xpi) = 387331 +SHA256 (xpi/firefox-31.2.0/son.xpi) = 41c3d4322c383f203506ce3bda188119cc1cdce0bcdcd4185ec0f51c75297267 +SIZE (xpi/firefox-31.2.0/son.xpi) = 395340 +SHA256 (xpi/firefox-31.2.0/sq.xpi) = e450cf0d2cb0cd42522ab6a5d070e95388095f6e7e3403a424af2d7119cf007a +SIZE (xpi/firefox-31.2.0/sq.xpi) = 431332 +SHA256 (xpi/firefox-31.2.0/sr.xpi) = cbb505263e8e6c6108cbe0105cbd183c5b8ba5495c66739ea441ab56982e0189 +SIZE (xpi/firefox-31.2.0/sr.xpi) = 426099 +SHA256 (xpi/firefox-31.2.0/sv-SE.xpi) = 362c6eac4236deab720557af6a90fdd28bae7360f67a7384e0b62aa1af0c73ab +SIZE (xpi/firefox-31.2.0/sv-SE.xpi) = 399223 +SHA256 (xpi/firefox-31.2.0/ta.xpi) = 8dfa72d8d5eaf474ff1a00e398df2a6749b6e4e65f5666b5a0d94e53c6e4530f +SIZE (xpi/firefox-31.2.0/ta.xpi) = 447883 +SHA256 (xpi/firefox-31.2.0/te.xpi) = 1e3ce73fd862e1a6cd452f626493e6750ce19124acdc513e647f37b89b71f854 +SIZE (xpi/firefox-31.2.0/te.xpi) = 462788 +SHA256 (xpi/firefox-31.2.0/th.xpi) = 0ecd6135dbff272447bd8b15ff556e24235d381863830b2beea32b7cc46781ff +SIZE (xpi/firefox-31.2.0/th.xpi) = 478323 +SHA256 (xpi/firefox-31.2.0/tr.xpi) = 3958e21037690f549024488fd5a6fb9ca1018eb8e6f391c37e50533c3fecdf94 +SIZE (xpi/firefox-31.2.0/tr.xpi) = 417567 +SHA256 (xpi/firefox-31.2.0/uk.xpi) = 652a6d2bbe632b6e6c9736d78bfe79c71fb6ffca1bcdcf36aeb181d2ac9ab8c6 +SIZE (xpi/firefox-31.2.0/uk.xpi) = 428199 +SHA256 (xpi/firefox-31.2.0/vi.xpi) = 46cf4bd7121b8d793942ac197a95022153b1ce238002344512f6311ff6c78bf7 +SIZE (xpi/firefox-31.2.0/vi.xpi) = 413571 +SHA256 (xpi/firefox-31.2.0/xh.xpi) = 862d1ec5cb8eec5dc2f3aca9d9697860809d13c6dfad059736440c2afab92164 +SIZE (xpi/firefox-31.2.0/xh.xpi) = 398073 +SHA256 (xpi/firefox-31.2.0/zh-CN.xpi) = e7ede8bf0ee5db225e81825eabaafe4c9578203330e150acf3676857458e278b +SIZE (xpi/firefox-31.2.0/zh-CN.xpi) = 419827 +SHA256 (xpi/firefox-31.2.0/zh-TW.xpi) = 38372e46da7fc942e8e7c85d518d37d6c8c3d66396898322f5e73f4088b9fcb4 +SIZE (xpi/firefox-31.2.0/zh-TW.xpi) = 412717 +SHA256 (xpi/firefox-31.2.0/zu.xpi) = b1c012329f888b3ebedb9057c5a503f23ff37a7a3cc87f227677e525b564d878 +SIZE (xpi/firefox-31.2.0/zu.xpi) = 433413 Index: branches/2014Q4/www/firefox-i18n/Makefile =================================================================== --- branches/2014Q4/www/firefox-i18n/Makefile (revision 370968) +++ branches/2014Q4/www/firefox-i18n/Makefile (revision 370969) @@ -1,95 +1,88 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= firefox-i18n -PORTVERSION= 32.0.2 +PORTVERSION= 33.0 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/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:${PORTSDIR}/archivers/zip -USES= zip:infozip gecko:firefox,32 +USES= zip:infozip gecko:firefox,33,build USE_XPI= firefox linux-firefox NO_ARCH= yes USE_SUBMAKE= yes WDIR= langpack-*@firefox.mozilla.org XPI_DISTNAMES= ${FIREFOX_I18N_} PLIST?= ${WRKDIR}/plist -PLISTD?= ${WRKDIR}/plist_dirs PLISTF?= ${WRKDIR}/plist_files .include "${.CURDIR}/Makefile.option" .include -# make sure that firefox always gets upgraded before this port -BUILD_DEPENDS+= firefox>=0:${PORTSDIR}/www/firefox - .ifndef WITHOUT_SWITCHER RUN_DEPENDS+= xpi-quick-locale-switcher>=0:${PORTSDIR}/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} && \ - ${FIND} -d * -type d | \ - ${SED} -e "s|^|@dirrm lib/xpi/langpack-$$lang@firefox.mozilla.org/|" >> ${PLISTD}; \ + ${SED} -e "s|^|lib/xpi/langpack-$$lang@firefox.mozilla.org/|" >> ${PLISTF}; \ done ${CAT} ${PLISTF} | ${SORT} >> ${PLIST} - ${CAT} ${PLISTD} | ${SORT} -r >> ${PLIST} do-install: @${MKDIR} ${STAGEDIR}${XPI_LIBDIR} ${STAGEDIR}${XPI_SLDIRS_ALL} 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} ${XPI_LIBDIR}; { ${RM} -f $$_dir/${WDIR} ; }' ${_A} post-patch: ${FIND} ${WRKSRC} -name install.rdf -print0 | \ ${XARGS} -0L1 ${REINPLACE_CMD} -i '' -e '/ Index: branches/2014Q4/www/firefox-i18n/distinfo =================================================================== --- branches/2014Q4/www/firefox-i18n/distinfo (revision 370968) +++ branches/2014Q4/www/firefox-i18n/distinfo (revision 370969) @@ -1,178 +1,178 @@ -SHA256 (xpi/firefox-i18n-32.0.2/ach.xpi) = b3a1df4452ae27d90d3e1690760d6436b4d0de130c726b8172784d727b4cb081 -SIZE (xpi/firefox-i18n-32.0.2/ach.xpi) = 431471 -SHA256 (xpi/firefox-i18n-32.0.2/af.xpi) = 43055a6aebbc72c5f5def27bf671968482279087b0c08ddbb603ac956760d952 -SIZE (xpi/firefox-i18n-32.0.2/af.xpi) = 434842 -SHA256 (xpi/firefox-i18n-32.0.2/an.xpi) = 44f5deee991eda3e21946005d48e012cfab961f01f6813a43bfa3250341067a1 -SIZE (xpi/firefox-i18n-32.0.2/an.xpi) = 409798 -SHA256 (xpi/firefox-i18n-32.0.2/ar.xpi) = 39be83c8c2b2b14538d226b77c47a5dd2c87ad70a3b6a71dddb3068594e2dfbc -SIZE (xpi/firefox-i18n-32.0.2/ar.xpi) = 462439 -SHA256 (xpi/firefox-i18n-32.0.2/as.xpi) = 1f61119d750e2067bd9518aa782aa32cf5c9dce50fe6a23bbb94f0eddf5bd34f -SIZE (xpi/firefox-i18n-32.0.2/as.xpi) = 451613 -SHA256 (xpi/firefox-i18n-32.0.2/ast.xpi) = 3812808aa0b14128c2a4de106f67f8ab893c80ea5a864ad13462ded26a4d1675 -SIZE (xpi/firefox-i18n-32.0.2/ast.xpi) = 348236 -SHA256 (xpi/firefox-i18n-32.0.2/be.xpi) = e607e32cf9758314655b59c5171bc3f5acb2bddc41fa931067b0a926710a8dc8 -SIZE (xpi/firefox-i18n-32.0.2/be.xpi) = 383998 -SHA256 (xpi/firefox-i18n-32.0.2/bg.xpi) = 69fec1817b9b24a89d5e316232c29a814ee726c0351c3ad60dafd74443bbf582 -SIZE (xpi/firefox-i18n-32.0.2/bg.xpi) = 441209 -SHA256 (xpi/firefox-i18n-32.0.2/bn-BD.xpi) = 618a5440e3dd3acabb78f227f7f538bef732e681f6dde1d8948f182eaa197bfa -SIZE (xpi/firefox-i18n-32.0.2/bn-BD.xpi) = 476239 -SHA256 (xpi/firefox-i18n-32.0.2/bn-IN.xpi) = 597e90e762bd2b75b6f2897dcff2dd54eafedb4e55adc6c9910e4ea8d787148b -SIZE (xpi/firefox-i18n-32.0.2/bn-IN.xpi) = 465498 -SHA256 (xpi/firefox-i18n-32.0.2/br.xpi) = 309f0f07b78f51d4b005a56ae3355b91dc13d88540bf5d297c2d332214f745fd -SIZE (xpi/firefox-i18n-32.0.2/br.xpi) = 392151 -SHA256 (xpi/firefox-i18n-32.0.2/bs.xpi) = 472b8302bca7d919c1732cc5153ad43cd5a7317b9be22cee1eb66bcb0d2a5cd1 -SIZE (xpi/firefox-i18n-32.0.2/bs.xpi) = 432988 -SHA256 (xpi/firefox-i18n-32.0.2/ca.xpi) = bf33ad776bcda2b41540d5d9833ed2fb54383ccc79e0e4de1bfe58d4d2b83396 -SIZE (xpi/firefox-i18n-32.0.2/ca.xpi) = 406288 -SHA256 (xpi/firefox-i18n-32.0.2/cs.xpi) = bb5b7a29e99084e921a3423779cd5995c59725d0fcdb07da6bc5f89693143204 -SIZE (xpi/firefox-i18n-32.0.2/cs.xpi) = 393844 -SHA256 (xpi/firefox-i18n-32.0.2/csb.xpi) = f3a4aa1efc52f17f16a8f8e9761adea8eac4a1e6d5c71e3c9a38221ee156b7ab -SIZE (xpi/firefox-i18n-32.0.2/csb.xpi) = 387643 -SHA256 (xpi/firefox-i18n-32.0.2/cy.xpi) = d796c5b121e089d40a619ab36266f2c686b9723641b5effbb327c78c5c877d77 -SIZE (xpi/firefox-i18n-32.0.2/cy.xpi) = 393348 -SHA256 (xpi/firefox-i18n-32.0.2/da.xpi) = ab3fef27a2a9d7ad7a53a8197a868418bff1b1fd299bfad88772e5bab002456d -SIZE (xpi/firefox-i18n-32.0.2/da.xpi) = 400446 -SHA256 (xpi/firefox-i18n-32.0.2/de.xpi) = 3b21850c366a27d7afaf256effe0e04392d0d36d9d875569e122388b3c08084d -SIZE (xpi/firefox-i18n-32.0.2/de.xpi) = 398214 -SHA256 (xpi/firefox-i18n-32.0.2/el.xpi) = 4cc9451f5876499c8130cdb9e38e0e0718cd22d4934e968cb4526ef466751766 -SIZE (xpi/firefox-i18n-32.0.2/el.xpi) = 446649 -SHA256 (xpi/firefox-i18n-32.0.2/en-GB.xpi) = 77eed519237687134db60afee4826e37eef3adee77661b53facfd8c2d691e041 -SIZE (xpi/firefox-i18n-32.0.2/en-GB.xpi) = 393086 -SHA256 (xpi/firefox-i18n-32.0.2/en-US.xpi) = f4b841f91820905f8f19e98c8205e5f83f7e903161ce9f032d5849a752cc93ad -SIZE (xpi/firefox-i18n-32.0.2/en-US.xpi) = 425315 -SHA256 (xpi/firefox-i18n-32.0.2/en-ZA.xpi) = 0e2288b5bbbffb5a876427606f208740ce59d4fc6710689df40343ef65088fca -SIZE (xpi/firefox-i18n-32.0.2/en-ZA.xpi) = 392544 -SHA256 (xpi/firefox-i18n-32.0.2/eo.xpi) = ca8c4b5e5e531f2c7a5926541f91a989c15dcc0b34c7ddd3bd28df31407a68af -SIZE (xpi/firefox-i18n-32.0.2/eo.xpi) = 434542 -SHA256 (xpi/firefox-i18n-32.0.2/es-AR.xpi) = 48db1fc2bf9e19fc47988a3e38e750fd3810db7dd16272ed1fca1d351d09713e -SIZE (xpi/firefox-i18n-32.0.2/es-AR.xpi) = 402544 -SHA256 (xpi/firefox-i18n-32.0.2/es-CL.xpi) = eafa582ff3e389d8d97c6d969abec02c46cc7c21969e1e53e13762155ac7b699 -SIZE (xpi/firefox-i18n-32.0.2/es-CL.xpi) = 343841 -SHA256 (xpi/firefox-i18n-32.0.2/es-ES.xpi) = fb88b03fa9463e41aeaf59d3762e4965f966f562d0e2e38d83b2a897fbc81ca9 -SIZE (xpi/firefox-i18n-32.0.2/es-ES.xpi) = 336664 -SHA256 (xpi/firefox-i18n-32.0.2/es-MX.xpi) = bec462a19c5b9380891b7bc01c48eb06774c59cdb0d67f0c41668d68e59b3460 -SIZE (xpi/firefox-i18n-32.0.2/es-MX.xpi) = 405044 -SHA256 (xpi/firefox-i18n-32.0.2/et.xpi) = 71d26932f0f454055a0a2e752e0de7ea8816291b3614313d737500c5c7408914 -SIZE (xpi/firefox-i18n-32.0.2/et.xpi) = 393088 -SHA256 (xpi/firefox-i18n-32.0.2/eu.xpi) = 397881bac7c7112a53383335eec6464f78d17b5bf84b89339603f83cc0c7e9a9 -SIZE (xpi/firefox-i18n-32.0.2/eu.xpi) = 415534 -SHA256 (xpi/firefox-i18n-32.0.2/fa.xpi) = 870a12fa2b4e9b2b28f3de8b81f6abeb41b33b8acf5fdcd856f3741313b74adb -SIZE (xpi/firefox-i18n-32.0.2/fa.xpi) = 464225 -SHA256 (xpi/firefox-i18n-32.0.2/ff.xpi) = d26525de80fac1d0a150240043bbd5c13478099da7c26b034320408534cd3f8f -SIZE (xpi/firefox-i18n-32.0.2/ff.xpi) = 402691 -SHA256 (xpi/firefox-i18n-32.0.2/fi.xpi) = 6802e96635829cd60613ed7b1eec83cb98d00f0b4c55c253a80ad68f98df3330 -SIZE (xpi/firefox-i18n-32.0.2/fi.xpi) = 395214 -SHA256 (xpi/firefox-i18n-32.0.2/fr.xpi) = 327a62f803c6459b671058c773a85425ab84fd2446300e4d03a9f4d6cff2434a -SIZE (xpi/firefox-i18n-32.0.2/fr.xpi) = 409446 -SHA256 (xpi/firefox-i18n-32.0.2/fy-NL.xpi) = 3c59e98118c5866daecc021e15c4264afe7f3c31a9fe54fc74b13fa4c3f8d745 -SIZE (xpi/firefox-i18n-32.0.2/fy-NL.xpi) = 404329 -SHA256 (xpi/firefox-i18n-32.0.2/ga-IE.xpi) = 03963a61a327baf0c855cacb0693b63ece7880535a87e6ae5993e8a0c0eecf66 -SIZE (xpi/firefox-i18n-32.0.2/ga-IE.xpi) = 414417 -SHA256 (xpi/firefox-i18n-32.0.2/gd.xpi) = dc7309cba3a62b2b7a6eeb4bd9b5a79390901fe440e858111377b47acd404212 -SIZE (xpi/firefox-i18n-32.0.2/gd.xpi) = 405358 -SHA256 (xpi/firefox-i18n-32.0.2/gl.xpi) = ce4ae2e6a7d3c7009e026823849628d1dcdaf59d822b1a1f9cb392b118690c44 -SIZE (xpi/firefox-i18n-32.0.2/gl.xpi) = 394206 -SHA256 (xpi/firefox-i18n-32.0.2/gu-IN.xpi) = f4dd8498b822bbc67ce5443763097cbd1886fcadb33e5be7f686630cdaf30e2a -SIZE (xpi/firefox-i18n-32.0.2/gu-IN.xpi) = 428758 -SHA256 (xpi/firefox-i18n-32.0.2/he.xpi) = 7688b19b770d3d1315a79ccdbe4dcd5ed7b93e1f574cc9996792184296326cfd -SIZE (xpi/firefox-i18n-32.0.2/he.xpi) = 431064 -SHA256 (xpi/firefox-i18n-32.0.2/hi-IN.xpi) = 5efc6075a352e4c5f1a04757c5e809c5f27f41b686d2e69c9e4e4b440ef1b8fa -SIZE (xpi/firefox-i18n-32.0.2/hi-IN.xpi) = 444733 -SHA256 (xpi/firefox-i18n-32.0.2/hr.xpi) = b6b3c824aa5c415da71e47ca05853c591d6aca20517377740b3d09eaba8c4c3d -SIZE (xpi/firefox-i18n-32.0.2/hr.xpi) = 428930 -SHA256 (xpi/firefox-i18n-32.0.2/hsb.xpi) = 63ec1f233b3b2d46d597d7ee436e530e87f19caee8bde8cd7a2226aa711f27cb -SIZE (xpi/firefox-i18n-32.0.2/hsb.xpi) = 415886 -SHA256 (xpi/firefox-i18n-32.0.2/hu.xpi) = 977b229855182474fd0eb9a1f43f02c5cfbd18dd2ccd318a637c9d8213fe27d6 -SIZE (xpi/firefox-i18n-32.0.2/hu.xpi) = 401284 -SHA256 (xpi/firefox-i18n-32.0.2/hy-AM.xpi) = 3fe0f54b74c84e6aa3d73e21a4c7d849bca3c4753c1e5534a896375d12ddb79b -SIZE (xpi/firefox-i18n-32.0.2/hy-AM.xpi) = 481697 -SHA256 (xpi/firefox-i18n-32.0.2/id.xpi) = bca438bb1547d29e481a6b2533802980d356fceeb41a480789c03646b23e77c9 -SIZE (xpi/firefox-i18n-32.0.2/id.xpi) = 380797 -SHA256 (xpi/firefox-i18n-32.0.2/is.xpi) = 4b40fa4a67e1076f1185acb157f4fd3606b33a1150fe4817258f260780a5f517 -SIZE (xpi/firefox-i18n-32.0.2/is.xpi) = 429949 -SHA256 (xpi/firefox-i18n-32.0.2/it.xpi) = ded50eb9b9b1e4c440f06875c13cb3ae1f51759ba8261d241c7996755d719f7a -SIZE (xpi/firefox-i18n-32.0.2/it.xpi) = 331764 -SHA256 (xpi/firefox-i18n-32.0.2/ja.xpi) = c50fbfc22ff6fcdbfb02b99a75059a19c4e2a04e21224bdb9cb4c39ab8be00d3 -SIZE (xpi/firefox-i18n-32.0.2/ja.xpi) = 424370 -SHA256 (xpi/firefox-i18n-32.0.2/kk.xpi) = 06712779e16a31da1cf7730fe1aba6d4c1d23c603ca057e4f4370fece7979b88 -SIZE (xpi/firefox-i18n-32.0.2/kk.xpi) = 441958 -SHA256 (xpi/firefox-i18n-32.0.2/km.xpi) = b1ff78c850e1dfdf4bd49cad6a499e238a9df061cfb2a9f362dc67a4d11bb6f0 -SIZE (xpi/firefox-i18n-32.0.2/km.xpi) = 509427 -SHA256 (xpi/firefox-i18n-32.0.2/kn.xpi) = ae8749ab165c3efadf3c6ff71b381988748e1fedb7137ba983acda79f200b5e4 -SIZE (xpi/firefox-i18n-32.0.2/kn.xpi) = 462122 -SHA256 (xpi/firefox-i18n-32.0.2/ko.xpi) = 12bf30b4de6fa42289d581ac610c2a138e8dea083ac3a2aff68c335a5925723c -SIZE (xpi/firefox-i18n-32.0.2/ko.xpi) = 405909 -SHA256 (xpi/firefox-i18n-32.0.2/ku.xpi) = 02f11ac5a7abf68a4743edf6df369fa327b2b3bdf81296bea696d2bd99d90463 -SIZE (xpi/firefox-i18n-32.0.2/ku.xpi) = 423738 -SHA256 (xpi/firefox-i18n-32.0.2/lij.xpi) = 17fb8f8c59ca0217ec3efcdf6e8b8c35a34596babf393f686156f98f5297ac61 -SIZE (xpi/firefox-i18n-32.0.2/lij.xpi) = 389876 -SHA256 (xpi/firefox-i18n-32.0.2/lt.xpi) = 37132b9109f65e4236d36c758bedb86a56a32adf540cb714c9e5057c84fac599 -SIZE (xpi/firefox-i18n-32.0.2/lt.xpi) = 437860 -SHA256 (xpi/firefox-i18n-32.0.2/lv.xpi) = bbbe45a3f335762d0fac604d819a833d4bb3dac6540f6f1e5aba6a01f7c577f7 -SIZE (xpi/firefox-i18n-32.0.2/lv.xpi) = 400545 -SHA256 (xpi/firefox-i18n-32.0.2/mai.xpi) = 7d528b8a3269e74a41c0ab6c9310fbb056025d5399e2df4b2236613b722b6ae6 -SIZE (xpi/firefox-i18n-32.0.2/mai.xpi) = 448010 -SHA256 (xpi/firefox-i18n-32.0.2/mk.xpi) = f8b4d74359fd7b26ea9ca6d7363f0b51fd366a27ed165132d54a968ca355b073 -SIZE (xpi/firefox-i18n-32.0.2/mk.xpi) = 478850 -SHA256 (xpi/firefox-i18n-32.0.2/ml.xpi) = 69fc177ff6947504e0a1ad47a4a06eedde2427094bf4e9f2d597135039ee50f9 -SIZE (xpi/firefox-i18n-32.0.2/ml.xpi) = 469498 -SHA256 (xpi/firefox-i18n-32.0.2/mr.xpi) = 4620424f96680330c26fd090cc72608a23e44ec00c5304823cea26517518f090 -SIZE (xpi/firefox-i18n-32.0.2/mr.xpi) = 455571 -SHA256 (xpi/firefox-i18n-32.0.2/ms.xpi) = 90716a48d921d0d69115d72424d77dca1405940b1c649ffe65eeabe13829fbc7 -SIZE (xpi/firefox-i18n-32.0.2/ms.xpi) = 440609 -SHA256 (xpi/firefox-i18n-32.0.2/nb-NO.xpi) = a7e8af44d8d5226a5f38ccace03182426eaecba0bd01d90f8e263c46964d25a5 -SIZE (xpi/firefox-i18n-32.0.2/nb-NO.xpi) = 394448 -SHA256 (xpi/firefox-i18n-32.0.2/nl.xpi) = 59504411cc63e21dffa9ac48bd349613e3cb7bc7e1a8650d24136ad17aa8aca6 -SIZE (xpi/firefox-i18n-32.0.2/nl.xpi) = 393386 -SHA256 (xpi/firefox-i18n-32.0.2/nn-NO.xpi) = ae6cf0feb31e5acda6dd664df382303cbbfc7e2360daa8520f91cf2c463e5fd8 -SIZE (xpi/firefox-i18n-32.0.2/nn-NO.xpi) = 390705 -SHA256 (xpi/firefox-i18n-32.0.2/or.xpi) = 6cc6e4115140887bf27977f8d14a3fb8ae28768359759c8bd8d561058457a996 -SIZE (xpi/firefox-i18n-32.0.2/or.xpi) = 467019 -SHA256 (xpi/firefox-i18n-32.0.2/pa-IN.xpi) = e130ad8f61bdf9dfc3cc2dabef80768f2083886da05bcd1aaaa433c41cb0f2d5 -SIZE (xpi/firefox-i18n-32.0.2/pa-IN.xpi) = 440988 -SHA256 (xpi/firefox-i18n-32.0.2/pl.xpi) = 2365d4c5081183a9a793d99b3fdd50abf7a82ec8cad168e0a233c9e471cb52f2 -SIZE (xpi/firefox-i18n-32.0.2/pl.xpi) = 374511 -SHA256 (xpi/firefox-i18n-32.0.2/pt-BR.xpi) = 40ee58447bfeeb0476af44fc227f156c8c206f87ac9eb110067bd7dbbc9f6ab2 -SIZE (xpi/firefox-i18n-32.0.2/pt-BR.xpi) = 408157 -SHA256 (xpi/firefox-i18n-32.0.2/pt-PT.xpi) = cf054d8765f198f32f73b863ae126fd014ae6d5e1ef4c4563cc02ffa76a5dc28 -SIZE (xpi/firefox-i18n-32.0.2/pt-PT.xpi) = 388392 -SHA256 (xpi/firefox-i18n-32.0.2/rm.xpi) = cc3276620775af1a662a2f28364f1909a3804e2ff67d3049ab9895d963b93d48 -SIZE (xpi/firefox-i18n-32.0.2/rm.xpi) = 402947 -SHA256 (xpi/firefox-i18n-32.0.2/ro.xpi) = 7c6abd4cd178065ca8652b49bb6774a28f44ee8979dc92b8ad1c99e13c737421 -SIZE (xpi/firefox-i18n-32.0.2/ro.xpi) = 443783 -SHA256 (xpi/firefox-i18n-32.0.2/ru.xpi) = e4a61ad50d87eaf54e6488943aae63cb7646e5ba0cebb4d494ecc6ace0b19dec -SIZE (xpi/firefox-i18n-32.0.2/ru.xpi) = 368829 -SHA256 (xpi/firefox-i18n-32.0.2/si.xpi) = e4d53e64512e444c51605d70e88edc36baefaabea1001d6f929fc95bdc60d0db -SIZE (xpi/firefox-i18n-32.0.2/si.xpi) = 464952 -SHA256 (xpi/firefox-i18n-32.0.2/sk.xpi) = 54671f7065dd07b2f18637059d7e150b5329d9e6a006970749cf10b1fa554066 -SIZE (xpi/firefox-i18n-32.0.2/sk.xpi) = 416660 -SHA256 (xpi/firefox-i18n-32.0.2/sl.xpi) = ae43e792bbd760d51775baeb1742fd12d43265ab43cb0863f3c52a6670b9c001 -SIZE (xpi/firefox-i18n-32.0.2/sl.xpi) = 390284 -SHA256 (xpi/firefox-i18n-32.0.2/son.xpi) = a4aee846c1743c2b16fc3b6e327a11995179191bdcceeb41b2647860f31b8f73 -SIZE (xpi/firefox-i18n-32.0.2/son.xpi) = 397412 -SHA256 (xpi/firefox-i18n-32.0.2/sq.xpi) = 3869506e7ed28640c2d12aa2fa4fae6579ec6ca2fd94ab3e956817074789c230 -SIZE (xpi/firefox-i18n-32.0.2/sq.xpi) = 433978 -SHA256 (xpi/firefox-i18n-32.0.2/sr.xpi) = 1190767ec6ce0d99497279b50d8c02d72167d81fcd90878e8de2daee94c03177 -SIZE (xpi/firefox-i18n-32.0.2/sr.xpi) = 428047 -SHA256 (xpi/firefox-i18n-32.0.2/sv-SE.xpi) = f613e10447bb362b0fbd121a2ebf95276b1ad42069c252a23c015b4502b18208 -SIZE (xpi/firefox-i18n-32.0.2/sv-SE.xpi) = 401269 -SHA256 (xpi/firefox-i18n-32.0.2/ta.xpi) = a06c016bba3f86b0387311904b4c6279603d25da2ae99599e9a811c86bfd4d43 -SIZE (xpi/firefox-i18n-32.0.2/ta.xpi) = 450601 -SHA256 (xpi/firefox-i18n-32.0.2/te.xpi) = a8e0711e7f089a93632d8ef05a34cfb14e132ace37bfe4198cb4309f557c0a79 -SIZE (xpi/firefox-i18n-32.0.2/te.xpi) = 466255 -SHA256 (xpi/firefox-i18n-32.0.2/th.xpi) = 27e6fdec786a26cd783016d5340bb15ac5fff46abaf3b71f19b8d5467e40de24 -SIZE (xpi/firefox-i18n-32.0.2/th.xpi) = 481720 -SHA256 (xpi/firefox-i18n-32.0.2/tr.xpi) = 573af1f2eb8ff900415cbda273a5bb052588e1cb4b8dae434a0512763e554230 -SIZE (xpi/firefox-i18n-32.0.2/tr.xpi) = 420125 -SHA256 (xpi/firefox-i18n-32.0.2/uk.xpi) = c5bb381f821ad67011af88b150c8a1bb4b5efeee4511b87250048af3753db45d -SIZE (xpi/firefox-i18n-32.0.2/uk.xpi) = 432601 -SHA256 (xpi/firefox-i18n-32.0.2/vi.xpi) = 3a3283958f08885fdad7d3e77e8bdde432b7bf3584e9ec5028a6b47ef6596a0b -SIZE (xpi/firefox-i18n-32.0.2/vi.xpi) = 415402 -SHA256 (xpi/firefox-i18n-32.0.2/xh.xpi) = dadfac55b0531b55c00e405059c18000dca4cffbb7f7711229a709ecf263c571 -SIZE (xpi/firefox-i18n-32.0.2/xh.xpi) = 401582 -SHA256 (xpi/firefox-i18n-32.0.2/zh-CN.xpi) = 51ca5254d80d88ecc846a0862c702ba10def054caa177f034310409f64e452a3 -SIZE (xpi/firefox-i18n-32.0.2/zh-CN.xpi) = 422370 -SHA256 (xpi/firefox-i18n-32.0.2/zh-TW.xpi) = 6ce32fd0e43b7f92ea4af92c5784fcc2cfb147504d74adcede71da16e3dc4fee -SIZE (xpi/firefox-i18n-32.0.2/zh-TW.xpi) = 415186 -SHA256 (xpi/firefox-i18n-32.0.2/zu.xpi) = 4375ce4e1ddb3ea704c827c2b91887a3bfd6c2104e0dd967b58a96cef47f354f -SIZE (xpi/firefox-i18n-32.0.2/zu.xpi) = 436624 +SHA256 (xpi/firefox-i18n-33.0/ach.xpi) = fb1c69ad70661a723778e8030f4f09796ecf33e49fd2f8e32c4cb0c027f0e174 +SIZE (xpi/firefox-i18n-33.0/ach.xpi) = 438595 +SHA256 (xpi/firefox-i18n-33.0/af.xpi) = 6c35fcf441063ed7ce0deaa115f57ce5d23bc1f78fc147fb38963c8689e15375 +SIZE (xpi/firefox-i18n-33.0/af.xpi) = 439710 +SHA256 (xpi/firefox-i18n-33.0/an.xpi) = cf61e89e1f45511403ffbc1d112ee6ecc67f338c6f7217cfee1bddc4d1621400 +SIZE (xpi/firefox-i18n-33.0/an.xpi) = 417166 +SHA256 (xpi/firefox-i18n-33.0/ar.xpi) = 3a08de4e1064f75c1c64935a353de6b781bc16f25b0469ff741723f861d610c7 +SIZE (xpi/firefox-i18n-33.0/ar.xpi) = 470558 +SHA256 (xpi/firefox-i18n-33.0/as.xpi) = fc34573003c2e37a6d903fd6432a79048ef865307f14c1ead1e233dcee92d818 +SIZE (xpi/firefox-i18n-33.0/as.xpi) = 459612 +SHA256 (xpi/firefox-i18n-33.0/ast.xpi) = a4274b532025baf42573d249b12a3b3793b5a80e4a8bf05a0989f9ee95081c1a +SIZE (xpi/firefox-i18n-33.0/ast.xpi) = 352928 +SHA256 (xpi/firefox-i18n-33.0/be.xpi) = f36bb698fcf733bd1610af2a09af091cccd3052995fec229ce56ff827aab993c +SIZE (xpi/firefox-i18n-33.0/be.xpi) = 392180 +SHA256 (xpi/firefox-i18n-33.0/bg.xpi) = 55d1ed7be23c7e504701ae5b904f92f5279b2a180f8da7feed5a46bec9e6f7b1 +SIZE (xpi/firefox-i18n-33.0/bg.xpi) = 448725 +SHA256 (xpi/firefox-i18n-33.0/bn-BD.xpi) = 3eda0769d9958143df336aacd460e2a5f7e563d8e482bc5038e9efc4e8e5e6a0 +SIZE (xpi/firefox-i18n-33.0/bn-BD.xpi) = 483351 +SHA256 (xpi/firefox-i18n-33.0/bn-IN.xpi) = 32925970bfd0b35c07c6c6aac53ece6e5d52eae6064cb5733723aa7764e09cfa +SIZE (xpi/firefox-i18n-33.0/bn-IN.xpi) = 474177 +SHA256 (xpi/firefox-i18n-33.0/br.xpi) = 9be193df751dd2f3068a17c7bd1554ca34cb6f02480125c0b57375606626d3f7 +SIZE (xpi/firefox-i18n-33.0/br.xpi) = 399012 +SHA256 (xpi/firefox-i18n-33.0/bs.xpi) = e15eac3ffd067fbfee4a79a12c330dc882ff03a9c4d42d5188b3e2cd20bde5fc +SIZE (xpi/firefox-i18n-33.0/bs.xpi) = 440178 +SHA256 (xpi/firefox-i18n-33.0/ca.xpi) = bdd9c95ffc48bf5b0b1b09b67115145a8088f351bbc5a030d313b8ac19ba60f5 +SIZE (xpi/firefox-i18n-33.0/ca.xpi) = 413704 +SHA256 (xpi/firefox-i18n-33.0/cs.xpi) = 3989481da7fc00e2ae6d66f6f0a74a0c5bdead68fe57471bd2d77c70aa3eed9e +SIZE (xpi/firefox-i18n-33.0/cs.xpi) = 401175 +SHA256 (xpi/firefox-i18n-33.0/csb.xpi) = df6e50a4068c0f1bc52a9a59fe3a668277806788f13281ba948c37809f2e73b4 +SIZE (xpi/firefox-i18n-33.0/csb.xpi) = 394930 +SHA256 (xpi/firefox-i18n-33.0/cy.xpi) = 8757239c3b218f720b6e931346ce0602f8f01a040670758b90afa21edb28f2fc +SIZE (xpi/firefox-i18n-33.0/cy.xpi) = 400467 +SHA256 (xpi/firefox-i18n-33.0/da.xpi) = 37a36bf620d820d25dfb6dd0be59c201f82765cf616ca2533f1b5d248d6c570a +SIZE (xpi/firefox-i18n-33.0/da.xpi) = 407440 +SHA256 (xpi/firefox-i18n-33.0/de.xpi) = 2d9f301a170467c19090acc2c31d7aa71dd6db6b616964a8e882a2ffca064b38 +SIZE (xpi/firefox-i18n-33.0/de.xpi) = 405657 +SHA256 (xpi/firefox-i18n-33.0/el.xpi) = 90aca35e51d1643e120a9e73eac11ffbd067b669f85d44f0de7ed72cfd6b9185 +SIZE (xpi/firefox-i18n-33.0/el.xpi) = 453581 +SHA256 (xpi/firefox-i18n-33.0/en-GB.xpi) = 99046c8de54ab0904184b7ff357bbb8ea672e389152506706cea564ee6e8a442 +SIZE (xpi/firefox-i18n-33.0/en-GB.xpi) = 399889 +SHA256 (xpi/firefox-i18n-33.0/en-US.xpi) = 4b7f41bcdeabce6e1b61a0edf6d118b49afffa97af9ad9f254172339679cf317 +SIZE (xpi/firefox-i18n-33.0/en-US.xpi) = 431991 +SHA256 (xpi/firefox-i18n-33.0/en-ZA.xpi) = fa30bef0e8f0796cae3bf72a298b92bc7a0a31fc3d47cdd5f9677acffb3efede +SIZE (xpi/firefox-i18n-33.0/en-ZA.xpi) = 395962 +SHA256 (xpi/firefox-i18n-33.0/eo.xpi) = 4b4ead0e0f57f35438f5ffc8d6e64d7e5b666c5bb5bab44d8e4e7be4813b3399 +SIZE (xpi/firefox-i18n-33.0/eo.xpi) = 441493 +SHA256 (xpi/firefox-i18n-33.0/es-AR.xpi) = 0cb63288064df4d36ea08f4da8a7f49ab1905b7b4f1a21a8a054a1038de77b9b +SIZE (xpi/firefox-i18n-33.0/es-AR.xpi) = 409699 +SHA256 (xpi/firefox-i18n-33.0/es-CL.xpi) = 0990b2ff9cc2efca578483aa4a6266c2ddce6e8fc3ba87f5b1868ca9849e1a79 +SIZE (xpi/firefox-i18n-33.0/es-CL.xpi) = 348957 +SHA256 (xpi/firefox-i18n-33.0/es-ES.xpi) = c233820830581da617c225dad2d23192dbf5e50eada4fa1cdf8a06d9ff54f19c +SIZE (xpi/firefox-i18n-33.0/es-ES.xpi) = 341270 +SHA256 (xpi/firefox-i18n-33.0/es-MX.xpi) = c6ed2ef02b15dd9bab90dc9080203c1f26271a3c71ae7b21f64f509cb6994e58 +SIZE (xpi/firefox-i18n-33.0/es-MX.xpi) = 412164 +SHA256 (xpi/firefox-i18n-33.0/et.xpi) = f87686d61e12871e6a05f8a926a2dd44df9e3e3a4203a1d2aadc2da4776a0728 +SIZE (xpi/firefox-i18n-33.0/et.xpi) = 399818 +SHA256 (xpi/firefox-i18n-33.0/eu.xpi) = 8faec8e4d8cc006166dc9b43622c3cc4e31b68b0c54e2c11705d56c53657c794 +SIZE (xpi/firefox-i18n-33.0/eu.xpi) = 422546 +SHA256 (xpi/firefox-i18n-33.0/fa.xpi) = 666f3d24ac27d0973bad9b3f27cf0467f51a704224160215ab8cd121f6efe785 +SIZE (xpi/firefox-i18n-33.0/fa.xpi) = 470960 +SHA256 (xpi/firefox-i18n-33.0/ff.xpi) = bb18f8d2d5a215877ed0b4a1c43bce30e30f2d7a02613b7263e1796ffee1db86 +SIZE (xpi/firefox-i18n-33.0/ff.xpi) = 409820 +SHA256 (xpi/firefox-i18n-33.0/fi.xpi) = eb98aa10a822ca1bcb28aabffdbd82577f1078670c61acb54699d5bbcb0caaf5 +SIZE (xpi/firefox-i18n-33.0/fi.xpi) = 401952 +SHA256 (xpi/firefox-i18n-33.0/fr.xpi) = 0f176eab92151de66cd6838371a459cdf2bf9f3070aaac24b501e736efa0b204 +SIZE (xpi/firefox-i18n-33.0/fr.xpi) = 416671 +SHA256 (xpi/firefox-i18n-33.0/fy-NL.xpi) = 6fb09fa98046863e6a2d3cf19273d8f9f8818916f977be70238d3ae9866ea485 +SIZE (xpi/firefox-i18n-33.0/fy-NL.xpi) = 411367 +SHA256 (xpi/firefox-i18n-33.0/ga-IE.xpi) = c75e0bbd666715742ab7a2948aedecc265df4a9c3f2e00beb63096767ac95dcc +SIZE (xpi/firefox-i18n-33.0/ga-IE.xpi) = 419255 +SHA256 (xpi/firefox-i18n-33.0/gd.xpi) = 2a90aec7c6ca941fdfd69a1ef11c6c7d9d93a69897362a3ed4f8442acde0eb3d +SIZE (xpi/firefox-i18n-33.0/gd.xpi) = 412399 +SHA256 (xpi/firefox-i18n-33.0/gl.xpi) = f4956b7fc8c6de9dbcb64f060a217811989be2601958165de65add289adc5227 +SIZE (xpi/firefox-i18n-33.0/gl.xpi) = 401180 +SHA256 (xpi/firefox-i18n-33.0/gu-IN.xpi) = 9c9795a80b21797b27378dc607fe140dcf2c9ae6d51cb814a127e31f13ec5615 +SIZE (xpi/firefox-i18n-33.0/gu-IN.xpi) = 429327 +SHA256 (xpi/firefox-i18n-33.0/he.xpi) = 986dac932aae7dccda7aac1e708a79b615480bb3bffec5c0f458c86f4857def6 +SIZE (xpi/firefox-i18n-33.0/he.xpi) = 447202 +SHA256 (xpi/firefox-i18n-33.0/hi-IN.xpi) = 86acbca3eedad6ed9c09163f7ada90e0f4e7d12513c6ae49dd98efbefa9c2e4c +SIZE (xpi/firefox-i18n-33.0/hi-IN.xpi) = 451706 +SHA256 (xpi/firefox-i18n-33.0/hr.xpi) = f0cd9503c33807734dcc39302279b6b86c060da7ef76b0be2c44a859154e9eac +SIZE (xpi/firefox-i18n-33.0/hr.xpi) = 434271 +SHA256 (xpi/firefox-i18n-33.0/hsb.xpi) = d06ebff4cea67d31858ff88642c225367348a1358870d507a3628e7df8a23067 +SIZE (xpi/firefox-i18n-33.0/hsb.xpi) = 423342 +SHA256 (xpi/firefox-i18n-33.0/hu.xpi) = 123341ddd77027e35843a953f2388dbf50b10d3ad3edbe0a6049d3baadd8c2a3 +SIZE (xpi/firefox-i18n-33.0/hu.xpi) = 408613 +SHA256 (xpi/firefox-i18n-33.0/hy-AM.xpi) = 91cbfe3d5f6b05baf84929396bdd5621df0647a4d94be4c481bcc939750ea178 +SIZE (xpi/firefox-i18n-33.0/hy-AM.xpi) = 489405 +SHA256 (xpi/firefox-i18n-33.0/id.xpi) = 1a4e9ad4e11b732944532d4d95abb56af4f15345b14281e280140dc2ea03aa91 +SIZE (xpi/firefox-i18n-33.0/id.xpi) = 387694 +SHA256 (xpi/firefox-i18n-33.0/is.xpi) = 907ffe72503e9cdd760240029398cea2a6e3880acd6eda292e3edbbdf3ce3322 +SIZE (xpi/firefox-i18n-33.0/is.xpi) = 437346 +SHA256 (xpi/firefox-i18n-33.0/it.xpi) = 415ef2b97a40ea2116dba0978067f682b4af5d9ac2d97e64f166514bac6ec14f +SIZE (xpi/firefox-i18n-33.0/it.xpi) = 336091 +SHA256 (xpi/firefox-i18n-33.0/ja.xpi) = 4b10c2b762b4f13fc6a7fb5fd7a0dfb92ef8e70715d501b45b407ebe37020046 +SIZE (xpi/firefox-i18n-33.0/ja.xpi) = 431410 +SHA256 (xpi/firefox-i18n-33.0/kk.xpi) = 6ad7755cafe48b4fe5bc8c90a7a3130d11405edac7b9057aad52cc4a6d864761 +SIZE (xpi/firefox-i18n-33.0/kk.xpi) = 449694 +SHA256 (xpi/firefox-i18n-33.0/km.xpi) = 822b71c4f383a45493e21e027ec8421d4392e9e8237e68db07508c745fa4171c +SIZE (xpi/firefox-i18n-33.0/km.xpi) = 517638 +SHA256 (xpi/firefox-i18n-33.0/kn.xpi) = f7dc9d5344b9da358f8b063f90ba49053b8544dae3359371fbb6e8d9fa072e26 +SIZE (xpi/firefox-i18n-33.0/kn.xpi) = 484376 +SHA256 (xpi/firefox-i18n-33.0/ko.xpi) = 37e69852de14fd4fcf00f8926ac65824019abe2aba2bb8abb2d96b5bc7be4fa0 +SIZE (xpi/firefox-i18n-33.0/ko.xpi) = 413554 +SHA256 (xpi/firefox-i18n-33.0/ku.xpi) = e759629274c879532284a6a7e52950c731136e3507dc8547f7689df3b757b9d5 +SIZE (xpi/firefox-i18n-33.0/ku.xpi) = 430767 +SHA256 (xpi/firefox-i18n-33.0/lij.xpi) = 856405a868374b53a8ee7d425854465d67e572d2895d545631d4d92c3af753d1 +SIZE (xpi/firefox-i18n-33.0/lij.xpi) = 397338 +SHA256 (xpi/firefox-i18n-33.0/lt.xpi) = bc96b34812c514908635b826f59a1716b23e2a109a835ed68dfa428502022137 +SIZE (xpi/firefox-i18n-33.0/lt.xpi) = 440543 +SHA256 (xpi/firefox-i18n-33.0/lv.xpi) = 07a74935d2a65581b8328d212b183b821686da3fdf274632ad5dd6eeb49ac1c9 +SIZE (xpi/firefox-i18n-33.0/lv.xpi) = 406916 +SHA256 (xpi/firefox-i18n-33.0/mai.xpi) = 4501c3b32e6639f0de237b1d0f9dcef3f420761cb9c0373a0670884f7ce03ad4 +SIZE (xpi/firefox-i18n-33.0/mai.xpi) = 454969 +SHA256 (xpi/firefox-i18n-33.0/mk.xpi) = eb97247d2044c679d3a741bea2bfff51d4b6a67bfbf62515b455f174ce34fd63 +SIZE (xpi/firefox-i18n-33.0/mk.xpi) = 485785 +SHA256 (xpi/firefox-i18n-33.0/ml.xpi) = 652530081f5e2611dd4d30463b1cd8d14e39d9a330cac7eb78115106ff0e8353 +SIZE (xpi/firefox-i18n-33.0/ml.xpi) = 481574 +SHA256 (xpi/firefox-i18n-33.0/mr.xpi) = 8988eca854ae4ab11adb0e1ac5987df038839002d0115f979bc43490259670f3 +SIZE (xpi/firefox-i18n-33.0/mr.xpi) = 462151 +SHA256 (xpi/firefox-i18n-33.0/ms.xpi) = 75ebab12603eede36683daba73ffe9a666f367506f0f8a53de0f5e8ce871a04f +SIZE (xpi/firefox-i18n-33.0/ms.xpi) = 445101 +SHA256 (xpi/firefox-i18n-33.0/nb-NO.xpi) = 80623c481de4d414672210b9d6d3ed9fb3794395129bc992a6bf5815e10ce8a7 +SIZE (xpi/firefox-i18n-33.0/nb-NO.xpi) = 401222 +SHA256 (xpi/firefox-i18n-33.0/nl.xpi) = 659f7f5df5547dd8c632ef05662369b89a45145cfd50c2565b118a10278a805c +SIZE (xpi/firefox-i18n-33.0/nl.xpi) = 400415 +SHA256 (xpi/firefox-i18n-33.0/nn-NO.xpi) = 030b817817696600b9e524d724401c67632d5f81e852401f098ccae216cf0db9 +SIZE (xpi/firefox-i18n-33.0/nn-NO.xpi) = 395688 +SHA256 (xpi/firefox-i18n-33.0/or.xpi) = 7a48c53b2fcda0241ebcf996719f12b7f46b58729bd38fe3c244b495b1617b49 +SIZE (xpi/firefox-i18n-33.0/or.xpi) = 475958 +SHA256 (xpi/firefox-i18n-33.0/pa-IN.xpi) = ce3bb7683b86118bd1eaaadec5c9e749bccfb6dfaa975505a8d2c10b19129e0f +SIZE (xpi/firefox-i18n-33.0/pa-IN.xpi) = 447560 +SHA256 (xpi/firefox-i18n-33.0/pl.xpi) = b80a786af82163eb41b2cdca1a58ada369501a8a178086ba5e145642052c88b2 +SIZE (xpi/firefox-i18n-33.0/pl.xpi) = 382736 +SHA256 (xpi/firefox-i18n-33.0/pt-BR.xpi) = 08c0e76602d6697700f6fa22c4e684bebfe90f38b9b2c5b892788827a18f4e24 +SIZE (xpi/firefox-i18n-33.0/pt-BR.xpi) = 415351 +SHA256 (xpi/firefox-i18n-33.0/pt-PT.xpi) = 8ac786c4119de61cab7ac1f01ac6986d06963f2c9735f686fedc02dcf6f3c3b8 +SIZE (xpi/firefox-i18n-33.0/pt-PT.xpi) = 395800 +SHA256 (xpi/firefox-i18n-33.0/rm.xpi) = f3526efc6d4813a40392f77fe24b3d21de7bd74e4007a0010d9213526988ebf5 +SIZE (xpi/firefox-i18n-33.0/rm.xpi) = 409252 +SHA256 (xpi/firefox-i18n-33.0/ro.xpi) = d87aab4766066c24033cf4675b0fb7ca00ac3fbe9015e800e06d0e15563f8c34 +SIZE (xpi/firefox-i18n-33.0/ro.xpi) = 450878 +SHA256 (xpi/firefox-i18n-33.0/ru.xpi) = 4c08e198084f214a1f2fd1fa7e186921d799d6907120047a1226e6afcbebdd94 +SIZE (xpi/firefox-i18n-33.0/ru.xpi) = 378687 +SHA256 (xpi/firefox-i18n-33.0/si.xpi) = b26343b0d8517ab8029a04dabc220b69b827d82f1b6f983abbadb779d812ea2c +SIZE (xpi/firefox-i18n-33.0/si.xpi) = 471817 +SHA256 (xpi/firefox-i18n-33.0/sk.xpi) = 16ab1c936f58121120e71ccfa488dd0664d67db4b1dad3ff361f4b21fe742d37 +SIZE (xpi/firefox-i18n-33.0/sk.xpi) = 424073 +SHA256 (xpi/firefox-i18n-33.0/sl.xpi) = 13300580cf18f0777dfa261f33efc61b8d47797e17d501f92fac1f9bbe86f64b +SIZE (xpi/firefox-i18n-33.0/sl.xpi) = 397421 +SHA256 (xpi/firefox-i18n-33.0/son.xpi) = 4629ac52b8c68dd4f2b6de35ffe3bbc0f4c0605822d1cff180b386cc00a4ca65 +SIZE (xpi/firefox-i18n-33.0/son.xpi) = 404432 +SHA256 (xpi/firefox-i18n-33.0/sq.xpi) = 708dead68642d8d782674a44c7be7040bc516a311cb328b57c477c7d914cffb9 +SIZE (xpi/firefox-i18n-33.0/sq.xpi) = 440871 +SHA256 (xpi/firefox-i18n-33.0/sr.xpi) = 54bc18b7e5b709a28c01d70983024925fabf04a4f3cc2770368f36d69da3e561 +SIZE (xpi/firefox-i18n-33.0/sr.xpi) = 435266 +SHA256 (xpi/firefox-i18n-33.0/sv-SE.xpi) = a27a1990d0bc6b34ba26e3dcbde16cf539b7974653772c105ac8e11813ecf945 +SIZE (xpi/firefox-i18n-33.0/sv-SE.xpi) = 408341 +SHA256 (xpi/firefox-i18n-33.0/ta.xpi) = d919beb0086c7cf5b1ad8d491e0e43d2ed6fa0afa774f74cf80ed3df0a5b8a45 +SIZE (xpi/firefox-i18n-33.0/ta.xpi) = 458828 +SHA256 (xpi/firefox-i18n-33.0/te.xpi) = a93c0c8a50f2aa8eb47a3f69be699da2dfd9447577ad8e2af20022d32c9adbfd +SIZE (xpi/firefox-i18n-33.0/te.xpi) = 477729 +SHA256 (xpi/firefox-i18n-33.0/th.xpi) = e51608654d570673567a92aedcd016478a810fcb4991f9408e6d73fa31afd248 +SIZE (xpi/firefox-i18n-33.0/th.xpi) = 488197 +SHA256 (xpi/firefox-i18n-33.0/tr.xpi) = 31bb3bbbc4aff041559dbef932c8103063cb5fa333b640a68b2dc0e73dd3b8a1 +SIZE (xpi/firefox-i18n-33.0/tr.xpi) = 427703 +SHA256 (xpi/firefox-i18n-33.0/uk.xpi) = a39eda76dd9d437c59b1aa5463d1e2a340f764da694c886eeccefb56bf6fb018 +SIZE (xpi/firefox-i18n-33.0/uk.xpi) = 439819 +SHA256 (xpi/firefox-i18n-33.0/vi.xpi) = 8422c888ac94653562971a78c86bde365f29a669dcd3bf0c9dacf68b5138f0c3 +SIZE (xpi/firefox-i18n-33.0/vi.xpi) = 422408 +SHA256 (xpi/firefox-i18n-33.0/xh.xpi) = 5e415f6c1bd7de7fdb96385f044455f465954836119950a51dd34ebfefa9dcbd +SIZE (xpi/firefox-i18n-33.0/xh.xpi) = 408460 +SHA256 (xpi/firefox-i18n-33.0/zh-CN.xpi) = 0fe62fe5f372b01f40a9d20617688eda3923cc3a90d3742200e9c841ba0523f2 +SIZE (xpi/firefox-i18n-33.0/zh-CN.xpi) = 429857 +SHA256 (xpi/firefox-i18n-33.0/zh-TW.xpi) = 88e13c51ab2cde95ca274c458c73af74fe2b4a0eeb5efde3e223a55f73940a6e +SIZE (xpi/firefox-i18n-33.0/zh-TW.xpi) = 422430 +SHA256 (xpi/firefox-i18n-33.0/zu.xpi) = 6deb6b853ec1923ab325332d2eb5e96e6a0cea443d447203dff0cff5352c15bf +SIZE (xpi/firefox-i18n-33.0/zu.xpi) = 443460 Index: branches/2014Q4/www/libxul/Makefile =================================================================== --- branches/2014Q4/www/libxul/Makefile (revision 370968) +++ branches/2014Q4/www/libxul/Makefile (revision 370969) @@ -1,86 +1,109 @@ # Created by: Michael Johnson # $FreeBSD$ PORTNAME= libxul -DISTVERSION= 24.8.1 +DISTVERSION= 31.2.0 CATEGORIES?= www devel -MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \ - https://ftp.mozilla.org/pub/mozilla.org/firefox/candidates/${DISTVERSION}esr-candidates/build1/source/ +MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/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.10.2:${PORTSDIR}/devel/nspr \ - nss>=3.15.4:${PORTSDIR}/security/nss \ - sqlite3>=3.7.17:${PORTSDIR}/databases/sqlite3 \ - ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ +BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \ + nss>=3.16.2:${PORTSDIR}/security/nss \ libevent2>=2.0.21_2:${PORTSDIR}/devel/libevent2 \ - cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \ - soundtouch>=1.7.0:${PORTSDIR}/audio/soundtouch \ - harfbuzz>=0.9.16:${PORTSDIR}/print/harfbuzz \ - graphite2>=1.2.3:${PORTSDIR}/graphics/graphite2 \ + cairo>=1.12.16_1,2:${PORTSDIR}/graphics/cairo \ + soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \ + harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \ + graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \ libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \ opus>=1.1:${PORTSDIR}/audio/opus \ + libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \ + sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \ + ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ zip:${PORTSDIR}/archivers/zip \ unzip:${PORTSDIR}/archivers/unzip + LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l -WRKSRC= ${WRKDIR}/mozilla-esr24 +WRKSRC= ${WRKDIR}/mozilla-esr31 CONFLICTS= libxul-1.9.* USE_AUTOTOOLS= autoconf213:env WANT_GNOME= yes -USE_QT4= # empty +USE_QT5= # empty QT_NONSTANDARD= yes WANT_PERL= yes ALL_TARGET= default GNU_CONFIGURE= yes USE_GL= gl USES= dos2unix pathfix tar:bzip2 DOS2UNIX_FILES= media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp 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 MOZ_EXTENSIONS= default,cookie,permissions USE_GECKO= gecko CPE_PRODUCT= firefox_esr OBJDIR_BUILD= # in-tree build broken after bug 789837 MOZILLA_EXEC_NAME=xulrunner USE_MOZILLA= # empty MOZILLA_PLIST_DIRS= bin include lib share/idl libdata -PLIST_DIRSTRY= share/idl MOZ_PKGCONFIG_FILES= libxul-embedding libxul mozilla-js \ mozilla-plugin +BROKEN= build error on js/xpconnect/src/libxpconnect_s.a.desc + .include "${.CURDIR}/../../www/firefox/Makefile.options" .include .if ${USE_MOZILLA:M-nss} MOZ_PKGCONFIG_FILES+= mozilla-nss .endif +# avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1> +# To be removed when 9.2R goes EOL. http://llvm.org/PR15840 +.if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION:M3[23]} +. if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} +BROKEN= Cannot build with OPTIMIZED_CFLAGS option due to \ + a ${CHOSEN_COMPILER_TYPE} bug: unset the option or \ + use FAVORITE_COMPILER=gcc in Makefile.local/make.conf +# apply workaround only for -O2 or greater +. elif ${CXXFLAGS:M-O*} && ! ${CXXFLAGS:M-O[01]} +. if ${MACHINE_CPU:Msse2} +CXXFLAGS+= -msse2 +. else +CXXFLAGS+= -O1 +. endif +. endif +.endif + .if ${PORT_OPTIONS:MALSA} RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib +.endif + +.if ${PORT_OPTIONS:MGSTREAMER} +RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:${PORTSDIR}/multimedia/gstreamer1-libav .endif post-patch: @${REINPLACE_CMD} -e '/MOZPNG/s/=[0-9]*/=10511/' \ ${WRKSRC}/configure.in @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/xulrunner/stub/nsXULStub.cpp pre-configure: (cd ${WRKSRC} && ${AUTOCONF}) (cd ${WRKSRC}/js/src/ && ${AUTOCONF}) 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/2014Q4/www/libxul/distinfo =================================================================== --- branches/2014Q4/www/libxul/distinfo (revision 370968) +++ branches/2014Q4/www/libxul/distinfo (revision 370969) @@ -1,2 +1,2 @@ -SHA256 (firefox-24.8.1esr.source.tar.bz2) = 53db5f6d52e4669bf2650b1dd9d480b31eb1cc42c107ed741a65fb5bcacc8932 -SIZE (firefox-24.8.1esr.source.tar.bz2) = 119811868 +SHA256 (firefox-31.2.0esr.source.tar.bz2) = 02de399cbf467ea536042008d1e0cd4ac6ffdc9b469d3189384f02ec0590d378 +SIZE (firefox-31.2.0esr.source.tar.bz2) = 147362334 Index: branches/2014Q4/www/libxul/files/patch-bug810716 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug810716 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug810716 (nonexistent) @@ -1,68 +0,0 @@ -diff --git configure.in configure.in -index 2084be9..eb6eeb2 100644 ---- configure.in -+++ configure.in -@@ -3369,14 +3369,19 @@ fi - AC_CACHE_CHECK( - [for res_ninit()], - ac_cv_func_res_ninit, -- [AC_TRY_LINK([ -+ [AC_TRY_RUN([ - #ifdef linux - #define _BSD_SOURCE 1 - #endif -+ #include -+ #include -+ #include - #include -- ], -- [int foo = res_ninit(&_res);], -+ int main(int argc, char **argv){ -+ int foo = res_ninit(&_res); -+ }], - [ac_cv_func_res_ninit=yes], -+ [ac_cv_func_res_ninit=no], - [ac_cv_func_res_ninit=no]) - ]) - -diff --git extensions/auth/nsAuthGSSAPI.cpp extensions/auth/nsAuthGSSAPI.cpp -index e828beb..6444246 100644 ---- extensions/auth/nsAuthGSSAPI.cpp -+++ extensions/auth/nsAuthGSSAPI.cpp -@@ -39,6 +39,9 @@ typedef KLStatus (*KLCacheHasValidTickets_type)( - #endif - - #if defined(HAVE_RES_NINIT) -+#include -+#include -+#include - #include - #endif - -diff --git js/src/configure.in js/src/configure.in -index e25f569..b9722f9 100644 ---- js/src/configure.in -+++ js/src/configure.in -@@ -2797,14 +2797,19 @@ fi - AC_CACHE_CHECK( - [for res_ninit()], - ac_cv_func_res_ninit, -- [AC_TRY_LINK([ -+ [AC_TRY_RUN([ - #ifdef linux - #define _BSD_SOURCE 1 - #endif -+ #include -+ #include -+ #include - #include -- ], -- [int foo = res_ninit(&_res);], -+ int main(int argc, char **argv){ -+ int foo = res_ninit(&_res); -+ }], - [ac_cv_func_res_ninit=yes], -+ [ac_cv_func_res_ninit=no], - [ac_cv_func_res_ninit=no]) - ]) - Property changes on: branches/2014Q4/www/libxul/files/patch-bug810716 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug962345 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug962345 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug962345 (nonexistent) @@ -1,18 +0,0 @@ -diff --git config/system-headers config/system-headers -index 8803150..ae38d68 100644 ---- config/system-headers -+++ config/system-headers -@@ -1159,3 +1159,4 @@ unicode/ustring.h - #endif - libutil.h - unwind.h -+cairo-qt.h -diff --git config/system-headers config/system-headers -index 8803150..ae38d68 100644 ---- js/src/config/system-headers -+++ js/src/config/system-headers -@@ -1159,3 +1159,4 @@ unicode/ustring.h - #endif - libutil.h - unwind.h -+cairo-qt.h Property changes on: branches/2014Q4/www/libxul/files/patch-bug962345 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug918177 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug918177 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug918177 (nonexistent) @@ -1,36 +0,0 @@ -diff --git config/stl-headers config/stl-headers -index c057d8e..dc7f6f0 100644 ---- config/stl-headers -+++ config/stl-headers -@@ -21,6 +21,7 @@ algorithm - atomic - deque - ios -+iosfwd - iostream - iterator - limits -diff --git config/system-headers config/system-headers -index d31c94e..570c82a 100644 ---- config/system-headers -+++ config/system-headers -@@ -469,6 +469,7 @@ IOKit/IOMessage.h - IOKit/pwr_mgt/IOPMLib.h - iomanip - ios -+iosfwd - iostream - iostream.h - iterator -diff --git js/src/config/system-headers js/src/config/system-headers -index d31c94e..570c82a 100644 ---- js/src/config/system-headers -+++ js/src/config/system-headers -@@ -469,6 +469,7 @@ IOKit/IOMessage.h - IOKit/pwr_mgt/IOPMLib.h - iomanip - ios -+iosfwd - iostream - iostream.h - iterator Property changes on: branches/2014Q4/www/libxul/files/patch-bug918177 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug807492 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug807492 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug807492 (nonexistent) @@ -1,628 +0,0 @@ -JJdiff --git configure.in configure.in -index c167461..8346c11 100644 ---- configure.in -+++ configure.in -@@ -5246,17 +5246,17 @@ if test "$NS_PRINTING"; then - AC_DEFINE(NS_PRINT_PREVIEW) - fi - - dnl Turn off webrtc for OS's we don't handle yet, but allow - dnl --enable-webrtc to override. Can disable for everything in - dnl the master list above. - if test -n "$MOZ_WEBRTC"; then - case "$target" in -- *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*) -+ *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*) - dnl Leave enabled - ;; - *) - dnl default to disabled for all others - MOZ_WEBRTC= - ;; - esac - fi -diff --git media/mtransport/objs.mk media/mtransport/objs.mk -index f1fc85f..141e8ca 100644 ---- media/mtransport/objs.mk -+++ media/mtransport/objs.mk -@@ -18,22 +18,26 @@ LOCAL_INCLUDES += \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/util/libekr \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/log \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/registry \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/stats \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/plugin \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/event \ - $(NULL) - --ifeq ($(OS_TARGET), Darwin) -+ifneq (,$(filter Darwin DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET))) - LOCAL_INCLUDES += \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/darwin/include \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/generic/include \ - $(NULL) -+ifeq ($(OS_TARGET), Darwin) - DEFINES += -DDARWIN -+else -+DEFINES += -DBSD -+endif - endif - - ifeq ($(OS_TARGET), Linux) - LOCAL_INCLUDES += \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/linux/include \ - -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/generic/include \ - $(NULL) - DEFINES += -DLINUX -diff --git media/mtransport/test/Makefile.in media/mtransport/test/Makefile.in -index c1d5bf4..2ecf2c7 100644 ---- media/mtransport/test/Makefile.in -+++ media/mtransport/test/Makefile.in -@@ -73,22 +73,24 @@ DEFINES += -D__Userspace_os_FreeBSD=1 - else - #default_fallback; probably doesn't work - DEFINES += -D__Userspace_os_$(OS_TARGET)=1 - endif - endif - endif - endif - --ifeq ($(OS_TARGET), Darwin) -+ifneq (,$(filter Darwin DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET))) - LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/darwin/include -+ifeq ($(OS_TARGET), Darwin) - DEFINES += \ - -DGTEST_USE_OWN_TR1_TUPLE=1 \ - $(NULL) - endif -+endif - - ifeq ($(OS_TARGET), Linux) - LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/linux/include - endif - - ifeq ($(OS_TARGET), Android) - LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/android/include - -diff --git media/mtransport/third_party/nICEr/nicer.gyp media/mtransport/third_party/nICEr/nicer.gyp -index 0e1f8b4..9a4b995 100644 ---- media/mtransport/third_party/nICEr/nicer.gyp -+++ media/mtransport/third_party/nICEr/nicer.gyp -@@ -126,26 +126,36 @@ - 'R_DEFINED_UINT2=uint16_t', - 'R_DEFINED_INT4=int32_t', - 'R_DEFINED_UINT4=uint32_t', - 'R_DEFINED_INT8=int64_t', - 'R_DEFINED_UINT8=uint64_t', - ], - - 'conditions' : [ -- ## Mac -+ ## Mac and BSDs - [ 'OS == "mac"', { -+ 'defines' : [ -+ 'DARWIN', -+ 'HAVE_XLOCALE', -+ ], -+ }], -+ [ 'os_bsd == 1', { -+ 'defines' : [ -+ 'BSD', -+ ], -+ }], -+ [ 'OS == "mac" or os_bsd == 1', { - 'cflags_mozilla': [ - '-Wall', - '-Wno-parentheses', - '-Wno-strict-prototypes', - '-Wmissing-prototypes', - ], - 'defines' : [ -- 'DARWIN', - 'HAVE_LIBM=1', - 'HAVE_STRDUP=1', - 'HAVE_STRLCPY=1', - 'HAVE_SYS_TIME_H=1', - 'HAVE_VFPRINTF=1', - 'NEW_STDIO' - 'RETSIGTYPE=void', - 'TIME_WITH_SYS_TIME_H=1', -diff --git media/mtransport/third_party/nICEr/src/stun/addrs.c media/mtransport/third_party/nICEr/src/stun/addrs.c -index b0b66b2..04fea94 100644 ---- media/mtransport/third_party/nICEr/src/stun/addrs.c -+++ media/mtransport/third_party/nICEr/src/stun/addrs.c -@@ -50,17 +50,19 @@ static char *RCSSTRING __UNUSED__="$Id: addrs.c,v 1.2 2008/04/28 18:21:30 ekr Ex - #else - #include - /* Work around an Android NDK < r8c bug */ - #undef __unused - #include - #endif - #include - #ifndef LINUX -+#if !defined(__OpenBSD__) && !defined(__NetBSD__) - #include -+#endif - #include - #include - #include - #else - #include - #endif - #include - -@@ -75,17 +77,17 @@ static char *RCSSTRING __UNUSED__="$Id: addrs.c,v 1.2 2008/04/28 18:21:30 ekr Ex - #include - #endif /* UNIX */ - - #include "stun.h" - #include "addrs.h" - - - --#ifdef DARWIN -+#if defined(BSD) || defined(DARWIN) - /* - * Copyright (c) 1983, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright -@@ -685,17 +687,17 @@ nr_stun_remove_duplicate_addrs(nr_transport_addr addrs[], int remove_loopback, i - } - - int - nr_stun_get_addrs(nr_transport_addr addrs[], int maxaddrs, int drop_loopback, int *count) - { - int _status=0; - int i; - --#ifdef DARWIN -+#if defined(BSD) || defined(DARWIN) - _status = stun_get_mib_addrs(addrs, maxaddrs, count); - #elif defined(WIN32) - _status = stun_get_win32_addrs(addrs, maxaddrs, count); - #elif defined(__sparc__) - _status = stun_get_sparc_addrs(addrs, maxaddrs, count); - #else - _status = stun_get_siocgifconf_addrs(addrs, maxaddrs, count); - #endif -diff --git media/mtransport/third_party/nICEr/src/stun/stun.h media/mtransport/third_party/nICEr/src/stun/stun.h -index a3c51f9..eb65ac8 100644 ---- media/mtransport/third_party/nICEr/src/stun/stun.h -+++ media/mtransport/third_party/nICEr/src/stun/stun.h -@@ -36,21 +36,25 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #ifdef WIN32 - #include - #else - #include - #include - #include - #ifndef LINUX -+#if !defined(__OpenBSD__) && !defined(__NetBSD__) - #include -+#endif - #include - #include - #endif -+#ifndef BSD - #include -+#endif - #include - #ifndef LINUX - #include - #endif - #include - #include - #endif - #include -diff --git media/mtransport/third_party/nICEr/src/util/mbslen.c media/mtransport/third_party/nICEr/src/util/mbslen.c -index cc260b7..66af2d7 100644 ---- media/mtransport/third_party/nICEr/src/util/mbslen.c -+++ media/mtransport/third_party/nICEr/src/util/mbslen.c -@@ -38,50 +38,58 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include - - #include - #include - #include - #include --#ifdef DARWIN -+ -+#ifdef __FreeBSD__ -+#include -+# if __FreeBSD_version > 900505 -+# define HAVE_XLOCALE -+# endif -+#endif -+ -+#ifdef HAVE_XLOCALE - #include --#endif /* DARWIN */ -+#endif /* HAVE_XLOCALE */ - - #include "nr_api.h" - #include "mbslen.h" - - /* get number of characters in a mult-byte character string */ - int - mbslen(const char *s, size_t *ncharsp) - { --#ifdef DARWIN -+#ifdef HAVE_XLOCALE - static locale_t loc = 0; - static int initialized = 0; --#endif /* DARWIN */ -+#endif /* HAVE_XLOCALE */ - #ifdef WIN32 - char *my_locale=0; - unsigned int i; - #endif /* WIN32 */ - int _status; - size_t nbytes; - int nchars; - mbstate_t mbs; - --#ifdef DARWIN -+#ifdef HAVE_XLOCALE - if (! initialized) { - initialized = 1; - loc = newlocale(LC_CTYPE_MASK, "UTF-8", LC_GLOBAL_LOCALE); - } - - if (loc == 0) { - /* unable to create the UTF-8 locale */ - assert(loc != 0); /* should never happen */ --#endif /* DARWIN */ -+#endif /* HAVE_XLOCALE */ - - #ifdef WIN32 - if (!setlocale(LC_CTYPE, 0)) - ABORT(R_INTERNAL); - - if (!(my_locale = r_strdup(setlocale(LC_CTYPE, 0)))) - ABORT(R_NO_MEMORY); - -@@ -94,28 +102,28 @@ mbslen(const char *s, size_t *ncharsp) - /* can't count UTF-8 characters with mbrlen if the locale isn't UTF-8 */ - /* null-checking setlocale is required because Android */ - char *locale = setlocale(LC_CTYPE, 0); - /* some systems use "utf8" instead of "UTF-8" like Fedora 17 */ - if (!locale || (!strcasestr(locale, "UTF-8") && !strcasestr(locale, "UTF8"))) - ABORT(R_NOT_FOUND); - #endif - --#ifdef DARWIN -+#ifdef HAVE_XLOCALE - } --#endif /* DARWIN */ -+#endif /* HAVE_XLOCALE */ - - memset(&mbs, 0, sizeof(mbs)); - nchars = 0; - --#ifdef DARWIN -+#ifdef HAVE_XLOCALE - while (*s != '\0' && (nbytes = mbrlen_l(s, strlen(s), &mbs, loc)) != 0) - #else - while (*s != '\0' && (nbytes = mbrlen(s, strlen(s), &mbs)) != 0) --#endif /* DARWIN */ -+#endif /* HAVE_XLOCALE */ - { - if (nbytes == (size_t)-1) /* should never happen */ { - ABORT(R_INTERNAL); - } - if (nbytes == (size_t)-2) /* encoding error */ { - ABORT(R_BAD_DATA); - } - -diff --git media/mtransport/third_party/nrappkit/nrappkit.gyp media/mtransport/third_party/nrappkit/nrappkit.gyp -index 3cc8e1c..74016c6 100644 ---- media/mtransport/third_party/nrappkit/nrappkit.gyp -+++ media/mtransport/third_party/nrappkit/nrappkit.gyp -@@ -142,26 +142,35 @@ - 'R_DEFINED_UINT2=uint16_t', - 'R_DEFINED_INT4=int32_t', - 'R_DEFINED_UINT4=uint32_t', - 'R_DEFINED_INT8=int64_t', - 'R_DEFINED_UINT8=uint64_t', - ], - - 'conditions' : [ -- ## Mac -+ ## Mac and BSDs - [ 'OS == "mac"', { -+ 'defines' : [ -+ 'DARWIN', -+ ], -+ }], -+ [ 'os_bsd == 1', { -+ 'defines' : [ -+ 'BSD', -+ ], -+ }], -+ [ 'OS == "mac" or os_bsd == 1', { - 'cflags_mozilla': [ - '-Wall', - '-Wno-parentheses', - '-Wno-strict-prototypes', - '-Wmissing-prototypes', - ], - 'defines' : [ -- 'DARWIN', - 'HAVE_LIBM=1', - 'HAVE_STRDUP=1', - 'HAVE_STRLCPY=1', - 'HAVE_SYS_TIME_H=1', - 'HAVE_VFPRINTF=1', - 'NEW_STDIO' - 'RETSIGTYPE=void', - 'TIME_WITH_SYS_TIME_H=1', -diff --git media/mtransport/third_party/nrappkit/src/log/r_log.c media/mtransport/third_party/nrappkit/src/log/r_log.c -index efb7ef2..aebf578 100644 ---- media/mtransport/third_party/nrappkit/src/log/r_log.c -+++ media/mtransport/third_party/nrappkit/src/log/r_log.c -@@ -43,16 +43,17 @@ static char *RCSSTRING __UNUSED__ ="$Id: r_log.c,v 1.10 2008/11/25 22:25:18 adam - #ifdef LINUX - #define _BSD_SOURCE - #endif - - #include "r_log.h" - #include "hex.h" - - #include -+#include - #ifndef _MSC_VER - #include - #include - #endif - #include - #include - - -diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h -index bcb1ec0..bb73591 100644 ---- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h -+++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h -@@ -33,7 +33,7 @@ - #ifndef _SYS_QUEUE_H_ - #define _SYS_QUEUE_H_ - --#ifndef DARWIN -+#if !defined(__FreeBSD__) && !defined(DARWIN) - #include - #define __offsetof offsetof - #endif -diff --git media/mtransport/third_party/nrappkit/src/util/util.c media/mtransport/third_party/nrappkit/src/util/util.c -index a7d4ff1..ff11a60 100644 ---- media/mtransport/third_party/nrappkit/src/util/util.c -+++ media/mtransport/third_party/nrappkit/src/util/util.c -@@ -40,16 +40,17 @@ - static char *RCSSTRING __UNUSED__ ="$Id: util.c,v 1.5 2007/11/21 00:09:13 adamcain Exp $"; - - #ifndef WIN32 - #include - #include - #include - #endif - #include -+#include - #include - #include - #ifdef OPENSSL - #include - #endif - #include "nr_common.h" - #include "r_common.h" - #include "registry.h" -diff --git media/webrtc/signaling/signaling.gyp media/webrtc/signaling/signaling.gyp -index 2a91e3d..31de641 100644 ---- media/webrtc/signaling/signaling.gyp -+++ media/webrtc/signaling/signaling.gyp -@@ -212,16 +212,29 @@ - 'SIPCC_BUILD', - 'HAVE_WINSOCK2_H', - 'CPR_STDINT_INCLUDE=\\"mozilla/StandardInteger.h\\"' - ], - - 'cflags_mozilla': [ - ], - }], -+ ['os_bsd==1', { -+ 'include_dirs': [ -+ ], -+ 'defines': [ -+ # avoiding pointless ifdef churn -+ 'SIP_OS_OSX', -+ 'OSX', -+ 'SECLIB_OPENSSL', -+ ], -+ -+ 'cflags_mozilla': [ -+ ], -+ }], - ['OS=="mac"', { - 'include_dirs': [ - ], - 'defines': [ - 'SIP_OS_OSX', - 'OSX', - '_FORTIFY_SOURCE=2', - ], -@@ -747,17 +760,17 @@ - 'EXTERNAL_TICK_REQUIRED', - 'GIPS_VER=3480', - ], - - 'cflags_mozilla': [ - ], - - }], -- ['OS=="mac"', { -+ ['OS=="mac" or os_bsd==1', { - - 'include_dirs': [ - ], - - 'sources': [ - # SIPSTACK - './src/sipcc/core/sipstack/sip_platform_task.c', - -@@ -792,24 +805,23 @@ - './src/sipcc/cpr/darwin/cpr_darwin_timers_using_select.c', - './src/sipcc/cpr/darwin/cpr_darwin_tst.h', - './src/sipcc/cpr/darwin/cpr_darwin_types.h', - ], - - - 'defines' : [ - 'SIP_OS_OSX', -- '_POSIX_SOURCE', -+ # using BSD extensions, leave _POSIX_SOURCE undefined - 'CPR_MEMORY_LITTLE_ENDIAN', - 'NO_SOCKET_POLLING', - 'USE_TIMER_SELECT_BASED', - 'FULL_BUILD', - 'STUBBED_OUT', - 'USE_PRINTF', -- '_DARWIN_C_SOURCE', - 'NO_NSPR_10_SUPPORT', - ], - - 'cflags_mozilla': [ - ], - }], - ], - -diff --git media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c -index a7c47e1..4f191de 100644 ---- media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c -+++ media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c -@@ -317,21 +317,25 @@ cprGetMessage (cprMsgQueue_t msgQueue, boolean waitForever, void **ppUserData) - { - static const char fname[] = "cprGetMessage"; - - void *buffer = 0; - cpr_msg_queue_t *msgq; - cpr_msgq_node_t *node; - struct timespec timeout; - struct timeval tv; -+#ifndef __APPLE__ -+ struct timezone tz; -+#else - // On the iPhone, there is a DarwinAlias problem with "timezone" - struct _timezone { - int tz_minuteswest; /* of Greenwich */ - int tz_dsttime; /* type of dst correction to apply */ - } tz; -+#endif - - /* Initialize ppUserData */ - if (ppUserData) { - *ppUserData = NULL; - } - - msgq = (cpr_msg_queue_t *) msgQueue; - if (msgq == NULL) { -diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in -index a30e330..cfbd8a3 100644 ---- media/webrtc/signaling/test/Makefile.in -+++ media/webrtc/signaling/test/Makefile.in -@@ -81,17 +81,17 @@ endif - ifeq (qt,$(MOZ_WIDGET_TOOLKIT)) - LIBS += \ - $(XLIBS) \ - $(TK_LIBS) \ - $(MOZ_PANGO_LIBS) \ - $(NULL) - endif - --ifeq ($(OS_TARGET),Linux) -+ifneq (,$(filter Linux DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET))) - LIBS += \ - $(MOZ_CAIRO_OSLIBS) \ - $(NULL) - endif - - ifeq ($(OS_TARGET),Darwin) - LIBS += \ - -framework AudioToolbox \ -diff --git media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py -index 338d0b7..2241d41 100644 ---- media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py -+++ media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py -@@ -1,16 +1,17 @@ - # Copyright (c) 2012 Mozilla Foundation. All rights reserved. - # Use of this source code is governed by a BSD-style license that can be - # found in the LICENSE file. - - import collections - import gyp - import gyp.common - import sys -+import platform - import os - import re - import shlex - - generator_wants_sorted_dependencies = True - - generator_default_variables = { - } -@@ -107,30 +108,44 @@ endif - - def ensure_directory_exists(path): - dir = os.path.dirname(path) - if dir and not os.path.exists(dir): - os.makedirs(dir) - - def GetFlavor(params): - """Returns |params.flavor| if it's set, the system's default flavor else.""" -+ system = platform.system().lower() - flavors = { -- 'win32': 'win', -- 'darwin': 'mac', -- 'sunos5': 'solaris', -- 'freebsd7': 'freebsd', -- 'freebsd8': 'freebsd', -+ 'microsoft': 'win', -+ 'windows' : 'win', -+ 'darwin' : 'mac', -+ 'sunos' : 'solaris', -+ 'dragonfly': 'bsd', -+ 'freebsd' : 'bsd', -+ 'netbsd' : 'bsd', -+ 'openbsd' : 'bsd', - } -- flavor = flavors.get(sys.platform, 'linux') -- return params.get('flavor', flavor) -+ -+ if 'flavor' in params: -+ return params['flavor'] -+ if system.startswith('cygwin'): -+ return 'win' -+ if system in flavors: -+ return flavors[system] -+ -+ return 'linux' - - - def CalculateVariables(default_variables, params): -+ flavor = GetFlavor(params) -+ if flavor == 'bsd': -+ flavor = platform.system().lower() - generator_flags = params.get('generator_flags', {}) -- default_variables['OS'] = generator_flags.get('os', GetFlavor(params)) -+ default_variables['OS'] = generator_flags.get('os', flavor) - - - def CalculateGeneratorInputInfo(params): - """Calculate the generator specific info that gets fed to input (called by - gyp).""" - generator_flags = params.get('generator_flags', {}) - if generator_flags.get('adjust_static_libraries', False): - global generator_wants_static_library_dependencies_adjusted Property changes on: branches/2014Q4/www/libxul/files/patch-bug807492 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug910875 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug910875 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug910875 (nonexistent) @@ -1,102 +0,0 @@ -diff --git media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc -index f231b1e..6087696 100644 ---- media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc -+++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc -@@ -16,7 +16,9 @@ - #include - #include - --#if defined(_WIN32) -+#if defined(WEBRTC_DUMMY_AUDIO_BUILD) -+// do not include platform specific headers -+#elif defined(_WIN32) - #include "audio_device_utility_win.h" - #include "audio_device_wave_win.h" - #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) -@@ -32,14 +34,8 @@ - #include - #include "audio_device_utility_android.h" - #include "audio_device_jni_android.h" --#elif defined(WEBRTC_LINUX) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - #include "audio_device_utility_linux.h" -- #if defined(LINUX_ALSA) -- #include "audio_device_alsa_linux.h" -- #endif -- #if defined(LINUX_PULSE) -- #include "audio_device_pulse_linux.h" -- #endif - #elif defined(WEBRTC_IOS) - #include "audio_device_utility_ios.h" - #include "audio_device_ios.h" -@@ -47,6 +43,12 @@ - #include "audio_device_utility_mac.h" - #include "audio_device_mac.h" - #endif -+#if defined(LINUX_ALSA) -+ #include "audio_device_alsa_linux.h" -+#endif -+#if defined(LINUX_PULSE) -+ #include "audio_device_pulse_linux.h" -+#endif - #include "audio_device_dummy.h" - #include "audio_device_utility_dummy.h" - #include "critical_section_wrapper.h" -@@ -161,7 +163,7 @@ WebRtc_Word32 AudioDeviceModuleImpl::Che - #elif defined(WEBRTC_ANDROID) - platform = kPlatformAndroid; - WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "current platform is ANDROID"); --#elif defined(WEBRTC_LINUX) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - platform = kPlatformLinux; - WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "current platform is LINUX"); - #elif defined(WEBRTC_IOS) -@@ -309,7 +311,7 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects() - - // Create the *Linux* implementation of the Audio Device - // --#elif defined(WEBRTC_LINUX) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - if ((audioLayer == kLinuxPulseAudio) || (audioLayer == kPlatformDefaultAudio)) - { - #if defined(LINUX_PULSE) -@@ -355,7 +357,7 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects() - // - ptrAudioDeviceUtility = new AudioDeviceUtilityLinux(Id()); - } --#endif // #if defined(WEBRTC_LINUX) -+#endif // #if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - - // Create the *iPhone* implementation of the Audio Device - // -diff --git media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc -index defd7f8..906c4a2 100644 ---- media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc -+++ media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc -@@ -197,7 +197,7 @@ class AudioDeviceAPITest: public testing::Test { - // Create default implementation instance - EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( - kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); --#elif defined(WEBRTC_LINUX) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( - kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL); - EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( -@@ -1690,7 +1690,7 @@ TEST_F(AudioDeviceAPITest, CPULoad) { - - // TODO(kjellander): Fix flakiness causing failures on Windows. - // TODO(phoglund): Fix flakiness causing failures on Linux. --#if !defined(_WIN32) && !defined(WEBRTC_LINUX) -+#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) - TEST_F(AudioDeviceAPITest, StartAndStopRawOutputFileRecording) { - // NOTE: this API is better tested in a functional test - CheckInitialPlayoutStates(); -@@ -1759,7 +1759,7 @@ TEST_F(AudioDeviceAPITest, StartAndStopRawInputFileRecording) { - // - size of raw_input_not_recording.pcm shall be 0 - // - size of raw_input_not_recording.pcm shall be > 0 - } --#endif // !WIN32 && !WEBRTC_LINUX -+#endif // !WIN32 && !WEBRTC_LINUX && !defined(WEBRTC_BSD) - - TEST_F(AudioDeviceAPITest, RecordingSampleRate) { - uint32_t sampleRate(0); Property changes on: branches/2014Q4/www/libxul/files/patch-bug910875 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug851992 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug851992 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug851992 (nonexistent) @@ -1,339 +0,0 @@ -diff --git a/config/Makefile.in b/config/Makefile.in ---- config/Makefile.in -+++ config/Makefile.in -@@ -97,16 +97,17 @@ export:: $(export-preqs) - -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ - -DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \ - -DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \ - -DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \ - -DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \ - -DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \ - -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \ - -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \ -+ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ - $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers - $(INSTALL) system_wrappers $(DIST) - - GARBAGE_DIRS += system_wrappers - endif - - ifdef WRAP_STL_INCLUDES - ifdef GNU_CXX -diff --git a/config/system-headers b/config/system-headers ---- config/system-headers -+++ config/system-headers -@@ -1125,8 +1125,19 @@ gst/video/video.h - sys/msg.h - sys/ipc.h - sys/thr.h - sys/user.h - kvm.h - spawn.h - err.h - xlocale.h -+#if MOZ_NATIVE_ICU==1 -+unicode/locid.h -+unicode/numsys.h -+unicode/ucal.h -+unicode/ucol.h -+unicode/udat.h -+unicode/udatpg.h -+unicode/uenum.h -+unicode/unum.h -+unicode/ustring.h -+#endif -diff --git a/configure.in b/configure.in ---- configure.in -+++ configure.in -@@ -4134,16 +4134,32 @@ if test -n "$MOZ_NATIVE_FFI"; then - PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9) - else - PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9) - fi - MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS" - fi - - dnl ======================================================== -+dnl system icu support -+dnl ======================================================== -+MOZ_NATIVE_ICU= -+MOZ_ARG_WITH_BOOL(system-icu, -+[ --with-system-icu -+ Use system icu (located with pkgconfig)], -+ MOZ_NATIVE_ICU=1) -+ -+if test -n "$MOZ_NATIVE_ICU"; then -+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1) -+ MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_ICU_LIBS" -+fi -+ -+AC_SUBST(MOZ_NATIVE_ICU) -+ -+dnl ======================================================== - dnl Java SDK support - dnl ======================================================== - - JAVA_BIN_PATH= - MOZ_ARG_WITH_STRING(java-bin-path, - [ --with-java-bin-path=dir - Location of Java binaries (java, javac, jar)], - JAVA_BIN_PATH=$withval) -diff --git a/js/src/Makefile.in b/js/src/Makefile.in ---- js/src/Makefile.in.orig 2013-10-22 08:19:02.000000000 +0200 -+++ js/src/Makefile.in 2013-10-29 10:11:58.272605098 +0100 -@@ -237,10 +237,14 @@ - # ICU headers need to be available whether we build with the complete - # Internationalization API or not - ICU stubs rely on them. - -+ifdef MOZ_NATIVE_ICU -+LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS) -+else - LOCAL_INCLUDES += \ - -I$(topsrcdir)/../../intl/icu/source/common \ - -I$(topsrcdir)/../../intl/icu/source/i18n \ - $(NULL) -+endif - - ifdef ENABLE_INTL_API - -@@ -260,6 +264,7 @@ - ICU_MAKE = $(MAKE) - endif - -+ifndef MOZ_NATIVE_ICU - # - Build ICU as part of the "export" target, so things get built - # in the right order. - # - ICU requires GNU make according to its readme.html. pymake can't be used -@@ -276,6 +281,7 @@ - $(call SUBMAKE,$@,intl/icu) - - endif -+endif - - # - # END ECMAScript Internationalization API -@@ -413,7 +419,11 @@ - DEFINES += -DUSE_ZLIB - endif - --SHARED_LIBRARY_LIBS += $(ICU_LIBS) -+ifdef MOZ_NATIVE_ICU -+EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS) -+else -+SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS) -+endif - - # Prevent floating point errors caused by VC++ optimizations - ifdef _MSC_VER -diff --git a/js/src/config/Makefile.in b/js/src/config/Makefile.in ---- js/src/config/Makefile.in -+++ js/src/config/Makefile.in -@@ -54,16 +54,17 @@ include $(topsrcdir)/config/rules.mk - - HOST_CFLAGS += -DUNICODE -D_UNICODE - - ifdef WRAP_SYSTEM_INCLUDES - export:: \ - $(call mkdir_deps,system_wrappers_js) \ - $(NULL) - $(PYTHON) $(srcdir)/Preprocessor.py $(DEFINES) $(ACDEFINES) \ -+ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ - $(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers_js - $(INSTALL) system_wrappers_js $(DIST) - - GARBAGE_DIRS += system_wrappers_js - endif - - GARBAGE += $(srcdir)/*.pyc *.pyc - -diff --git a/js/src/config/system-headers b/js/src/config/system-headers ---- js/src/config/system-headers -+++ js/src/config/system-headers -@@ -1125,8 +1125,19 @@ gst/video/video.h - sys/msg.h - sys/ipc.h - sys/thr.h - sys/user.h - kvm.h - spawn.h - err.h - xlocale.h -+#if MOZ_NATIVE_ICU==1 -+unicode/locid.h -+unicode/numsys.h -+unicode/ucal.h -+unicode/ucol.h -+unicode/udat.h -+unicode/udatpg.h -+unicode/uenum.h -+unicode/unum.h -+unicode/ustring.h -+#endif -diff --git a/js/src/configure.in b/js/src/configure.in ---- js/src/configure.in -+++ js/src/configure.in -@@ -4406,59 +4406,68 @@ if test "$ACCESSIBILITY" -a "$MOZ_ENABLE - AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION) - AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION) - fi - - - dnl ======================================================== - dnl ECMAScript Internationalization API Support (uses ICU) - dnl ======================================================== -+ICU_LIB_NAMES= -+MOZ_NATIVE_ICU= -+MOZ_ARG_WITH_BOOL(system-icu, -+[ --with-system-icu -+ Use system icu (located with pkgconfig)], -+ MOZ_NATIVE_ICU=1) -+ -+if test -n "$MOZ_NATIVE_ICU"; then -+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1) -+fi - - if test -n "$JS_STANDALONE"; then - ENABLE_INTL_API=1 - fi - MOZ_ARG_ENABLE_BOOL(intl-api, - [ --enable-intl-api Enable ECMAScript Internationalization API (default=yes for standalone JS)], - ENABLE_INTL_API=1, - ENABLE_INTL_API= ) - - dnl Settings for the implementation of the ECMAScript Internationalization API - if test -n "$ENABLE_INTL_API"; then - AC_DEFINE(ENABLE_INTL_API) -- # We build ICU as a static library. -- AC_DEFINE(U_STATIC_IMPLEMENTATION) -- -- case "$OS_TARGET" in -- WINNT) -- ICU_LIB_NAMES="icuin icuuc icudt" -- ;; -- Darwin|Linux) -- ICU_LIB_NAMES="icui18n icuuc icudata" -- ;; -- *) -- AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform]) -- esac -- -- ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)' --else -- ICU_LIB_NAMES= -- ICU_LIBS= -+ -+ if test -z "$MOZ_NATIVE_ICU"; then -+ case "$OS_TARGET" in -+ WINNT) -+ ICU_LIB_NAMES="icuin icuuc icudt" -+ ;; -+ Darwin|Linux) -+ ICU_LIB_NAMES="icui18n icuuc icudata" -+ ;; -+ *) -+ AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform]) -+ esac -+ MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)' -+ fi - fi - - AC_SUBST(ENABLE_INTL_API) - AC_SUBST(ICU_LIB_NAMES) --AC_SUBST(ICU_LIBS) -- --dnl Source files that use ICU should have control over which parts of the ICU --dnl namespace they want to use. --AC_DEFINE(U_USING_ICU_NAMESPACE,0) -- -+AC_SUBST(MOZ_ICU_LIBS) -+AC_SUBST(MOZ_NATIVE_ICU) - - dnl Settings for ICU --if test -n "$ENABLE_INTL_API" ; then -+if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then -+ dnl We build ICU as a static library. -+ AC_DEFINE(U_STATIC_IMPLEMENTATION) -+ -+ dnl Source files that use ICU should have control over which parts of the ICU -+ dnl namespace they want to use. -+ AC_DEFINE(U_USING_ICU_NAMESPACE,0) -+ - # Set ICU compile options - ICU_CPPFLAGS="" - # don't use icu namespace automatically in client code - ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_USING_ICU_NAMESPACE=0" - # don't include obsolete header files - ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1" - # remove chunks of the library that we don't need (yet) - ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_LEGACY_CONVERSION" -diff --git a/js/src/gdb/Makefile.in b/js/src/gdb/Makefile.in ---- js/src/gdb/Makefile.in -+++ js/src/gdb/Makefile.in -@@ -14,16 +14,20 @@ include $(DEPTH)/config/autoconf.mk - # Building against js_static requires that we declare mfbt sybols "exported" - # on its behalf. - DEFINES += -DEXPORT_JS_API -DIMPL_MFBT - - LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS) - - LOCAL_INCLUDES += -I$(topsrcdir) -I.. - -+ifdef MOZ_NATIVE_ICU -+EXTRA_LIBS += $(MOZ_ICU_LIBS) -+endif -+ - EXTRA_LIBS += $(MOZ_FFI_LIBS) - - # Place a GDB Python auto-load file next to the gdb-tests executable, both - # in the build directory and in the dist/bin directory. - PP_TARGETS += GDB_AUTOLOAD - GDB_AUTOLOAD := gdb-tests-gdb.py.in - GDB_AUTOLOAD_FLAGS := -Dtopsrcdir=$(abspath $(topsrcdir)) - -diff --git a/js/src/jsapi-tests/Makefile.in b/js/src/jsapi-tests/Makefile.in ---- js/src/jsapi-tests/Makefile.in -+++ js/src/jsapi-tests/Makefile.in -@@ -15,16 +15,20 @@ DEFINES += -DEXPORT_JS_API - # Building against js_static requires that we declare mfbt sybols "exported" - # on its behalf. - DEFINES += -DIMPL_MFBT - - LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS) - - LOCAL_INCLUDES += -I$(topsrcdir) -I.. - -+ifdef MOZ_NATIVE_ICU -+EXTRA_LIBS += $(MOZ_ICU_LIBS) -+endif -+ - EXTRA_LIBS += $(MOZ_FFI_LIBS) - - ifdef QEMU_EXE - MOZ_POST_PROGRAM_COMMAND = $(topsrcdir)/build/qemu-wrap --qemu $(QEMU_EXE) --libdir $(CROSS_LIB) - endif - - # Place a GDB Python auto-load file next to the jsapi-tests executable in - # the build directory. -diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in ---- js/src/shell/Makefile.in -+++ js/src/shell/Makefile.in -@@ -22,16 +22,19 @@ DEFINES += -DEXPORT_JS_API - # Building against js_static requires that we declare mfbt sybols "exported" - # on its behalf. - DEFINES += -DIMPL_MFBT - - LIBS = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(MOZ_ZLIB_LIBS) - ifdef MOZ_NATIVE_FFI - EXTRA_LIBS += $(MOZ_FFI_LIBS) - endif -+ifdef MOZ_NATIVE_ICU -+EXTRA_LIBS += $(MOZ_ICU_LIBS) -+endif - - LOCAL_INCLUDES += -I$(topsrcdir) -I.. - - ifeq ($(OS_ARCH),Darwin) - ifeq ($(TARGET_CPU),x86_64) - DARWIN_EXE_LDFLAGS += -pagezero_size 10000 -image_base 100000000 - endif - endif Property changes on: branches/2014Q4/www/libxul/files/patch-bug851992 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug893397 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug893397 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug893397 (nonexistent) @@ -1,201 +0,0 @@ -diff --git configure.in configure.in -index 549ad06..2878d9f 100644 ---- configure.in -+++ configure.in -@@ -8091,7 +8091,7 @@ case "$OS_TARGET" in - NECKO_WIFI=1 - fi - ;; -- Darwin|SunOS|WINNT) -+ Darwin|FreeBSD|SunOS|WINNT) - NECKO_WIFI=1 - ;; - Linux) -diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build -index 07b01de..11706af 100644 ---- netwerk/wifi/moz.build -+++ netwerk/wifi/moz.build -@@ -31,6 +31,10 @@ if CONFIG['OS_ARCH'] == 'Darwin': - CPP_SOURCES += [ - 'nsWifiScannerMac.cpp', - ] -+elif CONFIG['OS_ARCH'] == 'FreeBSD': -+ CPP_SOURCES += [ -+ 'nsWifiScannerFreeBSD.cpp', -+ ] - elif CONFIG['OS_ARCH'] == 'WINNT': - CPP_SOURCES += [ - 'nsWifiScannerWin.cpp', -diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp -new file mode 100644 -index 0000000..80d4cb6 ---- /dev/null -+++ netwerk/wifi/nsWifiScannerFreeBSD.cpp -@@ -0,0 +1,167 @@ -+/* This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+// Developed by J.R. Oldroyd , December 2012. -+ -+// For FreeBSD we use the getifaddrs(3) to obtain the list of interfaces -+// and then check for those with an 802.11 media type and able to return -+// a list of stations. This is similar to ifconfig(8). -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include "nsWifiAccessPoint.h" -+ -+using namespace mozilla; -+ -+static nsresult -+FreeBSDGetAccessPointData(nsCOMArray &accessPoints) -+{ -+ // get list of interfaces -+ struct ifaddrs *ifal; -+ if (getifaddrs(&ifal) < 0) { -+ return NS_ERROR_FAILURE; -+ } -+ -+ accessPoints.Clear(); -+ -+ // loop through the interfaces -+ nsresult rv = NS_ERROR_FAILURE; -+ struct ifaddrs *ifa; -+ for (ifa = ifal; ifa; ifa = ifa->ifa_next) { -+ // limit to one interface per address -+ if (ifa->ifa_addr->sa_family != AF_LINK) { -+ continue; -+ } -+ -+ // store interface name in socket structure -+ struct ifreq ifr; -+ memset(&ifr, 0, sizeof(ifr)); -+ strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name)); -+ ifr.ifr_addr.sa_family = AF_LOCAL; -+ -+ // open socket to interface -+ int s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0); -+ if (s < 0) { -+ continue; -+ } -+ -+ // clear interface media structure -+ struct ifmediareq ifmr; -+ memset(&ifmr, 0, sizeof(ifmr)); -+ strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name)); -+ -+ // get interface media information -+ if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) { -+ close(s); -+ continue; -+ } -+ -+ // check interface is a WiFi interface -+ if (IFM_TYPE(ifmr.ifm_active) != IFM_IEEE80211) { -+ close(s); -+ continue; -+ } -+ -+ // perform WiFi scan -+ struct ieee80211req i802r; -+ char iscanbuf[32*1024]; -+ memset(&i802r, 0, sizeof(i802r)); -+ strncpy(i802r.i_name, ifa->ifa_name, sizeof(i802r.i_name)); -+ i802r.i_type = IEEE80211_IOC_SCAN_RESULTS; -+ i802r.i_data = iscanbuf; -+ i802r.i_len = sizeof(iscanbuf); -+ if (ioctl(s, SIOCG80211, &i802r) < 0) { -+ close(s); -+ continue; -+ } -+ -+ // close socket -+ close(s); -+ -+ // loop through WiFi networks and build geoloc-lookup structure -+ char *vsr = (char *) i802r.i_data; -+ unsigned len = i802r.i_len; -+ while (len >= sizeof(struct ieee80211req_scan_result)) { -+ struct ieee80211req_scan_result *isr = -+ (struct ieee80211req_scan_result *) vsr; -+ -+ // determine size of this entry -+ char *id; -+ int idlen; -+ if (isr->isr_meshid_len) { -+ id = vsr + isr->isr_ie_off + isr->isr_ssid_len; -+ idlen = isr->isr_meshid_len; -+ } else { -+ id = vsr + isr->isr_ie_off; -+ idlen = isr->isr_ssid_len; -+ } -+ -+ // copy network data -+ char ssid[IEEE80211_NWID_LEN+1]; -+ strncpy(ssid, id, idlen); -+ ssid[idlen] = '\0'; -+ nsWifiAccessPoint *ap = new nsWifiAccessPoint(); -+ ap->setSSID(ssid, strlen(ssid)); -+ ap->setMac(isr->isr_bssid); -+ ap->setSignal(isr->isr_rssi); -+ accessPoints.AppendObject(ap); -+ rv = NS_OK; -+ -+ // log the data -+ LOG(( "FreeBSD access point: " -+ "SSID: %s, MAC: %02x-%02x-%02x-%02x-%02x-%02x, " -+ "Strength: %d, Channel: %dMHz\n", -+ ssid, isr->isr_bssid[0], isr->isr_bssid[1], isr->isr_bssid[2], -+ isr->isr_bssid[3], isr->isr_bssid[4], isr->isr_bssid[5], -+ isr->isr_rssi, isr->isr_freq)); -+ -+ // increment pointers -+ len -= isr->isr_len; -+ vsr += isr->isr_len; -+ } -+ } -+ -+ freeifaddrs(ifal); -+ -+ return rv; -+} -+ -+nsresult -+nsWifiMonitor::DoScan() -+{ -+ // Regularly get the access point data. -+ -+ nsCOMArray lastAccessPoints; -+ nsCOMArray accessPoints; -+ -+ do { -+ nsresult rv = FreeBSDGetAccessPointData(accessPoints); -+ if (NS_FAILED(rv)) -+ return rv; -+ -+ bool accessPointsChanged = !AccessPointsEqual(accessPoints, lastAccessPoints); -+ ReplaceArray(lastAccessPoints, accessPoints); -+ -+ rv = CallWifiListeners(lastAccessPoints, accessPointsChanged); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ // wait for some reasonable amount of time. pref? -+ LOG(("waiting on monitor\n")); -+ -+ ReentrantMonitorAutoEnter mon(mReentrantMonitor); -+ mon.Wait(PR_SecondsToInterval(60)); -+ } -+ while (mKeepGoing); -+ -+ return NS_OK; -+} Property changes on: branches/2014Q4/www/libxul/files/patch-bug893397 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug889699 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug889699 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug889699 (nonexistent) @@ -1,175 +0,0 @@ -commit 7eb5827 -Author: Edwin Flores -Date: Sat Jul 20 12:03:08 2013 +1200 - - Bug 889699 - Make gstreamer backend return more accurate results for canPlayType() r=alessandro.d ---- - content/media/gstreamer/GStreamerFormatHelper.cpp | 90 +++++++++++++++++------ - 1 file changed, 66 insertions(+), 24 deletions(-) - -diff --git content/media/gstreamer/GStreamerFormatHelper.cpp content/media/gstreamer/GStreamerFormatHelper.cpp -index f05ff8f..39f1fdf 100644 ---- content/media/gstreamer/GStreamerFormatHelper.cpp -+++ content/media/gstreamer/GStreamerFormatHelper.cpp -@@ -6,7 +6,7 @@ - - #include "GStreamerFormatHelper.h" - #include "nsCharSeparatedTokenizer.h" --#include "nsXPCOMStrings.h" -+#include "nsString.h" - #include "GStreamerLoader.h" - - #define ENTRY_FORMAT(entry) entry[0] -@@ -36,7 +36,7 @@ void GStreamerFormatHelper::Shutdown() { - } - } - --char const *const GStreamerFormatHelper::mContainers[6][2] = { -+static char const *const sContainers[6][2] = { - {"video/mp4", "video/quicktime"}, - {"video/quicktime", "video/quicktime"}, - {"audio/mp4", "audio/x-m4a"}, -@@ -45,7 +45,7 @@ char const *const GStreamerFormatHelper::mContainers[6][2] = { - {"audio/mp3", "audio/mpeg, mpegversion=(int)1"}, - }; - --char const *const GStreamerFormatHelper::mCodecs[9][2] = { -+static char const *const sCodecs[9][2] = { - {"avc1.42E01E", "video/x-h264"}, - {"avc1.42001E", "video/x-h264"}, - {"avc1.58A01E", "video/x-h264"}, -@@ -57,6 +57,15 @@ char const *const GStreamerFormatHelper::mCodecs[9][2] = { - {"mp3", "audio/mpeg, mpegversion=(int)1"}, - }; - -+static char const * const sDefaultCodecCaps[][2] = { -+ {"video/mp4", "video/x-h264"}, -+ {"video/quicktime", "video/x-h264"}, -+ {"audio/mp4", "audio/mpeg, mpegversion=(int)4"}, -+ {"audio/x-m4a", "audio/mpeg, mpegversion=(int)4"}, -+ {"audio/mp3", "audio/mpeg, layer=(int)3"}, -+ {"audio/mpeg", "audio/mpeg, layer=(int)3"} -+}; -+ - GStreamerFormatHelper::GStreamerFormatHelper() - : mFactories(nullptr), - mCookie(static_cast(-1)) -@@ -66,15 +75,15 @@ GStreamerFormatHelper::GStreamerFormatHelper() - } - - mSupportedContainerCaps = gst_caps_new_empty(); -- for (unsigned int i = 0; i < G_N_ELEMENTS(mContainers); i++) { -- const char* capsString = mContainers[i][1]; -+ for (unsigned int i = 0; i < G_N_ELEMENTS(sContainers); i++) { -+ const char* capsString = sContainers[i][1]; - GstCaps* caps = gst_caps_from_string(capsString); - gst_caps_append(mSupportedContainerCaps, caps); - } - - mSupportedCodecCaps = gst_caps_new_empty(); -- for (unsigned int i = 0; i < G_N_ELEMENTS(mCodecs); i++) { -- const char* capsString = mCodecs[i][1]; -+ for (unsigned int i = 0; i < G_N_ELEMENTS(sCodecs); i++) { -+ const char* capsString = sCodecs[i][1]; - GstCaps* caps = gst_caps_from_string(capsString); - gst_caps_append(mSupportedCodecCaps, caps); - } -@@ -92,6 +101,41 @@ GStreamerFormatHelper::~GStreamerFormatHelper() { - g_list_free(mFactories); - } - -+static GstCaps * -+GetContainerCapsFromMIMEType(const char *aType) { -+ /* convert aMIMEType to gst container caps */ -+ const char* capsString = nullptr; -+ for (uint32_t i = 0; i < G_N_ELEMENTS(sContainers); i++) { -+ if (!strcmp(ENTRY_FORMAT(sContainers[i]), aType)) { -+ capsString = ENTRY_CAPS(sContainers[i]); -+ break; -+ } -+ } -+ -+ if (!capsString) { -+ /* we couldn't find any matching caps */ -+ return nullptr; -+ } -+ -+ return gst_caps_from_string(capsString); -+} -+ -+static GstCaps * -+GetDefaultCapsFromMIMEType(const char *aType) { -+ GstCaps *caps = GetContainerCapsFromMIMEType(aType); -+ -+ for (uint32_t i = 0; i < G_N_ELEMENTS(sDefaultCodecCaps); i++) { -+ if (!strcmp(sDefaultCodecCaps[i][0], aType)) { -+ GstCaps *tmp = gst_caps_from_string(sDefaultCodecCaps[i][1]); -+ -+ gst_caps_append(caps, tmp); -+ return caps; -+ } -+ } -+ -+ return nullptr; -+} -+ - bool GStreamerFormatHelper::CanHandleMediaType(const nsACString& aMIMEType, - const nsAString* aCodecs) { - if (!sLoadOK) { -@@ -101,7 +145,15 @@ bool GStreamerFormatHelper::CanHandleMediaType(const nsACString& aMIMEType, - const char *type; - NS_CStringGetData(aMIMEType, &type, NULL); - -- GstCaps* caps = ConvertFormatsToCaps(type, aCodecs); -+ GstCaps *caps; -+ if (aCodecs && !aCodecs->IsEmpty()) { -+ caps = ConvertFormatsToCaps(type, aCodecs); -+ } else { -+ // Get a minimal set of codec caps for this MIME type we should support so -+ // that we don't overreport MIME types we are able to play. -+ caps = GetDefaultCapsFromMIMEType(type); -+ } -+ - if (!caps) { - return false; - } -@@ -118,21 +170,11 @@ GstCaps* GStreamerFormatHelper::ConvertFormatsToCaps(const char* aMIMEType, - - unsigned int i; - -- /* convert aMIMEType to gst container caps */ -- const char* capsString = nullptr; -- for (i = 0; i < G_N_ELEMENTS(mContainers); i++) { -- if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) { -- capsString = ENTRY_CAPS(mContainers[i]); -- break; -- } -- } -- -- if (!capsString) { -- /* we couldn't find any matching caps */ -+ GstCaps *caps = GetContainerCapsFromMIMEType(aMIMEType); -+ if (!caps) { - return nullptr; - } - -- GstCaps* caps = gst_caps_from_string(capsString); - /* container only */ - if (!aCodecs) { - return caps; -@@ -141,11 +183,11 @@ GstCaps* GStreamerFormatHelper::ConvertFormatsToCaps(const char* aMIMEType, - nsCharSeparatedTokenizer tokenizer(*aCodecs, ','); - while (tokenizer.hasMoreTokens()) { - const nsSubstring& codec = tokenizer.nextToken(); -- capsString = nullptr; -+ const char *capsString = nullptr; - -- for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) { -- if (codec.EqualsASCII(ENTRY_FORMAT(mCodecs[i]))) { -- capsString = ENTRY_CAPS(mCodecs[i]); -+ for (i = 0; i < G_N_ELEMENTS(sCodecs); i++) { -+ if (codec.EqualsASCII(ENTRY_FORMAT(sCodecs[i]))) { -+ capsString = ENTRY_CAPS(sCodecs[i]); - break; - } - } Property changes on: branches/2014Q4/www/libxul/files/patch-bug889699 ___________________________________________________________________ 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/2014Q4/www/libxul/files/pkg-install.in =================================================================== --- branches/2014Q4/www/libxul/files/pkg-install.in (revision 370968) +++ branches/2014Q4/www/libxul/files/pkg-install.in (nonexistent) @@ -1,37 +0,0 @@ -#!/bin/sh -# -# $MCom: ports/www/mozilla/pkg-install.in,v 1.26 2008/08/04 16:58:03 mezz Exp $ -# -# Date created: Mon Nov 29, 2003 -# Whom: Thierry Thomas () -# Fix the chrome registry. - -umask 022 -PATH=/bin:/usr/bin - -[ "x$1" = "x" ] && exit 1 -[ "x$2" != "xPOST-INSTALL" ] && exit 0 - -MOZDIR=%%MOZDIR%% -MOZBIN=${MOZDIR}/%%MOZILLA_BIN%% -REGXPCOM=${MOZDIR}/regxpcom -REGCHROME=${MOZDIR}/regchrome - -rm -rf ${MOZDIR}/chrome/overlayinfo -rm -f ${MOZDIR}/chrome/*.rdf -mkdir -p ${MOZDIR}/chrome/overlayinfo -rm -f ${MOZDIR}/component.reg - -cd ${MOZDIR} || exit 1 -if [ -f ${REGXPCOM} ]; then - ./run-mozilla.sh ${REGXPCOM} || true -fi -if [ -f ${REGCHROME} ]; then - ./run-mozilla.sh ${REGCHROME} || true -fi -if [ -f ${MOZBIN} -a "${1%-*}" = "nvu" ]; then - ./run-mozilla.sh ${MOZBIN} -register > /dev/null 2>&1 -fi -cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%MOZILLA%%/ %%MOZDIR%%/extensions/ > /dev/null 2>&1 - -exit 0 Property changes on: branches/2014Q4/www/libxul/files/pkg-install.in ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-z-bug1026828 =================================================================== --- branches/2014Q4/www/libxul/files/patch-z-bug1026828 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-z-bug1026828 (nonexistent) @@ -1,13 +0,0 @@ -diff --git storage/src/Makefile.in storage/src/Makefile.in -index 4cd2551..5c40536 100644 ---- storage/src/Makefile.in -+++ storage/src/Makefile.in -@@ -31,7 +31,7 @@ endif - # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef - # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in. - ifdef MOZ_MEMORY --ifndef MOZ_NATIVE_SQLITE -+ifneq (,$(not $(MOZ_NATIVE_SQLITE))$(MOZ_NATIVE_JEMALLOC)) - ifneq ($(OS_TARGET), Android) - DEFINES += -DMOZ_STORAGE_MEMORY - endif Property changes on: branches/2014Q4/www/libxul/files/patch-z-bug1026828 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug938730 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug938730 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug938730 (nonexistent) @@ -1,35 +0,0 @@ -commit 1961aa2 -Author: Kai Engert -Date: Wed Nov 20 20:25:12 2013 +0100 - - Bug 938730 - avoid mix of memory allocators (crashes) when using system sqlite, r=asuth ---- - storage/src/Makefile.in | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git storage/src/Makefile.in storage/src/Makefile.in -index 9418640..c7391ed 100644 ---- storage/src/Makefile.in -+++ storage/src/Makefile.in -@@ -6,14 +6,21 @@ - # Don't use the jemalloc allocator on Android, because we can't guarantee - # that Gecko will configure sqlite before it is first used (bug 730495). - # -+# Don't use the jemalloc allocator when using system sqlite. Linked in libraries -+# (such as NSS) might trigger an initialization of sqlite and allocation -+# of memory using the default allocator, prior to the storage service -+# registering its allocator, causing memory management failures (bug 938730). -+# - # Note: On Windows our sqlite build assumes we use jemalloc. If you disable - # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef - # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in. - ifdef MOZ_MEMORY -+ifndef MOZ_NATIVE_SQLITE - ifneq ($(OS_TARGET), Android) - DEFINES += -DMOZ_STORAGE_MEMORY - endif - endif -+endif - - # For nsDependentJSString - LOCAL_INCLUDES = \ Property changes on: branches/2014Q4/www/libxul/files/patch-bug938730 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug945046 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug945046 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug945046 (nonexistent) @@ -1,130 +0,0 @@ -diff --git config/system-headers config/system-headers -index 432cba6..18a9627 100644 ---- config/system-headers -+++ config/system-headers -@@ -1157,3 +1157,4 @@ unicode/uenum.h - unicode/unum.h - unicode/ustring.h - #endif -+libutil.h -diff --git js/src/config/system-headers js/src/config/system-headers -index 432cba6..18a9627 100644 ---- js/src/config/system-headers -+++ js/src/config/system-headers -@@ -1157,3 +1157,4 @@ unicode/uenum.h - unicode/unum.h - unicode/ustring.h - #endif -+libutil.h -diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in -index 9975621..b4b037d 100644 ---- toolkit/library/Makefile.in -+++ toolkit/library/Makefile.in -@@ -289,6 +289,10 @@ OS_LIBS += $(call EXPAND_LIBNAME,kvm) - EXTRA_DSO_LDOPTS += -Wl,--warn-unresolved-symbols - endif - -+ifeq ($(OS_ARCH),FreeBSD) -+OS_LIBS += $(call EXPAND_LIBNAME,util) -+endif -+ - ifeq ($(OS_ARCH),WINNT) - OS_LIBS += $(call EXPAND_LIBNAME,shell32 ole32 version winspool comdlg32 imm32 msimg32 shlwapi psapi ws2_32 dbghelp rasapi32 rasdlg iphlpapi uxtheme setupapi secur32 sensorsapi portabledeviceguids windowscodecs wininet wbemuuid) - ifdef ACCESSIBILITY -diff --git xpcom/base/nsMemoryReporterManager.cpp xpcom/base/nsMemoryReporterManager.cpp -index b8147c8..0ffb34e 100644 ---- xpcom/base/nsMemoryReporterManager.cpp -+++ xpcom/base/nsMemoryReporterManager.cpp -@@ -153,6 +153,43 @@ static nsresult GetResidentFast(int64_t - return GetResident(n); - } - -+#ifdef __FreeBSD__ -+#include -+ -+static nsresult -+GetKinfoVmentrySelf(int64_t* prss) -+{ -+ int cnt; -+ struct kinfo_vmentry *vmmap, *kve; -+ if ((vmmap = kinfo_getvmmap(getpid(), &cnt)) == NULL) -+ return NS_ERROR_FAILURE; -+ -+ if (prss) -+ *prss = 0; -+ -+ for (int i = 0; i < cnt; i++) { -+ kve = &vmmap[i]; -+ if (prss) -+ *prss += kve->kve_private_resident; -+ } -+ -+ free(vmmap); -+ return NS_OK; -+} -+ -+#define HAVE_PRIVATE_REPORTER -+static nsresult -+GetPrivate(int64_t* aN) -+{ -+ int64_t priv; -+ nsresult rv = GetKinfoVmentrySelf(&priv); -+ if (NS_SUCCEEDED(rv)) -+ *aN = priv * getpagesize(); -+ -+ return NS_OK; -+} -+#endif // FreeBSD -+ - #elif defined(SOLARIS) - - #include -@@ -327,6 +364,24 @@ static nsresult GetResidentFast(int64_t - } - - #define HAVE_PRIVATE_REPORTER -+static nsresult -+GetPrivate(int64_t* aN) -+{ -+ PROCESS_MEMORY_COUNTERS_EX pmcex; -+ pmcex.cb = sizeof(PROCESS_MEMORY_COUNTERS_EX); -+ -+ if (!GetProcessMemoryInfo( -+ GetCurrentProcess(), -+ (PPROCESS_MEMORY_COUNTERS) &pmcex, sizeof(pmcex))) { -+ return NS_ERROR_FAILURE; -+ } -+ -+ *aN = pmcex.PrivateUsage; -+ return NS_OK; -+} -+#endif // XP_ -+ -+#ifdef HAVE_PRIVATE_REPORTER - class PrivateReporter MOZ_FINAL : public MemoryReporterBase - { - public: -@@ -339,21 +394,10 @@ public: - - NS_IMETHOD GetAmount(int64_t *aAmount) - { -- PROCESS_MEMORY_COUNTERS_EX pmcex; -- pmcex.cb = sizeof(PROCESS_MEMORY_COUNTERS_EX); -- -- if (!GetProcessMemoryInfo( -- GetCurrentProcess(), -- (PPROCESS_MEMORY_COUNTERS) &pmcex, sizeof(pmcex))) { -- return NS_ERROR_FAILURE; -- } -- -- *aAmount = pmcex.PrivateUsage; -- return NS_OK; -+ return GetPrivate(aAmount); - } - }; -- --#endif // XP_ -+#endif - - #ifdef HAVE_VSIZE_AND_RESIDENT_REPORTERS - class VsizeReporter MOZ_FINAL : public MemoryReporterBase Property changes on: branches/2014Q4/www/libxul/files/patch-bug945046 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug803480 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug803480 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug803480 (nonexistent) @@ -1,102 +0,0 @@ -diff --git configure.in configure.in -index a0575dc..be327fd 100644 ---- configure.in -+++ configure.in -@@ -4306,7 +4306,6 @@ NS_PRINTING=1 - MOZ_PDF_PRINTING= - MOZ_DISABLE_CRYPTOLEGACY= - NSS_DISABLE_DBM= --NECKO_WIFI=1 - NECKO_COOKIES=1 - NECKO_PROTOCOLS_DEFAULT="about data file ftp http res viewsource websocket wyciwyg device" - USE_ARM_KUSER= -@@ -4336,11 +4335,6 @@ case "${target}" in - fi - - NSS_DISABLE_DBM=1 -- if test -z "$gonkdir"; then -- NECKO_WIFI= -- else -- NECKO_WIFI=1 -- fi - MOZ_THEME_FASTSTRIPE=1 - MOZ_TREE_FREETYPE=1 - MOZ_MEMORY=1 -@@ -8485,28 +8479,39 @@ done - dnl - dnl option to disable necko's wifi scanner - dnl -+ -+case "$OS_TARGET" in -+ OS2) -+ dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566 -+ ;; -+ Android) -+ if test -n "$gonkdir"; then -+ NECKO_WIFI=1 -+ fi -+ ;; -+ Darwin|SunOS|WINNT) -+ NECKO_WIFI=1 -+ ;; -+ Linux) -+ if test -z "$MOZ_ENABLE_DBUS"; then -+ AC_MSG_ERROR([Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi]) -+ fi -+ NECKO_WIFI=1 -+ NECKO_WIFI_DBUS=1 -+ ;; -+esac -+ - MOZ_ARG_DISABLE_BOOL(necko-wifi, - [ --disable-necko-wifi Disable necko wifi scanner], - NECKO_WIFI=, - NECKO_WIFI=1) - --if test "$OS_ARCH" = "OS2"; then -- dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566 -- NECKO_WIFI= --fi --if test "$NECKO_WIFI" -a \ -- "$OS_ARCH" != "Linux" -a \ -- "$OS_ARCH" != "Darwin" -a \ -- "$OS_ARCH" != "SunOS" -a \ -- "$OS_ARCH" != "WINNT"; then -- AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi]) --fi -- - if test "$NECKO_WIFI"; then - AC_DEFINE(NECKO_WIFI) - _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_WIFI" - fi - AC_SUBST(NECKO_WIFI) -+AC_SUBST(NECKO_WIFI_DBUS) - - dnl - dnl option to disable cookies -diff --git netwerk/wifi/Makefile.in netwerk/wifi/Makefile.in -index 26dbd79..4cbf912 100644 ---- netwerk/wifi/Makefile.in -+++ netwerk/wifi/Makefile.in -@@ -20,7 +20,7 @@ ifeq ($(OS_ARCH),SunOS) - OS_INCLUDES += $(GLIB_CFLAGS) - endif - --ifdef MOZ_ENABLE_DBUS -+ifdef NECKO_WIFI_DBUS - OS_INCLUDES += $(MOZ_DBUS_GLIB_CFLAGS) - endif - -diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build -index 5e70211..07b01de 100644 ---- netwerk/wifi/moz.build -+++ netwerk/wifi/moz.build -@@ -43,7 +43,7 @@ elif CONFIG['OS_ARCH'] == 'SunOS': - 'nsWifiScannerSolaris.cpp', - ] - --if CONFIG['MOZ_ENABLE_DBUS']: -+if CONFIG['NECKO_WIFI_DBUS']: - CPP_SOURCES += [ - 'nsWifiScannerDBus.cpp', - ] Property changes on: branches/2014Q4/www/libxul/files/patch-bug803480 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug946560 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug946560 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug946560 (nonexistent) @@ -1,44 +0,0 @@ -diff --git xpcom/base/nsMemoryInfoDumper.cpp xpcom/base/nsMemoryInfoDumper.cpp -index 0b2f78c..d857374 100644 ---- xpcom/base/nsMemoryInfoDumper.cpp -+++ xpcom/base/nsMemoryInfoDumper.cpp -@@ -30,7 +30,7 @@ - #include - #endif - --#ifdef XP_LINUX -+#if defined(XP_LINUX) || defined(__FreeBSD__) - #include - #include - #include -@@ -109,7 +109,7 @@ private: - - } // anonymous namespace - --#ifdef XP_LINUX // { -+#if defined(XP_LINUX) || defined(__FreeBSD__) // { - namespace { - - /* -@@ -548,7 +548,7 @@ nsMemoryInfoDumper::~nsMemoryInfoDumper( - /* static */ void - nsMemoryInfoDumper::Initialize() - { --#ifdef XP_LINUX -+#if defined(XP_LINUX) || defined(__FreeBSD__) - SignalPipeWatcher::Create(); - FifoWatcher::MaybeCreate(); - #endif -diff --git xpcom/base/nsMemoryReporterManager.cpp xpcom/base/nsMemoryReporterManager.cpp -index 8c65665..8f6d0e9 100644 ---- xpcom/base/nsMemoryReporterManager.cpp -+++ xpcom/base/nsMemoryReporterManager.cpp -@@ -824,7 +824,7 @@ nsMemoryReporterManager::Init() - RegisterReporter(new mozilla::dmd::DMDReporter); - #endif - --#if defined(XP_LINUX) -+#if defined(XP_LINUX) || defined(__FreeBSD__) - nsMemoryInfoDumper::Initialize(); - #endif - Property changes on: branches/2014Q4/www/libxul/files/patch-bug946560 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-clang34-disable-stdcall =================================================================== --- branches/2014Q4/www/libxul/files/patch-clang34-disable-stdcall (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-clang34-disable-stdcall (nonexistent) @@ -1,13 +0,0 @@ -# http://llvm.org/bugs/show_bug.cgi?id=19007 - ---- xpcom/base/nscore.h~ -+++ xpcom/base/nscore.h -@@ -110,7 +110,7 @@ - * NS_HIDDEN_(int) NS_FASTCALL func2(char *foo); - */ - --#if defined(__i386__) && defined(__GNUC__) && !defined(XP_OS2) -+#if defined(__i386__) && defined(__GNUC__) && !defined(XP_OS2) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0) - #define NS_FASTCALL __attribute__ ((regparm (3), stdcall)) - #define NS_CONSTRUCTOR_FASTCALL __attribute__ ((regparm (3), stdcall)) - #elif defined(XP_WIN) && !defined(_WIN64) Property changes on: branches/2014Q4/www/libxul/files/patch-clang34-disable-stdcall ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug886181 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug886181 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug886181 (nonexistent) @@ -1,11 +0,0 @@ ---- modules/libpref/src/init/all.js~ -+++ modules/libpref/src/init/all.js -@@ -193,7 +193,7 @@ pref("media.webm.enabled", true); - pref("media.dash.enabled", false); - #endif - #ifdef MOZ_GSTREAMER --pref("media.gstreamer.enabled", false); -+pref("media.gstreamer.enabled", true); - #endif - #ifdef MOZ_WEBRTC - pref("media.navigator.enabled", true); Property changes on: branches/2014Q4/www/libxul/files/patch-bug886181 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug876156 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug876156 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug876156 (nonexistent) @@ -1,13 +0,0 @@ -diff --git mfbt/Atomics.h mfbt/Atomics.h -index d79af6c..40b9336 100644 ---- mfbt/Atomics.h -+++ mfbt/Atomics.h -@@ -35,7 +35,7 @@ - */ - # if !defined(__linux__) && !defined(__OpenBSD__) && \ - (__cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)) && \ -- __has_include() -+ __has_include_next() - # define MOZ_HAVE_CXX11_ATOMICS - # endif - /* Property changes on: branches/2014Q4/www/libxul/files/patch-bug876156 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug975634 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug975634 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug975634 (nonexistent) @@ -1,63 +0,0 @@ -diff --git configure.in configure.in -index 0d9236a..0447104 100644 ---- configure.in -+++ configure.in -@@ -9034,6 +9034,20 @@ AC_SUBST(MOZ_FOLD_LIBS) - AC_SUBST(MOZ_ENABLE_SZIP) - AC_SUBST(MOZ_SZIP_FLAGS) - -+AC_MSG_CHECKING([for posix_fadvise]) -+AC_TRY_LINK([#define _XOPEN_SOURCE 600 -+ #include ], -+ [posix_fadvise(0, 0, 0, 0);], -+ [ac_cv___posix_fadvise=true], -+ [ac_cv___posix_fadvise=false]) -+ -+if test "$ac_cv___posix_fadvise" = true ; then -+ AC_DEFINE(HAVE_POSIX_FADVISE) -+ AC_MSG_RESULT(yes) -+else -+ AC_MSG_RESULT(no) -+fi -+ - AC_MSG_CHECKING([for posix_fallocate]) - AC_TRY_LINK([#define _XOPEN_SOURCE 600 - #include ], -diff --git js/src/configure.in js/src/configure.in -index da9767c..352ba14 100644 ---- js/src/configure.in -+++ js/src/configure.in -@@ -4025,6 +4025,20 @@ AC_SUBST(CXX_VERSION) - AC_SUBST(MSMANIFEST_TOOL) - AC_SUBST(MOZ_LINKER) - -+AC_MSG_CHECKING([for posix_fadvise]) -+AC_TRY_LINK([#define _XOPEN_SOURCE 600 -+ #include ], -+ [posix_fadvise(0, 0, 0, 0);], -+ [ac_cv___posix_fadvise=true], -+ [ac_cv___posix_fadvise=false]) -+ -+if test "$ac_cv___posix_fadvise" = true ; then -+ AC_DEFINE(HAVE_POSIX_FADVISE) -+ AC_MSG_RESULT(yes) -+else -+ AC_MSG_RESULT(no) -+fi -+ - AC_MSG_CHECKING([for posix_fallocate]) - AC_TRY_LINK([#define _XOPEN_SOURCE 600 - #include ], -diff --git xpcom/io/nsLocalFileUnix.cpp xpcom/io/nsLocalFileUnix.cpp -index bacf06c..0e46e4a 100644 ---- xpcom/io/nsLocalFileUnix.cpp -+++ xpcom/io/nsLocalFileUnix.cpp -@@ -382,7 +382,7 @@ nsLocalFile::OpenNSPRFileDesc(int32_t flags, int32_t mode, PRFileDesc **_retval) - PR_Delete(mPath.get()); - } - --#if defined(LINUX) && !defined(ANDROID) -+#if defined(HAVE_POSIX_FADVISE) - if (flags & OS_READAHEAD) { - posix_fadvise(PR_FileDesc2NativeHandle(*_retval), 0, 0, - POSIX_FADV_SEQUENTIAL); Property changes on: branches/2014Q4/www/libxul/files/patch-bug975634 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug783463 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug783463 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug783463 (nonexistent) @@ -1,14 +0,0 @@ ---- gfx/skia/moz.build~ -+++ gfx/skia/moz.build -@@ -188,10 +188,9 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt - 'SkMMapStream.cpp', - 'SkOSFile.cpp', - ] -- if CONFIG['OS_TARGET'] == 'Linux': -+ if CONFIG['MOZ_X11'] == 1 or CONFIG['OS_TARGET'] == 'Linux': - CPP_SOURCES += [ - 'SkFontHost_linux.cpp', -- 'SkFontHost_tables.cpp', - 'SkThread_pthread.cpp', - 'SkTime_Unix.cpp', - ] Property changes on: branches/2014Q4/www/libxul/files/patch-bug783463 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug961816 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug961816 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug961816 (nonexistent) @@ -1,48 +0,0 @@ -diff --git config/system-headers config/system-headers -index 8803150..ae38d68 100644 ---- config/system-headers -+++ config/system-headers -@@ -1158,3 +1158,4 @@ unicode/unum.h - unicode/ustring.h - #endif - libutil.h -+unwind.h -diff --git configure.in configure.in -index f452a5e..a1ebbcc 100644 ---- configure.in -+++ configure.in -@@ -7455,7 +7455,10 @@ dnl ======================================================== - dnl = Support for gcc stack unwinding (from gcc 3.3) - dnl ======================================================== - if test -z "$SKIP_LIBRARY_CHECKS"; then -+ AC_LANG_SAVE -+ AC_LANG_CPLUSPLUS - MOZ_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace)) -+ AC_LANG_RESTORE - fi - - dnl ======================================================== -diff --git config/system-headers config/system-headers -index 8803150..ae38d68 100644 ---- js/src/config/system-headers -+++ js/src/config/system-headers -@@ -1158,3 +1158,4 @@ unicode/unum.h - unicode/ustring.h - #endif - libutil.h -+unwind.h -diff --git configure.in configure.in -index f452a5e..a1ebbcc 100644 ---- js/src/configure.in -+++ js/src/configure.in -@@ -7455,7 +7455,10 @@ dnl ======================================================== - dnl = Support for gcc stack unwinding (from gcc 3.3) - dnl ======================================================== - if test -z "$SKIP_LIBRARY_CHECKS"; then -+ AC_LANG_SAVE -+ AC_LANG_CPLUSPLUS - MOZ_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace)) -+ AC_LANG_RESTORE - fi - - dnl ======================================================== Property changes on: branches/2014Q4/www/libxul/files/patch-bug961816 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug977457 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug977457 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug977457 (nonexistent) @@ -1,27 +0,0 @@ -diff --git xpcom/base/nsStackWalk.cpp xpcom/base/nsStackWalk.cpp -index bb0e15b..7641267 100644 ---- xpcom/base/nsStackWalk.cpp -+++ xpcom/base/nsStackWalk.cpp -@@ -23,6 +23,12 @@ struct CriticalAddress { - }; - static CriticalAddress gCriticalAddress; - -+// for _Unwind_Backtrace from libcxxrt or libunwind -+// cxxabi.h from libcxxrt implicitly includes unwind.h first -+#if defined(HAVE__UNWIND_BACKTRACE) && !defined(_GNU_SOURCE) -+#define _GNU_SOURCE -+#endif -+ - #if defined(HAVE_DLOPEN) || defined(XP_MACOSX) - #include - #endif -@@ -1222,9 +1228,6 @@ NS_StackWalk(NS_WalkStackCallback aCallback, uint32_t aSkipFrames, - #elif defined(HAVE__UNWIND_BACKTRACE) - - // libgcc_s.so symbols _Unwind_Backtrace@@GCC_3.3 and _Unwind_GetIP@@GCC_3.0 --#ifndef _GNU_SOURCE --#define _GNU_SOURCE --#endif - #include - - struct unwind_info { Property changes on: branches/2014Q4/www/libxul/files/patch-bug977457 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug878791 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug878791 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug878791 (nonexistent) @@ -1,11 +0,0 @@ ---- toolkit/components/osfile/osfile_unix_allthreads.jsm.orig 2013-05-11 21:19:53.000000000 +0200 -+++ toolkit/components/osfile/osfile_unix_allthreads.jsm 2013-06-02 17:15:05.000000000 +0200 -@@ -40,7 +40,7 @@ if (typeof Components != "undefined") { - // Open libc - let libc; - let libc_candidates = [ "libSystem.B.dylib", -- "libc.so.6", -+ "libc.so.7", - "libc.so" ]; - for (let i = 0; i < libc_candidates.length; ++i) { - try { Property changes on: branches/2014Q4/www/libxul/files/patch-bug878791 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug916589 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug916589 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug916589 (nonexistent) @@ -1,35 +0,0 @@ -diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h -index 5b50785..7cf47d5 100644 ---- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h -+++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h -@@ -33,9 +33,10 @@ - #ifndef _SYS_QUEUE_H_ - #define _SYS_QUEUE_H_ - --#if !defined(__FreeBSD__) && !defined(DARWIN) - #include --#define __offsetof offsetof -+ -+#ifndef offsetof -+#define offsetof(type, field) ((size_t)(&((type *)0)->field)) - #endif - - #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ -@@ -43,8 +44,6 @@ - (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - --// #define __offsetof(type, field) ((size_t)(&((type *)0)->field)) -- - /* - * This file defines four types of data structures: singly-linked lists, - * singly-linked tail queues, lists and tail queues. -@@ -285,7 +284,7 @@ struct { \ - (STAILQ_EMPTY((head)) ? \ - NULL : \ - ((struct type *) \ -- ((char *)((head)->stqh_last) - __offsetof(struct type, field)))) -+ ((char *)((head)->stqh_last) - offsetof(struct type, field)))) - - #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) - Property changes on: branches/2014Q4/www/libxul/files/patch-bug916589 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug985848 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug985848 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug985848 (nonexistent) @@ -1,22 +0,0 @@ ---- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -@@ -19,7 +19,7 @@ - #include - - //v4l includes --#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#if defined(__NetBSD__) || defined(__OpenBSD__) - #include - #elif defined(__sun) - #include ---- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc -+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc -@@ -18,7 +18,7 @@ - #include - - //v4l includes --#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#if defined(__NetBSD__) || defined(__OpenBSD__) - #include - #elif defined(__sun) - #include Property changes on: branches/2014Q4/www/libxul/files/patch-bug985848 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-z-bug847568 =================================================================== --- branches/2014Q4/www/libxul/files/patch-z-bug847568 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-z-bug847568 (nonexistent) @@ -1,255 +0,0 @@ -# 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 -@@ -77,6 +77,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 -@@ -1145,3 +1145,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 -index ac38f40..87536b7 100644 ---- configure.in -+++ configure.in -@@ -8032,6 +8032,56 @@ 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 >= 0.9.16) -+else -+ MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)' -+fi -+ -+AC_SUBST(MOZ_NATIVE_HARFBUZZ) -+AC_SUBST(MOZ_HARFBUZZ_CFLAGS) -+AC_SUBST(MOZ_HARFBUZZ_LIBS) -+ -+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_GRAPHITE, 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,2,3) -+ #error "Insufficient graphite2 version." -+ #endif -+ ], [], -+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) -++else -++ MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)' -+fi -+ -+AC_SUBST(MOZ_NATIVE_GRAPHITE2) -+AC_SUBST(MOZ_GRAPHITE_CFLAGS) -+AC_SUBST(MOZ_GRAPHITE_LIBS) -+ -+dnl ======================================================== - dnl Check for pixman and cairo - dnl ======================================================== - -@@ -8379,18 +8412,6 @@ QCMS_LIBS='$(DEPTH)/gfx/qcms/$(LIB_PREFI - AC_SUBST(QCMS_LIBS) - - dnl ======================================================== --dnl HarfBuzz --dnl ======================================================== --MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)' --AC_SUBST(MOZ_HARFBUZZ_LIBS) -- --dnl ======================================================== --dnl SIL Graphite --dnl ======================================================== --MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)' --AC_SUBST(MOZ_GRAPHITE_LIBS) -- --dnl ======================================================== - dnl OTS - dnl ======================================================== - MOZ_OTS_LIBS='$(DEPTH)/gfx/ots/src/$(LIB_PREFIX)mozots.$(LIB_SUFFIX)' -diff --git content/base/src/Makefile.in content/base/src/Makefile.in -index a618096..596901a 100644 ---- content/base/src/Makefile.in -+++ content/base/src/Makefile.in -@@ -5,6 +5,10 @@ - - include $(topsrcdir)/config/rules.mk - -+ifdef MOZ_NATIVE_HARFBUZZ -+nsContentUtils.$(OBJ_SUFFIX): CXXFLAGS+=$(MOZ_HARFBUZZ_CFLAGS) -+endif -+ - # gcc requires -msse2 for this file since it uses SSE2 intrinsics. (See bug - # 585538 comment 12.) - ifneq (,$(INTEL_ARCHITECTURE)) -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/Makefile.in gfx/skia/Makefile.in -index ee0efb2..98e169d6f 100644 ---- gfx/skia/Makefile.in -+++ gfx/skia/Makefile.in -@@ -15,6 +15,10 @@ ifeq (qt,$(MOZ_WIDGET_TOOLKIT)) - OS_CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PANGO_CFLAGS) $(CAIRO_FT_CFLAGS) - endif - -+ifdef MOZ_NATIVE_HARFBUZZ -+OS_CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) -+endif -+ - include $(topsrcdir)/config/rules.mk - - ifeq ($(CPU_ARCH)_$(GNU_CC),arm_1) -diff --git gfx/thebes/Makefile.in gfx/thebes/Makefile.in -index 45c36ae..79d32cf 100644 ---- gfx/thebes/Makefile.in -+++ gfx/thebes/Makefile.in -@@ -13,6 +13,14 @@ DEFINES := $(filter-out -DUNICODE,$(DEFINES)) - CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS) - CFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS) - -+ifdef MOZ_NATIVE_GRAPHITE2 -+CXXFLAGS += $(MOZ_GRAPHITE_CFLAGS) -+endif -+ -+ifdef MOZ_NATIVE_HARFBUZZ -+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) -+endif -+ - ifeq ($(MOZ_WIDGET_TOOLKIT),android) - CXXFLAGS += $(CAIRO_FT_CFLAGS) - endif -diff --git intl/unicharutil/util/Makefile.in intl/unicharutil/util/Makefile.in -index f6b9f7c..60863f4 100644 ---- intl/unicharutil/util/Makefile.in -+++ intl/unicharutil/util/Makefile.in -@@ -21,3 +21,7 @@ ifdef _MSC_VER - OS_COMPILE_CXXFLAGS += -Zl - OS_COMPILE_CFLAGS += -Zl - endif -+ -+ifdef MOZ_NATIVE_HARFBUZZ -+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) -+endif -diff --git layout/media/Makefile.in layout/media/Makefile.in -index 1cacbd7..a8cd156 100644 ---- layout/media/Makefile.in -+++ layout/media/Makefile.in -@@ -18,10 +18,16 @@ endif - SHARED_LIBRARY_LIBS = \ - $(MOZ_OTS_LIBS) \ - $(QCMS_LIBS) \ -- $(MOZ_GRAPHITE_LIBS) \ -- $(MOZ_HARFBUZZ_LIBS) \ - $(NULL) - -+ifndef MOZ_NATIVE_GRAPHITE2 -+SHARED_LIBRARY_LIBS += $(MOZ_GRAPHITE_LIBS) -+endif -+ -+ifndef MOZ_NATIVE_HARFBUZZ -+SHARED_LIBRARY_LIBS += $(MOZ_HARFBUZZ_LIBS) -+endif -+ - ifdef MOZ_TREE_CAIRO - SHARED_LIBRARY_LIBS += $(MOZ_CAIRO_LIBS) - endif -diff --git netwerk/dns/Makefile.in netwerk/dns/Makefile.in -index 1cacbd7..f5d72bb 100644 ---- netwerk/dns/Makefile.in -+++ netwerk/dns/Makefile.in -@@ -5,6 +5,10 @@ - - include $(topsrcdir)/config/rules.mk - -+ifdef MOZ_NATIVE_HARFBUZZ -+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) -+endif -+ - # Generate the include file containing compact, static definitions - # for effective TLD data. - etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat -diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in -index 67f0db9..d42137a 100644 ---- toolkit/library/Makefile.in -+++ toolkit/library/Makefile.in -@@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN - EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS) - endif - -+ifdef MOZ_NATIVE_GRAPHITE2 -+EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE_LIBS) -+endif -+ -+ifdef MOZ_NATIVE_HARFBUZZ -+EXTRA_DSO_LDOPTS += $(MOZ_HARFBUZZ_LIBS) -+endif -+ - ifdef MOZ_DMD - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,dmd,$(DIST)/lib) - endif Property changes on: branches/2014Q4/www/libxul/files/patch-z-bug847568 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-zz-bug517422 =================================================================== --- branches/2014Q4/www/libxul/files/patch-zz-bug517422 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-zz-bug517422 (nonexistent) @@ -1,540 +0,0 @@ -# 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 -@@ -79,6 +79,13 @@ 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_OPUS=$(MOZ_NATIVE_OPUS) \ -+ -DMOZ_NATIVE_SPEEX=$(MOZ_NATIVE_SPEEX) \ -+ -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 toolkit/toolkit.mozbuild toolkit/toolkit.mozbuild -index c22a36c..2febb45 100644 ---- toolkit/toolkit.mozbuild -+++ toolkit/toolkit.mozbuild -@@ -64,13 +64,13 @@ add_tier_dir('platform', 'rdf') - if CONFIG['MOZ_JSDEBUGGER']: - add_tier_dir('platform', 'js/jsd') - --if CONFIG['MOZ_VORBIS']: -+if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']: - add_tier_dir('platform', 'media/libvorbis') - --if CONFIG['MOZ_TREMOR']: -+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']: - add_tier_dir('platform', 'media/libtremor') - --if CONFIG['MOZ_OPUS']: -+if CONFIG['MOZ_OPUS'] and not CONFIG['MOZ_NATIVE_OPUS']: - add_tier_dir('platform', 'media/libopus') - - if CONFIG['MOZ_WEBM']: -@@ -82,7 +82,10 @@ if CONFIG['MOZ_VP8'] and not CONFIG['MOZ - add_tier_dir('platform', 'media/libvpx') - - if CONFIG['MOZ_OGG']: -- add_tier_dir('platform', ['media/libogg', 'media/libtheora']) -+ if not CONFIG['MOZ_NATIVE_OGG']: -+ add_tier_dir('platform', 'media/libogg') -+ if not CONFIG['MOZ_NATIVE_THEORA']: -+ add_tier_dir('platform', 'media/libtheora') - - if CONFIG['MOZ_WEBRTC']: - add_tier_dir('platform', [ -@@ -92,10 +95,10 @@ if CONFIG['MOZ_WEBRTC']: - 'media/mtransport/standalone', - ]) - --if CONFIG['MOZ_SPEEX_RESAMPLER']: -+if CONFIG['MOZ_SPEEX_RESAMPLER'] and not CONFIG['MOZ_NATIVE_SPEEX']: - add_tier_dir('platform', 'media/libspeex_resampler') - --if CONFIG['MOZ_SOUNDTOUCH']: -+if CONFIG['MOZ_SOUNDTOUCH'] and not CONFIG['MOZ_NATIVE_SOUNDTOUCH']: - add_tier_dir('platform', 'media/libsoundtouch') - - if CONFIG['MOZ_CUBEB']: -diff --git config/system-headers config/system-headers -index bef567c..9807c29 100644 ---- config/system-headers -+++ config/system-headers -@@ -1050,8 +1050,6 @@ X11/Xutil.h - xpt_struct.h - xpt_xdr.h - zmouse.h --speex/speex_resampler.h --soundtouch/SoundTouch.h - #if MOZ_NATIVE_PNG==1 - png.h - #endif -@@ -1119,6 +1117,8 @@ ogg/ogg.h - ogg/os_types.h - nestegg/nestegg.h - cubeb/cubeb.h -+speex/speex_resampler.h -+soundtouch/SoundTouch.h - #endif - gst/gst.h - gst/app/gstappsink.h -@@ -1155,3 +1155,29 @@ 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 -+#if MOZ_NATIVE_OPUS==1 -+opus.h -+opus_multistream.h -+opus/opus.h -+opus/opus_multistream.h -+#endif -+#if MOZ_NATIVE_SPEEX==1 -+speex/speex_resampler.h -+#endif -+#if MOZ_NATIVE_SOUNDTOUCH==1 -+soundtouch/SoundTouch.h -+#endif -diff --git configure.in configure.in -index 87db361..7947626 100644 ---- configure.in -+++ configure.in -@@ -5211,6 +5211,57 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then - 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) -+fi -+ -+AC_SUBST(MOZ_NATIVE_OGG) -+AC_SUBST(MOZ_OGG_CFLAGS) -+AC_SUBST(MOZ_OGG_LIBS) -+ -+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.4) -+fi -+ -+AC_SUBST(MOZ_NATIVE_VORBIS) -+AC_SUBST(MOZ_VORBIS_CFLAGS) -+AC_SUBST(MOZ_VORBIS_LIBS) -+ -+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) -+AC_SUBST(MOZ_TREMOR_CFLAGS) -+AC_SUBST(MOZ_TREMOR_LIBS) -+ -+dnl ======================================================== - dnl = Disable Opus audio codec support - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(opus, -@@ -5219,6 +5274,97 @@ MOZ_ARG_DISABLE_BOOL(opus, - MOZ_OPUS=1) - - dnl ======================================================== -+dnl Check for libopus -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-opus, -+[ --with-system-opus Use system libopus (located with pkgconfig)], -+MOZ_NATIVE_OPUS=1, -+MOZ_NATIVE_OPUS=) -+ -+if test -n "$MOZ_NATIVE_OPUS"; then -+ PKG_CHECK_MODULES(MOZ_OPUS, opus >= 1.1) -+else -+ MOZ_OPUS_CFLAGS='-I$(topsrcdir)/media/libopus/include' -+fi -+ -+AC_SUBST(MOZ_NATIVE_OPUS) -+AC_SUBST(MOZ_OPUS_CFLAGS) -+AC_SUBST(MOZ_OPUS_LIBS) -+ -+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) -+AC_SUBST(MOZ_THEORA_CFLAGS) -+AC_SUBST(MOZ_THEORA_LIBS) -+ -+dnl ======================================================== -+dnl Check for libspeex resampler -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-speex, -+[ --with-system-speex Use system libspeex (located with pkgconfig)], -+MOZ_NATIVE_SPEEX=1, -+MOZ_NATIVE_SPEEX=) -+ -+if test -n "$MOZ_NATIVE_SPEEX"; then -+ PKG_CHECK_MODULES(MOZ_SPEEX, speexdsp >= 1.2) -+fi -+ -+AC_SUBST(MOZ_NATIVE_SPEEX) -+AC_SUBST(MOZ_SPEEX_CFLAGS) -+AC_SUBST(MOZ_SPEEX_LIBS) -+ -+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.7.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 -+ -+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH) -+AC_SUBST(MOZ_SOUNDTOUCH_CFLAGS) -+AC_SUBST(MOZ_SOUNDTOUCH_LIBS) -+ -+dnl ======================================================== - dnl = Disable VP8 decoder support - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(webm, -diff --git content/media/Makefile.in content/media/Makefile.in -index fd34449..c6c42c8 100644 ---- content/media/Makefile.in -+++ content/media/Makefile.in -@@ -6,4 +6,31 @@ include $(topsrcdir)/config/rules.mk - - CFLAGS += $(GSTREAMER_CFLAGS) - CXXFLAGS += $(GSTREAMER_CFLAGS) - -+ifdef MOZ_NATIVE_OGG -+CXXFLAGS += $(MOZ_OGG_CFLAGS) -+endif -+ -+ifdef MOZ_NATIVE_THEORA -+CXXFLAGS += $(MOZ_THEORA_CFLAGS) -+endif -+ -+ifdef MOZ_NATIVE_VORBIS -+CXXFLAGS += $(MOZ_VORBIS_CFLAGS) -+endif -+ -+ifdef MOZ_NATIVE_TREMOR -+CXXFLAGS += $(MOZ_TREMOR_CFLAGS) -+endif -+ -+ifdef MOZ_NATIVE_OPUS -+CXXFLAGS += $(MOZ_OPUS_CFLAGS) -+endif -+ -+ifdef MOZ_NATIVE_SPEEX -+CXXFLAGS += $(MOZ_SPEEX_CFLAGS) -+endif -+ -+ifdef MOZ_NATIVE_SOUNDTOUCH -+CXXFLAGS += $(MOZ_SOUNDTOUCH_CFLAGS) -+endif -diff --git media/libcubeb/src/Makefile.in media/libcubeb/src/Makefile.in -index 4c14494..1cb98e2 100644 ---- media/libcubeb/src/Makefile.in -+++ media/libcubeb/src/Makefile.in -@@ -9,3 +9,7 @@ CFLAGS += \ - $(MOZ_ALSA_CFLAGS) \ - $(MOZ_PULSEAUDIO_CFLAGS) \ - $(NULL) -+ -+ifdef MOZ_NATIVE_SPEEX -+CFLAGS += $(MOZ_SPEEX_CFLAGS) -+endif -+ - AudioNodeEngineNEON.$(OBJ_SUFFIX): CXXFLAGS += -mfpu=neon -diff --git layout/media/Makefile.in layout/media/Makefile.in -index 1cacbd7..a8cd156 100644 ---- layout/media/Makefile.in -+++ layout/media/Makefile.in -@@ -36,31 +36,45 @@ ifdef MOZ_TREE_PIXMAN - SHARED_LIBRARY_LIBS += $(MOZ_PIXMAN_LIBS) - endif - -+ifdef MOZ_OGG -+ifndef MOZ_NATIVE_OGG -+SHARED_LIBRARY_LIBS += \ -+ $(DEPTH)/media/libogg/src/$(LIB_PREFIX)ogg.$(LIB_SUFFIX) \ -+ $(NULL) -+endif -+endif -+ - ifdef MOZ_VORBIS -+ifndef MOZ_NATIVE_VORBIS - SHARED_LIBRARY_LIBS += \ - $(DEPTH)/media/libvorbis/lib/$(LIB_PREFIX)vorbis.$(LIB_SUFFIX) \ -- $(DEPTH)/media/libogg/src/$(LIB_PREFIX)ogg.$(LIB_SUFFIX) \ - $(NULL) - endif -+endif - - ifdef MOZ_TREMOR -+ifndef MOZ_NATIVE_TREMOR - SHARED_LIBRARY_LIBS += \ - $(DEPTH)/media/libtremor/lib/$(LIB_PREFIX)tremor.$(LIB_SUFFIX) \ -- $(DEPTH)/media/libogg/src/$(LIB_PREFIX)ogg.$(LIB_SUFFIX) \ - $(NULL) - endif -+endif - - ifdef MOZ_OGG -+ifndef MOZ_NATIVE_THEORA - SHARED_LIBRARY_LIBS += \ - $(DEPTH)/media/libtheora/lib/$(LIB_PREFIX)theora.$(LIB_SUFFIX) \ - $(NULL) - endif -+endif - - ifdef MOZ_OPUS -+ifndef MOZ_NATIVE_OPUS - SHARED_LIBRARY_LIBS += \ - $(DEPTH)/media/libopus/$(LIB_PREFIX)opus.$(LIB_SUFFIX) \ - $(NULL) - endif -+endif - - ifdef MOZ_WEBM - SHARED_LIBRARY_LIBS += \ -@@ -77,16 +91,20 @@ endif - endif - - ifdef MOZ_SPEEX_RESAMPLER -+ifndef MOZ_NATIVE_SPEEX - SHARED_LIBRARY_LIBS += \ - $(DEPTH)/media/libspeex_resampler/src/$(LIB_PREFIX)speex_resampler.$(LIB_SUFFIX) \ - $(NULL) - endif -+endif - - ifdef MOZ_SOUNDTOUCH -+ifndef MOZ_NATIVE_SOUNDTOUCH - SHARED_LIBRARY_LIBS += \ - $(DEPTH)/media/libsoundtouch/src/$(LIB_PREFIX)soundtouch.$(LIB_SUFFIX) \ - $(NULL) - endif -+endif - - ifdef MOZ_CUBEB - SHARED_LIBRARY_LIBS += \ -diff --git media/libtheora/Makefile.in media/libtheora/Makefile.in -new file mode 100644 -index 0000000..1f02dc0 ---- /dev/null -+++ media/libtheora/Makefile.in -@@ -0,0 +1,16 @@ -+# This Source Code Form is subject to the terms of the Mozilla Public -+# License, v. 2.0. If a copy of the MPL was not distributed with this -+# file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ -+DEPTH = @DEPTH@ -+topsrcdir = @top_srcdir@ -+srcdir = @srcdir@ -+VPATH = @srcdir@ -+ -+include $(DEPTH)/config/autoconf.mk -+ -+include $(topsrcdir)/config/rules.mk -+ -+ifdef MOZ_NATIVE_OGG -+CFLAGS += $(MOZ_OGG_CFLAGS) -+endif -diff --git media/libtremor/Makefile.in media/libtremor/Makefile.in -new file mode 100644 -index 0000000..1f02dc0 ---- /dev/null -+++ media/libtremor/Makefile.in -@@ -0,0 +1,16 @@ -+# This Source Code Form is subject to the terms of the Mozilla Public -+# License, v. 2.0. If a copy of the MPL was not distributed with this -+# file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ -+DEPTH = @DEPTH@ -+topsrcdir = @top_srcdir@ -+srcdir = @srcdir@ -+VPATH = @srcdir@ -+ -+include $(DEPTH)/config/autoconf.mk -+ -+include $(topsrcdir)/config/rules.mk -+ -+ifdef MOZ_NATIVE_OGG -+CFLAGS += $(MOZ_OGG_CFLAGS) -+endif -diff --git media/libvorbis/Makefile.in media/libvorbis/Makefile.in -new file mode 100644 -index 0000000..1f02dc0 ---- /dev/null -+++ media/libvorbis/Makefile.in -@@ -0,0 +1,16 @@ -+# This Source Code Form is subject to the terms of the Mozilla Public -+# License, v. 2.0. If a copy of the MPL was not distributed with this -+# file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ -+DEPTH = @DEPTH@ -+topsrcdir = @top_srcdir@ -+srcdir = @srcdir@ -+VPATH = @srcdir@ -+ -+include $(DEPTH)/config/autoconf.mk -+ -+include $(topsrcdir)/config/rules.mk -+ -+ifdef MOZ_NATIVE_OGG -+CFLAGS += $(MOZ_OGG_CFLAGS) -+endif -diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in -index bbc971c..6ed7e41 100644 ---- media/webrtc/signaling/test/Makefile.in -+++ media/webrtc/signaling/test/Makefile.in -@@ -48,6 +48,12 @@ LIBS += \ - $(NULL) - endif - -+ifdef MOZ_NATIVE_OPUS -+LIBS += \ -+ $(MOZ_OPUS_LIBS) \ -+ $(NULL) -+endif -+ - ifdef MOZ_NATIVE_LIBVPX - LIBS += \ - $(MOZ_LIBVPX_LIBS) \ -diff --git media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi -index 00e77e7..55f48ab 100644 ---- media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi -+++ media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi -@@ -14,9 +14,9 @@ - 'conditions': [ - ['build_with_mozilla==1', { - # Mozilla provides its own build of the opus library. -- 'include_dirs': [ -- '$(DIST)/include/opus', -- ] -+ 'cflags_mozilla': [ -+ '$(MOZ_OPUS_CFLAGS)', -+ ], - }, { - 'dependencies': [ - '<(DEPTH)/third_party/opus/opus.gyp:opus' -diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in -index d42137a..695e75a8 100644 ---- toolkit/library/Makefile.in -+++ toolkit/library/Makefile.in -@@ -77,6 +77,34 @@ ifdef MOZ_NATIVE_HUNSPELL - EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS) - endif - -+ifdef MOZ_NATIVE_OGG -+EXTRA_DSO_LDOPTS += $(MOZ_OGG_LIBS) -+endif -+ -+ifdef MOZ_NATIVE_THEORA -+EXTRA_DSO_LDOPTS += $(MOZ_THEORA_LIBS) -+endif -+ -+ifdef MOZ_NATIVE_VORBIS -+EXTRA_DSO_LDOPTS += $(MOZ_VORBIS_LIBS) -+endif -+ -+ifdef MOZ_NATIVE_TREMOR -+EXTRA_DSO_LDOPTS += $(MOZ_TREMOR_LIBS) -+endif -+ -+ifdef MOZ_NATIVE_OPUS -+EXTRA_DSO_LDOPTS += $(MOZ_OPUS_LIBS) -+endif -+ -+ifdef MOZ_NATIVE_SPEEX -+EXTRA_DSO_LDOPTS += $(MOZ_SPEEX_LIBS) -+endif -+ -+ifdef MOZ_NATIVE_SOUNDTOUCH -+EXTRA_DSO_LDOPTS += $(MOZ_SOUNDTOUCH_LIBS) -+endif -+ - ifdef MOZ_NATIVE_LIBEVENT - EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS) - endif Property changes on: branches/2014Q4/www/libxul/files/patch-zz-bug517422 ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-toolkit_xre_Makefile.in =================================================================== --- branches/2014Q4/www/libxul/files/patch-toolkit_xre_Makefile.in (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-toolkit_xre_Makefile.in (nonexistent) @@ -1,8 +0,0 @@ ---- toolkit/xre/Makefile.in.orig 2007-09-10 10:31:53.000000000 -0400 -+++ toolkit/xre/Makefile.in 2007-09-10 10:35:00.000000000 -0400 -@@ -263,5 +263,3 @@ - libs:: platform.ini - $(INSTALL) $^ $(DIST)/bin - --install:: -- $(INSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir) Property changes on: branches/2014Q4/www/libxul/files/patch-toolkit_xre_Makefile.in ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug916216 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug916216 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug916216 (nonexistent) @@ -1,39 +0,0 @@ ---- media/webrtc/trunk/build/build_config.h~ -+++ media/webrtc/trunk/build/build_config.h -@@ -37,9 +37,15 @@ - #elif defined(_WIN32) - #define OS_WIN 1 - #define TOOLKIT_VIEWS 1 --#elif defined(__FreeBSD__) -+#elif defined(__DragonFly__) -+#define OS_DRAGONFLY 1 -+#define TOOLKIT_GTK -+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) - #define OS_FREEBSD 1 - #define TOOLKIT_GTK -+#elif defined(__NetBSD__) -+#define OS_NETBSD 1 -+#define TOOLKIT_GTK - #elif defined(__OpenBSD__) - #define OS_OPENBSD 1 - #define TOOLKIT_GTK -@@ -56,15 +62,15 @@ - - // For access to standard BSD features, use OS_BSD instead of a - // more specific macro. --#if defined(OS_FREEBSD) || defined(OS_OPENBSD) -+#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD) \ -+ || defined(OS_NETBSD) || defined(OS_OPENBSD) - #define OS_BSD 1 - #endif - - // For access to standard POSIXish features, use OS_POSIX instead of a - // more specific macro. --#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD) || \ -- defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_ANDROID) || \ -- defined(OS_NACL) -+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || \ -+ defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL) - #define OS_POSIX 1 - #endif - Property changes on: branches/2014Q4/www/libxul/files/patch-bug916216 ___________________________________________________________________ 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/2014Q4/www/libxul/files/pkg-deinstall.in =================================================================== --- branches/2014Q4/www/libxul/files/pkg-deinstall.in (revision 370968) +++ branches/2014Q4/www/libxul/files/pkg-deinstall.in (nonexistent) @@ -1,28 +0,0 @@ -#!/bin/sh -# -# $MCom: ports/www/mozilla/pkg-deinstall.in,v 1.25 2008/07/26 19:07:07 ahze Exp $ -# -# Date created: Mon Nov 29, 2003 -# Whom: Thierry Thomas () -# Fix the chrome registry. - -umask 022 -PATH=/bin:/usr/bin - -[ "x$1" = "x" ] && exit 1 -[ "x$2" != "xDEINSTALL" ] && exit 0 - -MOZDIR=%%MOZDIR%% - -rm -rf ${MOZDIR}/chrome/overlayinfo -rm -f ${MOZDIR}/chrome/*.rdf -rm -f ${MOZDIR}/component.reg -rm -f ${MOZDIR}/components/*.dat -rm -f ${MOZDIR}/components.ini -rm -f ${MOZDIR}/defaults.ini -rm -f ${MOZDIR}/chrome/app-chrome.manifest -rm -rf ${MOZDIR}/updates -find %%MOZDIR%%/plugins/ -depth 1 -type l -delete > /dev/null 2>&1 -find %%MOZDIR%%/extensions/ -depth 1 -type l -delete > /dev/null 2>&1 - -exit 0 Property changes on: branches/2014Q4/www/libxul/files/pkg-deinstall.in ___________________________________________________________________ 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/2014Q4/www/libxul/files/patch-bug1013675 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1013675 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug1013675 (revision 370969) @@ -1,89 +1,88 @@ diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp index 13a286f..293bd73 100644 --- xpcom/base/nsDebugImpl.cpp +++ xpcom/base/nsDebugImpl.cpp -@@ -45,13 +45,44 @@ +@@ -45,12 +45,43 @@ #endif #endif -#if defined(XP_MACOSX) +#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \ + || defined(__NetBSD__) || defined(__OpenBSD__) #include - #include #include +#include #include #endif +#if defined(__OpenBSD__) +#include +#endif + +#if defined(__DragonFly__) || defined(__FreeBSD__) +#include +#endif + +#if defined(__NetBSD__) +#undef KERN_PROC +#define KERN_PROC KERN_PROC2 +#define KINFO_PROC struct kinfo_proc2 +#else +#define KINFO_PROC struct kinfo_proc +#endif + +#if defined(XP_MACOSX) +#define KP_FLAGS kp_proc.p_flag +#elif defined(__DragonFly__) +#define KP_FLAGS kp_flags +#elif defined(__FreeBSD__) +#define KP_FLAGS ki_flag +#elif defined(__OpenBSD__) && !defined(_P_TRACED) +#define KP_FLAGS p_psflags +#define P_TRACED PS_TRACED +#else +#define KP_FLAGS p_flag +#endif + #include "mozilla/mozalloc_abort.h" static void @@ -144,16 +175,22 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult) #if defined(XP_WIN) *aResult = ::IsDebuggerPresent(); -#elif defined(XP_MACOSX) +#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \ + || defined(__NetBSD__) || defined(__OpenBSD__) // Specify the info we're looking for - int mib[4]; - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; - mib[2] = KERN_PROC_PID; - mib[3] = getpid(); + int mib[] = { + CTL_KERN, + KERN_PROC, + KERN_PROC_PID, + getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) + sizeof(KINFO_PROC), + 1, +#endif + }; size_t mibSize = sizeof(mib) / sizeof(int); - struct kinfo_proc info; + KINFO_PROC info; size_t infoSize = sizeof(info); memset(&info, 0, infoSize); @@ -163,7 +200,7 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult) return NS_OK; } - if (info.kp_proc.p_flag & P_TRACED) { + if (info.KP_FLAGS & P_TRACED) { *aResult = true; } #endif Index: branches/2014Q4/www/libxul/files/patch-bug1013882 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1013882 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-bug1013882 (revision 370969) @@ -0,0 +1,69 @@ +diff --git b2g/installer/Makefile.in b2g/installer/Makefile.in +index 754312a..c69904c 100644 +--- b2g/installer/Makefile.in ++++ b2g/installer/Makefile.in +@@ -63,6 +63,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS))) + DEFINES += -DMOZ_RTSP + endif + ++ifdef MOZ_DEBUG ++DEFINES += -DMOZ_DEBUG=1 ++endif ++ + ifdef GKMEDIAS_SHARED_LIBRARY + DEFINES += -DGKMEDIAS_SHARED_LIBRARY + endif +diff --git b2g/installer/package-manifest.in b2g/installer/package-manifest.in +index 17d433c..0416187 100644 +--- b2g/installer/package-manifest.in ++++ b2g/installer/package-manifest.in +@@ -576,7 +576,7 @@ + @BINPATH@/components/MozKeyboard.js + @BINPATH@/components/InputMethod.manifest + +-#ifdef MOZ_DEBUG ++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) + @BINPATH@/components/TestInterfaceJS.js + @BINPATH@/components/TestInterfaceJS.manifest + #endif +diff --git browser/installer/package-manifest.in browser/installer/package-manifest.in +index b509fd4..195345c 100644 +--- browser/installer/package-manifest.in ++++ browser/installer/package-manifest.in +@@ -583,7 +583,7 @@ + @BINPATH@/components/MozKeyboard.js + @BINPATH@/components/InputMethod.manifest + +-#ifdef MOZ_DEBUG ++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) + @BINPATH@/components/TestInterfaceJS.js + @BINPATH@/components/TestInterfaceJS.manifest + #endif +diff --git mobile/android/installer/Makefile.in mobile/android/installer/Makefile.in +index 96dceab..3528ad6 100644 +--- mobile/android/installer/Makefile.in ++++ mobile/android/installer/Makefile.in +@@ -41,6 +41,10 @@ BINPATH = bin + endif + DEFINES += -DBINPATH=$(BINPATH) + ++ifdef MOZ_DEBUG ++DEFINES += -DMOZ_DEBUG=1 ++endif ++ + ifdef ENABLE_MARIONETTE + DEFINES += -DENABLE_MARIONETTE=1 + endif +diff --git mobile/android/installer/package-manifest.in mobile/android/installer/package-manifest.in +index 994580b..cf142df 100644 +--- mobile/android/installer/package-manifest.in ++++ mobile/android/installer/package-manifest.in +@@ -440,7 +440,7 @@ + @BINPATH@/components/dom_webspeechsynth.xpt + #endif + +-#ifdef MOZ_DEBUG ++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) + @BINPATH@/components/TestInterfaceJS.js + @BINPATH@/components/TestInterfaceJS.manifest + #endif Property changes on: branches/2014Q4/www/libxul/files/patch-bug1013882 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-bug1015547 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1015547 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug1015547 (revision 370969) @@ -1,94 +1,95 @@ diff --git configure.in configure.in index 7bed45f..053de17 100644 --- configure.in +++ configure.in -@@ -3166,6 +3166,7 @@ AC_CHECK_FUNCS(random strerror lchown fc - AC_CHECK_FUNCS(statvfs64 statvfs statfs64 statfs) - AC_CHECK_FUNCS(flockfile getpagesize) - AC_CHECK_FUNCS(localtime_r strtok_r) -+AC_CHECK_FUNCS(arc4random arc4random_buf) +@@ -2950,7 +2950,7 @@ dnl Checks for library functions. + dnl ======================================================== + AC_PROG_GCC_TRADITIONAL + AC_FUNC_MEMCMP +-AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r) ++AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r arc4random arc4random_buf) dnl check for clock_gettime(), the CLOCK_MONOTONIC clock AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC), diff --git xpcom/base/nsUUIDGenerator.cpp xpcom/base/nsUUIDGenerator.cpp index 0687344..ca3ff8b 100644 --- xpcom/base/nsUUIDGenerator.cpp +++ xpcom/base/nsUUIDGenerator.cpp @@ -15,6 +15,10 @@ #include "nsUUIDGenerator.h" +#ifdef ANDROID +extern "C" NS_EXPORT void arc4random_buf(void *, size_t); +#endif + using namespace mozilla; NS_IMPL_ISUPPORTS1(nsUUIDGenerator, nsIUUIDGenerator) @@ -34,7 +38,7 @@ nsUUIDGenerator::Init() // We're a service, so we're guaranteed that Init() is not going // to be reentered while we're inside Init(). -#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID) +#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM) /* initialize random number generator using NSPR random noise */ unsigned int seed; @@ -67,7 +71,7 @@ nsUUIDGenerator::Init() return NS_ERROR_FAILURE; #endif -#endif /* non XP_WIN and non XP_MACOSX */ +#endif /* non XP_WIN and non XP_MACOSX and non ARC4RANDOM */ return NS_OK; } @@ -114,13 +118,16 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id) * back to it; instead, we use the value returned when we called * initstate, since older glibc's have broken setstate() return values */ -#ifndef ANDROID +#ifndef HAVE_ARC4RANDOM setstate(mState); #endif +#ifdef HAVE_ARC4RANDOM_BUF + arc4random_buf(id, sizeof(nsID)); +#else /* HAVE_ARC4RANDOM_BUF */ size_t bytesLeft = sizeof(nsID); while (bytesLeft > 0) { -#ifdef ANDROID +#ifdef HAVE_ARC4RANDOM long rval = arc4random(); const size_t mRBytes = 4; #else @@ -141,6 +148,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id) bytesLeft -= toWrite; } +#endif /* HAVE_ARC4RANDOM_BUF */ /* Put in the version */ id->m2 &= 0x0fff; @@ -150,7 +158,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id) id->m3[0] &= 0x3f; id->m3[0] |= 0x80; -#ifndef ANDROID +#ifndef HAVE_ARC4RANDOM /* Restore the previous RNG state */ setstate(mSavedState); #endif diff --git xpcom/base/nsUUIDGenerator.h xpcom/base/nsUUIDGenerator.h index 6a24212..68ed6f2 100644 --- xpcom/base/nsUUIDGenerator.h +++ xpcom/base/nsUUIDGenerator.h @@ -27,7 +27,7 @@ private: protected: mozilla::Mutex mLock; -#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID) +#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM) char mState[128]; char *mSavedState; uint8_t mRBytes; Index: branches/2014Q4/www/libxul/files/patch-bug1021761 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1021761 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-bug1021761 (revision 370969) @@ -0,0 +1,1092 @@ +diff --git configure.in configure.in +index 48e60c0..ec08417 100644 +--- configure.in ++++ configure.in +@@ -5438,6 +5438,60 @@ 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|NetBSD|GNU/kFreeBSD) ++ MOZ_OSS=1 ++ ;; ++esac ++ ++MOZ_ARG_DISABLE_BOOL(oss, ++[ --disable-oss Disable OpenSoundSystem support], ++ MOZ_OSS=, ++ MOZ_OSS=1) ++ ++_SAVE_CFLAGS=$CFLAGS ++_SAVE_LIBS=$LIBS ++if test -n "$MOZ_OSS"; then ++ dnl Prefer 4Front implementation ++ AC_MSG_CHECKING([MOZ_OSS_CFLAGS]) ++ if test -z "$MOZ_OSS_CFLAGS"; then ++ for oss_conf in /etc/oss.conf /usr/local/etc/oss.conf; do ++ if test -e "$oss_conf"; then ++ . "$oss_conf" ++ fi ++ done ++ if test -d "$OSSLIBDIR"; then ++ 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 linux/soundcard.h soundcard.h) ++ ++ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \ ++ "$ac_cv_header_linux_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="-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 ================================== + +@@ -5451,12 +5505,23 @@ MOZ_ARG_ENABLE_BOOL(alsa, + MOZ_ALSA=1, + MOZ_ALSA=) + ++MOZ_ARG_DISABLE_BOOL(alsa-dlopen, ++[ --disable-alsa-dlopen Disable runtime linking of libasound.so], ++ DISABLE_LIBASOUND_DLOPEN=1, ++ DISABLE_LIBASOUND_DLOPEN=) ++ + if test -n "$MOZ_ALSA"; then + PKG_CHECK_MODULES(MOZ_ALSA, alsa, , + [echo "$MOZ_ALSA_PKG_ERRORS" + AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])]) + fi + ++if test -n "$DISABLE_LIBASOUND_DLOPEN"; then ++ AC_DEFINE(DISABLE_LIBASOUND_DLOPEN) ++else ++ MOZ_ALSA_LIBS= ++fi ++ + AC_SUBST(MOZ_ALSA) + + 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); +@@ -313,10 +360,10 @@ alsa_refill_stream(cubeb_stream * stm) + return ERROR; + } + if (got > 0) { +- snd_pcm_sframes_t wrote = snd_pcm_writei(stm->pcm, p, got); ++ snd_pcm_sframes_t 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 +@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, + latency = latency < 500 ? 500 : latency; + } + +- r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, +- stm->params.channels, stm->params.rate, 1, +- latency * 1000); ++ 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) { + alsa_stream_destroy(stm); + return CUBEB_ERROR_INVALID_FORMAT; + } + +- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size); ++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->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); +@@ -937,12 +1043,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_any(stm->pcm, hw_params); ++ rv = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params); + if (rv < 0) { + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_get_channels_max(hw_params, max_channels); ++ rv = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels); + if (rv < 0) { + return CUBEB_ERROR; + } +@@ -962,34 +1068,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. */ +- rv = snd_pcm_open(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); ++ rv = WRAP(snd_pcm_open)(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); + if (rv < 0) { + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_any(pcm, hw_params); ++ rv = WRAP(snd_pcm_hw_params_any)(pcm, hw_params); + if (rv < 0) { +- snd_pcm_close(pcm); ++ WRAP(snd_pcm_close)(pcm); + return CUBEB_ERROR; + } + +- rv = snd_pcm_hw_params_get_rate(hw_params, rate, &dir); ++ rv = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir); + if (rv >= 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; + +- rv = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL); ++ rv = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL); + if (rv < 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,399 @@ ++/* ++ * 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 ++#elif defined(HAVE_LINUX_SOUNDCARD_H) ++#include ++#else ++#include ++#endif ++#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, 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_stream_params 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; ++ ++ 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 = stream_params; ++ stream->volume = 1.0; ++ stream->panning = 0.0; ++ ++ oss_try_set_latency(stream, latency); ++ ++ stream->floating = 0; ++ SET(SNDCTL_DSP_CHANNELS, stream_params.channels); ++ SET(SNDCTL_DSP_SPEED, stream_params.rate); ++ switch (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 ++}; +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 toolkit/library/libxul.mk toolkit/library/libxul.mk +index e191f13..4fb268a 100644 +--- toolkit/library/libxul.mk ++++ toolkit/library/libxul.mk +@@ -146,6 +146,10 @@ OS_LIBS += $(call EXPAND_LIBNAME,secur32 + endif + endif + ++ifdef MOZ_OSS ++EXTRA_DSO_LDOPTS += $(MOZ_OSS_LIBS) ++endif ++ + ifdef MOZ_ALSA + EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS) + endif Property changes on: branches/2014Q4/www/libxul/files/patch-bug1021761 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-bug1026828 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1026828 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-bug1026828 (revision 370969) @@ -0,0 +1,20 @@ +diff --git storage/src/moz.build storage/src/moz.build +index 4cd2551..5c40536 100644 +--- storage/src/moz.build ++++ storage/src/moz.build +@@ -50,11 +50,14 @@ FINAL_LIBRARY = 'storagecomps' + # (such as NSS) might trigger an initialization of sqlite and allocation + # of memory using the default allocator, prior to the storage service + # registering its allocator, causing memory management failures (bug 938730). ++# However, this is not an issue if both the jemalloc allocator and the default ++# allocator are the same thing. + # + # Note: On Windows our sqlite build assumes we use jemalloc. If you disable + # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef + # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in. +-if CONFIG['MOZ_MEMORY'] and not CONFIG['MOZ_NATIVE_SQLITE']: ++if CONFIG['MOZ_MEMORY'] and (not CONFIG['MOZ_NATIVE_SQLITE'] ++ or CONFIG['MOZ_NATIVE_JEMALLOC']): + if CONFIG['OS_TARGET'] != 'Android': + DEFINES['MOZ_STORAGE_MEMORY'] = True + Property changes on: branches/2014Q4/www/libxul/files/patch-bug1026828 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-bug1041381 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1041381 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-bug1041381 (revision 370969) @@ -0,0 +1,12 @@ +diff --git config/rules.mk config/rules.mk +index 1dee8c3..4d67eda 100644 +--- config/rules.mk ++++ config/rules.mk +@@ -822,6 +822,7 @@ endif + ifdef DTRACE_PROBE_OBJ + EXTRA_DEPS += $(DTRACE_PROBE_OBJ) + OBJS += $(DTRACE_PROBE_OBJ) ++EXCLUDED_OBJS += $(DTRACE_PROBE_OBJ) + endif + + $(filter %.$(LIB_SUFFIX),$(LIBRARY)): $(OBJS) $(EXTRA_DEPS) $(GLOBAL_DEPS) Property changes on: branches/2014Q4/www/libxul/files/patch-bug1041381 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-bug1041795 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1041795 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug1041795 (revision 370969) @@ -1,70 +1,48 @@ diff --git config/rules.mk config/rules.mk index 4d67eda..783942f 100644 --- config/rules.mk +++ config/rules.mk @@ -858,7 +858,7 @@ ifdef DTRACE_PROBE_OBJ ifndef DTRACE_LIB_DEPENDENT NON_DTRACE_OBJS := $(filter-out $(DTRACE_PROBE_OBJ),$(OBJS)) $(DTRACE_PROBE_OBJ): $(NON_DTRACE_OBJS) - dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS) + dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS) endif endif endif @@ -876,7 +876,7 @@ ifndef INCREMENTAL_LINKER endif ifdef DTRACE_LIB_DEPENDENT ifndef XP_MACOSX - dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS)) + dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS)) endif $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS)) @$(RM) $(DTRACE_PROBE_OBJ) -diff --git js/src/config/rules.mk js/src/config/rules.mk -index 4d67eda..783942f 100644 ---- js/src/config/rules.mk -+++ js/src/config/rules.mk -@@ -858,7 +858,7 @@ ifdef DTRACE_PROBE_OBJ - ifndef DTRACE_LIB_DEPENDENT - NON_DTRACE_OBJS := $(filter-out $(DTRACE_PROBE_OBJ),$(OBJS)) - $(DTRACE_PROBE_OBJ): $(NON_DTRACE_OBJS) -- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS) -+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS) - endif - endif - endif -@@ -876,7 +876,7 @@ ifndef INCREMENTAL_LINKER - endif - ifdef DTRACE_LIB_DEPENDENT - ifndef XP_MACOSX -- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS)) -+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS)) - endif - $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS)) - @$(RM) $(DTRACE_PROBE_OBJ) diff --git js/src/Makefile.in js/src/Makefile.in index 28ca5e8..96793d7 100644 --- js/src/Makefile.in +++ js/src/Makefile.in @@ -342,7 +342,7 @@ endif ifdef HAVE_DTRACE $(CURDIR)/javascript-trace.h: $(srcdir)/devtools/javascript-trace.d - dtrace -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in + dtrace -x nolibs -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \ -e '/const/!s/char \*/const char */g' \ javascript-trace.h.in > javascript-trace.h diff --git probes/Makefile.in probes/Makefile.in index 6d18f34..deec83f 100644 --- probes/Makefile.in +++ probes/Makefile.in @@ -7,7 +7,7 @@ export:: $(DIST)/include/mozilla-trace.h # Replace _DTRACE_VERSION with INCLUDE_MOZILLA_DTRACE $(DIST)/include/mozilla-trace.h: mozilla-trace.d Makefile - dtrace -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp + dtrace -x nolibs -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \ mozilla-trace.h.tmp > $(DIST)/include/mozilla-trace.h rm mozilla-trace.h.tmp Index: branches/2014Q4/www/libxul/files/patch-bug1073709 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1073709 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-bug1073709 (revision 370969) @@ -0,0 +1,18 @@ +diff --git mfbt/Atomics.h mfbt/Atomics.h +index 495a9d3..c7f7601 100644 +--- mfbt/Atomics.h ++++ mfbt/Atomics.h +@@ -34,10 +34,12 @@ + * loose typing of the atomic builtins. GCC 4.5 and 4.6 lacks inline + * definitions for unspecialized std::atomic and causes linking errors. + * Therefore, we require at least 4.7.0 for using libstdc++. ++ * ++ * libc++ is only functional with clang. + */ + # if MOZ_USING_LIBSTDCXX && MOZ_LIBSTDCXX_VERSION_AT_LEAST(4, 7, 0) + # define MOZ_HAVE_CXX11_ATOMICS +-# elif MOZ_USING_LIBCXX ++# elif MOZ_USING_LIBCXX && defined(__clang__) + # define MOZ_HAVE_CXX11_ATOMICS + # endif + /* Property changes on: branches/2014Q4/www/libxul/files/patch-bug1073709 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-bug1076983 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug1076983 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-bug1076983 (revision 370969) @@ -0,0 +1,45 @@ +commit e10ee74 +Author: Martin Thomson +Date: Tue Oct 14 17:17:35 2014 -0700 + + Bug 1076983 - Disabling SSL 3.0 with pref +--- + netwerk/base/public/security-prefs.js | 2 +- + security/manager/ssl/src/nsNSSComponent.cpp | 7 +++---- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git netwerk/base/public/security-prefs.js netwerk/base/public/security-prefs.js +index 352552e..c12731b 100644 +--- netwerk/base/public/security-prefs.js ++++ netwerk/base/public/security-prefs.js +@@ -2,7 +2,7 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +-pref("security.tls.version.min", 0); ++pref("security.tls.version.min", 1); + pref("security.tls.version.max", 3); + + pref("security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref", false); +diff --git security/manager/ssl/src/nsNSSComponent.cpp security/manager/ssl/src/nsNSSComponent.cpp +index 8cab67b..772959d 100644 +--- security/manager/ssl/src/nsNSSComponent.cpp ++++ security/manager/ssl/src/nsNSSComponent.cpp +@@ -829,14 +829,13 @@ void nsNSSComponent::setValidationOptions(bool isInitialSetting, + mDefaultCertVerifier = new SharedCertVerifier(odc, osc, ogc, pinningMode); + } + +-// Enable the TLS versions given in the prefs, defaulting to SSL 3.0 (min +-// version) and TLS 1.2 (max version) when the prefs aren't set or set to +-// invalid values. ++// Enable the TLS versions given in the prefs, defaulting to TLS 1.0 (min) and ++// TLS 1.2 (max) when the prefs aren't set or set to invalid values. + nsresult + nsNSSComponent::setEnabledTLSVersions() + { + // keep these values in sync with security-prefs.js +- static const int32_t PSM_DEFAULT_MIN_TLS_VERSION = 0; ++ static const int32_t PSM_DEFAULT_MIN_TLS_VERSION = 1; + static const int32_t PSM_DEFAULT_MAX_TLS_VERSION = 3; + + int32_t minVersion = Preferences::GetInt("security.tls.version.min", Property changes on: branches/2014Q4/www/libxul/files/patch-bug1076983 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-bug702179 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug702179 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug702179 (revision 370969) @@ -1,35 +1,36 @@ commit 6ddaacd Author: Ginn Chen Date: Wed Nov 30 07:23:46 2011 +0800 Bug 702179 dtrace probes are not installed on Solaris with static js lib r=glandium --- configure.in | 2 +- js/src/Makefile.in | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git configure.in configure.in index 66549c1..75b848d 100644 --- configure.in +++ configure.in @@ -966,7 +966,7 @@ MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)' MOZ_PNG_CFLAGS="-I$_objdir/dist/include" # needed for freetype compilation MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/media/libpng)' -MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(LIBXUL_DIST)/lib)' +MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(DEPTH)/js/src)' MOZ_JS_SHARED_LIBS='$(call EXPAND_LIBNAME_PATH,mozjs,$(LIBXUL_DIST)/lib)' MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib' XPCOM_FROZEN_LDOPTS='$(call EXPAND_LIBNAME_PATH,xul mozalloc,$(LIBXUL_DIST)/bin)' diff --git js/src/Makefile.in js/src/Makefile.in index e28160a..28ca5e8 100644 --- js/src/Makefile.in +++ js/src/Makefile.in -@@ -35,7 +35,6 @@ ifdef JS_SHARED_LIBRARY - FORCE_SHARED_LIB = 1 - endif - FORCE_STATIC_LIB = 1 --DIST_INSTALL = 1 +@@ -18,8 +18,6 @@ run_for_side_effects := $(shell echo 'MAKE: $(MAKE)') + STATIC_LIBRARY_NAME = js_static + LIBS = $(NSPR_LIBS) - ############################################### - # BEGIN include sources for low-level code shared with mfbt +-DIST_INSTALL = 1 +- + ifdef JS_STANDALONE + SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt) + ifndef MOZ_NATIVE_ZLIB Index: branches/2014Q4/www/libxul/files/patch-bug779713 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug779713 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug779713 (revision 370969) @@ -1,72 +1,77 @@ -diff --git mfbt/Util.h mfbt/Util.h +diff --git mfbt/Alignment.h mfbt/Alignment.h index e0843ca..353ec36 100644 ---- mfbt/Util.h -+++ mfbt/Util.h -@@ -19,6 +19,13 @@ +--- mfbt/Alignment.h ++++ mfbt/Alignment.h +@@ -9,11 +9,20 @@ + #ifndef mozilla_Alignment_h + #define mozilla_Alignment_h ++#include "mozilla/Attributes.h" ++ + #include + #include + namespace mozilla { +#if defined(MOZ_HAVE_CXX11_ALIGNAS) +#define MOZ_ALIGNOF(T) alignof(T) +#elif defined(__GNUC__) +#define MOZ_ALIGNOF(T) __alignof__(T) +#elif defined(_MSC_VER) +#define MOZ_ALIGNOF(T) __alignof(T) +#else /* - * This class, and the corresponding macro MOZ_ALIGNOF, figure out how many + * This class, and the corresponding macro MOZ_ALIGNOF, figures out how many * bytes of alignment a given type needs. -@@ -37,6 +44,7 @@ class AlignmentFinder +@@ -32,6 +41,7 @@ public: }; #define MOZ_ALIGNOF(T) mozilla::AlignmentFinder::alignment +#endif /* * Declare the MOZ_ALIGNED_DECL macro for declaring aligned types. -@@ -48,7 +56,10 @@ class AlignmentFinder +@@ -43,7 +53,10 @@ public: * will declare a two-character array |arr| aligned to 8 bytes. */ -#if defined(__GNUC__) +#if defined(MOZ_HAVE_CXX11_ALIGNAS) +# define MOZ_ALIGNED_DECL(_type, _align) \ + alignas(_align) _type +#elif defined(__GNUC__) # define MOZ_ALIGNED_DECL(_type, _align) \ _type __attribute__((aligned(_align))) #elif defined(_MSC_VER) diff --git mfbt/Attributes.h mfbt/Attributes.h index d317766..ddb13da 100644 --- mfbt/Attributes.h +++ mfbt/Attributes.h -@@ -67,6 +67,9 @@ +@@ -54,6 +54,9 @@ # ifndef __has_extension # define __has_extension __has_feature /* compatibility, for older versions of clang */ # endif +# if __has_extension(cxx_alignas) +# define MOZ_HAVE_CXX11_ALIGNAS +# endif # if __has_extension(cxx_constexpr) # define MOZ_HAVE_CXX11_CONSTEXPR # endif -@@ -85,6 +88,9 @@ +@@ -75,6 +78,9 @@ # endif #elif defined(__GNUC__) # if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L +# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0) +# define MOZ_HAVE_CXX11_ALIGNAS +# endif # if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0) # define MOZ_HAVE_CXX11_OVERRIDE # define MOZ_HAVE_CXX11_FINAL final -@@ -102,6 +108,9 @@ - # define MOZ_HAVE_NEVER_INLINE __attribute__((noinline)) +@@ -96,6 +102,7 @@ # define MOZ_HAVE_NORETURN __attribute__((noreturn)) #elif defined(_MSC_VER) -+# if _MSC_VER >= 1800 + # if _MSC_VER >= 1800 +# define MOZ_HAVE_CXX11_ALIGNAS -+# endif + # define MOZ_HAVE_CXX11_DELETE + # endif # if _MSC_VER >= 1700 - # define MOZ_HAVE_CXX11_FINAL final - # else Index: branches/2014Q4/www/libxul/files/patch-bug826985 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug826985 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug826985 (revision 370969) @@ -1,164 +1,166 @@ 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. --- 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 configure.in configure.in index 55e4cd1..76567b3 100644 --- configure.in +++ 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) -@@ -8981,6 +8984,10 @@ elif test "${OS_TARGET}" = "Android"; then - fi - fi - -+if test -n "$MOZ_LIBV4L2_LIBS"; then -+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D use_libv4l2=1" -+fi -+ - if test -n "$MOZ_WEBRTC"; then - AC_MSG_RESULT("generating WebRTC Makefiles...") - +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/Makefile.in media/webrtc/signaling/test/Makefile.in index b483cd1..f1dd1f0 100644 --- media/webrtc/signaling/test/Makefile.in +++ media/webrtc/signaling/test/Makefile.in -@@ -17,6 +17,7 @@ LIBS = \ +@@ -7,6 +7,7 @@ LIBS = \ $(NSPR_LIBS) \ $(NSS_LIBS) \ $(REALTIME_LIBS) \ + $(MOZ_LIBV4L2_LIBS) \ $(DEPTH)/xpcom/glue/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \ $(DEPTH)/media/mtransport/standalone/$(LIB_PREFIX)mtransport_s.$(LIB_SUFFIX) \ $(DEPTH)/media/webrtc/signalingtest/signaling_ecc/$(LIB_PREFIX)ecc.$(LIB_SUFFIX) \ 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 -@@ -26,11 +26,23 @@ +@@ -25,10 +25,21 @@ #else #include #endif +#ifdef HAVE_LIBV4L2 +#include +#endif - #include "ref_count.h" - #include "trace.h" + #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 { - namespace videocapturemodule @@ -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', @@ -49,6 +52,16 @@ }, { # include_internal_video_capture == 1 'conditions': [ ['include_v4l2_video_capture==1', { + 'conditions': [ + ['use_libv4l2==1', { + 'defines': [ + 'HAVE_LIBV4L2', + ], + 'libraries': [ + '-lv4l2', + ], + }], + ], 'include_dirs': [ 'linux', ], diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in index 9c16ffa..1db3794 100644 ---- toolkit/library/Makefile.in -+++ toolkit/library/Makefile.in -@@ -405,6 +405,7 @@ endif +--- toolkit/library/libxul.mk ++++ toolkit/library/libxul.mk +@@ -182,6 +182,10 @@ endif + EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib) - ifdef MOZ_WEBRTC ++ifdef MOZ_LIBV4L2_LIBS +EXTRA_DSO_LDOPTS += $(MOZ_LIBV4L2_LIBS) - ifdef MOZ_PEERCONNECTION - COMPONENT_LIBS += peerconnection - endif ++endif ++ + ifdef MOZ_WEBRTC + ifeq (WINNT,$(OS_TARGET)) + EXTRA_DSO_LDOPTS += \ Index: branches/2014Q4/www/libxul/files/patch-bug847568 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug847568 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-bug847568 (revision 370969) @@ -0,0 +1,208 @@ +# 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 +@@ -77,6 +77,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 +@@ -1145,3 +1145,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 +index ac38f40..87536b7 100644 +--- configure.in ++++ configure.in +@@ -8032,6 +8032,52 @@ 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 >= 0.9.25) ++fi ++ ++AC_SUBST(MOZ_NATIVE_HARFBUZZ) ++AC_SUBST(MOZ_HARFBUZZ_CFLAGS) ++AC_SUBST(MOZ_HARFBUZZ_LIBS) ++ ++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,2,4) ++ #error "Insufficient graphite2 version." ++ #endif ++ ], [], ++ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) ++fi ++ ++AC_SUBST(MOZ_NATIVE_GRAPHITE2) ++AC_SUBST(MOZ_GRAPHITE2_CFLAGS) ++AC_SUBST(MOZ_GRAPHITE2_LIBS) ++ ++dnl ======================================================== + dnl Check for pixman and cairo + dnl ======================================================== + +diff --git content/base/src/moz.build content/base/src/moz.build +index d4f6380..0ee55df 100644 +--- content/base/src/moz.build ++++ content/base/src/moz.build +@@ -179,6 +179,9 @@ SOURCES += [ + 'nsObjectLoadingContent.cpp', + ] + ++if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++ SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']] ++ + EXTRA_COMPONENTS += [ + 'contentAreaDropListener.js', + 'contentAreaDropListener.manifest', +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/Makefile.in gfx/skia/Makefile.in +index ee0efb2..98e169d6f 100644 +--- gfx/skia/Makefile.in ++++ gfx/skia/Makefile.in +@@ -15,6 +15,10 @@ ifeq (qt,$(MOZ_WIDGET_TOOLKIT)) + OS_CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PANGO_CFLAGS) $(CAIRO_FT_CFLAGS) + endif + ++ifdef MOZ_NATIVE_HARFBUZZ ++OS_CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) ++endif ++ + include $(topsrcdir)/config/rules.mk + + ifeq ($(CPU_ARCH)_$(GNU_CC),arm_1) +diff --git gfx/thebes/Makefile.in gfx/thebes/Makefile.in +index 45c36ae..79d32cf 100644 +--- gfx/thebes/Makefile.in ++++ gfx/thebes/Makefile.in +@@ -13,6 +13,14 @@ DEFINES := $(filter-out -DUNICODE,$(DEFINES)) + CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS) + CFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS) + ++ifdef MOZ_NATIVE_GRAPHITE2 ++CXXFLAGS += $(MOZ_GRAPHITE2_CFLAGS) ++endif ++ ++ifdef MOZ_NATIVE_HARFBUZZ ++CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) ++endif ++ + ifeq ($(MOZ_WIDGET_TOOLKIT),android) + CXXFLAGS += $(CAIRO_FT_CFLAGS) + endif +diff --git intl/unicharutil/util/Makefile.in intl/unicharutil/util/Makefile.in +index f6b9f7c..60863f4 100644 +--- intl/unicharutil/util/Makefile.in ++++ intl/unicharutil/util/Makefile.in +@@ -21,3 +21,7 @@ ifdef _MSC_VER + OS_COMPILE_CXXFLAGS += -Zl + OS_COMPILE_CFLAGS += -Zl + endif ++ ++ifdef MOZ_NATIVE_HARFBUZZ ++CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) ++endif +diff --git netwerk/dns/Makefile.in netwerk/dns/Makefile.in +index 1cacbd7..f5d72bb 100644 +--- netwerk/dns/Makefile.in ++++ netwerk/dns/Makefile.in +@@ -5,6 +5,10 @@ + + include $(topsrcdir)/config/rules.mk + ++ifdef MOZ_NATIVE_HARFBUZZ ++CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS) ++endif ++ + # Generate the include file containing compact, static definitions + # for effective TLD data. + etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat +diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk +index 67f0db9..d42137a 100644 +--- toolkit/library/libxul.mk ++++ toolkit/library/libxul.mk +@@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN + EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS) + endif + ++ifdef MOZ_NATIVE_GRAPHITE2 ++EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE2_LIBS) ++endif ++ ++ifdef MOZ_NATIVE_HARFBUZZ ++EXTRA_DSO_LDOPTS += $(MOZ_HARFBUZZ_LIBS) ++endif ++ + ifdef MOZ_DMD + EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,dmd,$(DIST)/lib) + endif Property changes on: branches/2014Q4/www/libxul/files/patch-bug847568 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-bug961264 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug961264 (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-bug961264 (revision 370969) @@ -1,266 +1,266 @@ commit d099acd Author: Trevor Saunders Date: Fri Jan 17 15:08:00 2014 -0800 Bug 961264 - Remove obsolete checks for gcc visibility stuff. --- configure.in | 115 +++------------------------------------------------- js/src/configure.in | 111 ++------------------------------------------------ 2 files changed, 8 insertions(+), 218 deletions(-) diff --git configure.in configure.in index dfb8193..33d71b3 100644 --- configure.in +++ configure.in @@ -2507,118 +2507,15 @@ MOZ_CXX11 AC_LANG_C -dnl Check for .hidden assembler directive and visibility attribute. -dnl Borrowed from glibc configure.in +dnl Setup default hidden visibility and wrapped system headers. dnl =============================================================== if test "$GNU_CC"; then - AC_CACHE_CHECK(for visibility(hidden) attribute, - ac_cv_visibility_hidden, - [cat > conftest.c </dev/null 2>&1; then - if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then - ac_cv_visibility_hidden=yes - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_hidden" = "yes"; then - AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) - - AC_CACHE_CHECK(for visibility(default) attribute, - ac_cv_visibility_default, - [cat > conftest.c </dev/null 2>&1; then - if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then - ac_cv_visibility_default=yes - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_default" = "yes"; then - AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) - - AC_CACHE_CHECK(for visibility pragma support, - ac_cv_visibility_pragma, - [cat > conftest.c </dev/null 2>&1; then - if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then - if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then - ac_cv_visibility_pragma=yes - fi - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_pragma" = "yes"; then - AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905), - ac_cv_have_visibility_class_bug, - [cat > conftest.c < /dev/null 2>&1 ; then - ac_cv_have_visibility_class_bug=yes - else - if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then - ac_cv_have_visibility_class_bug=yes - fi - fi - rm -rf conftest.{c,S} - ]) - - AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297), - ac_cv_have_visibility_builtin_bug, - [cat > conftest.c < -#pragma GCC visibility pop - -__attribute__ ((visibility ("default"))) void Func() { - char c[[100]]; - memset(c, 0, sizeof(c)); -} -EOF - ac_cv_have_visibility_builtin_bug=no - if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then - ac_cv_have_visibility_builtin_bug=yes - else - if test `grep -c "@PLT" conftest.S` = 0; then - ac_cv_visibility_builtin_bug=yes - fi - fi - rm -f conftest.{c,S} - ]) - if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \ - "$ac_cv_have_visibility_class_bug" = "no"; then - VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' - WRAP_SYSTEM_INCLUDES=1 - STL_FLAGS='-I$(DIST)/stl_wrappers' - WRAP_STL_INCLUDES=1 - else - VISIBILITY_FLAGS='-fvisibility=hidden' - fi # have visibility pragma bug - fi # have visibility pragma - fi # have visibility(default) attribute - fi # have visibility(hidden) attribute + AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) + AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) + VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' + WRAP_SYSTEM_INCLUDES=1 + STL_FLAGS='-I$(DIST)/stl_wrappers' + WRAP_STL_INCLUDES=1 fi # GNU_CC # visibility hidden flag for Sun Studio on Solaris diff --git js/src/configure.in js/src/configure.in index bddd46d..d4b522e 100644 --- js/src/configure.in +++ js/src/configure.in -@@ -2348,116 +2348,13 @@ fi +@@ -2077,116 +2077,13 @@ AC_LANG_CPLUSPLUS - AC_LANG_C + MOZ_CXX11 -dnl Check for .hidden assembler directive and visibility attribute. -dnl Borrowed from glibc configure.in +dnl Setup default hidden visibility and wrapped system headers. dnl =============================================================== if test "$GNU_CC"; then - AC_CACHE_CHECK(for visibility(hidden) attribute, - ac_cv_visibility_hidden, - [cat > conftest.c </dev/null 2>&1; then - if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then - ac_cv_visibility_hidden=yes - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_hidden" = "yes"; then - AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) - - AC_CACHE_CHECK(for visibility(default) attribute, - ac_cv_visibility_default, - [cat > conftest.c </dev/null 2>&1; then - if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then - ac_cv_visibility_default=yes - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_default" = "yes"; then - AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) - - AC_CACHE_CHECK(for visibility pragma support, - ac_cv_visibility_pragma, - [cat > conftest.c </dev/null 2>&1; then - if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then - if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then - ac_cv_visibility_pragma=yes - fi - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_pragma" = "yes"; then - AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905), - ac_cv_have_visibility_class_bug, - [cat > conftest.c < /dev/null 2>&1 ; then - ac_cv_have_visibility_class_bug=yes - else - if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then - ac_cv_have_visibility_class_bug=yes - fi - fi - rm -rf conftest.{c,S} - ]) - - AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297), - ac_cv_have_visibility_builtin_bug, - [cat > conftest.c < -#pragma GCC visibility pop - -__attribute__ ((visibility ("default"))) void Func() { - char c[[100]]; - memset(c, 0, sizeof(c)); -} -EOF - ac_cv_have_visibility_builtin_bug=no - if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then - ac_cv_have_visibility_builtin_bug=yes - else - if test `grep -c "@PLT" conftest.S` = 0; then - ac_cv_visibility_builtin_bug=yes - fi - fi - rm -f conftest.{c,S} - ]) - if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \ - "$ac_cv_have_visibility_class_bug" = "no"; then -- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers_js -include $(topsrcdir)/config/gcc_hidden.h' +- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' - WRAP_SYSTEM_INCLUDES=1 - else - VISIBILITY_FLAGS='-fvisibility=hidden' - fi # have visibility pragma bug - fi # have visibility pragma - fi # have visibility(default) attribute - fi # have visibility(hidden) attribute + AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) + AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) -+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers_js -include $(topsrcdir)/config/gcc_hidden.h' ++ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' + WRAP_SYSTEM_INCLUDES=1 fi # GNU_CC # visibility hidden flag for Sun Studio on Solaris Index: branches/2014Q4/www/libxul/files/patch-bug981348 =================================================================== --- branches/2014Q4/www/libxul/files/patch-bug981348 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-bug981348 (revision 370969) @@ -0,0 +1,41 @@ +diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp +index 4b21361..cb3be32 100644 +--- dom/system/OSFileConstants.cpp ++++ dom/system/OSFileConstants.cpp +@@ -596,7 +596,7 @@ static const dom::ConstantSpec gLibcProperties[] = + + { "OSFILE_SIZEOF_STATVFS", INT_TO_JSVAL(sizeof (struct statvfs)) }, + +- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_bsize)) }, ++ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_frsize)) }, + { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", INT_TO_JSVAL(offsetof (struct statvfs, f_bavail)) }, + + #endif // defined(XP_UNIX) +diff --git toolkit/components/osfile/modules/osfile_unix_back.jsm toolkit/components/osfile/modules/osfile_unix_back.jsm +index b59fca4..0cf220b 100644 +--- toolkit/components/osfile/modules/osfile_unix_back.jsm ++++ toolkit/components/osfile/modules/osfile_unix_back.jsm +@@ -228,8 +228,8 @@ + let statvfs = new SharedAll.HollowStructure("statvfs", + Const.OSFILE_SIZEOF_STATVFS); + +- statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BSIZE, +- "f_bsize", Type.unsigned_long.implementation); ++ statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_FRSIZE, ++ "f_frsize", Type.unsigned_long.implementation); + statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BAVAIL, + "f_bavail", Type.fsblkcnt_t.implementation); + +diff --git toolkit/components/osfile/modules/osfile_unix_front.jsm toolkit/components/osfile/modules/osfile_unix_front.jsm +index 99e5e9b..de642c5 100644 +--- toolkit/components/osfile/modules/osfile_unix_front.jsm ++++ toolkit/components/osfile/modules/osfile_unix_front.jsm +@@ -373,7 +373,7 @@ + throw_on_negative("statvfs", UnixFile.statvfs(sourcePath, fileSystemInfoPtr)); + + let bytes = new Type.uint64_t.implementation( +- fileSystemInfo.f_bsize * fileSystemInfo.f_bavail); ++ fileSystemInfo.f_frsize * fileSystemInfo.f_bavail); + + return bytes.value; + }; Property changes on: branches/2014Q4/www/libxul/files/patch-bug981348 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-config-baseconfig.mk =================================================================== --- branches/2014Q4/www/libxul/files/patch-config-baseconfig.mk (revision 370968) +++ branches/2014Q4/www/libxul/files/patch-config-baseconfig.mk (revision 370969) @@ -1,16 +1,14 @@ --- config/baseconfig.mk~ +++ config/baseconfig.mk -@@ -1,9 +1,9 @@ - INCLUDED_AUTOCONF_MK = 1 - +@@ -1,7 +1,7 @@ -includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) +includedir := $(includedir)/%%MOZILLA%% +idldir = $(datadir)/idl/%%MOZILLA%% +installdir = $(libdir)/%%MOZILLA%% +sdkdir = $(libdir)/%%MOZILLA%% - DIST = $(DEPTH)/dist - - # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't + ifndef TOP_DIST + TOP_DIST = dist + endif Index: branches/2014Q4/www/libxul/files/patch-toolkit_mozapps_installer_packager_mk =================================================================== --- branches/2014Q4/www/libxul/files/patch-toolkit_mozapps_installer_packager_mk (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-toolkit_mozapps_installer_packager_mk (revision 370969) @@ -0,0 +1,13 @@ +$OpenBSD: patch-toolkit_mozapps_installer_packager_mk,v 1.11 2012/06/11 15:29:56 landry Exp $ +install headers/idl/sdk libs only if xulrunner +--- toolkit/mozapps/installer/packager.mk.orig Fri Jun 1 14:04:20 2012 ++++ toolkit/mozapps/installer/packager.mk Tue Jun 5 07:55:51 2012 +@@ -886,7 +886,7 @@ endif + $(NSINSTALL) -D $(DESTDIR)$(bindir) + $(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME) + ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir) +-ifdef INSTALL_SDK # Here comes the hard part ++ifeq ($(MOZ_APP_NAME),xulrunner) + $(NSINSTALL) -D $(DESTDIR)$(includedir) + (cd $(DIST)/include && tar $(TAR_CREATE_FLAGS) - .) | \ + (cd $(DESTDIR)$(includedir) && tar -xf -) Property changes on: branches/2014Q4/www/libxul/files/patch-toolkit_mozapps_installer_packager_mk ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/libxul/files/patch-z-bug517422 =================================================================== --- branches/2014Q4/www/libxul/files/patch-z-bug517422 (nonexistent) +++ branches/2014Q4/www/libxul/files/patch-z-bug517422 (revision 370969) @@ -0,0 +1,492 @@ +# 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 +@@ -79,6 +79,13 @@ 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_OPUS=$(MOZ_NATIVE_OPUS) \ ++ -DMOZ_NATIVE_SPEEX=$(MOZ_NATIVE_SPEEX) \ ++ -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 +@@ -15,13 +15,19 @@ if CONFIG['MOZ_UPDATER']: + if not CONFIG['MOZ_NATIVE_BZ2']: + external_dirs += ['modules/libbz2'] + +-if CONFIG['MOZ_VORBIS']: ++if not CONFIG['MOZ_NATIVE_OGG']: ++ external_dirs += ['media/libogg'] ++ ++if not CONFIG['MOZ_NATIVE_THEORA']: ++ external_dirs += ['media/libtheora'] ++ ++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 CONFIG['MOZ_OPUS']: ++if CONFIG['MOZ_OPUS'] and not CONFIG['MOZ_NATIVE_OPUS']: + external_dirs += ['media/libopus'] + + if CONFIG['MOZ_WEBM']: +@@ -36,13 +42,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']: + if not CONFIG['MOZ_NATIVE_PNG']: + external_dirs += ['media/libpng'] + ++if not CONFIG['MOZ_NATIVE_SPEEX']: ++ external_dirs += ['media/libspeex_resampler'] ++ ++if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++ external_dirs += ['media/libsoundtouch'] ++ + external_dirs += [ + 'media/kiss_fft', + 'media/libcubeb', +- 'media/libogg', +- 'media/libtheora', +- 'media/libspeex_resampler', +- 'media/libsoundtouch', + ] + + PARALLEL_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 +@@ -1050,8 +1050,6 @@ X11/Xutil.h + xpt_struct.h + xpt_xdr.h + zmouse.h +-speex/speex_resampler.h +-soundtouch/SoundTouch.h + #if MOZ_NATIVE_PNG==1 + png.h + #endif +@@ -1119,6 +1117,8 @@ ogg/ogg.h + ogg/os_types.h + nestegg/nestegg.h + cubeb/cubeb.h ++speex/speex_resampler.h ++soundtouch/SoundTouch.h + #endif + gst/gst.h + gst/app/gstappsink.h +@@ -1155,3 +1155,29 @@ 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 ++#if MOZ_NATIVE_OPUS==1 ++opus.h ++opus_multistream.h ++opus/opus.h ++opus/opus_multistream.h ++#endif ++#if MOZ_NATIVE_SPEEX==1 ++speex/speex_resampler.h ++#endif ++#if MOZ_NATIVE_SOUNDTOUCH==1 ++soundtouch/SoundTouch.h ++#endif +diff --git configure.in configure.in +index 87db361..7947626 100644 +--- configure.in ++++ configure.in +@@ -5211,6 +5211,63 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then + 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) ++AC_SUBST(MOZ_OGG_CFLAGS) ++AC_SUBST(MOZ_OGG_LIBS) ++ ++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.4) ++fi ++ ++AC_SUBST(MOZ_NATIVE_VORBIS) ++AC_SUBST(MOZ_VORBIS_CFLAGS) ++AC_SUBST(MOZ_VORBIS_LIBS) ++ ++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) ++AC_SUBST(MOZ_TREMOR_CFLAGS) ++AC_SUBST(MOZ_TREMOR_LIBS) ++ ++dnl ======================================================== + dnl = Disable Opus audio codec support + dnl ======================================================== + MOZ_ARG_DISABLE_BOOL(opus, +@@ -5219,6 +5274,97 @@ MOZ_ARG_DISABLE_BOOL(opus, + MOZ_OPUS=1) + + dnl ======================================================== ++dnl Check for libopus ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-opus, ++[ --with-system-opus Use system libopus (located with pkgconfig)], ++MOZ_NATIVE_OPUS=1, ++MOZ_NATIVE_OPUS=) ++ ++if test -n "$MOZ_NATIVE_OPUS"; then ++ PKG_CHECK_MODULES(MOZ_OPUS, opus >= 1.1) ++else ++ MOZ_OPUS_CFLAGS='-I$(topsrcdir)/media/libopus/include' ++fi ++ ++AC_SUBST(MOZ_NATIVE_OPUS) ++AC_SUBST(MOZ_OPUS_CFLAGS) ++AC_SUBST(MOZ_OPUS_LIBS) ++ ++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) ++AC_SUBST(MOZ_THEORA_CFLAGS) ++AC_SUBST(MOZ_THEORA_LIBS) ++ ++dnl ======================================================== ++dnl Check for libspeex resampler ++dnl ======================================================== ++ ++MOZ_ARG_WITH_BOOL(system-speex, ++[ --with-system-speex Use system libspeex (located with pkgconfig)], ++MOZ_NATIVE_SPEEX=1, ++MOZ_NATIVE_SPEEX=) ++ ++if test -n "$MOZ_NATIVE_SPEEX"; then ++ PKG_CHECK_MODULES(MOZ_SPEEX, speexdsp >= 1.2) ++fi ++ ++AC_SUBST(MOZ_NATIVE_SPEEX) ++AC_SUBST(MOZ_SPEEX_CFLAGS) ++AC_SUBST(MOZ_SPEEX_LIBS) ++ ++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.8.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 ++ ++AC_SUBST(MOZ_NATIVE_SOUNDTOUCH) ++AC_SUBST(MOZ_SOUNDTOUCH_CFLAGS) ++AC_SUBST(MOZ_SOUNDTOUCH_LIBS) ++ ++dnl ======================================================== + dnl = Disable VP8 decoder support + dnl ======================================================== + MOZ_ARG_DISABLE_BOOL(webm, +diff --git content/media/AudioStream.h content/media/AudioStream.h +index 085676d..00c54fb 100644 +--- content/media/AudioStream.h ++++ content/media/AudioStream.h +@@ -26,7 +26,7 @@ public: + }; + + namespace soundtouch { +-class SoundTouch; ++class MOZ_IMPORT_API SoundTouch; + } + + namespace mozilla { +diff --git content/media/Makefile.in content/media/Makefile.in +index fd34449..c6c42c8 100644 +--- content/media/Makefile.in ++++ content/media/Makefile.in +@@ -6,3 +6,31 @@ include $(topsrcdir)/config/rules.mk + + CFLAGS += $(GSTREAMER_CFLAGS) + CXXFLAGS += $(GSTREAMER_CFLAGS) ++ ++ifdef MOZ_NATIVE_OGG ++CXXFLAGS += $(MOZ_OGG_CFLAGS) ++endif ++ ++ifdef MOZ_NATIVE_THEORA ++CXXFLAGS += $(MOZ_THEORA_CFLAGS) ++endif ++ ++ifdef MOZ_NATIVE_VORBIS ++CXXFLAGS += $(MOZ_VORBIS_CFLAGS) ++endif ++ ++ifdef MOZ_NATIVE_TREMOR ++CXXFLAGS += $(MOZ_TREMOR_CFLAGS) ++endif ++ ++ifdef MOZ_NATIVE_OPUS ++CXXFLAGS += $(MOZ_OPUS_CFLAGS) ++endif ++ ++ifdef MOZ_NATIVE_SPEEX ++CXXFLAGS += $(MOZ_SPEEX_CFLAGS) ++endif ++ ++ifdef MOZ_NATIVE_SOUNDTOUCH ++CXXFLAGS += $(MOZ_SOUNDTOUCH_CFLAGS) ++endif +diff --git media/libcubeb/src/Makefile.in media/libcubeb/src/Makefile.in +index 4c14494..1cb98e2 100644 +--- media/libcubeb/src/Makefile.in ++++ media/libcubeb/src/Makefile.in +@@ -9,3 +9,7 @@ CFLAGS += \ + $(MOZ_ALSA_CFLAGS) \ + $(MOZ_PULSEAUDIO_CFLAGS) \ + $(NULL) ++ ++ifdef MOZ_NATIVE_SPEEX ++CFLAGS += $(MOZ_SPEEX_CFLAGS) ++endif +diff --git media/libtheora/Makefile.in media/libtheora/Makefile.in +new file mode 100644 +index 0000000..1f02dc0 +--- /dev/null ++++ media/libtheora/Makefile.in +@@ -0,0 +1,9 @@ ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License, v. 2.0. If a copy of the MPL was not distributed with this ++# file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ ++include $(topsrcdir)/config/rules.mk ++ ++ifdef MOZ_NATIVE_OGG ++CFLAGS += $(MOZ_OGG_CFLAGS) ++endif +diff --git media/libtremor/Makefile.in media/libtremor/Makefile.in +new file mode 100644 +index 0000000..1f02dc0 +--- /dev/null ++++ media/libtremor/Makefile.in +@@ -0,0 +1,9 @@ ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License, v. 2.0. If a copy of the MPL was not distributed with this ++# file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ ++include $(topsrcdir)/config/rules.mk ++ ++ifdef MOZ_NATIVE_OGG ++CFLAGS += $(MOZ_OGG_CFLAGS) ++endif +diff --git media/libvorbis/Makefile.in media/libvorbis/Makefile.in +new file mode 100644 +index 0000000..1f02dc0 +--- /dev/null ++++ media/libvorbis/Makefile.in +@@ -0,0 +1,9 @@ ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License, v. 2.0. If a copy of the MPL was not distributed with this ++# file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ ++include $(topsrcdir)/config/rules.mk ++ ++ifdef MOZ_NATIVE_OGG ++CFLAGS += $(MOZ_OGG_CFLAGS) ++endif +diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in +index bbc971c..6ed7e41 100644 +--- media/webrtc/signaling/test/Makefile.in ++++ media/webrtc/signaling/test/Makefile.in +@@ -48,6 +48,12 @@ LIBS += \ + $(NULL) + endif + ++ifdef MOZ_NATIVE_OPUS ++LIBS += \ ++ $(MOZ_OPUS_LIBS) \ ++ $(NULL) ++endif ++ + ifdef MOZ_NATIVE_LIBVPX + LIBS += \ + $(MOZ_LIBVPX_LIBS) \ +diff --git media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi +index 00e77e7..55f48ab 100644 +--- media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi ++++ media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi +@@ -14,9 +14,9 @@ + 'conditions': [ + ['build_with_mozilla==1', { + # Mozilla provides its own build of the opus library. +- 'include_dirs': [ +- '/media/libopus/include', +- ] ++ 'cflags_mozilla': [ ++ '$(MOZ_OPUS_CFLAGS)', ++ ], + }, { + 'dependencies': [ + '<(DEPTH)/third_party/opus/opus.gyp:opus' +diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk +index d42137a..695e75a8 100644 +--- toolkit/library/libxul.mk ++++ toolkit/library/libxul.mk +@@ -77,6 +77,34 @@ ifdef MOZ_NATIVE_HUNSPELL + EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS) + endif + ++ifdef MOZ_NATIVE_OGG ++EXTRA_DSO_LDOPTS += $(MOZ_OGG_LIBS) ++endif ++ ++ifdef MOZ_NATIVE_THEORA ++EXTRA_DSO_LDOPTS += $(MOZ_THEORA_LIBS) ++endif ++ ++ifdef MOZ_NATIVE_VORBIS ++EXTRA_DSO_LDOPTS += $(MOZ_VORBIS_LIBS) ++endif ++ ++ifdef MOZ_NATIVE_TREMOR ++EXTRA_DSO_LDOPTS += $(MOZ_TREMOR_LIBS) ++endif ++ ++ifdef MOZ_NATIVE_OPUS ++EXTRA_DSO_LDOPTS += $(MOZ_OPUS_LIBS) ++endif ++ ++ifdef MOZ_NATIVE_SPEEX ++EXTRA_DSO_LDOPTS += $(MOZ_SPEEX_LIBS) ++endif ++ ++ifdef MOZ_NATIVE_SOUNDTOUCH ++EXTRA_DSO_LDOPTS += $(MOZ_SOUNDTOUCH_LIBS) ++endif ++ + ifdef MOZ_NATIVE_LIBEVENT + EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS) + endif +diff --git xpcom/build/nsXPComInit.cpp xpcom/build/nsXPComInit.cpp +index 2cf281e..6d7af0e 100644 +--- xpcom/build/nsXPComInit.cpp ++++ xpcom/build/nsXPComInit.cpp +@@ -130,7 +130,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 +@@ -571,11 +573,13 @@ NS_InitXPCOM2(nsIServiceManager* *result, + // 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. Property changes on: branches/2014Q4/www/libxul/files/patch-z-bug517422 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2014Q4/www/linux-firefox/Makefile =================================================================== --- branches/2014Q4/www/linux-firefox/Makefile (revision 370968) +++ branches/2014Q4/www/linux-firefox/Makefile (revision 370969) @@ -1,21 +1,21 @@ # Created by: voisine # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 32.0.3 +DISTVERSION= 33.0 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/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/2014Q4/www/linux-firefox/distinfo =================================================================== --- branches/2014Q4/www/linux-firefox/distinfo (revision 370968) +++ branches/2014Q4/www/linux-firefox/distinfo (revision 370969) @@ -1,6 +1,6 @@ -SHA256 (firefox-32.0.3.tar.bz2) = 265ae5df1a5f2edeae8d08bdcde45df0920f6fb0ad70385371d06ff890017982 -SIZE (firefox-32.0.3.tar.bz2) = 42239723 +SHA256 (firefox-33.0.tar.bz2) = 56ba7069dcd2f026e7a21867ab71e1fce462031d3fea77d180ee922eb1c96239 +SIZE (firefox-33.0.tar.bz2) = 43261598 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/2014Q4/www/linux-firefox/pkg-plist =================================================================== --- branches/2014Q4/www/linux-firefox/pkg-plist (revision 370968) +++ branches/2014Q4/www/linux-firefox/pkg-plist (revision 370969) @@ -1,92 +1,74 @@ bin/%%APP_NAME%% share/applications/%%APP_NAME%%.desktop lib/%%APP_NAME%%/Throbber-small.gif lib/%%APP_NAME%%/application.ini lib/%%APP_NAME%%/browser/blocklist.xml lib/%%APP_NAME%%/browser/chrome.manifest lib/%%APP_NAME%%/browser/chrome/icons/default/default16.png lib/%%APP_NAME%%/browser/chrome/icons/default/default32.png lib/%%APP_NAME%%/browser/chrome/icons/default/default48.png lib/%%APP_NAME%%/browser/components/components.manifest lib/%%APP_NAME%%/browser/components/libbrowsercomps.so lib/%%APP_NAME%%/browser/crashreporter-override.ini lib/%%APP_NAME%%/browser/defaults/preferences/browser-prefs.js lib/%%APP_NAME%%/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png lib/%%APP_NAME%%/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf lib/%%APP_NAME%%/browser/icons/mozicon128.png lib/%%APP_NAME%%/browser/omni.ja lib/%%APP_NAME%%/browser/plugins lib/%%APP_NAME%%/browser/searchplugins/amazondotcom.xml lib/%%APP_NAME%%/browser/searchplugins/bing.xml lib/%%APP_NAME%%/browser/searchplugins/eBay.xml lib/%%APP_NAME%%/browser/searchplugins/google.xml lib/%%APP_NAME%%/browser/searchplugins/twitter.xml lib/%%APP_NAME%%/browser/searchplugins/wikipedia.xml lib/%%APP_NAME%%/browser/searchplugins/yahoo.xml lib/%%APP_NAME%%/chrome.manifest lib/%%APP_NAME%%/components/components.manifest lib/%%APP_NAME%%/components/libdbusservice.so lib/%%APP_NAME%%/components/libmozgnome.so lib/%%APP_NAME%%/crashreporter lib/%%APP_NAME%%/crashreporter.ini lib/%%APP_NAME%%/defaults/pref/channel-prefs.js lib/%%APP_NAME%%/dependentlibs.list lib/%%APP_NAME%%/dictionaries/en-US.aff lib/%%APP_NAME%%/dictionaries/en-US.dic lib/%%APP_NAME%%/firefox lib/%%APP_NAME%%/firefox-bin lib/%%APP_NAME%%/icons/updater.png lib/%%APP_NAME%%/libfreebl3.chk lib/%%APP_NAME%%/libfreebl3.so %%GTK218%%lib/%%APP_NAME%%/libgdk-x11-2.0.so.0 %%GTK218%%lib/%%APP_NAME%%/libgio-2.0.so.0 %%GTK218%%lib/%%APP_NAME%%/libglib-2.0.so.0 %%GTK218%%lib/%%APP_NAME%%/libgtk-x11-2.0.so.0 lib/%%APP_NAME%%/libmozalloc.so lib/%%APP_NAME%%/libmozsqlite3.so lib/%%APP_NAME%%/libnspr4.so lib/%%APP_NAME%%/libnss3.so lib/%%APP_NAME%%/libnssckbi.so lib/%%APP_NAME%%/libnssdbm3.chk lib/%%APP_NAME%%/libnssdbm3.so lib/%%APP_NAME%%/libnssutil3.so lib/%%APP_NAME%%/libplc4.so lib/%%APP_NAME%%/libplds4.so lib/%%APP_NAME%%/libsmime3.so lib/%%APP_NAME%%/libsoftokn3.chk lib/%%APP_NAME%%/libsoftokn3.so lib/%%APP_NAME%%/libssl3.so lib/%%APP_NAME%%/libxul.so lib/%%APP_NAME%%/mozilla-xremote-client lib/%%APP_NAME%%/omni.ja lib/%%APP_NAME%%/platform.ini lib/%%APP_NAME%%/plugin-container lib/%%APP_NAME%%/precomplete lib/%%APP_NAME%%/removed-files lib/%%APP_NAME%%/run-mozilla.sh lib/%%APP_NAME%%/update-settings.ini lib/%%APP_NAME%%/updater lib/%%APP_NAME%%/updater.ini lib/%%APP_NAME%%/webapprt-stub lib/%%APP_NAME%%/webapprt/omni.ja lib/%%APP_NAME%%/webapprt/webapprt.ini @exec /bin/cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%APP_NAME%%/ %D/lib/%%APP_NAME%%/browser/extensions/ 2>/dev/null || true @unexec /usr/bin/find %D/lib/%%APP_NAME%%/browser/extensions/ -depth 1 -type l -delete 2>/dev/null || true -@dirrm lib/%%APP_NAME%%/browser/chrome/icons/default -@dirrm lib/%%APP_NAME%%/browser/chrome/icons -@dirrm lib/%%APP_NAME%%/browser/chrome -@dirrm lib/%%APP_NAME%%/browser/components -@dirrm lib/%%APP_NAME%%/browser/defaults/preferences -@dirrm lib/%%APP_NAME%%/browser/defaults -@dirrm lib/%%APP_NAME%%/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} -@dirrm lib/%%APP_NAME%%/browser/extensions -@dirrm lib/%%APP_NAME%%/browser/icons -@dirrm lib/%%APP_NAME%%/browser/searchplugins -@dirrm lib/%%APP_NAME%%/browser -@dirrm lib/%%APP_NAME%%/components -@dirrm lib/%%APP_NAME%%/defaults/pref -@dirrm lib/%%APP_NAME%%/defaults -@dirrm lib/%%APP_NAME%%/dictionaries -@dirrm lib/%%APP_NAME%%/icons -@dirrm lib/%%APP_NAME%%/webapprt -@dirrm lib/%%APP_NAME%% Index: branches/2014Q4/www/linux-seamonkey/Makefile.common =================================================================== --- branches/2014Q4/www/linux-seamonkey/Makefile.common (revision 370968) +++ branches/2014Q4/www/linux-seamonkey/Makefile.common (revision 370969) @@ -1,141 +1,138 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ .if defined(OVERRIDE_LINUX_NONBASE_PORTS) && \ ${OVERRIDE_LINUX_NONBASE_PORTS} != "f10" .undef WANT_GTK218 .endif CATEGORIES+= linux MASTER_SITES?= MOZILLA/${PORTNAME}/releases/${PORTVERSION}esr/linux-i686/en-US PKGNAMEPREFIX?= linux- .if defined(WANT_GTK218) MASTER_SITES+= https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/12/Everything/i386/os/Packages/:f12 DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ glib2-2.22.2-2.fc12.i686.rpm:f12 \ gtk2-2.18.3-19.fc12.i686.rpm:f12 GTK218_FILES= lib/libgio-2.0.so.0 \ lib/libglib-2.0.so.0 \ usr/lib/libgdk-x11-2.0.so.0 \ usr/lib/libgtk-x11-2.0.so.0 .endif USES+= cpe CPE_VENDOR?= mozilla CPE_TARGET_SW?= linux NO_BUILD= yes ONLY_FOR_ARCHS= i386 amd64 APP_NAME= ${PKGBASE} BIN_NAME?= ${PORTNAME} USE_LINUX= yes -USE_LINUX_APPS+= alsalib alsa-plugins-oss atk dbusglib dbuslibs \ - fontconfig gtk2 hicontheme pango +USE_LINUX_APPS+=alsalib alsa-plugins-oss atk dbusglib dbuslibs \ + fontconfig gtk2 hicontheme pango WRKSRC?= ${WRKDIR}/${BIN_NAME} FDIR= ${STAGEDIR}${PREFIX}/lib/${APP_NAME} COMMON_DIR= ${.CURDIR}/../../www/linux-seamonkey APP_ENV+= MOZ_CRASHREPORTER_DISABLE=1 PLIST_SUB+= APP_NAME=${APP_NAME} SUB_LIST+= APP_NAME=${APP_NAME} SUB_FILES= ${APP_NAME}.desktop PREFS_FILE?= ${WRKSRC}/defaults/pref/browser-prefs.js .if defined(PKGNAMESUFFIX) && ${PKGNAMESUFFIX:M*devel*} DESKTOP_SUFFIX?= (Linux, devel) .endif DESKTOP_SUFFIX?= (Linux) .if defined(WANT_GTK218) PLIST_SUB+= GTK218="" .else PLIST_SUB+= GTK218="@comment " .endif _A= >> ${TMPPLIST} _Q= 2>/dev/null || true .if !target(post-extract) post-extract: @${RM} -rf ${WRKSRC}/updates - @${MKDIR} ${WRKSRC}/${APP_SUBDIR}extensions @${LN} -sf ${LOCALBASE}/lib/browser_plugins/symlinks/${APP_NAME} \ ${WRKSRC}/${APP_SUBDIR}plugins . if defined(WANT_GTK218) . for f in ${GTK218_FILES} @${CP} -p ${WRKDIR}/${f} ${WRKSRC} @${ECHO_CMD} ${f:T} >>${WRKSRC}/dependentlibs.list . endfor @${REINPLACE_CMD} -i '' '/libxul/ { h; d; }; $$G' \ ${WRKSRC}/dependentlibs.list . endif .endif .if !target(post-patch) post-patch: @${MKDIR} ${PREFS_FILE:H} - # empty port preferences - @${DO_NADA} >>${PREFS_FILE} + # disable SSL 3.0 per bug 1076983 + ${ECHO} 'pref("security.tls.version.min", 1);' >> ${PREFS_FILE} .endif .if !target(do-install) do-install: @${INSTALL_DATA} ${WRKDIR}/${APP_NAME}.desktop ${STAGEDIR}${PREFIX}/share/applications/ @${CP} -pR ${WRKSRC}/ ${FDIR}/ @${PRINTF} '#! /bin/sh\n${APP_ENV} \ ${PREFIX}/lib/${APP_NAME}/${BIN_NAME} "$$@"\n' \ >>${STAGEDIR}${PREFIX}/bin/${APP_NAME} @${CHMOD} +x ${STAGEDIR}${PREFIX}/bin/${APP_NAME} @${CP} -R ${LOCALBASE}/lib/xpi/symlinks/${APP_NAME}/ \ ${FDIR}/${APP_SUBDIR}extensions/ ${_Q} .endif # Keep empty directories with pkg_* tools .if !target(post-extract-script) post-extract-script: @if [ "${PKG_BIN:T}" != "pkg-static" ]; then \ for d in $$(${FIND} ${WRKSRC} -type d -empty); do \ ${TOUCH} $$d/.keep_me; \ ${ECHO_CMD} lib/${APP_NAME}/$${d#${WRKSRC}/}/.keep_me \ >> ${WRKDIR}/.PLIST.opkg; \ done; \ fi .endif .if !target(post-install-script) post-install-script: @if [ -f ${WRKDIR}/.PLIST.opkg ]; then \ ${CAT} ${TMPPLIST} >> ${WRKDIR}/.PLIST.opkg; \ ${MV} ${WRKDIR}/.PLIST.opkg ${TMPPLIST}; \ fi .endif # Maintainer section create-plist: build ${ECHO_CMD} bin/%%APP_NAME%% > ${PLIST} ${ECHO_CMD} share/applications/%%APP_NAME%%.desktop >> ${PLIST} cd ${WRKSRC} && ${FIND} -s . -type f -or -type l | \ ${SED} -e "s#^\.#lib/%%APP_NAME%%#" | ${SORT} >> ${PLIST} ${ECHO_CMD} '@exec ${CP} -R %%LOCALBASE%%/lib/xpi/symlinks/%%APP_NAME%%/ \ %D/lib/%%APP_NAME%%/${APP_SUBDIR}extensions/ ${_Q}' >> ${PLIST} ${ECHO_CMD} '@unexec ${FIND} %D/lib/%%APP_NAME%%/${APP_SUBDIR}extensions/ \ -depth 1 -type l -delete ${_Q}' >> ${PLIST} - cd ${WRKSRC} && ${FIND} -sd . -type d | \ - ${SED} -e "s#^\.#@dirrm lib/%%APP_NAME%%#" >> ${PLIST} .if defined(WANT_GTK218) . for f in ${GTK218_FILES} ${REINPLACE_CMD} -i '' '/${f:T}/s/^/%%GTK218%%/' ${PLIST} . endfor .endif snatch-desktop: ${SED} -E -e 's/${PORTNAME}/${APP_NAME}/' \ -e "s,@MOZILLA_NAME@,$$(echo ${PORTNAME} | ${SED} 's/\b./\u&/g')," \ -e 's/@MOZILLA@|%%MOZILLA%%/${APP_NAME}/' \ -e 's/^(Name.*=.+)$$/\1 ${DESKTOP_SUFFIX}/' \ -e 's/^(GenericName.*=.+)$$/\1 ${DESKTOP_SUFFIX}/' \ -e 's!^Icon=.*$$!Icon=%%PREFIX%%/lib/%%APP_NAME%%/chrome/icons/default/default.xpm!' \ ${PORTSDIR}/${PKGCATEGORY}/${PORTNAME}/files/${PORTNAME}.desktop.in > \ ${FILESDIR}/${APP_NAME}.desktop.in Index: branches/2014Q4/www/xpi-adblock/Makefile.xpi =================================================================== --- branches/2014Q4/www/xpi-adblock/Makefile.xpi (revision 370968) +++ branches/2014Q4/www/xpi-adblock/Makefile.xpi (revision 370969) @@ -1,225 +1,214 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ # XPI_ID - Extension id, might be in {12345-...} or dev@org format # XPI_NUM - Extension number, as in addons.mozilla.org URL # XPI_FILES - List of files in xpi archive. This is used to produce # PLIST_FILES. XPI_FILES can be generated by xpi-gen, but be # sure to put chrome.manifest in ${FILESDIR} before that if you # need it. -# XPI_DIRS - List of directories in xpi archive. This is used to produce -# PLIST_DIRS. # XPI_DISTNAME - The name of distribution # Default: ${PORTNAME} # PORTNAME, PORTVERSION, DISTVERSIONSUFFIX, CATEGORIES, MAINTAINER, COMMENT # - These should all be set manually for port to be functional. See # ${PORTSDIR}/Mk/bsd.port.mk for details. # MASTER_SITES - This should be set if port is unavailable at the default site. # Default: ${MASTER_SITE_MOZILLA} # MASTER_SITE_SUBDIR # - Default: extensions/${PORTNAME} # LATEST_LINK - Default: ${PKGBASE:S/_//g} # XPI_LIBDIR - Name of the directory to install extensions in. # Default: ${PREFIX}/lib/xpi # XPI_XPIDIR - Name of the directory to install extension's files in. # Default: ${XPI_LIBDIR}/${XPI_ID} # USE_XPI - If set, the port installs one or more xpi extensions. # If this is set to a list of apps (wildcards possible) the # extensions will be installed for them only. # WITH_XPI - A user-tunable variable, determines which apps should # extension be made available for. Can be set to a list of # apps, same as USE_XPI, and/or to "ext:app[,app,app,...]" tuples. # ext should be a portname. If ext starts and ends with a slash # (`/'), it is treated as an extended regular expression (see # re_format(7)). Right of the colon should be a list of apps in # the same format as USE_XPI, but comma- instead of whitespace- # delimited. If no matching tuples for an extension are found, # WITH_XPI is scanned for non tuple-records which are then treated # as a USE_XPI list. If several tuples match, the last non-regexp # one takes precedence, then the last regexp one. # # This Makefile is a beta-version of the new xpi infrastructure. It currently # supports Gecko 1.8+ (Firefox 1.5+). Support for Gecko 1.7x (and Seamonkey 1.0) # may be merged later from Thierry Thomas works. # # A new xpi will require a PORTNAME, PORTVERSION, DISTVERSIONSUFFIX and # CATEGORIES. In case it is not published on the mozilla.org sites, MASTER_SITES # can be redefined. XPI_* vars will also need to be defined manually, which helps # keep the infrastructure simpler. # # Gecko 1.8 xpi engine tries to detect various compatibility issues all by itself. # Thus, xpi's are installed into ${LOCALBASE}/lib/xpi/${XPI_ID} by default and # links are made to all apps which have the engine (firefox, thunderbird, sunbird # thunderbird3, seamonkey and flock at the moment). relink and relink-all targets # can be invoked to refarm the links of a single extensions or all installed # extensions accordingly. # # In case an xpi does not have chrome.manifest, it should be generated manually by # a maintainer and placed in files, where it will be noticed. # # xpi ports do not depend on their master applications. You can install an # extension before the app and run relink when the app is present. .ifndef MASTER_SITES MASTER_SITES?= MOZILLA_EXTENDED .ifdef XPI_NUM MASTER_SITE_SUBDIR?= addons/${XPI_NUM} .endif MASTER_SITE_SUBDIR?= extensions/${XPI_DISTNAME} .endif PKGNAMEPREFIX?= xpi- EXTRACT_SUFX?= .xpi DISTNAME?= ${XPI_DISTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} DIST_SUBDIR?= xpi LATEST_LINK?= ${PKGBASE:S/_//g} NO_BUILD= yes USES+= zip:infozip EXTRACT_AFTER_ARGS= -d ${WRKSRC} XPI_DISTNAME?= ${PORTNAME} XPI_APPS_ALL_WC= *firefox* *thunderbird* *seamonkey* XPI_APPS_ALL= firefox linux-firefox thunderbird linux-thunderbird \ seamonkey linux-seamonkey # kompozer linux-kompozer # Other apps: mango # === Let's process WITH_XPI into WITH_XPI_APPS WITH_XPI_TUPLES= ${WITH_XPI:M*?\:?*} WITH_XPI_NTUPLES= ${WITH_XPI:N*\:*} WITH_XPI_TUPLES_RX= ${WITH_XPI_TUPLES:M/*?*/\:?*} WITH_XPI_TUPLES_WC= ${WITH_XPI_TUPLES:N/*?*/\:?*} WITH_XPI_MATCH?= ${PORTNAME} WITH_XPI_MATCHSTRING?= _=~match~=_ .for tuple_rx in ${WITH_XPI_TUPLES_RX} _rx= ${tuple_rx:C!/(.*)/\:.*!\1!} _apps= ${tuple_rx:C!/.*/\:(.*)!\1!} _testrx=${WITH_XPI_MATCH:C!.*${_rx}.*!${WITH_XPI_MATCHSTRING}!} .if ${_testrx} == ${WITH_XPI_MATCHSTRING} WITH_XPI_APPS:= ${_apps:S/,/ /g} .endif .endfor .for tuple_wc in ${WITH_XPI_TUPLES_WC} _wc= ${tuple_wc:C!(.*)\:.*!\1!} _apps= ${tuple_wc:C!.*\:(.*)!\1!} .if ${_wc} == ${WITH_XPI_MATCH} WITH_XPI_APPS:= ${_apps:S/,/ /g} .endif .endfor .if ${WITH_XPI_NTUPLES} WITH_XPI_APPS?= ${WITH_XPI_NTUPLES} .endif # === WITH_XPI has been processed .ifdef WITH_XPI_APPS USE_XPI= ${WITH_XPI_APPS} .endif .if !defined(USE_XPI) || ${USE_XPI:tu} == "YES" || ${USE_XPI} == "*" USE_XPI= ${XPI_APPS_ALL_WC} .endif .if !defined(XPI_APPS) .for xpi in ${USE_XPI} _xpi:= ${xpi} .if ${_xpi:M*firefox*} XPI_APPS+= ${LOCALBASE}/lib/${xpi}/browser/extensions .else XPI_APPS+= ${LOCALBASE}/lib/${xpi}/extensions .endif .endfor .endif XPI_SLDIRS_ALL= ${XPI_APPS_ALL:S.^.${XPI_SLDIR}/.} XPI_SLDIRS= ${USE_XPI:S.^.${XPI_SLDIR}/.} XPI_LINKFARMS= ${XPI_APPS} ${XPI_SLDIRS} XPI_LIBDIR?= ${PREFIX}/lib/xpi XPI_SLDIR?= ${XPI_LIBDIR}/symlinks .ifndef XPI_DISTNAMES XPI_XPIDIR?= ${XPI_LIBDIR}/${XPI_ID} .endif -XPI_DIRS_TRY= ${XPI_SLDIRS_ALL:S,^${PREFIX}/,,} \ - ${XPI_SLDIR:S,^${PREFIX}/,,} \ - ${XPI_LIBDIR:S,^${PREFIX}/,,} PLIST_SUB+= XPI_LIBDIR="${XPI_LIBDIR:S,^${PREFIX}/,,}" \ XPI_XPIDIR="${XPI_XPIDIR:S,^${PREFIX}/,,}" _TD= ${XPI_XPIDIR:S,^${PREFIX}/,,} _TD_FULL= ${XPI_XPIDIR} _A= >> ${TMPPLIST} _Q= 2>/dev/null || true PLIST_FILES+= ${XPI_FILES:S!^!${_TD}/!} -PLIST_DIRS+= ${XPI_DIRS:S!^!${_TD}/!} ${_TD} .for dist in ${XPI_DISTNAMES} XPI_XPIDIR_${dist}= ${XPI_LIBDIR}/${XPI_ID_${dist}} _TD_${dist}= ${XPI_XPIDIR_${dist}:S,^${PREFIX}/,,} PLIST_FILES+= ${XPI_FILES_${dist}:S!^!${_TD_${dist}}/!} -PLIST_DIRS+= ${XPI_DIRS_${dist}:S!^!${_TD_${dist}}/!} ${_TD_${dist}} .endfor .if !target(do-install) do-install: @${MKDIR} ${STAGEDIR}${_TD_FULL} ${XPI_SLDIRS_ALL:S/^/${STAGEDIR}/} @cd ${WRKSRC}; ${PAX} -rw . ${STAGEDIR}${_TD_FULL}/ @if [ -d ${FILESDIR} -a -f ${FILESDIR}/chrome.manifest ] ; \ then ${INSTALL_DATA} ${FILESDIR}/chrome.manifest ${STAGEDIR}${_TD_FULL}/ ; fi @${CHMOD} -R a+rX,go-w ${STAGEDIR}${_TD_FULL}/ @${ECHO_CMD} '@exec ${INSTALL} -d ${XPI_SLDIRS_ALL:S,^${STAGEDIR}${PREFIX},%D,}' ${_A} @${ECHO_CMD} '@exec for _dir in ${XPI_LINKFARMS} ; { ${LN} -sf ${_TD_FULL} $$_dir/ ${_Q}; }' ${_A} @${ECHO_CMD} '@unexec for _dir in ${XPI_LINKFARMS} ; { ${RM} -f $$_dir/${XPI_ID} ; }' ${_A} - @for _dir in ${XPI_DIRS_TRY} ; { ${ECHO_CMD} "@unexec rmdir %D/$$_dir ${_Q}" ${_A} ; } .endif .if !target(relink) relink: @-for _app in ${XPI_APPS} ; { ${LN} -sf ${_TD_FULL} $$_app ${_Q} ; } .endif .if !target(relink-all) relink-all: @-for _app in ${XPI_APPS} ; { for _xpi in ${XPI_LIBDIR}/*[\{@]* ; { \ ${LN} -sf $$_xpi $$_app ${_Q} ; } ; } .endif .if !target(xpi-post-extract) xpi-post-extract: .endif post-extract: xpi-post-extract @${RM} -rf ${WRKSRC}/META-INF # Maintainer section xpi-gen: extract @${ECHO_CMD} -n 'XPI_ID=' @${SED} -En '/<(RDF:)?Description (RDF:)?about="urn:mozilla:install-manifest"/,/>/p' ${WRKSRC}/install.rdf | \ ${GREP} -Em1 'em:id|' | ${CUT} -f2- -d\> | \ ${CUT} -f1 -d\< | ${CUT} -f2 -d\" @${ECHO_CMD} -n 'XPI_FILES=' @cd ${WRKSRC} && ${FIND} -s . -not -type d | cut -f2- -d/ | ${TR} '\n' ' ' @if [ -d ${FILESDIR} -a -f ${FILESDIR}/chrome.manifest ] ; \ then ${ECHO_CMD} chrome.manifest ; fi @${ECHO_CMD} - @${ECHO_CMD} -n 'XPI_DIRS=' @cd ${WRKSRC} && ${FIND} -ds . -not -name . -type d | cut -f2- -d/ | ${TR} '\n' ' ' @${ECHO_CMD} xpi-plist: extract @${FIND} -s ${WRKSRC} -not -type d | ${SED} -e "s,^${WRKSRC},%%XPI_XPIDIR%%," > ${PLIST} @if [ -d ${FILESDIR} -a -f ${FILESDIR}/chrome.manifest ] ; \ then ${ECHO_CMD} %%XPI_XPIDIR%%/chrome.manifest >> ${PLIST} ; fi - @${FIND} -ds ${WRKSRC} -type d -not -name ${DISTNAME} | \ - ${SED} -e "s,^${WRKSRC},@dirrm %%XPI_XPIDIR%%," >> ${PLIST} xpi-pre-chrome: @${CHMOD} g+w ${_TD_FULL} @${RM} -f ${_TD_FULL}/chrome.manifest xpi-post-chrome: @${CP} -f ${_TD_FULL}/chrome.manifest ${FILESDIR}/ Index: branches/2014Q4 =================================================================== --- branches/2014Q4 (revision 370968) +++ branches/2014Q4 (revision 370969) Property changes on: branches/2014Q4 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r370932