root / pykota / trunk / NEWS @ 1713

Revision 1713, 46.9 kB (checked in by jalet, 20 years ago)

Added fix for incorrect job's size when hardware accounting fails

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