diff --git a/esound-0.2.38-fix-open-macro.patch b/esound-0.2.38-fix-open-macro.patch new file mode 100644 index 0000000..412eb9b --- /dev/null +++ b/esound-0.2.38-fix-open-macro.patch @@ -0,0 +1,10 @@ +--- esound-0.2.38/esddsp.c 2007-04-19 16:43:59.000000000 +0200 ++++ esound-0.2.38.lennart/esddsp.c 2007-08-09 17:47:11.000000000 +0200 +@@ -252,6 +252,7 @@ + return (*func) (pathname, flags, mode); + } + ++#undef open + int + open (const char *pathname, int flags, ...) + { diff --git a/esound-0.2.38-multi-user.patch b/esound-0.2.38-multi-user.patch new file mode 100644 index 0000000..bf2dd27 --- /dev/null +++ b/esound-0.2.38-multi-user.patch @@ -0,0 +1,43 @@ +--- esound-0.2.36.orig/util.c ++++ esound-0.2.36/util.c +@@ -5,6 +5,7 @@ + #include + #include + #include ++#include + + /* Run-time check for IPv6 support */ + int +@@ -23,22 +24,18 @@ + const char* + esd_get_socket_dirname (void) + { +- const char *audiodev; ++ const char *audiodev = NULL; + static char *dirname = NULL; + +- if (dirname == NULL) { +- if (!(audiodev = getenv("AUDIODEV"))) { +- audiodev = ""; +- } else { +- char *newdev = strrchr(audiodev, '/'); +- if (newdev != NULL) { +- audiodev = newdev++; +- } +- } +- dirname = malloc(strlen(audiodev) + sizeof("/tmp/.esd")); +- strcpy(dirname, "/tmp/.esd"); +- strcat(dirname, audiodev); +- } ++ if ((audiodev = getenv("AUDIODEV"))) { ++ char *newdev = strrchr(audiodev, '/'); ++ if (newdev != NULL) { ++ audiodev = newdev++; ++ } ++ } else ++ audiodev = ""; ++ dirname = malloc(strlen(audiodev) + 40); ++ sprintf (dirname, "/tmp/.esd%s-%i", audiodev, getuid()); + + return dirname; + } diff --git a/esound.spec b/esound.spec index f0da576..152b182 100644 --- a/esound.spec +++ b/esound.spec @@ -2,7 +2,7 @@ Summary: Allows several audio streams to play on a single audio device Name: esound Version: 0.2.38 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 1 License: LGPL URL: ftp://ftp.gnome.org/pub/GNOME/sources/esound @@ -13,6 +13,8 @@ Patch0: esound-0.2.19-noerrors.patch Patch2: esound-0.2.35-64bit_install.patch Patch3: esound-multilib.patch Patch4: esound-0.2.38-drain.patch +Patch5: esound-0.2.38-multi-user.patch +Patch6: esound-0.2.38-fix-open-macro.patch BuildRequires: docbook-utils BuildRequires: audiofile-devel BuildRequires: alsa-lib-devel @@ -66,6 +68,8 @@ other resources needed to develop EsounD applications. %patch2 -p1 -b .64bit %patch3 -p1 -b .multilib %patch4 -p1 -b .drain-race +%patch5 -p1 -b .multi-user +%patch6 -p1 -b .open-macro %build %configure --disable-static @@ -128,6 +132,11 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/esd-config.1.gz %changelog +* Thu Aug 9 2007 - Lennart Poettering - 1:0.2.38-3 +- Move ESD socket from /tmp/.esd/socket to /tmp/.esd-`id -u`/socket to allow + multiple concurrent esd instances, one per user (#251505) +- Fix build with newer libc + * Mon Jun 11 2007 - Bastien Nocera - 1:0.2.38-2 - Patch from Martin Stransky to work around a race condition in snd_pcm_drain (#238680)