root / pykota / trunk / NEWS @ 1593

Revision 1593, 42.0 kB (checked in by jalet, 20 years ago)

Reduced the set of invalid characters in names

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