root / pykota / trunk / NEWS @ 1755

Revision 1755, 48.5 kB (checked in by jalet, 20 years ago)

Added the --hardreset command line option to edpykota

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