From 8df9a56919d7c69f0a8b7a1313131519b2c70fe411b72b1cbeaf5af4db2a74a5 Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Tue, 29 Jun 2021 05:59:13 +0000 Subject: [PATCH 1/2] Accepting request 902874 from home:fcrozat:branches:multimedia:libs - Update to 0.3.31: * Highlights - Fixes for alsa-lib 1.2.5 - New pulseaudio modules: module-avahi-zeroconf, module-pipe-source, module-roc-sink, module-roc-source - JACK has seen massive stability improvements. Locking and correctness wrt to callbacks and has been reworked. Also thread priorities have improved. - Handle various crashes and lockups when running out of file descriptors. - Bluetooth now uses a hardware database to disable non-working features on listed devices. - Scheduling quantum and rate can now be changed dynamically with pw-metadata. - Many bugfixes and improvements. * PipeWire - Improve cleanup of context in error cases. - There is now a pw-test framework for improved unit tests. - Improve property serialization to valid JSON. - Fix some macros to work with better with coverity. - Metadata permissions are checked now. Clients need the M permission on an object to be able to set metadata for it. - The core metadata object will now remove metadata for removed objects, the implementor does not need to worry about that anymore. - Audioadapter will now follow the rate of the graph with the resampler adjusting itself dynamically. - Core now has a metadata implementation helper. A context will expose a metadata with settings that can be changed OBS-URL: https://build.opensuse.org/request/show/902874 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=7 --- _service | 6 +-- pipewire-0.3.30+55.obscpio | 3 -- pipewire-0.3.31.obscpio | 3 ++ pipewire-0.3.31.tar.xz | 3 ++ pipewire.changes | 92 ++++++++++++++++++++++++++++++++++++++ pipewire.obsinfo | 6 +-- pipewire.spec | 49 ++++++++++++++------ 7 files changed, 138 insertions(+), 24 deletions(-) delete mode 100644 pipewire-0.3.30+55.obscpio create mode 100644 pipewire-0.3.31.obscpio create mode 100644 pipewire-0.3.31.tar.xz diff --git a/_service b/_service index 1c62191..ae50826 100644 --- a/_service +++ b/_service @@ -3,10 +3,8 @@ git https://gitlab.freedesktop.org/pipewire/pipewire.git - master - @PARENT_TAG@+@TAG_OFFSET@ - (.*)\+0 - \1 + refs/tags/0.3.31 + @PARENT_TAG@ diff --git a/pipewire-0.3.30+55.obscpio b/pipewire-0.3.30+55.obscpio deleted file mode 100644 index c605154..0000000 --- a/pipewire-0.3.30+55.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:80adfafe64988e0c31dfd4cf6ef2ce6d6112088a6077fb79fec6fc90639ad011 -size 9439245 diff --git a/pipewire-0.3.31.obscpio b/pipewire-0.3.31.obscpio new file mode 100644 index 0000000..98097d2 --- /dev/null +++ b/pipewire-0.3.31.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f27a9d9927e4a54f67355d6069ab42ffd1d0cb7534c2f9883ca3945ec419a62 +size 9675277 diff --git a/pipewire-0.3.31.tar.xz b/pipewire-0.3.31.tar.xz new file mode 100644 index 0000000..ac4c5a4 --- /dev/null +++ b/pipewire-0.3.31.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fce3a14bcba000f00432f1c4214451c2ed10e14241f5fd6b24f7edf712097536 +size 1022352 diff --git a/pipewire.changes b/pipewire.changes index 97189d2..b0d5ca7 100644 --- a/pipewire.changes +++ b/pipewire.changes @@ -1,3 +1,95 @@ +------------------------------------------------------------------- +Mon Jun 28 16:14:29 UTC 2021 - Frederic Crozat + +- Update to 0.3.31: + * Highlights + - Fixes for alsa-lib 1.2.5 + - New pulseaudio modules: module-avahi-zeroconf, + module-pipe-source, module-roc-sink, module-roc-source + - JACK has seen massive stability improvements. Locking + and correctness wrt to callbacks and has been reworked. Also + thread priorities have improved. + - Handle various crashes and lockups when running out of file + descriptors. + - Bluetooth now uses a hardware database to disable + non-working features on listed devices. + - Scheduling quantum and rate can now be changed dynamically + with pw-metadata. + - Many bugfixes and improvements. + * PipeWire + - Improve cleanup of context in error cases. + - There is now a pw-test framework for improved unit tests. + - Improve property serialization to valid JSON. + - Fix some macros to work with better with coverity. + - Metadata permissions are checked now. Clients need the + M permission on an object to be able to set metadata for + it. + - The core metadata object will now remove metadata for + removed objects, the implementor does not need to worry + about that anymore. + - Audioadapter will now follow the rate of the graph with + the resampler adjusting itself dynamically. + - Core now has a metadata implementation helper. A context + will expose a metadata with settings that can be changed + at runtime. This can be used to change the lowlevel or + graph quantum and samplerate on the fly. + - An infinite loop was fixed in the audio converter. + - Handle out-of-fds more gracefully. Handle truncated + control data by dropping the client connection. + - Fix profiler crash with many streams. + - Improve latency handling in pw-filter. There is now a + default handler and a ProcessLatency parameter to simplify + latency reporting. + - Latency reporting was improved in devices and streams. + - And example sink/source was added. + * ALSA + - hardware mute and volume are now properties on the + Route param to make things easier. + - More fixes for alsa-ucm 1.2.5. + * Tools + - spa-json-dump now properly encodes string and keys + - pw-dump now shows the correct subject of the metadata. + * PulseAudio server + - Ensure the node.description is set, some applications + crash otherwise (TeamSpeak). + - Module loading and unloading was improved. + - module-avahi-zeroconf was implemented. + - module-pipe-source was implemented + - module-roc-sink and module-roc-source was implemented + - The maximum amount of connections has been limited to 64, + like pulseaudio. + - Handle out-of-fds more gracefully. + - Fix overflow of read/write pointers. + - source and sink state are now decoupled from the monitor + state and will report IDLE when not playing anything. + * media-session + - Port switching should now happen to/from the port that + actually changed. + * JACK + - The locking was reviewed. All callbacks are not emited + from the PipeWire thread with the lock released and + the process function will be disabled for the duration + of the callback. This ensures that no two callbacks are + called at the same time. + - Improve internal consistency and try to never call callbacks + with invalid objects. + - Monitor port can now be accessed with system:monitor_%d + - client threads are now created with SCHED_FIFO and module-rt + is used to create the other RT threads. This should avoid + SIGKILL from RTKit in some cases. + * Bluetooth + - Various bugfixes to improve connections to devices. + - Handle delayed UUID connection. + - There is now a hardware database that can disable features + in listed devices. + - Use libusb to detect availability of mSBC. + * ALSA + - The virtual device name can now also contain a media role. + +- Add BuildRequires(libusb-1.0) to detect mSBC support for Bluetooth. +- Move media-session to a separate package (similar to Fedora), + allowing to switch to another session manager. + ------------------------------------------------------------------- Sun Jun 13 17:35:06 UTC 2021 - Adam Mizerski diff --git a/pipewire.obsinfo b/pipewire.obsinfo index b5ad830..28d885f 100644 --- a/pipewire.obsinfo +++ b/pipewire.obsinfo @@ -1,5 +1,5 @@ name: pipewire -version: 0.3.30+55 -mtime: 1623317317 -commit: 342ae0b643004e6ddbd64ff9eee414e6a8dfacd2 +version: 0.3.31 +mtime: 1624893688 +commit: 5497d2d907ed8614c2c0b6482ea709cc7314f301 diff --git a/pipewire.spec b/pipewire.spec index 74b9e81..cbf5290 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -44,7 +44,7 @@ %bcond_with aptx Name: pipewire -Version: 0.3.30+55 +Version: 0.3.31 Release: 0 Summary: A Multimedia Framework designed to be an audio and video server and more License: MIT @@ -96,6 +96,7 @@ BuildRequires: pkgconfig(libopenaptx) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(libva) BuildRequires: pkgconfig(ncurses) BuildRequires: pkgconfig(sbc) @@ -107,6 +108,7 @@ BuildRequires: pkgconfig(webrtc-audio-processing) BuildRequires: pkgconfig(x11) Requires: %{libpipewire} = %{version} Requires: %{name}-modules = %{version} +Requires: %{name}-session-manager Requires: %{name}-spa-plugins-%{spa_ver_str} = %{version} Requires: %{name}-spa-tools = %{version} Requires: %{name}-tools = %{version} @@ -242,6 +244,16 @@ Group: Development/Libraries/C and C++ %description doc This package contains documentation for the PipeWire media server. +%package media-session +Summary: PipeWire Media Session Manager +Group: Development/Libraries/C and C++ +Recommends: %{name} >= %{version}-%{release} +Provides: pipewire-session-manager + +%description media-session +This package contains the reference Media Session Manager for the +PipeWire media server. + %package alsa Summary: PipeWire media server ALSA support Group: Development/Libraries/C and C++ @@ -283,6 +295,7 @@ export CC=gcc-9 -Dffmpeg=enabled \ -Dsystemd=enabled \ -Dgstreamer-device-provider=disabled \ + -Droc=disabled \ %if %{with_vulkan} -Dvulkan=enabled \ %else @@ -373,10 +386,16 @@ EOF fi %preun -%systemd_user_preun pipewire.service pipewire.socket pipewire-media-session.service +%systemd_user_preun pipewire.service pipewire.socket %postun -%systemd_user_postun pipewire.service pipewire.socket pipewire-media-session.service +%systemd_user_postun pipewire.service pipewire.socket + +%preun media-session +%systemd_user_preun pipewire-media-session.service + +%postun media-session +%systemd_user_postun pipewire-media-session.service %pre pulseaudio %systemd_user_pre pipewire-pulse.service pipewire-pulse.socket @@ -424,27 +443,32 @@ fi %files %{_bindir}/pipewire -%{_bindir}/pipewire-media-session %{_userunitdir}/pipewire.service %{_userunitdir}/pipewire.socket -%{_userunitdir}/pipewire-media-session.service %{_mandir}/man1/pipewire.1%{ext_man} %{_mandir}/man5/pipewire.conf.5%{ext_man} - %dir %{_datadir}/pipewire %{_datadir}/pipewire/pipewire.conf %{_datadir}/pipewire/client.conf %{_datadir}/pipewire/client-rt.conf %{_datadir}/pipewire/jack.conf %{_datadir}/pipewire/pipewire-pulse.conf -%dir %{_datadir}/pipewire/media-session.d -%{_datadir}/pipewire/media-session.d/media-session.conf -%{_datadir}/pipewire/media-session.d/alsa-monitor.conf -%{_datadir}/pipewire/media-session.d/bluez-monitor.conf -%{_datadir}/pipewire/media-session.d/v4l2-monitor.conf %ghost %dir %{_localstatedir}/lib/pipewire %ghost %{_localstatedir}/lib/pipewire/pipewire_post_workaround +%files media-session +%{_bindir}/pipewire-media-session +%{_userunitdir}/pipewire-media-session.service +%dir %{_datadir}/pipewire/media-session.d/ +%{_datadir}/pipewire/media-session.d/alsa-monitor.conf +%{_datadir}/pipewire/media-session.d/bluez-hardware.conf +%{_datadir}/pipewire/media-session.d/bluez-monitor.conf +%{_datadir}/pipewire/media-session.d/media-session.conf +%{_datadir}/pipewire/media-session.d/v4l2-monitor.conf +%{_datadir}/pipewire/media-session.d/with-alsa +%{_datadir}/pipewire/media-session.d/with-jack +%{_datadir}/pipewire/media-session.d/with-pulseaudio + %files -n %{libpipewire} %license LICENSE COPYING %doc README.md @@ -462,7 +486,6 @@ fi %{_bindir}/pw-jack %{_mandir}/man1/pw-jack-%{apiver}.1%{ext_man} %{_mandir}/man1/pw-jack.1%{ext_man} -%{_datadir}/pipewire/media-session.d/with-jack %files -n gstreamer-plugin-pipewire %{_libdir}/gstreamer-1.0/libgstpipewire.so @@ -588,7 +611,6 @@ fi %files pulseaudio %{_bindir}/pipewire-pulse %{_userunitdir}/pipewire-pulse.* -%{_datadir}/pipewire/media-session.d/with-pulseaudio %ghost %{_localstatedir}/lib/pipewire/pipewire-pulseaudio_post_workaround %files alsa @@ -602,7 +624,6 @@ fi %dir %{_sysconfdir}/alsa/conf.d %config(noreplace) %{_sysconfdir}/alsa/conf.d/50-pipewire.conf %config(noreplace) %{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf -%{_datadir}/pipewire/media-session.d/with-alsa %files lang -f %{name}.lang From 0e18f5e89d6d32216c8827342e75522cf7d94b3ea0519571b74dd28852cb7c44 Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Tue, 29 Jun 2021 06:27:45 +0000 Subject: [PATCH 2/2] Accepting request 902930 from home:alarrosa:branches:multimedia:libs - Add %pre and %post sections to the new media-session subpackage. - Move the references to the media-session service from the workaround in pipewire's %post section to the workaround in the new subpackage's %post section. OBS-URL: https://build.opensuse.org/request/show/902930 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=8 --- pipewire-0.3.31.tar.xz | 3 --- pipewire.changes | 8 ++++++++ pipewire.spec | 41 ++++++++++++++++++++++++++++++++++++----- 3 files changed, 44 insertions(+), 8 deletions(-) delete mode 100644 pipewire-0.3.31.tar.xz diff --git a/pipewire-0.3.31.tar.xz b/pipewire-0.3.31.tar.xz deleted file mode 100644 index ac4c5a4..0000000 --- a/pipewire-0.3.31.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fce3a14bcba000f00432f1c4214451c2ed10e14241f5fd6b24f7edf712097536 -size 1022352 diff --git a/pipewire.changes b/pipewire.changes index b0d5ca7..6d08d95 100644 --- a/pipewire.changes +++ b/pipewire.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Jun 29 06:12:36 UTC 2021 - Antonio Larrosa + +- Add %pre and %post sections to the new media-session subpackage. +- Move the references to the media-session service from the + workaround in pipewire's %post section to the workaround in the + new subpackage's %post section. + ------------------------------------------------------------------- Mon Jun 28 16:14:29 UTC 2021 - Frederic Crozat diff --git a/pipewire.spec b/pipewire.spec index cbf5290..7b05fa9 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -252,7 +252,7 @@ Provides: pipewire-session-manager %description media-session This package contains the reference Media Session Manager for the -PipeWire media server. +PipeWire media server. %package alsa Summary: PipeWire media server ALSA support @@ -352,7 +352,7 @@ done %meson_test %pre -%systemd_user_pre pipewire.service pipewire.socket pipewire-media-session.service +%systemd_user_pre pipewire.service pipewire.socket %post # Check if the systemd_user_pre macro generated the file @@ -363,12 +363,12 @@ if [ -f /run/systemd/rpm/needs-user-preset/pipewire.socket ]; then fi %systemd_user_post pipewire.service pipewire.socket pipewire-media-session.service -# If the pipewire-media-session user service is not enabled and the workaround +# If the pipewire.socket user unit is not enabled and the workaround # for boo#1186561 has never been executed, we need to execute it now -if [ ! -L %{_sysconfdir}/systemd/user/pipewire.service.wants/pipewire-media-session.service \ +if [ ! -L %{_sysconfdir}/systemd/user/sockets.target.wants/pipewire.socket \ -a ! -f %{_localstatedir}/lib/pipewire/pipewire_post_workaround \ -a -x /usr/bin/systemctl ]; then - for service in pipewire.service pipewire.socket pipewire-media-session.service ; do + for service in pipewire.service pipewire.socket ; do /usr/bin/systemctl --global preset "$service" || : done @@ -391,6 +391,37 @@ fi %postun %systemd_user_postun pipewire.service pipewire.socket +%pre media-session +%systemd_user_pre pipewire-media-session.service + +%post media-session +%systemd_user_post pipewire-media-session.service + +# If the pipewire-media-session user service is not enabled and the +# wireplumber user service is not enabled either (since it can replace pipewire-media-session) +# and the workaround for boo#1186561 has never been executed, +# we need to execute it now +if [ ! -L %{_sysconfdir}/systemd/user/pipewire.service.wants/pipewire-media-session.service \ + -a ! -L %{_sysconfdir}/systemd/user/pipewire.service.wants/wireplumber.service \ + -a ! -f %{_localstatedir}/lib/pipewire/pipewire-media-session_post_workaround \ + -a -x /usr/bin/systemctl ]; then + for service in pipewire-media-session.service ; do + /usr/bin/systemctl --global preset "$service" || : + done + + mkdir -p %{_localstatedir}/lib/pipewire + cat << EOF > %{_localstatedir}/lib/pipewire/pipewire-media-session_post_workaround +# The existence of this file means that the pipewire user services were +# enabled at least once. Please don't remove this file as that would +# make the services to be enabled again in the next package update. +# +# Check the following bugs for more information: +# https://bugzilla.opensuse.org/show_bug.cgi?id=1184852 +# https://bugzilla.opensuse.org/show_bug.cgi?id=1183012 +# https://bugzilla.opensuse.org/show_bug.cgi?id=1186561 +EOF +fi + %preun media-session %systemd_user_preun pipewire-media-session.service