diff options
author | kwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059> | 2009-11-20 20:17:14 +0800 |
---|---|---|
committer | kwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059> | 2009-11-20 20:17:14 +0800 |
commit | 085701290395d57e3ac0b1844756b9faac06e3c7 (patch) | |
tree | 099689d55d5eec00bacbcc7169035a3950c0f99c /audio | |
parent | 06c08695ca06cba06b859e0ff1e5fbf1c8ba3370 (diff) | |
download | marcuscom-ports-085701290395d57e3ac0b1844756b9faac06e3c7.tar marcuscom-ports-085701290395d57e3ac0b1844756b9faac06e3c7.tar.gz marcuscom-ports-085701290395d57e3ac0b1844756b9faac06e3c7.tar.bz2 marcuscom-ports-085701290395d57e3ac0b1844756b9faac06e3c7.tar.lz marcuscom-ports-085701290395d57e3ac0b1844756b9faac06e3c7.tar.xz marcuscom-ports-085701290395d57e3ac0b1844756b9faac06e3c7.tar.zst marcuscom-ports-085701290395d57e3ac0b1844756b9faac06e3c7.zip |
Update to 0.9.20.
Tweak shm_open to set 0644 instead of 0444, shm_unlink() needs write
permissions on the shared memory object. [1]
Submitted by: Eric L. Chen <lihong@ieee.org> [1]
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@13226 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'audio')
21 files changed, 812 insertions, 0 deletions
diff --git a/audio/pulseaudio/Makefile b/audio/pulseaudio/Makefile new file mode 100644 index 000000000..f2f8f9c65 --- /dev/null +++ b/audio/pulseaudio/Makefile @@ -0,0 +1,120 @@ +# New ports collection makefile for: polypaudio +# Date created: 29 October 2004 +# Whom: Joe Marcus Clarke <marcus@FreeBSD.org> +# +# $FreeBSD$ +# $MCom$ +# + +PORTNAME= pulseaudio +PORTVERSION= 0.9.20 +CATEGORIES= audio +MASTER_SITES= http://0pointer.de/lennart/projects/${PORTNAME}/ + +MAINTAINER= gnome@FreeBSD.org +COMMENT= Sound server for UNIX + +LIB_DEPENDS= samplerate.1:${PORTSDIR}/audio/libsamplerate \ + speexdsp.1:${PORTSDIR}/audio/speex \ + dbus-1.3:${PORTSDIR}/devel/dbus \ + gdbm.3:${PORTSDIR}/databases/gdbm \ + execinfo:${PORTSDIR}/devel/libexecinfo + +USE_GNOME= gnometarget gnomehack glib20 intltool ltverhack +USE_XORG= x11 sm xtst ice +USE_LDCONFIG= yes +USE_GETTEXT= yes +GNU_CONFIGURE= yes +USE_AUTOTOOLS= libltdl:22 libtool:22 +USE_GMAKE= yes +MAKE_JOBS_UNSAFE=yes +CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS="-L${LOCALBASE}/lib" \ + PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \ + PTHREAD_LIBS="${PTHREAD_LIBS}" \ + OPENSSL_CFLAGS="-I/usr/include" \ + OPENSSL_LIBS="-lcrypto -lssl" \ + LIBS="-lm -lintl" + +CONFIGURE_ARGS= --localstatedir=/var \ + --with-database=gdbm \ + --disable-lirc # untested + +USERS= pulse +GROUPS= pulse pulse-access pulse-rt + +OPTIONS= JACK "JACK audio support" Off \ + AVAHI "Enable Avahi mDNS support" On \ + HAL "Enable HAL support" On \ + GCONF "Enable GConf support" On + +PULSE_VERSION= ${PORTVERSION} +PLIST_SUB= PULSE_VERSION=${PULSE_VERSION} + +MAN1= esdcompat.1 pabrowse.1 pacat.1 pacmd.1 pactl.1 padsp.1 \ + paplay.1 pasuspender.1 pax11publish.1 pulseaudio.1 +MAN5= default.pa.5 pulse-client.conf.5 pulse-daemon.conf.5 + +.include <bsd.port.pre.mk> + +#.if ${ARCH} == "sparc64" +#BROKEN= Does not compile on sparc64 +#.endif + +.if ( ${OSVERSION} > 800000 && ${OSVERSION} < 800080 ) || \ + ${OSVERSION} < 702000 +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_daemon_main.c \ + ${FILESDIR}/extra-patch-src_daemon_start-pulseaudio-x11.in \ + ${FILESDIR}/extra-patch-src_pulse_context.c +.endif + +.if defined(WITH_JACK) +LIB_DEPENDS+= jack.0:${PORTSDIR}/audio/jack +PLIST_SUB+= JACK="" +.else +PLIST_SUB+= JACK="@comment " +CONFIGURE_ARGS+=--disable-jack +.endif + +.if !defined(WITHOUT_AVAHI) +LIB_DEPENDS+= avahi-client.3:${PORTSDIR}/net/avahi-app +PLIST_SUB+= AVAHI="" +.else +CONFIGURE_ARGS+=--disable-avahi +PLIST_SUB+= AVAHI="@comment " +.endif + +.if !defined(WITHOUT_HAL) +LIB_DEPENDS+= hal.1:${PORTSDIR}/sysutils/hal +PLIST_SUB+= HAL="" +.else +CONFIGURE_ARGS+=--disable-hal \ + --disable-polkit +PLIST_SUB+= HAL="@comment " +.endif + +.if !defined(WITHOUT_GCONF) +USE_GNOME+= gconf2 +PLIST_SUB+= GCONF="" +.else +CONFIGURE_ARGS+=--disable-gconf +PLIST_SUB+= GCONF="@comment " +.endif + +post-patch: + @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ + ${WRKSRC}/src/daemon/default.pa.in +.if ${OSVERSION} < 700042 + @${REINPLACE_CMD} -e 's|-Wl,-no-undefined||' \ + ${WRKSRC}/src/Makefile.in +.endif + @${REINPLACE_CMD} -e 's|-Wmissing-include-dirs||g' \ + ${WRKSRC}/configure + +post-install: +.for ii in default.pa daemon.conf client.conf system.pa + ${INSTALL_DATA} ${WRKSRC}/src/${ii} \ + ${PREFIX}/etc/pulse/${ii}-dist +.endfor + +.include <bsd.port.post.mk> diff --git a/audio/pulseaudio/distinfo b/audio/pulseaudio/distinfo new file mode 100644 index 000000000..62db3406c --- /dev/null +++ b/audio/pulseaudio/distinfo @@ -0,0 +1,3 @@ +MD5 (pulseaudio-0.9.20.tar.gz) = c877d996bb6e13f2d6c36078e84c14f8 +SHA256 (pulseaudio-0.9.20.tar.gz) = 8d6070aa4d57ec224b300f9fad95f529841e55d0edb26587791239ad78875550 +SIZE (pulseaudio-0.9.20.tar.gz) = 2048332 diff --git a/audio/pulseaudio/files/extra-patch-src_daemon_main.c b/audio/pulseaudio/files/extra-patch-src_daemon_main.c new file mode 100644 index 000000000..8c6ae410f --- /dev/null +++ b/audio/pulseaudio/files/extra-patch-src_daemon_main.c @@ -0,0 +1,20 @@ +--- src/daemon/main.c.orig 2009-01-12 18:11:38.000000000 -0500 ++++ src/daemon/main.c 2009-03-07 19:56:16.000000000 -0500 +@@ -689,7 +690,7 @@ int main(int argc, char *argv[]) { + * first take the autospawn lock to make things + * synchronous. */ + +- if ((autospawn_fd = pa_autospawn_lock_init()) < 0) { ++ /*if ((autospawn_fd = pa_autospawn_lock_init()) < 0) { + pa_log("Failed to initialize autospawn lock"); + goto finish; + } +@@ -699,7 +700,7 @@ int main(int argc, char *argv[]) { + goto finish; + } + +- autospawn_locked = TRUE; ++ autospawn_locked = TRUE;*/ + } + + if (conf->daemonize) { diff --git a/audio/pulseaudio/files/extra-patch-src_daemon_start-pulseaudio-x11.in b/audio/pulseaudio/files/extra-patch-src_daemon_start-pulseaudio-x11.in new file mode 100644 index 000000000..65001b572 --- /dev/null +++ b/audio/pulseaudio/files/extra-patch-src_daemon_start-pulseaudio-x11.in @@ -0,0 +1,11 @@ +--- src/daemon/start-pulseaudio-x11.in.orig 2009-03-07 19:48:47.000000000 -0500 ++++ src/daemon/start-pulseaudio-x11.in 2009-03-07 19:48:56.000000000 -0500 +@@ -19,7 +19,7 @@ + + set -e + +-@PA_BINARY@ --start "$@" ++@PA_BINARY@ -D "$@" + + if [ x"$DISPLAY" != x ] ; then + diff --git a/audio/pulseaudio/files/extra-patch-src_pulse_context.c b/audio/pulseaudio/files/extra-patch-src_pulse_context.c new file mode 100644 index 000000000..fda93a2a6 --- /dev/null +++ b/audio/pulseaudio/files/extra-patch-src_pulse_context.c @@ -0,0 +1,11 @@ +--- src/pulse/context.c.orig 2009-03-08 14:33:36.000000000 -0400 ++++ src/pulse/context.c 2009-03-08 14:33:42.000000000 -0400 +@@ -664,7 +664,7 @@ static int context_autospawn(pa_context + n = 0; + + argv[n++] = c->conf->daemon_binary; +- argv[n++] = "--start"; ++ argv[n++] = "-D"; + + while (n < MAX_ARGS) { + char *a; diff --git a/audio/pulseaudio/files/patch-configure b/audio/pulseaudio/files/patch-configure new file mode 100644 index 000000000..513081005 --- /dev/null +++ b/audio/pulseaudio/files/patch-configure @@ -0,0 +1,36 @@ +--- configure.orig 2008-07-26 15:15:12.000000000 -0400 ++++ configure 2008-07-26 15:15:35.000000000 -0400 +@@ -25321,6 +25321,7 @@ $as_echo_n "checking whether to check fo + check_inconsistencies=yes + case "${host_cpu}-${host_os}" in + *-darwin*) check_inconsistencies=no ;; ++ *-freebsd*) check_inconsistencies=no ;; + esac + if test x"$GCC" != xyes -o "x$check_inconsistencies" != xyes ; then + { $as_echo "$as_me:$LINENO: result: no" >&5 +@@ -32654,9 +32655,9 @@ _ACEOF + + else + +- { { $as_echo "$as_me:$LINENO: error: *** libatomic-ops headers not found" >&5 +-$as_echo "$as_me: error: *** libatomic-ops headers not found" >&2;} +- { (exit 1); exit 1; }; } ++# { { $as_echo "$as_me:$LINENO: error: *** libatomic-ops headers not found" >&5 ++#$as_echo "$as_me: error: *** libatomic-ops headers not found" >&2;} ++# { (exit 1); exit 1; }; } + + fi + +@@ -32664,9 +32665,9 @@ done + + + # Win32 does not need the lib and breaks horribly if we try to include it +- if test "x$os_is_win32" != "x1" ; then +- LIBS="$LIBS -latomic_ops" +- fi ++# if test "x$os_is_win32" != "x1" ; then ++# LIBS="$LIBS -latomic_ops" ++# fi + else + { $as_echo "$as_me:$LINENO: result: no" >&5 + $as_echo "no" >&6; } diff --git a/audio/pulseaudio/files/patch-src_Makefile.in b/audio/pulseaudio/files/patch-src_Makefile.in new file mode 100644 index 000000000..e77cc9f9a --- /dev/null +++ b/audio/pulseaudio/files/patch-src_Makefile.in @@ -0,0 +1,23 @@ +--- src/Makefile.in.orig 2009-09-11 21:23:13.000000000 -0400 ++++ src/Makefile.in 2009-09-11 21:24:41.000000000 -0400 +@@ -2890,7 +2890,7 @@ libpulsecommon_@PA_MAJORMINORMICRO@_la_C + libpulsecommon_@PA_MAJORMINORMICRO@_la_LDFLAGS = $(AM_LDFLAGS) \ + -avoid-version $(am__append_14) + libpulsecommon_@PA_MAJORMINORMICRO@_la_LIBADD = $(AM_LIBADD) \ +- $(LIBWRAP_LIBS) $(WINSOCK_LIBS) $(LTLIBICONV) \ ++ $(LIBWRAP_LIBS) $(WINSOCK_LIBS) $(LTLIBICONV) -lexecinfo \ + $(LIBSNDFILE_LIBS) $(am__append_16) $(am__append_20) + + ################################### +@@ -7745,9 +7745,8 @@ info: info-am + + info-am: + +-install-data-am: install-alsapathsDATA install-alsaprofilesetsDATA \ +- install-dbuspolicyDATA install-pulseconfDATA \ +- install-pulseincludeHEADERS install-udevrulesDATA \ ++install-data-am: install-dbuspolicyDATA install-pulseconfDATA \ ++ install-pulseincludeHEADERS \ + install-xdgautostartDATA + + install-dvi: install-dvi-am diff --git a/audio/pulseaudio/files/patch-src_daemon_default.pa.in b/audio/pulseaudio/files/patch-src_daemon_default.pa.in new file mode 100644 index 000000000..0ca5a64e5 --- /dev/null +++ b/audio/pulseaudio/files/patch-src_daemon_default.pa.in @@ -0,0 +1,17 @@ +--- src/daemon/default.pa.in.orig 2009-07-19 14:58:14.000000000 -0400 ++++ src/daemon/default.pa.in 2009-07-19 14:58:41.000000000 -0400 +@@ -22,10 +22,10 @@ + .nofail + + ### Load something into the sample cache +-#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav +-#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav +-#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav +-#load-sample-lazy pulse-access /usr/share/sounds/generic.wav ++#load-sample-lazy x11-bell %%LOCALBASE%%/sounds/gtk-events/activate.wav ++#load-sample-lazy pulse-hotplug %%LOCALBASE%%/sounds/startup3.wav ++#load-sample-lazy pulse-coldplug %%LOCALBASE%%/sounds/startup3.wav ++#load-sample-lazy pulse-access %%LOCALBASE%%/sounds/generic.wav + + .fail + diff --git a/audio/pulseaudio/files/patch-src_modules_module-cli.c b/audio/pulseaudio/files/patch-src_modules_module-cli.c new file mode 100644 index 000000000..4b0fedcc8 --- /dev/null +++ b/audio/pulseaudio/files/patch-src_modules_module-cli.c @@ -0,0 +1,15 @@ +--- src/modules/module-cli.c.orig 2009-09-19 13:57:53.000000000 -0400 ++++ src/modules/module-cli.c 2009-09-19 14:04:25.000000000 -0400 +@@ -105,7 +105,12 @@ int pa__init(pa_module*m) { + * of log messages, particularly because if stdout and stderr are + * dup'ed they share the same O_NDELAY, too. */ + ++#ifdef O_CLOEXEC + if ((fd = open("/dev/tty", O_RDWR|O_CLOEXEC|O_NONBLOCK)) >= 0) { ++#else ++ if ((fd = open("/dev/tty", O_RDWR|O_NONBLOCK)) >= 0 && ++ fcntl(fd, F_SETFD, FD_CLOEXEC) != -1) { ++#endif + io = pa_iochannel_new(m->core->mainloop, fd, fd); + pa_log_debug("Managed to open /dev/tty."); + } else { diff --git a/audio/pulseaudio/files/patch-src_modules_oss_module-oss.c b/audio/pulseaudio/files/patch-src_modules_oss_module-oss.c new file mode 100644 index 000000000..a723999af --- /dev/null +++ b/audio/pulseaudio/files/patch-src_modules_oss_module-oss.c @@ -0,0 +1,24 @@ +--- src/modules/oss/module-oss.c.orig 2009-04-13 17:11:32.000000000 -0400 ++++ src/modules/oss/module-oss.c 2009-07-19 14:24:25.000000000 -0400 +@@ -1214,10 +1214,12 @@ int pa__init(pa_module*m) { + use_mmap = FALSE; + } + ++#ifndef __FreeBSD__ + if (use_mmap && mode == O_WRONLY) { + pa_log_info("Device opened for playback only, cannot do memory mapping, falling back to UNIX write() mode."); + use_mmap = FALSE; + } ++#endif + + if (pa_oss_get_hw_description(dev, hwdesc, sizeof(hwdesc)) >= 0) + pa_log_info("Hardware name is '%s'.", hwdesc); +@@ -1399,7 +1401,7 @@ int pa__init(pa_module*m) { + if ((u->mixer_fd = pa_oss_open_mixer_for_device(u->device_name)) >= 0) { + pa_bool_t do_close = TRUE; + +- if (ioctl(fd, SOUND_MIXER_READ_DEVMASK, &u->mixer_devmask) < 0) ++ if (ioctl(u->mixer_fd, SOUND_MIXER_READ_DEVMASK, &u->mixer_devmask) < 0) + pa_log_warn("SOUND_MIXER_READ_DEVMASK failed: %s", pa_cstrerror(errno)); + + else { diff --git a/audio/pulseaudio/files/patch-src_modules_oss_oss-util.c b/audio/pulseaudio/files/patch-src_modules_oss_oss-util.c new file mode 100644 index 000000000..5fe7ec329 --- /dev/null +++ b/audio/pulseaudio/files/patch-src_modules_oss_oss-util.c @@ -0,0 +1,25 @@ +--- src/modules/oss/oss-util.c.orig 2007-11-08 21:45:25.000000000 -0500 ++++ src/modules/oss/oss-util.c 2008-01-09 17:00:45.000000000 -0500 +@@ -44,6 +44,22 @@ + + #include "oss-util.h" + ++#ifndef DSP_CAP_COPROC ++#define DSP_CAP_COPROC 0x00000800 ++#endif ++#ifndef DSP_CAP_TRIGGER ++#define DSP_CAP_TRIGGER 0x00001000 ++#endif ++#ifndef DSP_CAP_MMAP ++#define DSP_CAP_MMAP 0x00002000 ++#endif ++#ifndef DSP_CAP_MULTI ++#define DSP_CAP_MULTI 0x00004000 ++#endif ++#ifndef DSP_CAP_BIND ++#define DSP_CAP_BIND 0x00008000 ++#endif ++ + int pa_oss_open(const char *device, int *mode, int* pcaps) { + int fd = -1; + int caps; diff --git a/audio/pulseaudio/files/patch-src_modules_rtp_rtsp_client.c b/audio/pulseaudio/files/patch-src_modules_rtp_rtsp_client.c new file mode 100644 index 000000000..2dbcad26a --- /dev/null +++ b/audio/pulseaudio/files/patch-src_modules_rtp_rtsp_client.c @@ -0,0 +1,12 @@ +--- src/modules/rtp/rtsp_client.c.orig 2009-07-19 14:38:38.000000000 -0400 ++++ src/modules/rtp/rtsp_client.c 2009-07-19 14:39:46.000000000 -0400 +@@ -23,6 +23,9 @@ + #include <config.h> + #endif + ++#include <sys/types.h> ++#include <sys/socket.h> ++#include <netinet/in.h> + #include <fcntl.h> + #include <stdlib.h> + #include <string.h> diff --git a/audio/pulseaudio/files/patch-src_pulse_introspect.c b/audio/pulseaudio/files/patch-src_pulse_introspect.c new file mode 100644 index 000000000..6681f70ca --- /dev/null +++ b/audio/pulseaudio/files/patch-src_pulse_introspect.c @@ -0,0 +1,11 @@ +--- src/pulse/introspect.c.orig 2008-01-03 20:01:31.000000000 -0500 ++++ src/pulse/introspect.c 2008-01-03 20:01:39.000000000 -0500 +@@ -26,6 +26,8 @@ + #include <config.h> + #endif + ++#include <string.h> ++ + #include <pulse/context.h> + + #include <pulsecore/gccmacro.h> diff --git a/audio/pulseaudio/files/patch-src_pulse_thread-mainloop.c b/audio/pulseaudio/files/patch-src_pulse_thread-mainloop.c new file mode 100644 index 000000000..72a0965dd --- /dev/null +++ b/audio/pulseaudio/files/patch-src_pulse_thread-mainloop.c @@ -0,0 +1,12 @@ +--- src/pulse/thread-mainloop.c.orig 2008-01-01 17:23:28.000000000 -0500 ++++ src/pulse/thread-mainloop.c 2008-01-01 17:25:00.000000000 -0500 +@@ -27,6 +27,9 @@ + #endif + + #include <signal.h> ++#ifndef OS_IS_WIN32 ++#include <pthread.h> ++#endif + #include <stdio.h> + + #ifdef HAVE_POLL_H diff --git a/audio/pulseaudio/files/patch-src_pulse_util.c b/audio/pulseaudio/files/patch-src_pulse_util.c new file mode 100644 index 000000000..2fa4de0bc --- /dev/null +++ b/audio/pulseaudio/files/patch-src_pulse_util.c @@ -0,0 +1,20 @@ +--- src/pulse/util.c.orig 2008-01-01 17:29:31.000000000 -0500 ++++ src/pulse/util.c 2008-01-01 17:29:00.000000000 -0500 +@@ -184,6 +184,17 @@ char *pa_get_binary_name(char *s, size_t + } + + #endif ++#ifdef __FreeBSD__ ++ { ++ char *rp; ++ ++ if ((rp = pa_readlink("/proc/curproc/file"))) { ++ pa_strlcpy(s, pa_path_get_filename(rp), l); ++ pa_xfree(rp); ++ return s; ++ } ++ } ++#endif + + #if defined(HAVE_SYS_PRCTL_H) && defined(PR_GET_NAME) + { diff --git a/audio/pulseaudio/files/patch-src_pulsecore_atomic.h b/audio/pulseaudio/files/patch-src_pulsecore_atomic.h new file mode 100644 index 000000000..06515b9f9 --- /dev/null +++ b/audio/pulseaudio/files/patch-src_pulsecore_atomic.h @@ -0,0 +1,116 @@ +--- src/pulsecore/atomic.h.orig 2008-01-23 19:44:20.000000000 -0500 ++++ src/pulsecore/atomic.h 2008-03-15 14:48:41.000000000 -0400 +@@ -106,6 +106,113 @@ static inline int pa_atomic_ptr_cmpxchg( + return __sync_bool_compare_and_swap(&a->value, (long) old_p, (long) new_p); + } + ++#elif defined(__FreeBSD__) ++ ++#include <sys/cdefs.h> ++#include <sys/types.h> ++#include <sys/param.h> ++#include <machine/atomic.h> ++ ++#if __FreeBSD_version < 600000 ++#if defined(__i386__) || defined(__amd64__) ++#if defined(__amd64__) ++#define atomic_load_acq_64 atomic_load_acq_long ++#endif ++static inline u_int ++atomic_fetchadd_int(volatile u_int *p, u_int v) ++{ ++ __asm __volatile( ++ " " __XSTRING(MPLOCKED) " " ++ " xaddl %0, %1 ; " ++ "# atomic_fetchadd_int" ++ : "+r" (v), ++ "=m" (*p) ++ : "m" (*p)); ++ ++ return (v); ++} ++#elif defined(__sparc64__) ++#define atomic_load_acq_64 atomic_load_acq_long ++#define atomic_fetchadd_int atomic_add_int ++#elif defined(__ia64__) ++#define atomic_load_acq_64 atomic_load_acq_long ++static inline uint32_t ++atomic_fetchadd_int(volatile uint32_t *p, uint32_t v) ++{ ++ uint32_t value; ++ ++ do { ++ value = *p; ++ } while (!atomic_cmpset_32(p, value, value + v)); ++ return (value); ++} ++#endif ++#endif ++ ++typedef struct pa_atomic { ++ volatile unsigned long value; ++} pa_atomic_t; ++ ++#define PA_ATOMIC_INIT(v) { .value = (v) } ++ ++static inline int pa_atomic_load(const pa_atomic_t *a) { ++ return (int) atomic_load_acq_int((unsigned int *) &a->value); ++} ++ ++static inline void pa_atomic_store(pa_atomic_t *a, int i) { ++ atomic_store_rel_int((unsigned int *) &a->value, i); ++} ++ ++static inline int pa_atomic_add(pa_atomic_t *a, int i) { ++ return atomic_fetchadd_int((unsigned int *) &a->value, i); ++} ++ ++static inline int pa_atomic_sub(pa_atomic_t *a, int i) { ++ return atomic_fetchadd_int((unsigned int *) &a->value, -(i)); ++} ++ ++static inline int pa_atomic_inc(pa_atomic_t *a) { ++ return atomic_fetchadd_int((unsigned int *) &a->value, 1); ++} ++ ++static inline int pa_atomic_dec(pa_atomic_t *a) { ++ return atomic_fetchadd_int((unsigned int *) &a->value, -1); ++} ++ ++static inline int pa_atomic_cmpxchg(pa_atomic_t *a, int old_i, int new_i) { ++ return atomic_cmpset_int((unsigned int *) &a->value, old_i, new_i); ++} ++ ++typedef struct pa_atomic_ptr { ++ volatile unsigned long value; ++} pa_atomic_ptr_t; ++ ++#define PA_ATOMIC_PTR_INIT(v) { .value = (unsigned long) (v) } ++ ++static inline void* pa_atomic_ptr_load(const pa_atomic_ptr_t *a) { ++#ifdef atomic_load_acq_64 ++ return (void*) atomic_load_acq_ptr((unsigned long *) &a->value); ++#else ++ return (void*) atomic_load_acq_ptr((unsigned int *) &a->value); ++#endif ++} ++ ++static inline void pa_atomic_ptr_store(pa_atomic_ptr_t *a, void *p) { ++#ifdef atomic_load_acq_64 ++ atomic_store_rel_ptr(&a->value, (unsigned long) p); ++#else ++ atomic_store_rel_ptr((unsigned int *) &a->value, (unsigned int) p); ++#endif ++} ++ ++static inline int pa_atomic_ptr_cmpxchg(pa_atomic_ptr_t *a, void *old_p, void* new_p) { ++#ifdef atomic_load_acq_64 ++ return atomic_cmpset_ptr(&a->value, (unsigned long) old_p, (unsigned long) new_p); ++#else ++ return atomic_cmpset_ptr((unsigned int *) &a->value, (unsigned int) old_p, (unsigned int) new_p); ++#endif ++} ++ + #elif defined(__GNUC__) && (defined(__amd64__) || defined(__x86_64__)) + + #error "The native atomic operations implementation for AMD64 has not been tested. libatomic_ops is known to not work properly on AMD64 and your gcc version is too old for the gcc-builtin atomic ops support. You have three options now: make the native atomic operations implementation for AMD64 work, fix libatomic_ops, or upgrade your GCC." diff --git a/audio/pulseaudio/files/patch-src_pulsecore_pstream.c b/audio/pulseaudio/files/patch-src_pulsecore_pstream.c new file mode 100644 index 000000000..b242e2e41 --- /dev/null +++ b/audio/pulseaudio/files/patch-src_pulsecore_pstream.c @@ -0,0 +1,23 @@ +--- src/pulsecore/pstream.c.orig 2007-10-28 15:13:53.000000000 -0400 ++++ src/pulsecore/pstream.c 2008-01-01 16:14:18.000000000 -0500 +@@ -183,14 +183,17 @@ static void do_something(pa_pstream *p) + p->mainloop->defer_enable(p->defer_event, 0); + + if (!p->dead && pa_iochannel_is_readable(p->io)) { +- if (do_read(p) < 0) ++ if (do_read(p) < 0) { + goto fail; +- } else if (!p->dead && pa_iochannel_is_hungup(p->io)) ++ } ++ } else if (!p->dead && pa_iochannel_is_hungup(p->io)) { + goto fail; ++ } + + if (!p->dead && pa_iochannel_is_writable(p->io)) { +- if (do_write(p) < 0) ++ if (do_write(p) < 0) { + goto fail; ++ } + } + + pa_pstream_unref(p); diff --git a/audio/pulseaudio/files/patch-src_pulsecore_shm.c b/audio/pulseaudio/files/patch-src_pulsecore_shm.c new file mode 100644 index 000000000..4dfa3a3a9 --- /dev/null +++ b/audio/pulseaudio/files/patch-src_pulsecore_shm.c @@ -0,0 +1,20 @@ +--- src/pulsecore/shm.c.orig 2009-08-19 10:17:06.000000000 +0800 ++++ src/pulsecore/shm.c 2009-11-11 21:25:03.000000000 +0800 +@@ -91,7 +91,7 @@ + #define SHM_MARKER_SIZE PA_ALIGN(sizeof(struct shm_marker)) + + static char *segment_name(char *fn, size_t l, unsigned id) { +- pa_snprintf(fn, l, "/pulse-shm-%u", id); ++ pa_snprintf(fn, l, "/tmp/pulse-shm-%u", id); + return fn; + } + +@@ -142,7 +142,7 @@ + pa_random(&m->id, sizeof(m->id)); + segment_name(fn, sizeof(fn), m->id); + +- if ((fd = shm_open(fn, O_RDWR|O_CREAT|O_EXCL, mode & 0444)) < 0) { ++ if ((fd = shm_open(fn, O_RDWR|O_CREAT|O_EXCL, mode & 0644)) < 0) { + pa_log("shm_open() failed: %s", pa_cstrerror(errno)); + goto fail; + } diff --git a/audio/pulseaudio/files/patch-src_tests_rtpoll-test.c b/audio/pulseaudio/files/patch-src_tests_rtpoll-test.c new file mode 100644 index 000000000..365ca8d2b --- /dev/null +++ b/audio/pulseaudio/files/patch-src_tests_rtpoll-test.c @@ -0,0 +1,18 @@ +--- src/tests/rtpoll-test.c.orig 2008-01-03 20:03:03.000000000 -0500 ++++ src/tests/rtpoll-test.c 2008-01-03 20:03:25.000000000 -0500 +@@ -45,6 +45,7 @@ static int worker(pa_rtpoll_item *w) { + } + + int main(int argc, char *argv[]) { ++#ifdef SIGRTMIN + pa_rtpoll *p; + pa_rtpoll_item *i, *w; + struct pollfd *pollfd; +@@ -86,6 +87,7 @@ int main(int argc, char *argv[]) { + pa_rtpoll_item_free(w); + + pa_rtpoll_free(p); ++#endif + + return 0; + } diff --git a/audio/pulseaudio/pkg-descr b/audio/pulseaudio/pkg-descr new file mode 100644 index 000000000..45634a1f7 --- /dev/null +++ b/audio/pulseaudio/pkg-descr @@ -0,0 +1,8 @@ +PulseAudio, previously known as Polypaudio, is a sound server for POSIX and +Win32 systems. A sound server is basically a proxy for your sound applications. +It allows you to do advanced operations on your sound data as it passes between +your application and your hardware. Things like transferring the audio to a +different machine, changing the sample format or channel count and mixing +several sounds into one are easily achieved using a sound server. + +WWW: http://pulseaudio.org/ diff --git a/audio/pulseaudio/pkg-plist b/audio/pulseaudio/pkg-plist new file mode 100644 index 000000000..a8f4206a6 --- /dev/null +++ b/audio/pulseaudio/pkg-plist @@ -0,0 +1,267 @@ +bin/esdcompat +%%AVAHI%%bin/pabrowse +bin/pacat +bin/pacmd +bin/pactl +bin/padsp +bin/pamon +bin/paplay +bin/parec +bin/parecord +bin/pasuspender +bin/pax11publish +bin/pulseaudio +bin/start-pulseaudio-x11 +etc/dbus-1/system.d/pulseaudio-system.conf +@unexec if cmp -s %D/etc/pulse/client.conf %D/etc/pulse/client.conf-dist; then rm -f %D/etc/pulse/client.conf; fi +etc/pulse/client.conf-dist +@exec [ -f %B/client.conf ] || cp %B/%f %B/client.conf +@unexec if cmp -s %D/etc/pulse/daemon.conf %D/etc/pulse/daemon.conf-dist; then rm -f %D/etc/pulse/daemon.conf; fi +etc/pulse/daemon.conf-dist +@exec [ -f %B/daemon.conf ] || cp %B/%f %B/daemon.conf +@unexec if cmp -s %D/etc/pulse/default.pa %D/etc/pulse/default.pa-dist; then rm -f %D/etc/pulse/default.pa; fi +etc/pulse/default.pa-dist +@exec [ -f %B/default.pa ] || cp %B/%f %B/default.pa +@unexec if cmp -s %D/etc/pulse/system.pa %D/etc/pulse/system.pa-dist; then rm -f %D/etc/pulse/system.pa; fi +etc/pulse/system.pa-dist +@exec [ -f %B/system.pa ] || cp %B/%f %B/system.pa +etc/xdg/autostart/pulseaudio.desktop +%%AVAHI%%include/pulse/browser.h +include/pulse/cdecl.h +include/pulse/channelmap.h +include/pulse/context.h +include/pulse/def.h +include/pulse/error.h +include/pulse/ext-stream-restore.h +include/pulse/gccmacro.h +include/pulse/glib-mainloop.h +include/pulse/introspect.h +include/pulse/mainloop-api.h +include/pulse/mainloop-signal.h +include/pulse/mainloop.h +include/pulse/operation.h +include/pulse/proplist.h +include/pulse/pulseaudio.h +include/pulse/rtclock.h +include/pulse/sample.h +include/pulse/scache.h +include/pulse/simple.h +include/pulse/stream.h +include/pulse/subscribe.h +include/pulse/thread-mainloop.h +include/pulse/timeval.h +include/pulse/utf8.h +include/pulse/util.h +include/pulse/version.h +include/pulse/volume.h +include/pulse/xmalloc.h +%%AVAHI%%lib/libpulse-browse.a +%%AVAHI%%lib/libpulse-browse.la +%%AVAHI%%lib/libpulse-browse.so +%%AVAHI%%lib/libpulse-browse.so.0 +lib/libpulse-mainloop-glib.a +lib/libpulse-mainloop-glib.la +lib/libpulse-mainloop-glib.so +lib/libpulse-mainloop-glib.so.0 +lib/libpulse-simple.a +lib/libpulse-simple.la +lib/libpulse-simple.so +lib/libpulse-simple.so.0 +lib/libpulse.a +lib/libpulse.la +lib/libpulse.so +lib/libpulse.so.0 +lib/libpulsecommon-%%PULSE_VERSION%%.a +lib/libpulsecommon-%%PULSE_VERSION%%.la +lib/libpulsecommon-%%PULSE_VERSION%%.so +lib/libpulsecore-%%PULSE_VERSION%%.a +lib/libpulsecore-%%PULSE_VERSION%%.la +lib/libpulsecore-%%PULSE_VERSION%%.so +lib/libpulsedsp.a +lib/libpulsedsp.so +%%AVAHI%%lib/pulse-%%PULSE_VERSION%%/modules/libavahi-wrap.a +%%AVAHI%%lib/pulse-%%PULSE_VERSION%%/modules/libavahi-wrap.so +lib/pulse-%%PULSE_VERSION%%/modules/libcli.a +lib/pulse-%%PULSE_VERSION%%/modules/libcli.so +lib/pulse-%%PULSE_VERSION%%/modules/liboss-util.a +lib/pulse-%%PULSE_VERSION%%/modules/liboss-util.so +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-cli.a +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-cli.so +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-esound.a +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-esound.so +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-http.a +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-http.so +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-native.a +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-native.so +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-simple.a +lib/pulse-%%PULSE_VERSION%%/modules/libprotocol-simple.so +lib/pulse-%%PULSE_VERSION%%/modules/libraop.a +lib/pulse-%%PULSE_VERSION%%/modules/libraop.so +lib/pulse-%%PULSE_VERSION%%/modules/librtp.a +lib/pulse-%%PULSE_VERSION%%/modules/librtp.so +lib/pulse-%%PULSE_VERSION%%/modules/module-always-sink.a +lib/pulse-%%PULSE_VERSION%%/modules/module-always-sink.so +lib/pulse-%%PULSE_VERSION%%/modules/module-augment-properties.a +lib/pulse-%%PULSE_VERSION%%/modules/module-augment-properties.so +lib/pulse-%%PULSE_VERSION%%/modules/module-card-restore.a +lib/pulse-%%PULSE_VERSION%%/modules/module-card-restore.so +lib/pulse-%%PULSE_VERSION%%/modules/module-cli-protocol-tcp.a +lib/pulse-%%PULSE_VERSION%%/modules/module-cli-protocol-tcp.so +lib/pulse-%%PULSE_VERSION%%/modules/module-cli-protocol-unix.a +lib/pulse-%%PULSE_VERSION%%/modules/module-cli-protocol-unix.so +lib/pulse-%%PULSE_VERSION%%/modules/module-cli.a +lib/pulse-%%PULSE_VERSION%%/modules/module-cli.so +lib/pulse-%%PULSE_VERSION%%/modules/module-combine.a +lib/pulse-%%PULSE_VERSION%%/modules/module-combine.so +lib/pulse-%%PULSE_VERSION%%/modules/module-console-kit.a +lib/pulse-%%PULSE_VERSION%%/modules/module-console-kit.so +lib/pulse-%%PULSE_VERSION%%/modules/module-cork-music-on-phone.a +lib/pulse-%%PULSE_VERSION%%/modules/module-cork-music-on-phone.so +lib/pulse-%%PULSE_VERSION%%/modules/module-default-device-restore.a +lib/pulse-%%PULSE_VERSION%%/modules/module-default-device-restore.so +lib/pulse-%%PULSE_VERSION%%/modules/module-detect.a +lib/pulse-%%PULSE_VERSION%%/modules/module-detect.so +lib/pulse-%%PULSE_VERSION%%/modules/module-device-restore.a +lib/pulse-%%PULSE_VERSION%%/modules/module-device-restore.so +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-compat-spawnfd.a +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-compat-spawnfd.so +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-compat-spawnpid.a +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-compat-spawnpid.so +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-protocol-tcp.a +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-protocol-tcp.so +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-protocol-unix.a +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-protocol-unix.so +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-sink.a +lib/pulse-%%PULSE_VERSION%%/modules/module-esound-sink.so +%%GCONF%%lib/pulse-%%PULSE_VERSION%%/modules/module-gconf.a +%%GCONF%%lib/pulse-%%PULSE_VERSION%%/modules/module-gconf.so +%%HAL%%lib/pulse-%%PULSE_VERSION%%/modules/module-hal-detect.a +%%HAL%%lib/pulse-%%PULSE_VERSION%%/modules/module-hal-detect.so +lib/pulse-%%PULSE_VERSION%%/modules/module-http-protocol-tcp.a +lib/pulse-%%PULSE_VERSION%%/modules/module-http-protocol-tcp.so +lib/pulse-%%PULSE_VERSION%%/modules/module-http-protocol-unix.a +lib/pulse-%%PULSE_VERSION%%/modules/module-http-protocol-unix.so +lib/pulse-%%PULSE_VERSION%%/modules/module-intended-roles.a +lib/pulse-%%PULSE_VERSION%%/modules/module-intended-roles.so +%%JACK%%lib/pulse-%%PULSE_VERSION%%/modules/module-jack-sink.a +%%JACK%%lib/pulse-%%PULSE_VERSION%%/modules/module-jack-sink.so +%%JACK%%lib/pulse-%%PULSE_VERSION%%/modules/module-jack-source.a +%%JACK%%lib/pulse-%%PULSE_VERSION%%/modules/module-jack-source.so +lib/pulse-%%PULSE_VERSION%%/modules/module-ladspa-sink.a +lib/pulse-%%PULSE_VERSION%%/modules/module-ladspa-sink.so +lib/pulse-%%PULSE_VERSION%%/modules/module-loopback.a +lib/pulse-%%PULSE_VERSION%%/modules/module-loopback.so +lib/pulse-%%PULSE_VERSION%%/modules/module-match.a +lib/pulse-%%PULSE_VERSION%%/modules/module-match.so +lib/pulse-%%PULSE_VERSION%%/modules/module-native-protocol-fd.a +lib/pulse-%%PULSE_VERSION%%/modules/module-native-protocol-fd.so +lib/pulse-%%PULSE_VERSION%%/modules/module-native-protocol-tcp.a +lib/pulse-%%PULSE_VERSION%%/modules/module-native-protocol-tcp.so +lib/pulse-%%PULSE_VERSION%%/modules/module-native-protocol-unix.a +lib/pulse-%%PULSE_VERSION%%/modules/module-native-protocol-unix.so +lib/pulse-%%PULSE_VERSION%%/modules/module-null-sink.a +lib/pulse-%%PULSE_VERSION%%/modules/module-null-sink.so +lib/pulse-%%PULSE_VERSION%%/modules/module-oss.a +lib/pulse-%%PULSE_VERSION%%/modules/module-oss.so +lib/pulse-%%PULSE_VERSION%%/modules/module-pipe-sink.a +lib/pulse-%%PULSE_VERSION%%/modules/module-pipe-sink.so +lib/pulse-%%PULSE_VERSION%%/modules/module-pipe-source.a +lib/pulse-%%PULSE_VERSION%%/modules/module-pipe-source.so +lib/pulse-%%PULSE_VERSION%%/modules/module-position-event-sounds.a +lib/pulse-%%PULSE_VERSION%%/modules/module-position-event-sounds.so +%%AVAHI%%lib/pulse-%%PULSE_VERSION%%/modules/module-raop-discover.a +%%AVAHI%%lib/pulse-%%PULSE_VERSION%%/modules/module-raop-discover.so +lib/pulse-%%PULSE_VERSION%%/modules/module-raop-sink.a +lib/pulse-%%PULSE_VERSION%%/modules/module-raop-sink.so +lib/pulse-%%PULSE_VERSION%%/modules/module-remap-sink.a +lib/pulse-%%PULSE_VERSION%%/modules/module-remap-sink.so +lib/pulse-%%PULSE_VERSION%%/modules/module-rescue-streams.a +lib/pulse-%%PULSE_VERSION%%/modules/module-rescue-streams.so +lib/pulse-%%PULSE_VERSION%%/modules/module-rtp-recv.a +lib/pulse-%%PULSE_VERSION%%/modules/module-rtp-recv.so +lib/pulse-%%PULSE_VERSION%%/modules/module-rtp-send.a +lib/pulse-%%PULSE_VERSION%%/modules/module-rtp-send.so +lib/pulse-%%PULSE_VERSION%%/modules/module-rygel-media-server.a +lib/pulse-%%PULSE_VERSION%%/modules/module-rygel-media-server.so +lib/pulse-%%PULSE_VERSION%%/modules/module-simple-protocol-tcp.a +lib/pulse-%%PULSE_VERSION%%/modules/module-simple-protocol-tcp.so +lib/pulse-%%PULSE_VERSION%%/modules/module-simple-protocol-unix.a +lib/pulse-%%PULSE_VERSION%%/modules/module-simple-protocol-unix.so +lib/pulse-%%PULSE_VERSION%%/modules/module-sine.a +lib/pulse-%%PULSE_VERSION%%/modules/module-sine.so +lib/pulse-%%PULSE_VERSION%%/modules/module-sine-source.a +lib/pulse-%%PULSE_VERSION%%/modules/module-sine-source.so +lib/pulse-%%PULSE_VERSION%%/modules/module-stream-restore.a +lib/pulse-%%PULSE_VERSION%%/modules/module-stream-restore.so +lib/pulse-%%PULSE_VERSION%%/modules/module-suspend-on-idle.a +lib/pulse-%%PULSE_VERSION%%/modules/module-suspend-on-idle.so +lib/pulse-%%PULSE_VERSION%%/modules/module-tunnel-sink.a +lib/pulse-%%PULSE_VERSION%%/modules/module-tunnel-sink.so +lib/pulse-%%PULSE_VERSION%%/modules/module-tunnel-source.a +lib/pulse-%%PULSE_VERSION%%/modules/module-tunnel-source.so +lib/pulse-%%PULSE_VERSION%%/modules/module-volume-restore.a +lib/pulse-%%PULSE_VERSION%%/modules/module-volume-restore.so +lib/pulse-%%PULSE_VERSION%%/modules/module-x11-bell.a +lib/pulse-%%PULSE_VERSION%%/modules/module-x11-bell.so +lib/pulse-%%PULSE_VERSION%%/modules/module-x11-cork-request.a +lib/pulse-%%PULSE_VERSION%%/modules/module-x11-cork-request.so +lib/pulse-%%PULSE_VERSION%%/modules/module-x11-publish.a +lib/pulse-%%PULSE_VERSION%%/modules/module-x11-publish.so +lib/pulse-%%PULSE_VERSION%%/modules/module-x11-xsmp.a +lib/pulse-%%PULSE_VERSION%%/modules/module-x11-xsmp.so +%%AVAHI%%lib/pulse-%%PULSE_VERSION%%/modules/module-zeroconf-discover.a +%%AVAHI%%lib/pulse-%%PULSE_VERSION%%/modules/module-zeroconf-discover.so +%%AVAHI%%lib/pulse-%%PULSE_VERSION%%/modules/module-zeroconf-publish.a +%%AVAHI%%lib/pulse-%%PULSE_VERSION%%/modules/module-zeroconf-publish.so +%%AVAHI%%libdata/pkgconfig/libpulse-browse.pc +libdata/pkgconfig/libpulse-mainloop-glib.pc +libdata/pkgconfig/libpulse-simple.pc +libdata/pkgconfig/libpulse.pc +%%GCONF%%libexec/pulse/gconf-helper +share/locale/as/LC_MESSAGES/pulseaudio.mo +share/locale/bn_IN/LC_MESSAGES/pulseaudio.mo +share/locale/ca/LC_MESSAGES/pulseaudio.mo +share/locale/cs/LC_MESSAGES/pulseaudio.mo +share/locale/de/LC_MESSAGES/pulseaudio.mo +share/locale/de_CH/LC_MESSAGES/pulseaudio.mo +share/locale/el/LC_MESSAGES/pulseaudio.mo +share/locale/es/LC_MESSAGES/pulseaudio.mo +share/locale/fi/LC_MESSAGES/pulseaudio.mo +share/locale/fr/LC_MESSAGES/pulseaudio.mo +share/locale/gu/LC_MESSAGES/pulseaudio.mo +share/locale/hi/LC_MESSAGES/pulseaudio.mo +share/locale/hu/LC_MESSAGES/pulseaudio.mo +share/locale/it/LC_MESSAGES/pulseaudio.mo +share/locale/ja/LC_MESSAGES/pulseaudio.mo +share/locale/kn/LC_MESSAGES/pulseaudio.mo +share/locale/ml/LC_MESSAGES/pulseaudio.mo +share/locale/mr/LC_MESSAGES/pulseaudio.mo +share/locale/nl/LC_MESSAGES/pulseaudio.mo +share/locale/or/LC_MESSAGES/pulseaudio.mo +share/locale/pa/LC_MESSAGES/pulseaudio.mo +share/locale/pl/LC_MESSAGES/pulseaudio.mo +share/locale/pt/LC_MESSAGES/pulseaudio.mo +share/locale/pt_BR/LC_MESSAGES/pulseaudio.mo +share/locale/sr/LC_MESSAGES/pulseaudio.mo +share/locale/sr@latin/LC_MESSAGES/pulseaudio.mo +share/locale/sv/LC_MESSAGES/pulseaudio.mo +share/locale/ta/LC_MESSAGES/pulseaudio.mo +share/locale/te/LC_MESSAGES/pulseaudio.mo +share/locale/uk/LC_MESSAGES/pulseaudio.mo +share/locale/zh_CN/LC_MESSAGES/pulseaudio.mo +share/vala/vapi/libpulse.vapi +%%GCONF%%@dirrm libexec/pulse +@dirrm lib/pulse-%%PULSE_VERSION%%/modules +@dirrm lib/pulse-%%PULSE_VERSION%% +@dirrm include/pulse +@dirrm etc/pulse +@dirrmtry share/locale/sr@latin/LC_MESSAGES +@dirrmtry share/locale/sr@latin +@dirrmtry share/locale/mr/LC_MESSAGES +@dirrmtry share/locale/mr +@dirrmtry share/locale/de_CH/LC_MESSAGES +@dirrmtry share/locale/de_CH +@dirrmtry share/locale/bn_IN/LC_MESSAGES +@dirrmtry share/locale/bn_IN +@dirrmtry share/locale/as/LC_MESSAGES +@dirrmtry share/locale/as |