[prev in list] [next in list] [prev in thread] [next in thread]
List: freenx-knx
Subject: [FreeNX-kNX] FreeNX 0.6.0.99 snapshot with full printing support
From: "Fabian Franz" <FabianFranz () gmx ! de>
Date: 2007-01-24 22:45:27
Message-ID: 20070124224527.226440 () gmx ! net
[Download RAW message or body]
Hi,
So it was a real challenge, but I managed to do it and lots more:
I (re-)implemented full printing support for FreeNX and CUPS v.1.2.x.
It works serverside only with CUPS v1.2.x and no longer with CUPS v.1.1.
For the brave testers:
http://studwww.ira.uka.de/~s_franz2/freenx/freenx-0.6.0.99.tar.gz
If I don't get any complaints and find no new bugs this will be released as 0.6.1 (in \
a year or so ;-)).
So, now lets look at the ChangeLog and walk through all the new features and how to \
use them:
* Fixed the printing support for CUPS 1.2.
Older versions of CUPS are no longer supported.
* Note: You might need to do: chmod 755
/usr/lib/cups/backend/{ipp, http}
-> This is just in general. While testing I found out that debian set \
/usr/lib/cups/backend/ipp and http to 700 with no reason whatsforever. I guess this \
is just a bug and the chmod did fix it for me.
* Added foomatic support.
* Note: You might need to do: ln -s /usr/bin/foomatic-ppdfile
/usr/lib/cups/driver/
-> Yes, finally there is the full foomatic support, which you might already know from \
the KDE Printer Wizard. Now NX can use this DB directly as well. However cups needs \
to be aware of it, so the symlink is necessary and by default FreeNX will search for \
/usr/lib/cups/driver/foomatic-ppdfile.
* Added setting of CUPS_SERVER environment var.
-> Now this is great! As of CUPS 1.2, it can use UNIX domain sockets as the \
servername. So we export this to the session specific port and whereever we are we \
can always print to it (and other users cannot, because its protected via file system \
permissions.)
-> But what about those KDE apps? First of all you can just enable \
ENABLE_KDE_CUPS="1" and are done with it. Second however you can use a more tricky \
approach if you want to work locally and remote at the same time with the same home \
directory:
Use the following script and save it as for example /usr/bin/nxcupsd_getsock:
--
#!/bin/sh
if [ -n "$NXSESSIONID" -a -r "$HOME/.nx/C-$NXSESSIONID/cups/cups.sock" ]
then
echo "$HOME/.nx/C-$NXSESSIONID/cups/cups.sock"
else
echo "/var/run/cups/cups.sock"
fi
--
make it executable (chmod a+x /usr/bin/nxcupsd_getsock) and add the following entry \
to your global kdeprintrc:
Host[$e]=$(/usr/bin/nxcupsd_getsock)
This means whenever we are running in an nxsession we will be redirected to the right \
cupsd, else the system cupsd will be used.
Isn't KDE great?
Future: I was thinking that one could do the same for a "immutable flat profile" to \
just disable all fancy things if running inside an NX session.
* Added automatic downloading of PPDs, if the client supports it.
-> This is as seamless as it can get for now. You can choose "Download (CUPS)" as the \
driver and it tries to directly retrieve the ppds from the remote userspace cupsd and \
even caches them. You need "curl" in your path for that to function for the moment. \
(Yes, there might be a config directive in the future, but I forgot.)
* Added configuration vars to tweak the new behaviour.
-> You don't like CUPS_SERVER being exported? Or foomatic db being searched? Well, \
just disable it in the config file.
-> And nxloadconfig --check was extended to support all new variables and \
automatically test them. So if you don't know if yo uare ready for the next \
generation of printing (TM) just try it with nxloadconfig --check.
* Added cups seamless support with no "use this driver?" dialogs at all.
* Note: You need nxcupsd-wrapper on the client side.
Get it from nxutils repository.
-> You don't even have to click on "download" anymore. It will without user \
interaction automatically retrieve and install the ppd files. The trick is to have \
the ppds available in the ppd directory on the client but with the special suffix \
_nxdl.ppd. With this method, the local userspace cupsd does not try to load the ppds, \
but the remote cupsd can still read them.
If you use the nxcupsd-wrapper script, which is also necessary to run the !M client \
with CUPS 1.2 it will automatically try to download the PPDs. If you don't have this \
or the script does not work do on the client something like:
$ cd ~/.nx/cups/
$ mkdir ppd
$ cd ppd
$ for i in $(lpstat -p | cut -d" " -f2 ); do wget \
http://localhost:631/printers/$i.ppd -O ${i}_nxdl.ppd; done
As the ppd directory is not deleted by nxclient, you only have to do this once.
To enable completely seamless mode add $ENABLE_CUPS_SEAMLESS="1" to your config.
* Fixed Support for "Running" sessions - again.
-> Yes, I am terribly sorry, but this seems to be broken in 0.6.0 with 2.1 backend. \
However this affects only running sessions. If you suspend them, everything is fine \
and no zombies to be seen either.
* Made the NXAgent exited with exit code 1 message more verbose.
-> Yeah, exit 1 status code was a bit well too "spongy". Now it gives detailed \
instructions on what to do. Thanks for the idea.
If you now run CUPS 1.2 on the client side with NX 2.1.0, cupsd won't start. So we \
need to wrap it:
http://svn.berlios.de/svnroot/repos/freenx/nx-utils/nxcupsd-wrapper/nxcupsd-wrapper
Download it, put it somewhere in your home directory, chmod a+x nxcupsd-wrapper, and \
point nxclient to it instead of /usr/sbin/cupsd.
That is all and printing with the !M client even with the normal commercial server \
should work again.
You can use the wrapper script also for CUPS/1.1 clients as it has an automatic \
version detection build in. This way all of your linux clients can benefit from the \
new seamless download support function of the ppds.
So I hope you enjoyed this printing "service pack" and see you next level :-).
cu
Fabian
PS: Feedback needed! This has costed me quite some time, so please give me feedback.
________________________________________________________________
Were you helped on this list with your FreeNX problem?
Then please write up the solution in the FreeNX Wiki/FAQ:
http://openfacts.berlios.de/index-en.phtml?title=FreeNX_FAQ
Don't forget to check the NX Knowledge Base:
http://www.nomachine.com/kb/
________________________________________________________________
FreeNX-kNX mailing list --- FreeNX-kNX@kde.org
https://mail.kde.org/mailman/listinfo/freenx-knx
________________________________________________________________
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic