root / pykota / trunk / NEWS @ 1629

Revision 1629, 43.1 kB (checked in by jalet, 20 years ago)

1.19beta is out !

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