summaryrefslogtreecommitdiffstats
path: root/audio/libcanberra
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2008-08-20 13:27:23 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2008-08-20 13:27:23 +0800
commitb6c4aa5a59634ea8e22253e408573c3b158d6478 (patch)
tree1e0762d4dd43ff8c3f61c881f2236bceda9c3870 /audio/libcanberra
parent17ed04416f789b30a1d10dedda54c7ccb8929d32 (diff)
downloadmarcuscom-ports-b6c4aa5a59634ea8e22253e408573c3b158d6478.tar
marcuscom-ports-b6c4aa5a59634ea8e22253e408573c3b158d6478.tar.gz
marcuscom-ports-b6c4aa5a59634ea8e22253e408573c3b158d6478.tar.bz2
marcuscom-ports-b6c4aa5a59634ea8e22253e408573c3b158d6478.tar.lz
marcuscom-ports-b6c4aa5a59634ea8e22253e408573c3b158d6478.tar.xz
marcuscom-ports-b6c4aa5a59634ea8e22253e408573c3b158d6478.tar.zst
marcuscom-ports-b6c4aa5a59634ea8e22253e408573c3b158d6478.zip
Update to 0.7.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@11348 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'audio/libcanberra')
-rw-r--r--audio/libcanberra/Makefile42
-rw-r--r--audio/libcanberra/distinfo3
-rw-r--r--audio/libcanberra/files/patch-Makefile.in11
-rw-r--r--audio/libcanberra/files/patch-config.h.in42
-rw-r--r--audio/libcanberra/files/patch-configure941
-rw-r--r--audio/libcanberra/files/patch-configure.ac140
-rw-r--r--audio/libcanberra/files/patch-src_Makefile.am37
-rw-r--r--audio/libcanberra/files/patch-src_Makefile.in225
-rw-r--r--audio/libcanberra/files/patch-src_driver-order.c12
-rw-r--r--audio/libcanberra/files/patch-src_malloc.h35
-rw-r--r--audio/libcanberra/files/patch-src_oss.c479
-rw-r--r--audio/libcanberra/pkg-descr2
-rw-r--r--audio/libcanberra/pkg-plist46
13 files changed, 2015 insertions, 0 deletions
diff --git a/audio/libcanberra/Makefile b/audio/libcanberra/Makefile
new file mode 100644
index 000000000..d37a44cce
--- /dev/null
+++ b/audio/libcanberra/Makefile
@@ -0,0 +1,42 @@
+# New ports collection makefile for: libcanberra
+# Date created: 05 August 2008
+# Whom: Joe Marcus Clarke <marcus@FreeBSD.org>
+#
+# $FreeBSD: ports/audio/libcanberra/Makefile,v 1.6 2008/08/10 19:24:30 marcus Exp $
+#
+
+PORTNAME= libcanberra
+PORTVERSION= 0.7
+CATEGORIES= audio devel
+MASTER_SITES= http://0pointer.de/lennart/projects/libcanberra/
+
+MAINTAINER= gnome@FreeBSD.org
+COMMENT= Implementation of the Freedesktop sound theme spec
+
+LIB_DEPENDS= vorbisfile.5:${PORTSDIR}/audio/libvorbis
+
+USE_GMAKE= yes
+USE_GNOME= gnomeprefix gnomehack gtk20 ltverhack
+USE_LDCONFIG= yes
+USE_AUTOTOOLS= libtool:15 libltdl:15
+CONFIGURE_ARGS= --disable-lynx
+CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
+ LDFLAGS="-L${LOCALBASE}/lib"
+
+OPTIONS= PULSE "Enable Pulse Audio support" off
+
+.include <bsd.port.pre.mk>
+
+.if !defined(WITHOUT_PULSE)
+LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio
+PLIST_SUB+= PULSE="" OSS="@comment "
+CONFIGURE_ARGS+=--disable-oss
+.else
+CONFIGURE_ARGS+=--disable-pulse
+PLIST_SUB+= PULSE="@comment " OSS=""
+.endif
+
+post-patch:
+ @${FIND} ${WRKSRC} -type f | ${XARGS} ${TOUCH}
+
+.include <bsd.port.post.mk>
diff --git a/audio/libcanberra/distinfo b/audio/libcanberra/distinfo
new file mode 100644
index 000000000..513723273
--- /dev/null
+++ b/audio/libcanberra/distinfo
@@ -0,0 +1,3 @@
+MD5 (libcanberra-0.7.tar.gz) = ad2cde7bc6ec1080559cac3b86ba4036
+SHA256 (libcanberra-0.7.tar.gz) = 11e48edd651f9c9c24fd20ecba3367f82580f5a7410915cbd02c8158aadedc8b
+SIZE (libcanberra-0.7.tar.gz) = 806328
diff --git a/audio/libcanberra/files/patch-Makefile.in b/audio/libcanberra/files/patch-Makefile.in
new file mode 100644
index 000000000..4aadbe5d2
--- /dev/null
+++ b/audio/libcanberra/files/patch-Makefile.in
@@ -0,0 +1,11 @@
+--- Makefile.in.orig 2008-08-20 01:16:04.000000000 -0400
++++ Makefile.in 2008-08-20 01:16:25.000000000 -0400
+@@ -253,7 +253,7 @@ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ dist_doc_DATA = README
+ EXTRA_DIST = bootstrap.sh autogen.sh LGPL
+-SUBDIRS = src gtkdoc libltdl doc
++SUBDIRS = src gtkdoc doc
+ MAINTAINERCLEANFILES = README
+ noinst_DATA = README
+ pkgconfigdir = $(prefix)/libdata/pkgconfig
diff --git a/audio/libcanberra/files/patch-config.h.in b/audio/libcanberra/files/patch-config.h.in
new file mode 100644
index 000000000..d1d6b10e8
--- /dev/null
+++ b/audio/libcanberra/files/patch-config.h.in
@@ -0,0 +1,42 @@
+--- config.h.in.orig 2008-08-09 15:51:54.000000000 -0400
++++ config.h.in 2008-08-09 15:51:57.000000000 -0400
+@@ -30,6 +30,9 @@
+ /* Define to 1 if you have the `lstat' function. */
+ #undef HAVE_LSTAT
+
++/* Define to 1 if you have the <machine/soundcard.h> header file. */
++#undef HAVE_MACHINE_SOUNDCARD_H
++
+ /* Define to 1 if you have the <memory.h> header file. */
+ #undef HAVE_MEMORY_H
+
+@@ -39,6 +42,9 @@
+ /* Have NULL output? */
+ #undef HAVE_NULL
+
++/* Have OSS? */
++#undef HAVE_OSS
++
+ /* Define to 1 if you have the `posix_memalign' function. */
+ #undef HAVE_POSIX_MEMALIGN
+
+@@ -57,6 +63,9 @@
+ /* Define to 1 if you have the `sleep' function. */
+ #undef HAVE_SLEEP
+
++/* Define to 1 if you have the <soundcard.h> header file. */
++#undef HAVE_SOUNDCARD_H
++
+ /* Define to 1 if the system has the type `ssize_t'. */
+ #undef HAVE_SSIZE_T
+
+@@ -93,6 +102,9 @@
+ /* Define to 1 if you have the <sys/socket.h> header file. */
+ #undef HAVE_SYS_SOCKET_H
+
++/* Define to 1 if you have the <sys/soundcard.h> header file. */
++#undef HAVE_SYS_SOUNDCARD_H
++
+ /* Define to 1 if you have the <sys/stat.h> header file. */
+ #undef HAVE_SYS_STAT_H
+
diff --git a/audio/libcanberra/files/patch-configure b/audio/libcanberra/files/patch-configure
new file mode 100644
index 000000000..f9aa33c2c
--- /dev/null
+++ b/audio/libcanberra/files/patch-configure
@@ -0,0 +1,941 @@
+--- configure.orig 2008-08-20 01:16:41.000000000 -0400
++++ configure 2008-08-20 01:17:33.000000000 -0400
+@@ -791,7 +791,6 @@ ac_includes_default="\
+ # include <unistd.h>
+ #endif"
+
+-enable_option_checking=no
+ ac_subst_vars='SHELL
+ PATH_SEPARATOR
+ PACKAGE_NAME
+@@ -909,7 +908,6 @@ ac_ct_F77
+ LIBTOOL
+ LTDLINCL
+ LIBLTDL
+-subdirs
+ OS_IS_WIN32_TRUE
+ OS_IS_WIN32_FALSE
+ USE_VERSION_SCRIPT_TRUE
+@@ -940,15 +938,19 @@ VORBIS_LIBS
+ HAVE_DSO
+ HAVE_PULSE
+ HAVE_ALSA
++HAVE_OSS
+ HAVE_NULL
+ BUILTIN_DSO
+ BUILTIN_PULSE
+ BUILTIN_ALSA
++BUILTIN_OSS
+ BUILTIN_NULL
+ HAVE_PULSE_TRUE
+ HAVE_PULSE_FALSE
+ HAVE_ALSA_TRUE
+ HAVE_ALSA_FALSE
++HAVE_OSS_TRUE
++HAVE_OSS_FALSE
+ HAVE_NULL_TRUE
+ HAVE_NULL_FALSE
+ BUILTIN_DSO_TRUE
+@@ -957,6 +959,8 @@ BUILTIN_PULSE_TRUE
+ BUILTIN_PULSE_FALSE
+ BUILTIN_ALSA_TRUE
+ BUILTIN_ALSA_FALSE
++BUILTIN_OSS_TRUE
++BUILTIN_OSS_FALSE
+ BUILTIN_NULL_TRUE
+ BUILTIN_NULL_FALSE
+ HTML_DIR
+@@ -983,6 +987,7 @@ enable_largefile
+ enable_rpath
+ with_libiconv_prefix
+ enable_alsa
++enable_oss
+ enable_pulse
+ enable_null
+ enable_gtk
+@@ -1015,7 +1020,7 @@ GTK_CFLAGS
+ GTK_LIBS
+ VORBIS_CFLAGS
+ VORBIS_LIBS'
+-ac_subdirs_all='libltdl'
++
+
+ # Initialize some variables set by options.
+ ac_init_help=
+@@ -1656,6 +1661,7 @@ Optional Features:
+ --disable-largefile omit support for large files
+ --disable-rpath do not hardcode runtime library paths
+ --disable-alsa Disable optional ALSA support
++ --disable-oss Disable optional OSS support
+ --disable-pulse Disable optional PulseAudio support
+ --disable-null Disable optional null output
+ --disable-gtk Disable optional GTK+ support
+@@ -6320,7 +6326,7 @@ ia64-*-hpux*)
+ ;;
+ *-*-irix6*)
+ # Find out which ABI we are using.
+- echo '#line 6323 "configure"' > conftest.$ac_ext
++ echo '#line 6329 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+@@ -8749,11 +8755,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:8752: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:8758: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:8756: \$? = $ac_status" >&5
++ echo "$as_me:8762: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -9039,11 +9045,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:9042: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:9048: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:9046: \$? = $ac_status" >&5
++ echo "$as_me:9052: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -9143,11 +9149,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:9146: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:9152: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+- echo "$as_me:9150: \$? = $ac_status" >&5
++ echo "$as_me:9156: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+@@ -11545,7 +11551,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+-#line 11548 "configure"
++#line 11554 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11645,7 +11651,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+-#line 11648 "configure"
++#line 11654 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -14054,11 +14060,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:14057: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:14063: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:14061: \$? = $ac_status" >&5
++ echo "$as_me:14067: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -14158,11 +14164,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:14161: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:14167: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+- echo "$as_me:14165: \$? = $ac_status" >&5
++ echo "$as_me:14171: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+@@ -15743,11 +15749,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:15746: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:15752: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:15750: \$? = $ac_status" >&5
++ echo "$as_me:15756: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -15847,11 +15853,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:15850: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:15856: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+- echo "$as_me:15854: \$? = $ac_status" >&5
++ echo "$as_me:15860: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+@@ -18064,11 +18070,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:18067: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:18073: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:18071: \$? = $ac_status" >&5
++ echo "$as_me:18077: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -18354,11 +18360,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:18357: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:18363: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:18361: \$? = $ac_status" >&5
++ echo "$as_me:18367: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -18458,11 +18464,11 @@ else
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:18461: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:18467: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+- echo "$as_me:18465: \$? = $ac_status" >&5
++ echo "$as_me:18471: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+@@ -21148,10 +21154,6 @@ LIBTOOL='$(SHELL) /space/marcus/ports/li
+
+
+
+-
+-subdirs="$subdirs libltdl"
+-
+-
+ #### Determine build environment ####
+
+ os_is_win32=0
+@@ -21941,6 +21943,46 @@ if test "${ac_cv_c_bigendian+set}" = set
+ $as_echo_n "(cached) " >&6
+ else
+ ac_cv_c_bigendian=unknown
++ # See if __BIG_ENDIAN__ or __LITTLE_ENDIAN__ is defined.
++ cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++#if ! (defined __BIG_ENDIAN__ || defined __LITTLE_ENDIAN__)
++ neither is defined;
++ #endif
++ typedef int dummy;
++
++_ACEOF
++rm -f conftest.$ac_objext
++if { (ac_try="$ac_compile"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ ac_cv_c_bigendian=universal
++else
++ $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat >conftest.$ac_ext <<_ACEOF
+@@ -23739,7 +23781,7 @@ fi
+
+ # We must check for the threads library under a number of different
+ # names; the ordering is very important because some systems
+-# (e.g. DEC) have both -pthread and -pthreads, where one of the
++# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+ # libraries is broken (non-POSIX).
+
+ # Create a list of thread flags to try. Items starting with a "-" are
+@@ -23752,7 +23794,7 @@ acx_pthread_flags="pthreads none -Kthrea
+ # The ordering *is* (sometimes) important. Some notes on the
+ # individual items follow:
+
+-# pthreads: AIX (must check this before -pthread)
++# pthreads: AIX (must check this before -lpthread)
+ # none: in case threads are in libc; should be tried before -Kthread and
+ # other compiler flags to prevent continual compiler warnings
+ # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+@@ -23775,10 +23817,10 @@ case "${host_cpu}-${host_os}" in
+ # On Solaris (at least, for some versions), libc contains stubbed
+ # (non-functional) versions of the pthreads routines, so link-based
+ # tests will erroneously succeed. (We need to link with -pthreads/-mt/
+- # -pthread.) (The stubs are missing pthread_cleanup_push, or rather
++ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
+ # a function called by this macro, so we could check for that, but
+ # who knows whether they'll stub that too in a future libc.) So,
+- # we'll just look for -pthreads and -pthread first:
++ # we'll just look for -pthreads and -lpthread first:
+
+ acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"
+ ;;
+@@ -23858,9 +23900,9 @@ $as_echo_n "checking for the pthreads li
+ # Check for various functions. We must include pthread.h,
+ # since some functions may be macros. (On the Sequent, we
+ # need a special flag -Kthread to make this header compile.)
+- # We check for pthread_join because it is in -pthread on IRIX
++ # We check for pthread_join because it is in -lpthread on IRIX
+ # while pthread_create is in libc. We check for pthread_attr_init
+- # due to DEC craziness with -pthreads. We check for
++ # due to DEC craziness with -lpthreads. We check for
+ # pthread_cleanup_push because it is one of the few pthread
+ # functions on Solaris that doesn't have a non-functional libc stub.
+ # We try pthread_create on general principles.
+@@ -24165,12 +24207,12 @@ $as_echo "no" >&6; }
+
+ #
+ # Linux gcc on some architectures such as mips/mipsel forgets
+- # about -pthread
++ # about -lpthread
+ #
+ if test x"$ok" = xno; then
+- { $as_echo "$as_me:$LINENO: checking whether -pthread fixes that" >&5
+-$as_echo_n "checking whether -pthread fixes that... " >&6; }
+- LIBS="-pthread $PTHREAD_LIBS $save_LIBS"
++ { $as_echo "$as_me:$LINENO: checking whether -lpthread fixes that" >&5
++$as_echo_n "checking whether -lpthread fixes that... " >&6; }
++ LIBS="-lpthread $PTHREAD_LIBS $save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -24224,7 +24266,7 @@ rm -f core conftest.err conftest.$ac_obj
+ if test "x$ok" = xyes; then
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+- PTHREAD_LIBS="-pthread $PTHREAD_LIBS"
++ PTHREAD_LIBS="-lpthread $PTHREAD_LIBS"
+ else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+@@ -25984,6 +26026,197 @@ fi
+
+
+
++### OSS support (optional) ###
++# Check whether --enable-oss was given.
++if test "${enable_oss+set}" = set; then
++ enableval=$enable_oss;
++ case "${enableval}" in
++ yes) alsa=yes ;;
++ no) alsa=no ;;
++ *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-oss" >&5
++$as_echo "$as_me: error: bad value ${enableval} for --disable-oss" >&2;}
++ { (exit 1); exit 1; }; } ;;
++ esac
++
++else
++ oss=auto
++fi
++
++
++if test "x${oss}" != xno ; then
++
++
++
++for ac_header in soundcard.h sys/soundcard.h machine/soundcard.h
++do
++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
++ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
++$as_echo_n "checking for $ac_header... " >&6; }
++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
++ $as_echo_n "(cached) " >&6
++fi
++ac_res=`eval 'as_val=${'$as_ac_Header'}
++ $as_echo "$as_val"'`
++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
++$as_echo "$ac_res" >&6; }
++else
++ # Is the header compilable?
++{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
++$as_echo_n "checking $ac_header usability... " >&6; }
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++$ac_includes_default
++#include <$ac_header>
++_ACEOF
++rm -f conftest.$ac_objext
++if { (ac_try="$ac_compile"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ ac_header_compiler=yes
++else
++ $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_header_compiler=no
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
++$as_echo "$ac_header_compiler" >&6; }
++
++# Is the header present?
++{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
++$as_echo_n "checking $ac_header presence... " >&6; }
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++#include <$ac_header>
++_ACEOF
++if { (ac_try="$ac_cpp conftest.$ac_ext"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null && {
++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ }; then
++ ac_header_preproc=yes
++else
++ $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_header_preproc=no
++fi
++
++rm -f conftest.err conftest.$ac_ext
++{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
++$as_echo "$ac_header_preproc" >&6; }
++
++# So? What about this header?
++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
++ yes:no: )
++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
++$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
++$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
++ ac_header_preproc=yes
++ ;;
++ no:yes:* )
++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
++$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
++$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
++$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
++$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
++$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
++$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
++ ( cat <<\_ASBOX
++## --------------------------------------------------- ##
++## Report this to mzyvopnaoreen (at) 0pointer (dot) de ##
++## --------------------------------------------------- ##
++_ASBOX
++ ) | sed "s/^/$as_me: WARNING: /" >&2
++ ;;
++esac
++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
++$as_echo_n "checking for $ac_header... " >&6; }
++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
++ $as_echo_n "(cached) " >&6
++else
++ eval "$as_ac_Header=\$ac_header_preproc"
++fi
++ac_res=`eval 'as_val=${'$as_ac_Header'}
++ $as_echo "$as_val"'`
++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
++$as_echo "$ac_res" >&6; }
++
++fi
++if test `eval 'as_val=${'$as_ac_Header'}
++ $as_echo "$as_val"'` = yes; then
++ cat >>confdefs.h <<_ACEOF
++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
++_ACEOF
++
++fi
++
++done
++
++ if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \
++ test "${ac_cv_header_soundcard_h}" = "yes" || \
++ test "${ac_cv_header_machine_soundcard_h}" = "yes"; then
++ HAVE_OSS=1
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_OSS 1
++_ACEOF
++
++ else
++ HAVE_OSS=0
++ if test "x$oss" = xyes ; then
++ { { $as_echo "$as_me:$LINENO: error: *** OSS not found ***" >&5
++$as_echo "$as_me: error: *** OSS not found ***" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++ fi
++else
++ HAVE_OSS=0
++fi
++
+ ### PulseAudio (optional) ####
+
+ # Check whether --enable-pulse was given.
+@@ -26465,6 +26698,7 @@ HAVE_DSO=0
+ BUILTIN_DSO=0
+ BUILTIN_PULSE=0
+ BUILTIN_ALSA=0
++BUILTIN_OSS=0
+ BUILTIN_NULL=0
+
+ case "x$with_builtin" in
+@@ -26477,6 +26711,7 @@ $as_echo "$as_me: error: *** PulseAudio
+
+ BUILTIN_PULSE=1
+ HAVE_ALSA=0
++ HAVE_OSS=0
+ HAVE_NULL=0
+ ;;
+
+@@ -26488,10 +26723,24 @@ $as_echo "$as_me: error: *** ALSA select
+ fi
+
+ BUILTIN_ALSA=1
++ HAVE_OSS=0
+ HAVE_PULSE=0
+ HAVE_NULL=0
+ ;;
+
++ xoss)
++ if test "x$HAV_OSS" != x1 ; then
++ { { $as_echo "$as_me:$LINENO: error: *** OSS selected for builtin driver, but not enabled. ***" >&5
++$as_echo "$as_me: error: *** OSS selected for builtin driver, but not enabled. ***" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++
++ BUILTIN_OSS=1
++ HAVE_ALSA=0
++ HAVE_PULSE=0
++ HAVE_NULL=0
++ ;;
++
+ xnull)
+ if test "x$HAVE_NULL" != x1 ; then
+ { { $as_echo "$as_me:$LINENO: error: *** Null output selected for builtin driver, but not enabled. ***" >&5
+@@ -26502,6 +26751,7 @@ $as_echo "$as_me: error: *** Null output
+ BUILTIN_NULL=1
+ HAVE_PULSE=0
+ HAVE_ALSA=0
++ HAVE_OSS=0
+ ;;
+
+ xdso)
+@@ -26520,7 +26770,7 @@ $as_echo "$as_me: error: *** Unknown dri
+ { (exit 1); exit 1; }; }
+ esac
+
+-if test "x$HAVE_PULSE" != x1 -a "x$HAVE_ALSA" != x1 -a "x$HAVE_NULL" != x1 ; then
++if test "x$HAVE_PULSE" != x1 -a "x$HAVE_ALSA" != x1 -a "x$HAVE_OSS" != x1 -a "x$HAVE_NULL" != x1 ; then
+ { { $as_echo "$as_me:$LINENO: error: *** No backend enabled. ***" >&5
+ $as_echo "$as_me: error: *** No backend enabled. ***" >&2;}
+ { (exit 1); exit 1; }; }
+@@ -26534,6 +26784,8 @@ fi
+
+
+
++
++
+ if test "x$HAVE_PULSE" = x1; then
+ HAVE_PULSE_TRUE=
+ HAVE_PULSE_FALSE='#'
+@@ -26550,6 +26802,14 @@ else
+ HAVE_ALSA_FALSE=
+ fi
+
++ if test "x$HAVE_OSS" = x1; then
++ HAVE_OSS_TRUE=
++ HAVE_OSS_FALSE='#'
++else
++ HAVE_OSS_TRUE='#'
++ HAVE_OSS_FALSE=
++fi
++
+ if test "x$HAVE_NULL" = x1; then
+ HAVE_NULL_TRUE=
+ HAVE_NULL_FALSE='#'
+@@ -26582,6 +26842,14 @@ else
+ BUILTIN_ALSA_FALSE=
+ fi
+
++ if test "x$BUILTIN_OSS" = x1; then
++ BUILTIN_OSS_TRUE=
++ BUILTIN_OSS_FALSE='#'
++else
++ BUILTIN_OSS_TRUE='#'
++ BUILTIN_OSS_FALSE=
++fi
++
+ if test "x$BUILTIN_NULL" = x1; then
+ BUILTIN_NULL_TRUE=
+ BUILTIN_NULL_FALSE='#'
+@@ -26875,6 +27143,13 @@ $as_echo "$as_me: error: conditional \"H
+ Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
++if test -z "${HAVE_OSS_TRUE}" && test -z "${HAVE_OSS_FALSE}"; then
++ { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_OSS\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++$as_echo "$as_me: error: conditional \"HAVE_OSS\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
+ if test -z "${HAVE_NULL_TRUE}" && test -z "${HAVE_NULL_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_NULL\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+@@ -26903,6 +27178,13 @@ $as_echo "$as_me: error: conditional \"B
+ Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
++if test -z "${BUILTIN_OSS_TRUE}" && test -z "${BUILTIN_OSS_FALSE}"; then
++ { { $as_echo "$as_me:$LINENO: error: conditional \"BUILTIN_OSS\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++$as_echo "$as_me: error: conditional \"BUILTIN_OSS\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
+ if test -z "${BUILTIN_NULL_TRUE}" && test -z "${BUILTIN_NULL_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"BUILTIN_NULL\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+@@ -27262,9 +27544,9 @@ _ACEOF
+
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ # Files that config.status was made for.
+-config_files="`echo $ac_config_files`"
+-config_headers="`echo $ac_config_headers`"
+-config_commands="`echo $ac_config_commands`"
++config_files="$ac_config_files"
++config_headers="$ac_config_headers"
++config_commands="$ac_config_commands"
+
+ _ACEOF
+
+@@ -27717,9 +27999,9 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+- prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
++ prefix = substr(line, 1, index(line, defundef) - 1)
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+@@ -27727,7 +28009,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+- print "/*", prefix defundef, macro, "*/"
++ print "/*", line, "*/"
+ next
+ }
+ }
+@@ -28244,193 +28526,6 @@ if test "$no_create" != yes; then
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+ fi
+-
+-#
+-# CONFIG_SUBDIRS section.
+-#
+-if test "$no_recursion" != yes; then
+-
+- # Remove --cache-file, --srcdir, and --disable-option-checking arguments
+- # so they do not pile up.
+- ac_sub_configure_args=
+- ac_prev=
+- eval "set x $ac_configure_args"
+- shift
+- for ac_arg
+- do
+- if test -n "$ac_prev"; then
+- ac_prev=
+- continue
+- fi
+- case $ac_arg in
+- -cache-file | --cache-file | --cache-fil | --cache-fi \
+- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+- ac_prev=cache_file ;;
+- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
+- | --c=*)
+- ;;
+- --config-cache | -C)
+- ;;
+- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+- ac_prev=srcdir ;;
+- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+- ;;
+- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+- ac_prev=prefix ;;
+- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+- ;;
+- --disable-option-checking)
+- ;;
+- *)
+- case $ac_arg in
+- *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+- esac
+- ac_sub_configure_args="$ac_sub_configure_args '$ac_arg'" ;;
+- esac
+- done
+-
+- # Always prepend --prefix to ensure using the same prefix
+- # in subdir configurations.
+- ac_arg="--prefix=$prefix"
+- case $ac_arg in
+- *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+- esac
+- ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
+-
+- # Pass --silent
+- if test "$silent" = yes; then
+- ac_sub_configure_args="--silent $ac_sub_configure_args"
+- fi
+-
+- # Always prepend --disable-option-checking to silence warnings, since
+- # different subdirs can have different --enable and --with options.
+- ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
+-
+- ac_popdir=`pwd`
+- for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
+-
+- # Do not complain, so a configure script can configure whichever
+- # parts of a large source tree are present.
+- test -d "$srcdir/$ac_dir" || continue
+-
+- ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
+- $as_echo "$as_me:$LINENO: $ac_msg" >&5
+- $as_echo "$ac_msg" >&6
+- { as_dir="$ac_dir"
+- case $as_dir in #(
+- -*) as_dir=./$as_dir;;
+- esac
+- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+- as_dirs=
+- while :; do
+- case $as_dir in #(
+- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+- *) as_qdir=$as_dir;;
+- esac
+- as_dirs="'$as_qdir' $as_dirs"
+- as_dir=`$as_dirname -- "$as_dir" ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+- X"$as_dir" : 'X\(//\)[^/]' \| \
+- X"$as_dir" : 'X\(//\)$' \| \
+- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+-$as_echo X"$as_dir" |
+- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+- s//\1/
+- q
+- }
+- /^X\(\/\/\)[^/].*/{
+- s//\1/
+- q
+- }
+- /^X\(\/\/\)$/{
+- s//\1/
+- q
+- }
+- /^X\(\/\).*/{
+- s//\1/
+- q
+- }
+- s/.*/./; q'`
+- test -d "$as_dir" && break
+- done
+- test -z "$as_dirs" || eval "mkdir $as_dirs"
+- } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+- { (exit 1); exit 1; }; }; }
+- ac_builddir=.
+-
+-case "$ac_dir" in
+-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+-*)
+- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+- # A ".." for each directory in $ac_dir_suffix.
+- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+- case $ac_top_builddir_sub in
+- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+- esac ;;
+-esac
+-ac_abs_top_builddir=$ac_pwd
+-ac_abs_builddir=$ac_pwd$ac_dir_suffix
+-# for backward compatibility:
+-ac_top_builddir=$ac_top_build_prefix
+-
+-case $srcdir in
+- .) # We are building in place.
+- ac_srcdir=.
+- ac_top_srcdir=$ac_top_builddir_sub
+- ac_abs_top_srcdir=$ac_pwd ;;
+- [\\/]* | ?:[\\/]* ) # Absolute name.
+- ac_srcdir=$srcdir$ac_dir_suffix;
+- ac_top_srcdir=$srcdir
+- ac_abs_top_srcdir=$srcdir ;;
+- *) # Relative name.
+- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+- ac_top_srcdir=$ac_top_build_prefix$srcdir
+- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+-esac
+-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+-
+-
+- cd "$ac_dir"
+-
+- # Check for guested configure; otherwise get Cygnus style configure.
+- if test -f "$ac_srcdir/configure.gnu"; then
+- ac_sub_configure=$ac_srcdir/configure.gnu
+- elif test -f "$ac_srcdir/configure"; then
+- ac_sub_configure=$ac_srcdir/configure
+- elif test -f "$ac_srcdir/configure.in"; then
+- # This should be Cygnus configure.
+- ac_sub_configure=$ac_aux_dir/configure
+- else
+- { $as_echo "$as_me:$LINENO: WARNING: no configuration information is in $ac_dir" >&5
+-$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
+- ac_sub_configure=
+- fi
+-
+- # The recursion is here.
+- if test -n "$ac_sub_configure"; then
+- # Make the cache file name correct relative to the subdirectory.
+- case $cache_file in
+- [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
+- *) # Relative name.
+- ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
+- esac
+-
+- { $as_echo "$as_me:$LINENO: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
+-$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
+- # The eval makes quoting arguments work.
+- eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
+- --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
+- { { $as_echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5
+-$as_echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;}
+- { (exit 1); exit 1; }; }
+- fi
+-
+- cd "$ac_popdir"
+- done
+-fi
+ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:$LINENO: WARNING: Unrecognized options: $ac_unrecognized_opts" >&5
+ $as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2;}
+@@ -28461,6 +28556,15 @@ if test "x$BUILTIN_ALSA" = "x1" ; then
+ ENABLE_BUILTIN_ALSA=yes
+ fi
+
++ENABLE_OSS=no
++if test "x$HAVE_OSS" = "x1" ; then
++ ENABLE_OSS=yes
++fi
++ENABLE_BUILTIN_OSS=no
++if test "x$BUILTIN_OSS" = "x1" ; then
++ ENABLE_BUILTIN_OSS=yes
++fi
++
+ ENABLE_NULL=no
+ if test "x$HAVE_NULL" = "x1" ; then
+ ENABLE_NULL=yes
+@@ -28490,6 +28594,8 @@ echo "
+ Builtin PulseAudio: ${ENABLE_BUILTIN_PULSE}
+ Enable ALSA: ${ENABLE_ALSA}
+ Builtin ALSA: ${ENABLE_BUILTIN_ALSA}
++ Enable OSS: ${ENABLE_OSS}
++ Builtin OSS: ${ENABLE_BUILTIN_OSS}
+ Enable Null Output: ${ENABLE_NULL}
+ Builtin Null Output: ${ENABLE_BUILTIN_NULL}
+ Enable GTK+: ${ENABLE_GTK}
diff --git a/audio/libcanberra/files/patch-configure.ac b/audio/libcanberra/files/patch-configure.ac
new file mode 100644
index 000000000..324d80d3b
--- /dev/null
+++ b/audio/libcanberra/files/patch-configure.ac
@@ -0,0 +1,140 @@
+--- configure.ac.orig 2008-08-09 15:27:28.000000000 -0400
++++ configure.ac 2008-08-09 15:27:59.000000000 -0400
+@@ -219,6 +219,35 @@ fi
+ AC_SUBST(ALSA_CFLAGS)
+ AC_SUBST(ALSA_LIBS)
+
++### OSS support (optional) ###
++AC_ARG_ENABLE([oss],
++ AC_HELP_STRING([--disable-oss], [Disable optional OSS support]),
++ [
++ case "${enableval}" in
++ yes) alsa=yes ;;
++ no) alsa=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;;
++ esac
++ ],
++ [oss=auto])
++
++if test "x${oss}" != xno ; then
++ AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h)
++ if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \
++ test "${ac_cv_header_soundcard_h}" = "yes" || \
++ test "${ac_cv_header_machine_soundcard_h}" = "yes"; then
++ HAVE_OSS=1
++ AC_DEFINE([HAVE_OSS], 1, [Have OSS?])
++ else
++ HAVE_OSS=0
++ if test "x$oss" = xyes ; then
++ AC_MSG_ERROR([*** OSS not found ***])
++ fi
++ fi
++else
++ HAVE_OSS=0
++fi
++
+ ### PulseAudio (optional) ####
+
+ AC_ARG_ENABLE([pulse],
+@@ -333,6 +362,7 @@ HAVE_DSO=0
+ BUILTIN_DSO=0
+ BUILTIN_PULSE=0
+ BUILTIN_ALSA=0
++BUILTIN_OSS=0
+ BUILTIN_NULL=0
+
+ case "x$with_builtin" in
+@@ -343,6 +373,7 @@ case "x$with_builtin" in
+
+ BUILTIN_PULSE=1
+ HAVE_ALSA=0
++ HAVE_OSS=0
+ HAVE_NULL=0
+ ;;
+
+@@ -352,10 +383,22 @@ case "x$with_builtin" in
+ fi
+
+ BUILTIN_ALSA=1
++ HAVE_OSS=0
+ HAVE_PULSE=0
+ HAVE_NULL=0
+ ;;
+
++ xoss)
++ if test "x$HAV_OSS" != x1 ; then
++ AC_MSG_ERROR([*** OSS selected for builtin driver, but not enabled. ***])
++ fi
++
++ BUILTIN_OSS=1
++ HAVE_ALSA=0
++ HAVE_PULSE=0
++ HAVE_NULL=0
++ ;;
++
+ xnull)
+ if test "x$HAVE_NULL" != x1 ; then
+ AC_MSG_ERROR([*** Null output selected for builtin driver, but not enabled. ***])
+@@ -364,6 +407,7 @@ case "x$with_builtin" in
+ BUILTIN_NULL=1
+ HAVE_PULSE=0
+ HAVE_ALSA=0
++ HAVE_OSS=0
+ ;;
+
+ xdso)
+@@ -376,24 +420,28 @@ case "x$with_builtin" in
+ AC_MSG_ERROR([*** Unknown driver $with_builtin selected for builtin ***])
+ esac
+
+-if test "x$HAVE_PULSE" != x1 -a "x$HAVE_ALSA" != x1 -a "x$HAVE_NULL" != x1 ; then
++if test "x$HAVE_PULSE" != x1 -a "x$HAVE_ALSA" != x1 -a "x$HAVE_OSS" != x1 -a "x$HAVE_NULL" != x1 ; then
+ AC_MSG_ERROR([*** No backend enabled. ***])
+ fi
+
+ AC_SUBST(HAVE_DSO)
+ AC_SUBST(HAVE_PULSE)
+ AC_SUBST(HAVE_ALSA)
++AC_SUBST(HAVE_OSS)
+ AC_SUBST(HAVE_NULL)
+ AC_SUBST(BUILTIN_DSO)
+ AC_SUBST(BUILTIN_PULSE)
+ AC_SUBST(BUILTIN_ALSA)
++AC_SUBST(BUILTIN_OSS)
+ AC_SUBST(BUILTIN_NULL)
+ AM_CONDITIONAL([HAVE_PULSE], [test "x$HAVE_PULSE" = x1])
+ AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
++AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1])
+ AM_CONDITIONAL([HAVE_NULL], [test "x$HAVE_NULL" = x1])
+ AM_CONDITIONAL([BUILTIN_DSO], [test "x$BUILTIN_DSO" = x1])
+ AM_CONDITIONAL([BUILTIN_PULSE], [test "x$BUILTIN_PULSE" = x1])
+ AM_CONDITIONAL([BUILTIN_ALSA], [test "x$BUILTIN_ALSA" = x1])
++AM_CONDITIONAL([BUILTIN_OSS], [test "x$BUILTIN_OSS" = x1])
+ AM_CONDITIONAL([BUILTIN_NULL], [test "x$BUILTIN_NULL" = x1])
+
+ GTK_DOC_CHECK(1.9)
+@@ -435,6 +483,15 @@ if test "x$BUILTIN_ALSA" = "x1" ; then
+ ENABLE_BUILTIN_ALSA=yes
+ fi
+
++ENABLE_OSS=no
++if test "x$HAVE_OSS" = "x1" ; then
++ ENABLE_OSS=yes
++fi
++ENABLE_BUILTIN_OSS=no
++if test "x$BUILTIN_OSS" = "x1" ; then
++ ENABLE_BUILTIN_OSS=yes
++fi
++
+ ENABLE_NULL=no
+ if test "x$HAVE_NULL" = "x1" ; then
+ ENABLE_NULL=yes
+@@ -464,6 +521,8 @@ echo "
+ Builtin PulseAudio: ${ENABLE_BUILTIN_PULSE}
+ Enable ALSA: ${ENABLE_ALSA}
+ Builtin ALSA: ${ENABLE_BUILTIN_ALSA}
++ Enable OSS: ${ENABLE_OSS}
++ Builtin OSS: ${ENABLE_BUILTIN_OSS}
+ Enable Null Output: ${ENABLE_NULL}
+ Builtin Null Output: ${ENABLE_BUILTIN_NULL}
+ Enable GTK+: ${ENABLE_GTK}
diff --git a/audio/libcanberra/files/patch-src_Makefile.am b/audio/libcanberra/files/patch-src_Makefile.am
new file mode 100644
index 000000000..444a825f4
--- /dev/null
+++ b/audio/libcanberra/files/patch-src_Makefile.am
@@ -0,0 +1,37 @@
+--- src/Makefile.am.orig 2008-08-09 15:27:42.000000000 -0400
++++ src/Makefile.am 2008-08-09 15:27:55.000000000 -0400
+@@ -164,6 +164,34 @@ libcanberra_alsa_la_LDFLAGS = \
+ endif
+ endif
+
++if HAVE_OSS
++if BUILTIN_OSS
++
++libcanberra_la_SOURCES += \
++ oss.c
++
++else
++
++plugin_LTLIBRARIES += \
++ libcanberra-oss.la
++
++libcanberra_oss_la_SOURCES = \
++ oss.c
++libcanberra_oss_la_CFLAGS = \
++ -Ddriver_open=oss_driver_open \
++ -Ddriver_destroy=oss_driver_destroy \
++ -Ddriver_change_device=oss_driver_change_device \
++ -Ddriver_change_props=oss_driver_change_props \
++ -Ddriver_play=oss_driver_play \
++ -Ddriver_cancel=oss_driver_cancel \
++ -Ddriver_cache=oss_driver_cache
++libcanberra_oss_la_LIBADD = \
++ libcanberra.la
++libcanberra_oss_la_LDFLAGS = \
++ -avoid-version -module -export-dynamic
++endif
++endif
++
+ if HAVE_NULL
+ if BUILTIN_NULL
+
diff --git a/audio/libcanberra/files/patch-src_Makefile.in b/audio/libcanberra/files/patch-src_Makefile.in
new file mode 100644
index 000000000..e2991e35c
--- /dev/null
+++ b/audio/libcanberra/files/patch-src_Makefile.in
@@ -0,0 +1,225 @@
+--- src/Makefile.in.orig 2008-08-20 01:18:29.000000000 -0400
++++ src/Makefile.in 2008-08-20 01:18:55.000000000 -0400
+@@ -93,20 +93,26 @@ noinst_PROGRAMS = test-canberra$(EXEEXT)
+ @BUILTIN_ALSA_FALSE@@HAVE_ALSA_TRUE@am__append_13 = \
+ @BUILTIN_ALSA_FALSE@@HAVE_ALSA_TRUE@ libcanberra-alsa.la
+
+-@BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@am__append_14 = \
++@BUILTIN_OSS_TRUE@@HAVE_OSS_TRUE@am__append_14 = \
++@BUILTIN_OSS_TRUE@@HAVE_OSS_TRUE@ oss.c
++
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@am__append_15 = \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ libcanberra-oss.la
++
++@BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@am__append_16 = \
+ @BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@ null.c
+
+-@BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@am__append_15 = \
++@BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@am__append_17 = \
+ @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@ libcanberra-null.la
+
+-@HAVE_GTK_TRUE@am__append_16 = \
++@HAVE_GTK_TRUE@am__append_18 = \
+ @HAVE_GTK_TRUE@ libcanberra-gtk.la
+
+-@HAVE_GTK_TRUE@am__append_17 = \
++@HAVE_GTK_TRUE@am__append_19 = \
+ @HAVE_GTK_TRUE@ canberra-gtk.h
+
+ @HAVE_GTK_TRUE@bin_PROGRAMS = canberra-gtk-play$(EXEEXT)
+-@HAVE_GTK_TRUE@am__append_18 = \
++@HAVE_GTK_TRUE@am__append_20 = \
+ @HAVE_GTK_TRUE@ libcanberra-login-sound.desktop.in \
+ @HAVE_GTK_TRUE@ libcanberra-logout-sound.sh.in
+
+@@ -195,6 +201,18 @@ libcanberra_null_la_LINK = $(LIBTOOL) --
+ $(libcanberra_null_la_LDFLAGS) $(LDFLAGS) -o $@
+ @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@am_libcanberra_null_la_rpath = \
+ @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@ -rpath $(plugindir)
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_DEPENDENCIES = \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ libcanberra.la
++am__libcanberra_oss_la_SOURCES_DIST = oss.c
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@am_libcanberra_oss_la_OBJECTS = \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ libcanberra_oss_la-oss.lo
++libcanberra_oss_la_OBJECTS = $(am_libcanberra_oss_la_OBJECTS)
++libcanberra_oss_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
++ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
++ $(libcanberra_oss_la_CFLAGS) $(CFLAGS) \
++ $(libcanberra_oss_la_LDFLAGS) $(LDFLAGS) -o $@
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@am_libcanberra_oss_la_rpath = \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -rpath $(plugindir)
+ @BUILTIN_PULSE_FALSE@@HAVE_PULSE_TRUE@libcanberra_pulse_la_DEPENDENCIES = \
+ @BUILTIN_PULSE_FALSE@@HAVE_PULSE_TRUE@ $(am__DEPENDENCIES_1) \
+ @BUILTIN_PULSE_FALSE@@HAVE_PULSE_TRUE@ libcanberra.la
+@@ -220,14 +238,17 @@ am__libcanberra_la_SOURCES_DIST = canber
+ read-sound-file.c read-sound-file.h read-vorbis.c \
+ read-vorbis.h read-wav.c read-wav.h sound-theme-spec.c \
+ sound-theme-spec.h llist.h macro.h macro.c malloc.c malloc.h \
+- dso.c driver-order.c driver-order.h pulse.c alsa.c null.c
++ dso.c driver-order.c driver-order.h pulse.c alsa.c oss.c \
++ null.c
+ @BUILTIN_DSO_TRUE@am__objects_1 = libcanberra_la-dso.lo \
+ @BUILTIN_DSO_TRUE@ libcanberra_la-driver-order.lo
+ @BUILTIN_PULSE_TRUE@@HAVE_PULSE_TRUE@am__objects_2 = \
+ @BUILTIN_PULSE_TRUE@@HAVE_PULSE_TRUE@ libcanberra_la-pulse.lo
+ @BUILTIN_ALSA_TRUE@@HAVE_ALSA_TRUE@am__objects_3 = \
+ @BUILTIN_ALSA_TRUE@@HAVE_ALSA_TRUE@ libcanberra_la-alsa.lo
+-@BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@am__objects_4 = \
++@BUILTIN_OSS_TRUE@@HAVE_OSS_TRUE@am__objects_4 = \
++@BUILTIN_OSS_TRUE@@HAVE_OSS_TRUE@ libcanberra_la-oss.lo
++@BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@am__objects_5 = \
+ @BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@ libcanberra_la-null.lo
+ am_libcanberra_la_OBJECTS = libcanberra_la-common.lo \
+ libcanberra_la-mutex-posix.lo libcanberra_la-proplist.lo \
+@@ -235,7 +256,7 @@ am_libcanberra_la_OBJECTS = libcanberra_
+ libcanberra_la-read-vorbis.lo libcanberra_la-read-wav.lo \
+ libcanberra_la-sound-theme-spec.lo libcanberra_la-macro.lo \
+ libcanberra_la-malloc.lo $(am__objects_1) $(am__objects_2) \
+- $(am__objects_3) $(am__objects_4)
++ $(am__objects_3) $(am__objects_4) $(am__objects_5)
+ libcanberra_la_OBJECTS = $(am_libcanberra_la_OBJECTS)
+ libcanberra_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcanberra_la_CFLAGS) \
+@@ -273,14 +294,15 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLF
+ SOURCES = $(libcanberra_alsa_la_SOURCES) \
+ $(libcanberra_gtk_module_la_SOURCES) \
+ $(libcanberra_gtk_la_SOURCES) $(libcanberra_multi_la_SOURCES) \
+- $(libcanberra_null_la_SOURCES) $(libcanberra_pulse_la_SOURCES) \
+- $(libcanberra_la_SOURCES) $(canberra_gtk_play_SOURCES) \
+- $(test_canberra_SOURCES)
++ $(libcanberra_null_la_SOURCES) $(libcanberra_oss_la_SOURCES) \
++ $(libcanberra_pulse_la_SOURCES) $(libcanberra_la_SOURCES) \
++ $(canberra_gtk_play_SOURCES) $(test_canberra_SOURCES)
+ DIST_SOURCES = $(am__libcanberra_alsa_la_SOURCES_DIST) \
+ $(am__libcanberra_gtk_module_la_SOURCES_DIST) \
+ $(am__libcanberra_gtk_la_SOURCES_DIST) \
+ $(am__libcanberra_multi_la_SOURCES_DIST) \
+ $(am__libcanberra_null_la_SOURCES_DIST) \
++ $(am__libcanberra_oss_la_SOURCES_DIST) \
+ $(am__libcanberra_pulse_la_SOURCES_DIST) \
+ $(am__libcanberra_la_SOURCES_DIST) \
+ $(am__canberra_gtk_play_SOURCES_DIST) $(test_canberra_SOURCES)
+@@ -305,6 +327,7 @@ AWK = @AWK@
+ BUILTIN_ALSA = @BUILTIN_ALSA@
+ BUILTIN_DSO = @BUILTIN_DSO@
+ BUILTIN_NULL = @BUILTIN_NULL@
++BUILTIN_OSS = @BUILTIN_OSS@
+ BUILTIN_PULSE = @BUILTIN_PULSE@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+@@ -337,6 +360,7 @@ HAVE_ALSA = @HAVE_ALSA@
+ HAVE_DSO = @HAVE_DSO@
+ HAVE_GTK = @HAVE_GTK@
+ HAVE_NULL = @HAVE_NULL@
++HAVE_OSS = @HAVE_OSS@
+ HAVE_PULSE = @HAVE_PULSE@
+ HTML_DIR = @HTML_DIR@
+ INSTALL = @INSTALL@
+@@ -446,15 +470,16 @@ gnomeautostartdir = $(datadir)/gnome/aut
+ AM_CFLAGS = $(PTHREAD_CFLAGS) -DCA_PLUGIN_PATH=\"$(plugindir)\"
+ AM_CXXFLAGS = $(PTHREAD_CFLAGS)
+ AM_LDADD = $(PTHREAD_LIBS)
+-EXTRA_DIST = map-file $(am__append_18)
+-lib_LTLIBRARIES = libcanberra.la $(am__append_16)
+-include_HEADERS = canberra.h $(am__append_17)
++EXTRA_DIST = map-file $(am__append_20)
++lib_LTLIBRARIES = libcanberra.la $(am__append_18)
++include_HEADERS = canberra.h $(am__append_19)
+ libcanberra_la_SOURCES = canberra.h common.c common.h mutex-posix.c \
+ mutex.h proplist.c proplist.h driver.h read-sound-file.c \
+ read-sound-file.h read-vorbis.c read-vorbis.h read-wav.c \
+ read-wav.h sound-theme-spec.c sound-theme-spec.h llist.h \
+ macro.h macro.c malloc.c malloc.h $(am__append_2) \
+- $(am__append_6) $(am__append_10) $(am__append_14)
++ $(am__append_6) $(am__append_10) $(am__append_14) \
++ $(am__append_16)
+ libcanberra_la_CFLAGS = $(AM_CFLAGS) $(VORBIS_CFLAGS) $(am__append_3) \
+ $(am__append_7) $(am__append_11)
+ libcanberra_la_LIBADD = $(VORBIS_LIBS) $(am__append_4) $(am__append_8) \
+@@ -462,7 +487,7 @@ libcanberra_la_LIBADD = $(VORBIS_LIBS) $
+ libcanberra_la_LDFLAGS = -export-dynamic -version-info \
+ $(LIBCANBERRA_VERSION_INFO) $(am__append_1)
+ plugin_LTLIBRARIES = $(am__append_5) $(am__append_9) $(am__append_13) \
+- $(am__append_15)
++ $(am__append_15) $(am__append_17)
+ @BUILTIN_DSO_TRUE@libcanberra_multi_la_SOURCES = \
+ @BUILTIN_DSO_TRUE@ multi.c
+
+@@ -521,6 +546,24 @@ plugin_LTLIBRARIES = $(am__append_5) $(a
+ @BUILTIN_ALSA_FALSE@@HAVE_ALSA_TRUE@libcanberra_alsa_la_LDFLAGS = \
+ @BUILTIN_ALSA_FALSE@@HAVE_ALSA_TRUE@ -avoid-version -module -export-dynamic
+
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_SOURCES = \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ oss.c
++
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_CFLAGS = \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_open=oss_driver_open \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_destroy=oss_driver_destroy \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_change_device=oss_driver_change_device \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_change_props=oss_driver_change_props \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_play=oss_driver_play \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_cancel=oss_driver_cancel \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_cache=oss_driver_cache
++
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_LIBADD = \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ libcanberra.la
++
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_LDFLAGS = \
++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -avoid-version -module -export-dynamic
++
+ @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@libcanberra_null_la_SOURCES = \
+ @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@ null.c
+
+@@ -722,6 +765,8 @@ libcanberra-multi.la: $(libcanberra_mult
+ $(libcanberra_multi_la_LINK) $(am_libcanberra_multi_la_rpath) $(libcanberra_multi_la_OBJECTS) $(libcanberra_multi_la_LIBADD) $(LIBS)
+ libcanberra-null.la: $(libcanberra_null_la_OBJECTS) $(libcanberra_null_la_DEPENDENCIES)
+ $(libcanberra_null_la_LINK) $(am_libcanberra_null_la_rpath) $(libcanberra_null_la_OBJECTS) $(libcanberra_null_la_LIBADD) $(LIBS)
++libcanberra-oss.la: $(libcanberra_oss_la_OBJECTS) $(libcanberra_oss_la_DEPENDENCIES)
++ $(libcanberra_oss_la_LINK) $(am_libcanberra_oss_la_rpath) $(libcanberra_oss_la_OBJECTS) $(libcanberra_oss_la_LIBADD) $(LIBS)
+ libcanberra-pulse.la: $(libcanberra_pulse_la_OBJECTS) $(libcanberra_pulse_la_DEPENDENCIES)
+ $(libcanberra_pulse_la_LINK) $(am_libcanberra_pulse_la_rpath) $(libcanberra_pulse_la_OBJECTS) $(libcanberra_pulse_la_LIBADD) $(LIBS)
+ libcanberra.la: $(libcanberra_la_OBJECTS) $(libcanberra_la_DEPENDENCIES)
+@@ -805,6 +850,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-malloc.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-mutex-posix.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-null.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-oss.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-proplist.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-pulse.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-read-sound-file.Plo@am__quote@
+@@ -813,6 +859,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-sound-theme-spec.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_multi_la-multi.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_null_la-null.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_oss_la-oss.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_pulse_la-pulse.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-canberra.Po@am__quote@
+
+@@ -872,6 +919,13 @@ libcanberra_null_la-null.lo: null.c
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_null_la_CFLAGS) $(CFLAGS) -c -o libcanberra_null_la-null.lo `test -f 'null.c' || echo '$(srcdir)/'`null.c
+
++libcanberra_oss_la-oss.lo: oss.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_oss_la_CFLAGS) $(CFLAGS) -MT libcanberra_oss_la-oss.lo -MD -MP -MF $(DEPDIR)/libcanberra_oss_la-oss.Tpo -c -o libcanberra_oss_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcanberra_oss_la-oss.Tpo $(DEPDIR)/libcanberra_oss_la-oss.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss.c' object='libcanberra_oss_la-oss.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_oss_la_CFLAGS) $(CFLAGS) -c -o libcanberra_oss_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c
++
+ libcanberra_pulse_la-pulse.lo: pulse.c
+ @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_pulse_la_CFLAGS) $(CFLAGS) -MT libcanberra_pulse_la-pulse.lo -MD -MP -MF $(DEPDIR)/libcanberra_pulse_la-pulse.Tpo -c -o libcanberra_pulse_la-pulse.lo `test -f 'pulse.c' || echo '$(srcdir)/'`pulse.c
+ @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcanberra_pulse_la-pulse.Tpo $(DEPDIR)/libcanberra_pulse_la-pulse.Plo
+@@ -970,6 +1024,13 @@ libcanberra_la-alsa.lo: alsa.c
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_la_CFLAGS) $(CFLAGS) -c -o libcanberra_la-alsa.lo `test -f 'alsa.c' || echo '$(srcdir)/'`alsa.c
+
++libcanberra_la-oss.lo: oss.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_la_CFLAGS) $(CFLAGS) -MT libcanberra_la-oss.lo -MD -MP -MF $(DEPDIR)/libcanberra_la-oss.Tpo -c -o libcanberra_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcanberra_la-oss.Tpo $(DEPDIR)/libcanberra_la-oss.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss.c' object='libcanberra_la-oss.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_la_CFLAGS) $(CFLAGS) -c -o libcanberra_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c
++
+ libcanberra_la-null.lo: null.c
+ @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_la_CFLAGS) $(CFLAGS) -MT libcanberra_la-null.lo -MD -MP -MF $(DEPDIR)/libcanberra_la-null.Tpo -c -o libcanberra_la-null.lo `test -f 'null.c' || echo '$(srcdir)/'`null.c
+ @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcanberra_la-null.Tpo $(DEPDIR)/libcanberra_la-null.Plo
diff --git a/audio/libcanberra/files/patch-src_driver-order.c b/audio/libcanberra/files/patch-src_driver-order.c
new file mode 100644
index 000000000..35a0f474a
--- /dev/null
+++ b/audio/libcanberra/files/patch-src_driver-order.c
@@ -0,0 +1,12 @@
+--- src/driver-order.c.orig 2008-08-09 16:04:21.964956000 -0400
++++ src/driver-order.c 2008-08-09 16:04:21.964956000 -0400
+@@ -34,6 +34,9 @@ const char* const ca_driver_order[] = {
+ #ifdef HAVE_ALSA
+ "alsa",
+ #endif
++#ifdef HAVE_OSS
++ "oss",
++#endif
+ /* ... */
+ NULL
+ };
diff --git a/audio/libcanberra/files/patch-src_malloc.h b/audio/libcanberra/files/patch-src_malloc.h
new file mode 100644
index 000000000..58efa3096
--- /dev/null
+++ b/audio/libcanberra/files/patch-src_malloc.h
@@ -0,0 +1,35 @@
+--- src/malloc.h.orig 2008-06-10 10:42:46.000000000 -0400
++++ src/malloc.h 2008-08-05 23:34:40.000000000 -0400
+@@ -31,6 +31,32 @@
+ #define ca_free free
+ #define ca_malloc0(size) calloc(1, (size))
+ #define ca_strdup strdup
++#ifdef __FreeBSD__
++static inline char *strndup (const char *s, size_t n)
++{
++ size_t nAvail;
++ char *p;
++
++ if (!s) {
++ return NULL;
++ }
++
++ if (memchr (s, '\0', n) != NULL) {
++ nAvail = strlen (s);
++ if (nAvail > n)
++ nAvail = n;
++ } else {
++ nAvail = n;
++ }
++ p = ca_malloc (nAvail + 1);
++ if (p == NULL)
++ return NULL;
++ memcpy (p, s, nAvail);
++ p[nAvail] = '\0';
++
++ return p;
++}
++#endif
+ #define ca_strndup strndup
+
+ void* ca_memdup(const void* p, size_t size);
diff --git a/audio/libcanberra/files/patch-src_oss.c b/audio/libcanberra/files/patch-src_oss.c
new file mode 100644
index 000000000..f5d20d638
--- /dev/null
+++ b/audio/libcanberra/files/patch-src_oss.c
@@ -0,0 +1,479 @@
+--- src/oss.c.orig 2008-08-10 01:57:54.353155000 -0400
++++ src/oss.c 2008-08-10 02:12:43.640204000 -0400
+@@ -0,0 +1,476 @@
++/***
++ This file is part of libcanberra.
++
++ Copyright 2008
++ Joe Marcus Clarke
++
++ libcanberra is free software; you can redistribute it and/or modify
++ it under the terms of the GNU Lesser General Public License as
++ published by the Free Software Foundation, either version 2.1 of the
++ License, or (at your option) any later version.
++
++ libcanberra is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with libcanberra. If not, If not, see
++ <http://www.gnu.org/licenses/>.
++***/
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
++#include <sys/types.h>
++#include <sys/ioctl.h>
++#include <sys/uio.h>
++#include <unistd.h>
++
++#ifdef HAVE_MACHINE_SOUNDCARD_H
++# include <machine/soundcard.h>
++#else
++# ifdef HAVE_SOUNDCARD_H
++# include <soundcard.h>
++# else
++# include <sys/soundcard.h>
++# endif
++#endif
++
++#include <errno.h>
++#include <fcntl.h>
++#include <stdlib.h>
++#include <poll.h>
++#include <pthread.h>
++#include <semaphore.h>
++
++#include "canberra.h"
++#include "common.h"
++#include "driver.h"
++#include "llist.h"
++#include "read-sound-file.h"
++#include "sound-theme-spec.h"
++#include "malloc.h"
++
++struct private;
++
++struct outstanding {
++ CA_LLIST_FIELDS(struct outstanding);
++ ca_bool_t dead;
++ uint32_t id;
++ ca_finish_callback_t callback;
++ void *userdata;
++ ca_sound_file *file;
++ int pcm;
++ int pipe_fd[2];
++ ca_context *context;
++};
++
++struct private {
++ ca_theme_data *theme;
++ ca_mutex *outstanding_mutex;
++ ca_bool_t signal_semaphore;
++ sem_t semaphore;
++ ca_bool_t semaphore_allocated;
++ CA_LLIST_HEAD(struct outstanding, outstanding);
++};
++
++#define PRIVATE(c) ((struct private *) ((c)->private))
++
++static void outstanding_free(struct outstanding *o) {
++ ca_assert(o);
++
++ if (o->pipe_fd[1] >= 0)
++ close(o->pipe_fd[1]);
++
++ if (o->pipe_fd[0] >= 0)
++ close(o->pipe_fd[0]);
++
++ if (o->file)
++ ca_sound_file_close(o->file);
++
++ if (o->pcm > -1) {
++ close(o->pcm);
++ o->pcm = -1;
++ }
++
++ ca_free(o);
++}
++
++int driver_open(ca_context *c) {
++ struct private *p;
++
++ ca_return_val_if_fail(c, CA_ERROR_INVALID);
++ ca_return_val_if_fail(!c->driver || ca_streq(c->driver, "oss"), CA_ERROR_NODRIVER);
++ ca_return_val_if_fail(!PRIVATE(c), CA_ERROR_STATE);
++
++ if (!(c->private = p = ca_new0(struct private, 1)))
++ return CA_ERROR_OOM;
++
++ if (!(p->outstanding_mutex = ca_mutex_new())) {
++ driver_destroy(c);
++ return CA_ERROR_OOM;
++ }
++
++ if (sem_init(&p->semaphore, 0, 0) < 0) {
++ driver_destroy(c);
++ return CA_ERROR_OOM;
++ }
++
++ p->semaphore_allocated = TRUE;
++
++ return CA_SUCCESS;
++}
++
++int driver_destroy(ca_context *c) {
++ struct private *p;
++ struct outstanding *out;
++
++ ca_return_val_if_fail(c, CA_ERROR_INVALID);
++ ca_return_val_if_fail(c->private, CA_ERROR_STATE);
++
++ p = PRIVATE(c);
++
++ if (p->outstanding_mutex) {
++ ca_mutex_lock(p->outstanding_mutex);
++
++ /* Tell all player threads to terminate */
++ for (out = p->outstanding; out; out = out->next) {
++
++ if (out->dead)
++ continue;
++
++ out->dead = TRUE;
++
++ if (out->callback)
++ out->callback(c, out->id, CA_ERROR_DESTROYED, out->userdata);
++
++ /* This will cause the thread to wakeup and terminate */
++ if (out->pipe_fd[1] >= 0) {
++ close(out->pipe_fd[1]);
++ out->pipe_fd[1] = -1;
++ }
++ }
++
++ if (p->semaphore_allocated) {
++ /* Now wait until all players are destroyed */
++ p->signal_semaphore = TRUE;
++ while (p->outstanding) {
++ ca_mutex_unlock(p->outstanding_mutex);
++ sem_wait(&p->semaphore);
++ ca_mutex_lock(p->outstanding_mutex);
++ }
++ }
++
++ ca_mutex_unlock(p->outstanding_mutex);
++ ca_mutex_free(p->outstanding_mutex);
++ }
++
++ if (p->theme)
++ ca_theme_data_free(p->theme);
++
++ if (p->semaphore_allocated)
++ sem_destroy(&p->semaphore);
++
++ ca_free(p);
++
++ c->private = NULL;
++
++ return CA_SUCCESS;
++}
++
++int driver_change_device(ca_context *c, char *device) {
++ ca_return_val_if_fail(c, CA_ERROR_INVALID);
++ ca_return_val_if_fail(c->private, CA_ERROR_STATE);
++
++ return CA_SUCCESS;
++}
++
++int driver_change_props(ca_context *c, ca_proplist *changed, ca_proplist *merged) {
++ ca_return_val_if_fail(c, CA_ERROR_INVALID);
++ ca_return_val_if_fail(changed, CA_ERROR_INVALID);
++ ca_return_val_if_fail(merged, CA_ERROR_INVALID);
++
++ return CA_SUCCESS;
++}
++
++int driver_cache(ca_context *c, ca_proplist *proplist) {
++ ca_return_val_if_fail(c, CA_ERROR_INVALID);
++ ca_return_val_if_fail(proplist, CA_ERROR_INVALID);
++
++ return CA_ERROR_NOTSUPPORTED;
++}
++
++static int translate_error(int error) {
++
++ switch (error) {
++ case ENODEV:
++ case ENOENT:
++ return CA_ERROR_NOTFOUND;
++ case EACCES:
++ case EPERM:
++ return CA_ERROR_ACCESS;
++ case ENOMEM:
++ return CA_ERROR_OOM;
++ case EBUSY:
++ return CA_ERROR_NOTAVAILABLE;
++ default:
++ if (ca_debug())
++ fprintf(stderr, "Got unhandled error from OSS: %s\n", strerror(error));
++ return CA_ERROR_IO;
++ }
++}
++
++static int open_oss(ca_context *c, struct outstanding *out) {
++ struct private *p;
++ int mode;
++ int val;
++ int ret;
++
++ ca_return_val_if_fail(c, CA_ERROR_INVALID);
++ ca_return_val_if_fail(c->private, CA_ERROR_STATE);
++ ca_return_val_if_fail(out, CA_ERROR_INVALID);
++
++ p = PRIVATE(c);
++
++ if ((out->pcm = open(c->device ? c->device : "/dev/dsp", O_WRONLY | O_NONBLOCK, 0)) < 0)
++ goto finish;
++
++ mode = fcntl(out->pcm, F_GETFL);
++ mode &= ~O_NONBLOCK;
++ fcntl(out->pcm, F_SETFL, mode);
++
++ switch (ca_sound_file_get_sample_type(out->file)) {
++ case CA_SAMPLE_U8:
++ val = AFMT_U8;
++ break;
++ case CA_SAMPLE_S16NE:
++ val = AFMT_S16_NE;
++ break;
++ case CA_SAMPLE_S16RE:
++#if _BYTE_ORDER == _LITTLE_ENDIAN
++ val = AFMT_S16_BE;
++#else
++ val = AFMT_S16_LE;
++#endif
++ break;
++ }
++
++ if (ioctl(out->pcm, SNDCTL_DSP_SETFMT, &val) < 0)
++ goto finish;
++
++ val = ca_sound_file_get_nchannels(out->file) > 1 ? 1 : 0;
++ if (ioctl(out->pcm, SNDCTL_DSP_STEREO, &val) < 0)
++ goto finish;
++
++ val = ca_sound_file_get_rate(out->file);
++ if (ioctl(out->pcm, SNDCTL_DSP_SPEED, &val) < 0)
++ goto finish;
++
++ return CA_SUCCESS;
++
++finish:
++
++ ret = errno;
++ close(out->pcm);
++ out->pcm = -1;
++ return translate_error(ret);
++}
++
++#define BUFSIZE (4*1024)
++
++static void* thread_func(void *userdata) {
++ struct outstanding *out = userdata;
++ int ret;
++ void *data, *d = NULL;
++ ssize_t bytes_written;
++ size_t fs, data_size;
++ size_t nbytes = 0;
++ struct pollfd *pfd = NULL;
++ nfds_t n_pfd;
++ struct private *p;
++
++ p = PRIVATE(out->context);
++
++ pthread_detach(pthread_self());
++
++ fs = ca_sound_file_frame_size(out->file);
++ data_size = (BUFSIZE/fs)*fs;
++
++ if (!(data = ca_malloc(data_size))) {
++ ret = CA_ERROR_OOM;
++ goto finish;
++ }
++
++ n_pfd = 2;
++ if (!(pfd = ca_new(struct pollfd, n_pfd))) {
++ ret = CA_ERROR_OOM;
++ goto finish;
++ }
++
++ pfd[0].fd = out->pipe_fd[0];
++ pfd[0].events = POLLIN;
++ pfd[0].revents = 0;
++ pfd[1].fd = out->pcm;
++ pfd[1].events = POLLOUT;
++ pfd[1].revents = 0;
++
++ for (;;) {
++ if (out->dead)
++ break;
++
++ if (poll(pfd, n_pfd, -1) < 0) {
++ ret = CA_ERROR_SYSTEM;
++ goto finish;
++ }
++
++ /* We have been asked to shut down */
++ if (pfd[0].revents)
++ break;
++
++ if (nbytes <= 0) {
++
++ nbytes = data_size;
++
++ if ((ret = ca_sound_file_read_arbitrary(out->file, data, &nbytes)) < 0)
++ goto finish;
++
++ d = data;
++ }
++
++ if (nbytes <= 0) {
++ break;
++ }
++
++ if ((bytes_written = write(out->pcm, d, nbytes)) <= 0) {
++ ret = errno;
++ goto finish;
++
++ }
++
++ nbytes -= bytes_written;
++ d = (uint8_t*) d + bytes_written;
++ }
++
++ ret = CA_SUCCESS;
++
++finish:
++
++ ca_free(data);
++ ca_free(pfd);
++
++ if (!out->dead)
++ if (out->callback)
++ out->callback(out->context, out->id, ret, out->userdata);
++
++ ca_mutex_lock(p->outstanding_mutex);
++
++ CA_LLIST_REMOVE(struct outstanding, p->outstanding, out);
++
++ if (!p->outstanding && p->signal_semaphore)
++ sem_post(&p->semaphore);
++
++ outstanding_free(out);
++
++ ca_mutex_unlock(p->outstanding_mutex);
++
++ return NULL;
++}
++
++int driver_play(ca_context *c, uint32_t id, ca_proplist *proplist, ca_finish_callback_t cb, void *userdata) {
++ struct private *p;
++ struct outstanding *out = NULL;
++ int ret;
++ pthread_t thread;
++
++ ca_return_val_if_fail(c, CA_ERROR_INVALID);
++ ca_return_val_if_fail(proplist, CA_ERROR_INVALID);
++ ca_return_val_if_fail(!userdata || cb, CA_ERROR_INVALID);
++ ca_return_val_if_fail(c->private, CA_ERROR_STATE);
++
++ p = PRIVATE(c);
++
++ if (!(out = ca_new0(struct outstanding, 1))) {
++ ret = CA_ERROR_OOM;
++ goto finish;
++ }
++
++ out->context = c;
++ out->id = id;
++ out->callback = cb;
++ out->userdata = userdata;
++ out->pipe_fd[0] = out->pipe_fd[1] = -1;
++
++ if (pipe(out->pipe_fd) < 0) {
++ ret = CA_ERROR_SYSTEM;
++ goto finish;
++ }
++
++ if ((ret = ca_lookup_sound(&out->file, &p->theme, c->props, proplist)) < 0)
++ goto finish;
++
++ if ((ret = open_oss(c, out)) < 0)
++ goto finish;
++
++ /* OK, we're ready to go, so let's add this to our list */
++ ca_mutex_lock(p->outstanding_mutex);
++ CA_LLIST_PREPEND(struct outstanding, p->outstanding, out);
++ ca_mutex_unlock(p->outstanding_mutex);
++
++ if (pthread_create(&thread, NULL, thread_func, out) < 0) {
++ ret = CA_ERROR_OOM;
++
++ ca_mutex_lock(p->outstanding_mutex);
++ CA_LLIST_REMOVE(struct outstanding, p->outstanding, out);
++ ca_mutex_unlock(p->outstanding_mutex);
++
++ goto finish;
++ }
++
++ ret = CA_SUCCESS;
++
++finish:
++
++ /* We keep the outstanding struct around if we need clean up later to */
++ if (ret != CA_SUCCESS)
++ outstanding_free(out);
++
++ return ret;
++}
++
++int driver_cancel(ca_context *c, uint32_t id) {
++ struct private *p;
++ struct outstanding *out;
++
++ ca_return_val_if_fail(c, CA_ERROR_INVALID);
++ ca_return_val_if_fail(c->private, CA_ERROR_STATE);
++
++ p = PRIVATE(c);
++
++ ca_mutex_lock(p->outstanding_mutex);
++
++ for (out = p->outstanding; out; out = out->next) {
++
++ if (out->id != id)
++ continue;
++
++ if (out->dead)
++ continue;
++
++ out->dead = TRUE;
++
++ if (out->callback)
++ out->callback(c, out->id, CA_ERROR_CANCELED, out->userdata);
++
++ /* This will cause the thread to wakeup and terminate */
++ if (out->pipe_fd[1] >= 0) {
++ close(out->pipe_fd[1]);
++ out->pipe_fd[1] = -1;
++ }
++ }
++
++ ca_mutex_unlock(p->outstanding_mutex);
++
++ return CA_SUCCESS;
++}
diff --git a/audio/libcanberra/pkg-descr b/audio/libcanberra/pkg-descr
new file mode 100644
index 000000000..7678d1df6
--- /dev/null
+++ b/audio/libcanberra/pkg-descr
@@ -0,0 +1,2 @@
+Libcanberra is an implementation of the Freedesktop Sound Theme
+specification. It allows developers to play sounds given a list of events.
diff --git a/audio/libcanberra/pkg-plist b/audio/libcanberra/pkg-plist
new file mode 100644
index 000000000..70867511c
--- /dev/null
+++ b/audio/libcanberra/pkg-plist
@@ -0,0 +1,46 @@
+bin/canberra-gtk-play
+include/canberra-gtk.h
+include/canberra.h
+lib/gtk-2.0/modules/libcanberra-gtk-module.a
+lib/gtk-2.0/modules/libcanberra-gtk-module.la
+lib/gtk-2.0/modules/libcanberra-gtk-module.so
+lib/libcanberra-gtk.a
+lib/libcanberra-gtk.la
+lib/libcanberra-gtk.so
+lib/libcanberra-gtk.so.0
+lib/libcanberra.a
+lib/libcanberra.la
+lib/libcanberra.so
+lib/libcanberra.so.0
+lib/libcanberra/libcanberra-multi.a
+lib/libcanberra/libcanberra-multi.la
+lib/libcanberra/libcanberra-multi.so
+lib/libcanberra/libcanberra-null.a
+lib/libcanberra/libcanberra-null.la
+lib/libcanberra/libcanberra-null.so
+%%OSS%%lib/libcanberra/libcanberra-oss.a
+%%OSS%%lib/libcanberra/libcanberra-oss.la
+%%OSS%%lib/libcanberra/libcanberra-oss.so
+%%PULSE%%lib/libcanberra/libcanberra-pulse.a
+%%PULSE%%lib/libcanberra/libcanberra-pulse.la
+%%PULSE%%lib/libcanberra/libcanberra-pulse.so
+libdata/pkgconfig/libcanberra-gtk.pc
+libdata/pkgconfig/libcanberra.pc
+%%DOCSDIR%%/README
+%%DOCSDIR%%/ch01.html
+%%DOCSDIR%%/home.png
+%%DOCSDIR%%/index.html
+%%DOCSDIR%%/index.sgml
+%%DOCSDIR%%/left.png
+%%DOCSDIR%%/libcanberra-canberra-gtk.html
+%%DOCSDIR%%/libcanberra-canberra.html
+%%DOCSDIR%%/libcanberra.devhelp
+%%DOCSDIR%%/libcanberra.devhelp2
+%%DOCSDIR%%/right.png
+%%DOCSDIR%%/style.css
+%%DOCSDIR%%/up.png
+share/gnome/autostart/libcanberra-login-sound.desktop
+share/gnome/shutdown/libcanberra-logout-sound.sh
+@dirrmtry share/gnome/shutdown
+@dirrm %%DOCSDIR%%
+@dirrm lib/libcanberra