root / pykota / trunk / NEWS @ 1220

Revision 1220, 22.4 kB (checked in by jalet, 21 years ago)

Note about 'postgresql' vs 'pgstorage'

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