add pulseaudio
This commit is contained in:
parent
01cddbf28a
commit
ab259947c7
|
@ -0,0 +1,271 @@
|
|||
SUMMARY = "Sound server for Linux and Unix-like operating systems"
|
||||
HOMEPAGE = "http://www.pulseaudio.org"
|
||||
AUTHOR = "Lennart Poettering"
|
||||
SECTION = "libs/multimedia"
|
||||
|
||||
# Most of PulseAudio code is under LGPLv2.1+. There are a few exceptions:
|
||||
#
|
||||
# The "adrian" echo canceller variant has code under a non-standard permissive
|
||||
# license. See src/modules/echo-cancel/adrian-license.txt for details. This
|
||||
# recipe disables the adrian echo canceller to avoid hassle with the unusual
|
||||
# license.
|
||||
#
|
||||
# The src/modules/reserve* and src/pulsecore/rtkit* files are under the MIT
|
||||
# license.
|
||||
#
|
||||
# The src/pulsecore/filter/ directory contains code under the 3-clause BSD
|
||||
# license.
|
||||
#
|
||||
# People who distribute PulseAudio binaries need to also consider that there
|
||||
# are some dependencies to GPL libraries. LGPL code that depends on GPL
|
||||
# libraries probably becomes effectively GPL-licensed (at compile-time? or at
|
||||
# at link-time?). I'm not a lawyer, though, so I'm not sure of the exact
|
||||
# implications. The GPL dependencies only affect the server, not the client
|
||||
# library, with the exception of libdbus that affects both. These are the GPL
|
||||
# library dependencies:
|
||||
#
|
||||
# One of the resampler implementations uses libsamplerate. This recipe doesn't
|
||||
# enable that resampler, however.
|
||||
#
|
||||
# One of the database implementations uses gdbm. This recipe doesn't enable
|
||||
# that database implementation, however.
|
||||
#
|
||||
# module-lirc (enabled by PACKAGECONFIG[lirc]) uses LIRC.
|
||||
#
|
||||
# module-equalizer-sink uses FFTW. This recipe disables that, however.
|
||||
#
|
||||
# The dependency with the most complicated licensing considerations is libdbus.
|
||||
# When PACKAGECONFIG[dbus] is enabled (like it is by default), libdbus will be
|
||||
# used by both the server and the client library (libpulse). Does this affect
|
||||
# applications that use libpulse? It should be also noted that libdbus is
|
||||
# dual-licensed: either GPLv2+ or AFL-2 terms apply. Whose decision is it which
|
||||
# of the licenses apply? What a mess. Some people hold the view that libdbus is
|
||||
# a system library that is covered by the "special exception" in GPLv2's
|
||||
# section 3, and therefore libdbus's GPL license doesn't affect PulseAudio.
|
||||
LICENSE = "LGPLv2.1+ & MIT & BSD-3-Clause"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \
|
||||
file://GPL;md5=4325afd396febcb659c36b49533135d4 \
|
||||
file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
|
||||
file://src/modules/echo-cancel/adrian-license.txt;md5=abbab006a561fbffccedf1c3531f34ab \
|
||||
file://src/pulsecore/filter/LICENSE.WEBKIT;md5=49defbaffddf8c51faf606ff7fc3b1f7 \
|
||||
file://src/pulsecore/resampler.h;beginline=4;endline=21;md5=09794012ae16912c0270f3280cc8ff84 \
|
||||
file://src/modules/reserve.h;beginline=6;endline=28;md5=0e23094760367d51b6609750e9b31fbb \
|
||||
file://src/pulsecore/rtkit.h;beginline=6;endline=29;md5=3f00ff966716ae0817c31576d1473528 \
|
||||
file://src/modules/echo-cancel/adrian-aec.h;beginline=3;endline=12;md5=d3ed4fad1c073f8b06f37495dc5d1026 \
|
||||
file://src/pulsecore/filter/biquad.h;beginline=1;endline=4;md5=6d46d1365206528a20137355924233c1 \
|
||||
"
|
||||
|
||||
DEPENDS = "libatomic-ops libsndfile1 libtool intltool-native"
|
||||
# optional
|
||||
DEPENDS += "udev alsa-lib glib-2.0"
|
||||
DEPENDS += "speexdsp libxml-parser-perl-native libcap"
|
||||
|
||||
inherit autotools pkgconfig gettext systemd
|
||||
|
||||
# *.desktop rules wont be generated during configure and build will fail
|
||||
# if using --disable-nls
|
||||
USE_NLS = "yes"
|
||||
|
||||
EXTRA_OECONF = "\
|
||||
--disable-hal-compat \
|
||||
--disable-orc \
|
||||
--enable-tcpwrap=no \
|
||||
--with-access-group=audio \
|
||||
--disable-openssl \
|
||||
--with-database=simple \
|
||||
--without-zsh-completion-dir \
|
||||
--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d \
|
||||
ac_cv_header_valgrind_memcheck_h=no \
|
||||
--disable-tests \
|
||||
--disable-running-from-build-tree \
|
||||
"
|
||||
|
||||
# soxr (the SoX Resampler library) doesn't seem to be currently packaged in
|
||||
# oe-core nor meta-oe, so let's not add a PACKAGECONFIG entry for it for now.
|
||||
EXTRA_OECONF += "--without-soxr"
|
||||
|
||||
# The FFTW dependency (for module-equalizer-sink) was removed in commit
|
||||
# ddbd713293 without explaining why it was not made a PACKAGECONFIG item
|
||||
# instead. Oh well, let's keep it disabled until someone expresses some
|
||||
# interest in having it enabled.
|
||||
EXTRA_OECONF += "--without-fftw"
|
||||
|
||||
# The "adrian" echo canceller implementation has a non-standard license
|
||||
# (src/modules/echo-cancel/adrian-license.txt). It's a permissive license, so
|
||||
# the licensing terms are probably not problematic, but it would be an extra
|
||||
# hassle to add the license to OE-Core's set of licenses. The canceller isn't
|
||||
# very good anyway, better alternatives exist (such as the webrtc canceller).
|
||||
EXTRA_OECONF += "--disable-adrian-aec"
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', '3g', 'ofono', '', d)} \
|
||||
${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd x11', d)} \
|
||||
dbus gsettings \
|
||||
"
|
||||
|
||||
PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
|
||||
PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4 sbc"
|
||||
PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5 sbc"
|
||||
PACKAGECONFIG[gconf] = "--enable-gconf,--disable-gconf,gconf"
|
||||
PACKAGECONFIG[gsettings] = "--enable-gsettings,--disable-gsettings,glib-2.0-native glib-2.0"
|
||||
PACKAGECONFIG[ofono] = "--enable-bluez5-ofono-headset,--disable-bluez5-ofono-headset,ofono"
|
||||
PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3"
|
||||
PACKAGECONFIG[systemd] = "--enable-systemd-daemon --enable-systemd-login --enable-systemd-journal --with-systemduserunitdir=${systemd_user_unitdir},--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"
|
||||
# Since many embedded systems don't have non-root users, it's useful to be
|
||||
# able to use pulseaudio autospawn for root as well.
|
||||
PACKAGECONFIG[autospawn-for-root] = ",,,"
|
||||
PACKAGECONFIG[lirc] = "--enable-lirc,--disable-lirc,lirc"
|
||||
PACKAGECONFIG[webrtc] = "--enable-webrtc-aec,--disable-webrtc-aec,webrtc-audio-processing"
|
||||
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
|
||||
PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, "
|
||||
|
||||
EXTRA_OECONF_append_arm = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}"
|
||||
EXTRA_OECONF_append_armeb = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}"
|
||||
|
||||
|
||||
export TARGET_PFPU = "${TARGET_FPU}"
|
||||
|
||||
# TODO: Use more fine granular version
|
||||
#OE_LT_RPATH_ALLOW=":${libdir}/pulse-0.9:"
|
||||
OE_LT_RPATH_ALLOW = "any"
|
||||
OE_LT_RPATH_ALLOW[export]="1"
|
||||
|
||||
set_cfg_value () {
|
||||
sed -i -e "s/\(; *\)\?$2 =.*/$2 = $3/" "$1"
|
||||
if ! grep -q "^$2 = $3\$" "$1"; then
|
||||
die "Use of sed to set '$2' to '$3' in '$1' failed"
|
||||
fi
|
||||
}
|
||||
|
||||
do_compile_append () {
|
||||
if ${@bb.utils.contains('PACKAGECONFIG', 'autospawn-for-root', 'true', 'false', d)}; then
|
||||
set_cfg_value src/client.conf allow-autospawn-for-root yes
|
||||
fi
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${sysconfdir}/default/volatiles
|
||||
install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/volatiles.04_pulse
|
||||
}
|
||||
|
||||
USERADD_PACKAGES = "pulseaudio-server"
|
||||
GROUPADD_PARAM_pulseaudio-server = "--system pulse"
|
||||
USERADD_PARAM_pulseaudio-server = "--system --home /var/run/pulse \
|
||||
--no-create-home --shell /bin/false \
|
||||
--groups audio,pulse --gid pulse pulse"
|
||||
|
||||
# The console-kit module is included here explicitly so bitbake can map to the
|
||||
# RDEPENDS we define for it in this recipe, and thereby ensure that when
|
||||
# adding the console-kit module to an image, we also get the necessary
|
||||
# consolekit package produced.
|
||||
PACKAGES =+ "libpulsecore libpulsecommon libpulse libpulse-simple libpulse-mainloop-glib \
|
||||
pulseaudio-server pulseaudio-misc ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}"
|
||||
|
||||
#upgrade path:
|
||||
RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf"
|
||||
|
||||
PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*"
|
||||
|
||||
FILES_libpulsecore = "${libdir}/pulseaudio/libpulsecore*.so"
|
||||
FILES_libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so"
|
||||
|
||||
# client.conf configures the behaviour of libpulse, so it belongs in the same
|
||||
# package.
|
||||
FILES_libpulse = "${libdir}/libpulse.so.* ${sysconfdir}/pulse/client.conf"
|
||||
|
||||
FILES_libpulse-simple = "${libdir}/libpulse-simple.so.*"
|
||||
FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*"
|
||||
|
||||
FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}/cmake"
|
||||
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 */*/udev/rules.d/*.rules ${systemd_user_unitdir}/*"
|
||||
|
||||
#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)
|
||||
FILES_${PN} = ""
|
||||
ALLOW_EMPTY_${PN} = "1"
|
||||
|
||||
CONFFILES_libpulse = "${sysconfdir}/pulse/client.conf"
|
||||
|
||||
CONFFILES_pulseaudio-server = "\
|
||||
${sysconfdir}/pulse/default.pa \
|
||||
${sysconfdir}/pulse/daemon.conf \
|
||||
${sysconfdir}/pulse/system.pa \
|
||||
"
|
||||
|
||||
pkg_postinst_${PN}-server() {
|
||||
if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then
|
||||
${sysconfdir}/init.d/populate-volatile.sh update
|
||||
fi
|
||||
}
|
||||
|
||||
python populate_packages_prepend() {
|
||||
plugindir = d.expand('${libdir}/pulse-${PV}/modules/')
|
||||
do_split_packages(d, plugindir, r'^module-(.*)\.so$', '${PN}-module-%s', 'PulseAudio module for %s', extra_depends='', prepend=True)
|
||||
do_split_packages(d, plugindir, r'^lib(.*)\.so$', '${PN}-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True)
|
||||
}
|
||||
|
||||
RDEPENDS_pulseaudio-server = " \
|
||||
pulseaudio-module-filter-apply \
|
||||
pulseaudio-module-filter-heuristics \
|
||||
pulseaudio-module-udev-detect \
|
||||
pulseaudio-module-null-sink \
|
||||
pulseaudio-module-device-restore \
|
||||
pulseaudio-module-stream-restore \
|
||||
pulseaudio-module-card-restore \
|
||||
pulseaudio-module-augment-properties \
|
||||
pulseaudio-module-detect \
|
||||
pulseaudio-module-alsa-sink \
|
||||
pulseaudio-module-alsa-source \
|
||||
pulseaudio-module-alsa-card \
|
||||
pulseaudio-module-native-protocol-unix \
|
||||
pulseaudio-module-default-device-restore \
|
||||
pulseaudio-module-intended-roles \
|
||||
pulseaudio-module-rescue-streams \
|
||||
pulseaudio-module-always-sink \
|
||||
pulseaudio-module-suspend-on-idle \
|
||||
pulseaudio-module-position-event-sounds \
|
||||
pulseaudio-module-role-cork \
|
||||
pulseaudio-module-switch-on-port-available"
|
||||
|
||||
# If the server is installed, it's usually desirable to make ALSA applications
|
||||
# use PulseAudio. alsa-plugins-pulseaudio-conf will install the configuration
|
||||
# that makes the PulseAudio plugin the default ALSA device.
|
||||
RDEPENDS_pulseaudio-server += "alsa-plugins-pulseaudio-conf"
|
||||
|
||||
# pulseaudio-module-console-kit is built whenever dbus is enabled by PACKAGECONFIG
|
||||
# but consolekit depends on libx11 and is available only for DISTRO with x11 in DISTRO_FEATURES
|
||||
RDEPENDS_pulseaudio-module-console-kit =+ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"
|
||||
RDEPENDS_pulseaudio-misc += "pulseaudio-module-cli-protocol-unix"
|
||||
|
||||
FILES_${PN}-module-alsa-card += "${datadir}/pulseaudio/alsa-mixer"
|
||||
FILES_${PN}-module-gconf += "${libexecdir}/pulse/gconf-helper"
|
||||
|
||||
GSETTINGS_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'gsettings', '${PN}-module-gsettings', '', d)}"
|
||||
FILES_${PN}-module-gsettings += "${libexecdir}/pulse/gsettings-helper ${datadir}/GConf/gsettings ${datadir}/glib-2.0/schemas"
|
||||
|
||||
# The console-kit module is good to have on X11 systems (it keeps PulseAudio
|
||||
# running for the duration of the user login session). The device-manager and
|
||||
# x11-* modules are referenced from the start-pulseaudio-x11 script, so those
|
||||
# modules must be installed when X11 is enabled.
|
||||
RDEPENDS_pulseaudio-server += "\
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '\
|
||||
pulseaudio-module-console-kit \
|
||||
pulseaudio-module-device-manager \
|
||||
pulseaudio-module-x11-cork-request \
|
||||
pulseaudio-module-x11-publish \
|
||||
pulseaudio-module-x11-xsmp \
|
||||
', '', d)}"
|
||||
|
||||
|
||||
INSANE_SKIP_${PN} += "installed-vs-shipped"
|
|
@ -0,0 +1,97 @@
|
|||
From babec3a50dd710d26b72f6c6d43bd79b04e954a6 Mon Sep 17 00:00:00 2001
|
||||
From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
|
||||
Date: Tue, 28 Apr 2015 14:32:43 +0300
|
||||
Subject: [PATCH] client-conf: Add allow-autospawn-for-root
|
||||
|
||||
Usually autospawning for root is a bad idea, since it can easily
|
||||
interfere with other users' PulseAudio instances, but in embedded
|
||||
environments where only root exists, autospawning is fine.
|
||||
|
||||
Upstream-Status: Denied [Upstream hasn't so far been convinced that
|
||||
this feature is needed. The view is that running the graphical session
|
||||
as root doesn't make sense even on embedded systems, or if it does,
|
||||
running PulseAudio in the system mode should be a good solution for
|
||||
that use case. If someone can prove otherwise, the patch would
|
||||
probably be accepted.]
|
||||
|
||||
Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
|
||||
---
|
||||
man/pulse-client.conf.5.xml.in | 9 +++++++++
|
||||
src/pulse/client-conf.c | 1 +
|
||||
src/pulse/client-conf.h | 1 +
|
||||
src/pulse/client.conf.in | 1 +
|
||||
src/pulse/context.c | 2 +-
|
||||
5 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/pulse-client.conf.5.xml.in b/man/pulse-client.conf.5.xml.in
|
||||
index b88898c..e737c96 100644
|
||||
--- a/man/pulse-client.conf.5.xml.in
|
||||
+++ b/man/pulse-client.conf.5.xml.in
|
||||
@@ -82,6 +82,15 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
||||
</option>
|
||||
|
||||
<option>
|
||||
+ <p><opt>allow-autospawn-for-root=</opt> Allow autospawning also for root.
|
||||
+ Takes a boolean value, defaults to <opt>no</opt>. If the <opt>autospawn
|
||||
+ </opt> option is disabled, this option has no effect. Autospawning for
|
||||
+ root is disabled by default, because running PulseAudio as root will
|
||||
+ interfere with regular users' PulseAudio instances. This option should be
|
||||
+ enabled only in environments where there are no regular users at all.</p>
|
||||
+ </option>
|
||||
+
|
||||
+ <option>
|
||||
<p><opt>daemon-binary=</opt> Path to the PulseAudio daemon to
|
||||
run when autospawning. Defaults to a path configured at compile
|
||||
time.</p>
|
||||
diff --git a/src/pulse/client-conf.c b/src/pulse/client-conf.c
|
||||
index a3c9486..9f68ee5 100644
|
||||
--- a/src/pulse/client-conf.c
|
||||
+++ b/src/pulse/client-conf.c
|
||||
@@ -138,6 +138,7 @@ void pa_client_conf_load(pa_client_conf *c, bool load_from_x11, bool load_from_e
|
||||
{ "default-server", pa_config_parse_string, &c->default_server, NULL },
|
||||
{ "default-dbus-server", pa_config_parse_string, &c->default_dbus_server, NULL },
|
||||
{ "autospawn", pa_config_parse_bool, &c->autospawn, NULL },
|
||||
+ { "allow-autospawn-for-root", pa_config_parse_bool, &c->allow_autospawn_for_root, NULL },
|
||||
{ "cookie-file", pa_config_parse_string, &c->cookie_file_from_client_conf, NULL },
|
||||
{ "disable-shm", pa_config_parse_bool, &c->disable_shm, NULL },
|
||||
{ "enable-shm", pa_config_parse_not_bool, &c->disable_shm, NULL },
|
||||
diff --git a/src/pulse/client-conf.h b/src/pulse/client-conf.h
|
||||
index 7691ec7..19db7ed 100644
|
||||
--- a/src/pulse/client-conf.h
|
||||
+++ b/src/pulse/client-conf.h
|
||||
@@ -38,6 +38,7 @@ typedef struct pa_client_conf {
|
||||
char *cookie_file_from_application;
|
||||
char *cookie_file_from_client_conf;
|
||||
bool autospawn, disable_shm, disable_memfd, auto_connect_localhost, auto_connect_display;
|
||||
+ bool allow_autospawn_for_root;
|
||||
size_t shm_size;
|
||||
} pa_client_conf;
|
||||
|
||||
diff --git a/src/pulse/client.conf.in b/src/pulse/client.conf.in
|
||||
index 26b7790..69830ef 100644
|
||||
--- a/src/pulse/client.conf.in
|
||||
+++ b/src/pulse/client.conf.in
|
||||
@@ -23,6 +23,7 @@
|
||||
; default-dbus-server =
|
||||
|
||||
; autospawn = yes
|
||||
+; allow-autospawn-for-root = no
|
||||
; daemon-binary = @PA_BINARY@
|
||||
; extra-arguments = --log-target=syslog
|
||||
|
||||
diff --git a/src/pulse/context.c b/src/pulse/context.c
|
||||
index 69be5f4..d6e13e8 100644
|
||||
--- a/src/pulse/context.c
|
||||
+++ b/src/pulse/context.c
|
||||
@@ -1027,7 +1027,7 @@ int pa_context_connect(
|
||||
if (!(flags & PA_CONTEXT_NOAUTOSPAWN) && c->conf->autospawn) {
|
||||
|
||||
#ifdef HAVE_GETUID
|
||||
- if (getuid() == 0)
|
||||
+ if (!c->conf->allow_autospawn_for_root && getuid() == 0)
|
||||
pa_log_debug("Not doing autospawn since we are root.");
|
||||
else {
|
||||
c->do_autospawn = true;
|
||||
--
|
||||
2.8.1
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
From 36feb98e568221e24286615730888d5f6ff323f0 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Fri, 7 Dec 2018 15:12:38 +0800
|
||||
Subject: [PATCH] introduce a special build flag to explicitly disables running
|
||||
from build tree
|
||||
|
||||
It is helpful to improve reproducibility build [1] since
|
||||
PA_SRCDIR/PA_BUILDDIR contains build path, disable running
|
||||
from build tree could drop these macros at precompilation.
|
||||
|
||||
[1] https://reproducible-builds.org/
|
||||
|
||||
Upstream-Status: Submitted [pulseaudio-discuss@lists.freedesktop.org]
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Acked-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
---
|
||||
configure.ac | 10 ++++++++++
|
||||
src/daemon/daemon-conf.c | 4 +++-
|
||||
src/daemon/main.c | 6 ++++++
|
||||
src/modules/alsa/alsa-mixer.c | 4 ++++
|
||||
src/modules/gconf/module-gconf.c | 2 +-
|
||||
src/modules/gsettings/module-gsettings.c | 2 +-
|
||||
src/pulsecore/core-util.c | 4 +++-
|
||||
7 files changed, 28 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c9c414f..8b345ef 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -998,6 +998,16 @@ AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
|
||||
AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
|
||||
AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
|
||||
|
||||
+#### Running from build tree (optional) ####
|
||||
+
|
||||
+AC_ARG_ENABLE([running-from-build-tree],
|
||||
+ AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
|
||||
+
|
||||
+AS_IF([test "x$enable_running_from_build_tree" != "xno"],
|
||||
+ AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
|
||||
+
|
||||
+AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
|
||||
+
|
||||
#### TCP wrappers (optional) ####
|
||||
|
||||
AC_ARG_ENABLE([tcpwrap],
|
||||
diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c
|
||||
index 9883126..f01eff4 100644
|
||||
--- a/src/daemon/daemon-conf.c
|
||||
+++ b/src/daemon/daemon-conf.c
|
||||
@@ -155,12 +155,14 @@ pa_daemon_conf *pa_daemon_conf_new(void) {
|
||||
c->dl_search_path = pa_sprintf_malloc("%s" PA_PATH_SEP "lib" PA_PATH_SEP "pulse-%d.%d" PA_PATH_SEP "modules",
|
||||
pa_win32_get_toplevel(NULL), PA_MAJOR, PA_MINOR);
|
||||
#else
|
||||
+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
|
||||
if (pa_run_from_build_tree()) {
|
||||
pa_log_notice("Detected that we are run from the build tree, fixing search path.");
|
||||
c->dl_search_path = pa_xstrdup(PA_BUILDDIR);
|
||||
} else
|
||||
- c->dl_search_path = pa_xstrdup(PA_DLSEARCHPATH);
|
||||
#endif
|
||||
+ c->dl_search_path = pa_xstrdup(PA_DLSEARCHPATH);
|
||||
+#endif //Endof #ifdef OS_IS_WIN32
|
||||
|
||||
return c;
|
||||
}
|
||||
diff --git a/src/daemon/main.c b/src/daemon/main.c
|
||||
index c80fa94..1e00388 100644
|
||||
--- a/src/daemon/main.c
|
||||
+++ b/src/daemon/main.c
|
||||
@@ -932,6 +932,12 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
pa_log_debug("Running in VM: %s", pa_yes_no(pa_running_in_vm()));
|
||||
|
||||
+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
|
||||
+ pa_log_debug("Running from build tree: %s", pa_yes_no(pa_run_from_build_tree()));
|
||||
+#else
|
||||
+ pa_log_debug("Running from build tree: no");
|
||||
+#endif
|
||||
+
|
||||
#ifdef __OPTIMIZE__
|
||||
pa_log_debug("Optimized build: yes");
|
||||
#else
|
||||
diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
|
||||
index a524d6d..670f646 100644
|
||||
--- a/src/modules/alsa/alsa-mixer.c
|
||||
+++ b/src/modules/alsa/alsa-mixer.c
|
||||
@@ -2571,9 +2571,11 @@ static int path_verify(pa_alsa_path *p) {
|
||||
}
|
||||
|
||||
static const char *get_default_paths_dir(void) {
|
||||
+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
|
||||
if (pa_run_from_build_tree())
|
||||
return PA_SRCDIR "/modules/alsa/mixer/paths/";
|
||||
else
|
||||
+#endif
|
||||
return PA_ALSA_PATHS_DIR;
|
||||
}
|
||||
|
||||
@@ -4455,7 +4457,9 @@ pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel
|
||||
fname = "default.conf";
|
||||
|
||||
fn = pa_maybe_prefix_path(fname,
|
||||
+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
|
||||
pa_run_from_build_tree() ? PA_SRCDIR "/modules/alsa/mixer/profile-sets/" :
|
||||
+#endif
|
||||
PA_ALSA_PROFILE_SETS_DIR);
|
||||
|
||||
r = pa_config_parse(fn, NULL, items, NULL, false, ps);
|
||||
diff --git a/src/modules/gconf/module-gconf.c b/src/modules/gconf/module-gconf.c
|
||||
index c0f4dde..76a1f19 100644
|
||||
--- a/src/modules/gconf/module-gconf.c
|
||||
+++ b/src/modules/gconf/module-gconf.c
|
||||
@@ -51,7 +51,7 @@ int pa__init(pa_module*m) {
|
||||
u->buf_fill = 0;
|
||||
|
||||
if ((u->fd = pa_start_child_for_read(
|
||||
-#if defined(__linux__) && !defined(__OPTIMIZE__)
|
||||
+#if defined(__linux__) && defined(HAVE_RUNNING_FROM_BUILD_TREE)
|
||||
pa_run_from_build_tree() ? PA_BUILDDIR "/gconf-helper" :
|
||||
#endif
|
||||
PA_GCONF_HELPER, NULL, &u->pid)) < 0)
|
||||
diff --git a/src/modules/gsettings/module-gsettings.c b/src/modules/gsettings/module-gsettings.c
|
||||
index 330eca1..209c857 100644
|
||||
--- a/src/modules/gsettings/module-gsettings.c
|
||||
+++ b/src/modules/gsettings/module-gsettings.c
|
||||
@@ -51,7 +51,7 @@ int pa__init(pa_module*m) {
|
||||
u->buf_fill = 0;
|
||||
|
||||
if ((u->fd = pa_start_child_for_read(
|
||||
-#if defined(__linux__) && !defined(__OPTIMIZE__)
|
||||
+#if defined(__linux__) && defined(HAVE_RUNNING_FROM_BUILD_TREE)
|
||||
pa_run_from_build_tree() ? PA_BUILDDIR "/gsettings-helper" :
|
||||
#endif
|
||||
PA_GSETTINGS_HELPER, NULL, &u->pid)) < 0)
|
||||
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
|
||||
index 64e9f21..f85dd20 100644
|
||||
--- a/src/pulsecore/core-util.c
|
||||
+++ b/src/pulsecore/core-util.c
|
||||
@@ -3436,15 +3436,17 @@ void pa_reset_personality(void) {
|
||||
}
|
||||
|
||||
bool pa_run_from_build_tree(void) {
|
||||
- char *rp;
|
||||
static bool b = false;
|
||||
|
||||
+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
|
||||
+ char *rp;
|
||||
PA_ONCE_BEGIN {
|
||||
if ((rp = pa_readlink("/proc/self/exe"))) {
|
||||
b = pa_startswith(rp, PA_BUILDDIR);
|
||||
pa_xfree(rp);
|
||||
}
|
||||
} PA_ONCE_END;
|
||||
+#endif
|
||||
|
||||
return b;
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
From f0ddd7c36556ad05c1398fdd132947323ad26473 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Thu, 6 Dec 2018 11:43:41 +0800
|
||||
Subject: [PATCH 2/2] do not display CLFAGS to improve reproducibility build
|
||||
|
||||
Macro PA_CFLAGS contains build path, do not use it to
|
||||
display CFLAGS which could improve reproducibility build.
|
||||
|
||||
Upstream-Status: Inappropriate [oe specific]
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
src/daemon/main.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/main.c b/src/daemon/main.c
|
||||
index c80fa94..75496be 100644
|
||||
--- a/src/daemon/main.c
|
||||
+++ b/src/daemon/main.c
|
||||
@@ -908,7 +908,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
pa_log_info("This is PulseAudio %s", PACKAGE_VERSION);
|
||||
pa_log_debug("Compilation host: %s", CANONICAL_HOST);
|
||||
- pa_log_debug("Compilation CFLAGS: %s", PA_CFLAGS);
|
||||
+ pa_log_debug("Compilation CFLAGS: ***");
|
||||
|
||||
#ifdef HAVE_LIBSAMPLERATE
|
||||
pa_log_warn("Compiled with DEPRECATED libsamplerate support!");
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
# <type> <owner> <group> <mode> <path> <linksource>
|
||||
d pulse pulse 0755 /var/run/pulse none
|
|
@ -0,0 +1,15 @@
|
|||
require pulseaudio.inc
|
||||
|
||||
SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
|
||||
file://0001-client-conf-Add-allow-autospawn-for-root.patch \
|
||||
file://0001-introduce-a-special-build-flag-to-explicitly-disable.patch \
|
||||
file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
|
||||
file://volatiles.04_pulse \
|
||||
"
|
||||
SRC_URI[md5sum] = "c42f1f1465e8df9859d023dc184734bf"
|
||||
SRC_URI[sha256sum] = "809668ffc296043779c984f53461c2b3987a45b7a25eb2f0a1d11d9f23ba4055"
|
||||
|
||||
do_compile_prepend() {
|
||||
mkdir -p ${S}/libltdl
|
||||
cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
|
||||
}
|
Loading…
Reference in New Issue