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