Donnerstag, Juli 31, 2008


FreeNX 0.7.3 Roadmap

[ MERGE : Ubuntu Patch Archive from Launchpad ]
[ MERGE : Shadow Support from BerliOS ]




See this updated live:

-> RELEASE: 18.08.2008, 21:10 FreeNX 0.7.3 "Priscilla One Year Edition"



Samstag, März 15, 2008


Release: FreeNX 0.7.2 "Priscilla Edition"

Hi, my dear users and developers,

It is release time again!

And I am proud to present you today the FreeNX 0.7.2 "Priscilla Edition".

And as you can see here:

it is all green here. *happy*

It is literally to the point two months late, but the waiting allowed me to
implement lots of those last minute Feature Requests.

For those being impatient, download it and try it out:

There have been some changes, which first of all is already viewable via
the name:

freenx was renamed to freenx-server as with qtnx and nxcl library we now
also have a freenx-client, which is at the moment waiting in the debian NEW

I am really proud of that. Okay, back to the freenx release:

The seonnd thing is that freenx no longer only contains bash scripts, but
also sources for some binaries and libraries, which enhance functionality.

As that made building more complicated I finally added a Makefile, with
which FreeNX can even be installed!

- So if the NoMachine GPL components are installed in for example
/usr/NX, one would have to do:

$ cd freenx-server-0.7.2
$ patch -p0 < gentoo-nomachine.diff
$ make
$ sudo make install
$ sudo /usr/NX/bin/nxsetup --install

The binaries include nxpasswd and nxserver-helper.

The lib is nxredir, which was imported from freenx-utils.

Now lets check, what makes those binaries so special.

* nxpasswd was imported / forked from the last known revision of nxviewer.

It already was the last time a necessary component to run vncviewer and
most vncpasswd versions do not supply what is needed, so I decided to
include it in the tar ball.

* nxserver-helper:

Now that is one hell of a program. ;-)

I finally made the slave mode usable. This dramatically reduces session
login times and makes single sign on possible (with for example one time
pad keywords).

I am using the slave mode since I made it usable and it works really fine
for me, however I think that still a bit more testing is needed, before I
make it the default.

So if I get lots of reports like: "That new slave mode is so wonderfully",
there are high chances that it is the default the next time.

What this slave mode also makes possible (even though it is not yet
included in this release) is a suid nx wrapper imported from FreeNX

This means a login is possible via ssh to the user without loosing any
advantages of the nx user. (almost, loadbalancing would be more difficult
at the moment)

I already tested it and it works out of the box, however I would like to
only introduce it in a release once we have a working client. (qtnx is a
good possibility for that. Did I say I am proud of it, already?)

I once had made a nxssh wrapper, which gets the password from nxclient by
faking the first part of the protocol, then connecting as the user. With
that wrapper it is then as easy as:

ssh user@host /usr/NX/bin/nxserver-suid

to get to the NX> 103 successfully logged in prompt.

Apropos redesign. I think you all are eager to know what the status is.

The status is that 2 Google employees, Stephen Shirley and Al Riddoch have
done some nice work on the redesign already and its working! If anyone is
brave enough, it can be found in trunk/freenx-redesign.

Okay, lets continue.

* nxredir library

This is a small library, which I already basically programmed in 2005, but
now completed.

It is necessary for the new nxsmb frontend to work with both SBM port 139
and CIFS ort 445 style forwarding and to also allow connecting to samba
shares via konqueror smb://

nxredir is now the default!

That means once samba sharing is enabled, all smb* programs can be used

This also finally solves all printing related problems without having to
patch sambas smbprint.

nxredir basically forwards all connections to or to some other port based on the NXSAMBA_PORT environment

Now we come to all the bug fixes:

- Fixed the display of local sessions to display only
when session type is VNC.
- Fixed the issue that commercial NXClient was called with 0 parameters
and such the "Connection Wizard" came up.
- Added catching of exception after failed nscd command.
- Fixed helpers (desktop, viewer) to honour the
AGENT_EXTRA_OPTIONS_{RDP,RFB} parameters set in node.conf.
- Fixed: Invoke curl with --proxy "" for automatic download of ppd files.
- Fixed the default value for ENABLE_CLIPBOARD="both" instead of ' = '.
- Fixed: nxserver --send and nxserver --broadcast not working with load balancing.
- Fixed: mport is not always written (Gentoo)
- Fixed: nscd is run even if the daemon is not running (Gentoo)
- Fixed: nxserver might fail if $USER is not set
- Fixed a small bug in nxserver when password has spaces at the end or
- Fixed round-robin mode of load balancing.
- Fixed paths for some binaries, which get patched

Okay, so lots of bugs fixed.

A really big thanks goes out to Gentoo, whose patches I applied.

Now we come to the feature requests that have been done:

* Added freenx-server startup script. You can make a symlink to
/etc/init.d/ to have it start automatically.

Well this item was a wish to automatically cleanup the failed sessions
after a reboot for example and to make the permissions right of
/tmp/.X11-unix even if no Xserver is installed.

Distributors are asked to include this script to $PATH_BIN and add a
symlink to /etc/init.d/. It is not automatically installed by the Makefile
as each distribution has different ways to update the links to /etc/rc*.d/.

And it is optional even though it is generally recommended to install.

* Added nxsetup --test to test the configuration and connection to
localhost nxserver.

This item means it is now even easier to test if the ssh setup is okay.

Once installed and it stopped working, you only had the possibility to
reinstall and hope that it would work then again.

Now you can always test if the connection is still working generally.

This will hopefully make user support easier. Thanks to all contributors,
who do help on IRC or via Mail if someone needs help!

There have been also some more cases added, why sshd might fail to login.

* Set ENABLE_USESSION="1" option by default - its hard to find and those
who know can shut it off anyway. Added automatic adding of user nx to group

This was a patch by the Gentoo portage and I found it nice. So nx sessions
will be in "$ w" command by default now.

And together with the slave mode you'll also only have one login per user

* Added support for 3.1.0 and later backends. Made 2.0.0 backend the
default and added a fallback to 1.5.0 via the same detection mechanism.

Now this is one thing I should have already done a long time ago.

Now once a new NX libs version came out we always had to update
nxloadconfig to select the new backend even though only the version number
had been changed.

Now the 1.5.0 backend can be selected by those who still want to use it and
the default is 2.0.0, 2.1.0, 3.0.0 and 3.1.0 style.

* Suppress of pulldown menu (option in nomachine config)

FreeNX also now has the same option to suppress the pulldown menu in
rootless mode.

ENABLE_PULLDOWN_MENU="0" helps in the case where the pulldown menu is not

* Do not show running sessions, when ENABLE_RESUME_RUNNING_SESSIONS="0"

It is now possible to select, which kind of sessions are resumable. All
sessions or only those that are suspended.

* Start a process in an already running session or start a new one

This option is not yet completely finished, however it already works even
though the client is returning an error.

If you set ENABLE_ADVANCED_SESSION_CONTROL="1" and then use "add <name>" as
session name, i.e. "add myhomeserver" you can start an application in an
already running rootless session.

Note: You can't resume this session via this way, if its not suspended

I wrote an email explaining this feature to the list, which also explains a
possible usage scenario involving perl to reset auto-reconnect session to
true and usage of --plugin of nxclient.

This wish was granted for Berharnd Donaubauer.

* Add processor affinity option

FreeNX can now optionally use the TASKSET program to run all nx related
processes on one or two special cores.

The trick is that nxloadconfig is re-balancing the current shell and as
each FreeNX program depends on nxloadconfig, this means that all nx related
processes are put to the configured core.

This wish was granted for Gregory Carter. Have fun with it!

* Add nxacl component to see if session is allowed to start and to modify
any parameters necessary.

I like this one a lot. This was an implemented proposal for the redesign,
but it fits into FreeNX as well.

The idea is that nxserver is giving all information and parameters about
the session to nxacl via the first commandline argument.

nxacl can then do:

- allow a session: exit 0
- deny a session: exit 1


- change all parameters, by echo'ing them out.

The sample nxacl.sample in FreeNX 0.7.2 looks like:

# ...
# Example 0: All allowed

# Parameters unchanged
echo "$CMDLINE"

# Session allowed
exit 0

# Example 1: Allow only unix-kde sessions, deny others

type=$(getparam type)
if [ "$type" != "unix-kde" ]
echo "Only sessions with type unix-kde are allowed."
exit 1


# Example 3: Allow only unix-kde sessions, change type always to unix-kde
# and virtualdesktop=1, rootless=0

changeparam type unix-kde
changeparam virtualdesktop 1
changeparam rootless 0


# You can make as complex samples as you want, if you have one, I would be
# very interested!
# Fabian
# Send it to:

# default action

I did love the policies you can set in NoMachine nxserver, but I wanted to
make it easy and flexible in the same way.

With this script each administrator can set as complex policies as needed,
but he is also so flexible that he can give access for example only to
USERs belonging to group kde or users or myusers or remoteusers or

Perhaps someone wants to program a conversion from --ruleadd (like in !M
server) to nxacl shell script ;-)?

Patches are welcome.

It is working great!

Here comes the full ChangeLog:

14.03.2008 FreeNX 0.7.2 "Priscilla Edition"
* Opened the 0.7.2 development.
* Fixed the display of local sessions to display only
when session type is VNC.
* Fixed the issue that commercial NXClient was called with 0 parameters
and such the "Connection Wizard" came up.
* Added freenx-server startup script. You can make a symlink to
/etc/init.d/ to have it start automatically.
* Added catching of exception after failed nscd command.
* Invoke curl with --proxy "" for automatic download of ppd files.
(Wolfgang Schweer <>)
* Reorganized nxsetup to have a function for parsing command line
* Added nxsetup --test to test the configuration and connection to
localhost nxserver.
* Added -o ConnectTimeout 3 to nxnode-login for test-nx case.
(cedric briner <>)
* Added more examples for "failed ssh connection to localhost" cases.
(cedric briner <>,
* Fixed helpers (desktop, viewer) to honour the AGENT_EXTRA_OPTIONS_{RDP,RFB}
parameters set in node.conf.
* Fixed the default value for ENABLE_CLIPBOARD="both" instead of ' = '.
* Fixed parsing of SMB port and added a fallback if mport file is empty.
(Patch from Gentoo Portage)
* Run nscd only when is present.
(Patch from Gentoo Portage)
* Fixed possible bug in nxserver when $USER is not set.
(Patch from Gentoo Portage)
* Set ENABLE_USESSION="1" option by default - its hard to find and those who know can
shut it off anyway. Added automatic adding of user nx to group utmp.
(Patch by Gentoo Portage)
* Added support for 3.1.0 and later backends. Made 2.0.0 backend the
default and added a fallback to 1.5.0 via the same detection mechanism.
* Added the configuration key ENABLE_PULLDOWN_MENU to be able to
disable the pulldown menu for rootless sessions.
* Fixed a small bug in nxserver when password has spaces at the end or
(Dimitar Paskov)
* Fixed round-robin mode of load balancing.
* Added check for /tmp/.X11-unix/X*.
(Yves-Gael Cheny <yves-gael.cheny at>)
* Fixed --send|--broadcast for load balancing case.
Note: ssh is used, so you need to either insert your root ssh password
for the nodes again and again, use a public key + agent or use host keys.
* Added possibility to use the new nxsmb backend. This enables us to support
CIFS and SMB printing at the same time - without recompiling samba -
via the nxredir preload library.
* Added usage of nxredir library to forward port 139,445 to the
client side forwarded SMB port.
* Made the slave mode finally functional. With that slave mode it is
possible to do a single sign on instead of the multiple logins used
before. It is also possible to use a suid wrapper to login as user.
With single sign on session startup is a lot faster. This is true
especially if there are many printers and files to be shared.
* Added detection of backend version and added this output
to version string.
* Added foomatic-ppdfile to the retested values.
* Added possibility to balance all nx services to different cores
using taskset. Use for example USE_PROCESSOR_TASKSET="3,4" to
balance all services to processor cores 3 and 4.
This wish was granted for Gregory Carter.
* Added initial code to add an application to an already running
rootless session.
Set ENABLE_ADVANCED_SESSION_CONTROL="1" and use session name
like "add <sessionname>". Unfortunately the client returns an
error, but the application is started anyway.
The wish was granted for Bernhard Donaubauer.
* Added option to disable the showing of running sessions.
Set ENABLE_SHOW_RUNNING_SESSIONS="0" if you want that behaviour.
* Updated documentation in INSTALL file.
* Added nxviewer-passwd to distribution. It is a fork of the
tightvnc vncpasswd part, which is necessary for FreeNX to work
with standard vncviewer.
* Added a Makefile so FreeNX can be build and installed via.
$ make
$ # edit nxloadconfig to point where it should install to
$ make install
Hereby FreeNX is installed to where nxloadconfig points and
static paths in nxredir and nxsmb are adjusted accordingly.
So if you want it to be in /usr/NX/ be sure to apply
gentoo-nomachine.diff first or edit nxloadconfig manually.
* Added nxacl.sample component. If you copy nxacl.sample to
$PATH_BIN/nxacl you can make as complex acl scenarios as you
want. You have complete control over all data and can deny
any session.

Have Fun!

We'll see if we do the next release like planned in 1 month or in 3 months
from now.

Best Wishes and may you have a very nice day / night / morning / evening / afternoon / ...,


PS: These are exciting times :-).

Sonntag, März 02, 2008


FreeNX session administrator

Стяжкін Максим has created a simple session administrator for FreeNX:

I find this quite cool.

Here is the original message:
Hi to everybody.
I have created the simple graphic program. It helps to manage with users
sessions logined on FreeNX server. In its window the program shows the
list of active users at the present moment and helps to end or suspend
selected or all the sessions,send a message to selected or all the users
using the functionality of nxserver.
Source codes and gathered for SUSE rpm packages are available in my
repository -

Hope that my program will be useful. Thanks!
Thank you very much, this is really neat!


FreeNX 0.7.2 Roadmap



Fr 14. Mär 22:31:50 CET 2008 -> Ready to release!


See this updated live:



Montag, Februar 19, 2007


Knoppix, Beryl/AIGLX & VirtualGL

Okay, as I've now was messing with that new Knoppix DVD anyway, I figured I could as well try out the new beryl support.

Well it works.

I'm now watching Turkish Star Wars in the background while writing this blog entry.

This is quite cool.

As I now have a nvidia card, I used the Kanotix nvidia-installer script to install the drivers.

Afterwards I did a: beryl --replace & emerald --replace &

Well, I guess you all have already seen the wobbly windows, 3D desktop and all those other gimmicks ...

All I have now working here. Sweet!

The only things I did not like: Default theme *urgh*, but that was changable via 'emerald-theme-manager' within seconds. I'm now quite satisfied with the ubuntu-superhuman theme.

The other thing I didn't like was that Ctrl+Mouse wheel was set to opacity as I use it quite frequently to increase or decrease the font size of web pages.

I don't know if I want to keep those desktop features, but it has something.

I like AIGLX much more than xGL, because for me it seems much cleaner to add support directly in the original Xserver instead of creating a separate Xserver.

This has also the advantage that network computing neccessary for example for NX won't be harmed.

Speaking of network computing: I found the project VirtualGL, which tries to make GLX application usable over the network by rendering the pixmaps locally and streaming them as images.

It seems to be suitable also for inclusion into NX core.

Funnily you can't find the author of the project on, but a quick check into the sources reveals that it is Sun :-).


NX on Maemo 770 - we're getting there

George Wright of QtNX fame is working on a NX Client for the Nokia Maemo, which I already hacked on on LinuxTag 2005.

We've looked into embedding nxproxy into an application via XReparentWindow, but we had not that much success. After some tries I found mozplugger-helper, which was working great and seems to be easy to integrate.

More news on development can be found on his blog.


Knoppix-Installer update

My new Knoppix 5.1.1 DVD arrived yesterday and I tried it out now.

First I found out that the apt-method-installed patches have been merged, but that the updater would overwrite sources.list in case of Ctrl+C.

That is fixed now. This means a knoppix-installer update after almost 2 years!

I also fixed the dreaded IGNORE_CHECK=1, which users always had always problems with. Environment was simply (correctly) not passed by sudo. Oops.

Fixed by introducing new command line options:

--no-check: which does the IGNORE_CHECK=1


--no-update: skips the update checking

I also added a nice progress bar, while searching for updatable partititions and fixed lengthy rebuildfstab invocations.

Patch should be in next upstream knoppix version.

Dienstag, Juli 11, 2006


Frozen Bubble Speed Mode

Ich habe hier auf dem Entwicklertreffen in Frankreich festgestellt, dass viele Leute frozen-bubble auf Geschwindigkeit spielen.

Da kam mir die Idee, doch einen Geschwindigkeitsbasierten Modus einzuführen. Kurzer Patch, dann das Testen, fertig.

Zum Starten: frozen-bubble -sp 50.

Ich persönlich finde den speed-basierten Modus spannender.

Hab den Patch an Upstream geschickt und bin auf die Resonanz gespannt.

Montag, Oktober 31, 2005


Unter 8° C - Ubuntu Below Zero

Es ist kalt ziemlich kalt - wenn auch noch nicht unter 0 °C - wie der Name der Konferenz vermuten lässt.

Zumindest wenn man gerade frisch aus dem schön warmen Karlsruhe kommt.

Nach einem schönen Ausblick auf den Airbus A380 und ca. 8 Stunden Flug (inkl. 1 Stunde Verspätung), bin ich zusammen mit zwei "Masters of the Universe" in Montreal eingetroffen.

Der erste Tag ("Ubuntu Love Day") ist auch schon zu Ende und wir gehen wohl bald etwas essen.

Im Moment arbeite ich mal wieder von einer Live-CD aus.

Die Ubuntu LiveCD ist schick - auch wenn ich KDE bevorzuge: Automatische Wireless Einbindung mit Darstellung der Connection Quality in der Systray, Batteriestatus und Lautsprecher.

Der Bootprozess dauert aber ewig und ist teilweise ziemlich hässlich. Aber da sich einige der BOFs hier um dieses Thema drehen, werden wir dem wohl Abhilfe schaffen können.

Wer sich für die BOFs interessiert, die ich besuchen werde:

Ansonsten ist das Hotel recht nett, das kanadische Fernsehen ziemlich cool (Rocky Horror Picture Show mit französichen Untertiteln, die meisten Kanäle auf französisch und Salsa-Musik im Fernsehen), und das Frühstück sehr sehr gut.

Ich bin mal auf die nächsten Tage gespannt und hoffe, dass wir die FreeNX Integration in LTSP fertig kriegen werden, denn es findet gleichzeitig auch ein Edubuntu und ein LTSP-Treffen hier statt.

Dienstag, September 27, 2005



YEAH! Ich hab Vordiplom!

Es ist zwar noch nicht zugeschickt, aber ich hab alles notwendige bestanden und abgegeben! Und gerade heute kamen die TI-Ergebnisse (meine letzte noch fehlende Klausur) heraus ... ... und ich hab _bestanden_!

Hauptstudium - ich koooommmeee.

Was für ein geniales Geburtstagsgeschenk :-) ...

Danke @ Konrad, Moritz, Thorsten: Der Schokokuchen ist euch sicher!

This page is powered by Blogger. Isn't yours?