root / pykota / trunk / NEWS @ 1588

Revision 1588, 41.6 kB (checked in by jalet, 20 years ago)

Testsuite for PDL Analyzer added

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