root / pykota / trunk / NEWS @ 2856

Revision 2856, 77.5 kB (checked in by jerome, 19 years ago)

Missing info in changelog...

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[797]1# $Id$
2
[2478]3PyKota - Print Quotas for CUPS and LPRng
[797]4
[2622]5(c) 2003, 2004, 2005, 2006 Jerome Alet <alet@librelogiciel.com>
[873]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.
[797]10
[873]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.
[797]15
[873]16You should have received a copy of the GNU General Public License
17along with this program; if not, write to the Free Software
[2303]18Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
[873]19
[797]20============================================================
21
22PyKota NEWS :
[2044]23       
[2856]24    - 1.24 (2006-04-08) :
25   
26        - Improved documentation and packaging stuff.
27       
[2808]28    - 1.24beta (2006-03-26) :
29   
30        - Finalized the pknotify command.
31       
32        - Updated the messages catalogs for translations.
33       
[2795]34    - 1.24alpha18 (2006-03-15) :
35   
36        - Now uses MIME encapsulation for email messages to avoid
37          some problems with 8 bits messages being rejected.
38         
[2791]39    - 1.24alpha17 (2006-03-06) :
40   
41        - Fixed a major problem in the PostgreSQL backend.
42       
43        - pknotify can now check a remote user's name and password.
44       
[2779]45    - 1.24alpha16 (2006-03-02) :
46   
47        - Introduced the pknotify command line tool to dialog
48          with remote PyKotIcon applications.
49         
[2773]50    - 1.24alpha15 (2006-03-02) :
[2760]51       
[2773]52        - optimized pkbcodes, pkprinters and pkusers using edpykota as
53          the model.
[2765]54       
[2762]55        - 'edpykota --list' and 'pkusers --list' are now authorized
56          to mere mortal users, but the list is restricted to informations
57          about the current user.
58       
[2759]59        - Extended the functionnality of the 'onbackenderror' directive to
60          allow for configurable retries.
61         
[2755]62    - 1.24alpha14 :
63   
64        - Finished optimizations in edpykota and fixed some minor
65          problems with LDAP.
66         
[2746]67    - 1.24alpha13 :
68   
69        - Introduced the pkusers command line tool to manage users and 
70          users groups. This command doesn't deal with print quota entries,
71          which continue to be managed through the edpykota command line
72          tool.
73         
74        - Major rewrite and incompatible changes to command line options
75          in edpykota. This command now only deals with print quota
76          entries. Printers, users (or users groups) now have to be created
77          first using pkprinters or pkusers.
78         
[2692]79    - 1.24alpha12 :
80   
81        - Introduced the 'duplicatesdelay' directive to specify after
82          which duration two duplicate jobs are not considered duplicate
83          jobs anymore.
84         
85        - Introduced the 'balancezero' directive to specify any value 
86          as the balance limit instead of 0.0. This can allow admins to
87          give a few free credits to users, for example.
88         
[2668]89    - 1.24alpha11 :
90   
[2686]91        - Huge speed improvements when modifying billing codes and
92          printers.
[2677]93       
[2675]94        - Both pkbcodes and pkprinters now display the percent done
95          for all actions.
96         
[2668]97        - The pkinvoice invoice generator command line utility is now
98          included.
99         
[2659]100    - 1.24alpha10 :   
101   
102        - Huge speed improvements when deleting users, printers, and
103          billing codes.
104         
[2641]105    - 1.24alpha9 :
106   
107        - Preliminary support for MySQL, thanks to Matt Hyclak.
108       
[2631]109    - 1.24alpha8 :
110   
[2635]111        - The 'preaccounter' configuration directive was introduced to control
112          which parser to use for precomputation of the job's size. When unset,
113          the internal parser is used just like it was previously. See
114          conf/pykota.conf.sample for more details.
115         
[2631]116        - Now subprocesses launched through the overwrite_jobticket directive
117          can also output 'CANCEL', to represent the user's own choice to
118          cancel the print job.
119         
[2622]120    - 1.24alpha7 :
121     
[2627]122        - pkbanner now handles new print limiting modes correctly.
123       
[2624]124        - The cupspykota backend wrapper now accepts to be interrupted
125          with a kill -INT. This causes an immediate and clean abort
126          of the current print job.
127         
[2623]128        - Matt Hyclak contributed the possibility to store the printing
129          history in a MySQL database. See the contributed/ directory
130          for details.
131         
[2622]132        - Added 2006 to the copyright's years.
133       
[2609]134    - 1.24alpha6 :
135   
[2615]136        - Fixed internal SNMP and PJL handling code for very fast
137          printers : PyKota didn't see them going from 'idle'
138          to 'printing' to 'idle' again.
139         
[2614]140        - Now waitprinter.sh accepts SNMP version number and
141          community name as arguments, thanks to Brandon
142          Holbrook.
143         
[2609]144        - Now command line errors and Ctrl+C repectively cause
145          PyKota commands to exit with status -2 and -3.
146         
[2600]147    - 1.24alpha5 :
148   
[2605]149        - All command line tools now accept -A | --arguments filename.args
150          as a way to bypass the shell's maximal command line size :
151          just put each argument on a line by itself in a file, and
152          pass the file's name as the -A | --arguments command line
153          option's argument. For now this won't be documented in
154          commands' helps.
155         
[2600]156        - dumpykota can now dump the complete database in XML
157          format.
158         
[2593]159    - 1.24alpha4 :
160   
161        - Added support for the SQLite3 backend.
162          See pykota/initscripts/sqlite/README.sqlite
163       
[2588]164    - 1.24alpha3 :
165   
166        - Fix for mailandpopup.sh : smbstatus can't be run setuid,
167          so we regain priviledges before running an external
168          mailto directive.
169       
[2584]170    - 1.24alpha2 :
171   
172        - Introduce the "onbackenderror" directive in pykota.conf, to
173          control if the user must be charged or not whenever a real
174          CUPS backend fails. The default value is 'nocharge'.
175          Set it to 'charge' if you think your users can cause a CUPS
176          backend to fail.
177         
178        - Now mark original backends related problems as such in the
179          printing history. Modified printquota.cgi and pykota.css
180          to make them be more visible.
181         
[2576]182    - 1.24alpha1 :
183   
[2581]184        - Fixed a problem which caused backend errors to be ignored.
185       
[2576]186        - The sample LDIF file now contains the two necessary user
187          entries to have an LDAP PyKota Admin and an LDAP PyKota
188          ReadOnly user. The sample configuration files were updated
189          to contain the default passwords used in the LDIF file.
190         
191        - dumpykota is now more strict when checking arguments.   
192       
[2562]193    - 1.23 :
194   
195        - Many minor bug fixes and code cleaning.
196       
197        - Improved documentation.
198       
199        - Added Polish translation.
200       
201        - Improved French and Swedish translations.
202       
[2474]203    - 1.23beta :
204   
205        - Now the mailto directive is honored in all cases where the job is
206          denied or a warning has to be issued, and the correct reason
207          can be sent back to the user.
208         
209        - The PYKOTAREASON environment variable, if defined, contains the 
210          textual reason why the job was denied or a warning has to be
211          issued.
212       
[2465]213    - 1.23alpha31 :
214   
215        - Added support for --maxjobsize, --passthrough and --nopassthrough
216          in pkprinters. These modes are now also honored when printing.
217         
[2466]218        - Allows the admin to restrict the number of print queues which will
219          be treated by pkturnkey by passing queues' names as additionnal
220          arguments on pkturnkey's command line.
221         
[2467]222        - pkturnkey now supersedes pkhint with the help of the -c | --doconf
223          command line option.   
224         
[2452]225    - 1.23alpha30 :
226   
227        - Database changes : you MUST use upgrade-to-1.23.sql again if you
228          use PostgreSQL, or copy the new schema and restart your LDAP
229          server if you use LDAP.
230         
231        - The -C | --comment command line switch was added to edpykota to 
232          attach textual information to modifications done to a user's
233          account balance.
234         
235        - The -l | --limitby command line switch to edpykota was modified 
236          to allow 'noquota', 'nochange', and 'noprint'. See the edpykota
237          command's help or manual page for details.
238         
239        - The -i | --ingroups command line switch to repykota allows 
240          PyKota Administrators to only lists members of the specified
241          group or groups (separated with commas).
242         
[2454]243        - The -I | --increase command line switch to edpykota allows
244          to increase or decrease page limits.
245         
[2455]246        - Added the precomputed job's size and price to the history
247          for controlling purpose.
248       
[2447]249    - 1.23alpha29 :
250   
[2449]251        - Fixed a small problem with billing codes.
252       
[2448]253        - Exports some environment variables earlier, to render the script
254          launched by the overwrite_jobticket directive more powerful.
255         
[2447]256        - Now autopykota also creates print quota entries for the user on the
257          printers groups the current printer is a member of.
258         
[2435]259    - 1.23alpha28 :
260   
[2436]261        - Added users groups management to pkturnkey.
[2435]262       
263        - Fixed umask in setup script.
264       
[2432]265    - 1.23alpha27 :
266   
267        - Replaced the --dryrun command line option by the --force
268          command line option in pkturnkey, with exactly the opposite
269          effect (for security reasons).
270         
[2425]271    - 1.23alpha26 :
272   
273        - Allows parametrized pjl and snmp hardware accounting methods,
274          to be able to respectively set the TCP port and the SNMP
275          community.
276         
[2420]277    - 1.23alpha25 :
278   
279        - Added a --dryrun command line switch to pkturnkey.
280       
281        - Improved pkturnkey's general usability.
282       
283        - Added a manpage for pkturnkey.
284       
[2418]285    - 1.23alpha24 :
286   
287        - Allows different databases to be used depending on the
288          user's rights. This allows PyKota admins to directly
289          use a master LDAP server for read+write, while letting
290          normal users using the replicas for readonly access.
291          NB : using different storage backends is also possible,
292          but you're on your own there.
293         
[2413]294    - 1.23alpha23 :
295   
[2414]296        - Fixed a problem with banner accounting.
297   
[2413]298        - Introduction of the new 'pkturnkey' command line tool.
299       
[2409]300    - 1.23alpha22 :
301   
302        - The cupspykota backend was almost entirely rewritten from scratch.
303          It's now much more readable, maintainable, etc...
304         
305        - LPRng support is OFFICIALLY dropped for now. LPRng users are 
306          advised to download earlier releases or purchase the
307          PyKota v1.22HotFix1 Official release. LPRng support
308          MIGHT be re-added later.
309       
[2399]310    - 1.23alpha21 :
311     
312        - Fix for IPP requests which contain more than a single
313          job-originating-host-name attribute.
314         
[2393]315    - 1.23alpha20 :
316   
317        - Added the overwrite_jobticket directive. See pykota.conf.sample
318          for how to use it.
319         
[2389]320    - 1.23alpha19 :
321   
[2390]322        - Fixed an LDAP filtering problem when managing billing codes.
[2389]323       
324        - Added the unknown_billingcode directive. See pykota.conf.sample
325          for how to use it.
326       
[2365]327    - 1.23alpha18 :
328     
[2383]329        - Added the dump_bfd.php contribution.
330       
331        - Several fixes in the internal PJL accounter.
332       
[2366]333        - Now autopykota doesn't create unneeded print quota entries anymore.
334       
[2365]335        - Increased the timeout in the PJL hardware accounting code to
336          accomodate some printers (HP5000 at least).
337         
[2345]338    - 1.23alpha17 :
339   
340        - pkpgcounter is now distributed separately only. This
341          means that people must now download and install pkpgcounter
342          v1.56 or higher prior to being able to run PyKota.
343         
344        - Removed all the autoconf/automake stuff which was outdated 
345          and confusing.
346         
[2344]347    - 1.23alpha16 :
348     
349        - Extracted the GPL blurb from all commands' help, and use
350          a static version only once. This saves space big time, and
351          eases future translations.
352         
[2342]353    - 1.23alpha15 :
354   
355        - pkbcodes now works with the PostgreSQL backend.
356          NB : PLEASE RUN upgrade-to-1.23.sql AGAIN !!!
357       
[2323]358    - 1.23alpha14 :
359   
360        - Logs a warning when the user/group doesn't exist when running
361          edpykota.
362         
[2320]363    - 1.23alpha13 :
364   
365        - Minor fix for user groups because of latest database changes.
366       
[2317]367    - 1.23alpha12 :
368   
369        - Big database changes, use the migration scripts !
370       
[2316]371    - 1.23alpha11 :
372   
373        - Small fix to the PCL3/4/5 parser for some drivers.
374       
[2311]375    - 1.23alpha10 :
376   
377        - Fixed a bad exception name in cupspykota when parsing IPP messages.
378       
379        - Improved the IPP messages module : it can now generate IPP messages
380          in addition to parsing them.
381       
[2305]382    - 1.23alpha9 :   
383   
[2308]384        - The denyduplicates directive now accepts a command line as an
385          argument beside yes/no. The command is launched and must
386          print either ALLOW or DENY to its standard output. Then the
387          job gets allowed or denied by PyKota.
388          This will allow user interaction in the near future.
389         
[2307]390        - Introduced the new 'striptitle' directive to remove ugly prefixes
391          from print job's titles whenever a new print job is submitted.
392         
[2305]393        - Fixed internal SNMP accounter for printers which only have a life time
394          page counter, and not a volatile page counter.
395         
[2295]396    - 1.23alpha8 :
397   
398        - The data dumper can now summarize payments and history with the
399          help of the --sum command line option (or checkbox in the CGI).
400         
401        - The message used when the job's filename, title and options are
402          hidden because of the privacy directive is now translated at
403          retrieval time, instead of at saving time.
404         
405        - Minor fix in the LDAP backend code. 
406         
[2277]407    - 1.23alpha7 :
408   
409        - Improvements to the internal PJL and SNMP accounter : now should
410          support more printers and waste less time.
411         
[2276]412    - 1.23alpha6 :
413   
414        - The data dumper's start= and end= date filtering options now
415          accept a positive or negative offset to be added to the special
416          keywords 'yesterday', 'today', 'now', 'tomorrow'.
417          e.g. : dumpykota --data history start=yesterday-5 end=today
418         
[2268]419    - 1.23alpha5 :
420   
421        - The data dumper's start= and end= date filtering options now accept
422          the special keywords 'yesterday', 'today', 'now' and 'tomorrow'.
423         
[2266]424    - 1.23alpha4 :
425   
426        - The data dumper now accept start= and end= to specify the starting
427          and ending dates to dump the history.
428         
[2262]429    - 1.23alpha3 :
430   
[2265]431        - The destination link for the logo used in CGI scripts is
432          configurable.
433         
[2264]434        - Data dumper improved : it's faster and now datas are correctly
435          escaped.
436       
[2262]437        - The URL to the logo displayed in the CGI scripts is configurable.
438       
[2254]439    - 1.23alpha2 :
440   
[2257]441        - Fixed edpykota --prototype with balance.
442       
[2254]443        - Major rewrite of the IPP message parsing code to definitely
444          fix the job-originating-hostname IPP attribute problem.
445       
[2239]446    - 1.23alpha1 :   
447   
[2241]448        - Sets current username to the user CUPS runs as instead of "root"
449          when printing test pages from CUPS' web interface (because
450          the username is empty in this case).
451         
[2239]452        - Fix for strange values in job-originating-hostname
453       
[2237]454    - 1.22 :
455   
456        - Big improvements to the documentation.
457       
[2228]458    - 1.22beta :
459   
[2232]460        - Improved stability in pykotme and pykotme.cgi.
461       
462        - Fixed a permission problem in pykotme and pykosd.
463       
[2228]464        - Fixed an inconsitency between SQL and LDAP backends'
465          behavior in edpykota.
466         
[2229]467        - Improved stability and allowed tracebacks in CGI scripts.
468       
469        - Improved pykotme.cgi
470         
[2214]471    - 1.22alpha8 :
472   
[2222]473        - Fixed history retrieval for nonexisting printers or users.
474       
[2220]475        - Clicking on the billing code in printquota.cgi's job history
476          now shows all jobs matching this billing code.
477         
[2219]478        - Fixed the dump in CUPS' page_log format which didn't
479          dump the oldest entry.
480         
[2218]481        - The data dumper now accepts billingcode= and hostname= as
482          filters when dumping the job history.
483         
[2217]484        - The job billing code if present is now saved into the database,
485          and exported to subprocesses as the PYKOTAJOBBILLING environment
486          variable.
487         
[2216]488        - Ctrl+C now makes PyKota commands exit without a traceback.
489       
[2214]490        - Fixed an i18n problem with Python 2.1
491       
[2211]492    - 1.22alpha7 :
493   
494        - Fixed some problems with the retrieval of the history from LDAP.
495       
[2210]496    - 1.22alpha6 :
497   
498        - Early errors now produce meaningful error messages (finally !)
499       
[2202]500    - 1.22alpha5 :
501       
502        - SNMP and PJL improvements with regard to PowerSave / StandBy.
503       
[2193]504    - 1.22alpha4 :
505   
[2195]506        - Fixed charset problem under MacOSX.
507       
[2193]508        - Allows pkbanner to accept more info to display on its
509          command line.
510         
[2179]511    - 1.22alpha3 :
512   
[2188]513        - Fixes some case related problems with some LDAP backends.
514       
[2180]515        - Fixes some problem for printers which directly go from
516          "idle" to "warmup" and never to "printing" before
517          returning to "idle".
518         
[2179]519        - Some permissions settings may have prevented cupspykota
520          from parsing cupsd.conf, this is now fixed.
521         
[2167]522    - 1.22alpha2 :
523   
[2173]524        - Introduction of the web enabled print quote generator.
525       
[2167]526        - Fixed a potential race condition when several backend
527          wrappers were present in CUPS' backend directory.
528         
529        - Fixed dumpykota's output in CUPS' page_log format to better
530          match CUPS format.
531         
[2133]532    - 1.22alpha1 :
533   
534        - Import into Subversion.
535       
[2127]536    - 1.21 :
537   
538        - Improved documentation.
539       
540        - Improved dependencies checker.
541       
542        - Updated some translation files.
543       
[2121]544    - 1.21beta2 :
545   
546        - Fixed an LPRng specific bug.
547       
548        - Several improvements on stability issues with manually modified
549          LDAP trees.
550         
551        - Documentation improvements. 
552       
[2087]553    - 1.21beta :
554   
555        - Prepared translation files for next release.
556       
[2073]557    - 1.21alpha27 :
558   
[2074]559        - Allows software() (no arguments) to the software accounting
560          directive. This saves a lot of CPU since the job is not
561          parsed again : the precomputed size is used directly in this
562          case.
563         
[2073]564        - epykota's --prototype option now works fine with accounts
565          limited by balance.
566         
[2066]567    - 1.21alpha26 :
568   
569        - Fixed the handling of the 'maxdenybanners' directive.
570       
571        - Introduced the 'denyduplicates' directive.
572       
573        - Fixed some database related glitches.
574       
[2062]575    - 1.21alpha25 :
576   
577        - The job's size is now always precomputed, even when
578          'enforcement' is not set to 'strict'.
579         
580        - Introduction of the new 'trustjobsize' configuration directive
581          to workaround some problematic printers. See the sample
582          configuration file for details.
583         
[2054]584    - 1.21alpha24 :
585   
586        - Big database structure changes. An upgrade script
587          is now included for PostgreSQL. LDAP users may just
588          want to copy the new schema in place.
589         
590        - edpykota now recognizes the -o | --overcharge command line
591          option to set an overcharging or undercharging factor
592          on each print job's cost for a particular user.
593         
594        - repykota's output format has changed an is not limited to 
595          80 characters wide anymore. People who used to parse
596          repykota's output in their own tools are strongly advised
597          to parse dumpykota's output instead.
598         
599        - Introduction of the new 'maxdenybanners' configuration directive
600          to allow up to N (the directive's value) deny banners to be
601          printed even if the print account is forbidden to print.
602         
603        - Better detection of the number of copies in the PostScript parser.
604       
[2044]605    - 1.21alpha23 :
606   
607        - Traditional Chinese translation added.
608   
609        - Several fixes and performance improvements with the LDAP backend.
610       
[2036]611    - 1.21alpha22 :
612   
613        - edpykota's --delete command line option doesn't consider
614          '*' to be the default argument anymore :-)
615         
[2032]616    - 1.21alpha21 :
[2030]617   
[2032]618        - dumpykota.cgi can now be run as a normal user as opposed to
619          a PyKota administrator. No read access to pykotadmin.conf is
620          necessary anymore. This CGI scripts now honors the REMOTE_USER
621          environment variable just like printquota.cgi does, see
622          the file cgi-bin/README for details.
623          The command line tool dumpykota must still be run by a PyKota
624          administrator.
[2030]625         
[2032]626        - Fix exception's name error due to a change in recent versions
627          of PygreSQL.   
628         
629    - 1.21alpha20 :
630         
631        - Big bug fix wrt the datelimit field which was never reset.
632         
[2020]633    - 1.21alpha19 :
634   
635        - Introduction of the new dumpykota.cgi CGI script, which
636          allows third party tools like phpPrintAnalyzer to be
637          interfaced in real time with PyKota. To use it you
638          may have to change your web server's configuration,
639          please see pykota/cgi-bin/README
640         
[2013]641    - 1.21alpha18 :
642   
[2014]643        - Now dumpykota can dump the job history into CUPS' page_log
[2013]644          format (even when the printing system is LPRng). This allows
645          people to use tools like PrintAnalyzer or phpPrintAnalyzer
646          (two completely different beasts) with PyKota.
647         
[2002]648    - 1.21alpha17 :
649     
[2010]650        - Fixed field type's name in XML dumps.
651       
[2006]652        - Now drops priviledges to user 'pykota' when launched as root
653          (directly or as a CUPS backend), if such an user exists.
654         
[2002]655        - Fixed PCL3/4/5 parser for some drivers' output.
656       
[1998]657    - 1.21alpha16 :
658   
659        - fixed several recently introduced bugs in LDAP backend code,
660          thanks to Matt Hyclak.
661         
[1993]662    - 1.21alpha15 :
663     
[1995]664        - Normalized field names between LDAP and PostgreSQL backends
665          in dumpykota's output.
666         
[1993]667        - dumpykota filtering capabilities are now supported within
668          the LDAP backend too.
669         
[1991]670    - 1.21alpha14 :
671   
672        - dumpykota now supports extended filtering possibilities
673          with the PostgreSQL backend (LDAP support will come soon).
674         
[1980]675    - 1.21alpha13 :
676   
677        - Added a --debug command line option to pkpgcounter, so
678          that people may see what really happens, and what will
679          be available in the future :-)
680         
[1974]681    - 1.21alpha12 :
682   
[1977]683        - Fixed a bug with non standard pkbanner command lines.
684       
[1974]685        - Now logs as errors the differences between precomputed and
[1975]686          computed job sizes. **CUPS only for now**
[1974]687         
[1967]688    - 1.21alpha11 :
689   
[1969]690        - Now user and group print quota entries can be stored directly
691          below the user or group with the LDAP backend, using them
692          as branches. Thanks to Stefan Wold for the patch.
693          See the sample configuration file for details.
694         
[1968]695        - TLS is now supported with the LDAP backend. Thanks to Stefan
696          Wold for the patch.
[1969]697          See the sample configuration file for details.
[1968]698         
[1967]699        - edpkota now accepts the -U | --used value command line argument
700          to preset the page counters to an initial value. Thanks to
701          Wilson Roberto Afonso and Matt Hyclak for the patch.
702         
[1966]703    - 1.21alpha10 :
704   
705        - Now automatically reconnects up to three times if the LDAP server
706          returned an error, possibly due to a timeout.
707         
[1961]708    - 1.21alpha9 :
709   
[1962]710        - Now searches the configuration files in 'pykota' system user's
[1961]711          home directory. The 'pykota' system user and group have
712          to be created by the system administrator, and given
713          sufficient permissions to PyKota's configuration files.
714         
[1956]715    - 1.21alpha8 :
716   
717        - Added the new reject_unknown directive to reject the
718          creation of user or groups which are unknown to the system.
719         
[1952]720    - 1.21alpha7 :
721   
722        - Introduction of the pkmail email gateway.
723       
[1941]724    - 1.21alpha6 :
725   
[1943]726        - Fix for LPRng filenames.
727       
[1941]728        - Added Turkish translation thanks to Baris Cicek.
729       
[1936]730    - 1.21alpha5 :
731   
[1940]732        - Improved ESC/P2 miniparser for Stylus Photo printers.
733       
[1936]734        - Implemented the --savetoner command line option to pkbanner.
735       
736        - Improved pkbanner's help and messages.
737       
[1933]738    - 1.21alpha4 :
739   
740        - Fixed job's data file detection code for LPRng.
741       
742        - Fixed a problem with PJL and PowerSave mode,
743          thanks to Wilson Roberto Afonso.
744       
[1923]745    - 1.21alpha3 :
746   
747        - PyKota can now generate its own banners, and either account
748          for them or not, depending on newly introduced directives
749          in pykota.conf
750          Thanks to Matt Hyclak for the patch.
751         
[1905]752    - 1.21alpha2 :
753   
[1913]754        - Installation script is now non interactive again, as it should
[1905]755          have stayed from the beginning. Dependencies checking can
756          be done by launching the checkdeps.py command.
757         
[1901]758    - 1.21alpha1 :
759   
[1903]760        - added an IPP messages miniparser. Extraction of the client
761          hostname is now considered to be fiable, at least until
762          the CUPS developpers change something...
[1901]763       
[1894]764    - 1.20 :
765   
766        - Version number changed.
767       
[1868]768    - 1.20beta :
769   
[1891]770        - Norwegian (Bokm� preliminary translation added.
771       
[1885]772        - German translation was finalized.
773       
[1879]774        - Greek translation was finalized.
775       
[1875]776        - For urgent legal reasons, a "privacy" directive has been added
777          to pykota.conf, to hide jobs' title, filename and options
778          in the history.
779         
[1868]780        - Minor changes in the debian directory.
781       
[1867]782    - 1.20alpha27 :
783   
784        - Fixed many problems with translation files. In particular
[2119]785          the Brazilian Portuguese translation file was incorrectly
[1867]786          installed into the french "breton" locale directory.
787         
788        - Finished French translation. 
789         
[1847]790    - 1.20alpha26 :
791   
[1850]792        - LPRng support code should now better detect network
793          printers' hostnames or IP addresses.
794         
[1848]795        - Fix for recently introduced bug in LPRng support.
796       
[1847]797        - Fix for incorrect locale setting when starting.
798       
[1814]799    - 1.20alpha25 :
800   
[1821]801        - pkprinters allows --list to normal users, but require user
802          to be a PyKota administrator when another command line
803          option is used.
804         
[1814]805        - pkhint doesn't use absolute path to search for helper commands
806          anymore.
807         
808        - Spanish translation ready for 1.20.   
809       
[1806]810    - 1.20alpha24 :
811   
[1807]812        - Now warnpykota only warns users limited by balance once.
813       
[1806]814        - Now warnpykota only warns users who have ever printed,
815          to not cause confusion to users who have just opened
816          their account.
817       
818        - Prepared help messages for translations.
819       
[1791]820    - 1.20alpha23 :
821   
822        - Add workaround for locale problem.
823       
[1788]824    - 1.20alpha22 :
825   
[1790]826        - Hopefully final fix for data encoding charset.
827       
[1789]828        - edpykota now refuse to work if the user is not a PyKota admin.
829       
[1788]830        - Fixes a recently introduced bug with users groups and PostgreSQL.
831       
[1785]832    - 1.20alpha21 :
833   
834        - Now dumpykota refuses to launch if the current user is not
835          a PyKota administrator (a PyKota administrator is an user
836          allowed to read the pykotadmin.conf file).
837         
838        - Now any PyKota administrator can use repykota and warnpykota
839          with additionnal arguments, not only the root user.
840         
841        - Improved documentation a bit.
842       
[1771]843    - 1.20alpha20 :
844   
[1774]845        - Reduced delay in internal SNMP and PJL_over_TCP handlers
846          from 2 to 1 second.
847       
[1771]848        - dumpykota can now output XML.
849       
[1761]850    - 1.20alpha19 :
851   
[1769]852        - Improved user groups and user groups quotas dumps in dumpykota.
853       
[1768]854        - Finished implementation of LDAP support in dumpykota.
855       
[1766]856        - The md5 sum of the job's datas is now available as an
857          hexadecimal digest in the PYKOTAMD5SUM environment variable.
858         
[1761]859        - The description, filename, title, and options fields
860          are now stored as UTF-8 strings in both LDAP and PostgreSQL.
861          Proper charset is used during extraction from the database.
862         
[1757]863    - 1.20alpha18 :
864   
[1758]865        - Experimental autopykota command to initialize user
866          account and quota entries on first print while not
867          resetting the balance value if not needed.
868         
[1757]869        - Added the new "winbind_separator" directive to strip
870          out the Samba/Winbind domain name while printing if
871          needed (Off by default).
872         
[1751]873    - 1.20alpha17 :
874   
[1755]875        - Added --hardreset command line option to edpykota.
876       
[1751]877        - Fixed problem with accented chars in title, filename
878          or options and LDAP backend.
879         
[1746]880    - 1.20alpha16 :
881   
882        - Internal handling of socket based PJL queries over
883          port tcp/9100 is now available with the magic
884          'pjl' value in the hardware accounter.
885         
[1742]886    - 1.20alpha15 :
887   
888        - LDAP pykotaAccountBalance objects were always created
889          attached to the pykotaUser objects. This is now
890          fixed and the value of balancebase in pykota.conf
891          is now correctly used.
892         
[1740]893    - 1.20alpha14 :
894   
[1741]895        - Belgian translations added (copy of the french ones).
896       
[1740]897        - External hardware accounter now loops until
898          a result can be read correctly.
899         
900        - pkhint now suggest the internal snmp handling instead
901          of the external one.
902         
[1729]903    - 1.20alpha13 :
904     
905        - Hardware accounter now accepts the special
906          'snmp' value, meaning ALL is done from main code
907          without launching any subprocess.
908          You need the http://pysnmp.sf.net Python module
909          for this to work (tested with v3.4.2)
910         
[1731]911        - Increased delay between two loops iterations 
912          to 2 seconds in waitprinter.sh to diminish
913          CPU load.
914         
[1723]915    - 1.20alpha12 :
916   
917        - waitprinter.sh rewritten from scratch to wait
918          for printer status stabilization.
919       
[1717]920    - 1.20alpha11 :
921   
922        - Generic data dumper 'dumpykota' introduced.
923          Works only with PostgreSQL backend for now.
924         
[1713]925    - 1.20alpha10 :
926   
927        - Added fix for incorrect job's size computation when
928          hardware accounting fails.
929         
[1705]930    - 1.20alpha9 :
931   
932        - Small fixes wrt subprocesses.
933       
[1701]934    - 1.20alpha8 :
935   
936        - Added full support of PCL3 : HP Deskjet printers are now
937          supported.
938       
[1699]939    - 1.20alpha7 :
940   
941        - First draft of PCL3GUI (Deskjet 640C for example) analyzer.
942          Needs more work, but no documentation is available.
943       
[1692]944    - 1.20alpha6 :
945     
[1697]946        - Improved mailandpopup.sh script.
947       
[1696]948        - Small fixes for LPRng.
[1695]949       
[1694]950        - Now exports PYKOTAPRINTERHOSTNAME for network printers'
951          hostname or IP address. Set to 'localhost' when not
952          meaningful.
953         
[1693]954        - Fixed issue with how mod_auth_ldap Apache modules
955          fills the REMOTE_USER environment variable.
956         
[1692]957        - Fixed a bug in LDAP user deletion code.
958       
[1687]959    - 1.20alpha5 :
960     
961        - Introduces the new configuration directive 'onaccountererror'
962          to specify what must be done whenever the software or
963          hardware accounter fails. Allowed values are 'continue' and
964          'stop' (default).
965         
966        - Minor fix in software accounter for a recently introduced
967          problem.
968         
[1686]969    - 1.20alpha4 :
970   
971        - Added support for more ghostscript devices in ESC/P2
972          analyzer : stcolor, st800, escp, escpc are now supported.
973         
[1680]974    - 1.20alpha3 :
975       
[1683]976        - Small improvement in PostScript parser to avoid being
977          fooled by a change in number of copies :
978          The user can't ask for 200 copies of page 1 and 1 copy
979          of page 2 to fool PyKota anymore :
980          this would have been accounted for as 1 copy only, but
981          now the maximum value seen is used.
982         
[1681]983        - Relax checks for PCL5 header to accomodate some strange
984          printer drivers.
985         
[1680]986        - Now hardware accounting method works like software
987          accounting method wrt the subprocess' output.
988         
[1681]989        - Hardware and Software accounting stop the print queue 
990          when the accounting subprocess didn't work. This will
991          be configurable in the near future.
992         
[1676]993    - 1.20alpha2 :
994   
[1678]995        - Now software accounting method reads accounter's
996          answer until a line with a single integer is
997          obtained or until all of its output has been read.
998          This should fix the problem some people have
999          when strange locale related messages are sent
1000          when running subprocesses (Solaris only ?).
1001         
[1676]1002        - First version of ESC/P2 analyzer. Seems to work
1003          ok at least with 'epson', 'epsonc', 'eps9mid'
1004          and 'esp9high' ghostscript devices. Needs more
1005          work to correctly analyze other devices.
1006       
[1665]1007    - 1.20alpha1 :
1008   
[1675]1009        - Fixed problem with number of copies in PCLXL parser.
1010       
[1674]1011        - Fixed problem with number of copies in PCL5 parser,
1012          when number of copies was set outside of and before first
1013          page.
1014       
[1673]1015        - Added workaround for number of copies directly set in
1016          PostScript code.
1017         
[1671]1018        - Added german translation.
1019       
[1665]1020        - Fixed problem on first print for user group quota when
1021          "enforcement: strict" is used.
1022       
1023        - Fixed interpolation problem in french translation.
1024       
[1664]1025    - 1.19 :
1026   
1027        - Updated existing translations.   
1028       
1029        - Added final Thai and Greek translations.
1030       
1031        - Minor last minute bug fixes.
1032       
[1629]1033    - 1.19beta :
1034   
1035        - LPRng support for both software and hardware accounting seems
1036          to be OK.
1037         
1038        - Translation files fixed because of fuzzy matching problem. 
1039       
[1639]1040        - Fixed path to Swedish translation: 'sv' instead of 'se'.
[1633]1041       
[1639]1042        - Added first draft of Thai translation.
1043       
1044        - Fixed some minor bugs with Pychecker.
1045       
[1622]1046    - 1.19alpha35 :
1047   
1048        - Generic PDL analyzer now supports Binary PostScript documents
1049          in addition to DSC compliant ones.
1050       
[1611]1051    - 1.19alpha34 :
1052   
1053        - LPRng support : software accounting seems to work fine,
1054          but hardware accounting doesn't work yet.
1055   
[1605]1056    - 1.19alpha33 :
1057   
1058        - pykosd now accepts command line arguments. Enjoy !
1059          NB : due to a bug in xosd, you need xosd version 2.2.8
1060          or higher if you don't use the default C locale.
1061         
[1600]1062    - 1.19alpha32 :
1063   
[1604]1064        - Early (not working) version of the LPRng support rewrite.
[1600]1065       
[1604]1066        - Saner default configuration file.
1067       
[1599]1068    - 1.19alpha31 :
1069   
1070        - Fixed a double Python2.1 incompatibility with newer versions,
1071          which prevented the PCL5 and the PCLXL parsers to work with
1072          this older version of Python.
1073         
[1592]1074    - 1.19alpha30 :
1075   
[1595]1076        - Introduction of preliminary version of the pykosd command
1077       
[1593]1078        - Usernames, Groupnames and Printernames can now contain
1079          ANY character, expected '/' and '@'.
1080       
[1592]1081        - Integrated most of the Debian work from Sergio
1082          Gonz�z Gonz�z
1083         
[1584]1084    - 1.19alpha29 :
1085   
[1591]1086        - PCLXL parser should now correctly handle number of
1087          copies set for each page.
1088         
[1588]1089        - Added testsuite for generic PDL analyzer.
1090       
1091        - Typo fixed in PCLXL parser.
1092       
[1584]1093        - Correctly dispatches error messages depending on the
1094          situation : tools which can be run interactively will
1095          ALWAYS output their logs to stderr, excepted for
1096          their DEBUG messages, for which the "logger:"
1097          directive as set in pykota.conf will be honored.
1098          Tools which can't be run interactively will ALWAYS
1099          honor the "logger:" directive as set in pykota.conf
1100         
[1575]1101    - 1.19alpha28 :
1102   
[1582]1103        - The description field for printers can now be set,
1104          and is displayed in reports.
1105         
1106        - Fixed a small problem in SQL backend code.
1107         
[1578]1108        - Improved pkhint
1109       
[1575]1110        - First working PCL6 (aka PCLXL) parser !
1111          Doesn't handle copies yet.
1112       
[1570]1113    - 1.19alpha27 :
1114   
[1573]1115        - Additionnal 10% speed increase in PCL5 parser for GhostScript
1116          generated files (untested yet with other PCL files).
1117         
[1572]1118        - Reintroduced the use of mmap in PCL5 parser : this speedups
1119          PCL5 parsing by almost 4 times.
1120          This 4x with the 3x below give us in fact a twelvefold increase
1121          in performance for PCL5 parsing !
1122         
[1570]1123        - The Python accelerator Psyco is now used if available
1124          in the generic PDL parser : it speedups PCL5 parsing by
[1572]1125          almost three times automagically.
[1570]1126         
[1564]1127    - 1.19alpha26 :
1128   
1129        - Fixed PCL5 parser according to the sources of rastertohp.
1130       
[1566]1131        - Fixed number of copies handling in PCL5 parser : the number
1132          of copies could vary from page to page.
[1568]1133         
1134        - Added more debug information to PCLXL parser. 
[1566]1135       
[1556]1136    - 1.19alpha25 :
1137   
[1558]1138        - Added new "description" field to printers in both
[1556]1139          PostgreSQL and LDAP. No code to handle this yet.
1140         
[1558]1141        - Reversed the fix for power save mode in printers : 
[1557]1142          no paper or tray open would have caused people to
1143          be undercharged.
1144         
[1558]1145        - Preliminary version of MySQL initialization script.
1146         
[1552]1147    - 1.19alpha24 :
1148   
1149        - Native PDF parsing code now works perfectly with
1150          Python 2.1 and above, and is way faster than before.
1151          GhostScript is not used anymore to convert PDF to PS,
1152          because PDF is parsed directly.
1153         
[1545]1154    - 1.19alpha23 :
1155   
[1549]1156        - Fixed waitprinter.sh wrt PowerSave mode and some
1157          printers. Thanks to Ryan Suarez.
1158       
[1550]1159        - Smart PDL analyzer now recognizes PDF too : two
1160          PDF parsing methods are used : a native one which
1161          is very fast but requires Python 2.3 or above, and
1162          a slower one which uses Ghostscript. PyKota detects
1163          automatically which method to use depending on your
1164          version of Python.
[1547]1165       
[1546]1166        - All tracebacks now include PyKota's version number.
[1545]1167         
[1542]1168    - 1.19alpha22 :
1169   
[1544]1170        - Ensures that the file pointer for job's data is
1171          reset to the start of the job's datas after the
1172          job's size pre-computation phase.
1173         
[1543]1174        - Improved PostScript detection code for bad drivers
1175          which don't correctly switch languages between PJL
1176          and PS.
1177       
[1542]1178        - Even better debugging code.
1179       
[1541]1180    - 1.19alpha21 :
1181   
[1542]1182        - Additionnal check.
[1541]1183       
[1536]1184    - 1.19alpha20 :
1185   
1186        - More complete logging messages wrt accounters.
1187       
[1539]1188        - Now catches early failures occuring when the configuration
1189          files are parsed.
1190       
[1526]1191    - 1.19alpha19 :
1192   
1193        - Fixed over-verbose exits when displaying help
1194          or version.
[1527]1195         
1196        - Extended some PATH in the shell scripts 
[1532]1197       
1198        - Deleting an user now also deletes his payments history.
1199       
1200        - Doesn't explicitely ignore SIGCHLD anymore. This seems to
1201          cause problems.
[1500]1202
[1522]1203    - 1.19alpha18 :
1204   
1205        - History of payments is now stored in the database, and
1206          updated each time an user's balance is modified with
1207          edpykota --balance. This history represents each time
1208          the user was given some positive or negative credit,
1209          but doesn't reflect price paid for jobs, which appear
1210          in the jobs history instead.
1211         
[1524]1212        - Jobs history web reports now include the job's size in
1213          bytes. Also columns were reordered to render the report
1214          more easily readable.
1215         
[1517]1216    - 1.19alpha17 :
1217   
1218        - Mysterious bug (program exited unexpectedly without leaving
1219          any log message) which occured once in a while when
1220          cancelling jobs should be fixed now.
1221         
1222        - New 'crashrecipient' directive. Disabled by 
1223          default. See sample configuration file to see how
1224          to activate it. It is suggested that you activate it.
1225         
1226        - New PYKOTAJOBSIZEBYTES environment variable exported, 
[1519]1227          which contains the job's size in bytes. Empty jobs
[1521]1228          are now denied. This value is now stored in the job
1229          history (but not yet displayed from the web interface)
[1517]1230         
[1521]1231        - Preliminary work on payments storage : the PostgreSQL 
1232          and LDAP schemas should be OK now, but no code is written
1233          yet to support this functionnality.
1234         
[1502]1235    - 1.19alpha16 :
1236   
[1510]1237        - the newuser and newgroup LDAP specific directives now accept
1238          a second parameter to attach(), "fail" or "warn". If no entry
1239          is found to attach PyKota attributes to, and "fail" was used,
1240          then action is aborted and program exits in error. If "warn"
1241          is used, a new entry is created but a warning message is logged.
1242         
[1502]1243        - The job's originating hostname is now stored in the database,
1244          and exported as PYKOTAJOBORIGINATINGHOSTNAME in the environment.
1245       
[1500]1246    - 1.19alpha15 :
1247   
1248        - The old pykota filter is now removed. This means that
1249          currently PyKota doesn't support LPRng anymore, but
1250          LPRng support will be re-added, improved, in the near future.
1251         
[1495]1252    - 1.19alpha14 :
1253   
[1499]1254        - PYKOTAPRECOMPUTEDJOBSIZE and PYKOTAPRECOMPUTEDJOBPRICE
1255          are now exported as environment variables.
1256         
[1498]1257        - Heavy CPU usage is now completely fixed it seems, by
1258          introducing some 0.01 second sleeping when nothing to do.
1259         
[1497]1260        - Pre-computation of the job's size is now only
1261          done when enforcement is "STRICT", this saves
1262          CPU for people who don't want to use this new
1263          feature.
1264         
[1495]1265        - New 'enforcement' directive which accepts either
1266          STRICT or LAXIST. See sample configuration file
1267          for details.
1268         
[1494]1269    - 1.19alpha13 :
1270   
1271        - Get back to an old version of the polling loop which
1272          worked fine, but non-optimally. Will be optimized
1273          as time permits.
1274         
[1492]1275    - 1.19alpha12 :
1276   
1277        - Job's size is now precomputed unconditionnally using
1278          the generic PDL analyzer.
1279          NB : This value is not yet used to pre-allow/deny the
1280          job.
1281       
[1490]1282    - 1.19alpha11 :
1283   
1284        - The pykota filter is now completely deprecated and
1285          can't be used anymore. LPRng users MUST download
1286          an older version of PyKota. CUPS users MUST use
1287          cupspykota. Better support for LPRng will come
1288          in the near future.
1289         
[1483]1290    - 1.19alpha10 :
1291   
[1488]1292        - pykotme now uses generic PDL Analyzer directly instead
1293          of spawning a new process.
1294         
[1487]1295        - Improvements to generic PDL Analyzer.
1296       
[1485]1297        - 25% Speedup in PCL parser. Getting more of the Python version
1298          will probably be difficult, since the completely table driven
1299          parser I wrote is slower than the original algorithm. Then,
1300          the original algorithm is still used for now.
1301          Probable that more speed could be achieved using mmap, at the
1302          expense of severe memory consumption.
1303       
[1483]1304        - configuration simplifications : the "accounter" directive's
1305          'hardware' arguments now accepts what was in the "requester"
1306          directive as it's content. The "requester" directive is not
1307          supported anymore. See sample configuration file for details.
1308       
[1478]1309    - 1.19alpha9 :
1310       
[1482]1311        - pkpgcounter is now just a wrapper around the PDLAnalyzer class
1312       
[1480]1313        - pykotaOptions LDAP attribute now accepts non-ascii characters
1314          too.
1315         
[1478]1316        - First try at cupspykota main loop rewrite
1317       
[1475]1318    - 1.19alpha8 :
1319   
1320        - 'querying' accounting method is now called 'hardware'
1321       
1322        - 'external' accounting method is now called 'software'
1323       
1324        - 'stupid' accounting method doesn't exist anymore
1325       
1326        - 'snmp' requester doesn't exist anymore
1327       
1328        - code simplifications in external requester
1329       
[1473]1330    - 1.19alpha7 :
1331     
1332        - Database schema change (both LDAP and PostgreSQL) to
1333          allow storage of the job-originating-hostname attribute.
1334          An SQL upgrade script is present. The code is not yet
1335          capable of setting/retrieving this attribute. Support
1336          for this functionnality will be added in the future.
1337         
[1463]1338    - 1.19alpha6 :
1339   
[1471]1340        - problems connecting to SMTP servers are now catched.
1341       
[1463]1342        - pykotme now uses pkpgcounter to compute the size of the
1343          job. This modification adds PCL5 and soon PCLXL (PCL6)
1344          support. You can now get quotes for PCL in addition to
1345          PostScript.
1346         
[1464]1347        - pkpgcounter now includes first try at PCLXL parser. 
1348          It is currently disabled until it's finished.
1349         
[1451]1350    - 1.19alpha5 :
1351   
[1458]1352        - cupspykota polling loop fix for MacOSX (at least)
1353       
[1459]1354        - logging subsystem now logs PID too, to ease diagnosing
1355          problems under heavy load.
1356         
[1456]1357        - pkpgcounter enhancements.
1358       
[1453]1359        - pkprinters --skipexisting now tells pkprinters to not
1360          modify existing printers when --add is used.
1361          pkprinters logs a warning message whenever --add is
1362          used and a printer already exists.
[1451]1363         
[1455]1364        - LDAP schema now allows accented chars in pykotaFileName
1365          and pykotaTitle attributes.
1366       
[1447]1367    - 1.19alpha4 :
1368   
1369        - a bad copy&paste prevented pkpgcounter to work at all, this
1370          is now fixed.
1371         
[1451]1372        - improved PCL support in pkpgcounter, with the use of
1373          HP PCL/PJL Reference Set
1374          PCL5 Printer Language Technical Quick Reference Guide
[1449]1375       
1376        - pkpgcounter now uses mmap to speed things up : duration
[1450]1377          is halved with the sample 87 pages PCL document I use for
1378          testing.
[1448]1379         
[1437]1380    - 1.19alpha3 :
1381   
1382        - pkprinters now accepts the --list command line argument
1383          to list informations about printers.
1384         
[1430]1385    - 1.19alpha2 :
1386   
1387        - pkpgcounter is now included as a smart external
1388          accounter which can handle both PostScript and PCL.
1389         
[1417]1390    - 1.19alpha1 :
1391   
[1421]1392        - PYKOTALIMITBY environment variable is now exported too.
1393       
[1417]1394        - Inclusion of Michele Baldessari's work on autotools.
1395       
[1415]1396    - 1.18 :
1397   
1398        - Improved documentation
1399       
[1411]1400    - 1.18beta2 :
1401     
1402        - Fix for raw jobs with cupspykota
1403       
[1404]1404    - 1.18beta :
1405   
[1405]1406        - Small fix for new waitprinter.sh script
1407       
[1404]1408        - Better tracebacks on error conditions
1409       
1410        - Improved translations
1411       
1412        - Improved documentation
1413       
[1396]1414    - 1.18alpha15 :
[1398]1415
1416        - waitprinter.sh replaced by a new and possibly faster
[1404]1417          and more powerful one.
[1396]1418   
1419        - Names can now begin with a digit.
1420       
[1398]1421        - Stability improvement for quotas set on printers groups.
[1396]1422       
[1381]1423    - 1.18alpha14 :
1424   
[1384]1425        - Catches more (all ?) problems with SMTP servers instead
1426          of breaking.
1427         
[1381]1428        - Italian translation added.
1429       
[1376]1430    - 1.18alpha13 :
1431   
1432        - Pre and Post hooks are now available in the pykota
1433          filter as well.
1434         
1435        - The pykota filter doesn't check last user's quota
[1377]1436          anymore when delayed hardware accounting is used :
1437          this will be done anyway the next time the last
1438          user will print again. This saves some database
1439          queries which are unneeded.
[1376]1440       
[1372]1441    - 1.18alpha12 :
1442   
[1376]1443        - Pre and Post hooks to external commands with many
[1372]1444          many environment variables available are useable
1445          from the cupspykota backend.
1446          See sample configuration file for details and help.
1447         
[1368]1448    - 1.18alpha11 :
1449   
1450        - Hopefully final fix wrt groups (users and printers)
1451       
[1365]1452    - 1.18alpha10 :
1453   
1454        - Fixed nested printer groups accounting.
1455       
1456        - Fixed user groups + printer groups problem.
1457       
[1360]1458    - 1.18alpha9 :
1459   
[1363]1460        - Fix for LDAP problem when job price was 0.
1461       
[1362]1462        - Fix for empty user groups with LDAP.
1463       
[1360]1464        - Preliminary version of the snmpprinterstatus command added.
1465       
[1358]1466    - 1.18alpha8 :
1467   
1468        - Don't retrieve data when not needed.
1469          This avoids many database queries.
1470       
[1356]1471    - 1.18alpha7 :
1472   
1473        - New experimental ldapcache directive to improve
1474          LDAP caching.
1475         
[1353]1476    - 1.18alpha6 :
1477       
1478        - New configuration directive added : maildomain
1479          to specify the domain to send mail to when user
1480          email address is not set in PyKota database.
1481         
1482        - More complete email message headers. 
1483         
[1351]1484    - 1.18alpha5 :
1485   
1486        - Debian packaging specific files, contributed by
1487          Peter Hawkins are now included in the project's tree.
1488         
1489        - Preliminary work on future low-level LDAP caching to speed
1490          up modifications (at least).
1491         
[1338]1492    - 1.18alpha4 :
1493   
[1345]1494        - Applied some of the modifications suggested by
1495          Peter Hawkins, for better Debian integration.
1496          Most notably cupspykota, pykota, and the shell
1497          scripts are now installed into /usr/share/pykota
1498          instead of into /usr/bin
1499          BEWARE : double check that your symbolic link
1500          to cupspykota is correct, and that your pykota.conf
1501          file use correct path for the shell scripts like
1502          waitprinter.sh and al.
1503         
[1338]1504        - pkhint command added, to help in configuring correct
1505          accounting method for PyKota.
1506         
[1336]1507    - 1.18alpha3 :
1508   
1509        - Fixed a rare bug in cupspykota backend which gave
1510          incorrect "CUPS backend died abnormally" messages.
1511       
[1330]1512    - 1.18alpha2 :
1513   
1514        - Added the pkprinters command line tool to manage printers
1515          exclusively.
1516       
[1328]1517    - 1.18alpha1 :
1518   
1519        - Preliminary work on Relationnal Database Independance.
1520       
1521        - Sample report made from OpenOffice.org added as PDF and SXC.
1522       
[1323]1523    - 1.17 :
1524   
1525        - Finalized release.
1526       
[1321]1527    - 1.17alpha2 :
1528   
1529        - Fix stupid software accounting bug in the CUPS backend.
1530       
[1318]1531    - 1.17alpha1 :
1532   
1533        - User/Group deletion code in edpykota rewritten.
1534       
[1308]1535    - 1.16 :
1536   
1537        - Preliminary documentation on how to use OpenOffice.org
1538          to create personnalized reports for PyKota + PostgreSQL.
1539         
1540        - Spanish installation guide for CUPS+PyKota+PostgreSQL
1541          added to the documentation. Doesn't yet document v1.16
1542          though.
1543       
[2119]1544        - Portuguese Portuguese translation replaces Brazilian
1545          Portuguese Translation. Brazilian portuguese
[1308]1546          translation is still available under the 'br' locale.
1547       
[1301]1548    - 1.16beta3 :
1549   
1550        - Swedish translation added.
1551       
1552        - Small fix in documentation.
1553       
[1291]1554    - 1.16beta2 :
1555   
1556        - Small fix for job cancelling code while job already
1557          printing in CUPS backend.
[1293]1558         
1559        - Big fix wrt printing policies for unknown users. 
[1291]1560       
[1287]1561    - 1.16beta1 :
1562   
1563        - Manpages upgraded.
1564       
[1285]1565    - 1.16alpha26 :
1566   
1567        - Job price is now computed like this :
1568       
1569          SUM((NbPages * PricePerPage) + PricePerJob)
1570         
1571          For current printer and all the printers groups it is
[1286]1572          a member of, if any.
[1285]1573         
1574          This may be difficult to grasp, but offers unprecedented
1575          flexibility.
1576         
[1284]1577    - 1.16alpha25 :
1578   
1579        - Email address can be set at user creation time,
1580          using the following syntax :
1581         
1582            $ edpykota --add username/email@yourdomain.com
1583       
[1271]1584    - 1.16alpha24 :
1585   
[1274]1586        - CGI script now can show the printing history.
1587       
[1272]1588        - Bug wrt number of copies should be fixed.
1589       
[1271]1590        - Major code refactoring => It is now possible to
1591          automatically add printers on first print.
1592       
[1269]1593    - 1.16alpha23 :
1594   
[1270]1595        - Fixed potential accuracy problem if a user printed on
1596          several printers at the very same time.
[1269]1597       
[1258]1598    - 1.16alpha22 :
1599   
1600        - edpykota now allows adding printers to printer groups
1601       
[1248]1602    - 1.16alpha21 :
1603   
1604        - Allows the dot in user and printer names.
1605       
[1249]1606        - Printer groups are now cached too.
1607       
[1240]1608    - 1.16alpha20 :
1609   
1610        - Fixed several small bugs with the help of PyChecker.
1611       
1612    - 1.16alpha19 :
1613     
1614        - Fixed a bug in PostgreSQL backend's code.
1615       
1616    - 1.16alpha18 :
1617   
1618        - Initial code for printer groups support. Printer groups have
1619          to be added with external tools like psql or gq for example.
1620          Printer groups seems to work fine with users. Untested with user
1621          groups for now.
1622
1623        - Several minor visual problems fixed in reports.
1624       
1625        - Fixed a bug in LDAP date handling.
1626       
1627        - Fix for LDAP problem with some combination of OpenLDAP + Python-LDAP
1628          + some particular settings.
1629         
1630        - mailandpopup.sh shell script added. See sample configuration file
1631          for details.
1632       
1633        - Several environment variables are now exported when executing
1634          external commands (accounters, requesters, mailers) :
1635           
1636            PYKOTAUSERNAME => user who is printing
1637            PYKOTAPRINTERNAME => printer on which the job is being sent
1638            PYKOTATITLE => Job's title
1639            PYKOTAFILENAME => Job's filename
1640            PYKOTACOPIES => number of copies asked
1641            PYKOTAOPTIONS => print command options (-o with CUPS)
1642         
[1239]1643    - 1.16alpha17 :
[1227]1644   
[1239]1645        - Added portugues translation.
1646       
1647        - Major code refactoring in accounters.
1648       
1649    - 1.16alpha16 :
1650   
[1235]1651        - Code refactoring, and addition of a real HTML reporter, to
1652          have nice looking and useful web based reports (in the future).
1653       
[1227]1654        - Added utolower configuration option to convert all usernames
1655          to lowercase during printing.
1656         
[1226]1657    - 1.15alpha15 :
1658   
1659        - Now includes the papwaitprinter.sh shell script to wait for
1660          AppleTalk enabled printers.
1661         
[1221]1662    - 1.16alpha14 :
1663   
1664        - Now printing on a printer not defined in the Quota Storage,
1665          results in the job being cancelled or stopped, depending
1666          on the printing system.
1667         
[1212]1668    - 1.16alpha13 :
1669   
1670        - Small bugfix wrt Python v2.1
1671       
[1215]1672        - If username is an empty string, user root is assumed.
[1220]1673       
1674        - 'postgresql' is not recognized anymore as a storage backend,
1675          you have to use 'pgstorage' instead. 'postgresql' used to
1676          be supported for compatibility with very old PyKota versions,
1677          this is not the case anymore.
[1212]1678         
[1203]1679    - 1.16alpha12 :
1680   
1681        - Job price added to job history, to keep accounting correct
1682          if a printer price per page or per job is modified and the
1683          history is not reset : the history would have given a false
1684          amount of money charged before the printer's prices were
1685          modified, this addition solves the problem.
1686         
[1200]1687    - 1.16alpha11 :
1688   
1689        - Some preliminary modifications to the database structure for
1690          PostgreSQL and OpenLDAP. A script to upgrade a PostgreSQL
1691          database is now provided. LDAP attributes now support
1692          eq, pres and sub indexes.
1693         
1694        - Job history now contains additional informations : 
1695          number of copies, filename, title and print options.
1696         
[1194]1697    - 1.16alpha10 :
[1196]1698       
1699        - Some modifications done to external policy handling.
1700          See sample configuration file for details.
[1194]1701   
1702        - Spanish translation added.
1703       
[1192]1704    - 1.16alpha9 :
1705   
1706        - mailto can be set to external(...) to warn users above
1707          quota with any command of your choice (e.g. linpopup).
1708          Several parameters are available, see sample configuration
1709          file for details.
1710         
[1189]1711    - 1.16alpha8 :
1712   
[1191]1713        - Now cupspykota transmits SIGTERMS to the original 
1714          backend when the user deletes a job being processed.
1715         
[1189]1716        - The documentation is now licensed under the terms of the
1717          GNU GPL too.
1718         
[1185]1719    - 1.16alpha7 :
1720   
1721        - The CUPS backend is now fully functionnal (it seems).
1722       
1723        - From now on, the use of the pykota filter with CUPS
1724          is deprecated. The pykota filter still has to be
1725          used with LPRng though.
1726       
[1179]1727    - 1.16alpha6 :
1728   
1729        - Bug fixed : when edpykota was used to add a printer
1730          with no user or group name, a bad user/group name "*" was
1731          added to the database.
1732         
[1178]1733    - 1.16alpha5 :
1734   
1735        - New CUPS backend supports device enumeration !
1736          This means that NO manual CUPS configuration has to
1737          be done. All can now be done from CUPS web interface.
1738       
[1177]1739    - 1.16alpha4 :
1740   
1741        - New CUPS backend added.
1742       
[1175]1743    - 1.16alpha3 :
1744       
1745        - Minimal FAQ document added.
1746       
[1172]1747    - 1.16alpha2 :
1748   
1749        - CGI script now partially supports browser's language preference
1750       
[1170]1751    - 1.16alpha1 :
1752   
1753        - Ensures that the LDAP connection is really closed at end.
1754       
1755        - More complete error messages in case of LDAP operation failure.
1756       
[1168]1757    - 1.15 :
1758     
1759        - Documentation improved.
1760       
[1156]1761    - 1.15beta :
1762   
1763        - Command line tools now accept multiple printer
1764          names or wildcards, separated with commas.
1765         
[1152]1766    - 1.15alpha9 :
1767   
1768        - External policy can be used to auto-add unknown users
1769          and any other interesting things you may want to do.
1770          WARNING : You can't auto-add printers for now.
1771          They have to be created manually before.
1772          Look at sample configuration file for examples.
1773         
[1149]1774    - 1.15alpha8 :
1775   
1776        - Job history can be disabled if needed.
1777          This feature may be useful for people who use the LDAP
1778          backend and don't want their LDAP tree to grow out of
1779          control.
1780       
[1138]1781    - 1.15alpha7 :
1782   
1783        - More work done on caching wrt groups.
1784       
[1135]1785    - 1.15alpha6 :
1786   
1787        - Performance bottleneck with LDAP solved.
1788       
[1130]1789    - 1.15alpha5 :
1790   
1791        - Caching mechanism for all database queries.
1792
[1123]1793    - 1.15alpha4 :
1794   
1795        - Problem with Python 2.3 fixed. Needs some definitive
1796          modification.
1797         
[1121]1798    - 1.15alpha3 :
1799   
1800        - CGI script now tries to restrict view when the
1801          REMOTE_USER environment variable is set. This allows
1802          people to protect its use with .htaccess files.
1803          When unprotected, or if REMOTE_USER is 'root', then
1804          unrestricted access is granted.
[1122]1805          NB : REMOTE_USER is automatically set by the web server
1806          (e.g. Apache) when a page with restricted access is viewed.
[1121]1807         
[1116]1808    - 1.15alpha2 :
1809   
1810        - Better detection of LPRng.
1811       
1812        - Outputs a warning if printing system is unknown.
1813       
[1115]1814    - 1.15alpha1 :
1815   
1816        - Bug fix in SQL code.
1817       
[1113]1818    - 1.14 :
1819   
1820        - The PostgreSQL database connection is now always closed before
1821          exit. The LDAP database connection too, but it didn't suffer
1822          from the problem anyway, AFAICT.
1823       
[1111]1824    - 1.14beta2 :
1825   
1826        - An LDAP-specific configuration field was introduced, usermail.
1827          Use it to specify which LDAP attribute contains a valid email
1828          address for the user. See sample configuration file for
1829          details.
1830       
[1105]1831    - 1.14beta :
1832   
1833        - Two new LDAP-specific configuration fields were introduced,
1834          newuser and newgroup. Use them to specify if you want to add
1835          quota information to existing entries or elsewhere.
1836          See sample configuration file for details.
1837         
[1099]1838    - 1.14alpha9 :
1839   
1840        - Documentation improved.
1841       
1842        - pykotme now also prints the user's account balance value
1843          if the user is registered in the Quota Storage and his
1844          limiting factor is "balance".
1845         
[1095]1846    - 1.14alpha8 :
1847   
1848        - bin/waitprinter.sh is now included to wait for
1849          SNMP enabled printers to be idle again before
1850          asking for their internal page counter.
1851          See sample configuration file for details.
1852         
[1089]1853    - 1.14alpha7 :
1854   
1855        - edpykota now doesn't check if the user/group is above
1856          quota. The check is only done at print time. This
1857          prevents the sending of email messages when creating
1858          user quotas if quota is already reached at creation
1859          time.
1860         
[1087]1861    - 1.14alpha6 :
1862   
1863        - Configuration file split and moved to /etc/pykota/pykota.conf
1864          and /etc/pykota/pykotadmin.conf to prevent simple users to
1865          have Read/Write access to the Quota Database.
1866          Don't forget to :
1867         
1868                $ chmod 640 /etc/pykota/pykotadmin.conf
1869               
1870        - storageuser and storageuserpw configuration fields reintroduced
1871          for the same reason.
1872         
1873        - Code cleaning for future implementation of email addresses
1874          support in the PostgreSQL and LDAP backends.
1875         
[1085]1876    - 1.14alpha5 :
1877       
1878        - Big bug fixed when changing the prices for a printer
1879       
[1082]1880    - 1.14alpha4 :
1881   
1882        - When adding an user, the user itself and its account balance
1883          are now added in the same LDAP entry. Before they were added
1884          as two different LDAP entries.
1885         
[1079]1886    - 1.14alpha3 :
1887   
1888        - Email field added to PostgreSQL database. An upgrade script
1889          is included in initscripts/postgresql.
1890       
[1078]1891    - 1.14alpha2 :
1892   
1893        - Typo fixed when using the --prototype option to edpykota
1894       
[1077]1895    - 1.14alpha1 :
1896   
1897        - Poor man's treshold included : users with a low account
1898          balance (below 1.0 by default, configurable) are sent
1899          a warning message.
1900         
1901        - All warning messages to users are now configurable. 
1902          NB : Warning messages to the administrator are not.
1903       
[1068]1904    - 1.13 :
1905   
[1072]1906        - Some small fixes wrt group handling.
1907       
[1068]1908        - The whole module code was passed through PyChecker and
1909          several small code inconsistencies were fixed,
1910          as well as a bug in the groups code.
1911         
[1067]1912    - 1.13alpha1 :
1913   
1914        - Bug fix wrt LDAP.
1915       
[1065]1916    - 1.12 :
1917   
1918        - More complete test added in edpykota.
1919       
[1062]1920    - 1.12alpha2 :
1921   
1922        - The previous bug fix was incomplete. This is corrected.
1923       
[1061]1924    - 1.12alpha1 :
1925   
1926        - Small bug fix.
1927       
[1057]1928    - 1.11 :
1929   
1930        - Now includes the pykotme command line tool, to produce
1931          printing quotes for users.
1932         
[1056]1933    - 1.10 :
1934   
1935        - Bug fixed wrt quota reports when print limiting is by
1936          account balance.
1937         
[1052]1938    - 1.09 :
1939   
1940        - Translations finalized.
1941       
1942        - Manpages updated.
1943       
1944        - Installation documentation improved wrt LDAP support.
1945       
[1049]1946    - 1.09beta2 :
1947   
1948        - The CGI script for quota reports works again, and
1949          is much more powerful.
1950       
[1043]1951    - 1.09beta :
1952   
1953        - edpykota finalized
1954       
[1041]1955    - 1.09alpha2 :
1956   
1957        - LDAP schema modified a bit. Please upgrade.
1958       
1959        - LDAP backend works !
1960       
1961        - repykota and warnpykota allow the root user to pass
1962          users or groups names on the command line. Users
1963          and groups names may contain wildcards.
1964         
1965        - repykota and warnpykota only reports or warns the
1966          current user when launched by non-root users.
1967         
1968        - Minor bug fixes. 
1969   
[1029]1970    - 1.09alpha1 :
1971   
1972        - More work on LDAP storage backend. Many options
1973          were added to /etc/pykota.conf to give some
1974          hints to the LDAP storage backend.
[1044]1975         
1976        - Severe database access optimizations were done by
1977          rewriting most of the Quota Storage backends drivers.
[1029]1978     
[1027]1979    - 1.08 :
1980   
1981        - Major bug fix wrt LPRng support for remote jobs.
[1029]1982       
[1027]1983        - Major bug fix wrt increase/decrease account balances.
1984       
[1021]1985    - 1.08alpha8 :
1986   
1987        - Code refactoring.
[1029]1988       
[1021]1989        - A single user/password pair is used to connect
1990          to the database backend. The storageuser configuration
1991          field, and its associated passwords storageuserpw, are
1992          not used anymore.
[1029]1993         
[1022]1994        - You can now set PyKota in debug mode, see sample configuration 
1995          file for details.
1996          WARNING : only Quota Storage backend queries are logged in
1997          debug mode, for now.
[1021]1998       
[1019]1999    - 1.08alpha7 :
2000   
2001        - Very latest LDAP schema.
[1029]2002       
[1019]2003        - Code enhancement wrt easy pluggability of PyKota attributes
2004          and object classes into an existing LDAP directory.
2005       
[1017]2006    - 1.08alpha6 :
2007   
2008        - Minor bug corrections
[1029]2009       
[1017]2010        - More work on LDAP : new schema
2011       
[1016]2012    - 1.08alpha5 :
2013   
[1017]2014        - More good work on LDAP storage.
2015          repykota now works reasonably well with the sample LDAP directory.
[1016]2016       
[1014]2017    - 1.08alpha4 :
2018   
2019        - LDAP schema included.
2020          THIS IS JUST FOR PEOPLE TO DISCUSS ABOUT THIS.
2021          LDAP SUPPORT DOESN'T WORK YET, AND THE SCHEMA
2022          MAY CHANGE IN THE FUTURE. PLEASE TELL US
2023          WHAT YOU THINK ABOUT THIS SCHEMA ON THE
2024          MAILING LIST.
2025         
[1000]2026    - 1.08alpha3 :
2027   
2028        - External accounting methods were partly rewritten :
2029         
2030          - No more "broken pipe" should happen.
2031         
2032          - They now take care of the number of copies
2033            This may be unneeded though, if the postscript
2034            file already does this, because this would
2035            overcharge users (number of copies counted
2036            two times). NEEDS MORE TESTING.
2037           
2038          - The sample configuration file now contains 
2039            an external accounting method example which should
2040            work with all DSC compliant Postscript files.
2041           
2042        - Some small bugs were fixed.   
2043       
[998]2044    - 1.08alpha2 :
2045   
2046        - Now works with net-snmp v5.0 and above.
2047          It already worked, but the sample configuration
[1000]2048          file didn't contain appropriate values...
[998]2049       
[991]2050    - 1.07 : Release of the Shame !
2051   
2052        - The external accounting methods driver was left out of
2053          the CVS tree. Nobody could use it since it wasn't included !
2054         
[989]2055    - 1.06 :
2056   
2057        - Severe bug fixed : if you had a printer in
2058          power saving state which couldn't answer immediately,
2059          a bug was triggered.
2060          It was caused by a bad copy/paste which
2061          forgot to import a Python module at run time.
2062         
[980]2063    - 1.05 :
2064   
2065        - External accounters are finally available !
2066          This means that you can plug any page accounting
2067          method you like by setting the appropriate
2068          'accounter' field in /etc/pykota.conf
2069          See the sample conf/pykota.conf.sample to
2070          learn how to do.
2071         
2072          NB : Both 'external' and 'stupid' accounting methods
2073               account a job size just before *this* job is
2074               sent to the printer.
2075               The original 'querying' method accounts a job
2076               size just before *the next* job is sent to
2077               the printer.
2078       
[976]2079    - 1.05alpha3 :
2080   
2081        - A 'stupid' and unreliable accounting method was
2082          implemented to serve as an example on how to
2083          do this sort of things. This method only counts
2084          the 'showpage' statements in the input data.
2085          See sample configuration file for details.
2086          Pluggable accounting methods work, but I advise
2087          you TO NOT USE THIS ONE WHICH IS JUST AN EXAMPLE.
2088          It is not reliable enough to be used.
[978]2089          Use the 'querying' accounting method instead.
[976]2090         
[973]2091    - 1.05alpha2 :
2092   
2093        - Pluggable accounting methods.
2094       
[975]2095        - Better error handling.
2096       
[962]2097    - 1.05alpha1 :
2098   
[969]2099        - SECURITY file added to help improve PyKota's security.
2100       
[962]2101        - Extracting the printer's internal page counter is now
2102          tried several times, waiting several seconds between
2103          two tries. This lets the time to warm up for some printers
2104          which don't answer when they are sleeping (my Apple
2105          LaserWriter 16/600 PS is in this case, maybe others too)
2106         
[970]2107        - Small display bug fixed in repykota
2108         
[960]2109    - 1.04 :
[956]2110   
2111        - Default print policy for users/groups unknown from
2112          the print quota system is now DENY instead of ALLOW,
2113          since ALLOW can generate inaccurate results
2114          (incorrect job sizes charged to the wrong persons)
2115         
[954]2116        - LPRng support works !
2117       
[953]2118        - A bug was introduced some time ago wrt printers' default
2119          policy for unknown users. It is now corrected.
2120       
[950]2121        - repykota now displays prices per job and per page for each
2122          printer, if they are defined.
2123         
[947]2124        - Minor display bug fixed in repykota.
2125       
2126        - Problem when running repykota with an empty database was fixed.
2127       
[942]2128    - 1.03 :
2129   
2130        - Upgrade script included for earlier versions.
2131          Please look inside the initscripts subdirectory.
[965]2132          THE DATABASE SCHEMA HAS CHANGED, PLEASE UPGRADE.
[942]2133         
[932]2134        - repykota now reports account balances too.
[929]2135       
[932]2136        - PyKota now has a nice logo, see the logos
2137          subdirectory.
2138       
[936]2139        - Manual pages were finally updated.
2140       
[927]2141        - Group quotas seem to work now !
2142       
[910]2143        - The new database schema allows to keep an history of all
2144          jobs as well as charge users per page and/or per job,
2145          and track users' account balance.
2146         
[917]2147        - edpykota now accepts much more command line options to 
2148          use the new functionnalities. See edpykota --help for
2149          details.
2150         
[885]2151        - The installation script now allows to install the sample
2152          configuration file during first installation.
[892]2153         
2154        - More group quota code works, but still not finished. 
[885]2155       
[894]2156        - The CGI script displays a link to PyKota's website.
2157       
[899]2158        - The job history is now kept, this will allow per-period
2159          reports in the future.
[900]2160         
2161        - After having modified the quota for an user with edpykota,
2162          a quota check is done to eventually warn the user/admin about
2163          a quota which is too low to print.
2164         
[901]2165        - A workaround is provided for HP Printers : their internal
2166          page counter is only saved to NVRAM in a 10 increment, so
2167          if you switch them off and then on, the reported page counter
2168          may be lower than the real number of pages printed.
2169          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
[909]2170          We unconditionnally set the last job's page count to
2171          abs(int((10 - abs(lastcounter(snmp) - lastcounter(storage)) / 2))
2172          in this case.
[908]2173          For a more accurate accounting, never switch your HP printers
2174          off.
[901]2175         
2176        - A fix is provided for printers which only have a volatile 
2177          page counter (reset to 0 every time you switch the printer on)
[908]2178          This should allow PyKota to work reasonably fine with HP Laserjet
2179          4L/5L/6L, not perfect, but better than nothing.
[901]2180          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
[908]2181          For a more accurate accounting, never switch your HP printers
[925]2182          off. This is untested, please report any problem.
[901]2183         
[907]2184        - A bug was fixed when edpykota --add was used with users who already
2185          had a quota on the specified printer.
2186         
[913]2187        - A small display bug in repykota was introduced in preliminary
2188          1.03 versions, and fixed later on.
[915]2189         
2190        - Some minor bugs which happened in rare situations were fixed.
[913]2191       
[919]2192        - Support for AppleTalk printers was added, see sample configuration
2193          file for details.
[925]2194         
2195        - Users and group printing can now be controlled (limited) either by 
2196          print quota or by account balance.
[919]2197       
[877]2198    - 1.02 :
[859]2199   
[871]2200        - The installation script now checks for software availability
2201          and in case a software is missing asks the user if he
2202          wants to continue with the installation or abort it.
2203         
[872]2204        - The configuration file pykota.conf is now expected to be
2205          found in /etc instead of in /etc/cups
2206          The installation script prompts the user to see if he
2207          wants to move an old configuration file to the new location
2208          if needed.
2209         
[859]2210        - Improved documentation.
2211       
2212        - You can now set the tcp/ip port on which the Quota Storage
2213          Server is listening, see sample configuration file for details.
2214       
[872]2215        - Better general error handling.
[859]2216       
[875]2217        - Upgrade script for pre 1.01 PostgreSQL database schema is now
2218          included as well.
2219       
[852]2220    - 1.01 :
2221   
2222        - The configuration file now accepts an option   
2223          to choose the recipient(s) of the email messages :
2224         
2225            - DevNull means no one will receive them.
2226            - User means only the user will receive them.
2227            - Admin means only the admin will receive them.
2228            - Both means the User and the Admin will receive them.
2229           
[853]2230        - The configuration file now uses hard-coded default values
2231          when an option is not set. See sample configuration file
2232          for details.
2233         
[852]2234        - Manual pages are included since 1.00, but I forgot to   
2235          add this information to this file.
2236         
[855]2237        - Redistribution terms for the official package have 
2238          softened and are now fully GPL compatible :
2239          unrestricted modification is now allowed even for
2240          the version number.
2241         
[846]2242    - 1.00 :
2243   
2244        - edpykota now accepts a --noquota option. This
2245          disable quota checking while still doing page
2246          accounting. This is really useful for people
2247          who don't want to limit their users but want
2248          to know how much pages they print.
2249         
2250        - Some untested scripts were added to retrieve
2251          the life time page counter of non-SNMP printers.
2252         
2253        - Every directory now has a specific README file. 
2254       
[833]2255    - 0.99 :
2256   
2257        - Under some circumstances while the user wasn't allowed
2258          to print, he didn't receive any email message. It is
2259          now fixed.
2260         
2261        - When an user wasn't allowed to print, the quota for
[835]2262          the previous user wasn't updated. This is now fixed.
[833]2263         
[827]2264    - 0.98 :
2265   
2266        - Correctly handle the case where the printer is switched off.
2267       
[828]2268        - Small bug wrt syslog fixed.
2269       
[819]2270    - 0.97 :
2271   
2272        - edpykota accepts wildcards on its command line for users/groups too
2273          if the --add option is not set, e.g. :
2274         
2275              $ edpykota --printer lp --softlimit 50 --hardlimit 100 "jer*"
2276             
[821]2277        - If no user name is passed at all, then a default wildcard of "*"
[819]2278          which means apply the command on ALL users for this printer is used.
2279         
2280        - Small bug fixes.
2281       
[803]2282    - 0.96 :
2283
[808]2284        - Options requester, policy, admin, adminmail and gracedelay can now
[807]2285          be set either globally or per printer. The printer option has
2286          priority if both are defined.
[803]2287
[807]2288        - More powerful configuration parser.
2289       
2290        - If all options are defined globally, there's no need to
2291          define a section for each printer in the configuration
2292          file anymore. Just define a [global] section and it's ok.
[803]2293
[797]2294    - 0.95 :
2295
[798]2296        - External requesters for printers finally added.
[797]2297
2298        - Full internationalization (english and french are supported)
2299 
2300        - More complete quota usage report
2301
2302        - CGI script to access to the quota usage report
2303
2304        - Several bugs fixed.
2305
2306
2307    - 0.9 :
2308
2309        - First public version
Note: See TracBrowser for help on using the browser.