I already sent the last rites announce a few days ago, but here is a more detailed post on the coming up removal of “old” NX packages. Long story short: migrate to X2Go if possible, or use the NX overlay (“best-effort” support provided).
2015/04/26 note: treecleaning done!
Basically, all NX clients and servers except x2go and nxplayer! Here is the complete list with some specific last rites reasons:
- net-misc/nxclient,net-misc/nxnode,net-misc/nxserver-freeedition: binary-only original NX client and server. Upstream has moved on to a closed-source technology, and this version bundles potientally vulnerable binary code. It does not work as well as before with current libraries (like Cairo).
- net-misc/nxserver-freenx, net-misc/nxsadmin: the first open-source alternative server. It could be tricky to get working, and is not updated anymore (last upstream activity around 2009)
- net-misc/nxcl, net-misc/qtnx: an open-source alternative client (last upstream activity around 2008)
- net-misc/neatx: Google’s take on a NX server, sadly it never took off (last upstream activity around 2010)
- app-admin/eselect-nxserver (an eselect module to switch active NX server, useless without these servers in tree)
Continue using these packages on Gentoo
These packages will be dropped from the main tree by the end of this month (2015/04), and then only available in the NX overlay. They will still be supported there in a “best effort” way (no guarantee how long some of these packages will work with current systems).
So, if one of these packages still works better for you, or you need to keep them around before migrating, just run:
# layman -a nx
While it is not a direct drop-in replacement, x2go is the most complete solution currently in Gentoo tree (and my recommendation), with a lot of possible advanced features, active upstream development, … You can connect to net-misc/x2goserver with net-misc/x2goclient, net-misc/pyhoca-gui, or net-misc/pyhoca-cli.
If you want to try NoMachine’s (the company that created NX) new system, well the client is available in Portage as net-misc/nxplayer. The server itself is not packaged yet, if you are interested in it, this is bug #488334
Yesterday, I finally found the bug which prevented neatx from working on my system (thanks upstream for the debugging), so in your next portage sync, you’ll find net-misc/neatx-0.3.1_p43 ready for your testing! If you don’t need vnc/sound/printer tunneling or load-balancing, neatx is easier to set up than freenx and works great out-of-the-box. Thanks again to Mike Auty (ikelos) for his work on the ebuild.
Another work-in-progress for me these days is a source ebuild for chromium (open-source version of Google Chrome). A binary version (chromium-bin) has been available in portage for some time now (with amd64 support added recently), but source version ebuild had some problems. Now my current version (available in my overlay for the curious) has fixed most of them, including use of system libraries, makefiles use instead of scons, –as-needed support, … So why is it not yet in portage? Well, for now the tarballs from upstream are not yet available, so you won’t go past the fetch phase 😉 These should be available soon, once available you can expect chromium to quickly land in a portage tree near you.
By the way, if chromium crashes at startup for you (either binary or source version), they finally found the cause: you are probably using nvidia-drivers and nvidia opengl (via eselect opengl). However the libGL.so from nvidia overrides dlsym/dlopen (dynamic linker functions) with broken replacements, breaking applications relying on these functions! Chromium devs implemented a workaround, available for -bin in versions >=18.104.22.168_p25708, but expect some breakage in time-related functions. All the gory details are here: http://code.google.com/p/chromium/issues/detail?id=16800
And now to change a bit from technical talks, I wanted to say a big “thank you” to all of you Gentoo users who spend time filing bugreports, fixing, writing or rewriting ebuilds, debugging and finding the cause for all sorts of bugs (finding that some dynamic linkers break with specific video cards for example…), in short to all of you who work to make your distro a better one! And recently, a special thanks to Bernd Lommerzheim, who helps me a lot in proftpd maintenance, up to providing an entirely new ebuild for latest version, with lots of fixes and new features.
In my last post about FreeNX future, I had mentioned the efforts on a freenx-redesign branch, which seemed to have stalled.
Well, trust the guys at Google that worked on this redesign, they did not give up, and in fact publicly announced the first public release of neatx, the result of the redesign work. While still missing some of the features available in FreeNX, it does already have some original ones, like the drop-down menu for session control in rootless sessions (which is something I use a LOT when running pidgin remotely from home 🙂 ). I’ll make sure to prepare an ebuild (in your favourite NX overlay first as usual) when they tag a new version (first released one has some bugs that were quickly found).
Now, you may be lost between the multiple servers (including the dead ones), considering I never blogged about tacix, a remote server using NX, but with a different approach from the ‘official’ NoMachine way (with the specifix ‘nx’ user, …), making heavy use of dbus, and with its own client. For now, it’s still in the early versions, but it has potential!
So which server will you install on your (Gentoo, but other work of course) system? Here are the ‘active’ ones:
- Official NX server (net-misc/nxserver-freeedition in portage), closed-source, limited to 2 concurrent sessions, but has all the features. If you want to quickly try NX!
- FreeNX (net-misc/nxserver-freenx in portage), oldest and most complete open-source version, but its development stalled. The last ebuilds in tree use the branch from the Ubuntu folks, which fixes a few bugs compared to the last upstream source. If you want a stable open-source version
- X2GO (net-misc/x2goserver and x2goclient in portage, some extended parts are still in the NX overlay). Maturing fast, and worth a try. This one is brought to you thanks to Joachim Langenbach, who does most of the work on the x2go* ebuilds 🙂
And in the future:
- tacix, for its simpler architecture (think x2go without postgresql,ldap and friends).
- neatx, which I hope will provide a suitable replacement for freenx soon
Hum, it’s been some time since I last blogged on these Gentoo packages I handle! Let’s catch up a bit!
There is a thread running on freenx mailing list about current lack of new commits in freenx SVN. Main developer seems to be MIA (after starting a migration to github) and freenx as it is needs to be rewritten from scratch anyway (some work had been done in a freenx-redesign branch, but it seems abandoned too now). Of course, the ideal thing would be to finally get NX natively in X.org, but that’s not for the close future
So where does this leave us? Debian/Ubuntu packagers have created a freenx team, and manage a bzr tree with more and more fixes and updates (like shadowing local X sessions and stubs for guest sessions). Once I’ve figured out how to “tag” gentoo versions from it, this will probably be the new source for freenx packages (at least until upstream resumes development)
And if you want to try an alternative GPL server, remember to try x2go from the NX overlay 😉 I have not added them to main portage tree yet, but hope to do so real soon ™
In a previous post, I spoke about new ebuilds for X2go client and server, a GPL remote desktop solution that’s based on NX technology, but in a different way compared to nxserver. With lots of help from Joachim Langenbach in bug #249600, I’m glad to say now that ebuilds in the NX overlay for both client and server work fine, and will probably moved to portage soon (ldap management ebuilds will probably wait a bit longer in the overlay, as I cannot test them for now).
For pros and cons, X2go does not need a special “nx” user on the server, you can use your ssh private key (as you log in directly as your real user), both client and server are GPL are not limited in number of connections, remote mounting of directories is easy (via sshfs/fuse), administration of the server can be done via kde control panel elements (including ldap accounts, if you use it). However x2go requires a running postgresql database on the server, does not support VNC/rdesktop proxying or shadow sessions, and some of the nice advanced features seem reserved to dedicated thin clients setups (like saving your session on a usb key, …).
Anyway, if you’re curious to try it, ‘layman -a nx’ and then emerge either x2goclient or x2goserver depending on which computer you are 😉
Nomachine recently released a new major version (3.3.0), which did not introduce many new features, but fixed some bugs (some keys did not work here on my french keyboard for example), and generally feels “snappier” (in my opinion of course, test and check it for yourself 😉 ). It is available in portage for both free server edition (binary only, 2 concurrent connections), and for freenx (open-source, no connections limit).
For some time an alternative client/server from 2X has been available in portage, as net-misc/nxclient-2xterminalserver and net-misc/nxserver-2xterminalserver. Based on old NX 1.5, it provided both a GPL client (missing the > 2.0.0 NX features though) and a working server close to Nomachine one. However it never really got any updates since it was made available. Upstream closed down the website, the client needs fixes for gcc 4.3 and –as-needed, does not work well with current NX servers, the server is still based on old NX code (and is probably vulnerable to some xorg security issuse), so this is last rites time for both of them. They will still be available in the NX overlay if you need them.
Open-source alternatives are availble in portage: net-misc/qtnx for client, net-misc/nxserver-freenx for server.
Now I promised to talk about newer NX systems right? A new bug report was recently opened on x2go, a “server based computing environment” which uses NX technology but is not a clone of current nxclient/nxserver. Nice thing is everything is open-source, including the client (ebuild for it already works). Now some work is needed before there is a x2goserver package in portage, but that will certainly make a nice alternative to current NX servers available. If you already use it, don’t hesitate to come and comment on the bug!
Note to myself: I really need to write some documentation on all of these one day…
After the live ebuild version in the NX overlay, I’ve added the newly released 0.9 version of nxcl (base library)/qtnx (QT4 front-end), a GPL client for NX servers. For now I’ve keyworded them on x86 and amd64 (where I could test them), but who knows, it may work on other arches, where the official nxclient is not available!
Be warned that some options may be missing or incomplete, when compared to nxclient. But all the basics are there 🙂
In the meantime, a new FreeNX release (0.7.2) was made available. While some changes were already backported in Gentoo 0.7.1 ebuild, there are quite a few new features. Fabian Franz (main FreeNX dev, who does a great work) has posted the (long because of all the new features) announcement on the mailing list here. Here are some new features I picked up:
- new helper program that should help for VNC sessions
- slave mod is usable (think “This dramatically reduces session login times and makes single sign on possible”)
- new samba sharing system (sharing and remote printing)
- New “nxsetup –test” command: this one will help a lot if you have an incorrect sshd conf for example
- lots of bugfixes
I’m preparing the version bump in portage, hopefully you will get it in a few days (new installation method, patches to update/remove/…). Stay tuned! EDIT: nxserver-freenx-0.7.2 is now in portage, enjoy!
Some days ago, George Wright announced on #nx that he just had committed a new qtnx, based on the nxcl libs. Qtnx is an open-source Qt-based NX client, and it looks like development on it is rolling again 🙂 It is now based on nxcl, developed by Seb James.
In fact, George is now working for a company on a NX server (and client), their web site is desktopondemand.com. The client is GPL-2, and should support most NX features (including 3.0 shadowing). Of course it is still under heavy development, but you can find them as -9999 SVN ebuilds in the NX overlay. Just run:
# layman -a nx # emerge -av qtnx
I hope this one will soon join nxclient (binary-only, but latest NX features) and nxclient-2xterminalserver (GPLed NX 1.5 version) in portage
Btw, the ebuild is currently marked x86, as these are the arches I test NX on. Drop me a line if it works on ppc (it should) or other arches
It looks like real life finally lets me write some news on Gentoo work 🙂
GNUstep news first: packages based on gnustep-make-2.0 are now almost all marked stable (see the progress in this bugreport), there’s only sparc left and then I’ll finish cleaning up the old ebuilds. In the gnustep overlay, you can now find (masked) unstable gnustep and gorm releases: lots of fixes, but requires lots of revdep-rebuild! 😉
Thanks to grobian and truedfx, you can now try windowmaker-0.92.0-r7, it has some nice features to check out. This is still my WM of choice, even if I now run gnome on the laptop (easy compiz switching, better power management integration).
On the NX front, a nice Gentoo user has filled a few enhancement bugs on freenx (startup script, utempter use, …). I’m preparing a revbump integrating most of these, stay tuned. I’m also preparing a revbump for the free edition server, upstream has released a new version with many fixes (including some that could help people using selinux). And last, if you have problems with freenx, or freeedition server, there are two lengthy threads on the forums, where you may get help from other users. The freenx thread is here, and the one for the free edition is here
And closing this post, I’d like to say a big “thank you for all the work you’ve done on Gentoo” to Roy Marples (uberlord), and Seemant Kulleen (uncle Seemant)
NX 2.1 libraries (based on X libraries and Xnest server) are derived from an old XFree release, and are not maintained anymore upstream, in favor of the 3.0 version (based on X.org, 64bit-clean, …). As pointed out by our nice security people, the code base in NX 2.1 is not patched against all vulnerabilities reported in XFree recently.
So, what will this change for Gentoo users? The free edition server 3.0 has been in the tree for some time and will be going stable shortly (and 2.1 packages removed). The bugs reported when 3.0 got out are all fixed now, so this is the best working version anyway!
For Freenx users, I am preparing a version bump that will work with 3.0 libraries (and will also work on no-multilib amd64 systems too). Upstream is working on a new version, with complete 3.0 support, but as it will be a complete rewrite, expect it “when i’s done” 😉
Just in case, I’ll move the 2.1 nx libs ebuild in the NX overlay (package.masked of course), if people really need it for their freenx setup (and know what they are doing)
When these updates are done, next big task will be to finally write some nice documentation on NX servers in Gentoo (what’s NX, pros/cons of the different servers, how to set up advanced features, troubleshooting guide, …)