root / pykota / trunk / FAQ @ 2066

Revision 2054, 9.2 kB (checked in by jalet, 19 years ago)

Big database structure changes. Upgrade script is now included as well as
the new LDAP schema.
Introduction of the -o | --overcharge command line option to edpykota.
The output of repykota is more complete, but doesn't fit in 80 columns anymore.
Introduction of the new 'maxdenybanners' directive.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
1PyKota's FAQ :
3  # $Id$
5  * How can I diagnose the problem when something goes wrong ?
7    Put "LogLevel debug2" in cupsd.conf (usually in /etc/cups/).
8    Then put "logger: stderr", "debug: yes" and
9    "crashrecipient: youremailaddress" in /etc/pykota/pykota.conf.
10    Finally restart CUPS.
11    CUPS' error_log file will now contain many informations which
12    will help diagnose your problem. You will receive failure
13    notices by email, and you can send all this to us for
14    diagnostic. Please send complete files and not some sparse
15    parts of them. Also please send the log files as gzipped
16    (or bzip2-ed) attachments.
18    For LPRng, better to put "logger: system" in pykota.conf so
19    that all debug messages for PyKota will go to syslog's
20    destination for the LPR syslog facility.
22    IMPORTANT : please don't send log files to the mailing list
23    unless they are very small of unless someone asked for this.
25  * How can I limit my users to N pages per day (month/year) ?
27    The easiest way to do this is to create their print quota
28    entries using something like :
30      $ edpykota --add -S 30 -H 30 user1 user2 user3 ...
32      this would limit users to 30 pages on each printer.
34    Then in a crontab launched every day (month/year) you could   
35    do :
37      00 23 * * * /usr/bin/edpykota --reset
39      this would reset every user's page counter to 0 on each printer
40      at 23h00 every day.
42  * How can I tell PyKota to allow some users to print without limitation ?
44    Just create these users' print quota entries this way :
46      $ edpykota --add --limitby quota --noquota user1 user2 ...
48      This would effectively put these users in "no limit" mode on
49      each printer. If you want to do this only on some printers, just
50      use the --printer command line argument as well. See
51      edpykota's documentation for details.
53    Another way to do this when you limit your users by balance, is 
54    to set an overcharging factor of zero for every user you want to
55    print with no limitation :
57      $ edpykota --add --limitby balance --overcharge 0 user1 user2 ...
59  * Nothing prints when my printer is in PowerSave mode, what
60    can I do ?
62    This happens if you use hardware accounting with SNMP, because
63    some (all ?) printers don't say they are idle when they are
64    in PowerSave mode.
65    For now your best bet is to disable PowerSave mode in
66    your printer. In the future, PyKota will modified to
67    handle such problems.
69  * I've installed all correctly, I've created users
70    and printers, but when printing nothing works.
71    What is the problem ?
72    The most probable cause for this is that you didn't
73    adapt /etc/pykota/pykota.conf to your own configuration.
74    The file installed by default is just an example, you
75    have to modify it. See the rest of this document to
76    learn how to really diagnose what went wrong.
78  * I've downloaded PyKota from CVS using a Windows based CVS 
79    tool, and now nothing works at all. What happened ?
81    Some (all?) Windows based CVS tools translate *nix line endings
82    (character Line Feed, ASCII code 10) into Windows line endings
83    (character Carriage Return, ASCII code 13, followed with
84    character Line Feed). This breaks the software which has
85    to run under *nix compatible systems. Set correct options
86    in your CVS software so that it doesn't do any translation,
87    or use an Unix-like version of CVS, download again and
88    reinstall the software. It should work.
90  * Why doesn't CUPS under Debian Woody automatically
91    detects PyKota managed devices ?
93    The CUPS version in Debian Woody is 1.1.14 which is a bit
94    too old. To use PyKota with this version, just install
95    your printers as usual in CUPS web interface, and ensure
96    they work fine, then save your changes, and modify
97    /etc/cups/printers.conf manually as explained in
98    PyKota's toplevel README file. Finally restart CUPS,
99    and your printers should be managed by PyKota.
100    Another solution is to install a newer CUPS release.
102  * Is print accounting ever exact ?
104    No. Print accounting is **never** exact, because it depends
105    on external factors like the presence of paper in the printer,
106    the quantity of remaining ink in the print cartridge, paper
107    jams, etc... All these things are very difficult to account
108    for correctly, and no print accounting package deals with
109    these artefacts correctly in all situations.
110    We are however confident that PyKota is one of the more
111    exact print accounting software, because by default it
112    asks the printers for how many pages they have really printed.
114  * Can PyKota account for ink usage ? 
116    No. Actually PyKota doesn't account for ink usage, but this
117    may come in a future release. PyKota only accounts for pages
118    printed and/or money spent.  If ink accounting is a necessity
119    for you, PrintBill is recommended instead of PyKota. PrintBill
120    allows you to bill differently per color, and to bill depending
121    on the percent of the ink covered part of the pages.
123  * What is a 'dumb printer' ?
125    In PyKota, the term 'dumb printer' defines a printer which doesn't
126    natively understand PostScript, PCL5 (up to), PCLXL (aka PCL6), PDF
127    or ESC/P2 and doesn't have an internal page counter, and for which
128    you don't know how to compute a job's size in number of pages by
129    analyzing its content.
130    Any printer which is not a 'dumb printer' according to the above
131    definition is supported by PyKota.
133  * How can I make PyKota work with my non-postscript printer under
134    CUPS ? 
136    From version 1.16alpha7, PyKota includes a CUPS backend which
137    allows you to use any type of printer and any driver, provided
138    your printer is not a 'dumb printer' (see above).
140  * How can I use my 'dumb printer' with CUPS and PyKota. 
142    You have to use a software accounter directive, and
143    create a script which understands your printer's
144    Page Description Language.
146    PyKota natively understands DSC compliant PostScript,
147    PCL3, PCL4, PCL5, PCLXL (aka PCL6), PDF and ESC/P2. Support
148    for Binary PostScript is done through GhostScript. More PDLs
149    will be added in the future. 
150    However you can always plug your own PDL analyzer in PyKota.
152  * I've got a great number of users. How can I automatically
153    set an initial print quota for them on first print ?
155    You have to define an external policy for unknown users,
156    to automatically add them to the Print Quota database.
157    The sample configuration file contains examples to do this.
159  * What does the --prototype command line option to edpykota do ?
161    This option currently (v1.20) only copies the soft and hard
162    page limits from a template user to other users. This option
163    needs to be updated to new PyKota functionnalities, because it
164    currently lacks.
166  * How can I share print quota between some printers only (not all) ?   
168    To do this you have to put the printers into a printers group, and
169    set quota on the printer group, instead of (or in addition to)
170    the printers themselves.
172  * What is a printer group ?
174     A printer group is exactly like a normal printer, but is
175     unknown by the printing system. You can use printer groups
176     to share print quota between printers.
178  * How can I create a printer group ?   
180    Just use pkprinters, like for normal printers, then create
181    quota entries for users or users groups on it using the
182    edpykota command
184  * How can I put a printer into a printer group ?
186    Use the pkprinters command to do this.
188      $ pkprinters --help
190    Will print the complete help and tell you how to do.
192  * How quota checking and update is done with printer groups ?   
194    Print accounting and quota checking is done for a printer and
195    all the printers groups it belongs to, recursively.
196    If quota is reached on ANY of these printers for the current user,
197    printing is denied.
199  * Is this feature robust ?
201    It should be. However, beware of integrity problems. LDAP has no
202    sense of database integrity, and PostgreSQL constraints have not
203    yet been fully implemented. The code actually *tries* to forbid
204    circular printers groups, but if you create printer groups with
205    another tool (e.g. psql or gq), then you are mostly on you
206    own to not create infinite loops.
208  * How is computed the job's price ? 
210    A job's price is computed with this formula :
212      SUM((NbPages * PricePerPage) + PricePerJob)
214    For current printer and all the printers groups it is
215    a member of, if any, recursively.
216    This may be difficult to grasp, but offers unprecedented
217    flexibility.
219  * My question isn't answered there, can you help ? 
221    Sure. Ask your question to the mailing list. If this is a
222    frequently asked question, or if your problem is on the contrary
223    very specific, it will probably be added to this document.
225    You can also ask questions by IRC :
227        /server
228        /join #pykota
230Send any new questions to Jerome Alet - <>
Note: See TracBrowser for help on using the browser.