root / pykota / trunk / NEWS @ 1542

Revision 1542, 38.4 kB (checked in by jalet, 20 years ago)

Better exception handling code

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