Accepting request 1061214 from home:XRevan86
- Update to version 0.3.65. OBS-URL: https://build.opensuse.org/request/show/1061214 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=108
This commit is contained in:
parent
72fecb56d4
commit
48558664f7
@ -1,70 +0,0 @@
|
||||
From 32a7c85c84e419636109eb5db127292e25462a38 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Mon, 16 Jan 2023 16:05:17 +0100
|
||||
Subject: [PATCH] alsa: guard against some invalid values
|
||||
|
||||
Avoid division by 0 and other strange things when invalid values
|
||||
are detected.
|
||||
|
||||
Fixes #2953
|
||||
---
|
||||
spa/plugins/alsa/alsa-pcm.c | 22 ++++++++++++++++++++++
|
||||
1 file changed, 22 insertions(+)
|
||||
|
||||
diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c
|
||||
index 76fe433b8..08b9ceddd 100644
|
||||
--- a/spa/plugins/alsa/alsa-pcm.c
|
||||
+++ b/spa/plugins/alsa/alsa-pcm.c
|
||||
@@ -1519,6 +1519,11 @@ int spa_alsa_set_format(struct state *state, struct spa_audio_info *fmt, uint32_
|
||||
fmt->info.raw.rate = rrate;
|
||||
match = false;
|
||||
}
|
||||
+ if (rchannels == 0 || rrate == 0) {
|
||||
+ spa_log_error(state->log, "%s: invalid channels:%d or rate:%d",
|
||||
+ state->props.device, rchannels, rrate);
|
||||
+ return -EIO;
|
||||
+ }
|
||||
|
||||
state->format = rformat;
|
||||
state->channels = rchannels;
|
||||
@@ -1563,6 +1568,11 @@ int spa_alsa_set_format(struct state *state, struct spa_audio_info *fmt, uint32_
|
||||
|
||||
CHECK(snd_pcm_hw_params_set_period_size_near(hndl, params, &period_size, &dir), "set_period_size_near");
|
||||
|
||||
+ if (period_size == 0) {
|
||||
+ spa_log_error(state->log, "%s: invalid period_size 0 (driver error?)", state->props.device);
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+
|
||||
state->period_frames = period_size;
|
||||
|
||||
if (state->default_period_num != 0) {
|
||||
@@ -1578,6 +1588,10 @@ int spa_alsa_set_format(struct state *state, struct spa_audio_info *fmt, uint32_
|
||||
CHECK(snd_pcm_hw_params_set_buffer_size_near(hndl, params, &state->buffer_frames), "set_buffer_size_near");
|
||||
periods = state->buffer_frames / period_size;
|
||||
}
|
||||
+ if (state->buffer_frames == 0) {
|
||||
+ spa_log_error(state->log, "%s: invalid buffer_frames 0 (driver error?)", state->props.device);
|
||||
+ return -EIO;
|
||||
+ }
|
||||
|
||||
state->headroom = state->default_headroom;
|
||||
if (is_batch)
|
||||
@@ -2542,6 +2556,14 @@ int spa_alsa_start(struct state *state)
|
||||
state->duration = 1024;
|
||||
state->rate_denom = state->rate;
|
||||
}
|
||||
+ if (state->rate_denom == 0) {
|
||||
+ spa_log_error(state->log, "%s: unset rate_denom", state->props.device);
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+ if (state->duration == 0) {
|
||||
+ spa_log_error(state->log, "%s: unset duration", state->props.device);
|
||||
+ return -EIO;
|
||||
+ }
|
||||
|
||||
state->following = is_following(state);
|
||||
setup_matching(state);
|
||||
--
|
||||
GitLab
|
||||
|
@ -1,70 +0,0 @@
|
||||
From 65f3a9c481214ce015d20cee813dd9dac2de8dab Mon Sep 17 00:00:00 2001
|
||||
From: Sanchayan Maity <sanchayan@asymptotic.io>
|
||||
Date: Sat, 14 Jan 2023 15:14:29 +0530
|
||||
Subject: [PATCH] cpu-arm: Fix incorrect free
|
||||
|
||||
A bug was introduced with the refactoring in da26563. In arm_init,
|
||||
the buffer passed to spa_cpu_read_file is allocated and it is just
|
||||
going to return that. So cpuinfo will actually point to buffer on
|
||||
the stack, which need not be freed with a call to free.
|
||||
|
||||
The crash resulting with the incorrect free.
|
||||
|
||||
root@dragonboard-845c:~# pipewire --version
|
||||
munmap_chunk(): invalid pointer
|
||||
[ 185.037284] audit: type=1701 audit(1659949975.843:14): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2243 comm="pipewire" exe="/usr/bin/pipewire" sig=6 res=1
|
||||
Aborted
|
||||
root@dragonboard-845c:~# wireplumber --version
|
||||
munmap_chunk(): invalid pointer
|
||||
[ 193.453693] audit: type=1701 audit(1659949984.255:15): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2244 comm="wireplumber" exe="/usr/bin/wireplumber" sig=6 res=1
|
||||
Aborted
|
||||
|
||||
Backtrace from the crash
|
||||
|
||||
(gdb) bt
|
||||
!0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
|
||||
!1 0x0000fffff7d8edd8 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
|
||||
!2 0x0000fffff7d4a390 in __GI_raise (sig=sig@entry=6) at /usr/src/debug/glibc/2.36-r0/sysdeps/posix/raise.c:26
|
||||
!3 0x0000fffff7d37498 in __GI_abort () at abort.c:79
|
||||
!4 0x0000fffff7d83374 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0xfffff7e5fc20 "%s\n") at /usr/src/debug/glibc/2.36-r0/sysdeps/posix/libc_fatal.c:155
|
||||
!5 0x0000fffff7d988c0 in malloc_printerr (str=str@entry=0xfffff7e5a7f0 "munmap_chunk(): invalid pointer") at malloc.c:5660
|
||||
!6 0x0000fffff7d98aac in munmap_chunk (p=p@entry=0xffffffffd258) at malloc.c:3054
|
||||
!7 0x0000fffff7d9d068 in __GI___libc_free (mem=mem@entry=0xffffffffd268) at malloc.c:3375
|
||||
!8 0x0000fffff7cd36cc in arm_init (impl=impl@entry=0xaaaaaaac8c48) at /usr/src/debug/pipewire/1.0-r0/spa/plugins/support/cpu-arm.c:97
|
||||
!9 0x0000fffff7cd391c in impl_init (factory=<optimized out>, handle=0xaaaaaaac8c48, info=0xffffffffe548, support=<optimized out>, n_support=<optimized out>) at /usr/src/debug/pipewire/1.0-r0/spa/plugins/support/cpu.c:264
|
||||
!10 0x0000fffff7f3a234 in load_spa_handle (lib=<optimized out>, factory_name=factory_name@entry=0xfffff7f6d768 "support.cpu", info=info@entry=0xffffffffe548, n_support=1,
|
||||
support=support@entry=0xfffff7fb0488 <global_support+88>) at /usr/src/debug/pipewire/1.0-r0/src/pipewire/pipewire.c:280
|
||||
!11 0x0000fffff7f3a5b0 in add_interface (factory_name=factory_name@entry=0xfffff7f6d768 "support.cpu", type=type@entry=0xfffff7f62310 "Spa:Pointer:Interface:CPU", info=info@entry=0xffffffffe548,
|
||||
support=0xfffff7fb0430 <global_support>) at /usr/src/debug/pipewire/1.0-r0/src/pipewire/pipewire.c:358
|
||||
!12 0x0000fffff7f3b3f8 in pw_init (argc=argc@entry=0xffffffffea5c, argv=argv@entry=0xffffffffea50) at /usr/src/debug/pipewire/1.0-r0/src/pipewire/pipewire.c:661
|
||||
!13 0x0000aaaaaaaa1104 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/pipewire/1.0-r0/src/daemon/pipewire.c:79
|
||||
(gdb) f 8
|
||||
!8 0x0000fffff7cd36cc in arm_init (impl=impl@entry=0xaaaaaaac8c48) at /usr/src/debug/pipewire/1.0-r0/spa/plugins/support/cpu-arm.c:97
|
||||
97 /usr/src/debug/pipewire/1.0-r0/spa/plugins/support/cpu-arm.c: No such file or directory.
|
||||
(gdb) info locals
|
||||
flags = 122
|
||||
cpuinfo = 0xffffffffd268 "processor\t: 0\nBogoMIPS\t: 38.40\nFeatures\t: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop\nCPU implementer\t: 0x51\nCPU architecture: 8\nCPU variant\t.
|
||||
line = 0xaaaaaaac8ce0 "\310\252\252\252\n"
|
||||
buffer = "processor\t: 0\nBogoMIPS\t: 38.40\nFeatures\t: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop\nCPU implementer\t: 0x51\nCPU architecture: 8\nCPU variant\t: 0x7\nCPU pa"...
|
||||
arch = <optimized out>
|
||||
__func__ = "arm_init"
|
||||
---
|
||||
spa/plugins/support/cpu-arm.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/spa/plugins/support/cpu-arm.c b/spa/plugins/support/cpu-arm.c
|
||||
index cfc54272c..6cd68d813 100644
|
||||
--- a/spa/plugins/support/cpu-arm.c
|
||||
+++ b/spa/plugins/support/cpu-arm.c
|
||||
@@ -94,8 +94,6 @@ arm_init(struct impl *impl)
|
||||
free(line);
|
||||
}
|
||||
|
||||
- free(cpuinfo);
|
||||
-
|
||||
impl->flags = flags;
|
||||
|
||||
return 0;
|
||||
--
|
||||
GitLab
|
||||
|
25
0001-modules-also-install-module-combine-stream.patch
Normal file
25
0001-modules-also-install-module-combine-stream.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From fba7083f8ceb210c7c20aceafeb5c9a8767cf705 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Thu, 26 Jan 2023 11:57:45 +0100
|
||||
Subject: [PATCH] modules: also install module-combine-stream
|
||||
|
||||
---
|
||||
src/modules/meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/modules/meson.build b/src/modules/meson.build
|
||||
index 89e4233d9..1bfb03b4b 100644
|
||||
--- a/src/modules/meson.build
|
||||
+++ b/src/modules/meson.build
|
||||
@@ -139,7 +139,7 @@ pipewire_module_echo_cancel_sources = [
|
||||
pipewire_module_combine_stream = shared_library('pipewire-module-combine-stream',
|
||||
[ 'module-combine-stream.c' ],
|
||||
include_directories : [configinc],
|
||||
- install : false,
|
||||
+ install : true,
|
||||
install_dir : modules_install_dir,
|
||||
install_rpath: modules_install_dir,
|
||||
dependencies : [spa_dep, dl_lib, pipewire_dep],
|
||||
--
|
||||
2.39.1
|
||||
|
@ -1,75 +0,0 @@
|
||||
From 1d9640af5a7906620f214aa0a39c63128c8506a6 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Mon, 16 Jan 2023 18:28:31 +0100
|
||||
Subject: [PATCH] spa: Fix audioconvert overflow when scaling
|
||||
|
||||
Add SPA_SCALE32_UP that scales a uint32 without overflow.
|
||||
Use this for scaling the threshold in ALSA.
|
||||
Fix the scaling in audioconvert of the buffer size, the scaling was
|
||||
wrong and it was also causing an overflow resulting in choppy sound in
|
||||
some cases.
|
||||
|
||||
See #2680
|
||||
---
|
||||
spa/include/spa/utils/defs.h | 8 ++++++++
|
||||
spa/plugins/alsa/alsa-pcm.c | 4 ++--
|
||||
spa/plugins/audioconvert/audioconvert.c | 2 +-
|
||||
3 files changed, 11 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h
|
||||
index c602c9348..3b4862663 100644
|
||||
--- a/spa/include/spa/utils/defs.h
|
||||
+++ b/spa/include/spa/utils/defs.h
|
||||
@@ -274,6 +274,14 @@ struct spa_fraction {
|
||||
#define SPA_ROUND_DOWN_N(num,align) ((num) & ~SPA_ROUND_MASK(num, align))
|
||||
#define SPA_ROUND_UP_N(num,align) ((((num)-1) | SPA_ROUND_MASK(num, align))+1)
|
||||
|
||||
+#define SPA_SCALE32_UP(val,num,denom) \
|
||||
+({ \
|
||||
+ uint64_t _val = (val); \
|
||||
+ uint64_t _denom = (denom); \
|
||||
+ (uint32_t)(((_val) * (num) + (_denom)-1) / (_denom)); \
|
||||
+})
|
||||
+
|
||||
+
|
||||
#define SPA_PTR_ALIGNMENT(p,align) ((intptr_t)(p) & ((align)-1))
|
||||
#define SPA_IS_ALIGNED(p,align) (SPA_PTR_ALIGNMENT(p,align) == 0)
|
||||
#define SPA_PTR_ALIGN(p,align,type) ((type*)SPA_ROUND_UP_N((intptr_t)(p), (intptr_t)(align)))
|
||||
diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c
|
||||
index 08b9ceddd..012b46031 100644
|
||||
--- a/spa/plugins/alsa/alsa-pcm.c
|
||||
+++ b/spa/plugins/alsa/alsa-pcm.c
|
||||
@@ -1999,7 +1999,7 @@ static inline void check_position_config(struct state *state)
|
||||
(state->rate_denom != state->position->clock.rate.denom))) {
|
||||
state->duration = state->position->clock.duration;
|
||||
state->rate_denom = state->position->clock.rate.denom;
|
||||
- state->threshold = (state->duration * state->rate + state->rate_denom-1) / state->rate_denom;
|
||||
+ state->threshold = SPA_SCALE32_UP(state->duration, state->rate, state->rate_denom);
|
||||
state->max_error = SPA_MAX(256.0f, state->threshold / 2.0f);
|
||||
state->resample = ((uint32_t)state->rate != state->rate_denom) || state->matching;
|
||||
state->alsa_sync = true;
|
||||
@@ -2569,7 +2569,7 @@ int spa_alsa_start(struct state *state)
|
||||
setup_matching(state);
|
||||
|
||||
spa_dll_init(&state->dll);
|
||||
- state->threshold = (state->duration * state->rate + state->rate_denom-1) / state->rate_denom;
|
||||
+ state->threshold = SPA_SCALE32_UP(state->duration, state->rate, state->rate_denom);
|
||||
state->last_threshold = state->threshold;
|
||||
state->max_error = SPA_MAX(256.0f, state->threshold / 2.0f);
|
||||
|
||||
diff --git a/spa/plugins/audioconvert/audioconvert.c b/spa/plugins/audioconvert/audioconvert.c
|
||||
index 578f70ff9..783ab8174 100644
|
||||
--- a/spa/plugins/audioconvert/audioconvert.c
|
||||
+++ b/spa/plugins/audioconvert/audioconvert.c
|
||||
@@ -1755,7 +1755,7 @@ impl_node_port_enum_params(void *object, int seq,
|
||||
size = this->quantum_limit * 2;
|
||||
/* scale the buffer size when we can. */
|
||||
if (irate != 0 && orate != 0)
|
||||
- size = size * (irate + orate - 1) / orate;
|
||||
+ size = SPA_SCALE32_UP(size, irate, orate);
|
||||
}
|
||||
|
||||
param = spa_pod_builder_add_object(&b,
|
||||
--
|
||||
GitLab
|
||||
|
2
_service
2
_service
@ -3,7 +3,7 @@
|
||||
<service name="obs_scm" mode="disabled">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param>
|
||||
<param name="revision">refs/tags/0.3.64</param>
|
||||
<param name="revision">refs/tags/0.3.65</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<!--
|
||||
<param name="revision">master</param>
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:638a82e07cf7f3717593dff16ff36b49adc5ff68937a08b6ddcee1551bb3ea10
|
||||
size 11599885
|
3
pipewire-0.3.65.obscpio
Normal file
3
pipewire-0.3.65.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:480bb078e5ccb86c64a1463bd6c93e3c453d31802e73f7733eebec2781350ce4
|
||||
size 11936269
|
117
pipewire.changes
117
pipewire.changes
@ -1,3 +1,120 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 26 12:21:31 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||||
|
||||
- Update to version 0.3.65:
|
||||
* Highlights
|
||||
- Add back the deprecated symbols but make sure a deprecated
|
||||
warning is emitted for them. This fixes compilation issues in
|
||||
bindings.
|
||||
- Fix an error in the AVX code that could cause crackling in
|
||||
filter-chain when using the mixer.
|
||||
- The convolver in filter-chain can now select an IR from a
|
||||
list of IRs that best matches the current samplerate. Also
|
||||
resampling of the IR has been improved.
|
||||
- A new native module-combine-stream was added. You can use
|
||||
this to create a 5.1 device from 3 stereo soundcards, for
|
||||
example, or direct the output to multiple sinks at once.
|
||||
- Support for Bluetooth MIDI was added. This requires a
|
||||
wireplumber addition as well.
|
||||
- An ALSA plugin rule was added to tweak the buffer settings in
|
||||
Davinci Resolve so that it now runs with acceptable latency.
|
||||
- Support for compress offload was added using tinycompress.
|
||||
This allows compressed formats to be decoded in hardware
|
||||
using ALSA on some devices.
|
||||
- Many more buffixes and improvements.
|
||||
* PipeWire
|
||||
- Add back the deprecated symbols but make sure a deprecated
|
||||
warning is emitted for them.
|
||||
- Fix a regression when running older servers and newer clients
|
||||
(such as flatpaks on older server) where the server would run
|
||||
clients too soon, causing crashes.
|
||||
- Ensure that environment variables override any config values.
|
||||
* Tools
|
||||
- pw-cli has received some improvements in the output.
|
||||
- pw-cat can now use ffmpeg to demux streams for compress
|
||||
offload.
|
||||
* modules
|
||||
- The convolver IR volume is now preserved after resampling.
|
||||
- Adapter ports can now have a custom prefix.
|
||||
- module-rt now clamps the realtime priority to the user
|
||||
allowed one if it is within an acceptable range. Before it
|
||||
would fall back to RTKit immediately.
|
||||
- The module-echo-cancel can now have per stream channel
|
||||
layouts which makes it possible to link to specific audio
|
||||
ports on a device.
|
||||
- Fix an error in the AVX code that could cause crackling in
|
||||
filter-chain when using the mixer.
|
||||
- The convolver in filter-chain can now select an IR from a
|
||||
list of IRs that best matches the current sample-rate.
|
||||
- module-pipe-* now better matches the pulseaudio properties.
|
||||
- A new combine-stream module was added to combine multiple
|
||||
sinks into one sink. It is also possible to merge multiple
|
||||
sources into one.
|
||||
- module-rtp-source now has match rules to select what SAP
|
||||
sessions to stream from. There were also improvements to the
|
||||
buffering and latency handling.
|
||||
- module-rtp-sink now handles multicast loopback correctly.
|
||||
- module-rtp-sink implements min-ptime and max-ptime to control
|
||||
the send packet latency.
|
||||
* SPA
|
||||
- A new modifier flag was added to the video format parser
|
||||
helper to allow 0 (linear) as a valid modifier.
|
||||
- Params includes were reorganized to make it more scalable.
|
||||
Many compressed audio formats were added.
|
||||
- The alsa pcm plugin now handles invalid values from the
|
||||
driver gracefully.
|
||||
- Fix some potential stuttering cause by wrong scaling and
|
||||
overflow of the output buffers in audioconvert.
|
||||
- Debug output is now also sent to the log instead of stdout.
|
||||
- A debug context was added to debug macros to implement custom
|
||||
debug handling. This is used to redirect the debug of pods to
|
||||
the debug log instead of using some custom duplicated code.
|
||||
- Fix some warnings for potentially undefined shifts in format
|
||||
conversion.
|
||||
- Support for compress offload was added using tinycompress.
|
||||
This is mostly used on some embedded hardware where decoding
|
||||
of audio formats can be done in hardware.
|
||||
* Bluetooth
|
||||
- Some fixes for LE audio were added.
|
||||
- Support for Bluetooth MIDI was added. This requires a
|
||||
wireplumber addition as well.
|
||||
- Reply OK to empty commands.
|
||||
- Improve compatibility with some devices that send stray \n
|
||||
such as the Sennheiser HD 350BT.
|
||||
* pulse-server
|
||||
- Devices with unsupported formats (by the pulseaudio API) are
|
||||
now also listed in the pulseaudio API (with invalid formats).
|
||||
- The native module-combine-stream is used for
|
||||
module-combine-sink.
|
||||
* JACK
|
||||
- Make jack.merge-monitor default to true to better match the
|
||||
jack1/2 behaviour. Add an exception for mixxx, which is more
|
||||
usable with unmerged monitors.
|
||||
* ALSA
|
||||
- The property handling in the ALSA plugin was improved.
|
||||
alsa.properties and alsa.rules can now be added to the config
|
||||
file.
|
||||
- A rule was added to tweak the buffer settings in
|
||||
Davinci Resolve so that it can run with acceptable latency.
|
||||
- ALSA volume will now also use cubic volumes, like pulseaudio.
|
||||
- The ALSA ctl plugin now also uses the client-rt.conf file.
|
||||
- A new alsa.volume-method was added to configure cubic or
|
||||
linear volume.
|
||||
This can be set per application using the rules.
|
||||
* GStreamer
|
||||
- pipewiresrc will now advertise DMABUF support if the pipeline
|
||||
supports this.
|
||||
- pipewiresrc will now always be a live source unless told
|
||||
otherwise.
|
||||
- Drop reduce-meson-dependency.patch: openSUSE Leap 15.3 is
|
||||
no longer supported.
|
||||
- Add patch to install module-combine-stream:
|
||||
* 0001-modules-also-install-module-combine-stream.patch
|
||||
- Drop patches already included upstream:
|
||||
* 0001-cpu-arm-Fix-incorrect-free.patch
|
||||
* 0001-alsa-guard-against-some-invalid-values.patch
|
||||
* 0001-spa-Fix-audioconvert-overflow-when-scaling.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 17 08:28:49 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
name: pipewire
|
||||
version: 0.3.64
|
||||
mtime: 1673515864
|
||||
commit: bba452695eb673461c5cf626eec57728991eadf7
|
||||
version: 0.3.65
|
||||
mtime: 1674723303
|
||||
commit: 9558a5d5e0360d8af822431c76ee858a8c7495ac
|
||||
|
@ -54,7 +54,7 @@
|
||||
%bcond_with aptx
|
||||
|
||||
Name: pipewire
|
||||
Version: 0.3.64
|
||||
Version: 0.3.65
|
||||
Release: 0
|
||||
Summary: A Multimedia Framework designed to be an audio and video server and more
|
||||
License: MIT
|
||||
@ -62,15 +62,8 @@ Group: Development/Libraries/C and C++
|
||||
URL: https://pipewire.org/
|
||||
Source0: %{name}-%{version}.tar.xz
|
||||
Source99: baselibs.conf
|
||||
# PATCH-FIX-OPENSUSE reduce-meson-dependency.patch
|
||||
Patch0: reduce-meson-dependency.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-cpu-arm-Fix-incorrect-free.patch
|
||||
Patch1: 0001-cpu-arm-Fix-incorrect-free.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-alsa-guard-against-some-invalid-values.patch
|
||||
Patch2: 0001-alsa-guard-against-some-invalid-values.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-spa-Fix-audioconvert-overflow-when-scaling.patch
|
||||
Patch3: 0001-spa-Fix-audioconvert-overflow-when-scaling.patch
|
||||
|
||||
# PATCH-FIX-UPSTREAM 0001-modules-also-install-module-combine-stream.patch
|
||||
Patch0: 0001-modules-also-install-module-combine-stream.patch
|
||||
BuildRequires: docutils
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: fdupes
|
||||
@ -80,11 +73,7 @@ BuildRequires: gcc9
|
||||
BuildRequires: gcc9-c++
|
||||
%endif
|
||||
BuildRequires: graphviz
|
||||
%if 0%{?suse_version} <= 1500 && 0%{?sle_version} <= 150300
|
||||
BuildRequires: meson >= 0.54.0
|
||||
%else
|
||||
BuildRequires: meson >= 0.59.0
|
||||
%endif
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: systemd-rpm-macros
|
||||
@ -358,13 +347,7 @@ This package provides a PulseAudio implementation based on PipeWire
|
||||
%lang_package
|
||||
|
||||
%prep
|
||||
%autosetup -N
|
||||
%if 0%{?suse_version} <= 1500 && 0%{?sle_version} <= 150300
|
||||
%patch0 -p1
|
||||
%endif
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%if %{pkg_vcmp gcc < 8}
|
||||
|
@ -1,623 +0,0 @@
|
||||
Index: pipewire-0.3.63/doc/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/doc/meson.build
|
||||
+++ pipewire-0.3.63/doc/meson.build
|
||||
@@ -1,8 +1,8 @@
|
||||
doxyfile_conf = configuration_data()
|
||||
doxyfile_conf.set('PACKAGE_NAME', meson.project_name())
|
||||
doxyfile_conf.set('PACKAGE_VERSION', meson.project_version())
|
||||
-doxyfile_conf.set('top_srcdir', meson.project_source_root())
|
||||
-doxyfile_conf.set('top_builddir', meson.project_build_root())
|
||||
+doxyfile_conf.set('top_srcdir', meson.source_root())
|
||||
+doxyfile_conf.set('top_builddir', meson.build_root())
|
||||
|
||||
dot_found = find_program('dot', required: false).found()
|
||||
summary({'dot (used with doxygen)': dot_found}, bool_yn: true, section: 'Optional programs')
|
||||
@@ -48,35 +48,35 @@ extra_docs = [
|
||||
|
||||
inputs = []
|
||||
foreach extra : extra_docs
|
||||
- inputs += meson.project_source_root() / 'doc' / extra
|
||||
+ inputs += meson.source_root() / 'doc' / extra
|
||||
endforeach
|
||||
foreach h : pipewire_headers
|
||||
- inputs += meson.project_source_root() / 'src' / 'pipewire' / h
|
||||
+ inputs += meson.source_root() / 'src' / 'pipewire' / h
|
||||
endforeach
|
||||
foreach h : pipewire_ext_headers
|
||||
- inputs += meson.project_source_root() / 'src' / 'pipewire' / 'extensions' / h
|
||||
+ inputs += meson.source_root() / 'src' / 'pipewire' / 'extensions' / h
|
||||
endforeach
|
||||
foreach h : pipewire_ext_sm_headers
|
||||
- inputs += meson.project_source_root() / 'src' / 'pipewire' / 'extensions' / h
|
||||
+ inputs += meson.source_root() / 'src' / 'pipewire' / 'extensions' / h
|
||||
endforeach
|
||||
foreach h : pipewire_sources
|
||||
- inputs += meson.project_source_root() / 'src' / 'pipewire' / h
|
||||
+ inputs += meson.source_root() / 'src' / 'pipewire' / h
|
||||
endforeach
|
||||
foreach h : module_sources
|
||||
- inputs += meson.project_source_root() / 'src' / 'modules' / h
|
||||
+ inputs += meson.source_root() / 'src' / 'modules' / h
|
||||
endforeach
|
||||
-inputs += meson.project_source_root() / 'test' / 'pwtest.h'
|
||||
-input_dirs = [ meson.project_source_root() / 'spa' / 'include' / 'spa' ]
|
||||
+inputs += meson.source_root() / 'test' / 'pwtest.h'
|
||||
+input_dirs = [ meson.source_root() / 'spa' / 'include' / 'spa' ]
|
||||
|
||||
path_prefixes = [
|
||||
- meson.project_source_root() / 'src',
|
||||
- meson.project_source_root() / 'spa' / 'include',
|
||||
- meson.project_source_root(),
|
||||
+ meson.source_root() / 'src',
|
||||
+ meson.source_root() / 'spa' / 'include',
|
||||
+ meson.source_root(),
|
||||
]
|
||||
|
||||
cssfiles = [
|
||||
- meson.project_source_root() / 'doc' / 'doxygen-awesome.css',
|
||||
- meson.project_source_root() / 'doc' / 'custom.css'
|
||||
+ meson.source_root() / 'doc' / 'doxygen-awesome.css',
|
||||
+ meson.source_root() / 'doc' / 'custom.css'
|
||||
]
|
||||
|
||||
# Example files (in order from simple to esoteric)
|
||||
@@ -116,13 +116,25 @@ input_dirs += [ 'doc/examples.dox' ]
|
||||
|
||||
man_doxygen = []
|
||||
man_subpages = []
|
||||
+manpages = [
|
||||
+ 'pipewire.1.rst.in',
|
||||
+ 'pipewire-pulse.1.rst.in',
|
||||
+ 'pipewire.conf.5.rst.in',
|
||||
+ 'pw-cat.1.rst.in',
|
||||
+ 'pw-cli.1.rst.in',
|
||||
+ 'pw-dot.1.rst.in',
|
||||
+ 'pw-metadata.1.rst.in',
|
||||
+ 'pw-mididump.1.rst.in',
|
||||
+ 'pw-mon.1.rst.in',
|
||||
+ 'pw-profiler.1.rst.in',
|
||||
+]
|
||||
foreach m : manpages
|
||||
manconf = configuration_data()
|
||||
- pagename = 'page_man_' + m.split('.rst.in').get(0).replace('.', '_').replace('-', '_')
|
||||
+ pagename = 'page_man_' + m.split('.rst.in').get(0).underscorify()
|
||||
filename = m.split('.rst.in').get(0) + '.dox'
|
||||
manconf.set('pagename', pagename)
|
||||
- manconf.set('title', m.split('.rst.in').get(0).replace('.1','').replace('.5',''))
|
||||
- manconf.set('filename', meson.project_source_root() / 'man' / m)
|
||||
+ manconf.set('title', m.split('.rst.in').get(0).strip('.15'))
|
||||
+ manconf.set('filename', meson.source_root() / 'man' / m)
|
||||
manfile = configure_file(input: 'manpage.dox.in',
|
||||
output: filename,
|
||||
configuration: manconf)
|
||||
@@ -141,8 +153,8 @@ input_dirs += [ 'doc/pipewire-tools.dox'
|
||||
doxyfile_conf.set('inputs', ' '.join(inputs + input_dirs))
|
||||
doxyfile_conf.set('cssfiles', ' '.join(cssfiles))
|
||||
doxyfile_conf.set('path_prefixes', ' '.join(path_prefixes))
|
||||
-doxyfile_conf.set('c_input_filter', meson.project_source_root() / 'doc' / 'input-filter.sh')
|
||||
-doxyfile_conf.set('h_input_filter', meson.project_source_root() / 'doc' / 'input-filter-h.sh')
|
||||
+doxyfile_conf.set('c_input_filter', meson.source_root() / 'doc' / 'input-filter.sh')
|
||||
+doxyfile_conf.set('h_input_filter', meson.source_root() / 'doc' / 'input-filter-h.sh')
|
||||
|
||||
doxyfile = configure_file(input: 'Doxyfile.in',
|
||||
output: 'Doxyfile',
|
||||
Index: pipewire-0.3.63/man/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/man/meson.build
|
||||
+++ pipewire-0.3.63/man/meson.build
|
||||
@@ -21,7 +21,7 @@ manpages = [
|
||||
'pw-top.1.rst.in',
|
||||
]
|
||||
|
||||
-if get_option('pipewire-jack').allowed()
|
||||
+if not get_option('pipewire-jack').disabled()
|
||||
manpages += 'pw-jack.1.rst.in'
|
||||
endif
|
||||
|
||||
Index: pipewire-0.3.63/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/meson.build
|
||||
+++ pipewire-0.3.63/meson.build
|
||||
@@ -1,7 +1,7 @@
|
||||
project('pipewire', ['c' ],
|
||||
version : '0.3.64',
|
||||
license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ],
|
||||
- meson_version : '>= 0.59.0',
|
||||
+ meson_version : '>= 0.54.0',
|
||||
default_options : [ 'warning_level=3',
|
||||
'c_std=gnu11',
|
||||
'cpp_std=c++17',
|
||||
@@ -236,8 +236,8 @@ includes_inc = include_directories('incl
|
||||
pipewire_inc = include_directories('src')
|
||||
|
||||
makedata = configuration_data()
|
||||
-makedata.set('BUILD_ROOT', meson.project_build_root())
|
||||
-makedata.set('SOURCE_ROOT', meson.project_source_root())
|
||||
+makedata.set('BUILD_ROOT', meson.build_root())
|
||||
+makedata.set('SOURCE_ROOT', meson.source_root())
|
||||
makedata.set('VERSION', pipewire_version)
|
||||
if version_arr.length() == 4
|
||||
makedata.set('TAG', 'HEAD')
|
||||
@@ -337,7 +337,7 @@ endforeach
|
||||
gst_dp_found = gst_dep.length() > 0
|
||||
summary({'gstreamer-device-provider': gst_dp_found}, bool_yn: true, section: 'Backend')
|
||||
|
||||
-cdata.set('HAVE_GSTREAMER_DEVICE_PROVIDER', get_option('gstreamer-device-provider').allowed())
|
||||
+cdata.set('HAVE_GSTREAMER_DEVICE_PROVIDER', (not get_option('gstreamer-device-provider').disabled()))
|
||||
|
||||
webrtc_dep = dependency('webrtc-audio-processing',
|
||||
version : ['>= 0.2', '< 1.0'],
|
||||
@@ -400,10 +400,10 @@ endforeach
|
||||
|
||||
installed_tests_metadir = pipewire_datadir / 'installed-tests' / pipewire_name
|
||||
installed_tests_execdir = pipewire_libexecdir / 'installed-tests' / pipewire_name
|
||||
-installed_tests_enabled = get_option('installed_tests').allowed()
|
||||
+installed_tests_enabled = (not get_option('installed_tests').disabled())
|
||||
installed_tests_template = files('template.test.in')
|
||||
|
||||
-if get_option('tests').allowed()
|
||||
+if not get_option('tests').disabled()
|
||||
gstack = find_program('gstack', required : false)
|
||||
cdata.set('HAVE_GSTACK', gstack.found())
|
||||
endif
|
||||
@@ -412,17 +412,17 @@ subdir('po')
|
||||
subdir('spa')
|
||||
subdir('src')
|
||||
|
||||
-if get_option('tests').allowed()
|
||||
+if not get_option('tests').disabled()
|
||||
subdir('test')
|
||||
endif
|
||||
|
||||
configure_file(output : 'config.h',
|
||||
configuration : cdata)
|
||||
|
||||
-if get_option('pipewire-jack').allowed()
|
||||
+if not get_option('pipewire-jack').disabled()
|
||||
subdir('pipewire-jack')
|
||||
endif
|
||||
-if get_option('pipewire-v4l2').allowed()
|
||||
+if not get_option('pipewire-v4l2').disabled()
|
||||
subdir('pipewire-v4l2')
|
||||
endif
|
||||
|
||||
@@ -433,7 +433,7 @@ if alsa_dep.found()
|
||||
endif
|
||||
|
||||
generate_manpages = false
|
||||
-if get_option('man').allowed()
|
||||
+if not get_option('man').disabled()
|
||||
rst2man = find_program('rst2man', required: false)
|
||||
if not rst2man.found()
|
||||
rst2man = find_program('rst2man.py', required: get_option('man'))
|
||||
@@ -454,20 +454,20 @@ endif
|
||||
setenv = find_program('pw-uninstalled.sh')
|
||||
run_target('pw-uninstalled',
|
||||
command : [setenv,
|
||||
- '-b@0@'.format(meson.project_build_root()),
|
||||
+ '-b@0@'.format(meson.build_root()),
|
||||
'-v@0@'.format(pipewire_version)]
|
||||
)
|
||||
|
||||
devenv = environment()
|
||||
|
||||
-builddir = meson.project_build_root()
|
||||
-srcdir = meson.project_source_root()
|
||||
+builddir = meson.build_root()
|
||||
+srcdir = meson.source_root()
|
||||
|
||||
-devenv.set('PIPEWIRE_CONFIG_DIR', pipewire_dep.get_variable('confdatadir'))
|
||||
-devenv.set('PIPEWIRE_MODULE_DIR', pipewire_dep.get_variable('moduledir'))
|
||||
+devenv.set('PIPEWIRE_CONFIG_DIR', pipewire_dep.get_variable(internal: 'confdatadir'))
|
||||
+devenv.set('PIPEWIRE_MODULE_DIR', pipewire_dep.get_variable(internal: 'moduledir'))
|
||||
|
||||
-devenv.set('SPA_PLUGIN_DIR', spa_dep.get_variable('plugindir'))
|
||||
-devenv.set('SPA_DATA_DIR', spa_dep.get_variable('datadir'))
|
||||
+devenv.set('SPA_PLUGIN_DIR', spa_dep.get_variable(internal: 'plugindir'))
|
||||
+devenv.set('SPA_DATA_DIR', spa_dep.get_variable(internal: 'datadir'))
|
||||
|
||||
devenv.set('GST_PLUGIN_PATH', builddir / 'src'/ 'gst')
|
||||
|
||||
@@ -479,4 +479,6 @@ devenv.set('LD_LIBRARY_PATH', builddir /
|
||||
|
||||
devenv.set('PW_UNINSTALLED', '1')
|
||||
|
||||
-meson.add_devenv(devenv)
|
||||
+if meson.version().version_compare('>=0.58.0')
|
||||
+ meson.add_devenv(devenv)
|
||||
+endif
|
||||
Index: pipewire-0.3.63/spa/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/spa/meson.build
|
||||
+++ pipewire-0.3.63/spa/meson.build
|
||||
@@ -31,7 +31,7 @@ pkgconfig.generate(filebase : 'lib@0@'.f
|
||||
|
||||
subdir('include')
|
||||
|
||||
-if get_option('spa-plugins').allowed()
|
||||
+if not get_option('spa-plugins').disabled()
|
||||
udevrulesdir = get_option('udevrulesdir')
|
||||
if udevrulesdir == ''
|
||||
# absolute path, otherwise meson prepends the prefix
|
||||
@@ -66,7 +66,7 @@ if get_option('spa-plugins').allowed()
|
||||
summary({'Opus': opus_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
||||
lc3_dep = dependency('lc3', required : get_option('bluez5-codec-lc3'))
|
||||
summary({'LC3': lc3_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
||||
- if get_option('bluez5-backend-hsp-native').allowed() or get_option('bluez5-backend-hfp-native').allowed()
|
||||
+ if (not get_option('bluez5-backend-hsp-native').disabled()) or (not get_option('bluez5-backend-hfp-native').disabled())
|
||||
mm_dep = dependency('ModemManager', version : '>= 1.10.0', required : get_option('bluez5-backend-native-mm'))
|
||||
summary({'ModemManager': mm_dep.found()}, bool_yn: true, section: 'Bluetooth backends')
|
||||
endif
|
||||
@@ -90,6 +90,6 @@ endif
|
||||
|
||||
subdir('tools')
|
||||
subdir('tests')
|
||||
-if get_option('examples').allowed()
|
||||
+if not get_option('examples').disabled()
|
||||
subdir('examples')
|
||||
endif
|
||||
Index: pipewire-0.3.63/spa/plugins/audioconvert/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/spa/plugins/audioconvert/meson.build
|
||||
+++ pipewire-0.3.63/spa/plugins/audioconvert/meson.build
|
||||
@@ -148,7 +148,7 @@ foreach a : test_apps
|
||||
install : installed_tests_enabled,
|
||||
install_dir : installed_tests_execdir / 'audioconvert'),
|
||||
env : [
|
||||
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
|
||||
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
|
||||
])
|
||||
|
||||
if installed_tests_enabled
|
||||
@@ -178,7 +178,7 @@ foreach a : benchmark_apps
|
||||
install : installed_tests_enabled,
|
||||
install_dir : installed_tests_execdir / 'audioconvert'),
|
||||
env : [
|
||||
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
|
||||
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
|
||||
])
|
||||
|
||||
if installed_tests_enabled
|
||||
Index: pipewire-0.3.63/spa/plugins/audiomixer/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/spa/plugins/audiomixer/meson.build
|
||||
+++ pipewire-0.3.63/spa/plugins/audiomixer/meson.build
|
||||
@@ -81,7 +81,7 @@ foreach a : test_apps
|
||||
install : installed_tests_enabled,
|
||||
install_dir : installed_tests_execdir / 'audiomixer'),
|
||||
env : [
|
||||
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
|
||||
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
|
||||
])
|
||||
|
||||
if installed_tests_enabled
|
||||
@@ -110,7 +110,7 @@ foreach a : benchmark_apps
|
||||
install : installed_tests_enabled,
|
||||
install_dir : installed_tests_execdir / 'audiomixer'),
|
||||
env : [
|
||||
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
|
||||
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
|
||||
])
|
||||
|
||||
if installed_tests_enabled
|
||||
Index: pipewire-0.3.63/spa/plugins/bluez5/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/spa/plugins/bluez5/meson.build
|
||||
+++ pipewire-0.3.63/spa/plugins/bluez5/meson.build
|
||||
@@ -6,13 +6,13 @@ foreach dep: bluez5_deps
|
||||
endforeach
|
||||
|
||||
cdata.set('HAVE_BLUEZ_5_BACKEND_NATIVE',
|
||||
- get_option('bluez5-backend-hsp-native').allowed() or
|
||||
- get_option('bluez5-backend-hfp-native').allowed())
|
||||
-cdata.set('HAVE_BLUEZ_5_BACKEND_HSP_NATIVE', get_option('bluez5-backend-hsp-native').allowed())
|
||||
-cdata.set('HAVE_BLUEZ_5_BACKEND_HFP_NATIVE', get_option('bluez5-backend-hfp-native').allowed())
|
||||
-cdata.set('HAVE_BLUEZ_5_BACKEND_NATIVE_MM', get_option('bluez5-backend-native-mm').allowed())
|
||||
-cdata.set('HAVE_BLUEZ_5_BACKEND_OFONO', get_option('bluez5-backend-ofono').allowed())
|
||||
-cdata.set('HAVE_BLUEZ_5_BACKEND_HSPHFPD', get_option('bluez5-backend-hsphfpd').allowed())
|
||||
+ (not get_option('bluez5-backend-hsp-native').disabled()) or
|
||||
+ (not get_option('bluez5-backend-hfp-native').disabled()))
|
||||
+cdata.set('HAVE_BLUEZ_5_BACKEND_HSP_NATIVE', (not get_option('bluez5-backend-hsp-native').disabled()))
|
||||
+cdata.set('HAVE_BLUEZ_5_BACKEND_HFP_NATIVE', (not get_option('bluez5-backend-hfp-native').disabled()))
|
||||
+cdata.set('HAVE_BLUEZ_5_BACKEND_NATIVE_MM', (not get_option('bluez5-backend-native-mm').disabled()))
|
||||
+cdata.set('HAVE_BLUEZ_5_BACKEND_OFONO', (not get_option('bluez5-backend-ofono').disabled()))
|
||||
+cdata.set('HAVE_BLUEZ_5_BACKEND_HSPHFPD', (not get_option('bluez5-backend-hsphfpd').disabled()))
|
||||
cdata.set('HAVE_BLUEZ_5_HCI', dependency('bluez', version: '< 6', required: false).found())
|
||||
|
||||
bluez5_sources = [
|
||||
@@ -35,7 +35,7 @@ bluez5_data = ['bluez-hardware.conf']
|
||||
|
||||
install_data(bluez5_data, install_dir : spa_datadir / 'bluez5')
|
||||
|
||||
-if get_option('bluez5-backend-hsp-native').allowed() or get_option('bluez5-backend-hfp-native').allowed()
|
||||
+if (not get_option('bluez5-backend-hsp-native').disabled()) or (not get_option('bluez5-backend-hfp-native').disabled())
|
||||
if libusb_dep.found()
|
||||
bluez5_deps += libusb_dep
|
||||
endif
|
||||
@@ -46,11 +46,11 @@ if get_option('bluez5-backend-hsp-native
|
||||
bluez5_sources += ['backend-native.c', 'upower.c']
|
||||
endif
|
||||
|
||||
-if get_option('bluez5-backend-ofono').allowed()
|
||||
+if not get_option('bluez5-backend-ofono').disabled()
|
||||
bluez5_sources += ['backend-ofono.c']
|
||||
endif
|
||||
|
||||
-if get_option('bluez5-backend-hsphfpd').allowed()
|
||||
+if not get_option('bluez5-backend-hsphfpd').disabled()
|
||||
bluez5_sources += ['backend-hsphfpd.c']
|
||||
endif
|
||||
|
||||
@@ -115,7 +115,7 @@ if ldac_dep.found()
|
||||
install_dir : spa_plugindir / 'bluez5')
|
||||
endif
|
||||
|
||||
-if get_option('bluez5-codec-lc3plus').allowed() and lc3plus_dep.found()
|
||||
+if (not get_option('bluez5-codec-lc3plus').disabled()) and lc3plus_dep.found()
|
||||
bluez_codec_lc3plus = shared_library('spa-codec-bluez5-lc3plus',
|
||||
[ 'a2dp-codec-lc3plus.c', 'media-codecs.c' ],
|
||||
include_directories : [ configinc ],
|
||||
@@ -125,7 +125,7 @@ if get_option('bluez5-codec-lc3plus').al
|
||||
install_dir : spa_plugindir / 'bluez5')
|
||||
endif
|
||||
|
||||
-if get_option('bluez5-codec-opus').allowed() and opus_dep.found()
|
||||
+if (not get_option('bluez5-codec-opus').disabled()) and opus_dep.found()
|
||||
opus_args = codec_args
|
||||
opus_dep = [ opus_dep ]
|
||||
bluez_codec_opus = shared_library('spa-codec-bluez5-opus',
|
||||
@@ -137,7 +137,7 @@ if get_option('bluez5-codec-opus').allow
|
||||
install_dir : spa_plugindir / 'bluez5')
|
||||
endif
|
||||
|
||||
-if get_option('bluez5-codec-lc3').allowed() and lc3_dep.found()
|
||||
+if (not get_option('bluez5-codec-lc3').disabled()) and lc3_dep.found()
|
||||
bluez_codec_lc3 = shared_library('spa-codec-bluez5-lc3',
|
||||
[ 'bap-codec-lc3.c', 'media-codecs.c' ],
|
||||
include_directories : [ configinc ],
|
||||
Index: pipewire-0.3.63/spa/plugins/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/spa/plugins/meson.build
|
||||
+++ pipewire-0.3.63/spa/plugins/meson.build
|
||||
@@ -1,19 +1,22 @@
|
||||
if alsa_dep.found()
|
||||
subdir('alsa')
|
||||
endif
|
||||
-if get_option('avb').require(host_machine.system() == 'linux', error_message: 'AVB support is only available on Linux').allowed()
|
||||
+if not get_option('avb').disabled()
|
||||
+ if (host_machine.system() != 'linux')
|
||||
+ error('AVB support is only available on Linux')
|
||||
+ endif
|
||||
subdir('avb')
|
||||
endif
|
||||
-if get_option('audioconvert').allowed()
|
||||
+if not get_option('audioconvert').disabled()
|
||||
subdir('audioconvert')
|
||||
endif
|
||||
-if get_option('audiomixer').allowed()
|
||||
+if not get_option('audiomixer').disabled()
|
||||
subdir('audiomixer')
|
||||
endif
|
||||
-if get_option('control').allowed()
|
||||
+if not get_option('control').disabled()
|
||||
subdir('control')
|
||||
endif
|
||||
-if get_option('audiotestsrc').allowed()
|
||||
+if not get_option('audiotestsrc').disabled()
|
||||
subdir('audiotestsrc')
|
||||
endif
|
||||
if bluez_dep.found()
|
||||
@@ -25,19 +28,19 @@ endif
|
||||
if jack_dep.found()
|
||||
subdir('jack')
|
||||
endif
|
||||
-if get_option('support').allowed()
|
||||
+if not get_option('support').disabled()
|
||||
subdir('support')
|
||||
endif
|
||||
-if get_option('test').allowed()
|
||||
+if not get_option('test').disabled()
|
||||
subdir('test')
|
||||
endif
|
||||
-if get_option('videoconvert').allowed()
|
||||
+if not get_option('videoconvert').disabled()
|
||||
subdir('videoconvert')
|
||||
endif
|
||||
-if get_option('videotestsrc').allowed()
|
||||
+if not get_option('videotestsrc').disabled()
|
||||
subdir('videotestsrc')
|
||||
endif
|
||||
-if get_option('volume').allowed()
|
||||
+if not get_option('volume').disabled()
|
||||
subdir('volume')
|
||||
endif
|
||||
if vulkan_headers
|
||||
Index: pipewire-0.3.63/spa/plugins/support/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/spa/plugins/support/meson.build
|
||||
+++ pipewire-0.3.63/spa/plugins/support/meson.build
|
||||
@@ -23,7 +23,7 @@ spa_support_lib = shared_library('spa-su
|
||||
install_dir : spa_plugindir / 'support')
|
||||
spa_support_dep = declare_dependency(link_with: spa_support_lib)
|
||||
|
||||
-if get_option('evl').allowed()
|
||||
+if not get_option('evl').disabled()
|
||||
evl_inc = include_directories('/usr/evl/include')
|
||||
evl_lib = cc.find_library('evl',
|
||||
dirs: ['/usr/evl/lib/'],
|
||||
Index: pipewire-0.3.63/spa/tests/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/spa/tests/meson.build
|
||||
+++ pipewire-0.3.63/spa/tests/meson.build
|
||||
@@ -5,7 +5,7 @@ find = find_program('find', required: fa
|
||||
summary({'find (for header testing)': find.found()}, bool_yn: true, section: 'Optional programs')
|
||||
if find.found()
|
||||
spa_headers = run_command(find,
|
||||
- meson.project_source_root() / 'spa' / 'include',
|
||||
+ meson.source_root() / 'spa' / 'include',
|
||||
'-name', '*.h',
|
||||
'-not', '-name', 'type-info.h',
|
||||
'-type', 'f',
|
||||
@@ -41,7 +41,7 @@ foreach a : benchmark_apps
|
||||
install_dir : installed_tests_execdir,
|
||||
),
|
||||
env : [
|
||||
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
|
||||
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
|
||||
]
|
||||
)
|
||||
|
||||
Index: pipewire-0.3.63/src/daemon/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/src/daemon/meson.build
|
||||
+++ pipewire-0.3.63/src/daemon/meson.build
|
||||
@@ -18,9 +18,9 @@ conf_config.set('pulse_comment', '#')
|
||||
|
||||
conf_config_uninstalled = conf_config
|
||||
conf_config_uninstalled.set('pipewire_path',
|
||||
- meson.project_build_root() / 'src' / 'daemon' / 'pipewire')
|
||||
+ meson.build_root() / 'src' / 'daemon' / 'pipewire')
|
||||
conf_config_uninstalled.set('pipewire_pulse_path',
|
||||
- meson.project_build_root() / 'src' / 'daemon' / 'pipewire-pulse')
|
||||
+ meson.build_root() / 'src' / 'daemon' / 'pipewire-pulse')
|
||||
conf_config_uninstalled.set('pulse_comment', '')
|
||||
|
||||
build_ms = 'media-session' in get_option('session-managers')
|
||||
@@ -116,7 +116,7 @@ custom_target('pipewire-uninstalled',
|
||||
install: false,
|
||||
input: pipewire_exec,
|
||||
output: 'pipewire-uninstalled',
|
||||
- command: [ln, '-fs', meson.project_build_root() + '/@INPUT@', '@OUTPUT@'],
|
||||
+ command: [ln, '-fs', meson.build_root() + '/@INPUT@', '@OUTPUT@'],
|
||||
)
|
||||
|
||||
#desktop_file = i18n.merge_file(
|
||||
Index: pipewire-0.3.63/src/daemon/systemd/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/src/daemon/systemd/meson.build
|
||||
+++ pipewire-0.3.63/src/daemon/systemd/meson.build
|
||||
@@ -1,6 +1,6 @@
|
||||
-if get_option('systemd-system-service').allowed()
|
||||
+if not get_option('systemd-system-service').disabled()
|
||||
subdir('system')
|
||||
endif
|
||||
-if get_option('systemd-user-service').allowed()
|
||||
+if not get_option('systemd-user-service').disabled()
|
||||
subdir('user')
|
||||
endif
|
||||
Index: pipewire-0.3.63/src/daemon/systemd/user/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/src/daemon/systemd/user/meson.build
|
||||
+++ pipewire-0.3.63/src/daemon/systemd/user/meson.build
|
||||
@@ -1,4 +1,4 @@
|
||||
-systemd_user_services_dir = systemd.get_variable('systemduserunitdir', pkgconfig_define : [ 'prefix', prefix])
|
||||
+#systemd_user_services_dir = systemd.get_variable('systemduserunitdir', pkgconfig_define : [ 'prefix', prefix])
|
||||
if get_option('systemd-user-unit-dir') != ''
|
||||
systemd_user_services_dir = get_option('systemd-user-unit-dir')
|
||||
endif
|
||||
Index: pipewire-0.3.63/src/gst/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/src/gst/meson.build
|
||||
+++ pipewire-0.3.63/src/gst/meson.build
|
||||
@@ -8,7 +8,7 @@ pipewire_gst_sources = [
|
||||
'gstpipewiresrc.c',
|
||||
]
|
||||
|
||||
-if get_option('gstreamer-device-provider').allowed()
|
||||
+if not get_option('gstreamer-device-provider').disabled()
|
||||
pipewire_gst_sources += [ 'gstpipewiredeviceprovider.c' ]
|
||||
endif
|
||||
|
||||
Index: pipewire-0.3.63/src/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/src/meson.build
|
||||
+++ pipewire-0.3.63/src/meson.build
|
||||
@@ -3,10 +3,10 @@ subdir('pipewire')
|
||||
subdir('daemon')
|
||||
subdir('tools')
|
||||
subdir('modules')
|
||||
-if get_option('examples').allowed()
|
||||
+if not get_option('examples').disabled()
|
||||
subdir('examples')
|
||||
endif
|
||||
-if get_option('tests').allowed()
|
||||
+if not get_option('tests').disabled()
|
||||
subdir('tests')
|
||||
endif
|
||||
|
||||
Index: pipewire-0.3.63/src/modules/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/src/modules/meson.build
|
||||
+++ pipewire-0.3.63/src/modules/meson.build
|
||||
@@ -402,9 +402,9 @@ test('pw-test-protocol-native',
|
||||
install_dir : installed_tests_execdir,
|
||||
),
|
||||
env : [
|
||||
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
|
||||
- 'PIPEWIRE_CONFIG_DIR=@0@'.format(pipewire_dep.get_variable('confdatadir')),
|
||||
- 'PIPEWIRE_MODULE_DIR=@0@'.format(pipewire_dep.get_variable('moduledir')),
|
||||
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
|
||||
+ 'PIPEWIRE_CONFIG_DIR=@0@'.format(pipewire_dep.get_variable(internal: 'confdatadir')),
|
||||
+ 'PIPEWIRE_MODULE_DIR=@0@'.format(pipewire_dep.get_variable(internal: 'moduledir')),
|
||||
]
|
||||
)
|
||||
|
||||
@@ -561,8 +561,11 @@ pipewire_module_fallback_sink = shared_l
|
||||
dependencies : [mathlib, dl_lib, rt_lib, pipewire_dep],
|
||||
)
|
||||
|
||||
-build_module_avb = get_option('avb').require(host_machine.system() == 'linux', error_message: 'AVB support is only available on Linux').allowed()
|
||||
+build_module_avb = (not get_option('avb').disabled())
|
||||
if build_module_avb
|
||||
+if (host_machine.system() != 'linux')
|
||||
+ error('AVB support is only available on Linux')
|
||||
+endif
|
||||
pipewire_module_avb = shared_library('pipewire-module-avb',
|
||||
[ 'module-avb.c',
|
||||
'module-avb/avb.c',
|
||||
Index: pipewire-0.3.63/src/tests/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/src/tests/meson.build
|
||||
+++ pipewire-0.3.63/src/tests/meson.build
|
||||
@@ -14,9 +14,9 @@ foreach a : test_apps
|
||||
install : installed_tests_enabled,
|
||||
install_dir : installed_tests_execdir),
|
||||
env : [
|
||||
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
|
||||
- 'PIPEWIRE_CONFIG_DIR=@0@'.format(pipewire_dep.get_variable('confdatadir')),
|
||||
- 'PIPEWIRE_MODULE_DIR=@0@'.format(pipewire_dep.get_variable('moduledir')),
|
||||
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
|
||||
+ 'PIPEWIRE_CONFIG_DIR=@0@'.format(pipewire_dep.get_variable(internal: 'confdatadir')),
|
||||
+ 'PIPEWIRE_MODULE_DIR=@0@'.format(pipewire_dep.get_variable(internal: 'moduledir')),
|
||||
])
|
||||
|
||||
if installed_tests_enabled
|
||||
Index: pipewire-0.3.63/src/tools/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/src/tools/meson.build
|
||||
+++ pipewire-0.3.63/src/tools/meson.build
|
||||
@@ -32,7 +32,7 @@ if ncurses_dep.found()
|
||||
endif
|
||||
|
||||
build_pw_cat = false
|
||||
-if get_option('pw-cat').allowed() and sndfile_dep.found()
|
||||
+if (not get_option('pw-cat').disabled()) and sndfile_dep.found()
|
||||
build_pw_cat = true
|
||||
|
||||
pwcat_sources = [
|
||||
Index: pipewire-0.3.63/test/meson.build
|
||||
===================================================================
|
||||
--- pipewire-0.3.63.orig/test/meson.build
|
||||
+++ pipewire-0.3.63/test/meson.build
|
||||
@@ -14,8 +14,8 @@ pwtest_deps = [
|
||||
]
|
||||
|
||||
pwtest_c_args = [
|
||||
- '-DBUILD_ROOT="@0@"'.format(meson.project_build_root()),
|
||||
- '-DSOURCE_ROOT="@0@"'.format(meson.project_source_root()),
|
||||
+ '-DBUILD_ROOT="@0@"'.format(meson.build_root()),
|
||||
+ '-DSOURCE_ROOT="@0@"'.format(meson.source_root()),
|
||||
]
|
||||
|
||||
pwtest_inc = [
|
Loading…
x
Reference in New Issue
Block a user