Version bump

This commit is contained in:
2024-07-04 17:15:21 +02:00
parent a0dd07d22f
commit 2a76167293
5 changed files with 276 additions and 3 deletions

View File

@@ -0,0 +1,80 @@
From acc75b21f653873ec1da68bfa08f2945a8dd09d2 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Sun, 30 Jun 2024 13:44:06 -0400
Subject: [PATCH] meson: fix conflicting use of feature-based dependency
lookups
When spa-plugins is enabled, the gio-2.0 global dependency is
overwritten.
When bluez support is enabled, OR when gsettings is enabled, the gio-2.0
dependency is then detected as found. This means that
pipewire-module-protocol-pulse can end up enabling gsettings support
even if it has been forcibly turned off.
Rename the meson variables to ensure they are looked up separately.
(cherry picked from commit b5f031bc15524bbfde577290ad9bbadeab77ae8b)
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
---
meson.build | 4 ++--
spa/meson.build | 6 +++---
src/modules/meson.build | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/meson.build b/meson.build
index 0ea256e9b..3353a2aec 100644
--- a/meson.build
+++ b/meson.build
@@ -343,8 +343,8 @@ summary({'GLib-2.0 (Flatpak support)': glib2_dep.found()}, bool_yn: true, sectio
flatpak_support = glib2_dep.found()
cdata.set('HAVE_GLIB2', flatpak_support)
-gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings'))
-summary({'GIO (GSettings)': gio_dep.found()}, bool_yn: true, section: 'Misc dependencies')
+gsettings_gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings'))
+summary({'GIO (GSettings)': gsettings_gio_dep.found()}, bool_yn: true, section: 'Misc dependencies')
gst_option = get_option('gstreamer')
gst_deps_def = {
diff --git a/spa/meson.build b/spa/meson.build
index db0a84425..e37744b08 100644
--- a/spa/meson.build
+++ b/spa/meson.build
@@ -43,12 +43,12 @@ if get_option('spa-plugins').allowed()
summary({'ALSA': alsa_dep.found()}, bool_yn: true, section: 'Backend')
bluez_dep = dependency('bluez', version : '>= 4.101', required: get_option('bluez5'))
- gio_dep = dependency('gio-2.0', required : get_option('bluez5'))
- gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5'))
+ bluez_gio_dep = dependency('gio-2.0', required : get_option('bluez5'))
+ bluez_gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5'))
bluez_glib2_dep = dependency('glib-2.0', required : get_option('bluez5'))
sbc_dep = dependency('sbc', required: get_option('bluez5'))
summary({'SBC': sbc_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
- bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, gio_dep, gio_unix_dep ]
+ bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, bluez_gio_dep, bluez_gio_unix_dep ]
bluez_deps_found = get_option('bluez5').allowed()
foreach dep: bluez5_deps
if get_option('bluez5').enabled() and not dep.found()
diff --git a/src/modules/meson.build b/src/modules/meson.build
index 1b434b7f6..52660253e 100644
--- a/src/modules/meson.build
+++ b/src/modules/meson.build
@@ -409,11 +409,11 @@ if avahi_dep.found()
cdata.set('HAVE_AVAHI', true)
endif
-if gio_dep.found()
+if gsettings_gio_dep.found()
pipewire_module_protocol_pulse_sources += [
'module-protocol-pulse/modules/module-gsettings.c',
]
- pipewire_module_protocol_pulse_deps += gio_dep
+ pipewire_module_protocol_pulse_deps += gsettings_gio_dep
cdata.set('HAVE_GIO', true)
endif
--
2.44.2

View File

@@ -0,0 +1,95 @@
From acd5bf60b9d4a35d00c90bfdca7f89e4ff4a4ff7 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Thu, 30 May 2024 19:44:38 -0400
Subject: [PATCH] meson: fix webrtc-audio-processing dependency ignoring
configure args
Most dependencies use meson "feature" options for optional
functionality. This allows people to disable them, if they don't want
them, through the power of tristate decision-making.
This particular dependency does something a bit more complicated than
can be described by simply passing feature options to the required
kwarg. It:
- tries to look for two different names of the dependency
- selects different version ranges, depending on the dependency name
- has a hole in the middle of the versions
Unfortunately, `required: false` for the first dependency isn't
equivalent to a tristate decision-making process. We have to manually
code the logic ourselves.
The problem is that when we look up the first name, we cannot pass the
feature option in because if the option is force enabled, then the
dependency lookup fails and configuration never tries to find the older
version instead.
But also, we can't just say it *isn't* required, because if the option
is force *disabled* but it is installed on the system, we still find it
and build against it.
One solution would be using meson 0.60's support for multiple dependency
names:
```
dependency('webrtc-audio-processing-1', 'webrtc-audio-processing',
version : ['>= 0.2'],
required: get_option('echo-cancel-webrtc'),
)
```
Unfortunately, this too doesn't work since we could end up detecting 1.1
(the hole in the middle) which is invalid.
Instead, we do a bit of checking for tristate values before deciding to
invoke `dependency()`. This lets us guarantee that disabled dependencies
are well and truly disabled.
Bug: https://bugs.gentoo.org/933218
Fixes: #3678
---
meson.build | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/meson.build b/meson.build
index cda60112f..72d275086 100644
--- a/meson.build
+++ b/meson.build
@@ -393,18 +393,23 @@ cdata.set('HAVE_GSTREAMER_DEVICE_PROVIDER', get_option('gstreamer-device-provide
summary({'gstreamer DMA_DRM support': gst_dma_drm_found}, bool_yn: true, section: 'Backend')
cdata.set('HAVE_GSTREAMER_DMA_DRM', gst_dma_drm_found)
-webrtc_dep = dependency('webrtc-audio-processing-1',
- version : ['>= 1.2' ],
- required : false)
-cdata.set('HAVE_WEBRTC1', webrtc_dep.found())
-if webrtc_dep.found()
+if get_option('echo-cancel-webrtc').disabled()
+ webrtc_dep = dependency('', required: false)
summary({'WebRTC Echo Canceling >= 1.2': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
else
- webrtc_dep = dependency('webrtc-audio-processing',
- version : ['>= 0.2', '< 1.0'],
- required : get_option('echo-cancel-webrtc'))
- cdata.set('HAVE_WEBRTC', webrtc_dep.found())
- summary({'WebRTC Echo Canceling < 1.0': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
+ webrtc_dep = dependency('webrtc-audio-processing-1',
+ version : ['>= 1.2' ],
+ required : false)
+ cdata.set('HAVE_WEBRTC1', webrtc_dep.found())
+ if webrtc_dep.found()
+ summary({'WebRTC Echo Canceling >= 1.2': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
+ else
+ webrtc_dep = dependency('webrtc-audio-processing',
+ version : ['>= 0.2', '< 1.0'],
+ required : get_option('echo-cancel-webrtc'))
+ cdata.set('HAVE_WEBRTC', webrtc_dep.found())
+ summary({'WebRTC Echo Canceling < 1.0': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
+ endif
endif
# On FreeBSD and MidnightBSD, epoll-shim library is required for eventfd() and timerfd()
--
GitLab

View File

@@ -0,0 +1,79 @@
From b5f031bc15524bbfde577290ad9bbadeab77ae8b Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Sun, 30 Jun 2024 13:44:06 -0400
Subject: [PATCH] meson: fix conflicting use of feature-based dependency
lookups
When spa-plugins is enabled, the gio-2.0 global dependency is
overwritten.
When bluez support is enabled, OR when gsettings is enabled, the gio-2.0
dependency is then detected as found. This means that
pipewire-module-protocol-pulse can end up enabling gsettings support
even if it has been forcibly turned off.
Rename the meson variables to ensure they are looked up separately.
---
meson.build | 6 +++---
spa/meson.build | 6 +++---
src/modules/meson.build | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/meson.build b/meson.build
index 2607c5c8f4..38b6b59d00 100644
--- a/meson.build
+++ b/meson.build
@@ -346,9 +346,9 @@ summary({'GLib-2.0 (Flatpak support)': glib2_dep.found()}, bool_yn: true, sectio
flatpak_support = glib2_dep.found()
cdata.set('HAVE_GLIB2', flatpak_support)
-gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings'))
-summary({'GIO (GSettings)': gio_dep.found()}, bool_yn: true, section: 'Misc dependencies')
-if not gio_dep.found() and get_option('gsettings-pulse-schema').enabled()
+gsettings_gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings'))
+summary({'GIO (GSettings)': gsettings_gio_dep.found()}, bool_yn: true, section: 'Misc dependencies')
+if not gsettings_gio_dep.found() and get_option('gsettings-pulse-schema').enabled()
error('`gsettings-pulse-schema` is enabled but `gio` was not found.')
endif
diff --git a/spa/meson.build b/spa/meson.build
index 67e4b5c506..cf25609dab 100644
--- a/spa/meson.build
+++ b/spa/meson.build
@@ -47,12 +47,12 @@ if get_option('spa-plugins').allowed()
summary({'ALSA': alsa_dep.found()}, bool_yn: true, section: 'Backend')
bluez_dep = dependency('bluez', version : '>= 4.101', required: get_option('bluez5'))
- gio_dep = dependency('gio-2.0', required : get_option('bluez5'))
- gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5'))
+ bluez_gio_dep = dependency('gio-2.0', required : get_option('bluez5'))
+ bluez_gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5'))
bluez_glib2_dep = dependency('glib-2.0', required : get_option('bluez5'))
sbc_dep = dependency('sbc', required: get_option('bluez5'))
summary({'SBC': sbc_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
- bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, gio_dep, gio_unix_dep ]
+ bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, bluez_gio_dep, bluez_gio_unix_dep ]
bluez_deps_found = get_option('bluez5').allowed()
foreach dep: bluez5_deps
if get_option('bluez5').enabled() and not dep.found()
diff --git a/src/modules/meson.build b/src/modules/meson.build
index ceaa7013d9..3f400f0877 100644
--- a/src/modules/meson.build
+++ b/src/modules/meson.build
@@ -433,11 +433,11 @@ if avahi_dep.found()
cdata.set('HAVE_AVAHI', true)
endif
-if gio_dep.found()
+if gsettings_gio_dep.found()
pipewire_module_protocol_pulse_sources += [
'module-protocol-pulse/modules/module-gsettings.c',
]
- pipewire_module_protocol_pulse_deps += gio_dep
+ pipewire_module_protocol_pulse_deps += gsettings_gio_dep
cdata.set('HAVE_GIO', true)
if get_option('gsettings-pulse-schema').enabled()
install_data(['module-protocol-pulse/modules/org.freedesktop.pulseaudio.gschema.xml'],
--
GitLab