Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Oct 2014 10:25:48 +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: r370991 - in head/www: linux-seamonkey seamonkey seamonkey-i18n seamonkey/files
Message-ID:  <201410161025.s9GAPmw1043273@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: beat
Date: Thu Oct 16 10:25:47 2014
New Revision: 370991
URL: https://svnweb.freebsd.org/changeset/ports/370991
QAT: https://qat.redports.org/buildarchive/r370991/

Log:
  - Update SeaMonkey to 2.30
  - Disable SSL 3.0 with pref (Upstream bug 1076983)
  - Apply r368080 to seamonkey-i18n
  - Kill @dirrm from gecko@ ports per CHANGES from 20140922
  
  PR:		194356
  Submitted by:	Jan Beich
  MFH:		2014Q4
  Security:	http://www.vuxml.org/freebsd/9c1495ac-8d8c-4789-a0f3-8ca6b476619c.html

Added:
  head/www/seamonkey/files/patch-bug1021761   (contents, props changed)
  head/www/seamonkey/files/patch-bug1041268   (contents, props changed)
  head/www/seamonkey/files/patch-bug1073709   (contents, props changed)
  head/www/seamonkey/files/patch-bug1076983   (contents, props changed)
  head/www/seamonkey/files/patch-system-openh264   (contents, props changed)
Deleted:
  head/www/seamonkey/files/patch-bug1015547
  head/www/seamonkey/files/patch-bug1026828
  head/www/seamonkey/files/patch-clang34-disable-stdcall
Modified:
  head/www/linux-seamonkey/Makefile
  head/www/linux-seamonkey/distinfo
  head/www/linux-seamonkey/pkg-plist
  head/www/seamonkey-i18n/Makefile
  head/www/seamonkey-i18n/distinfo
  head/www/seamonkey/Makefile
  head/www/seamonkey/distinfo
  head/www/seamonkey/files/patch-bug779713
  head/www/seamonkey/files/patch-bug826985
  head/www/seamonkey/files/patch-bug847568

Modified: head/www/linux-seamonkey/Makefile
==============================================================================
--- head/www/linux-seamonkey/Makefile	Thu Oct 16 09:51:35 2014	(r370990)
+++ head/www/linux-seamonkey/Makefile	Thu Oct 16 10:25:47 2014	(r370991)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	seamonkey
-DISTVERSION=	2.29.1
+DISTVERSION=	2.30
 CATEGORIES=	www mail news editors irc ipv6
 MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US
 

Modified: head/www/linux-seamonkey/distinfo
==============================================================================
--- head/www/linux-seamonkey/distinfo	Thu Oct 16 09:51:35 2014	(r370990)
+++ head/www/linux-seamonkey/distinfo	Thu Oct 16 10:25:47 2014	(r370991)
@@ -1,5 +1,5 @@
-SHA256 (seamonkey-2.29.1.tar.bz2) = 8f92ed28925080a55996ffd90d764f961c05c072cba806fac1de3c53f432393b
-SIZE (seamonkey-2.29.1.tar.bz2) = 40020490
+SHA256 (seamonkey-2.30.tar.bz2) = 629d3ab73a1fdbe2650ac2cda75c7c30fbed8eada52d05f2f88e5321b97b4fca
+SIZE (seamonkey-2.30.tar.bz2) = 39998490
 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

Modified: head/www/linux-seamonkey/pkg-plist
==============================================================================
--- head/www/linux-seamonkey/pkg-plist	Thu Oct 16 09:51:35 2014	(r370990)
+++ head/www/linux-seamonkey/pkg-plist	Thu Oct 16 10:25:47 2014	(r370991)
@@ -50,9 +50,6 @@ lib/%%APP_NAME%%/chrome/icons/default/pl
 lib/%%APP_NAME%%/chrome/icons/default/places16.png
 lib/%%APP_NAME%%/chrome/icons/default/places48.png
 lib/%%APP_NAME%%/chrome/icons/default/seamonkey.png
-lib/%%APP_NAME%%/chrome/icons/default/venkman-window.png
-lib/%%APP_NAME%%/chrome/icons/default/venkman-window16.png
-lib/%%APP_NAME%%/chrome/icons/default/venkman-window48.png
 lib/%%APP_NAME%%/components/components.manifest
 lib/%%APP_NAME%%/components/libdbusservice.so
 lib/%%APP_NAME%%/components/libmozgnome.so
@@ -64,14 +61,16 @@ lib/%%APP_NAME%%/crashreporter.ini
 lib/%%APP_NAME%%/defaults/messenger/mailViews.dat
 lib/%%APP_NAME%%/defaults/pref/browser-prefs.js
 lib/%%APP_NAME%%/defaults/pref/channel-prefs.js
+lib/%%APP_NAME%%/defaults/profile/chrome/userChrome-example.css
+lib/%%APP_NAME%%/defaults/profile/chrome/userContent-example.css
 lib/%%APP_NAME%%/defaults/profile/localstore.rdf
+lib/%%APP_NAME%%/defaults/profile/mimeTypes.rdf
 lib/%%APP_NAME%%/defaults/profile/panels.rdf
 lib/%%APP_NAME%%/dependentlibs.list
 lib/%%APP_NAME%%/dictionaries/en-US.aff
 lib/%%APP_NAME%%/dictionaries/en-US.dic
 lib/%%APP_NAME%%/distribution/extensions/inspector@mozilla.org.xpi
 lib/%%APP_NAME%%/distribution/extensions/{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}.xpi
-lib/%%APP_NAME%%/distribution/extensions/{f13b157f-b174-47e7-a34d-4815ddfdfeb8}.xpi
 lib/%%APP_NAME%%/extensions/modern@themes.mozilla.org.xpi
 lib/%%APP_NAME%%/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
 lib/%%APP_NAME%%/icons/updater.png
@@ -126,19 +125,3 @@ lib/%%APP_NAME%%/updater
 lib/%%APP_NAME%%/updater.ini
 @exec /bin/cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%APP_NAME%%/  %D/lib/%%APP_NAME%%/extensions/ 2>/dev/null || true
 @unexec /usr/bin/find %D/lib/%%APP_NAME%%/extensions/  -depth 1 -type l -delete 2>/dev/null || true
-@dirrm lib/%%APP_NAME%%/chrome/icons/default
-@dirrm lib/%%APP_NAME%%/chrome/icons
-@dirrm lib/%%APP_NAME%%/chrome
-@dirrm lib/%%APP_NAME%%/components
-@dirrm lib/%%APP_NAME%%/defaults/messenger
-@dirrm lib/%%APP_NAME%%/defaults/pref
-@dirrm lib/%%APP_NAME%%/defaults/profile
-@dirrm lib/%%APP_NAME%%/defaults
-@dirrm lib/%%APP_NAME%%/dictionaries
-@dirrm lib/%%APP_NAME%%/distribution/extensions
-@dirrm lib/%%APP_NAME%%/distribution
-@dirrm lib/%%APP_NAME%%/extensions
-@dirrm lib/%%APP_NAME%%/icons
-@dirrm lib/%%APP_NAME%%/isp
-@dirrm lib/%%APP_NAME%%/searchplugins
-@dirrm lib/%%APP_NAME%%

Modified: head/www/seamonkey-i18n/Makefile
==============================================================================
--- head/www/seamonkey-i18n/Makefile	Thu Oct 16 09:51:35 2014	(r370990)
+++ head/www/seamonkey-i18n/Makefile	Thu Oct 16 10:25:47 2014	(r370991)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	seamonkey-i18n
-PORTVERSION=	2.29.1
+PORTVERSION=	2.30
 CATEGORIES=	www mail news editors irc
 MASTER_SITES=	MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/langpack
 PKGNAMEPREFIX=
@@ -14,7 +14,7 @@ COMMENT=	Localized interface for SeaMonk
 
 EXTRACT_DEPENDS=	zip:${PORTSDIR}/archivers/zip
 
-USES=		zip:infozip gecko:seamonkey
+USES=		zip:infozip gecko:seamonkey,build
 USE_XPI=	seamonkey linux-seamonkey
 
 NO_ARCH=	yes
@@ -25,7 +25,6 @@ WDIR=	langpack-*@seamonkey.mozilla.org
 XPI_DISTNAMES=	${SEAMONKEY_I18N_}
 
 PLIST?=		${WRKDIR}/plist
-PLISTD?=	${WRKDIR}/plist_dirs
 PLISTF?=	${WRKDIR}/plist_files
 
 .include "${.CURDIR}/Makefile.option"
@@ -57,12 +56,9 @@ do-extract:
 		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}; \
+		${SED} -e "s|^|lib/xpi/langpack-$$lang@seamonkey.mozilla.org/|" >> ${PLISTF}; \
 	done
 	${CAT} ${PLISTF} | ${SORT} >> ${PLIST}
-	${CAT} ${PLISTD} | ${SORT} -r >> ${PLIST}
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${XPI_LIBDIR} ${STAGEDIR}${XPI_SLDIRS_ALL}

Modified: head/www/seamonkey-i18n/distinfo
==============================================================================
--- head/www/seamonkey-i18n/distinfo	Thu Oct 16 09:51:35 2014	(r370990)
+++ head/www/seamonkey-i18n/distinfo	Thu Oct 16 10:25:47 2014	(r370991)
@@ -1,54 +1,54 @@
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.be.langpack.xpi) = 48e99f9a34bc17166e432ddf57060ef007a52a2f5a72f678b30c2ca150d788d4
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.be.langpack.xpi) = 837343
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.ca.langpack.xpi) = da62c41035d664f70164c82ba410ca63e8cee66842584be02526b979a1ea17d7
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.ca.langpack.xpi) = 830894
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.cs.langpack.xpi) = a4fb43ae82e84f6f6ee3c563d7369c7df23a4e75c4c8bc579161867e8a62dc0c
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.cs.langpack.xpi) = 832269
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.de.langpack.xpi) = bb7f7996400cab45d3cfe6599c225a9ebb4a11c02f213f8f048cb02698729f08
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.de.langpack.xpi) = 837074
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.en-GB.langpack.xpi) = db76c94cee1683b2fbc54f29b5a472d22d41f02146adb4f73f4a1e909c8febfa
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.en-GB.langpack.xpi) = 800825
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.en-US.langpack.xpi) = dc60fe6d769d27828cd2cc2f3e7eb7403a2ebeed2fd16a0ec81aa64a58e65550
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.en-US.langpack.xpi) = 800947
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.es-AR.langpack.xpi) = f6c23b2ca45b5f62cf9957a3723787b7e9a6b2ebadb36c114bf68b44a1bea8b7
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.es-AR.langpack.xpi) = 851550
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.es-ES.langpack.xpi) = 2194e35efaf96f6b571fae1f6cdc02f7d877870163d71ebe29850fcaa7aebf32
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.es-ES.langpack.xpi) = 827398
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.fi.langpack.xpi) = 90e56c6c84f0fb20fd1246efb9e14280006b9498702e4f6f0a1d4b7d07c8e36b
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.fi.langpack.xpi) = 798958
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.fr.langpack.xpi) = f5b984b90314d4d84c777e2c614058cba38f48d001130b6bb44d65209212e6a8
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.fr.langpack.xpi) = 809849
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.gl.langpack.xpi) = ddfca812273b853171175f8e49629515cfe786a5e611106cf87696d0997c75b8
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.gl.langpack.xpi) = 811262
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.hu.langpack.xpi) = f1de97811c9853c9ab2d5811baa3aee513bfc21b9f6ffe19f9a494a2a74c9731
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.hu.langpack.xpi) = 845864
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.it.langpack.xpi) = 59f3cc936e9e0abf8ff1634b5aa7efd20c3cbb36bc3d87a2ca66843f8f5a85e1
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.it.langpack.xpi) = 747523
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.ja-JP-mac.langpack.xpi) = 18b9a04b12224faa267fff4478dd615f20a95ec77fb5672426a90809ef1a5065
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.ja-JP-mac.langpack.xpi) = 898137
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.ja.langpack.xpi) = ef93a8e30fef1d9fef12ab63abcde4b99b2294c74f0d88823ac30c8a6189a6c9
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.ja.langpack.xpi) = 882631
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.lt.langpack.xpi) = 73ad71029ffa88d71082465d27b3fd3faa74fc2358b2c79f176b68d8aa6153a1
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.lt.langpack.xpi) = 847473
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.nb-NO.langpack.xpi) = c36b9c2a943aef843fe03b735a62f57114ab7333ac9b59dbb69f4f625dbc3194
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.nb-NO.langpack.xpi) = 820415
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.nl.langpack.xpi) = 0678cb91ee1864222641034a4982f13509196cb36c61b3f794bf944e9f0bba8b
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.nl.langpack.xpi) = 795958
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.pl.langpack.xpi) = 548f9f16d70224e712e68b557cf5c6f6d50658dbba803b5de17b1f987326fcd8
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.pl.langpack.xpi) = 868185
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.pt-PT.langpack.xpi) = 88dfff6b9ea02e057ea284a70ea2098d83c8fd9dfeaadb8b6cb3773e3bcc894d
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.pt-PT.langpack.xpi) = 835298
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.ru.langpack.xpi) = 683e6b1bb5549ba77459a1ef2a308a536010874f15421ff85b48d63bd8cfdffc
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.ru.langpack.xpi) = 904350
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.sk.langpack.xpi) = cd19bbc1f21995ef0eeb0d6187e59b568414eb23c960406fc8ec3043fea17a2e
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.sk.langpack.xpi) = 859266
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.sv-SE.langpack.xpi) = 2f37fc22042d362a759fce13a817ce41105240a5be8ebbe9f85825306c98a047
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.sv-SE.langpack.xpi) = 824247
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.tr.langpack.xpi) = ccb92bc100a1893a0476b74150c18e69cfc795ec0067c109b924780965c646a1
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.tr.langpack.xpi) = 808132
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.uk.langpack.xpi) = 39814cea13d2a356abbdd052841c607d980172ba2a5fafbacbf0d0ce151be65f
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.uk.langpack.xpi) = 870448
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.zh-CN.langpack.xpi) = adb0634422270ecd074a95b6288f728746ed32041f3de127a609aac71c74a4c3
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.zh-CN.langpack.xpi) = 833565
-SHA256 (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.zh-TW.langpack.xpi) = 51baf967ad8b2b8f5cf0ccd3c92674f0d427bc2ee9f1adea7a535257993c59ce
-SIZE (xpi/seamonkey-i18n-2.29.1/seamonkey-2.29.1.zh-TW.langpack.xpi) = 858131
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.be.langpack.xpi) = 942e41816717417241480048c5bdb3359050170d5d1373baac60637072125318
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.be.langpack.xpi) = 841428
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.ca.langpack.xpi) = f1885b21616e0c0598b5209a64ab6c709b6a38e6c87d7e7dc46bbb5a080d220f
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.ca.langpack.xpi) = 834809
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.cs.langpack.xpi) = 1d27172ba95f2604b33e108c3d3121ea24c019c2a29cdc23905bc6a88558783e
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.cs.langpack.xpi) = 836086
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.de.langpack.xpi) = d0af448d7eb0994eb6bcb21e6fdeaede037b91fd74558743b2212629304ecb82
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.de.langpack.xpi) = 840719
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.en-GB.langpack.xpi) = 54b6ddc03323c03e1ff7651941ac30d7723ff7a16efefc34c31f40a9418273d3
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.en-GB.langpack.xpi) = 805934
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.en-US.langpack.xpi) = 8a28853922139e19db1b1e5ab64ff555d40710b202259b58d8ed74769d49d330
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.en-US.langpack.xpi) = 805932
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.es-AR.langpack.xpi) = e2c138ef0a4a7fa0dc4cba91fea2e52c6f580bbe1bcbba1e929ef133ca1892e8
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.es-AR.langpack.xpi) = 854761
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.es-ES.langpack.xpi) = 34e7b38ef23dcef4b6279a155aef5e33abd2d9f7f39c54970ccb4e86a0236e0d
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.es-ES.langpack.xpi) = 831828
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.fi.langpack.xpi) = f08ad7cb30ef288ee023fff77c1d9f7daf92e27f6b046aaacb39f5bc77d21f86
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.fi.langpack.xpi) = 802428
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.fr.langpack.xpi) = d4b8853961ff4040124b74657c052944e1fb34ce155a57b63802a36104c1b18a
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.fr.langpack.xpi) = 813379
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.gl.langpack.xpi) = 085312f4d6e0da8c6dc05ee976eb73c64f8db5deea94e93e51094af2c612daf9
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.gl.langpack.xpi) = 815086
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.hu.langpack.xpi) = d8e348427de7fc4a12b29eebb242d85f2a783155ee1980115a12ea18c20b3a76
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.hu.langpack.xpi) = 846944
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.it.langpack.xpi) = 7cfbf41c51267252e948c726d82c99f1dd08b41e0824c4b3aee3745139bf6aea
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.it.langpack.xpi) = 744667
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.ja-JP-mac.langpack.xpi) = 2b637b618da5dccf98fd9cac168e943a3327aa96e94493af8ebc58aabdd96322
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.ja-JP-mac.langpack.xpi) = 901956
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.ja.langpack.xpi) = 310b1915fddd645ef599c4ccd43a012d7ad5b6dcd8b9ee1ed55314dfe1b84d50
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.ja.langpack.xpi) = 886414
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.lt.langpack.xpi) = cf3f171f9b322f463d4776118f91e9213efc47d9da311e9666b0134956c9f9d5
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.lt.langpack.xpi) = 852885
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.nb-NO.langpack.xpi) = 4174506d5b648bd3a32860d7f1a13f38acc8efd4add445654c39d148d8bd579a
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.nb-NO.langpack.xpi) = 825465
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.nl.langpack.xpi) = 65d96aa66d3d5e7df067a24af45ac1642d402df0d83b3ad62566de8b1341ef52
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.nl.langpack.xpi) = 799416
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.pl.langpack.xpi) = 7c0ec1aee1224a271ed7f8bdb65cc661ac1896492c40a560c703e0bf41409f2c
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.pl.langpack.xpi) = 871070
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.pt-PT.langpack.xpi) = a199d31a141a793468315c4b8e2af945dad65300af3dc08ecf6e46cc8a268e94
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.pt-PT.langpack.xpi) = 839078
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.ru.langpack.xpi) = 2de977bae6270ab0a81de79f83f1fbd193d0a34b5522ce58f08d7e0437267db1
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.ru.langpack.xpi) = 908478
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.sk.langpack.xpi) = 3171795cb2b8d38cb2efd2a0c92cf9b9292cedae910630b76b82c49dc6965424
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.sk.langpack.xpi) = 863112
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.sv-SE.langpack.xpi) = a8be050ec15e4c73ae2b91bcdbbd7d1b49f10606f3dcd8507ff3716c8ea738cb
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.sv-SE.langpack.xpi) = 827757
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.tr.langpack.xpi) = e21d7da74395703daada431cf7cabc4dde2368aa6f3acff689a3ff95c3c986c7
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.tr.langpack.xpi) = 811821
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.uk.langpack.xpi) = cc18e2c32851c0672505c3afa93503b87c7f176ff10115f378c52499d9119113
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.uk.langpack.xpi) = 874148
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.zh-CN.langpack.xpi) = e61da8c2d17b9afa0aad1d41910f00c785f618bb457cb9590176d4e5447cf6ad
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.zh-CN.langpack.xpi) = 837222
+SHA256 (xpi/seamonkey-i18n-2.30/seamonkey-2.30.zh-TW.langpack.xpi) = 29993aeafcf649561008394400cad3e9cb053891af1f69709aff4d2ce5ca90c0
+SIZE (xpi/seamonkey-i18n-2.30/seamonkey-2.30.zh-TW.langpack.xpi) = 863385

Modified: head/www/seamonkey/Makefile
==============================================================================
--- head/www/seamonkey/Makefile	Thu Oct 16 09:51:35 2014	(r370990)
+++ head/www/seamonkey/Makefile	Thu Oct 16 10:25:47 2014	(r370991)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	seamonkey
-DISTVERSION=	2.29.1
+DISTVERSION=	2.30
 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/
@@ -32,7 +32,7 @@ BUILD_DEPENDS=	nspr>=4.10.6:${PORTSDIR}/
 LIB_DEPENDS=	libv4l2.so:${PORTSDIR}/multimedia/libv4l
 
 EM_VERSION=	1.7.2
-L_VERSION=	3.4
+L_VERSION=	3.5
 
 SSP_UNSAFE=	yes
 OBJDIR_BUILD=	# in-tree build broken after bug 789837
@@ -84,9 +84,8 @@ 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
+# To be removed when 9.2R goes EOL. http://llvm.org/PR15840
+.if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION:M3[23]}
 . if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
 BROKEN=		Cannot build with OPTIMIZED_CFLAGS option due to \
 		a ${CHOSEN_COMPILER_TYPE} bug: unset the option or \
@@ -100,7 +99,6 @@ CXXFLAGS+=	-O1
 .  endif
 . endif
 .endif
-.endif
 
 .if ${PORT_OPTIONS:MALSA}
 RUN_DEPENDS+=	alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib

Modified: head/www/seamonkey/distinfo
==============================================================================
--- head/www/seamonkey/distinfo	Thu Oct 16 09:51:35 2014	(r370990)
+++ head/www/seamonkey/distinfo	Thu Oct 16 10:25:47 2014	(r370991)
@@ -1,4 +1,4 @@
-SHA256 (seamonkey-2.29.1.source.tar.bz2) = 26e345f71c6f305084ada10e10e55356fe4f08be25948cddb27eea81c0cd0679
-SIZE (seamonkey-2.29.1.source.tar.bz2) = 173439941
+SHA256 (seamonkey-2.30.source.tar.bz2) = 613eb08d80bf671b390869e9682810d7ae312a9858f6b69da76155f42ff1d516
+SIZE (seamonkey-2.30.source.tar.bz2) = 178435927
 SHA256 (enigmail-1.7.2.tar.gz) = 7b3a62e83961bafec1cdac60075aa6c317c8f655a837e31a7d1f3ce6a49fc7d6
 SIZE (enigmail-1.7.2.tar.gz) = 1420346

Added: head/www/seamonkey/files/patch-bug1021761
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/seamonkey/files/patch-bug1021761	Thu Oct 16 10:25:47 2014	(r370991)
@@ -0,0 +1,1101 @@
+diff --git configure.in configure.in
+index 48e60c0..ec08417 100644
+--- mozilla/configure.in
++++ mozilla/configure.in
+@@ -5438,6 +5438,60 @@ fi
+ AC_SUBST(MOZ_WEBM_ENCODER)
+ 
+ dnl ==================================
++dnl = Check OSS availability
++dnl ==================================
++
++dnl If using Linux, Solaris or BSDs, ensure that OSS is available
++case "$OS_TARGET" in
++Linux|SunOS|DragonFly|FreeBSD|NetBSD|GNU/kFreeBSD)
++    MOZ_OSS=1
++    ;;
++esac
++
++MOZ_ARG_DISABLE_BOOL(oss,
++[  --disable-oss           Disable OpenSoundSystem support],
++   MOZ_OSS=,
++   MOZ_OSS=1)
++
++_SAVE_CFLAGS=$CFLAGS
++_SAVE_LIBS=$LIBS
++if test -n "$MOZ_OSS"; then
++    dnl Prefer 4Front implementation
++    AC_MSG_CHECKING([MOZ_OSS_CFLAGS])
++    if test -z "$MOZ_OSS_CFLAGS"; then
++        for oss_conf in /etc/oss.conf /usr/local/etc/oss.conf; do
++            if test -e "$oss_conf"; then
++                . "$oss_conf"
++            fi
++        done
++        if test -d "$OSSLIBDIR"; then
++            MOZ_OSS_CFLAGS="-I$OSSLIBDIR/include"
++        fi
++    fi
++    AC_MSG_RESULT([$MOZ_OSS_CFLAGS])
++
++    CFLAGS="$CFLAGS $MOZ_OSS_CFLAGS"
++    MOZ_CHECK_HEADERS(sys/soundcard.h linux/soundcard.h soundcard.h)
++
++    if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \
++            "$ac_cv_header_linux_soundcard_h" != "yes" -a \
++            "$ac_cv_header_soundcard_h" != "yes"; then
++        AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET.  Disable with --disable-ogg --disable-wave --disable-webm.])
++    fi
++
++    dnl Assume NetBSD implementation over SunAudio
++    AC_CHECK_LIB(ossaudio, _oss_ioctl,
++        [AC_DEFINE_UNQUOTED(CUBEB_OSS_DEFAULT_OUTPUT, "/dev/sound")
++         MOZ_OSS_LIBS="-lossaudio"])
++fi
++CFLAGS=$_SAVE_CFLAGS
++LIBS=$_SAVE_LIBS
++
++AC_SUBST(MOZ_OSS)
++AC_SUBST_LIST(MOZ_OSS_CFLAGS)
++AC_SUBST_LIST(MOZ_OSS_LIBS)
++
++dnl ==================================
+ dnl = Check alsa availability on Linux
+ dnl ==================================
+ 
+@@ -5451,12 +5505,23 @@ MOZ_ARG_ENABLE_BOOL(alsa,
+    MOZ_ALSA=1,
+    MOZ_ALSA=)
+ 
++MOZ_ARG_DISABLE_BOOL(alsa-dlopen,
++[  --disable-alsa-dlopen   Disable runtime linking of libasound.so],
++   DISABLE_LIBASOUND_DLOPEN=1,
++   DISABLE_LIBASOUND_DLOPEN=)
++
+ if test -n "$MOZ_ALSA"; then
+     PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
+          [echo "$MOZ_ALSA_PKG_ERRORS"
+           AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux.  Disable with --disable-ogg --disable-wave --disable-webm.  (On Ubuntu, you might try installing the package libasound2-dev.)])])
+ fi
+ 
++if test -n "$DISABLE_LIBASOUND_DLOPEN"; then
++    AC_DEFINE(DISABLE_LIBASOUND_DLOPEN)
++else
++    MOZ_ALSA_LIBS=
++fi
++
+ AC_SUBST(MOZ_ALSA)
+ 
+ dnl ========================================================
+diff --git media/libcubeb/AUTHORS media/libcubeb/AUTHORS
+index b441e8a..950d9e5 100644
+--- mozilla/media/libcubeb/AUTHORS
++++ mozilla/media/libcubeb/AUTHORS
+@@ -4,3 +4,4 @@ Michael Wu <mwu@mozilla.com>
+ Paul Adenot <paul@paul.cx>
+ David Richards <drichards@mozilla.com>
+ Sebastien Alaiwan <sebastien.alaiwan@gmail.com>
++Evgeniy Vodolazskiy <waterlaz@gmail.com>
+diff --git media/libcubeb/src/cubeb.c media/libcubeb/src/cubeb.c
+index 9c3adcc..45d765b 100644
+--- mozilla/media/libcubeb/src/cubeb.c
++++ mozilla/media/libcubeb/src/cubeb.c
+@@ -54,6 +54,9 @@ int opensl_init(cubeb ** context, char const * context_name);
+ #if defined(USE_AUDIOTRACK)
+ int audiotrack_init(cubeb ** context, char const * context_name);
+ #endif
++#if defined(USE_OSS)
++int oss_init(cubeb ** context, char const * context_name);
++#endif
+ 
+ int
+ validate_stream_params(cubeb_stream_params stream_params)
+@@ -120,6 +123,9 @@ cubeb_init(cubeb ** context, char const * context_name)
+ #if defined(USE_AUDIOTRACK)
+     audiotrack_init,
+ #endif
++#if defined(USE_OSS)
++    oss_init,
++#endif
+   };
+   int i;
+ 
+diff --git media/libcubeb/src/cubeb_alsa.c media/libcubeb/src/cubeb_alsa.c
+index a962553..1f780f4 100644
+--- mozilla/media/libcubeb/src/cubeb_alsa.c
++++ mozilla/media/libcubeb/src/cubeb_alsa.c
+@@ -11,6 +11,7 @@
+ #include <sys/time.h>
+ #include <assert.h>
+ #include <limits.h>
++#include <dlfcn.h>
+ #include <poll.h>
+ #include <unistd.h>
+ #include <alsa/asoundlib.h>
+@@ -24,6 +25,50 @@
+ 
+ #define ALSA_PA_PLUGIN "ALSA <-> PulseAudio PCM I/O Plugin"
+ 
++#ifdef DISABLE_LIBASOUND_DLOPEN
++#define WRAP(x) x
++#else
++#define WRAP(x) cubeb_##x
++#define MAKE_TYPEDEF(x) static typeof(x) * cubeb_##x
++MAKE_TYPEDEF(snd_config);
++MAKE_TYPEDEF(snd_config_add);
++MAKE_TYPEDEF(snd_config_copy);
++MAKE_TYPEDEF(snd_config_delete);
++MAKE_TYPEDEF(snd_config_get_id);
++MAKE_TYPEDEF(snd_config_get_string);
++MAKE_TYPEDEF(snd_config_imake_integer);
++MAKE_TYPEDEF(snd_config_search);
++MAKE_TYPEDEF(snd_config_search_definition);
++MAKE_TYPEDEF(snd_lib_error_set_handler);
++MAKE_TYPEDEF(snd_pcm_avail_update);
++MAKE_TYPEDEF(snd_pcm_close);
++MAKE_TYPEDEF(snd_pcm_delay);
++MAKE_TYPEDEF(snd_pcm_drain);
++MAKE_TYPEDEF(snd_pcm_frames_to_bytes);
++MAKE_TYPEDEF(snd_pcm_get_params);
++/* snd_pcm_hw_params_alloca is actually a macro */
++/* MAKE_TYPEDEF(snd_pcm_hw_params_alloca); */
++MAKE_TYPEDEF(snd_pcm_hw_params_sizeof);
++#define snd_pcm_hw_params_sizeof cubeb_snd_pcm_hw_params_sizeof
++MAKE_TYPEDEF(snd_pcm_hw_params_any);
++MAKE_TYPEDEF(snd_pcm_hw_params_get_channels_max);
++MAKE_TYPEDEF(snd_pcm_hw_params_get_rate);
++MAKE_TYPEDEF(snd_pcm_hw_params_set_rate_near);
++MAKE_TYPEDEF(snd_pcm_nonblock);
++MAKE_TYPEDEF(snd_pcm_open);
++MAKE_TYPEDEF(snd_pcm_open_lconf);
++MAKE_TYPEDEF(snd_pcm_pause);
++MAKE_TYPEDEF(snd_pcm_poll_descriptors);
++MAKE_TYPEDEF(snd_pcm_poll_descriptors_count);
++MAKE_TYPEDEF(snd_pcm_poll_descriptors_revents);
++MAKE_TYPEDEF(snd_pcm_recover);
++MAKE_TYPEDEF(snd_pcm_set_params);
++MAKE_TYPEDEF(snd_pcm_state);
++MAKE_TYPEDEF(snd_pcm_writei);
++
++#undef MAKE_TYPEDEF
++#endif
++
+ /* ALSA is not thread-safe.  snd_pcm_t instances are individually protected
+    by the owning cubeb_stream's mutex.  snd_pcm_t creation and destruction
+    is not thread-safe until ALSA 1.0.24 (see alsa-lib.git commit 91c9c8f1),
+@@ -64,6 +109,8 @@ struct cubeb {
+      workaround is not required. */
+   snd_config_t * local_config;
+   int is_pa;
++
++  void * libasound;
+ };
+ 
+ enum stream_state {
+@@ -262,7 +309,7 @@ alsa_refill_stream(cubeb_stream * stm)
+ 
+   pthread_mutex_lock(&stm->mutex);
+ 
+-  r = snd_pcm_poll_descriptors_revents(stm->pcm, stm->fds, stm->nfds, &revents);
++  r = WRAP(snd_pcm_poll_descriptors_revents)(stm->pcm, stm->fds, stm->nfds, &revents);
+   if (r < 0 || revents != POLLOUT) {
+     /* This should be a stream error; it makes no sense for poll(2) to wake
+        for this stream and then have the stream report that it's not ready.
+@@ -271,10 +318,10 @@ alsa_refill_stream(cubeb_stream * stm)
+     return RUNNING;
+   }
+ 
+-  avail = snd_pcm_avail_update(stm->pcm);
++  avail = WRAP(snd_pcm_avail_update)(stm->pcm);
+   if (avail == -EPIPE) {
+-    snd_pcm_recover(stm->pcm, avail, 1);
+-    avail = snd_pcm_avail_update(stm->pcm);
++    WRAP(snd_pcm_recover)(stm->pcm, avail, 1);
++    avail = WRAP(snd_pcm_avail_update)(stm->pcm);
+   }
+ 
+   /* Failed to recover from an xrun, this stream must be broken. */
+@@ -293,8 +340,8 @@ alsa_refill_stream(cubeb_stream * stm)
+      available to write.  If avail is still zero here, the stream must be in
+      a funky state, so recover and try again. */
+   if (avail == 0) {
+-    snd_pcm_recover(stm->pcm, -EPIPE, 1);
+-    avail = snd_pcm_avail_update(stm->pcm);
++    WRAP(snd_pcm_recover)(stm->pcm, -EPIPE, 1);
++    avail = WRAP(snd_pcm_avail_update)(stm->pcm);
+     if (avail <= 0) {
+       pthread_mutex_unlock(&stm->mutex);
+       stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+@@ -302,7 +349,7 @@ alsa_refill_stream(cubeb_stream * stm)
+     }
+   }
+ 
+-  p = calloc(1, snd_pcm_frames_to_bytes(stm->pcm, avail));
++  p = calloc(1, WRAP(snd_pcm_frames_to_bytes)(stm->pcm, avail));
+   assert(p);
+ 
+   pthread_mutex_unlock(&stm->mutex);
+@@ -313,10 +360,10 @@ alsa_refill_stream(cubeb_stream * stm)
+     return ERROR;
+   }
+   if (got > 0) {
+-    snd_pcm_sframes_t wrote = snd_pcm_writei(stm->pcm, p, got);
++    snd_pcm_sframes_t wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
+     if (wrote == -EPIPE) {
+-      snd_pcm_recover(stm->pcm, wrote, 1);
+-      wrote = snd_pcm_writei(stm->pcm, p, got);
++      WRAP(snd_pcm_recover)(stm->pcm, wrote, 1);
++      wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
+     }
+     assert(wrote >= 0 && wrote == got);
+     stm->write_position += wrote;
+@@ -342,7 +389,7 @@ alsa_refill_stream(cubeb_stream * stm)
+ 
+     /* Fill the remaining buffer with silence to guarantee one full period
+        has been written. */
+-    snd_pcm_writei(stm->pcm, (char *) p + got, avail - got);
++    WRAP(snd_pcm_writei)(stm->pcm, (char *) p + got, avail - got);
+ 
+     set_timeout(&stm->drain_timeout, buffer_time * 1000);
+ 
+@@ -453,26 +500,26 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
+ 
+   slave_def = NULL;
+ 
+-  r = snd_config_search(root_pcm, "slave", &slave_pcm);
++  r = WRAP(snd_config_search)(root_pcm, "slave", &slave_pcm);
+   if (r < 0) {
+     return NULL;
+   }
+ 
+-  r = snd_config_get_string(slave_pcm, &string);
++  r = WRAP(snd_config_get_string)(slave_pcm, &string);
+   if (r >= 0) {
+-    r = snd_config_search_definition(lconf, "pcm_slave", string, &slave_def);
++    r = WRAP(snd_config_search_definition)(lconf, "pcm_slave", string, &slave_def);
+     if (r < 0) {
+       return NULL;
+     }
+   }
+ 
+   do {
+-    r = snd_config_search(slave_def ? slave_def : slave_pcm, "pcm", &pcm);
++    r = WRAP(snd_config_search)(slave_def ? slave_def : slave_pcm, "pcm", &pcm);
+     if (r < 0) {
+       break;
+     }
+ 
+-    r = snd_config_get_string(slave_def ? slave_def : slave_pcm, &string);
++    r = WRAP(snd_config_get_string)(slave_def ? slave_def : slave_pcm, &string);
+     if (r < 0) {
+       break;
+     }
+@@ -481,7 +528,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
+     if (r < 0 || r > (int) sizeof(node_name)) {
+       break;
+     }
+-    r = snd_config_search(lconf, node_name, &pcm);
++    r = WRAP(snd_config_search)(lconf, node_name, &pcm);
+     if (r < 0) {
+       break;
+     }
+@@ -490,7 +537,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
+   } while (0);
+ 
+   if (slave_def) {
+-    snd_config_delete(slave_def);
++    WRAP(snd_config_delete)(slave_def);
+   }
+ 
+   return NULL;
+@@ -513,22 +560,22 @@ init_local_config_with_workaround(char const * pcm_name)
+ 
+   lconf = NULL;
+ 
+-  if (snd_config == NULL) {
++  if (*WRAP(snd_config) == NULL) {
+     return NULL;
+   }
+ 
+-  r = snd_config_copy(&lconf, snd_config);
++  r = WRAP(snd_config_copy)(&lconf, *WRAP(snd_config));
+   if (r < 0) {
+     return NULL;
+   }
+ 
+   do {
+-    r = snd_config_search_definition(lconf, "pcm", pcm_name, &pcm_node);
++    r = WRAP(snd_config_search_definition)(lconf, "pcm", pcm_name, &pcm_node);
+     if (r < 0) {
+       break;
+     }
+ 
+-    r = snd_config_get_id(pcm_node, &string);
++    r = WRAP(snd_config_get_id)(pcm_node, &string);
+     if (r < 0) {
+       break;
+     }
+@@ -537,7 +584,7 @@ init_local_config_with_workaround(char const * pcm_name)
+     if (r < 0 || r > (int) sizeof(node_name)) {
+       break;
+     }
+-    r = snd_config_search(lconf, node_name, &pcm_node);
++    r = WRAP(snd_config_search)(lconf, node_name, &pcm_node);
+     if (r < 0) {
+       break;
+     }
+@@ -548,12 +595,12 @@ init_local_config_with_workaround(char const * pcm_name)
+     }
+ 
+     /* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */
+-    r = snd_config_search(pcm_node, "type", &node);
++    r = WRAP(snd_config_search)(pcm_node, "type", &node);
+     if (r < 0) {
+       break;
+     }
+ 
+-    r = snd_config_get_string(node, &string);
++    r = WRAP(snd_config_get_string)(node, &string);
+     if (r < 0) {
+       break;
+     }
+@@ -564,18 +611,18 @@ init_local_config_with_workaround(char const * pcm_name)
+ 
+     /* Don't clobber an explicit existing handle_underrun value, set it only
+        if it doesn't already exist. */
+-    r = snd_config_search(pcm_node, "handle_underrun", &node);
++    r = WRAP(snd_config_search)(pcm_node, "handle_underrun", &node);
+     if (r != -ENOENT) {
+       break;
+     }
+ 
+     /* Disable pcm_pulse's asynchronous underrun handling. */
+-    r = snd_config_imake_integer(&node, "handle_underrun", 0);
++    r = WRAP(snd_config_imake_integer)(&node, "handle_underrun", 0);
+     if (r < 0) {
+       break;
+     }
+ 
+-    r = snd_config_add(pcm_node, node);
++    r = WRAP(snd_config_add)(pcm_node, node);
+     if (r < 0) {
+       break;
+     }
+@@ -583,7 +630,7 @@ init_local_config_with_workaround(char const * pcm_name)
+     return lconf;
+   } while (0);
+ 
+-  snd_config_delete(lconf);
++  WRAP(snd_config_delete)(lconf);
+ 
+   return NULL;
+ }
+@@ -595,9 +642,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, snd_pcm_stream_t stream, snd_config_t * l
+ 
+   pthread_mutex_lock(&cubeb_alsa_mutex);
+   if (local_config) {
+-    r = snd_pcm_open_lconf(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config);
++    r = WRAP(snd_pcm_open_lconf)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK, local_config);
+   } else {
+-    r = snd_pcm_open(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK);
++    r = WRAP(snd_pcm_open)(pcm, CUBEB_ALSA_PCM_NAME, stream, SND_PCM_NONBLOCK);
+   }
+   pthread_mutex_unlock(&cubeb_alsa_mutex);
+ 
+@@ -610,7 +657,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
+   int r;
+ 
+   pthread_mutex_lock(&cubeb_alsa_mutex);
+-  r = snd_pcm_close(pcm);
++  r = WRAP(snd_pcm_close)(pcm);
+   pthread_mutex_unlock(&cubeb_alsa_mutex);
+ 
+   return r;
+@@ -667,12 +714,65 @@ alsa_init(cubeb ** context, char const * context_name)
+   pthread_attr_t attr;
+   snd_pcm_t * dummy;
+ 
++  void * libasound = NULL;
++
++#ifndef DISABLE_LIBASOUND_DLOPEN
++  libasound = dlopen("libasound.so", RTLD_LAZY);
++  if (!libasound) {
++    return CUBEB_ERROR;
++  }
++
++#define LOAD(x) do { \
++    cubeb_##x = dlsym(libasound, #x); \
++    if (!cubeb_##x) { \
++      dlclose(libasound); \
++      return CUBEB_ERROR; \
++    } \
++  } while(0)
++
++  LOAD(snd_config);
++  LOAD(snd_config_add);
++  LOAD(snd_config_copy);
++  LOAD(snd_config_delete);
++  LOAD(snd_config_get_id);
++  LOAD(snd_config_get_string);
++  LOAD(snd_config_imake_integer);
++  LOAD(snd_config_search);
++  LOAD(snd_config_search_definition);
++  LOAD(snd_lib_error_set_handler);
++  LOAD(snd_pcm_avail_update);
++  LOAD(snd_pcm_close);
++  LOAD(snd_pcm_delay);
++  LOAD(snd_pcm_drain);
++  LOAD(snd_pcm_frames_to_bytes);
++  LOAD(snd_pcm_get_params);
++  /* snd_pcm_hw_params_alloca is actually a macro */
++  /* LOAD(snd_pcm_hw_params_alloca); */
++  LOAD(snd_pcm_hw_params_sizeof);
++  LOAD(snd_pcm_hw_params_any);
++  LOAD(snd_pcm_hw_params_get_channels_max);
++  LOAD(snd_pcm_hw_params_get_rate);
++  LOAD(snd_pcm_hw_params_set_rate_near);
++  LOAD(snd_pcm_nonblock);
++  LOAD(snd_pcm_open);
++  LOAD(snd_pcm_open_lconf);
++  LOAD(snd_pcm_pause);
++  LOAD(snd_pcm_poll_descriptors);
++  LOAD(snd_pcm_poll_descriptors_count);
++  LOAD(snd_pcm_poll_descriptors_revents);
++  LOAD(snd_pcm_recover);
++  LOAD(snd_pcm_set_params);
++  LOAD(snd_pcm_state);
++  LOAD(snd_pcm_writei);
++
++#undef LOAD
++#endif
+   assert(context);
+   *context = NULL;
+ 
+   pthread_mutex_lock(&cubeb_alsa_mutex);
+   if (!cubeb_alsa_error_handler_set) {
+-    snd_lib_error_set_handler(silent_error_handler);
++    WRAP(snd_lib_error_set_handler)(silent_error_handler);
+     cubeb_alsa_error_handler_set = 1;
+   }
+   pthread_mutex_unlock(&cubeb_alsa_mutex);
+@@ -680,6 +780,8 @@ alsa_init(cubeb ** context, char const * context_name)
+   ctx = calloc(1, sizeof(*ctx));
+   assert(ctx);
+ 
++  ctx->libasound = libasound;
++
+   ctx->ops = &alsa_ops;
+ 
+   r = pthread_mutex_init(&ctx->mutex, NULL);
+@@ -729,7 +831,7 @@ alsa_init(cubeb ** context, char const * context_name)
+        config fails with EINVAL, the PA PCM is too old for this workaround. */
+     if (r == -EINVAL) {
+       pthread_mutex_lock(&cubeb_alsa_mutex);
+-      snd_config_delete(ctx->local_config);
++      WRAP(snd_config_delete)(ctx->local_config);
+       pthread_mutex_unlock(&cubeb_alsa_mutex);
+       ctx->local_config = NULL;
+     } else if (r >= 0) {
+@@ -768,9 +870,13 @@ alsa_destroy(cubeb * ctx)
+   pthread_mutex_destroy(&ctx->mutex);
+   free(ctx->fds);
+ 
++  if (ctx->libasound) {
++    dlclose(ctx->libasound);
++  }
++
+   if (ctx->local_config) {
+     pthread_mutex_lock(&cubeb_alsa_mutex);
+-    snd_config_delete(ctx->local_config);
++    WRAP(snd_config_delete)(ctx->local_config);
+     pthread_mutex_unlock(&cubeb_alsa_mutex);
+   }
+ 
+@@ -838,7 +944,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name,
+     return CUBEB_ERROR;
+   }
+ 
+-  r = snd_pcm_nonblock(stm->pcm, 1);
++  r = WRAP(snd_pcm_nonblock)(stm->pcm, 1);
+   assert(r == 0);
+ 
+   /* Ugly hack: the PA ALSA plugin allows buffer configurations that can't
+@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name,
+     latency = latency < 500 ? 500 : latency;
+   }
+ 
+-  r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED,
+-                         stm->params.channels, stm->params.rate, 1,
+-                         latency * 1000);
++  r = WRAP(snd_pcm_set_params)(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED,
++                               stm->params.channels, stm->params.rate, 1,
++                               latency * 1000);
+   if (r < 0) {
+     alsa_stream_destroy(stm);
+     return CUBEB_ERROR_INVALID_FORMAT;
+   }
+ 
+-  r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size);
++  r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->period_size);
+   assert(r == 0);
+ 
+-  stm->nfds = snd_pcm_poll_descriptors_count(stm->pcm);
++  stm->nfds = WRAP(snd_pcm_poll_descriptors_count)(stm->pcm);
+   assert(stm->nfds > 0);
+ 
+   stm->saved_fds = calloc(stm->nfds, sizeof(struct pollfd));
+   assert(stm->saved_fds);
+-  r = snd_pcm_poll_descriptors(stm->pcm, stm->saved_fds, stm->nfds);
++  r = WRAP(snd_pcm_poll_descriptors)(stm->pcm, stm->saved_fds, stm->nfds);
+   assert((nfds_t) r == stm->nfds);
+ 
+   r = pthread_cond_init(&stm->cond, NULL);
+@@ -895,7 +1001,7 @@ alsa_stream_destroy(cubeb_stream * stm)
+   pthread_mutex_lock(&stm->mutex);
+   if (stm->pcm) {
+     if (stm->state == DRAINING) {
+-      snd_pcm_drain(stm->pcm);
++      WRAP(snd_pcm_drain)(stm->pcm);
+     }
+     alsa_locked_pcm_close(stm->pcm);
+     stm->pcm = NULL;
+@@ -937,12 +1043,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
+     return CUBEB_ERROR;
+   }
+ 
+-  rv = snd_pcm_hw_params_any(stm->pcm, hw_params);
++  rv = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params);
+   if (rv < 0) {
+     return CUBEB_ERROR;
+   }
+ 
+-  rv = snd_pcm_hw_params_get_channels_max(hw_params, max_channels);
++  rv = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels);
+   if (rv < 0) {
+     return CUBEB_ERROR;
+   }
+@@ -962,34 +1068,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) {
+ 
+   /* get a pcm, disabling resampling, so we get a rate the
+    * hardware/dmix/pulse/etc. supports. */
+-  rv = snd_pcm_open(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
++  rv = WRAP(snd_pcm_open)(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
+   if (rv < 0) {
+     return CUBEB_ERROR;
+   }
+ 
+-  rv = snd_pcm_hw_params_any(pcm, hw_params);
++  rv = WRAP(snd_pcm_hw_params_any)(pcm, hw_params);
+   if (rv < 0) {
+-    snd_pcm_close(pcm);
++    WRAP(snd_pcm_close)(pcm);
+     return CUBEB_ERROR;
+   }
+ 
+-  rv = snd_pcm_hw_params_get_rate(hw_params, rate, &dir);
++  rv = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir);
+   if (rv >= 0) {
+     /* There is a default rate: use it. */
+-    snd_pcm_close(pcm);
++    WRAP(snd_pcm_close)(pcm);
+     return CUBEB_OK;
+   }
+ 
+   /* Use a common rate, alsa may adjust it based on hw/etc. capabilities. */
+   *rate = 44100;
+ 
+-  rv = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL);
++  rv = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL);
+   if (rv < 0) {
+-    snd_pcm_close(pcm);
++    WRAP(snd_pcm_close)(pcm);
+     return CUBEB_ERROR;
+   }
+ 
+-  snd_pcm_close(pcm);
++  WRAP(snd_pcm_close)(pcm);
+ 
+   return CUBEB_OK;
+ }
+@@ -1013,7 +1119,7 @@ alsa_stream_start(cubeb_stream * stm)
+   ctx = stm->context;
+ 
+   pthread_mutex_lock(&stm->mutex);
+-  snd_pcm_pause(stm->pcm, 0);
++  WRAP(snd_pcm_pause)(stm->pcm, 0);
+   gettimeofday(&stm->last_activity, NULL);
+   pthread_mutex_unlock(&stm->mutex);
+ 
+@@ -1047,7 +1153,7 @@ alsa_stream_stop(cubeb_stream * stm)
+   pthread_mutex_unlock(&ctx->mutex);
+ 
+   pthread_mutex_lock(&stm->mutex);
+-  snd_pcm_pause(stm->pcm, 1);
++  WRAP(snd_pcm_pause)(stm->pcm, 1);
+   pthread_mutex_unlock(&stm->mutex);
+ 
+   return CUBEB_OK;
+@@ -1063,8 +1169,8 @@ alsa_stream_get_position(cubeb_stream * stm, uint64_t * position)
+   pthread_mutex_lock(&stm->mutex);
+ 
+   delay = -1;
+-  if (snd_pcm_state(stm->pcm) != SND_PCM_STATE_RUNNING ||
+-      snd_pcm_delay(stm->pcm, &delay) != 0) {
++  if (WRAP(snd_pcm_state)(stm->pcm) != SND_PCM_STATE_RUNNING ||
++      WRAP(snd_pcm_delay)(stm->pcm, &delay) != 0) {
+     *position = stm->last_position;
+     pthread_mutex_unlock(&stm->mutex);
+     return CUBEB_OK;
+@@ -1089,7 +1195,7 @@ alsa_stream_get_latency(cubeb_stream * stm, uint32_t * latency)
+   snd_pcm_sframes_t delay;
+   /* This function returns the delay in frames until a frame written using
+      snd_pcm_writei is sent to the DAC. The DAC delay should be < 1ms anyways. */
+-  if (snd_pcm_delay(stm->pcm, &delay)) {
++  if (WRAP(snd_pcm_delay)(stm->pcm, &delay)) {
+     return CUBEB_ERROR;
+   }
+ 
+diff --git media/libcubeb/src/cubeb_oss.c media/libcubeb/src/cubeb_oss.c
+new file mode 100644
+index 0000000..5e38e27
+--- /dev/null
++++ mozilla/media/libcubeb/src/cubeb_oss.c
+@@ -0,0 +1,399 @@
++/*
++ * Copyright © 2014 Mozilla Foundation
++ *
++ * This program is made available under an ISC-style license.  See the
++ * accompanying file LICENSE for details.
++ */
++#if defined(HAVE_SYS_SOUNDCARD_H)
++#include <sys/soundcard.h>
++#elif defined(HAVE_LINUX_SOUNDCARD_H)
++#include <linux/soundcard.h>
++#else
++#include <soundcard.h>
++#endif
++#include <unistd.h>
++#include <stdlib.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <sys/ioctl.h>
++#include <errno.h>
++#include <pthread.h>
++#include <stdio.h>
++
++#include "cubeb/cubeb.h"
++#include "cubeb-internal.h"
++
++#ifndef CUBEB_OSS_DEFAULT_OUTPUT
++#define CUBEB_OSS_DEFAULT_OUTPUT "/dev/dsp"
++#endif
++
++#define OSS_BUFFER_SIZE 1024
++
++struct cubeb {
++  struct cubeb_ops const * ops;
++};
++
++struct cubeb_stream {
++  cubeb * context;
++
++  cubeb_data_callback data_callback;
++  cubeb_state_callback state_callback;
++  void * user_ptr;
++  float volume;
++  float panning;
++
++  pthread_mutex_t state_mutex;
++  pthread_cond_t state_cond;
++
++  int running;
++  int stopped;
++  int floating;
++
++  /* These two vars are needed to support old versions of OSS */
++  unsigned int position_bytes;
++  unsigned int last_position_bytes;
++
++  uint64_t written_frags; /* The number of fragments written to /dev/dsp */
++  uint64_t missed_frags; /* fragments output with stopped stream */
++
++  cubeb_stream_params params;
++  int fd;

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



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