Web lists-archives.com

Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)




Tatsuro MATSUOKA wrote:
----- Original Message -----

From: Mark Geisert
To: cygwin
Cc:
Date: 2019/3/11, Mon 16:21
Subject: Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)

T atsuro MATSUOKA wrote:
 ----- Original Message -----

 From: Yaakov Selkowitz <yselkowitz
 To: cygwin
 Cc:
 Date: 2019/3/11, Mon 09:53
 Subject: Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)

 On Mon, 2019-03-11 at 09:28 +0900, Tatsuro MATSUOKA wrote:
  > On Mon, 2019-03-04 at 07:43 +0900, Tatsuro MATSUOKA wrote:
  > >  I ask alpply a patch the below which enables to use qt
terminal
 on gnuplot
  > for Cygwin.
  > >  (cygQt5Network-5.dll is affected.)
  > >
  > >  ---
 a/qtbase-opensource-src-5.9.4/src/network/socket/qlocalsocket_unix.cpp
  > >  +++
 b/qtbase-opensource-src-5.9.4/src/network/socket/qlocalsocket_unix.cpp
  > >  @@ -239,7 +239,7 @@ void
QLocalSocket::connectToServer(OpenM
  > >      }
  > >      // create the socket
  > >  -    if (-1 == (d->connectingSocket =
qt_safe_socket(PF_UNIX,
 SOCK_STREAM, 0, O_NONBLOCK))) {
  > >  +    if (-1 == (d->connectingSocket =
qt_safe_socket(PF_UNIX,
 SOCK_STREAM, 0))) {
  > >
d->errorOccurred(UnsupportedSocketOperationError,
 QLatin1String("QLocalSocket::connectToServer"));
  > >          return;
  > >
  >
  > It seems we keep going in circles on this point.  If there is
a bug in
  > O_NONBLOCK, then please either narrow it down to an STC, or
provide a
  > patch to Cygwin.

  Very basic question. What is STC?
  I googled but I cannot find what is it.

 https://cygwin.com/acronyms/#STC


 Sorry I cannot make STC due to lack of knowledge of QT.
 In stead, I explain what gnuplot do.

 On gnuplot for qt,
 plot is done by child process named gnuplot_qt.

 When gnuplot connect with gnuplot with
   qt->socket.connectToServer(server);


 without the above patch ()
 qt_safe_socket(PF_UNIX, SOCK_STREAM, 0, O_NONBLOCK)))
 gnuplot cannot connect with gnuplot_qt.

 with the above patch ()
 qt_safe_socket(PF_UNIX, SOCK_STREAM, 0))
 gnuplot can connect with gnuplot_qt.

 Perhaps qt with O_NONBLOCK is some wrong with process connection.

Hi Tatsuro,
For the record, what Enrico supplied is what we'd call an STC, a Simple Test

Case.  Unfortunately his STC dealt with select() on a named pipe.

Your gnuplot issue has to do with "Unix sockets", a form of IPC
between
processes.  Cygwin uses Windows named pipes to implement "Unix
sockets" on
Windows.  This means we are mapping Unix/Linux socket constructs onto a
dissimilar feature of Windows, and there are many opportunities for mismatch.

Can you run your gnuplot under strace?  You would set up your environment as
needed to reproduce the issue, then launch gnuplot as so:
     strace -o gnuplot.trace gnuplot
This will create a trace file of Cygwin syscalls and operations.  Let us know
how big (how many lines) are in the trace file and we'll see what's
next.

..mark


I send xz commpress gnuplot.trace.

Next time we'll arrange private email for large things. I'm now poring over the strace; thanks for sending it.

If it's not too much trouble, could you show what you tell gnuplot and how you set up the Qt environment? Are you running gnuplot from inside qterminal?

..mark


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple