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