summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Raghavan <ford_prefect@gentoo.org>2011-05-13 04:57:57 +0000
committerArun Raghavan <ford_prefect@gentoo.org>2011-05-13 04:57:57 +0000
commit7ca22fcbb9dd50895d9b6377e1d70a8030c7eb69 (patch)
tree65a252500b370f0074da05071f76a2b667451d34 /media-sound/pulseaudio
parentVersion bump (diff)
downloadgentoo-2-7ca22fcbb9dd50895d9b6377e1d70a8030c7eb69.tar.gz
gentoo-2-7ca22fcbb9dd50895d9b6377e1d70a8030c7eb69.tar.bz2
gentoo-2-7ca22fcbb9dd50895d9b6377e1d70a8030c7eb69.zip
Bump to 0.9.22-r2 since we need one more patch for newer xcb-util (fixes segv+leaks). Remove -r1 since the first patch is not enough.
(Portage version: 2.2.0_alpha31/cvs/Linux x86_64)
Diffstat (limited to 'media-sound/pulseaudio')
-rw-r--r--media-sound/pulseaudio/ChangeLog10
-rw-r--r--media-sound/pulseaudio/files/pulseaudio-0.9.22-xcb-atom-2.patch124
-rw-r--r--media-sound/pulseaudio/pulseaudio-0.9.22-r2.ebuild (renamed from media-sound/pulseaudio/pulseaudio-0.9.22-r1.ebuild)5
3 files changed, 137 insertions, 2 deletions
diff --git a/media-sound/pulseaudio/ChangeLog b/media-sound/pulseaudio/ChangeLog
index e1539f52604b..252345abd591 100644
--- a/media-sound/pulseaudio/ChangeLog
+++ b/media-sound/pulseaudio/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for media-sound/pulseaudio
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/pulseaudio/ChangeLog,v 1.222 2011/04/27 08:36:22 angelos Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/pulseaudio/ChangeLog,v 1.223 2011/05/13 04:57:57 ford_prefect Exp $
+
+*pulseaudio-0.9.22-r2 (13 May 2011)
+
+ 13 May 2011; Arun Raghavan <ford_prefect@gentoo.org>
+ -pulseaudio-0.9.22-r1.ebuild, +pulseaudio-0.9.22-r2.ebuild,
+ +files/pulseaudio-0.9.22-xcb-atom-2.patch, pulseaudio-9999.ebuild:
+ Bump to 0.9.22-r2 since we need one more patch for newer xcb-util (fixes
+ segv+leaks). Remove -r1 since the first patch is not enough.
27 Apr 2011; Christoph Mende <angelos@gentoo.org> pulseaudio-0.9.22.ebuild:
Restrict xcb-util dep to <0.3.8
diff --git a/media-sound/pulseaudio/files/pulseaudio-0.9.22-xcb-atom-2.patch b/media-sound/pulseaudio/files/pulseaudio-0.9.22-xcb-atom-2.patch
new file mode 100644
index 000000000000..8e9dc8db3b1e
--- /dev/null
+++ b/media-sound/pulseaudio/files/pulseaudio-0.9.22-xcb-atom-2.patch
@@ -0,0 +1,124 @@
+From b72fc9b4f158bafb66a7de28ce038986d96ce850 Mon Sep 17 00:00:00 2001
+From: Arnaud Fontaine <arnau@debian.org>
+Date: Tue, 29 Mar 2011 22:56:28 +0159
+Subject: [PATCH] x11: More XCB fixes.
+
+Commit 65ef80b fixed building with xcb-util >= 0.3.8, but the reply is never
+checked (possible SIGSEGV if the reply is NULL) nor freed (memory leak at each
+call of the functions).
+
+Also, remove include and dependencies on xcb-atom, as it was only meaningful
+for xcb_atom_get() and STRING, and depend instead on xcb >= 1.6 for
+XCB_ATOM_STRING.
+---
+ configure.ac | 2 +-
+ src/pulsecore/x11prop.c | 38 +++++++++++++++++++++++++-------------
+ 2 files changed, 26 insertions(+), 14 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 299dd49..ed9bd17 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -547,7 +547,7 @@ AC_ARG_ENABLE([x11],
+ [x11=auto])
+
+ if test "x${x11}" != xno ; then
+- PKG_CHECK_MODULES(X11, [ x11-xcb ice sm xtst xcb-atom ],
++ PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ],
+ HAVE_X11=1,
+ [
+ HAVE_X11=0
+diff --git a/src/pulsecore/x11prop.c b/src/pulsecore/x11prop.c
+index d66c48f..8fca219 100644
+--- a/src/pulsecore/x11prop.c
++++ b/src/pulsecore/x11prop.c
+@@ -30,7 +30,6 @@
+ #include <pulsecore/macro.h>
+
+ #include <xcb/xproto.h>
+-#include <xcb/xcb_atom.h>
+
+ #define PA_XCB_FORMAT 8
+
+@@ -50,7 +49,6 @@ static xcb_screen_t *screen_of_display(xcb_connection_t *xcb, int screen)
+
+ void pa_x11_set_prop(xcb_connection_t *xcb, int screen, const char *name, const char *data) {
+ xcb_screen_t *xs;
+- xcb_intern_atom_cookie_t cookie;
+ xcb_intern_atom_reply_t *reply;
+
+ pa_assert(xcb);
+@@ -58,26 +56,36 @@ void pa_x11_set_prop(xcb_connection_t *xcb, int screen, const char *name, const
+ pa_assert(data);
+
+ if ((xs = screen_of_display(xcb, screen))) {
+- cookie = xcb_intern_atom(xcb, 0, strlen(name), name);
+- reply = xcb_intern_atom_reply(xcb, cookie, NULL);
++ reply = xcb_intern_atom_reply(xcb,
++ xcb_intern_atom(xcb, 0, strlen(name), name),
++ NULL);
+
+- xcb_change_property(xcb, XCB_PROP_MODE_REPLACE, xs->root, reply->atom, XCB_ATOM_STRING, PA_XCB_FORMAT, (int) strlen(data), (const void*) data);
++ if (reply) {
++ xcb_change_property(xcb, XCB_PROP_MODE_REPLACE, xs->root, reply->atom,
++ XCB_ATOM_STRING, PA_XCB_FORMAT,
++ (int) strlen(data), (const void*) data);
++
++ free(reply);
++ }
+ }
+ }
+
+ void pa_x11_del_prop(xcb_connection_t *xcb, int screen, const char *name) {
+ xcb_screen_t *xs;
+- xcb_intern_atom_cookie_t cookie;
+ xcb_intern_atom_reply_t *reply;
+
+ pa_assert(xcb);
+ pa_assert(name);
+
+ if ((xs = screen_of_display(xcb, screen))) {
+- cookie = xcb_intern_atom(xcb, 0, strlen(name), name);
+- reply = xcb_intern_atom_reply(xcb, cookie, NULL);
+-
+- xcb_delete_property(xcb, xs->root, reply->atom);
++ reply = xcb_intern_atom_reply(xcb,
++ xcb_intern_atom(xcb, 0, strlen(name), name),
++ NULL);
++
++ if (reply) {
++ xcb_delete_property(xcb, xs->root, reply->atom);
++ free(reply);
++ }
+ }
+ }
+
+@@ -87,7 +95,6 @@ char* pa_x11_get_prop(xcb_connection_t *xcb, int screen, const char *name, char
+ xcb_get_property_cookie_t req;
+ xcb_get_property_reply_t* prop = NULL;
+ xcb_screen_t *xs;
+- xcb_intern_atom_cookie_t cookie;
+ xcb_intern_atom_reply_t *reply;
+
+ pa_assert(xcb);
+@@ -106,10 +113,15 @@ char* pa_x11_get_prop(xcb_connection_t *xcb, int screen, const char *name, char
+ xs = screen_of_display(xcb, 0);
+
+ if (xs) {
+- cookie = xcb_intern_atom(xcb, 0, strlen(name), name);
+- reply = xcb_intern_atom_reply(xcb, cookie, NULL);
++ reply = xcb_intern_atom_reply(xcb,
++ xcb_intern_atom(xcb, 0, strlen(name), name),
++ NULL);
++
++ if (!reply)
++ goto finish;
+
+ req = xcb_get_property(xcb, 0, xs->root, reply->atom, XCB_ATOM_STRING, 0, (uint32_t)(l-1));
++ free(reply);
+ prop = xcb_get_property_reply(xcb, req, NULL);
+
+ if (!prop)
+--
+1.6.3.3
+
diff --git a/media-sound/pulseaudio/pulseaudio-0.9.22-r1.ebuild b/media-sound/pulseaudio/pulseaudio-0.9.22-r2.ebuild
index a0793cb12e7e..f63d7ffed9a4 100644
--- a/media-sound/pulseaudio/pulseaudio-0.9.22-r1.ebuild
+++ b/media-sound/pulseaudio/pulseaudio-0.9.22-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/pulseaudio/pulseaudio-0.9.22-r1.ebuild,v 1.1 2011/04/27 07:18:47 angelos Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/pulseaudio/pulseaudio-0.9.22-r2.ebuild,v 1.1 2011/05/13 04:57:57 ford_prefect Exp $
EAPI=3
@@ -19,6 +19,7 @@ IUSE="+alsa avahi +caps jack lirc oss tcpd +X dbus libsamplerate gnome bluetooth
RDEPEND="app-admin/eselect-esd
X? (
|| ( >=x11-libs/libX11-1.4.0 <x11-libs/libX11-1.4.0[xcb] )
+ >=x11-libs/libxcb-1.6
>=x11-libs/xcb-util-0.3.1
x11-libs/libSM
x11-libs/libICE
@@ -83,6 +84,8 @@ src_prepare() {
fi
epatch "${FILESDIR}"/${P}-xcb-atom.patch
+ epatch "${FILESDIR}"/${P}-xcb-atom-2.patch
+ eautoreconf
elibtoolize
}