Hello community,
here is the log from the commit of package pulseaudio for openSUSE:Factory checked in at 2015-11-06 00:10:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pulseaudio (Old)
and /work/SRC/openSUSE:Factory/.pulseaudio.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pulseaudio"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pulseaudio/pulseaudio.changes 2015-10-25 15:10:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.pulseaudio.new/pulseaudio.changes 2015-11-06 00:10:49.000000000 +0100
@@ -1,0 +2,18 @@
+Mon Nov 2 20:54:13 UTC 2015 - meissner@suse.com
+
+- add libpulse-devel to baselibs.conf for use of 32bit biarch
+ wine builds on x86_64
+
+-------------------------------------------------------------------
+Fri Oct 30 13:22:54 UTC 2015 - oholecek@suse.com
+
+- Update to 7.1
+ + Fix a crasher when using srbchannel
+ + Fix a build system typo that caused symlinks to turn up in /
+ + Make Xonar cards work better
+ + Other minor bug fixes and improvements
+- remove 0003-alsa-mixer-Add-Dock-Line-Out-jack-handling-to-analog.patch
+- remove 0002-alsa-mixer-Recognize-Dock-Line-Out-jack.patch
+- remove pstream-Fix-use-after-free-in-srb_callback.patch
+
+-------------------------------------------------------------------
Old:
----
0002-alsa-mixer-Recognize-Dock-Line-Out-jack.patch
0003-alsa-mixer-Add-Dock-Line-Out-jack-handling-to-analog.patch
pstream-Fix-use-after-free-in-srb_callback.patch
pulseaudio-7.0.tar.xz
New:
----
pulseaudio-7.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pulseaudio.spec ++++++
--- /var/tmp/diff_new_pack.YBCnZy/_old 2015-11-06 00:10:50.000000000 +0100
+++ /var/tmp/diff_new_pack.YBCnZy/_new 2015-11-06 00:10:50.000000000 +0100
@@ -16,7 +16,7 @@
#
-%define drvver 7.0
+%define drvver 7.1
%define soname 0
%define _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d
%define _fwdefdir %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
@@ -27,7 +27,7 @@
%define _bluez5used 0%(echo "%{_bluezVersion}" | grep -q '^5' && echo 1)
%define _bashcompletionsdir %{_datadir}/bash-completion/completions
Name: pulseaudio
-Version: 7.0
+Version: 7.1
Release: 0
Summary: A Networked Sound Server
License: GPL-2.0+ and LGPL-2.1+
@@ -46,12 +46,6 @@
# PATCH-FIX-SUSE disable-srbchannel.patch boo#950487 Disable srbchannel as a workaround for crashes on KDE
# XXX note this patch isn't used for now, kept just for workaround in future
Patch3: disable-srbchannel.patch
-# PATCH-FIX-UPSTREAM pstream-Fix-use-after-free-in-srb_callback.patch boo#950487
-Patch4: pstream-Fix-use-after-free-in-srb_callback.patch
-# PATCH-FIX-UPSTREAM 0002-alsa-mixer-Recognize-Dock-Line-Out-jack.patch boo#934850
-Patch102: 0002-alsa-mixer-Recognize-Dock-Line-Out-jack.patch
-# PATCH-FIX-UPSTREAM 0003-alsa-mixer-Add-Dock-Line-Out-jack-handling-to-analog.patch boo#948979
-Patch103: 0003-alsa-mixer-Add-Dock-Line-Out-jack-handling-to-analog.patch
# PATCH-FIX-UPSTREAM 0004-module-alsa-card-Report-available-ports-before-unava.patch boo#948979
Patch104: 0004-module-alsa-card-Report-available-ports-before-unava.patch
BuildRequires: alsa-devel >= 1.0.19
@@ -336,9 +330,6 @@
%if 0
%patch3 -p1
%endif
-%patch4 -p1
-%patch102 -p1
-%patch103 -p1
%patch104 -p1
%build
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.YBCnZy/_old 2015-11-06 00:10:51.000000000 +0100
+++ /var/tmp/diff_new_pack.YBCnZy/_new 2015-11-06 00:10:51.000000000 +0100
@@ -2,3 +2,4 @@
obsoletes "pulseaudio-libs-<targettype> <= <version>"
provides "pulseaudio-libs-<targettype> = <version>"
libpulse-mainloop-glib0
+libpulse-devel
++++++ pulseaudio-7.0.tar.xz -> pulseaudio-7.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/.tarball-version new/pulseaudio-7.1/.tarball-version
--- old/pulseaudio-7.0/.tarball-version 2015-09-24 05:27:27.000000000 +0200
+++ new/pulseaudio-7.1/.tarball-version 2015-10-30 13:51:03.000000000 +0100
@@ -1 +1 @@
-7.0
+7.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/.version new/pulseaudio-7.1/.version
--- old/pulseaudio-7.0/.version 2015-09-24 05:27:27.000000000 +0200
+++ new/pulseaudio-7.1/.version 2015-10-30 13:51:03.000000000 +0100
@@ -1 +1 @@
-7.0
+7.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/Makefile.in new/pulseaudio-7.1/Makefile.in
--- old/pulseaudio-7.0/Makefile.in 2015-09-24 05:15:11.000000000 +0200
+++ new/pulseaudio-7.1/Makefile.in 2015-10-30 13:27:06.000000000 +0100
@@ -239,7 +239,7 @@
$(top_srcdir)/build-aux/missing \
$(top_srcdir)/src/pulse/version.h.in ABOUT-NLS NEWS README \
build-aux/compile build-aux/config.guess \
- build-aux/config.rpath build-aux/config.sub \
+ build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
build-aux/install-sh build-aux/ltmain.sh build-aux/missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/NEWS new/pulseaudio-7.1/NEWS
--- old/pulseaudio-7.0/NEWS 2015-09-24 05:26:53.000000000 +0200
+++ new/pulseaudio-7.1/NEWS 2015-10-30 13:47:16.000000000 +0100
@@ -1,3 +1,21 @@
+PulseAudio 7.1
+
+Changes at a glance:
+
+ * Fix a crasher when using srbchannel
+ * Fix a build system typo that caused symlinks to turn up in /
+ * Make Xonar cards work better
+ * Other minor bug fixes and improvements
+
+Contributors:
+
+ David Henningsson (4):
+ Felipe Sateler (2):
+ Georg Chini (1):
+ Takashi Iwai (1):
+ Tanu Kaskinen (3):
+
+
PulseAudio 7.0
Changes at a glance:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/configure new/pulseaudio-7.1/configure
--- old/pulseaudio-7.0/configure 2015-09-24 05:15:09.000000000 +0200
+++ new/pulseaudio-7.1/configure 2015-10-30 13:27:08.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pulseaudio 7.0.
+# Generated by GNU Autoconf 2.69 for pulseaudio 7.1.
#
# Report bugs to .
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='pulseaudio'
PACKAGE_TARNAME='pulseaudio'
-PACKAGE_VERSION='7.0'
-PACKAGE_STRING='pulseaudio 7.0'
+PACKAGE_VERSION='7.1'
+PACKAGE_STRING='pulseaudio 7.1'
PACKAGE_BUGREPORT='pulseaudio-discuss (at) lists (dot) freedesktop (dot) org'
PACKAGE_URL='http://pulseaudio.org/'
@@ -1741,7 +1741,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures pulseaudio 7.0 to adapt to many kinds of systems.
+\`configure' configures pulseaudio 7.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1811,7 +1811,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of pulseaudio 7.0:";;
+ short | recursive ) echo "Configuration of pulseaudio 7.1:";;
esac
cat <<\_ACEOF
@@ -2113,7 +2113,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-pulseaudio configure 7.0
+pulseaudio configure 7.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2703,7 +2703,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by pulseaudio $as_me 7.0, which was
+It was created by pulseaudio $as_me 7.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3655,7 +3655,7 @@
# Define the identity of the package.
PACKAGE='pulseaudio'
- VERSION='7.0'
+ VERSION='7.1'
cat >>confdefs.h <<_ACEOF
@@ -27924,7 +27924,7 @@
bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)
fi
-if test "x$bashcompletionsdir" = ""; then
+if test "x$bashcompletionsdir" = "x"; then
bashcompletiondir="${datadir}/bash-completion/completions"
fi
@@ -28790,7 +28790,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by pulseaudio $as_me 7.0, which was
+This file was extended by pulseaudio $as_me 7.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -28857,7 +28857,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-pulseaudio config.status 7.0
+pulseaudio config.status 7.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/configure.ac new/pulseaudio-7.1/configure.ac
--- old/pulseaudio-7.0/configure.ac 2015-09-17 04:47:47.000000000 +0200
+++ new/pulseaudio-7.1/configure.ac 2015-10-30 13:22:13.000000000 +0100
@@ -1439,7 +1439,7 @@
AC_ARG_WITH([bash-completion-dir],
AS_HELP_STRING([--with-bash-completion-dir=DIR], [Directory for bash completion files]),
[bashcompletiondir=$withval], [bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)])
-if test "x$bashcompletionsdir" = ""; then
+if test "x$bashcompletionsdir" = "x"; then
bashcompletiondir="${datadir}/bash-completion/completions"
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/man/pulseaudio.1 new/pulseaudio-7.1/man/pulseaudio.1
--- old/pulseaudio-7.0/man/pulseaudio.1 2015-09-24 05:17:10.000000000 +0200
+++ new/pulseaudio-7.1/man/pulseaudio.1 2015-10-30 13:27:19.000000000 +0100
@@ -57,7 +57,7 @@
Run as system-wide instance instead of per-user. Please note that this disables certain features of PulseAudio and is generally not recommended unless the system knows no local users (e.g. is a thin client). This feature needs special configuration and a dedicated UNIX user set up. It is highly recommended to combine this with \fB--disallow-module-loading\f1 (see below).
.TP
\fB-D | --daemonize\f1\fI[=BOOL]\f1
-Daemonize after startup, i.e. detach from the terminal.
+Daemonize after startup, i.e. detach from the terminal. Note that when running as a systemd service you should use \fB--daemonize=no\f1 for systemd notification to work.
.TP
\fB--fail\f1\fI[=BOOL]\f1
Fail startup when any of the commands specified in the startup script \fIdefault.pa\f1 (see below) fails.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/man/pulseaudio.1.xml.in new/pulseaudio-7.1/man/pulseaudio.1.xml.in
--- old/pulseaudio-7.0/man/pulseaudio.1.xml.in 2015-09-15 06:46:06.000000000 +0200
+++ new/pulseaudio-7.1/man/pulseaudio.1.xml.in 2015-10-30 13:17:05.000000000 +0100
@@ -130,7 +130,9 @@
<p><opt>-D | --daemonize</opt><arg>[=BOOL]</arg></p>
<optdesc><p>Daemonize after startup, i.e. detach from the
- terminal.</p></optdesc>
+ terminal. Note that when running as a systemd service you should
+ use <opt>--daemonize=no</opt> for systemd notification to work.
+ </p></optdesc>
</option>
<option>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/daemon/main.c new/pulseaudio-7.1/src/daemon/main.c
--- old/pulseaudio-7.0/src/daemon/main.c 2015-09-15 06:46:06.000000000 +0200
+++ new/pulseaudio-7.1/src/daemon/main.c 2015-10-30 13:16:48.000000000 +0100
@@ -1131,12 +1131,20 @@
pa_log_info("Daemon startup complete.");
+#ifdef HAVE_SYSTEMD_DAEMON
+ sd_notify(0, "READY=1");
+#endif
+
retval = 0;
if (pa_mainloop_run(mainloop, &retval) < 0)
goto finish;
pa_log_info("Daemon shutdown initiated.");
+#ifdef HAVE_SYSTEMD_DAEMON
+ sd_notify(0, "STOPPING=1");
+#endif
+
finish:
#ifdef HAVE_DBUS
if (server_bus)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/daemon/systemd/user/pulseaudio.service.in new/pulseaudio-7.1/src/daemon/systemd/user/pulseaudio.service.in
--- old/pulseaudio-7.0/src/daemon/systemd/user/pulseaudio.service.in 2015-09-15 06:46:06.000000000 +0200
+++ new/pulseaudio-7.1/src/daemon/systemd/user/pulseaudio.service.in 2015-10-30 13:16:48.000000000 +0100
@@ -2,6 +2,8 @@
Description=Sound Service
[Service]
+# Note that notify will only work if --daemonize=no
+Type=notify
ExecStart=@PA_BINARY@ --daemonize=no
Restart=on-failure
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/modules/alsa/alsa-mixer.c new/pulseaudio-7.1/src/modules/alsa/alsa-mixer.c
--- old/pulseaudio-7.0/src/modules/alsa/alsa-mixer.c 2015-09-15 06:46:06.000000000 +0200
+++ new/pulseaudio-7.1/src/modules/alsa/alsa-mixer.c 2015-10-30 13:28:03.000000000 +0100
@@ -1743,10 +1743,10 @@
if (e->n_channels <= 0) {
pa_log_warn("Volume element %s with no channels?", e->alsa_name);
- return -1;
+ e->volume_use = PA_ALSA_VOLUME_IGNORE;
}
- if (e->n_channels > 2) {
+ else if (e->n_channels > 2) {
/* FIXME: In some places code like this is used:
*
* e->masks[alsa_channel_ids[p]][e->n_channels-1]
@@ -1759,7 +1759,7 @@
* don't support elements with more than two
* channels... */
pa_log_warn("Volume element %s has %u channels. That's too much! I can't handle that!", e->alsa_name, e->n_channels);
- return -1;
+ e->volume_use = PA_ALSA_VOLUME_IGNORE;
}
if (!e->override_map) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/modules/alsa/alsa-ucm.c new/pulseaudio-7.1/src/modules/alsa/alsa-ucm.c
--- old/pulseaudio-7.0/src/modules/alsa/alsa-ucm.c 2015-09-15 06:46:06.000000000 +0200
+++ new/pulseaudio-7.1/src/modules/alsa/alsa-ucm.c 2015-10-30 13:28:03.000000000 +0100
@@ -778,7 +778,6 @@
pa_hashmap_put(ports, port->name, port);
pa_log_debug("Add port %s: %s", port->name, port->description);
- port->profiles = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
}
port->priority = priority;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/modules/alsa/mixer/paths/analog-input.conf new/pulseaudio-7.1/src/modules/alsa/mixer/paths/analog-input.conf
--- old/pulseaudio-7.0/src/modules/alsa/mixer/paths/analog-input.conf 2015-09-10 06:51:41.000000000 +0200
+++ new/pulseaudio-7.1/src/modules/alsa/mixer/paths/analog-input.conf 2015-10-30 13:22:13.000000000 +0100
@@ -30,6 +30,9 @@
[Element Mic]
required-absent = any
+[Element Mic Boost]
+required-absent = any
+
[Element Dock Mic]
required-absent = any
@@ -78,6 +81,9 @@
[Element Line]
required-absent = any
+[Element Line Boost]
+required-absent = any
+
[Element Aux]
required-absent = any
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/modules/alsa/mixer/paths/analog-output-lineout.conf new/pulseaudio-7.1/src/modules/alsa/mixer/paths/analog-output-lineout.conf
--- old/pulseaudio-7.0/src/modules/alsa/mixer/paths/analog-output-lineout.conf 2015-09-15 06:46:06.000000000 +0200
+++ new/pulseaudio-7.1/src/modules/alsa/mixer/paths/analog-output-lineout.conf 2015-10-30 13:22:13.000000000 +0100
@@ -87,6 +87,14 @@
state.unplugged = unknown
required-any = any
+[Jack Dock Line Out]
+required-any = any
+
+[Jack Dock Line Out Phantom]
+state.plugged = unknown
+state.unplugged = unknown
+required-any = any
+
[Element Hardware Master]
switch = mute
volume = merge
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/modules/alsa/mixer/paths/analog-output-speaker-always.conf new/pulseaudio-7.1/src/modules/alsa/mixer/paths/analog-output-speaker-always.conf
--- old/pulseaudio-7.0/src/modules/alsa/mixer/paths/analog-output-speaker-always.conf 2015-09-15 06:46:06.000000000 +0200
+++ new/pulseaudio-7.1/src/modules/alsa/mixer/paths/analog-output-speaker-always.conf 2015-10-30 13:22:13.000000000 +0100
@@ -49,6 +49,10 @@
state.plugged = no
state.unplugged = unknown
+[Jack Dock Line Out]
+state.plugged = no
+state.unplugged = unknown
+
[Element Hardware Master]
switch = mute
volume = merge
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/modules/alsa/mixer/paths/analog-output-speaker.conf new/pulseaudio-7.1/src/modules/alsa/mixer/paths/analog-output-speaker.conf
--- old/pulseaudio-7.0/src/modules/alsa/mixer/paths/analog-output-speaker.conf 2015-09-15 06:46:06.000000000 +0200
+++ new/pulseaudio-7.1/src/modules/alsa/mixer/paths/analog-output-speaker.conf 2015-10-30 13:22:13.000000000 +0100
@@ -52,6 +52,10 @@
state.plugged = no
state.unplugged = unknown
+[Jack Dock Line Out]
+state.plugged = no
+state.unplugged = unknown
+
[Jack Speaker Phantom]
required-any = any
state.plugged = unknown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/modules/module-null-sink.c new/pulseaudio-7.1/src/modules/module-null-sink.c
--- old/pulseaudio-7.0/src/modules/module-null-sink.c 2015-09-10 06:51:41.000000000 +0200
+++ new/pulseaudio-7.1/src/modules/module-null-sink.c 2015-10-30 13:28:03.000000000 +0100
@@ -93,8 +93,10 @@
switch (code) {
case PA_SINK_MESSAGE_SET_STATE:
- if (PA_PTR_TO_UINT(data) == PA_SINK_RUNNING)
- u->timestamp = pa_rtclock_now();
+ if (pa_sink_get_state(u->sink) == PA_SINK_SUSPENDED || pa_sink_get_state(u->sink) == PA_SINK_INIT) {
+ if (PA_PTR_TO_UINT(data) == PA_SINK_RUNNING || PA_PTR_TO_UINT(data) == PA_SINK_IDLE)
+ u->timestamp = pa_rtclock_now();
+ }
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/pulse/version.h new/pulseaudio-7.1/src/pulse/version.h
--- old/pulseaudio-7.0/src/pulse/version.h 2015-09-24 05:15:55.000000000 +0200
+++ new/pulseaudio-7.1/src/pulse/version.h 2015-10-30 13:27:17.000000000 +0100
@@ -33,7 +33,7 @@
/** Return the version of the header files. Keep in mind that this is
a macro and not a function, so it is impossible to get the pointer of
it. */
-#define pa_get_headers_version() ("7.0.0")
+#define pa_get_headers_version() ("7.1.0")
/** Return the version of the library the current application is
* linked to. */
@@ -53,7 +53,7 @@
#define PA_MAJOR 7
/** The minor version of PA. \since 0.9.15 */
-#define PA_MINOR 0
+#define PA_MINOR 1
/** The micro version of PA (will always be 0 from v1.0 onwards). \since 0.9.15 */
#define PA_MICRO 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/pulsecore/pstream.c new/pulseaudio-7.1/src/pulsecore/pstream.c
--- old/pulseaudio-7.0/src/pulsecore/pstream.c 2015-09-10 06:51:41.000000000 +0200
+++ new/pulseaudio-7.1/src/pulsecore/pstream.c 2015-10-30 13:22:33.000000000 +0100
@@ -216,14 +216,23 @@
}
static bool srb_callback(pa_srbchannel *srb, void *userdata) {
+ bool b;
pa_pstream *p = userdata;
pa_assert(p);
pa_assert(PA_REFCNT_VALUE(p) > 0);
pa_assert(p->srb == srb);
+ pa_pstream_ref(p);
+
do_pstream_read_write(p);
- return p->srb != NULL;
+
+ /* If either pstream or the srb is going away, return false.
+ We need to check this before p is destroyed. */
+ b = (PA_REFCNT_VALUE(p) > 1) && (p->srb == srb);
+ pa_pstream_unref(p);
+
+ return b;
}
static void io_callback(pa_iochannel*io, void *userdata) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-7.0/src/pulsecore/shm.c new/pulseaudio-7.1/src/pulsecore/shm.c
--- old/pulseaudio-7.0/src/pulsecore/shm.c 2015-09-10 06:51:41.000000000 +0200
+++ new/pulseaudio-7.1/src/pulsecore/shm.c 2015-10-30 13:22:15.000000000 +0100
@@ -288,7 +288,7 @@
#ifdef HAVE_SHM_OPEN
-int pa_shm_attach(pa_shm *m, unsigned id, bool writable) {
+static int shm_attach(pa_shm *m, unsigned id, bool writable, bool for_cleanup) {
char fn[32];
int fd = -1;
int prot;
@@ -299,7 +299,7 @@
segment_name(fn, sizeof(fn), m->id = id);
if ((fd = shm_open(fn, writable ? O_RDWR : O_RDONLY, 0)) < 0) {
- if (errno != EACCES && errno != ENOENT)
+ if ((errno != EACCES && errno != ENOENT) || !for_cleanup)
pa_log("shm_open() failed: %s", pa_cstrerror(errno));
goto fail;
}
@@ -338,6 +338,10 @@
return -1;
}
+int pa_shm_attach(pa_shm *m, unsigned id, bool writable) {
+ return shm_attach(m, id, writable, false);
+}
+
#else /* HAVE_SHM_OPEN */
int pa_shm_attach(pa_shm *m, unsigned id, bool writable) {
@@ -375,7 +379,7 @@
if (pa_atou(de->d_name + SHM_ID_LEN, &id) < 0)
continue;
- if (pa_shm_attach(&seg, id, false) < 0)
+ if (shm_attach(&seg, id, false, true) < 0)
continue;
if (seg.size < SHM_MARKER_SIZE) {