Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libqt5-qtserialport for 
openSUSE:Factory checked in at 2026-05-25 21:53:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtserialport (Old)
 and      /work/SRC/openSUSE:Factory/.libqt5-qtserialport.new.2084 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libqt5-qtserialport"

Mon May 25 21:53:06 2026 rev:59 rq:1354931 version:5.15.19+kde0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtserialport/libqt5-qtserialport.changes  
2025-11-05 16:18:13.757881103 +0100
+++ 
/work/SRC/openSUSE:Factory/.libqt5-qtserialport.new.2084/libqt5-qtserialport.changes
        2026-05-25 21:55:41.130205091 +0200
@@ -1,0 +2,13 @@
+Fri May 22 15:16:44 UTC 2026 - Fabian Vogt <[email protected]>
+
+- Update to version 5.15.19+kde0, rebased upstream:
+  * qserialportinfo_unix.cpp: do not return an incomplete list from udev
+  * QSerialPortInfo: handle {QString,QBA}::indexOf() returning -1
+  * Doc: fix wording in QSerialPort::open()
+  * Doc: clarify QSerialPort::open() error reporting
+  * Unix: fix Mark/Space parity emulation
+  * QSerialPortInfo::isNull(): fix the usage of inline keyword
+  * Docs: improve the example of reading from port
+  * Bump version to 5.15.19
+
+-------------------------------------------------------------------

Old:
----
  qtserialport-everywhere-src-5.15.18+kde0.obscpio

New:
----
  qtserialport-everywhere-src-5.15.19+kde0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libqt5-qtserialport.spec ++++++
--- /var/tmp/diff_new_pack.JmEsjI/_old  2026-05-25 21:55:41.998240799 +0200
+++ /var/tmp/diff_new_pack.JmEsjI/_new  2026-05-25 21:55:42.002240963 +0200
@@ -19,11 +19,11 @@
 %define qt5_snapshot 1
 %define libname libQt5SerialPort5
 %define base_name libqt5
-%define real_version 5.15.18
-%define so_version 5.15.18
+%define real_version 5.15.19
+%define so_version 5.15.19
 %define tar_version qtserialport-everywhere-src-%{version}
 Name:           libqt5-qtserialport
-Version:        5.15.18+kde0
+Version:        5.15.19+kde0
 Release:        0
 Summary:        Qt 5 Serial Port Addon
 License:        LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)

++++++ _service ++++++
--- /var/tmp/diff_new_pack.JmEsjI/_old  2026-05-25 21:55:42.050242938 +0200
+++ /var/tmp/diff_new_pack.JmEsjI/_new  2026-05-25 21:55:42.054243102 +0200
@@ -1,12 +1,12 @@
 <services>
   <service name="obs_scm" mode="disabled">
    <param name="changesgenerate">enable</param>
-   <param name="versionformat">5.15.18+kde@TAG_OFFSET@</param>
+   <param name="versionformat">5.15.19+kde@TAG_OFFSET@</param>
    <param name="url">https://invent.kde.org/qt/qt/qtserialport.git</param>
    <param name="scm">git</param>
    <param name="filename">qtserialport-everywhere-src</param>
    <param name="revision">kde/5.15</param>
-   <param name="parent-tag">v5.15.18-lts-lgpl</param>
+   <param name="parent-tag">v5.15.19-lts-lgpl</param>
    <param name="changesgenerate">enable</param>
   </service>
   <service name="set_version" mode="disabled"/>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.JmEsjI/_old  2026-05-25 21:55:42.074243925 +0200
+++ /var/tmp/diff_new_pack.JmEsjI/_new  2026-05-25 21:55:42.078244090 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://invent.kde.org/qt/qt/qtserialport.git</param>
-              <param 
name="changesrevision">b64a7eeda9b6a65b5ed01b1b40b07177f0aa4c0f</param></service></servicedata>
+              <param 
name="changesrevision">ca1f2486527e7acf87d466062c035845f9774573</param></service></servicedata>
 (No newline at EOF)
 

++++++ qtserialport-everywhere-src-5.15.18+kde0.obscpio -> 
qtserialport-everywhere-src-5.15.19+kde0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtserialport-everywhere-src-5.15.18+kde0/.qmake.conf 
new/qtserialport-everywhere-src-5.15.19+kde0/.qmake.conf
--- old/qtserialport-everywhere-src-5.15.18+kde0/.qmake.conf    2025-03-30 
13:49:54.000000000 +0200
+++ new/qtserialport-everywhere-src-5.15.19+kde0/.qmake.conf    2025-11-19 
21:21:21.000000000 +0100
@@ -2,4 +2,4 @@
 
 DEFINES += QT_NO_FOREACH QT_NO_JAVA_STYLE_ITERATORS QT_NO_LINKED_LIST
 
-MODULE_VERSION = 5.15.18
+MODULE_VERSION = 5.15.19
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialport.cpp 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialport.cpp
--- old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialport.cpp 
2025-03-30 13:49:54.000000000 +0200
+++ new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialport.cpp 
2025-11-19 21:21:21.000000000 +0100
@@ -167,11 +167,11 @@
     See the following example:
 
     \code
-     int numRead = 0, numReadTotal = 0;
+     qint64 numReadTotal = 0;
      char buffer[50];
 
      for (;;) {
-         numRead  = serial.read(buffer, 50);
+         const qint64 numRead  = serial.read(buffer, 50);
 
          // Do whatever with the array
 
@@ -533,13 +533,16 @@
     successful; otherwise returns \c false and sets an error code which can be
     obtained by calling the error() method.
 
-    \note The method returns \c false if opening the port is successful, but 
could
-    not set any of the port settings successfully. In that case, the port is
-    closed automatically not to leave the port around with incorrect settings.
+    If the port is opened, but setting the desired port parameters fails, the
+    method returns \c false and closes the port automatically.
 
     \warning The \a mode has to be QIODevice::ReadOnly, QIODevice::WriteOnly,
     or QIODevice::ReadWrite. Other modes are unsupported.
 
+    \note Due to historical reasons, upon a successful open the
+    \l errorOccurred() signal is emitted with the \l {QSerialPort::}{NoError}
+    error code. This behavior is preserved to keep backwards compatibility.
+
     \sa QIODevice::OpenMode, setPort()
 */
 bool QSerialPort::open(OpenMode mode)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialport_unix.cpp
 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialport_unix.cpp
--- 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialport_unix.cpp
    2025-03-30 13:49:54.000000000 +0200
+++ 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialport_unix.cpp
    2025-11-19 21:21:21.000000000 +0100
@@ -1097,7 +1097,11 @@
         par ^= parity == QSerialPort::MarkParity;
         if (par ^ (tio.c_cflag & PARODD)) { // Need switch parity mode?
             tio.c_cflag ^= PARODD;
-            flush(); //force sending already buffered data, because 
setTermios(&tio); cleares buffers
+            //force sending already buffered data, because setTermios(&tio); 
cleares buffers
+            if (::tcdrain(descriptor) == -1) {
+                setError(getSystemError());
+                break;
+            }
             //todo: add receiving buffered data!!!
             if (!setTermios(&tio))
                 break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialportinfo.h 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialportinfo.h
--- 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialportinfo.h   
    2025-03-30 13:49:54.000000000 +0200
+++ 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialportinfo.h   
    2025-11-19 21:21:21.000000000 +0100
@@ -77,7 +77,7 @@
     bool hasVendorIdentifier() const;
     bool hasProductIdentifier() const;
 
-    bool isNull() const;
+    bool isNull() const { return !d_ptr; }
 #if QT_DEPRECATED_SINCE(5, 6)
     bool isBusy() const;
 #endif
@@ -96,9 +96,6 @@
     QScopedPointer<QSerialPortInfoPrivate, QSerialPortInfoPrivateDeleter> 
d_ptr;
 };
 
-inline bool QSerialPortInfo::isNull() const
-{ return !d_ptr; }
-
 QT_END_NAMESPACE
 
 #endif // QSERIALPORTINFO_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialportinfo_freebsd.cpp
 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialportinfo_freebsd.cpp
--- 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialportinfo_freebsd.cpp
     2025-03-30 13:49:54.000000000 +0200
+++ 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialportinfo_freebsd.cpp
     2025-11-19 21:21:21.000000000 +0100
@@ -58,7 +58,9 @@
     const int firstbound = source.indexOf(QLatin1String(pattern));
     if (firstbound == -1)
         return QString();
-    const int lastbound = source.indexOf(QLatin1Char(' '), firstbound);
+    int lastbound = source.indexOf(QLatin1Char(' '), firstbound);
+    if (lastbound == -1)
+        lastbound = source.size();
     return source.mid(firstbound + pattern.size(), lastbound - firstbound - 
pattern.size());
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialportinfo_unix.cpp
 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialportinfo_unix.cpp
--- 
old/qtserialport-everywhere-src-5.15.18+kde0/src/serialport/qserialportinfo_unix.cpp
        2025-03-30 13:49:54.000000000 +0200
+++ 
new/qtserialport-everywhere-src-5.15.19+kde0/src/serialport/qserialportinfo_unix.cpp
        2025-11-19 21:21:21.000000000 +0100
@@ -187,7 +187,9 @@
     if (firstbound == -1)
         return QString();
 
-    const int lastbound = content.indexOf('\n', firstbound);
+    int lastbound = content.indexOf('\n', firstbound);
+    if (lastbound == -1)
+        lastbound = content.size();
     return QString::fromLatin1(
                 content.mid(firstbound + pattern.size(),
                             lastbound - firstbound - pattern.size()))
@@ -423,7 +425,7 @@
                         udev.data(), 
::udev_list_entry_get_name(dev_list_entry)));
 
         if (!dev)
-            return serialPortInfoList;
+            continue;
 
         QSerialPortInfoPrivate priv;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtserialport-everywhere-src-5.15.18+kde0/tests/auto/qserialport/tst_qserialport.cpp
 
new/qtserialport-everywhere-src-5.15.19+kde0/tests/auto/qserialport/tst_qserialport.cpp
--- 
old/qtserialport-everywhere-src-5.15.18+kde0/tests/auto/qserialport/tst_qserialport.cpp
     2025-03-30 13:49:54.000000000 +0200
+++ 
new/qtserialport-everywhere-src-5.15.19+kde0/tests/auto/qserialport/tst_qserialport.cpp
     2025-11-19 21:21:21.000000000 +0100
@@ -132,6 +132,9 @@
     void readWriteWithDifferentBaudRate_data();
     void readWriteWithDifferentBaudRate();
 
+    void readWriteWithMarkSpaceParity_data();
+    void readWriteWithMarkSpaceParity();
+
 protected slots:
     void handleBytesWrittenAndExitLoopSlot(qint64 bytesWritten);
     void handleBytesWrittenAndExitLoopSlot2(qint64 bytesWritten);
@@ -1284,5 +1287,51 @@
     }
 }
 
+void tst_QSerialPort::readWriteWithMarkSpaceParity_data()
+{
+    QTest::addColumn<QSerialPort::Parity>("parity");
+
+    QTest::newRow("parity_space") << QSerialPort::SpaceParity;
+    QTest::newRow("parity_mark") << QSerialPort::MarkParity;
+}
+
+void tst_QSerialPort::readWriteWithMarkSpaceParity()
+{
+    QFETCH(const QSerialPort::Parity, parity);
+
+    auto setupPort = [&parity](QSerialPort &port) {
+        port.setBaudRate(QSerialPort::Baud9600);
+        port.setParity(parity);
+        port.setDataBits(QSerialPort::Data8);
+        port.setStopBits(QSerialPort::OneStop);
+    };
+
+    QSerialPort sender(m_senderPortName);
+    QSignalSpy senderSpy(&sender, &QSerialPort::bytesWritten);
+    setupPort(sender);
+    QVERIFY(sender.open(QIODevice::ReadWrite));
+
+    QSerialPort receiver(m_receiverPortName);
+    QSignalSpy receiverSpy(&receiver, &QSerialPort::readyRead);
+    setupPort(receiver);
+    QVERIFY(receiver.open(QIODevice::ReadWrite));
+
+    const QByteArray data("some data");
+    const qint64 written = sender.write(data);
+    QCOMPARE(written, qint64(data.size()));
+    QTRY_COMPARE(senderSpy.size(), 1);
+    QCOMPARE(senderSpy.at(0).at(0).value<qint64>(), written);
+
+    QTRY_VERIFY(receiver.bytesAvailable() >= written);
+    QVERIFY(receiverSpy.size() >= 1); // we should get *at least one* signal
+
+#if !defined(Q_OS_UNIX) || defined(CMSPAR)
+    // On UNIX with no CMSPAR the result is flaky, so we cannot even use
+    // QEXPECT_FAIL(). See QTBUG-131679.
+    const QByteArray receivedData = receiver.readAll();
+    QCOMPARE(receivedData, data);
+#endif
+}
+
 QTEST_MAIN(tst_QSerialPort)
 #include "tst_qserialport.moc"

++++++ qtserialport-everywhere-src.obsinfo ++++++
--- /var/tmp/diff_new_pack.JmEsjI/_old  2026-05-25 21:55:42.434258735 +0200
+++ /var/tmp/diff_new_pack.JmEsjI/_new  2026-05-25 21:55:42.442259064 +0200
@@ -1,5 +1,5 @@
 name: qtserialport-everywhere-src
-version: 5.15.18+kde0
-mtime: 1743335394
-commit: b64a7eeda9b6a65b5ed01b1b40b07177f0aa4c0f
+version: 5.15.19+kde0
+mtime: 1763583681
+commit: ca1f2486527e7acf87d466062c035845f9774573
 

Reply via email to