Merge pull request #13051 from Rmys/master

applications-23.08.4
This commit is contained in:
Rmys
2023-12-07 20:49:36 +03:00
committed by GitHub
6 changed files with 0 additions and 260 deletions
@@ -1,44 +0,0 @@
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
@@ -1,36 +0,0 @@
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
@@ -1,44 +0,0 @@
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.
© 20012022 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.
@@ -1,121 +0,0 @@
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,11 +0,0 @@
diff -Nuar a/plugins/libzipplugin/libzipplugin.cpp b/plugins/libzipplugin/libzipplugin.cpp
--- a/plugins/libzipplugin/libzipplugin.cpp 2018-04-09 23:42:03.000000000 +0300
+++ b/plugins/libzipplugin/libzipplugin.cpp 2018-04-25 15:30:09.038240448 +0300
@@ -41,6 +41,7 @@
#include <utime.h>
#include <zlib.h>
+#include <memory>
K_PLUGIN_FACTORY_WITH_JSON(LibZipPluginFactory, "kerfuffle_libzip.json", registerPlugin<LibzipPlugin>();)
-4
View File
@@ -44,10 +44,6 @@
</BuildDependencies>
<Patches>
<!-- <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>
</Source>