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)* Once '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 'myprinter.example.com' printer. 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/pykota.conf' and '~pykota/pykotadmin.conf' configuration files for PyKota. From pgoetz@math.utexas.edu Wed May 14 20:38:38 +0200 2008 From: pgoetz@math.utexas.edu Date: Wed, 14 May 2008 20:38:38 +0200 Subject: Ubuntu's cups requires a hard link Message-ID: <20080514203838+0200@www.pykota.com> 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. From jerome Tue Jun 17 13:42:26 +0200 2008 From: jerome Date: Tue, 17 Jun 2008 13:42:26 +0200 Subject: Ubuntu's cups requires a hard link Message-ID: <20080617134226+0200@www.pykota.com> In-Reply-To: <20080514203838+0200@www.pykota.com> 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). From matthew.berta@uchsc.edu Fri Aug 8 23:36:32 +0200 2008 From: matthew.berta@uchsc.edu Date: Fri, 08 Aug 2008 23:36:32 +0200 Subject: prepending cupspykota breaks printing Message-ID: <20080808233632+0200@www.pykota.com> 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. :( From jerome Thu Aug 21 13:30:30 +0200 2008 From: jerome Date: Thu, 21 Aug 2008 13:30:30 +0200 Subject: logs Message-ID: <20080821133030+0200@www.pykota.com> 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). From sml@uni.de Mon Feb 7 17:48:21 +0100 2011 From: sml@uni.de Date: Mon, 07 Feb 2011 17:48:21 +0100 Subject: CUPS backend permissions on CentOS 5 Message-ID: <20110207174821+0100@www.pykota.com> In-Reply-To: <20080514203838+0200@www.pykota.com> 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.