Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pipewire for openSUSE:Factory checked in at 2021-10-30 23:13:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pipewire (Old) and /work/SRC/openSUSE:Factory/.pipewire.new.1890 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pipewire" Sat Oct 30 23:13:18 2021 rev:44 rq:928177 version:0.3.39 Changes: -------- --- /work/SRC/openSUSE:Factory/pipewire/pipewire.changes 2021-10-13 18:03:18.307013000 +0200 +++ /work/SRC/openSUSE:Factory/.pipewire.new.1890/pipewire.changes 2021-10-30 23:14:28.571091173 +0200 @@ -1,0 +2,121 @@ +Fri Oct 29 15:17:51 UTC 2021 - Antonio Larrosa <alarr...@suse.com> + +- Add patches from upstream to fix build in s390x: + * 0001-map-make-_insert_at-fail-on-a-removed-item.patch + * 0002-map-use-uintptr_t-for-the-next-pointer.patch + +------------------------------------------------------------------- +Fri Oct 29 08:54:01 UTC 2021 - Antonio Larrosa <alarr...@suse.com> + +- Use readline-devel instead of pkgconfig(readline) so it can be + built in Leap15.3/SLE15-SP3 + +------------------------------------------------------------------- +Thu Oct 21 10:10:40 UTC 2021 - Antonio Larrosa <alarr...@suse.com> + +- Fix %systemd_user_post using the now separated + pipewire-media-session.service + +------------------------------------------------------------------- +Thu Oct 21 09:27:57 UTC 2021 - Antonio Larrosa <alarr...@suse.com> + +- Update to version 0.3.39 + * Highlights + - media-session is now moved into a separate module to speed up + its deprecation in favour of WirePlumber. + - There is now an LD_PRELOAD v4l2 emulation library to run some + existing v4l2 applications on top of PipeWire. + - Filter-chains should now flush out remaining samples when + paused. There is now also the option to let a filter-chain + drain so that long filters + such as reverbs can fade out properly. + - Stability and compatibility improvements in JACK apps. + - Better Bluetooth compatibility with more devices. + - libcamera plugin improvements. + - Many bugfixes and improvements all over the map. + * PipeWire + - Fix compilation on ARM. + - Log topics are added to most modules. + - Documentation updates. Many improvements to the layout. + Reorganisation of the modules and groups. + - Share a work queue for all links and nodes. This removes the + need for a separate eventfd per link and per node. + - Catch errors in the map implementation. + - Add option to compile without dbus support. + - Fix biquad frequency. It was using the wrong sample rate. + - Fix a potential crash when destroying nodes, in some cases + the node would not be deactivated properly. + - Add some more helpers for dealing with properties and their + values. + - Implement flush and reset on virtual sinks/sources. + - Make it possible to let virtual sinks/filter-chains run and + drain after being idle. + - Fix a bug where the quantum could exceed the maximum because + it was scaled with the sample rate. + - Fix channel_map parsing in module-zeroconf-discover so that + the remote channel map is used. + - pw-stream errors emitted on the proxy are reported but not + fatal any more. They are usually used by the session manager + to signal status to the client but otherwise does not really + cause an error on the client. + - Links now also store the output and input node id in the + global properties so that applications can parse and use them + regardless of how the link was made. (#1723) + - pw-stream and pw-filter now have an event to notify commands. + - The echo-cancel module can now operate on larger quantums. + - pw-cat now uses the right metadata to find the default + devices in --list-targets. + * media-session + - Don't try to remix unpositioned streams when linking. This + ensures that linking to Pro-Audio nodes does not remix the + stream channels but links them as they are, one by one. + - media-session is now moved to a separate module to accelerate + its deprecation in favour of WirePlumber. + * SPA + - Many libcamera improvements, handle MemFd buffers, handle + errors gracefully. + - Small improvements to make interface fall-backs easier to + implement. + - Add support to enable flush-to-zero and denormals-are-zero + to avoid high CPU usage when dealing with denormals. + - AUX13 channels are no longer reported as AUX12. (#1727) + - Devices with more than 32 channels in Pro-Audio mode now only + uses AUX channels. + - Improve windowing function of the resampler to reduce + aliasing and improve the quality. + * JACK + - Port connect callbacks will not only be emitted after the + port has negotiated buffers, which improves compatibility + with applications that try to use the port right after the + callback (jack_midi_latency_test). + - Fix crash when midi ports were removed and being monitored, + like in Ardour. + * pulse-server + - The pulse tunnel will now use the specified + format/rate/channels. + - Improve lookup of default source and fall back to the + monitors when no sources are available. + - Mark some nodes as network nodes so that we can set the + NETWORK flag correctly. + * GStreamer + - The GStreamer element not releases the buffers in the stream + again in all cases so that they can be reused by other + streams. + * v4l2 + - Add a v4l2 LD_PRELOAD library to emulate v4l2 system calls on + top of PipeWire. This is tested with firefox and GStreamer + and is known to not work with Chrome. + * Bluetooth + - AAC compatibility improvements. + - Disable hardware volume for "Tribit MAXSound Plus" and + "SoundCore mini". + - Add quirk to disable faststream. Disable faststream on + "FiiO BTR3". + - Add a dummy AVRCP player to improve compatibility with some + devices. +- Remove patch: + * 0001-fix-compilation-on-ARM.patch +- Add patch from upstream: + * 0001-cpu-fix-compilation-on-some-architectures.patch + +------------------------------------------------------------------- Old: ---- 0001-fix-compilation-on-ARM.patch pipewire-0.3.38.obscpio New: ---- 0001-cpu-fix-compilation-on-some-architectures.patch 0001-map-make-_insert_at-fail-on-a-removed-item.patch 0002-map-use-uintptr_t-for-the-next-pointer.patch pipewire-0.3.39.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pipewire.spec ++++++ --- /var/tmp/diff_new_pack.46Y521/_old 2021-10-30 23:14:29.115091611 +0200 +++ /var/tmp/diff_new_pack.46Y521/_new 2021-10-30 23:14:29.115091611 +0200 @@ -44,7 +44,7 @@ %endif Name: pipewire -Version: 0.3.38 +Version: 0.3.39 Release: 0 Summary: A Multimedia Framework designed to be an audio and video server and more License: MIT @@ -53,8 +53,9 @@ Source0: %{name}-%{version}.tar.xz Source1: %{name}-rpmlintrc Source99: baselibs.conf -Patch0: 0001-fix-compilation-on-ARM.patch - +Patch0: 0001-cpu-fix-compilation-on-some-architectures.patch +Patch1: 0001-map-make-_insert_at-fail-on-a-removed-item.patch +Patch2: 0002-map-use-uintptr_t-for-the-next-pointer.patch BuildRequires: docutils BuildRequires: doxygen BuildRequires: fdupes @@ -99,13 +100,13 @@ %if %{with aptx} BuildRequires: pkgconfig(libfreeaptx) %endif +BuildRequires: readline-devel BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(libva) BuildRequires: pkgconfig(ncurses) -BuildRequires: pkgconfig(readline) BuildRequires: pkgconfig(sbc) BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(sndfile) @@ -237,7 +238,7 @@ %package spa-plugins-%{spa_ver_str} Summary: Plugins For PipeWire SPA Group: Productivity/Multimedia/Other -Requires: pipewire +Requires: pipewire = %{version} %description spa-plugins-%{spa_ver_str} PipeWire is a server and user space API to deal with multimedia pipelines. @@ -275,16 +276,6 @@ %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++ @@ -361,6 +352,7 @@ %else -Djack-devel=false \ %endif + -Dsession-managers="[]" \ %{nil} %meson_build @@ -371,7 +363,6 @@ %{buildroot}%{_sysconfdir}/alsa/conf.d/50-pipewire.conf cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf \ %{buildroot}%{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf -touch %{buildroot}%{_datadir}/pipewire/media-session.d/with-alsa mkdir -p %{buildroot}%{_udevrulesdir} mv -fv %{buildroot}/lib/udev/rules.d/90-pipewire-alsa.rules %{buildroot}%{_udevrulesdir} @@ -406,7 +397,7 @@ echo "Switching Pipewire activation using systemd user socket." echo "Please log out from all sessions once to make it effective." fi -%systemd_user_post pipewire.service pipewire.socket pipewire-media-session.service +%systemd_user_post pipewire.service pipewire.socket # 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 @@ -436,43 +427,6 @@ %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 - -%postun media-session -%systemd_user_postun pipewire-media-session.service - %pre pulseaudio %systemd_user_pre pipewire-pulse.service pipewire-pulse.socket @@ -531,15 +485,6 @@ %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-monitor.conf -%{_datadir}/pipewire/media-session.d/media-session.conf -%{_datadir}/pipewire/media-session.d/v4l2-monitor.conf - %files -n %{libpipewire} %license LICENSE COPYING %doc README.md @@ -559,7 +504,6 @@ %{_mandir}/man1/pw-jack.1%{ext_man} %{_datadir}/pipewire/jack.conf %config %{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf -%{_datadir}/pipewire/media-session.d/with-jack %files libjack-%{apiver_str}-devel %{_libdir}/pipewire-%{apiver}/jack/libjack.so @@ -591,6 +535,7 @@ %{_bindir}/pw-record %{_bindir}/pw-reserve %{_bindir}/pw-top +%{_bindir}/pw-v4l2 %{_mandir}/man1/pw-cat.1%{ext_man} %{_mandir}/man1/pw-cli.1%{ext_man} %{_mandir}/man1/pw-dot.1%{ext_man} @@ -631,6 +576,8 @@ %{_libdir}/pipewire-%{apiver}/libpipewire-module-pulse-tunnel.so %{_libdir}/pipewire-%{apiver}/libpipewire-module-zeroconf-discover.so %{_libdir}/pipewire-%{apiver}/libpipewire-module-rt.so +%dir %{_libdir}/pipewire-%{apiver}/v4l2 +%{_libdir}/pipewire-%{apiver}/v4l2/libpw-v4l2.so %dir %{_datadir}/alsa-card-profile %dir %{_datadir}/alsa-card-profile/mixer %{_datadir}/alsa-card-profile/mixer/* @@ -718,7 +665,6 @@ %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 @@ -732,7 +678,6 @@ %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 ++++++ 0001-cpu-fix-compilation-on-some-architectures.patch ++++++ >From 651f0decea5f83730c271e9bed03cdd0048fcd49 Mon Sep 17 00:00:00 2001 From: Wim Taymans <wtaym...@redhat.com> Date: Thu, 21 Oct 2021 11:09:48 +0200 Subject: [PATCH] cpu: fix compilation on some architectures --- spa/plugins/support/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spa/plugins/support/cpu.c b/spa/plugins/support/cpu.c index ee1816512..01cff4854 100644 --- a/spa/plugins/support/cpu.c +++ b/spa/plugins/support/cpu.c @@ -270,7 +270,7 @@ impl_init(const struct spa_handle_factory *factory, if ((str = spa_dict_lookup(info, SPA_KEY_CPU_VM_TYPE)) != NULL) this->vm_type = atoi(str); if ((str = spa_dict_lookup(info, SPA_KEY_CPU_ZERO_DENORMALS)) != NULL) - impl_cpu_zero_denormals(this, spa_atob(str)); + spa_cpu_zero_denormals(&this->cpu, spa_atob(str)); } spa_log_debug(this->log, "%p: count:%d align:%d flags:%08x", -- 2.31.1 ++++++ 0001-map-make-_insert_at-fail-on-a-removed-item.patch ++++++ >From c07f0ccb71a9d95944ce3e4d7e453cb50a26b0a2 Mon Sep 17 00:00:00 2001 From: Wim Taymans <wtaym...@redhat.com> Date: Mon, 25 Oct 2021 16:11:56 +0200 Subject: [PATCH] map: make _insert_at() fail on a removed item You are only supposed to use _insert_new()/_remove() or _insert_at() on the map, If we detect a _insert_at() to a removed item, return an error because else we might corrupt the free list. Update unit test accordingly. --- src/pipewire/map.h | 15 ++------------- test/test-map.c | 17 +---------------- 2 files changed, 3 insertions(+), 29 deletions(-) diff --git a/src/pipewire/map.h b/src/pipewire/map.h index fd57f7f7c..f47dfa6b3 100644 --- a/src/pipewire/map.h +++ b/src/pipewire/map.h @@ -182,20 +182,9 @@ static inline int pw_map_insert_at(struct pw_map *map, uint32_t id, void *data) if (item == NULL) return -errno; } else { - if (pw_map_id_is_free(map, id)) { - uint32_t *current = &map->free_list; - while (*current != SPA_ID_INVALID) { - uint32_t current_id = (*current) >> 1; - uint32_t *next = &pw_map_get_item(map, current_id)->next; - - if (current_id == id) { - *current = *next; - break; - } - current = next; - } - } item = pw_map_get_item(map, id); + if (pw_map_item_is_free(item)) + return -EINVAL; } item->data = data; return 0; diff --git a/test/test-map.c b/test/test-map.c index dd1df77a8..b6d7681ce 100644 --- a/test/test-map.c +++ b/test/test-map.c @@ -188,7 +188,6 @@ PWTEST(map_insert_at_free) int data[3] = {1, 2, 3}; int new_data = 4; int *ptr[3] = {&data[0], &data[1], &data[3]}; - int *new_ptr = &new_data; int idx[3]; int rc; @@ -225,21 +224,7 @@ PWTEST(map_insert_at_free) } rc = pw_map_insert_at(&map, item_idx, &new_data); - pwtest_neg_errno_ok(rc); - pwtest_ptr_eq(new_ptr, pw_map_lookup(&map, item_idx)); - - if (before_idx != SKIP && before_idx != item_idx) { - rc = pw_map_insert_at(&map, before_idx, &ptr[before_idx]); - pwtest_neg_errno_ok(rc); - pwtest_ptr_eq(&ptr[before_idx], pw_map_lookup(&map, before_idx)); - } - - if (after_idx != SKIP && after_idx != item_idx) { - rc = pw_map_insert_at(&map, after_idx, &ptr[after_idx]); - pwtest_neg_errno_ok(rc); - pwtest_ptr_eq(&ptr[after_idx], pw_map_lookup(&map, after_idx)); - } - + pwtest_neg_errno(rc, -EINVAL); pw_map_clear(&map); return PWTEST_PASS; -- GitLab ++++++ 0002-map-use-uintptr_t-for-the-next-pointer.patch ++++++ >From 5dfc3494dc4635918e74b9f3d717a39a74b28554 Mon Sep 17 00:00:00 2001 From: Wim Taymans <wtaym...@redhat.com> Date: Mon, 25 Oct 2021 16:15:17 +0200 Subject: [PATCH] map: use uintptr_t for the next pointer This aligns the low bits of the next field with the low bits of the pointer on big endian cpus. Fixes #1747 --- src/pipewire/map.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pipewire/map.h b/src/pipewire/map.h index f47dfa6b3..1867fa4d3 100644 --- a/src/pipewire/map.h +++ b/src/pipewire/map.h @@ -74,7 +74,7 @@ extern "C" { * first item to get re-used on the next insert. */ union pw_map_item { - uint32_t next; /* next free index */ + uintptr_t next; /* next free index */ void *data; /* data of this item, must be an even address */ }; -- GitLab ++++++ _service ++++++ --- /var/tmp/diff_new_pack.46Y521/_old 2021-10-30 23:14:29.159091646 +0200 +++ /var/tmp/diff_new_pack.46Y521/_new 2021-10-30 23:14:29.159091646 +0200 @@ -3,8 +3,11 @@ <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.38</param> + <param name="revision">refs/tags/0.3.39</param> <param name="versionformat">@PARENT_TAG@</param> +<!-- <param name="revision">master</param> + <param name="versionformat">@PARENT_TAG@+git%cd.%h</param> +--> </service> <service name="tar" mode="buildtime"/> <service name="recompress" mode="buildtime"> ++++++ pipewire-0.3.38.obscpio -> pipewire-0.3.39.obscpio ++++++ /work/SRC/openSUSE:Factory/pipewire/pipewire-0.3.38.obscpio /work/SRC/openSUSE:Factory/.pipewire.new.1890/pipewire-0.3.39.obscpio differ: char 49, line 1 ++++++ pipewire.obsinfo ++++++ --- /var/tmp/diff_new_pack.46Y521/_old 2021-10-30 23:14:29.215091691 +0200 +++ /var/tmp/diff_new_pack.46Y521/_new 2021-10-30 23:14:29.215091691 +0200 @@ -1,5 +1,5 @@ name: pipewire -version: 0.3.38 -mtime: 1632991350 -commit: 47a294c5bf52656998a7f43b13068c02001add77 +version: 0.3.39 +mtime: 1634742038 +commit: 5b7ef959d1fed35f6ddfcf94b6f57891fae23b31