root / pykota / trunk / NEWS @ 1578

Revision 1578, 40.9 kB (checked in by jalet, 20 years ago)

Improved pkhint

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