-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nomachine client #5
Comments
Making nxclient-3.0.0-89 use the nxssh that comes with opennx I come one step further but fail like this:
Any ideas? |
Please use nxssh from Etersoft with nxclient. Like opennx, which downloads and uses it in its package. |
Note: My installation is simple adopted for me from Etersoft nxclient_3.5.0.7-deb64 packet. Unfortunately I could not find its source. |
that package is not installable on debian buster (missing deps nx and libpng12). With some tinkering I could get it to run but even with this version I get "exiting with signall 15" (note: The reason for using the original client is some code in nxagent I would like to change. This code is using XSetSelectionOwner() to communicate with the nxclient. I suppose openx is not watching them but nomachine's client is. So I'd like to study the effects of changing that code.) |
Yes, nxclient for linux contain it's own "built-in" copy of old nxagent binary. However, the conditions in which it is used are unknown to me. At least in the list of tasks on the client I have never seen him. Usually nxclient starts a session and ends. Further used nxssh+nxcomp only. I myself wouldn’t refuse to listen to such an existential variant as nxagent on nxclient side. |
No, there is no built-in nxagent in nxclient (and there's no sense in doing so). But nxagent on the server will own some selections on the real X server (where nxclient runs) and nxclient is supposed to wait for those to know a) when nxagent is ready and b) when the splash screen has ben removed and c) learn the window ids |
Ok, I understood. (So my information about nxagent in nxclientis very forcefully outdated.) "exiting with signall 15" can be caused by the incompatibility of the new and the old libc. In this case, we will not do anything, because code of nxclient is closed. Maybe the required window ids (with timestamps ) will be found in the nxclient's connection log? I am ready to send it to you, just tell me what to run and in what modes. I can also make a test virtual machine with working nxclient. There will also be freenx installed. And you can connect by opennx there to connect somewhere by nxclient. But preparing a second solution will take some time. |
Just install nxclient_3.5.0-7 and delete /usr/NX/lib/libz* |
Ok, thanks! Will try that.
…On Tue, Jan 21, 2020 at 10:32 AM Djelff ***@***.***> wrote:
Just install nxclient_3.5.0-7 and delete /usr/NX/lib/libz*
Its worked on Ubuntu 16.04 and 18.04
Versions that work this way are found here: https://cs.mtsu.edu/software/nxarchive/
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Nope, still not working. It looks like shown above. nxclient does not seem to send any commands to nxserver. Hmm... |
This is strange, I really did nothing other than erasing libz * to run nxclient on the above systems. |
Indeed, on Debian 10.02, NXClient not work. upd: I assume nxclient have capture problem from stdin and stdout |
What about replacing nxssh? |
As far as I know, don't change. |
I called into the thread specially trained kind spirits from Etersoft. Suddenly they will respond ... |
t is most likely that in nxclient it stopped seeing threads properly due to the correction of the POSIX standard error in glibc 2.28. But, I still checked. |
Oh, how on earth did you find this? I have recompiled glib 2.28-10 from debian buster with this patch and it worked. Just using LD_PRELOAD with the resulting libc.so.6 is sufficient.
Maybe we could convince the glibc developers to add an env var that switches to old behaviour? Regarding "is it worth": I don't know if there are people using the old nxclient... For me this is a sufficient way to test what I wanted to test. Currently we are trying to keep nx-libs compatible to the original nomachine nxclient. If there's no proper way to run it on current glibc version we eventually can drop this compatibility completely. |
There is also a _IO_EOF_SEEN flag, you need to intercept _IO_new_file_underflow, clear this flag, and do LD_PRELOAD. |
I still use nxclient where previous versions of opennx worked poorly. And where too lazy to change it. ;) |
I have tried to intercept *file_underflow and failed. |
This flag does not help, I set it by intercepting _IO_getc (FILE * fp), after which the client generally stops receiving messages and freezes. Without a flag with interception, the behavior is the same. |
So what's your theory why recompilation without the flag works? |
There is not quite a recompilation without a flag, there is its point-blank disregard. The flag itself is used in many places, in particular here: glibc-2.30\libio\bits\types\struct_FILE.h #define _IO_EOF_SEEN 0x0010 Therefore, simply resetting the flag does not fix it ;( |
Well, we then need to replace the file_underflow functions as a whole ;-( Maybe we can limit it to just recompiling fileops.c and get a fileops.so. |
I have updated the glibc bugzilla an asked for a way to reestablish the old behaviour. |
Fixed! This library allows you to run nxclient 3.5.0-7 on versions of Glibc> = 2.28 Source and libs x32 and x64 builded on Ubuntu 16.04 and tested on 18.04x386 and 19.10x64. |
Cool! Will test this soon. I noticed this code checks for sshlog - isn't there a way to switch sshlog off in nxclient? This would make the library obsolete... Next, this fix is specific for nxclient. There might be other programs with similar problem. Have you tried to write a generic fix for bug 1190? |
Judging by the fact that I managed to find not so many about 1190 such programs, for example, there were problems with the cups and were quickly fixed. I don’t think that there is any proprietary program that uses the access method in such a disgusting way. I already have a prototype of the client for the golang, it does not intercept the file, but the stdout and stder, and its connection speed is about two times faster. While it is console, because the problem is in gui, I have not yet decided what to use. In this case, I specifically intercept nhssh specifically for reading, because there is no need to intercept the rest of the streams and this will make this library potentially more surviving on the next versions of glibs. In any case, an approach to fixing the 1190 problem has been found, and the correction, probably for almost any program, will only be in search of where to stick clearerr. To make a universal library is a long time, until I achieved at least that I got a lot of crash dumps. The fix was the "what if it finally works" method ;) There is still a problem with the delivery of the client, the license, as far as I remember, prohibits its repackaging. And I'm a very weak Linux programmer, there was just a lot of free time ;) |
I have tested your lib, works fine. Thanks a lot! |
I wanted to check if the current nx-libs are still working with one of the last nxclient versions I have. So I setup freenx-server and tried.
Unfortunately I failed for several reasons:
PubkeyAcceptedKeyTypes +ssh-dss
(the latter one being important for compatibility as freenx's nxsetup is telling me).So any suggestions ho to successfully test an nomachine nxclient on a current distro (Beian Buster in my case)?
The text was updated successfully, but these errors were encountered: