+44
@@ -0,0 +1,44 @@
|
|||||||
|
https://invent.kde.org/utilities/ark/-/commit/785640b090b51e0067dbfc6c7944a478429204a2
|
||||||
|
|
||||||
|
From 785640b090b51e0067dbfc6c7944a478429204a2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elvis Angelaccio <elvis.angelaccio@kde.org>
|
||||||
|
Date: Sat, 14 Oct 2023 17:34:10 +0200
|
||||||
|
Subject: [PATCH] Don't hardcode bzip2 mimetype in tests
|
||||||
|
|
||||||
|
Just take the name from QMimeDatabase, since it changes depending on
|
||||||
|
whether we are using a shared-mime-info >= 2.3
|
||||||
|
--- a/autotests/kerfuffle/adddialogtest.cpp
|
||||||
|
+++ b/autotests/kerfuffle/adddialogtest.cpp
|
||||||
|
@@ -37,7 +37,7 @@ void AddDialogTest::testBasicWidgets_data()
|
||||||
|
|
||||||
|
QTest::newRow("tar") << QStringLiteral("application/x-tar") << false << -1 << -1;
|
||||||
|
QTest::newRow("targzip") << QStringLiteral("application/x-compressed-tar") << true << 3 << 7;
|
||||||
|
- QTest::newRow("tarbzip") << QStringLiteral("application/x-bzip-compressed-tar") << true << 3 << 7;
|
||||||
|
+ QTest::newRow("tarbzip") << QMimeDatabase().mimeTypeForFile(QStringLiteral("dummy.tar.bz2"), QMimeDatabase::MatchExtension).name() << true << 3 << 7;
|
||||||
|
QTest::newRow("tarZ") << QStringLiteral("application/x-tarz") << false << -1 << -1;
|
||||||
|
QTest::newRow("tarxz") << QStringLiteral("application/x-xz-compressed-tar") << true << 3 << 7;
|
||||||
|
QTest::newRow("tarlzma") << QStringLiteral("application/x-lzma-compressed-tar") << true << 3 << 7;
|
||||||
|
--- a/autotests/kerfuffle/createdialogtest.cpp
|
||||||
|
+++ b/autotests/kerfuffle/createdialogtest.cpp
|
||||||
|
@@ -38,7 +38,7 @@ void CreateDialogTest::testBasicWidgets_data()
|
||||||
|
|
||||||
|
QTest::newRow("tar") << QStringLiteral("application/x-tar");
|
||||||
|
QTest::newRow("targzip") << QStringLiteral("application/x-compressed-tar");
|
||||||
|
- QTest::newRow("tarbzip") << QStringLiteral("application/x-bzip-compressed-tar");
|
||||||
|
+ QTest::newRow("tarbzip") << QMimeDatabase().mimeTypeForFile(QStringLiteral("dummy.tar.bz2"), QMimeDatabase::MatchExtension).name();
|
||||||
|
QTest::newRow("tarZ") << QStringLiteral("application/x-tarz");
|
||||||
|
QTest::newRow("tarxz") << QStringLiteral("application/x-xz-compressed-tar");
|
||||||
|
QTest::newRow("tarlzma") << QStringLiteral("application/x-lzma-compressed-tar");
|
||||||
|
--- a/autotests/kerfuffle/mimetypetest.cpp
|
||||||
|
+++ b/autotests/kerfuffle/mimetypetest.cpp
|
||||||
|
@@ -30,7 +30,7 @@ void MimeTypeTest::testMimeTypeDetection_data()
|
||||||
|
QTest::addColumn<QString>("expectedMimeType");
|
||||||
|
|
||||||
|
const QString compressedGzipTarMime = QStringLiteral("application/x-compressed-tar");
|
||||||
|
- const QString compressedBzip2TarMime = QStringLiteral("application/x-bzip-compressed-tar");
|
||||||
|
+ const QString compressedBzip2TarMime = QMimeDatabase().mimeTypeForFile(QStringLiteral("dummy.tar.bz2"), QMimeDatabase::MatchExtension).name();
|
||||||
|
const QString compressedXzTarMime = QStringLiteral("application/x-xz-compressed-tar");
|
||||||
|
const QString compressedLzmaTarMime = QStringLiteral("application/x-lzma-compressed-tar");
|
||||||
|
const QString compressedZTarMime = QStringLiteral("application/x-tarz");
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
https://invent.kde.org/utilities/ark/-/commit/62d94c62f2fd2052be91dfe565e35a6d43c7d381
|
||||||
|
|
||||||
|
From 62d94c62f2fd2052be91dfe565e35a6d43c7d381 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elvis Angelaccio <elvis.angelaccio@kde.org>
|
||||||
|
Date: Sat, 14 Oct 2023 15:21:53 +0200
|
||||||
|
Subject: [PATCH] Explicitly support new application/vnd.efi.iso mimetype
|
||||||
|
|
||||||
|
It has been introduced by the new shared-mime-info 2.3 release. The old
|
||||||
|
application/x-cd-image is kept as alias (so ark could still open ISO
|
||||||
|
files just fine), but it broke our mimetype unit test.
|
||||||
|
|
||||||
|
While at it, we explicitly add the new entry to the list of supported
|
||||||
|
mimetypes.
|
||||||
|
--- a/autotests/kerfuffle/mimetypetest.cpp
|
||||||
|
+++ b/autotests/kerfuffle/mimetypetest.cpp
|
||||||
|
@@ -38,7 +38,7 @@ void MimeTypeTest::testMimeTypeDetection_data()
|
||||||
|
const QString compressedLzopTarMime = QStringLiteral("application/x-tzo");
|
||||||
|
const QString compressedLrzipTarMime = QStringLiteral("application/x-lrzip-compressed-tar");
|
||||||
|
const QString compressedLz4TarMime = QStringLiteral("application/x-lz4-compressed-tar");
|
||||||
|
- const QString isoMimeType = QStringLiteral("application/x-cd-image");
|
||||||
|
+ const QString isoMimeType = QMimeDatabase().mimeTypeForFile(QStringLiteral("dummy.iso"), QMimeDatabase::MatchExtension).name();
|
||||||
|
const QString debMimeType = QMimeDatabase().mimeTypeForFile(QStringLiteral("dummy.deb"), QMimeDatabase::MatchExtension).name();
|
||||||
|
const QString xarMimeType = QStringLiteral("application/x-xar");
|
||||||
|
const QString appImageMimeType = QStringLiteral("application/x-iso9660-appimage");
|
||||||
|
--- a/plugins/libarchive/kerfuffle_libarchive_readonly.json.cmake
|
||||||
|
+++ b/plugins/libarchive/kerfuffle_libarchive_readonly.json.cmake
|
||||||
|
@@ -71,6 +71,7 @@
|
||||||
|
"application/x-lzop",
|
||||||
|
"application/x-source-rpm",
|
||||||
|
"application/vnd.debian.binary-package",
|
||||||
|
+ "application/vnd.efi.iso",
|
||||||
|
"application/vnd.ms-cab-compressed",
|
||||||
|
"application/x-xar",
|
||||||
|
"application/x-iso9660-appimage",
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
+44
@@ -0,0 +1,44 @@
|
|||||||
|
https://invent.kde.org/utilities/ark/-/commit/dac14f552fb147bf4c9f759611cdb3b544a500b9
|
||||||
|
|
||||||
|
From dac14f552fb147bf4c9f759611cdb3b544a500b9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elvis Angelaccio <elvis.angelaccio@kde.org>
|
||||||
|
Date: Sat, 14 Oct 2023 18:58:22 +0200
|
||||||
|
Subject: [PATCH] Fix checks using old ISO mimetype
|
||||||
|
|
||||||
|
The inherits() method doesn't work with mimetype aliases, and since shared-mime-info 2.3
|
||||||
|
application/x-cd-image is an alias of application/vnd.efi.img
|
||||||
|
--- a/kerfuffle/mimetypes.cpp
|
||||||
|
+++ b/kerfuffle/mimetypes.cpp
|
||||||
|
@@ -104,7 +104,8 @@ QMimeType determineMimeType(const QString& filename, MimePreference mp)
|
||||||
|
}
|
||||||
|
|
||||||
|
// #354344: ISO files are currently wrongly detected-by-content.
|
||||||
|
- if (mimeFromExtension.inherits(QStringLiteral("application/x-cd-image"))) {
|
||||||
|
+ // TODO: drop application/x-cd-image once all distributions ship shared-mime-info >= 2.3
|
||||||
|
+ if (mimeFromExtension.inherits(QStringLiteral("application/vnd.efi.img")) || mimeFromExtension.inherits(QStringLiteral("application/x-cd-image"))) {
|
||||||
|
return mimeFromExtension;
|
||||||
|
}
|
||||||
|
|
||||||
|
--- a/part/part.cpp
|
||||||
|
+++ b/part/part.cpp
|
||||||
|
@@ -926,7 +926,9 @@ void Part::slotCompleted()
|
||||||
|
qCWarning(ARK) << "No entry listed by the plugin";
|
||||||
|
displayMsgWidget(KMessageWidget::Warning, xi18nc("@info", "The archive is empty or Ark could not open its content."));
|
||||||
|
} else if (m_model->rowCount() == 1 &&
|
||||||
|
- m_model->archive()->mimeType().inherits(QStringLiteral("application/x-cd-image")) &&
|
||||||
|
+ // TODO: drop application/x-cd-image once all distributions ship shared-mime-info >= 2.3
|
||||||
|
+ (m_model->archive()->mimeType().inherits(QStringLiteral("application/x-cd-image")) ||
|
||||||
|
+ m_model->archive()->mimeType().inherits(QStringLiteral("application/vnd.efi.img"))) &&
|
||||||
|
m_model->entryForIndex(m_model->index(0, 0))->fullPath() == QLatin1String("README.TXT")) {
|
||||||
|
qCWarning(ARK) << "Detected ISO image with UDF filesystem";
|
||||||
|
displayMsgWidget(KMessageWidget::Warning, xi18nc("@info", "Ark does not currently support ISO files with UDF filesystem."));
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Questions or comments?
|
||||||
|
Please feel free to contact us.
|
||||||
|
|
||||||
|
© 2001–2022 Gentoo Foundation, Inc.
|
||||||
|
Gentoo is a trademark of the Gentoo Foundation, Inc. The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-4.0 license. The Gentoo Name and Logo Usage Guidelines apply.
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
https://invent.kde.org/utilities/ark/-/commit/9bcbcb056c43abef88540c54f25bc6c1a78c7c0e
|
||||||
|
|
||||||
|
From 9bcbcb056c43abef88540c54f25bc6c1a78c7c0e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elvis Angelaccio <elvis.angelaccio@kde.org>
|
||||||
|
Date: Sat, 14 Oct 2023 17:07:16 +0200
|
||||||
|
Subject: [PATCH] Fix support for bzip2 format with shared-mime-info 2.3
|
||||||
|
|
||||||
|
shared-mime-info 2.3 explicitly separated the mimetypes for bzip2 archives
|
||||||
|
from the mimetypes for the (old and deprecated) bzip archives.
|
||||||
|
|
||||||
|
libarchive doesn't support the old bzip format, however we can't just
|
||||||
|
drop it from ark since we still need it on systems that use an old
|
||||||
|
shared-mime-info package.
|
||||||
|
|
||||||
|
So for now we drop it only when we are sure that we are using a
|
||||||
|
shared-mime-info >= 2.3
|
||||||
|
--- a/kerfuffle/mimetypes.cpp
|
||||||
|
+++ b/kerfuffle/mimetypes.cpp
|
||||||
|
@@ -76,6 +76,8 @@ QMimeType determineMimeType(const QString& filename, MimePreference mp)
|
||||||
|
mimeFromContent == db.mimeTypeForName(QStringLiteral("application/gzip"))) ||
|
||||||
|
(mimeFromExtension.inherits(QStringLiteral("application/x-bzip-compressed-tar")) &&
|
||||||
|
mimeFromContent == db.mimeTypeForName(QStringLiteral("application/x-bzip"))) ||
|
||||||
|
+ (mimeFromExtension.inherits(QStringLiteral("application/x-bzip2-compressed-tar")) &&
|
||||||
|
+ mimeFromContent == db.mimeTypeForName(QStringLiteral("application/x-bzip2"))) ||
|
||||||
|
(mimeFromExtension.inherits(QStringLiteral("application/x-xz-compressed-tar")) &&
|
||||||
|
mimeFromContent == db.mimeTypeForName(QStringLiteral("application/x-xz"))) ||
|
||||||
|
(mimeFromExtension.inherits(QStringLiteral("application/x-tarz")) &&
|
||||||
|
--- a/kerfuffle/pluginmanager.cpp
|
||||||
|
+++ b/kerfuffle/pluginmanager.cpp
|
||||||
|
@@ -165,6 +165,18 @@ QStringList PluginManager::supportedWriteMimeTypes(MimeSortingMode mode) const
|
||||||
|
supported.remove(QStringLiteral("application/x-tzo"));
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // shared-mime-info 2.3 explicitly separated application/x-bzip2-compressed-tar from application/x-bzip-compressed-tar
|
||||||
|
+ // since bzip2 is not compatible with the old (and deprecated) bzip format.
|
||||||
|
+ // See https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/239
|
||||||
|
+ // With shared-mime-info 2.3 (or newer) we can't have both mimetypes at the same time, since libarchive does not support
|
||||||
|
+ // the old deprecated bzip format. Also we can't know which version of shared-mime-info the system is actually using.
|
||||||
|
+ // For these reasons, just take the mimetype from QMimeDatabase to keep the compatibility with any shared-mime-info version.
|
||||||
|
+ if (supported.contains(QLatin1String("application/x-bzip-compressed-tar")) && supported.contains(QLatin1String("application/x-bzip2-compressed-tar"))) {
|
||||||
|
+ supported.remove(QLatin1String("application/x-bzip-compressed-tar"));
|
||||||
|
+ supported.remove(QLatin1String("application/x-bzip2-compressed-tar"));
|
||||||
|
+ supported.insert(QMimeDatabase().mimeTypeForFile(QStringLiteral("dummy.tar.bz2"), QMimeDatabase::MatchExtension).name());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (mode == SortByComment) {
|
||||||
|
return sortByComment(supported);
|
||||||
|
}
|
||||||
|
--- a/plugins/libarchive/CMakeLists.txt
|
||||||
|
+++ b/plugins/libarchive/CMakeLists.txt
|
||||||
|
@@ -4,7 +4,7 @@ include_directories(${LibArchive_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# NOTE: These are the mimetypes for "single-file" archives. They must be defined in the JSON metadata together with the "normal" mimetypes.
|
||||||
|
# However they need to be duplicated here because we need to pass them as C++ define to the plugin (see LIBARCHIVE_RAW_MIMETYPES define below).
|
||||||
|
-set(SUPPORTED_LIBARCHIVE_RAW_MIMETYPES "application/x-compress;application/gzip;application/x-bzip;application/zlib;application/zstd;application/x-lzma;application/x-xz;application/x-lz4;application/x-lzip;application/x-lrzip;application/x-lzop;")
|
||||||
|
+set(SUPPORTED_LIBARCHIVE_RAW_MIMETYPES "application/x-compress;application/gzip;application/x-bzip;application/x-bzip2;application/zlib;application/zstd;application/x-lzma;application/x-xz;application/x-lz4;application/x-lzip;application/x-lrzip;application/x-lzop;")
|
||||||
|
|
||||||
|
set(INSTALLED_LIBARCHIVE_PLUGINS "")
|
||||||
|
|
||||||
|
--- a/plugins/libarchive/kerfuffle_libarchive.json.cmake
|
||||||
|
+++ b/plugins/libarchive/kerfuffle_libarchive.json.cmake
|
||||||
|
@@ -53,6 +53,7 @@
|
||||||
|
"application/x-tar",
|
||||||
|
"application/x-compressed-tar",
|
||||||
|
"application/x-bzip-compressed-tar",
|
||||||
|
+ "application/x-bzip2-compressed-tar",
|
||||||
|
"application/x-tarz",
|
||||||
|
"application/x-xz-compressed-tar",
|
||||||
|
"application/x-lzma-compressed-tar",
|
||||||
|
@@ -119,6 +120,11 @@
|
||||||
|
"CompressionLevelMax": 9,
|
||||||
|
"CompressionLevelMin": 1
|
||||||
|
},
|
||||||
|
+ "application/x-bzip2-compressed-tar": {
|
||||||
|
+ "CompressionLevelDefault": 9,
|
||||||
|
+ "CompressionLevelMax": 9,
|
||||||
|
+ "CompressionLevelMin": 1
|
||||||
|
+ },
|
||||||
|
"application/x-compressed-tar": {
|
||||||
|
"CompressionLevelDefault": 6,
|
||||||
|
"CompressionLevelMax": 9,
|
||||||
|
--- a/plugins/libarchive/kerfuffle_libarchive_readonly.json.cmake
|
||||||
|
+++ b/plugins/libarchive/kerfuffle_libarchive_readonly.json.cmake
|
||||||
|
@@ -61,6 +61,7 @@
|
||||||
|
"application/x-compress",
|
||||||
|
"application/gzip",
|
||||||
|
"application/x-bzip",
|
||||||
|
+ "application/x-bzip2",
|
||||||
|
"application/x-lzma",
|
||||||
|
"application/x-xz",
|
||||||
|
"application/zlib",
|
||||||
|
--- a/plugins/libarchive/libarchiveplugin.cpp
|
||||||
|
+++ b/plugins/libarchive/libarchiveplugin.cpp
|
||||||
|
@@ -13,6 +13,7 @@
|
||||||
|
|
||||||
|
#include <KLocalizedString>
|
||||||
|
|
||||||
|
+#include <QMimeDatabase>
|
||||||
|
#include <QThread>
|
||||||
|
#include <QFileInfo>
|
||||||
|
#include <QDir>
|
||||||
|
@@ -34,6 +35,17 @@ LibarchivePlugin::LibarchivePlugin(QObject *parent, const QVariantList &args)
|
||||||
|
|
||||||
|
#ifdef LIBARCHIVE_RAW_MIMETYPES
|
||||||
|
m_rawMimetypes = QStringLiteral(LIBARCHIVE_RAW_MIMETYPES).split(QLatin1Char(':'), Qt::SkipEmptyParts);
|
||||||
|
+ // shared-mime-info 2.3 explicitly separated application/x-bzip2 from application/x-bzip
|
||||||
|
+ // since bzip2 is not compatible with the old (and deprecated) bzip format.
|
||||||
|
+ // See https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/239
|
||||||
|
+ // With shared-mime-info 2.3 (or newer) we can't have both mimetypes at the same time, since libarchive does not support
|
||||||
|
+ // the old deprecated bzip format. Also we can't know which version of shared-mime-info the system is actually using.
|
||||||
|
+ // For these reasons, just take the mimetype from QMimeDatabase to keep the compatibility with any shared-mime-info version.
|
||||||
|
+ if (m_rawMimetypes.contains(QLatin1String("application/x-bzip")) && m_rawMimetypes.contains(QLatin1String("application/x-bzip2"))) {
|
||||||
|
+ m_rawMimetypes.removeAll(QLatin1String("application/x-bzip"));
|
||||||
|
+ m_rawMimetypes.removeAll(QLatin1String("application/x-bzip2"));
|
||||||
|
+ m_rawMimetypes.append(QMimeDatabase().mimeTypeForFile(QStringLiteral("dummy.bz2"), QMimeDatabase::MatchExtension).name());
|
||||||
|
+ }
|
||||||
|
qCDebug(ARK) << "# available raw mimetypes:" << m_rawMimetypes.count();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||||
<PISI>
|
<PISI>
|
||||||
<Source>
|
<Source>
|
||||||
<Name>ark</Name>
|
<Name>ark</Name>
|
||||||
@@ -18,6 +18,7 @@
|
|||||||
<Dependency versionFrom="5.15.2">qt5-base-devel</Dependency>
|
<Dependency versionFrom="5.15.2">qt5-base-devel</Dependency>
|
||||||
<Dependency>rar</Dependency>
|
<Dependency>rar</Dependency>
|
||||||
<Dependency>lzop</Dependency>
|
<Dependency>lzop</Dependency>
|
||||||
|
<Dependency>bzip2</Dependency>
|
||||||
<Dependency>unrar</Dependency>
|
<Dependency>unrar</Dependency>
|
||||||
<Dependency>p7zip</Dependency>
|
<Dependency>p7zip</Dependency>
|
||||||
<Dependency>xz-devel</Dependency>
|
<Dependency>xz-devel</Dependency>
|
||||||
@@ -39,9 +40,14 @@
|
|||||||
<Dependency>libarchive-devel</Dependency>
|
<Dependency>libarchive-devel</Dependency>
|
||||||
<Dependency>extra-cmake-modules</Dependency>
|
<Dependency>extra-cmake-modules</Dependency>
|
||||||
<Dependency>kitemmodels-devel</Dependency>
|
<Dependency>kitemmodels-devel</Dependency>
|
||||||
|
<Dependency>kwindowsystem-devel</Dependency>
|
||||||
</BuildDependencies>
|
</BuildDependencies>
|
||||||
<Patches>
|
<Patches>
|
||||||
<!--Patch>libzip.patch</Patch-->
|
<!-- <Patch>libzip.patch</Patch> -->
|
||||||
|
<Patch>ark-23.08.2-dont-hardcode-bzip2-mimetype-in-tests.patch</Patch>
|
||||||
|
<Patch>ark-23.08.2-explicitly-support-application-vnd-efi-iso-mime.patch</Patch>
|
||||||
|
<Patch>ark-23.08.2-fix-checks-using-old-ISO-mimetype.patch</Patch>
|
||||||
|
<Patch>ark-23.08.2-fix-support-for-bzip2-format.patch</Patch>
|
||||||
</Patches>
|
</Patches>
|
||||||
</Source>
|
</Source>
|
||||||
|
|
||||||
@@ -73,6 +79,8 @@
|
|||||||
<Dependency>kconfigwidgets</Dependency>
|
<Dependency>kconfigwidgets</Dependency>
|
||||||
<Dependency>kitemmodels</Dependency>
|
<Dependency>kitemmodels</Dependency>
|
||||||
<Dependency>p7zip</Dependency>
|
<Dependency>p7zip</Dependency>
|
||||||
|
<Dependency>bzip2</Dependency>
|
||||||
|
<Dependency>kwindowsystem</Dependency>
|
||||||
</RuntimeDependencies>
|
</RuntimeDependencies>
|
||||||
<Files>
|
<Files>
|
||||||
<Path fileType="data">/etc/xdg</Path>
|
<Path fileType="data">/etc/xdg</Path>
|
||||||
@@ -87,6 +95,13 @@
|
|||||||
</Package>
|
</Package>
|
||||||
|
|
||||||
<History>
|
<History>
|
||||||
|
<Update release="55">
|
||||||
|
<Date>2023-10-26</Date>
|
||||||
|
<Version>23.08.1</Version>
|
||||||
|
<Comment>Rebuild for tarbz2 patches</Comment>
|
||||||
|
<Name>Mustafa Cinasal</Name>
|
||||||
|
<Email>muscnsl@gmail.com</Email>
|
||||||
|
</Update>
|
||||||
<Update release="54">
|
<Update release="54">
|
||||||
<Date>2023-09-14</Date>
|
<Date>2023-09-14</Date>
|
||||||
<Version>23.08.1</Version>
|
<Version>23.08.1</Version>
|
||||||
|
|||||||
Reference in New Issue
Block a user