root / pykota / trunk / NEWS @ 1751

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

log

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