Source: pulseaudio Severity: important Tags: patch Hello,
Pulseaudio does not build anymore with xcb-util 0.3.8. For now, that's not an issue as xcb-util 0.3.8 has not been already uploaded to Debian yet but I will do it soon. A patch addressing this issue has already been applied upstream[0][1]. I have attached to this email a patch for the Debian package. Could you please consider applying it? Thanks. Cheers, Arnaud Fontaine [0] http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=88e6078f3b74002c58b69f8b69f6c043d65ef80b [1] http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=adb16f9ff42008c5b8f76133d8879fc15a82533f
diff --git a/debian/control b/debian/control index dc793f9..f3a7b72 100644 --- a/debian/control +++ b/debian/control @@ -16,7 +16,7 @@ Build-Depends: debhelper (>= 5), cdbs, quilt, m4, libltdl-dev (>= 2.2.6a-2), libbluetooth-dev (>= 4.40) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libgdbm-dev, intltool, libgtk2.0-dev, libxtst-dev, libssl-dev, - libx11-xcb-dev, libice-dev, libxcb-atom1-dev + libx11-xcb-dev, libice-dev, libxcb1-dev (>= 1.6) Standards-Version: 3.8.1 Vcs-Git: git://git.debian.org/git/pkg-pulseaudio/pulseaudio.git Vcs-Browser: http://git.debian.org/?p=pkg-pulseaudio/pulseaudio.git diff --git a/debian/patches/0004-Fix-FTBFS-with-xcb-util-0.3.8.patch b/debian/patches/0004-Fix-FTBFS-with-xcb-util-0.3.8.patch new file mode 100644 index 0000000..8ab3f86 --- /dev/null +++ b/debian/patches/0004-Fix-FTBFS-with-xcb-util-0.3.8.patch @@ -0,0 +1,102 @@ +diff --git a/configure.ac b/configure.ac +index dea8bb9..d31f561 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -516,7 +516,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 4cb21da..1c0d199 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,28 +49,43 @@ 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_atom_t a; ++ xcb_intern_atom_reply_t *reply; + + pa_assert(xcb); + pa_assert(name); + pa_assert(data); + + if ((xs = screen_of_display(xcb, screen))) { +- a = xcb_atom_get(xcb, name); +- xcb_change_property(xcb, XCB_PROP_MODE_REPLACE, xs->root, a, STRING, PA_XCB_FORMAT, (int) strlen(data), (const void*) data); ++ reply = xcb_intern_atom_reply(xcb, ++ xcb_intern_atom(xcb, 0, strlen(name), name), ++ NULL); ++ ++ 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_atom_t a; ++ xcb_intern_atom_reply_t *reply; + + pa_assert(xcb); + pa_assert(name); + + if ((xs = screen_of_display(xcb, screen))) { +- a = xcb_atom_get(xcb, name); +- xcb_delete_property(xcb, xs->root, a); ++ 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); ++ } + } + } + +@@ -81,7 +95,7 @@ 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_atom_t a; ++ xcb_intern_atom_reply_t *reply; + + pa_assert(xcb); + pa_assert(name); +@@ -99,9 +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) { +- a = xcb_atom_get(xcb, name); ++ 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, a, STRING, 0, (uint32_t)(l-1)); ++ 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) diff --git a/debian/patches/series b/debian/patches/series index 29ff672..592c893 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 0001-Work-around-some-platforms-not-having-O_CLOEXEC.patch 0002-In-KDE-only-start-pulseaudio-from-the-KDE-specific-d.patch 0003-Mention-speex-and-libsamplerate-in-pulse-daemon.conf.patch +0004-Fix-FTBFS-with-xcb-util-0.3.8.patch