Hello community, here is the log from the commit of package pipewire for openSUSE:Leap:15.2 checked in at 2020-05-26 18:32:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/pipewire (Old) and /work/SRC/openSUSE:Leap:15.2/.pipewire.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pipewire" Tue May 26 18:32:45 2020 rev:5 rq:808430 version:0.3.5 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/pipewire/pipewire.changes 2020-03-31 07:22:06.554391238 +0200 +++ /work/SRC/openSUSE:Leap:15.2/.pipewire.new.2738/pipewire.changes 2020-05-26 18:32:56.337649003 +0200 @@ -2 +2 @@ -Mon Mar 23 09:23:05 UTC 2020 - Antonio Larrosa <[email protected]> +Thu May 21 08:50:18 UTC 2020 - Antonio Larrosa <[email protected]> @@ -4,10 +4,139 @@ -- Repackage sources to remove a file with invalid license - (spa/plugins/vulkan/shaders/mandelbrot-distance.comp) . The file - has already been replaced by upstream with a valid licensed file - so the patch from upstream was added too: - * 0001-Add-MIT-licensed-compute-example.patch -- The patch above adds a binary file, but binary diffs are not - supported, so the source file is also added directly: - * main.spv -- Do not build/package man pages in SLE since xmltoman is not - available. +- Filter out libpulse.so.0 and libjack.so.0 automatic provides so + this is not considered an alternative when resolving dependencies + in the distribution. + +------------------------------------------------------------------- +Thu May 21 07:51:29 UTC 2020 - Antonio Larrosa <[email protected]> + +- Add patch to fix build in SLE/Leap where alsa doesn't have a + snd_pcm_ioplug_hw_avail function: + * do-not-use-snd_pcm_ioplug_hw_avail.patch + +------------------------------------------------------------------- +Tue May 19 07:54:52 UTC 2020 - Antonio Larrosa <[email protected]> + +- Update to version 0.3.5: + * Compiler fixes + * Add pw-midiplay and pw-midirecord aliases + * Add pw-mididump tool + * Add pw-metadata tool to inspect, add and remove metadata + for objects. + * Docs updates, man pages + * install alsa config files + * Fix linked sink/source in pulseaudio + * ratelimit graph processing warnings + * improve buffer handling in GStreamer elements + * Fix power usage by removing the queue for the alsa + sequencer system announce messages. + * Fix metadata clear() method dispatch. + * Improve parameter enumeration, make it possible to detect + missing parameters vs no-compatible parameters so that we + can use defaults in the first case and error in the second + case. + * Fix cleanup of proxy objects. Stability improvements on + plug/unplug in session manager. + * Make it possible to set log level from config file + * improve debug of param negotiation errors. Log the + parameters to stderr/journal. + * Make it possible to configure global logger + implementation. + * Fix NEON detection + * JACK and PulseAudio compatibility improvements + +- Update to version 0.3.4: + * A quick update with some important stability fixes. + +- Update to version 0.3.3: + * NEON optimizations for audio conversion (32 and 64 bits) + * rework of session manager implementation + * Add option to disable modules in the session manager + * Release midi hardware devices when suspended + * various build fixes + * Clean up options of various utils + * Stability improvements + * Mayor improvements in pulseaudio emulation. Improved + timings and compatibility. + * Implementation of drain and flush in pulse and alsa + emulation. + * Implement poll on file descriptors. + * Improvement of metadata for jack emulation. + * Fix memory and thread problems in jack emulation. + * Simplification of state changes. Should make more use + cases work in the jack emulation. + * Improvements in the gstreamer elements. Removal of + extra internal queue. pipewiresink can now be used to + play audio. + * Add pw-jack and pw-pulse scripts to run pulseaudio and + jack applications with the right library path. + +- Replace libpulse* replacement packages with a single + pipewire-libpulse-0_3 package that includes all libraries + installed in the non-standard directory + %{_libdir}/pipewire-0.3/pulse and a new pw-pulse wrapper script. + Likewise for the jack replacement libraries in a new + pipewire-libjack-0_3 package. + +- Use update-alternatives for the wrapper scripts. + +------------------------------------------------------------------- +Wed Apr 1 07:35:48 UTC 2020 - Antonio Larrosa <[email protected]> + +- Use the License rpm tag to specify that although most of + pipewire is licensed under MIT, the pulseaudio replacement + library is licensed under LGPL-2.1+. + +------------------------------------------------------------------- +Tue Mar 31 15:11:45 UTC 2020 - Antonio Larrosa <[email protected]> + +- Use gcc9 to build in SLE-15 / Leap 15, since at least gcc8 is + needed now. + +------------------------------------------------------------------- +Tue Mar 31 10:48:28 UTC 2020 - Antonio Larrosa <[email protected]> + +- Update to version 0.3.2: + + build fixes + + Added support for data type negotiation. This makes it + possible for a client to say that it can handle DMABuf + and MemFd and then let the server select a compatible + format. + + Handle errors when enumerating parameters better. + + Add support for rate, format, channels and period_bytes + to the alsa config file to restrict what alsa apps can + negotiate. + + Fix JACK midi output. + + Optimizations in common audio format conversions using + AVX2. Small optimizations to plugins. + + Change the vulkan compute example to an MIT licensed + shader. + + Remove some hardcoded defaults in the audio and video + processing and use the values from the processing + context. This also fixes the vulkan example. + + Correct the documentation and defaults in the daemon + config file. + + Fix alsa and v4l2 buffer recycle. A paused client could + cause the server to leak all buffers. + + Remove some warnings that should be ignored. + + Fix a crash in the bluez5 plugins. + + Try to select higher quality formats first when + negotiating a format with an audio device. + + Fix an infinite loop in udev detection in some cases. + + Add non-interactive mode to pw-cli. You can now just + do "pw-cli ls Port" to get a listing of all ports. + pw-cli will now also connect to the default server by + default and has options to select a different server. + + Allow the server to go up to the maximum quantum (8192 + samples or ~=180ms) if a client explicitly wants this. + + +------------------------------------------------------------------- +Mon Mar 23 13:56:45 UTC 2020 - Bjørn Lie <[email protected]> + +- Update to version 0.3.1+48: + + Fix 32bit build. + +------------------------------------------------------------------- +Wed Mar 18 16:33:21 UTC 2020 - Bjørn Lie <[email protected]> + +- Switch to source service, update to explicit head, file with + non-compliant license replaced. Old: ---- 0001-Add-MIT-licensed-compute-example.patch main.spv pipewire-0.3.1.tar.gz New: ---- _service do-not-use-snd_pcm_ioplug_hw_avail.patch pipewire-0.3.5.obscpio pipewire-rpmlintrc pipewire.obsinfo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pipewire.spec ++++++ --- /var/tmp/diff_new_pack.URD75X/_old 2020-05-26 18:32:56.789649990 +0200 +++ /var/tmp/diff_new_pack.URD75X/_new 2020-05-26 18:32:56.793649999 +0200 @@ -17,36 +17,40 @@ # -%define libpipewire libpipewire-0_3-0 -%define sover 0_3_1 +%define _use_internal_dependency_generator 0 + +%global provfind sh -c "grep -v -e 'libpulse.*\\.so' -e 'libjack.*\\.so' | %__find_provides" +%global __find_provides %provfind + +%define sover 0_3_5 %define apiver 0.3 +%define apiver_str 0_3 %define spa_ver 0.2 %define spa_ver_str 0_2 +%define libpipewire libpipewire-%{apiver_str}-0 + Name: pipewire -Version: 0.3.1 +Version: 0.3.5 Release: 0 Summary: A Multimedia Framework designed to be an audio and video server and more License: MIT Group: Development/Libraries/C and C++ URL: https://pipewire.org/ -#Source0: https://github.com/PipeWire/pipewire/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz -# The source file was repackaged to remove a file with invalid license (see Source1 and Patch1) -Source0: %{name}-%{version}.tar.gz -# Binary file that can't be added from Patch1 -Source1: https://github.com/PipeWire/pipewire/raw/master/spa/plugins/vulkan/shaders/main.spv +Source0: %{name}-%{version}.tar.xz +Source1: %{name}-rpmlintrc Patch0: fix-memfd_create-call.patch -# PATCH-FIX-UPSTREAM Replacement file with correct license -Patch1: 0001-Add-MIT-licensed-compute-example.patch +Patch1: do-not-use-snd_pcm_ioplug_hw_avail.patch BuildRequires: doxygen BuildRequires: fdupes +%if 0%{?suse_version} <= 1500 +BuildRequires: gcc9 +%endif BuildRequires: graphviz BuildRequires: meson BuildRequires: pkgconfig -%if 0%{?is_opensuse} BuildRequires: xmltoman -%endif BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(bluez) BuildRequires: pkgconfig(dbus-1) @@ -93,6 +97,7 @@ %package -n %{libpipewire} Summary: A Multimedia Framework designed to be an audio and video server and more +License: MIT Group: System/Libraries %description -n %{libpipewire} @@ -108,11 +113,14 @@ This package provides the PipeWire shared library. -%package -n libjack-pw%{sover} -Summary: A Multimedia Framework designed to be an audio and video server and more +%package libjack-%{apiver_str} +Summary: PipeWire libjack replacement libraries +License: MIT Group: Development/Libraries/C and C++ +Requires(post): update-alternatives +Requires(postun): update-alternatives -%description -n libjack-pw%{sover} +%description libjack-%{apiver_str} PipeWire is a server and user space API to deal with multimedia pipelines. Some of its features include: @@ -123,48 +131,17 @@ * GStreamer plugins for easy use and integration in current applications; * Sandboxed applications support. -This package provides the PipeWire shared library. - - -%package -n libpulse-mainloop-glib-pw%{sover} -Summary: A Multimedia Framework designed to be an audio and video server and more -Group: Development/Libraries/C and C++ - -%description -n libpulse-mainloop-glib-pw%{sover} -PipeWire is a server and user space API to deal with multimedia pipelines. - -Some of its features include: +This package provides the PipeWire replacement libraries for libjack. - * Capture and playback of audio and video with minimal latency; - * Real-time Multimedia processing on audio and video; - * Multiprocess architecture to let applications share multimedia content; - * GStreamer plugins for easy use and integration in current applications; - * Sandboxed applications support. -This package provides the PipeWire shared library. - -%package -n libpulse-pw%{sover} +%package libpulse-%{apiver_str} Summary: A Multimedia Framework designed to be an audio and video server and more +License: LGPL-2.1-or-later Group: Development/Libraries/C and C++ +Requires(post): update-alternatives +Requires(postun): update-alternatives -%description -n libpulse-pw%{sover} -PipeWire is a server and user space API to deal with multimedia pipelines. - -Some of its features include: - - * Capture and playback of audio and video with minimal latency; - * Real-time Multimedia processing on audio and video; - * Multiprocess architecture to let applications share multimedia content; - * GStreamer plugins for easy use and integration in current applications; - * Sandboxed applications support. - -This package provides the PipeWire shared library. - -%package -n libpulse-simple-pw%{sover} -Summary: A Multimedia Framework designed to be an audio and video server and more -Group: Development/Libraries/C and C++ - -%description -n libpulse-simple-pw%{sover} +%description libpulse-%{apiver_str} PipeWire is a server and user space API to deal with multimedia pipelines. Some of its features include: @@ -179,6 +156,7 @@ %package -n gstreamer-plugin-pipewire Summary: Gstreamer Plugin for PipeWire +License: MIT Group: System/Libraries %description -n gstreamer-plugin-pipewire @@ -188,6 +166,7 @@ %package tools Summary: The PipeWire Tools +License: MIT Group: Productivity/Multimedia/Other %description tools @@ -197,6 +176,7 @@ %package spa-tools Summary: The PipeWire SPA Tools +License: MIT Group: Productivity/Multimedia/Other %description spa-tools @@ -206,6 +186,7 @@ %package modules Summary: Modules For PipeWire, A Multimedia Framework +License: MIT Group: Productivity/Multimedia/Other Requires: pipewire @@ -222,6 +203,7 @@ %package spa-plugins-%{spa_ver_str} Summary: Plugins For PipeWire SPA +License: MIT Group: Productivity/Multimedia/Other Requires: pipewire @@ -246,6 +228,7 @@ %package devel Summary: Development Files For PipeWire, A Multimedia Framework +License: MIT Group: Development/Libraries/C and C++ Requires: %{libpipewire} >= %{version} @@ -256,6 +239,7 @@ %package doc Summary: PipeWire media server documentation +License: MIT Group: Development/Libraries/C and C++ %description doc @@ -266,24 +250,42 @@ %if %{pkg_vcmp glibc < 2.27} %patch0 -p1 %endif + +%if %{pkg_vcmp alsa-devel < 1.2.2} %patch1 -p1 -cp %{SOURCE1} spa/plugins/vulkan/shaders/main.spv +%endif %build +%if %{pkg_vcmp gcc < 8} +export CC=gcc-9 +%endif %meson \ -Ddocs=true \ -%if 0%{?is_opensuse} -Dman=true \ -%endif -Dgstreamer=true \ -Dffmpeg=true \ -Dsystemd=true \ -Dvulkan=true \ + -Dtest=true \ + -Daudiotestsrc=true \ %{nil} %meson_build %install %meson_install + +mkdir -p %{buildroot}%{_sysconfdir}/alsa/conf.d/ +for filename in 50-pipewire.conf \ + 99-pipewire-default.conf ; do + cp -a pipewire-alsa/conf/"$filename" %{buildroot}%{_sysconfdir}/alsa/conf.d/ +done + +mkdir -p %{buildroot}%{_sysconfdir}/alternatives +for wrapper in pw-pulse pw-jack ; do + mv %{buildroot}%{_bindir}/$wrapper %{buildroot}%{_bindir}/$wrapper-%{apiver} + ln -s -f %{_sysconfdir}/alternatives/$wrapper %{buildroot}%{_bindir}/$wrapper +done + %fdupes -s %{buildroot}/%{_datadir}/doc/pipewire/html %check @@ -292,50 +294,66 @@ %post -n %{libpipewire} -p /sbin/ldconfig %postun -n %{libpipewire} -p /sbin/ldconfig -%post -n libjack-pw%{sover} -p /sbin/ldconfig -%postun -n libjack-pw%{sover} -p /sbin/ldconfig +%post libpulse-%{apiver_str} +%{_sbindir}/update-alternatives --install %{_bindir}/pw-pulse pw-pulse %{_bindir}/pw-pulse-%{apiver} 20 -%post -n libpulse-mainloop-glib-pw%{sover} -p /sbin/ldconfig -%postun -n libpulse-mainloop-glib-pw%{sover} -p /sbin/ldconfig - -%post -n libpulse-pw%{sover} -p /sbin/ldconfig -%postun -n libpulse-pw%{sover} -p /sbin/ldconfig - -%post -n libpulse-simple-pw%{sover} -p /sbin/ldconfig -%postun -n libpulse-simple-pw%{sover} -p /sbin/ldconfig +%postun libpulse-%{apiver_str} +if [ ! -e %{_bindir}/pw-pulse-%{apiver} ] ; then + %{_sbindir}/update-alternatives --remove pw-pulse %{_bindir}/pw-pulse-%{apiver} +fi + +%post libjack-%{apiver_str} +%{_sbindir}/update-alternatives --install %{_bindir}/pw-jack pw-jack %{_bindir}/pw-jack-%{apiver} 20 + +%postun libjack-%{apiver_str} +if [ ! -e %{_bindir}/pw-jack-%{apiver} ] ; then + %{_sbindir}/update-alternatives --remove pw-jack %{_bindir}/pw-jack-%{apiver} +fi %files %{_bindir}/pipewire %{_bindir}/pipewire-media-session %{_userunitdir}/pipewire.service %{_userunitdir}/pipewire.socket -%if 0%{?is_opensuse} %{_mandir}/man1/pipewire.1%{ext_man} %{_mandir}/man5/pipewire.conf.5%{ext_man} -%endif %dir %{_sysconfdir}/pipewire %config %{_sysconfdir}/pipewire/pipewire.conf %dir %{_libdir}/alsa-lib %{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so +%dir %{_datadir}/alsa/alsa.conf.d +%{_datadir}/alsa/alsa.conf.d/50-pipewire.conf +%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf +%dir %{_sysconfdir}/alsa +%dir %{_sysconfdir}/alsa/conf.d +%config(noreplace) %{_sysconfdir}/alsa/conf.d/50-pipewire.conf +%config(noreplace) %{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf %files -n %{libpipewire} %license LICENSE COPYING %doc README.md %{_libdir}/libpipewire-%{apiver}.so.* -%files -n libjack-pw%{sover} -%{_libdir}/libjack-pw.so.* - -%files -n libpulse-mainloop-glib-pw%{sover} -%{_libdir}/libpulse-mainloop-glib-pw.so.* - -%files -n libpulse-pw%{sover} -%{_libdir}/libpulse-pw.so.* - -%files -n libpulse-simple-pw%{sover} -%{_libdir}/libpulse-simple-pw.so.* +%files libjack-%{apiver_str} +%dir %{_libdir}/pipewire-%{apiver}/jack +%{_libdir}/pipewire-%{apiver}/jack/libjack.so* +%{_libdir}/pipewire-%{apiver}/jack/libjacknet.so* +%{_libdir}/pipewire-%{apiver}/jack/libjackserver.so* +%ghost %{_sysconfdir}/alternatives/pw-jack +%{_bindir}/pw-jack-%{apiver} +%{_bindir}/pw-jack + +%files libpulse-%{apiver_str} +%license pipewire-pulseaudio/LICENSE +%dir %{_libdir}/pipewire-%{apiver}/pulse +%{_libdir}/pipewire-%{apiver}/pulse/libpulse.so* +%{_libdir}/pipewire-%{apiver}/pulse/libpulse-simple.so* +%{_libdir}/pipewire-%{apiver}/pulse/libpulse-mainloop-glib.so* +%ghost %{_sysconfdir}/alternatives/pw-pulse +%{_bindir}/pw-pulse-%{apiver} +%{_bindir}/pw-pulse %files -n gstreamer-plugin-pipewire %{_libdir}/gstreamer-1.0/libgstpipewire.so @@ -348,10 +366,17 @@ %{_bindir}/pw-cat %{_bindir}/pw-play %{_bindir}/pw-record -%if 0%{?is_opensuse} +%{_bindir}/pw-metadata +%{_bindir}/pw-mididump +%{_bindir}/pw-midiplay +%{_bindir}/pw-midirecord %{_mandir}/man1/pw-cli.1%{ext_man} %{_mandir}/man1/pw-mon.1%{ext_man} -%endif +%{_mandir}/man1/pw-cat.1%{ext_man} +%{_mandir}/man1/pw-dot.1%{ext_man} +%{_mandir}/man1/pw-metadata.1%{ext_man} +%{_mandir}/man1/pw-mididump.1%{ext_man} +%{_mandir}/man1/pw-profiler.1%{ext_man} %files spa-tools %{_bindir}/spa-inspect @@ -387,6 +412,8 @@ %{_libdir}/spa-%{spa_ver}/v4l2/libspa-v4l2.so %{_libdir}/spa-%{spa_ver}/videoconvert/libspa-videoconvert.so %{_libdir}/spa-%{spa_ver}/vulkan/libspa-vulkan.so +%{_libdir}/spa-%{spa_ver}/audiotestsrc/libspa-audiotestsrc.so +%{_libdir}/spa-%{spa_ver}/test/libspa-test.so %dir %{_libdir}/spa-%{spa_ver} %dir %{_libdir}/spa-%{spa_ver}/alsa @@ -400,13 +427,11 @@ %dir %{_libdir}/spa-%{spa_ver}/v4l2 %dir %{_libdir}/spa-%{spa_ver}/videoconvert %dir %{_libdir}/spa-%{spa_ver}/vulkan +%dir %{_libdir}/spa-%{spa_ver}/audiotestsrc +%dir %{_libdir}/spa-%{spa_ver}/test %files devel %{_libdir}/libpipewire-%{apiver}.so -%{_libdir}/libjack-pw.so -%{_libdir}/libpulse-mainloop-glib-pw.so -%{_libdir}/libpulse-pw.so -%{_libdir}/libpulse-simple-pw.so %{_libdir}/pkgconfig/libpipewire-%{apiver}.pc %{_libdir}/pkgconfig/libspa-%{spa_ver}.pc %{_includedir}/pipewire-%{apiver}/ ++++++ _service ++++++ <?xml version="1.0"?> <services> <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">0.3.5</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> </service> <service name="tar" mode="buildtime"/> <service name="recompress" mode="buildtime"> <param name="file">*.tar</param> <param name="compression">xz</param> </service> <service name="set_version" mode="disabled" /> </services> ++++++ do-not-use-snd_pcm_ioplug_hw_avail.patch ++++++ From: Antonio Larrosa <[email protected]> Subject: Fix build with old alsa-devel Revert part of https://github.com/PipeWire/pipewire/commit/c658574c0119d3a1f199fe17091fc4d5f37f1e71 since the alsa version in SLE/Leap doesn't have a snd_pcm_ioplug_hw_avail function. Index: pipewire-0.3.5/pipewire-alsa/alsa-plugins/pcm_pipewire.c =================================================================== --- pipewire-0.3.5.orig/pipewire-alsa/alsa-plugins/pcm_pipewire.c +++ pipewire-0.3.5/pipewire-alsa/alsa-plugins/pcm_pipewire.c @@ -192,7 +192,6 @@ snd_pcm_pipewire_process_playback(snd_pc index = 0; avail = maxsize - filled; avail = SPA_MIN(avail, pw->min_avail * bpf); - avail = SPA_MIN(avail, *hw_avail * bpf); do { offset = index % maxsize; @@ -236,7 +235,8 @@ snd_pcm_pipewire_process_playback(snd_pc pw->hw_ptr -= pw->boundary; xfer += frames; } - *hw_avail -= xfer; + + pcm_poll_unblock_check(io); /* unblock socket for polling if needed */ done: index += nbytes; @@ -271,7 +271,7 @@ snd_pcm_pipewire_process_record(snd_pcm_ d = b->buffer->datas; maxsize = d[0].chunk->size; - avail = SPA_MIN(maxsize, *hw_avail * bpf); + avail = maxsize; index = d[0].chunk->offset; do { @@ -309,7 +309,9 @@ snd_pcm_pipewire_process_record(snd_pcm_ pw->hw_ptr -= pw->boundary; xfer += frames; } - *hw_avail -= xfer; + + pcm_poll_unblock_check(io); /* unblock socket for polling if needed */ + avail -= nbytes; index += nbytes; } while (avail > 0); @@ -355,9 +357,6 @@ static void on_stream_process(void *data snd_pcm_pipewire_t *pw = data; snd_pcm_ioplug_t *io = &pw->io; struct pw_buffer *b; - snd_pcm_uframes_t hw_avail; - - hw_avail = snd_pcm_ioplug_hw_avail(io, pw->hw_ptr, io->appl_ptr); if (pw->drained) { pcm_poll_unblock_check(io); /* unblock socket for polling if needed */ @@ -369,13 +368,13 @@ static void on_stream_process(void *data return; if (io->stream == SND_PCM_STREAM_PLAYBACK) - snd_pcm_pipewire_process_playback(pw, b, &hw_avail); + snd_pcm_pipewire_process_playback(pw, b, 0L); else - snd_pcm_pipewire_process_record(pw, b, &hw_avail); + snd_pcm_pipewire_process_record(pw, b, 0L); pw_stream_queue_buffer(pw->stream, b); - if (io->state == SND_PCM_STATE_DRAINING && !pw->draining && hw_avail == 0) { + if (io->state == SND_PCM_STATE_DRAINING && !pw->draining == 0) { pw_stream_flush(pw->stream, true); pw->draining = true; pw->drained = false; ++++++ pipewire-rpmlintrc ++++++ # .so files in pipewire-libjack and pipewire-libpulse aren't # really devel files addFilter("devel-file-in-non-devel-package.*/jack/libjack") addFilter("devel-file-in-non-devel-package.*/pulse/libpulse") ++++++ pipewire.obsinfo ++++++ name: pipewire version: 0.3.5 mtime: 1589196932 commit: ba215efed0da8d6c9f3f2414d76a8e2c75352501
