GithubHelp home page GithubHelp logo

arcticaproject / nx-libs Goto Github PK

View Code? Open in Web Editor NEW
119.0 24.0 39.0 37.66 MB

nx-libs

License: Other

Shell 0.16% Makefile 0.32% C 82.97% C++ 11.91% Assembly 2.51% Perl 0.04% Roff 0.28% Module Management System 0.11% Python 0.54% HTML 0.72% CSS 0.01% Batchfile 0.01% Lex 0.05% Yacc 0.18% DIGITAL Command Language 0.01% M4 0.21% PHP 0.01%
x11 remote-desktop nx x2go qvd arctica

nx-libs's Introduction

NX development by ArticaProject, X2Go and TheQVD

This source tree started as a re-distribution of those NX packages needed to setup FreeNX and/or X2Go on a Linux server.

In the past, the NX re-distribution (3.5.0.x) had been maintained by the X2Go Project: http://wiki.x2go.org

In 2014, the QVD project run by the company Qindel joined the group of people being interested in NX maintenance and improvement.

Since 2015, the Arctica Project has joined in the NX development. The core devs of X2Go, Arctica and TheQVD have agreed on stopping to redistribute NX and to continue the development of NX 3.x as the new upstream instead. The package will see a slight name change to nx-libs starting with version 3.5.99.0.

Our intentions for nx-libs are:

  • provide one tarball that builds NX projects via a common Makefile
  • provide one tarball for distribution packagers
  • provide support for security issues
  • provide support for latest X11 extensions
  • improve NX where possible while still staying compatible to FreeNX and NoMachine 3.x

This source tree is maintained on Github:

https://github.com/ArcticaProject/nx-libs (3.6.x branch)

For the the post-NoMachine era of nx-libs, we will focus on two release phases for the upcoming two years.

Release series 3.6.0.x

Release goals (phase 1) for nx-libs release series 3.6.0.x:

  • CVE security audit (complete)
  • remove unused code (+/- complete)
  • no bundled non-X11 libraries anymore (complete)
  • complete imake cleanup (+/- complete)
  • replace as many libNX_X* libraries by X.org's libX* libraries (complete, only remaining library: libNX_X11)
  • support for iOS (nxproxy, complete)
  • Unix file socket communication for nxproxy -C <-> nxproxy -S connections (complete)
  • allow Unix file sockets as channel endpoints (complete)
  • allow embedding of nxproxy into other windows (work pending)
  • new RandR based Xinerama extension (+/- complete, more QA needed)
  • Fix Xcomposite extension in Xserver (work pending)
  • nxcomp protocol clean-up (complete)
  • nxcomp logging clean-up (work pending)
  • optimizing documentation: how to tune NX connections (work pending)

Release series 3.7.0.x

Release goals (phase 2) for nx-libs release series 3.7.0.x (not branched-off, yet):

  • rebase Xserver code against latest X.Org server (work in progress)
  • event FIFO sockets for attaching external applications (todo, to be discussed)
  • enable/support XV extension (todo)
  • software cursor for shadow sessions (todo)
  • no bundled Mesa library anymore (todo, to be discussed)
  • use recent MesaGL (todo, to-be-discussed)

If you have any questions about this NX development or want to file a bug report, please contact the Arctica developers, the X2Go developers or the TheQVD developers via the project's Github issue tracker.

Sincerely,

The nx-libs developers (a combined effort of ArcticaProject / TheQVD / X2Go)

Building Under Fedora or EPEL using Mock

Assuming:

  1. The branch you are building is 3.6.x
  2. The current version is 3.5.99.0 (specified in the .spec file)
  3. The current release is 0.0build1 (specified in the .spec file)
  4. You wish for the RPM files and the mock build logs to be under ~/result

Prerequisites:

  1. Install package "mock"
  2. Add your user account to the "mock" group (recommended)
  3. cd to the nx-libs directory that you cloned using git
mkdir -p ~/result
git archive -o ../nx-libs-3.5.99.0.tar.gz --prefix=nx-libs-3.5.99.0/ 3.6.x
cp --preserve=time nx-libs.spec ../
cd ..
mock --buildsrpm --spec ./nx-libs.spec --sources ./nx-libs-3.5.99.0.tar.gz --resultdir ~/result
mock --rebuild ~/result/nx-libs-3.5.99.0-0.0build1.fc23.src.rpm --resultdir ~/result

The end result is RPMs under ~/result that you can install (or upgrade to) using yum or dnf, which will resolve their dependencies.

Building for openSUSE using OBS Build

Assuming:

  1. The branch you are building is 3.6.x
  2. The current version is 3.5.99.0 (specified in the .spec file)
  3. The current release is 0.0build1 (specified in the .spec file)
  4. You wish for the RPM files and the obs-build logs to be under ~/rpmbuild

Prerequisites:

  1. Install package "obs-build"
  2. Make sure your user account can become root via sudo
  3. cd to the nx-libs directory that you cloned using git
mkdir -p ~/rpmbuild/SOURCES ~/rpmbuild/RPMS ~/rpmbuild/SRPMS ~/rpmbuild/OTHER ~/rpmbuild/BUILD
git archive -o $HOME/rpmbuild/SOURCES/nx-libs-3.5.99.0.tar.gz --prefix=nx-libs-3.5.99.0/ 3.6.x
cp --preserve=time nx-libs.spec ~/rpmbuild/SOURCES
cd ..
sudo obs-build --clean --nosignature --repo http://download.opensuse.org/distribution/<OPENSUSE-VERSION>/repo/oss/suse/ --root /var/lib/obs-build/ ~/rpmbuild/SOURCES/nx-libs.spec
cp -ar /var/lib/obs-build/home/abuild/rpmbuild/RPMS/* ~/rpmbuild/RPMS/
cp -ar /var/lib/obs-build/home/abuild/rpmbuild/SRPMS/* ~/rpmbuild/SRPMS/
cp -ar /var/lib/obs-build/home/abuild/rpmbuild/OTHER/* ~/rpmbuild/OTHER/
cp -ar /var/lib/obs-build/.build.log ~/rpmbuild/BUILD/

The end result is RPMs under ~/result that you can install (or upgrade to) using yum or dnf, which will resolve their dependencies.

Building Under Debian or Ubuntu using debuild

Assuming:

  1. The current version is 3.5.99* (specified in debian/changelog)

Prerequisites:

  1. Install package "devscripts"
  2. Install the build dependencies. dpkg-checkbuilddeps can help you identify them.
git clone <url> nx-libs
cd nx-libs
debuild -uc -us
cd ..
sudo dpkg -i *3.5.99*.deb

Building on Windows

The only components that can be built on Windows at the time of writing are nxcomp and nxproxy (with the latter utilizing the former).

The next section is only relevant for git-based source code builds. Released tarballs do not require special handling.

Since this project makes use of UNIX-style symlinks, it is imperative to clone the repository using Cygwin's git binary. MSYS(2) git is not able to handle UNIX-style symlinks. Make sure that all build utilities are Cygwin-based. Non-Cygwin binaries will bail out with errors during the build process or insert garbage.

Binary Builds

Most major Linux distribution come with nx. However, their packages are often not the most current releases so we encourage you to update to the newest release.

Debian/Ubuntu

You can obtain binary builds of nx-libs for Debian and Ubuntu via these apt-URLs:

Debian: deb http://packages.arctica-project.org/debian {YOUR DIST VERSION} main Ubuntu: deb http://packages.arctica-project.org/ubuntu {YOUR DIST VERSION} main

Our package server's archive key is: 0x98DE3101 (fingerprint: 7A49 CD37 EBAE 2501 B9B4 F7EA A868 0F55 98DE 3101). Use this command to make APT trust our package server:

wget -qO - http://packages.arctica-project.org/archive.key | sudo apt-key add -

RedHat based

For RedHat based distributions current packages can be found at

https://bodhi.fedoraproject.org/updates/?packages=nx-libs

Please note that these are not always current as the builds are done manually.

Compatibility with other NX based software

FreeNX is a free replacement of the original nxserver by nomachine. OpenNX-CE is OSS GUI client replacing the original nomachine nxclient. nx-libs is developed with those projects in mind and tries to stay compatible with FreeNX and nomachine NX. While looking abandoned for many years some people are still using and improving these packages. For current repos see

Thanks to dimbor for providing/maintaining these.

Etersoft is offering a commercial software called RX. Their OSS client called rxclient also aims to be compatible to FreeNX and nomachine and is based on opennx. You can find repos for their software here:

nx-libs's People

Contributors

0-wiz-0 avatar aaronp24 avatar alanc avatar eras avatar exg avatar fooishbar avatar frantracer avatar ionic avatar jameysharp avatar jcristau avatar jeremyhu avatar jon-turney avatar keith-packard avatar mikedep333 avatar mjtrangoni avatar mshima avatar neverpanic avatar nitomartinez avatar nwnk avatar ofourdan avatar opoplawski avatar realsimix avatar salva avatar shneydero avatar sthibaul avatar sunweaver avatar tiagovignatti avatar uli42 avatar vatral avatar whot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nx-libs's Issues

Problem checking out repository in Windows / Cygwin environment

Currently in this repo cannot be checked out in a windows environment.

Error:

> git checkout -f b579bdcc77050b76835e00f5963562a99c955720
FATAL: Could not checkout b579bdcc77050b76835e00f5963562a99c955720
hudson.plugins.git.GitException: Could not checkout b579bdcc77050b76835e00f5963562a99c955720
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$9.execute(CliGitAPIImpl.java:1983)
    at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:152)
    at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:145)
    at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:326)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at hudson.remoting.Engine$1$1.run(Engine.java:63)
    at java.lang.Thread.run(Unknown Source)
    at ......remote call to qvd-winxp-jenkins(Native Method)
    at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1416)
    at hudson.remoting.UserResponse.retrieve(UserRequest.java:220)
    at hudson.remoting.Channel.call(Channel.java:781)
    at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:145)
    at sun.reflect.GeneratedMethodAccessor551.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:131)
    at com.sun.proxy.$Proxy57.execute(Unknown Source)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1081)
    at hudson.scm.SCM.checkout(SCM.java:485)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1269)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
    at hudson.model.Run.execute(Run.java:1738)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
Caused by: hudson.plugins.git.GitException: Command "git checkout -f b579bdcc77050b76835e00f5963562a99c955720" returned status code 1:
stdout: 
stderr: error: unable to create file doc/DXPC_re-licensed::debbug_784565.mbox (Invalid argument)
HEAD is now at b579bdc... Remove last remainants of keymap.dir

Should we continue using the term "NX"?

If you look at debian/control, you will see package descriptions like:

Package: libxcompshad3
...
Description: nx-X11 shadowing library
NX is a software suite which implements very efficient
compression of the X11 protocol. This increases performance when
using X applications over a network, especially a slow one.
.
This package provides a library for shadow session support.

Should we continue using the term "NX"? Or should we switch all references to "nx-libs"? Or perhaps replace both NX and nx-libs entirely with some other name like "LBX2"?

Make it possible to capture control-alt-arrow keys

From X2Go BTS:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=838

Package: x2goagent

I am using Ubuntu 14.10 with Mate Desktop with multiple work spaces.
If I use Remmina with NX plugin, the control-alt-right/left arrow keys
work to switch work spaces even when I'm up on a remote desktop.

With X2Go, it usually doesn't work, except if I use control-alt-M to
minimize the session then restore it, the keys will usually work thereafter.

Remmina has a way to toggle this behavior, a little pull down at the
top with a keyboard symbol. If it's down, the control-alt-arrows go to
the end application allowing me to switch work spaces on the remote desktop,
and if it's up they go to the local desktop.

It would be nice if x2go had a similar facility but if not it would be
better for that key sequence to always act locally since I can switch
work spaces remotely by using the mouse but can not locally because the
switcher is hidden by the remote desktop x2go is displaying.

Screen resize triggers session suspension

From X2Go BTS:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=829

Package: nx-x11-common
Version: 3.5.0.32-0x2go1~git20150317.672+jessie.heuler.1

Reproducable with every client and server so far from stable and heuler.
Only affects full sessions - users are not affected if running directly
an APPLICATION.

Pressing CTRL+ALT+R triggers error message in session.log of user,
resizes the screen but also triggers suspension of the session (note the
the Proxy-Warning does not occur every time):
Session: Resuming session at 'Thu Mar 26 11:11:56 2015'.
Info: Proxy running in server mode with pid '18054'.
Info: Waiting for connection from 'localhost' on port '30076'.
Info: Accepted connection from '127.0.0.1'.
Info: Connection with remote proxy completed.
Info: Using LAN link parameters 1536/24/1/0.
Info: Using agent parameters 5000/0/50/0/0.
Info: Using pack method '16m-jpeg-9' with session 'unix-kde-depth_24'.
Info: Not using NX delta compression.
Info: Not using ZLIB data compression.
Info: Not using ZLIB stream compression.
Info: Not using a persistent cache.
Info: Listening to X11 connections on display ':75'.
Info: Established X client connection.
Info: Using shared memory parameters 1/1/0/0K.
Info: Using local device configuration changes.
keyboard file created
Session: Session resumed at 'Thu Mar 26 11:12:03 2015'.
Info: Screen [0] resized to geometry [3840x1080] fullscreen [1].
<<-------- note from me: pressing ctrl+alt+r --------->>
Info: Disabled desktop resize mode in agent.
Session: Suspending session at 'Thu Mar 26 11:12:14 2015'.
Proxy: WARNING! Handling data for finishing FD#5 channel ID#1.
suspended at 'Thu Mar 26 11:12:14 2015'.

Unfortunately we think this leads to another problem. Sometimes users
get suspended right after resuming their session:

Session: Session resumed at 'Wed Mar 25 21:30:37 2015'.
Info: Screen [0] resized to geometry [1680x1050] fullscreen [1].
Session: Suspending session at 'Wed Mar 25 21:30:39 2015'.

And last but not least this results in another problem - the screen does
not get resized correctly sometimes and is just shown as viewport.

Failed to restore all the required visuals. - Can't resume the NX session on this display.

As mention in X2Go bug 891 and VcXsrv (X2Go/Arctica Builds) Issue 4, the following causes a session to fail to resume:

  1. Start the nxagent session from a client (nxproxy) whose X server supports StaticColor Visual Types
    (For example, VcXsrv 1.17.0.0-2 with -multiwindow as the only argument, assuming the Windows OS has WGL (Windows OpenGL) support. Nvidia, AMD & Intel drivers all provide WGL.)
  2. Suspend the session.
  3. Attempt to resume the session on a client whose a X server does not support StaticColor Visual Types.
    (For example, that same VcXsrv machine over RDP, or Ubuntu 14.04's Xorg server.)

The errror that nxproxy produces after step 3 is:

Failed to restore all the required visuals.
Can't resume the NX session on this display.

I will probably modify VcXsrv (X2Go/Arctica) builds to no longer support StaticColor. But it would be nice if we could disable StaticColor in nxagent too (perhaps via an argument.) And if we could make a session resume despite running into this situation, that would be even better.

Note that with VcXsrv 1.17.0.0-2, the following StaticColor visual types are available:

0x211
0x212
0x213
0x214

And if you run xdpyinfo against an nxagent 3.5.0.31 started from nxproxy 3.5.0.31 running on VcXsrv 1.17.0.0-2, you'll see that it supports 1 StaticColor type:

0xa6

QA: Two screens, wrong screen used for limits of positioning context menus

With the new RRXinerama code, we should check, if this X2Go issue has been solved.
Submitted here: http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=417

This bug concerns the placement of context menus in a two screen setup.
On my client I have two screens. One in landscape mode from 0,0 to
1920,1080 and to its right a second screen in portrait mode, from 1920,0
to 3120,1600. I run an x2go session, the session type is single application
(terminal). I fullscreen my application window, either on the left or on
the right screen. I then open a context menu while my mouse cursor is in
the bottom half or right half of the application window.

Everything works fine with the application positioned on the right hand
screen. It is correctly determined that the context menus would not fit
into the remaining space if they would start where the mouse cursor is, so
they are repositioned in a way that I can see the entire menu.

But if the application is on my left hand screen the context menus will
always start (their top left corner) where my mouse cursor is, therefore
spilling outside my visible monitor area to the bottom, or overlapping into my
second screen. Expected behaviour: context menus to stay within my
screen, just as they do for all other non-x2go applications.

anti-aliasing Xft.rgba set to "rgb" crashes on "big fonts"

Story: a customer of mine presented me an email that crashes nxagent on his setup. On my setup the crash of the nxagent Xserver could not be reproduced, but instead the email client (icedove) crashes reproducibly.

Digging deeper:

  1. tests in a remote (NX) MATE session
    • icedove crashes when viewing the customers mail
  2. local tests
    • icedove can view that specific mail
    • the mail (html format) had some big big characters (font size 999.9)
  3. re-test in NX
    • icedove in MATE crashes
    • libreoffice -> create a character -> enlarge to font size 1000 -> crash
  4. re-test in NX without a desktop shell (no MATE)
    • icedove can view that mail with the big characters
  5. NX with mate-settings-daemon (not the full MATE desktop)
    • icedove crashes when opening the mail

So what does mate-settings-do... It sets various properties on the Xsession's root window.

Xft.antialias:  1
Xft.dpi:    75
Xft.hinting:    1
Xft.hintstyle:  hintmedium
Xft.rgba:   rgb

I then played with mate-control-center's appearance applet and disabled RGB subpixel anti-aliasing:

Xft.antialias:  1
Xft.dpi:    75
Xft.hinting:    1
Xft.hintstyle:  hintmedium
Xft.rgba:   none

And: icedove survives the big fonts.

Setting Xft.rgba to "rgb" again let's icedove crash.

Looking into this deeper...

[abrt] nxagent: GetULONG(): nxagent killed by SIGSEGV

Package: nx-libs
Version: 3.5.0.29
#0 GetULONG (buffer=buffer@entry=0x31ff000 <error: Cannot access memory at

address 0x31ff000>, bigEndian=0) at Misc.cpp:518
518 return *((unsigned int *) buffer);

Thread 1 (Thread 0x7fae35376740 (LWP 4320)):
#0 GetULONG (buffer=buffer@entry=0x31ff000 <error: Cannot access memory at

address 0x31ff000>, bigEndian=0) at Misc.cpp:518
next =
result =
#1 0x00007fae342b1525 in ClientChannel::handleRead (this=0x27015c0,

encodeBuffer=..., message=, length=) at
ClientChannel.cpp:1220
numPixels =
nextSrc = 0x31ff000 <error: Cannot access memory at address 0x31ff000>
inputOpcode = 88 'X'
bits =
inputMessage = 0x28acac0 "X"
inputLength = 4
hit = 0
#2 0x00007fae34298284 in Proxy::handleRead (this=0x2182650, fd=<optimized

out>, data=0x1eac1d0 "\213\032\v", size=8160) at Proxy.cpp:1750
result =
size = 8160
data = 0x1eac1d0 "\213\032\v"
fd =
this = 0x2182650

-------- Forwarded Message --------
Subject: [Bug 1217630] New: [abrt] nxagent: GetULONG(): nxagent killed by SIGSEGV
Date: Thu, 30 Apr 2015 21:28:13 +0000
From: [email protected]
To: [email protected]

https://bugzilla.redhat.com/show_bug.cgi?id=1217630

        Bug ID: 1217630
       Summary: [abrt] nxagent: GetULONG(): nxagent killed by SIGSEGV
       Product: Fedora
       Version: 21
     Component: nx-libs
      Assignee: [email protected]
      Reporter: [email protected]
    QA Contact: [email protected]
            CC: [email protected]

Description of problem:
I worked in PyCharm 4.0.4 by x2go. Connection closed unexpected.

Version-Release number of selected component:
nxagent-3.5.0.29-1.fc21

Additional info:
reporter: libreport-2.3.0
backtrace_rating: 4
cmdline: /usr/lib64/nx/../x2go/bin/x2goagent -extension XFIXES -nolisten
tcp -nolisten tcp -dpi 96 -D -auth /home/ruslan/.Xauthority -name
X2GO-ruslan-50-1430428104_stDMATE_dp32 :50
crash_function: GetULONG
executable: /usr/lib64/nx/bin/nxagent
kernel: 3.19.5-200.fc21.x86_64
runlevel: N 5
type: CCpp
uid: 1000
var_log_messages: [System Logs]:\n-- Logs begin at Ср 2015-03-04 11:56:00 MSK,
end at Пт 2015-05-01 00:16:33 MSK. --

Truncated backtrace:
Thread no. 1 (10 frames)
#0 GetULONG at Misc.cpp:518
#1 ClientChannel::handleRead at ClientChannel.cpp:1220
#2 Proxy::handleRead at Proxy.cpp:1750
#3 NXTransWriteVector at Loop.cpp:2276
#4 _XSend at XlibInt.c:1957
#5 XRenderCompositeText32 at Glyph.c:1160
#6 nxagentGlyphs at Render.c:1533
#7 ProcRenderCompositeGlyphs at X/NXrender.c:1784
#8 ProcRenderDispatch at X/NXrender.c:2519
#9 Dispatch at X/NXdispatch.c:748

You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.

Cleanly Terminating a Fullscreen Shadow Session Locally doesn't Work on MS Windows

From X2Go BTS:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=847

package: nxagent

When trying to terminate a shadow session running in fullscreen mode
on a MS Windows client, Alt-Tab gets passed to MS Windows, so one can
reach the X2GoClient control buttons (folder sharing, pause,
terminate), but clicking pause or terminate doesn't do anything. Only
the "X Button" (upper right corner of the window decoration) of
X2GoClient has an effect - but obviously also terminates x2goclient.exe.
xgoterminatesession will, of course, work, when run on the remote end.

VERSION files/symlinks missing in release tarball

gcc -o nxagent -g -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -fno-strict-aliasing -ansi -Wall -Wpointer-arith -Wundef -L../../exports/lib hw/nxagent/miinitext.o hw/nxagent/NXwindow.o hw/nxagent/NXevents.o hw/nxagent/NXproperty.o hw/nxagent/NXdixfonts.o hw/nxagent/NXglyphcurs.o hw/nxagent/NXdispatch.o hw/nxagent/NXrender.o hw/nxagent/NXglyph.o hw/nxagent/NXpicture.o hw/nxagent/NXextension.o hw/nxagent/NXglxext.o hw/nxagent/NXxvdisp.o hw/nxagent/NXmiglyph.o hw/nxagent/NXmiexpose.o hw/nxagent/NXresource.o hw/nxagent/NXmiwindow.o hw/nxagent/NXdamage.o dix/libdix.a os/libos.a hw/nxagent/libnxagent.a fb/libfb.a composite/libcomposite.a damageext/libdamage.a miext/damage/libdamage.a xfixes/libxfixes.a miext/cw/libcw.a Xext/libext.a xkb/libxkb.a os/libos.a Xi/libxinput.a dbe/libdbe.a record/librecord.a XTrap/libxtrap.a GL/glx/libglx.a GL/mesa/GLcore/libGLcore.a randr/librandr.a render/librender.a mi/libmi.a composite/libcomposite.a damageext/libdamage.a miext/damage/libdamage.a xfixes/libxfixes.a miext/cw/libcw.a Xext/libext.a xkb/libxkb.a os/libos.a Xi/libxinput.a dbe/libdbe.a record/librecord.a XTrap/libxtrap.a GL/glx/libglx.a GL/mesa/GLcore/libGLcore.a randr/librandr.a render/librender.a hw/nxagent/libnxagent.a mi/libmi.a -L../../exports/lib -lNX_Xext -lNX_X11 -lm -lXpm -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad -lXcomp -lXcompext -lXcompshad -lNX_Xrender -lNX_X11 -lNX_Xext -lNX_Xfixes -lXfont -L../../../nx-X11/exports/lib -lNX_Xtst -lNX_Xrandr -lNX_Xcomposite -lNX_Xinerama -lXdmcp pkg-config --libs libxml-2.0 -Wl,-rpath-link,../../exports/lib
/bin/ld: ../../exports/lib/libNX_X11.so: undefined reference to symbol 'deflate'
/usr/lib64/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Revise network settings for ADSL and LAN settin

The settings in nxcomp are setup for:

  • ADSL. 256kbps. Current standard is at least 1Mbps (lowest end throughout the world), and usually more than 3Mbps
  • LAN. 10/100 Mbps. Usually nowadays it is used 1Gbps

Items to solve:

  • Update the current speed settings.
  • This probably needs to have the same changes in the server and in the client. That is a change in the settings in the client, needs to have the same settings in the server (Best Guess).

Transition options:

  • Create new speed settings (See SetLink function in Loop.cpp),
  • Make it dependant on versioning. See if some special care needs to be taken if different settings (See SetVersion in Loop.cpp)

Example bit to be changed. In Loop.cpp we get:

//
// Parameters for ADSL 256 Kbps.
//

int SetLinkAdsl()
{
  #ifdef TEST
  *logofs << "Loop: Setting parameters for ADSL.\n"
          << logofs_flush;
  #endif

  control -> LinkMode = LINK_TYPE_ADSL;

  control -> TokenSize  = 512;
  control -> TokenLimit = 24;

  control -> SplitMode             = 1;
  control -> SplitTotalSize        = 128;
  control -> SplitTotalStorageSize = 1048576;

  control -> SplitTimeout   = 50;
  control -> MotionTimeout  = 10;
  control -> IdleTimeout    = 50;

  control -> PackMethod  = PACK_ADAPTIVE;
  control -> PackQuality = 7;

  return 1;
}

Weird colors and image issues on ppc64le Ubuntu 14.04

From X2Go BTS:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=898

Package: nx-libs
Version: 3.5.0.29

After building and installing X2Go packages on Ubuntu 14.04 ppc64le some months
ago, I experienced the following strange behavior(s):

  • image colors were distorted sometimes (but sometimes not) - instead of
    brown, pink was shown
  • images (PNG? SVG?) didn't load or show correctly. Colors were way off (see
    above) and mostly only contours drawn, if even that.
  • scrolling in a scrollview (e.g., XFCE's settings manager(?)) sometimes
    forced a correct redraw of images, but mostly only partitially
  • hovering over an image broke it visually again
  • mouse cursor either disappeared completely or was replaced with a block
    (what seemed to be random data converted to an image)

I have not done any debugging on these issues yet.

Mihai

nxagent fails to run with "Could not open default font 'fixed'"

From X2Go Bug #884:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=884

On Fr 04 Sep 2015 04:06:55 CEST, devsk wrote:

Yes, I am talking about Gentoo specific packaging issue. I have filed

https://bugs.gentoo.org/show_bug.cgi?id=559370

to track it down. As I mentioned, the specific files being talked
about are the font files in /usr/share/fonts/misc
(/usr/share/fonts/X11/misc on Ubuntu) which are character encodings
specific e.g. 9x15-ISO8859-*.pcf.gz. nxagent can not load a fixed
size font '9x15' without the presence of these files. It looks like
these are abandoned by modern X code because both Xorg and Xvnc work
fine without these files.

-devsk

Thanks for explaining the above. However, I think that we should get
this issue also solved upstream as most systems work on UTF-8 basis
and the more local encodings are rather historical than
current-state-of-the-art.

Let's leave this bug open and address it for 3.6.x of nx-libs instead
of dealing with it as a Gentoo specific bug.

Mike

soft cursor for shared NX session

(1) launch NX/X2Go session on remote machine
(2) share that remote session from another location (e.g. helpdesk center)

if the person running the shared session (helpdesk agent) moves the mouse pointer, the person running the native NX session cannot see those pointer movements.

Feature request: add a soft mouse pointer that presents mouse events of the desktop sharing agent.

Consider BPG as bitmap compression engine in NX

Importing from X2Go BTS...
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=707

Hi all,

By Savko Sergey I have just been pointed to the upcoming BPG image
compression library [1].

Quoting their website:

"""
BPG (Better Portable Graphics) is a new image format. Its purpose is
to replace the JPEG image format when quality or file size is an
issue. Its main advantages are:

High compression ratio. Files are much smaller than JPEG for  

similar quality.
Supported by most Web browsers with a small Javascript decoder
(gzipped size: 55 KB).
Based on a subset of the HEVC open video compression standard.
Supports the same chroma formats as JPEG (grayscale, YCbCr 4:2:0,
4:2:2, 4:4:4) to reduce the losses during the conversion. An alpha
channel is supported. The RGB, YCgCo and CMYK color spaces are also
supported.
Native support of 8 to 14 bits per channel for a higher dynamic range.
Lossless compression is supported.
Various metadata (such as EXIF, ICC profile, XMP) can be included.
"""

We should take a look at this new compression library and check if it
is usable in NX.

Mike

[1] http://bellard.org/bpg/

Wrong window captions in remote applications

Package: nxagent
Severity: minor
Version: 3.5.0.27
X-Debbugs-Cc: Gabor Boros [email protected]

Hi Gabor,

On Mo 03 Nov 2014 14:50:11 CET, Gabor Boros wrote:

Hi,

Running a single remote application from Ubuntu 14.04 Server+KDE on
Windows 7 client. If the caption of application window contain
character with accent (eg. ő), the executable name displayed instead
original text.
Is it a known limitation or a bug?

Gabor

I'd say let's consider it a bug... Filing one.

I'd appreciate if you could provide a (blurred, if needed) screenshot to

[email protected]

Thanks!
Mike

The screenshot is available at:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?msg=10;filename=x2gobug661.jpg;att=1;bug=661

CVE backports incomplete or wrong

The below has been filed via X2Go BTS [1] by Ulrich Sibiller (@uli42)and should be fixed here (3.6.x branch) first before rebasing against 3.5.0.x.

"""
Recently a lot of CVE fixes have been added to nx-libs.

E.g.
debian/patches/1027-render-check-request-size-before-reading-it-CVE.full.patch
and
debian/patches/1028-render-unvalidated-lengths-in-Render-extn.-swap.full.patch
add missing checks to nx-X11/programs/Xserver/render/render.c.

However, there's a file called
nx-X11/programs/Xserver/hw/nxagent/NXrender.c which is derived from
render.c and in that file those checks are missing, too.

(I suspect the original render/render.c is not used at all in favour
of hw/nxagent/NXrender.c but I am not 100% sure here.)

If render.c is used a all (I am not sure) the patches should be
extended to also fix NXrender.c.
If render.c is not used it should be removed and the patches should be
applied to NXrender.c instead.

There might be more cases like this, I only picked this one as an example.
"""

[1] https://bugs.x2go.org/879

freeze due to anti-aliasing with big size fonts

As a follow up for #55 ...

Another issue with anti-alliasing could be found. In certain situations, the complete nxagent freezes when it comes to displaying really huge fonts (font size: 1000).

This happens with grayscale antialiasing enabled.

printver.c is gone but not forgotten

I get:

cd nx-X11 && make World
make[2]: Entering directory '/export/home/orion/fedora/nx-libs/nx-libs-HEAD/nx-X11'
cc: error: ./config/util/printver.c: No such file or directory
cc: fatal error: no input files
compilation terminated.
Makefile:46: recipe for target 'World' failed
make[2]: [World] Error 4 (ignored)

printver.c does not appear to exist but is referenced in:
./nx-libs-arctica/nx-X11/Makefile:VERSSRC = $(CONFIGSRC)/util/printver.c
./nx-libs-arctica/debian/copyright.in: nx-X11/config/util/printver.c

use AR/RANLIB in nxcomp, reconsider C/CXX flag settings

Investigate patch from
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-misc/nx/files/nx-3.5.0.17-cflags_ar_ranlib.patch?diff_format=s&view=markup

diff -Naur nx-libs-3.5.0.17.orig/nxcomp/Makefile.in nx-libs-3.5.0.17/nxcomp/Makefile.in
--- nx-libs-3.5.0.17.orig/nxcomp/Makefile.in    2013-01-09 15:03:33.152952758 +0100
+++ nx-libs-3.5.0.17/nxcomp/Makefile.in 2013-01-09 15:05:39.771898159 +0100
@@ -243,8 +243,8 @@

 $(LIBARCHIVE):  $(CXXOBJ) $(COBJ)
         rm -f  $(LIBARCHIVE)
-        ar clq $(LIBARCHIVE) $(CXXOBJ) $(COBJ)
-        ranlib $(LIBARCHIVE)
+        $(AR) $(LIBARCHIVE) $(CXXOBJ) $(COBJ)
+        $(RANLIB) $(LIBARCHIVE)

 $(LIBCYGSHARED): $(LIBARCHIVE)
         $(CC) -shared -o $(LIBCYGSHARED) \
diff -Naur nx-libs-3.5.0.17.orig/nxcomp/configure.in nx-libs-3.5.0.17/nxcomp/configure.in
--- nx-libs-3.5.0.17.orig/nxcomp/configure.in   2013-01-09 15:03:33.151952758 +0100
+++ nx-libs-3.5.0.17/nxcomp/configure.in    2013-01-09 15:04:03.312940892 +0100
@@ -7,8 +7,7 @@

 dnl Set our default compilation flags.

-CXXFLAGS="$CXXFLAGS -O3 -fno-rtti -fno-exceptions"
-CFLAGS="$CFLAGS -O3"
+CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions"

 dnl Reset default linking directives.

diff -Naur nx-libs-3.5.0.17.orig/nxcompext/Makefile.in nx-libs-3.5.0.17/nxcompext/Makefile.in
--- nx-libs-3.5.0.17.orig/nxcompext/Makefile.in 2013-01-09 15:03:33.164952753 +0100
+++ nx-libs-3.5.0.17/nxcompext/Makefile.in  2013-01-09 15:06:08.747879052 +0100
@@ -125,8 +125,8 @@

 $(LIBARCHIVE):  $(CXXOBJ) $(COBJ)
         rm -f  $(LIBARCHIVE)
-        ar clq $(LIBARCHIVE) $(CXXOBJ) $(COBJ)
-        ranlib $(LIBARCHIVE)
+        $(AR) $(LIBARCHIVE) $(CXXOBJ) $(COBJ)
+        $(RANLIB) $(LIBARCHIVE)

 $(LIBCYGSHARED): $(LIBARCHIVE)
         $(CC) -shared -o $(LIBCYGSHARED) \
diff -Naur nx-libs-3.5.0.17.orig/nxcompext/configure.in nx-libs-3.5.0.17/nxcompext/configure.in
--- nx-libs-3.5.0.17.orig/nxcompext/configure.in    2013-01-09 15:03:33.164952753 +0100
+++ nx-libs-3.5.0.17/nxcompext/configure.in 2013-01-09 15:04:16.247935801 +0100
@@ -5,11 +5,6 @@
 AC_INIT(NXlib.h)
 AC_PREREQ(2.13)

-dnl Reset default compilation flags.
-
-CXXFLAGS="$CXXFLAGS -O3"
-CFLAGS="$CFLAGS -O3"
-
 dnl Reset default linking directives.

 LIBSTATIC=""
diff -Naur nx-libs-3.5.0.17.orig/nxcompshad/Makefile.in nx-libs-3.5.0.17/nxcompshad/Makefile.in
--- nx-libs-3.5.0.17.orig/nxcompshad/Makefile.in    2013-01-09 15:03:33.163952754 +0100
+++ nx-libs-3.5.0.17/nxcompshad/Makefile.in 2013-01-09 15:06:16.933873660 +0100
@@ -158,8 +158,8 @@

 $(LIBARCHIVE): $(CXXOBJ) $(COBJ)
        rm -f  $(LIBARCHIVE)
-       ar clq $(LIBARCHIVE) $(CXXOBJ) $(COBJ)
-       ranlib $(LIBARCHIVE)
+       $(AR) $(LIBARCHIVE) $(CXXOBJ) $(COBJ)
+       $(RANLIB) $(LIBARCHIVE)

 $(LIBDLL): $(LIBARCHIVE)
        $(CC) -o $@ \
diff -Naur nx-libs-3.5.0.17.orig/nxcompshad/configure.in nx-libs-3.5.0.17/nxcompshad/configure.in
--- nx-libs-3.5.0.17.orig/nxcompshad/configure.in   2013-01-09 15:03:33.163952754 +0100
+++ nx-libs-3.5.0.17/nxcompshad/configure.in    2013-01-09 15:04:20.073934295 +0100
@@ -5,11 +5,6 @@
 AC_INIT(Shadow.h)
 AC_PREREQ(2.13)

-dnl Reset default compilation flags.
-
-CXXFLAGS="$CXXFLAGS -O3"
-CPPFLAGS="$CPPFLAGS -O3"
-
 dnl Reset default linking directives.

 LIBSTATIC=""
diff -Naur nx-libs-3.5.0.17.orig/nxproxy/configure.in nx-libs-3.5.0.17/nxproxy/configure.in
--- nx-libs-3.5.0.17.orig/nxproxy/configure.in  2013-01-09 15:03:33.163952754 +0100
+++ nx-libs-3.5.0.17/nxproxy/configure.in   2013-01-09 15:04:24.842932418 +0100
@@ -5,11 +5,6 @@
 AC_INIT(Main.c)
 AC_PREREQ(2.13)

-dnl Reset default compilation flags.
-
-CXXFLAGS="$CXXFLAGS -O3"
-CPPFLAGS="$CPPFLAGS -O3"
-
 dnl Prefer headers and libraries from nx-X11 if present.

 if test -d "../nx-X11/exports/include" ; then

Gedit, gnome-terminal and others crash in rootless mode

From X2Go BTS (with patch there):
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=900

Package: libnx-X11

Version: 2.3.5

Setup:

  1. x2goserver in a debian testing machine.
  2. x2goclient in a windows machine.
  3. Create a session with a virtual desktop.
  4. Run gedit in the session created in 3.
  5. Create a session in windows launching only xterm.
  6. Run gedit from the console created in 5.
  7. Create a session in windows launching only gedit.

Results:

  1. Steps from Setup 3, 4 and 5 work fine.
  2. Steps from Setup 6 and 7 crash (close the session).

A quick look in dmesg shows that libNX_X11.so.6.2 caused a SEGFAULT.

Running x2goagent with a debugger gives the following backtrace:

(gdb) backtrace
#0 _XData32 (dpy=dpy@entry=0xf591b0, data=data@entry=0x163c2c4,

len=len@entry=18652) at XlibInt.c:3775
#1 0x00007f759e34dce1 in XChangeProperty (dpy=0xf591b0, w=<optimized

out>, property=, type=6, format=,
mode=,
data=0x163c2c4
"\377\377\377\377\354\356\356\377\377\377\377\377\354\356\356\377\377\377\377\377\354\356\356\377\377\377\377\377\357\360\360\377\377\377\377\377\364\365\365\377\377\377\377\377\307\312\311\375\377\377\377\377\t\t\t\035",
nelements=4663) at ChProp.c:85
#2 0x00000000004b1e37 in nxagentExportProperty (pWin=0x20,

property=4663, type=23315140, format=4669, mode=32, nUnits=4663,
value=0x15fc2e0) at Rootless.c:763
#3 0x000000000042222a in ProcChangeProperty (client=0xf591b0) at

X/NXproperty.c:331
#4 0x000000000042eea2 in Dispatch () at X/NXdispatch.c:748

Looking at the highlighted values, it seems that gedit is sending a
malformed ChangeProperty request, and rootless is failing to process it.

Specifically the segment between lines 735-780, tries to set a property
that is bigger than the maximum size required, but because it's a
malformed request it ends up writing in memory outside the boundaries of
the output buffer.

Alternatives:

  1. Ensure that nxagentExportProperty never writes beyond the boundaries
    of the output buffer.
  2. Resize the output buffer to match the required size
    (ProcChangeProperty seems to do something similar).
  3. Ignore big requests (see attached patch).

Color issue with some programs

Submitted against X2Go BTS:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=262

Hello,

We are trying to move from NX to X2Go.

One of our tools is called Questa Sim (EDA tool from Mentor Graphics).

When we used to run it from NX, no issues.

When we use it with X2Go, we have color issues:

· What was white or yellow text on a black background, now shows as
… black text on a black background, hence not readable.

· While we can change colors in a preferences menu, unlike in NX,
changing the text color in X2Go environment does not work

Below are two screenshots:

· One from NX, where yellow bar and text is readable

· One from X2Go, where this bar and text have become black (on
black background)

Thanks,

  • Edouard

3.6.x FTBFS on Fedora 23

I am trying to build 3.6.x (fa497ac) from source on Fedora 23 using the included spec file for Mock

http://pastebin.com/Ybg68bNQ

These seem like the 2 errors:

Screen.c:83:42: fatal error: X11/include/Xinerama_nxagent.h: No such file or directory
/usr/bin/ld: cannot find -lXdamage
collect2: error: ld returned 1 exit status

Missing RPM upgrade logic for libNX_*

I just followed my instructions from #68, and here is what I now have installed:

[mike@dropship nx-libs]$ dnf list installed | grep -e 'libNX\|nx'
libNX_X11-6.x86_64                     3.5.99.0-0.0build1.fc23  @@commandline   
libNX_Xau6.x86_64                      3.5.99.0-0.0build1.fc23  @@commandline   
libNX_Xcomposite.x86_64                3.5.0.32-3.fc23          @updates        
libNX_Xdamage.x86_64                   3.5.0.32-3.fc23          @updates        
libNX_Xdmcp.x86_64                     3.5.0.32-3.fc23          @updates        
libNX_Xext6.x86_64                     3.5.99.0-0.0build1.fc23  @@commandline   
libNX_Xfixes.x86_64                    3.5.0.32-3.fc23          @updates        
libNX_Xinerama.x86_64                  3.5.0.32-3.fc23          @updates        
libNX_Xpm.x86_64                       3.5.0.32-3.fc23          @updates        
libNX_Xrandr.x86_64                    3.5.0.32-3.fc23          @updates        
libNX_Xrender1.x86_64                  3.5.99.0-0.0build1.fc23  @@commandline   
libNX_Xtst.x86_64                      3.5.0.32-3.fc23          @updates        
nx-libs.x86_64                         3.5.0.32-3.fc23          @updates        
nxagent.x86_64                         3.5.99.0-0.0build1.fc23  @@commandline   
nxauth.x86_64                          3.5.99.0-0.0build1.fc23  @@commandline   
nxproxy.x86_64                         3.5.99.0-0.0build1.fc23  @@commandline        

I think I need to add RPM Obsoletes logic to the spec file.

shadow sessions inside nxagent sessions fail

We just tried to run cascaded sessions with one of them being a desktop sharing session:

(a) from client (host-A) launch X2Go session to a remote server (server-B)
(b) from X2Go session on server-B launch a remote desktop sharing session with :0 on remote
host-C

Result: a black nxagent window appears (inside the X2Go Session on server-B) that accepts mouse and keyboard input (which both arrive on host-C via desktop sharing). If I manage to move a window via the desktop sharing session, the black nxagent window does some screen updates, but no full view of the remotely shared desktop appears.

Disable local screensaver when x2go session is in fullscreen mode

From X2Go BTS:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=554

Package: nxproxy
Severity: serious

I noticed that the when nxproxy is in fullscreen mode, it (by design)
captures all keyboard strokes. This is in general great because this
way all keyboard shortcuts on the remote work.

However, the local screen saver might still kick in and require a
password. Because the nxproxy captures all input, a less carefull user
might enter his local password into the current application that is
running in the x2go session. When the remote application happens to be
a chat application, entering your password might have serious security
implications.

I think a fullscreen nxproxy is a good reason to inhibit the local screensaver.

RandR still at version 1.2

I have an Ubuntu 15.04 64-bit test VM where I built nx-libs 3.6.x from commit 4ed85e8 (2015-05-29), which is after PR #21 was merged.

However, RandR still appears to be at version 1.2.

batmin@ubuntu-v:~$ xrandr -v
xrandr program version       1.4.1
Server reports RandR version 1.2

Furthermore, LXQt (Using Qt 5.4.1) still fails to start / show up correctly. OpenBox starts, and the lxqt-panel process is running. However, immediately after connecting with X2Go Client and seeing the X2Go logo, the panel appears to show up for a split-second, and then disappears.
(As discussed here, It is believed that LXQt under Qt 5.4.x fails due it requiring a newer version of RandR).

This is the output in .xsession-x2go-errors after I tried to start the session, but it failed and I opened up a QTerminal (and maximized the x2go session window):

XSession-x2go: X session started for batmin at Mon Jun  1 01:11:03 EDT 2015
localuser:batmin being added to access control list
openConnection: connect: No such file or directory
cannot connect to brltty at :0
/etc/x2go/Xsession: 8: [: x: unexpected operator
QXcbConnection: Failed to get the primary output of the screen
iconTheme "oxygen"
iconTheme "oxygen"
iconTheme "oxygen"
iconTheme "oxygen"
Theme: Cannot open file for reading: "/usr/share/lxqt/themes/frost/lxqt-session.qss"
QXcbConnection: Failed to get the primary output of the screen
QXcbConnection: XCB error: 172 (Unknown), sequence: 162, resource id: 326, major code: 149 (Unknown), minor code: 20
QXcbConnection: XCB error: 172 (Unknown), sequence: 359, resource id: 326, major code: 149 (Unknown), minor code: 20
/build/lxqt-session-XT7UiZ/lxqt-session-0.9.0.0.1+bzr245+201505301638~ubuntu15.04.1/lxqt-session/src/sessionapplication.cpp : 75 Session "session" about to launch (default 'session')
Environment variable GTK_CSD = 0
"/home/batmin/.config/lxqt/session.conf"
xrdb: Xcursor.theme:whiteglass
Xcursor.size:18
Xcursor.theme_core:true

Window Manager started
start "/etc/xdg/autostart/deja-dup-monitor.desktop"
start "/etc/xdg/autostart/lxqt-desktop.desktop"
start "/etc/xdg/autostart/lxqt-globalkeyshortcuts.desktop"
start "/etc/xdg/autostart/lxqt-notifications.desktop"
start "/etc/xdg/autostart/lxqt-panel.desktop"
start "/etc/xdg/autostart/lxqt-policykit-agent.desktop"
start "/etc/xdg/autostart/lxqt-runner.desktop"
start "/etc/xdg/autostart/nm-applet.desktop"
start "/etc/xdg/autostart/print-applet.desktop"
start "/etc/xdg/autostart/pulseaudio.desktop"
Failure: Module initialization failed
start "/etc/xdg/autostart/update-notifier.desktop"
start "/etc/xdg/autostart/zeitgeist-datahub.desktop"
System Tray started
start tray app "/etc/xdg/autostart/lxqt-powermanagement.desktop"
QXcbConnection: Failed to get the primary output of the screen
QXcbConnection: Failed to get the primary output of the screen
QXcbConnection: Failed to get the primary output of the screen
QXcbConnection: XCB error: 172 (Unknown), sequence: 816, resource id: 326, major code: 149 (Unknown), minor code: 20
QXcbConnection: XCB error: 172 (Unknown), sequence: 821, resource id: 326, major code: 149 (Unknown), minor code: 20
QXcbConnection: XCB error: 172 (Unknown), sequence: 826, resource id: 326, major code: 149 (Unknown), minor code: 20

I am using LXQt from this PPA:
https://launchpad.net/~lubuntu-dev/+archive/ubuntu/lubuntu-daily

The session type under X2Go Client is custom: startlxqt

I am using x2goserver & x2goserver-xsession 4.0.1.19 from the X2Go PPA.

I am using x2goclient 4.0.4.0 from the Ubuntu PPA. I upgraded nxproxy (and every other nx-libs package) to the same version that the server has. The client OS is ubuntu 14.04 64-bit.

I tried uninstalling these packages from the server, but it did not help. They merely provide files under /usr/share/doc anyway:
libnx-xrandr2 libnx-xrandr2-dbg libnx-xrandr-dev nx-x11proto-randr-dev

Synchronize capslock in nxagent

Something similar would make sense for nxagent, I guess..

commit 43014795087a0a8774dd9687f5967329b15f06a2
Author: Olivier Fourdan <[email protected]>
Date:   Mon Jan 5 16:44:22 2015 +0100

    Synchronize capslock in Xnest and Xephyr

    In Xnest or Xephyr, pressing CapsLock when focus is on another
    window does not update the state in the nested X server.

    This is because when synchronizing the lock modifier, sending a
    keypress or a key release only is not sufficient to toggle the state,
    unlike regular modifiers, one has to emulate a full press/release
    to lock or unlock the modifier.

    Signed-off-by: Olivier Fourdan <[email protected]>
    Reviewed-by: Peter Hutterer <[email protected]>
    Signed-off-by: Peter Hutterer <[email protected]>

diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c
index 907bbeb..164ebdc 100644
--- a/hw/kdrive/ephyr/ephyr.c
+++ b/hw/kdrive/ephyr/ephyr.c
@@ -806,7 +806,11 @@ ephyrUpdateModifierState(unsigned int state)

             for (key = 0; key < MAP_LENGTH; key++)
                 if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
-                    if (key_is_down(pDev, key, KEY_PROCESSED))
+                    if (mask == XCB_MOD_MASK_LOCK) {
+                        KdEnqueueKeyboardEvent(ephyrKbd, key, FALSE);
+                        KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE);
+                    }
+                    else if (key_is_down(pDev, key, KEY_PROCESSED))
                         KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE);

                     if (--count == 0)
@@ -820,6 +824,8 @@ ephyrUpdateModifierState(unsigned int state)
             for (key = 0; key < MAP_LENGTH; key++)
                 if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
                     KdEnqueueKeyboardEvent(ephyrKbd, key, FALSE);
+                    if (mask == XCB_MOD_MASK_LOCK)
+                        KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE);
                     break;
                 }
     }
diff --git a/hw/xnest/Keyboard.c b/hw/xnest/Keyboard.c
index 2cf1624..ee3f68e 100644
--- a/hw/xnest/Keyboard.c
+++ b/hw/xnest/Keyboard.c
@@ -18,6 +18,7 @@ is" without express or implied warranty.

 #include <X11/X.h>
 #include <X11/Xproto.h>
+#include <xcb/xcb_keysyms.h>
 #include <X11/keysym.h>
 #include "screenint.h"
 #include "inputstr.h"
@@ -247,7 +248,11 @@ xnestUpdateModifierState(unsigned int state)

             for (key = 0; key < MAP_LENGTH; key++)
                 if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
-                    if (key_is_down(pDev, key, KEY_PROCESSED))
+                    if (mask == XCB_MOD_MASK_LOCK) {
+                        xnestQueueKeyEvent(KeyPress, key);
+                        xnestQueueKeyEvent(KeyRelease, key);
+                    }
+                    else if (key_is_down(pDev, key, KEY_PROCESSED))
                         xnestQueueKeyEvent(KeyRelease, key);

                     if (--count == 0)
@@ -261,6 +266,8 @@ xnestUpdateModifierState(unsigned int state)
             for (key = 0; key < MAP_LENGTH; key++)
                 if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
                     xnestQueueKeyEvent(KeyPress, key);
+                    if (mask == XCB_MOD_MASK_LOCK)
+                        xnestQueueKeyEvent(KeyRelease, key);
                     break;
                 }
     }

remove libXinerama from build

I have stumbled over this commit: http://cgit.freedesktop.org/xorg/xserver/commit/?id=2c69deb92e11542f615df0f24fdc03e3b4415475

I think we should include that into 3.6.x to simplify the build process.

commit 2c69deb92e11542f615df0f24fdc03e3b4415475
Author: Rémi Cardona [email protected]
Date: Fri Jul 3 10:51:50 2009 +0200

configure: libXinerama isn't needed anymore

since libXinerama commit 90d4d23bf2e94721149ddc0a80093b10a82e8845 and
xineramaproto commit 21477147613c28c968b5e1eb9d8aea7017dd399d, the
server no longer needs libXinerama.

Signed-off-by: Rémi Cardona <[email protected]>

NEdit Motif (vs LessTif) segfaults

Background:

NEdit is an ancient graphical text editor that many developers (like those I know personally) still swear by. It uses the Motif toolkit; Either regular Motif, or the no longer maintained LessTif. Note that the reason why LessTif is no longer maintained is because Motif 2.3.x is now actually open source. ("Open Motif" 2.2.x was not under a real open source license.)

Bug

NEdit segfaults on launch under X2Go with nxagent/x2goagent 3.5.0.32 or 3.5.0.99 b7657cf on my CentOS 7.2 test VM, but only when it is built with Motif rather than LessTif

Under X.org, it launches fine regardless of how it is built.

I tried both Windows and Linux X2Go clients, using nxproxy 3.5.0.x.

I only tried rootless mode.

This is a problem because the Fedora 24 version, unlike prior versions, is now built using Motif rather than LessTif. The Fedora/EPEL maintainer has not replied yet about how he intends to build it for EPEL7. The bug report below is the request for him to build it for EPEL7.

I am presuming that this is a bug in nx-libs, rather than in Motif or NEdit.

See this bug report for links to my test builds:
Please build an EPEL7 version of nedit

Add support to nxproxy for reading from stdin

Add patch for nxproxy to read from stdin, allows nxcl to use standard ssh instead of nxssh
(Portage version: 2.2_rc8/cvs/Linux 2.6.26-gentoo x86_64).

From:
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-misc/nx/files/nx-3.2.0-nxproxy_read_from_stdin.patch?diff_format=s&view=markup

--- Main.c.old  2007-07-18 17:39:13.000000000 +0200
+++ Main.c  2008-03-12 04:40:30.000000000 +0100
@@ -36,28 +36,48 @@
   int result = -1;

   char *options = NULL;
-
+  
+  char *nx_commfd_str = NULL;
+  
   options = getenv("NX_DISPLAY");
-
-  if (NXTransParseCommandLine(argc, argv) < 0)
+  
+  if ((nx_commfd_str = getenv("NX_COMMFD")) != NULL)
   {
-    NXTransCleanup();
-  }
+   int nx_commfd = atoi(nx_commfd_str);

-  if (NXTransParseEnvironment(options, 0) < 0)
-  {
-    NXTransCleanup();
+   if (result)
+       result = NXTransCreate(nx_commfd, NX_MODE_SERVER, options);
+ 
+   // go into endless loop
+
+   if (result)
+   {
+       while (NXTransRunning(NX_FD_ANY))
+           result = NXTransContinue(NULL);
+   }
   }
+  else
+  {
+    if (NXTransParseCommandLine(argc, argv) < 0)
+    {
+      NXTransCleanup();
+    }
+
+    if (NXTransParseEnvironment(options, 0) < 0)
+    {
+      NXTransCleanup();
+    }
+
+   /*
+    * This should not return...
+    */
+
+    #ifdef TEST
+    fprintf(stderr, "Main: Yielding control to NX entry point.\n");
+    #endif

-  /*
-   * This should not return...
-   */
-
-  #ifdef TEST
-  fprintf(stderr, "Main: Yielding control to NX entry point.\n");
-  #endif
-
-  result = NXTransProxy(NX_FD_ANY, NX_MODE_ANY, NX_DISPLAY_ANY);
+    result = NXTransProxy(NX_FD_ANY, NX_MODE_ANY, NX_DISPLAY_ANY);
+  }

   /*
    * ...So these should not be called.

Remote Icedove kills X2Go client on MacOSX and Windows

To reproduce : Debian 7 or 8 as X2Go server, MacOSX or Windows as client.

Open an XFCE session, all works fine until you start Icedove. It kills the X2Go client.

Debian and Ubuntu versions of X2Go client are not affected.

No other application caused this bug as far as I know.

NXCOMP (forked from DXPC) has been forked from non-DFSG code

Recently, a serious license issue was raised and solved on the Debian bug tracker (thanks to Francesco Poli):
http://bugs.debian.org/784565

The issue has been settled by asking all recent maintainers (i.e., copyright holders) of DXPC, to agree on considering the BSD-2-clause license (as introduced in DXPC 3.8.1) retro-actively as the license of all pre-3.8.1 DXPC releases.

An excerpt of this discussion should be provide as a README.DXPC-license file in the nxcomp/ subfolder.

[abrt] nxagent: nxagentDispatchEvents(): nxagent killed by SIGSEGV

From X2Go BTS:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=791

Package: nx-libs
Version: 3.5.0.28

Events.c:1251 is:

x.u.u.detail = inputInfo.pointer -> button ->
map[nxagentReversePointerMap[X.xbutton.button - 1]];

X.xbutton.button = 0 :

X = {type = 4, xany = {type = 4, serial = 0, send_event = 0, display =
0x159ba50, window = 0}, xkey = {type = 4, serial = 0, send_event = 0, display
= 0x159ba50, window = 0, root = 7848854, subwindow = 11409376, time = 0, x =
-772, y = -13337, x_root = 32767, y_root = 0, state = 57, keycode = 0,
same_screen = 0}, xbutton = {type = 4, serial = 0, send_event = 0, display =
0x159ba50, window = 0, root = 7848854, subwindow = 11409376, time = 0, x =
-772, y = -13337, x_root = 32767, y_root = 0, state = 57, button = 0,
same_screen = 0}

-------- Forwarded Message --------
Subject: [Bug 1193943] New: [abrt] nxagent: nxagentDispatchEvents(): nxagent
killed by SIGSEGV
Date: Wed, 18 Feb 2015 15:30:49 +0000
From: [email protected]
To: [email protected]

https://bugzilla.redhat.com/show_bug.cgi?id=1193943

        Bug ID: 1193943
       Summary: [abrt] nxagent: nxagentDispatchEvents(): nxagent
                killed by SIGSEGV
       Product: Fedora
       Version: 20
     Component: nx-libs
      Assignee: [email protected]
      Reporter: [email protected]
    QA Contact: [email protected]
            CC: [email protected]

Version-Release number of selected component:
nxagent-3.5.0.28-1.fc20

Additional info:
reporter: libreport-2.2.3
backtrace_rating: 4
cmdline: /usr/lib64/nx/bin/nxagent -persistent -D -name 'NX -
[email protected]:2000 - mnich (GPL Edition)' -option
/home/jboyle/.nx/C-mnich.myquotient.net-2000-9C1FED17795787217FBC80B6F1F2E86E/options
-nolisten tcp :2000
crash_function: nxagentDispatchEvents
executable: /usr/lib64/nx/bin/nxagent
kernel: 3.18.5-101.fc20.x86_64
runlevel: 3 5
type: CCpp
uid: 1000

Truncated backtrace:
Thread no. 1 (5 frames)
#0 nxagentDispatchEvents at Events.c:1251
#1 nxagentBlockHandler at Handlers.c:446
#2 BlockHandler at dixutils.c:442
#3 WaitForSomething at WaitFor.c:257
#4 Dispatch at X/NXdispatch.c:619

Xlib: extension "MIT-SCREEN-SAVER" missing on display [Debian Jessie/KDE4]

Reported via X2Go BTS:

Package: x2goagent
Version: 2:3.5.0.32-0x2go1+git20150704.734+jessie.main.1

Operating System: Debian Jessie 8.2
Kernel: #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09)
Desktop Environment: KDE4

The KDE Screen Locker does not launch automatically
when my session is controlled by x2goagent. I am able
to lock the screen manually using "Lock" within the
KDE Menu and I can also lock the screen manually with
the use of either of the following commands:

/usr/lib/kde4/libexec/kscreenlocker_greet --immediateLock
/usr/bin/qbdus org.freedesktop.ScreenSaver /ScreenSaver Lock

However, if the screen lock is set to activate automatically,
it never does. For example, if the KDE Screen Locker is
set to "Start Automatically After 1 minute", the screen lock
never activates even after the screen stays completely idle
for several minutes.

If I login to a KDE session directly on the system console,
the screen lock will activate after one minute. If I login
to a KDE session using "xrdp", the screen lock will activate
after one minute. If I login to a KDE session using X2GO,
screen lock never activates.

Within the ~/.xsession-x2go-errors file, several of the
following messages are logged:

Xlib: extension "MIT-SCREEN-SAVER" missing on display ":50".

Someone from a KDE Forum suggests that the missing "MIT-SCREEN-SAVER"
extension would cause the issue of not having the screen lock
automatically.

Maybe I am missing a package or system library? Is there a
modification that I can apply to the "/etc/x2go/x2goagent.options"
file that will correct the missing "MIT-SCREEN-SAVER" extension
issue? Is there some other way that I can correct this problem
without having to try to build/compile from source?

There has been reference to similar problems in the past, but I have
not been able to locate a proper fix:

http://lists.x2go.org/pipermail/x2go-dev/2010-June/000579.html

I am able to duplicate this on two separate X2GO Servers (running
on Debian Jessie). I know there has to be other Debian/X2GO/KDE4
users - do they not have this problem as well?

NOTE: I am able to set automatic screen lock if I switch to xscreensaver,
but if this is an bug with X2GO and KDE4, I am hoping that there is
a fix. If needed, I can file a bug report with the KDE developers.
I am looking here first since this issue has only occurred within
my X2GO sessions.

Any help would be most appreciated.

Thank you.

FTBFS against libpng 1.6

@mbecroft just encoutered the below FTBFS...

12:42 < mbecroft> Pgn.cpp:417:15: error: invalid use of incomplete type 'png_info {aka struct png_info_def}'
12:43 < mbecroft>    if (infoPtr -> color_type == PNG_COLOR_TYPE_PALETTE)

Presumably some libpng 1.5 -> 1.6 issue (as I build against libpng 1.5.7 whereas mbecroft builds against 1.6 on Gentoo).

nxagent segfaults in LibNX_X11.so when disconnecting

From X2Go BTS:

Package: x2goagent
Version: 3.5.0.31-1.el6

When I disconnected from a windows client, I lost my session. This is the
result in the server at the time of the disconnect. It does not happen
every time, just some times when I disconnect. I can re-connect fine with a
new session, but the running session is lost.

Sep 2 00:34:36 tyler kernel: x2goagent[28724]: segfault at 7fff43451ff8 ip
00007fcf05ebad84 sp 00007fff43451ff0 error 6 in
libNX_X11.so.6.2[7fcf05e73000+10c000]

Sep 2 00:34:36 tyler /usr/bin/x2gosuspend-session: session with ID
jameskohout-58-1441122134_stDGNOME_dp32 has been suspended successfully

Sep 2 00:34:45 tyler abrt[11437]: Saved core dump of pid 28724
(/usr/lib64/nx/bin/nxagent) to
/var/spool/abrt/ccpp-2015-09-02-00:34:36-28724 (390942720 bytes)

Sep 2 00:34:45 tyler abrtd: Directory 'ccpp-2015-09-02-00:34:36-28724'
creation detected

Sep 2 00:34:45 tyler abrtd: Package 'nxagent' isn't signed with proper key

Sep 2 00:34:45 tyler abrtd: 'post-create' on
'/var/spool/abrt/ccpp-2015-09-02-00:34:36-28724' exited with 1

Sep 2 00:34:45 tyler abrtd: Deleting problem directory
'/var/spool/abrt/ccpp-2015-09-02-00:34:36-28724'

[...]

looked and the /var/spool/abrt/ccpp-2015-09-02-00:34:36-28724 is gone.

Remove libNX_Xext - use system's libXext

There's no special NX code in there, the code is almost identical to the one of X.Org 7.0 (see http://cgit.freedesktop.org/xorg/lib/libXext/tree/src?id=XORG-7_0):

$ diff Xext-nx Xext_xorg_7.0/src/
Only in Xext_xorg_7.0/src/: .cvsignore
Only in Xext-nx: Imakefile
Only in Xext_xorg_7.0/src/: Makefile.am
diff Xext-nx/XShm.c Xext_xorg_7.0/src/XShm.c
1c1
< /* $XdotOrg: xc/lib/Xext/XShm.c,v 1.5 2005/07/30 21:07:25 alanc Exp $ */

---
> /* $XdotOrg: $ */
Only in Xext-nx: Xext-def.cpp

embed nxproxy / support embedding of nxproxy in a control window

This would fix several issues reported against X2Go BTS:

Capturing special hotkeys and forwarding / not forwarding them to the remote session:
https://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=838

Disable local screensaver if remote session goes into fullscreen mode (and enable that immediately once leaving it and the idle time has passed):
https://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=554

It also will allow us to inject client-side windows on top of the nxproxy session window.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.