Index: branches/2016Q4/Mk/Uses/gecko.mk =================================================================== --- branches/2016Q4/Mk/Uses/gecko.mk (revision 429220) +++ branches/2016Q4/Mk/Uses/gecko.mk (revision 429221) @@ -1,127 +1,127 @@ # $FreeBSD$ # # Handle dependency of different gecko based applications # # MAINTAINER: gecko@FreeBSD.org # # Feature: gecko # Usage: USES=gecko or USES=gecko:ARGS # Valid ARGS: libxul, firefox, seamonkey, thunderbird # in case the first argument is not libxul # The following arguments are available # - build: also add the dependency as a build # dependency # - [0-9][0-9][+]?: a version optionnally # followed by a + # .if !defined(_INCLUDE_USES_GECKO_MK) _INCLUDE_USES_GECKO_MK= yes .if empty(gecko_ARGS) gecko_ARGS= libxul .endif _GECKO_VERSION= ${gecko_ARGS:M[0-9][0-9]*} .if ${gecko_ARGS:Mlibxul} # Compat with older versions GECKO= libxul GECKO_CONFING?= ${LOCALBASE}/bin/${GECKO}-config XPIDL?= ${LOCALBASE}/lib/${GECKO}/xpidl XPIDL_INCL?= `${GECKO_CONFIG} --idlflags` BUILD_DEPENDS+= libxul>=45:www/libxul RUN_DEPENDS+= libxul>=45:www/libxul .elif ${gecko_ARGS:Mfirefox} _GECKO_DEFAULT_VERSION= 45 _GECKO_VERSIONS= 45 50 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions 45_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr 50_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox .if exists(${LOCALBASE}/bin/firefox) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/firefox --version 2>/dev/null _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:M[0-9][0-9]*:C/([0-9][0-9]).*/\1/g} .endif .elif ${gecko_ARGS:Mseamonkey} -_GECKO_DEFAULT_VERSION= 40 -_GECKO_VERSIONS= 40 +_GECKO_DEFAULT_VERSION= 46 +_GECKO_VERSIONS= 46 _GECKO_TYPE= seamonkey .if exists(${LOCALBASE}/bin/seamonkey) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/seamonkey --version 2>/dev/null _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:M[0-9]*:C/[0-9].([0-9][0-9]).*/\1/g} .endif # Dependence lines for different Seamonkey versions -40_DEPENDS= ${LOCALBASE}/lib/seamonkey/seamonkey:www/seamonkey +46_DEPENDS= ${LOCALBASE}/lib/seamonkey/seamonkey:www/seamonkey .elif ${gecko_ARGS:Mthunderbird} _GECKO_DEFAULT_VERSION= 45 _GECKO_VERSIONS= 45 _GECKO_TYPE= thunderbird .if exists(${LOCALBASE}/bin/thunderbird) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/thunderbird --version 2>/dev/null _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:M[0-9][0-9]*:C/([0-9][0-9]).*/\1/g} .endif # Dependence lines for different Thunderbird versions 45_DEPENDS= ${LOCALBASE}/lib/thunderbird/thunderbird:mail/thunderbird .else IGNORE= Unknown type of gecko dependency you may specify either libxul, firefox, seamonkey or thunderbird .endif .if defined(_GECKO_TYPE) .if ${_GECKO_VERSION:M*+} _GECKO_MIN_VERSION:= ${_GECKO_VERSION:S/+//} _GECKO_WANTED_VERSIONS:= ${_GECKO_DEFAULT_VERSION} .endif .if ${_GECKO_VERSION:M[0-9][0-9]} _GECKO_WANTED_VERSIONS:= ${_GECKO_VERSION:M[0-9][0-9]} .endif _GECKO_WANTED_VERSIONS?= ${_GECKO_DEFAULT_VERSION} .if defined(_GECKO_MIN_VERSION) . for _v in ${_GECKO_VERSIONS} . if ${_GECKO_MIN_VERSION} <= ${_v} _GECKO_WANTED_VERSIONS+= ${_v} . endif . endfor .endif .for _v in ${_GECKO_WANTED_VERSIONS:O:u} _GECKO_HIGHEST_VERSION:= ${_v} .if defined(_GECKO_INSTALLED_VER) && ${_GECKO_INSTALLED_VER} == ${_v} _GECKO_WANTED_VERSION:= ${_v} .endif .endfor .if !defined(_GECKO_WANTED_VERSION) .if defined(_GECKO_INSTALLED_VER) IGNORE= cannot install: ${_GECKO_TYPE} versions mismatch: ${_GECKO_TYPE}-${_GECKO_INSTALLED_VER} is installed and wanted version is ${_GECKO_TYPE}-${_GECKO_VERSION:M[0-9][0-9]} .else _GECKO_WANTED_VERSION:= ${_GECKO_HIGHEST_VERSION} .endif .endif .if ${gecko_ARGS:Mbuild} BUILD_DEPENDS+= ${${_GECKO_WANTED_VERSION}_DEPENDS} .endif RUN_DEPENDS+= ${${_GECKO_WANTED_VERSION}_DEPENDS} .endif .endif Index: branches/2016Q4/www/linux-seamonkey/Makefile =================================================================== --- branches/2016Q4/www/linux-seamonkey/Makefile (revision 429220) +++ branches/2016Q4/www/linux-seamonkey/Makefile (revision 429221) @@ -1,16 +1,16 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= seamonkey -DISTVERSION= 2.40 +DISTVERSION= 2.46 CATEGORIES= www mail news editors irc ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/linux-i686/en-US + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build9/linux-i686/en-US MAINTAINER= gecko@FreeBSD.org COMMENT= The open source, standards compliant web browser USES= tar:bzip2 .include "${.CURDIR}/Makefile.common" .include Index: branches/2016Q4/www/linux-seamonkey/distinfo =================================================================== --- branches/2016Q4/www/linux-seamonkey/distinfo (revision 429220) +++ branches/2016Q4/www/linux-seamonkey/distinfo (revision 429221) @@ -1,7 +1,7 @@ -TIMESTAMP = 1475123784 -SHA256 (seamonkey-2.40.tar.bz2) = dc42044206fe4f3d2f2c797ef1516635e27789d6983293a56c6557626e1841be -SIZE (seamonkey-2.40.tar.bz2) = 50683245 +TIMESTAMP = 1481682190 +SHA256 (seamonkey-2.46.tar.bz2) = 096a1a8e229eaa05c2db5ae0661f856aceae58f1cae406cf52d2b270ca8a9957 +SIZE (seamonkey-2.46.tar.bz2) = 48816262 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/2016Q4/www/linux-seamonkey/pkg-plist =================================================================== --- branches/2016Q4/www/linux-seamonkey/pkg-plist (revision 429220) +++ branches/2016Q4/www/linux-seamonkey/pkg-plist (revision 429221) @@ -1,119 +1,117 @@ 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/JSConsoleWindow.png lib/%%APP_NAME%%/chrome/icons/default/JSConsoleWindow16.png lib/%%APP_NAME%%/chrome/icons/default/JSConsoleWindow48.png lib/%%APP_NAME%%/chrome/icons/default/abcardWindow.png lib/%%APP_NAME%%/chrome/icons/default/abcardWindow16.png lib/%%APP_NAME%%/chrome/icons/default/abcardWindow48.png lib/%%APP_NAME%%/chrome/icons/default/ablistWindow.png lib/%%APP_NAME%%/chrome/icons/default/ablistWindow16.png lib/%%APP_NAME%%/chrome/icons/default/ablistWindow48.png lib/%%APP_NAME%%/chrome/icons/default/addressbookWindow.png lib/%%APP_NAME%%/chrome/icons/default/addressbookWindow16.png lib/%%APP_NAME%%/chrome/icons/default/addressbookWindow48.png lib/%%APP_NAME%%/chrome/icons/default/bookmarkproperties.png lib/%%APP_NAME%%/chrome/icons/default/bookmarkproperties16.png lib/%%APP_NAME%%/chrome/icons/default/bookmarkproperties48.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%%/chrome/icons/default/downloadManager.png lib/%%APP_NAME%%/chrome/icons/default/downloadManager16.png lib/%%APP_NAME%%/chrome/icons/default/downloadManager48.png lib/%%APP_NAME%%/chrome/icons/default/editorWindow.png lib/%%APP_NAME%%/chrome/icons/default/editorWindow16.png lib/%%APP_NAME%%/chrome/icons/default/editorWindow48.png lib/%%APP_NAME%%/chrome/icons/default/findBookmarkWindow.png lib/%%APP_NAME%%/chrome/icons/default/findBookmarkWindow16.png lib/%%APP_NAME%%/chrome/icons/default/findBookmarkWindow48.png lib/%%APP_NAME%%/chrome/icons/default/findHistoryWindow.png lib/%%APP_NAME%%/chrome/icons/default/findHistoryWindow16.png lib/%%APP_NAME%%/chrome/icons/default/findHistoryWindow48.png lib/%%APP_NAME%%/chrome/icons/default/history-window.png lib/%%APP_NAME%%/chrome/icons/default/history-window16.png lib/%%APP_NAME%%/chrome/icons/default/history-window48.png lib/%%APP_NAME%%/chrome/icons/default/main-window.png lib/%%APP_NAME%%/chrome/icons/default/main-window16.png lib/%%APP_NAME%%/chrome/icons/default/main-window48.png lib/%%APP_NAME%%/chrome/icons/default/messengerWindow.png lib/%%APP_NAME%%/chrome/icons/default/messengerWindow16.png lib/%%APP_NAME%%/chrome/icons/default/messengerWindow48.png lib/%%APP_NAME%%/chrome/icons/default/msgcomposeWindow.png lib/%%APP_NAME%%/chrome/icons/default/msgcomposeWindow16.png lib/%%APP_NAME%%/chrome/icons/default/msgcomposeWindow48.png lib/%%APP_NAME%%/chrome/icons/default/places.png lib/%%APP_NAME%%/chrome/icons/default/places16.png lib/%%APP_NAME%%/chrome/icons/default/places48.png lib/%%APP_NAME%%/chrome/icons/default/seamonkey.png lib/%%APP_NAME%%/components/components.manifest -lib/%%APP_NAME%%/components/libmozgnome.so lib/%%APP_NAME%%/components/libsuite.so lib/%%APP_NAME%%/crashreporter lib/%%APP_NAME%%/crashreporter-override.ini 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%%/defaults/profile/chrome/userChrome-example.css lib/%%APP_NAME%%/defaults/profile/chrome/userContent-example.css lib/%%APP_NAME%%/defaults/profile/mimeTypes.rdf lib/%%APP_NAME%%/defaults/profile/panels.rdf lib/%%APP_NAME%%/dependentlibs.list lib/%%APP_NAME%%/dictionaries/en-US.aff lib/%%APP_NAME%%/dictionaries/en-US.dic -lib/%%APP_NAME%%/distribution/extensions/inspector@mozilla.org.xpi -lib/%%APP_NAME%%/distribution/extensions/{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}.xpi lib/%%APP_NAME%%/extensions/modern@themes.mozilla.org.xpi lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi lib/%%APP_NAME%%/icons/updater.png +lib/%%APP_NAME%%/icudt56l.dat 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 +lib/%%APP_NAME%%/libfreeblpriv3.chk +lib/%%APP_NAME%%/libfreeblpriv3.so lib/%%APP_NAME%%/libldap60.so lib/%%APP_NAME%%/libldif60.so lib/%%APP_NAME%%/liblgpllibs.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%%/license.txt 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%%/seamonkey lib/%%APP_NAME%%/seamonkey-bin lib/%%APP_NAME%%/searchplugins/duckduckgo.xml lib/%%APP_NAME%%/searchplugins/google.xml lib/%%APP_NAME%%/searchplugins/wikipedia.xml lib/%%APP_NAME%%/searchplugins/yahoo.xml 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 Index: branches/2016Q4/www/seamonkey/Makefile =================================================================== --- branches/2016Q4/www/seamonkey/Makefile (revision 429220) +++ branches/2016Q4/www/seamonkey/Makefile (revision 429221) @@ -1,183 +1,163 @@ # Created by: eivind/dima/jseger # $FreeBSD$ PORTNAME= seamonkey -DISTVERSION= 2.40 -MOZILLA_VER= 43 # above + 3 -PORTREVISION= 2 +DISTVERSION= 2.46 +MOZILLA_VER= 49 # above + 3 CATEGORIES?= www mail news editors irc ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build9/source DISTFILES= ${PORTNAME}-${DISTVERSION}.source${EXTRACT_SUFX} EXTRACT_ONLY= ${PORTNAME}-${DISTVERSION}.source${EXTRACT_SUFX} MAINTAINER= gecko@FreeBSD.org COMMENT= The open source, standards compliant web browser -BUILD_DEPENDS= nspr>=4.10.10:devel/nspr \ - nss>=3.20.1:security/nss \ +BUILD_DEPENDS= nspr>=4.12:devel/nspr \ + nss>=3.25:security/nss \ libevent2>=2.0.21_2:devel/libevent2 \ soundtouch>=1.9.0:audio/soundtouch \ - harfbuzz>=1.0.3:print/harfbuzz \ - graphite2>=1.3.4:graphics/graphite2 \ - png>=1.6.17:graphics/png \ + harfbuzz>=1.2.6:print/harfbuzz \ + graphite2>=1.3.8:graphics/graphite2 \ + png>=1.6.21:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ - sqlite3>=3.8.11.1:databases/sqlite3 \ + sqlite3>=3.13:databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ yasm:devel/yasm \ zip:archivers/zip LIB_DEPENDS= libv4l2.so:multimedia/libv4l -EM_VERSION= 1.9.5 -L_VERSION= 4.5 +EM_VERSION= 1.9.6.1 +L_VERSION= 5.1 SSP_UNSAFE= yes USE_GECKO= gecko USE_GL= gl USES= tar:xz MOZ_PIS_SCRIPTS= moz_pis_S50cleanhome MOZ_EXTENSIONS= default -MOZ_OPTIONS+= --program-transform-name='s/seamonkey/${MOZILLA}/' \ - --enable-application=suite +MOZ_OPTIONS+= --enable-application=suite USE_MOZILLA= # empty MOZ_PKGCONFIG_FILES= NOT_FOR_ARCHS= ia64 -OPTIONS_DEFINE= CHATZILLA COMPOSER ENIGMAIL LDAP LIGHTNING MAILNEWS RUST +OPTIONS_DEFINE= ENIGMAIL LDAP LIGHTNING RUST OPTIONS_SINGLE= TOOLKIT OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3 -OPTIONS_DEFAULT=CANBERRA CHATZILLA COMPOSER ENIGMAIL GTK2 LDAP LIGHTNING MAILNEWS +OPTIONS_DEFAULT=CANBERRA ENIGMAIL GTK2 LDAP LIGHTNING -CHATZILLA_DESC?=Chatzilla IRC module -COMPOSER_DESC?= HTML Composer module LDAP_DESC?= LDAP support for Mailnews -MAILNEWS_DESC?= Mail and News modules .include "${.CURDIR}/../../www/firefox/Makefile.options" .include -.if ${PORT_OPTIONS:MCHATZILLA} -MOZ_EXTENSIONS:= ${MOZ_EXTENSIONS},irc -.endif - -.include - WRKSRC:= ${WRKDIR}/${PORTNAME}-${DISTVERSION} MOZSRC:= ${WRKSRC}/mozilla XPI_LIBDIR= ${PREFIX}/lib/xpi -.if ! ${PORT_OPTIONS:MMAILNEWS} -MOZ_OPTIONS+= --disable-ldap --disable-mailnews -.else -# mail and news desired, but not LDAP .if ! ${PORT_OPTIONS:MLDAP} -MOZ_OPTIONS+= --disable-ldap --enable-mailnews +MOZ_OPTIONS+= --disable-ldap .else -MOZ_OPTIONS+= --enable-ldap --enable-mailnews +MOZ_OPTIONS+= --enable-ldap .endif .if ${PORT_OPTIONS:MENIGMAIL} MASTER_SITES+= https://www.enigmail.net/download/source/:enigmail DISTFILES+= ${EM_DISTFILE}:enigmail RUN_DEPENDS+= gpg2:security/gnupg EM_DISTNAME= enigmail-${EM_VERSION} EM_DISTFILE= ${EM_DISTNAME}.tar.gz EM_XPI_FILE= ${WRKSRC}/mailnews/extensions/enigmail/build/${EM_DISTNAME}.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/app.jsm .endif -.endif -.if ! ${PORT_OPTIONS:MCOMPOSER} -MOZ_OPTIONS+= --disable-composer -.endif - .if ${PORT_OPTIONS:MLIGHTNING} MOZ_OPTIONS+= --enable-calendar MOZ_MK_OPTIONS+= MOZ_CO_PROJECT=calendar LIGHTNING_DIR= share/lightning XPI_FILE= ${MOZ_OBJDIR}/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@seamonkey.mozilla.org .else MOZ_OPTIONS+= --disable-calendar .endif -.if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} +.if ${PORT_OPTIONS:MENIGMAIL} post-extract: @${TAR} -xf ${_DISTDIR}/${EM_DISTFILE} \ -C ${WRKSRC}/mailnews/extensions .endif post-patch: @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/suite/app/nsSuiteApp.cpp @${REINPLACE_CMD} -e '/accessibility.typeaheadfind.enablesound/s/true/false/' \ ${WRKSRC}/mozilla/modules/libpref/init/all.js @${SED} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ < ${FILESDIR}/seamonkey.desktop.in > \ ${WRKDIR}/${MOZILLA}.desktop -.if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} +.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} && ${LOCALBASE}/bin/autoconf-2.13) (cd ${MOZSRC} && ${LOCALBASE}/bin/autoconf-2.13) (cd ${MOZSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13) -.if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} +.if ${PORT_OPTIONS:MENIGMAIL} post-configure: cd ${WRKSRC}/mailnews/extensions/enigmail/ && \ ${SETENV} ${CONFIGURE_ENV} ${MAKE_ENV} ./configure .endif -.if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} +.if ${PORT_OPTIONS:MENIGMAIL} post-build: ${DO_MAKE_BUILD:N-j*:S,${MAKEFILE},Makefile,} all xpi \ -C ${WRKSRC}/mailnews/extensions/enigmail .endif post-install: ${INSTALL_DATA} ${WRKDIR}/${MOZILLA}.desktop ${STAGEDIR}${PREFIX}/share/applications/ ${LN} -sf ${PREFIX}/lib/${MOZILLA}/chrome/icons/default/default48.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/${MOZILLA}.png .if ${PORT_OPTIONS:MLIGHTNING} @${MKDIR} ${STAGEDIR}${XPI_LIBDIR}/${XPI_ID} ${STAGEDIR}${XPI_LIBDIR}/symlinks/seamonkey @(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/seamonkey 2>/dev/null || true @${ECHO_CMD} '@exec ${LN} -sf %D/lib/xpi/${XPI_ID} ${LOCALBASE}/lib/seamonkey/extensions 2>/dev/null || true' >> ${TMPPLIST} @${ECHO_CMD} '@unexec ${RM} -f ${LOCALBASE}/lib/seamonkey/extensions/${XPI_ID}' >> ${TMPPLIST} .endif -.if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} +.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}/g} @${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 +.include Index: branches/2016Q4/www/seamonkey/distinfo =================================================================== --- branches/2016Q4/www/seamonkey/distinfo (revision 429220) +++ branches/2016Q4/www/seamonkey/distinfo (revision 429221) @@ -1,5 +1,5 @@ -TIMESTAMP = 1475123784 -SHA256 (seamonkey-2.40.source.tar.xz) = 7ecccc039d03f38d197b123b59ea42eac4c0c10e4bdec779b3665d79b435fa01 -SIZE (seamonkey-2.40.source.tar.xz) = 193702432 -SHA256 (enigmail-1.9.5.tar.gz) = 831e53a4add0f465241f075be9475103367aa1452675adae054d8fb272e5d3ad -SIZE (enigmail-1.9.5.tar.gz) = 1744278 +TIMESTAMP = 1481682190 +SHA256 (seamonkey-2.46.source.tar.xz) = 39c84ce6fa1ed7c30152473e0dcd858df07437e84b29e5a18973db437a28a912 +SIZE (seamonkey-2.46.source.tar.xz) = 204913776 +SHA256 (enigmail-1.9.6.1.tar.gz) = 3874331e981aed864443d3c965d856e003fd84f73e5a89fd5004ced9dc29b96f +SIZE (enigmail-1.9.6.1.tar.gz) = 1745021 Index: branches/2016Q4/www/seamonkey/files/patch-bug1243312 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1243312 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1243312 (nonexistent) @@ -1,21 +0,0 @@ -commit a5c6f19 -Author: Dragana Damjanovic -Date: Wed Jan 27 01:47:00 2016 +0100 - - Bug 1243312 - nsNetCID is missing in toolkit/system/unixproxy/nsLibProxySettings.cpp. r=jduell ---- - toolkit/system/unixproxy/nsLibProxySettings.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git toolkit/system/unixproxy/nsLibProxySettings.cpp toolkit/system/unixproxy/nsLibProxySettings.cpp -index f6ec377..e9179c1 100644 ---- mozilla/toolkit/system/unixproxy/nsLibProxySettings.cpp -+++ mozilla/toolkit/system/unixproxy/nsLibProxySettings.cpp -@@ -9,6 +9,7 @@ - #include "nsIURI.h" - #include "nsString.h" - #include "nsCOMPtr.h" -+#include "nsNetCID.h" - #include "nspr.h" - - extern "C" { Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1243312 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2016Q4/www/seamonkey/files/patch-bug1234033 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1234033 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1234033 (nonexistent) @@ -1,13 +0,0 @@ -diff --git toolkit/mozapps/update/updater/updater.cpp toolkit/mozapps/update/updater/updater.cpp -index bb0834c..6ef82a1 100644 ---- mozilla/toolkit/mozapps/update/updater/updater.cpp -+++ mozilla/toolkit/mozapps/update/updater/updater.cpp -@@ -157,7 +157,7 @@ BOOL PathGetSiblingFilePath(LPWSTR destinationBuffer, - // declare it here to avoid including that entire header file. - #define BZ2_CRC32TABLE_UNDECLARED - --#if MOZ_IS_GCC -+#if MOZ_IS_GCC || defined(__clang__) - extern "C" __attribute__((visibility("default"))) unsigned int BZ2_crc32Table[256]; - #undef BZ2_CRC32TABLE_UNDECLARED - #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1234033 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1285501 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1285501 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1285501 (nonexistent) @@ -1,22 +0,0 @@ -diff --git media/webrtc/trunk/build/filename_rules.gypi media/webrtc/trunk/build/filename_rules.gypi -index 844d5c5..7b16a15 100644 ---- mozilla/media/webrtc/trunk/build/filename_rules.gypi -+++ mozilla/media/webrtc/trunk/build/filename_rules.gypi -@@ -29,7 +29,7 @@ - # In case a file is not needed, it is going to be excluded later on. - # TODO(evan): the above is not correct; we shouldn't build _linux - # files on non-linux. -- ['OS!="linux" and OS!="openbsd" and OS!="freebsd" or >(nacl_untrusted_build)==1', { -+ ['OS!="linux" and OS!="solaris" and <(os_bsd)!=1 or >(nacl_untrusted_build)==1', { - 'sources/': [ - ['exclude', '_linux(_unittest)?\\.(h|cc)$'], - ['exclude', '(^|/)linux/'], -@@ -55,7 +55,7 @@ - ['exclude', '_nacl(_unittest)?\\.(h|cc)$'], - ], - }], -- ['OS!="linux" and OS!="openbsd" and OS!="freebsd" or >(nacl_untrusted_build)==1', { -+ ['OS!="linux" and OS!="solaris" and <(os_bsd)!=1 or >(nacl_untrusted_build)==1', { - 'sources/': [ - ['exclude', '_xdg(_unittest)?\\.(h|cc)$'], - ], Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1285501 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1233275 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1233275 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1233275 (nonexistent) @@ -1,40 +0,0 @@ -# Copy environment for IPC using NSPR to avoid race - -diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc ---- mozilla/ipc/chromium/src/base/process_util_bsd.cc -+++ mozilla/ipc/chromium/src/base/process_util_bsd.cc -@@ -13,6 +13,7 @@ - - #include - -+#include "nspr.h" - #include "base/eintr_wrapper.h" - #include "base/file_util.h" - #include "base/logging.h" -@@ -48,7 +49,6 @@ - - #ifdef HAVE_POSIX_SPAWN - #include --extern "C" char **environ __dso_public; - #endif - - namespace { -@@ -114,6 +114,7 @@ bool LaunchApp(const std::vector= 6 is now itself a wrapper around cstdlib, which -circles back to our STL wrapper. - -But of the things our STL wrappers do, including mozalloc.h is not one -that is necessary for cstdlib. So skip including mozalloc.h in our -cstdlib wrapper. - -Additionally, some C++ sources (in media/mtransport) are including -headers in an extern "C" block, which end up including stdlib.h, which -ends up including cstdlib because really, this is all C++, and our -wrapper pre-includes for mozalloc.h, which fails because templates -don't work inside extern "C". So, don't pre-include when we're not -including mozalloc.h. - - -diff --git config/gcc-stl-wrapper.template.h config/gcc-stl-wrapper.template.h ---- mozilla/config/gcc-stl-wrapper.template.h -+++ mozilla/config/gcc-stl-wrapper.template.h -@@ -12,33 +12,40 @@ - // compiling ObjC. - #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS) - # error "STL code can only be used with -fno-exceptions" - #endif - - // Silence "warning: #include_next is a GCC extension" - #pragma GCC system_header - -+// Don't include mozalloc for cstdlib. See bug 1245076. -+#ifndef moz_dont_include_mozalloc_for_cstdlib -+# define moz_dont_include_mozalloc_for_cstdlib -+#endif -+#ifndef moz_dont_include_mozalloc_for_${HEADER} - // mozalloc.h wants ; break the cycle by always explicitly - // including here. NB: this is a tad sneaky. Sez the gcc docs: - // - // `#include_next' does not distinguish between and "file" - // inclusion, nor does it check that the file you specify has the - // same name as the current file. It simply looks for the file - // named, starting with the directory in the search path after the - // one where the current file was found. --#include_next -+# include_next - - // See if we're in code that can use mozalloc. NB: this duplicates - // code in nscore.h because nscore.h pulls in prtypes.h, and chromium - // can't build with that being included before base/basictypes.h. --#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --#else --# error "STL code can only be used with infallible ::operator new()" -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+ - #endif - - #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) - // Enable checked iterators and other goodies - // - // FIXME/bug 551254: gcc's debug STL implementation requires -frtti. - // Figure out how to resolve this with -fno-rtti. Maybe build with - // -frtti in DEBUG builds? Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1245076 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1268816 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1268816 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1268816 (nonexistent) @@ -1,50 +0,0 @@ - -# HG changeset patch -# User Lee Salzman -# Date 1461978185 14400 -# Node ID b622cbd9ba13d01abcb1d04684dcb39c22a08590 -# Parent f3a5c8b5e17073a1e68f079da93f8dbe10e454a9 -Bug 1268816 - allow Skia to use C++11 features on platforms that have them. r=froydnj - -diff --git config/stl-headers config/stl-headers ---- mozilla/config/stl-headers -+++ mozilla/config/stl-headers -@@ -27,16 +27,17 @@ iterator - limits - list - map - memory - ostream - set - stack - string -+type_traits - utility - vector - cassert - climits - cmath - cstdarg - cstdio - cstdlib -diff --git config/system-headers config/system-headers ---- mozilla/config/system-headers -+++ mozilla/config/system-headers -@@ -1109,16 +1109,17 @@ ThreadManagerTests.h - Threads.h - time.h - Timer.h - tlhelp32.h - ToolUtils.h - tr1/functional - trace.h - Traps.h -+type_traits - typeinfo - types.h - Types.h - UAppleEventsMgr.h - UAttachments.h - ucontext.h - uconv.h - UCursor.h Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1268816 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1209410 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1209410 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1209410 (nonexistent) @@ -1,169 +0,0 @@ -# Use MP3Demuxer/MediaFormatReader by default when available - -diff --git a/dom/media/DecoderTraits.cpp b/dom/media/DecoderTraits.cpp ---- mozilla/dom/media/DecoderTraits.cpp -+++ mozilla/dom/media/DecoderTraits.cpp -@@ -200,10 +200,10 @@ DecoderTraits::IsWebMTypeAndEnabled(cons - static bool - IsGStreamerSupportedType(const nsACString& aMimeType) - { -- if (!MediaDecoder::IsGStreamerEnabled()) -+ if (DecoderTraits::IsWebMTypeAndEnabled(aMimeType)) - return false; - -- if (DecoderTraits::IsWebMTypeAndEnabled(aMimeType) && !Preferences::GetBool("media.prefer-gstreamer", false)) -+ if (!MediaDecoder::IsGStreamerEnabled()) - return false; - - if (IsOggType(aMimeType) && !Preferences::GetBool("media.prefer-gstreamer", false)) -@@ -366,7 +366,7 @@ static bool - IsMP3SupportedType(const nsACString& aType, - const nsAString& aCodecs = EmptyString()) - { -- return aType.EqualsASCII("audio/mpeg") && MP3Decoder::IsEnabled(); -+ return MP3Decoder::CanHandleMediaType(aType, aCodecs); - } - - #ifdef MOZ_APPLEMEDIA -diff --git a/dom/media/MP3Decoder.cpp b/dom/media/MP3Decoder.cpp ---- mozilla/dom/media/MP3Decoder.cpp -+++ mozilla/dom/media/MP3Decoder.cpp -@@ -10,10 +10,7 @@ - #include "MediaFormatReader.h" - #include "MP3Demuxer.h" - #include "mozilla/Preferences.h" -- --#ifdef MOZ_WIDGET_ANDROID --#include "AndroidBridge.h" --#endif -+#include "PlatformDecoderModule.h" - - namespace mozilla { - -@@ -32,14 +29,61 @@ MP3Decoder::CreateStateMachine() { - return new MediaDecoderStateMachine(this, reader); - } - -+static already_AddRefed -+CreateTestMP3Decoder(AudioInfo& aConfig) -+{ -+ PlatformDecoderModule::Init(); -+ -+ nsRefPtr platform = PlatformDecoderModule::Create(); -+ if (!platform || !platform->SupportsMimeType(aConfig.mMimeType)) { -+ return nullptr; -+ } -+ -+ nsRefPtr decoder( -+ platform->CreateDecoder(aConfig, nullptr, nullptr)); -+ if (!decoder) { -+ return nullptr; -+ } -+ -+ return decoder.forget(); -+} -+ -+static bool -+CanCreateMP3Decoder() -+{ -+ static bool haveCachedResult = false; -+ static bool result = false; -+ if (haveCachedResult) { -+ return result; -+ } -+ AudioInfo config; -+ config.mMimeType = "audio/mpeg"; -+ config.mRate = 48000; -+ config.mChannels = 2; -+ config.mBitDepth = 16; -+ nsRefPtr decoder(CreateTestMP3Decoder(config)); -+ if (decoder) { -+ result = true; -+ } -+ haveCachedResult = true; -+ return result; -+} -+ -+/* static */ - bool - MP3Decoder::IsEnabled() { --#ifdef MOZ_WIDGET_ANDROID -- // We need android.media.MediaCodec which exists in API level 16 and higher. -- return AndroidBridge::Bridge()->GetAPIVersion() >= 16; --#else -- return Preferences::GetBool("media.mp3.enabled"); --#endif -+ return CanCreateMP3Decoder(); -+} -+ -+/* static */ -+bool MP3Decoder::CanHandleMediaType(const nsACString& aType, -+ const nsAString& aCodecs) -+{ -+ if (aType.EqualsASCII("audio/mp3") || aType.EqualsASCII("audio/mpeg")) { -+ return CanCreateMP3Decoder() && -+ (aCodecs.IsEmpty() || aCodecs.EqualsASCII("mp3")); -+ } -+ return false; - } - - } // namespace mozilla -diff --git a/dom/media/MP3Decoder.h b/dom/media/MP3Decoder.h ---- mozilla/dom/media/MP3Decoder.h -+++ mozilla/dom/media/MP3Decoder.h -@@ -19,6 +19,8 @@ public: - // Returns true if the MP3 backend is preffed on, and we're running on a - // platform that is likely to have decoders for the format. - static bool IsEnabled(); -+ static bool CanHandleMediaType(const nsACString& aType, -+ const nsAString& aCodecs); - }; - - } // namespace mozilla -diff --git a/dom/media/test/manifest.js b/dom/media/test/manifest.js ---- mozilla/dom/media/test/manifest.js -+++ mozilla/dom/media/test/manifest.js -@@ -76,7 +76,7 @@ var gPlayedTests = [ - { name:"seek.ogv", type:"video/ogg", duration:3.966 }, - { name:"seek.webm", type:"video/webm", duration:3.966 }, - { name:"gizmo.mp4", type:"video/mp4", duration:5.56 }, -- { name:"owl.mp3", type:"audio/mpeg", duration:3.29 }, -+ { name:"owl.mp3", type:"audio/mpeg", duration:3.343 }, - // Disable vbr.mp3 to see if it reduces the error of AUDCLNT_E_CPUUSAGE_EXCEEDED. - // See bug 1110922 comment 26. - //{ name:"vbr.mp3", type:"audio/mpeg", duration:10.0 }, -@@ -237,13 +237,13 @@ var gPlayTests = [ - - { name:"small-shot.m4a", type:"audio/mp4", duration:0.29 }, - { name:"small-shot.mp3", type:"audio/mpeg", duration:0.27 }, -- { name:"owl.mp3", type:"audio/mpeg", duration:3.29 }, -+ { name:"owl.mp3", type:"audio/mpeg", duration:3.343 }, - // owl.mp3 as above, but with something funny going on in the ID3v2 tag - // that causes DirectShow to fail. -- { name:"owl-funny-id3.mp3", type:"audio/mpeg", duration:3.29 }, -+ { name:"owl-funny-id3.mp3", type:"audio/mpeg", duration:3.343 }, - // owl.mp3 as above, but with something even funnier going on in the ID3v2 tag - // that causes DirectShow to fail. -- { name:"owl-funnier-id3.mp3", type:"audio/mpeg", duration:3.29 }, -+ { name:"owl-funnier-id3.mp3", type:"audio/mpeg", duration:3.343 }, - // One second of silence with ~140KB of ID3 tags. Usually when the first MP3 - // frame is at such a high offset into the file, MP3FrameParser will give up - // and report that the stream is not MP3. However, it does not count ID3 tags -@@ -469,7 +469,7 @@ var gSeekTests = [ - { name:"split.webm", type:"video/webm", duration:1.967 }, - { name:"detodos.opus", type:"audio/ogg; codecs=opus", duration:2.9135 }, - { name:"gizmo.mp4", type:"video/mp4", duration:5.56 }, -- { name:"owl.mp3", type:"audio/mpeg", duration:3.29 }, -+ { name:"owl.mp3", type:"audio/mpeg", duration:3.343 }, - { name:"bogus.duh", type:"bogus/duh", duration:123 } - ]; - -@@ -523,7 +523,7 @@ if (getAndroidVersion() >= 18) { - var gAudioTests = [ - { name:"r11025_s16_c1.wav", type:"audio/x-wav", duration:1.0 }, - { name:"sound.ogg", type:"audio/ogg" }, -- { name:"owl.mp3", type:"audio/mpeg", duration:3.29 }, -+ { name:"owl.mp3", type:"audio/mpeg", duration:3.343 }, - { name:"small-shot.m4a", type:"audio/mp4", duration:0.29 }, - { name:"bogus.duh", type:"bogus/duh", duration:123 } - ]; Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1209410 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1228255 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1228255 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1228255 (nonexistent) @@ -1,39 +0,0 @@ -diff --git a/test/test_audio.cpp b/test/test_audio.cpp -index 0158fb7..6a6ebf5 100644 ---- mozilla/media/libcubeb/tests/test_audio.cpp -+++ mozilla/media/libcubeb/tests/test_audio.cpp -@@ -10,7 +10,7 @@ - #ifdef NDEBUG - #undef NDEBUG - #endif --#define _XOPEN_SOURCE 500 -+#define _XOPEN_SOURCE 600 - #include - #include - #include -diff --git a/test/test_sanity.cpp b/test/test_sanity.cpp -index 8c80f80..ff31a96 100644 ---- mozilla/media/libcubeb/tests/test_sanity.cpp -+++ mozilla/media/libcubeb/tests/test_sanity.cpp -@@ -7,7 +7,7 @@ - #ifdef NDEBUG - #undef NDEBUG - #endif --#define _XOPEN_SOURCE 500 -+#define _XOPEN_SOURCE 600 - #include "cubeb/cubeb.h" - #include - #include -diff --git a/test/test_tone.cpp b/test/test_tone.cpp -index 023c46f..a0bb287 100644 ---- mozilla/media/libcubeb/tests/test_tone.cpp -+++ mozilla/media/libcubeb/tests/test_tone.cpp -@@ -9,7 +9,7 @@ - #ifdef NDEBUG - #undef NDEBUG - #endif --#define _XOPEN_SOURCE 500 -+#define _XOPEN_SOURCE 600 - #include - #include - #include Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1228255 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1228742 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1228742 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1228742 (nonexistent) @@ -1,13 +0,0 @@ ---- mozilla/toolkit/crashreporter/test/moz.build.orig 2015-12-16 16:15:25.278076000 +0100 -+++ mozilla/toolkit/crashreporter/test/moz.build 2015-12-16 16:15:35.254959000 +0100 -@@ -19,10 +19,6 @@ - - GeckoSharedLibrary('testcrasher') - --EXTRA_JS_MODULES += [ -- 'CrashTestUtils.jsm', --] -- - DEFINES['SHARED_LIBRARY'] = '%s%s%s' % ( - CONFIG['DLL_PREFIX'], - LIBRARY_NAME, Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1228742 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1269165 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1269165 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1269165 (nonexistent) @@ -1,24 +0,0 @@ -# getUserMedia fails to enumerate ALSA plugins - ---- mozilla/media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa_linux.cc.orig 2016-04-22 00:37:17 UTC -+++ mozilla/media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa_linux.cc -@@ -1752,7 +1752,9 @@ int32_t AudioDeviceLinuxALSA::GetDevices - // Don't use snd_device_name_hint(-1,..) since there is a access violation - // inside this ALSA API with libasound.so.2.0.0. - int card = -1; -+#ifdef WEBRTC_LINUX - while (!(LATE(snd_card_next)(&card)) && (card >= 0) && keepSearching) { -+#endif - void **hints; - err = LATE(snd_device_name_hint)(card, "pcm", &hints); - if (err != 0) -@@ -1878,7 +1880,9 @@ int32_t AudioDeviceLinuxALSA::GetDevices - LATE(snd_strerror)(err)); - // Continue and return true anyway, since we did get the whole list. - } -+#ifdef WEBRTC_LINUX - } -+#endif - - if (FUNC_GET_NUM_OF_DEVICE == function) - { Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1269165 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2016Q4/www/seamonkey/files/patch-bug1269171 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1269171 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1269171 (nonexistent) @@ -1,258 +0,0 @@ - -# HG changeset patch -# User Mike Hommey -# Date 1463557039 -32400 -# Node ID 68da139d0866977c0ada86319fa94388f2255446 -# Parent a640e6fa8ab9977fb6c5bcf63dc4daca6699477b -Bug 1269171 - Change how mozalloc.h is hooked in STL wrappers. r=froydnj - -Since the introduction of the STL wrappers, they have included -mozalloc.h, and multiple times, we've hit header reentrancy problems, -and worked around them as best as we could. - -Taking a step back, all mozalloc.h does is: -- declare moz_* allocator functions. -- define inline implementations of various operator new/delete variants. - -The first only requires the functions to be declared before they are used, -so mozalloc.h only needs to be included before anything that would use -those functions. - -The second doesn't actually require a specific order, as long as the -declaration for those functions comes before their use, and they are -either declared in or implicitly by the C++ compiler. - -So all in all, it doesn't matter that mozalloc.h is included before the -wrapped STL headers. What matters is that it's included when STL headers -are included. So arrange things such that mozalloc.h is included after -the first wrapped STL header is fully preprocessed (and all its includes -have been included). - - -diff --git config/gcc-stl-wrapper.template.h config/gcc-stl-wrapper.template.h ---- mozilla/config/gcc-stl-wrapper.template.h -+++ mozilla/config/gcc-stl-wrapper.template.h -@@ -12,56 +12,54 @@ - // compiling ObjC. - #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS) - # error "STL code can only be used with -fno-exceptions" - #endif - - // Silence "warning: #include_next is a GCC extension" - #pragma GCC system_header - --// Don't include mozalloc for cstdlib. See bug 1245076. --#ifndef moz_dont_include_mozalloc_for_cstdlib --# define moz_dont_include_mozalloc_for_cstdlib --#endif --#ifndef moz_dont_include_mozalloc_for_${HEADER} --// mozalloc.h wants ; break the cycle by always explicitly --// including here. NB: this is a tad sneaky. Sez the gcc docs: --// --// `#include_next' does not distinguish between and "file" --// inclusion, nor does it check that the file you specify has the --// same name as the current file. It simply looks for the file --// named, starting with the directory in the search path after the --// one where the current file was found. --# include_next -- --// See if we're in code that can use mozalloc. NB: this duplicates --// code in nscore.h because nscore.h pulls in prtypes.h, and chromium --// can't build with that being included before base/basictypes.h. --# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --# else --# error "STL code can only be used with infallible ::operator new()" --# endif -- --#endif -- - #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) - // Enable checked iterators and other goodies - // - // FIXME/bug 551254: gcc's debug STL implementation requires -frtti. - // Figure out how to resolve this with -fno-rtti. Maybe build with - // -frtti in DEBUG builds? - // - // # define _GLIBCXX_DEBUG 1 - #endif - -+// Don't include mozalloc for cstdlib. See bug 1245076. -+#ifndef moz_dont_include_mozalloc_for_cstdlib -+# define moz_dont_include_mozalloc_for_cstdlib -+#endif -+ -+// Include mozalloc after the STL header and all other headers it includes -+// have been preprocessed. -+#if !defined(MOZ_INCLUDE_MOZALLOC_H) && \ -+ !defined(moz_dont_include_mozalloc_for_${HEADER}) -+# define MOZ_INCLUDE_MOZALLOC_H -+# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+#endif -+ - #pragma GCC visibility push(default) - #include_next <${HEADER}> - #pragma GCC visibility pop - -+#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+// See if we're in code that can use mozalloc. NB: this duplicates -+// code in nscore.h because nscore.h pulls in prtypes.h, and chromium -+// can't build with that being included before base/basictypes.h. -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+#endif -+ - // gcc calls a __throw_*() function from bits/functexcept.h when it - // wants to "throw an exception". functexcept exists nominally to - // support -fno-exceptions, but since we'll always use the system - // libstdc++, and it's compiled with exceptions, then in practice - // these __throw_*() functions will always throw exceptions (shades of - // -fshort-wchar). We don't want that and so define our own inlined - // __throw_*(). - #ifndef mozilla_throw_gcc_h -diff --git config/make-stl-wrappers.py config/make-stl-wrappers.py ---- mozilla/config/make-stl-wrappers.py -+++ mozilla/config/make-stl-wrappers.py -@@ -25,28 +25,26 @@ def header_path(header, compiler): - def is_comment(line): - return re.match(r'\s*#.*', line) - - def main(outdir, compiler, template_file, header_list_file): - if not os.path.isdir(outdir): - os.mkdir(outdir) - - template = open(template_file, 'r').read() -- path_to_new = header_path('new', compiler) - - for header in open(header_list_file, 'r'): - header = header.rstrip() - if 0 == len(header) or is_comment(header): - continue - - path = header_path(header, compiler) - with FileAvoidWrite(os.path.join(outdir, header)) as f: - f.write(string.Template(template).substitute(HEADER=header, -- HEADER_PATH=path, -- NEW_HEADER_PATH=path_to_new)) -+ HEADER_PATH=path)) - - - if __name__ == '__main__': - if 5 != len(sys.argv): - print("""Usage: - python {0} OUT_DIR ('msvc'|'gcc') TEMPLATE_FILE HEADER_LIST_FILE - """.format(sys.argv[0]), file=sys.stderr) - sys.exit(1) -diff --git config/msvc-stl-wrapper.template.h config/msvc-stl-wrapper.template.h ---- mozilla/config/msvc-stl-wrapper.template.h -+++ mozilla/config/msvc-stl-wrapper.template.h -@@ -3,45 +3,33 @@ - */ - /* 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/. */ - - #ifndef mozilla_${HEADER}_h - #define mozilla_${HEADER}_h - --#ifndef MOZ_HAVE_INCLUDED_ALLOC --#define MOZ_HAVE_INCLUDED_ALLOC -- - #if _HAS_EXCEPTIONS - # error "STL code can only be used with -fno-exceptions" - #endif - -+// Include mozalloc after the STL header and all other headers it includes -+// have been preprocessed. -+#if !defined(MOZ_INCLUDE_MOZALLOC_H) -+# define MOZ_INCLUDE_MOZALLOC_H -+# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+#endif -+ - // Code built with !_HAS_EXCEPTIONS calls std::_Throw(), but the win2k - // CRT doesn't export std::_Throw(). So we define it. - #ifndef mozilla_Throw_h - # include "mozilla/throw_msvc.h" - #endif - --// Code might include before other wrapped headers, but --// includes and so we want to wrap it. But mozalloc.h --// wants also, so we break the cycle by always explicitly --// including here. --#include <${NEW_HEADER_PATH}> -- --// See if we're in code that can use mozalloc. NB: this duplicates --// code in nscore.h because nscore.h pulls in prtypes.h, and chromium --// can't build with that being included before base/basictypes.h. --#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --#else --# error "STL code can only be used with infallible ::operator new()" --#endif --#endif /* MOZ_HAVE_INCLUDED_ALLOC */ -- - #ifdef _DEBUG - // From - // http://msdn.microsoft.com/en-us/library/aa985982%28VS.80%29.aspx - // and - // http://msdn.microsoft.com/en-us/library/aa985965%28VS.80%29.aspx - // there appear to be two types of STL container checking. The - // former is enabled by -D_DEBUG (which is implied by -MDd or -MTd), and - // looks to be full generation/mutation checked iterators as done by -@@ -70,9 +58,20 @@ - // but that's OK because we're not throwing them. - #pragma warning( push ) - #pragma warning( disable : 4275 4530 ) - - #include <${HEADER_PATH}> - - #pragma warning( pop ) - -+#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+// See if we're in code that can use mozalloc. NB: this duplicates -+// code in nscore.h because nscore.h pulls in prtypes.h, and chromium -+// can't build with that being included before base/basictypes.h. -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+#endif -+ - #endif // if mozilla_${HEADER}_h -diff --git memory/mozalloc/mozalloc.h memory/mozalloc/mozalloc.h ---- mozilla/memory/mozalloc/mozalloc.h -+++ mozilla/memory/mozalloc/mozalloc.h -@@ -7,20 +7,27 @@ - - #ifndef mozilla_mozalloc_h - #define mozilla_mozalloc_h - - /* - * https://bugzilla.mozilla.org/show_bug.cgi?id=427099 - */ - --#include --#include - #if defined(__cplusplus) - # include -+// Since libstdc++ 6, including the C headers (e.g. stdlib.h) instead of the -+// corresponding C++ header (e.g. cstdlib) can cause confusion in C++ code -+// using things defined there. Specifically, with stdlib.h, the use of abs() -+// in gfx/graphite2/src/inc/UtfCodec.h somehow ends up picking the wrong abs() -+# include -+# include -+#else -+# include -+# include - #endif - - #if defined(__cplusplus) - #include "mozilla/fallible.h" - #include "mozilla/TemplateLib.h" - #endif - #include "mozilla/Attributes.h" - #include "mozilla/Types.h" Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1269171 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-mozilla-dom-events-MessageEvent.h =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-mozilla-dom-events-MessageEvent.h (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-mozilla-dom-events-MessageEvent.h (nonexistent) @@ -1,11 +0,0 @@ ---- mozilla/dom/events/MessageEvent.h.orig 2015-11-04 02:56:28.000000000 +0100 -+++ mozilla/dom/events/MessageEvent.h 2016-01-24 16:47:37.869781000 +0100 -@@ -16,8 +16,6 @@ - namespace dom { - - struct MessageEventInit; --class MessagePort; --class MessagePortList; - class OwningWindowProxyOrMessagePortOrClient; - - namespace workers { Property changes on: branches/2016Q4/www/seamonkey/files/patch-mozilla-dom-events-MessageEvent.h ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-modules-libpref-init-all.js =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-modules-libpref-init-all.js (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-modules-libpref-init-all.js (nonexistent) @@ -1,15 +0,0 @@ ---- mozilla/modules/libpref/init/all.js.orig 2015-08-06 22:39:34 UTC -+++ mozilla/modules/libpref/init/all.js -@@ -4052,7 +4052,12 @@ pref("layers.max-active", -1); - pref("layers.tiles.adjust", true); - - // Set the default values, and then override per-platform as needed -+#ifdef MOZ_TREE_CAIRO - pref("layers.offmainthreadcomposition.enabled", true); -+#else -+// Disable for system cairo on suspicion of causing random crashes -+pref("layers.offmainthreadcomposition.enabled", false); -+#endif - // Compositor target frame rate. NOTE: If vsync is enabled the compositor - // frame rate will still be capped. - // -1 -> default (match layout.frame_rate or 60 FPS) Property changes on: branches/2016Q4/www/seamonkey/files/patch-modules-libpref-init-all.js ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c (nonexistent) @@ -1,16 +0,0 @@ ---- mozilla/media/mtransport/third_party/nICEr/src/util/mbslen.c~ -+++ mozilla/media/mtransport/third_party/nICEr/src/util/mbslen.c -@@ -54,6 +54,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - # endif - #endif - -+#ifdef __DragonFly__ -+#include -+# if __DragonFly_version > 300502 -+# define HAVE_XLOCALE -+# endif -+#endif -+ - #ifdef HAVE_XLOCALE - #include - #endif /* HAVE_XLOCALE */ Property changes on: branches/2016Q4/www/seamonkey/files/patch-media-mtransport-third_party-nICEr-src-util-mbslen.c ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1021761 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1021761 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1021761 (revision 429221) @@ -1,1157 +1,1177 @@ -diff --git configure.in configure.in +diff --git build/moz.configure/old.configure build/moz.configure/old.configure +index b95dd2b..4cbefd5 100644 +--- mozilla/build/moz.configure/old.configure ++++ mozilla/build/moz.configure/old.configure +@@ -305,6 +305,7 @@ def old_configure_options(*options): + '--with-nspr-prefix', + '--with-nss-exec-prefix', + '--with-nss-prefix', ++ '--with-oss', + '--with-pthreads', + '--with-qemu-exe', + '--with-servo', +diff --git old-configure.in configure.in index 48e60c0..ec08417 100644 ---- mozilla/configure.in -+++ mozilla/configure.in +--- mozilla/old-configure.in ++++ mozilla/old-configure.in @@ -5591,6 +5591,67 @@ fi AC_SUBST(MOZ_WEBM_ENCODER) dnl ================================== +dnl = Check OSS availability +dnl ================================== + +dnl If using Linux, Solaris or BSDs, ensure that OSS is available +case "$OS_TARGET" in +Linux|SunOS|DragonFly|FreeBSD|NetBSD|GNU/kFreeBSD) + MOZ_OSS=1 + ;; +esac + +MOZ_ARG_WITH_STRING(oss, +[ --with-oss[=PFX] Enable OpenSoundSystem support [installed at prefix PFX]], + OSSPREFIX=$withval) + +if test -n "$OSSPREFIX"; then + if test "$OSSPREFIX" != "no"; then + MOZ_OSS=1 + else + MOZ_OSS= + fi +fi + +_SAVE_CFLAGS=$CFLAGS +_SAVE_LIBS=$LIBS +if test -n "$MOZ_OSS"; then + dnl Prefer 4Front implementation + AC_MSG_CHECKING([MOZ_OSS_CFLAGS]) + if test "$OSSPREFIX" != "yes"; then + oss_conf=${OSSPREFIX%/usr}/etc/oss.conf + if test -f "$oss_conf"; then + . "$oss_conf" + else + OSSLIBDIR=$OSSPREFIX/lib/oss + fi + if test -d "$OSSLIBDIR"; then + MOZ_OSS_CFLAGS="$MOZ_OSS_CFLAGS -I$OSSLIBDIR/include" + fi + fi + AC_MSG_RESULT([$MOZ_OSS_CFLAGS]) + + CFLAGS="$CFLAGS $MOZ_OSS_CFLAGS" + MOZ_CHECK_HEADERS(sys/soundcard.h soundcard.h) + + if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \ + "$ac_cv_header_soundcard_h" != "yes"; then + AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET. Disable with --without-oss.]) + fi + + dnl Assume NetBSD implementation over SunAudio + AC_CHECK_LIB(ossaudio, _oss_ioctl, + [AC_DEFINE_UNQUOTED(CUBEB_OSS_DEFAULT_OUTPUT, "/dev/sound") + MOZ_OSS_LIBS="$MOZ_OSS_LIBS -lossaudio"]) +fi +CFLAGS=$_SAVE_CFLAGS +LIBS=$_SAVE_LIBS + +AC_SUBST(MOZ_OSS) +AC_SUBST_LIST(MOZ_OSS_CFLAGS) +AC_SUBST_LIST(MOZ_OSS_LIBS) + +dnl ================================== dnl = Check alsa availability on Linux dnl ================================== diff --git media/libcubeb/AUTHORS media/libcubeb/AUTHORS index b441e8a..950d9e5 100644 --- 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); @@ -327,10 +374,10 @@ alsa_refill_stream(cubeb_stream * stm) b[i] *= stm->volume; } } - wrote = snd_pcm_writei(stm->pcm, p, got); + wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); if (wrote == -EPIPE) { - snd_pcm_recover(stm->pcm, wrote, 1); - wrote = snd_pcm_writei(stm->pcm, p, got); + WRAP(snd_pcm_recover)(stm->pcm, wrote, 1); + wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got); } assert(wrote >= 0 && wrote == got); stm->write_position += wrote; @@ -342,7 +389,7 @@ alsa_refill_stream(cubeb_stream * stm) /* Fill the remaining buffer with silence to guarantee one full period has been written. */ - snd_pcm_writei(stm->pcm, (char *) p + got, avail - got); + WRAP(snd_pcm_writei)(stm->pcm, (char *) p + got, avail - got); set_timeout(&stm->drain_timeout, buffer_time * 1000); @@ -453,26 +500,26 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm) slave_def = NULL; - r = snd_config_search(root_pcm, "slave", &slave_pcm); + r = WRAP(snd_config_search)(root_pcm, "slave", &slave_pcm); if (r < 0) { return NULL; } - r = snd_config_get_string(slave_pcm, &string); + r = WRAP(snd_config_get_string)(slave_pcm, &string); if (r >= 0) { - r = snd_config_search_definition(lconf, "pcm_slave", string, &slave_def); + r = WRAP(snd_config_search_definition)(lconf, "pcm_slave", string, &slave_def); if (r < 0) { return NULL; } } do { - r = snd_config_search(slave_def ? slave_def : slave_pcm, "pcm", &pcm); + r = WRAP(snd_config_search)(slave_def ? slave_def : slave_pcm, "pcm", &pcm); if (r < 0) { break; } - r = snd_config_get_string(slave_def ? slave_def : slave_pcm, &string); + r = WRAP(snd_config_get_string)(slave_def ? slave_def : slave_pcm, &string); if (r < 0) { break; } @@ -481,7 +528,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm) if (r < 0 || r > (int) sizeof(node_name)) { break; } - r = snd_config_search(lconf, node_name, &pcm); + r = WRAP(snd_config_search)(lconf, node_name, &pcm); if (r < 0) { break; } @@ -490,7 +537,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm) } while (0); if (slave_def) { - snd_config_delete(slave_def); + WRAP(snd_config_delete)(slave_def); } return NULL; @@ -513,22 +560,22 @@ init_local_config_with_workaround(char const * pcm_name) lconf = NULL; - if (snd_config == NULL) { + if (*WRAP(snd_config) == NULL) { return NULL; } - r = snd_config_copy(&lconf, snd_config); + r = WRAP(snd_config_copy)(&lconf, *WRAP(snd_config)); if (r < 0) { return NULL; } do { - r = snd_config_search_definition(lconf, "pcm", pcm_name, &pcm_node); + r = WRAP(snd_config_search_definition)(lconf, "pcm", pcm_name, &pcm_node); if (r < 0) { break; } - r = snd_config_get_id(pcm_node, &string); + r = WRAP(snd_config_get_id)(pcm_node, &string); if (r < 0) { break; } @@ -537,7 +584,7 @@ init_local_config_with_workaround(char const * pcm_name) if (r < 0 || r > (int) sizeof(node_name)) { break; } - r = snd_config_search(lconf, node_name, &pcm_node); + r = WRAP(snd_config_search)(lconf, node_name, &pcm_node); if (r < 0) { break; } @@ -548,12 +595,12 @@ init_local_config_with_workaround(char const * pcm_name) } /* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */ - r = snd_config_search(pcm_node, "type", &node); + r = WRAP(snd_config_search)(pcm_node, "type", &node); if (r < 0) { break; } - r = snd_config_get_string(node, &string); + r = WRAP(snd_config_get_string)(node, &string); if (r < 0) { break; } @@ -564,18 +611,18 @@ init_local_config_with_workaround(char const * pcm_name) /* Don't clobber an explicit existing handle_underrun value, set it only if it doesn't already exist. */ - r = snd_config_search(pcm_node, "handle_underrun", &node); + r = WRAP(snd_config_search)(pcm_node, "handle_underrun", &node); if (r != -ENOENT) { break; } /* Disable pcm_pulse's asynchronous underrun handling. */ - r = snd_config_imake_integer(&node, "handle_underrun", 0); + r = WRAP(snd_config_imake_integer)(&node, "handle_underrun", 0); if (r < 0) { break; } - r = snd_config_add(pcm_node, node); + r = WRAP(snd_config_add)(pcm_node, node); if (r < 0) { break; } @@ -583,7 +630,7 @@ init_local_config_with_workaround(char const * pcm_name) return lconf; } while (0); - snd_config_delete(lconf); + WRAP(snd_config_delete)(lconf); return NULL; } @@ -595,9 +642,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, snd_pcm_stream_t stream, snd_config_t * l pthread_mutex_lock(&cubeb_alsa_mutex); if (local_config) { - r = snd_pcm_open_lconf(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config); + r = WRAP(snd_pcm_open_lconf)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config); } else { - r = snd_pcm_open(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK); + r = WRAP(snd_pcm_open)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK); } pthread_mutex_unlock(&cubeb_alsa_mutex); @@ -610,7 +657,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm) int r; pthread_mutex_lock(&cubeb_alsa_mutex); - r = snd_pcm_close(pcm); + r = WRAP(snd_pcm_close)(pcm); pthread_mutex_unlock(&cubeb_alsa_mutex); return r; @@ -667,12 +714,65 @@ alsa_init(cubeb ** context, char const * context_name) pthread_attr_t attr; snd_pcm_t * dummy; + void * libasound = NULL; + +#ifndef DISABLE_LIBASOUND_DLOPEN + libasound = dlopen("libasound.so", RTLD_LAZY); + if (!libasound) { + return CUBEB_ERROR; + } + +#define LOAD(x) do { \ + cubeb_##x = dlsym(libasound, #x); \ + if (!cubeb_##x) { \ + dlclose(libasound); \ + return CUBEB_ERROR; \ + } \ + } while(0) + + LOAD(snd_config); + LOAD(snd_config_add); + LOAD(snd_config_copy); + LOAD(snd_config_delete); + LOAD(snd_config_get_id); + LOAD(snd_config_get_string); + LOAD(snd_config_imake_integer); + LOAD(snd_config_search); + LOAD(snd_config_search_definition); + LOAD(snd_lib_error_set_handler); + LOAD(snd_pcm_avail_update); + LOAD(snd_pcm_close); + LOAD(snd_pcm_delay); + LOAD(snd_pcm_drain); + LOAD(snd_pcm_frames_to_bytes); + LOAD(snd_pcm_get_params); + /* snd_pcm_hw_params_alloca is actually a macro */ + /* LOAD(snd_pcm_hw_params_alloca); */ + LOAD(snd_pcm_hw_params_sizeof); + LOAD(snd_pcm_hw_params_any); + LOAD(snd_pcm_hw_params_get_channels_max); + LOAD(snd_pcm_hw_params_get_rate); + LOAD(snd_pcm_hw_params_set_rate_near); + LOAD(snd_pcm_nonblock); + LOAD(snd_pcm_open); + LOAD(snd_pcm_open_lconf); + LOAD(snd_pcm_pause); + LOAD(snd_pcm_poll_descriptors); + LOAD(snd_pcm_poll_descriptors_count); + LOAD(snd_pcm_poll_descriptors_revents); + LOAD(snd_pcm_recover); + LOAD(snd_pcm_set_params); + LOAD(snd_pcm_state); + LOAD(snd_pcm_writei); + +#undef LOAD +#endif assert(context); *context = NULL; pthread_mutex_lock(&cubeb_alsa_mutex); if (!cubeb_alsa_error_handler_set) { - snd_lib_error_set_handler(silent_error_handler); + WRAP(snd_lib_error_set_handler)(silent_error_handler); cubeb_alsa_error_handler_set = 1; } pthread_mutex_unlock(&cubeb_alsa_mutex); @@ -680,6 +780,8 @@ alsa_init(cubeb ** context, char const * context_name) ctx = calloc(1, sizeof(*ctx)); assert(ctx); + ctx->libasound = libasound; + ctx->ops = &alsa_ops; r = pthread_mutex_init(&ctx->mutex, NULL); @@ -729,7 +831,7 @@ alsa_init(cubeb ** context, char const * context_name) config fails with EINVAL, the PA PCM is too old for this workaround. */ if (r == -EINVAL) { pthread_mutex_lock(&cubeb_alsa_mutex); - snd_config_delete(ctx->local_config); + WRAP(snd_config_delete)(ctx->local_config); pthread_mutex_unlock(&cubeb_alsa_mutex); ctx->local_config = NULL; } else if (r >= 0) { @@ -768,9 +870,13 @@ alsa_destroy(cubeb * ctx) pthread_mutex_destroy(&ctx->mutex); free(ctx->fds); + if (ctx->libasound) { + dlclose(ctx->libasound); + } + if (ctx->local_config) { pthread_mutex_lock(&cubeb_alsa_mutex); - snd_config_delete(ctx->local_config); + WRAP(snd_config_delete)(ctx->local_config); pthread_mutex_unlock(&cubeb_alsa_mutex); } @@ -838,7 +944,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, return CUBEB_ERROR; } - r = snd_pcm_nonblock(stm->pcm, 1); + r = WRAP(snd_pcm_nonblock)(stm->pcm, 1); assert(r == 0); /* Ugly hack: the PA ALSA plugin allows buffer configurations that can't -@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name, +@@ -859,7 +965,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre latency = latency < 500 ? 500 : latency; } - r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED, -- 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); + stm->params.channels, stm->params.rate, 1, + latency * 1000); if (r < 0) { - alsa_stream_destroy(stm); +@@ -867,15 +973,15 @@ alsa_stream_init(cubeb * ctx, cubeb_stre return CUBEB_ERROR_INVALID_FORMAT; } -- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size); -+ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->period_size); +- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &period_size); ++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &period_size); assert(r == 0); - stm->nfds = snd_pcm_poll_descriptors_count(stm->pcm); + stm->nfds = WRAP(snd_pcm_poll_descriptors_count)(stm->pcm); assert(stm->nfds > 0); stm->saved_fds = calloc(stm->nfds, sizeof(struct pollfd)); assert(stm->saved_fds); - r = snd_pcm_poll_descriptors(stm->pcm, stm->saved_fds, stm->nfds); + r = WRAP(snd_pcm_poll_descriptors)(stm->pcm, stm->saved_fds, stm->nfds); assert((nfds_t) r == stm->nfds); r = pthread_cond_init(&stm->cond, NULL); @@ -895,7 +1001,7 @@ alsa_stream_destroy(cubeb_stream * stm) pthread_mutex_lock(&stm->mutex); if (stm->pcm) { if (stm->state == DRAINING) { - snd_pcm_drain(stm->pcm); + WRAP(snd_pcm_drain)(stm->pcm); } alsa_locked_pcm_close(stm->pcm); stm->pcm = NULL; @@ -938,12 +1044,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) return CUBEB_ERROR; } - r = snd_pcm_hw_params_any(stm->pcm, hw_params); + r = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params); if (r < 0) { return CUBEB_ERROR; } - r = snd_pcm_hw_params_get_channels_max(hw_params, max_channels); + r = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels); if (r < 0) { return CUBEB_ERROR; } @@ -963,34 +1069,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) { /* get a pcm, disabling resampling, so we get a rate the * hardware/dmix/pulse/etc. supports. */ -- r = snd_pcm_open(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); +- r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); + r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); if (r < 0) { return CUBEB_ERROR; } - r = snd_pcm_hw_params_any(pcm, hw_params); + r = WRAP(snd_pcm_hw_params_any)(pcm, hw_params); if (r < 0) { - snd_pcm_close(pcm); + WRAP(snd_pcm_close)(pcm); return CUBEB_ERROR; } - r = snd_pcm_hw_params_get_rate(hw_params, rate, &dir); + r = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir); if (r >= 0) { /* There is a default rate: use it. */ - snd_pcm_close(pcm); + WRAP(snd_pcm_close)(pcm); return CUBEB_OK; } /* Use a common rate, alsa may adjust it based on hw/etc. capabilities. */ *rate = 44100; - r = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL); + r = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL); if (r < 0) { - snd_pcm_close(pcm); + WRAP(snd_pcm_close)(pcm); return CUBEB_ERROR; } - snd_pcm_close(pcm); + WRAP(snd_pcm_close)(pcm); return CUBEB_OK; } @@ -1013,7 +1119,7 @@ alsa_stream_start(cubeb_stream * stm) ctx = stm->context; pthread_mutex_lock(&stm->mutex); - snd_pcm_pause(stm->pcm, 0); + WRAP(snd_pcm_pause)(stm->pcm, 0); gettimeofday(&stm->last_activity, NULL); pthread_mutex_unlock(&stm->mutex); @@ -1047,7 +1153,7 @@ alsa_stream_stop(cubeb_stream * stm) pthread_mutex_unlock(&ctx->mutex); pthread_mutex_lock(&stm->mutex); - snd_pcm_pause(stm->pcm, 1); + WRAP(snd_pcm_pause)(stm->pcm, 1); pthread_mutex_unlock(&stm->mutex); return CUBEB_OK; @@ -1063,8 +1169,8 @@ alsa_stream_get_position(cubeb_stream * stm, uint64_t * position) pthread_mutex_lock(&stm->mutex); delay = -1; - if (snd_pcm_state(stm->pcm) != SND_PCM_STATE_RUNNING || - snd_pcm_delay(stm->pcm, &delay) != 0) { + if (WRAP(snd_pcm_state)(stm->pcm) != SND_PCM_STATE_RUNNING || + WRAP(snd_pcm_delay)(stm->pcm, &delay) != 0) { *position = stm->last_position; pthread_mutex_unlock(&stm->mutex); return CUBEB_OK; @@ -1089,7 +1195,7 @@ alsa_stream_get_latency(cubeb_stream * stm, uint32_t * latency) snd_pcm_sframes_t delay; /* This function returns the delay in frames until a frame written using snd_pcm_writei is sent to the DAC. The DAC delay should be < 1ms anyways. */ - if (snd_pcm_delay(stm->pcm, &delay)) { + if (WRAP(snd_pcm_delay)(stm->pcm, &delay)) { return CUBEB_ERROR; } diff --git media/libcubeb/src/cubeb_oss.c media/libcubeb/src/cubeb_oss.c new file mode 100644 index 0000000..5e38e27 --- /dev/null +++ mozilla/media/libcubeb/src/cubeb_oss.c -@@ -0,0 +1,432 @@ +@@ -0,0 +1,442 @@ +/* + * Copyright © 2014 Mozilla Foundation + * + * This program is made available under an ISC-style license. See the + * accompanying file LICENSE for details. + */ +#if defined(HAVE_SYS_SOUNDCARD_H) +#include +#else +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include ++#include + +#include "cubeb/cubeb.h" +#include "cubeb-internal.h" + +#ifndef CUBEB_OSS_DEFAULT_OUTPUT +#define CUBEB_OSS_DEFAULT_OUTPUT "/dev/dsp" +#endif + +#define OSS_BUFFER_SIZE 1024 + +struct cubeb { + struct cubeb_ops const * ops; +}; + +struct cubeb_stream { + cubeb * context; + + cubeb_data_callback data_callback; + cubeb_state_callback state_callback; + void * user_ptr; + float volume; + float panning; + + pthread_mutex_t state_mutex; + pthread_cond_t state_cond; + + int running; + int stopped; + int floating; + + /* These two vars are needed to support old versions of OSS */ + unsigned int position_bytes; + unsigned int last_position_bytes; + + uint64_t written_frags; /* The number of fragments written to /dev/dsp */ + uint64_t missed_frags; /* fragments output with stopped stream */ + + cubeb_stream_params params; + int fd; + pthread_t th; +}; + +static struct cubeb_ops const oss_ops; + +int oss_init(cubeb ** context, char const * context_name) +{ + cubeb* ctx = (cubeb*)malloc(sizeof(cubeb)); + ctx->ops = &oss_ops; + *context = ctx; + return CUBEB_OK; +} + +static void oss_destroy(cubeb *ctx) +{ + free(ctx); +} + +static char const * oss_get_backend_id(cubeb * context) +{ + static char oss_name[] = "oss"; + return oss_name; +} + +static int oss_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) +{ + *max_channels = 2; /* Let's support only stereo for now */ + return CUBEB_OK; +} + +static int oss_get_min_latency(cubeb * context, cubeb_stream_params params, + uint32_t * latency_ms) +{ + /* 40ms is a big enough number to work ok */ + *latency_ms = 40; + return CUBEB_OK; +} + +static int oss_get_preferred_sample_rate(cubeb *context, uint32_t * rate) +{ + /* 48000 seems a prefered choice for most audio devices + * and a good choice for OSS */ + *rate = 48000; + return CUBEB_OK; +} + +static void run_state_callback(cubeb_stream *stream, cubeb_state state) +{ + if (stream->state_callback) { + stream->state_callback(stream, stream->user_ptr, state); + } +} + +static long run_data_callback(cubeb_stream *stream, void *buffer, long nframes) +{ + long got = 0; + pthread_mutex_lock(&stream->state_mutex); + if (stream->data_callback && stream->running && !stream->stopped) { + pthread_mutex_unlock(&stream->state_mutex); -+ got = stream->data_callback(stream, stream->user_ptr, buffer, nframes); ++ got = stream->data_callback(stream, stream->user_ptr, NULL, buffer, nframes); + } else { + pthread_mutex_unlock(&stream->state_mutex); + } + return got; +} + +static void apply_volume_int(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); + apply_volume_float(f_buffer, got*stream->params.channels, + stream->volume, stream->panning); + for (i=0; i<((unsigned long)got)*stream->params.channels; i++) { + /* Clipping is prefered to overflow */ + if(f_buffer[i]>=1.0){ + f_buffer[i]=1.0; + } + if(f_buffer[i]<=-1.0){ + f_buffer[i]=-1.0; + } + /* One might think that multipling by 32767.0 is logical but results in clipping */ + buffer[i] = f_buffer[i]*32767.0; + } + } else { + got = run_data_callback(stream, buffer, + OSS_BUFFER_SIZE/stream->params.channels); + apply_volume_int(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, ++ cubeb_devid input_device, ++ cubeb_stream_params * input_stream_params, ++ cubeb_devid output_device, ++ cubeb_stream_params * output_stream_params, + unsigned int latency, + cubeb_data_callback data_callback, + cubeb_state_callback state_callback, void * user_ptr) +{ + cubeb_stream* stream = (cubeb_stream*)malloc(sizeof(cubeb_stream)); + stream->context = context; + stream->data_callback = data_callback; + stream->state_callback = state_callback; + stream->user_ptr = user_ptr; + ++ assert(!input_stream_params && "not supported."); ++ if (input_device || output_device) { ++ /* Device selection not yet implemented. */ ++ return CUBEB_ERROR_DEVICE_UNAVAILABLE; ++ } ++ + if ((stream->fd = open(CUBEB_OSS_DEFAULT_OUTPUT, O_WRONLY)) == -1) { + free(stream); + return CUBEB_ERROR; + } +#define SET(what, to) do { unsigned int i = to; \ + int j = ioctl(stream->fd, what, &i); \ + if (j == -1 || i != to) { \ + close(stream->fd); \ + free(stream); \ + return CUBEB_ERROR_INVALID_FORMAT; } } while (0) + -+ stream->params = stream_params; ++ stream->params = *output_stream_params; + stream->volume = 1.0; + stream->panning = 0.0; + + oss_try_set_latency(stream, latency); + + stream->floating = 0; + SET(SNDCTL_DSP_CHANNELS, 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, + .stream_set_volume = oss_stream_set_volume, + .stream_set_panning = oss_stream_set_panning, + .stream_get_current_device = NULL, + .stream_device_destroy = NULL, + .stream_register_device_changed_callback = NULL +}; diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build index 8b7a0dd..31212ce 100644 --- 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 media/libcubeb/tests/moz.build media/libcubeb/tests/moz.build index 1b17c7b..48b56c2 100644 --- mozilla/media/libcubeb/tests/moz.build +++ mozilla/media/libcubeb/tests/moz.build @@ -73,7 +73,6 @@ elif CONFIG['OS_TARGET'] == 'OpenBSD': 'sndio', ] else: - OS_LIBS += CONFIG['MOZ_ALSA_LIBS'] OS_LIBS += CONFIG['MOZ_PULSEAUDIO_LIBS'] if CONFIG['GNU_CXX']: diff --git media/libcubeb/update.sh media/libcubeb/update.sh index a96badd..2f9585e 100755 --- mozilla/media/libcubeb/update.sh +++ mozilla/media/libcubeb/update.sh @@ -10,6 +10,7 @@ cp $1/src/cubeb_audiounit.c src cp $1/src/cubeb_pulse.c src cp $1/src/cubeb_sndio.c src cp $1/src/cubeb_opensl.c src +cp $1/src/cubeb_oss.c src cp $1/src/cubeb_audiotrack.c src cp $1/src/cubeb_wasapi.cpp src cp $1/src/cubeb_resampler.h src diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build index 991f03f..3d99eb5 100644 --- mozilla/media/webrtc/signaling/test/common.build +++ mozilla/media/webrtc/signaling/test/common.build @@ -102,8 +102,8 @@ USE_LIBS += ['mozglue'] OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS'] OS_LIBS += CONFIG['REALTIME_LIBS'] -if CONFIG['MOZ_ALSA']: - OS_LIBS += CONFIG['MOZ_ALSA_LIBS'] +if CONFIG['MOZ_OSS']: + OS_LIBS += CONFIG['MOZ_OSS_LIBS'] - if CONFIG['MOZ_NATIVE_JPEG']: + if CONFIG['MOZ_SYSTEM_JPEG']: OS_LIBS += CONFIG['MOZ_JPEG_LIBS'] diff --git toolkit/library/moz.build toolkit/library/moz.build index e191f13..4fb268a 100644 --- mozilla/toolkit/library/moz.build +++ mozilla/toolkit/library/moz.build -@@ -234,8 +234,8 @@ if CONFIG['MOZ_NATIVE_LIBVPX']: +@@ -234,8 +234,8 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']: if not CONFIG['MOZ_TREE_PIXMAN']: OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS'] -if CONFIG['MOZ_ALSA']: - OS_LIBS += CONFIG['MOZ_ALSA_LIBS'] +if CONFIG['MOZ_OSS']: + OS_LIBS += CONFIG['MOZ_OSS_LIBS'] if CONFIG['HAVE_CLOCK_MONOTONIC']: OS_LIBS += CONFIG['REALTIME_LIBS'] Index: branches/2016Q4/www/seamonkey/files/patch-bug1231349 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1231349 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1231349 (revision 429221) @@ -0,0 +1,16 @@ +diff --git a/suite/installer/package-manifest.in b/suite/installer/package-manifest.in +--- suite/installer/package-manifest.in ++++ suite/installer/package-manifest.in +@@ -911,3 +956,12 @@ + @RESPATH@/extensions/debugQA@mozilla.org/chrome/debugqa@JAREXT@ + #endif + #endif ++ ++#ifdef MOZ_CALENDAR ++[calendar] ++#ifdef NIGHTLY_BUILD ++@RESPATH@/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/ ++#else ++@RESPATH@/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/ ++#endif ++#endif Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1231349 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1256136 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1256136 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1256136 (revision 429221) @@ -0,0 +1,21 @@ +diff --git xpcom/glue/nsISupportsImpl.h xpcom/glue/nsISupportsImpl.h +index 9102102..e1f34c0 100644 +--- mozilla/xpcom/glue/nsISupportsImpl.h ++++ mozilla/xpcom/glue/nsISupportsImpl.h +@@ -32,11 +32,11 @@ + #include "mozilla/TypeTraits.h" + + #if defined(__clang__) +- // bug 1028428 shows that at least in FreeBSD 10.0 with Clang 3.4 and libc++ 3.4, +- // std::is_destructible is buggy in that it returns false when it should return true +- // on ipc::SharedMemory. On the other hand, all Clang versions currently in use +- // seem to handle the fallback just fine. +-# define MOZ_CAN_USE_IS_DESTRUCTIBLE_FALLBACK ++# if MOZ_USING_LIBCXX && __has_include() ++# define MOZ_HAVE_STD_IS_DESTRUCTIBLE ++# else ++# define MOZ_CAN_USE_IS_DESTRUCTIBLE_FALLBACK ++# endif + #elif defined(__GNUC__) + // GCC 4.7 is has buggy std::is_destructible + # if MOZ_USING_LIBSTDCXX && MOZ_GCC_VERSION_AT_LEAST(4, 8, 0) Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1256136 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1288587 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1288587 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1288587 (revision 429221) @@ -0,0 +1,67 @@ +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index 855214a..1e91d51 100644 +--- mozilla/build/moz.configure/init.configure ++++ mozilla/build/moz.configure/init.configure +@@ -165,16 +165,17 @@ option(env='PYTHON', nargs=1, help='Python interpreter') + # ============================================================== + @depends('PYTHON', check_build_environment, mozconfig, '--help') + @imports('os') + @imports('sys') + @imports('subprocess') + @imports(_from='mozbuild.configure.util', _import='LineIO') + @imports(_from='mozbuild.virtualenv', _import='VirtualenvManager') + @imports(_from='mozbuild.virtualenv', _import='verify_python_version') ++@imports(_from='__builtin__', _import='KeyError') + @imports('distutils.sysconfig') + def virtualenv_python(env_python, build_env, mozconfig, help): + if help: + return + + python = env_python[0] if env_python else None + + # Ideally we'd rely on the mozconfig injection from mozconfig_options, +@@ -184,16 +185,22 @@ def virtualenv_python(env_python, build_env, mozconfig, help): + if 'PYTHON' in mozconfig['env']['added']: + python = mozconfig['env']['added']['PYTHON'] + elif 'PYTHON' in mozconfig['env']['modified']: + python = mozconfig['env']['modified']['PYTHON'][1] + elif 'PYTHON' in mozconfig['vars']['added']: + python = mozconfig['vars']['added']['PYTHON'] + elif 'PYTHON' in mozconfig['vars']['modified']: + python = mozconfig['vars']['modified']['PYTHON'][1] ++ for i in ('env', 'vars'): ++ for j in ('added', 'modified'): ++ try: ++ del mozconfig[i][j]['PYTHON'] ++ except KeyError: ++ pass + + with LineIO(lambda l: log.error(l)) as out: + verify_python_version(out) + topsrcdir, topobjdir = build_env.topsrcdir, build_env.topobjdir + if topobjdir.endswith('/js/src'): + topobjdir = topobjdir[:-7] + + with LineIO(lambda l: log.info(l)) as out: +@@ -219,17 +226,20 @@ def virtualenv_python(env_python, build_env, mozconfig, help): + log.info('Creating Python environment') + manager.build(python) + + python = normsep(manager.python_path) + + if python != normsep(sys.executable): + log.info('Reexecuting in the virtualenv') + if env_python: +- del os.environ['PYTHON'] ++ try: ++ del os.environ['PYTHON'] ++ except KeyError: ++ pass + # One would prefer to use os.execl, but that's completely borked on + # Windows. + sys.exit(subprocess.call([python] + sys.argv)) + + # We are now in the virtualenv + if not distutils.sysconfig.get_python_lib(): + die('Could not determine python site packages directory') + Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1288587 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1299694 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1299694 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1299694 (revision 429221) @@ -0,0 +1,31 @@ +commit 6ab2496 +Author: Chris Pearce +Date: Mon Sep 5 13:54:37 2016 +1200 + + Bug 1299694 - Ensure we don't enable Widevine unintentionally. r=glandium + + On FreeBSD the target.kernel etc checks in enable_eme are failing, + but we're still falling through to |return value|, and so Widevine + is being enabled. If we remove the |return value| from enable_eme + we at least make Widevine disabled where it's not supposed to be + enabled. + + MozReview-Commit-ID: D1h0IUidxhv +--- + toolkit/moz.configure | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git toolkit/moz.configure toolkit/moz.configure +index 0c98c7a..a00b6eb 100644 +--- mozilla/toolkit/moz.configure ++++ mozilla/toolkit/moz.configure +@@ -366,7 +366,8 @@ def enable_eme(value, target): + return value + elif value and value.origin != 'default': + die('%s is not supported on %s' % (value.format('--enable-eme'), target.alias)) +- return value ++ # Return the same type of OptionValue (Positive or Negative), with an empty tuple. ++ return value.__class__(()) + + @depends(enable_eme, fmp4) + def eme(value, fmp4): Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1299694 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1315986 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1315986 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1315986 (revision 429221) @@ -0,0 +1,49 @@ +commit c0d2685148b5 +Author: Jonathan Kew +Date: Wed Nov 9 15:07:54 2016 +0000 + + Bug 1315986 - Update line-break class mapping in nsJISx4051LineBreaker to handle new classes in ICU58/Unicode 9, and add assertions to detect any future additions that will require further updates. r=masayuki +--- + intl/lwbrk/nsJISx4051LineBreaker.cpp | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git intl/lwbrk/nsJISx4051LineBreaker.cpp intl/lwbrk/nsJISx4051LineBreaker.cpp +index 0d89e91..1b262fa 100644 +--- mozilla/intl/lwbrk/nsJISx4051LineBreaker.cpp ++++ mozilla/intl/lwbrk/nsJISx4051LineBreaker.cpp +@@ -12,6 +12,10 @@ + #include "nsTArray.h" + #include "nsUnicodeProperties.h" + ++#if ENABLE_INTL_API ++#include "unicode/uchar.h" // for U_LB_COUNT until bug 1305700 ++#endif ++ + /* + + Simplification of Pair Table in JIS X 4051 +@@ -547,10 +551,22 @@ GetClass(uint32_t u) + /* CLOSE_PARENTHESIS = 36, [CP] */ CLASS_CLOSE_LIKE_CHARACTER, + /* CONDITIONAL_JAPANESE_STARTER = 37, [CJ] */ CLASS_CLOSE, + /* HEBREW_LETTER = 38, [HL] */ CLASS_CHARACTER, +- /* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER ++ /* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER, ++#if U_ICU_VERSION_MAJOR_NUM > 57 ++ /* E_BASE = 40, [EB] */ CLASS_BREAKABLE, ++ /* E_MODIFIER = 41, [EM] */ CLASS_CHARACTER, ++ /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER, ++#endif + }; + +- return sUnicodeLineBreakToClass[mozilla::unicode::GetLineBreakClass(u)]; ++#if ENABLE_INTL_API ++ static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass), ++ "Gecko vs ICU LineBreak class mismatch"); ++#endif ++ ++ auto cls = mozilla::unicode::GetLineBreakClass(u); ++ MOZ_ASSERT(cls < mozilla::ArrayLength(sUnicodeLineBreakToClass)); ++ return sUnicodeLineBreakToClass[cls]; + } + + static bool Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1315986 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1320621 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1320621 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug1320621 (revision 429221) @@ -1,39 +1,39 @@ Make sure --enable-system-hunspell picks up system headers --- mozilla/extensions/spellcheck/hunspell/glue/moz.build +++ mozilla/extensions/spellcheck/hunspell/glue/moz.build @@ -11,12 +11,14 @@ UNIFIED_SOURCES += [ 'RemoteSpellCheckEngineParent.cpp', ] -CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] - FINAL_LIBRARY = 'xul' -+if CONFIG['MOZ_NATIVE_HUNSPELL']: ++if CONFIG['MOZ_SYSTEM_HUNSPELL']: + CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] +else: + LOCAL_INCLUDES += ['../src'] + LOCAL_INCLUDES += [ - '../src', '/dom/base', '/extensions/spellcheck/src', ] --- mozilla/extensions/spellcheck/src/moz.build +++ mozilla/extensions/spellcheck/src/moz.build @@ -17,9 +17,13 @@ UNIFIED_SOURCES += [ FINAL_LIBRARY = 'xul' -+if CONFIG['MOZ_NATIVE_HUNSPELL']: ++if CONFIG['MOZ_SYSTEM_HUNSPELL']: + CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS'] +else: + LOCAL_INCLUDES += ['../hunspell/src'] + LOCAL_INCLUDES += [ '../hunspell/glue', - '../hunspell/src', '/dom/base', ] EXPORTS.mozilla += [ Index: branches/2016Q4/www/seamonkey/files/patch-bug1320991 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1320991 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1320991 (revision 429221) @@ -0,0 +1,24 @@ +--- mozilla/modules/libmar/tests/moz.build.orig 2016-10-31 20:15:26 UTC ++++ mozilla/modules/libmar/tests/moz.build +@@ -9,21 +9,6 @@ XPCSHELL_TESTS_MANIFESTS += ['unit/xpcsh + DEFINES['BIN_SUFFIX'] = CONFIG['BIN_SUFFIX'] + + if CONFIG['OS_TARGET'] != 'Android': +- nss_files = ['nss3'] +- if not CONFIG['MOZ_FOLD_LIBS']: +- nss_files.extend([ +- 'nssutil3', +- 'plc4', +- 'nspr4', +- 'plds4', +- ]) +- TEST_HARNESS_FILES.xpcshell.modules.libmar.tests.unit += sorted( +- ['!/dist/bin/%s%s%s' % ( +- CONFIG['DLL_PREFIX'], +- name, +- CONFIG['DLL_SUFFIX'], +- ) for name in nss_files] +- ) + TEST_HARNESS_FILES.xpcshell.modules.libmar.tests.unit += [ + '!../tool/signmar%s' % CONFIG['BIN_SUFFIX'], + ] Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1320991 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1321877 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1321877 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1321877 (revision 429221) @@ -0,0 +1,42 @@ +commit a13d95795217 +Author: +Date: Thu Dec 8 18:20:12 2016 -0600 + + Bug 1321877. Fix compiler warnings in Downscaler.h when skia is not enabled. r=tnikkel +--- + image/Downscaler.h | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git image/Downscaler.h image/Downscaler.h +index 21179a38f200..0bdef0eaa646 100644 +--- mozilla/image/Downscaler.h ++++ mozilla/image/Downscaler.h +@@ -154,14 +154,14 @@ private: + class Downscaler + { + public: +- explicit Downscaler(const nsIntSize&) ++ explicit Downscaler(const nsIntSize&) : mScale(1.0, 1.0) + { + MOZ_RELEASE_ASSERT(false, "Skia is not enabled"); + } + +- const nsIntSize& OriginalSize() const { return nsIntSize(); } +- const nsIntSize& TargetSize() const { return nsIntSize(); } +- const gfxSize& Scale() const { return gfxSize(1.0, 1.0); } ++ const nsIntSize& OriginalSize() const { return mSize; } ++ const nsIntSize& TargetSize() const { return mSize; } ++ const gfxSize& Scale() const { return mScale; } + + nsresult BeginFrame(const nsIntSize&, const Maybe&, uint8_t*, bool, bool = false) + { +@@ -177,6 +177,9 @@ public: + DownscalerInvalidRect TakeInvalidRect() { return DownscalerInvalidRect(); } + void ResetForNextProgressivePass() { } + const nsIntSize FrameSize() const { return nsIntSize(0, 0); } ++private: ++ nsIntSize mSize; ++ gfxSize mScale; + }; + + #endif // MOZ_ENABLE_SKIA Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1321877 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1322112 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1322112 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1322112 (revision 429221) @@ -0,0 +1,23 @@ +--- mozilla/image/decoders/nsIconDecoder.cpp ++++ mozilla/image/decoders/nsIconDecoder.cpp +@@ -89,17 +89,18 @@ nsIconDecoder::ReadRowOfPixels(const cha + { + MOZ_ASSERT(aLength % 4 == 0, "Rows should contain a multiple of four bytes"); + + auto result = mPipe.WritePixels([&]() -> NextPixel { + if (aLength == 0) { + return AsVariant(WriteState::NEED_MORE_DATA); // Done with this row. + } + +- uint32_t pixel = *reinterpret_cast(aData); ++ uint32_t pixel; ++ memcpy(&pixel, aData, 4); + aData += 4; + aLength -= 4; + + return AsVariant(pixel); + }); + + MOZ_ASSERT(result != WriteState::FAILURE); + + Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1322112 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug1322660 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug1322660 (nonexistent) +++ branches/2016Q4/www/seamonkey/files/patch-bug1322660 (revision 429221) @@ -0,0 +1,80 @@ +--- mozilla/modules/woff2/src/store_bytes.h ++++ mozilla/modules/woff2/src/store_bytes.h +@@ -29,41 +29,44 @@ inline size_t StoreU32(uint8_t* dst, size_t offset, uint32_t x) { + dst[offset + 1] = x >> 16; + dst[offset + 2] = x >> 8; + dst[offset + 3] = x; + return offset + 4; + } + + inline size_t Store16(uint8_t* dst, size_t offset, int x) { + #if (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) +- *reinterpret_cast(dst + offset) = +- ((x & 0xFF) << 8) | ((x & 0xFF00) >> 8); ++ uint16_t v = ((x & 0xFF) << 8) | ((x & 0xFF00) >> 8); ++ memcpy(dst + offset, &v, 2); + #elif (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)) +- *reinterpret_cast(dst + offset) = static_cast(x); ++ uint16_t v = static_cast(x); ++ memcpy(dst + offset, &v, 2); + #else + dst[offset] = x >> 8; + dst[offset + 1] = x; + #endif + return offset + 2; + } + + inline void StoreU32(uint32_t val, size_t* offset, uint8_t* dst) { + dst[(*offset)++] = val >> 24; + dst[(*offset)++] = val >> 16; + dst[(*offset)++] = val >> 8; + dst[(*offset)++] = val; + } + + inline void Store16(int val, size_t* offset, uint8_t* dst) { + #if (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) +- *reinterpret_cast(dst + *offset) = ++ uint16_t v = ((val & 0xFF) << 8) | ((val & 0xFF00) >> 8); ++ memcpy(dst + *offset, &v, 2); + ((val & 0xFF) << 8) | ((val & 0xFF00) >> 8); + *offset += 2; + #elif (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)) +- *reinterpret_cast(dst + *offset) = static_cast(val); ++ uint16_t v = static_cast(val); ++ memcpy(dst + *offset, &v, 2); + *offset += 2; + #else + dst[(*offset)++] = val >> 8; + dst[(*offset)++] = val; + #endif + } + + inline void StoreBytes(const uint8_t* data, size_t len, +--- mozilla/modules/woff2/src/woff2_common.cc ++++ mozilla/modules/woff2/src/woff2_common.cc +@@ -20,22 +20,23 @@ + + namespace woff2 { + + + uint32_t ComputeULongSum(const uint8_t* buf, size_t size) { + uint32_t checksum = 0; + size_t aligned_size = size & ~3; + for (size_t i = 0; i < aligned_size; i += 4) { ++ uint32_t v; ++ memcpy(&v, buf + i, 4); + #if (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) +- uint32_t v = *reinterpret_cast(buf + i); + checksum += (((v & 0xFF) << 24) | ((v & 0xFF00) << 8) | + ((v & 0xFF0000) >> 8) | ((v & 0xFF000000) >> 24)); + #elif (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)) +- checksum += *reinterpret_cast(buf + i); ++ checksum += v; + #else + checksum += (buf[i] << 24) | (buf[i + 1] << 16) | + (buf[i + 2] << 8) | buf[i + 3]; + #endif + } + + // treat size not aligned on 4 as if it were padded to 4 with 0's + if (size != aligned_size) { Property changes on: branches/2016Q4/www/seamonkey/files/patch-bug1322660 ___________________________________________________________________ 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/2016Q4/www/seamonkey/files/patch-bug702179 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug702179 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug702179 (revision 429221) @@ -1,10 +1,13 @@ ---- mozilla/js/src/moz.build.orig 2015-10-29 22:17:54 UTC -+++ mozilla/js/src/moz.build -@@ -637,7 +637,3 @@ +--- mozilla/js/src/moz.build.orig 2015-12-16 12:32:04.574425000 +0100 ++++ mozilla/js/src/moz.build 2015-12-16 12:32:09.032032000 +0100 +@@ -671,10 +671,6 @@ CFLAGS += CONFIG['MOZ_ICU_CFLAGS'] + CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS'] + LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES'] - if not CONFIG['GNU_CXX']: - ALLOW_COMPILER_WARNINGS = True -- -NO_EXPAND_LIBS = True - -DIST_INSTALL = True +- + # Prepare self-hosted JS code for embedding + GENERATED_FILES += ['selfhosted.out.h'] + selfhosted = GENERATED_FILES['selfhosted.out.h'] Index: branches/2016Q4/www/seamonkey/files/patch-bug826985 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug826985 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug826985 (revision 429221) @@ -1,179 +1,179 @@ commit 8024d93 Author: Henrik Gulbrandsen Date: Fri Jan 4 13:49:22 2013 +0100 Bug 826985 - Support more video formats for WebRTC via libv4l2 on Linux. --- config/system-headers | 1 + - configure.in | 7 +++++++ + old-configure.in | 7 +++++++ media/webrtc/signaling/test/Makefile.in | 1 + .../modules/video_capture/linux/device_info_linux.cc | 17 +++++++++++++++++ .../modules/video_capture/linux/video_capture_linux.cc | 16 +++++++++++++++- .../webrtc/modules/video_capture/video_capture.gypi | 11 +++++++++++ toolkit/library/Makefile.in | 1 + 6 files changed, 52 insertions(+), 1 deletion(-) diff --git config/system-headers config/system-headers index 55e4cd1..76567b3 100644 --- mozilla/config/system-headers +++ mozilla/config/system-headers -@@ -627,6 +627,7 @@ libgnome/libgnome.h +@@ -629,6 +629,7 @@ libgnome/libgnome.h libgnomeui/gnome-icon-lookup.h libgnomeui/gnome-icon-theme.h libgnomeui/gnome-ui-init.h +libv4l2.h - lib$routines.h limits limits.h -diff --git configure.in configure.in + link.h +diff --git old-configure.in configure.in index 55e4cd1..76567b3 100644 ---- mozilla/configure.in -+++ mozilla/configure.in +--- mozilla/old-configure.in ++++ mozilla/old-configure.in @@ -5309,6 +5309,9 @@ if test -n "$MOZ_WEBRTC"; then MOZ_VP8_ENCODER=1 MOZ_VP8_ERROR_CONCEALMENT=1 + dnl with libv4l2 we can support more cameras + PKG_CHECK_MODULES(MOZ_LIBV4L2, libv4l2) + dnl enable once Signaling lands MOZ_WEBRTC_SIGNALING=1 AC_DEFINE(MOZ_WEBRTC_SIGNALING) diff --git build/gyp.mozbuild build/gyp.mozbuild index b483cd1..f1dd1f0 100644 --- mozilla/build/gyp.mozbuild +++ mozilla/build/gyp.mozbuild @@ -11,6 +11,7 @@ gyp_vars = { 'have_ethtool_cmd_speed_hi': 1 if CONFIG['MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI'] else 0, 'include_alsa_audio': 1 if CONFIG['MOZ_ALSA'] else 0, 'include_pulse_audio': 1 if CONFIG['MOZ_PULSEAUDIO'] else 0, + 'use_libv4l2': 1 if CONFIG['MOZ_LIBV4L2_LIBS'] else 0, # basic stuff for everything 'include_internal_video_render': 0, 'clang_use_chrome_plugins': 0, diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build index b483cd1..f1dd1f0 100644 --- mozilla/media/webrtc/signaling/test/common.build +++ mozilla/media/webrtc/signaling/test/common.build @@ -99,6 +99,7 @@ if CONFIG['JS_SHARED_LIBRARY']: USE_LIBS += ['mozglue'] +OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS'] OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS'] OS_LIBS += CONFIG['REALTIME_LIBS'] diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc index 239a292..bab496c 100644 --- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc +++ mozilla/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 --- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc +++ mozilla/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 --- mozilla/media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi +++ mozilla/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', -@@ -69,6 +72,19 @@ - 'linux/video_capture_linux.cc', - 'linux/video_capture_linux.h', - ], -+ 'conditions': [ -+ ['use_libv4l2==1', { -+ 'defines': [ -+ 'HAVE_LIBV4L2', +@@ -75,6 +78,19 @@ + 'linux/video_capture_linux.cc', + 'linux/video_capture_linux.h', + ], ++ 'conditions': [ ++ ['use_libv4l2==1', { ++ 'defines': [ ++ 'HAVE_LIBV4L2', ++ ], ++ 'cflags_mozilla': [ ++ '$(MOZ_LIBV4L2_CFLAGS)', ++ ], ++ 'libraries': [ ++ '-lv4l2', ++ ], ++ }], + ], -+ 'cflags_mozilla': [ -+ '$(MOZ_LIBV4L2_CFLAGS)', -+ ], -+ 'libraries': [ -+ '-lv4l2', -+ ], -+ }], -+ ], - }], # linux - ['OS=="mac"', { - 'sources': [ + }], # linux + ['OS=="mac"', { + 'sources': [ diff --git toolkit/library/moz.build toolkit/library/moz.build index 9c16ffa..1db3794 100644 --- mozilla/toolkit/library/moz.build +++ mozilla/toolkit/library/moz.build @@ -163,6 +163,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF ] OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS'] +OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS'] OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS'] OS_LIBS += CONFIG['MOZ_APP_EXTRA_LIBS'] Index: branches/2016Q4/www/seamonkey/files/patch-bug847568 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-bug847568 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-bug847568 (revision 429221) @@ -1,244 +1,271 @@ # Allow building against system-wide graphite2/harfbuzz. +diff --git build/moz.configure/old.configure build/moz.configure/old.configure +index 4cbefd5..42ab554 100644 +--- mozilla/build/moz.configure/old.configure ++++ mozilla/build/moz.configure/old.configure +@@ -312,6 +312,8 @@ def old_configure_options(*options): + '--with-sixgill', + '--with-soft-float', + '--with-system-bz2', ++ '--with-system-graphite2', ++ '--with-system-harfbuzz', + '--with-system-icu', + '--with-system-jpeg', + '--with-system-libevent', diff --git config/Makefile.in config/Makefile.in index 14bfc0d..5383399 100644 --- mozilla/config/Makefile.in +++ mozilla/config/Makefile.in -@@ -75,6 +75,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) \ +@@ -49,6 +49,8 @@ export:: $(export-preqs) + -DMOZ_SYSTEM_LIBEVENT=$(MOZ_SYSTEM_LIBEVENT) \ + -DMOZ_SYSTEM_LIBVPX=$(MOZ_SYSTEM_LIBVPX) \ + -DMOZ_SYSTEM_ICU=$(MOZ_SYSTEM_ICU) \ ++ -DMOZ_SYSTEM_GRAPHITE2=$(MOZ_SYSTEM_GRAPHITE2) \ ++ -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_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 --- mozilla/config/system-headers +++ mozilla/config/system-headers -@@ -1350,3 +1350,11 @@ unicode/utypes.h +@@ -1344,3 +1344,12 @@ unicode/utypes.h #endif libutil.h unwind.h -+#if MOZ_NATIVE_GRAPHITE2==1 ++#if MOZ_SYSTEM_GRAPHITE2==1 +graphite2/Font.h +graphite2/Segment.h +#endif -+#if MOZ_NATIVE_HARFBUZZ==1 ++#if MOZ_SYSTEM_HARFBUZZ==1 ++harfbuzz/hb-glib.h +harfbuzz/hb-ot.h +harfbuzz/hb.h +#endif -diff --git configure.in configure.in +diff --git old-configure.in configure.in index ac38f40..87536b7 100644 ---- mozilla/configure.in -+++ mozilla/configure.in -@@ -7986,6 +7986,49 @@ if test "$USE_FC_FREETYPE"; then +--- mozilla/old-configure.in ++++ mozilla/old-configure.in +@@ -7989,6 +7989,49 @@ if test "$USE_FC_FREETYPE"; then fi dnl ======================================================== +dnl Check for harfbuzz +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-harfbuzz, +[ --with-system-harfbuzz Use system harfbuzz (located with pkgconfig)], -+MOZ_NATIVE_HARFBUZZ=1, -+MOZ_NATIVE_HARFBUZZ=) ++MOZ_SYSTEM_HARFBUZZ=1, ++MOZ_SYSTEM_HARFBUZZ=) + -+if test -n "$MOZ_NATIVE_HARFBUZZ"; then -+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.0.3) ++if test -n "$MOZ_SYSTEM_HARFBUZZ"; then ++ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.2.6) +fi + -+AC_SUBST(MOZ_NATIVE_HARFBUZZ) ++AC_SUBST(MOZ_SYSTEM_HARFBUZZ) + +dnl ======================================================== +dnl Check for graphite2 +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-graphite2, +[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)], -+MOZ_NATIVE_GRAPHITE2=1, -+MOZ_NATIVE_GRAPHITE2=) ++MOZ_SYSTEM_GRAPHITE2=1, ++MOZ_SYSTEM_GRAPHITE2=) + -+if test -n "$MOZ_NATIVE_GRAPHITE2"; then ++if test -n "$MOZ_SYSTEM_GRAPHITE2"; then + PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2) + + dnl graphite2.pc has bogus version, check manually + AC_TRY_COMPILE([ #include + #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ + ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ + * 100 + GR2_VERSION_BUGFIX >= \ + (major) * 10000 + (minor) * 100 + (bugfix) ) + ], [ -+ #if !GR2_VERSION_REQUIRE(1,3,4) ++ #if !GR2_VERSION_REQUIRE(1,3,8) + #error "Insufficient graphite2 version." + #endif + ], [], + [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) +fi + -+AC_SUBST(MOZ_NATIVE_GRAPHITE2) ++AC_SUBST(MOZ_SYSTEM_GRAPHITE2) + +dnl ======================================================== dnl Check for pixman and cairo dnl ======================================================== diff --git dom/base/moz.build dom/base/moz.build index a660ba4..6b2f602 100644 --- mozilla/dom/base/moz.build +++ mozilla/dom/base/moz.build -@@ -375,6 +375,9 @@ if CONFIG['INTEL_ARCHITECTURE']: +@@ -397,6 +397,9 @@ if CONFIG['INTEL_ARCHITECTURE']: SOURCES += ['nsTextFragmentSSE2.cpp'] SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS'] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + EXTRA_COMPONENTS += [ 'ConsoleAPI.manifest', 'ConsoleAPIStorage.js', diff --git gfx/graphite2/moz-gr-update.sh gfx/graphite2/moz-gr-update.sh index f3d76ea..a9e7fb6 100644 --- mozilla/gfx/graphite2/moz-gr-update.sh +++ mozilla/gfx/graphite2/moz-gr-update.sh -@@ -37,6 +37,12 @@ +@@ -1,6 +1,7 @@ + #!/bin/bash + + # Script used to update the Graphite2 library in the mozilla source tree ++# and bump version for --with-system-graphite2 + + # This script lives in gfx/graphite2, along with the library source, + # but must be run from the top level of the mozilla-central tree. +@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; -+# closest tag/release to require for system version -+TAG=$(cd ../graphitedev/ && hg parents --template {latesttag}) ++# chase version for --with-system-graphite2 ++perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \ ++ if /GR2_VERSION_REQUIRE/" old-configure.in + -+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$TAG/ and tr/./,/ \ -+ if /GR2_VERSION_REQUIRE/" configure.in -+ # summarize what's been touched echo Updated to $RELEASE. echo Here is what changed in the gfx/graphite2 directory: + echo + +-hg stat gfx/graphite2 ++hg stat old-configure.in gfx/graphite2 + + echo + echo If gfx/graphite2/src/files.mk has changed, please make corresponding diff --git gfx/harfbuzz/README-mozilla gfx/harfbuzz/README-mozilla index ca57d16..1ce21fe 100644 --- mozilla/gfx/harfbuzz/README-mozilla +++ mozilla/gfx/harfbuzz/README-mozilla @@ -18,3 +18,8 @@ the mozilla tree. In addition, the src/Makefile.in file here is NOT from upstream, nor is it generated from src/Makefile.am (the original harfbuzz version); it is a mozilla- specific makefile that is maintained by hand. + +The in-tree copy may be omitted during build by --with-system-harfbuzz. -+Make sure to keep pkg-config version check within configure.in in sync ++Make sure to keep pkg-config version check within old-configure.in in sync +with checkout version or increment latest tag by one if it's not based +on upstream release. diff --git gfx/moz.build gfx/moz.build index 519aa46..6929751 100644 --- mozilla/gfx/moz.build +++ mozilla/gfx/moz.build @@ -7,6 +7,12 @@ if CONFIG['MOZ_TREE_CAIRO']: DIRS += ['cairo'] -+if not CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if not CONFIG['MOZ_SYSTEM_GRAPHITE2']: + DIRS += ['graphite2/src' ] + -+if not CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: + DIRS += ['harfbuzz/src'] + DIRS += [ '2d', 'ycbcr', @@ -15,8 +21,6 @@ DIRS += [ 'qcms', 'gl', 'layers', - 'graphite2/src', - 'harfbuzz/src', 'ots/src', 'thebes', 'ipc', diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py index 28fa6b5..240dced 100755 --- mozilla/gfx/skia/generate_mozbuild.py +++ mozilla/gfx/skia/generate_mozbuild.py -@@ -142,6 +142,9 @@ if CONFIG['GNU_CXX']: - if CONFIG['CPU_ARCH'] == 'arm': - SOURCES['trunk/src/opts/SkBlitRow_opts_arm.cpp'].flags += ['-fomit-frame-pointer'] +@@ -134,6 +134,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_ + '-Wno-unused-private-field', + ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/skia/moz.build gfx/skia/moz.build index 1d0c2f9..adb8941 100644 --- mozilla/gfx/skia/moz.build +++ mozilla/gfx/skia/moz.build -@@ -970,6 +970,9 @@ if CONFIG['GNU_CXX']: - if CONFIG['CPU_ARCH'] == 'arm': - SOURCES['trunk/src/opts/SkBlitRow_opts_arm.cpp'].flags += ['-fomit-frame-pointer'] +@@ -752,6 +752,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_ + '-Wno-unused-private-field', + ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff --git gfx/thebes/moz.build gfx/thebes/moz.build index d5852fa..aeeab25 100644 --- mozilla/gfx/thebes/moz.build +++ mozilla/gfx/thebes/moz.build -@@ -294,7 +294,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'andr - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'qt'): - CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS'] +@@ -306,7 +306,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk + LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] + -DEFINES['GRAPHITE2_STATIC'] = True -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: + CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] +else: + DEFINES['GRAPHITE2_STATIC'] = True - if CONFIG['GKMEDIAS_SHARED_LIBRARY']: - DEFINES['OTS_DLL'] = True -diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build + if CONFIG['CLANG_CXX']: + # Suppress warnings from Skia header files. index d736943..41a931f 100644 --- mozilla/intl/unicharutil/util/moz.build +++ mozilla/intl/unicharutil/util/moz.build -@@ -43,4 +43,7 @@ - CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS'] +@@ -44,4 +44,7 @@ if CONFIG['ENABLE_INTL_API']: + LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES'] USE_LIBS += ['icu'] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + DIST_INSTALL = True diff --git netwerk/dns/moz.build netwerk/dns/moz.build index 0b0717a..2e665c9 100644 --- mozilla/netwerk/dns/moz.build +++ mozilla/netwerk/dns/moz.build -@@ -66,5 +66,8 @@ LOCAL_INCLUDES += [ +@@ -66,6 +66,9 @@ LOCAL_INCLUDES += [ '/netwerk/base', ] -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19': - CXXFLAGS += ['-I%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']] + LOCAL_INCLUDES += ['%' + '%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']] + diff --git toolkit/library/moz.build toolkit/library/moz.build index 67f0db9..d42137a 100644 --- mozilla/toolkit/library/moz.build +++ mozilla/toolkit/library/moz.build -@@ -187,6 +187,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']: +@@ -231,6 +231,12 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']: if not CONFIG['MOZ_TREE_PIXMAN']: OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS'] -+if CONFIG['MOZ_NATIVE_GRAPHITE2']: ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: + OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS'] + -+if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] + if CONFIG['MOZ_OSS']: OS_LIBS += CONFIG['MOZ_OSS_LIBS'] Index: branches/2016Q4/www/seamonkey/files/patch-config-baseconfig.mk =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-config-baseconfig.mk (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-config-baseconfig.mk (revision 429221) @@ -1,14 +1,17 @@ --- mozilla/config/baseconfig.mk~ +++ mozilla/config/baseconfig.mk -@@ -1,7 +1,7 @@ +@@ -2,10 +2,10 @@ + # directly in python/mozbuild/mozbuild/base.py for gmake validation. + # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending + # whether a normal build is happening or whether the check is running. -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%% - ifndef TOP_DIST - TOP_DIST = dist - endif + ifeq (.,$(DEPTH)) + DIST = dist + else Index: branches/2016Q4/www/seamonkey/files/patch-ijg-libjpeg =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-ijg-libjpeg (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-ijg-libjpeg (revision 429221) @@ -1,383 +1,383 @@ # Partially revert bug 791305 to allow building with system IJG jpeg library -diff --git configure.in configure.in +diff --git old-configure.in configure.in index f0aeb5d..1c01010 100644 ---- mozilla/configure.in -+++ mozilla/configure.in -@@ -4027,11 +4027,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then +--- mozilla/old-configure.in ++++ mozilla/old-configure.in +@@ -4027,11 +4027,7 @@ if test "$MOZ_SYSTEM_JPEG" = 1; then #include ], [ #if JPEG_LIB_VERSION < $MOZJPEG #error "Insufficient JPEG library version ($MOZJPEG required)." - #endif - #ifndef JCS_EXTENSIONS - #error "libjpeg-turbo JCS_EXTENSIONS required" - #endif - ], + #endif ], - MOZ_NATIVE_JPEG=1, + MOZ_SYSTEM_JPEG=1, AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg])) fi diff --git image/decoders/nsJPEGDecoder.cpp image/decoders/nsJPEGDecoder.cpp index 8fa8200..1d2a259 100644 --- mozilla/image/decoders/nsJPEGDecoder.cpp +++ mozilla/image/decoders/nsJPEGDecoder.cpp @@ -21,13 +21,28 @@ extern "C" { #include "iccjpeg.h" -} +#ifdef JCS_EXTENSIONS #if MOZ_BIG_ENDIAN #define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB #else #define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX #endif +#else +/* Colorspace conversion (copied from jpegint.h) */ +struct jpeg_color_deconverter { + JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); + JMETHOD(void, color_convert, (j_decompress_ptr cinfo, + JSAMPIMAGE input_buf, JDIMENSION input_row, + JSAMPARRAY output_buf, int num_rows)); +}; + +METHODDEF(void) +ycc_rgb_convert_argb (j_decompress_ptr cinfo, + JSAMPIMAGE input_buf, JDIMENSION input_row, + JSAMPARRAY output_buf, int num_rows); +#endif +} static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width); @@ -367,6 +382,7 @@ nsJPEGDecoder::WriteInternal(const char* case JCS_GRAYSCALE: case JCS_RGB: case JCS_YCbCr: +#ifdef JCS_EXTENSIONS // if we're not color managing we can decode directly to // MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB if (mCMSMode != eCMSMode_All) { @@ -375,6 +391,9 @@ nsJPEGDecoder::WriteInternal(const char* } else { mInfo.out_color_space = JCS_RGB; } +#else + mInfo.out_color_space = JCS_RGB; +#endif break; case JCS_CMYK: case JCS_YCCK: @@ -448,6 +467,16 @@ nsJPEGDecoder::WriteInternal(const char* return; // I/O suspension } +#ifndef JCS_EXTENSIONS + /* Force to use our YCbCr to Packed RGB converter when possible */ + if (!mTransform && (mCMSMode != eCMSMode_All) && + mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) { + /* Special case for the most common case: transform from YCbCr direct into packed ARGB */ + mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/ + mInfo.cconvert->color_convert = ycc_rgb_convert_argb; + } +#endif + // If this is a progressive JPEG ... mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL; @@ -605,7 +633,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus uint32_t* imageRow = ((uint32_t*)mImageData) + (mInfo.output_scanline * mInfo.output_width); +#ifdef JCS_EXTENSIONS if (mInfo.out_color_space == MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB) { +#else + if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) { +#endif // Special case: scanline will be directly converted into packed ARGB if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) { *suspend = true; // suspend @@ -920,6 +952,282 @@ term_source (j_decompress_ptr jd) } // namespace mozilla +#ifndef JCS_EXTENSIONS +/**************** YCbCr -> Cairo's RGB24/ARGB32 conversion: most common case **************/ + +/* + * YCbCr is defined per CCIR 601-1, except that Cb and Cr are + * normalized to the range 0..MAXJSAMPLE rather than -0.5 .. 0.5. + * The conversion equations to be implemented are therefore + * R = Y + 1.40200 * Cr + * G = Y - 0.34414 * Cb - 0.71414 * Cr + * B = Y + 1.77200 * Cb + * where Cb and Cr represent the incoming values less CENTERJSAMPLE. + * (These numbers are derived from TIFF 6.0 section 21, dated 3-June-92.) + * + * To avoid floating-point arithmetic, we represent the fractional constants + * as integers scaled up by 2^16 (about 4 digits precision); we have to divide + * the products by 2^16, with appropriate rounding, to get the correct answer. + * Notice that Y, being an integral input, does not contribute any fraction + * so it need not participate in the rounding. + * + * For even more speed, we avoid doing any multiplications in the inner loop + * by precalculating the constants times Cb and Cr for all possible values. + * For 8-bit JSAMPLEs this is very reasonable (only 256 entries per table); + * for 12-bit samples it is still acceptable. It's not very reasonable for + * 16-bit samples, but if you want lossless storage you shouldn't be changing + * colorspace anyway. + * The Cr=>R and Cb=>B values can be rounded to integers in advance; the + * values for the G calculation are left scaled up, since we must add them + * together before rounding. + */ + +#define SCALEBITS 16 /* speediest right-shift on some machines */ + +/* Use static tables for color processing. */ +/* Four tables, each 256 entries of 4 bytes totals 4K which is not bad... */ + +const int Cr_r_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ + -0xb3, -0xb2, -0xb1, -0xaf, -0xae, -0xac, + -0xab, -0xaa, -0xa8, -0xa7, -0xa5, -0xa4, + -0xa3, -0xa1, -0xa0, -0x9e, -0x9d, -0x9c, + -0x9a, -0x99, -0x97, -0x96, -0x95, -0x93, + -0x92, -0x90, -0x8f, -0x8e, -0x8c, -0x8b, + -0x89, -0x88, -0x87, -0x85, -0x84, -0x82, + -0x81, -0x80, -0x7e, -0x7d, -0x7b, -0x7a, + -0x79, -0x77, -0x76, -0x74, -0x73, -0x72, + -0x70, -0x6f, -0x6d, -0x6c, -0x6b, -0x69, + -0x68, -0x66, -0x65, -0x64, -0x62, -0x61, + -0x5f, -0x5e, -0x5d, -0x5b, -0x5a, -0x58, + -0x57, -0x56, -0x54, -0x53, -0x51, -0x50, + -0x4f, -0x4d, -0x4c, -0x4a, -0x49, -0x48, + -0x46, -0x45, -0x43, -0x42, -0x40, -0x3f, + -0x3e, -0x3c, -0x3b, -0x39, -0x38, -0x37, + -0x35, -0x34, -0x32, -0x31, -0x30, -0x2e, + -0x2d, -0x2b, -0x2a, -0x29, -0x27, -0x26, + -0x24, -0x23, -0x22, -0x20, -0x1f, -0x1d, + -0x1c, -0x1b, -0x19, -0x18, -0x16, -0x15, + -0x14, -0x12, -0x11, -0x0f, -0x0e, -0x0d, + -0x0b, -0x0a, -0x08, -0x07, -0x06, -0x04, + -0x03, -0x01, 0x00, 0x01, 0x03, 0x04, + 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0d, + 0x0e, 0x0f, 0x11, 0x12, 0x14, 0x15, + 0x16, 0x18, 0x19, 0x1b, 0x1c, 0x1d, + 0x1f, 0x20, 0x22, 0x23, 0x24, 0x26, + 0x27, 0x29, 0x2a, 0x2b, 0x2d, 0x2e, + 0x30, 0x31, 0x32, 0x34, 0x35, 0x37, + 0x38, 0x39, 0x3b, 0x3c, 0x3e, 0x3f, + 0x40, 0x42, 0x43, 0x45, 0x46, 0x48, + 0x49, 0x4a, 0x4c, 0x4d, 0x4f, 0x50, + 0x51, 0x53, 0x54, 0x56, 0x57, 0x58, + 0x5a, 0x5b, 0x5d, 0x5e, 0x5f, 0x61, + 0x62, 0x64, 0x65, 0x66, 0x68, 0x69, + 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x72, + 0x73, 0x74, 0x76, 0x77, 0x79, 0x7a, + 0x7b, 0x7d, 0x7e, 0x80, 0x81, 0x82, + 0x84, 0x85, 0x87, 0x88, 0x89, 0x8b, + 0x8c, 0x8e, 0x8f, 0x90, 0x92, 0x93, + 0x95, 0x96, 0x97, 0x99, 0x9a, 0x9c, + 0x9d, 0x9e, 0xa0, 0xa1, 0xa3, 0xa4, + 0xa5, 0xa7, 0xa8, 0xaa, 0xab, 0xac, + 0xae, 0xaf, 0xb1, 0xb2, + }; + +const int Cb_b_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ + -0xe3, -0xe1, -0xdf, -0xde, -0xdc, -0xda, + -0xd8, -0xd6, -0xd5, -0xd3, -0xd1, -0xcf, + -0xce, -0xcc, -0xca, -0xc8, -0xc6, -0xc5, + -0xc3, -0xc1, -0xbf, -0xbe, -0xbc, -0xba, + -0xb8, -0xb7, -0xb5, -0xb3, -0xb1, -0xaf, + -0xae, -0xac, -0xaa, -0xa8, -0xa7, -0xa5, + -0xa3, -0xa1, -0x9f, -0x9e, -0x9c, -0x9a, + -0x98, -0x97, -0x95, -0x93, -0x91, -0x90, + -0x8e, -0x8c, -0x8a, -0x88, -0x87, -0x85, + -0x83, -0x81, -0x80, -0x7e, -0x7c, -0x7a, + -0x78, -0x77, -0x75, -0x73, -0x71, -0x70, + -0x6e, -0x6c, -0x6a, -0x69, -0x67, -0x65, + -0x63, -0x61, -0x60, -0x5e, -0x5c, -0x5a, + -0x59, -0x57, -0x55, -0x53, -0x52, -0x50, + -0x4e, -0x4c, -0x4a, -0x49, -0x47, -0x45, + -0x43, -0x42, -0x40, -0x3e, -0x3c, -0x3a, + -0x39, -0x37, -0x35, -0x33, -0x32, -0x30, + -0x2e, -0x2c, -0x2b, -0x29, -0x27, -0x25, + -0x23, -0x22, -0x20, -0x1e, -0x1c, -0x1b, + -0x19, -0x17, -0x15, -0x13, -0x12, -0x10, + -0x0e, -0x0c, -0x0b, -0x09, -0x07, -0x05, + -0x04, -0x02, 0x00, 0x02, 0x04, 0x05, + 0x07, 0x09, 0x0b, 0x0c, 0x0e, 0x10, + 0x12, 0x13, 0x15, 0x17, 0x19, 0x1b, + 0x1c, 0x1e, 0x20, 0x22, 0x23, 0x25, + 0x27, 0x29, 0x2b, 0x2c, 0x2e, 0x30, + 0x32, 0x33, 0x35, 0x37, 0x39, 0x3a, + 0x3c, 0x3e, 0x40, 0x42, 0x43, 0x45, + 0x47, 0x49, 0x4a, 0x4c, 0x4e, 0x50, + 0x52, 0x53, 0x55, 0x57, 0x59, 0x5a, + 0x5c, 0x5e, 0x60, 0x61, 0x63, 0x65, + 0x67, 0x69, 0x6a, 0x6c, 0x6e, 0x70, + 0x71, 0x73, 0x75, 0x77, 0x78, 0x7a, + 0x7c, 0x7e, 0x80, 0x81, 0x83, 0x85, + 0x87, 0x88, 0x8a, 0x8c, 0x8e, 0x90, + 0x91, 0x93, 0x95, 0x97, 0x98, 0x9a, + 0x9c, 0x9e, 0x9f, 0xa1, 0xa3, 0xa5, + 0xa7, 0xa8, 0xaa, 0xac, 0xae, 0xaf, + 0xb1, 0xb3, 0xb5, 0xb7, 0xb8, 0xba, + 0xbc, 0xbe, 0xbf, 0xc1, 0xc3, 0xc5, + 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xcf, + 0xd1, 0xd3, 0xd5, 0xd6, 0xd8, 0xda, + 0xdc, 0xde, 0xdf, 0xe1, + }; + +const int Cr_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ + 0x5b6900, 0x5ab22e, 0x59fb5c, 0x59448a, 0x588db8, 0x57d6e6, + 0x572014, 0x566942, 0x55b270, 0x54fb9e, 0x5444cc, 0x538dfa, + 0x52d728, 0x522056, 0x516984, 0x50b2b2, 0x4ffbe0, 0x4f450e, + 0x4e8e3c, 0x4dd76a, 0x4d2098, 0x4c69c6, 0x4bb2f4, 0x4afc22, + 0x4a4550, 0x498e7e, 0x48d7ac, 0x4820da, 0x476a08, 0x46b336, + 0x45fc64, 0x454592, 0x448ec0, 0x43d7ee, 0x43211c, 0x426a4a, + 0x41b378, 0x40fca6, 0x4045d4, 0x3f8f02, 0x3ed830, 0x3e215e, + 0x3d6a8c, 0x3cb3ba, 0x3bfce8, 0x3b4616, 0x3a8f44, 0x39d872, + 0x3921a0, 0x386ace, 0x37b3fc, 0x36fd2a, 0x364658, 0x358f86, + 0x34d8b4, 0x3421e2, 0x336b10, 0x32b43e, 0x31fd6c, 0x31469a, + 0x308fc8, 0x2fd8f6, 0x2f2224, 0x2e6b52, 0x2db480, 0x2cfdae, + 0x2c46dc, 0x2b900a, 0x2ad938, 0x2a2266, 0x296b94, 0x28b4c2, + 0x27fdf0, 0x27471e, 0x26904c, 0x25d97a, 0x2522a8, 0x246bd6, + 0x23b504, 0x22fe32, 0x224760, 0x21908e, 0x20d9bc, 0x2022ea, + 0x1f6c18, 0x1eb546, 0x1dfe74, 0x1d47a2, 0x1c90d0, 0x1bd9fe, + 0x1b232c, 0x1a6c5a, 0x19b588, 0x18feb6, 0x1847e4, 0x179112, + 0x16da40, 0x16236e, 0x156c9c, 0x14b5ca, 0x13fef8, 0x134826, + 0x129154, 0x11da82, 0x1123b0, 0x106cde, 0x0fb60c, 0x0eff3a, + 0x0e4868, 0x0d9196, 0x0cdac4, 0x0c23f2, 0x0b6d20, 0x0ab64e, + 0x09ff7c, 0x0948aa, 0x0891d8, 0x07db06, 0x072434, 0x066d62, + 0x05b690, 0x04ffbe, 0x0448ec, 0x03921a, 0x02db48, 0x022476, + 0x016da4, 0x00b6d2, 0x000000, -0x00b6d2, -0x016da4, -0x022476, + -0x02db48, -0x03921a, -0x0448ec, -0x04ffbe, -0x05b690, -0x066d62, + -0x072434, -0x07db06, -0x0891d8, -0x0948aa, -0x09ff7c, -0x0ab64e, + -0x0b6d20, -0x0c23f2, -0x0cdac4, -0x0d9196, -0x0e4868, -0x0eff3a, + -0x0fb60c, -0x106cde, -0x1123b0, -0x11da82, -0x129154, -0x134826, + -0x13fef8, -0x14b5ca, -0x156c9c, -0x16236e, -0x16da40, -0x179112, + -0x1847e4, -0x18feb6, -0x19b588, -0x1a6c5a, -0x1b232c, -0x1bd9fe, + -0x1c90d0, -0x1d47a2, -0x1dfe74, -0x1eb546, -0x1f6c18, -0x2022ea, + -0x20d9bc, -0x21908e, -0x224760, -0x22fe32, -0x23b504, -0x246bd6, + -0x2522a8, -0x25d97a, -0x26904c, -0x27471e, -0x27fdf0, -0x28b4c2, + -0x296b94, -0x2a2266, -0x2ad938, -0x2b900a, -0x2c46dc, -0x2cfdae, + -0x2db480, -0x2e6b52, -0x2f2224, -0x2fd8f6, -0x308fc8, -0x31469a, + -0x31fd6c, -0x32b43e, -0x336b10, -0x3421e2, -0x34d8b4, -0x358f86, + -0x364658, -0x36fd2a, -0x37b3fc, -0x386ace, -0x3921a0, -0x39d872, + -0x3a8f44, -0x3b4616, -0x3bfce8, -0x3cb3ba, -0x3d6a8c, -0x3e215e, + -0x3ed830, -0x3f8f02, -0x4045d4, -0x40fca6, -0x41b378, -0x426a4a, + -0x43211c, -0x43d7ee, -0x448ec0, -0x454592, -0x45fc64, -0x46b336, + -0x476a08, -0x4820da, -0x48d7ac, -0x498e7e, -0x4a4550, -0x4afc22, + -0x4bb2f4, -0x4c69c6, -0x4d2098, -0x4dd76a, -0x4e8e3c, -0x4f450e, + -0x4ffbe0, -0x50b2b2, -0x516984, -0x522056, -0x52d728, -0x538dfa, + -0x5444cc, -0x54fb9e, -0x55b270, -0x566942, -0x572014, -0x57d6e6, + -0x588db8, -0x59448a, -0x59fb5c, -0x5ab22e, + }; + +const int Cb_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ + 0x2c8d00, 0x2c34e6, 0x2bdccc, 0x2b84b2, 0x2b2c98, 0x2ad47e, + 0x2a7c64, 0x2a244a, 0x29cc30, 0x297416, 0x291bfc, 0x28c3e2, + 0x286bc8, 0x2813ae, 0x27bb94, 0x27637a, 0x270b60, 0x26b346, + 0x265b2c, 0x260312, 0x25aaf8, 0x2552de, 0x24fac4, 0x24a2aa, + 0x244a90, 0x23f276, 0x239a5c, 0x234242, 0x22ea28, 0x22920e, + 0x2239f4, 0x21e1da, 0x2189c0, 0x2131a6, 0x20d98c, 0x208172, + 0x202958, 0x1fd13e, 0x1f7924, 0x1f210a, 0x1ec8f0, 0x1e70d6, + 0x1e18bc, 0x1dc0a2, 0x1d6888, 0x1d106e, 0x1cb854, 0x1c603a, + 0x1c0820, 0x1bb006, 0x1b57ec, 0x1affd2, 0x1aa7b8, 0x1a4f9e, + 0x19f784, 0x199f6a, 0x194750, 0x18ef36, 0x18971c, 0x183f02, + 0x17e6e8, 0x178ece, 0x1736b4, 0x16de9a, 0x168680, 0x162e66, + 0x15d64c, 0x157e32, 0x152618, 0x14cdfe, 0x1475e4, 0x141dca, + 0x13c5b0, 0x136d96, 0x13157c, 0x12bd62, 0x126548, 0x120d2e, + 0x11b514, 0x115cfa, 0x1104e0, 0x10acc6, 0x1054ac, 0x0ffc92, + 0x0fa478, 0x0f4c5e, 0x0ef444, 0x0e9c2a, 0x0e4410, 0x0debf6, + 0x0d93dc, 0x0d3bc2, 0x0ce3a8, 0x0c8b8e, 0x0c3374, 0x0bdb5a, + 0x0b8340, 0x0b2b26, 0x0ad30c, 0x0a7af2, 0x0a22d8, 0x09cabe, + 0x0972a4, 0x091a8a, 0x08c270, 0x086a56, 0x08123c, 0x07ba22, + 0x076208, 0x0709ee, 0x06b1d4, 0x0659ba, 0x0601a0, 0x05a986, + 0x05516c, 0x04f952, 0x04a138, 0x04491e, 0x03f104, 0x0398ea, + 0x0340d0, 0x02e8b6, 0x02909c, 0x023882, 0x01e068, 0x01884e, + 0x013034, 0x00d81a, 0x008000, 0x0027e6, -0x003034, -0x00884e, + -0x00e068, -0x013882, -0x01909c, -0x01e8b6, -0x0240d0, -0x0298ea, + -0x02f104, -0x03491e, -0x03a138, -0x03f952, -0x04516c, -0x04a986, + -0x0501a0, -0x0559ba, -0x05b1d4, -0x0609ee, -0x066208, -0x06ba22, + -0x07123c, -0x076a56, -0x07c270, -0x081a8a, -0x0872a4, -0x08cabe, + -0x0922d8, -0x097af2, -0x09d30c, -0x0a2b26, -0x0a8340, -0x0adb5a, + -0x0b3374, -0x0b8b8e, -0x0be3a8, -0x0c3bc2, -0x0c93dc, -0x0cebf6, + -0x0d4410, -0x0d9c2a, -0x0df444, -0x0e4c5e, -0x0ea478, -0x0efc92, + -0x0f54ac, -0x0facc6, -0x1004e0, -0x105cfa, -0x10b514, -0x110d2e, + -0x116548, -0x11bd62, -0x12157c, -0x126d96, -0x12c5b0, -0x131dca, + -0x1375e4, -0x13cdfe, -0x142618, -0x147e32, -0x14d64c, -0x152e66, + -0x158680, -0x15de9a, -0x1636b4, -0x168ece, -0x16e6e8, -0x173f02, + -0x17971c, -0x17ef36, -0x184750, -0x189f6a, -0x18f784, -0x194f9e, + -0x19a7b8, -0x19ffd2, -0x1a57ec, -0x1ab006, -0x1b0820, -0x1b603a, + -0x1bb854, -0x1c106e, -0x1c6888, -0x1cc0a2, -0x1d18bc, -0x1d70d6, + -0x1dc8f0, -0x1e210a, -0x1e7924, -0x1ed13e, -0x1f2958, -0x1f8172, + -0x1fd98c, -0x2031a6, -0x2089c0, -0x20e1da, -0x2139f4, -0x21920e, + -0x21ea28, -0x224242, -0x229a5c, -0x22f276, -0x234a90, -0x23a2aa, + -0x23fac4, -0x2452de, -0x24aaf8, -0x250312, -0x255b2c, -0x25b346, + -0x260b60, -0x26637a, -0x26bb94, -0x2713ae, -0x276bc8, -0x27c3e2, + -0x281bfc, -0x287416, -0x28cc30, -0x29244a, -0x297c64, -0x29d47e, + -0x2a2c98, -0x2a84b2, -0x2adccc, -0x2b34e6, + }; + + +/* We assume that right shift corresponds to signed division by 2 with + * rounding towards minus infinity. This is correct for typical "arithmetic + * shift" instructions that shift in copies of the sign bit. But some + * C compilers implement >> with an unsigned shift. For these machines you + * must define RIGHT_SHIFT_IS_UNSIGNED. + * RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity. + * It is only applied with constant shift counts. SHIFT_TEMPS must be + * included in the variables of any routine using RIGHT_SHIFT. + */ + +#ifdef RIGHT_SHIFT_IS_UNSIGNED +#define SHIFT_TEMPS INT32 shift_temp; +#define RIGHT_SHIFT(x,shft) \ + ((shift_temp = (x)) < 0 ? \ + (shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \ + (shift_temp >> (shft))) +#else +#define SHIFT_TEMPS +#define RIGHT_SHIFT(x,shft) ((x) >> (shft)) +#endif + + +METHODDEF(void) +ycc_rgb_convert_argb (j_decompress_ptr cinfo, + JSAMPIMAGE input_buf, JDIMENSION input_row, + JSAMPARRAY output_buf, int num_rows) +{ + JDIMENSION num_cols = cinfo->output_width; + JSAMPLE * range_limit = cinfo->sample_range_limit; + + SHIFT_TEMPS + + /* This is used if we don't have SSE2 */ + + while (--num_rows >= 0) { + JSAMPROW inptr0 = input_buf[0][input_row]; + JSAMPROW inptr1 = input_buf[1][input_row]; + JSAMPROW inptr2 = input_buf[2][input_row]; + input_row++; + uint32_t *outptr = (uint32_t *) *output_buf++; + for (JDIMENSION col = 0; col < num_cols; col++) { + int y = GETJSAMPLE(inptr0[col]); + int cb = GETJSAMPLE(inptr1[col]); + int cr = GETJSAMPLE(inptr2[col]); + JSAMPLE * range_limit_y = range_limit + y; + /* Range-limiting is essential due to noise introduced by DCT losses. */ + outptr[col] = 0xFF000000 | + ( range_limit_y[Cr_r_tab[cr]] << 16 ) | + ( range_limit_y[((int) RIGHT_SHIFT(Cb_g_tab[cb] + Cr_g_tab[cr], SCALEBITS))] << 8 ) | + ( range_limit_y[Cb_b_tab[cb]] ); + } + } +} +#endif + + ///*************** Inverted CMYK -> RGB conversion ************************* /// Input is (Inverted) CMYK stored as 4 bytes per pixel. /// Output is RGB stored as 3 bytes per pixel. Index: branches/2016Q4/www/seamonkey/files/patch-sample-type =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-sample-type (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-sample-type (revision 429221) @@ -1,13 +1,13 @@ # Let ports handle default sample type ---- mozilla/configure.in~ -+++ mozilla/configure.in +--- mozilla/old-configure.in~ ++++ mozilla/old-configure.in @@ -5144,7 +5144,7 @@ dnl Use integers over floats for audio o dnl (regarless of the CPU architecture, because audio dnl backends for those platforms don't support floats. We also dnl use integers on ARM with other OS, because it's more efficient. -if test "$OS_TARGET" = "Android" -o "$CPU_ARCH" = "arm"; then +if test -n "$MOZ_INTEGER_SAMPLES"; then MOZ_SAMPLE_TYPE_S16=1 AC_DEFINE(MOZ_SAMPLE_TYPE_S16) AC_SUBST(MOZ_SAMPLE_TYPE_S16) Index: branches/2016Q4/www/seamonkey/files/patch-z-bug517422 =================================================================== --- branches/2016Q4/www/seamonkey/files/patch-z-bug517422 (revision 429220) +++ branches/2016Q4/www/seamonkey/files/patch-z-bug517422 (revision 429221) @@ -1,657 +1,463 @@ # Allow more config/external/ libs built against system-wide version. +diff --git build/moz.configure/old.configure build/moz.configure/old.configure +index 42ab554..c91df3d 100644 +--- mozilla/build/moz.configure/old.configure ++++ mozilla/build/moz.configure/old.configure +@@ -320,7 +320,12 @@ def old_configure_options(*options): + '--with-system-libvpx', + '--with-system-nspr', + '--with-system-nss', ++ '--with-system-ogg', + '--with-system-png', ++ '--with-system-soundtouch', ++ '--with-system-theora', ++ '--with-system-tremor', ++ '--with-system-vorbis', + '--with-system-zlib', + '--with-thumb', + '--with-thumb-interwork', diff --git config/Makefile.in config/Makefile.in index 5383399..0410004 100644 --- mozilla/config/Makefile.in +++ mozilla/config/Makefile.in -@@ -77,6 +77,14 @@ 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_CELT=$(MOZ_NATIVE_CELT) \ -+ -DMOZ_NATIVE_OPUS=$(MOZ_NATIVE_OPUS) \ -+ -DMOZ_NATIVE_SPEEX=$(MOZ_NATIVE_SPEEX) \ -+ -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \ +@@ -77,6 +77,11 @@ export:: $(export-preqs) + -DMOZ_SYSTEM_ICU=$(MOZ_SYSTEM_ICU) \ + -DMOZ_SYSTEM_GRAPHITE2=$(MOZ_SYSTEM_GRAPHITE2) \ + -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \ ++ -DMOZ_SYSTEM_OGG=$(MOZ_SYSTEM_OGG) \ ++ -DMOZ_SYSTEM_THEORA=$(MOZ_SYSTEM_THEORA) \ ++ -DMOZ_SYSTEM_VORBIS=$(MOZ_SYSTEM_VORBIS) \ ++ -DMOZ_SYSTEM_TREMOR=$(MOZ_SYSTEM_TREMOR) \ ++ -DMOZ_SYSTEM_SOUNDTOUCH=$(MOZ_SYSTEM_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 --- mozilla/config/external/moz.build +++ mozilla/config/external/moz.build -@@ -19,10 +19,19 @@ if CONFIG['MOZ_UPDATER']: +@@ -20,12 +20,21 @@ if CONFIG['MOZ_UPDATER']: # There's no "native brotli" yet, but probably in the future... external_dirs += ['modules/brotli'] -if CONFIG['MOZ_VORBIS']: -+if not CONFIG['MOZ_NATIVE_OGG']: ++if not CONFIG['MOZ_SYSTEM_OGG']: + external_dirs += ['media/libogg'] + -+if not CONFIG['MOZ_NATIVE_CELT'] or not CONFIG['MOZ_NATIVE_OPUS']: -+ external_dirs += ['media/libopus'] -+ -+if not CONFIG['MOZ_NATIVE_THEORA']: -+ external_dirs += ['media/libtheora'] -+ -+if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_SYSTEM_VORBIS']: external_dirs += ['media/libvorbis'] -if CONFIG['MOZ_TREMOR']: -+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_SYSTEM_TREMOR']: external_dirs += ['media/libtremor'] - if CONFIG['MOZ_WEBM']: -@@ -37,15 +46,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ - 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_SYSTEM_THEORA']: ++ external_dirs += ['media/libtheora'] + -+if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if not CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + external_dirs += ['media/libsoundtouch'] + - external_dirs += [ + if CONFIG['MOZ_WEBM_ENCODER']: + external_dirs += ['media/libmkv'] + +@@ -51,12 +60,9 @@ external_dirs += [ 'media/kiss_fft', 'media/libcubeb', + 'media/libnestegg', - 'media/libogg', -- 'media/libopus', + 'media/libopus', - 'media/libtheora', -- 'media/libspeex_resampler', + 'media/libspeex_resampler', 'media/libstagefright', - 'media/libsoundtouch', ] DIRS += ['../../' + i for i in external_dirs] diff --git config/system-headers config/system-headers index bef567c..9807c29 100644 --- mozilla/config/system-headers +++ mozilla/config/system-headers -@@ -1257,8 +1257,10 @@ X11/Xlocale.h - X11/Xos.h - X11/Xutil.h - zmouse.h -+#if MOZ_NATIVE_SOUNDTOUCH==1 - soundtouch/SoundTouch.h - soundtouch/SoundTouchFactory.h -+#endif - #if MOZ_LIBAV_FFT==1 - libavcodec/avfft.h - #endif -@@ -1313,6 +1315,8 @@ vpx/vp8dx.h - vpx_mem/vpx_mem.h - #endif - #ifdef GKMEDIAS_SHARED_LIBRARY -+soundtouch/SoundTouch.h -+soundtouch/SoundTouchFactory.h - vpx/vpx_codec.h - vpx/vpx_decoder.h - vpx/vpx_encoder.h -@@ -1364,3 +1363,32 @@ graphite2/Segment.h +@@ -1364,3 +1363,17 @@ graphite2/Segment.h harfbuzz/hb-ot.h harfbuzz/hb.h #endif -+#if MOZ_NATIVE_OGG==1 ++#if MOZ_SYSTEM_OGG==1 +ogg/ogg.h +ogg/os_types.h +#endif -+#if MOZ_NATIVE_THEORA==1 ++#if MOZ_SYSTEM_THEORA==1 +theora/theoradec.h +#endif -+#if MOZ_NATIVE_VORBIS==1 ++#if MOZ_SYSTEM_VORBIS==1 +vorbis/codec.h +vorbis/vorbisenc.h +#endif -+#if MOZ_NATIVE_TREMOR==1 ++#if MOZ_SYSTEM_TREMOR==1 +tremor/ivorbiscodec.h +#endif -+#if MOZ_NATIVE_CELT==1 -+celt.h -+celt_header.h -+celt/celt.h -+celt/celt_header.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 -diff --git configure.in configure.in +diff --git old-configure.in configure.in index 87db361..7947626 100644 ---- mozilla/configure.in -+++ mozilla/configure.in -@@ -5223,6 +5223,160 @@ if test "${ac_cv_c_attribute_aligned}" ! +--- mozilla/old-configure.in ++++ mozilla/old-configure.in +@@ -5401,6 +5401,111 @@ if test -n "$MOZ_OMX_PLUGIN"; then + fi fi - dnl ======================================================== ++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=) ++MOZ_SYSTEM_OGG=1, ++MOZ_SYSTEM_OGG=) + -+if test -n "$MOZ_NATIVE_OGG"; then ++if test -n "$MOZ_SYSTEM_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_SYSTEM_OGG) + +dnl ======================================================== +dnl Check for libvorbis +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-vorbis, +[ --with-system-vorbis Use system libvorbis (located with pkgconfig)], -+MOZ_NATIVE_VORBIS=1, -+MOZ_NATIVE_VORBIS=) ++MOZ_SYSTEM_VORBIS=1, ++MOZ_SYSTEM_VORBIS=) + -+if test -n "$MOZ_NATIVE_VORBIS"; then ++if test -n "$MOZ_SYSTEM_VORBIS"; then + PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5) +fi + -+AC_SUBST(MOZ_NATIVE_VORBIS) ++AC_SUBST(MOZ_SYSTEM_VORBIS) + +dnl ======================================================== +dnl Check for integer-only libvorbis aka tremor +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-tremor, +[ --with-system-tremor Use system libtremor (located with pkgconfig)], -+MOZ_NATIVE_TREMOR=1, -+MOZ_NATIVE_TREMOR=) ++MOZ_SYSTEM_TREMOR=1, ++MOZ_SYSTEM_TREMOR=) + -+if test -n "$MOZ_NATIVE_TREMOR"; then ++if test -n "$MOZ_SYSTEM_TREMOR"; then + PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1) +fi + -+AC_SUBST(MOZ_NATIVE_TREMOR) ++AC_SUBST(MOZ_SYSTEM_TREMOR) + +dnl ======================================================== -+dnl Check for libcelt -+dnl ======================================================== -+ -+MOZ_ARG_WITH_BOOL(system-celt, -+[ --with-system-celt Use system libcelt (located with pkgconfig)], -+MOZ_NATIVE_CELT=1, -+MOZ_NATIVE_CELT=) -+ -+if test -n "$MOZ_NATIVE_CELT"; then -+ PKG_CHECK_MODULES(MOZ_CELT, celt) -+else -+ MOZ_CELT_CFLAGS='-I$(topsrcdir)/media/libopus' -+fi -+ -+AC_SUBST(MOZ_NATIVE_CELT) -+ -+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) -+ -+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=) ++MOZ_SYSTEM_THEORA=1, ++MOZ_SYSTEM_THEORA=) + -+if test -n "$MOZ_NATIVE_THEORA"; then ++if test -n "$MOZ_SYSTEM_THEORA"; then + PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2) +fi + -+AC_SUBST(MOZ_NATIVE_THEORA) ++AC_SUBST(MOZ_SYSTEM_THEORA) + +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) -+ -+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=) ++MOZ_SYSTEM_SOUNDTOUCH=1, ++MOZ_SYSTEM_SOUNDTOUCH=) + -+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then ++if test -n "$MOZ_SYSTEM_SOUNDTOUCH"; then + PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0) + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + _SAVE_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS" + AC_CACHE_CHECK(for soundtouch sample type, + ac_cv_soundtouch_sample_type, + [AC_TRY_COMPILE([#include + #ifndef SOUNDTOUCH_INTEGER_SAMPLES + #error soundtouch expects float samples + #endif], + [], + [ac_cv_soundtouch_sample_type=short], + [ac_cv_soundtouch_sample_type=float])]) + CXXFLAGS=$_SAVE_CXXFLAGS + AC_LANG_RESTORE + + if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \ + -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then + AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.]) + fi +fi + -+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then -+ AC_DEFINE(MOZ_NATIVE_SOUNDTOUCH) ++if test -n "$MOZ_SYSTEM_SOUNDTOUCH"; then ++ AC_DEFINE(MOZ_SYSTEM_SOUNDTOUCH) +fi -+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH) ++AC_SUBST(MOZ_SYSTEM_SOUNDTOUCH) + -+dnl ======================================================== - dnl = Disable VP8 decoder support + dnl system libvpx Support dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(webm, + MOZ_ARG_WITH_BOOL(system-libvpx, diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp index 2127256..1ec09fe 100644 --- mozilla/dom/media/AudioStream.cpp +++ mozilla/dom/media/AudioStream.cpp -@@ -129,7 +129,9 @@ AudioStream::AudioStream() +@@ -125,7 +125,9 @@ AudioStream::AudioStream(DataSource& aSo + , mOutRate(0) + , mChannels(0) , mOutChannels(0) - , mWritten(0) - , mAudioClock(this) -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH , mTimeStretcher(nullptr) +#endif , mDumpFile(nullptr) - , mBytesPerFrame(0) , mState(INITIALIZED) + , mDataSource(aSource) @@ -152,9 +154,11 @@ AudioStream::~AudioStream() if (mDumpFile) { fclose(mDumpFile); } -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH if (mTimeStretcher) { soundtouch::destroySoundTouchObj(mTimeStretcher); } +#endif } size_t @@ -177,7 +181,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked() { mMonitor.AssertCurrentThreadOwns(); if (!mTimeStretcher) { -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH + mTimeStretcher = new soundtouch::SoundTouch(); +#else mTimeStretcher = soundtouch::createSoundTouchObj(); +#endif mTimeStretcher->setSampleRate(mInRate); mTimeStretcher->setChannels(mOutChannels); mTimeStretcher->setPitch(1.0); diff --git dom/media/AudioStream.h dom/media/AudioStream.h index a552e3e..02b80b1 100644 --- mozilla/dom/media/AudioStream.h +++ mozilla/dom/media/AudioStream.h @@ -15,7 +15,11 @@ #include "mozilla/RefPtr.h" #include "mozilla/UniquePtr.h" #include "CubebUtils.h" -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH +#include "soundtouch/SoundTouch.h" +#else #include "soundtouch/SoundTouchFactory.h" +#endif namespace mozilla { @@ -277,7 +277,11 @@ private: // Number of frames written to the buffers. int64_t mWritten; AudioClock mAudioClock; -+#ifdef MOZ_NATIVE_SOUNDTOUCH ++#ifdef MOZ_SYSTEM_SOUNDTOUCH + nsAutoPtr mTimeStretcher; +#else soundtouch::SoundTouch* mTimeStretcher; +#endif // Stream start time for stream open delay telemetry. TimeStamp mStartTime; diff --git dom/media/moz.build dom/media/moz.build index 7526cff..e0a0ca0 100644 --- mozilla/dom/media/moz.build +++ mozilla/dom/media/moz.build -@@ -212,3 +212,24 @@ if CONFIG['ANDROID_VERSION'] > '15': +@@ -300,6 +300,21 @@ if CONFIG['MOZ_WEBRTC']: - CFLAGS += CONFIG['GSTREAMER_CFLAGS'] - CXXFLAGS += CONFIG['GSTREAMER_CFLAGS'] -+ -+if CONFIG['MOZ_NATIVE_OGG']: + DEFINES['MOZILLA_INTERNAL_API'] = True + ++if CONFIG['MOZ_SYSTEM_OGG']: + CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_THEORA']: ++if CONFIG['MOZ_SYSTEM_THEORA']: + CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_SYSTEM_VORBIS']: + CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_SYSTEM_TREMOR']: + CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS'] + -+if CONFIG['MOZ_NATIVE_OPUS']: -+ CXXFLAGS += CONFIG['MOZ_OPUS_CFLAGS'] -+ -+if CONFIG['MOZ_NATIVE_SPEEX']: -+ CXXFLAGS += CONFIG['MOZ_SPEEX_CFLAGS'] -+ -+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS'] -diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build -index 944744d..9a7c8c0 100644 ---- mozilla/media/libcubeb/src/moz.build -+++ mozilla/media/libcubeb/src/moz.build -@@ -65,6 +65,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']: - - FINAL_LIBRARY = 'gkmedias' - -+if CONFIG['MOZ_NATIVE_SPEEX']: -+ SOURCES['cubeb_resampler.cpp'].flags += CONFIG['MOZ_SPEEX_CFLAGS'] + - if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk': - CFLAGS += [ - '-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [ + if CONFIG['OS_TARGET'] == 'WINNT': + DEFINES['WEBRTC_WIN'] = True + else: diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA index 0833e4d..7ece97b 100644 --- mozilla/media/libogg/README_MOZILLA +++ mozilla/media/libogg/README_MOZILLA @@ -6,3 +6,6 @@ The svn revision number used was r17287. The int-types.patch address a bug that config_types.h generated from Linux platform can't be used on OpenSolaris directly see Mozilla bug 449754 + +The in-tree copy may be omitted during build by --with-system-ogg. -+Keep version in configure.in in sync on updates. -diff --git media/libopus/README_MOZILLA media/libopus/README_MOZILLA -index 2d85c9f..d3fb9f8 100644 ---- mozilla/media/libopus/README_MOZILLA -+++ mozilla/media/libopus/README_MOZILLA -@@ -9,3 +9,6 @@ files after the copy step. - The upstream repository is https://git.xiph.org/opus.git - - The git tag/revision used was v1.1. -+ -+The in-tree copy may be omitted during build by --with-system-opus. -+So, keep its pkg-config version check within configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libsoundtouch/README_MOZILLA media/libsoundtouch/README_MOZILLA index bfd4b1a..15b158d 100644 --- mozilla/media/libsoundtouch/README_MOZILLA +++ mozilla/media/libsoundtouch/README_MOZILLA @@ -6,3 +6,5 @@ The whole library is not used, only the relevant files are imported in the tree, using the script `update.sh`. Some changes have been made to the files, using the patch `moz-libsoundtouch.patch`. We also use a custom soundtouch_config.h. +The in-tree copy may be omitted during build by --with-system-soundtouch. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libsoundtouch/src/soundtouch_perms.h media/libsoundtouch/src/soundtouch_perms.h index 0af2fe6..d80c145 100644 --- mozilla/media/libsoundtouch/src/soundtouch_perms.h +++ mozilla/media/libsoundtouch/src/soundtouch_perms.h @@ -12,7 +12,9 @@ #pragma GCC visibility push(default) #include "SoundTouch.h" -+#ifndef MOZ_NATIVE_SOUNDTOUCH ++#ifndef MOZ_SYSTEM_SOUNDTOUCH #include "SoundTouchFactory.h" +#endif #pragma GCC visibility pop #endif // MOZILLA_SOUNDTOUCH_PERMS_H -diff --git media/libspeex_resampler/README_MOZILLA media/libspeex_resampler/README_MOZILLA -index 7f6b1bb..e830300 100644 ---- mozilla/media/libspeex_resampler/README_MOZILLA -+++ mozilla/media/libspeex_resampler/README_MOZILLA -@@ -3,3 +3,6 @@ This source is from the Speex DSP library - - It consists in the audio resampling code (resampler.c) and its header files - dependancies, imported into the tree using the update.sh script. -+ -+The in-tree copy may be omitted during build by --with-system-speex. -+Keep version in configure.in in sync on updates. diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA index d48dbfa..f08a2ed 100644 --- mozilla/media/libtheora/README_MOZILLA +++ mozilla/media/libtheora/README_MOZILLA @@ -3,3 +3,6 @@ using the update.sh script. The changes made were those applied by update.sh, the addition/update of Makefile.in files for the Mozilla build system. The subversion revision used was r17578. + +The in-tree copy may be omitted during build by --with-system-theora. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libtheora/moz.build media/libtheora/moz.build index 14265b1..3069e99 100644 --- mozilla/media/libtheora/moz.build +++ mozilla/media/libtheora/moz.build @@ -21,6 +21,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']: # The encoder is currently not included. DEFINES['THEORA_DISABLE_ENCODE'] = True -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] + # Suppress warnings in third-party code. if CONFIG['GNU_CC']: CFLAGS += ['-Wno-type-limits'] diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA index ee67b53..3f34a09 100644 --- mozilla/media/libtremor/README_MOZILLA +++ mozilla/media/libtremor/README_MOZILLA @@ -5,3 +5,6 @@ Makefile.in files for the Mozilla build system. The upstream release used was http://svn.xiph.org/trunk/Tremor/ The subversion revision used was r17547. + +The in-tree copy may be omitted during build by --with-system-tremor. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libtremor/moz.build media/libtremor/moz.build index 31831ba..a03d576 100644 --- mozilla/media/libtremor/moz.build +++ mozilla/media/libtremor/moz.build @@ -6,3 +6,5 @@ DIRS += ['include/tremor', 'lib'] -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] diff --git media/libvorbis/README_MOZILLA media/libvorbis/README_MOZILLA index 7c7454c..55baedd 100644 --- mozilla/media/libvorbis/README_MOZILLA +++ mozilla/media/libvorbis/README_MOZILLA @@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.4@19059 Some files are renamed during the copy to prevent clashes with object file names with other Mozilla libraries. + +The in-tree copy may be omitted during build by --with-system-vorbis. -+Keep version in configure.in in sync on updates. ++Keep version in old-configure.in in sync on updates. diff --git media/libvorbis/moz.build media/libvorbis/moz.build index 919b99e..cc776f7 100644 --- mozilla/media/libvorbis/moz.build +++ mozilla/media/libvorbis/moz.build @@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias' # Suppress warnings in third-party code. if CONFIG['GNU_CC']: CFLAGS += ['-Wno-uninitialized'] + -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + CFLAGS += CONFIG['MOZ_OGG_CFLAGS'] -diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build -index bbc971c..6ed7e41 100644 ---- mozilla/media/webrtc/signaling/test/common.build -+++ mozilla/media/webrtc/signaling/test/common.build -@@ -108,6 +109,9 @@ if CONFIG['MOZ_OSS']: - if CONFIG['MOZ_NATIVE_JPEG']: - OS_LIBS += CONFIG['MOZ_JPEG_LIBS'] - -+if CONFIG['MOZ_NATIVE_OPUS']: -+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS'] -+ - if CONFIG['MOZ_NATIVE_LIBVPX']: - OS_LIBS += CONFIG['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 ---- mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi -+++ mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi -@@ -17,18 +17,11 @@ - 'conditions': [ - ['build_with_mozilla==1', { - # Mozilla provides its own build of the opus library. -- 'include_dirs': [ -- '/media/libopus/include', -- '/media/libopus/src', -- '/media/libopus/celt', -+ 'cflags_mozilla': [ -+ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt', -+ '$(MOZ_OPUS_CFLAGS)', -+ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src', - ], -- 'direct_dependent_settings': { -- 'include_dirs': [ -- '/media/libopus/include', -- '/media/libopus/src', -- '/media/libopus/celt', -- ], -- }, - }, { - 'dependencies': [ - '<(DEPTH)/third_party/opus/opus.gyp:opus' -diff --git media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi -index 00e77e7..55f48ab 100644 ---- mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi -+++ mozilla/media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi -@@ -84,19 +84,11 @@ - ], - }], - ['build_with_mozilla==1', { -- 'include_dirs': [ -- # Need Opus header files for the audio classifier. -- '<(DEPTH)/../../../media/opus/celt', --# '<(DEPTH)/third_party/opus/src/src', -+ 'cflags_mozilla': [ -+ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt', -+ '$(MOZ_OPUS_CFLAGS)', -+ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src', - ], -- 'direct_dependent_settings': { -- 'include_dirs': [ -- '../../../../../../media/opus/celt', -- # Need Opus header files for the audio classifier. -- '<(DEPTH)/../../../media/opus/celt', --# '<(DEPTH)/third_party/opus/src/src', -- ], -- }, - }], - ], - 'sources': [ diff --git toolkit/library/moz.build toolkit/library/moz.build index d42137a..695e75a8 100644 --- mozilla/toolkit/library/moz.build +++ mozilla/toolkit/library/moz.build -@@ -178,6 +178,30 @@ if CONFIG['MOZ_NATIVE_PNG']: - if CONFIG['MOZ_NATIVE_HUNSPELL']: +@@ -178,6 +178,21 @@ if CONFIG['MOZ_SYSTEM_PNG']: + if CONFIG['MOZ_SYSTEM_HUNSPELL']: OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] -+if CONFIG['MOZ_NATIVE_OGG']: ++if CONFIG['MOZ_SYSTEM_OGG']: + OS_LIBS += CONFIG['MOZ_OGG_LIBS'] + -+if CONFIG['MOZ_NATIVE_THEORA']: ++if CONFIG['MOZ_SYSTEM_THEORA']: + OS_LIBS += CONFIG['MOZ_THEORA_LIBS'] + -+if CONFIG['MOZ_NATIVE_VORBIS']: ++if CONFIG['MOZ_SYSTEM_VORBIS']: + OS_LIBS += CONFIG['MOZ_VORBIS_LIBS'] + -+if CONFIG['MOZ_NATIVE_TREMOR']: ++if CONFIG['MOZ_SYSTEM_TREMOR']: + OS_LIBS += CONFIG['MOZ_TREMOR_LIBS'] + -+if CONFIG['MOZ_NATIVE_CELT']: -+ OS_LIBS += CONFIG['MOZ_CELT_LIBS'] -+ -+if CONFIG['MOZ_NATIVE_OPUS']: -+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS'] -+ -+if CONFIG['MOZ_NATIVE_SPEEX']: -+ OS_LIBS += CONFIG['MOZ_SPEEX_LIBS'] -+ -+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']: ++if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']: + OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS'] + - if CONFIG['MOZ_NATIVE_LIBEVENT']: + if CONFIG['MOZ_SYSTEM_LIBEVENT']: OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS'] diff --git xpcom/build/XPCOMInit.cpp xpcom/build/XPCOMInit.cpp index 2cf281e..6d7af0e 100644 --- mozilla/xpcom/build/XPCOMInit.cpp +++ mozilla/xpcom/build/XPCOMInit.cpp @@ -138,7 +138,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**); #include "mozilla/VisualEventTracer.h" #endif +#ifndef MOZ_OGG_NO_MEM_REPORTING #include "ogg/ogg.h" +#endif #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) #include "vpx_mem/vpx_mem.h" #endif @@ -651,11 +653,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult, // this oddness. mozilla::SetICUMemoryFunctions(); +#ifndef MOZ_OGG_NO_MEM_REPORTING // Do the same for libogg. ogg_set_mem_functions(OggReporter::CountingMalloc, OggReporter::CountingCalloc, OggReporter::CountingRealloc, OggReporter::CountingFree); +#endif #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) // And for VPX. Index: branches/2016Q4/www/seamonkey-i18n/Makefile =================================================================== --- branches/2016Q4/www/seamonkey-i18n/Makefile (revision 429220) +++ branches/2016Q4/www/seamonkey-i18n/Makefile (revision 429221) @@ -1,84 +1,84 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= seamonkey-i18n -PORTVERSION= 2.40 +PORTVERSION= 2.46 CATEGORIES= www mail news editors irc MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/langpack \ - MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build1/langpack + MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build9/langpack PKGNAMEPREFIX= DISTFILES= ${SEAMONKEY_I18N_:S/$/.langpack.xpi/:S/^/seamonkey-${PORTVERSION}./} DIST_SUBDIR= xpi/${DISTNAME} MAINTAINER= gecko@FreeBSD.org COMMENT= Localized interface for SeaMonkey USES= zip gecko:seamonkey USE_XPI= seamonkey linux-seamonkey NO_ARCH= yes USE_SUBMAKE= yes WDIR= langpack-*@seamonkey.mozilla.org XPI_DISTNAMES= ${SEAMONKEY_I18N_} PLIST?= ${WRKDIR}/plist PLISTF?= ${WRKDIR}/plist_files .include "${.CURDIR}/Makefile.option" .include .ifndef WITHOUT_SWITCHER RUN_DEPENDS+= xpi-quick-locale-switcher>=0:www/xpi-quick-locale-switcher .endif .include "${.CURDIR}/Makefile.lang" SEAMONKEY_I18N_?= ${SEAMONKEY_I18N} .for dist in ${XPI_DISTNAMES} XPI_ID_${dist}= langpack-${dist}@seamonkey.mozilla.org .endfor pre-everything:: @${ECHO_CMD} @${ECHO_CMD} "Please define SEAMONKEY_I18N_ALL to install all languages." @${ECHO_CMD} do-extract: @${MKDIR} ${WRKSRC} @for lang in ${SEAMONKEY_I18N_}; do \ if ! (${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/seamonkey-${PORTVERSION}.$$lang.langpack.xpi -d ${WRKSRC}/langpack-$$lang@seamonkey.mozilla.org);\ then \ exit 1; \ fi; \ cd ${WRKSRC}/langpack-$$lang@seamonkey.mozilla.org/; \ ${FIND} -H -s * ! -type d | \ ${SED} -e "s|^|lib/xpi/langpack-$$lang@seamonkey.mozilla.org/|" >> ${PLISTF}; \ done ${CAT} ${PLISTF} | ${SORT} >> ${PLIST} do-install: @${MKDIR} ${STAGEDIR}${XPI_LIBDIR} ${XPI_LINKFARMS:S,^,${STAGEDIR},} cd ${WRKSRC}; ${PAX} -rw . ${STAGEDIR}${XPI_LIBDIR} ${CHMOD} -R a+rX,go-w ${STAGEDIR}${XPI_LIBDIR}/${WDIR}/ @for sldir in ${XPI_LINKFARMS}; do \ ${ECHO_CMD} "@dir $${sldir}" ${_A}; \ done @${ECHO_CMD} '@exec for _dir in ${XPI_LINKFARMS} ; { \ ${LN} -sf ${XPI_LIBDIR}/${WDIR} $$_dir/ ${_Q}; }' ${_A} @${ECHO_CMD} '@unexec for _dir in ${XPI_LINKFARMS}; { ${RM} -f $$_dir/${WDIR} ; }' ${_A} post-patch: ${FIND} ${WRKSRC} -name install.rdf -print0 | \ ${XARGS} -0L1 ${REINPLACE_CMD} -i '' -e '/ Index: branches/2016Q4/www/seamonkey-i18n/distinfo =================================================================== --- branches/2016Q4/www/seamonkey-i18n/distinfo (revision 429220) +++ branches/2016Q4/www/seamonkey-i18n/distinfo (revision 429221) @@ -1,53 +1,53 @@ -TIMESTAMP = 1475123784 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.be.langpack.xpi) = 257bd56c3db3d62600e8fcb4e621df1cb3cede2e73354a0f588516152598e9b8 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.be.langpack.xpi) = 846940 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.ca.langpack.xpi) = 06d423fc182c0d6b674572a94c0628febbe314883dc0be7f481583ae21ce9485 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.ca.langpack.xpi) = 838972 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.cs.langpack.xpi) = b2485aaed83ad46edb565fd6d35b785fc350ae96a7c32df91eb028807d8f442e -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.cs.langpack.xpi) = 831462 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.de.langpack.xpi) = 8d72d02bcec01e63a6b4630bcfd092fa1dcdf21b8424f4de878d4460e6ba1865 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.de.langpack.xpi) = 839670 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.en-GB.langpack.xpi) = b19890d7c446ffd98a9c94f95986cbbed9842f4149ce549d3463128957f1ed9f -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.en-GB.langpack.xpi) = 801900 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.en-US.langpack.xpi) = 45c6f3aee27022a7523268d21f38924dbfa3553f2dfca25e8e11ef41c1119392 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.en-US.langpack.xpi) = 801237 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.es-AR.langpack.xpi) = 096bfcbd124463398d1776955587036f7d8d969582053d8980dde18e34e21738 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.es-AR.langpack.xpi) = 850745 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.es-ES.langpack.xpi) = 8d95036953298f880de663961a4b686bed9b233dfdc247a5107465d97d671b68 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.es-ES.langpack.xpi) = 819863 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.fi.langpack.xpi) = fbbca3abdc2fca3a7d18500e606ef75e3ee4ecbaefce3fc6bec211422521ac0e -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.fi.langpack.xpi) = 806026 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.fr.langpack.xpi) = faed1301c6f7eebf6999521feb7a8161f4ec5c6dab01ae717f9bb7df360a6382 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.fr.langpack.xpi) = 812115 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.gl.langpack.xpi) = 36d8a69aa1a526dd8ecc6a2fe2da55b5b4d3e4bcbbd2d13af0f76fa79ae21fc4 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.gl.langpack.xpi) = 817071 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.hu.langpack.xpi) = b259e45414ea7247c586605797064743efd203ad22ef4a6ca734d9d39ea0ddcd -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.hu.langpack.xpi) = 849367 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.it.langpack.xpi) = 6818ac8634aa959c049791bd96e228ee68fb4af214d73b2ded67cdf9e8fba159 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.it.langpack.xpi) = 730855 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.ja.langpack.xpi) = 73c868aad2fdcc3ddf3cbb84bdca2ec7e43c7fcf0ac1d5ec243717123dcaf353 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.ja.langpack.xpi) = 888099 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.lt.langpack.xpi) = eb99109e0b25415e460c31fe6be35d41ada6040ca91bb90fb29af951f0b21b6a -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.lt.langpack.xpi) = 858221 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.nb-NO.langpack.xpi) = 2762bcddb6b4d36b2d14bb961e6b3604420e099216d5efc60b8835bc2709251d -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.nb-NO.langpack.xpi) = 829131 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.nl.langpack.xpi) = fa6f780f2fec5b43c75bc46778ddcfa983c989fe16a0c1995c0bc65a375188f9 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.nl.langpack.xpi) = 796595 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.pl.langpack.xpi) = 96d1eaf1bafce2a4b11abfc7b3cccc3409b073e7353416ec7eaec48f61d0ed83 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.pl.langpack.xpi) = 861834 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.pt-PT.langpack.xpi) = 1ef665be4063a864564ac13d6cf87892bc5c3c57a9e4115efd03403382e14b8b -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.pt-PT.langpack.xpi) = 831873 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.ru.langpack.xpi) = 68f6ca318be2cd1f78245db311ac9c0e0ae877697c0e310284615b352338a61e -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.ru.langpack.xpi) = 892052 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.sk.langpack.xpi) = af8c126fe02cb3a8b9783c4a1f8d4bdec8b684195a2a8b5be537df88e2ec2861 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.sk.langpack.xpi) = 858148 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.sv-SE.langpack.xpi) = fc970bfc8b52119c147d564076904df9b3722fb922bc9703709ceb5be2bd6144 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.sv-SE.langpack.xpi) = 824804 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.tr.langpack.xpi) = c5dce74507307008127e3402e0c9a877f333f2b1085b1c912c77969f4a433632 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.tr.langpack.xpi) = 814264 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.uk.langpack.xpi) = 9932ca0ac00312a9fd9bab3199f7e55564beb6f5f339647c7a6c0cdd4cd82241 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.uk.langpack.xpi) = 875815 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.zh-CN.langpack.xpi) = 28f634be2ed10526dbf6bf310b28f4da921d5809bce8216418c34ad07ac75443 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.zh-CN.langpack.xpi) = 839892 -SHA256 (xpi/seamonkey-i18n-2.40/seamonkey-2.40.zh-TW.langpack.xpi) = eaec998d922789be13cfc42660ab96abd0b1ec47cb4394b8a9f725969141ba89 -SIZE (xpi/seamonkey-i18n-2.40/seamonkey-2.40.zh-TW.langpack.xpi) = 861767 +TIMESTAMP = 1481640594 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.be.langpack.xpi) = d97376ff92ffcdf04ec08273b60b8750d2c4f65edd71eed734313f72885f45db +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.be.langpack.xpi) = 936650 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.ca.langpack.xpi) = 11adc88aab13826dbb7dd9374f877b80c87a085d75712c976173f243950292a6 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.ca.langpack.xpi) = 937577 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.cs.langpack.xpi) = 4fae0f46a8ba83a72e6c7a50b7ba73153f153055b874fa3e857ebf6867a48ff3 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.cs.langpack.xpi) = 936101 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.de.langpack.xpi) = e6d000492fbb3aa1f7624dbb3a546742bd9badb67a9cee8a95fd8b8ead7ac0eb +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.de.langpack.xpi) = 942796 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.en-GB.langpack.xpi) = be1e956e11c4e36def6af6ee0c0795f5ec19e4370d811b6f3fdf60ed38f184c4 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.en-GB.langpack.xpi) = 900232 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.en-US.langpack.xpi) = ff188a86cebac99fa25575b8f8a2eb01d0f6ee009485c826dd9fbf3701839eb4 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.en-US.langpack.xpi) = 900829 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.es-AR.langpack.xpi) = 5b7a9da73fe69c9004487f844f97f5f18d3db79e49dd151ae9a6229545ef7d2c +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.es-AR.langpack.xpi) = 952318 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.es-ES.langpack.xpi) = da0c4b4e156965310ad4280c5ab461abd778b89e55d16a1f1ee78f692bbb76cb +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.es-ES.langpack.xpi) = 881728 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.fi.langpack.xpi) = 9242710c283628b6e9f68eee0425e1f7b81d81be27c1d5c3dc441018751b1511 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.fi.langpack.xpi) = 905048 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.fr.langpack.xpi) = e8e01037b879fe49e9dc042f27e08737083ac2bd7f9652ec2216d69f3de84ac9 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.fr.langpack.xpi) = 945990 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.gl.langpack.xpi) = e10ed62becc1e090c1734434d4a48b403dadb75b2231b70b33e2f34666fa42fa +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.gl.langpack.xpi) = 915640 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.hu.langpack.xpi) = 7366d80af72e1e5c46275b0f3f4efa36290b59ac2c24dc4b2debf06dbdc469fe +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.hu.langpack.xpi) = 950137 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.it.langpack.xpi) = 939162085a89575988fc44251f6f484bce087433bf06220fe94a3a3ef31a4279 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.it.langpack.xpi) = 788290 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.ja.langpack.xpi) = b3f8a0e23cbd3e235d33d1fb083ff6b5b4d0abdd4697d89be444f90e657afea5 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.ja.langpack.xpi) = 1000175 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.lt.langpack.xpi) = 32ca1b4668234c96c161512e6e7a444d864229d86efdc89caafff5e1d882bd0d +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.lt.langpack.xpi) = 951611 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.nb-NO.langpack.xpi) = 20b93b1f9475fc97a9f86f48d2bbcdeca43015c2cfe62a5a7b4d204dee1d7e0f +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.nb-NO.langpack.xpi) = 921937 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.nl.langpack.xpi) = eb9e84781c9c70411ccc199b8ccd6bf96729763ac09210d67d2dbe9178f9b8c4 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.nl.langpack.xpi) = 926891 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.pl.langpack.xpi) = 47a18be4d673bc8ef172b358512390d5bcfc6f81d1c2d327669aa135b2aec482 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.pl.langpack.xpi) = 918214 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.pt-PT.langpack.xpi) = 0ba281071038143950c64a03edaab7a37a4d284ed1583b50633ab58e393c7743 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.pt-PT.langpack.xpi) = 934340 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.ru.langpack.xpi) = fd50c7fd8f291530f68af88424dffd15e59340cb854a1edc915d2d5dc548ec78 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.ru.langpack.xpi) = 960162 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.sk.langpack.xpi) = 124d643a414d595941cc5fd72c0529629df8f3ea15c0f16186e7e3d5550dca22 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.sk.langpack.xpi) = 962527 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.sv-SE.langpack.xpi) = 6cadce5a8b40aaf1cc39157f5a9be3de5890d4b298082c11f9da1bdf43638869 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.sv-SE.langpack.xpi) = 935346 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.tr.langpack.xpi) = 1ad81e539c119d4bcc9b4c15dc1a54d604ae8d999c3e7dbc112c2633dd914409 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.tr.langpack.xpi) = 912742 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.uk.langpack.xpi) = 50be5f1fc5bf46133308185fee7f6761eca90550bbbb6d27ded3a0f81e2cfb81 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.uk.langpack.xpi) = 995478 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.zh-CN.langpack.xpi) = 19e835ebb01e3c7c8bdd3aeee9105f18187fb7c588bf2e329db45c39acb4e5dc +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.zh-CN.langpack.xpi) = 942579 +SHA256 (xpi/seamonkey-i18n-2.46/seamonkey-2.46.zh-TW.langpack.xpi) = 2fe7403370d70d4daa6a302fc24fc72a062cb9777acc672faf20f51f2ed73955 +SIZE (xpi/seamonkey-i18n-2.46/seamonkey-2.46.zh-TW.langpack.xpi) = 970970 Index: branches/2016Q4 =================================================================== --- branches/2016Q4 (revision 429220) +++ branches/2016Q4 (revision 429221) Property changes on: branches/2016Q4 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r428671,429039