root / pykota / trunk / NEWS @ 2882

Revision 2882, 78.1 kB (checked in by jerome, 18 years ago)

Exports more environment variables.

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