Your message dated Mon, 21 Jul 2025 22:19:09 +0000
with message-id <[email protected]>
and subject line unblock ark
has caused the Debian Bug report #1109600,
regarding unblock: ark/4:25.04.3-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1109600: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1109600
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: [email protected], Debian Qt/KDE Maintainers 
<[email protected]>
Control: affects -1 + src:ark
User: [email protected]
Usertags: unblock

Dear Release Team,

please unblock package ark.

[ Reason ]
It contains the following changes:
* New upstream release (25.04.3).
  - CompressFileItemAction: stat without progress info.
* Backport upstream commits:
  - Fix file sorting order not matching Dolphin’s. [55b6d6e6] (kde#387969)
  - Fix corner case of single-threaded CPU getting 0 thread. [1435ccd4]

The complete debdiff is a little bug due to translation fixes so I’m
attaching a simple diff stripped of these for your convenience :
    diff -ur --exclude=po ark-25.04.[03]

[ Tests ]
- Upstream test suite passes in sbuild.
- Tested opening and extracting several types of archives.

[ Risks ]
Contains only the upstream point release and backported patches. Further
fixes can easily be backported, or the changes reverted.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing


Thanks !


unblock ark/4:25.04.3-1
diff -Nru ark-25.04.0/app/compressfileitemaction.cpp 
ark-25.04.3/app/compressfileitemaction.cpp
--- ark-25.04.0/app/compressfileitemaction.cpp  2025-04-07 23:07:48.000000000 
+0200
+++ ark-25.04.3/app/compressfileitemaction.cpp  2025-07-01 11:40:18.000000000 
+0200
@@ -76,7 +76,7 @@
     if (compressMenuAction->isEnabled()) {
         const KFileItemList items = fileItemInfos.items();
         const KFileItem &first = items.first();
-        auto *job = KIO::stat(first.url().adjusted(QUrl::RemoveFilename | 
QUrl::StripTrailingSlash));
+        auto *job = KIO::stat(first.url().adjusted(QUrl::RemoveFilename | 
QUrl::StripTrailingSlash), KIO::HideProgressInfo);
         connect(job, &KJob::result, compressMenu, 
[actionsToBeDisabledInReadOnlyDir, job]() {
             if (!job->error() && !KFileItem(job->statResult(), 
job->url()).isWritable()) {
                 for (auto action : actionsToBeDisabledInReadOnlyDir) {
diff -Nru ark-25.04.0/app/org.kde.ark.appdata.xml 
ark-25.04.3/app/org.kde.ark.appdata.xml
--- ark-25.04.0/app/org.kde.ark.appdata.xml     2025-04-07 23:07:48.000000000 
+0200
+++ ark-25.04.3/app/org.kde.ark.appdata.xml     2025-07-01 11:40:18.000000000 
+0200
@@ -418,6 +418,9 @@
     <binary>ark</binary>
   </provides>
   <releases>
+    <release version="25.04.3" date="2025-07-03"/>
+    <release version="25.04.2" date="2025-06-05"/>
+    <release version="25.04.1" date="2025-05-08"/>
     <release version="25.04.0" date="2025-04-17"/>
     <release version="24.12.3" date="2025-03-06"/>
     <release version="24.12.2" date="2025-02-06"/>
diff -Nru ark-25.04.0/CMakeLists.txt ark-25.04.3/CMakeLists.txt
--- ark-25.04.0/CMakeLists.txt  2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/CMakeLists.txt  2025-07-01 11:40:18.000000000 +0200
@@ -3,7 +3,7 @@
 # KDE Application Version, managed by release script
 set (RELEASE_SERVICE_VERSION_MAJOR "25")
 set (RELEASE_SERVICE_VERSION_MINOR "04")
-set (RELEASE_SERVICE_VERSION_MICRO "0")
+set (RELEASE_SERVICE_VERSION_MICRO "3")
 set (RELEASE_SERVICE_VERSION 
"${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
 project(ark VERSION ${RELEASE_SERVICE_VERSION})
 
diff -Nru ark-25.04.0/debian/changelog ark-25.04.3/debian/changelog
--- ark-25.04.0/debian/changelog        2025-04-17 18:40:17.000000000 +0200
+++ ark-25.04.3/debian/changelog        2025-07-18 15:34:31.000000000 +0200
@@ -1,3 +1,14 @@
+ark (4:25.04.3-1) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * New upstream release (25.04.3).
+    - CompressFileItemAction: stat without progress info.
+  * Backport upstream commits:
+    - Fix file sorting order not matching Dolphin’s. [55b6d6e6] (kde#387969)
+    - Fix corner case of single-threaded CPU getting 0 thread. [1435ccd4]
+
+ -- Aurélien COUDERC <[email protected]>  Fri, 18 Jul 2025 15:34:31 +0200
+
 ark (4:25.04.0-1) unstable; urgency=medium
 
   [ Aurélien COUDERC ]
diff -Nru ark-25.04.0/debian/patches/series ark-25.04.3/debian/patches/series
--- ark-25.04.0/debian/patches/series   1970-01-01 01:00:00.000000000 +0100
+++ ark-25.04.3/debian/patches/series   2025-07-18 15:32:15.000000000 +0200
@@ -0,0 +1,2 @@
+upstream_55b6d6e6_Implement-Dolphin-style-natural-string-sorting.patch
+upstream_1435ccd4_Fix-corner-case-of-single-threaded-CPU-when-calculating-number-of-threads.patch
diff -Nru 
ark-25.04.0/debian/patches/upstream_1435ccd4_Fix-corner-case-of-single-threaded-CPU-when-calculating-number-of-threads.patch
 
ark-25.04.3/debian/patches/upstream_1435ccd4_Fix-corner-case-of-single-threaded-CPU-when-calculating-number-of-threads.patch
--- 
ark-25.04.0/debian/patches/upstream_1435ccd4_Fix-corner-case-of-single-threaded-CPU-when-calculating-number-of-threads.patch
        1970-01-01 01:00:00.000000000 +0100
+++ 
ark-25.04.3/debian/patches/upstream_1435ccd4_Fix-corner-case-of-single-threaded-CPU-when-calculating-number-of-threads.patch
        2025-07-18 15:33:13.000000000 +0200
@@ -0,0 +1,28 @@
+From 1435ccd417f6ab533d511865846c263936dec6c6 Mon Sep 17 00:00:00 2001
+From: Zhangzhi Hu <[email protected]>
+Date: Thu, 27 Mar 2025 18:56:24 +0000
+Subject: [PATCH] Fix corner case of single-threaded CPU when calculating
+ number of threads
+
+Currently, the number of threads will be 0 on single-threaded CPUs.
+Use `std::max` to fix this corner case.
+---
+ plugins/libarchive/readwritelibarchiveplugin.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/libarchive/readwritelibarchiveplugin.cpp 
b/plugins/libarchive/readwritelibarchiveplugin.cpp
+index 5f91385f9..b5c8e711c 100644
+--- a/plugins/libarchive/readwritelibarchiveplugin.cpp
++++ b/plugins/libarchive/readwritelibarchiveplugin.cpp
+@@ -302,7 +302,7 @@ bool 
ReadWriteLibarchivePlugin::initializeNewFileCompressionOptions(const Compre
+ {
+     int ret;
+     bool requiresExecutable = false;
+-    const auto threads = 
std::to_string(static_cast<unsigned>(std::thread::hardware_concurrency() * 
0.8));
++    const auto threads = std::to_string(std::max(1u, 
static_cast<unsigned>(std::thread::hardware_concurrency() * 0.8)));
+     const bool is7zFile = filename().right(2).toUpper() == 
QLatin1String("7Z");
+ 
+     if (is7zFile) {
+-- 
+GitLab
+
diff -Nru 
ark-25.04.0/debian/patches/upstream_55b6d6e6_Implement-Dolphin-style-natural-string-sorting.patch
 
ark-25.04.3/debian/patches/upstream_55b6d6e6_Implement-Dolphin-style-natural-string-sorting.patch
--- 
ark-25.04.0/debian/patches/upstream_55b6d6e6_Implement-Dolphin-style-natural-string-sorting.patch
   1970-01-01 01:00:00.000000000 +0100
+++ 
ark-25.04.3/debian/patches/upstream_55b6d6e6_Implement-Dolphin-style-natural-string-sorting.patch
   2025-07-18 15:28:22.000000000 +0200
@@ -0,0 +1,105 @@
+From 55b6d6e68616f2102fe3b7a4b4182ec6e403a3b1 Mon Sep 17 00:00:00 2001
+From: Vladislav Kachegov <[email protected]>
+Date: Mon, 24 Feb 2025 15:02:49 +0300
+Subject: [PATCH] Implement Dolphin-style natural string sorting
+
+Enabled natural string sorting to match Dolphin's order, improving 
human-friendly
+string comparison. Updated the function comment for clarity and noted potential
+refactoring to a framework utility for maintainability.
+
+BUG: 387969
+---
+ part/archivesortfiltermodel.cpp | 42 +++++++++++++++++++++++++++++++++
+ part/archivesortfiltermodel.h   |  4 ++++
+ 2 files changed, 46 insertions(+)
+
+diff --git a/part/archivesortfiltermodel.cpp b/part/archivesortfiltermodel.cpp
+index dabac5ce6..b2fa8a489 100644
+--- a/part/archivesortfiltermodel.cpp
++++ b/part/archivesortfiltermodel.cpp
+@@ -10,11 +10,48 @@
+ 
+ using namespace Kerfuffle;
+ 
++namespace
++{
++/**
++ * Performs a natural string comparison.
++ * This function compares strings in a way that is similar to natural human 
sorting order.
++ * It is adapted from the Dolphin KFileItemModel::stringCompare 
implementation.
++ *
++ * @note Consider refactoring this logic to a framework-level utility
++ * for improved maintainability and reusability across multiple projects.
++ *
++ * @return Integer less than, equal to, or greater than zero if the first 
argument is
++ * found, respectively, to be less than, to match, or be greater than the 
second.
++ */
++int naturalStringCompare(const QString &a, const QString &b, const QCollator 
&collator)
++{
++    // Split extension, taking into account it can be empty
++    constexpr QString::SectionFlags flags = QString::SectionSkipEmpty | 
QString::SectionIncludeLeadingSep;
++
++    // Sort by baseName first
++    const QString aBaseName = a.section(QLatin1Char('.'), 0, 0, flags);
++    const QString bBaseName = b.section(QLatin1Char('.'), 0, 0, flags);
++
++    const int res = collator.compare(aBaseName, bBaseName);
++    if (res != 0 || (aBaseName.length() == a.length() && bBaseName.length() 
== b.length())) {
++        return res;
++    }
++
++    // sliced() has undefined behavior when pos < 0 or pos > size().
++    Q_ASSERT(aBaseName.length() <= a.length() && aBaseName.length() >= 0);
++    Q_ASSERT(bBaseName.length() <= b.length() && bBaseName.length() >= 0);
++
++    // baseNames were equal, sort by extension
++    return collator.compare(a.sliced(aBaseName.length()), 
b.sliced(bBaseName.length()));
++}
++}
++
+ ArchiveSortFilterModel::ArchiveSortFilterModel(QObject *parent)
+     : QSortFilterProxyModel(parent)
+ {
+     // always enable recursive fitlering
+     setRecursiveFilteringEnabled(true);
++    m_collator.setNumericMode(true);
+ }
+ 
+ ArchiveSortFilterModel::~ArchiveSortFilterModel()
+@@ -36,6 +73,11 @@ bool ArchiveSortFilterModel::lessThan(const QModelIndex 
&leftIndex, const QModel
+         return false;
+     } else {
+         switch (col) {
++        case DisplayName: {
++            const auto leftFullName = 
left->property(property.constData()).toString();
++            const auto rightFullName = 
right->property(property.constData()).toString();
++            return naturalStringCompare(leftFullName, rightFullName, 
m_collator) < 0;
++        }
+         case Size:
+         case CompressedSize:
+             if (left->property(property.constData()).toULongLong() < 
right->property(property.constData()).toULongLong()) {
+diff --git a/part/archivesortfiltermodel.h b/part/archivesortfiltermodel.h
+index 3fa392d1b..3cd30b3ff 100644
+--- a/part/archivesortfiltermodel.h
++++ b/part/archivesortfiltermodel.h
+@@ -6,6 +6,7 @@
+ #ifndef ARCHIVESORTFILTERMODEL_H
+ #define ARCHIVESORTFILTERMODEL_H
+ 
++#include <QCollator>
+ #include <QSortFilterProxyModel>
+ 
+ class ArchiveSortFilterModel : public QSortFilterProxyModel
+@@ -17,6 +18,9 @@ public:
+     ~ArchiveSortFilterModel() override;
+ 
+     bool lessThan(const QModelIndex &leftIndex, const QModelIndex 
&rightIndex) const override;
++
++private:
++    QCollator m_collator;
+ };
+ 
+ #endif // ARCHIVESORTFILTERMODEL_H
+-- 
+GitLab
+
diff -Nru ark-25.04.0/plugins/cliarjplugin/kerfuffle_cliarj.json.cmake 
ark-25.04.3/plugins/cliarjplugin/kerfuffle_cliarj.json.cmake
--- ark-25.04.0/plugins/cliarjplugin/kerfuffle_cliarj.json.cmake        
2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/plugins/cliarjplugin/kerfuffle_cliarj.json.cmake        
2025-07-01 11:40:18.000000000 +0200
@@ -39,6 +39,7 @@
         "Description[ro]": "Suport deplin pentru formatul de arhivă ARJ",
         "Description[ru]": "Полная поддержка архивов ARJ",
         "Description[sa]": "एआरजे संग्रहस्वरूपेषु पूर्णसमर्थनम्",
+        "Description[sk]": "Úplná podpora archívnych formátov ARJ",
         "Description[sl]": "Polna podpora za arhive vrste ARJ",
         "Description[sv]": "Fullt stöd för ARJ arkivformat",
         "Description[tr]": "ARJ arşiv biçimi için tam destek",
diff -Nru ark-25.04.0/po/ca@valencia/ark.po ark-25.04.3/po/ca@valencia/ark.po
--- ark-25.04.0/po/ca@valencia/ark.po   2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/po/ca@valencia/ark.po   2025-07-01 11:40:18.000000000 +0200
@@ -997,7 +997,8 @@
 #: kerfuffle/generalsettingspage.ui:17
 #, kde-format
 msgid "When clicking a file in an archive or pressing the Return key:"
-msgstr "Fent clic en un fitxer, un arxiu o prement la tecla «Retorn»:"
+msgstr ""
+"Quan es clique damunt d'un fitxer en un arxiu o prement la tecla «Retorn»:"
 
 #. i18n: ectx: property (text), widget (QRadioButton, radioButton)
 #: kerfuffle/generalsettingspage.ui:33
diff -Nru ark-25.04.0/po/es/ark.po ark-25.04.3/po/es/ark.po
--- ark-25.04.0/po/es/ark.po    2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/po/es/ark.po    2025-07-01 11:40:18.000000000 +0200
@@ -1,4 +1,6 @@
 # Spanish translations for ark.po package.
+# Copyright (C) 2000-2025 This file is copyright:
+# This file is distributed under the same license as the ark package.
 #
 # SPDX-FileCopyrightText: 2000-2002 Pablo de Vicente <[email protected]>
 # SPDX-FileCopyrightText: 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 
2011, 2012, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 
2025 Eloy Cuadra <[email protected]>
@@ -8,7 +10,7 @@
 "Project-Id-Version: ark\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2025-03-06 00:44+0000\n"
-"PO-Revision-Date: 2025-03-19 14:19+0100\n"
+"PO-Revision-Date: 2025-05-04 01:26+0100\n"
 "Last-Translator: Eloy Cuadra <[email protected]>\n"
 "Language-Team: Spanish <[email protected]>\n"
 "Language: es\n"
diff -Nru ark-25.04.0/po/es/docs/ark/index.docbook 
ark-25.04.3/po/es/docs/ark/index.docbook
--- ark-25.04.0/po/es/docs/ark/index.docbook    2025-04-07 23:07:48.000000000 
+0200
+++ ark-25.04.3/po/es/docs/ark/index.docbook    2025-07-01 11:40:18.000000000 
+0200
@@ -201,7 +201,7 @@
 
 <para
 >Para abrir un archivo comprimido en &ark;, seleccione <guimenuitem
->Abrir...</guimenuitem
+>Abrir…</guimenuitem
 > (<keycombo action="simul"
 >&Ctrl;<keycap
 >O</keycap
@@ -227,7 +227,7 @@
 >Puede realizar varias operaciones en un archivo comprimido abierto usando el 
 >menú <guimenu
 >Archivo comprimido</guimenu
 >. Por ejemplo, puede guardar el archivo comprimido con un nombre diferente 
 >usando <guimenuitem
->Guardar como...</guimenuitem
+>Guardar como…</guimenuitem
 >. Puede ver las propiedades del archivo comprimido (como su tipo, tamaño y 
 >suma de comprobación MD5) usando la opción <guimenuitem
 >Propiedades</guimenuitem
 >.</para>
@@ -331,7 +331,7 @@
 <listitem>
 <para
 ><guimenuitem
->Abrir con...</guimenuitem
+>Abrir con…</guimenuitem
 > le permite escoger una aplicación para abrir el archivo.</para>
 </listitem>
 <listitem>
@@ -409,7 +409,7 @@
 >Si edita y guarda un archivo que había abierto usando <guimenuitem
 >Abrir</guimenuitem
 > o <guimenuitem
->Abrir con...</guimenuitem
+>Abrir con…</guimenuitem
 >, &ark; le preguntará si desea actualizar dicho archivo dentro del archivo 
 >comprimido. Si responde afirmativamente, se actualizará dicho archivo dentro 
 >del archivo comprimido.</para>
 
 </sect2>
@@ -425,7 +425,7 @@
 > en el menú <guimenu
 >Archivo</guimenu
 >. Esto abre un submenú con las carpetas a las que ha accedido anteriormente, 
 >donde podrá seleccionar una para extraer archivos rápidamente en ella. 
 >También puede realizar la misma acción usando la opción del submenú 
 ><guisubmenu
->Extraer en...</guisubmenu
+>Extraer en…</guisubmenu
 > para abrir el diálogo <guilabel
 >Extraer</guilabel
 >, donde podrá ajustar diversas opciones que afectan a la extracción. Consulte 
 >más adelante la información sobre las opciones disponibles en el diálogo de 
 >extracción.</para>
@@ -538,7 +538,7 @@
 
 <para
 >Para añadir archivos o carpetas en el nuevo archivo comprimido, use 
 ><guimenuitem
->Añadir archivos...</guimenuitem
+>Añadir archivos…</guimenuitem
 > en el menú <guimenu
 >Archivo comprimido</guimenu
 >.</para>
@@ -670,7 +670,7 @@
 <listitem>
 <para
 ><guimenuitem
->Extraer en...</guimenuitem
+>Extraer en…</guimenuitem
 > abre un diálogo de extracción en el que podrá escoger la carpeta de destino 
 > y varias opciones de extracción.</para>
 </listitem>
 </itemizedlist>
@@ -692,7 +692,7 @@
 <listitem>
 <para
 ><guimenuitem
->Comprimir en...</guimenuitem
+>Comprimir en…</guimenuitem
 > abre un diálogo en el que podrá seleccionar la carpeta, el nombre y el tipo 
 > de archivo comprimido.</para>
 </listitem>
 </itemizedlist>
diff -Nru ark-25.04.0/po/eu/ark.po ark-25.04.3/po/eu/ark.po
--- ark-25.04.0/po/eu/ark.po    2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/po/eu/ark.po    2025-07-01 11:40:18.000000000 +0200
@@ -1,7 +1,7 @@
 # Translation for ark.po to Euskara/Basque (eu).
 # Copyright (C) 1999-2024 This file is copyright:
 # This file is distributed under the same license as the ark package.
-# SPDX-FileCopyrightText: 2023, 2024 KDE euskaratzeko proiektuko arduraduna 
<[email protected]>
+# SPDX-FileCopyrightText: 2023, 2024, 2025 KDE euskaratzeko proiektuko 
arduraduna <[email protected]>
 #
 # Translators:
 # Marcos  <[email protected]>, 2000.
@@ -13,14 +13,14 @@
 "Project-Id-Version: ark\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2025-03-06 00:44+0000\n"
-"PO-Revision-Date: 2024-09-01 07:33+0200\n"
+"PO-Revision-Date: 2025-04-25 22:10+0200\n"
 "Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
 "Language-Team: Basque <[email protected]>\n"
 "Language: eu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 24.08.0\n"
+"X-Generator: Lokalize 25.04.0\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #, kde-format
@@ -414,9 +414,9 @@
 "<interface>Hamburger Menu</interface> button. Both contain mostly the same "
 "commands and configuration options."
 msgstr ""
-"Honek <emphasis>Menu-barra</emphasis> bat edo <interface>Hanburgesa-menu</"
-"interface> botoi baten artean trukatzen du. Biek dituzte, oro har komando "
-"eta konfiguratzeko aukera berdinak."
+"Honek <emphasis>Menu-barra</emphasis> bat edo <interface>Hanburger menu</"
+"interface> botoi bat izatearen artean trukatzen du. Biek dituzte, oro har "
+"komando eta konfiguratzeko aukera berdinak."
 
 #: app/mainwindow.cpp:315
 #, kde-format
diff -Nru ark-25.04.0/po/sk/ark.po ark-25.04.3/po/sk/ark.po
--- ark-25.04.0/po/sk/ark.po    2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/po/sk/ark.po    2025-07-01 11:40:18.000000000 +0200
@@ -9,19 +9,20 @@
 # Mthw <[email protected]>, 2019.
 # Matej Mrenica <[email protected]>, 2019, 2020, 2021, 2022.
 # Dušan Kazik <[email protected]>, 2020.
+# SPDX-FileCopyrightText: 2025 Lucia Mrenica <[email protected]>
 msgid ""
 msgstr ""
 "Project-Id-Version: ark\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2025-03-06 00:44+0000\n"
-"PO-Revision-Date: 2023-12-06 19:15+0100\n"
-"Last-Translator: Roman Paholik <[email protected]>\n"
-"Language-Team: Slovak <[email protected]>\n"
+"PO-Revision-Date: 2025-05-25 12:18+0200\n"
+"Last-Translator: Lucia Mrenica <[email protected]>\n"
+"Language-Team: Slovak <[email protected]>\n"
 "Language: sk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 23.08.3\n"
+"X-Generator: Lokalize 25.04.1\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
 #, kde-format
@@ -124,20 +125,17 @@
 msgstr "Komprimovať do..."
 
 #: app/compressfileitemaction.cpp:105
-#, fuzzy, kde-format
-#| msgctxt "@action:inmenu Part of Compress submenu in Dolphin context menu"
-#| msgid "Compress to..."
+#, kde-format
 msgctxt ""
 "@action:inmenu Part of Compress submenu in Dolphin context menu, %1 filename"
 msgid "Compress to \"%1\""
-msgstr "Komprimovať do..."
+msgstr "Komprimovať do \"%1\""
 
 #: app/extractfileitemaction.cpp:66
-#, fuzzy, kde-format
-#| msgid "Extract"
+#, kde-format
 msgctxt "@action:inmenu Part of Extract submenu in Dolphin context menu"
 msgid "Extract to…"
-msgstr "Rozbaliť"
+msgstr "Rozbaliť do…"
 
 #: app/extractfileitemaction.cpp:78
 #, kde-format
@@ -146,11 +144,10 @@
 msgstr "Rozbaliť sem"
 
 #: app/extractfileitemaction.cpp:84
-#, fuzzy, kde-format
-#| msgid "Extract multiple archives"
+#, kde-format
 msgctxt "@action:inmenu Part of Extract submenu in Dolphin context menu"
 msgid "Extract here and delete archive"
-msgstr "Rozbaliť viacero archívov"
+msgstr "Rozbaliť sem a vymazať archív"
 
 #: app/extractfileitemaction.cpp:91
 #, kde-format
@@ -442,12 +439,9 @@
 msgstr "Vitajte v %1"
 
 #: app/welcomeview/welcomeview.cpp:55
-#, fuzzy, kde-format
-#| msgctxt "@title:window"
-#| msgid "Delete File"
-#| msgid_plural "Delete Files"
+#, kde-format
 msgid "No recent files"
-msgstr "Vymazať súbor"
+msgstr "Žiadne nedávne súbory"
 
 #: app/welcomeview/welcomeview.cpp:143
 #, kde-format
@@ -522,7 +516,7 @@
 #: app/welcomeview/welcomeview.ui:400
 #, kde-format
 msgid "Close Welcome Page"
-msgstr ""
+msgstr "Zatvoriť uvítaciu stránku"
 
 #: kerfuffle/adddialog.cpp:32 kerfuffle/adddialog.cpp:70
 #, kde-format
@@ -1677,7 +1671,7 @@
 #, kde-format
 msgctxt "open a file with external program"
 msgid "&Open in External Application"
-msgstr ""
+msgstr "Otvoriť v externej aplikácií"
 
 #: part/part.cpp:372
 #, kde-format
@@ -1745,11 +1739,10 @@
 msgstr "Kliknutím pridáte súbory do archívu"
 
 #: part/part.cpp:412
-#, fuzzy, kde-format
-#| msgid "Compress to Archive"
+#, kde-format
 msgctxt "@action"
 msgid "Remove from Archive"
-msgstr "Komprimovať do archívu"
+msgstr "Odstrániť z archívu"
 
 #: part/part.cpp:422
 #, kde-format
@@ -2083,7 +2076,7 @@
 #: plugins/cliarjplugin/cliplugin.cpp:321
 #, kde-format
 msgid "ARJ old"
-msgstr ""
+msgstr "ARJ starý"
 
 #: plugins/cliarjplugin/cliplugin.cpp:322
 #, kde-format
diff -Nru ark-25.04.0/po/zh_CN/ark.po ark-25.04.3/po/zh_CN/ark.po
--- ark-25.04.0/po/zh_CN/ark.po 2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/po/zh_CN/ark.po 2025-07-01 11:40:18.000000000 +0200
@@ -572,7 +572,7 @@
 #, kde-format
 msgid ""
 "Extract to a subfolder if the archive has more than one top-level entry."
-msgstr "如果压缩文件含多个顶层目录,将它们解压到子文件夹中。"
+msgstr "压缩文件有多个顶级目录时,解压到子文件夹中。"
 
 #. i18n: ectx: label, entry (splitterSizes), group (MainWindow)
 #: kerfuffle/ark.kcfg:41
@@ -954,25 +954,25 @@
 #: kerfuffle/extractionsettingspage.ui:44
 #, kde-format
 msgid "Extract to a subfolder if the archive has more than one top-level entry"
-msgstr "如果压缩文件含多个顶层目录,将它们解压到子文件夹中。"
+msgstr "压缩文件有多个顶级目录时,解压到子文件夹中。"
 
 #. i18n: ectx: property (text), widget (QLabel, label)
 #: kerfuffle/generalsettingspage.ui:17
 #, kde-format
 msgid "When clicking a file in an archive or pressing the Return key:"
-msgstr "点击压缩文件中的文件或按下回车键时:"
+msgstr "点击压缩文件中的文件、或按下回车键时:"
 
 #. i18n: ectx: property (text), widget (QRadioButton, radioButton)
 #: kerfuffle/generalsettingspage.ui:33
 #, kde-format
 msgid "Pre&view the file with internal previewer"
-msgstr "预览 - 使用 Ark 的内建查看程序预览文件(&V)"
+msgstr "预览(使用内建查看器)(&V)"
 
 #. i18n: ectx: property (text), widget (QRadioButton, radioButton_2)
 #: kerfuffle/generalsettingspage.ui:43
 #, kde-format
 msgid "Open the fi&le with associated application"
-msgstr "打开 - 使用关联的应用程序打开文件(&L)"
+msgstr "打开(使用关联的外部程序)(&L)"
 
 #. i18n: ectx: property (text), widget (QCheckBox, kcfg_showEncryptionWarning)
 #: kerfuffle/generalsettingspage.ui:60
@@ -1102,7 +1102,7 @@
 #: kerfuffle/previewsettingspage.ui:22
 #, kde-format
 msgid "Disable preview for files larger than:"
-msgstr "禁用预览 - 如果文件体积大于:"
+msgstr "允许预览的文件大小上限:"
 
 #: kerfuffle/propertiesdialog.cpp:41
 #, kde-format
@@ -1617,7 +1617,7 @@
 #, kde-format
 msgctxt "open a file with external program"
 msgid "&Open in External Application"
-msgstr "使用外部应用程序打开(&O)"
+msgstr "打开选中项目(使用外部程序)(&O)"
 
 #: part/part.cpp:372
 #, kde-format
@@ -1685,7 +1685,7 @@
 #, kde-format
 msgctxt "@action"
 msgid "Remove from Archive"
-msgstr "从压缩文件中移除"
+msgstr "移除选中项目"
 
 #: part/part.cpp:422
 #, kde-format
diff -Nru ark-25.04.0/snapcraft.yaml ark-25.04.3/snapcraft.yaml
--- ark-25.04.0/snapcraft.yaml  2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/snapcraft.yaml  2025-07-01 11:40:18.000000000 +0200
@@ -20,6 +20,12 @@
       - udisks2
       - raw-usb
       - mount-observe
+      - audio-playback
+    environment:
+      ALSA_CONFIG_PATH: "$SNAP/kf6/etc/asound.conf"
+layout:
+  /usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/alsa-lib:
+    bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/alsa-lib
 slots:
   session-dbus-interface:
     interface: dbus
@@ -37,6 +43,7 @@
       - libzip-dev
       - pkg-config
       - zlib1g-dev
+      - libpulse0
     stage-packages:
       - bzip2
       - p7zip-full
@@ -47,26 +54,18 @@
       - libarchive13
       - libzip4
       - zlib1g
+      - libpulse0
+      - libasound2
+      - libasound2-plugins
+      - libasound2-data
     source: .
     source-type: local
     cmake-parameters:
       - -DCMAKE_INSTALL_PREFIX=/usr
       - -DCMAKE_BUILD_TYPE=Release
       - -DQT_MAJOR_VERSION=6
-      - -DBUILD_WITH_QT6=ON
       - -DBUILD_TESTING=OFF
-      - -DCMAKE_INSTALL_SYSCONFDIR=/etc
-      - -DCMAKE_INSTALL_LOCALSTATEDIR=/var
-      - -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON
-      - -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF
-      - -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON
-      - -DCMAKE_INSTALL_RUNSTATEDIR=/run
-      - -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON
-      - -DCMAKE_VERBOSE_MAKEFILE=ON
-      - -DCMAKE_INSTALL_LIBDIR=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
-      - --log-level=STATUS
-      - -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
-    build-environment: &build-environment
+    build-environment:
       - LD_LIBRARY_PATH: 
"/snap/mesa-2404/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:/snap/kde-qt6-core24-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libproxy:$LD_LIBRARY_PATH"
     prime:
       - -usr/lib/*/cmake/*
diff -ur '--exclude=po' ark-25.04.0/app/compressfileitemaction.cpp 
ark-25.04.3/app/compressfileitemaction.cpp
--- ark-25.04.0/app/compressfileitemaction.cpp  2025-04-07 23:07:48.000000000 
+0200
+++ ark-25.04.3/app/compressfileitemaction.cpp  2025-07-01 11:40:18.000000000 
+0200
@@ -76,7 +76,7 @@
     if (compressMenuAction->isEnabled()) {
         const KFileItemList items = fileItemInfos.items();
         const KFileItem &first = items.first();
-        auto *job = KIO::stat(first.url().adjusted(QUrl::RemoveFilename | 
QUrl::StripTrailingSlash));
+        auto *job = KIO::stat(first.url().adjusted(QUrl::RemoveFilename | 
QUrl::StripTrailingSlash), KIO::HideProgressInfo);
         connect(job, &KJob::result, compressMenu, 
[actionsToBeDisabledInReadOnlyDir, job]() {
             if (!job->error() && !KFileItem(job->statResult(), 
job->url()).isWritable()) {
                 for (auto action : actionsToBeDisabledInReadOnlyDir) {
diff -ur '--exclude=po' ark-25.04.0/app/org.kde.ark.appdata.xml 
ark-25.04.3/app/org.kde.ark.appdata.xml
--- ark-25.04.0/app/org.kde.ark.appdata.xml     2025-04-07 23:07:48.000000000 
+0200
+++ ark-25.04.3/app/org.kde.ark.appdata.xml     2025-07-01 11:40:18.000000000 
+0200
@@ -418,6 +418,9 @@
     <binary>ark</binary>
   </provides>
   <releases>
+    <release version="25.04.3" date="2025-07-03"/>
+    <release version="25.04.2" date="2025-06-05"/>
+    <release version="25.04.1" date="2025-05-08"/>
     <release version="25.04.0" date="2025-04-17"/>
     <release version="24.12.3" date="2025-03-06"/>
     <release version="24.12.2" date="2025-02-06"/>
diff -ur '--exclude=po' ark-25.04.0/CMakeLists.txt ark-25.04.3/CMakeLists.txt
--- ark-25.04.0/CMakeLists.txt  2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/CMakeLists.txt  2025-07-01 11:40:18.000000000 +0200
@@ -3,7 +3,7 @@
 # KDE Application Version, managed by release script
 set (RELEASE_SERVICE_VERSION_MAJOR "25")
 set (RELEASE_SERVICE_VERSION_MINOR "04")
-set (RELEASE_SERVICE_VERSION_MICRO "0")
+set (RELEASE_SERVICE_VERSION_MICRO "3")
 set (RELEASE_SERVICE_VERSION 
"${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
 project(ark VERSION ${RELEASE_SERVICE_VERSION})
 
diff -ur '--exclude=po' ark-25.04.0/debian/changelog 
ark-25.04.3/debian/changelog
--- ark-25.04.0/debian/changelog        2025-04-17 18:40:17.000000000 +0200
+++ ark-25.04.3/debian/changelog        2025-07-18 15:34:31.000000000 +0200
@@ -1,3 +1,14 @@
+ark (4:25.04.3-1) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * New upstream release (25.04.3).
+    - CompressFileItemAction: stat without progress info.
+  * Backport upstream commits:
+    - Fix file sorting order not matching Dolphin’s. [55b6d6e6] (kde#387969)
+    - Fix corner case of single-threaded CPU getting 0 thread. [1435ccd4]
+
+ -- Aurélien COUDERC <[email protected]>  Fri, 18 Jul 2025 15:34:31 +0200
+
 ark (4:25.04.0-1) unstable; urgency=medium
 
   [ Aurélien COUDERC ]
Seulement dans ark-25.04.3/debian: patches
diff -ur '--exclude=po' ark-25.04.0/part/archivesortfiltermodel.cpp 
ark-25.04.3/part/archivesortfiltermodel.cpp
--- ark-25.04.0/part/archivesortfiltermodel.cpp 2025-04-07 23:07:48.000000000 
+0200
+++ ark-25.04.3/part/archivesortfiltermodel.cpp 2025-07-20 18:49:17.000000000 
+0200
@@ -10,11 +10,48 @@
 
 using namespace Kerfuffle;
 
+namespace
+{
+/**
+ * Performs a natural string comparison.
+ * This function compares strings in a way that is similar to natural human 
sorting order.
+ * It is adapted from the Dolphin KFileItemModel::stringCompare implementation.
+ *
+ * @note Consider refactoring this logic to a framework-level utility
+ * for improved maintainability and reusability across multiple projects.
+ *
+ * @return Integer less than, equal to, or greater than zero if the first 
argument is
+ * found, respectively, to be less than, to match, or be greater than the 
second.
+ */
+int naturalStringCompare(const QString &a, const QString &b, const QCollator 
&collator)
+{
+    // Split extension, taking into account it can be empty
+    constexpr QString::SectionFlags flags = QString::SectionSkipEmpty | 
QString::SectionIncludeLeadingSep;
+
+    // Sort by baseName first
+    const QString aBaseName = a.section(QLatin1Char('.'), 0, 0, flags);
+    const QString bBaseName = b.section(QLatin1Char('.'), 0, 0, flags);
+
+    const int res = collator.compare(aBaseName, bBaseName);
+    if (res != 0 || (aBaseName.length() == a.length() && bBaseName.length() == 
b.length())) {
+        return res;
+    }
+
+    // sliced() has undefined behavior when pos < 0 or pos > size().
+    Q_ASSERT(aBaseName.length() <= a.length() && aBaseName.length() >= 0);
+    Q_ASSERT(bBaseName.length() <= b.length() && bBaseName.length() >= 0);
+
+    // baseNames were equal, sort by extension
+    return collator.compare(a.sliced(aBaseName.length()), 
b.sliced(bBaseName.length()));
+}
+}
+
 ArchiveSortFilterModel::ArchiveSortFilterModel(QObject *parent)
     : QSortFilterProxyModel(parent)
 {
     // always enable recursive fitlering
     setRecursiveFilteringEnabled(true);
+    m_collator.setNumericMode(true);
 }
 
 ArchiveSortFilterModel::~ArchiveSortFilterModel()
@@ -36,6 +73,11 @@
         return false;
     } else {
         switch (col) {
+        case DisplayName: {
+            const auto leftFullName = 
left->property(property.constData()).toString();
+            const auto rightFullName = 
right->property(property.constData()).toString();
+            return naturalStringCompare(leftFullName, rightFullName, 
m_collator) < 0;
+        }
         case Size:
         case CompressedSize:
             if (left->property(property.constData()).toULongLong() < 
right->property(property.constData()).toULongLong()) {
diff -ur '--exclude=po' ark-25.04.0/part/archivesortfiltermodel.h 
ark-25.04.3/part/archivesortfiltermodel.h
--- ark-25.04.0/part/archivesortfiltermodel.h   2025-04-07 23:07:48.000000000 
+0200
+++ ark-25.04.3/part/archivesortfiltermodel.h   2025-07-20 18:49:17.000000000 
+0200
@@ -6,6 +6,7 @@
 #ifndef ARCHIVESORTFILTERMODEL_H
 #define ARCHIVESORTFILTERMODEL_H
 
+#include <QCollator>
 #include <QSortFilterProxyModel>
 
 class ArchiveSortFilterModel : public QSortFilterProxyModel
@@ -17,6 +18,9 @@
     ~ArchiveSortFilterModel() override;
 
     bool lessThan(const QModelIndex &leftIndex, const QModelIndex &rightIndex) 
const override;
+
+private:
+    QCollator m_collator;
 };
 
 #endif // ARCHIVESORTFILTERMODEL_H
diff -ur '--exclude=po' ark-25.04.0/.pc/applied-patches 
ark-25.04.3/.pc/applied-patches
--- ark-25.04.0/.pc/applied-patches     2025-07-20 18:49:17.015831681 +0200
+++ ark-25.04.3/.pc/applied-patches     2025-07-20 18:49:17.359828335 +0200
@@ -0,0 +1,2 @@
+upstream_55b6d6e6_Implement-Dolphin-style-natural-string-sorting.patch
+upstream_1435ccd4_Fix-corner-case-of-single-threaded-CPU-when-calculating-number-of-threads.patch
Seulement dans ark-25.04.3/.pc: 
upstream_1435ccd4_Fix-corner-case-of-single-threaded-CPU-when-calculating-number-of-threads.patch
Seulement dans ark-25.04.3/.pc: 
upstream_55b6d6e6_Implement-Dolphin-style-natural-string-sorting.patch
diff -ur '--exclude=po' 
ark-25.04.0/plugins/cliarjplugin/kerfuffle_cliarj.json.cmake 
ark-25.04.3/plugins/cliarjplugin/kerfuffle_cliarj.json.cmake
--- ark-25.04.0/plugins/cliarjplugin/kerfuffle_cliarj.json.cmake        
2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/plugins/cliarjplugin/kerfuffle_cliarj.json.cmake        
2025-07-01 11:40:18.000000000 +0200
@@ -39,6 +39,7 @@
         "Description[ro]": "Suport deplin pentru formatul de arhivă ARJ",
         "Description[ru]": "Полная поддержка архивов ARJ",
         "Description[sa]": "एआरजे संग्रहस्वरूपेषु पूर्णसमर्थनम्",
+        "Description[sk]": "Úplná podpora archívnych formátov ARJ",
         "Description[sl]": "Polna podpora za arhive vrste ARJ",
         "Description[sv]": "Fullt stöd för ARJ arkivformat",
         "Description[tr]": "ARJ arşiv biçimi için tam destek",
diff -ur '--exclude=po' 
ark-25.04.0/plugins/libarchive/readwritelibarchiveplugin.cpp 
ark-25.04.3/plugins/libarchive/readwritelibarchiveplugin.cpp
--- ark-25.04.0/plugins/libarchive/readwritelibarchiveplugin.cpp        
2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/plugins/libarchive/readwritelibarchiveplugin.cpp        
2025-07-20 18:49:17.000000000 +0200
@@ -302,7 +302,7 @@
 {
     int ret;
     bool requiresExecutable = false;
-    const auto threads = 
std::to_string(static_cast<unsigned>(std::thread::hardware_concurrency() * 
0.8));
+    const auto threads = std::to_string(std::max(1u, 
static_cast<unsigned>(std::thread::hardware_concurrency() * 0.8)));
     const bool is7zFile = filename().right(2).toUpper() == QLatin1String("7Z");
 
     if (is7zFile) {
diff -ur '--exclude=po' ark-25.04.0/snapcraft.yaml ark-25.04.3/snapcraft.yaml
--- ark-25.04.0/snapcraft.yaml  2025-04-07 23:07:48.000000000 +0200
+++ ark-25.04.3/snapcraft.yaml  2025-07-01 11:40:18.000000000 +0200
@@ -20,6 +20,12 @@
       - udisks2
       - raw-usb
       - mount-observe
+      - audio-playback
+    environment:
+      ALSA_CONFIG_PATH: "$SNAP/kf6/etc/asound.conf"
+layout:
+  /usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/alsa-lib:
+    bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/alsa-lib
 slots:
   session-dbus-interface:
     interface: dbus
@@ -37,6 +43,7 @@
       - libzip-dev
       - pkg-config
       - zlib1g-dev
+      - libpulse0
     stage-packages:
       - bzip2
       - p7zip-full
@@ -47,26 +54,18 @@
       - libarchive13
       - libzip4
       - zlib1g
+      - libpulse0
+      - libasound2
+      - libasound2-plugins
+      - libasound2-data
     source: .
     source-type: local
     cmake-parameters:
       - -DCMAKE_INSTALL_PREFIX=/usr
       - -DCMAKE_BUILD_TYPE=Release
       - -DQT_MAJOR_VERSION=6
-      - -DBUILD_WITH_QT6=ON
       - -DBUILD_TESTING=OFF
-      - -DCMAKE_INSTALL_SYSCONFDIR=/etc
-      - -DCMAKE_INSTALL_LOCALSTATEDIR=/var
-      - -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON
-      - -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF
-      - -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON
-      - -DCMAKE_INSTALL_RUNSTATEDIR=/run
-      - -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON
-      - -DCMAKE_VERBOSE_MAKEFILE=ON
-      - -DCMAKE_INSTALL_LIBDIR=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
-      - --log-level=STATUS
-      - -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
-    build-environment: &build-environment
+    build-environment:
       - LD_LIBRARY_PATH: 
"/snap/mesa-2404/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:/snap/kde-qt6-core24-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libproxy:$LD_LIBRARY_PATH"
     prime:
       - -usr/lib/*/cmake/*

--- End Message ---
--- Begin Message ---
Unblocked ark.

--- End Message ---

Reply via email to