All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] pulseaudio: Autotools to Meson
@ 2020-12-17 19:27 Tanu Kaskinen
  2020-12-17 19:27 ` [PATCH 1/4] pulseaudio: Remove OE_LT_RPATH_ALLOW Tanu Kaskinen
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Tanu Kaskinen @ 2020-12-17 19:27 UTC (permalink / raw)
  To: openembedded-core

The PulseAudio project plans to drop Autotools support in 15.0, so let's
switch to Meson. The first patch removes OE_LT_RPATH_ALLOW, which is
some old cruft that sounds like it has something to do Libtool, so it's
perhaps relevant for the goal of dropping Autotools. The next two
patches disable features that aren't available with Meson. The last
patch does the build system switch.

Tanu Kaskinen (4):
  pulseaudio: Remove OE_LT_RPATH_ALLOW
  pulseaudio: disable EsounD support
  pulseaudio: disable GConf support
  pulseaudio: switch build system from Autotools to Meson

 .../pulseaudio/pulseaudio.inc                 | 69 ++++++++-----------
 ...-option-for-enabling-disabling-Valgr.patch | 67 ++++++++++++++++++
 .../pulseaudio/pulseaudio_14.0.bb             |  1 +
 3 files changed, 97 insertions(+), 40 deletions(-)
 create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch

-- 
2.20.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/4] pulseaudio: Remove OE_LT_RPATH_ALLOW
  2020-12-17 19:27 [PATCH 0/4] pulseaudio: Autotools to Meson Tanu Kaskinen
@ 2020-12-17 19:27 ` Tanu Kaskinen
  2020-12-17 19:27 ` [PATCH 2/4] pulseaudio: disable EsounD support Tanu Kaskinen
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 12+ messages in thread
From: Tanu Kaskinen @ 2020-12-17 19:27 UTC (permalink / raw)
  To: openembedded-core

I don't know what these variables were supposed to do, but there doesn't
seem to be anything that would use these variables, so removing them
should be safe. The PulseAudio recipe is the only place where these
appear in the repository.

These lines were included already in the original PulseAudio recipe that
was added in commit d9a4c588ef24e7e4019fbe5a2314addbcd3a6bb8 in 2007,
and already at that time there didn't seem to be anything using these
variables.

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index 3a26cb59dd..4aea8bc6aa 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -129,11 +129,6 @@ EXTRA_OECONF_append_armeb = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", "
 
 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
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/4] pulseaudio: disable EsounD support
  2020-12-17 19:27 [PATCH 0/4] pulseaudio: Autotools to Meson Tanu Kaskinen
  2020-12-17 19:27 ` [PATCH 1/4] pulseaudio: Remove OE_LT_RPATH_ALLOW Tanu Kaskinen
@ 2020-12-17 19:27 ` Tanu Kaskinen
  2020-12-17 19:27 ` [PATCH 3/4] pulseaudio: disable GConf support Tanu Kaskinen
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 12+ messages in thread
From: Tanu Kaskinen @ 2020-12-17 19:27 UTC (permalink / raw)
  To: openembedded-core

This disables PulseAudio's EsounD emulation and the EsounD sink module.
EsounD has been obsolete for a long time, and doesn't seem to be
packaged for OpenEmbedded, so probably there are no applications around
that would need PulseAudio's EsounD support.

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index 4aea8bc6aa..ad059404f8 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -79,6 +79,7 @@ EXTRA_OECONF = "\
 		ac_cv_header_valgrind_memcheck_h=no \
 		--disable-tests \
 		--disable-running-from-build-tree \
+		--disable-esound \
 "
 
 # soxr (the SoX Resampler library) doesn't seem to be currently packaged in
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/4] pulseaudio: disable GConf support
  2020-12-17 19:27 [PATCH 0/4] pulseaudio: Autotools to Meson Tanu Kaskinen
  2020-12-17 19:27 ` [PATCH 1/4] pulseaudio: Remove OE_LT_RPATH_ALLOW Tanu Kaskinen
  2020-12-17 19:27 ` [PATCH 2/4] pulseaudio: disable EsounD support Tanu Kaskinen
@ 2020-12-17 19:27 ` Tanu Kaskinen
  2020-12-17 19:27 ` [PATCH 4/4] pulseaudio: switch build system from Autotools to Meson Tanu Kaskinen
  2020-12-19 17:24 ` [OE-core] [PATCH 0/4] pulseaudio: " Khem Raj
  4 siblings, 0 replies; 12+ messages in thread
From: Tanu Kaskinen @ 2020-12-17 19:27 UTC (permalink / raw)
  To: openembedded-core

The GConf module is only needed for older versions of paprefs, other
applications shouldn't be interacting with PulseAudio's GConf settings.
Paprefs isn't packaged in OpenEmbedded, so there probably aren't any
users of the GConf functionality.

My immediate motivation for doing this is that I'm converting the
pulseaudio recipe to use Meson, and the GConf module isn't supported by
the Meson build system. Adding support for it would be possible, but
pretty pointless.

The GConf module will be removed in PulseAudio 15.0.

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index ad059404f8..48759bca62 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -80,6 +80,7 @@ EXTRA_OECONF = "\
 		--disable-tests \
 		--disable-running-from-build-tree \
 		--disable-esound \
+		--disable-gconf \
 "
 
 # soxr (the SoX Resampler library) doesn't seem to be currently packaged in
@@ -108,7 +109,6 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5'
 
 PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
 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"
@@ -265,7 +265,6 @@ RDEPENDS_pulseaudio-module-console-kit =+ "${@bb.utils.contains('DISTRO_FEATURES
 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"
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/4] pulseaudio: switch build system from Autotools to Meson
  2020-12-17 19:27 [PATCH 0/4] pulseaudio: Autotools to Meson Tanu Kaskinen
                   ` (2 preceding siblings ...)
  2020-12-17 19:27 ` [PATCH 3/4] pulseaudio: disable GConf support Tanu Kaskinen
@ 2020-12-17 19:27 ` Tanu Kaskinen
  2020-12-19 17:24 ` [OE-core] [PATCH 0/4] pulseaudio: " Khem Raj
  4 siblings, 0 replies; 12+ messages in thread
From: Tanu Kaskinen @ 2020-12-17 19:27 UTC (permalink / raw)
  To: openembedded-core

Upstream is moving from Autotools to Meson, Autotools support will be
dropped in 15.0.

I dropped some configure options:
 * --enable-tcpwrap=no doesn't (currently) have a counterpart in Meson,
   TCP Wrappers support is always disabled.
 * --disable-esound doesn't have a counterpart in Meson, EsounD support
   is always disabled.
 * --disable-gconf doesn't have a counterpart in Meson, GConf support is
   always disabled.

I backported a patch that implements support for the -Dvalgrind=disabled
option.

I checked with buildhistory what the differences are before and after
this patch (with qemuarm with neon removed from TUNE_FEATURES, all
PACKAGECONFIGs enabled):
 * Obvious differences in DEPENDS: Autotools stuff removed and Meson
   stuff added. There wasn't anything strange here.
 * Packages have superfluous RDEPENDS removed from them. With Autotools
   something caused for example X11 libraries to be added to RDEPENDS of
   packages that don't have anything to do with X11.
 * The pulseaudio-src package had MMX and SSE related files removed and
   Neon related files added. I don't know why the ARM build previously
   had MMX and SSE files included, the addition of Neon files is
   explained by the fact that with Meson the Neon optimizations can't be
   disabled if the compiler supports Neon (see below).
 * libfoo.so symlinks changed to point to libfoo.so.X rather than
   directly to libfoo.so.X.Y.Z. To my understading that's fine, since
   libfoo.so.X is a symlink that points to libfoo.so.X.Y.Z.
 * There were various file size changes, which I didn't investigate.

Previously the recipe disabled ARM Neon optimizations when "neon" was
not in TUNE_FEATURES. That was originally added in commit
4e7b91b5a2613b957b08aefbee1aac28fdd19598 at a time when PulseAudio's
build system didn't check the availability of the arm_neon.h header,
causing compilation errors when the header wasn't available. That issue
was fixed a long time ago, so there was little need for the
TUNE_FEATURES check, although it was still possible to make the build
fail if non-neon -mfpu was passed in CFLAGS, so the TUNE_FEATURES check
still had some theoretical benefit (theoretical, because generally OE
passes -mfpu in CC instead of CFLAGS, so OE's -mfpu option appears very
early in the compiler command line, which doesn't trip up PulseAudio's
current Autotools build system).

With Meson there's no option for disabling Neon optimizations if the
compiler supports Neon. If -mfpu is set in CC or CFLAGS, it's ignored,
because the build system adds -mfpu=neon at the end of the compiler
command line, overriding any earlier -mfpu options. This shouldn't be
a problem, because PulseAudio detects at runtime whether the CPU
supports Neon instructions.

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
 .../pulseaudio/pulseaudio.inc                 | 64 ++++++++----------
 ...-option-for-enabling-disabling-Valgr.patch | 67 +++++++++++++++++++
 .../pulseaudio/pulseaudio_14.0.bb             |  1 +
 3 files changed, 97 insertions(+), 35 deletions(-)
 create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch

diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index 48759bca62..cf4be7ed40 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -56,49 +56,47 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \
                     file://src/pulsecore/filter/biquad.h;beginline=1;endline=4;md5=6d46d1365206528a20137355924233c1 \
 "
 
+# libtool is needed for libltdl, used in module loading.
 DEPENDS = "libatomic-ops libsndfile1 libtool"
 # optional
 DEPENDS += "udev alsa-lib glib-2.0"
 DEPENDS += "speexdsp libxml-parser-perl-native libcap"
 
-inherit autotools bash-completion pkgconfig useradd gettext perlnative systemd manpages gsettings
+inherit bash-completion meson pkgconfig useradd gettext perlnative systemd manpages gsettings
 
 # *.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 \
-		--disable-esound \
-		--disable-gconf \
+EXTRA_OEMESON = "\
+		-Dhal-compat=false \
+		-Dorc=disabled \
+		-Daccess_group=audio \
+		-Dopenssl=disabled \
+		-Ddatabase=simple \
+		-Dzshcompletiondir=no \
+		-Dudevrulesdir=`pkg-config --variable=udevdir udev`/rules.d \
+		-Dvalgrind=disabled \
+		-Dtests=false \
+		-Drunning-from-build-tree=false \
 "
 
 # 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"
+EXTRA_OEMESON += "-Dsoxr=disabled"
 
 # 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"
+EXTRA_OEMESON += "-Dfftw=disabled"
 
 # 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"
+EXTRA_OEMESON += "-Dadrian-aec=false"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
@@ -107,26 +105,22 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5'
                    dbus gsettings \
                    "
 
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
-PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5 sbc"
-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"
+PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus"
+PACKAGECONFIG[bluez5] = "-Dbluez5=true,-Dbluez5=false,bluez5 sbc"
+PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0-native glib-2.0"
+PACKAGECONFIG[ofono] = "-Dbluez5-ofono-headset=true,-Dbluez5-ofono-headset=false,ofono"
+PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemduserunitdir=${systemd_user_unitdir},-Dsystemd=disabled,systemd"
+PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libxtst libice libsm libxcb"
+PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi"
+PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,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)}"
-
+PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc"
+PACKAGECONFIG[webrtc] = "-Dwebrtc-aec=enabled,-Dwebrtc-aec=disabled,webrtc-audio-processing"
+PACKAGECONFIG[ipv6] = "-Dipv6=true,-Dipv6=false,"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,"
 
 export TARGET_PFPU = "${TARGET_FPU}"
 
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch
new file mode 100644
index 0000000000..d60a9a211f
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch
@@ -0,0 +1,67 @@
+From 6d202833a5ae241eeb648631cf95090c452198f9 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Fri, 14 Feb 2020 07:29:33 +0200
+Subject: [PATCH] build-sys: Add an option for enabling/disabling Valgrind
+
+In OpenEmbedded the PulseAudio recipe currently disables Valgrind
+support by passing "ac_cv_header_valgrind_memcheck_h=no" to the
+configure script (this was added to make it deterministic whether
+Valgrdind support gets enabled or not). I'm converting the PulseAudio
+recipe to use Meson, and I needed an option to disable Valgrind.
+
+Upstream-Status: Backport
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ meson.build       | 6 +++++-
+ meson_options.txt | 3 +++
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 658eeee57..258962724 100644
+--- a/meson.build
++++ b/meson.build
+@@ -220,7 +220,6 @@ check_headers = [
+   'sys/un.h',
+   'sys/wait.h',
+   'syslog.h',
+-  'valgrind/memcheck.h',
+   'xlocale.h',
+ ]
+ 
+@@ -231,6 +230,10 @@ foreach h : check_headers
+   endif
+ endforeach
+ 
++if cc.has_header('valgrind/memcheck.h', required: get_option('valgrind'))
++  cdata.set('HAVE_VALGRIND_MEMCHECK_H', 1)
++endif
++
+ # FIXME: move this to the above set
+ if cc.has_header('pthread.h')
+   cdata.set('HAVE_PTHREAD', 1)
+@@ -841,6 +844,7 @@ summary = [
+   'Enable SoXR (resampler):       @0@'.format(soxr_dep.found()),
+   'Enable WebRTC echo canceller:  @0@'.format(webrtc_dep.found()),
+   'Enable Gcov coverage:          @0@'.format(get_option('gcov')),
++  'Enable Valgrind:               @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')),
+   'Enable man pages:              @0@'.format(get_option('man')),
+   'Enable unit tests:             @0@'.format(get_option('tests')),
+   '',
+diff --git a/meson_options.txt b/meson_options.txt
+index 824f24e08..115cc84af 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -138,6 +138,9 @@ option('systemd',
+ option('udev',
+        type : 'feature', value : 'auto',
+        description : 'Optional udev support')
++option('valgrind',
++       type : 'feature', value : 'auto',
++       description : 'Optional Valgrind support')
+ option('x11',
+        type : 'feature', value : 'auto',
+        description : 'Optional X11 support')
+-- 
+2.20.1
+
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb
index ac0c82e37d..63ef3a9c12 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb
@@ -3,6 +3,7 @@ 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://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
+           file://0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch \
            file://volatiles.04_pulse \
            "
 SRC_URI[md5sum] = "84a7776e63dd55c40db8fbd7c7e2e18e"
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [OE-core] [PATCH 0/4] pulseaudio: Autotools to Meson
  2020-12-17 19:27 [PATCH 0/4] pulseaudio: Autotools to Meson Tanu Kaskinen
                   ` (3 preceding siblings ...)
  2020-12-17 19:27 ` [PATCH 4/4] pulseaudio: switch build system from Autotools to Meson Tanu Kaskinen
@ 2020-12-19 17:24 ` Khem Raj
  2020-12-19 20:36   ` Khem Raj
  4 siblings, 1 reply; 12+ messages in thread
From: Khem Raj @ 2020-12-19 17:24 UTC (permalink / raw)
  To: Tanu Kaskinen; +Cc: Patches and discussions about the oe-core layer

On Thu, Dec 17, 2020 at 11:28 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
>
> The PulseAudio project plans to drop Autotools support in 15.0, so let's
> switch to Meson. The first patch removes OE_LT_RPATH_ALLOW, which is
> some old cruft that sounds like it has something to do Libtool, so it's
> perhaps relevant for the goal of dropping Autotools. The next two
> patches disable features that aren't available with Meson. The last
> patch does the build system switch.
>
> Tanu Kaskinen (4):
>   pulseaudio: Remove OE_LT_RPATH_ALLOW
>   pulseaudio: disable EsounD support
>   pulseaudio: disable GConf support
>   pulseaudio: switch build system from Autotools to Meson

I am seeing build failures with this patch series while using clang
for compiler see.

https://errors.yoctoproject.org/Errors/Details/539474/



>
>  .../pulseaudio/pulseaudio.inc                 | 69 ++++++++-----------
>  ...-option-for-enabling-disabling-Valgr.patch | 67 ++++++++++++++++++
>  .../pulseaudio/pulseaudio_14.0.bb             |  1 +
>  3 files changed, 97 insertions(+), 40 deletions(-)
>  create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch
>
> --
> 2.20.1
>
>
> 
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [OE-core] [PATCH 0/4] pulseaudio: Autotools to Meson
  2020-12-19 17:24 ` [OE-core] [PATCH 0/4] pulseaudio: " Khem Raj
@ 2020-12-19 20:36   ` Khem Raj
  2020-12-20 14:25     ` Tanu Kaskinen
  0 siblings, 1 reply; 12+ messages in thread
From: Khem Raj @ 2020-12-19 20:36 UTC (permalink / raw)
  To: Tanu Kaskinen; +Cc: Patches and discussions about the oe-core layer

On Sat, Dec 19, 2020 at 9:24 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> On Thu, Dec 17, 2020 at 11:28 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> >
> > The PulseAudio project plans to drop Autotools support in 15.0, so let's
> > switch to Meson. The first patch removes OE_LT_RPATH_ALLOW, which is
> > some old cruft that sounds like it has something to do Libtool, so it's
> > perhaps relevant for the goal of dropping Autotools. The next two
> > patches disable features that aren't available with Meson. The last
> > patch does the build system switch.
> >
> > Tanu Kaskinen (4):
> >   pulseaudio: Remove OE_LT_RPATH_ALLOW
> >   pulseaudio: disable EsounD support
> >   pulseaudio: disable GConf support
> >   pulseaudio: switch build system from Autotools to Meson
>
> I am seeing build failures with this patch series while using clang
> for compiler see.
>
> https://errors.yoctoproject.org/Errors/Details/539474/
>

It turns out that new meson checks are a bit different and if
-Qunused-arguments is used with clang then the test for neon passes
because its a simple compile time check in meson, So a workaround that
I have done is to remove using -Qunused-arguments on clang
cmdline and then it works ok.

>
>
> >
> >  .../pulseaudio/pulseaudio.inc                 | 69 ++++++++-----------
> >  ...-option-for-enabling-disabling-Valgr.patch | 67 ++++++++++++++++++
> >  .../pulseaudio/pulseaudio_14.0.bb             |  1 +
> >  3 files changed, 97 insertions(+), 40 deletions(-)
> >  create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch
> >
> > --
> > 2.20.1
> >
> >
> > 
> >

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [OE-core] [PATCH 0/4] pulseaudio: Autotools to Meson
  2020-12-19 20:36   ` Khem Raj
@ 2020-12-20 14:25     ` Tanu Kaskinen
  2020-12-20 16:09       ` Khem Raj
  0 siblings, 1 reply; 12+ messages in thread
From: Tanu Kaskinen @ 2020-12-20 14:25 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On Sat, 2020-12-19 at 12:36 -0800, Khem Raj wrote:
> On Sat, Dec 19, 2020 at 9:24 AM Khem Raj <raj.khem@gmail.com> wrote:
> > On Thu, Dec 17, 2020 at 11:28 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> > > The PulseAudio project plans to drop Autotools support in 15.0, so let's
> > > switch to Meson. The first patch removes OE_LT_RPATH_ALLOW, which is
> > > some old cruft that sounds like it has something to do Libtool, so it's
> > > perhaps relevant for the goal of dropping Autotools. The next two
> > > patches disable features that aren't available with Meson. The last
> > > patch does the build system switch.
> > > 
> > > Tanu Kaskinen (4):
> > >   pulseaudio: Remove OE_LT_RPATH_ALLOW
> > >   pulseaudio: disable EsounD support
> > >   pulseaudio: disable GConf support
> > >   pulseaudio: switch build system from Autotools to Meson
> > 
> > I am seeing build failures with this patch series while using clang
> > for compiler see.
> > 
> > https://errors.yoctoproject.org/Errors/Details/539474/
> > 
> 
> It turns out that new meson checks are a bit different and if
> -Qunused-arguments is used with clang then the test for neon passes
> because its a simple compile time check in meson, So a workaround that
> I have done is to remove using -Qunused-arguments on clang
> cmdline and then it works ok.

Ok, so the Neon check in Meson is somehow too lax if it passes with
-Qunused-arguments. Thanks for the initial debugging! I can look into
the issue, but I can't promise to do it quickly. I see these patches
are in master already - should the last patch be reverted for now? Or
can your workaround be applied to master (or meta-clang, if that's
where clang workarounds belong)?

-- 
Tanu


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [OE-core] [PATCH 0/4] pulseaudio: Autotools to Meson
  2020-12-20 14:25     ` Tanu Kaskinen
@ 2020-12-20 16:09       ` Khem Raj
  2020-12-21 13:03         ` Andrey Zhizhikin
  0 siblings, 1 reply; 12+ messages in thread
From: Khem Raj @ 2020-12-20 16:09 UTC (permalink / raw)
  To: Tanu Kaskinen; +Cc: Patches and discussions about the oe-core layer

On Sun, Dec 20, 2020 at 6:26 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
>
> On Sat, 2020-12-19 at 12:36 -0800, Khem Raj wrote:
> > On Sat, Dec 19, 2020 at 9:24 AM Khem Raj <raj.khem@gmail.com> wrote:
> > > On Thu, Dec 17, 2020 at 11:28 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> > > > The PulseAudio project plans to drop Autotools support in 15.0, so let's
> > > > switch to Meson. The first patch removes OE_LT_RPATH_ALLOW, which is
> > > > some old cruft that sounds like it has something to do Libtool, so it's
> > > > perhaps relevant for the goal of dropping Autotools. The next two
> > > > patches disable features that aren't available with Meson. The last
> > > > patch does the build system switch.
> > > >
> > > > Tanu Kaskinen (4):
> > > >   pulseaudio: Remove OE_LT_RPATH_ALLOW
> > > >   pulseaudio: disable EsounD support
> > > >   pulseaudio: disable GConf support
> > > >   pulseaudio: switch build system from Autotools to Meson
> > >
> > > I am seeing build failures with this patch series while using clang
> > > for compiler see.
> > >
> > > https://errors.yoctoproject.org/Errors/Details/539474/
> > >
> >
> > It turns out that new meson checks are a bit different and if
> > -Qunused-arguments is used with clang then the test for neon passes
> > because its a simple compile time check in meson, So a workaround that
> > I have done is to remove using -Qunused-arguments on clang
> > cmdline and then it works ok.
>
> Ok, so the Neon check in Meson is somehow too lax if it passes with
> -Qunused-arguments. Thanks for the initial debugging! I can look into
> the issue, but I can't promise to do it quickly. I see these patches
> are in master already - should the last patch be reverted for now? Or
> can your workaround be applied to master (or meta-clang, if that's
> where clang workarounds belong)?
>

I think its ok, I have added the relevant workaround in meta-clang for
now. there was another
issue I ran into non x86 builds with clang, which I have sent a patch
for. Please review it and see
if its worth upstreaming into PA and help it upstream if you can.

> --
> Tanu
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [OE-core] [PATCH 0/4] pulseaudio: Autotools to Meson
  2020-12-20 16:09       ` Khem Raj
@ 2020-12-21 13:03         ` Andrey Zhizhikin
  2020-12-21 13:25           ` Tanu Kaskinen
  0 siblings, 1 reply; 12+ messages in thread
From: Andrey Zhizhikin @ 2020-12-21 13:03 UTC (permalink / raw)
  To: Khem Raj; +Cc: Tanu Kaskinen, Patches and discussions about the oe-core layer

Hello Tanu,

On Sun, Dec 20, 2020 at 5:09 PM Khem Raj <raj.khem@gmail.com> wrote:
>
> On Sun, Dec 20, 2020 at 6:26 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> >
> > On Sat, 2020-12-19 at 12:36 -0800, Khem Raj wrote:
> > > On Sat, Dec 19, 2020 at 9:24 AM Khem Raj <raj.khem@gmail.com> wrote:
> > > > On Thu, Dec 17, 2020 at 11:28 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> > > > > The PulseAudio project plans to drop Autotools support in 15.0, so let's
> > > > > switch to Meson. The first patch removes OE_LT_RPATH_ALLOW, which is
> > > > > some old cruft that sounds like it has something to do Libtool, so it's
> > > > > perhaps relevant for the goal of dropping Autotools. The next two
> > > > > patches disable features that aren't available with Meson. The last
> > > > > patch does the build system switch.
> > > > >
> > > > > Tanu Kaskinen (4):
> > > > >   pulseaudio: Remove OE_LT_RPATH_ALLOW
> > > > >   pulseaudio: disable EsounD support
> > > > >   pulseaudio: disable GConf support
> > > > >   pulseaudio: switch build system from Autotools to Meson

I'm seeing a build failure after this upgrade, thought you might
advise here what could be wrong.

Following is produced at the end of do_compile taks:

| sed: can't read src/client.conf: No such file or directory
| WARNING: exit code 2 from a shell command.
|
ERROR: Task (/development/yocto-master/yocto-build-appliance/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb:do_compile)
failed with exit code '1'

Have you experienced the same error, and what can be missing here?

> > > >
> > > > I am seeing build failures with this patch series while using clang
> > > > for compiler see.
> > > >
> > > > https://errors.yoctoproject.org/Errors/Details/539474/
> > > >
> > >
> > > It turns out that new meson checks are a bit different and if
> > > -Qunused-arguments is used with clang then the test for neon passes
> > > because its a simple compile time check in meson, So a workaround that
> > > I have done is to remove using -Qunused-arguments on clang
> > > cmdline and then it works ok.
> >
> > Ok, so the Neon check in Meson is somehow too lax if it passes with
> > -Qunused-arguments. Thanks for the initial debugging! I can look into
> > the issue, but I can't promise to do it quickly. I see these patches
> > are in master already - should the last patch be reverted for now? Or
> > can your workaround be applied to master (or meta-clang, if that's
> > where clang workarounds belong)?
> >
>
> I think its ok, I have added the relevant workaround in meta-clang for
> now. there was another
> issue I ran into non x86 builds with clang, which I have sent a patch
> for. Please review it and see
> if its worth upstreaming into PA and help it upstream if you can.
>
> > --
> > Tanu
> >
>
> 
>


-- 
Regards,
Andrey.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [OE-core] [PATCH 0/4] pulseaudio: Autotools to Meson
  2020-12-21 13:03         ` Andrey Zhizhikin
@ 2020-12-21 13:25           ` Tanu Kaskinen
  2020-12-21 14:06             ` Andrey Zhizhikin
  0 siblings, 1 reply; 12+ messages in thread
From: Tanu Kaskinen @ 2020-12-21 13:25 UTC (permalink / raw)
  To: Andrey Zhizhikin, Khem Raj
  Cc: Patches and discussions about the oe-core layer

On Mon, 2020-12-21 at 14:03 +0100, Andrey Zhizhikin wrote:
> Hello Tanu,
> 
> On Sun, Dec 20, 2020 at 5:09 PM Khem Raj <raj.khem@gmail.com> wrote:
> > On Sun, Dec 20, 2020 at 6:26 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> > > On Sat, 2020-12-19 at 12:36 -0800, Khem Raj wrote:
> > > > On Sat, Dec 19, 2020 at 9:24 AM Khem Raj <raj.khem@gmail.com> wrote:
> > > > > On Thu, Dec 17, 2020 at 11:28 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> > > > > > The PulseAudio project plans to drop Autotools support in 15.0, so let's
> > > > > > switch to Meson. The first patch removes OE_LT_RPATH_ALLOW, which is
> > > > > > some old cruft that sounds like it has something to do Libtool, so it's
> > > > > > perhaps relevant for the goal of dropping Autotools. The next two
> > > > > > patches disable features that aren't available with Meson. The last
> > > > > > patch does the build system switch.
> > > > > > 
> > > > > > Tanu Kaskinen (4):
> > > > > >   pulseaudio: Remove OE_LT_RPATH_ALLOW
> > > > > >   pulseaudio: disable EsounD support
> > > > > >   pulseaudio: disable GConf support
> > > > > >   pulseaudio: switch build system from Autotools to Meson
> 
> I'm seeing a build failure after this upgrade, thought you might
> advise here what could be wrong.
> 
> Following is produced at the end of do_compile taks:
> 
> > sed: can't read src/client.conf: No such file or directory
> > WARNING: exit code 2 from a shell command.
> > 
> ERROR: Task (/development/yocto-master/yocto-build-appliance/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb:do_compile)
> failed with exit code '1'
> 
> Have you experienced the same error, and what can be missing here?

I can reproduce the error when enabling the autospawn-for-root
PACKAGECONFIG. client.conf is generated from client.conf.in, and the
generated file's location has changed. Replacing "src/client.conf" with
"src/pulse/client.conf" in pulseaudio.inc seems to fix this issue.

-- 
Tanu


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [OE-core] [PATCH 0/4] pulseaudio: Autotools to Meson
  2020-12-21 13:25           ` Tanu Kaskinen
@ 2020-12-21 14:06             ` Andrey Zhizhikin
  0 siblings, 0 replies; 12+ messages in thread
From: Andrey Zhizhikin @ 2020-12-21 14:06 UTC (permalink / raw)
  To: Tanu Kaskinen; +Cc: Khem Raj, Patches and discussions about the oe-core layer

Hello Tanu,

On Mon, Dec 21, 2020 at 2:25 PM Tanu Kaskinen <tanuk@iki.fi> wrote:
>
> On Mon, 2020-12-21 at 14:03 +0100, Andrey Zhizhikin wrote:
> > Hello Tanu,
> >
> > On Sun, Dec 20, 2020 at 5:09 PM Khem Raj <raj.khem@gmail.com> wrote:
> > > On Sun, Dec 20, 2020 at 6:26 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> > > > On Sat, 2020-12-19 at 12:36 -0800, Khem Raj wrote:
> > > > > On Sat, Dec 19, 2020 at 9:24 AM Khem Raj <raj.khem@gmail.com> wrote:
> > > > > > On Thu, Dec 17, 2020 at 11:28 AM Tanu Kaskinen <tanuk@iki.fi> wrote:
> > > > > > > The PulseAudio project plans to drop Autotools support in 15.0, so let's
> > > > > > > switch to Meson. The first patch removes OE_LT_RPATH_ALLOW, which is
> > > > > > > some old cruft that sounds like it has something to do Libtool, so it's
> > > > > > > perhaps relevant for the goal of dropping Autotools. The next two
> > > > > > > patches disable features that aren't available with Meson. The last
> > > > > > > patch does the build system switch.
> > > > > > >
> > > > > > > Tanu Kaskinen (4):
> > > > > > >   pulseaudio: Remove OE_LT_RPATH_ALLOW
> > > > > > >   pulseaudio: disable EsounD support
> > > > > > >   pulseaudio: disable GConf support
> > > > > > >   pulseaudio: switch build system from Autotools to Meson
> >
> > I'm seeing a build failure after this upgrade, thought you might
> > advise here what could be wrong.
> >
> > Following is produced at the end of do_compile taks:
> >
> > > sed: can't read src/client.conf: No such file or directory
> > > WARNING: exit code 2 from a shell command.
> > >
> > ERROR: Task (/development/yocto-master/yocto-build-appliance/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb:do_compile)
> > failed with exit code '1'
> >
> > Have you experienced the same error, and what can be missing here?
>
> I can reproduce the error when enabling the autospawn-for-root
> PACKAGECONFIG. client.conf is generated from client.conf.in, and the
> generated file's location has changed. Replacing "src/client.conf" with
> "src/pulse/client.conf" in pulseaudio.inc seems to fix this issue.

Thanks, that solved the compilation issue!

>
> --
> Tanu
>


-- 
Regards,
Andrey.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-12-21 14:07 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-17 19:27 [PATCH 0/4] pulseaudio: Autotools to Meson Tanu Kaskinen
2020-12-17 19:27 ` [PATCH 1/4] pulseaudio: Remove OE_LT_RPATH_ALLOW Tanu Kaskinen
2020-12-17 19:27 ` [PATCH 2/4] pulseaudio: disable EsounD support Tanu Kaskinen
2020-12-17 19:27 ` [PATCH 3/4] pulseaudio: disable GConf support Tanu Kaskinen
2020-12-17 19:27 ` [PATCH 4/4] pulseaudio: switch build system from Autotools to Meson Tanu Kaskinen
2020-12-19 17:24 ` [OE-core] [PATCH 0/4] pulseaudio: " Khem Raj
2020-12-19 20:36   ` Khem Raj
2020-12-20 14:25     ` Tanu Kaskinen
2020-12-20 16:09       ` Khem Raj
2020-12-21 13:03         ` Andrey Zhizhikin
2020-12-21 13:25           ` Tanu Kaskinen
2020-12-21 14:06             ` Andrey Zhizhikin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.