Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Mar 2014 10:15:01 +0000 (UTC)
From:      Beat Gaetzi <beat@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r348676 - in head/www: linux-seamonkey seamonkey seamonkey-i18n seamonkey/files
Message-ID:  <201403201015.s2KAF1MM060416@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: beat
Date: Thu Mar 20 10:15:01 2014
New Revision: 348676
URL: http://svnweb.freebsd.org/changeset/ports/348676
QAT: https://qat.redports.org/buildarchive/r348676/

Log:
  - Update to 2.25
  
  Submitted by:	Jan Beich
  Security:	http://www.vuxml.org/freebsd/610de647-af8d-11e3-a25b-b4b52fce4ce8.html

Added:
  head/www/seamonkey/files/patch-bug806917   (contents, props changed)
  head/www/seamonkey/files/patch-bug847568   (contents, props changed)
  head/www/seamonkey/files/patch-bug961264   (contents, props changed)
  head/www/seamonkey/files/patch-bug961816   (contents, props changed)
  head/www/seamonkey/files/patch-bug962345   (contents, props changed)
  head/www/seamonkey/files/patch-bug973744   (contents, props changed)
  head/www/seamonkey/files/patch-bug975634   (contents, props changed)
  head/www/seamonkey/files/patch-bug977457   (contents, props changed)
  head/www/seamonkey/files/patch-clang34-disable-stdcall   (contents, props changed)
  head/www/seamonkey/files/patch-mozilla-js-src-Makefile.in   (contents, props changed)
  head/www/seamonkey/files/patch-mozilla-memory-jemalloc-Makefile.in   (contents, props changed)
  head/www/seamonkey/files/patch-z-bug517422   (contents, props changed)
Deleted:
  head/www/seamonkey/files/patch-bug810716
  head/www/seamonkey/files/patch-bug945046
  head/www/seamonkey/files/patch-bug946560
  head/www/seamonkey/files/patch-clang32-libc++-visibility-hack
Modified:
  head/www/linux-seamonkey/Makefile
  head/www/linux-seamonkey/Makefile.common
  head/www/linux-seamonkey/distinfo
  head/www/seamonkey-i18n/Makefile
  head/www/seamonkey-i18n/distinfo
  head/www/seamonkey/Makefile
  head/www/seamonkey/distinfo
  head/www/seamonkey/files/extra-patch-mailnews-extensions-enigmail-config-getOsTarget.pl
  head/www/seamonkey/files/patch-bug826985
  head/www/seamonkey/files/patch-bug893397

Modified: head/www/linux-seamonkey/Makefile
==============================================================================
--- head/www/linux-seamonkey/Makefile	Thu Mar 20 10:13:21 2014	(r348675)
+++ head/www/linux-seamonkey/Makefile	Thu Mar 20 10:15:01 2014	(r348676)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	seamonkey
-DISTVERSION=	2.24
+DISTVERSION=	2.25
 CATEGORIES=	www mail news editors irc ipv6
 MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US
 

Modified: head/www/linux-seamonkey/Makefile.common
==============================================================================
--- head/www/linux-seamonkey/Makefile.common	Thu Mar 20 10:13:21 2014	(r348675)
+++ head/www/linux-seamonkey/Makefile.common	Thu Mar 20 10:15:01 2014	(r348676)
@@ -76,7 +76,7 @@ post-patch:
 	@${DO_NADA} >>${PREFS_FILE}
 
 . if (${DISTVERSION:R:R} < 28 && ${PORTNAME} != "seamonkey") || \
- (${PORTNAME} == "seamonkey" && ${DISTVERSION:C/[0-9]*\.//:C/b.*//} < 25)
+ (${PORTNAME} == "seamonkey" && ${DISTVERSION:C/[0-9]*\.//:C/[ab].*//} < 25)
 	# dummy resident-unique for make about:memory's "measure"
 	@${REINPLACE_CMD} -i '' \
 		's,/proc/self/smaps\(.Private\),////////dev/null\1,' \

Modified: head/www/linux-seamonkey/distinfo
==============================================================================
--- head/www/linux-seamonkey/distinfo	Thu Mar 20 10:13:21 2014	(r348675)
+++ head/www/linux-seamonkey/distinfo	Thu Mar 20 10:15:01 2014	(r348676)
@@ -1,2 +1,6 @@
-SHA256 (seamonkey-2.24.tar.bz2) = ed4ad37ff9c5d0d36f66bf25b272698e6d5bcf828cfac694d15467d4a4014ce5
-SIZE (seamonkey-2.24.tar.bz2) = 29803592
+SHA256 (seamonkey-2.25.tar.bz2) = 67892c00243b9a4f2964ac61c9661e2d954ce33bc27fb10588f650922d5e3c62
+SIZE (seamonkey-2.25.tar.bz2) = 30377947
+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

Modified: head/www/seamonkey-i18n/Makefile
==============================================================================
--- head/www/seamonkey-i18n/Makefile	Thu Mar 20 10:13:21 2014	(r348675)
+++ head/www/seamonkey-i18n/Makefile	Thu Mar 20 10:15:01 2014	(r348676)
@@ -2,8 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	seamonkey-i18n
-PORTVERSION=	2.24
-PORTREVISION=	1
+PORTVERSION=	2.25
 CATEGORIES=	www mail news editors irc
 MASTER_SITES=	MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/langpack
 PKGNAMEPREFIX=

Modified: head/www/seamonkey-i18n/distinfo
==============================================================================
--- head/www/seamonkey-i18n/distinfo	Thu Mar 20 10:13:21 2014	(r348675)
+++ head/www/seamonkey-i18n/distinfo	Thu Mar 20 10:15:01 2014	(r348676)
@@ -1,54 +1,54 @@
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.be.langpack.xpi) = 73048f93f2bc1de227d78f4baacced8ed481d0effc1d7b3b1073464dcdb7d872
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.be.langpack.xpi) = 814307
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.ca.langpack.xpi) = 40bb6f6ac6e3e2739777eb9b219c88e232e2b20437ec15ff93344cabd6f61047
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.ca.langpack.xpi) = 811480
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.cs.langpack.xpi) = 5605ff0b35abd28c7e84b87d2a30434803f74263e53b8b1350a9836fafea71f7
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.cs.langpack.xpi) = 809460
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.de.langpack.xpi) = 842fdef4a36a9f5f9ba99e51e4bd99e0890eb279ec151f1a6527c90d123a1997
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.de.langpack.xpi) = 816146
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.en-GB.langpack.xpi) = 8da55c64db56bdb9356c51d21a4a09a4530541a38e946543496c60bdc60ef1d3
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.en-GB.langpack.xpi) = 781088
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.en-US.langpack.xpi) = 3fae3e80f0b046ee88133c949705264e7b002ec00b2ada403c5d811a77ae87d1
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.en-US.langpack.xpi) = 782073
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.es-AR.langpack.xpi) = 28de7925df64046ce11476a5fc463e6d166bcf1f895ead8d96c563c636075052
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.es-AR.langpack.xpi) = 838204
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.es-ES.langpack.xpi) = 88d260366fb1c841c46f464510b45e4fe76b636faa02ee649e8143dba8143434
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.es-ES.langpack.xpi) = 811306
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.fi.langpack.xpi) = 209e64e3e4132d05beb124f3642e57cd5a341d73e417644725c2a8060cd56a90
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.fi.langpack.xpi) = 780302
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.fr.langpack.xpi) = db23d07a62d4f0a7f5a42f2fd1d33a0704ba484c4801e9d218469deadb122106
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.fr.langpack.xpi) = 790321
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.gl.langpack.xpi) = 9bc816dda158a5840dfe666e63c7045a73c12021ad1b19ff57ad8b8435124789
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.gl.langpack.xpi) = 789063
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.hu.langpack.xpi) = 44099a7e28c99e40483bcec2d1e33e9fe46c493f6dd5b2f95ad83d3b164e81ce
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.hu.langpack.xpi) = 823607
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.it.langpack.xpi) = c4225ca1648957624fb801000404166072277730ce5b3aab3cf815a787c64acc
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.it.langpack.xpi) = 725388
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.ja-JP-mac.langpack.xpi) = 8a273e9d1070c8467ddf19290f5fc4a9382f67cc30b498e2523b48f8756965da
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.ja-JP-mac.langpack.xpi) = 887433
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.ja.langpack.xpi) = 246c15ce3c6f2245b518b08a88390879a5b0e329467f4d108f13e526c7d9201d
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.ja.langpack.xpi) = 862158
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.lt.langpack.xpi) = d92d7755ccb9a27e2c473eb36c76f3735633d6671dd681d3613ab0e0ea4987d2
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.lt.langpack.xpi) = 827034
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.nb-NO.langpack.xpi) = 083be6b731ff4c0e97c1385d66719765e1e09992015686acec6057ecdd2f8837
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.nb-NO.langpack.xpi) = 802295
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.nl.langpack.xpi) = f58c6c559b678fc978d7822b67b11cdc0d54d055bb5a6c6059d2bf8e6ebc5d54
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.nl.langpack.xpi) = 776386
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.pl.langpack.xpi) = e5406c7cdf55841544806445e3f9f86532bed9e09d3da3077363d4e6cebe9fce
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.pl.langpack.xpi) = 852730
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.pt-PT.langpack.xpi) = 66dfe3c112c1c6c071b6a0086531f101579d1c92a0d909bbcfee48aedb647969
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.pt-PT.langpack.xpi) = 812004
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.ru.langpack.xpi) = d6679b379995552a0ad7b096daa94dffb10d9392a3f8936592deedef4859791b
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.ru.langpack.xpi) = 882614
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.sk.langpack.xpi) = 4976e86f4faa81cc7ca5ca73305f827d0347a0e2990377fc00c505ce468cb777
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.sk.langpack.xpi) = 836795
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.sv-SE.langpack.xpi) = a1cd1c18dcbeb56ca35e4d14c3c2f63e682ce3f51179901c640277cbd0ecb33a
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.sv-SE.langpack.xpi) = 804953
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.tr.langpack.xpi) = 59f170597e514ca92fab8f7139a5ece6f99d1410e2f52ca4b8452ba687c9b007
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.tr.langpack.xpi) = 850114
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.uk.langpack.xpi) = 62972d16d400379183758c09373b4ace1e579a2afa2195f6b31026d50033aea9
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.uk.langpack.xpi) = 852876
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.zh-CN.langpack.xpi) = 54d7957ffbc32b34ab6490d1abce26af07e949c265bedc887c15d8a5608f4914
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.zh-CN.langpack.xpi) = 813619
-SHA256 (xpi/seamonkey-i18n-2.24/seamonkey-2.24.zh-TW.langpack.xpi) = 90f6ec47141d5ea1aa6809c2ae2ba6c5a8c17e86b0647e5f627c19c0d490fe6c
-SIZE (xpi/seamonkey-i18n-2.24/seamonkey-2.24.zh-TW.langpack.xpi) = 837900
+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

Modified: head/www/seamonkey/Makefile
==============================================================================
--- head/www/seamonkey/Makefile	Thu Mar 20 10:13:21 2014	(r348675)
+++ head/www/seamonkey/Makefile	Thu Mar 20 10:15:01 2014	(r348676)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	seamonkey
-DISTVERSION=	2.24
+DISTVERSION=	2.25
 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/
@@ -12,18 +12,23 @@ EXTRACT_ONLY=	${PORTNAME}-${DISTVERSION}
 MAINTAINER=	gecko@FreeBSD.org
 COMMENT=	The open source, standards compliant web browser
 
-BUILD_DEPENDS=	nspr>=4.10.2:${PORTSDIR}/devel/nspr \
+BUILD_DEPENDS=	nspr>=4.10.3:${PORTSDIR}/devel/nspr \
 		nss>=3.15.4:${PORTSDIR}/security/nss \
-		sqlite3>=3.8.0.2:${PORTSDIR}/databases/sqlite3 \
+		harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \
+		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 \
 		${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=	2.9b1
+L_VERSION=	3.0b1
 
 SSP_UNSAFE=	yes
 USE_AUTOTOOLS=	autoconf213:env
@@ -78,6 +83,23 @@ MOZSRC:=	${WRKSRC}/mozilla
 
 XPI_LIBDIR=	${PREFIX}/lib/xpi
 
+# avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1>
+# http://svnweb.freebsd.org/changeset/base/255804
+.if ${CHOSEN_COMPILER_TYPE} == clang && ${ARCH} == i386 && ${OSVERSION} < 1000056
+. if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
+BROKEN=		Cannot build with OPTIMIZED_CFLAGS option due to \
+		a ${CHOSEN_COMPILER_TYPE} bug: unset the option or \
+		use FAVORITE_COMPILER=gcc in Makefile.local/make.conf
+# apply workaround only for -O2 or greater
+. elif ${CXXFLAGS:M-O*} && ! ${CXXFLAGS:M-O[01]}
+.  if ${MACHINE_CPU:Msse2}
+CXXFLAGS+=	-msse2
+.  else
+CXXFLAGS+=	-O1
+.  endif
+. endif
+.endif
+
 .if ${PORT_OPTIONS:MALSA}
 BUILD_DEPENDS+=	alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib
 .endif

Modified: head/www/seamonkey/distinfo
==============================================================================
--- head/www/seamonkey/distinfo	Thu Mar 20 10:13:21 2014	(r348675)
+++ head/www/seamonkey/distinfo	Thu Mar 20 10:15:01 2014	(r348676)
@@ -1,4 +1,4 @@
-SHA256 (seamonkey-2.24.source.tar.bz2) = 63855265b4754dd056af8d611b50219577a592466cdf1d3865028d86ed680474
-SIZE (seamonkey-2.24.source.tar.bz2) = 149845514
+SHA256 (seamonkey-2.25.source.tar.bz2) = d99c19338737d75016561340c4bfa0087e13d055971579135eb205ae975c022a
+SIZE (seamonkey-2.25.source.tar.bz2) = 155695615
 SHA256 (enigmail-1.6.1_pre20140112.tar.xz) = 2d89a9186c3ccfc9397c933c6f63c0518224fea0096d7a292dba3765de088149
 SIZE (enigmail-1.6.1_pre20140112.tar.xz) = 916028

Modified: head/www/seamonkey/files/extra-patch-mailnews-extensions-enigmail-config-getOsTarget.pl
==============================================================================
--- head/www/seamonkey/files/extra-patch-mailnews-extensions-enigmail-config-getOsTarget.pl	Thu Mar 20 10:13:21 2014	(r348675)
+++ head/www/seamonkey/files/extra-patch-mailnews-extensions-enigmail-config-getOsTarget.pl	Thu Mar 20 10:15:01 2014	(r348676)
@@ -41,3 +41,13 @@ index 91285cd..cf4a233 100755
    if ($targetOs eq "SunOS") {
      $targetComp = "sunc";
    }
+@@ -107,6 +109,9 @@ elsif ($srcComp =~ /cc/) {
+   elsif ($targetOs eq "AIX") {
+     $targetComp = "ibmc";
+   }
++  else {
++    $targetComp = "gcc3";
++  }
+ }
+ else {
+   $targetComp = $srcComp;

Added: head/www/seamonkey/files/patch-bug806917
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/seamonkey/files/patch-bug806917	Thu Mar 20 10:15:01 2014	(r348676)
@@ -0,0 +1,1996 @@
+commit cb40a26
+Author: Alessandro Decina <alessandro.d@gmail.com>
+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.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.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(-)
+
+diff --git configure.in configure.in
+index 9776b8d..0b1698d 100644
+--- mozilla/configure.in
++++ mozilla/configure.in
+@@ -3955,6 +3955,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
+ 
+-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 @@
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include "GStreamerAllocator.h"
++
++#include <gst/video/video.h>
++#include <gst/video/gstvideometa.h>
++
++#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<PlanarYCbCrImage*>(container->CreateImage(&format, 1).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<PlanarYCbCrImage>
++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<layers::PlanarYCbCrImage> 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 <dlfcn.h>
+ #include <stdio.h>
+ 
+-#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 <gst/video/video.h>
+ #pragma GCC diagnostic pop
+ 
++#if GST_VERSION_MAJOR == 1
++#include <gst/video/gstvideometa.h>
++#include <gst/video/gstvideopool.h>
++#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 @@
++#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<GStreamerReader*>(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<PlanarYCbCrImage> image;
++  return AllocateVideoBufferFull(aPad, aOffset, aSize, aCaps, aBuf, image);
++}
++
++GstFlowReturn GStreamerReader::AllocateVideoBufferFull(GstPad* aPad,
++                                                       guint64 aOffset,
++                                                       guint aSize,
++                                                       GstCaps* aCaps,
++                                                       GstBuffer** aBuf,
++                                                       nsRefPtr<PlanarYCbCrImage>& aImage)
++{
++  /* allocate an image using the container */
++  ImageContainer* container = mDecoder->GetImageContainer();
++  if (!container) {
++    // We don't have an ImageContainer. We probably belong to an <audio>
++    // element.
++    return GST_FLOW_NOT_SUPPORTED;
++  }
++  ImageFormat format = PLANAR_YCBCR;
++  PlanarYCbCrImage* img = reinterpret_cast<PlanarYCbCrImage*>(container->CreateImage(&format, 1).get());
++  nsRefPtr<PlanarYCbCrImage> image = dont_AddRef(img);
++
++  /* prepare a GstBuffer pointing to the underlying PlanarYCbCrImage buffer */
++  GstBuffer* buf = GST_BUFFER(gst_moz_video_buffer_new());
++  GST_BUFFER_SIZE(buf) = aSize;
++  /* allocate the actual YUV buffer */
++  GST_BUFFER_DATA(buf) = image->AllocateAndGetNewBuffer(aSize);
++
++  aImage = image;
++
++  /* create a GstMozVideoBufferData to hold the image */
++  GstMozVideoBufferData* bufferdata = new GstMozVideoBufferData(image);
++
++  /* Attach bufferdata to our GstMozVideoBuffer, it will take care to free it */
++  gst_moz_video_buffer_set_data(GST_MOZ_VIDEO_BUFFER(buf), bufferdata);
++
++  *aBuf = buf;
++  return GST_FLOW_OK;
++}
++
++gboolean GStreamerReader::EventProbe(GstPad* aPad, GstEvent* aEvent)
++{
++  GstElement* parent = GST_ELEMENT(gst_pad_get_parent(aPad));
++  switch(GST_EVENT_TYPE(aEvent)) {
++    case GST_EVENT_NEWSEGMENT:
++    {
++      gboolean update;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403201015.s2KAF1MM060416>