Package Details: mingw-w64-qt5-serialport 5.13.1-2

Git Clone URL: https://aur.archlinux.org/mingw-w64-qt5-serialport.git (read-only)
Package Base: mingw-w64-qt5-serialport
Description: Provides access to hardware and virtual serial ports (mingw-w64)
Upstream URL: https://www.qt.io/
Licenses: custom, GPL3, LGPL3, FDL
Groups: mingw-w64-qt5
Submitter: ant32
Maintainer: Martchus
Last Packager: Martchus
Votes: 6
Popularity: 0.447311
First Submitted: 2013-08-28 23:59
Last Updated: 2019-09-16 15:10

Pinned Comments

Martchus commented on 2016-07-10 19:39

All my packages are managed at GitHub where you can also contribute directly: https://github.com/Martchus/PKGBUILDs
There also exist a binary repository: https://martchus.no-ip.biz/repo/arch/ownstuff

For general discussion and issues not only concerning this Qt module in particular please use the comment section of the package mingw-w64-qt5-base.

Latest Comments

1 2 Next › Last »

Genues commented on 2019-09-16 15:03

@Martchus Thank you!

Martchus commented on 2019-09-16 14:40

@Genues So it is exactly like I suspected: https://codereview.qt-project.org/c/qt/qtserialport/+/273883

And they also just reverted that change. I'll update the package to include the revert.

Genues commented on 2019-09-13 08:37

It is BUG in upstream - https://bugreports.qt.io/browse/QTBUG-78086

Upd. @Martchus, maybe you could add a patch to fix it? Thank you.

Martchus commented on 2019-09-12 13:20

If you reverse-apply the suspicious change and can confirm that it works again I'll add the revert/patch to the package.

To file an upstream bug it would make sense to provide a minimum example to reproduce the issue.

Martchus commented on 2019-09-12 13:14

probably the problem is in the assembly for mingw?

Yes, maybe it is a Windows/mingw-64 specific problem. Since I really haven't changed the way this is built I suppose it is a (platform specific) upstream bug.

And you keep the rest of the mingw-w64-qt5-* packages on 5.13.1 while downgrading only mingw-w64-qt5-serialport to 5.13.0? Doing that is not supported but will likely work. And if that works we know that the regression is most likely only caused by changes in qtserialport and none of the other repos.

So far I'd blame the following Windows-specific change in qtserialport:

diff --git a/src/serialport/qwinoverlappedionotifier.cpp b/src/serialport/qwinoverlappedionotifier.cpp
index 615dacc..233ee69 100644
--- a/src/serialport/qwinoverlappedionotifier.cpp
+++ b/src/serialport/qwinoverlappedionotifier.cpp
@@ -129,6 +129,7 @@ public:
     HANDLE hSemaphore = nullptr;
     HANDLE hResultsMutex = nullptr;
     QAtomicInt waiting;
+    QAtomicInt pendingNotifications;
     QQueue<IOResult> results;
 };

@@ -395,14 +396,17 @@ void QWinOverlappedIoNotifierPrivate::notify(DWORD numberOfBytes, DWORD errorCod
     results.enqueue(IOResult(numberOfBytes, errorCode, overlapped));
     ReleaseMutex(hResultsMutex);
     ReleaseSemaphore(hSemaphore, 1, NULL);
-    if (!waiting)
+    if (!waiting && pendingNotifications-- == 0)
         emit q->_q_notify();
 }

 void QWinOverlappedIoNotifierPrivate::_q_notified()
 {
-    if (WaitForSingleObject(hSemaphore, 0) == WAIT_OBJECT_0)
-        dispatchNextIoResult();
+    int n = pendingNotifications.fetchAndStoreAcquire(0);
+    while (--n >= 0) {
+        if (WaitForSingleObject(hSemaphore, 0) == WAIT_OBJECT_0)
+            dispatchNextIoResult();
+    }
 }

 OVERLAPPED *QWinOverlappedIoNotifierPrivate::dispatchNextIoResult()

Genues commented on 2019-09-12 12:13

@Martchusf,package qt5-serialport from Extra working fine. I. e. probably the problem is in the assembly for mingw? I forgot to specify that the package is installed from repository https://martchus.no-ip.biz/repo/arch/ownstuff

Martchus commented on 2019-09-12 11:35

@Genues I've never used this module myself and don't know its API. But this sounds like an issue to be reported on the upstream bug tracker with a simple example to reproduce it. Maybe git diff v5.13.0..v5.13.1 for that module shows you the problematic changes.

Genues commented on 2019-09-12 10:16

Hi. After update from 5.13 to 5.13.1 not emitted readyRead signal. Downgrade to 5.13 solved problem.

ant32 commented on 2016-10-09 03:48

invalid md5sum

Martchus commented on 2016-07-10 19:39

All my packages are managed at GitHub where you can also contribute directly: https://github.com/Martchus/PKGBUILDs
There also exist a binary repository: https://martchus.no-ip.biz/repo/arch/ownstuff

For general discussion and issues not only concerning this Qt module in particular please use the comment section of the package mingw-w64-qt5-base.