[OE-core] [PATCH] pulseaudio: upgrade to 6.0

Cristian Iorga cristian.iorga at intel.com
Tue Feb 17 15:10:18 UTC 2015


Changes:
- BlueZ 5 native HSP (headset) support;
- BlueZ 5 HFP (hands-free) profile support via oFono;
- systemd socket activation support;
- Better support for multichannel and 2.1 profiles;
- Remap optimisations;
- Many minor improvements, bug fixes, and i18n updates.

- Switched to ${BP} variable.
- Patch 0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch
removed, no longer necessary.
- Patch CVE-2014-3970.patch included upstrem, removed.
- Slightly changed copyright notice, only a clarification.

libsamplerate based resamplers are now deprecated,
because they offer no particular advantage over speex.
Dependency to libsamplerate0 dropped.

Signed-off-by: Cristian Iorga <cristian.iorga at intel.com>
---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc  | 16 ++++---
 ...c-Check-only-for-libsystemd-not-libsystem.patch | 30 -------------
 .../pulseaudio/pulseaudio/CVE-2014-3970.patch      | 52 ----------------------
 .../pulseaudio/pulseaudio_5.0.bb                   | 14 ------
 .../pulseaudio/pulseaudio_6.0.bb                   | 12 +++++
 5 files changed, 23 insertions(+), 101 deletions(-)
 delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch
 delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/CVE-2014-3970.patch
 delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb
 create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb

diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index b73576e..e6ecd4a 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -5,14 +5,14 @@ SECTION = "libs/multimedia"
 LICENSE = "GPLv2+ & LGPLv2.1"
 LIC_FILES_CHKSUM = "file://GPL;md5=4325afd396febcb659c36b49533135d4 \
                     file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-                    file://src/pulsecore/resampler.h;beginline=4;endline=23;md5=c3d539b93f8c82a1780bfa3cfa544a95"
+                    file://src/pulsecore/resampler.h;beginline=4;endline=21;md5=09794012ae16912c0270f3280cc8ff84"
 
-DEPENDS = "libatomics-ops liboil libsamplerate0 libsndfile1 libtool"
+DEPENDS = "libatomics-ops liboil libsndfile1 libtool"
 # optional
 DEPENDS += "udev alsa-lib glib-2.0 dbus gconf"
 DEPENDS += "json-c gdbm speex libxml-parser-perl-native libcap"
 
-inherit autotools pkgconfig useradd gettext perlnative bluetooth
+inherit autotools pkgconfig useradd gettext perlnative bluetooth systemd
 
 # *.desktop rules wont be generated during configure and build will fail
 # if using --disable-nls
@@ -27,6 +27,7 @@ EXTRA_OECONF = "\
 		--disable-xen \
 		--with-database=simple \
 		--without-fftw \
+		--without-zsh-completion-dir \
 		--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d \
                 ac_cv_header_valgrind_memcheck_h=no \
 "
@@ -34,11 +35,13 @@ EXTRA_OECONF = "\
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', '3g', 'ofono', '', d)}"
 PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4 sbc"
 PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5 sbc"
+PACKAGECONFIG[ofono] = "--enable-bluez5-ofono-headset,--disable-bluez5-ofono-headset,ofono"
 PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3"
-PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
+PACKAGECONFIG[systemd] = "--enable-systemd-daemon --enable-systemd-login --enable-systemd-journal,--disable-systemd-daemon --disable-systemd-login --disable-systemd-journal,systemd"
 PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxtst libice libsm libxcb"
 PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
 PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
@@ -93,6 +96,9 @@ FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}
 FILES_${PN}-conf = "${sysconfdir}"
 FILES_${PN}-bin += "${sysconfdir}/default/volatiles/volatiles.04_pulse"
 FILES_${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules"
+SYSTEMD_PACKAGES = "${PN}-server"
+SYSTEMD_SERVICE_${PN}-server = "pulseaudio.service"
+
 FILES_${PN}-misc = "${bindir}/* ${libdir}/pulseaudio/libpulsedsp.so"
 
 # Allow the pulseaudio package to be created empty as a placeholder (-dbg and -dev depend on it)
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch
deleted file mode 100644
index 467cd2c..0000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 002b16f0f2176b4c685e210e335bf69c02563ede Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa at gmail.com>
-Date: Sat, 22 Feb 2014 18:03:10 +0100
-Subject: [PATCH] configure.ac: Check only for libsystemd not libsystemd-login
-
-* they were merged into libsystemd in systemd-209
-
-Upstream-Status: Pending (it would need to be conditional on systemd version for upstream to accept this)
-
-Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 388fae2..fff7a83 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1160,7 +1160,7 @@ AC_ARG_ENABLE([systemd],
-     AS_HELP_STRING([--disable-systemd],[Disable optional systemd support]))
- 
- AS_IF([test "x$enable_systemd" != "xno"],
--    [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd-login ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
-+    [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
-     HAVE_SYSTEMD=0)
- 
- AS_IF([test "x$enable_systemd" = "xyes" && test "x$HAVE_SYSTEMD" = "x0"],
--- 
-1.8.5.3
-
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/CVE-2014-3970.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/CVE-2014-3970.patch
deleted file mode 100644
index d5f33dc..0000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/CVE-2014-3970.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Upstream-Status: Backport
-
-commit 26b9d22dd24c17eb118d0205bf7b02b75d435e3c upstream
-
-rtp-recv: fix crash on empty UDP packets (CVE-2014-3970)
-
-On FIONREAD returning 0 bytes, we cannot return success, as the caller
-(rtpoll_work_cb in module-rtp-recv.c) would then try to
-pa_memblock_unref(chunk.memblock) and, because memblock is NULL, trigger
-an assertion.
-
-Also we have to read out the possible empty packet from the socket, so
-that the kernel doesn't tell us again and again about it.
-
-Signed-off-by: Alexander E. Patrakov <patrakov at gmail.com>
-
-diff --git a/src/modules/rtp/rtp.c b/src/modules/rtp/rtp.c
-index 9195493..c45981e 100644
---- a/src/modules/rtp/rtp.c
-+++ b/src/modules/rtp/rtp.c
-@@ -182,8 +182,29 @@ int pa_rtp_recv(pa_rtp_context *c, pa_memchunk *chunk, pa_mempool *pool, struct
-         goto fail;
-     }
- 
--    if (size <= 0)
--        return 0;
-+    if (size <= 0) {
-+        /* size can be 0 due to any of the following reasons:
-+         *
-+         * 1. Somebody sent us a perfectly valid zero-length UDP packet.
-+         * 2. Somebody sent us a UDP packet with a bad CRC.
-+         *
-+         * It is unknown whether size can actually be less than zero.
-+         *
-+         * In the first case, the packet has to be read out, otherwise the
-+         * kernel will tell us again and again about it, thus preventing
-+         * reception of any further packets. So let's just read it out
-+         * now and discard it later, when comparing the number of bytes
-+         * received (0) with the number of bytes wanted (1, see below).
-+         *
-+         * In the second case, recvmsg() will fail, thus allowing us to
-+         * return the error.
-+         *
-+         * Just to avoid passing zero-sized memchunks and NULL pointers to
-+         * recvmsg(), let's force allocation of at least one byte by setting
-+         * size to 1.
-+         */
-+        size = 1;
-+    }
- 
-     if (c->memchunk.length < (unsigned) size) {
-         size_t l;
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb
deleted file mode 100644
index 99f0ef3..0000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require pulseaudio.inc
-
-SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-${PV}.tar.xz \
-           file://0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch \
-           file://volatiles.04_pulse \
-           file://CVE-2014-3970.patch \
-"
-SRC_URI[md5sum] = "c43749838612f4860465e83ed62ca38e"
-SRC_URI[sha256sum] = "99c13a8b1249ddbd724f195579df79484e9af6418cecf6a15f003a7f36caf939"
-
-do_compile_prepend() {
-    mkdir -p ${S}/libltdl
-    cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
-}
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb
new file mode 100644
index 0000000..91027bf
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb
@@ -0,0 +1,12 @@
+require pulseaudio.inc
+
+SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
+           file://volatiles.04_pulse \
+"
+SRC_URI[md5sum] = "b691e83b7434c678dffacfa3a027750e"
+SRC_URI[sha256sum] = "b50640e0b80b1607600accfad2e45aabb79d379bf6354c9671efa2065477f6f6"
+
+do_compile_prepend() {
+    mkdir -p ${S}/libltdl
+    cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
+}
-- 
2.1.0




More information about the Openembedded-core mailing list