svn commit: r370991 - in head/www: linux-seamonkey seamonkey seamonkey-i18n seamonkey/files
Beat Gaetzi
beat at FreeBSD.org
Thu Oct 16 10:25:50 UTC 2014
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 at 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 at 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
- at dirrm lib/%%APP_NAME%%/chrome/icons/default
- at dirrm lib/%%APP_NAME%%/chrome/icons
- at dirrm lib/%%APP_NAME%%/chrome
- at dirrm lib/%%APP_NAME%%/components
- at dirrm lib/%%APP_NAME%%/defaults/messenger
- at dirrm lib/%%APP_NAME%%/defaults/pref
- at dirrm lib/%%APP_NAME%%/defaults/profile
- at dirrm lib/%%APP_NAME%%/defaults
- at dirrm lib/%%APP_NAME%%/dictionaries
- at dirrm lib/%%APP_NAME%%/distribution/extensions
- at dirrm lib/%%APP_NAME%%/distribution
- at dirrm lib/%%APP_NAME%%/extensions
- at dirrm lib/%%APP_NAME%%/icons
- at dirrm lib/%%APP_NAME%%/isp
- at dirrm lib/%%APP_NAME%%/searchplugins
- at 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 at seamonkey.mozilla.org/; \
${FIND} -H -s * ! -type d | \
- ${SED} -e "s|^|lib/xpi/langpack-$$lang at seamonkey.mozilla.org/|" >> ${PLISTF} && \
- ${FIND} -d * -type d | \
- ${SED} -e "s|^|@dirrm lib/xpi/langpack-$$lang at seamonkey.mozilla.org/|" >> ${PLISTD}; \
+ ${SED} -e "s|^|lib/xpi/langpack-$$lang at 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 at mozilla.com>
+ Paul Adenot <paul at paul.cx>
+ David Richards <drichards at mozilla.com>
+ Sebastien Alaiwan <sebastien.alaiwan at gmail.com>
++Evgeniy Vodolazskiy <waterlaz at 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 ***
More information about the svn-ports-all
mailing list