root / pykota / trunk / NEWS @ 1488

Revision 1488, 34.2 kB (checked in by jalet, 20 years ago)

Now pykotme doesn't spawn a new process anymore to compute job's size, but
use the PDLAnalyzer class directly

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1# $Id$
2
3PyKota - Print Quota for CUPS
4
5(c) 2003-2004 Jerome Alet <alet@librelogiciel.com>
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program; if not, write to the Free Software
18Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
19
20============================================================
21
22PyKota NEWS :
23
24    - 1.19alpha10 :
25   
26        - pykotme now uses generic PDL Analyzer directly instead
27          of spawning a new process.
28         
29        - Improvements to generic PDL Analyzer.
30       
31        - 25% Speedup in PCL parser. Getting more of the Python version
32          will probably be difficult, since the completely table driven
33          parser I wrote is slower than the original algorithm. Then,
34          the original algorithm is still used for now.
35          Probable that more speed could be achieved using mmap, at the
36          expense of severe memory consumption.
37       
38        - configuration simplifications : the "accounter" directive's
39          'hardware' arguments now accepts what was in the "requester"
40          directive as it's content. The "requester" directive is not
41          supported anymore. See sample configuration file for details.
42       
43    - 1.19alpha9 :
44       
45        - pkpgcounter is now just a wrapper around the PDLAnalyzer class
46       
47        - pykotaOptions LDAP attribute now accepts non-ascii characters
48          too.
49         
50        - First try at cupspykota main loop rewrite
51       
52    - 1.19alpha8 :
53   
54        - 'querying' accounting method is now called 'hardware'
55       
56        - 'external' accounting method is now called 'software'
57       
58        - 'stupid' accounting method doesn't exist anymore
59       
60        - 'snmp' requester doesn't exist anymore
61       
62        - code simplifications in external requester
63       
64    - 1.19alpha7 :
65     
66        - Database schema change (both LDAP and PostgreSQL) to
67          allow storage of the job-originating-hostname attribute.
68          An SQL upgrade script is present. The code is not yet
69          capable of setting/retrieving this attribute. Support
70          for this functionnality will be added in the future.
71         
72    - 1.19alpha6 :
73   
74        - problems connecting to SMTP servers are now catched.
75       
76        - pykotme now uses pkpgcounter to compute the size of the
77          job. This modification adds PCL5 and soon PCLXL (PCL6)
78          support. You can now get quotes for PCL in addition to
79          PostScript.
80         
81        - pkpgcounter now includes first try at PCLXL parser. 
82          It is currently disabled until it's finished.
83         
84    - 1.19alpha5 :
85   
86        - cupspykota polling loop fix for MacOSX (at least)
87       
88        - logging subsystem now logs PID too, to ease diagnosing
89          problems under heavy load.
90         
91        - pkpgcounter enhancements.
92       
93        - pkprinters --skipexisting now tells pkprinters to not
94          modify existing printers when --add is used.
95          pkprinters logs a warning message whenever --add is
96          used and a printer already exists.
97         
98        - LDAP schema now allows accented chars in pykotaFileName
99          and pykotaTitle attributes.
100       
101    - 1.19alpha4 :
102   
103        - a bad copy&paste prevented pkpgcounter to work at all, this
104          is now fixed.
105         
106        - improved PCL support in pkpgcounter, with the use of
107          HP PCL/PJL Reference Set
108          PCL5 Printer Language Technical Quick Reference Guide
109       
110        - pkpgcounter now uses mmap to speed things up : duration
111          is halved with the sample 87 pages PCL document I use for
112          testing.
113         
114    - 1.19alpha3 :
115   
116        - pkprinters now accepts the --list command line argument
117          to list informations about printers.
118         
119    - 1.19alpha2 :
120   
121        - pkpgcounter is now included as a smart external
122          accounter which can handle both PostScript and PCL.
123         
124    - 1.19alpha1 :
125   
126        - PYKOTALIMITBY environment variable is now exported too.
127       
128        - Inclusion of Michele Baldessari's work on autotools.
129       
130    - 1.18 :
131   
132        - Improved documentation
133       
134    - 1.18beta2 :
135     
136        - Fix for raw jobs with cupspykota
137       
138    - 1.18beta :
139   
140        - Small fix for new waitprinter.sh script
141       
142        - Better tracebacks on error conditions
143       
144        - Improved translations
145       
146        - Improved documentation
147       
148    - 1.18alpha15 :
149
150        - waitprinter.sh replaced by a new and possibly faster
151          and more powerful one.
152   
153        - Names can now begin with a digit.
154       
155        - Stability improvement for quotas set on printers groups.
156       
157    - 1.18alpha14 :
158   
159        - Catches more (all ?) problems with SMTP servers instead
160          of breaking.
161         
162        - Italian translation added.
163       
164    - 1.18alpha13 :
165   
166        - Pre and Post hooks are now available in the pykota
167          filter as well.
168         
169        - The pykota filter doesn't check last user's quota
170          anymore when delayed hardware accounting is used :
171          this will be done anyway the next time the last
172          user will print again. This saves some database
173          queries which are unneeded.
174       
175    - 1.18alpha12 :
176   
177        - Pre and Post hooks to external commands with many
178          many environment variables available are useable
179          from the cupspykota backend.
180          See sample configuration file for details and help.
181         
182    - 1.18alpha11 :
183   
184        - Hopefully final fix wrt groups (users and printers)
185       
186    - 1.18alpha10 :
187   
188        - Fixed nested printer groups accounting.
189       
190        - Fixed user groups + printer groups problem.
191       
192    - 1.18alpha9 :
193   
194        - Fix for LDAP problem when job price was 0.
195       
196        - Fix for empty user groups with LDAP.
197       
198        - Preliminary version of the snmpprinterstatus command added.
199       
200    - 1.18alpha8 :
201   
202        - Don't retrieve data when not needed.
203          This avoids many database queries.
204       
205    - 1.18alpha7 :
206   
207        - New experimental ldapcache directive to improve
208          LDAP caching.
209         
210    - 1.18alpha6 :
211       
212        - New configuration directive added : maildomain
213          to specify the domain to send mail to when user
214          email address is not set in PyKota database.
215         
216        - More complete email message headers. 
217         
218    - 1.18alpha5 :
219   
220        - Debian packaging specific files, contributed by
221          Peter Hawkins are now included in the project's tree.
222         
223        - Preliminary work on future low-level LDAP caching to speed
224          up modifications (at least).
225         
226    - 1.18alpha4 :
227   
228        - Applied some of the modifications suggested by
229          Peter Hawkins, for better Debian integration.
230          Most notably cupspykota, pykota, and the shell
231          scripts are now installed into /usr/share/pykota
232          instead of into /usr/bin
233          BEWARE : double check that your symbolic link
234          to cupspykota is correct, and that your pykota.conf
235          file use correct path for the shell scripts like
236          waitprinter.sh and al.
237         
238        - pkhint command added, to help in configuring correct
239          accounting method for PyKota.
240         
241    - 1.18alpha3 :
242   
243        - Fixed a rare bug in cupspykota backend which gave
244          incorrect "CUPS backend died abnormally" messages.
245       
246    - 1.18alpha2 :
247   
248        - Added the pkprinters command line tool to manage printers
249          exclusively.
250       
251    - 1.18alpha1 :
252   
253        - Preliminary work on Relationnal Database Independance.
254       
255        - Sample report made from OpenOffice.org added as PDF and SXC.
256       
257    - 1.17 :
258   
259        - Finalized release.
260       
261    - 1.17alpha2 :
262   
263        - Fix stupid software accounting bug in the CUPS backend.
264       
265    - 1.17alpha1 :
266   
267        - User/Group deletion code in edpykota rewritten.
268       
269    - 1.16 :
270   
271        - Preliminary documentation on how to use OpenOffice.org
272          to create personnalized reports for PyKota + PostgreSQL.
273         
274        - Spanish installation guide for CUPS+PyKota+PostgreSQL
275          added to the documentation. Doesn't yet document v1.16
276          though.
277       
278        - Portuguese Portuguese translation replaces Brasilian
279          Portuguese Translation. Brasilian portuguese
280          translation is still available under the 'br' locale.
281       
282    - 1.16beta3 :
283   
284        - Swedish translation added.
285       
286        - Small fix in documentation.
287       
288    - 1.16beta2 :
289   
290        - Small fix for job cancelling code while job already
291          printing in CUPS backend.
292         
293        - Big fix wrt printing policies for unknown users. 
294       
295    - 1.16beta1 :
296   
297        - Manpages upgraded.
298       
299    - 1.16alpha26 :
300   
301        - Job price is now computed like this :
302       
303          SUM((NbPages * PricePerPage) + PricePerJob)
304         
305          For current printer and all the printers groups it is
306          a member of, if any.
307         
308          This may be difficult to grasp, but offers unprecedented
309          flexibility.
310         
311    - 1.16alpha25 :
312   
313        - Email address can be set at user creation time,
314          using the following syntax :
315         
316            $ edpykota --add username/email@yourdomain.com
317       
318    - 1.16alpha24 :
319   
320        - CGI script now can show the printing history.
321       
322        - Bug wrt number of copies should be fixed.
323       
324        - Major code refactoring => It is now possible to
325          automatically add printers on first print.
326       
327    - 1.16alpha23 :
328   
329        - Fixed potential accuracy problem if a user printed on
330          several printers at the very same time.
331       
332    - 1.16alpha22 :
333   
334        - edpykota now allows adding printers to printer groups
335       
336    - 1.16alpha21 :
337   
338        - Allows the dot in user and printer names.
339       
340        - Printer groups are now cached too.
341       
342    - 1.16alpha20 :
343   
344        - Fixed several small bugs with the help of PyChecker.
345       
346    - 1.16alpha19 :
347     
348        - Fixed a bug in PostgreSQL backend's code.
349       
350    - 1.16alpha18 :
351   
352        - Initial code for printer groups support. Printer groups have
353          to be added with external tools like psql or gq for example.
354          Printer groups seems to work fine with users. Untested with user
355          groups for now.
356
357        - Several minor visual problems fixed in reports.
358       
359        - Fixed a bug in LDAP date handling.
360       
361        - Fix for LDAP problem with some combination of OpenLDAP + Python-LDAP
362          + some particular settings.
363         
364        - mailandpopup.sh shell script added. See sample configuration file
365          for details.
366       
367        - Several environment variables are now exported when executing
368          external commands (accounters, requesters, mailers) :
369           
370            PYKOTAUSERNAME => user who is printing
371            PYKOTAPRINTERNAME => printer on which the job is being sent
372            PYKOTATITLE => Job's title
373            PYKOTAFILENAME => Job's filename
374            PYKOTACOPIES => number of copies asked
375            PYKOTAOPTIONS => print command options (-o with CUPS)
376         
377    - 1.16alpha17 :
378   
379        - Added portugues translation.
380       
381        - Major code refactoring in accounters.
382       
383    - 1.16alpha16 :
384   
385        - Code refactoring, and addition of a real HTML reporter, to
386          have nice looking and useful web based reports (in the future).
387       
388        - Added utolower configuration option to convert all usernames
389          to lowercase during printing.
390         
391    - 1.15alpha15 :
392   
393        - Now includes the papwaitprinter.sh shell script to wait for
394          AppleTalk enabled printers.
395         
396    - 1.16alpha14 :
397   
398        - Now printing on a printer not defined in the Quota Storage,
399          results in the job being cancelled or stopped, depending
400          on the printing system.
401         
402    - 1.16alpha13 :
403   
404        - Small bugfix wrt Python v2.1
405       
406        - If username is an empty string, user root is assumed.
407       
408        - 'postgresql' is not recognized anymore as a storage backend,
409          you have to use 'pgstorage' instead. 'postgresql' used to
410          be supported for compatibility with very old PyKota versions,
411          this is not the case anymore.
412         
413    - 1.16alpha12 :
414   
415        - Job price added to job history, to keep accounting correct
416          if a printer price per page or per job is modified and the
417          history is not reset : the history would have given a false
418          amount of money charged before the printer's prices were
419          modified, this addition solves the problem.
420         
421    - 1.16alpha11 :
422   
423        - Some preliminary modifications to the database structure for
424          PostgreSQL and OpenLDAP. A script to upgrade a PostgreSQL
425          database is now provided. LDAP attributes now support
426          eq, pres and sub indexes.
427         
428        - Job history now contains additional informations : 
429          number of copies, filename, title and print options.
430         
431    - 1.16alpha10 :
432       
433        - Some modifications done to external policy handling.
434          See sample configuration file for details.
435   
436        - Spanish translation added.
437       
438    - 1.16alpha9 :
439   
440        - mailto can be set to external(...) to warn users above
441          quota with any command of your choice (e.g. linpopup).
442          Several parameters are available, see sample configuration
443          file for details.
444         
445    - 1.16alpha8 :
446   
447        - Now cupspykota transmits SIGTERMS to the original 
448          backend when the user deletes a job being processed.
449         
450        - The documentation is now licensed under the terms of the
451          GNU GPL too.
452         
453    - 1.16alpha7 :
454   
455        - The CUPS backend is now fully functionnal (it seems).
456       
457        - From now on, the use of the pykota filter with CUPS
458          is deprecated. The pykota filter still has to be
459          used with LPRng though.
460       
461    - 1.16alpha6 :
462   
463        - Bug fixed : when edpykota was used to add a printer
464          with no user or group name, a bad user/group name "*" was
465          added to the database.
466         
467    - 1.16alpha5 :
468   
469        - New CUPS backend supports device enumeration !
470          This means that NO manual CUPS configuration has to
471          be done. All can now be done from CUPS web interface.
472       
473    - 1.16alpha4 :
474   
475        - New CUPS backend added.
476       
477    - 1.16alpha3 :
478       
479        - Minimal FAQ document added.
480       
481    - 1.16alpha2 :
482   
483        - CGI script now partially supports browser's language preference
484       
485    - 1.16alpha1 :
486   
487        - Ensures that the LDAP connection is really closed at end.
488       
489        - More complete error messages in case of LDAP operation failure.
490       
491    - 1.15 :
492     
493        - Documentation improved.
494       
495    - 1.15beta :
496   
497        - Command line tools now accept multiple printer
498          names or wildcards, separated with commas.
499         
500    - 1.15alpha9 :
501   
502        - External policy can be used to auto-add unknown users
503          and any other interesting things you may want to do.
504          WARNING : You can't auto-add printers for now.
505          They have to be created manually before.
506          Look at sample configuration file for examples.
507         
508    - 1.15alpha8 :
509   
510        - Job history can be disabled if needed.
511          This feature may be useful for people who use the LDAP
512          backend and don't want their LDAP tree to grow out of
513          control.
514       
515    - 1.15alpha7 :
516   
517        - More work done on caching wrt groups.
518       
519    - 1.15alpha6 :
520   
521        - Performance bottleneck with LDAP solved.
522       
523    - 1.15alpha5 :
524   
525        - Caching mechanism for all database queries.
526
527    - 1.15alpha4 :
528   
529        - Problem with Python 2.3 fixed. Needs some definitive
530          modification.
531         
532    - 1.15alpha3 :
533   
534        - CGI script now tries to restrict view when the
535          REMOTE_USER environment variable is set. This allows
536          people to protect its use with .htaccess files.
537          When unprotected, or if REMOTE_USER is 'root', then
538          unrestricted access is granted.
539          NB : REMOTE_USER is automatically set by the web server
540          (e.g. Apache) when a page with restricted access is viewed.
541         
542    - 1.15alpha2 :
543   
544        - Better detection of LPRng.
545       
546        - Outputs a warning if printing system is unknown.
547       
548    - 1.15alpha1 :
549   
550        - Bug fix in SQL code.
551       
552    - 1.14 :
553   
554        - The PostgreSQL database connection is now always closed before
555          exit. The LDAP database connection too, but it didn't suffer
556          from the problem anyway, AFAICT.
557       
558    - 1.14beta2 :
559   
560        - An LDAP-specific configuration field was introduced, usermail.
561          Use it to specify which LDAP attribute contains a valid email
562          address for the user. See sample configuration file for
563          details.
564       
565    - 1.14beta :
566   
567        - Two new LDAP-specific configuration fields were introduced,
568          newuser and newgroup. Use them to specify if you want to add
569          quota information to existing entries or elsewhere.
570          See sample configuration file for details.
571         
572    - 1.14alpha9 :
573   
574        - Documentation improved.
575       
576        - pykotme now also prints the user's account balance value
577          if the user is registered in the Quota Storage and his
578          limiting factor is "balance".
579         
580    - 1.14alpha8 :
581   
582        - bin/waitprinter.sh is now included to wait for
583          SNMP enabled printers to be idle again before
584          asking for their internal page counter.
585          See sample configuration file for details.
586         
587    - 1.14alpha7 :
588   
589        - edpykota now doesn't check if the user/group is above
590          quota. The check is only done at print time. This
591          prevents the sending of email messages when creating
592          user quotas if quota is already reached at creation
593          time.
594         
595    - 1.14alpha6 :
596   
597        - Configuration file split and moved to /etc/pykota/pykota.conf
598          and /etc/pykota/pykotadmin.conf to prevent simple users to
599          have Read/Write access to the Quota Database.
600          Don't forget to :
601         
602                $ chmod 640 /etc/pykota/pykotadmin.conf
603               
604        - storageuser and storageuserpw configuration fields reintroduced
605          for the same reason.
606         
607        - Code cleaning for future implementation of email addresses
608          support in the PostgreSQL and LDAP backends.
609         
610    - 1.14alpha5 :
611       
612        - Big bug fixed when changing the prices for a printer
613       
614    - 1.14alpha4 :
615   
616        - When adding an user, the user itself and its account balance
617          are now added in the same LDAP entry. Before they were added
618          as two different LDAP entries.
619         
620    - 1.14alpha3 :
621   
622        - Email field added to PostgreSQL database. An upgrade script
623          is included in initscripts/postgresql.
624       
625    - 1.14alpha2 :
626   
627        - Typo fixed when using the --prototype option to edpykota
628       
629    - 1.14alpha1 :
630   
631        - Poor man's treshold included : users with a low account
632          balance (below 1.0 by default, configurable) are sent
633          a warning message.
634         
635        - All warning messages to users are now configurable. 
636          NB : Warning messages to the administrator are not.
637       
638    - 1.13 :
639   
640        - Some small fixes wrt group handling.
641       
642        - The whole module code was passed through PyChecker and
643          several small code inconsistencies were fixed,
644          as well as a bug in the groups code.
645         
646    - 1.13alpha1 :
647   
648        - Bug fix wrt LDAP.
649       
650    - 1.12 :
651   
652        - More complete test added in edpykota.
653       
654    - 1.12alpha2 :
655   
656        - The previous bug fix was incomplete. This is corrected.
657       
658    - 1.12alpha1 :
659   
660        - Small bug fix.
661       
662    - 1.11 :
663   
664        - Now includes the pykotme command line tool, to produce
665          printing quotes for users.
666         
667    - 1.10 :
668   
669        - Bug fixed wrt quota reports when print limiting is by
670          account balance.
671         
672    - 1.09 :
673   
674        - Translations finalized.
675       
676        - Manpages updated.
677       
678        - Installation documentation improved wrt LDAP support.
679       
680    - 1.09beta2 :
681   
682        - The CGI script for quota reports works again, and
683          is much more powerful.
684       
685    - 1.09beta :
686   
687        - edpykota finalized
688       
689    - 1.09alpha2 :
690   
691        - LDAP schema modified a bit. Please upgrade.
692       
693        - LDAP backend works !
694       
695        - repykota and warnpykota allow the root user to pass
696          users or groups names on the command line. Users
697          and groups names may contain wildcards.
698         
699        - repykota and warnpykota only reports or warns the
700          current user when launched by non-root users.
701         
702        - Minor bug fixes. 
703   
704    - 1.09alpha1 :
705   
706        - More work on LDAP storage backend. Many options
707          were added to /etc/pykota.conf to give some
708          hints to the LDAP storage backend.
709         
710        - Severe database access optimizations were done by
711          rewriting most of the Quota Storage backends drivers.
712     
713    - 1.08 :
714   
715        - Major bug fix wrt LPRng support for remote jobs.
716       
717        - Major bug fix wrt increase/decrease account balances.
718       
719    - 1.08alpha8 :
720   
721        - Code refactoring.
722       
723        - A single user/password pair is used to connect
724          to the database backend. The storageuser configuration
725          field, and its associated passwords storageuserpw, are
726          not used anymore.
727         
728        - You can now set PyKota in debug mode, see sample configuration 
729          file for details.
730          WARNING : only Quota Storage backend queries are logged in
731          debug mode, for now.
732       
733    - 1.08alpha7 :
734   
735        - Very latest LDAP schema.
736       
737        - Code enhancement wrt easy pluggability of PyKota attributes
738          and object classes into an existing LDAP directory.
739       
740    - 1.08alpha6 :
741   
742        - Minor bug corrections
743       
744        - More work on LDAP : new schema
745       
746    - 1.08alpha5 :
747   
748        - More good work on LDAP storage.
749          repykota now works reasonably well with the sample LDAP directory.
750       
751    - 1.08alpha4 :
752   
753        - LDAP schema included.
754          THIS IS JUST FOR PEOPLE TO DISCUSS ABOUT THIS.
755          LDAP SUPPORT DOESN'T WORK YET, AND THE SCHEMA
756          MAY CHANGE IN THE FUTURE. PLEASE TELL US
757          WHAT YOU THINK ABOUT THIS SCHEMA ON THE
758          MAILING LIST.
759         
760    - 1.08alpha3 :
761   
762        - External accounting methods were partly rewritten :
763         
764          - No more "broken pipe" should happen.
765         
766          - They now take care of the number of copies
767            This may be unneeded though, if the postscript
768            file already does this, because this would
769            overcharge users (number of copies counted
770            two times). NEEDS MORE TESTING.
771           
772          - The sample configuration file now contains 
773            an external accounting method example which should
774            work with all DSC compliant Postscript files.
775           
776        - Some small bugs were fixed.   
777       
778    - 1.08alpha2 :
779   
780        - Now works with net-snmp v5.0 and above.
781          It already worked, but the sample configuration
782          file didn't contain appropriate values...
783       
784    - 1.07 : Release of the Shame !
785   
786        - The external accounting methods driver was left out of
787          the CVS tree. Nobody could use it since it wasn't included !
788         
789    - 1.06 :
790   
791        - Severe bug fixed : if you had a printer in
792          power saving state which couldn't answer immediately,
793          a bug was triggered.
794          It was caused by a bad copy/paste which
795          forgot to import a Python module at run time.
796         
797    - 1.05 :
798   
799        - External accounters are finally available !
800          This means that you can plug any page accounting
801          method you like by setting the appropriate
802          'accounter' field in /etc/pykota.conf
803          See the sample conf/pykota.conf.sample to
804          learn how to do.
805         
806          NB : Both 'external' and 'stupid' accounting methods
807               account a job size just before *this* job is
808               sent to the printer.
809               The original 'querying' method accounts a job
810               size just before *the next* job is sent to
811               the printer.
812       
813    - 1.05alpha3 :
814   
815        - A 'stupid' and unreliable accounting method was
816          implemented to serve as an example on how to
817          do this sort of things. This method only counts
818          the 'showpage' statements in the input data.
819          See sample configuration file for details.
820          Pluggable accounting methods work, but I advise
821          you TO NOT USE THIS ONE WHICH IS JUST AN EXAMPLE.
822          It is not reliable enough to be used.
823          Use the 'querying' accounting method instead.
824         
825    - 1.05alpha2 :
826   
827        - Pluggable accounting methods.
828       
829        - Better error handling.
830       
831    - 1.05alpha1 :
832   
833        - SECURITY file added to help improve PyKota's security.
834       
835        - Extracting the printer's internal page counter is now
836          tried several times, waiting several seconds between
837          two tries. This lets the time to warm up for some printers
838          which don't answer when they are sleeping (my Apple
839          LaserWriter 16/600 PS is in this case, maybe others too)
840         
841        - Small display bug fixed in repykota
842         
843    - 1.04 :
844   
845        - Default print policy for users/groups unknown from
846          the print quota system is now DENY instead of ALLOW,
847          since ALLOW can generate inaccurate results
848          (incorrect job sizes charged to the wrong persons)
849         
850        - LPRng support works !
851       
852        - A bug was introduced some time ago wrt printers' default
853          policy for unknown users. It is now corrected.
854       
855        - repykota now displays prices per job and per page for each
856          printer, if they are defined.
857         
858        - Minor display bug fixed in repykota.
859       
860        - Problem when running repykota with an empty database was fixed.
861       
862    - 1.03 :
863   
864        - Upgrade script included for earlier versions.
865          Please look inside the initscripts subdirectory.
866          THE DATABASE SCHEMA HAS CHANGED, PLEASE UPGRADE.
867         
868        - repykota now reports account balances too.
869       
870        - PyKota now has a nice logo, see the logos
871          subdirectory.
872       
873        - Manual pages were finally updated.
874       
875        - Group quotas seem to work now !
876       
877        - The new database schema allows to keep an history of all
878          jobs as well as charge users per page and/or per job,
879          and track users' account balance.
880         
881        - edpykota now accepts much more command line options to 
882          use the new functionnalities. See edpykota --help for
883          details.
884         
885        - The installation script now allows to install the sample
886          configuration file during first installation.
887         
888        - More group quota code works, but still not finished. 
889       
890        - The CGI script displays a link to PyKota's website.
891       
892        - The job history is now kept, this will allow per-period
893          reports in the future.
894         
895        - After having modified the quota for an user with edpykota,
896          a quota check is done to eventually warn the user/admin about
897          a quota which is too low to print.
898         
899        - A workaround is provided for HP Printers : their internal
900          page counter is only saved to NVRAM in a 10 increment, so
901          if you switch them off and then on, the reported page counter
902          may be lower than the real number of pages printed.
903          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
904          We unconditionnally set the last job's page count to
905          abs(int((10 - abs(lastcounter(snmp) - lastcounter(storage)) / 2))
906          in this case.
907          For a more accurate accounting, never switch your HP printers
908          off.
909         
910        - A fix is provided for printers which only have a volatile 
911          page counter (reset to 0 every time you switch the printer on)
912          This should allow PyKota to work reasonably fine with HP Laserjet
913          4L/5L/6L, not perfect, but better than nothing.
914          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
915          For a more accurate accounting, never switch your HP printers
916          off. This is untested, please report any problem.
917         
918        - A bug was fixed when edpykota --add was used with users who already
919          had a quota on the specified printer.
920         
921        - A small display bug in repykota was introduced in preliminary
922          1.03 versions, and fixed later on.
923         
924        - Some minor bugs which happened in rare situations were fixed.
925       
926        - Support for AppleTalk printers was added, see sample configuration
927          file for details.
928         
929        - Users and group printing can now be controlled (limited) either by 
930          print quota or by account balance.
931       
932    - 1.02 :
933   
934        - The installation script now checks for software availability
935          and in case a software is missing asks the user if he
936          wants to continue with the installation or abort it.
937         
938        - The configuration file pykota.conf is now expected to be
939          found in /etc instead of in /etc/cups
940          The installation script prompts the user to see if he
941          wants to move an old configuration file to the new location
942          if needed.
943         
944        - Improved documentation.
945       
946        - You can now set the tcp/ip port on which the Quota Storage
947          Server is listening, see sample configuration file for details.
948       
949        - Better general error handling.
950       
951        - Upgrade script for pre 1.01 PostgreSQL database schema is now
952          included as well.
953       
954    - 1.01 :
955   
956        - The configuration file now accepts an option   
957          to choose the recipient(s) of the email messages :
958         
959            - DevNull means no one will receive them.
960            - User means only the user will receive them.
961            - Admin means only the admin will receive them.
962            - Both means the User and the Admin will receive them.
963           
964        - The configuration file now uses hard-coded default values
965          when an option is not set. See sample configuration file
966          for details.
967         
968        - Manual pages are included since 1.00, but I forgot to   
969          add this information to this file.
970         
971        - Redistribution terms for the official package have 
972          softened and are now fully GPL compatible :
973          unrestricted modification is now allowed even for
974          the version number.
975         
976    - 1.00 :
977   
978        - edpykota now accepts a --noquota option. This
979          disable quota checking while still doing page
980          accounting. This is really useful for people
981          who don't want to limit their users but want
982          to know how much pages they print.
983         
984        - Some untested scripts were added to retrieve
985          the life time page counter of non-SNMP printers.
986         
987        - Every directory now has a specific README file. 
988       
989    - 0.99 :
990   
991        - Under some circumstances while the user wasn't allowed
992          to print, he didn't receive any email message. It is
993          now fixed.
994         
995        - When an user wasn't allowed to print, the quota for
996          the previous user wasn't updated. This is now fixed.
997         
998    - 0.98 :
999   
1000        - Correctly handle the case where the printer is switched off.
1001       
1002        - Small bug wrt syslog fixed.
1003       
1004    - 0.97 :
1005   
1006        - edpykota accepts wildcards on its command line for users/groups too
1007          if the --add option is not set, e.g. :
1008         
1009              $ edpykota --printer lp --softlimit 50 --hardlimit 100 "jer*"
1010             
1011        - If no user name is passed at all, then a default wildcard of "*"
1012          which means apply the command on ALL users for this printer is used.
1013         
1014        - Small bug fixes.
1015       
1016    - 0.96 :
1017
1018        - Options requester, policy, admin, adminmail and gracedelay can now
1019          be set either globally or per printer. The printer option has
1020          priority if both are defined.
1021
1022        - More powerful configuration parser.
1023       
1024        - If all options are defined globally, there's no need to
1025          define a section for each printer in the configuration
1026          file anymore. Just define a [global] section and it's ok.
1027
1028    - 0.95 :
1029
1030        - External requesters for printers finally added.
1031
1032        - Full internationalization (english and french are supported)
1033 
1034        - More complete quota usage report
1035
1036        - CGI script to access to the quota usage report
1037
1038        - Several bugs fixed.
1039
1040
1041    - 0.9 :
1042
1043        - First public version
Note: See TracBrowser for help on using the browser.