[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1107957: unblock: konsole/4:25.04.2-1



Package: release.debian.org
Severity: normal
X-Debbugs-Cc: konsole@packages.debian.org, Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Control: affects -1 + src:konsole
User: release.debian.org@packages.debian.org
Usertags: unblock

Dear Release Team,

please unblock package konsole.

[ Reason ]
It contains the following changes:
* New upstream release (25.04.1).
  - Update kconf update script version to 6.
  - Wrap output it html document & body. (kde#500515)
  - Allow /path/to/file.cpp:123:123 paths. (kde#501004)
  - Fix search wrapping behavior at boundaries. (kde#396510)
  - Fix: disable copy action even when semantic integration is detected.
  - Feat(TerminalDisplay): Copy to X11 selection immediately on mouse release.
* New upstream release (25.04.2).
  - Clear the arguments if the command is not found.
* Drop backported commit now part of the upstream release.

The complete debdiff is quite huge due to translation fixes to I’m also
attaching a simple diff trimmed from these for your convenience :
    diff -ur --exclude=po konsole-25.04.[02]

[ Tests ]
- Tested standard terminal features quite extensively, including when
  used inside yakuake.

[ Risks ]
Upstream point releases only contain targetted commits. 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 konsole/4:25.04.2-1

Attachment: konsole_25.04.0-2.dsc_konsole_25.04.2-1.dsc.debdiff.gz
Description: application/gzip

diff -ur '--exclude=po' konsole-25.04.0/CMakeLists.txt konsole-25.04.2/CMakeLists.txt
--- konsole-25.04.0/CMakeLists.txt	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/CMakeLists.txt	2025-06-02 22:11:25.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 "2")
 set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
 
 # Do not increase these requirements without a merge-request or/and
diff -ur '--exclude=po' konsole-25.04.0/debian/changelog konsole-25.04.2/debian/changelog
--- konsole-25.04.0/debian/changelog	2025-06-10 19:48:29.000000000 +0200
+++ konsole-25.04.2/debian/changelog	2025-06-17 08:52:48.000000000 +0200
@@ -1,3 +1,19 @@
+konsole (4:25.04.2-1) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * New upstream release (25.04.1).
+    - Update kconf update script version to 6.
+    - Wrap output it html document & body. (kde#500515)
+    - Allow /path/to/file.cpp:123:123 paths. (kde#501004)
+    - Fix search wrapping behavior at boundaries. (kde#396510)
+    - Fix: disable copy action even when semantic integration is detected.
+    - Feat(TerminalDisplay): Copy to X11 selection immediately on mouse release.
+  * New upstream release (25.04.2).
+    - Clear the arguments if the command is not found.
+  * Drop backported commit now part of the upstream release.
+
+ -- Aurélien COUDERC <coucouf@debian.org>  Tue, 17 Jun 2025 08:52:48 +0200
+
 konsole (4:25.04.0-2) unstable; urgency=medium
 
   [ Aurélien COUDERC ]
Seulement dans konsole-25.04.0/debian: patches
diff -ur '--exclude=po' konsole-25.04.0/desktop/org.kde.konsole.appdata.xml konsole-25.04.2/desktop/org.kde.konsole.appdata.xml
--- konsole-25.04.0/desktop/org.kde.konsole.appdata.xml	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/desktop/org.kde.konsole.appdata.xml	2025-06-02 22:11:25.000000000 +0200
@@ -88,6 +88,7 @@
   <summary xml:lang="pt-BR">Use a interface de linha de comando</summary>
   <summary xml:lang="ru">Использование интерфейса командной строки</summary>
   <summary xml:lang="sa">आदेशपङ्क्ति-अन्तरफलकस्य उपयोगं कुर्वन्तु</summary>
+  <summary xml:lang="sk">Používať rozhrania príkazového riadka</summary>
   <summary xml:lang="sl">Uporabi vmesnik ukazne vrstice</summary>
   <summary xml:lang="sv">Använd kommandoradsgränssnitt</summary>
   <summary xml:lang="ta">முனைய இடைமுகப்பைப் பயன்படுத்துங்கள்</summary>
@@ -593,6 +594,8 @@
   </provides>
   <update_contact>konsole-devel_AT_kde.org</update_contact>
   <releases>
+    <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' konsole-25.04.0/kconf_update/konsole.upd konsole-25.04.2/kconf_update/konsole.upd
--- konsole-25.04.0/kconf_update/konsole.upd	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/kconf_update/konsole.upd	2025-06-02 22:11:25.000000000 +0200
@@ -1,4 +1,4 @@
-Version=5
+Version=6
 
 Id=konsole_globalaccel
 File=khotkeysrc
diff -ur '--exclude=po' konsole-25.04.0/.pc/applied-patches konsole-25.04.2/.pc/applied-patches
--- konsole-25.04.0/.pc/applied-patches	2025-06-17 21:55:39.511963470 +0200
+++ konsole-25.04.2/.pc/applied-patches	2025-06-17 23:36:33.267277472 +0200
@@ -1 +0,0 @@
-clear_argument_list.patch
Seulement dans konsole-25.04.0/.pc: clear_argument_list.patch
diff -ur '--exclude=po' konsole-25.04.0/src/autotests/TerminalCharacterDecoderTest.cpp konsole-25.04.2/src/autotests/TerminalCharacterDecoderTest.cpp
--- konsole-25.04.0/src/autotests/TerminalCharacterDecoderTest.cpp	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/src/autotests/TerminalCharacterDecoderTest.cpp	2025-06-02 22:11:25.000000000 +0200
@@ -112,6 +112,14 @@
     decoder->end();
     delete[] testCharacters;
     delete decoder;
+
+    // ensure we exported the encoding, bug 500515
+    QVERIFY(outputString.contains(QStringLiteral("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")));
+
+    // strip HTML document
+    outputString.replace(QRegularExpression(QStringLiteral("^.*<body>\\n"), QRegularExpression::DotMatchesEverythingOption), QString());
+    outputString.replace(QRegularExpression(QStringLiteral("</body>.*$"), QRegularExpression::DotMatchesEverythingOption), QString());
+
     QCOMPARE(outputString, result);
 }
 
diff -ur '--exclude=po' konsole-25.04.0/src/decoders/HTMLDecoder.cpp konsole-25.04.2/src/decoders/HTMLDecoder.cpp
--- konsole-25.04.0/src/decoders/HTMLDecoder.cpp	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/src/decoders/HTMLDecoder.cpp	2025-06-02 22:11:25.000000000 +0200
@@ -30,6 +30,15 @@
 {
     _output = output;
 
+    // open html document & body, ensure right encoding set, bug 500515
+    *_output << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
+    *_output << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"DTD/xhtml1-strict.dtd\">\n";
+    *_output << "<html xmlns=\"http://www.w3.org/1999/xhtml\";>\n";
+    *_output << "<head>\n";
+    *_output << "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n";
+    *_output << "</head>\n";
+    *_output << "<body>\n";
+
     QString text;
     openSpan(text, QStringLiteral("font-family:monospace"));
     *output << text;
@@ -43,6 +52,10 @@
     closeSpan(text);
     *_output << text;
 
+    // close body & html document
+    *_output << "</body>\n";
+    *_output << "</html>\n";
+
     _output = nullptr;
 }
 
diff -ur '--exclude=po' konsole-25.04.0/src/filterHotSpots/FileFilterHotspot.cpp konsole-25.04.2/src/filterHotSpots/FileFilterHotspot.cpp
--- konsole-25.04.0/src/filterHotSpots/FileFilterHotspot.cpp	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/src/filterHotSpots/FileFilterHotspot.cpp	2025-06-02 22:11:25.000000000 +0200
@@ -77,9 +77,9 @@
     // Output of e.g.:
     // - grep with line numbers: "path/to/some/file:123:"
     //   grep with long lines e.g. "path/to/some/file:123:void blah" i.e. no space after 123:
-    // - compiler errors with line/column numbers: "/path/to/file.cpp:123:123:"
+    // - compiler errors with line/column numbers: "/path/to/file.cpp:123:123:" or "/path/to/file.cpp:123:123"
     // - ctest failing unit tests: "/path/to/file(204)"
-    static const QRegularExpression re(QStringLiteral(R"foo([:\(](\d+)(?:\)\])?(?::(\d+):|:[^\d]*)?$)foo"));
+    static const QRegularExpression re(QStringLiteral(R"foo([:\(](\d+)(?:\)\])?(?::(\d+):?|:[^\d]*)?$)foo"));
     const QRegularExpressionMatch match = re.match(_filePath);
     if (match.hasMatch()) {
         // The file path without the ":123" ... etc part
diff -ur '--exclude=po' konsole-25.04.0/src/SearchHistoryTask.cpp konsole-25.04.2/src/SearchHistoryTask.cpp
--- konsole-25.04.0/src/SearchHistoryTask.cpp	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/src/SearchHistoryTask.cpp	2025-06-02 22:11:25.000000000 +0200
@@ -78,6 +78,8 @@
         int delta = forwards ? maxDelta : -maxDelta;
 
         int endLine = line;
+        bool continueLoop = true;
+        bool invertDirection = false;
         bool hasWrapped = false; // set to true when we reach the top/bottom
         // of the output and continue from the other
         // end
@@ -126,9 +128,15 @@
                 endLine += delta;
 
                 if (forwards) {
-                    endLine = qMin(startLine, endLine);
+                    if (endLine >= startLine) {
+                        endLine = startLine;
+                        continueLoop = false;
+                    }
                 } else {
-                    endLine = qMax(startLine, endLine);
+                    if (endLine <= startLine) {
+                        endLine = startLine;
+                        continueLoop = false;
+                    }
                 }
             } else {
                 endLine += delta;
@@ -177,7 +185,11 @@
 
             // if noWrap is checked and we wrapped, set cursor at last match
             if (hasWrapped && _noWrap) {
-                // invert search direction
+                // one chance to invert search direction
+                if (invertDirection) {
+                    continueLoop = false;
+                }
+                invertDirection = true;
                 forwards = !forwards;
                 delta = -delta;
                 endLine += (forwards ? 1 : -1);
@@ -187,7 +199,7 @@
             // clear the current block of text and move to the next one
             string.clear();
             line = endLine;
-        } while (startLine != endLine);
+        } while (continueLoop);
         if (!session->getSelectMode()) {
             // if no match was found, clear selection to indicate this,
             window->clearSelection();
diff -ur '--exclude=po' konsole-25.04.0/src/session/SessionController.cpp konsole-25.04.2/src/session/SessionController.cpp
--- konsole-25.04.0/src/session/SessionController.cpp	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/src/session/SessionController.cpp	2025-06-02 22:11:25.000000000 +0200
@@ -475,9 +475,8 @@
     QAction *copyAction = actionCollection()->action(QStringLiteral("edit_copy"));
     QAction *copyContextMenu = actionCollection()->action(QStringLiteral("edit_copy_contextmenu"));
     // copy action is meaningful only when some text is selected.
-    // Or when semantic integration is used.
     bool hasRepl = view() && view()->screenWindow() && view()->screenWindow()->screen() && view()->screenWindow()->screen()->hasRepl();
-    copyAction->setEnabled(!selectionEmpty || hasRepl);
+    copyAction->setEnabled(!selectionEmpty);
     copyContextMenu->setVisible(!selectionEmpty || hasRepl);
     QAction *Action = actionCollection()->action(QStringLiteral("edit_copy_contextmenu_in"));
     Action->setVisible(!selectionEmpty && hasRepl);
diff -ur '--exclude=po' konsole-25.04.0/src/terminalDisplay/TerminalDisplay.cpp konsole-25.04.2/src/terminalDisplay/TerminalDisplay.cpp
--- konsole-25.04.0/src/terminalDisplay/TerminalDisplay.cpp	2025-04-07 22:52:58.000000000 +0200
+++ konsole-25.04.2/src/terminalDisplay/TerminalDisplay.cpp	2025-06-02 22:11:25.000000000 +0200
@@ -1517,6 +1517,7 @@
             clearSelection();
         } else {
             if (_actSel > 1) {
+                copyToX11Selection();
                 if (_possibleTripleClick) {
                     const QString text = _screenWindow->selectedText(currentDecodingOptions());
                     if (!text.isEmpty()) {
@@ -1525,8 +1526,6 @@
                             _doubleClickSelectedHtml = _screenWindow->selectedText(currentDecodingOptions() | Screen::ConvertToHtml);
                         }
                     }
-                } else {
-                    copyToX11Selection();
                 }
             }
 

Reply to: