root / pykota / trunk / NEWS @ 1220

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

Note about 'postgresql' vs 'pgstorage'

  • 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.16alpha13 :
25   
26        - Small bugfix wrt Python v2.1
27       
28        - If username is an empty string, user root is assumed.
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.
34         
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         
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         
53    - 1.16alpha10 :
54       
55        - Some modifications done to external policy handling.
56          See sample configuration file for details.
57   
58        - Spanish translation added.
59       
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         
67    - 1.16alpha8 :
68   
69        - Now cupspykota transmits SIGTERMS to the original 
70          backend when the user deletes a job being processed.
71         
72        - The documentation is now licensed under the terms of the
73          GNU GPL too.
74         
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       
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         
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       
95    - 1.16alpha4 :
96   
97        - New CUPS backend added.
98       
99    - 1.16alpha3 :
100       
101        - Minimal FAQ document added.
102       
103    - 1.16alpha2 :
104   
105        - CGI script now partially supports browser's language preference
106       
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       
113    - 1.15 :
114     
115        - Documentation improved.
116       
117    - 1.15beta :
118   
119        - Command line tools now accept multiple printer
120          names or wildcards, separated with commas.
121         
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         
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       
137    - 1.15alpha7 :
138   
139        - More work done on caching wrt groups.
140       
141    - 1.15alpha6 :
142   
143        - Performance bottleneck with LDAP solved.
144       
145    - 1.15alpha5 :
146   
147        - Caching mechanism for all database queries.
148
149    - 1.15alpha4 :
150   
151        - Problem with Python 2.3 fixed. Needs some definitive
152          modification.
153         
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.
161          NB : REMOTE_USER is automatically set by the web server
162          (e.g. Apache) when a page with restricted access is viewed.
163         
164    - 1.15alpha2 :
165   
166        - Better detection of LPRng.
167       
168        - Outputs a warning if printing system is unknown.
169       
170    - 1.15alpha1 :
171   
172        - Bug fix in SQL code.
173       
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       
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       
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         
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         
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         
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         
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         
232    - 1.14alpha5 :
233       
234        - Big bug fixed when changing the prices for a printer
235       
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         
242    - 1.14alpha3 :
243   
244        - Email field added to PostgreSQL database. An upgrade script
245          is included in initscripts/postgresql.
246       
247    - 1.14alpha2 :
248   
249        - Typo fixed when using the --prototype option to edpykota
250       
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       
260    - 1.13 :
261   
262        - Some small fixes wrt group handling.
263       
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         
268    - 1.13alpha1 :
269   
270        - Bug fix wrt LDAP.
271       
272    - 1.12 :
273   
274        - More complete test added in edpykota.
275       
276    - 1.12alpha2 :
277   
278        - The previous bug fix was incomplete. This is corrected.
279       
280    - 1.12alpha1 :
281   
282        - Small bug fix.
283       
284    - 1.11 :
285   
286        - Now includes the pykotme command line tool, to produce
287          printing quotes for users.
288         
289    - 1.10 :
290   
291        - Bug fixed wrt quota reports when print limiting is by
292          account balance.
293         
294    - 1.09 :
295   
296        - Translations finalized.
297       
298        - Manpages updated.
299       
300        - Installation documentation improved wrt LDAP support.
301       
302    - 1.09beta2 :
303   
304        - The CGI script for quota reports works again, and
305          is much more powerful.
306       
307    - 1.09beta :
308   
309        - edpykota finalized
310       
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   
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.
331         
332        - Severe database access optimizations were done by
333          rewriting most of the Quota Storage backends drivers.
334     
335    - 1.08 :
336   
337        - Major bug fix wrt LPRng support for remote jobs.
338       
339        - Major bug fix wrt increase/decrease account balances.
340       
341    - 1.08alpha8 :
342   
343        - Code refactoring.
344       
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.
349         
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.
354       
355    - 1.08alpha7 :
356   
357        - Very latest LDAP schema.
358       
359        - Code enhancement wrt easy pluggability of PyKota attributes
360          and object classes into an existing LDAP directory.
361       
362    - 1.08alpha6 :
363   
364        - Minor bug corrections
365       
366        - More work on LDAP : new schema
367       
368    - 1.08alpha5 :
369   
370        - More good work on LDAP storage.
371          repykota now works reasonably well with the sample LDAP directory.
372       
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         
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       
400    - 1.08alpha2 :
401   
402        - Now works with net-snmp v5.0 and above.
403          It already worked, but the sample configuration
404          file didn't contain appropriate values...
405       
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         
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         
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       
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.
445          Use the 'querying' accounting method instead.
446         
447    - 1.05alpha2 :
448   
449        - Pluggable accounting methods.
450       
451        - Better error handling.
452       
453    - 1.05alpha1 :
454   
455        - SECURITY file added to help improve PyKota's security.
456       
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         
463        - Small display bug fixed in repykota
464         
465    - 1.04 :
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         
472        - LPRng support works !
473       
474        - A bug was introduced some time ago wrt printers' default
475          policy for unknown users. It is now corrected.
476       
477        - repykota now displays prices per job and per page for each
478          printer, if they are defined.
479         
480        - Minor display bug fixed in repykota.
481       
482        - Problem when running repykota with an empty database was fixed.
483       
484    - 1.03 :
485   
486        - Upgrade script included for earlier versions.
487          Please look inside the initscripts subdirectory.
488          THE DATABASE SCHEMA HAS CHANGED, PLEASE UPGRADE.
489         
490        - repykota now reports account balances too.
491       
492        - PyKota now has a nice logo, see the logos
493          subdirectory.
494       
495        - Manual pages were finally updated.
496       
497        - Group quotas seem to work now !
498       
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         
503        - edpykota now accepts much more command line options to 
504          use the new functionnalities. See edpykota --help for
505          details.
506         
507        - The installation script now allows to install the sample
508          configuration file during first installation.
509         
510        - More group quota code works, but still not finished. 
511       
512        - The CGI script displays a link to PyKota's website.
513       
514        - The job history is now kept, this will allow per-period
515          reports in the future.
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         
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
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.
529          For a more accurate accounting, never switch your HP printers
530          off.
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)
534          This should allow PyKota to work reasonably fine with HP Laserjet
535          4L/5L/6L, not perfect, but better than nothing.
536          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
537          For a more accurate accounting, never switch your HP printers
538          off. This is untested, please report any problem.
539         
540        - A bug was fixed when edpykota --add was used with users who already
541          had a quota on the specified printer.
542         
543        - A small display bug in repykota was introduced in preliminary
544          1.03 versions, and fixed later on.
545         
546        - Some minor bugs which happened in rare situations were fixed.
547       
548        - Support for AppleTalk printers was added, see sample configuration
549          file for details.
550         
551        - Users and group printing can now be controlled (limited) either by 
552          print quota or by account balance.
553       
554    - 1.02 :
555   
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         
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         
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       
571        - Better general error handling.
572       
573        - Upgrade script for pre 1.01 PostgreSQL database schema is now
574          included as well.
575       
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           
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         
590        - Manual pages are included since 1.00, but I forgot to   
591          add this information to this file.
592         
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         
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       
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
618          the previous user wasn't updated. This is now fixed.
619         
620    - 0.98 :
621   
622        - Correctly handle the case where the printer is switched off.
623       
624        - Small bug wrt syslog fixed.
625       
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             
633        - If no user name is passed at all, then a default wildcard of "*"
634          which means apply the command on ALL users for this printer is used.
635         
636        - Small bug fixes.
637       
638    - 0.96 :
639
640        - Options requester, policy, admin, adminmail and gracedelay can now
641          be set either globally or per printer. The printer option has
642          priority if both are defined.
643
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.
649
650    - 0.95 :
651
652        - External requesters for printers finally added.
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.