root / pykota / trunk / NEWS @ 1235

Revision 1235, 23.1 kB (checked in by jalet, 20 years ago)

Some code refactoring.
New HTML reporter added, which is now used in the CGI script for web based
print quota reports. It will need some de-uglyfication though...

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1# $Id$
2
3PyKota - Print Quota for CUPS
4
5(c) 2003 Jerome Alet <alet@librelogiciel.com>
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program; if not, write to the Free Software
18Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
19
20============================================================
21
22PyKota NEWS :
23
24    - 1.16alpah16 :
25   
26        - Code refactoring, and addition of a real HTML reporter, to
27          have nice looking and useful web based reports (in the future).
28       
29        - Added utolower configuration option to convert all usernames
30          to lowercase during printing.
31         
32    - 1.15alpha15 :
33   
34        - Now includes the papwaitprinter.sh shell script to wait for
35          AppleTalk enabled printers.
36         
37    - 1.16alpha14 :
38   
39        - Now printing on a printer not defined in the Quota Storage,
40          results in the job being cancelled or stopped, depending
41          on the printing system.
42         
43    - 1.16alpha13 :
44   
45        - Small bugfix wrt Python v2.1
46       
47        - If username is an empty string, user root is assumed.
48       
49        - 'postgresql' is not recognized anymore as a storage backend,
50          you have to use 'pgstorage' instead. 'postgresql' used to
51          be supported for compatibility with very old PyKota versions,
52          this is not the case anymore.
53         
54    - 1.16alpha12 :
55   
56        - Job price added to job history, to keep accounting correct
57          if a printer price per page or per job is modified and the
58          history is not reset : the history would have given a false
59          amount of money charged before the printer's prices were
60          modified, this addition solves the problem.
61         
62    - 1.16alpha11 :
63   
64        - Some preliminary modifications to the database structure for
65          PostgreSQL and OpenLDAP. A script to upgrade a PostgreSQL
66          database is now provided. LDAP attributes now support
67          eq, pres and sub indexes.
68         
69        - Job history now contains additional informations : 
70          number of copies, filename, title and print options.
71         
72    - 1.16alpha10 :
73       
74        - Some modifications done to external policy handling.
75          See sample configuration file for details.
76   
77        - Spanish translation added.
78       
79    - 1.16alpha9 :
80   
81        - mailto can be set to external(...) to warn users above
82          quota with any command of your choice (e.g. linpopup).
83          Several parameters are available, see sample configuration
84          file for details.
85         
86    - 1.16alpha8 :
87   
88        - Now cupspykota transmits SIGTERMS to the original 
89          backend when the user deletes a job being processed.
90         
91        - The documentation is now licensed under the terms of the
92          GNU GPL too.
93         
94    - 1.16alpha7 :
95   
96        - The CUPS backend is now fully functionnal (it seems).
97       
98        - From now on, the use of the pykota filter with CUPS
99          is deprecated. The pykota filter still has to be
100          used with LPRng though.
101       
102    - 1.16alpha6 :
103   
104        - Bug fixed : when edpykota was used to add a printer
105          with no user or group name, a bad user/group name "*" was
106          added to the database.
107         
108    - 1.16alpha5 :
109   
110        - New CUPS backend supports device enumeration !
111          This means that NO manual CUPS configuration has to
112          be done. All can now be done from CUPS web interface.
113       
114    - 1.16alpha4 :
115   
116        - New CUPS backend added.
117       
118    - 1.16alpha3 :
119       
120        - Minimal FAQ document added.
121       
122    - 1.16alpha2 :
123   
124        - CGI script now partially supports browser's language preference
125       
126    - 1.16alpha1 :
127   
128        - Ensures that the LDAP connection is really closed at end.
129       
130        - More complete error messages in case of LDAP operation failure.
131       
132    - 1.15 :
133     
134        - Documentation improved.
135       
136    - 1.15beta :
137   
138        - Command line tools now accept multiple printer
139          names or wildcards, separated with commas.
140         
141    - 1.15alpha9 :
142   
143        - External policy can be used to auto-add unknown users
144          and any other interesting things you may want to do.
145          WARNING : You can't auto-add printers for now.
146          They have to be created manually before.
147          Look at sample configuration file for examples.
148         
149    - 1.15alpha8 :
150   
151        - Job history can be disabled if needed.
152          This feature may be useful for people who use the LDAP
153          backend and don't want their LDAP tree to grow out of
154          control.
155       
156    - 1.15alpha7 :
157   
158        - More work done on caching wrt groups.
159       
160    - 1.15alpha6 :
161   
162        - Performance bottleneck with LDAP solved.
163       
164    - 1.15alpha5 :
165   
166        - Caching mechanism for all database queries.
167
168    - 1.15alpha4 :
169   
170        - Problem with Python 2.3 fixed. Needs some definitive
171          modification.
172         
173    - 1.15alpha3 :
174   
175        - CGI script now tries to restrict view when the
176          REMOTE_USER environment variable is set. This allows
177          people to protect its use with .htaccess files.
178          When unprotected, or if REMOTE_USER is 'root', then
179          unrestricted access is granted.
180          NB : REMOTE_USER is automatically set by the web server
181          (e.g. Apache) when a page with restricted access is viewed.
182         
183    - 1.15alpha2 :
184   
185        - Better detection of LPRng.
186       
187        - Outputs a warning if printing system is unknown.
188       
189    - 1.15alpha1 :
190   
191        - Bug fix in SQL code.
192       
193    - 1.14 :
194   
195        - The PostgreSQL database connection is now always closed before
196          exit. The LDAP database connection too, but it didn't suffer
197          from the problem anyway, AFAICT.
198       
199    - 1.14beta2 :
200   
201        - An LDAP-specific configuration field was introduced, usermail.
202          Use it to specify which LDAP attribute contains a valid email
203          address for the user. See sample configuration file for
204          details.
205       
206    - 1.14beta :
207   
208        - Two new LDAP-specific configuration fields were introduced,
209          newuser and newgroup. Use them to specify if you want to add
210          quota information to existing entries or elsewhere.
211          See sample configuration file for details.
212         
213    - 1.14alpha9 :
214   
215        - Documentation improved.
216       
217        - pykotme now also prints the user's account balance value
218          if the user is registered in the Quota Storage and his
219          limiting factor is "balance".
220         
221    - 1.14alpha8 :
222   
223        - bin/waitprinter.sh is now included to wait for
224          SNMP enabled printers to be idle again before
225          asking for their internal page counter.
226          See sample configuration file for details.
227         
228    - 1.14alpha7 :
229   
230        - edpykota now doesn't check if the user/group is above
231          quota. The check is only done at print time. This
232          prevents the sending of email messages when creating
233          user quotas if quota is already reached at creation
234          time.
235         
236    - 1.14alpha6 :
237   
238        - Configuration file split and moved to /etc/pykota/pykota.conf
239          and /etc/pykota/pykotadmin.conf to prevent simple users to
240          have Read/Write access to the Quota Database.
241          Don't forget to :
242         
243                $ chmod 640 /etc/pykota/pykotadmin.conf
244               
245        - storageuser and storageuserpw configuration fields reintroduced
246          for the same reason.
247         
248        - Code cleaning for future implementation of email addresses
249          support in the PostgreSQL and LDAP backends.
250         
251    - 1.14alpha5 :
252       
253        - Big bug fixed when changing the prices for a printer
254       
255    - 1.14alpha4 :
256   
257        - When adding an user, the user itself and its account balance
258          are now added in the same LDAP entry. Before they were added
259          as two different LDAP entries.
260         
261    - 1.14alpha3 :
262   
263        - Email field added to PostgreSQL database. An upgrade script
264          is included in initscripts/postgresql.
265       
266    - 1.14alpha2 :
267   
268        - Typo fixed when using the --prototype option to edpykota
269       
270    - 1.14alpha1 :
271   
272        - Poor man's treshold included : users with a low account
273          balance (below 1.0 by default, configurable) are sent
274          a warning message.
275         
276        - All warning messages to users are now configurable. 
277          NB : Warning messages to the administrator are not.
278       
279    - 1.13 :
280   
281        - Some small fixes wrt group handling.
282       
283        - The whole module code was passed through PyChecker and
284          several small code inconsistencies were fixed,
285          as well as a bug in the groups code.
286         
287    - 1.13alpha1 :
288   
289        - Bug fix wrt LDAP.
290       
291    - 1.12 :
292   
293        - More complete test added in edpykota.
294       
295    - 1.12alpha2 :
296   
297        - The previous bug fix was incomplete. This is corrected.
298       
299    - 1.12alpha1 :
300   
301        - Small bug fix.
302       
303    - 1.11 :
304   
305        - Now includes the pykotme command line tool, to produce
306          printing quotes for users.
307         
308    - 1.10 :
309   
310        - Bug fixed wrt quota reports when print limiting is by
311          account balance.
312         
313    - 1.09 :
314   
315        - Translations finalized.
316       
317        - Manpages updated.
318       
319        - Installation documentation improved wrt LDAP support.
320       
321    - 1.09beta2 :
322   
323        - The CGI script for quota reports works again, and
324          is much more powerful.
325       
326    - 1.09beta :
327   
328        - edpykota finalized
329       
330    - 1.09alpha2 :
331   
332        - LDAP schema modified a bit. Please upgrade.
333       
334        - LDAP backend works !
335       
336        - repykota and warnpykota allow the root user to pass
337          users or groups names on the command line. Users
338          and groups names may contain wildcards.
339         
340        - repykota and warnpykota only reports or warns the
341          current user when launched by non-root users.
342         
343        - Minor bug fixes. 
344   
345    - 1.09alpha1 :
346   
347        - More work on LDAP storage backend. Many options
348          were added to /etc/pykota.conf to give some
349          hints to the LDAP storage backend.
350         
351        - Severe database access optimizations were done by
352          rewriting most of the Quota Storage backends drivers.
353     
354    - 1.08 :
355   
356        - Major bug fix wrt LPRng support for remote jobs.
357       
358        - Major bug fix wrt increase/decrease account balances.
359       
360    - 1.08alpha8 :
361   
362        - Code refactoring.
363       
364        - A single user/password pair is used to connect
365          to the database backend. The storageuser configuration
366          field, and its associated passwords storageuserpw, are
367          not used anymore.
368         
369        - You can now set PyKota in debug mode, see sample configuration 
370          file for details.
371          WARNING : only Quota Storage backend queries are logged in
372          debug mode, for now.
373       
374    - 1.08alpha7 :
375   
376        - Very latest LDAP schema.
377       
378        - Code enhancement wrt easy pluggability of PyKota attributes
379          and object classes into an existing LDAP directory.
380       
381    - 1.08alpha6 :
382   
383        - Minor bug corrections
384       
385        - More work on LDAP : new schema
386       
387    - 1.08alpha5 :
388   
389        - More good work on LDAP storage.
390          repykota now works reasonably well with the sample LDAP directory.
391       
392    - 1.08alpha4 :
393   
394        - LDAP schema included.
395          THIS IS JUST FOR PEOPLE TO DISCUSS ABOUT THIS.
396          LDAP SUPPORT DOESN'T WORK YET, AND THE SCHEMA
397          MAY CHANGE IN THE FUTURE. PLEASE TELL US
398          WHAT YOU THINK ABOUT THIS SCHEMA ON THE
399          MAILING LIST.
400         
401    - 1.08alpha3 :
402   
403        - External accounting methods were partly rewritten :
404         
405          - No more "broken pipe" should happen.
406         
407          - They now take care of the number of copies
408            This may be unneeded though, if the postscript
409            file already does this, because this would
410            overcharge users (number of copies counted
411            two times). NEEDS MORE TESTING.
412           
413          - The sample configuration file now contains 
414            an external accounting method example which should
415            work with all DSC compliant Postscript files.
416           
417        - Some small bugs were fixed.   
418       
419    - 1.08alpha2 :
420   
421        - Now works with net-snmp v5.0 and above.
422          It already worked, but the sample configuration
423          file didn't contain appropriate values...
424       
425    - 1.07 : Release of the Shame !
426   
427        - The external accounting methods driver was left out of
428          the CVS tree. Nobody could use it since it wasn't included !
429         
430    - 1.06 :
431   
432        - Severe bug fixed : if you had a printer in
433          power saving state which couldn't answer immediately,
434          a bug was triggered.
435          It was caused by a bad copy/paste which
436          forgot to import a Python module at run time.
437         
438    - 1.05 :
439   
440        - External accounters are finally available !
441          This means that you can plug any page accounting
442          method you like by setting the appropriate
443          'accounter' field in /etc/pykota.conf
444          See the sample conf/pykota.conf.sample to
445          learn how to do.
446         
447          NB : Both 'external' and 'stupid' accounting methods
448               account a job size just before *this* job is
449               sent to the printer.
450               The original 'querying' method accounts a job
451               size just before *the next* job is sent to
452               the printer.
453       
454    - 1.05alpha3 :
455   
456        - A 'stupid' and unreliable accounting method was
457          implemented to serve as an example on how to
458          do this sort of things. This method only counts
459          the 'showpage' statements in the input data.
460          See sample configuration file for details.
461          Pluggable accounting methods work, but I advise
462          you TO NOT USE THIS ONE WHICH IS JUST AN EXAMPLE.
463          It is not reliable enough to be used.
464          Use the 'querying' accounting method instead.
465         
466    - 1.05alpha2 :
467   
468        - Pluggable accounting methods.
469       
470        - Better error handling.
471       
472    - 1.05alpha1 :
473   
474        - SECURITY file added to help improve PyKota's security.
475       
476        - Extracting the printer's internal page counter is now
477          tried several times, waiting several seconds between
478          two tries. This lets the time to warm up for some printers
479          which don't answer when they are sleeping (my Apple
480          LaserWriter 16/600 PS is in this case, maybe others too)
481         
482        - Small display bug fixed in repykota
483         
484    - 1.04 :
485   
486        - Default print policy for users/groups unknown from
487          the print quota system is now DENY instead of ALLOW,
488          since ALLOW can generate inaccurate results
489          (incorrect job sizes charged to the wrong persons)
490         
491        - LPRng support works !
492       
493        - A bug was introduced some time ago wrt printers' default
494          policy for unknown users. It is now corrected.
495       
496        - repykota now displays prices per job and per page for each
497          printer, if they are defined.
498         
499        - Minor display bug fixed in repykota.
500       
501        - Problem when running repykota with an empty database was fixed.
502       
503    - 1.03 :
504   
505        - Upgrade script included for earlier versions.
506          Please look inside the initscripts subdirectory.
507          THE DATABASE SCHEMA HAS CHANGED, PLEASE UPGRADE.
508         
509        - repykota now reports account balances too.
510       
511        - PyKota now has a nice logo, see the logos
512          subdirectory.
513       
514        - Manual pages were finally updated.
515       
516        - Group quotas seem to work now !
517       
518        - The new database schema allows to keep an history of all
519          jobs as well as charge users per page and/or per job,
520          and track users' account balance.
521         
522        - edpykota now accepts much more command line options to 
523          use the new functionnalities. See edpykota --help for
524          details.
525         
526        - The installation script now allows to install the sample
527          configuration file during first installation.
528         
529        - More group quota code works, but still not finished. 
530       
531        - The CGI script displays a link to PyKota's website.
532       
533        - The job history is now kept, this will allow per-period
534          reports in the future.
535         
536        - After having modified the quota for an user with edpykota,
537          a quota check is done to eventually warn the user/admin about
538          a quota which is too low to print.
539         
540        - A workaround is provided for HP Printers : their internal
541          page counter is only saved to NVRAM in a 10 increment, so
542          if you switch them off and then on, the reported page counter
543          may be lower than the real number of pages printed.
544          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
545          We unconditionnally set the last job's page count to
546          abs(int((10 - abs(lastcounter(snmp) - lastcounter(storage)) / 2))
547          in this case.
548          For a more accurate accounting, never switch your HP printers
549          off.
550         
551        - A fix is provided for printers which only have a volatile 
552          page counter (reset to 0 every time you switch the printer on)
553          This should allow PyKota to work reasonably fine with HP Laserjet
554          4L/5L/6L, not perfect, but better than nothing.
555          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
556          For a more accurate accounting, never switch your HP printers
557          off. This is untested, please report any problem.
558         
559        - A bug was fixed when edpykota --add was used with users who already
560          had a quota on the specified printer.
561         
562        - A small display bug in repykota was introduced in preliminary
563          1.03 versions, and fixed later on.
564         
565        - Some minor bugs which happened in rare situations were fixed.
566       
567        - Support for AppleTalk printers was added, see sample configuration
568          file for details.
569         
570        - Users and group printing can now be controlled (limited) either by 
571          print quota or by account balance.
572       
573    - 1.02 :
574   
575        - The installation script now checks for software availability
576          and in case a software is missing asks the user if he
577          wants to continue with the installation or abort it.
578         
579        - The configuration file pykota.conf is now expected to be
580          found in /etc instead of in /etc/cups
581          The installation script prompts the user to see if he
582          wants to move an old configuration file to the new location
583          if needed.
584         
585        - Improved documentation.
586       
587        - You can now set the tcp/ip port on which the Quota Storage
588          Server is listening, see sample configuration file for details.
589       
590        - Better general error handling.
591       
592        - Upgrade script for pre 1.01 PostgreSQL database schema is now
593          included as well.
594       
595    - 1.01 :
596   
597        - The configuration file now accepts an option   
598          to choose the recipient(s) of the email messages :
599         
600            - DevNull means no one will receive them.
601            - User means only the user will receive them.
602            - Admin means only the admin will receive them.
603            - Both means the User and the Admin will receive them.
604           
605        - The configuration file now uses hard-coded default values
606          when an option is not set. See sample configuration file
607          for details.
608         
609        - Manual pages are included since 1.00, but I forgot to   
610          add this information to this file.
611         
612        - Redistribution terms for the official package have 
613          softened and are now fully GPL compatible :
614          unrestricted modification is now allowed even for
615          the version number.
616         
617    - 1.00 :
618   
619        - edpykota now accepts a --noquota option. This
620          disable quota checking while still doing page
621          accounting. This is really useful for people
622          who don't want to limit their users but want
623          to know how much pages they print.
624         
625        - Some untested scripts were added to retrieve
626          the life time page counter of non-SNMP printers.
627         
628        - Every directory now has a specific README file. 
629       
630    - 0.99 :
631   
632        - Under some circumstances while the user wasn't allowed
633          to print, he didn't receive any email message. It is
634          now fixed.
635         
636        - When an user wasn't allowed to print, the quota for
637          the previous user wasn't updated. This is now fixed.
638         
639    - 0.98 :
640   
641        - Correctly handle the case where the printer is switched off.
642       
643        - Small bug wrt syslog fixed.
644       
645    - 0.97 :
646   
647        - edpykota accepts wildcards on its command line for users/groups too
648          if the --add option is not set, e.g. :
649         
650              $ edpykota --printer lp --softlimit 50 --hardlimit 100 "jer*"
651             
652        - If no user name is passed at all, then a default wildcard of "*"
653          which means apply the command on ALL users for this printer is used.
654         
655        - Small bug fixes.
656       
657    - 0.96 :
658
659        - Options requester, policy, admin, adminmail and gracedelay can now
660          be set either globally or per printer. The printer option has
661          priority if both are defined.
662
663        - More powerful configuration parser.
664       
665        - If all options are defined globally, there's no need to
666          define a section for each printer in the configuration
667          file anymore. Just define a [global] section and it's ok.
668
669    - 0.95 :
670
671        - External requesters for printers finally added.
672
673        - Full internationalization (english and french are supported)
674 
675        - More complete quota usage report
676
677        - CGI script to access to the quota usage report
678
679        - Several bugs fixed.
680
681
682    - 0.9 :
683
684        - First public version
Note: See TracBrowser for help on using the browser.