Accepting request 1225842 from X11:XOrg
- Update to release 24.3.0 --> https://docs.mesa3d.org/relnotes/24.3.0 - Update to release 24.3.0~rc2 --> https://www.phoronix.com/news/Mesa-24.3-rc2 - Update to release 24.3.0~rc1 --> https://www.phoronix.com/news/Mesa-24.3-rc1-Released - refreshed patches: * n_drirc-disable-rgb10-for-chromium-on-amd.patch * python36-buildfix1.patch * python36-buildfix2.patch * tlsdesc_test.patch * u_mesa-CVE-2023-45913.patch * u_mesa-CVE-2023-45919.patch * u_mesa-CVE-2023-45922.patch * u_dep_xcb.patch - drop no longer supported options: * -Ddri3=enabled * -Ddri-search-path=%{_libdir}/dri - new files added in this update currently packaged as part of Mesa-dri: * %{_libdir}/gbm/dri_gbm.so OBS-URL: https://build.opensuse.org/request/show/1225842 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/Mesa?expand=0&rev=522
This commit is contained in:
commit
c2c6e4b459
29
Mesa.changes
29
Mesa.changes
@ -1,3 +1,32 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Nov 22 10:35:29 UTC 2024 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
|
- Update to release 24.3.0
|
||||||
|
--> https://docs.mesa3d.org/relnotes/24.3.0
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 21 05:09:35 UTC 2024 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
|
- Update to release 24.3.0~rc2
|
||||||
|
--> https://www.phoronix.com/news/Mesa-24.3-rc2
|
||||||
|
- Update to release 24.3.0~rc1
|
||||||
|
--> https://www.phoronix.com/news/Mesa-24.3-rc1-Released
|
||||||
|
- refreshed patches:
|
||||||
|
* n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
||||||
|
* python36-buildfix1.patch
|
||||||
|
* python36-buildfix2.patch
|
||||||
|
* tlsdesc_test.patch
|
||||||
|
* u_mesa-CVE-2023-45913.patch
|
||||||
|
* u_mesa-CVE-2023-45919.patch
|
||||||
|
* u_mesa-CVE-2023-45922.patch
|
||||||
|
* u_dep_xcb.patch
|
||||||
|
- drop no longer supported options:
|
||||||
|
* -Ddri3=enabled
|
||||||
|
* -Ddri-search-path=%{_libdir}/dri
|
||||||
|
- new files added in this update currently packaged as part of
|
||||||
|
Mesa-dri:
|
||||||
|
* %{_libdir}/gbm/dri_gbm.so
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Nov 19 12:48:59 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
Tue Nov 19 12:48:59 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
15
Mesa.spec
15
Mesa.spec
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
%define glamor 1
|
%define glamor 1
|
||||||
%define _name_archive mesa
|
%define _name_archive mesa
|
||||||
%define _version 24.2.7
|
%define _version 24.3.0
|
||||||
%define with_opencl 0
|
%define with_opencl 0
|
||||||
%define with_rusticl 0
|
%define with_rusticl 0
|
||||||
%define with_vulkan 0
|
%define with_vulkan 0
|
||||||
@ -145,7 +145,7 @@
|
|||||||
%global _paste_crate_ver 1.0.14
|
%global _paste_crate_ver 1.0.14
|
||||||
|
|
||||||
Name: Mesa%{psuffix}
|
Name: Mesa%{psuffix}
|
||||||
Version: 24.2.7
|
Version: 24.3.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: System for rendering 3-D graphics
|
Summary: System for rendering 3-D graphics
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -181,9 +181,9 @@ Patch14: python36-buildfix2.patch
|
|||||||
Patch17: tlsdesc_test.patch
|
Patch17: tlsdesc_test.patch
|
||||||
# never to be upstreamed
|
# never to be upstreamed
|
||||||
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
||||||
Patch58: u_dep_xcb.patch
|
|
||||||
Patch100: U_fix-mpeg1_2-decode-mesa-20.2.patch
|
Patch100: U_fix-mpeg1_2-decode-mesa-20.2.patch
|
||||||
Patch400: n_stop-iris-flicker.patch
|
Patch400: n_stop-iris-flicker.patch
|
||||||
|
Patch500: u_dep_xcb.patch
|
||||||
Patch1222040: u_mesa-CVE-2023-45913.patch
|
Patch1222040: u_mesa-CVE-2023-45913.patch
|
||||||
Patch1222041: u_mesa-CVE-2023-45919.patch
|
Patch1222041: u_mesa-CVE-2023-45919.patch
|
||||||
Patch1222042: u_mesa-CVE-2023-45922.patch
|
Patch1222042: u_mesa-CVE-2023-45922.patch
|
||||||
@ -848,9 +848,9 @@ cp %{SOURCE6} subprojects/packagecache/
|
|||||||
%if 0%{?suse_version} < 1550
|
%if 0%{?suse_version} < 1550
|
||||||
%patch -P 54 -p1
|
%patch -P 54 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch -P 58 -p1
|
|
||||||
%patch -P 100 -p1
|
%patch -P 100 -p1
|
||||||
%patch -P 400 -p1
|
%patch -P 400 -p1
|
||||||
|
%patch -P 500 -p1
|
||||||
%patch -P 1222040 -p1
|
%patch -P 1222040 -p1
|
||||||
%patch -P 1222041 -p1
|
%patch -P 1222041 -p1
|
||||||
%patch -P 1222042 -p1
|
%patch -P 1222042 -p1
|
||||||
@ -895,13 +895,12 @@ egl_platforms=x11,wayland
|
|||||||
-Dvulkan-drivers= \
|
-Dvulkan-drivers= \
|
||||||
%endif
|
%endif
|
||||||
-Dxlib-lease=enabled \
|
-Dxlib-lease=enabled \
|
||||||
-Dglvnd=true \
|
-Dglvnd=enabled \
|
||||||
-Dgles1=enabled \
|
-Dgles1=enabled \
|
||||||
-Dgles2=enabled \
|
-Dgles2=enabled \
|
||||||
-Degl=enabled \
|
-Degl=enabled \
|
||||||
-Dallow-kcmp=enabled \
|
-Dallow-kcmp=enabled \
|
||||||
-Dplatforms=$egl_platforms \
|
-Dplatforms=$egl_platforms \
|
||||||
-Ddri3=enabled \
|
|
||||||
-Dshared-glapi=enabled \
|
-Dshared-glapi=enabled \
|
||||||
%if 0%{?with_nine}
|
%if 0%{?with_nine}
|
||||||
-Dgallium-nine=true \
|
-Dgallium-nine=true \
|
||||||
@ -919,7 +918,6 @@ egl_platforms=x11,wayland
|
|||||||
-Drust_std=2021 \
|
-Drust_std=2021 \
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
-Ddri-search-path=%{_libdir}/dri \
|
|
||||||
%if 0%{with_llvm}
|
%if 0%{with_llvm}
|
||||||
-Dllvm=enabled \
|
-Dllvm=enabled \
|
||||||
-Dshared-llvm=enabled \
|
-Dshared-llvm=enabled \
|
||||||
@ -1035,6 +1033,7 @@ rm -rf %{buildroot}/%{_datadir}/drirc.d
|
|||||||
|
|
||||||
rm -f %{buildroot}/%{_libdir}/dri/*_dri.so
|
rm -f %{buildroot}/%{_libdir}/dri/*_dri.so
|
||||||
rm -f %{buildroot}%{_libdir}/libgallium-*.so
|
rm -f %{buildroot}%{_libdir}/libgallium-*.so
|
||||||
|
rm -rf %{buildroot}%{_libdir}/gbm/
|
||||||
|
|
||||||
rm -f %{buildroot}%{_libdir}/libGLES*
|
rm -f %{buildroot}%{_libdir}/libGLES*
|
||||||
# glvnd needs a default provider for indirect rendering where it cannot
|
# glvnd needs a default provider for indirect rendering where it cannot
|
||||||
@ -1224,6 +1223,8 @@ echo "The \"Mesa\" package does not have the ability to render, but is supplemen
|
|||||||
%exclude %{_libdir}/dri/vc4_dri.so
|
%exclude %{_libdir}/dri/vc4_dri.so
|
||||||
%endif
|
%endif
|
||||||
%{_libdir}/libgallium-%{_version}.so
|
%{_libdir}/libgallium-%{_version}.so
|
||||||
|
%dir %{_libdir}/gbm/
|
||||||
|
%{_libdir}/gbm/dri_gbm.so
|
||||||
|
|
||||||
%if 0%{with_opencl}
|
%if 0%{with_opencl}
|
||||||
# only built with opencl
|
# only built with opencl
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:a0ce37228679647268a83b3652d859dcf23d6f6430d751489d4464f6de6459fd
|
|
||||||
size 29589968
|
|
Binary file not shown.
3
mesa-24.3.0.tar.xz
Normal file
3
mesa-24.3.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:97813fe65028ef21b4d4e54164563059e8408d8fee3489a2323468d198bf2efc
|
||||||
|
size 30566304
|
BIN
mesa-24.3.0.tar.xz.sig
Normal file
BIN
mesa-24.3.0.tar.xz.sig
Normal file
Binary file not shown.
@ -1,8 +1,8 @@
|
|||||||
Index: mesa-23.2.0-rc4/src/util/00-mesa-defaults.conf
|
Index: mesa-24.3.0-rc1/src/util/00-mesa-defaults.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- mesa-23.2.0-rc4.orig/src/util/00-mesa-defaults.conf
|
--- mesa-24.3.0-rc1.orig/src/util/00-mesa-defaults.conf
|
||||||
+++ mesa-23.2.0-rc4/src/util/00-mesa-defaults.conf
|
+++ mesa-24.3.0-rc1/src/util/00-mesa-defaults.conf
|
||||||
@@ -956,6 +956,14 @@ TODO: document the other workarounds.
|
@@ -1040,6 +1040,14 @@ TODO: document the other workarounds.
|
||||||
<application name="Rocket League" executable="RocketLeague">
|
<application name="Rocket League" executable="RocketLeague">
|
||||||
<option name="radeonsi_zerovram" value="true" />
|
<option name="radeonsi_zerovram" value="true" />
|
||||||
</application>
|
</application>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: mesa-24.1.0/src/nouveau/headers/class_parser.py
|
Index: mesa-24.3.0-rc1/src/nouveau/headers/class_parser.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- mesa-24.1.0.orig/src/nouveau/headers/class_parser.py
|
--- mesa-24.3.0-rc1.orig/src/nouveau/headers/class_parser.py
|
||||||
+++ mesa-24.1.0/src/nouveau/headers/class_parser.py
|
+++ mesa-24.3.0-rc1/src/nouveau/headers/class_parser.py
|
||||||
@@ -9,6 +9,16 @@ import sys
|
@@ -11,6 +11,16 @@ import subprocess
|
||||||
|
|
||||||
from mako.template import Template
|
from mako.template import Template
|
||||||
|
|
||||||
@ -17,9 +17,9 @@ Index: mesa-24.1.0/src/nouveau/headers/class_parser.py
|
|||||||
+ return s
|
+ return s
|
||||||
+
|
+
|
||||||
METHOD_ARRAY_SIZES = {
|
METHOD_ARRAY_SIZES = {
|
||||||
'BIND_GROUP_CONSTANT_BUFFER' : 16,
|
'BIND_GROUP_CONSTANT_BUFFER' : 16,
|
||||||
'CALL_MME_DATA' : 256,
|
'CALL_MME_DATA' : 256,
|
||||||
@@ -293,7 +303,7 @@ def parse_header(nvcl, f):
|
@@ -425,7 +435,7 @@ def parse_header(nvcl, f):
|
||||||
if ":" in list[2]:
|
if ":" in list[2]:
|
||||||
state = 1
|
state = 1
|
||||||
elif teststr in list[1]:
|
elif teststr in list[1]:
|
||||||
@ -28,7 +28,7 @@ Index: mesa-24.1.0/src/nouveau/headers/class_parser.py
|
|||||||
else:
|
else:
|
||||||
state = 1
|
state = 1
|
||||||
|
|
||||||
@@ -303,7 +313,7 @@ def parse_header(nvcl, f):
|
@@ -435,7 +445,7 @@ def parse_header(nvcl, f):
|
||||||
if ("0x" in list[2]):
|
if ("0x" in list[2]):
|
||||||
state = 1
|
state = 1
|
||||||
else:
|
else:
|
||||||
@ -37,7 +37,7 @@ Index: mesa-24.1.0/src/nouveau/headers/class_parser.py
|
|||||||
bitfield = list[2].split(":")
|
bitfield = list[2].split(":")
|
||||||
curmthd.field_name_start[field] = bitfield[1]
|
curmthd.field_name_start[field] = bitfield[1]
|
||||||
curmthd.field_name_end[field] = bitfield[0]
|
curmthd.field_name_end[field] = bitfield[0]
|
||||||
@@ -324,13 +334,13 @@ def parse_header(nvcl, f):
|
@@ -456,13 +466,13 @@ def parse_header(nvcl, f):
|
||||||
is_array = 0
|
is_array = 0
|
||||||
if (':' in list[2]):
|
if (':' in list[2]):
|
||||||
continue
|
continue
|
||||||
@ -54,7 +54,7 @@ Index: mesa-24.1.0/src/nouveau/headers/class_parser.py
|
|||||||
x = method()
|
x = method()
|
||||||
x.name = name
|
x.name = name
|
||||||
x.addr = list[2]
|
x.addr = list[2]
|
||||||
@@ -357,8 +367,8 @@ def main():
|
@@ -552,8 +562,8 @@ def main():
|
||||||
|
|
||||||
clheader = os.path.basename(args.in_h)
|
clheader = os.path.basename(args.in_h)
|
||||||
nvcl = clheader
|
nvcl = clheader
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
--- mesa-23.3.3/src/freedreno/registers/gen_header.py.orig 2024-01-20 14:01:30.261999839 +0100
|
Index: mesa-24.3.0-rc1/src/freedreno/registers/gen_header.py
|
||||||
+++ mesa-23.3.3/src/freedreno/registers/gen_header.py 2024-01-20 14:01:57.678558692 +0100
|
===================================================================
|
||||||
@@ -781,7 +781,7 @@ def main():
|
--- mesa-24.3.0-rc1.orig/src/freedreno/registers/gen_header.py
|
||||||
|
+++ mesa-24.3.0-rc1/src/freedreno/registers/gen_header.py
|
||||||
|
@@ -957,7 +957,7 @@ def main():
|
||||||
parser.add_argument('--rnn', type=str, required=True)
|
parser.add_argument('--rnn', type=str, required=True)
|
||||||
parser.add_argument('--xml', type=str, required=True)
|
parser.add_argument('--xml', type=str, required=True)
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
LTO defeats the -fpic workaround and enables TLS relaxation anyway
|
LTO defeats the -fpic workaround and enables TLS relaxation anyway
|
||||||
|
|
||||||
Index: mesa-24.2.2/meson.build
|
Index: mesa-24.3.0-rc1/meson.build
|
||||||
===================================================================
|
===================================================================
|
||||||
--- mesa-24.2.2.orig/meson.build
|
--- mesa-24.3.0-rc1.orig/meson.build
|
||||||
+++ mesa-24.2.2/meson.build
|
+++ mesa-24.3.0-rc1/meson.build
|
||||||
@@ -507,7 +507,7 @@ if not have_mtls_dialect
|
@@ -516,7 +516,7 @@ if not have_mtls_dialect
|
||||||
foreach tlsdesc_arg : ['-mtls-dialect=gnu2', '-mtls-dialect=desc']
|
foreach tlsdesc_arg : ['-mtls-dialect=gnu2', '-mtls-dialect=desc']
|
||||||
# -fpic to force dynamic tls, otherwise TLS relaxation defeats check
|
# -fpic to force dynamic tls, otherwise TLS relaxation defeats check
|
||||||
tlsdesc_test = cc.run('int __thread x; int main() { return x; }',
|
tlsdesc_test = cc.run('int __thread x; int main() { return x; }',
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
Index: mesa-24.2.2/meson.build
|
Index: mesa-24.3.0/meson.build
|
||||||
===================================================================
|
===================================================================
|
||||||
--- mesa-24.2.2.orig/meson.build
|
--- mesa-24.3.0.orig/meson.build
|
||||||
+++ mesa-24.2.2/meson.build
|
+++ mesa-24.3.0/meson.build
|
||||||
@@ -2145,9 +2145,11 @@ if with_platform_x11
|
@@ -2103,8 +2103,10 @@ if with_platform_x11
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
if with_any_vk or with_egl or (with_glx == 'dri' and with_dri_platform == 'drm')
|
if with_dri_platform == 'drm'
|
||||||
+ dep_x11_xcb = dependency('x11-xcb')
|
+ dep_x11_xcb = dependency('x11-xcb')
|
||||||
dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8')
|
dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8', required : with_x11_dri2)
|
||||||
|
|
||||||
if with_dri3
|
+ dep_xcb = dependency('xcb')
|
||||||
+ dep_xcb = dependency('xcb')
|
dep_xcb_dri3 = dependency('xcb-dri3', version : '>= 1.13')
|
||||||
dep_xcb_dri3 = dependency('xcb-dri3')
|
dep_xcb_present = dependency('xcb-present', version : '>= 1.13')
|
||||||
dep_xcb_present = dependency('xcb-present')
|
if (dep_xcb_dri3.version().version_compare('>= 1.17') and
|
||||||
# until xcb-dri3 has been around long enough to make a hard-dependency:
|
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
src/glx/dri2_glx.c | 2 +-
|
src/glx/dri2_glx.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
--- a/src/glx/dri2_glx.c
|
Index: mesa-24.3.0-rc1/src/glx/dri2_glx.c
|
||||||
+++ b/src/glx/dri2_glx.c
|
===================================================================
|
||||||
@@ -1399,7 +1399,7 @@ dri2GetGlxDrawableFromXDrawableId(Displa
|
--- mesa-24.3.0-rc1.orig/src/glx/dri2_glx.c
|
||||||
struct dri2_display *pdp = (struct dri2_display *) d->dri2Display;
|
+++ mesa-24.3.0-rc1/src/glx/dri2_glx.c
|
||||||
|
@@ -756,7 +756,7 @@ dri2GetGlxDrawableFromXDrawableId(Displa
|
||||||
|
struct glx_display *d = __glXInitialize(dpy);
|
||||||
__GLXDRIdrawable *pdraw;
|
__GLXDRIdrawable *pdraw;
|
||||||
|
|
||||||
- if (__glxHashLookup(pdp->dri2Hash, id, (void *) &pdraw) == 0)
|
- if (__glxHashLookup(d->dri2Hash, id, (void *) &pdraw) == 0)
|
||||||
+ if (pdp && __glxHashLookup(pdp->dri2Hash, id, (void *) &pdraw) == 0)
|
+ if (d && __glxHashLookup(d->dri2Hash, id, (void *) &pdraw) == 0)
|
||||||
return pdraw;
|
return pdraw;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
src/glx/glx_query.c | 13 +++++++++++++
|
src/glx/glx_query.c | 13 +++++++++++++
|
||||||
1 file changed, 13 insertions(+)
|
1 file changed, 13 insertions(+)
|
||||||
--- a/src/glx/glx_query.c
|
Index: mesa-24.3.0-rc1/src/glx/glx_query.c
|
||||||
+++ b/src/glx/glx_query.c
|
===================================================================
|
||||||
@@ -53,6 +53,13 @@ __glXQueryServerString(Display * dpy, in
|
--- mesa-24.3.0-rc1.orig/src/glx/glx_query.c
|
||||||
|
+++ mesa-24.3.0-rc1/src/glx/glx_query.c
|
||||||
|
@@ -56,6 +56,13 @@ __glXQueryServerString(Display * dpy, CA
|
||||||
/* The spec doesn't mention this, but the Xorg server replies with
|
/* The spec doesn't mention this, but the Xorg server replies with
|
||||||
* a string already terminated with '\0'. */
|
* a string already terminated with '\0'. */
|
||||||
uint32_t len = xcb_glx_query_server_string_string_length(reply);
|
uint32_t len = xcb_glx_query_server_string_string_length(reply);
|
||||||
@ -16,7 +18,7 @@
|
|||||||
char *buf = malloc(len);
|
char *buf = malloc(len);
|
||||||
memcpy(buf, xcb_glx_query_server_string_string(reply), len);
|
memcpy(buf, xcb_glx_query_server_string_string(reply), len);
|
||||||
free(reply);
|
free(reply);
|
||||||
@@ -77,6 +84,12 @@ __glXGetString(Display * dpy, int opcode
|
@@ -83,6 +90,12 @@ __glXGetString(Display * dpy, CARD32 con
|
||||||
/* The spec doesn't mention this, but the Xorg server replies with
|
/* The spec doesn't mention this, but the Xorg server replies with
|
||||||
* a string already terminated with '\0'. */
|
* a string already terminated with '\0'. */
|
||||||
uint32_t len = xcb_glx_get_string_string_length(reply);
|
uint32_t len = xcb_glx_get_string_string_length(reply);
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
src/glx/glx_pbuffer.c | 2 +-
|
src/glx/glx_pbuffer.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
Index: mesa-24.2.3/src/glx/glx_pbuffer.c
|
Index: mesa-24.3.0-rc1/src/glx/glx_pbuffer.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- mesa-24.2.3.orig/src/glx/glx_pbuffer.c
|
--- mesa-24.3.0-rc1.orig/src/glx/glx_pbuffer.c
|
||||||
+++ mesa-24.2.3/src/glx/glx_pbuffer.c
|
+++ mesa-24.3.0-rc1/src/glx/glx_pbuffer.c
|
||||||
@@ -329,7 +329,7 @@ __glXGetDrawableAttribute(Display * dpy,
|
@@ -338,7 +338,7 @@ __glXGetDrawableAttribute(Display * dpy,
|
||||||
/* Search the set of returned attributes for the attribute requested by
|
/* Search the set of returned attributes for the attribute requested by
|
||||||
* the caller.
|
* the caller.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user