root / pykota / trunk / NEWS @ 1680

Revision 1680, 44.8 kB (checked in by jalet, 20 years ago)

Now both software and hardware accounting raise an exception when no valid
result can be extracted from the subprocess' output.
Hardware accounting now reads subprocess' output until an integer is read
or data is exhausted : it now behaves just like software accounting in this
aspect.

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