I've tried to create ebuilds to make x2go available on gentoo.
X2Go (http://x2go.berlios.de/) is a german project to have a free terminal server project with features like the Sun-Ray tools from sun.
I started with the x2goclient and created an ebuild.
But when I try to install it, I get the error at bottom. I know it have something to do with not finding libldap and a lib for qtsvg. But libldap is installed at
and this svg libs are present:
So I think it should be work. So I'm very glad, if someone knows how to solve this or/and wants to help me making x2go available on linux.
LDAPSession.o: In function `LDAPSession::modifyStringValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std
::list<LDAPStringValue, std::allocator<LDAPStringValue> > const&)':
LDAPSession.cpp:(.text+0x67f): undefined reference to `ldap_modify_s'
LDAPSession.cpp:(.text+0x6a7): undefined reference to `ldap_err2string'
LDAPSession.cpp:(.text+0x735): undefined reference to `ldap_mods_free'
SVGFrame.o: In function `SVGFrame::SVGFrame(QString, bool, QWidget*, QFlags<Qt::WindowType>)':
SVGFrame.cpp:(.text+0x96c): undefined reference to `QSvgRenderer::QSvgRenderer(QObject*)'
SVGFrame.cpp:(.text+0x97b): undefined reference to `QSvgRenderer::load(QString const&)'
SVGFrame.cpp:(.text+0x9b3): undefined reference to `QSvgRenderer::defaultSize() const'
SVGFrame.cpp:(.text+0x9eb): undefined reference to `QSvgRenderer::render(QPainter*)'
SVGFrame.cpp:(.text+0xaa7): undefined reference to `QSvgRenderer::animated() const'
SVGFrame.cpp:(.text+0xab8): undefined reference to `QSvgRenderer::framesPerSecond() const'
SVGFrame.cpp:(.text+0xad7): undefined reference to `QSvgRenderer::framesPerSecond() const'
collect2: ld gab 1 als Ende-Status zurück
Created attachment 174062 [details]
the first ebuild to install x2goclient
first ebuild to install x2goclient with portage
Definitely falls under nx herd ;)
For next ebuilds, you can get some inspiration from current NX ebuilds:
* nxclient, nxnode, ... have the same strange versioning and use the versionator eclass to extract the correct version (for SRC_URI for example)
* qtnx uses qt4 eclass (modular DEPEND, qmake calls, ...)
I'll upload updated ebuild, still missing is install part which currently does nothing (need to check if only copying the binary is enough)
Created attachment 174142 [details]
Missing install part
net-misc/x2goclient ebuild is in the NX overlay now ("layman -a nx")
Created attachment 174348 [details]
Ebuild to install x2gokdebindings (installation don't work)
Thanks, the ebuild works for me.
Another question is: I went on with new ebuilds for the other components of x2go. Should I post them into that bug or open a new one for each component?
So I went further and try to create the next ebuild. I choose (don't know why) the x2gokdebindings (I attached the ebuild). I created an ebuild and the configure and make process works fine. But the installation don't work and I geth the following error:
--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE = "/var/log/sandbox/sandbox-31803.log"
So I think only the install command is not right and maybe there are more possible use-variables, but the ./configure --help=recursive isn't working for me.
Created attachment 174544 [details]
Ebuild to install x2gokdebindings
This ebuild works without problems.
Created attachment 174545 [details]
Ebuild to install x2gogroupadministration
Works, but the patching should be a bit improved.
Please yes, for the moment let's continue to use this bug for the different components. Separatly they are not that useful anyway ;)
I've tried manually installing the server, it works ok on localhost after a sed command to call nxagent instead of x2goagent (I wonder what differences are between real x2goagent and nxagent... if there are none, we can use net-misc/nx for all and skip x2goagent package). I'll post an ebuild later on (basically do the sed, copy the scripts, and write some postinstall notes on postgres database needed, and sudoers entry)
I've added both x2gokdebindings and x2gogroupadministration ebuilds to NX overlay (and simplified them a lot using the kde eclass).
You can also find there a preliminary ebuild for the server, basics work on localhost (starting a session), and uses nxagent instead of x2goagent.
Created attachment 174833 [details]
init.d-script from debian
I added the init.d script for the x2goserver which is delivered with the package by debian. It works for me. I run the x2goserver (from overlay) with this script on my gentoo amd64 server and I can connect to the server from another amd64 gentoo system with x2goclient from overlay.
But there is an error message when I close the current session:
x2gocmdexitmessage: command not found. This command should be executed at the server, but I didn't found the command. Even in the x2goserver-tarball it doesn't exists.
I have not tested the session resume and the audio stuff. Also I didn't try to mount some filesystems remotely or loca usb stuff.
Created attachment 174865 [details]
Added in NX overlay! If you follow it, I've found that the /pool-lenny/ folder has newer versions with some fixes, including the missing x2gocmdexitmessage in server. I've also written a gentoo init script for the server, and made ldap optional in the client.
With current versions in the overlay, I could make a remote connection without any warnings. And for small setups (like remote display from home), it's faster to setup than a NX server!
Did you get a kde session to work?
At my setup i've got icewm working, but kde won't start.
But startkde doesn't work locally too. Only startx with exec startkde at .xinitrc is working. I tried that way with x2go, but the screen holds on with the start logo. But I run ps aux | grep kde at the machine via ssh and some kde things like klauncher and ksmserver are started because of the x2go session.
Another thing is, my path variable at the x2go session is different from the one with ssh. Via ssh, for example, the kde/3.5/bin path is part of the $PATH, but at x2go this element is missing.
I installed the new x2goserver.
I also wrote the x2go team an email, to tell them that we're working on ebuilds for their project and I ask them about special features of the x2goagent. If they answer, I post the important lines here.
Created attachment 175040 [details]
Ebuild to install x2gohostadministration
Created attachment 175041 [details]
Ebuild to install x2gouseradministration
Created attachment 175044 [details]
Update the description
Created attachment 175045 [details]
Update the description
Created attachment 175072 [details]
Ebuild to install systemadministration
Created attachment 175073 [details]
Used to mount usb-devices like usb-sticks at the client
I think the udev rule doesn't have any effect, because a looked at /var/log/usb when I entered the stick and nothing happended. But the local kde wants to mount it.
Created attachment 175076 [details]
Ldaptools for x2go
- I don't install all files which are shipped with the .deb-file. Only that one, I think they are needed
- May be it make sense, that the KControl plugins (without sessionmanagement) are depened on that ebuild, if the ldap flag is set (I think you make ldap flag available at the KControl ebuilds?)
Now I get KDE session working.
The failure was the wrong $PATH. I tried it like it is mentioned at
and with /usr/kde/3.5/bin/startkde as the command for custom session, I get it working.
Also I installed x2gousbmount (at the client side), but it seems not to work (see comment above)
Created attachment 175080 [details]
Ebuild to install x2gocdmanager
- The ebuild doesn't install any files, but I don't know why
- A logical question, the usb-tool should be installed at the client, but the cdmanager is a tool with gui, so I think it must be installed at the server? But that makes no sense in my mind. ;-)
Ebuilds added for the *administration and ldap ;)
For usbmount and x2gocdmanager:
So apparently they do not work for standalone setups (they suggest shared folders for that).
So for the *administration, sessionmanagement can be used standalone, all the other ones need the LDAP x2go setup? I can't test them right now, as I don't have any KDE 3.5 environments available... USE=ldap for server will be a good option for them. Not sure when I'll be able to move them to portage though (needs testing, and their setup scripts scare me a bit)
For sessionmanagement and kdebindings, I've added them to server as optional DEPEND with USE=kde set. client+server+kde bindings will be good to go in portage soon :)
Only the sessionmanagement is working without x2goldaptools. All other *administration programs need a working ldap environment. I will test that if I'm back at home in the new year.
My usbmount ebuild has an write error at the path of the rule file for udev. So it's installed at the wrong place. I upload a new one at the new year.
Than I wish a merry christmas and happy new year!
Created attachment 181677 [details]
The pinentry x2go module
Created attachment 181679 [details]
The thinclient Deamon from X2Go
I've tried the thinclient from x2go and it's working so far, that the x2gothinclientd (which is a perl script to start X-Server and the x2goclient) is working and the dependencie to x2goclient is set. I also set a dependencie to pinentry-x2go because it's a dependencie at debian, but I think it's not really needed.
Added in portage:
net-misc/x2goserver (without ldap deps)
Now let's wait for the bugs ;)
Thanks for your work getting this into portage.
Rather than open a new bug, I thought I'd ask here: would it be possible to add ebuilds for the gtk and cli clients to the overlay or portage? As the client is the only package depending on Qt in my setup, this would remove the need for Qt on the client.
Is it just me or is rootless mode broken? (I'm using version 3 from the overlay) I can't get a suspended session's rootless windows to restore on the client. Once I resume the session they don't come back, but the apps are still running on the server. Suspend/resume works fine in desktop mode.
Also, there is a CPU spike and a 2-3 second delay when focus switches to an app running in rootless mode that isn't there when using desktop mode. The lag gets smaller if I shrink the window, but I run the apps at 1920x1200..
Yes should be possible. If you haven't create them yet, I try to create them during the next weeks.
What do you understand under rootless mode? Do you mean running a command like /usr/bin/oowriter at x2goclient?
Yes, I mean running a single application like xterm. Then I can spawn more applications from that xterm wich gives more windows on the client. The problem is that if I suspend such a session and then resume it, the windows don't come back on the client. Also there is the horrible 2-3 second delay if I switch focus to such a window, the delay isn't there if I run a "desktop mode" nx server and then switch to that window. Are you seeing these issues as well?
I did also install a freenx/nxclient pair, and it also has both of these problems in rootless mode (resume fail/on-focus delay).
Thanks for looking into a -gtk ebuild!
Created attachment 206749 [details]
The installation works fine, but the starting of the programm doesnt work.
It's terminate with can't allocate memory error.
Created attachment 206751 [details, diff]
Patch for x2gogtkclient-3.01.6
Thanks for ebuilds!
What about ebuild for x2goserver ONE? (without dependency on Postgres)
(In reply to comment #34)
> Thanks for ebuilds!
> What about ebuild for x2goserver ONE? (without dependency on Postgres)
I looked at the x2goserver ONE archive and it's only a perl script, so I think the difference between x2goserver and x2goserver ONE is preconfigured config files and the change of the backend. But I don't know how and where this changes are made, so if someone get it, please post a hint.
Created attachment 216843 [details]
updated ebuild with sqlite support aka x2goserver one
Created attachment 216844 [details]
patch to disable desktop icon creation for connected client shares
there is no x2gokdebindings ebuild anymore so the desktop icon is useless.
Thanks, x2goserver ebuild updated in the overlay with sqlite support, I've also added x2goclient-gtk even if it still does not work here
Now to update x2goclient/server in portage, with sql support for easier home x2go server :)
(In reply to comment #38)
> Thanks, x2goserver ebuild updated in the overlay with sqlite support, I've also
> added x2goclient-gtk even if it still does not work here
> Now to update x2goclient/server in portage, with sql support for easier home
> x2go server :)
Sorry to post this here (I ran out of options). Is there a x2go users mailing list? I am unable to get x2goserver/client working on my gentoo boxes.
This list can be used for such questions too: email@example.com
I've tried x2go from nx overlay. Here is some bug's
1. x2goclient-gtk has no ldap flag so it isn't compiled when I have not LDAP installed.
2. x2gosystemadministration also isn't compile whitout LDAP.
3. x2gosystemadministration doesn't configured without arts. You can add arts useflag with dependencies.
I think LDAP issue is common for all x2go ebuilds without ldap useflag
Can't locate Config/Simple.pm in [...]
Installing dev-perl/Config-Simple solves the problem. Please add it as a required dependency.
(In reply to comment #42)
> Can't locate Config/Simple.pm in [...]
> Installing dev-perl/Config-Simple solves the problem. Please add it as a
> required dependency.
Thanks for spotting this, fixed (in portage and nx overlay)
By default, it appears that the server ebuild writes "local" to /etc/x2go/sql which in turn causes the server to assume a postgres configuration. However, there is no requirement that any of ldap, postgres or sqllite use flags be enabled. So, in the case that none of these use flags are set, the user will neither have a runtime dependency on postgres, nor will they get instruction to run the setup script for the database even if they do have postgres installed. The user ends up with a broken x2go server, with no indication that it is broken.
Indeed, both USE="-postgres -sqlite" and USE="postgres sqlite" were not handled correctly, thanks for spotting it
I've added x2goserver-18.104.22.168-r1 to tree that adresses these problems
Used ebuild: net-misc/x2goserver-22.214.171.124-r1 (from current portage)
From session.log on the server side:
Error: Aborting session with 'Could not open default cursor font 'cursor''.
On the client side, the sessions starts and terminates instantly. You get no error message.
Fix: emerge media-fonts/font-cursor-misc
How to start x2goserver ? There is not a "/etc/init.d/x2goserver" file with x2goserver ebuild ?
(In reply to comment #47)
> How to start x2goserver ? There is not a "/etc/init.d/x2goserver" file with
> x2goserver ebuild ?
same here. just emerged x2goserver but there is no /etc/init.d/x2goserver file.
emerged: [ebuild R ] net-misc/x2goserver-126.96.36.199-r1 USE="fuse sqlite -postgres"
(In reply to comment #48)
> (In reply to comment #47)
> > How to start x2goserver ? There is not a "/etc/init.d/x2goserver" file with
> > x2goserver ebuild ?
> same here. just emerged x2goserver but there is no /etc/init.d/x2goserver file.
> emerged: [ebuild R ] net-misc/x2goserver-188.8.131.52-r1 USE="fuse sqlite
The same here, no way to start x2goserver.
Let's finally retire this bug, it is getting hard to track new comments/bugs in it. Don't hesitate to report problems in new separate bugreports (like #408105 for new version bump)
Thanks everyone for your help on x2go packages