diff --git a/Mk/Uses/gecko.mk b/Mk/Uses/gecko.mk index 0bf667556a3b..33382930788b 100644 --- a/Mk/Uses/gecko.mk +++ b/Mk/Uses/gecko.mk @@ -1,129 +1,129 @@ # $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 !defined(gecko_ARGS) _GECKO_ARGS= libxul .else _GECKO_ARGS= ${gecko_ARGS:S/,/ /g} .endif _GECKO_VERSION= ${_GECKO_ARGS:M[0-9][0-9]*} .if ${_GECKO_ARGS:Mlibxul} # Compat with older versions GECKO= libxul GECKO_CONFING?= ${LOCALBASE}/bin/${GECKO}-config XPIDL?= ${LOCALBASE}/lib/${GECKO}/xpidl XPIDL_INCL?= `${GECKO_CONFIG} --idlflags` BUILD_DEPENDS+= libxul>=24:${PORTSDIR}/www/libxul RUN_DEPENDS+= libxul>=24:${PORTSDIR}/www/libxul .elif ${_GECKO_ARGS:Mfirefox} _GECKO_DEFAULT_VERSION= 24 _GECKO_VERSIONS= 24 29 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions 24_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox-esr 29_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox .if exists(${LOCALBASE}/bin/firefox) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/firefox --version 2>/dev/null _GECKO_INSTALLED_VER:= ${_GECKO_INSTALLED_VER:M[0-9][0-9]*:C/([0-9][0-9]).*/\1/g} .endif .elif ${_GECKO_ARGS:Mseamonkey} -_GECKO_DEFAULT_VERSION= 25 -_GECKO_VERSIONS= 25 +_GECKO_DEFAULT_VERSION= 26 +_GECKO_VERSIONS= 26 _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][0-9]*:C/([0-9][0-9]).*/\1/g} +_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 -22_DEPENDS= ${LOCALBASE}/lib/seamonkey/seamonkey:${PORTSDIR}/www/seamonkey +26_DEPENDS= ${LOCALBASE}/lib/seamonkey/seamonkey:${PORTSDIR}/www/seamonkey .elif ${_GECKO_ARGS:Mthunderbird} _GECKO_DEFAULT_VERSION= 24 _GECKO_VERSIONS= 24 _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 24_DEPENDS= ${LOCALBASE}/lib/thunderbird/thunderbird:${PORTSDIR}/mail/thunderbird .else IGNORE= Unknown type of gecko dependency you may specify either libxul, firefox, seamonkey or thunderbird .endif .if defined(_GECKO_TYPE) .if ${_GECKO_VERSION:M*+} _GECKO_MIN_VERSION:= ${_GECKO_VERSION:S/+//} _GECKO_WANTED_VERSIONS:= ${_GECKO_DEFAULT_VERSION} .endif .if ${_GECKO_VERSION:M[0-9][0-9]} _GECKO_WANTED_VERSIONS:= ${_GECKO_VERSION:M[0-9][0-9]} .endif _GECKO_WANTED_VERSIONS?= ${_GECKO_DEFAULT_VERSION} .if defined(_GECKO_MIN_VERSION) . for _v in _GECKO_VERSIONS . if ${_GECKO_MIN_VERSION} <= ${_v} _GECKO_WANTED_VERSIONS+= ${_v} . endif . endfor .endif .for _v in ${_GECKO_WANTED_VERSIONS:O:u} _GECKO_HIGHEST_VERSION:= ${_v} .if defined(_GECKO_INSTALLED_VER) && ${_GECKO_INSTALLED_VER} == ${_v} _GECKO_WANTED_VERSION:= ${_v} .endif .endfor .if !defined(_GECKO_WANTED_VERSION) .if defined(_GECKO_INSTALLED_VER) IGNORE= cannot install: ${_GECKO_TYPE} versions mismatch: ${_GECKO_TYPE}-${_GECKO_INSTALLED_VER} is installed and wanted version is ${_GECKO_TYPE}-${_GECKO_VERSION:M[0-9][0-9]} .else _GECKO_WANTED_VERSION:= ${_GECKO_HIGHEST_VERSION} .endif .endif .if ${_GECKO_ARGS:Mbuild} BUILD_DEPENDS+= ${${_GECKO_WANTED_VERSION}_DEPENDS} .endif RUN_DEPENDS+= ${${_GECKO_WANTED_VERSION}_DEPENDS} .endif .endif diff --git a/www/libxul/Makefile b/www/libxul/Makefile index e8b9681a0df9..37db7447e248 100644 --- a/www/libxul/Makefile +++ b/www/libxul/Makefile @@ -1,86 +1,85 @@ # Created by: Michael Johnson # $FreeBSD$ PORTNAME= libxul -DISTVERSION= 24.3.0 +DISTVERSION= 24.5.0 CATEGORIES?= www devel MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \ https://ftp.mozilla.org/pub/mozilla.org/firefox/candidates/${DISTVERSION}esr-candidates/build1/source/ DISTNAME= firefox-${DISTVERSION}esr.source MAINTAINER?= gecko@FreeBSD.org COMMENT?= Mozilla runtime package that can be used to bootstrap XUL+XPCOM apps BUILD_DEPENDS= nspr>=4.10.2:${PORTSDIR}/devel/nspr \ nss>=3.15.4:${PORTSDIR}/security/nss \ sqlite3>=3.7.17:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \ soundtouch>=1.7.0:${PORTSDIR}/audio/soundtouch \ harfbuzz>=0.9.16:${PORTSDIR}/print/harfbuzz \ graphite2>=1.2.3:${PORTSDIR}/graphics/graphite2 \ libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \ opus>=1.1:${PORTSDIR}/audio/opus \ v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ zip:${PORTSDIR}/archivers/zip \ unzip:${PORTSDIR}/archivers/unzip LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l WRKSRC= ${WRKDIR}/mozilla-esr24 CONFLICTS= libxul-1.9.* USE_AUTOTOOLS= autoconf213:env USE_PYTHON_BUILD=2 WANT_GNOME= yes USE_QT4= # empty QT_NONSTANDARD= yes WANT_PERL= yes ALL_TARGET= default GNU_CONFIGURE= yes -USE_BZIP2= yes USE_GL= gl -USES= dos2unix +USES= dos2unix tar:bzip2 DOS2UNIX_FILES= media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp MAKE_ENV= SKIP_GRE_REGISTRATION=1 mozappdir=${PREFIX}/lib/${MOZILLA} LDFLAGS+= -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH} USE_LDCONFIG= ${PREFIX}/lib/${MOZILLA} MOZ_OPTIONS?= --enable-application=xulrunner MOZ_EXTENSIONS= default,cookie,permissions USE_GECKO= gecko OBJDIR_BUILD= # in-tree build broken after bug 789837 MOZILLA_EXEC_NAME=xulrunner USE_MOZILLA= # empty MOZILLA_PLIST_DIRS= bin include lib share/idl PLIST_DIRSTRY= share/idl MOZ_PKGCONFIG_FILES= libxul-embedding libxul mozilla-js \ mozilla-plugin .include "${.CURDIR}/../../www/firefox/Makefile.options" .include .if ${USE_MOZILLA:M-nss} MOZ_PKGCONFIG_FILES+= mozilla-nss .endif .if ${PORT_OPTIONS:MALSA} BUILD_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib .endif post-patch: @${REINPLACE_CMD} -e '/MOZPNG/s/=[0-9]*/=10511/' \ ${WRKSRC}/configure.in @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/xulrunner/stub/nsXULStub.cpp pre-configure: (cd ${WRKSRC} && ${AUTOCONF}) (cd ${WRKSRC}/js/src/ && ${AUTOCONF}) post-build: @${REINPLACE_CMD} -e "s|\(Libs:.*\)\($$\)|\1 -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}\2| ; \ s|%sdkdir%|%sdkdir%/sdk|g ; \ s|%%MOZ_LIBDIR%%|${PREFIX}/lib/${MOZILLA}|g" \ ${WRKSRC}/xulrunner/installer/*.pc.in || ${TRUE} .include diff --git a/www/libxul/distinfo b/www/libxul/distinfo index b8f85a402c3f..b872161f5c4c 100644 --- a/www/libxul/distinfo +++ b/www/libxul/distinfo @@ -1,2 +1,2 @@ -SHA256 (firefox-24.3.0esr.source.tar.bz2) = 0d38dd50beffff640cfea67fcf8f44bb95c3c927ccfa225f2b937b9a4ba262b9 -SIZE (firefox-24.3.0esr.source.tar.bz2) = 119391302 +SHA256 (firefox-24.5.0esr.source.tar.bz2) = 1670e72511cad6047eb8726fa6c2362adcb95b5d53a3c327c4c38bed4b788701 +SIZE (firefox-24.5.0esr.source.tar.bz2) = 119830718 diff --git a/www/libxul/files/patch-bug970031 b/www/libxul/files/patch-bug970031 deleted file mode 100644 index bfb5f099eb85..000000000000 --- a/www/libxul/files/patch-bug970031 +++ /dev/null @@ -1,13 +0,0 @@ -diff --git xpcom/reflect/xptcall/src/md/unix/moz.build xpcom/reflect/xptcall/src/md/unix/moz.build -index 5f88066..bd2a94f 100644 ---- xpcom/reflect/xptcall/src/md/unix/moz.build -+++ xpcom/reflect/xptcall/src/md/unix/moz.build -@@ -235,7 +235,7 @@ if CONFIG['OS_ARCH'] == 'OpenBSD' and CO - 'xptcstubs_sparc_openbsd.cpp', - ] - --if CONFIG['OS_ARCH'] == 'OpenBSD' and CONFIG['OS_TEST'] == 'sparc64': -+if CONFIG['OS_ARCH'] in ('OpenBSD', 'FreeBSD') and CONFIG['OS_TEST'] == 'sparc64': - CPP_SOURCES += [ - 'xptcinvoke_sparc64_openbsd.cpp', - 'xptcstubs_sparc64_openbsd.cpp', diff --git a/www/linux-seamonkey/Makefile b/www/linux-seamonkey/Makefile index 55bbcbf12d11..d6cbb09e04da 100644 --- a/www/linux-seamonkey/Makefile +++ b/www/linux-seamonkey/Makefile @@ -1,17 +1,17 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= seamonkey -DISTVERSION= 2.25 +DISTVERSION= 2.26 CATEGORIES= www mail news editors irc ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US MAINTAINER= gecko@FreeBSD.org COMMENT= The open source, standards compliant web browser USE_BZIP2= yes USE_LINUX_APPS= dbusglib dbuslibs alsalib alsa-plugins-oss .include "${.CURDIR}/Makefile.common" .include diff --git a/www/linux-seamonkey/distinfo b/www/linux-seamonkey/distinfo index e6c3d46381e6..605d95fac5ea 100644 --- a/www/linux-seamonkey/distinfo +++ b/www/linux-seamonkey/distinfo @@ -1,6 +1,6 @@ -SHA256 (seamonkey-2.25.tar.bz2) = 67892c00243b9a4f2964ac61c9661e2d954ce33bc27fb10588f650922d5e3c62 -SIZE (seamonkey-2.25.tar.bz2) = 30377947 +SHA256 (seamonkey-2.26.tar.bz2) = 4b306933c629bfaa0f6f4a8e5db08a47055061e3db87010b4c1e058d4ee4e0b2 +SIZE (seamonkey-2.26.tar.bz2) = 30916325 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 diff --git a/www/seamonkey-i18n/Makefile b/www/seamonkey-i18n/Makefile index 2399acb63e62..c71d8c714d07 100644 --- a/www/seamonkey-i18n/Makefile +++ b/www/seamonkey-i18n/Makefile @@ -1,92 +1,92 @@ # Created by: Andrew Pantyukhin # $FreeBSD$ PORTNAME= seamonkey-i18n -PORTVERSION= 2.25 +PORTVERSION= 2.26 CATEGORIES= www mail news editors irc MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/langpack PKGNAMEPREFIX= DISTFILES= ${SEAMONKEY_I18N_:S/$/.langpack.xpi/:S/^/seamonkey-${PORTVERSION}./} DIST_SUBDIR= xpi/${DISTNAME} MAINTAINER= gecko@FreeBSD.org COMMENT= Localized interface for SeaMonkey EXTRACT_DEPENDS= zip:${PORTSDIR}/archivers/zip USES= zip:infozip 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 PLISTD?= ${WRKDIR}/plist_dirs PLISTF?= ${WRKDIR}/plist_files .include "${.CURDIR}/Makefile.option" .include .ifndef WITHOUT_SWITCHER RUN_DEPENDS+= xpi-quick-locale-switcher>=0:${PORTSDIR}/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} && \ ${FIND} -d * -type d | \ ${SED} -e "s|^|@dirrm lib/xpi/langpack-$$lang@seamonkey.mozilla.org/|" >> ${PLISTD}; \ done ${CAT} ${PLISTF} | ${SORT} >> ${PLIST} ${CAT} ${PLISTD} | ${SORT} -r >> ${PLIST} do-install: @${MKDIR} ${STAGEDIR}${XPI_LIBDIR} ${STAGEDIR}${XPI_SLDIRS_ALL} cd ${WRKSRC}; ${PAX} -rw . ${STAGEDIR}${XPI_LIBDIR} ${CHMOD} -R a+rX,go-w ${STAGEDIR}${XPI_LIBDIR}/${WDIR}/ @for e in ${STAGEDIR}${XPI_LIBDIR}/${WDIR}; do \ for _dir in ${XPI_LINKFARMS} ; do \ ${LN} -sf $${_e##*/} ${STAGEDIR}$$_dir/ ${_Q} ; \ done \ done @${ECHO_CMD} '@exec ${INSTALL} -d ${XPI_SLDIRS_ALL:S,^${PREFIX},%D,}' ${_A} @${ECHO_CMD} '@exec for _dir in ${XPI_LINKFARMS} ; { \ ${LN} -sf ${XPI_LIBDIR}/${WDIR} $$_dir/ ${_Q}; }' ${_A} @${ECHO_CMD} '@unexec for _dir in ${XPI_LINKFARMS} ${XPI_LIBDIR}; { ${RM} -f $$_dir/${WDIR} ; }' ${_A} post-patch: ${FIND} ${WRKSRC} -name install.rdf -print0 | \ ${XARGS} -0L1 ${REINPLACE_CMD} -i '' -e '/ diff --git a/www/seamonkey-i18n/distinfo b/www/seamonkey-i18n/distinfo index 20230d4dee07..277d23d0af18 100644 --- a/www/seamonkey-i18n/distinfo +++ b/www/seamonkey-i18n/distinfo @@ -1,54 +1,54 @@ -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.be.langpack.xpi) = 89685620ee38c099b3621de2ef1e79b63ea2f8c2c73d333c1afb79068e971d14 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.be.langpack.xpi) = 817911 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.ca.langpack.xpi) = ea59f8370f00ca40358ecdf489658316ffd44f58c75a3a2b0d4823b0b0a65a5e -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.ca.langpack.xpi) = 815229 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.cs.langpack.xpi) = 9e1ed7d0540634f4dfa96e71219c9b5ef13389b498185f8160ddc732402f8329 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.cs.langpack.xpi) = 813471 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.de.langpack.xpi) = 38634d0c30f1c81a2b86d85542038dcc78efe82a9423718fd5feae15749a9764 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.de.langpack.xpi) = 821039 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.en-GB.langpack.xpi) = ab5e441d1b2b474b2724fa67afc1ae77433efdeb3d8f2292b27376b08f433c61 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.en-GB.langpack.xpi) = 784862 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.en-US.langpack.xpi) = 7fd81253636a639c33665c0276f88748cb80fe084eff12a9ae7535c2fb5daed3 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.en-US.langpack.xpi) = 785842 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.es-AR.langpack.xpi) = bea734c6766993aa99b0c2bc78370e732680d00de7ca1dd65a02a2a92383794d -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.es-AR.langpack.xpi) = 836043 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.es-ES.langpack.xpi) = e1f52133ff623e90dcb9cd9988abd9c5e6e31d8679c6ee2ccd723f52028bae33 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.es-ES.langpack.xpi) = 813327 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.fi.langpack.xpi) = caaaf807a1bf85408c2a9dcbab74e6ee2e9a794114a9d72a86f218ad1b2d4a5b -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.fi.langpack.xpi) = 783351 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.fr.langpack.xpi) = 3983ba2cf14165d78724dd97e4652833c7f4197c8fa2218eb48c575c8359249f -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.fr.langpack.xpi) = 794139 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.gl.langpack.xpi) = b48fe273f37bf4a76b6d607377e390d64053019df7213c59b0aa35bce6a6e533 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.gl.langpack.xpi) = 792993 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.hu.langpack.xpi) = 3818cf807f912dcf089d992520debf7deda24346f083172ab50fad1ef3b6b197 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.hu.langpack.xpi) = 827480 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.it.langpack.xpi) = 1b1b28a69f18af2cf089860722c8a85e8a8b53087adf7bdb881b7fce14a571dd -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.it.langpack.xpi) = 727323 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.ja-JP-mac.langpack.xpi) = ce6ee62d188107055a7bfaff2a47b375ae06a4e11898d22c4af3636b653487f2 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.ja-JP-mac.langpack.xpi) = 891817 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.ja.langpack.xpi) = 66916fd154ef6e33f2c6d3a53fe0dd46d1fd03542241361a18cd589ee7683483 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.ja.langpack.xpi) = 866418 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.lt.langpack.xpi) = 043edbbe70608661eb33be1c372f5a4132d2f37e56d570bd6a953495cf99002c -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.lt.langpack.xpi) = 830877 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.nb-NO.langpack.xpi) = 0773a90b97b3b24f28dea4c637a95c1cf0b4a0aa4b7957232dec7d2de23775e6 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.nb-NO.langpack.xpi) = 806695 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.nl.langpack.xpi) = e6b91de4deb292b61ad18e593338f912a5d5749b045bc2698b7e38e394d148ee -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.nl.langpack.xpi) = 780751 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.pl.langpack.xpi) = 420d34f2475fbfe0f5c80ba3e9d526e02b9fb605e2edc8cfe0011d1e4afd93b2 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.pl.langpack.xpi) = 855085 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.pt-PT.langpack.xpi) = 54c80b0243f946249bf53f84b424ef0102cc4cbd0b4fa7861ba77b7977880ff6 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.pt-PT.langpack.xpi) = 816434 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.ru.langpack.xpi) = 1f03d4fe581603c64e619562af0aa747e9e73a5be179d99b9b6d5d568ca995dd -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.ru.langpack.xpi) = 884848 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.sk.langpack.xpi) = 841c06545a7b5f57842674d9f59849e0840dda51d4d5029c1d1dade100df66cb -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.sk.langpack.xpi) = 840780 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.sv-SE.langpack.xpi) = 1455d1aff8f321d40a1e724d8771db39eee93e74deaf8733fa5a01badc3affd8 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.sv-SE.langpack.xpi) = 809391 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.tr.langpack.xpi) = 3c3c54f359b08a508ce014b1edb99db4ed0455237f423051a25e746a775f1dd1 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.tr.langpack.xpi) = 789890 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.uk.langpack.xpi) = b64369e2191eaa97fbb11a8e3e343cef42f3156ffccb75d97ed48a71158ea29f -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.uk.langpack.xpi) = 852254 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.zh-CN.langpack.xpi) = 2e00de1f63e08914d954af80b6bd19552a268f566ca16de587ea673df4d6217c -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.zh-CN.langpack.xpi) = 817701 -SHA256 (xpi/seamonkey-i18n-2.25/seamonkey-2.25.zh-TW.langpack.xpi) = fc24d601697ee73d6cebb6bc06cc8b22e192716b343138834788d4ff7c9a1863 -SIZE (xpi/seamonkey-i18n-2.25/seamonkey-2.25.zh-TW.langpack.xpi) = 842075 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.be.langpack.xpi) = bba364903e2cd080a83b4c7b06317ce547fce0463e46cb1ff5241dcd3b0341f7 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.be.langpack.xpi) = 818751 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ca.langpack.xpi) = 8885d0412bd420b77a831bc28aae685d0962ef840ddb16e380cd07a2f2ef176c +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ca.langpack.xpi) = 816735 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.cs.langpack.xpi) = cc77420a27f8e0757bcbdd6f8df2be361883ae1c5840e63f63a1386e43bc498c +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.cs.langpack.xpi) = 814944 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.de.langpack.xpi) = 960ce22067f7cd19ec30c1249a588c651785a8989f374e14e8d06de8dce35237 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.de.langpack.xpi) = 822042 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.en-GB.langpack.xpi) = 42aa60112205d55fb9f835baf1a051da97942a950a17fbb37f0aac7cf6f5135e +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.en-GB.langpack.xpi) = 785904 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.en-US.langpack.xpi) = 31b47ea472f6f4293f896355d8d4092ced3094ab001afc3625c33de1dfb4a6e8 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.en-US.langpack.xpi) = 786788 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.es-AR.langpack.xpi) = 70e3502d5578c3d793645c47872c436f92845800f5a74bcea3803b2c5db73dad +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.es-AR.langpack.xpi) = 836833 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.es-ES.langpack.xpi) = 13bdb45b40c8a9b03f3c93aca5d120ce163a9dc263c68d9fa225826bf429c1a0 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.es-ES.langpack.xpi) = 814002 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.fi.langpack.xpi) = f21cd2e898e11039b2909cad62a71e8f4ee769c68c5681d82300f95c9c70c00a +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.fi.langpack.xpi) = 784387 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.fr.langpack.xpi) = 4e892a84852f9d7470c7c7ff4cc6ff8da0cb5bc8e8197d41ca3105ded6d7356d +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.fr.langpack.xpi) = 795188 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.gl.langpack.xpi) = de1db0aefa37fa6ce4ca2ab6ddbd53d4466e48cb435861270266ca0f56e338e0 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.gl.langpack.xpi) = 794258 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.hu.langpack.xpi) = a1c8b084b6b64bb0b992e9a05c6fa49c9a5a48b437e86351b8a2ed1f2997f22c +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.hu.langpack.xpi) = 828526 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.it.langpack.xpi) = 30dde81ae8bf1379caabc0a7e35bee72b8fa9fa052136de333dcbcd7f3ea550a +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.it.langpack.xpi) = 728566 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ja-JP-mac.langpack.xpi) = 6db90470137661dc35f888d8e649906300b62fa06d7a477346da31d272b11b30 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ja-JP-mac.langpack.xpi) = 892973 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ja.langpack.xpi) = 002743784937853e368c31ca5f80056eb50bd91dfa3f791164e388ab66e1e160 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ja.langpack.xpi) = 867575 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.lt.langpack.xpi) = 5beaf750798ffe4979e31e19dd88721df2819eeb4ac6cfb73388c0acecfb80f3 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.lt.langpack.xpi) = 832068 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.nb-NO.langpack.xpi) = 5559b7554f6683b7ad444af019d7ad75b13795f6669653b3be9c0934d12857a9 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.nb-NO.langpack.xpi) = 805527 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.nl.langpack.xpi) = 794019b24058071a080b6450991fa79ca71a447df7702e6384785895fce18a34 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.nl.langpack.xpi) = 781831 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.pl.langpack.xpi) = fff16b9b77830bf983c49e42516091ec987a9616168d8040598799349b135e1f +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.pl.langpack.xpi) = 855815 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.pt-PT.langpack.xpi) = 35ecbc2df9c90227ce0e46d854237272d019ad4a5c54e459cdf82a601a9d52dd +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.pt-PT.langpack.xpi) = 817865 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ru.langpack.xpi) = 9c4c665da191538e1e836ecad5b4556f5a9ed4a4db94c4779db537dd2cef1c94 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ru.langpack.xpi) = 885692 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.sk.langpack.xpi) = dca3c93b1b2131e58483a537961df44a044b80f5cc97fb2628b384f26e973212 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.sk.langpack.xpi) = 841872 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.sv-SE.langpack.xpi) = e55f7d962db49d461b3b2cc2cc93da46da64139164b8d83f2e67df35bbfa2979 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.sv-SE.langpack.xpi) = 809829 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.tr.langpack.xpi) = d4923efdc2d4e3a294b864c1fbb9fe0a9a9d0d3636cb4ebed2e2263fbabbe5fa +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.tr.langpack.xpi) = 791385 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.uk.langpack.xpi) = ebdc37f591c32ddfe8783257c3944b6a44be15a2b10be4298326c187caddda81 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.uk.langpack.xpi) = 853567 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.zh-CN.langpack.xpi) = 57ab3c518f60627b9cbbe57f5a25b22dace427ec9597d395953104732a5cf0fe +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.zh-CN.langpack.xpi) = 818845 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.zh-TW.langpack.xpi) = 2512be926be2859e16e058977e9dc31d29a3c8b92eefe5a6b3a6f304325cb7fe +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.zh-TW.langpack.xpi) = 843200 diff --git a/www/seamonkey/Makefile b/www/seamonkey/Makefile index bec1514eb40a..d1316d1ffb58 100644 --- a/www/seamonkey/Makefile +++ b/www/seamonkey/Makefile @@ -1,241 +1,246 @@ # Created by: eivind/dima/jseger # $FreeBSD$ PORTNAME= seamonkey -DISTVERSION= 2.25 +DISTVERSION= 2.26 CATEGORIES?= www mail news editors irc ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/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.3:${PORTSDIR}/devel/nspr \ - nss>=3.15.4:${PORTSDIR}/security/nss \ + nss>=3.16:${PORTSDIR}/security/nss \ + soundtouch>=1.7.0:${PORTSDIR}/audio/soundtouch \ harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \ + graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \ libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \ opus>=1.1:${PORTSDIR}/audio/opus \ libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \ - sqlite3>=3.8.1:${PORTSDIR}/databases/sqlite3 \ + sqlite3>=3.8.2:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ zip:${PORTSDIR}/archivers/zip \ unzip:${PORTSDIR}/archivers/unzip # cairo>=1.12.16,2:${PORTSDIR}/graphics/cairo \ LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l EM_VERSION= 1.6.1_pre20140112 -L_VERSION= 3.0b1 +L_VERSION= 3.1 SSP_UNSAFE= yes USE_AUTOTOOLS= autoconf213:env USE_PYTHON_BUILD=2 OBJDIR_BUILD= # in-tree build broken after bug 789837 -USE_BZIP2= yes USE_GECKO= gecko WANT_GNOME= yes USE_QT4= # empty QT_NONSTANDARD= yes WANT_PERL= yes ALL_TARGET= default USE_GL= gl -USES= dos2unix +USES= dos2unix tar:bzip2 DOS2UNIX_FILES= mozilla/media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp MOZ_PIS_SCRIPTS= moz_pis_S50cleanhome MOZ_EXTENSIONS= default MOZ_OPTIONS+= --program-transform-name='s/seamonkey/${MOZILLA}/' \ --enable-application=suite USE_MOZILLA= -cairo MOZ_PKGCONFIG_FILES= NOT_FOR_ARCHS= ia64 OPTIONS_DEFINE= CHATZILLA COMPOSER ENIGMAIL LDAP LIGHTNING MAILNEWS OPTIONS_DEFAULT=CHATZILLA COMPOSER ENIGMAIL LDAP LIGHTNING MAILNEWS CHATZILLA_DESC?=Chatzilla IRC module COMPOSER_DESC?= HTML Composer module LDAP_DESC?= LDAP support for Mailnews MAILNEWS_DESC?= Mail and News modules # non-client.mk objdir build broken after bug 846540 .undef GNU_CONFIGURE ALL_TARGET= build MAKEFILE= ${WRKSRC}/client.mk NO_STAGE= yes .include "${.CURDIR}/../../www/firefox/Makefile.options" .include .if ${PORT_OPTIONS:MCHATZILLA} MOZ_EXTENSIONS:= ${MOZ_EXTENSIONS},irc .endif .include WRKSRC= ${WRKDIR}/comm-release MOZSRC:= ${WRKSRC}/mozilla XPI_LIBDIR= ${PREFIX}/lib/xpi # avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1> # http://svnweb.freebsd.org/changeset/base/255804 .if ${OPSYS} == FreeBSD .if ${CHOSEN_COMPILER_TYPE} == clang && ${ARCH} == i386 && ${OSVERSION} < 1000056 . if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} BROKEN= Cannot build with OPTIMIZED_CFLAGS option due to \ a ${CHOSEN_COMPILER_TYPE} bug: unset the option or \ use FAVORITE_COMPILER=gcc in Makefile.local/make.conf # apply workaround only for -O2 or greater . elif ${CXXFLAGS:M-O*} && ! ${CXXFLAGS:M-O[01]} . if ${MACHINE_CPU:Msse2} CXXFLAGS+= -msse2 . else CXXFLAGS+= -O1 . endif . endif .endif .endif .if ${PORT_OPTIONS:MALSA} BUILD_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib .endif +.if ${PORT_OPTIONS:MGSTREAMER} +BUILD_DEPENDS+= gstreamer1-libav>=1.2.4:${PORTSDIR}/multimedia/gstreamer1-libav +.endif + .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 .else MOZ_OPTIONS+= --enable-ldap --enable-mailnews .endif .if ${PORT_OPTIONS:MENIGMAIL} #MASTER_SITES+= https://www.enigmail.net/download/source/:enigmail MASTER_SITES+= https://dev.gentoo.org/~polynomial-c/mozilla/:enigmail DISTFILES+= ${EM_DISTFILE}:enigmail RUN_DEPENDS+= gpg:${PORTSDIR}/security/gnupg EM_DISTNAME= enigmail-${EM_VERSION} EM_DISTFILE= ${EM_DISTNAME}.tar.xz EM_XPI_FILE= ${WRKSRC}/mailnews/extensions/enigmail/build/${EM_DISTNAME}-${OPSYS:tl}-${ARCH:S/amd64/x86_64/:S/i386/x86/}-gcc3.xpi EM_ORIG_ID= {847b3a00-7ab1-11d4-8f02-006008948af5} EM_ID= ${PORTNAME}@mozilla-enigmail.org EM_ID_RFILES= ${XPI_LIBDIR}/${EM_ID}/install.rdf \ ${XPI_LIBDIR}/${EM_ID}/components/enigmail.js \ ${XPI_LIBDIR}/${EM_ID}/modules/enigmailCommon.jsm EXTRA_PATCHES+= ${FILESDIR}/extra-patch-mailnews-extensions-enigmail-config-getOsTarget.pl .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}/mozilla/dist/xpi-stage/lightning-${L_VERSION}.en-US.${OPSYS:tl}${OSREL}-${ARCH:S/amd64/x86_64/}.xpi XPI_ORIG_ID= {e2fda1a4-762b-4020-b5ad-a41df1933103} XPI_ID= lightning@seamonkey.mozilla.org .else MOZ_OPTIONS+= --disable-calendar .endif .if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} post-extract: @${TAR} -xf ${_DISTDIR}/${EM_DISTFILE} \ -C ${WRKSRC}/mailnews/extensions .endif post-patch: @${REINPLACE_CMD} -e '/MOZPNG/s/=[0-9]*/=10511/' \ ${MOZSRC}/configure.in ${WRKSRC}/configure.in @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/suite/app/nsSuiteApp.cpp @${REINPLACE_CMD} -e '/accessibility.typeaheadfind.enablesound/s/true/false/' \ ${WRKSRC}/mozilla/modules/libpref/src/init/all.js @${SED} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ < ${FILESDIR}/seamonkey.desktop.in > \ ${WRKDIR}/${MOZILLA}.desktop .if ${PORT_OPTIONS:MMAILNEWS} && ${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 '/^XPI_MODULE_VERS/s/= .*/= ${EM_VERSION}/' \ ${WRKSRC}/mailnews/extensions/enigmail/Makefile @${REINPLACE_CMD} -e '/em:version/s,>[^<]*<,>${EM_VERSION}<,' \ -e '/em:maxVersion/s/pre//' \ ${WRKSRC}/mailnews/extensions/enigmail/package/install.rdf .endif pre-configure: (cd ${WRKSRC} && ${AUTOCONF}) (cd ${MOZSRC} && ${AUTOCONF}) (cd ${MOZSRC}/js/src/ && ${AUTOCONF}) .if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} post-configure: cd ${WRKSRC}/mailnews/extensions/enigmail/ && \ ${SETENV} ${MAKE_ENV} ./configure .endif .if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} post-build: ${SETENV} ${MAKE_ENV} ${GMAKE} -j${MAKE_JOBS_NUMBER} all xpi \ -C ${WRKSRC}/mailnews/extensions/enigmail .endif port-pre-install: ${ECHO_CMD} share/applications/${MOZILLA}.desktop >> ${PLIST} ${ECHO_CMD} 'share/pixmaps/${MOZILLA}.png' >> ${PLIST} post-install: ${INSTALL_DATA} ${WRKDIR}/${MOZILLA}.desktop ${PREFIX}/share/applications/ ${LN} -sf ${PREFIX}/lib/${MOZILLA}/chrome/icons/default/default48.png \ ${PREFIX}/share/pixmaps/${MOZILLA}.png .if ${PORT_OPTIONS:MLIGHTNING} @${MKDIR} ${XPI_LIBDIR}/${XPI_ID} ${XPI_LIBDIR}/symlinks/seamonkey @(cd ${XPI_LIBDIR}/${XPI_ID}; ${TAR} -xf ${XPI_FILE}) @${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${XPI_LIBDIR}/${XPI_ID} @${REINPLACE_CMD} -i "" "s/${XPI_ORIG_ID}/${XPI_ID}/" ${XPI_LIBDIR}/${XPI_ID}/install.rdf @${CHMOD} -R a+rX,go-w ${XPI_LIBDIR}/${XPI_ID} @${LN} -sf ${XPI_LIBDIR}/${XPI_ID} ${LOCALBASE}/lib/seamonkey/extensions 2>/dev/null || true @${LN} -sf ${XPI_LIBDIR}/${XPI_ID} ${XPI_LIBDIR}/symlinks/seamonkey 2>/dev/null || true @(cd ${XPI_LIBDIR}; ${FIND} ${XPI_ID} -not -type d) | ${SORT} | \ ${SED} -ne 's,^,lib/xpi/,p' >> ${TMPPLIST} @${ECHO_CMD} 'lib/xpi/symlinks/seamonkey/${XPI_ID}' >> ${TMPPLIST} @${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} @(cd ${XPI_LIBDIR}; ${FIND} ${XPI_ID} -type d) | ${SORT} -r | \ ${SED} -ne 's,^,@dirrm lib/xpi/,p' >> ${TMPPLIST} .endif .if ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} @${MKDIR} ${XPI_LIBDIR}/${EM_ID} ${XPI_LIBDIR}/symlinks/${PORTNAME} @(cd ${XPI_LIBDIR}/${EM_ID}; ${TAR} -xf ${EM_XPI_FILE}) @${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${XPI_LIBDIR}/${EM_ID} @${REINPLACE_CMD} -i "" "s/${EM_ORIG_ID}/${EM_ID}/" ${EM_ID_RFILES} @${CHMOD} -R a+rX,go-w ${XPI_LIBDIR}/${EM_ID} @${LN} -sf ${XPI_LIBDIR}/${EM_ID} ${LOCALBASE}/lib/${PORTNAME}/extensions 2>/dev/null || true @${LN} -sf ${XPI_LIBDIR}/${EM_ID} ${XPI_LIBDIR}/symlinks/${PORTNAME} 2>/dev/null || true @(cd ${XPI_LIBDIR}; ${FIND} ${EM_ID} -not -type d) | ${SORT} | \ ${SED} -ne 's,^,lib/xpi/,p' >> ${TMPPLIST} @${ECHO_CMD} 'lib/xpi/symlinks/${PORTNAME}/${EM_ID}' >> ${TMPPLIST} @${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} @(cd ${XPI_LIBDIR}; ${FIND} ${EM_ID} -type d) | ${SORT} -r | \ ${SED} -ne 's,^,@dirrm lib/xpi/,p' >> ${TMPPLIST} .endif .if ${PORT_OPTIONS:MLIGHTNING} || ${PORT_OPTIONS:MMAILNEWS} && ${PORT_OPTIONS:MENIGMAIL} @${ECHO_CMD} '@unexec rmdir %D/lib/xpi/symlinks/${PORTNAME} 2>/dev/null || true' >> ${TMPPLIST} @${ECHO_CMD} '@unexec rmdir %D/lib/xpi/symlinks 2>/dev/null || true' >> ${TMPPLIST} @${ECHO_CMD} '@unexec rmdir %D/lib/xpi 2>/dev/null || true' >> ${TMPPLIST} .endif .include diff --git a/www/seamonkey/distinfo b/www/seamonkey/distinfo index 3caacf29929f..7fd733a7c48c 100644 --- a/www/seamonkey/distinfo +++ b/www/seamonkey/distinfo @@ -1,4 +1,4 @@ -SHA256 (seamonkey-2.25.source.tar.bz2) = d99c19338737d75016561340c4bfa0087e13d055971579135eb205ae975c022a -SIZE (seamonkey-2.25.source.tar.bz2) = 155695615 +SHA256 (seamonkey-2.26.source.tar.bz2) = 985262d39f38fc20d307e810c371c9f581f7c55a66cfabd6b5561c236116b874 +SIZE (seamonkey-2.26.source.tar.bz2) = 165548355 SHA256 (enigmail-1.6.1_pre20140112.tar.xz) = 2d89a9186c3ccfc9397c933c6f63c0518224fea0096d7a292dba3765de088149 SIZE (enigmail-1.6.1_pre20140112.tar.xz) = 916028 diff --git a/www/seamonkey/files/patch-bug806917 b/www/seamonkey/files/patch-bug806917 index 76874da3314a..945e2701b0d9 100644 --- a/www/seamonkey/files/patch-bug806917 +++ b/www/seamonkey/files/patch-bug806917 @@ -1,1996 +1,1999 @@ commit cb40a26 Author: Alessandro Decina Date: Fri Jan 03 08:16:54 2014 -0800 Bug 806917 - support GStreamer 1.0 --- configure.in | 66 ++- - content/media/gstreamer/GStreamerAllocator.cpp | 198 +++++++ + content/media/gstreamer/GStreamerAllocator.cpp | 197 +++++++ content/media/gstreamer/GStreamerAllocator.h | 25 + content/media/gstreamer/GStreamerFormatHelper.cpp | 13 +- content/media/gstreamer/GStreamerFunctionList.h | 93 +++- content/media/gstreamer/GStreamerLoader.cpp | 48 +- content/media/gstreamer/GStreamerLoader.h | 8 + - content/media/gstreamer/GStreamerReader-0.10.cpp | 203 +++++++ + content/media/gstreamer/GStreamerReader-0.10.cpp | 200 +++++++ content/media/gstreamer/GStreamerReader.cpp | 632 ++++++++++++++-------- content/media/gstreamer/GStreamerReader.h | 42 +- content/media/gstreamer/moz.build | 11 +- content/media/test/manifest.js | 6 +- - 12 files changed, 1061 insertions(+), 284 deletions(-) + 12 files changed, 1057 insertions(+), 284 deletions(-) diff --git configure.in configure.in index 9776b8d..0b1698d 100644 --- mozilla/configure.in +++ mozilla/configure.in -@@ -3955,6 +3955,7 @@ MOZ_SAMPLE_TYPE_FLOAT32= +@@ -3988,6 +3988,7 @@ MOZ_SAMPLE_TYPE_FLOAT32= MOZ_SAMPLE_TYPE_S16= MOZ_OPUS=1 MOZ_WEBM=1 +MOZ_GSTREAMER= MOZ_DIRECTSHOW= MOZ_WMF= MOZ_FMP4= -@@ -5606,43 +5607,60 @@ dnl = Enable GStreamer - dnl ======================================================== - if test "$OS_TARGET" = "Linux"; then - MOZ_GSTREAMER=1 -+ GST_API_VERSION=0.10 - fi +@@ -5634,44 +5635,61 @@ WINNT|Darwin|Android) + ;; + *) + MOZ_GSTREAMER=1 ++ GST_API_VERSION=0.10 + ;; + esac -MOZ_ARG_ENABLE_BOOL(gstreamer, -[ --enable-gstreamer Enable GStreamer support], -MOZ_GSTREAMER=1, -MOZ_GSTREAMER=) - -if test "$MOZ_GSTREAMER"; then - # API version, eg 0.10, 1.0 etc +MOZ_ARG_ENABLE_STRING(gstreamer, +[ --enable-gstreamer[=0.10] Enable GStreamer support], +[ MOZ_GSTREAMER=1 + # API version, eg 0.10, 1.0 etc + if test -z "$enableval" -o "$enableval" = "yes"; then GST_API_VERSION=0.10 + elif test "$enableval" = "no"; then + MOZ_GSTREAMER= + else + GST_API_VERSION=$enableval + fi], +) + +if test -n "$MOZ_GSTREAMER"; then # core/base release number - GST_VERSION=0.10.25 + if test "$GST_API_VERSION" = "1.0"; then + GST_VERSION=1.0 + else + GST_VERSION=0.10.25 + fi + PKG_CHECK_MODULES(GSTREAMER, gstreamer-$GST_API_VERSION >= $GST_VERSION gstreamer-app-$GST_API_VERSION - gstreamer-plugins-base-$GST_API_VERSION, , - AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer])) - if test -n "$GSTREAMER_LIBS"; then - _SAVE_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS $GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION" - AC_TRY_LINK(,[return 0;],_HAVE_LIBGSTVIDEO=1,_HAVE_LIBGSTVIDEO=) - if test -n "$_HAVE_LIBGSTVIDEO" ; then - GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION" - else - AC_MSG_ERROR([gstreamer-plugins-base found, but no libgstvideo. Something has gone terribly wrong. Try reinstalling gstreamer-plugins-base; failing that, disable the gstreamer backend with --disable-gstreamer.]) - fi - LDFLAGS=$_SAVE_LDFLAGS + gstreamer-plugins-base-$GST_API_VERSION, + [_HAVE_GSTREAMER=1], + [_HAVE_GSTREAMER=]) + if test -z "$_HAVE_GSTREAMER"; then + AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer]) + fi + + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION" + AC_TRY_LINK(,[return 0;],_HAVE_LIBGSTVIDEO=1,_HAVE_LIBGSTVIDEO=) + if test -n "$_HAVE_LIBGSTVIDEO" ; then + GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION" else - AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer]) + AC_MSG_ERROR([gstreamer-plugins-base found, but no libgstvideo. Something has gone terribly wrong. Try reinstalling gstreamer-plugins-base; failing that, disable the gstreamer backend with --disable-gstreamer.]) fi + LDFLAGS=$_SAVE_LDFLAGS + + AC_SUBST(GSTREAMER_CFLAGS) + AC_SUBST(GSTREAMER_LIBS) fi -AC_SUBST(GSTREAMER_CFLAGS) -AC_SUBST(GSTREAMER_LIBS) + AC_SUBST(MOZ_GSTREAMER) +AC_SUBST(GST_API_VERSION) if test -n "$MOZ_GSTREAMER"; then - AC_DEFINE(MOZ_GSTREAMER) + AC_DEFINE(MOZ_GSTREAMER) + AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION") fi diff --git content/media/gstreamer/GStreamerAllocator.cpp content/media/gstreamer/GStreamerAllocator.cpp new file mode 100644 index 0000000..69d0385 --- /dev/null +++ mozilla/content/media/gstreamer/GStreamerAllocator.cpp -@@ -0,0 +1,198 @@ +@@ -0,0 +1,197 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "GStreamerAllocator.h" + +#include +#include + +#include "GStreamerLoader.h" + +using namespace mozilla::layers; + +namespace mozilla { + +typedef struct +{ + GstAllocator parent; + GStreamerReader *reader; +} MozGfxMemoryAllocator; + +typedef struct +{ + GstAllocatorClass parent; +} MozGfxMemoryAllocatorClass; + +typedef struct +{ + GstMemory memory; + PlanarYCbCrImage* image; + guint8* data; +} MozGfxMemory; + +typedef struct +{ + GstMeta meta; +} MozGfxMeta; + +typedef struct +{ + GstVideoBufferPoolClass parent_class; +} MozGfxBufferPoolClass; + +typedef struct +{ + GstVideoBufferPool pool; +} MozGfxBufferPool; + +G_DEFINE_TYPE(MozGfxMemoryAllocator, moz_gfx_memory_allocator, GST_TYPE_ALLOCATOR); +G_DEFINE_TYPE(MozGfxBufferPool, moz_gfx_buffer_pool, GST_TYPE_VIDEO_BUFFER_POOL); + +void +moz_gfx_memory_reset(MozGfxMemory *mem) +{ + if (mem->image) + mem->image->Release(); + + ImageContainer* container = ((MozGfxMemoryAllocator*) mem->memory.allocator)->reader->GetImageContainer(); -+ ImageFormat format = PLANAR_YCBCR; -+ mem->image = reinterpret_cast(container->CreateImage(&format, 1).get()); ++ mem->image = reinterpret_cast(container->CreateImage(ImageFormat::PLANAR_YCBCR).get()); + mem->data = mem->image->AllocateAndGetNewBuffer(mem->memory.size); +} + +static GstMemory* +moz_gfx_memory_allocator_alloc(GstAllocator* aAllocator, gsize aSize, + GstAllocationParams* aParams) +{ + MozGfxMemory* mem = g_slice_new (MozGfxMemory); + gsize maxsize = aSize + aParams->prefix + aParams->padding; + gst_memory_init(GST_MEMORY_CAST (mem), + (GstMemoryFlags)aParams->flags, + aAllocator, NULL, maxsize, aParams->align, + aParams->prefix, aSize); + mem->image = NULL; + moz_gfx_memory_reset(mem); + + return (GstMemory *) mem; +} + +static void +moz_gfx_memory_allocator_free (GstAllocator * allocator, GstMemory * gmem) +{ + MozGfxMemory *mem = (MozGfxMemory *) gmem; + + if (mem->memory.parent) + goto sub_mem; + + if (mem->image) + mem->image->Release(); + +sub_mem: + g_slice_free (MozGfxMemory, mem); +} + +static gpointer +moz_gfx_memory_map (MozGfxMemory * mem, gsize maxsize, GstMapFlags flags) +{ + // check that the allocation didn't fail + if (mem->data == nullptr) + return nullptr; + + return mem->data + mem->memory.offset; +} + +static gboolean +moz_gfx_memory_unmap (MozGfxMemory * mem) +{ + return TRUE; +} + +static MozGfxMemory * +moz_gfx_memory_share (MozGfxMemory * mem, gssize offset, gsize size) +{ + MozGfxMemory *sub; + GstMemory *parent; + + /* find the real parent */ + if ((parent = mem->memory.parent) == NULL) + parent = (GstMemory *) mem; + + if (size == (gsize) -1) + size = mem->memory.size - offset; + + /* the shared memory is always readonly */ + sub = g_slice_new (MozGfxMemory); + + gst_memory_init (GST_MEMORY_CAST (sub), + (GstMemoryFlags) (GST_MINI_OBJECT_FLAGS (parent) | GST_MINI_OBJECT_FLAG_LOCK_READONLY), + mem->memory.allocator, &mem->memory, mem->memory.maxsize, mem->memory.align, + mem->memory.offset + offset, size); + + sub->image = mem->image; + sub->data = mem->data; + + return sub; +} + +static void +moz_gfx_memory_allocator_class_init (MozGfxMemoryAllocatorClass * klass) +{ + GstAllocatorClass *allocator_class; + + allocator_class = (GstAllocatorClass *) klass; + + allocator_class->alloc = moz_gfx_memory_allocator_alloc; + allocator_class->free = moz_gfx_memory_allocator_free; +} + +static void +moz_gfx_memory_allocator_init (MozGfxMemoryAllocator * allocator) +{ + GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator); + + alloc->mem_type = "moz-gfx-image"; + alloc->mem_map = (GstMemoryMapFunction) moz_gfx_memory_map; + alloc->mem_unmap = (GstMemoryUnmapFunction) moz_gfx_memory_unmap; + alloc->mem_share = (GstMemoryShareFunction) moz_gfx_memory_share; + /* fallback copy and is_span */ +} + +void +moz_gfx_memory_allocator_set_reader(GstAllocator* aAllocator, GStreamerReader* aReader) +{ + MozGfxMemoryAllocator *allocator = (MozGfxMemoryAllocator *) aAllocator; + allocator->reader = aReader; +} + +nsRefPtr +moz_gfx_memory_get_image(GstMemory *aMemory) +{ + NS_ASSERTION(GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(aMemory->allocator), "Should be a gfx image"); + + return ((MozGfxMemory *) aMemory)->image; +} + +void +moz_gfx_buffer_pool_reset_buffer (GstBufferPool* aPool, GstBuffer* aBuffer) +{ + GstMemory* mem = gst_buffer_peek_memory(aBuffer, 0); + + NS_ASSERTION(GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(mem->allocator), "Should be a gfx image"); + moz_gfx_memory_reset((MozGfxMemory *) mem); + GST_BUFFER_POOL_CLASS(moz_gfx_buffer_pool_parent_class)->reset_buffer(aPool, aBuffer); +} + +static void +moz_gfx_buffer_pool_class_init (MozGfxBufferPoolClass * klass) +{ + GstBufferPoolClass *pool_class = (GstBufferPoolClass *) klass; + pool_class->reset_buffer = moz_gfx_buffer_pool_reset_buffer; +} + +static void +moz_gfx_buffer_pool_init (MozGfxBufferPool * pool) +{ +} + +} // namespace mozilla diff --git content/media/gstreamer/GStreamerAllocator.h content/media/gstreamer/GStreamerAllocator.h new file mode 100644 index 0000000..05a4412 --- /dev/null +++ mozilla/content/media/gstreamer/GStreamerAllocator.h @@ -0,0 +1,25 @@ +/* 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/. */ + +#if !defined(GStreamerAllocator_h_) +#define GStreamerAllocator_h_ + +#include "GStreamerReader.h" + +#define GST_TYPE_MOZ_GFX_MEMORY_ALLOCATOR (moz_gfx_memory_allocator_get_type()) +#define GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MOZ_GFX_MEMORY_ALLOCATOR)) +#define GST_TYPE_MOZ_GFX_BUFFER_POOL (moz_gfx_buffer_pool_get_type()) +#define GST_IS_MOZ_GFX_BUFFER_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MOZ_GFX_BUFFER_POOL)) + +namespace mozilla { + +GType moz_gfx_memory_allocator_get_type(); +void moz_gfx_memory_allocator_set_reader(GstAllocator *aAllocator, GStreamerReader* aReader); +nsRefPtr moz_gfx_memory_get_image(GstMemory *aMemory); + +GType moz_gfx_buffer_pool_get_type(); + +} // namespace mozilla + +#endif diff --git content/media/gstreamer/GStreamerFormatHelper.cpp content/media/gstreamer/GStreamerFormatHelper.cpp index be71331..a5e5db8 100644 --- mozilla/content/media/gstreamer/GStreamerFormatHelper.cpp +++ mozilla/content/media/gstreamer/GStreamerFormatHelper.cpp @@ -294,12 +294,23 @@ bool GStreamerFormatHelper::CanHandleCodecCaps(GstCaps* aCaps) GList* GStreamerFormatHelper::GetFactories() { NS_ASSERTION(sLoadOK, "GStreamer library not linked"); - uint32_t cookie = gst_default_registry_get_feature_list_cookie (); +#if GST_VERSION_MAJOR >= 1 + uint32_t cookie = gst_registry_get_feature_list_cookie(gst_registry_get()); +#else + uint32_t cookie = gst_default_registry_get_feature_list_cookie(); +#endif if (cookie != mCookie) { g_list_free(mFactories); +#if GST_VERSION_MAJOR >= 1 + mFactories = + gst_registry_feature_filter(gst_registry_get(), + (GstPluginFeatureFilter)FactoryFilter, + false, nullptr); +#else mFactories = gst_default_registry_feature_filter((GstPluginFeatureFilter)FactoryFilter, false, nullptr); +#endif mCookie = cookie; } diff --git content/media/gstreamer/GStreamerFunctionList.h content/media/gstreamer/GStreamerFunctionList.h index 56877c0..e169449 100644 --- mozilla/content/media/gstreamer/GStreamerFunctionList.h +++ mozilla/content/media/gstreamer/GStreamerFunctionList.h @@ -9,7 +9,6 @@ * List of symbol names we need to dlsym from the gstreamer library. */ GST_FUNC(LIBGSTAPP, gst_app_sink_get_type) -GST_FUNC(LIBGSTAPP, gst_app_sink_pull_buffer) GST_FUNC(LIBGSTAPP, gst_app_sink_set_callbacks) GST_FUNC(LIBGSTAPP, gst_app_src_end_of_stream) GST_FUNC(LIBGSTAPP, gst_app_src_get_size) @@ -22,10 +21,8 @@ GST_FUNC(LIBGSTAPP, gst_app_src_set_stream_type) GST_FUNC(LIBGSTREAMER, gst_bin_get_by_name) GST_FUNC(LIBGSTREAMER, gst_bin_get_type) GST_FUNC(LIBGSTREAMER, gst_bin_iterate_recurse) -GST_FUNC(LIBGSTREAMER, gst_buffer_copy_metadata) GST_FUNC(LIBGSTREAMER, gst_buffer_get_type) GST_FUNC(LIBGSTREAMER, gst_buffer_new) -GST_FUNC(LIBGSTREAMER, gst_buffer_new_and_alloc) GST_FUNC(LIBGSTREAMER, gst_bus_set_sync_handler) GST_FUNC(LIBGSTREAMER, gst_bus_timed_pop_filtered) GST_FUNC(LIBGSTREAMER, gst_caps_append) @@ -37,47 +34,37 @@ GST_FUNC(LIBGSTREAMER, gst_caps_new_any) GST_FUNC(LIBGSTREAMER, gst_caps_new_empty) GST_FUNC(LIBGSTREAMER, gst_caps_new_full) GST_FUNC(LIBGSTREAMER, gst_caps_new_simple) -GST_FUNC(LIBGSTREAMER, gst_caps_unref) -GST_FUNC(LIBGSTREAMER, gst_element_factory_get_klass) +GST_FUNC(LIBGSTREAMER, gst_caps_set_simple) GST_FUNC(LIBGSTREAMER, gst_element_factory_get_static_pad_templates) GST_FUNC(LIBGSTREAMER, gst_element_factory_get_type) GST_FUNC(LIBGSTREAMER, gst_element_factory_make) GST_FUNC(LIBGSTREAMER, gst_element_get_factory) -GST_FUNC(LIBGSTREAMER, gst_element_get_pad) +GST_FUNC(LIBGSTREAMER, gst_element_get_static_pad) GST_FUNC(LIBGSTREAMER, gst_element_get_type) GST_FUNC(LIBGSTREAMER, gst_element_query_convert) GST_FUNC(LIBGSTREAMER, gst_element_query_duration) GST_FUNC(LIBGSTREAMER, gst_element_seek_simple) GST_FUNC(LIBGSTREAMER, gst_element_set_state) -GST_FUNC(LIBGSTREAMER, gst_event_parse_new_segment) GST_FUNC(LIBGSTREAMER, gst_flow_get_name) GST_FUNC(LIBGSTREAMER, gst_init) GST_FUNC(LIBGSTREAMER, gst_init_check) GST_FUNC(LIBGSTREAMER, gst_iterator_next) GST_FUNC(LIBGSTREAMER, gst_message_parse_error) GST_FUNC(LIBGSTREAMER, gst_message_type_get_name) -GST_FUNC(LIBGSTREAMER, gst_mini_object_get_type) -GST_FUNC(LIBGSTREAMER, gst_mini_object_new) GST_FUNC(LIBGSTREAMER, gst_mini_object_ref) GST_FUNC(LIBGSTREAMER, gst_mini_object_unref) GST_FUNC(LIBGSTREAMER, gst_object_get_name) GST_FUNC(LIBGSTREAMER, gst_object_get_parent) GST_FUNC(LIBGSTREAMER, gst_object_unref) -GST_FUNC(LIBGSTREAMER, gst_pad_add_event_probe) -GST_FUNC(LIBGSTREAMER, gst_pad_alloc_buffer) GST_FUNC(LIBGSTREAMER, gst_pad_get_element_private) -GST_FUNC(LIBGSTREAMER, gst_pad_get_negotiated_caps) -GST_FUNC(LIBGSTREAMER, gst_pad_set_bufferalloc_function) GST_FUNC(LIBGSTREAMER, gst_pad_set_element_private) GST_FUNC(LIBGSTREAMER, gst_parse_bin_from_description) GST_FUNC(LIBGSTREAMER, gst_pipeline_get_bus) GST_FUNC(LIBGSTREAMER, gst_pipeline_get_type) GST_FUNC(LIBGSTREAMER, gst_plugin_feature_get_rank) GST_FUNC(LIBGSTREAMER, gst_registry_feature_filter) -GST_FUNC(LIBGSTREAMER, gst_registry_get_default) GST_FUNC(LIBGSTREAMER, gst_registry_get_feature_list_cookie) GST_FUNC(LIBGSTREAMER, gst_segment_init) -GST_FUNC(LIBGSTREAMER, gst_segment_set_newsegment) GST_FUNC(LIBGSTREAMER, gst_segment_to_stream_time) GST_FUNC(LIBGSTREAMER, gst_static_caps_get) GST_FUNC(LIBGSTREAMER, gst_structure_copy) @@ -85,11 +72,82 @@ GST_FUNC(LIBGSTREAMER, gst_structure_get_int) GST_FUNC(LIBGSTREAMER, gst_structure_get_value) GST_FUNC(LIBGSTREAMER, gst_structure_new) GST_FUNC(LIBGSTREAMER, gst_util_uint64_scale) + +#if GST_VERSION_MAJOR == 0 +GST_FUNC(LIBGSTAPP, gst_app_sink_pull_buffer) +GST_FUNC(LIBGSTREAMER, gst_buffer_copy_metadata) +GST_FUNC(LIBGSTREAMER, gst_buffer_new_and_alloc) +GST_FUNC(LIBGSTREAMER, gst_caps_unref) +GST_FUNC(LIBGSTREAMER, gst_element_factory_get_klass) +GST_FUNC(LIBGSTREAMER, gst_element_get_pad) +GST_FUNC(LIBGSTREAMER, gst_event_parse_new_segment) +GST_FUNC(LIBGSTREAMER, gst_mini_object_get_type) +GST_FUNC(LIBGSTREAMER, gst_mini_object_new) +GST_FUNC(LIBGSTREAMER, gst_pad_add_event_probe) +GST_FUNC(LIBGSTREAMER, gst_pad_alloc_buffer) +GST_FUNC(LIBGSTREAMER, gst_pad_get_negotiated_caps) +GST_FUNC(LIBGSTREAMER, gst_pad_set_bufferalloc_function) +GST_FUNC(LIBGSTREAMER, gst_registry_get_default) +GST_FUNC(LIBGSTREAMER, gst_segment_set_newsegment) GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_height) GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_offset) GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_width) +GST_FUNC(LIBGSTVIDEO, gst_video_format_get_pixel_stride) GST_FUNC(LIBGSTVIDEO, gst_video_format_get_row_stride) GST_FUNC(LIBGSTVIDEO, gst_video_format_parse_caps) +#else + +GST_FUNC(LIBGSTAPP, gst_app_sink_pull_sample) +GST_FUNC(LIBGSTREAMER, _gst_caps_any) +GST_FUNC(LIBGSTREAMER, gst_allocator_get_type) +GST_FUNC(LIBGSTREAMER, gst_buffer_copy_into) +GST_FUNC(LIBGSTREAMER, gst_buffer_extract) +GST_FUNC(LIBGSTREAMER, gst_buffer_get_meta) +GST_FUNC(LIBGSTREAMER, gst_buffer_get_size) +GST_FUNC(LIBGSTREAMER, gst_buffer_map) +GST_FUNC(LIBGSTREAMER, gst_buffer_new_allocate) +GST_FUNC(LIBGSTREAMER, gst_buffer_n_memory) +GST_FUNC(LIBGSTREAMER, gst_buffer_peek_memory) +GST_FUNC(LIBGSTREAMER, gst_buffer_pool_acquire_buffer) +GST_FUNC(LIBGSTREAMER, gst_buffer_pool_config_set_allocator) +GST_FUNC(LIBGSTREAMER, gst_buffer_pool_config_set_params) +GST_FUNC(LIBGSTREAMER, gst_buffer_pool_get_config) +GST_FUNC(LIBGSTREAMER, gst_buffer_pool_get_type) +GST_FUNC(LIBGSTREAMER, gst_buffer_pool_is_active) +GST_FUNC(LIBGSTREAMER, gst_buffer_pool_set_active) +GST_FUNC(LIBGSTREAMER, gst_buffer_pool_set_config) +GST_FUNC(LIBGSTREAMER, gst_buffer_set_size) +GST_FUNC(LIBGSTREAMER, gst_buffer_unmap) +GST_FUNC(LIBGSTREAMER, gst_element_factory_get_metadata) +GST_FUNC(LIBGSTREAMER, gst_event_parse_segment) +GST_FUNC(LIBGSTREAMER, gst_memory_init) +GST_FUNC(LIBGSTREAMER, gst_memory_map) +GST_FUNC(LIBGSTREAMER, gst_memory_unmap) +GST_FUNC(LIBGSTREAMER, gst_object_get_type) +GST_FUNC(LIBGSTREAMER, gst_pad_add_probe) +GST_FUNC(LIBGSTREAMER, gst_pad_get_current_caps) +GST_FUNC(LIBGSTREAMER, gst_pad_probe_info_get_query) +GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_meta) +GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_param) +GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_pool) +GST_FUNC(LIBGSTREAMER, gst_query_parse_allocation) +GST_FUNC(LIBGSTREAMER, gst_registry_get) +GST_FUNC(LIBGSTREAMER, gst_sample_get_buffer) +GST_FUNC(LIBGSTREAMER, gst_segment_copy_into) +GST_FUNC(LIBGSTREAMER, gst_structure_free) +GST_FUNC(LIBGSTVIDEO, gst_buffer_pool_config_get_video_alignment) +GST_FUNC(LIBGSTVIDEO, gst_buffer_pool_has_option) +GST_FUNC(LIBGSTVIDEO, gst_video_buffer_pool_get_type) +GST_FUNC(LIBGSTVIDEO, gst_video_frame_map) +GST_FUNC(LIBGSTVIDEO, gst_video_frame_unmap) +GST_FUNC(LIBGSTVIDEO, gst_video_info_align) +GST_FUNC(LIBGSTVIDEO, gst_video_info_from_caps) +GST_FUNC(LIBGSTVIDEO, gst_video_info_init) +GST_FUNC(LIBGSTVIDEO, gst_video_meta_api_get_type) +GST_FUNC(LIBGSTVIDEO, gst_video_meta_map) +GST_FUNC(LIBGSTVIDEO, gst_video_meta_unmap) + +#endif /* * Functions that have been defined in the header file. We replace them so that @@ -99,6 +157,11 @@ GST_FUNC(LIBGSTVIDEO, gst_video_format_parse_caps) REPLACE_FUNC(gst_buffer_ref); REPLACE_FUNC(gst_buffer_unref); REPLACE_FUNC(gst_message_unref); + +#if GST_VERSION_MAJOR == 1 +REPLACE_FUNC(gst_caps_unref); +REPLACE_FUNC(gst_sample_unref); +#endif #endif #endif // !defined(__APPLE__) diff --git content/media/gstreamer/GStreamerLoader.cpp content/media/gstreamer/GStreamerLoader.cpp index 5961b23..e6457e0 100644 --- mozilla/content/media/gstreamer/GStreamerLoader.cpp +++ mozilla/content/media/gstreamer/GStreamerLoader.cpp @@ -6,13 +6,21 @@ #include #include -#include "GStreamerLoader.h" +#include "nsDebug.h" #include "mozilla/NullPtr.h" +#include "GStreamerLoader.h" + #define LIBGSTREAMER 0 #define LIBGSTAPP 1 #define LIBGSTVIDEO 2 +#ifdef __OpenBSD__ +#define LIB_GST_SUFFIX ".so" +#else +#define LIB_GST_SUFFIX ".so.0" +#endif + namespace mozilla { /* @@ -32,6 +40,11 @@ namespace mozilla { GstBuffer * gst_buffer_ref_impl(GstBuffer *buf); void gst_buffer_unref_impl(GstBuffer *buf); void gst_message_unref_impl(GstMessage *msg); +void gst_caps_unref_impl(GstCaps *caps); + +#if GST_VERSION_MAJOR == 1 +void gst_sample_unref_impl(GstSample *sample); +#endif bool load_gstreamer() @@ -58,32 +71,25 @@ load_gstreamer() if (major == GST_VERSION_MAJOR && minor == GST_VERSION_MINOR) { gstreamerLib = RTLD_DEFAULT; } else { -#ifdef __OpenBSD__ - gstreamerLib = dlopen("libgstreamer-0.10.so", RTLD_NOW | RTLD_LOCAL); -#else - gstreamerLib = dlopen("libgstreamer-0.10.so.0", RTLD_NOW | RTLD_LOCAL); -#endif + gstreamerLib = dlopen("libgstreamer-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL); } - void *handles[] = { + void *handles[3] = { gstreamerLib, -#ifdef __OpenBSD__ - dlopen("libgstapp-0.10.so", RTLD_NOW | RTLD_LOCAL), - dlopen("libgstvideo-0.10.so", RTLD_NOW | RTLD_LOCAL) -#else - dlopen("libgstapp-0.10.so.0", RTLD_NOW | RTLD_LOCAL), - dlopen("libgstvideo-0.10.so.0", RTLD_NOW | RTLD_LOCAL) -#endif + dlopen("libgstapp-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL), + dlopen("libgstvideo-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL) }; for (size_t i = 0; i < sizeof(handles) / sizeof(handles[0]); i++) { if (!handles[i]) { + NS_WARNING("Couldn't link gstreamer libraries"); goto fail; } } #define GST_FUNC(lib, symbol) \ if (!(symbol = (typeof(symbol))dlsym(handles[lib], #symbol))) { \ + NS_WARNING("Couldn't link symbol " #symbol); \ goto fail; \ } #define REPLACE_FUNC(symbol) symbol = symbol##_impl; @@ -123,4 +129,18 @@ gst_message_unref_impl(GstMessage *msg) gst_mini_object_unref(GST_MINI_OBJECT_CAST(msg)); } +#if GST_VERSION_MAJOR == 1 +void +gst_sample_unref_impl(GstSample *sample) +{ + gst_mini_object_unref(GST_MINI_OBJECT_CAST(sample)); +} +#endif + +void +gst_caps_unref_impl(GstCaps *caps) +{ + gst_mini_object_unref(GST_MINI_OBJECT_CAST(caps)); +} + } diff --git content/media/gstreamer/GStreamerLoader.h content/media/gstreamer/GStreamerLoader.h index 2d801722..cd7fe6d 100644 --- mozilla/content/media/gstreamer/GStreamerLoader.h +++ mozilla/content/media/gstreamer/GStreamerLoader.h @@ -22,6 +22,11 @@ #include #pragma GCC diagnostic pop +#if GST_VERSION_MAJOR == 1 +#include +#include +#endif + namespace mozilla { /* @@ -42,4 +47,7 @@ bool load_gstreamer(); } +#undef GST_CAPS_ANY +#define GST_CAPS_ANY (*_gst_caps_any) + #endif // GStreamerLoader_h_ diff --git content/media/gstreamer/GStreamerReader-0.10.cpp content/media/gstreamer/GStreamerReader-0.10.cpp new file mode 100644 index 0000000..fb98bde --- /dev/null +++ mozilla/content/media/gstreamer/GStreamerReader-0.10.cpp -@@ -0,0 +1,203 @@ +@@ -0,0 +1,200 @@ +#include "nsError.h" +#include "MediaDecoderStateMachine.h" +#include "AbstractMediaDecoder.h" +#include "MediaResource.h" +#include "GStreamerReader.h" +#include "GStreamerMozVideoBuffer.h" +#include "GStreamerFormatHelper.h" +#include "VideoUtils.h" +#include "mozilla/dom/TimeRanges.h" +#include "mozilla/Preferences.h" + +using namespace mozilla; +using mozilla::layers::PlanarYCbCrImage; +using mozilla::layers::ImageContainer; + +GstFlowReturn GStreamerReader::AllocateVideoBufferCb(GstPad* aPad, + guint64 aOffset, + guint aSize, + GstCaps* aCaps, + GstBuffer** aBuf) +{ + GStreamerReader* reader = reinterpret_cast(gst_pad_get_element_private(aPad)); + return reader->AllocateVideoBuffer(aPad, aOffset, aSize, aCaps, aBuf); +} + +GstFlowReturn GStreamerReader::AllocateVideoBuffer(GstPad* aPad, + guint64 aOffset, + guint aSize, + GstCaps* aCaps, + GstBuffer** aBuf) +{ + nsRefPtr image; + return AllocateVideoBufferFull(aPad, aOffset, aSize, aCaps, aBuf, image); +} + +GstFlowReturn GStreamerReader::AllocateVideoBufferFull(GstPad* aPad, + guint64 aOffset, + guint aSize, + GstCaps* aCaps, + GstBuffer** aBuf, + nsRefPtr& aImage) +{ + /* allocate an image using the container */ + ImageContainer* container = mDecoder->GetImageContainer(); -+ if (!container) { -+ // We don't have an ImageContainer. We probably belong to an