root / pykota / trunk / NEWS @ 1755

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

Added the --hardreset command line option to edpykota

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