root / pykota / trunk / NEWS @ 1681

Revision 1681, 45.1 kB (checked in by jalet, 20 years ago)

Relax checks for PCL5 header to accomodate strange printer drivers

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