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
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
[1248]24    - 1.16alpha21 :
25   
26        - Allows the dot in user and printer names.
27       
[1249]28        - Printer groups are now cached too.
29       
[1240]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         
[1239]65    - 1.16alpha17 :
[1227]66   
[1239]67        - Added portugues translation.
68       
69        - Major code refactoring in accounters.
70       
71    - 1.16alpha16 :
72   
[1235]73        - Code refactoring, and addition of a real HTML reporter, to
74          have nice looking and useful web based reports (in the future).
75       
[1227]76        - Added utolower configuration option to convert all usernames
77          to lowercase during printing.
78         
[1226]79    - 1.15alpha15 :
80   
81        - Now includes the papwaitprinter.sh shell script to wait for
82          AppleTalk enabled printers.
83         
[1221]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         
[1212]90    - 1.16alpha13 :
91   
92        - Small bugfix wrt Python v2.1
93       
[1215]94        - If username is an empty string, user root is assumed.
[1220]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.
[1212]100         
[1203]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         
[1200]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         
[1194]119    - 1.16alpha10 :
[1196]120       
121        - Some modifications done to external policy handling.
122          See sample configuration file for details.
[1194]123   
124        - Spanish translation added.
125       
[1192]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         
[1189]133    - 1.16alpha8 :
134   
[1191]135        - Now cupspykota transmits SIGTERMS to the original 
136          backend when the user deletes a job being processed.
137         
[1189]138        - The documentation is now licensed under the terms of the
139          GNU GPL too.
140         
[1185]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       
[1179]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         
[1178]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       
[1177]161    - 1.16alpha4 :
162   
163        - New CUPS backend added.
164       
[1175]165    - 1.16alpha3 :
166       
167        - Minimal FAQ document added.
168       
[1172]169    - 1.16alpha2 :
170   
171        - CGI script now partially supports browser's language preference
172       
[1170]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       
[1168]179    - 1.15 :
180     
181        - Documentation improved.
182       
[1156]183    - 1.15beta :
184   
185        - Command line tools now accept multiple printer
186          names or wildcards, separated with commas.
187         
[1152]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         
[1149]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       
[1138]203    - 1.15alpha7 :
204   
205        - More work done on caching wrt groups.
206       
[1135]207    - 1.15alpha6 :
208   
209        - Performance bottleneck with LDAP solved.
210       
[1130]211    - 1.15alpha5 :
212   
213        - Caching mechanism for all database queries.
214
[1123]215    - 1.15alpha4 :
216   
217        - Problem with Python 2.3 fixed. Needs some definitive
218          modification.
219         
[1121]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.
[1122]227          NB : REMOTE_USER is automatically set by the web server
228          (e.g. Apache) when a page with restricted access is viewed.
[1121]229         
[1116]230    - 1.15alpha2 :
231   
232        - Better detection of LPRng.
233       
234        - Outputs a warning if printing system is unknown.
235       
[1115]236    - 1.15alpha1 :
237   
238        - Bug fix in SQL code.
239       
[1113]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       
[1111]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       
[1105]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         
[1099]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         
[1095]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         
[1089]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         
[1087]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         
[1085]298    - 1.14alpha5 :
299       
300        - Big bug fixed when changing the prices for a printer
301       
[1082]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         
[1079]308    - 1.14alpha3 :
309   
310        - Email field added to PostgreSQL database. An upgrade script
311          is included in initscripts/postgresql.
312       
[1078]313    - 1.14alpha2 :
314   
315        - Typo fixed when using the --prototype option to edpykota
316       
[1077]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       
[1068]326    - 1.13 :
327   
[1072]328        - Some small fixes wrt group handling.
329       
[1068]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         
[1067]334    - 1.13alpha1 :
335   
336        - Bug fix wrt LDAP.
337       
[1065]338    - 1.12 :
339   
340        - More complete test added in edpykota.
341       
[1062]342    - 1.12alpha2 :
343   
344        - The previous bug fix was incomplete. This is corrected.
345       
[1061]346    - 1.12alpha1 :
347   
348        - Small bug fix.
349       
[1057]350    - 1.11 :
351   
352        - Now includes the pykotme command line tool, to produce
353          printing quotes for users.
354         
[1056]355    - 1.10 :
356   
357        - Bug fixed wrt quota reports when print limiting is by
358          account balance.
359         
[1052]360    - 1.09 :
361   
362        - Translations finalized.
363       
364        - Manpages updated.
365       
366        - Installation documentation improved wrt LDAP support.
367       
[1049]368    - 1.09beta2 :
369   
370        - The CGI script for quota reports works again, and
371          is much more powerful.
372       
[1043]373    - 1.09beta :
374   
375        - edpykota finalized
376       
[1041]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   
[1029]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.
[1044]397         
398        - Severe database access optimizations were done by
399          rewriting most of the Quota Storage backends drivers.
[1029]400     
[1027]401    - 1.08 :
402   
403        - Major bug fix wrt LPRng support for remote jobs.
[1029]404       
[1027]405        - Major bug fix wrt increase/decrease account balances.
406       
[1021]407    - 1.08alpha8 :
408   
409        - Code refactoring.
[1029]410       
[1021]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.
[1029]415         
[1022]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.
[1021]420       
[1019]421    - 1.08alpha7 :
422   
423        - Very latest LDAP schema.
[1029]424       
[1019]425        - Code enhancement wrt easy pluggability of PyKota attributes
426          and object classes into an existing LDAP directory.
427       
[1017]428    - 1.08alpha6 :
429   
430        - Minor bug corrections
[1029]431       
[1017]432        - More work on LDAP : new schema
433       
[1016]434    - 1.08alpha5 :
435   
[1017]436        - More good work on LDAP storage.
437          repykota now works reasonably well with the sample LDAP directory.
[1016]438       
[1014]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         
[1000]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       
[998]466    - 1.08alpha2 :
467   
468        - Now works with net-snmp v5.0 and above.
469          It already worked, but the sample configuration
[1000]470          file didn't contain appropriate values...
[998]471       
[991]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         
[989]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         
[980]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       
[976]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.
[978]511          Use the 'querying' accounting method instead.
[976]512         
[973]513    - 1.05alpha2 :
514   
515        - Pluggable accounting methods.
516       
[975]517        - Better error handling.
518       
[962]519    - 1.05alpha1 :
520   
[969]521        - SECURITY file added to help improve PyKota's security.
522       
[962]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         
[970]529        - Small display bug fixed in repykota
530         
[960]531    - 1.04 :
[956]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         
[954]538        - LPRng support works !
539       
[953]540        - A bug was introduced some time ago wrt printers' default
541          policy for unknown users. It is now corrected.
542       
[950]543        - repykota now displays prices per job and per page for each
544          printer, if they are defined.
545         
[947]546        - Minor display bug fixed in repykota.
547       
548        - Problem when running repykota with an empty database was fixed.
549       
[942]550    - 1.03 :
551   
552        - Upgrade script included for earlier versions.
553          Please look inside the initscripts subdirectory.
[965]554          THE DATABASE SCHEMA HAS CHANGED, PLEASE UPGRADE.
[942]555         
[932]556        - repykota now reports account balances too.
[929]557       
[932]558        - PyKota now has a nice logo, see the logos
559          subdirectory.
560       
[936]561        - Manual pages were finally updated.
562       
[927]563        - Group quotas seem to work now !
564       
[910]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         
[917]569        - edpykota now accepts much more command line options to 
570          use the new functionnalities. See edpykota --help for
571          details.
572         
[885]573        - The installation script now allows to install the sample
574          configuration file during first installation.
[892]575         
576        - More group quota code works, but still not finished. 
[885]577       
[894]578        - The CGI script displays a link to PyKota's website.
579       
[899]580        - The job history is now kept, this will allow per-period
581          reports in the future.
[900]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         
[901]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
[909]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.
[908]595          For a more accurate accounting, never switch your HP printers
596          off.
[901]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)
[908]600          This should allow PyKota to work reasonably fine with HP Laserjet
601          4L/5L/6L, not perfect, but better than nothing.
[901]602          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
[908]603          For a more accurate accounting, never switch your HP printers
[925]604          off. This is untested, please report any problem.
[901]605         
[907]606        - A bug was fixed when edpykota --add was used with users who already
607          had a quota on the specified printer.
608         
[913]609        - A small display bug in repykota was introduced in preliminary
610          1.03 versions, and fixed later on.
[915]611         
612        - Some minor bugs which happened in rare situations were fixed.
[913]613       
[919]614        - Support for AppleTalk printers was added, see sample configuration
615          file for details.
[925]616         
617        - Users and group printing can now be controlled (limited) either by 
618          print quota or by account balance.
[919]619       
[877]620    - 1.02 :
[859]621   
[871]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         
[872]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         
[859]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       
[872]637        - Better general error handling.
[859]638       
[875]639        - Upgrade script for pre 1.01 PostgreSQL database schema is now
640          included as well.
641       
[852]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           
[853]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         
[852]656        - Manual pages are included since 1.00, but I forgot to   
657          add this information to this file.
658         
[855]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         
[846]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       
[833]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
[835]684          the previous user wasn't updated. This is now fixed.
[833]685         
[827]686    - 0.98 :
687   
688        - Correctly handle the case where the printer is switched off.
689       
[828]690        - Small bug wrt syslog fixed.
691       
[819]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             
[821]699        - If no user name is passed at all, then a default wildcard of "*"
[819]700          which means apply the command on ALL users for this printer is used.
701         
702        - Small bug fixes.
703       
[803]704    - 0.96 :
705
[808]706        - Options requester, policy, admin, adminmail and gracedelay can now
[807]707          be set either globally or per printer. The printer option has
708          priority if both are defined.
[803]709
[807]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.
[803]715
[797]716    - 0.95 :
717
[798]718        - External requesters for printers finally added.
[797]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.