To do accounting and quota checking, PyKota needs to capture each print job as it passes through the printing system. This is done through the
cupspykota backend wrapper for CUPS.
cupspykota has to be installed into CUPS' backends directory, usually something like
/usr/lib/cups/backend/ , and then CUPS has to be restarted for
cupspykota to be automatically detected (autodetection requires CUPS v1.1.15 or higher, but PyKota also works with CUPS v1.1.14)
cupspykota has been detected, CUPS' web management interface allows you to add PyKota managed print queues. the DeviceURI for these print queues begins with
cupspykota:// or only
cupspykota: (both work), and then you can put any normal DeviceURI after this prefix. For example
cupspykota://socket://myprinter.example.com:9100 is the DeviceURI for a PyKota managed print queue and the
cupspykota backend wrapper will capture all print jobs enroute to the
Once a job arrives,
cupspykota will parse it to precompute the number of pages in it, and extract some informations from its environment and command line arguments (e.g. user's name, printer's name, etc...). Then,
the user print quota informations will be extracted from the database. If the user has not reached his quota or spent all of his credits, the job will be printed, and the user's print account updated. Otherwise, the job will be rejected.
This is just a very short summary of what really happens. In reality
cupspykota is a complex piece of software and is very versatile. You can control most of what it does through directives put into the
~pykota/pykotadmin.conf configuration files for PyKota.
Ubuntu's cups requires a hard link --firstname.lastname@example.org, Wed, 14 May 2008 20:38:38 +0200 reply
http://packages.debian.org/changelogs/pool/main/c/cupsys/cupsys_1.2.7-4/changelog#versionversion1.2.4-2 describes a change that requires you to use hard links in the /usr/lib/cups/backend directory.
Symlinks cause cups to crash and report permission denied in the logs when you enable cupspykota.
Ubuntu's cups requires a hard link --jerome, Tue, 17 Jun 2008 13:42:26 +0200 reply
Isn't it because you didn't change the permissions on /usr/share/pykota/cupspykota before creating the link (this is probably not as clear as it could in PyKota's documentation).
prepending cupspykota breaks printing --email@example.com, Fri, 08 Aug 2008 23:36:32 +0200 reply
Whenever I prepend cupspykota:// or cupspykota: to my URI (i.e. cupspykota://hp:/net/HP_Color_LaserJet_4700?ip=140.226.xx.xx) I am unable to print. I receive an error about too many failed attempts when I try, and then the printer disappears from the printer setup utility. pkprinters --list will shows the printer as being routed through pykota, but this doesn't do me any good if I can't print. :(
logs --jerome, Thu, 21 Aug 2008 13:30:30 +0200 reply
Could you check http://otrs.librelogiciel.com/otrs/public.pl?ID=2 and send the relevant logs to me ? I don't know if this hp backend behaves differently than others or if the problem is elsewhere (I don't use this backend myself).
CUPS backend permissions on CentOS? 5 --firstname.lastname@example.org, Mon, 07 Feb 2011 17:48:21 +0100 reply
I've got the same problem as pgoetz. The system is CentOS? 5.6. What helped me was changing execute permission bits not on cupspykota, but on CUPS socket backend. My printers are connected to print server over 9100 socket. So, now I have /usr/lib/cups/backend/socket set to 700 mode and cupspykota symlinked from /usr/share/pykota and that works.