root / pykota / trunk / NEWS @ 1257

Revision 1257, 24.6 kB (checked in by jalet, 20 years ago)

Copyright year changed.

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