Accepting request 908515 from multimedia:libs
OBS-URL: https://build.opensuse.org/request/show/908515 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=36
This commit is contained in:
commit
b6b53ad08b
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.31</param>
|
||||
<param name="revision">refs/tags/0.3.32</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
</service>
|
||||
<service name="tar" mode="buildtime"/>
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9f27a9d9927e4a54f67355d6069ab42ffd1d0cb7534c2f9883ca3945ec419a62
|
||||
size 9675277
|
3
pipewire-0.3.32.obscpio
Normal file
3
pipewire-0.3.32.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:04aac9d3348d9a28c2dc838eb5b2c77cc1e0dffd85fbacae189871215e696a0b
|
||||
size 9720333
|
78
pipewire-fix-libcamera-build.patch
Normal file
78
pipewire-fix-libcamera-build.patch
Normal file
@ -0,0 +1,78 @@
|
||||
From 5471a0018b0394327c0cd4f1f60bf326632b29f1 Mon Sep 17 00:00:00 2001
|
||||
From: Javier Martinez Canillas <javierm@redhat.com>
|
||||
Date: Thu, 22 Jul 2021 20:09:34 +0200
|
||||
Subject: [PATCH 1/2] libcamera: fix no-longer existent <libcamera/buffer.h>
|
||||
header inclusion
|
||||
|
||||
The SPA plugin is including a <libcamera/buffer.h> header file, but this
|
||||
got renamed to <libcamera/framebuffer.h> to match the defined class name:
|
||||
|
||||
../spa/plugins/libcamera/libcamera_wrapper.cpp:52:10: fatal error: libcamera/buffer.h: No such file or directory
|
||||
52 | #include <libcamera/buffer.h>
|
||||
| ^~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Fixes #1435
|
||||
---
|
||||
spa/plugins/libcamera/libcamera_wrapper.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/spa/plugins/libcamera/libcamera_wrapper.cpp b/spa/plugins/libcamera/libcamera_wrapper.cpp
|
||||
index 58c062412..f25922eb1 100644
|
||||
--- a/spa/plugins/libcamera/libcamera_wrapper.cpp
|
||||
+++ b/spa/plugins/libcamera/libcamera_wrapper.cpp
|
||||
@@ -49,7 +49,7 @@
|
||||
#include <libcamera/camera_manager.h>
|
||||
#include <libcamera/request.h>
|
||||
#include <libcamera/framebuffer_allocator.h>
|
||||
-#include <libcamera/buffer.h>
|
||||
+#include <libcamera/framebuffer.h>
|
||||
#include <libcamera/property_ids.h>
|
||||
#include <libcamera/controls.h>
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
||||
|
||||
From 76cb5c1169b58b48a2921ccc3f61c713b297c07f Mon Sep 17 00:00:00 2001
|
||||
From: Javier Martinez Canillas <javierm@redhat.com>
|
||||
Date: Thu, 22 Jul 2021 20:17:09 +0200
|
||||
Subject: [PATCH 2/2] libcamera: remove unused buffer variable in
|
||||
LibCamera::stop()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
To fix build warning about a variable being unused in LibCamera::stop():
|
||||
|
||||
[1/2] Compiling C++ object spa/plugins/libcamera/libspa-libcamera.so.p/libcamera_wrapper.cpp.o
|
||||
../spa/plugins/libcamera/libcamera_wrapper.cpp: In member function ‘void LibCamera::stop()’:
|
||||
../spa/plugins/libcamera/libcamera_wrapper.cpp:531:58: warning: unused variable ‘buffer’ [-Wunused-variable]
|
||||
531 | for (const std::unique_ptr<FrameBuffer> &buffer : this->allocator_->buffers(stream)) {
|
||||
| ^~~~~~
|
||||
---
|
||||
spa/plugins/libcamera/libcamera_wrapper.cpp | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/spa/plugins/libcamera/libcamera_wrapper.cpp b/spa/plugins/libcamera/libcamera_wrapper.cpp
|
||||
index f25922eb1..d58238d33 100644
|
||||
--- a/spa/plugins/libcamera/libcamera_wrapper.cpp
|
||||
+++ b/spa/plugins/libcamera/libcamera_wrapper.cpp
|
||||
@@ -524,13 +524,12 @@ extern "C" {
|
||||
void LibCamera::stop() {
|
||||
this->disconnect();
|
||||
|
||||
- uint32_t bufIdx = 0;
|
||||
StreamConfiguration &cfg = this->config_->at(0);
|
||||
Stream *stream = cfg.stream();
|
||||
+ uint32_t nbuffers = this->allocator_->buffers(stream).size();
|
||||
|
||||
- for (const std::unique_ptr<FrameBuffer> &buffer : this->allocator_->buffers(stream)) {
|
||||
+ for (uint32_t bufIdx = 0; bufIdx < nbuffers; bufIdx++) {
|
||||
delete [] this->fd_[bufIdx];
|
||||
- bufIdx++;
|
||||
}
|
||||
delete [] this->fd_;
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
119
pipewire.changes
119
pipewire.changes
@ -1,3 +1,122 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 27 06:23:36 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Move with-{alsa,jack,pulseaudio} from the media-session package
|
||||
to the packages that implement each support.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 22 07:55:13 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||||
|
||||
- Add patch pipewire-fix-libcamera-build.patch: fix build with
|
||||
latest libcamera.
|
||||
- Do no build libcamera support on Leap 15.3 or lower (too old
|
||||
libcamera) and change name of BuildRequires from camera to
|
||||
libcamera.
|
||||
- Update minimal version for alsa buildrequires.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 20 12:46:57 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||||
|
||||
- Update to 0.3.32:
|
||||
* Highlights
|
||||
- Real-time priority handling for threads was reworked.
|
||||
Freewheeling will now drop RT priorities to avoid being
|
||||
killed.
|
||||
- Problems with filter chains and echo-cancel being linked in
|
||||
a loop was fixed.
|
||||
- alsamixer should now be able to see the mixer controls again.
|
||||
- JACK has seen some latency reporting improvements that make
|
||||
Ardour report latencies correctly.
|
||||
- Many bugfixes and improvements.
|
||||
* PipeWire
|
||||
- Fix a bug in the neon audio resampler code.
|
||||
- There is now a node.link-group property to relate linked
|
||||
streams. this can be used to track the dataflow with
|
||||
coupled streams.
|
||||
- Fix a crash when recalculating latency on a destroyed
|
||||
port. (#1371)
|
||||
- Filter chains and other modules that create streams can
|
||||
now also be added to the daemon config itself. (#1309)
|
||||
- Fix some potential deadlocks in timerfd. (#1377)
|
||||
- Feedback links are skipped when recalculating latency to
|
||||
avoid loops.
|
||||
- The dummy driver and null-sink now stop the timerfd when
|
||||
following another driver instead of generating useless
|
||||
graph wakeups.
|
||||
- rt.limit was increased to 2 seconds. Some applications got
|
||||
killed because they run lengthy code in the Real-Time
|
||||
thread. (#1344)
|
||||
- Fix s24_32 to float, it was not sign extending
|
||||
properly. (#1393)
|
||||
- The performance of the feedback loop check algorithm was
|
||||
improved a lot, making complex graphs start much much faster.
|
||||
- The zeroconf publish module now doesn't republish nodes
|
||||
every time the volume changes. (#1406)
|
||||
- A potential memory corruption error has been fixed in the
|
||||
loop that could cause random crashes.
|
||||
- Mempools can now be created from multiple threads at the
|
||||
same time.
|
||||
* media-session
|
||||
- Loops in coupled streams are now avoided. (#1394)
|
||||
- Port changes for inactive profiles are ignored now by
|
||||
the default-route module. (#1403)
|
||||
* ALSA
|
||||
- Make sure tha alibpref is not part of the device node name
|
||||
because it is random. (#1362)
|
||||
- Fixed an off-by-one that could cause midi events to end up
|
||||
with a wrong timestamp and thus being discarded by
|
||||
some apps. (#1395)
|
||||
- Fix some memory leaks when destroying a card object.
|
||||
* JACK
|
||||
- Fix some invalid cycle wakeups that could cause JACK
|
||||
application to run with a 0 buffer size. (#1386)
|
||||
- JACK can now use rtkit to manage realtime priorities
|
||||
on threads.
|
||||
- The Real-time priority is dropped when entering freewheel
|
||||
mode to make sure we don't get killed when using
|
||||
too much CPU.
|
||||
- jack_recompute_total_latencies() is now implemented, fixing
|
||||
the latency reporting in Ardour. (#1388)
|
||||
- Fix some overflows in time calculations.
|
||||
- Ensure frame_rate in position is never 0.
|
||||
- Graph callbacks are now emitted as well.
|
||||
* Bluetooth
|
||||
- RTP payload type is now set correctly for aptX, LDAC and
|
||||
SBC, which should improve compatibility with devices that
|
||||
care about this.
|
||||
* PulseAudio server
|
||||
- There is now a quirks database to deal with bad clients.
|
||||
The database is builtin but can be made external later.
|
||||
Teams is now lied to and told all sink/sources use
|
||||
s16 samples to make it show all sinks/sources.
|
||||
Firefox is forced to remove the DONT_MOVE flag on
|
||||
capture streams so that you can move firefox streams
|
||||
with other tools.
|
||||
- The UNDERFLOW warnings are now made into info log messages
|
||||
to not spam the log too much. Many application just let
|
||||
things underrun and PulseAudio did not warn about this
|
||||
either. (#910)
|
||||
* ALSA plugin
|
||||
- The alsa plugin now uses the right metadata for finding the
|
||||
default source and sink, which makes the volume controls
|
||||
reappear. (#1384)
|
||||
* Other
|
||||
- Cleanups in pulse-server and pipewire.
|
||||
- Documentation additions.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 13 14:52:35 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Make the jack replacement libraries really replace jack libraries
|
||||
just like Fedora does (adding the path to the pipewire
|
||||
replacement libraries to ld.so.conf.d and conflicting with jack).
|
||||
- Remove the spec code that forced the packages not to provide the
|
||||
jack libraries. They seem to be ready to replace jack libraries
|
||||
now.
|
||||
- Add a pipewire-libjack-0_3-devel package with development files
|
||||
for pipewire's jack replacement.
|
||||
- Enable the libcamera module
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 29 06:12:36 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: pipewire
|
||||
version: 0.3.31
|
||||
mtime: 1624893688
|
||||
commit: 5497d2d907ed8614c2c0b6482ea709cc7314f301
|
||||
version: 0.3.32
|
||||
mtime: 1626779173
|
||||
commit: 41ce3092756ab27106881f4246e54bf32ea5adbe
|
||||
|
||||
|
@ -17,11 +17,6 @@
|
||||
#
|
||||
|
||||
|
||||
%define _use_internal_dependency_generator 0
|
||||
|
||||
%global provfind sh -c "grep -v -e 'libjack.*\\.so' | %__find_provides"
|
||||
%global __find_provides %provfind
|
||||
|
||||
%define apiver 0.3
|
||||
%define apiver_str 0_3
|
||||
%define spa_ver 0.2
|
||||
@ -34,6 +29,12 @@
|
||||
%define with_vulkan 0
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} >= 1550
|
||||
%define with_libcamera 1
|
||||
%else
|
||||
%define with_libcamera 0
|
||||
%endif
|
||||
|
||||
%ifnarch s390 s390x ppc64
|
||||
%define with_ldacBT 1
|
||||
%else
|
||||
@ -44,7 +45,7 @@
|
||||
%bcond_with aptx
|
||||
|
||||
Name: pipewire
|
||||
Version: 0.3.31
|
||||
Version: 0.3.32
|
||||
Release: 0
|
||||
Summary: A Multimedia Framework designed to be an audio and video server and more
|
||||
License: MIT
|
||||
@ -53,6 +54,8 @@ URL: https://pipewire.org/
|
||||
Source0: %{name}-%{version}.tar.xz
|
||||
Source1: %{name}-rpmlintrc
|
||||
Source99: baselibs.conf
|
||||
# PATCH-FIX-UPSTREAM pipewire-fix-libcamera-build.patch fcrozat@suse.com -- Fix build with latest libcamera
|
||||
Patch0: pipewire-fix-libcamera-build.patch
|
||||
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: fdupes
|
||||
@ -65,9 +68,12 @@ BuildRequires: meson
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: xmltoman
|
||||
BuildRequires: pkgconfig(alsa)
|
||||
BuildRequires: pkgconfig(alsa) >= 1.1.7
|
||||
BuildRequires: pkgconfig(avahi-client)
|
||||
BuildRequires: pkgconfig(bluez)
|
||||
%if %{with_libcamera}
|
||||
BuildRequires: pkgconfig(libcamera)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(dbus-1)
|
||||
%if %{with aac}
|
||||
BuildRequires: pkgconfig(fdk-aac)
|
||||
@ -83,6 +89,7 @@ BuildRequires: pkgconfig(gstreamer-audio-1.0)
|
||||
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
|
||||
BuildRequires: pkgconfig(gstreamer-video-1.0)
|
||||
BuildRequires: pkgconfig(jack) >= 1.9.10
|
||||
BuildConflicts: pipewire-libjack-%{apiver_str}-devel
|
||||
%if %{with_ldacBT}
|
||||
BuildRequires: pkgconfig(ldacBT-abr)
|
||||
BuildRequires: pkgconfig(ldacBT-enc)
|
||||
@ -148,6 +155,10 @@ Summary: PipeWire libjack replacement libraries
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires(post): update-alternatives
|
||||
Requires(postun):update-alternatives
|
||||
Conflicts: jack
|
||||
Conflicts: libjack0
|
||||
Conflicts: libjacknet0
|
||||
Conflicts: libjackserver0
|
||||
|
||||
%description libjack-%{apiver_str}
|
||||
PipeWire is a server and user space API to deal with multimedia pipelines.
|
||||
@ -162,6 +173,26 @@ Some of its features include:
|
||||
|
||||
This package provides the PipeWire replacement libraries for libjack.
|
||||
|
||||
%package libjack-%{apiver_str}-devel
|
||||
Summary: Development files for %{name}-libjack-%{apiver_str}
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{name}-libjack-%{apiver_str}
|
||||
Conflicts: libjack-devel
|
||||
|
||||
%description libjack-%{apiver_str}-devel
|
||||
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 replacement development files
|
||||
for libjack.
|
||||
|
||||
%package -n gstreamer-plugin-pipewire
|
||||
Summary: Gstreamer Plugin for PipeWire
|
||||
Group: System/Libraries
|
||||
@ -313,12 +344,19 @@ export CC=gcc-9
|
||||
%else
|
||||
-Dbluez5-codec-aptx=disabled \
|
||||
%endif
|
||||
-Dlibcamera=disabled \
|
||||
%if %{with_ldacBT}
|
||||
-Dbluez5-codec-ldac=enabled \
|
||||
%else
|
||||
-Dbluez5-codec-ldac=disabled \
|
||||
%endif
|
||||
%if %{with_libcamera}
|
||||
-Dlibcamera=enabled \
|
||||
%else
|
||||
-Dlibcamera=disabled \
|
||||
%endif
|
||||
-Dpipewire-jack=enabled \
|
||||
-Djack=enabled \
|
||||
-Djack-devel=enabled \
|
||||
%{nil}
|
||||
%meson_build
|
||||
|
||||
@ -333,6 +371,9 @@ 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}
|
||||
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/
|
||||
echo %{_libdir}/pipewire-%{apiver}/jack/ > %{buildroot}%{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf
|
||||
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
|
||||
for wrapper in pw-jack ; do
|
||||
mv %{buildroot}%{_bindir}/$wrapper %{buildroot}%{_bindir}/$wrapper-%{apiver}
|
||||
@ -482,7 +523,6 @@ fi
|
||||
%{_datadir}/pipewire/pipewire.conf
|
||||
%{_datadir}/pipewire/client.conf
|
||||
%{_datadir}/pipewire/client-rt.conf
|
||||
%{_datadir}/pipewire/jack.conf
|
||||
%{_datadir}/pipewire/pipewire-pulse.conf
|
||||
%ghost %dir %{_localstatedir}/lib/pipewire
|
||||
%ghost %{_localstatedir}/lib/pipewire/pipewire_post_workaround
|
||||
@ -496,9 +536,6 @@ fi
|
||||
%{_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
|
||||
@ -508,15 +545,25 @@ fi
|
||||
|
||||
%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*
|
||||
%{_libdir}/pipewire-%{apiver}/jack/libjack.so.*
|
||||
%{_libdir}/pipewire-%{apiver}/jack/libjacknet.so.*
|
||||
%{_libdir}/pipewire-%{apiver}/jack/libjackserver.so.*
|
||||
%ghost %{_sysconfdir}/alternatives/pw-jack
|
||||
%ghost %{_sysconfdir}/alternatives/pw-jack.1%{ext_man}
|
||||
%{_bindir}/pw-jack-%{apiver}
|
||||
%{_bindir}/pw-jack
|
||||
%{_mandir}/man1/pw-jack-%{apiver}.1%{ext_man}
|
||||
%{_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
|
||||
%{_includedir}/jack
|
||||
%{_libdir}/pipewire-%{apiver}/jack/libjack.so
|
||||
%{_libdir}/pipewire-%{apiver}/jack/libjacknet.so
|
||||
%{_libdir}/pipewire-%{apiver}/jack/libjackserver.so
|
||||
%{_libdir}/pkgconfig/jack.pc
|
||||
|
||||
%files -n gstreamer-plugin-pipewire
|
||||
%{_libdir}/gstreamer-1.0/libgstpipewire.so
|
||||
@ -596,6 +643,9 @@ fi
|
||||
%{_libdir}/spa-%{spa_ver}/control/libspa-control.so
|
||||
%{_libdir}/spa-%{spa_ver}/ffmpeg/libspa-ffmpeg.so
|
||||
%{_libdir}/spa-%{spa_ver}/jack/libspa-jack.so
|
||||
%if %{with_libcamera}
|
||||
%{_libdir}/spa-%{spa_ver}/libcamera/libspa-libcamera.so
|
||||
%endif
|
||||
%{_libdir}/spa-%{spa_ver}/support/libspa-dbus.so
|
||||
%{_libdir}/spa-%{spa_ver}/support/libspa-journal.so
|
||||
%{_libdir}/spa-%{spa_ver}/support/libspa-support.so
|
||||
@ -618,6 +668,9 @@ fi
|
||||
%dir %{_libdir}/spa-%{spa_ver}/volume
|
||||
%dir %{_libdir}/spa-%{spa_ver}/ffmpeg
|
||||
%dir %{_libdir}/spa-%{spa_ver}/jack
|
||||
%if %{with_libcamera}
|
||||
%dir %{_libdir}/spa-%{spa_ver}/libcamera
|
||||
%endif
|
||||
%dir %{_libdir}/spa-%{spa_ver}/support
|
||||
%dir %{_libdir}/spa-%{spa_ver}/v4l2
|
||||
%dir %{_libdir}/spa-%{spa_ver}/videoconvert
|
||||
@ -642,6 +695,7 @@ 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
|
||||
@ -655,6 +709,7 @@ 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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user