root / pykota / trunk / NEWS @ 2028

Revision 2028, 56.6 kB (checked in by jalet, 19 years ago)

Modified copyright years

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