r17594 - in /desktop/experimental/esound: ./ debian/ debian/patches/

joss at users.alioth.debian.org joss at users.alioth.debian.org
Sat Nov 15 05:29:38 UTC 2008


Author: joss
Date: Sat Nov 15 05:29:37 2008
New Revision: 17594

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=17594
Log:
Import esound to SVN.

  * New maintainer.
  * New upstream release. Closes: #422590, #452720.
  * Convert to cdbs + quilt.
  * Enable IPv6 support.
  * Update copyright information.
  * Add documentation (and associated doc-base registration) to 
    esound-common.
  * Move libesddsp to esound-clients (it’s only used by esddsp).
  * Split the patches that were not merged upstream into a series.


Added:
    desktop/experimental/esound/
    desktop/experimental/esound/debian/   (with props)
    desktop/experimental/esound/debian/changelog
    desktop/experimental/esound/debian/compat
    desktop/experimental/esound/debian/control
    desktop/experimental/esound/debian/control.in
    desktop/experimental/esound/debian/copyright
    desktop/experimental/esound/debian/esound-clients.install
    desktop/experimental/esound/debian/esound-clients.mime
    desktop/experimental/esound/debian/esound-common.README.Debian
    desktop/experimental/esound/debian/esound-common.doc-base
    desktop/experimental/esound/debian/esound-common.docs
    desktop/experimental/esound/debian/esound-common.install
    desktop/experimental/esound/debian/esound.install
    desktop/experimental/esound/debian/libesd-alsa0.install
    desktop/experimental/esound/debian/libesd0-dev.install
    desktop/experimental/esound/debian/libesd0.install
    desktop/experimental/esound/debian/patches/
    desktop/experimental/esound/debian/patches/01_relocate_libesddsp.patch
    desktop/experimental/esound/debian/patches/02_audiofile_supported.patch
    desktop/experimental/esound/debian/patches/03_nosleep.patch
    desktop/experimental/esound/debian/patches/04_missing_header.patch
    desktop/experimental/esound/debian/patches/05_esdfilt_info.patch
    desktop/experimental/esound/debian/patches/06_alsa_hw_free.patch
    desktop/experimental/esound/debian/patches/07_overflow_safeguards.patch
    desktop/experimental/esound/debian/patches/08_kill_sigterm.patch
    desktop/experimental/esound/debian/patches/09_spawn_nobeeps.patch
    desktop/experimental/esound/debian/patches/10_nobeeps_nopause.patch
    desktop/experimental/esound/debian/patches/11_close_spawnfd.patch
    desktop/experimental/esound/debian/patches/12_esddsp_mmap64.patch
    desktop/experimental/esound/debian/patches/13_esd_open_sound_host.patch
    desktop/experimental/esound/debian/patches/14_ld-preload_esdlib.patch
    desktop/experimental/esound/debian/patches/15_prettier_debug.patch
    desktop/experimental/esound/debian/patches/16_alsa_signedness.patch
    desktop/experimental/esound/debian/patches/31_write_size.patch
    desktop/experimental/esound/debian/patches/32_sigusr1_reconnect.patch
    desktop/experimental/esound/debian/patches/33_filter_buffers.patch
    desktop/experimental/esound/debian/patches/34_mixer_static.patch
    desktop/experimental/esound/debian/patches/50_alsa_drain.patch
    desktop/experimental/esound/debian/patches/series
    desktop/experimental/esound/debian/rules   (with props)
    desktop/experimental/esound/debian/watch

Propchange: desktop/experimental/esound/debian/
------------------------------------------------------------------------------
    mergeWithUpstream = 1

Propchange: desktop/experimental/esound/debian/
------------------------------------------------------------------------------
    svn-bp:tagsUrl = svn+ssh://svn.debian.org/svn/pkg-gnome/tags/esound

Added: desktop/experimental/esound/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/changelog?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/changelog (added)
+++ desktop/experimental/esound/debian/changelog Sat Nov 15 05:29:37 2008
@@ -1,0 +1,764 @@
+esound (0.2.40-1) UNRELEASED; urgency=low
+
+  * New maintainer.
+  * New upstream release. Closes: #422590, #452720.
+  * Convert to cdbs + quilt.
+  * Enable IPv6 support.
+  * Update copyright information.
+  * Add documentation (and associated doc-base registration) to 
+    esound-common.
+  * Move libesddsp to esound-clients (it’s only used by esddsp).
+  * Split the patches that were not merged upstream into a series.
+
+ -- Josselin Mouette <joss at debian.org>  Fri, 14 Nov 2008 23:25:03 +0100
+
+esound (0.2.36-3) unstable; urgency=low
+
+  * Only include *64 functions if necessary in libesddsp for things
+    that check at runtime rather than compile time (closes: #347751)
+
+ -- Ryan Murray <rmurray at debian.org>  Fri, 13 Jan 2006 00:33:23 -0800
+
+esound (0.2.36-2) unstable; urgency=low
+
+  * Allow playing of everything current libaudiofile supports (closes: #318145)
+  * Apply patch to wrap *64 functions, too (closes: #257146)
+  * Pull several patches from Ubuntu: (closes: #343174, #315668)
+  * Rebuild on hppa with fixed headers (closes: #328872)
+
+  [ Martin Pitt <martin.pitt at ubuntu.com> ]
+  + esound (0.2.36-1ubuntu5) breezy; urgency=low
+    * audio_alsa09.c, esd_audio_close():
+    - Call snd_pcm_hw_free() before snd_pcm_close(). This closes the file
+      descriptor to the sound device even if the device is not physically
+      present any more.
+    - This fixes the esound/hotplug deadlock when removing a currently active
+      sound device.
+  + esound (0.2.36-1ubuntu2) breezy; urgency=low
+    * audio_alsa09.c: Disable snd_pcm_drain() call for now since it sometimes
+      triggers a race condition in the ALSA kernel driver which causes the
+      esd process to hang. This is not a proper bug fix, but at least makes all
+      those broken Colony installations out there work again. (Ubuntu #12276)
+  + esound (0.2.36-0ubuntu2) breezy; urgency=low
+    * esd.c: Install signal handler for SIGUSR1 that reconnects to the ALSA
+      driver. This is useful after changing the ALSA configuration file.
+    * client.c: Integrate driver reconnection into client loop.
+    * audio_alsa09.c, initAlsa(): Call snd_config_update_free_global() to purge
+      configuration cache and to properly reload configuration files.
+
+  [ Jeff Waugh <jeff.waugh at ubuntu.com> ]
+  + esound (0.2.35-2ubuntu2) hoary; urgency=low
+    * esdlib.c:
+      - More thorough fixage, avoid stupid breakage thanks to Paolo Borelli
+        and James Henstridge.
+  + esound (0.2.35-2ubuntu1) hoary; urgency=low
+    * esdlib.c:
+      - Do not modify host passed to esd_sound_open, because that is highly
+        offensive. (Fixes GStreamer using ESPEAKER.) Thanks to Jan Schmidt
+        who should take full credit for finding this bogon.
+
+ -- Ryan Murray <rmurray at debian.org>  Wed, 11 Jan 2006 01:42:15 -0800
+
+esound (0.2.36-1) unstable; urgency=medium
+
+  * New upstream release (closes: #313378, #313563, #314294, #283814)
+  * Revert changes in unsanctioned NMU.
+  * Increase shlib to 0.2.35, when esd_default_options was introduced.
+    (closes: #279108)
+  * Remove all non dh maintainer scripts -- they're no longer needed.
+  * Remove obsolete (potato or earlier) dependencies.
+  * Remove html documentation.  It's horribly incomplete, and the
+    manpages are updated more frequently. (closes: #283235)
+  * Add amd64 to alsa list (closes: #277860)
+  * Bump DH_COMPAT to 4
+  * Reject clients that we can't mix for (closes: #312087)
+  * Move libesddsp to /usr/lib/esound (closes: #220058)
+  * Some buffer size and delay timing tweaks.
+
+ -- Ryan Murray <rmurray at debian.org>  Sat, 25 Jun 2005 16:13:24 -0700
+
+esound (0.2.35-2.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Applied patch to add amd64 and ppc64 support, thanks Andreas Jochens
+    (closes: #288903)
+
+ -- Luk Claes <luk at debian.org>  Thu,  5 May 2005 17:08:34 +0200
+
+esound (0.2.35-2) unstable; urgency=low
+
+  * Relibtoolize.
+
+ -- Ryan Murray <rmurray at debian.org>  Sat, 23 Oct 2004 17:55:29 -0700
+
+esound (0.2.35-1) unstable; urgency=high
+
+  * New upstream release (closes: #249375, #270098, #216736)
+  * Open OSS device similar to xmms (closes: #265432)
+  * Fix esd_comm_loop() so recording works (closes: #211867)
+  * Fix filter buffer handling so filters work (closes: #202027)
+  * Don't call write() with a NULL buffer and 0 length (closes: #188637)
+  * Remove libasound2 item from README.Debian (closes: #270269)
+  * Keep writing audio until it is all gone (closes: #239299)
+  * Remove static esddsp library, .so link, and .la file from
+    libesd0-dev.  It's only meant for LD_PRELOAD.
+
+ -- Ryan Murray <rmurray at debian.org>  Fri, 22 Oct 2004 02:59:31 -0700
+
+esound (0.2.34-1) unstable; urgency=low
+
+  * New upstream release (closes: #125803, #203913, #244840, #262376, #254130)
+  * Revert custom esd_audio_write from -2 (closes: #264981)
+  * Use --release sarge (closes: #214939)
+
+ -- Ryan Murray <rmurray at debian.org>  Thu, 12 Aug 2004 17:59:29 -0700
+
+esound (0.2.29-2) unstable; urgency=low
+
+  * Instead of using select() for OSS, use SNDCTL_DSP_GETOSPACE.
+  * Revert changes in unsanctioned NMU.
+
+ -- Ryan Murray <rmurray at debian.org>  Mon,  9 Aug 2004 20:28:59 -0700
+
+esound (0.2.29-1) unstable; urgency=low
+
+  * New upstream release (closes: #170923)
+  * Rewrote generic esd_audio_write to attempt to use select if the driver
+    seems to support it, and to write in a blocksize that can be changed by
+    audio open functions.
+    (closes: #57905, #95394, #122627, #159915)
+  * Fix endian swapping code (closes: #126879)
+  * build with libasound2-dev as libasound1-dev is no longer installable
+    (closes: #118022)
+  * Correct is_host_local check (closes: #153819)
+  * correct doc-base index file (closes: #152091)
+  * Correct handling while playing samples (closes: #112877, #144211)
+  * add a MIME control file for esdplay (closes: #153279)
+  * Take stdio emu code from libartsc (closes: #148259, #120829)
+  * Remove libesddsp from LD_PRELOAD when autospawning esd (closes: #151434)
+  * Document esd.conf in the esd manpage (closes: #129555)
+  * Correct license in audio_alsa09.c (upstream bug 108799)
+
+ -- Ryan Murray <rmurray at debian.org>  Wed, 19 Mar 2003 17:42:21 -0800
+
+esound (0.2.28-2) unstable; urgency=low
+
+  * Fix quoting on LD_PRELOAD (closes: #151496)
+  * Fix -s parsing in esdctl (closes: #130720)
+
+ -- Ryan Murray <rmurray at debian.org>  Mon,  1 Jul 2002 01:17:42 -0700
+
+esound (0.2.28-1) unstable; urgency=low
+
+  * New upstream release (closes: #144366, #130403, #114761)
+  * Fix README.Debian WRT -tcpip vs -tcp (closes: #129127)
+  * Add version of GPL to copyright statement (closes: #133495)
+  * Correct esdplay manpage title (closes: #141317)
+  * Don't install esddsp for hurd-i386 (closes: #144678)
+
+ -- Ryan Murray <rmurray at debian.org>  Sat, 29 Jun 2002 21:01:34 -0700
+
+esound (0.2.23-3) unstable; urgency=low
+
+  * Ship esound.pc (closes: #120798)
+  * Prepend to LD_PRELOAD in esddsp (closes: #126402)
+  * Add fclose to go with fopen
+
+ -- Ryan Murray <rmurray at debian.org>  Fri, 28 Dec 2001 11:02:46 -0800
+
+esound (0.2.23-2) unstable; urgency=low
+
+  * Update config.guess/config.sub
+
+ -- Ryan Murray <rmurray at debian.org>  Wed, 21 Nov 2001 11:16:21 -0800
+
+esound (0.2.23-1) unstable; urgency=low
+
+  * New upstream release
+  * "For the Glory of the Creator" release.
+  * Build libaesd0-alsa on all Linux architectures, and change shlib for hurd
+    (closes: #114051)
+  * esound socket has moved back to /tmp/.esd, to be binary compatible with
+    other distributions.
+  * Remove debconf template/config (closes: #105871, #104105)
+  * Change default configuration to have auto spawning disabled
+    (closes: #113313)
+  * Fix path to config file in esd manpage (closes: #107354)
+  * Updated esdfilt and esdmon manpages (closes: #117925)
+  * Update README.Debian
+  * Added fopen() wrapper for esddsp (closes: #76301)
+
+ -- Ryan Murray <rmurray at debian.org>  Mon, 19 Nov 2001 00:57:18 -0800
+
+esound (0.2.22-6) unstable; urgency=low
+
+  * Update conflicts to the appropriate packages (closes: #103858, #103751)
+    (closes: #101799)
+  * Added Spanish debconf template (closes: #103230)
+  * Seems some delay is needed on the reopen for recording.  I've added
+    a usleep, hopefully that is enough to make it work, yet not enough
+    to be overly annoying (closes: #103772)
+
+ -- Ryan Murray <rmurray at debian.org>  Sun,  8 Jul 2001 03:21:59 -0700
+
+esound (0.2.22-5) unstable; urgency=low
+
+  * libesd-alsa0 should be extra.  Changing it back.
+  * add a conflicts against older esound due to the move of the unix domain
+    socket (closes: #99782)
+
+ -- Ryan Murray <rmurray at debian.org>  Sun,  3 Jun 2001 12:12:32 -0700
+
+esound (0.2.22-4) unstable; urgency=low
+
+  * Fix dependency generation for esound-clients and esound.
+  * Change libesd-alsa0's priority to optional to match override file.
+  * Build without sound support for the hurd (closes: #89461)
+  * Close alsa PCM handle on errors in handle setup (closes: #83429)
+  * Add sleeps when the writes are small for alsa (closes: #87334, #83346)
+  * Add FILES section with esound.conf to esd manpage (closes: #87860)
+  * Move esound socket dir to /var/run (closes: #90612, #86807)
+  * Add mips to alsa architectures
+  * Update some of the dependencies/conflicts (closes: #95751)
+  * Update config.guess/config.sub (closes: #96729)
+  * Move unix domain socket to /var/run/esound (closes: #98946, #86807)
+  * Broke -terminate sometime ago (0.2.20-1 or so?) fixed now.
+    (closes: #95596)
+  * Update esdctl and esddsp pod pages (closes: #93993)
+  * Implement play, loop, and stop in esdctl, as the docs say (closes: #81236)
+  * Add Swedish, Dutch, and German templates (closes: #83502, #85553, #86217)
+  * Switch to debhelper v3, and simplified the rules file
+
+ -- Ryan Murray <rmurray at debian.org>  Sun, 27 May 2001 21:33:18 -0700
+
+esound (0.2.22-3) unstable; urgency=low
+
+  * Change ALSA from block to stream, and fix up code for dealing with
+    underrun's (closes: #81022)
+  * Remove Suggests: for non-existant package
+  * Don't sleep when attempting to reopen for recording. (closes: #81398)
+  * Really remove hosts.allow updating logic. (closes: #75966)
+
+ -- Ryan Murray <rmurray at debian.org>  Tue, 23 Jan 2001 14:12:39 -0800
+
+esound (0.2.22-2) unstable; urgency=low
+
+  * Remove ugly sleep(1) hack that attempts to work around what appears to be
+    a kernel bug.
+  * Apply a mixing patch from Matthew Ashton <mashton at stormix.com> that fixes
+    32k samples turning into static when 8k samples played in the middle
+    (closes: #79145)
+  * Add Replaces: for old -alsa packages.
+  * Don't use tcp wrappers on unix domain sockets (closes: #79014)
+  * Remove hosts.allow updating logic. (closes: #75966)
+  * Move man pages into packages with the binaries, since they aren't
+    packaged twice anymore.
+
+ -- Ryan Murray <rmurray at debian.org>  Fri,  8 Dec 2000 23:13:55 -0800
+
+esound (0.2.22-1) unstable; urgency=low
+
+  * New upstream release
+  * remove esound-alsa and libesd-alsa0-dev packages.  The only thing
+    that needs a seperate alsa package is the library.
+  * Rewrote mixing to mix the minimum that is available.  This seems to make
+    mixed sounds work correctly now.  It used to be writing random bytes
+    to the socket. (closes: #77553, #59331)
+  * Only build twice the things we actually package twice (libesd)
+  * Retry writes if device is busy. (closes: #76345, #65268)
+  * Use strtok_r if available (closes: #76567)
+  * Re-enable unix domain sockets, and make it the default.
+    (closes: #75064, #66724)
+  * Sleep for a bit if resume fails (closes: #64484)
+
+ -- Ryan Murray <rmurray at debian.org>  Tue,  5 Dec 2000 23:11:24 -0800
+
+esound (0.2.20-2) unstable; urgency=low
+
+  * Fix missing esound-common documentation (closes: #74561, #74964, #74763)
+  * Update package description (closes: #75109)
+  * Add recommends of esound-clients to the esd libraries
+  * Moved client manpages to esound-clients (closes: #75108)
+
+ -- Ryan Murray <rmurray at debian.org>  Sun, 22 Oct 2000 02:39:54 -0700
+
+esound (0.2.20-1) unstable; urgency=low
+
+  * New upstream release
+  * Make -d in esound-alsa take a card number parameter, instead of ignoring
+    -d. (closes: #72653)
+  * Buffer overrun fix (closes: #66759)
+  * only call accept if a new connection is waiting.  Saves a system call
+    on every sound packet.
+  * Add esound-clients package.  Lots of other package reorganizations.
+    (closes: #72304, #69856)
+  * Add an entry to /etc/hosts.allow to allow localhost by default, if there
+    is no entry. (closes: #66433, #67219, #67437, #72794)
+
+ -- Ryan Murray <rmurray at debian.org>  Mon,  9 Oct 2000 02:36:34 -0700
+
+esound (0.2.19-5) unstable; urgency=low
+
+  * Make list of ALSA archs in rules match the list in control (closes: #69671)
+
+ -- Ryan Murray <rmurray at debian.org>  Mon, 21 Aug 2000 21:49:36 -0700
+
+esound (0.2.19-4) unstable; urgency=low
+
+  * Fix segmentation fault when using ALSA (closes: #69449)
+
+ -- Ryan Murray <rmurray at debian.org>  Sun, 20 Aug 2000 19:28:18 -0700
+
+esound (0.2.19-3) unstable; urgency=low
+
+  * sparc and powerpc now have libasound1 available, so update the
+    build-depends to fix it...
+
+ -- Ryan Murray <rmurray at debian.org>  Fri, 18 Aug 2000 17:05:27 -0700
+
+esound (0.2.19-2) unstable; urgency=low
+
+  * Fix version in esddsp (closes: #67658)
+
+ -- Ryan Murray <rmurray at debian.org>  Fri, 11 Aug 2000 04:09:12 -0700
+
+esound (0.2.19-1) unstable; urgency=low
+
+  * New upstream release (closes: #63206)
+  * Remove autogenerated files from the diff.
+
+ -- Ryan Murray <rmurray at debian.org>  Sun, 23 Jul 2000 01:14:48 -0700
+
+esound (0.2.18-3) unstable; urgency=low
+
+  * New Maintainer.
+  * Reword debconf text to try to make it clear that sound must be setup.
+  * Add nobeeps option to manpage, closes: #65359
+  * Update Build-Depends to be libasound1-dev, and add libwrap0-dev
+  * Add a README.Debian with one FAQ, closes: #65198
+  * Add all architectures that currently have a libasound-dev library
+    to build esd-alsa
+
+ -- Ryan Murray <rmurray at debian.org>  Sun, 18 Jun 2000 20:49:50 -0700
+
+esound (0.2.18-2) unstable; urgency=low
+
+  * Applied patch from Juergen E Fischer <fischer at linux-buechse.de>, 
+    closes: #61959, #62054 
+  * s/0.2.17/0.2.18/ in esddsp.in, closes: #62130
+
+ -- Brian M. Almeida <bma at debian.org>  Mon, 10 Apr 2000 13:24:30 -0400
+
+esound (0.2.18-1) unstable; urgency=low
+
+  * New upstream release
+  * Updated download location and author's email in debian/copyright
+  * New upstream HTML documentation
+  * Compiled against ALSA 0.5
+
+ -- Brian M. Almeida <bma at debian.org>  Wed,  5 Apr 2000 11:45:38 -0400
+
+esound (0.2.17-8) unstable; urgency=low
+
+  * Removed garbage from beginning of esound.html, closes: #60804
+  * Removed test if daemon is running in esddsp, it's not really
+    needed anymore anyways, closes: #60681
+
+ -- Brian M. Almeida <bma at debian.org>  Mon, 20 Mar 2000 14:10:28 -0500
+
+esound (0.2.17-7) frozen unstable; urgency=low
+
+  * Fix doc-base entry, closes: #60231 
+
+ -- Brian M. Almeida <bma at debian.org>  Sun, 12 Mar 2000 15:40:53 -0500
+
+esound (0.2.17-6) frozen unstable; urgency=low
+
+  * Print 'opening socket' to stderr (esdcat.c, esdloop.c, esdmon.c,
+    esdrec.c, esdsample.c), closes: #59610
+
+ -- Brian M. Almeida <bma at debian.org>  Mon,  6 Mar 2000 13:35:06 -0500
+
+esound (0.2.17-5) frozen unstable; urgency=low
+
+  * Change ' to " so LD_PRELOAD works, closes: #59085
+
+ -- Brian M. Almeida <bma at debian.org>  Mon, 28 Feb 2000 12:58:38 -0500
+
+esound (0.2.17-4) frozen unstable; urgency=low
+
+  * Fixed a bug in the esddsp shellscript, closes: #58871
+
+ -- Brian M. Almeida <bma at debian.org>  Thu, 24 Feb 2000 16:10:02 -0500
+
+esound (0.2.17-3) frozen unstable; urgency=medium
+
+  * Fix Build-Depends (change libaudiofile0-dev to libaudiofile-dev,
+    only depend on libasoun0.4 on i386 and sparc), closes: #58295
+
+ -- Brian M. Almeida <bma at debian.org>  Thu, 17 Feb 2000 08:12:30 -0500
+
+esound (0.2.17-2) frozen unstable; urgency=medium
+
+  * Security fix, needs to go into potato
+  * Change esd to use TCP/IP and turn off UNIX domain sockets, closes: #58054 
+
+ -- Brian M. Almeida <bma at debian.org>  Wed, 16 Feb 2000 16:14:33 -0500
+
+esound (0.2.17-1) frozen unstable; urgency=medium
+
+  * New upstream version
+  * Contains security fixes only, needs to go into potato
+
+ -- Brian M. Almeida <bma at debian.org>  Fri,  4 Feb 2000 15:14:44 -0500
+
+esound (0.2.16-4) unstable; urgency=low
+
+  * Added debhelper to Build-Depends
+
+ -- Brian M. Almeida <bma at debian.org>  Thu, 13 Jan 2000 10:35:05 -0500
+
+esound (0.2.16-3) unstable; urgency=low
+
+  * Policy version 3.1.1 
+  * Added Build-Depends
+
+ -- Brian M. Almeida <bma at debian.org>  Thu, 13 Jan 2000 10:04:23 -0500
+
+esound (0.2.16-2) unstable; urgency=low
+
+  * Fixed esddsp to use newest shlibs, removed some code from
+    esddsp.c that didn't make sense with unix domain sockets, closes: #53602
+
+ -- Brian M. Almeida <bma at debian.org>  Tue, 28 Dec 1999 09:46:47 -0500
+
+esound (0.2.16-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Brian M. Almeida <bma at debian.org>  Wed, 22 Dec 1999 14:38:10 -0500
+
+esound (0.2.15-14) unstable; urgency=low
+
+  * Build in seperate directories, thanks to Adam Heath <doogie at debian.org>
+    for telling me about the ../configure trick, closes: #53246, #53248
+    Closes: #53249, #53278
+
+ -- Brian M. Almeida <bma at debian.org>  Wed, 22 Dec 1999 07:18:11 -0500
+
+esound (0.2.15-13) unstable; urgency=low
+
+  * Patch from Richard Guenther to chdir to a "safe" directory, closes: #51959
+  * Convert esound.sgml to HTML, closes: #52188
+  * esd-config may not be in -dev, but it is in -common, which -dev
+    now Depends: on, closes: #52208
+  * Loosen dependencies again, closes: #52232
+  * Merged in patch from NMU, closes: #52443
+
+ -- Brian M. Almeida <bma at debian.org>  Mon, 20 Dec 1999 15:49:21 -0500
+
+esound (0.2.15-12.1) unstable; urgency=low
+
+  * Non maintainer upload during the bugsquashing party.
+  * Applied the patch from Roman to debian/rules. Closes: #52443
+
+ -- Raphael Hertzog <hertzog at debian.org>  Sun, 19 Dec 1999 21:16:25 +0100
+
+esound (0.2.15-12) unstable; urgency=medium
+
+  * Changed priority of the *alsa* packages to extra, since alsa is extra
+
+ -- Brian M. Almeida <bma at debian.org>  Sun,  5 Dec 1999 13:46:50 -0500
+
+esound (0.2.15-11) unstable; urgency=medium
+
+  * Removed restriction on shlibs, closes: #51873 
+
+ -- Brian M. Almeida <bma at debian.org>  Sun,  5 Dec 1999 08:46:41 -0500
+
+esound (0.2.15-10) unstable; urgency=medium
+
+  * Added conflicts (libesd0-dev << 0.2.15-8) on esound-common, closes: #51791 
+
+ -- Brian M. Almeida <bma at debian.org>  Thu,  2 Dec 1999 07:23:58 -0500
+
+esound (0.2.15-9) unstable; urgency=medium
+
+  * Moved debconf templates into esound-common, closes: #51585, #51759
+  * Only compile ALSA packages on i386 and sparc, closes: #51699
+
+ -- Brian M. Almeida <bma at debian.org>  Wed,  1 Dec 1999 22:09:35 -0500
+
+esound (0.2.15-8) unstable; urgency=medium
+
+  * Make esound-alsa, split common data between esound and esound-alsa
+    into esound-common (closes: #50941)
+
+ -- Brian M. Almeida <bma at debian.org>  Tue, 23 Nov 1999 11:55:03 -0500
+
+esound (0.2.15-7) unstable; urgency=medium
+
+  * Removed remark about default setting in postinst, closes: #49961 
+
+ -- Brian M. Almeida <bma at debian.org>  Fri, 12 Nov 1999 11:07:19 -0500
+
+esound (0.2.15-6) unstable; urgency=medium
+
+  * Include *.a files, oops 
+
+ -- Brian M. Almeida <bma at debian.org>  Thu, 11 Nov 1999 00:09:26 -0500
+
+esound (0.2.15-5) unstable; urgency=medium
+
+  * Ask questions in debconf's config script, closes: #49511
+
+ -- Brian M. Almeida <bma at debian.org>  Sun,  7 Nov 1999 19:06:29 -0500
+
+esound (0.2.15-4) unstable; urgency=medium
+
+  * Applied patch for PPC architectures, closes: #49086 
+
+ -- Brian M. Almeida <bma at debian.org>  Fri,  5 Nov 1999 08:42:14 -0500
+
+esound (0.2.15-3) unstable; urgency=medium
+
+  * Updated versions of config.guess and config.sub, hopefully
+    this will fix bug#49086 (PowerPC people, please test!) 
+
+ -- Brian M. Almeida <bma at debian.org>  Thu,  4 Nov 1999 14:38:54 -0500
+
+esound (0.2.15-2) unstable; urgency=low
+
+  * Added manpages for all programs (pod owns!), closes: #39486, #39478
+  * References correct doc-base path, closes: #47742
+  * Compiles static library (fixed in last release), closes: #47928
+
+ -- Brian M. Almeida <bma at debian.org>  Thu,  4 Nov 1999 14:03:46 -0500
+
+esound (0.2.15-1) unstable; urgency=low
+
+  * New maintainer (ping, pong, ping, pong)
+  * New upstream version, closes: #47506, #48276
+  * Uses debconf, closes #47617 
+  * Compiled with --with-libwrap, closes: #49042
+  * Simplified debian/rules
+
+ -- Brian M. Almeida <bma at debian.org>  Wed,  3 Nov 1999 21:08:16 -0500
+
+esound (0.2.14-0.2) unstable; urgency=low
+
+  * New maintainer
+  * Non-maintainer release for new maintainer :)
+  * New upstream version, closes: #44139
+  * Fixed bad perms on /tmp/.esd, closes: #41454
+  * esound now depends on libesd0, closes: #45682
+  * esddsp now uses correct library versions, closes: #46466
+  * applied patch to esd.m4, closes: #42527
+  * Inform user how to rerun config script, closes: #40962
+  * Updated to standards 3.0.1.1
+  * Updated to FHS
+
+ -- Brian M. Almeida <bma at debian.org>  Wed,  6 Oct 1999 08:33:14 -0400
+
+esound (0.2.14-0.1) unstable; urgency=low
+
+  * New upstream version NMU for gnome-1.0.50
+
+ -- Michael Alan Dorman <mdorman at debian.org>  Wed, 29 Sep 1999 16:06:47 -0400
+
+esound (0.2.10-0.19990424.6.2) unstable; urgency=medium
+
+  * Non-Maintainer Upload
+  * Conditionalized the ARCH variable thing for Alpha (so as not to break
+    HURD)
+
+ -- David Huggins-Daines <dhd at debian.org>  Sat,  3 Jul 1999 13:50:09 -0400
+
+esound (0.2.10-0.19990424.6.1) unstable; urgency=medium
+
+  * Non-Maintainer Upload
+  * Recompiled without ALSA (both to make GNOME work again, and because
+    this is a policy violation)
+  * Also added an ARCH variable to make Alpha compiles work better.
+
+ -- David Huggins-Daines <dhd at debian.org>  Sat,  3 Jul 1999 01:21:13 -0400
+
+esound (0.2.10-0.19990424.6) unstable; urgency=low
+
+  * Made /usr/sbin/esdconfig executable (closes: #39187)
+  * Applied esdlib.c cleanup patch from BTS (closes: #39188) 
+
+ -- Brian M. Almeida <bma at debian.org>  Wed,  9 Jun 1999 10:20:04 -0400
+
+esound (0.2.10-0.19990424.5) unstable; urgency=low
+
+  * Added esdconfig script to configure /etc/esound/esd.conf (closes: #38707)
+
+ -- Brian M. Almeida <bma at debian.org>  Sun,  6 Jun 1999 22:27:51 -0400
+
+esound (0.2.10-0.19990424.4) unstable; urgency=medium
+
+  * Ok, REALLY fixed the doc-base stuff (closes: #38208, #38223) 
+     + Added shebang to libesd0.prerm ("oops?")
+     + Use correct name of document
+
+ -- Brian M. Almeida <bma at debian.org>  Mon, 24 May 1999 07:28:19 -0400
+
+esound (0.2.10-0.19990424.3) unstable; urgency=low
+
+  * Fixed incorrect doc-base commands (closes: #37976) 
+
+ -- Brian M. Almeida <bma at debian.org>  Sat, 22 May 1999 22:25:07 -0400
+
+esound (0.2.10-0.19990424.2) unstable; urgency=low
+
+  * use -V option of dh_makeshlibs (closes: #37646)
+
+ -- Brian M. Almeida <bma at debian.org>  Mon, 17 May 1999 22:54:28 -0400
+
+esound (0.2.10-0.19990424.1) unstable; urgency=low
+
+  * Fixed dual instance of libaudiofile0 in esound's Depends: 
+
+ -- Brian M. Almeida <bma at debian.org>  Tue, 27 Apr 1999 07:23:31 -0400
+
+esound (0.2.10-0.19990424) unstable; urgency=low
+
+  * Upstream CVS release
+  * Don't use -as 2 as default anymore (esddsp issues)
+  * esddsp.in - don't try to connect to esound if it's not running
+  * Added postinst script for esound, kills esd processes if running,
+    will be respawned by esdlib upon next access (closes: #36163)
+
+ -- Brian M. Almeida <bma at debian.org>  Sat, 24 Apr 1999 18:07:48 -0400
+
+esound (0.2.8-4) unstable; urgency=low
+
+  * Applied upstream patches
+    * Uses Unix domain sockets by default, for less sound breakup
+    * esd now has a conf file (/etc/esd.conf or ~/.esd.conf)
+    * Uses INADDR constants instead of inet_addr calls
+    * More miscellaneous stuff, see /usr/doc/esound/changelog.gz 
+  * Added esd.conf conffile
+  * Bumped standards version to 2.5.0.0
+  * Updated debian/copyright
+  * Added /usr/doc/esound/esound.sgml, registers with doc-base
+
+ -- Brian M. Almeida <bma at debian.org>  Wed, 14 Apr 1999 18:49:45 -0400
+
+esound (0.2.8-3) unstable; urgency=low
+
+  * libesd0-dev depends on libaudiofile-dev. closes: #35322 
+
+ -- Brian M. Almeida <bma at debian.org>  Wed, 31 Mar 1999 07:00:16 -0500
+
+esound (0.2.8-2) unstable; urgency=low
+
+  * Added Author's name and email in copyright (#34183)
+
+ -- Brian M. Almeida <bma at debian.org>  Sat,  6 Mar 1999 22:28:15 -0500
+
+esound (0.2.8-1) unstable; urgency=low
+
+  * New upstream release 
+
+ -- Brian M. Almeida <bma at debian.org>  Sat, 20 Feb 1999 13:19:08 -0500
+
+esound (0.2.7-0.19990216) unstable; urgency=low
+
+  * Fixed rpath stuff
+  * Updated to 19990216 snapshot
+
+ -- Brian M. Almeida <bma at debian.org>  Tue, 16 Feb 1999 08:44:37 -0500
+
+esound (0.2.7-0.19990209) unstable; urgency=low
+
+  * CVS snapshot release for GNOME stuff (#32575) 
+
+ -- Brian M. Almeida <bma at debian.org>  Tue,  9 Feb 1999 23:21:44 -0500
+
+esound (0.2.6-4) unstable; urgency=low
+
+  * Fixes bug #30283 (esd.m4 not included in -dev package)
+
+ -- Brian M. Almeida <bma at debian.org>  Wed,  3 Dec 1998 08:22:00 -0500
+
+esound (0.2.6-3) frozen unstable; urgency=low
+
+  * Fixes bug #29761
+
+ -- Brian M. Almeida <bma at debian.org>  Fri, 20 Oct 1998 08:12:00 -0500
+
+esound (0.2.6-2) unstable; urgency=low
+
+  * Most odd, disntall complained about there being an esound 0.2.6-1.
+    I'm still puzzling over that one.  Anyways, here's one to override it.
+
+ -- Brian M. Almeida <bma at debian.org>  Mon,  9 Oct 1998 16:21:00 -0400
+
+esound (0.2.6-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Brian M. Almeida <bma at debian.org>  Sat, 31 Oct 1998 01:21:00 -0400
+
+esound (0.2.5-5) unstable; urgency=low
+
+  * Added libaudiofile0 dependency on esound so it can use esdplay
+
+ -- Brian M. Almeida <bma at debian.org>  Wed, 14 Oct 1998 20:21:00 -0400
+
+esound (0.2.5-4) unstable; urgency=low
+
+  * Changed Recommends: esound to Suggests: esound in debian/control (#27907)
+
+ -- Brian M. Almeida <bma at debian.org>  Wed, 14 Oct 1998 15:00:00 -0400
+
+esound (0.2.5-3) unstable; urgency=low
+
+  * Fixed debian/control to put esound in the correct sections
+
+ -- Brian M. Almeida <bma at debian.org>  Wed,  6 Oct 1998 13:45:00 -0400
+
+esound (0.2.5-2) unstable; urgency=low
+
+  * Doh! Forgot to change Maintainer: in debian/control
+  * Cleaned up debian/rules to use debhelper correctly.
+
+ -- Brian M. Almeida <bma at debian.org>  Mon,  5 Oct 1998 13:50:00 -0400
+
+esound (0.2.5-1) unstable; urgency=low
+
+  * New maintainer.
+
+ -- Brian M. Almeida <bma at debian.org>  Wed, 30 Sep 1998 20:18:38 -0400
+
+esound (0.2.5-0.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * New upstream release from CVS snapshot 19980929, needed for new
+    release of eMusic (esd_close() function needed).  0.2.5-final 
+    will be released after some more testing.  
+  * The buzzing sound has been fixed...yay!
+
+ -- Brian M. Almeida <bma at debian.org>  Thu, 29 Sep 1998 18:18:38 -0400
+
+esound (0.2.4-0.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * New upstream release.
+
+ -- Brian M. Almeida <bma at debian.org>  Tue, 14 Jul 1998 23:49:38 -0400
+
+esound (0.2.1-2) unstable; urgency=low
+
+  * Updated esd.h so it didn't include the local config.h file
+  * Fixed copyright file.
+
+ -- Scott K. Ellis <scott at debian.org>  Mon,  8 Jun 1998 14:49:38 -0400
+
+esound (0.2.1-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Scott K. Ellis <scott at debian.org>  Mon,  8 Jun 1998 13:35:35 -0400

Added: desktop/experimental/esound/debian/compat
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/compat?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/compat (added)
+++ desktop/experimental/esound/debian/compat Sat Nov 15 05:29:37 2008
@@ -1,0 +1,1 @@
+5

Added: desktop/experimental/esound/debian/control
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/control?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/control (added)
+++ desktop/experimental/esound/debian/control Sat Nov 15 05:29:37 2008
@@ -1,0 +1,78 @@
+Source: esound
+Section: sound
+Priority: optional
+Maintainer: Josselin Mouette <joss at debian.org>
+Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers at lists.alioth.debian.org>
+Standards-Version: 3.8.0
+Build-Depends: libaudiofile-dev (>= 0.1.5),
+               libasound2-dev | not+linux,
+               libwrap0-dev,
+               debhelper (>> 5),
+               cdbs,
+               gnome-pkg-tools (>= 0.7),
+               type-handling,
+               quilt
+
+Package: esound
+Architecture: any
+Depends: ${shlibs:Depends}, esound-common (>= ${source:Version})
+Description: Enlightened Sound Daemon - Support binaries
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+
+Package: esound-clients
+Architecture: any
+Depends: ${shlibs:Depends}, esound-common (>= ${source:Version})
+Conflicts: libesd0 (<< 0.2.40-1), libesd-alsa0 (<< 0.2.40-1)
+Description: Enlightened Sound Daemon - clients
+ Utilities that control and interact with the Enlightened Sound Daemon.
+
+Package: esound-common
+Architecture: all
+Recommends: esound-clients
+Description: Enlightened Sound Daemon - Common files
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+ .
+ This package contains the documentation and configuration files.
+
+Package: libesd0
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, esound-common (>= ${source:Version})
+Recommends: esound-clients
+Conflicts: esound-clients (<< 0.2.36-1)
+Suggests: esound
+Description: Enlightened Sound Daemon - Shared libraries
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+ .
+ This package is for use with OSS sound drivers.
+
+Package: libesd0-dev
+Architecture: any
+Section: libdevel
+Depends: libesd0 (= ${binary:Version}) | libesd-alsa0 (= ${binary:Version}), 
+         libaudiofile-dev (>= 0.1.5),
+         esound-common (>= ${source:Version})
+Description: Enlightened Sound Daemon - Development files
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+ .
+ This package contains the header files needed to compile applications that
+ use libesd0.
+
+Package: libesd-alsa0
+Architecture: alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc
+Section: libs
+Depends: ${shlibs:Depends}, esound-common (>= ${source:Version})
+Suggests: esound
+Priority: extra
+Recommends: esound-clients
+Conflicts: libesd0, esound-clients (<< 0.2.36-1)
+Provides: libesd0
+Description: Enlightened Sound Daemon (ALSA) - Shared libraries
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+ .
+ This package is for use with ALSA sound drivers.

Added: desktop/experimental/esound/debian/control.in
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/control.in?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/control.in (added)
+++ desktop/experimental/esound/debian/control.in Sat Nov 15 05:29:37 2008
@@ -1,0 +1,78 @@
+Source: esound
+Section: sound
+Priority: optional
+Maintainer: Josselin Mouette <joss at debian.org>
+Uploaders: @GNOME_TEAM@
+Standards-Version: 3.8.0
+Build-Depends: libaudiofile-dev (>= 0.1.5),
+               libasound2-dev | not+linux,
+               libwrap0-dev,
+               debhelper (>> 5),
+               cdbs,
+               gnome-pkg-tools (>= 0.7),
+               type-handling,
+               quilt
+
+Package: esound
+Architecture: any
+Depends: ${shlibs:Depends}, esound-common (>= ${source:Version})
+Description: Enlightened Sound Daemon - Support binaries
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+
+Package: esound-clients
+Architecture: any
+Depends: ${shlibs:Depends}, esound-common (>= ${source:Version})
+Conflicts: libesd0 (<< 0.2.40-1), libesd-alsa0 (<< 0.2.40-1)
+Description: Enlightened Sound Daemon - clients
+ Utilities that control and interact with the Enlightened Sound Daemon.
+
+Package: esound-common
+Architecture: all
+Recommends: esound-clients
+Description: Enlightened Sound Daemon - Common files
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+ .
+ This package contains the documentation and configuration files.
+
+Package: libesd0
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, esound-common (>= ${source:Version})
+Recommends: esound-clients
+Conflicts: esound-clients (<< 0.2.36-1)
+Suggests: esound
+Description: Enlightened Sound Daemon - Shared libraries
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+ .
+ This package is for use with OSS sound drivers.
+
+Package: libesd0-dev
+Architecture: any
+Section: libdevel
+Depends: libesd0 (= ${binary:Version}) | libesd-alsa0 (= ${binary:Version}), 
+         libaudiofile-dev (>= 0.1.5),
+         esound-common (>= ${source:Version})
+Description: Enlightened Sound Daemon - Development files
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+ .
+ This package contains the header files needed to compile applications that
+ use libesd0.
+
+Package: libesd-alsa0
+Architecture: @ALSA_ARCHES@
+Section: libs
+Depends: ${shlibs:Depends}, esound-common (>= ${source:Version})
+Suggests: esound
+Priority: extra
+Recommends: esound-clients
+Conflicts: libesd0, esound-clients (<< 0.2.36-1)
+Provides: libesd0
+Description: Enlightened Sound Daemon (ALSA) - Shared libraries
+ This program is designed to mix together several digitized 
+ audio streams for playback by a single device.
+ .
+ This package is for use with ALSA sound drivers.

Added: desktop/experimental/esound/debian/copyright
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/copyright?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/copyright (added)
+++ desktop/experimental/esound/debian/copyright Sat Nov 15 05:29:37 2008
@@ -1,0 +1,50 @@
+This package was debianized by Brian M. Almeida bma at debian.org on
+Mon,  8 Jun 1998 13:35:35 -0400.
+
+It was downloaded from ftp://ftp.gnome.org/pub/GNOME/stable/sources/esound/
+
+Upstream authors:
+    Eric Mitchell <ricdude at toad.net>
+    David Schleef <ds at schleef.org>
+
+Copyright:
+    Copyright (C) 1998, 1999 Manish Singh <yosh at gimp.org>
+    Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
+        Free Software Foundation, Inc.
+    Copyright (C) 1998 Simon KÃ¥gedal
+
+License for the daemon (esd, package esound):
+
+    This package is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License version 2 as
+    published by the Free Software Foundation.
+
+    This package 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 General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this package; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL-2'.
+
+License for the other components:
+
+    This package 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; version 2.
+
+    This package 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 this package; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+On Debian systems, the complete text of the GNU Lesser General
+Public License can be found in `/usr/share/common-licenses/LGPL-2'.

Added: desktop/experimental/esound/debian/esound-clients.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/esound-clients.install?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/esound-clients.install (added)
+++ desktop/experimental/esound/debian/esound-clients.install Sat Nov 15 05:29:37 2008
@@ -1,0 +1,3 @@
+debian/tmp/usr/lib/libesddsp.so.* usr/lib/esound
+debian/tmp/usr/bin/esd[a-z]*
+debian/tmp/usr/share/man/man1/esd[a-z]*.1

Added: desktop/experimental/esound/debian/esound-clients.mime
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/esound-clients.mime?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/esound-clients.mime (added)
+++ desktop/experimental/esound/debian/esound-clients.mime Sat Nov 15 05:29:37 2008
@@ -1,0 +1,3 @@
+audio/basic; /usr/bin/esdplay %s
+audio/x-wav; /usr/bin/esdplay %s
+audio/x-aiff; /usr/bin/esdplay %s

Added: desktop/experimental/esound/debian/esound-common.README.Debian
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/esound-common.README.Debian?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/esound-common.README.Debian (added)
+++ desktop/experimental/esound/debian/esound-common.README.Debian Sat Nov 15 05:29:37 2008
@@ -1,0 +1,58 @@
+esound for Debian
+-----------------
+
+When using the -tcp option
+--------------------------
+
+Q: I get the error message "unable to bind port 16001"
+
+A:	1. esd is already running, bound to port 16001.
+	2. TCP/IP networking is not configured.  You need at least the lo
+	   interface configured for esound to work.
+	   To configure the interface, try ifup lo
+	   If that does not work, try ifconfig lo 127.0.0.1
+
+Q: Applications saying they can't connect to esd?
+
+A:	1. Ensure that esd is running, or is set to autospawn.  You can
+	   set it back to autospawn by editing /etc/esound/esd.conf
+	2. Ensure that TCP wrappers allow the connection.  If a default is
+	   specified to deny all traffic, ESD will be denied.
+	3. If you are trying to do remote esd, make sure -public is specified
+	   when starting ESD on the server end (the one with sound hardware)
+	   and that TCP wrappers will allow the remote connection.
+
+Q: Why does esound not default to autospawn?
+
+A: esound used to default to autospawning, which means that programs
+would try to start the esd daemon if it wasn't running.  The problem
+is, if you don't have sound hardware correctly setup, esd would take a
+long time to try opening the sound device(s) at all possible supported
+rates, and people would think that the Gnome desktop had "hung" for
+two minutes.
+
+Q: Why don't you make it configurable, like it used to be?
+
+A: esd.conf is a conffile, and you can edit it if you want the default to be
+autospawning.  I've set up the default to work with Gnome and esound, the
+main two users of libesd.  As esd.conf is a conffile, it can't be edited
+by maintainer scripts, including debconf.  The question is also a very
+confusing one for new users, so I think it is much better if the default
+works with the users of libesd, and experts can edit the conffile to turn
+on autospawning if they like.
+
+Q: Esound should be a daemon, that's what the D is for in esd, right?
+
+A: Esound was designed mainly to be used as a "daemon" that is started on each
+login session, and ended when the user logs off, much like the other gnome
+bits (gconf, oaf, etc).  While it can be used as a system daemon and stay
+running all the time, it does open some security issues for a multi-user
+system.  The default of upstream and this packaging is for a multi-user system
+with users allowed to use audio in the audio group.
+
+Q: esddsp hangs when I use it with <blah> application!
+
+A: esddsp is a set of wrappers around libc functions, including open, fopen,
+close, and fclose.  These wrappers are NOT thread safe, so when using them
+with a threaded program, you often end up with the application hanging.
+This hasn't been fixed yet. (patches welcome)

Added: desktop/experimental/esound/debian/esound-common.doc-base
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/esound-common.doc-base?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/esound-common.doc-base (added)
+++ desktop/experimental/esound/debian/esound-common.doc-base Sat Nov 15 05:29:37 2008
@@ -1,0 +1,12 @@
+Document: esound
+Title: EsounD - The Enlightened Sound Daemon
+Author: Eric 'Ricdude Mitchell
+Abstract:  The Enlightened Sound Daemon can mix several audio streams 
+ into one sound device. It will mix in pre-loaded samples, too. Want to 
+ play a frightening sound whenever the user presses the "go" button? No 
+ problem, just cache it, and play it back by sample id number. 
+Section: Sound
+
+Format: HTML
+Index: /usr/share/doc/esound-common/html/index.html
+Files: /usr/share/doc/esound-common/html/*.html

Added: desktop/experimental/esound/debian/esound-common.docs
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/esound-common.docs?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/esound-common.docs (added)
+++ desktop/experimental/esound/debian/esound-common.docs Sat Nov 15 05:29:37 2008
@@ -1,0 +1,1 @@
+NEWS README TODO TIPS

Added: desktop/experimental/esound/debian/esound-common.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/esound-common.install?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/esound-common.install (added)
+++ desktop/experimental/esound/debian/esound-common.install Sat Nov 15 05:29:37 2008
@@ -1,0 +1,2 @@
+debian/tmp/etc
+debian/tmp/usr/share/doc/esound/* usr/share/doc/esound-common/html

Added: desktop/experimental/esound/debian/esound.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/esound.install?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/esound.install (added)
+++ desktop/experimental/esound/debian/esound.install Sat Nov 15 05:29:37 2008
@@ -1,0 +1,2 @@
+debian/tmp/usr/bin/esd
+debian/tmp/usr/share/man/man1/esd.1

Added: desktop/experimental/esound/debian/libesd-alsa0.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/libesd-alsa0.install?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/libesd-alsa0.install (added)
+++ desktop/experimental/esound/debian/libesd-alsa0.install Sat Nov 15 05:29:37 2008
@@ -1,0 +1,1 @@
+debian/tmp-alsa/usr/lib/libesd.so.* usr/lib

Added: desktop/experimental/esound/debian/libesd0-dev.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/libesd0-dev.install?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/libesd0-dev.install (added)
+++ desktop/experimental/esound/debian/libesd0-dev.install Sat Nov 15 05:29:37 2008
@@ -1,0 +1,8 @@
+debian/tmp/usr/lib/*.so
+debian/tmp/usr/lib/*.la
+debian/tmp/usr/lib/*.a
+debian/tmp/usr/include
+debian/tmp/usr/bin/esd-config
+debian/tmp/usr/share/aclocal
+debian/tmp/usr/share/man/man1/esd-config.1
+debian/tmp/usr/lib/pkgconfig

Added: desktop/experimental/esound/debian/libesd0.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/libesd0.install?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/libesd0.install (added)
+++ desktop/experimental/esound/debian/libesd0.install Sat Nov 15 05:29:37 2008
@@ -1,0 +1,1 @@
+debian/tmp/usr/lib/libesd.so.*

Added: desktop/experimental/esound/debian/patches/01_relocate_libesddsp.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/01_relocate_libesddsp.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/01_relocate_libesddsp.patch (added)
+++ desktop/experimental/esound/debian/patches/01_relocate_libesddsp.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,15 @@
+Debian #220058
+
+Index: esound-0.2.40/esddsp.in
+===================================================================
+--- esound-0.2.40.orig/esddsp.in	2008-11-15 01:50:52.000000000 +0100
++++ esound-0.2.40/esddsp.in	2008-11-15 01:51:50.000000000 +0100
+@@ -106,7 +106,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ 
+-LD_PRELOAD="libesddsp.so. at ESD_MAJOR_VERSION@ libesd.so. at ESD_MAJOR_VERSION@ $LD_PRELOAD"
++LD_PRELOAD="@pkglibdir@/libesddsp.so. at ESD_MAJOR_VERSION@ libesd.so. at ESD_MAJOR_VERSION@ $LD_PRELOAD"
+ export LD_PRELOAD
+ 
+ # invoke the program with the args given

Added: desktop/experimental/esound/debian/patches/02_audiofile_supported.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/02_audiofile_supported.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/02_audiofile_supported.patch (added)
+++ desktop/experimental/esound/debian/patches/02_audiofile_supported.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,32 @@
+Debian #318145
+
+Index: esound-0.2.40/configure.ac
+===================================================================
+--- esound-0.2.40.orig/configure.ac	2008-11-15 01:59:30.000000000 +0100
++++ esound-0.2.40/configure.ac	2008-11-15 01:59:45.000000000 +0100
+@@ -362,7 +362,7 @@
+ 
+ build_esdplay=false
+ 
+-PKG_CHECK_MODULES(AUDIOFILE, [audiofile >= 0.1.5])
++PKG_CHECK_MODULES(AUDIOFILE, [audiofile >= 0.2.3])
+ 
+ CFLAGS="$CFLAGS $AUDIOFILE_CFLAGS"
+ LIBS="$LIBS $AUDIOFILE_LIBS"
+Index: esound-0.2.40/esdfile.c
+===================================================================
+--- esound-0.2.40.orig/esdfile.c	2008-11-15 01:59:58.000000000 +0100
++++ esound-0.2.40/esdfile.c	2008-11-15 02:01:03.000000000 +0100
+@@ -69,7 +69,11 @@
+ 
+     /* This check was added because audiofile doesn't tell us whether or
+      * not it will play compressed audio correctly. */
+-    if ( in_compression != AF_COMPRESSION_NONE )
++    if ( in_compression != AF_COMPRESSION_NONE &&
++	 in_compression != AF_COMPRESSION_G711_ULAW &&
++	 in_compression != AF_COMPRESSION_G711_ALAW &&
++	 in_compression != AF_COMPRESSION_IMA &&
++	 in_compression != AF_COMPRESSION_MS_ADPCM)
+     {
+ 	/* fputs ("compressed audio not supported supported\n", stderr); */
+ 	return 0;

Added: desktop/experimental/esound/debian/patches/03_nosleep.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/03_nosleep.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/03_nosleep.patch (added)
+++ desktop/experimental/esound/debian/patches/03_nosleep.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,23 @@
+Debian #81398 and #103772
+
+Index: esound-0.2.40/proto.c
+===================================================================
+--- esound-0.2.40.orig/proto.c	2008-11-15 04:55:13.000000000 +0100
++++ esound-0.2.40/proto.c	2008-11-15 04:55:17.000000000 +0100
+@@ -337,14 +337,14 @@
+ 	/* let the device know we want to record */
+ 	ESDBG_TRACE( printf( "closing audio for a sec...\n" ); );
+ 	esd_audio_close();
+-	sleep(1);
++	usleep(100);
+ 	esd_audio_format |= ESD_RECORD;
+ 	ESDBG_TRACE( printf( "reopening audio to record...\n" ); );
+ 	if (esd_audio_open() < 0) {
+             /* Failed to record */
+             free_player( recorder );
+             esd_audio_format &= ~ESD_RECORD;
+-            sleep(1);
++            usleep(100);
+             /* If we fail here, we have a oops */
+             esd_audio_open();
+             return 0;

Added: desktop/experimental/esound/debian/patches/04_missing_header.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/04_missing_header.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/04_missing_header.patch (added)
+++ desktop/experimental/esound/debian/patches/04_missing_header.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,12 @@
+Index: esound-0.2.40/esd-server.h
+===================================================================
+--- esound-0.2.40.orig/esd-server.h	2008-11-15 03:17:31.000000000 +0100
++++ esound-0.2.40/esd-server.h	2008-11-15 03:17:43.000000000 +0100
+@@ -15,6 +15,7 @@
+ #include <sys/ioctl.h>
+ #include <netinet/in.h>
+ #include <sys/socket.h>
++#include <sys/un.h>
+ #include <signal.h>
+ #include <sys/time.h>
+ #include <sys/types.h>

Added: desktop/experimental/esound/debian/patches/05_esdfilt_info.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/05_esdfilt_info.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/05_esdfilt_info.patch (added)
+++ desktop/experimental/esound/debian/patches/05_esdfilt_info.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,12 @@
+Index: esound-0.2.40/esdfilt.c
+===================================================================
+--- esound-0.2.40.orig/esdfilt.c	2008-11-15 03:24:05.000000000 +0100
++++ esound-0.2.40/esdfilt.c	2008-11-15 03:24:17.000000000 +0100
+@@ -51,6 +51,7 @@
+ 	    printf( "halving data\n" );
+ 	} else if ( !strcmp( "-double", argv[ arg ] ) ) {
+ 	    twice = 1;
++	    printf( "doubling data\n" );
+ 	} else {
+ 	    target = fopen( argv[arg], "w" );
+ 	    if (!target) {

Added: desktop/experimental/esound/debian/patches/06_alsa_hw_free.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/06_alsa_hw_free.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/06_alsa_hw_free.patch (added)
+++ desktop/experimental/esound/debian/patches/06_alsa_hw_free.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,23 @@
+From 0.2.36-1ubuntu5
+
+Index: esound-0.2.40/audio_alsa09.c
+===================================================================
+--- esound-0.2.40.orig/audio_alsa09.c	2008-11-15 04:55:13.000000000 +0100
++++ esound-0.2.40/audio_alsa09.c	2008-11-15 04:55:22.000000000 +0100
+@@ -389,10 +389,14 @@
+ 		print_state();
+ 	}
+ 
+-	if (alsa_playback_handle != NULL)
++	if (alsa_playback_handle != NULL) {
++		snd_pcm_hw_free( alsa_playback_handle );
+ 		snd_pcm_close( alsa_playback_handle );
+-	if (alsa_capture_handle != NULL)
++	}
++	if (alsa_capture_handle != NULL) {
++		snd_pcm_hw_free( alsa_capture_handle );
+ 		snd_pcm_close(alsa_capture_handle);
++	}
+ 	alsa_playback_handle = NULL;
+ 	alsa_capture_handle = NULL;
+ }

Added: desktop/experimental/esound/debian/patches/07_overflow_safeguards.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/07_overflow_safeguards.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/07_overflow_safeguards.patch (added)
+++ desktop/experimental/esound/debian/patches/07_overflow_safeguards.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,29 @@
+Index: esound-0.2.40/esd.c
+===================================================================
+--- esound-0.2.40.orig/esd.c	2008-11-15 05:57:48.000000000 +0100
++++ esound-0.2.40/esd.c	2008-11-15 05:58:45.000000000 +0100
+@@ -255,7 +255,8 @@
+ 
+   /* set the connect information */
+   socket_unix.sun_family = AF_UNIX;
+-  strncpy(socket_unix.sun_path, ESD_UNIX_SOCKET_NAME, sizeof(socket_unix.sun_path));
++  strncpy(socket_unix.sun_path, ESD_UNIX_SOCKET_NAME, sizeof(socket_unix.sun_path)-1);
++  socket_unix.sun_path[sizeof(socket_unix.sun_path)-1] = '\0';
+   if ( connect( socket_out,
+ 	       (struct sockaddr *) &socket_unix, SUN_LEN(&socket_unix) ) < 0 )
+     return -1;
+Index: esound-0.2.40/esddsp.c
+===================================================================
+--- esound-0.2.40.orig/esddsp.c	2008-11-15 05:58:57.000000000 +0100
++++ esound-0.2.40/esddsp.c	2008-11-15 05:59:04.000000000 +0100
+@@ -132,8 +132,9 @@
+       const char *str;
+      
+       str = getenv ("ESDDSP_NAME");
+-      ident = malloc (ESD_NAME_MAX);
++      ident = malloc (ESD_NAME_MAX+1);
+       strncpy (ident, (str ? str : "esddsp"), ESD_NAME_MAX);
++      ident[ESD_NAME_MAX] = '\0';
+ 
+       str = getenv("ESDDSP_MMAP");
+       mmapemu = str && !strcmp(str,"1");

Added: desktop/experimental/esound/debian/patches/08_kill_sigterm.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/08_kill_sigterm.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/08_kill_sigterm.patch (added)
+++ desktop/experimental/esound/debian/patches/08_kill_sigterm.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,22 @@
+Index: esound-0.2.40/esd.c
+===================================================================
+--- esound-0.2.40.orig/esd.c	2008-11-15 04:55:26.000000000 +0100
++++ esound-0.2.40/esd.c	2008-11-15 04:55:29.000000000 +0100
+@@ -867,7 +867,7 @@
+   if (itmp == -2) { /* Special return value indicates that opening the device failed. Don't bother
+ 		       trying */
+     if(esd_spawnpid)
+-      kill(esd_spawnpid, SIGALRM); /* Startup failed */
++      kill(esd_spawnpid, SIGTERM); /* Startup failed */
+     
+     if(esd_spawnfd) {
+ 	char c = 0; /* Startup failed */
+@@ -951,7 +951,7 @@
+ 			rmdir(ESD_UNIX_SOCKET_DIR);
+ 		      }
+ 		    if(esd_spawnpid)
+-		      kill(esd_spawnpid, SIGALRM); /* Startup failed */
++		      kill(esd_spawnpid, SIGTERM); /* Startup failed */
+ 
+ 		    if(esd_spawnfd) {
+ 			char c = 0; /* Startup failed */

Added: desktop/experimental/esound/debian/patches/09_spawn_nobeeps.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/09_spawn_nobeeps.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/09_spawn_nobeeps.patch (added)
+++ desktop/experimental/esound/debian/patches/09_spawn_nobeeps.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,13 @@
+Index: esound-0.2.40/esd.c
+===================================================================
+--- esound-0.2.40.orig/esd.c	2008-11-15 04:58:08.000000000 +0100
++++ esound-0.2.40/esd.c	2008-11-15 04:58:27.000000000 +0100
+@@ -983,7 +983,7 @@
+ 
+     /* send some sine waves just to check the sound connection */
+     i = 0;
+-    if ( esd_beeps ) {
++    if ( !esd_spawnfd && esd_beeps ) {
+ 	magl = magr = ( (esd_audio_format & ESD_MASK_BITS) == ESD_BITS16)
+ 	    ? 30000 : 100;
+ 

Added: desktop/experimental/esound/debian/patches/10_nobeeps_nopause.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/10_nobeeps_nopause.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/10_nobeeps_nopause.patch (added)
+++ desktop/experimental/esound/debian/patches/10_nobeeps_nopause.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,20 @@
+Index: esound-0.2.40/esd.c
+===================================================================
+--- esound-0.2.40.orig/esd.c	2008-11-15 05:00:26.000000000 +0100
++++ esound-0.2.40/esd.c	2008-11-15 05:02:03.000000000 +0100
+@@ -997,14 +997,9 @@
+ 		esd_audio_write( output_buffer, esd_buf_size_octets );
+ 	    }
+ 	}
++	esd_audio_pause();
+     }
+ 
+-    /* put some stuff in the sound driver before pausing */
+-    esd_audio_write( NULL, 0);
+-
+-    /* pause the sound output */
+-    esd_audio_pause();
+-
+     /* Startup succeeded */
+     if(esd_spawnpid)
+       kill(esd_spawnpid, SIGUSR1);

Added: desktop/experimental/esound/debian/patches/11_close_spawnfd.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/11_close_spawnfd.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/11_close_spawnfd.patch (added)
+++ desktop/experimental/esound/debian/patches/11_close_spawnfd.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,12 @@
+Index: esound-0.2.40/esd.c
+===================================================================
+--- esound-0.2.40.orig/esd.c	2008-11-15 05:02:23.000000000 +0100
++++ esound-0.2.40/esd.c	2008-11-15 05:02:44.000000000 +0100
+@@ -1007,6 +1007,7 @@
+     if(esd_spawnfd) {
+ 	char c = 1; /* Startup succeeded */
+ 	write (esd_spawnfd, &c, 1);
++	close (esd_spawnfd);
+     }
+ 
+     /* until we kill the daemon */

Added: desktop/experimental/esound/debian/patches/12_esddsp_mmap64.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/12_esddsp_mmap64.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/12_esddsp_mmap64.patch (added)
+++ desktop/experimental/esound/debian/patches/12_esddsp_mmap64.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,69 @@
+Index: esound-0.2.40/esddsp.c
+===================================================================
+--- esound-0.2.40.orig/esddsp.c	2008-11-15 06:00:41.000000000 +0100
++++ esound-0.2.40/esddsp.c	2008-11-15 06:01:47.000000000 +0100
+@@ -653,14 +653,10 @@
+   return (*func) (fd);
+ }
+ 
+-void *
+-mmap (void  *start,  size_t length, int prot, int flags, int fd, off_t offset)
++static void *
++mmap_wrapper (void *(*func) (void *, size_t, int, int, int, off_t),
++              void  *start,  size_t length, int prot, int flags, int fd, off_t offset)
+ {
+-  static void *(*func) (void *, size_t, int, int, int, off_t) = NULL;
+-  
+-  if (!func)
+-    func = (void * (*) (void *, size_t, int, int, int, off_t)) dlsym (REAL_LIBC, "mmap");
+-
+   if(fd != sndfd || sndfd == -1)
+     return (*func)(start,length,prot,flags,fd,offset);
+   else
+@@ -680,6 +676,46 @@
+   return (void *)-1;
+ }
+ 
++void *
++mmap (void  *start,  size_t length, int prot, int flags, int fd, off_t offset)
++{
++  static void *(*func) (void *, size_t, int, int, int, off_t) = NULL;
++
++  DPRINTF ("mmap\n");
++
++  if (!func) 
++    {
++      func = (void * (*) (void *, size_t, int, int, int, off_t)) dlsym (REAL_LIBC, "mmap");
++      if (!func) 
++	{
++	  fprintf(stderr, "esddsp: error: Cannot find symbol 'mmap'\n");
++	  return NULL;
++	}
++    }
++
++  return mmap_wrapper(func, start, length, prot, flags, fd, offset);
++}
++
++void *
++mmap64 (void  *start,  size_t length, int prot, int flags, int fd, off_t offset)
++{
++  static void *(*func) (void *, size_t, int, int, int, off_t) = NULL;
++
++  DPRINTF ("mmap64\n");
++
++  if (!func) 
++    {
++      func = (void * (*) (void *, size_t, int, int, int, off_t)) dlsym (REAL_LIBC, "mmap64");
++      if (!func) 
++	{
++	  fprintf(stderr, "esddsp: error: Cannot find symbol 'mmap64'\n");
++	  return NULL;
++	}
++    }
++
++  return mmap_wrapper(func, start, length, prot, flags, fd, offset);
++}
++
+ int
+ munmap (void *start, size_t length)
+ {

Added: desktop/experimental/esound/debian/patches/13_esd_open_sound_host.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/13_esd_open_sound_host.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/13_esd_open_sound_host.patch (added)
+++ desktop/experimental/esound/debian/patches/13_esd_open_sound_host.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,53 @@
+  + esound (0.2.35-2ubuntu1) hoary; urgency=low
+    * esdlib.c:
+      - Do not modify host passed to esd_sound_open, because that is highly
+        offensive. (Fixes GStreamer using ESPEAKER.) Thanks to Jan Schmidt
+        who should take full credit for finding this bogon.
+
+Index: esound-0.2.40/esdlib.c
+===================================================================
+--- esound-0.2.40.orig/esdlib.c	2008-11-15 05:32:47.000000000 +0100
++++ esound-0.2.40/esdlib.c	2008-11-15 05:34:34.000000000 +0100
+@@ -825,15 +825,22 @@
+  * to ESD.
+  */
+ #define min(a,b) ( ( (a)<(b) ) ? (a) : (b) )
+-int esd_open_sound( const char *host )
++int esd_open_sound( const char *rhost )
+ {
+     int socket_out = -1;
+     int len;
+     char use_unix = 0;
+     char display_host[ 256 ];
+     const char *display;
++    char *host = NULL;
+ 
+-    if ( !host ) host = getenv("ESPEAKER");
++    if ( rhost )
++	host = strdup(rhost);
++    else {
++	char *espeaker = getenv("ESPEAKER");
++	if ( espeaker )
++	    host = strdup(espeaker);
++    }
+ 
+     display = getenv( "DISPLAY" );
+     if ( !(host && *host) && display ) {
+@@ -845,7 +852,8 @@
+ 	    len = min( len, 255 ); 
+ 	    strncpy( display_host, display, len );
+ 	    display_host[ len ] = '\0';
+-	    host = display_host;
++	    if ( host ) free(host);
++	    host = strdup(display_host);
+ 	}
+     }
+ 
+@@ -943,6 +951,7 @@
+ 	close(socket_out); socket_out = -1;
+     }
+ 
++    if ( host ) free(host);
+     return socket_out;
+ }
+ 

Added: desktop/experimental/esound/debian/patches/14_ld-preload_esdlib.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/14_ld-preload_esdlib.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/14_ld-preload_esdlib.patch (added)
+++ desktop/experimental/esound/debian/patches/14_ld-preload_esdlib.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,73 @@
+Debian #151434
+
+Index: esound-0.2.40/esdlib.c
+===================================================================
+--- esound-0.2.40.orig/esdlib.c	2008-11-15 06:02:01.000000000 +0100
++++ esound-0.2.40/esdlib.c	2008-11-15 06:06:41.000000000 +0100
+@@ -895,16 +895,42 @@
+ 
+ 	childpid = fork();
+ 	if(!childpid) {
++	    char *preload2;
++	    char *lib;
++	    char *cmd;
++
+ 	    /* child process */
+-	    if(!fork()) {
+-		/* child of child process */
+-		char *cmd;
++	    close (esd_pipe[0]);
++	    /*
++	     * pull libesddsp out of LD_PRELOAD if it is there
++	     */
++	    preload2 = getenv("LD_PRELOAD");
++	    if (preload2)
++		while ((lib = strstr(preload2,"libesddsp"))) {
++		    char *preload = preload2;
++		    char *start = preload;
++		    char *end   = preload+strcspn(preload," \t\n\0");
++		    int length;
++
++		    while(end < lib) {
++			start = end+1;
++			end   = start+strcspn(start,"\t\n\0");
++		    }
++		    length = (preload+strlen(preload))-(end+1);
++		    preload2 = malloc(11+(start-preload)+length);
++		    strcpy(preload2, "LD_PRELOAD=");
++		    strncat(preload2, preload, start-preload);
++		    strncat(preload2, end+1, length);
++		    putenv(preload2);
++		}
++	    cmd = malloc(strlen(SERVERDIR"/esd  -spawnfd 9999999999") + strlen(esd_spawn_options));
++	    sprintf(cmd, "%s/esd %s -spawnfd %d", SERVERDIR, esd_spawn_options, esd_pipe[1]);
+ 
++	    if(!fork()) {
++		/* child of child process.  Minimal so startup overhead is
++		 * not included in the waiting time
++		 */
+ 		setsid();
+-		cmd = malloc(strlen(SERVERDIR"/esd  -spawnfd 999999") + (esd_spawn_options?strlen(esd_spawn_options):0));
+-
+-		sprintf(cmd, "%s/esd %s -spawnfd %d", SERVERDIR, esd_spawn_options?esd_spawn_options:"", esd_pipe[1]);
+-
+ 		execl("/bin/sh", "/bin/sh", "-c", cmd, NULL);
+ 		perror("execl");
+ 		_exit(1);
+@@ -915,6 +941,7 @@
+ 	} else {
+ 	    int estat;
+ 
++	    close(esd_pipe[1]);
+ 	    while ((waitpid (childpid, &estat, 0)== -1) && (errno == EINTR));
+ 	}
+ 
+@@ -941,8 +968,6 @@
+ 	}
+ 	    
+ 	close (esd_pipe[0]);
+-	close (esd_pipe[1]);
+-	
+     }
+ #endif
+  finish_connect:

Added: desktop/experimental/esound/debian/patches/15_prettier_debug.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/15_prettier_debug.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/15_prettier_debug.patch (added)
+++ desktop/experimental/esound/debian/patches/15_prettier_debug.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,42 @@
+Index: esound-0.2.40/clients.c
+===================================================================
+--- esound-0.2.40.orig/clients.c	2008-11-15 05:51:04.000000000 +0100
++++ esound-0.2.40/clients.c	2008-11-15 05:52:05.000000000 +0100
+@@ -146,7 +146,6 @@
+     size_t size_in = sizeof(struct sockaddr_in);
+     esd_client_t *new_client = NULL;
+     
+-    unsigned long addr;
+     short port;
+ 
+     /* see who awakened us */
+@@ -171,22 +170,24 @@
+ 	      fd = accept( listen, (struct sockaddr*) &incoming, (socklen_t *) &size_in );
+ 	if ( fd < 0 )
+ 		goto again;
+-	    port = ntohs( incoming.sin_port );
+-	    addr = ntohl( incoming.sin_addr.s_addr );
+-
+ 	    ESDBG_TRACE( 
++	    if (esd_use_tcpip) {
++
++		port = ntohs( incoming.sin_port );
++		addr = ntohl( incoming.sin_addr.s_addr );
++
+ 		printf( "(%02d) new client from: %03u.%03u.%03u.%03u:%05d\n", 
+ 			fd, (unsigned int) addr >> 24, 
+ 			(unsigned int) (addr >> 16) % 256, 
+ 			(unsigned int) (addr >> 8) % 256, 
+-			(unsigned int) addr % 256, port ); );
++			(unsigned int) addr % 256, port );
++	    } );
+       }     
+ 
+ #ifdef USE_LIBWRAP
+ 	    if (esd_use_tcpip)
+ 	    {
+ 		struct request_info req;
+-		struct servent *serv;
+ 
+ 		request_init( &req, RQ_DAEMON, "esound", RQ_FILE, fd, NULL );
+ 		fromhost( &req );

Added: desktop/experimental/esound/debian/patches/16_alsa_signedness.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/16_alsa_signedness.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/16_alsa_signedness.patch (added)
+++ desktop/experimental/esound/debian/patches/16_alsa_signedness.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,18 @@
+Index: esound-0.2.40/audio_alsa09.c
+===================================================================
+--- esound-0.2.40.orig/audio_alsa09.c	2008-11-15 06:10:31.000000000 +0100
++++ esound-0.2.40/audio_alsa09.c	2008-11-15 06:10:57.000000000 +0100
+@@ -93,11 +93,11 @@
+ 	snd_pcm_t *handle;
+ 	snd_pcm_hw_params_t *hwparams;
+ 	int err;
+-	int periods;
++	unsigned int periods;
+   
+ #ifdef DRIVER_ALSA_09_NEW_PCM_API
+ 	int t_dir=0;
+-	int t_speed=speed;
++	unsigned int t_speed=(unsigned int)speed;
+ 	snd_pcm_uframes_t t_bufsize=BUFFERSIZE;
+ #endif
+ 

Added: desktop/experimental/esound/debian/patches/31_write_size.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/31_write_size.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/31_write_size.patch (added)
+++ desktop/experimental/esound/debian/patches/31_write_size.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,363 @@
+  * Rewrote generic esd_audio_write to attempt to use select if the driver
+    seems to support it, and to write in a blocksize that can be changed by
+    audio open functions.
+    (closes: #57905, #95394, #122627, #159915)
+
+Index: esound-0.2.40/esd.h
+===================================================================
+--- esound-0.2.40.orig/esd.h	2008-11-15 06:21:42.000000000 +0100
++++ esound-0.2.40/esd.h	2008-11-15 06:22:00.000000000 +0100
+@@ -12,6 +12,8 @@
+ 
+ /* size of the audio buffer */
+ #define ESD_BUF_SIZE (4 * 1024)
++/* maximum size we can write().  Otherwise we might overflow */
++#define ESD_MAX_WRITE_SIZE (21 * 4096)
+ 
+ /* length of the authorization key, octets */
+ #define ESD_KEY_LEN (16)
+Index: esound-0.2.40/proto.c
+===================================================================
+--- esound-0.2.40.orig/proto.c	2008-11-15 06:21:59.000000000 +0100
++++ esound-0.2.40/proto.c	2008-11-15 06:22:00.000000000 +0100
+@@ -89,22 +89,23 @@
+ int esd_proto_get_latency( esd_client_t *client )
+ {
+     int lag, amount, actual;
++    int buf_size = esound_getblksize();
+ 
+     ESDBG_TRACE( printf( "(%02d) proto: get latency\n", client->fd ); );
+   
+     if (esd_audio_format & ESD_STEREO)
+       {
+ 	if (esd_audio_format & ESD_BITS16)
+-	  amount = (44100 * (ESD_BUF_SIZE + 64)) / esd_audio_rate;
++	  amount = (44100 * (buf_size + 64)) / esd_audio_rate;
+ 	else
+-	  amount = (44100 * (ESD_BUF_SIZE + 128)) / esd_audio_rate;
++	  amount = (44100 * (buf_size + 128)) / esd_audio_rate;
+       }
+     else
+       {
+ 	if (esd_audio_format & ESD_BITS16)
+-	  amount = (2 * 44100 * (ESD_BUF_SIZE + 128)) / esd_audio_rate;
++	  amount = (2 * 44100 * (buf_size + 128)) / esd_audio_rate;
+ 	else
+-	  amount = (2 * 44100 * (ESD_BUF_SIZE + 256)) / esd_audio_rate;
++	  amount = (2 * 44100 * (buf_size + 256)) / esd_audio_rate;
+       }
+     lag = maybe_swap_32( client->swap_byte_order, amount );
+ 
+Index: esound-0.2.40/audio.c
+===================================================================
+--- esound-0.2.40.orig/audio.c	2008-11-15 06:21:42.000000000 +0100
++++ esound-0.2.40/audio.c	2008-11-15 06:24:18.000000000 +0100
+@@ -7,6 +7,8 @@
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <math.h>
++#include <errno.h>
++#include <sys/select.h>
+ 
+ /*******************************************************************/
+ /* globals */
+@@ -16,6 +18,8 @@
+ 
+ /* the audio device, /dev/dsp, file descriptor */
+ static int esd_audio_fd = -1;
++static int select_works = 0;
++static int esd_write_size = ESD_BUF_SIZE;
+ 
+ /*******************************************************************/
+ /* returns audio_fd for use by main prog - platform dependent */
+@@ -84,7 +88,44 @@
+ /* dump a buffer to the sound device */
+ int esd_audio_write( void *buffer, int buf_size )
+ {
+-    return write( esd_audio_fd, buffer, buf_size );
++    ssize_t nwrite=0, pos=0;
++    int write_size = esd_write_size;
++
++    while (buf_size-pos > 0) {
++	if (buf_size-pos < write_size)
++	    write_size = buf_size-pos;
++
++	if (select_works) {
++	    fd_set set;
++	    struct timeval tv;
++	    int ret;
++
++	    tv.tv_sec = 0;
++	    tv.tv_usec = 10000;
++	    FD_ZERO(&set);
++	    FD_SET(esd_audio_fd, &set);
++	    if ((ret = select(esd_audio_fd+1, NULL, &set, NULL, &tv)) == 0) {
++		continue;
++	    } else if (ret < 0) {
++		return pos > 0 ? pos : -1;
++	    }
++	}
++
++	if ((nwrite = write( esd_audio_fd, buffer+pos, write_size )) <= 0 ) {
++	    if ( nwrite == -1 ) {
++		if ( errno == EAGAIN || errno == EINTR ) {
++		    if (!select_works)
++			usleep(1000);
++		    continue;
++		} else {
++		    perror("esound: esd_audio_write: write");
++		    return pos > 0 ? pos : -1;
++		}
++	    }
++	}
++	pos += nwrite;
++    }
++    return pos;
+ }
+ #endif
+ 
+@@ -102,7 +143,14 @@
+ /* flush the audio buffer */
+ void esd_audio_flush()
+ {
+-    fsync( esd_audio_fd );
+     return;
+ }
+ #endif
++
++/*
++ * For the daemon's use only -- what size to make the buffer
++ */
++int esound_getblksize(void)
++{
++    return esd_write_size;
++}
+Index: esound-0.2.40/audio_oss.c
+===================================================================
+--- esound-0.2.40.orig/audio_oss.c	2008-11-15 06:21:42.000000000 +0100
++++ esound-0.2.40/audio_oss.c	2008-11-15 06:22:00.000000000 +0100
+@@ -23,6 +23,7 @@
+     return "/dev/dsp, /dev/dsp2, etc.";
+ }
+ 
++#define NFRAGS 32
+ 
+ #define ARCH_esd_audio_open
+ int esd_audio_open()
+@@ -31,6 +32,22 @@
+ 
+     int afd = -1, value = 0, test = 0;
+     int mode = O_WRONLY;
++    int rate;
++    int fragsize;
++    int frag;
++    struct timeval tv;
++    fd_set set;
++
++    rate = esd_audio_rate *
++        ( ( ( esd_audio_format & ESD_MASK_CHAN) == ESD_STEREO ) ? 2 : 1 ) *
++        ( ( ( esd_audio_format & ESD_MASK_BITS) == ESD_BITS16 ) ? 2 : 1 );
++
++    for ( fragsize = 0; 1L << fragsize < rate / 25; fragsize++ )
++	;
++
++    fragsize--;
++
++    frag = (NFRAGS << 16) | fragsize;
+ 
+     /* if recording, set for full duplex mode */
+     if ( (esd_audio_format & ESD_MASK_FUNC) == ESD_RECORD )
+@@ -51,6 +68,10 @@
+     mode &= ~O_NONBLOCK;
+     fcntl(afd, F_SETFL, mode);
+ 
++#if defined(SNDCTL_DSP_SETFRAGMENT)
++    ioctl(afd, SNDCTL_DSP_SETFRAGMENT, &frag);
++#endif
++
+     /* TODO: check that this is allowable */
+     /* set for full duplex operation, if recording */
+ #if defined(SNDCTL_DSP_SETDUPLEX)
+@@ -59,26 +80,6 @@
+     }
+ #endif
+ 
+-    /* set the sound driver fragment size and number */
+-#if !defined(__powerpc__) /* does not exist on powerpc */
+-    /* fragment = max_buffers << 16 + log2(buffer_size), (256 16) */
+-    value = test = ( 0x0100 << 16 ) + 0x0008;
+-    if (ioctl(afd, SNDCTL_DSP_SETFRAGMENT, &test) == -1)
+-    {   /* Fatal error */
+-        perror( "SNDCTL_DSP_SETFRAGMENT" );
+-        close( afd );
+-        esd_audio_fd = -1;
+-        return( -1 );
+-    }
+-    if ( 0 /* value != test */ ) /* TODO: determine the real test */
+-    {   /* The device doesn't support the requested audio format. */
+-        fprintf( stderr, "unsupported fragment size: %d\n", value );
+-        close( afd );
+-        esd_audio_fd = -1;
+-        return( -1 );
+-    }
+-#endif /* #if !defined(__powerpc__) */
+-
+     /* set the sound driver audio format for playback */
+     
+     value = test = ( (esd_audio_format & ESD_MASK_BITS) == ESD_BITS16 )
+@@ -131,8 +132,31 @@
+         return( -1 );
+     }
+ 
++    if ( ioctl(afd, SNDCTL_DSP_GETBLKSIZE, &test) == -1)
++    { /* Fatal error */
++        perror("SNDCTL_DSP_GETBLKSIZE");
++        close( afd );
++        esd_audio_fd = -1;
++        return( -1 );
++    }
++    esd_write_size = test > ESD_MAX_WRITE_SIZE ? ESD_MAX_WRITE_SIZE : test;
++
+     /* value = test = buf_size; */
+     esd_audio_fd = afd;
++    /*
++     * From XMMS:
++     * Stupid hack to find out if the driver supports select; some
++     * drivers won't work properly without a select and some won't
++     * work with a select :/
++     */
++
++    tv.tv_sec = 0;
++    tv.tv_usec = 10;
++    FD_ZERO(&set);
++    FD_SET(afd, &set);
++    test = select(afd + 1, NULL, &set, NULL, &tv);
++    if (test > 0)
++	    select_works = 1;
+     return afd;
+ }
+ 
+Index: esound-0.2.40/esd.c
+===================================================================
+--- esound-0.2.40.orig/esd.c	2008-11-15 06:22:00.000000000 +0100
++++ esound-0.2.40/esd.c	2008-11-15 06:23:47.000000000 +0100
+@@ -640,7 +640,7 @@
+     /* begin test scaffolding parameters */
+     /* int format = AFMT_U8; AFMT_S16_LE; */
+     /* int stereo = 0; */     /* 0=mono, 1=stereo */
+-    int default_rate = ESD_DEFAULT_RATE, default_buf_size = ESD_BUF_SIZE;
++    int default_rate = ESD_DEFAULT_RATE;
+     int i, j, freq=440;
+     int magl, magr;
+ 
+@@ -848,11 +848,6 @@
+     exit( 1 );	
+   }
+ 
+-#define ESD_AUDIO_STUFF \
+-    esd_sample_size = ( (esd_audio_format & ESD_MASK_BITS) == ESD_BITS16 ) \
+-	? sizeof(signed short) : sizeof(unsigned char); \
+-    esd_buf_size_samples = default_buf_size / 2; \
+-    esd_buf_size_octets = esd_buf_size_samples * esd_sample_size;
+ 
+     /* start the initializatin process */
+ /*    printf( "ESound daemon initializing...\n" );*/
+@@ -860,7 +855,6 @@
+     /* set the data size parameters */
+     esd_audio_format = default_format;
+     esd_audio_rate = default_rate;
+-    ESD_AUDIO_STUFF;
+ 
+   /* open and initialize the audio device, /dev/dsp */
+   itmp = esd_audio_open();
+@@ -885,7 +879,6 @@
+     /* cant do defaults ... try 44.1 kkz 8bit stereo */
+     esd_audio_format = ESD_BITS8 | ESD_STEREO;
+     esd_audio_rate = 44100;
+-    ESD_AUDIO_STUFF;
+     if ( esd_audio_open() < 0 ) {
+       fprintf(stderr, "Audio device open for 44.1Khz, stereo, 8bit failed\n"
+ 
+@@ -893,56 +886,48 @@
+     /* cant do defaults ... try 48 kkz 16bit stereo */
+     esd_audio_format = ESD_BITS16 | ESD_STEREO;
+     esd_audio_rate = 48000;
+-    ESD_AUDIO_STUFF;
+     if ( esd_audio_open() < 0 ) {
+       fprintf(stderr, "Audio device open for 48Khz, stereo,16bit failed\n"
+ 	      "Trying 22.05Khz, 8bit stereo.\n");
+       /* cant do defaults ... try 22.05 kkz 8bit stereo */
+       esd_audio_format = ESD_BITS8 | ESD_STEREO;
+       esd_audio_rate = 22050;
+-      ESD_AUDIO_STUFF;
+       if ( esd_audio_open() < 0 ) {
+ 	fprintf(stderr, "Audio device open for 22.05Khz, stereo, 8bit failed\n"
+ 		"Trying 44.1Khz, 16bit mono.\n");
+ 	/* cant do defaults ... try 44.1Khz kkz 16bit mono */
+ 	esd_audio_format = ESD_BITS16;
+ 	esd_audio_rate = 44100;
+-	ESD_AUDIO_STUFF;
+ 	if ( esd_audio_open() < 0 ) {
+ 	  fprintf(stderr, "Audio device open for 44.1Khz, mono, 8bit failed\n"
+ 		  "Trying 22.05Khz, 8bit mono.\n");
+ 	  /* cant do defaults ... try 22.05 kkz 8bit mono */
+ 	  esd_audio_format = ESD_BITS8;
+ 	  esd_audio_rate = 22050;
+-	  ESD_AUDIO_STUFF;
+ 	  if ( esd_audio_open() < 0 ) {
+ 	    fprintf(stderr, "Audio device open for 22.05Khz, mono, 8bit failed\n"
+ 		    "Trying 11.025Khz, 8bit stereo.\n");
+ 	    /* cant to defaults ... try 11.025 kkz 8bit stereo */
+ 	    esd_audio_format = ESD_BITS8 | ESD_STEREO;
+ 	    esd_audio_rate = 11025;
+-	    ESD_AUDIO_STUFF;
+ 	    if ( esd_audio_open() < 0 ) {
+ 	      fprintf(stderr, "Audio device open for 11.025Khz, stereo, 8bit failed\n"
+ 		      "Trying 11.025Khz, 8bit mono.\n");
+ 	      /* cant to defaults ... try 11.025 kkz 8bit mono */
+ 	      esd_audio_format = ESD_BITS8;
+ 	      esd_audio_rate = 11025;
+-	      ESD_AUDIO_STUFF;
+ 	      if ( esd_audio_open() < 0 ) {
+ 		fprintf(stderr, "Audio device open for 11.025Khz, mono, 8bit failed\n"
+ 			"Trying 8.192Khz, 8bit mono.\n");
+ 	        /* cant to defaults ... try 8.192 kkz 8bit mono */
+ 		esd_audio_format = ESD_BITS8;
+ 		esd_audio_rate = 8192;
+-		ESD_AUDIO_STUFF;
+ 		if ( esd_audio_open() < 0 ) {
+ 		  fprintf(stderr, "Audio device open for 8.192Khz, mono, 8bit failed\n"
+ 			  "Trying 8Khz, 8bit mono.\n");
+ 		  /* cant to defaults ... try 8 kkz 8bit mono */
+ 		  esd_audio_format = ESD_BITS8;
+ 		  esd_audio_rate = 8000;
+-		  ESD_AUDIO_STUFF;
+ 		  if ( esd_audio_open() < 0 ) {
+ 		    fprintf(stderr, "Sound device inadequate for Esound. Fatal.\n");
+ 		    if (!esd_use_tcpip)
+@@ -969,6 +954,11 @@
+     }
+    }
+   }
++    esd_sample_size = ( (esd_audio_format & ESD_MASK_BITS) == ESD_BITS16 )
++	? sizeof(signed short) : sizeof(unsigned char);
++    esd_buf_size_samples = esound_getblksize() / esd_sample_size;
++    esd_buf_size_octets = esound_getblksize();
++
+ 
+     /* allocate and zero out buffer */
+     output_buffer = (void *) malloc( esd_buf_size_octets );
+Index: esound-0.2.40/esd-server.h
+===================================================================
+--- esound-0.2.40.orig/esd-server.h	2008-11-15 06:21:59.000000000 +0100
++++ esound-0.2.40/esd-server.h	2008-11-15 06:23:47.000000000 +0100
+@@ -209,6 +209,9 @@
+ int esd_set_socket_buffers( int sock, int src_format, 
+ 			    int src_rate, int base_rate );
+ 
++/* audio.c */
++int esound_getblksize(void);
++
+ /*******************************************************************/
+ /* evil evil macros */
+ 

Added: desktop/experimental/esound/debian/patches/32_sigusr1_reconnect.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/32_sigusr1_reconnect.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/32_sigusr1_reconnect.patch (added)
+++ desktop/experimental/esound/debian/patches/32_sigusr1_reconnect.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,497 @@
+  + esound (0.2.36-0ubuntu2) breezy; urgency=low
+    * esd.c: Install signal handler for SIGUSR1 that reconnects to the ALSA
+      driver. This is useful after changing the ALSA configuration file.
+    * client.c: Integrate driver reconnection into client loop.
+    * audio_alsa09.c, initAlsa(): Call snd_config_update_free_global() to purge
+      configuration cache and to properly reload configuration files.
+
+Index: esound-0.2.40/clients.c
+===================================================================
+--- esound-0.2.40.orig/clients.c	2008-11-15 06:19:30.000000000 +0100
++++ esound-0.2.40/clients.c	2008-11-15 06:19:38.000000000 +0100
+@@ -1,6 +1,7 @@
+ #include "esd-server.h"
+ #include <arpa/inet.h>
+ #include <time.h>
++#include <errno.h>
+ 
+ #ifdef HAVE_SYS_IOCTL_H
+ # include <sys/ioctl.h>
+@@ -26,6 +27,7 @@
+ 
+ /* the list of the currently connected clients */
+ esd_client_t *esd_clients_list;
++static int write_wait = 0;
+ 
+ /*******************************************************************/
+ /* prototypes */
+@@ -251,113 +253,183 @@
+     return 0;
+ }
+ 
+-static int is_paused_here = 0;
+-/*******************************************************************/
+-/* blocks waiting for data from the listener, and client conns. */
+-int wait_for_clients_and_data( int listen )
++void esd_comm_loop( int listen_socket, void *output_buffer, int esd_terminate )
+ {
+     fd_set rd_fds;
+     struct timeval timeout;
+     struct timeval *timeout_ptr = NULL;
+-    esd_client_t *client = esd_clients_list;
+-    int max_fd = listen, ready;
+-
+-    /* add the listener to the file descriptor list */
+-    FD_ZERO( &rd_fds );
+-    FD_SET( listen, &rd_fds );
++    esd_client_t *client;
++    int max_fd = listen_socket, ready;
++    int first = 1;
++    int is_paused_here = 0;
++    int length = 0;
+ 
+-    /* add the clients to the list, too */
+-    while ( client != NULL )
++    while ( 1 )
+     {
+-	/* add this client, but only if it's not monitoring */
+-	if ( client->state == ESD_STREAMING_DATA &&
+-	     client->request == ESD_PROTO_STREAM_MON )
+-	{
+-	    client = client->next;
+-	    continue;
+-	}
+-
+-	FD_SET( client->fd, &rd_fds );
+-
+-	/* update the maximum fd for the select() */
+-	if ( client->fd > max_fd )
+-	    max_fd = client->fd;
++	FD_ZERO( &rd_fds );
++	FD_SET( listen_socket, &rd_fds );
+ 
+-	/* next client */
+-	client = client->next;
+-    }
+-
+-    /* if we're doing something useful, make sure we return immediately */
+-    if ( esd_recorder_list || esd_playing_samples ) {
+-	timeout.tv_sec = 0;
+-	timeout.tv_usec = 0;
+-	timeout_ptr = &timeout;
+-    } else {
+-
+-	/* TODO: any reason not to pause indefinitely here? */
+-	/* sample players that's why, if no players, can pause indefinitely */
+-	/* if ( esd_on_autostandby 
+-	        || (esd_autostandby_secs < 0 && !esd_playing_samples ) )
+-	       timeout_ptr = NULL; else { ... } */
+-
+-	if ( is_paused_here ) {
+-
+-	    ESDBG_TRACE( printf( "paused, awaiting instructions.\n" ); );
+-	    timeout_ptr = NULL;
++        if( esd_pending_driver_reconnect ) {
++            esd_pending_driver_reconnect = 0;
++            esd_audio_close();
++	    usleep(100);
++            if( esd_audio_open() < 0 )
++                fprintf( stderr, "could not reopen the audio device\n" );
++        }
++
++	if ((esd_clients_list == NULL) && (!first) && (esd_terminate)
++	&& (esd_autostandby_secs<0 || esd_on_autostandby)) {
++	    clean_exit(0);
++	    exit(0);
++	}
+ 
+-	} else {
++	for( client = esd_clients_list ; client ; client = client->next)
++	{
++	    if ( client->state == ESD_STREAMING_DATA &&
++		client->request == ESD_PROTO_STREAM_MON )
++		continue;
++
++	    FD_SET( client->fd, &rd_fds );
++	    if ( client->fd > max_fd )
++		max_fd = client->fd;
++	}
+ 
++	/* if we're doing something useful, make sure we return immediately */
++	if ( esd_recorder_list || esd_playing_samples ) {
+ 	    timeout.tv_sec = 0;
+-	    /* funky math to make sure a long can hold it all, calulate in ms */
+-	    timeout.tv_usec = (long) esd_buf_size_samples * 1000L
+-		/ (long) esd_audio_rate / 4L; 	/* divide by two for stereo */
+-	    timeout.tv_usec *= 1000L; 		/* convert to microseconds */
++	    timeout.tv_usec = 0;
+ 	    timeout_ptr = &timeout;
+-
+-	}
+-    }
+-
+-    ready = select( max_fd+1, &rd_fds, NULL, NULL, timeout_ptr );
+-
+-    ESDBG_COMMS( printf( 
+-	"paused=%d, samples=%d, auto=%d, standby=%d, record=%d, ready=%d\n",
+-	is_paused_here, esd_playing_samples, 
+-	esd_autostandby_secs, esd_on_standby, 
+-	(esd_recorder_list != 0), ready ); );
+-
+-    /* TODO: return ready, and do this in esd.c */
+-    if ( ready <= 0 ) {
+-	/* if < 0, something horrible happened:
+-	   EBADF   invalid file descriptor - let individual read sort it out
+-	   EINTR   non blocked signal caught - o well, no big deal
+-	   EINVAL  n is negative - not bloody likely
+-	   ENOMEM  unable to allocate internal tables - o well, no big deal */
+-
+-	if ( !is_paused_here && !esd_playing_samples && (esd_autostandby_secs<0) ) {
+-	    ESDBG_TRACE( printf( "doing nothing, pausing server.\n" ); );
+-	    esd_audio_flush();
+-	    esd_audio_pause();
+-	    esd_last_activity = time( NULL );
+-	    is_paused_here = 1;
++	} else {
++	    if ( is_paused_here && (esd_autostandby_secs<0 || esd_on_standby)) {
++		ESDBG_TRACE( printf( "paused, awaiting instructions.\n" ); );
++		timeout_ptr = NULL;
++	    } else {
++		if (is_paused_here && esd_autostandby_secs>=0) {
++		    timeout.tv_sec = (esd_last_activity+esd_autostandby_secs+1)-time(NULL);
++		    if (timeout.tv_sec < 0 || timeout.tv_sec > esd_autostandby_secs+1)
++			timeout.tv_sec = 0;
++		    timeout.tv_usec = 0;
++		    timeout_ptr = &timeout;
++		} else {
++		    if (!write_wait)
++		    {
++			int samples;
++
++			samples = ((esd_audio_format & ESD_MASK_CHAN) == ESD_STEREO) ? 2 : 1;
++			timeout.tv_sec = 0;
++			/* funky math to make sure a long can hold it all, calulate in ms */
++			timeout.tv_usec = ((long) samples * 1000L
++			    / (long) esd_audio_rate)+1;
++			timeout.tv_usec *= 1000; 	/* convert to microseconds */
++			timeout_ptr = &timeout;
++		    }
++		    else
++			timeout_ptr = NULL;
++		}
++	    }
+ 	}
+ 
+-	if ( !is_paused_here && !esd_playing_samples && !esd_recorder_list ) {
++	ready = select( max_fd+1, &rd_fds, NULL, NULL, timeout_ptr );
+ 
+-	    if ( esd_autostandby_secs >= 0
++	ESDBG_COMMS( printf( 
++	    "paused=%d, samples=%d, auto=%d, standby=%d, record=%d, ready=%d\n",
++	    is_paused_here, esd_playing_samples, 
++	    esd_autostandby_secs, esd_on_standby, 
++	    (esd_recorder_list != 0), ready ); );
++
++	if ( ready < 0 ) {
++	    if ( errno == EINTR && timeout_ptr == NULL && write_wait == 0 ) {
++		ready = 1;
++	    } else {
++		if ( errno == EINTR || errno == EAGAIN )
++		    continue;
++		perror("select");
++		exit(1);
++	    }
++	} else if ( ready == 0 ) {
++	    if ( !is_paused_here && !esd_playing_samples && !esd_recorder_list ) {
++		ESDBG_TRACE( printf( "doing nothing, pausing server.\n" ); );
++		esd_audio_flush();
++		if (!first)
++		    esd_audio_pause();
++		esd_last_activity = time( NULL );
++		is_paused_here = 1;
++	    }
++	    if ( is_paused_here && esd_autostandby_secs >= 0
+ 		 && ( time(NULL) > esd_last_activity + esd_autostandby_secs ) ) {
+ 		ESDBG_TRACE( printf( "bored, going to standby mode.\n" ); );
+ 		esd_server_standby();
+ 		esd_on_autostandby = 1;
+-		is_paused_here = 1;
+ 	    }
++	    if (!esd_recorder_list && is_paused_here)
++		continue;
++	}
++	is_paused_here = 0;
+ 
++	if ( FD_ISSET(listen_socket, &rd_fds ) ) {
++	    get_new_clients( listen_socket );
+ 	}
+ 
+-    } else {
++	if ( ready || esd_playing_samples ) {
++	    /* check for new protocol requests */
++	    poll_client_requests();
++	    first = 0;
++
++	/* mix new requests, and output to device */
++	refresh_mix_funcs(); /* TODO: set a flag to cue when to do this */
++	length = mix_players( output_buffer, esd_buf_size_octets );
++	
++	/* awaken if on autostandby and doing anything */
++	if ( esd_on_autostandby && length && !esd_forced_standby ) {
++	    ESDBG_TRACE( printf( "stuff to play, waking up.\n" ); );
++	    if ( !esd_server_resume()) {
++		usleep(100);
++	    }
++	}
+ 
+-	is_paused_here = 0;
++	/* we handle this even when length == 0 because a filter could have
++	 * closed, and we don't want to eat the processor if one did.. */
++	if ( esd_filter_list && !esd_on_standby ) {
++	    length = filter_write( output_buffer, length,
++				   esd_audio_format, esd_audio_rate );
++	}
++	
++	if ( length > 0 && !write_wait) {
++	    if ( !esd_on_standby ) {
++		int nbytes;
++		/* standby check goes in here, so esd will eat sound data */
++		/* TODO: eat a round of data with a better algorithm */
++		/*        this will cause guaranteed timing issues */
++		/* TODO: on monitor, why isn't this a buffer of zeroes? */
++		nbytes = esd_audio_write( output_buffer, length );
++#if 0
++		val.tv_sec = 0;
++		val.tv_usec = ((nbytes / esd_sample_size /
++				       (((esd_audio_format & ESD_MASK_CHAN) == ESD_STEREO) ? 2 : 1))
++				       * 1000) / esd_audio_rate;
++		val.tv_usec *= 1000000;
++#endif
+ 
+-    }
++		esd_last_activity = time( NULL );
++	    }
+ 
+-    return ready;
++	/* if someone's monitoring the sound stream, send them data */
++	/* mix_players, above, forces buffer to zero if no players */
++	/* this clears out any leftovers from recording, below */
++	if ( esd_monitor_list && !esd_on_standby && length ) {
++	    monitor_write( output_buffer, length );
++	}
++
++	}
++	}
++
++	/* if someone's recording from the audio device, send them data */
++	if ( esd_recorder_list && !esd_on_standby ) {
++	    length = esd_audio_read( output_buffer, esd_buf_size_octets );
++	    if ( length ) {
++		length = recorder_write( output_buffer, length );
++		esd_last_activity = time( NULL );
++	    }
++	}
++    }
+ }
+Index: esound-0.2.40/esd-server.h
+===================================================================
+--- esound-0.2.40.orig/esd-server.h	2008-11-15 06:19:30.000000000 +0100
++++ esound-0.2.40/esd-server.h	2008-11-15 06:19:38.000000000 +0100
+@@ -121,6 +121,7 @@
+ extern char esd_owner_key[ESD_KEY_LEN];
+ 
+ extern int esd_on_standby;
++extern int esd_pending_driver_reconnect;
+ extern int esdbg_trace;
+ extern int esdbg_comms;
+ extern int esdbg_mixer;
+@@ -144,6 +145,7 @@
+ 
+ int get_new_clients( int listen );
+ int wait_for_clients_and_data( int listen );
++void esd_comm_loop( int listen_socket, void *output_buffer, int esd_terminate );
+ 
+ /* filter.c - things with which to handle filters */
+ extern esd_player_t *esd_filter_list;
+Index: esound-0.2.40/esd.c
+===================================================================
+--- esound-0.2.40.orig/esd.c	2008-11-15 06:19:30.000000000 +0100
++++ esound-0.2.40/esd.c	2008-11-15 06:20:02.000000000 +0100
+@@ -70,6 +70,7 @@
+ void clean_exit( int signum );
+ void reset_signal( int signum );
+ void reset_daemon( int signum );
++void reconnect_driver( int signum );
+ int open_listen_socket( const char *hostname, int port );
+ 
+ /* from esd_config.c */
+@@ -82,6 +83,8 @@
+ int esd_is_locked = 1;		 /* if owned, will prohibit foreign sources */
+ char esd_owner_key[ESD_KEY_LEN]; /* the key that locks the daemon */
+ 
++int esd_pending_driver_reconnect = 0; /* set by SIGUSR1 handler for
++                                         reconnecting to the audio card */
+ int esd_on_standby = 0;		/* set to ignore incoming audio data */
+ int esdbg_trace = 0;		/* show warm fuzzy debug messages */
+ int esdbg_comms = 0;		/* show protocol level debug messages */
+@@ -224,6 +227,15 @@
+     exit( 0 );
+ }
+ 
++void reconnect_driver( int signum )
++{
++    ESDBG_TRACE(
++       printf( "(ca) reconnecting to driver on signal %d\n",
++               signum ); );
++    esd_pending_driver_reconnect = 1;
++    signal( signum, reconnect_driver );
++}
++
+ void reset_signal(int signum) {
+ /*    fprintf( stderr, "received signal %d: resetting...\n", signum );*/
+     signal( signum, reset_signal);
+@@ -612,7 +624,6 @@
+     /* Enlightened sound Daemon */
+ 
+     int esd_port = ESD_DEFAULT_PORT;
+-    int length = 0;
+     int arg = 0;
+     int itmp;
+ 
+@@ -644,8 +655,6 @@
+     int i, j, freq=440;
+     int magl, magr;
+ 
+-    int first = 1;
+-
+     int default_format = ESD_BITS16 | ESD_STEREO;
+     /* end test scaffolding parameters */
+ 
+@@ -970,6 +979,7 @@
+     signal( SIGTERM, clean_exit );	/* for default kill */
+     signal( SIGPIPE, reset_signal );	/* for closed rec/mon clients */
+     signal( SIGHUP, reset_daemon );	/* kill -HUP clear ownership */
++    signal( SIGUSR1, reconnect_driver ); /* react to changed sound card */
+ 
+     /* send some sine waves just to check the sound connection */
+     i = 0;
+@@ -1000,106 +1010,7 @@
+ 	close (esd_spawnfd);
+     }
+ 
+-    /* until we kill the daemon */
+-    while ( 1 )
+-    {
+-	/* block while waiting for more clients and new data */
+-	wait_for_clients_and_data( listen_socket );
+-
+-	/* accept new connections */
+-	get_new_clients( listen_socket );
+-
+-
+-	if ((esd_clients_list == NULL) && (!esd_playing_samples) &&
+-            (!first) && (esd_terminate)) {
+-/*	  fprintf(stderr, "No clients!\n");*/
+-	  clean_exit(0);
+-	  exit(0);
+-	}
+-
+-	/* check for new protocol requests */
+-	poll_client_requests();
+-	first = 0;
+-
+-	/* mix new requests, and output to device */
+-	refresh_mix_funcs(); /* TODO: set a flag to cue when to do this */
+-	length = mix_players( output_buffer, esd_buf_size_octets );
+-	
+-	/* awaken if on autostandby and doing anything */
+-	if ( esd_on_autostandby && length && !esd_forced_standby ) {
+-	    ESDBG_TRACE( printf( "stuff to play, waking up.\n" ); );
+-	    esd_server_resume();
+-	}
+-
+-	/* we handle this even when length == 0 because a filter could have
+-	 * closed, and we don't want to eat the processor if one did.. */
+-	if ( esd_filter_list && !esd_on_standby ) {
+-	    length = filter_write( output_buffer, length,
+-				   esd_audio_format, esd_audio_rate );
+-	}
+-	
+-	if ( length > 0 /* || esd_monitor */ ) {
+-	    /* do_sleep = 0; */
+-	    if ( !esd_on_standby ) {
+-		/* standby check goes in here, so esd will eat sound data */
+-		/* TODO: eat a round of data with a better algorithm */
+-		/*        this will cause guaranteed timing issues */
+-		/* TODO: on monitor, why isn't this a buffer of zeroes? */
+-		/* esd_audio_write( output_buffer, esd_buf_size_octets ); */
+-		esd_audio_write( output_buffer, length );
+-		/* esd_audio_flush(); */ /* this is overkill */
+-		esd_last_activity = time( NULL );
+-	    }
+-	} else {
+-	    /* should be pausing just fine within wait_for_clients_and_data */
+-	    /* if so, this isn't really needed */
+-
+-	    /* be very quiet, and wait for a wabbit to come along */
+-#if 0
+-	    if ( !do_sleep ) { ESDBG_TRACE( printf( "pausing in esd.c\n" ); ); }
+-	    do_sleep = 1;
+-	    esd_audio_pause();
+-#endif
+-	}
+-
+-	/* if someone's monitoring the sound stream, send them data */
+-	/* mix_players, above, forces buffer to zero if no players */
+-	/* this clears out any leftovers from recording, below */
+-	if ( esd_monitor_list && !esd_on_standby && length ) {
+-	/* if ( esd_monitor_list && !esd_on_standby ) {  */
+-	    monitor_write( output_buffer, length );
+-	}
+-
+-	/* if someone's recording the sound stream, send them data */
+-	if ( esd_recorder_list && !esd_on_standby ) {
+-	    length = esd_audio_read( output_buffer, esd_buf_size_octets );
+-	    if ( length ) {
+-		length = recorder_write( output_buffer, length );
+-		esd_last_activity = time( NULL );
+-	    }
+-	}
+-
+-	if ( esd_on_standby ) {
+-#ifdef HAVE_NANOSLEEP
+-	    struct timespec restrain;
+-	    restrain.tv_sec = 0;
+-	    /* funky math to make sure a long can hold it all, calulate in ms */
+-	    restrain.tv_nsec = (long) esd_buf_size_samples * 1000L
+-		/ (long) esd_audio_rate / 4L;   /* divide by two for stereo */
+-	    restrain.tv_nsec *= 1000000L;       /* convert to nanoseconds */
+-	    nanosleep( &restrain, NULL );
+-#else
+-	    struct timeval restrain;
+-	    restrain.tv_sec = 0;
+-	    /* funky math to make sure a long can hold it all, calulate in ms */
+-	    restrain.tv_usec = (long) esd_buf_size_samples * 1000L
+-		/ (long) esd_audio_rate / 4L; 	/* divide by two for stereo */
+-	    restrain.tv_usec *= 1000L; 		/* convert to microseconds */
+-	    select( 0, 0, 0, 0, &restrain );
+-#endif
+-	}
+-    } /* while ( 1 ) */
+-
++    esd_comm_loop(listen_socket,output_buffer,esd_terminate);
+     close (listen_socket);
+ 
+     /* how we'd get here, i have no idea, should only exit on signal */
+Index: esound-0.2.40/audio_alsa09.c
+===================================================================
+--- esound-0.2.40.orig/audio_alsa09.c	2008-11-15 06:19:30.000000000 +0100
++++ esound-0.2.40/audio_alsa09.c	2008-11-15 06:19:38.000000000 +0100
+@@ -101,6 +101,7 @@
+ 	snd_pcm_uframes_t t_bufsize=BUFFERSIZE;
+ #endif
+ 
++	snd_config_update_free_global();
+ 	err = snd_pcm_open(&handle, dev, mode, SND_PCM_NONBLOCK);
+ 	if (err < 0) {
+ 		if (alsadbg)

Added: desktop/experimental/esound/debian/patches/33_filter_buffers.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/33_filter_buffers.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/33_filter_buffers.patch (added)
+++ desktop/experimental/esound/debian/patches/33_filter_buffers.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,221 @@
+Debian #202027
+
+Index: esound-0.2.40/filter.c
+===================================================================
+--- esound-0.2.40.orig/filter.c	2008-11-15 03:07:07.000000000 +0100
++++ esound-0.2.40/filter.c	2008-11-15 03:07:10.000000000 +0100
+@@ -57,6 +57,10 @@
+ 	/* make sure the filter is still alive before we read from it */
+ 	if ( !erase ) {
+ 	    actual = read_player( filter );
++	    if (actual >= 0)
++		filter->actual_length -= actual;
++	    else
++		erase = filter;
+ 	}
+ 
+ 	/* translate data to next filter whether current one is alive or not */
+Index: esound-0.2.40/players.c
+===================================================================
+--- esound-0.2.40.orig/players.c	2008-11-15 03:07:15.000000000 +0100
++++ esound-0.2.40/players.c	2008-11-15 03:09:48.000000000 +0100
+@@ -280,7 +280,7 @@
+ 
+ /*******************************************************************/
+ /* read block of data from client, return < 0 to have it erased */
+-int read_player( esd_player_t *player )
++int read_player( esd_player_t *player  )
+ {
+     fd_set rd_fds;
+     int actual = 0, actual_2nd = 0, can_read = 0;
+@@ -295,16 +295,16 @@
+ 	/* use select to prevent blocking clients that are ready */
+ 	timeout.tv_sec = 0;
+ 	timeout.tv_usec = 0;
++
+ 	FD_ZERO( &rd_fds );
+ 	FD_SET( player->source_id, &rd_fds );
+ 
+ 	/* if the data is ready, read a block */
+-	can_read = select( player->source_id + 1, 
+-			   &rd_fds, NULL, NULL, &timeout ) ;
++ 	can_read = (( player->actual_length < player->buffer_length ) &&
++ 		select( player->source_id + 1, &rd_fds, NULL, NULL, &timeout ));
++ 	
+ 	if ( can_read > 0 )
+ 	{
+-	    player->actual_length = 0;
+-	    do {
+ 		ESD_READ_BIN( player->source_id,
+ 			      player->data_buffer + player->actual_length, 
+ 			      player->buffer_length - player->actual_length,
+@@ -317,19 +317,14 @@
+ 		if (actual < player->buffer_length - player->actual_length)
+ 			break;
+ 		
+-		/* more data, save how much we got */
+-		if ( actual > 0 )
+-		   player->actual_length += actual;
+-	    } while (player->actual_length < player->buffer_length);
+-
+ 	    /* endian swap multi-byte data if we need to */
+ 	    client = (esd_client_t *) (player->parent);
+ 	    if ( client->swap_byte_order 
+ 		 && ( (player->format & ESD_MASK_BITS) == ESD_BITS16 ) )
+ 	    {
+-		buffer = (unsigned short*) player->data_buffer;
++		buffer = (unsigned short*) player->data_buffer+player->actual_length;
+ 		for ( pos = buffer 
+-			  ; pos < buffer + player->actual_length / sizeof(short)
++			  ; pos < buffer + actual / sizeof(short)
+ 			  ; pos ++ )
+ 		{
+ 		    data = swap_endian_16( (*pos) );
+@@ -337,6 +332,9 @@
+ 		}
+ 	    }
+ 
++	    /* more data, save how much we got */
++	    player->actual_length += actual;
++
+ 	} else if ( can_read < 0 ) {
+ 	    sprintf( message, "error reading client (%d)\n", 
+ 		     player->source_id );
+@@ -361,15 +359,16 @@
+ 
+ 	/* copy the data from the sample to the player */
+ 	actual = ( ((esd_sample_t*)player->parent)->sample_length 
+-		   - player->last_pos > player->buffer_length )
+-	    ? player->buffer_length 
++		   - player->last_pos > player->buffer_length-player->actual_length )
++	    ? player->buffer_length-player->actual_length
+ 	    : ((esd_sample_t*)player->parent)->sample_length - player->last_pos;
+ 	if ( actual > 0 ) {
+-	    memcpy( player->data_buffer, 
++	    memcpy( player->data_buffer+player->actual_length, 
+ 		    ((esd_sample_t*)player->parent)->data_buffer 
+ 		    + player->last_pos, actual );
+ 	    player->last_pos += actual;
+-	    if ( ( player->format & ESD_MASK_FUNC ) != ESD_LOOP ) {
++	    player->actual_length += actual;
++	    if ( player->actual_length == player->buffer_length || ( player->format & ESD_MASK_FUNC ) != ESD_LOOP ) {
+ 		/* we're done for this iteration */
+ 		break;
+ 	    }
+@@ -378,34 +377,39 @@
+ 	    return -1;
+ 	}
+ 
+-	/* we are looping, see if we need to copy another block */
+-	if ( player->last_pos >= ((esd_sample_t*)player->parent)->sample_length ) {
+-	    player->last_pos = 0;
+-	}
++	while ( player->actual_length < player->buffer_length ) {
++	    /* we are looping, see if we need to copy another block */
++	    if ( player->last_pos >= ((esd_sample_t*)player->parent)->sample_length ) {
++		player->last_pos = 0;
+ 
+-	actual_2nd = ( ((esd_sample_t*)player->parent)->sample_length 
+-		   - player->last_pos > player->buffer_length - actual )
+-	    ? player->buffer_length - actual
+-	    : ((esd_sample_t*)player->parent)->sample_length - player->last_pos;
+-	if ( actual_2nd >= 0 ) {
+ 	    /* only keep going if we didn't want to stop looping */
+-	    if ( ( ((esd_sample_t*)player->parent)->format & ESD_MASK_FUNC )
+-		 != ESD_STOP ) {
+-		memcpy( player->data_buffer + actual, 
++	    if ( ( ((esd_sample_t*)player->parent)->format & ESD_MASK_FUNC ) 
++	      == ESD_STOP ) 
++		break;
++	    }
++
++	    /* copy the data from the sample to the player */
++	    actual_2nd = ( ((esd_sample_t*)player->parent)->sample_length 
++		       - player->last_pos > player->buffer_length-player->actual_length )
++		? player->buffer_length-player->actual_length
++		: ((esd_sample_t*)player->parent)->sample_length - player->last_pos;
++	    if ( actual_2nd > 0 ) {
++		memcpy( player->data_buffer+player->actual_length, 
+ 			((esd_sample_t*)player->parent)->data_buffer 
+ 			+ player->last_pos, actual_2nd );
+ 		player->last_pos += actual_2nd;
+ 		actual += actual_2nd;
++		player->actual_length += actual_2nd;
+ 
+ 		/* make sure we're not at the end */
+ 		if ( player->last_pos >= ((esd_sample_t*)player->parent)->sample_length ) {
+ 		    player->last_pos = 0;
++		    /* only keep going if we didn't want to stop looping */
++		    if ( ( ((esd_sample_t*)player->parent)->format & ESD_MASK_FUNC ) 
++		      == ESD_STOP ) 
++			break;
+ 		}
+ 	    }
+-
+-	} else {
+-	    /* something horrible has happened to the sample */
+-	    return -1;
+ 	}
+ 
+ 	/* sample data is swapped as it's cached, no swap needed here */
+@@ -561,8 +565,19 @@
+     if ( (player->format & ESD_MASK_CHAN) == ESD_MONO )
+ 	player->buffer_length /= 2;
+ 
+-    /* force to an even multiple of 4 */
+-    player->buffer_length += ( 4 - (player->buffer_length % 4) ) % 4;
++    /* force to an even multiple of 4 bytes (lower) */
++    player->buffer_length -= (player->buffer_length % 4);
++
++    player->actual_length = 0;
++    /* everything's ok, set the easy stuff */
++    player->left_vol_scale = player->right_vol_scale = ESD_VOLUME_BASE;
++
++    if ((player->mix_func = get_mix_func( player )) == NULL) {
++	free( player );
++	return NULL;
++    }
++    
++    player->translate_func = NULL; /* no translating, just mixing */
+ 
+     player->data_buffer
+ 	= (void *) malloc( player->buffer_length );
+@@ -573,11 +588,6 @@
+ 	return NULL;
+     }
+ 
+-    /* everything's ok, set the easy stuff */
+-    player->left_vol_scale = player->right_vol_scale = ESD_VOLUME_BASE;
+-    player->mix_func = get_mix_func( player );
+-    player->translate_func = NULL; /* no translating, just mixing */
+-
+     ESDBG_TRACE( printf( "(%02d) player: [%p]\n", player->source_id, player ); );
+ 
+     return player;
+@@ -634,7 +644,14 @@
+ 	player->buffer_length /= 2;
+ 
+     /* force to an even multiple of 4 */
+-    player->buffer_length += ( 4 - (player->buffer_length % 4) ) % 4;
++    player->buffer_length -= ( player->buffer_length % 4 );
++
++    if ((player->mix_func = get_mix_func( player )) == NULL) {
++	free( player );
++	return NULL;
++    }
++
++    player->translate_func = NULL; /* no translating, just mixing */
+ 
+     player->data_buffer
+ 	= (void *) malloc( player->buffer_length );
+@@ -648,9 +665,8 @@
+     /* update housekeeping values */
+     esd_playing_samples++;
+     player->last_pos = 0;
++    player->actual_length = 0;
+     sample->ref_count++;
+-    player->mix_func = get_mix_func( player );
+-    player->translate_func = NULL; /* no translating, just mixing */
+ 
+     ESDBG_TRACE( printf( "<%02d> new player: refs=%d samps=%d [%p]\n", 
+ 			 player->source_id, sample->ref_count, 

Added: desktop/experimental/esound/debian/patches/34_mixer_static.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/34_mixer_static.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/34_mixer_static.patch (added)
+++ desktop/experimental/esound/debian/patches/34_mixer_static.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,234 @@
+Debian #79145
+
+Index: esound-0.2.40/mix.c
+===================================================================
+--- esound-0.2.40.orig/mix.c	2008-11-15 04:57:31.000000000 +0100
++++ esound-0.2.40/mix.c	2008-11-15 05:13:20.000000000 +0100
+@@ -3,8 +3,7 @@
+ #include <limits.h>
+ 
+ /*******************************************************************/
+-/* ESD_BUF_SIZE is the maximum possible number of samples */
+-signed int mixed_buffer[ ESD_BUF_SIZE ];
++signed int *mixed_buffer = NULL;
+ 
+ /* prototype for compiler */
+ int mix_and_copy( void *dest_buf, int dest_len, 
+@@ -596,7 +595,7 @@
+ 	rd_dat = wr_dat * player->rate / esd_audio_rate;
+ 	rd_dat /= 2;	/* adjust for mono */
+ 	
+-	sample = source_data_uc[ rd_dat++ ];
++	sample = source_data_uc[ rd_dat ];
+ 	sample -= 127; sample *= 256;
+ 	
+ 	mixed_buffer[ wr_dat++ ] += sample;
+@@ -657,7 +656,7 @@
+ 	rd_dat = wr_dat * player->rate / esd_audio_rate;
+ 	rd_dat /= 2;	/* adjust for mono */
+ 	
+-	sample = source_data_ss[ rd_dat++ ];
++	sample = source_data_ss[ rd_dat ];
+ 	
+ 	mixed_buffer[ wr_dat++ ] += sample;
+ 	mixed_buffer[ wr_dat++ ] += sample;
+@@ -673,7 +672,7 @@
+     register signed short *source_data_ss
+ 	= (signed short *) player->data_buffer;
+ 
+-    ESDBG_MIXER( printf( "mixing stereo 16s to stereo 32s\n" ); );
++    ESDBG_MIXER( printf( "mixing stereo 16s to stereo 32s length %d\n", length ); );
+ 
+     if ( player->rate == esd_audio_rate ) {
+ 	/* optimize for simple increment by one and add loop */
+@@ -721,7 +720,7 @@
+ 	rd_dat = wr_dat * player->rate / esd_audio_rate;
+ 	rd_dat /= 2;	/* adjust for mono */
+ 	
+-	sample = source_data_uc[ rd_dat++ ];
++	sample = source_data_uc[ rd_dat ];
+ 	sample -= 127; sample *= 256;
+ 	
+ 	sample = sample * player->left_vol_scale / ESD_VOLUME_BASE;
+@@ -766,7 +765,7 @@
+ 	    sample = sample * player->left_vol_scale / ESD_VOLUME_BASE;
+ 	    mixed_buffer[ wr_dat++ ] += sample;
+ 
+-	    sample = source_data_uc[ rd_dat++ ];
++	    sample = source_data_uc[ rd_dat ];
+ 	    sample -= 127; sample *= 256;
+ 	    sample = sample * player->right_vol_scale / ESD_VOLUME_BASE;
+ 	    mixed_buffer[ wr_dat++ ] += sample;
+@@ -792,7 +791,7 @@
+ 	rd_dat = wr_dat * player->rate / esd_audio_rate;
+ 	rd_dat /= 2;	/* adjust for mono */
+ 	
+-	sample = source_data_ss[ rd_dat++ ];
++	sample = source_data_ss[ rd_dat ];
+ 	
+ 	mixed_buffer[ wr_dat++ ] 
+ 	    += sample * player->left_vol_scale / ESD_VOLUME_BASE;
+@@ -835,7 +834,7 @@
+ 	    sample = sample * player->left_vol_scale / ESD_VOLUME_BASE;
+ 	    mixed_buffer[ wr_dat++ ] += sample;
+ 
+-	    sample = source_data_ss[ rd_dat++ ];
++	    sample = source_data_ss[ rd_dat ];
+ 	    sample = sample * player->right_vol_scale / ESD_VOLUME_BASE;
+ 	    mixed_buffer[ wr_dat++ ] += sample;
+ 	}
+@@ -890,14 +889,14 @@
+ /* takes all input players, and mixes them to the mixed_buffer */
+ int mix_players( void *output, int length )
+ {
+-    int actual = 0, max = 0;
++    int actual = 0, min = 0, max = 0, translated = 0, iBps, used;
+     esd_player_t *player = NULL;
+     esd_player_t *erase = NULL;
+ 
+     ESDBG_MIXER( printf( "++++++++++++++++++++++++++++++++++++++++++\n" ); );
+ 
+     /* zero the sum buffer */
+-    memset( mixed_buffer, 0, esd_buf_size_samples * sizeof(int) );
++    memset( mixed_buffer, 0, esd_buf_size_samples * sizeof(*mixed_buffer) );
+     
+     /* as long as there's a player out there */
+     player = esd_players_list;
+@@ -905,21 +904,45 @@
+     {
+ 	/* read the client sound data */
+ 	actual = read_player( player );
+-
+-	/* read_player(): >0 = data, ==0 = no data, <0 = erase it */
+-	if ( actual > 0  ) {
+-	    /* printf( "received: %d bytes from %d\n", 
+-	            actual, player->source_id ); */
+-	    /* actual = mix_to_stereo_32s( player, length ); */
+-	    actual = player->mix_func( player, length );
+-	    if ( actual > max ) max = actual;
+-	    
+-	} else if ( actual == 0 ) {
+-	    ESDBG_TRACE( printf( "(%02d) no data available from player [%p]\n", 
++	
++	if ( actual == 0 ) {
++	    ESDBG_TRACE( printf( "(%02d) no new data available from player [%p]\n", 
+ 				 player->source_id, player ); );
+-	} else {
++	    if ( player->actual_length == 0 ) {
++		player = player->next;
++		continue;
++	    }
++	}
++	
++	if ( actual < 0 ) {
+ 	    /* actual < 0 means erase the player */
+ 	    erase = player;
++	} else {
++	    /* actual >= 0 means data might be there to mix */
++	    iBps = sizeof(signed short) * 2;
++
++	    if ( (player->format & ESD_MASK_BITS) == ESD_BITS8 )
++		iBps /= sizeof(signed short);
++	    if ( (player->format & ESD_MASK_CHAN) == ESD_MONO )
++		iBps /= 2;
++
++	    /* how much data is really there? */
++	    translated = ((player->actual_length / iBps) * esd_audio_rate + player->rate - 1) / player->rate;
++	    translated *= sizeof(signed short) * 2;
++
++	    if ( translated > length ) {
++		ESDBG_TRACE( printf( "(%02d) player translated length doesn't fit [%p]\n",
++			player->source_id, player ); );
++		translated = length;
++	    }
++
++	    if ( min == 0 ) {
++		min = translated;
++	    } else {
++		if ( min > translated ) {
++		    min = translated;
++		}
++	    }
+ 	}
+ 
+ 	/* check out the next item in the list */
+@@ -932,13 +955,54 @@
+ 	}
+     }
+ 
++    if ( min > 0 ) {
++	player = esd_players_list;
++	while( player != NULL )
++	{
++	    if ( player->actual_length > 0 ) {
++		/* read_player(): >0 = data, ==0 = no data, <0 = erase it */
++ 		iBps = sizeof(signed short) * 2;
++ 
++  		if ( (player->format & ESD_MASK_BITS) == ESD_BITS8 )
++ 		    iBps /= sizeof(signed short);
++  		if ( (player->format & ESD_MASK_CHAN) == ESD_MONO )
++ 		    iBps /= 2;
++ 
++ 		actual = player->mix_func( player, min );
++  
++ 		/* but how much data did we use? */
++ 		used = (actual / (sizeof(signed short) * 2)) * player->rate / esd_audio_rate;
++ 
++ 		if ( (player->format & ESD_MASK_BITS) != ESD_BITS8 )
++ 		    used *= sizeof(signed short);
++ 		if ( (player->format & ESD_MASK_CHAN) != ESD_MONO )
++ 		    used *= 2;
++ 
++ 		if ( player->actual_length - used > 0 ) {
++ 		    memmove( player->data_buffer, player->data_buffer + used, player->actual_length - used );
++ 		    player->actual_length -= used;
++ 		} else {
++ 		    /* kill it, it's probably all used anyways */
++ 		    player->actual_length = 0;
++ 		}
++ 		
++		if ( actual > max ) {
++		    max = actual;
++		}
++	    }
++
++	    /* check out the next item in the list */
++	    player = player->next;
++	}
++
+     /* ESDBG_COMMS( printf( "maximum stream length = %d bytes\n", max ); ); */ 
+ 
+-    if ( (esd_audio_format & ESD_MASK_BITS) == ESD_BITS16 ) 
+-	clip_mix_to_output_16s( output, max );
+-    else {
+-	clip_mix_to_output_8u( output, max );
+-	max /= 2; /* half as many samples as you'd think */
++	if ( (esd_audio_format & ESD_MASK_BITS) == ESD_BITS16 ) 
++	    clip_mix_to_output_16s( output, max );
++	else {
++	    clip_mix_to_output_8u( output, max );
++	    max /= 2; /* half as many samples as you'd think */
++	}
+     }
+ 
+     return max;
+Index: esound-0.2.40/esd.c
+===================================================================
+--- esound-0.2.40.orig/esd.c	2008-11-15 05:13:20.000000000 +0100
++++ esound-0.2.40/esd.c	2008-11-15 05:13:20.000000000 +0100
+@@ -628,6 +628,7 @@
+     int itmp;
+ 
+     void *output_buffer = NULL;
++    extern signed int *mixed_buffer;
+ 
+     char *hostname=NULL;
+     char *endptr;
+@@ -971,6 +972,7 @@
+ 
+     /* allocate and zero out buffer */
+     output_buffer = (void *) malloc( esd_buf_size_octets );
++    mixed_buffer = malloc( esd_buf_size_samples * sizeof(*mixed_buffer) );
+     memset( output_buffer, 0, esd_buf_size_octets );
+ 
+ 

Added: desktop/experimental/esound/debian/patches/50_alsa_drain.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/50_alsa_drain.patch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/50_alsa_drain.patch (added)
+++ desktop/experimental/esound/debian/patches/50_alsa_drain.patch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,21 @@
+From 0.2.36-1ubuntu2
+Disabled for now, this issue should be fixed in ALSA.
+
+Index: esound-0.2.40/audio_alsa09.c
+===================================================================
+--- esound-0.2.40.orig/audio_alsa09.c	2008-11-15 03:44:36.000000000 +0100
++++ esound-0.2.40/audio_alsa09.c	2008-11-15 03:45:49.000000000 +0100
+@@ -505,8 +505,13 @@
+ 		print_state();
+ 	}
+ 
++/* 2005-07-06, Martin Pitt <martin.pitt at ubuntu.com>:
++   Disable draining for now since it sometimes triggers a race
++   condition which makes the ALSA driver hang. */
++#if 0
+ 	if (alsa_playback_handle != NULL)
+ 		snd_pcm_drain( alsa_playback_handle );
++#endif
+   
+ 	if (alsadbg) 
+ 		print_state();

Added: desktop/experimental/esound/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/patches/series?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/patches/series (added)
+++ desktop/experimental/esound/debian/patches/series Sat Nov 15 05:29:37 2008
@@ -1,0 +1,21 @@
+01_relocate_libesddsp.patch
+02_audiofile_supported.patch
+03_nosleep.patch
+04_missing_header.patch
+05_esdfilt_info.patch
+06_alsa_hw_free.patch
+07_overflow_safeguards.patch
+08_kill_sigterm.patch
+09_spawn_nobeeps.patch
+10_nobeeps_nopause.patch
+11_close_spawnfd.patch
+12_esddsp_mmap64.patch
+13_esd_open_sound_host.patch
+14_ld-preload_esdlib.patch
+15_prettier_debug.patch
+16_alsa_signedness.patch
+31_write_size.patch
+32_sigusr1_reconnect.patch
+33_filter_buffers.patch
+34_mixer_static.patch
+#50_alsa_drain.patch

Added: desktop/experimental/esound/debian/rules
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/rules?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/rules (added)
+++ desktop/experimental/esound/debian/rules Sat Nov 15 05:29:37 2008
@@ -1,0 +1,50 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/gnome.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk
+include /usr/share/gnome-pkg-tools/1/rules/clean-la.mk
+-include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk
+
+DEB_BUILDDIR := $(CURDIR)/debian/build-oss
+DEB_DESTDIR := $(CURDIR)/debian/tmp
+DEB_BUILDDIR_libesd-alsa0 := $(CURDIR)/debian/build-alsa
+DEB_DESTDIR_libesd-alsa0 := $(CURDIR)/debian/tmp-alsa
+
+DEB_CONFIGURE_EXTRA_FLAGS := --enable-ipv6 --with-libwrap
+DEB_CONFIGURE_USER_FLAGS := --enable-oss --disable-alsa
+DEB_CONFIGURE_SYSCONFDIR := /etc/esound
+
+ifeq ($(DEB_BUILD_ARCH),hurd-i386)
+    DEB_CONFIGURE_EXTRA_FLAGS += --disable-local-sound
+    DEB_DH_MAKESHLIBS_ARGS_ALL := "libesd0 (>= 0.2.35)"
+else
+    DEB_DH_MAKESHLIBS_ARGS_ALL := "libesd-alsa0 (>= 0.2.35) | libesd0 (>= 0.2.35)"
+endif
+
+clean::
+	sed -i "s/@ALSA_ARCHES@/$(shell type-handling any linux)/g" debian/control
+	rm -fr $(DEB_BUILDDIR) $(DEB_BUILDDIR_libesd-alsa0) 
+	rm -rf $(DEB_DESTDIR) $(DEB_DESTDIR_libesd-alsa0)
+
+configure/libesd-alsa0:: $(DEB_BUILDDIR_libesd-alsa0)/config.status
+$(DEB_BUILDDIR_libesd-alsa0)/config.status:
+	cd $(DEB_BUILDDIR_libesd-alsa0) && \
+		$(DEB_CONFIGURE_SCRIPT_ENV) $(DEB_CONFIGURE_SCRIPT) \
+			$(DEB_CONFIGURE_NORMAL_ARGS) \
+			$(cdbs_configure_flags) \
+			$(DEB_CONFIGURE_EXTRA_FLAGS) \
+			--enable-alsa --disable-oss
+
+build/libesd-alsa0::
+	$(MAKE) -C $(DEB_BUILDDIR_libesd-alsa0)
+
+install/libesd-alsa0::
+	$(MAKE) -C $(DEB_BUILDDIR_libesd-alsa0) install DESTDIR=$(DEB_DESTDIR_libesd-alsa0)
+
+binary-post-install/%::
+	if [ $* != esound-common ]; then \
+		rm -rf debian/$(cdbs_curpkg)/usr/share/doc/$(cdbs_curpkg) ;\
+		ln -s esound-common debian/$(cdbs_curpkg)/usr/share/doc/$(cdbs_curpkg) ;\
+	fi

Propchange: desktop/experimental/esound/debian/rules
------------------------------------------------------------------------------
    svn:executable = *

Added: desktop/experimental/esound/debian/watch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/esound/debian/watch?rev=17594&op=file
==============================================================================
--- desktop/experimental/esound/debian/watch (added)
+++ desktop/experimental/esound/debian/watch Sat Nov 15 05:29:37 2008
@@ -1,0 +1,2 @@
+# Site		Directory		Pattern			Version	Script
+http://ftp.gnome.org /pub/GNOME/sources/esound/0.2 esound-(.*)\.tar\.gz debian uupdate




More information about the pkg-gnome-commits mailing list