root / pykota / trunk / NEWS @ 1215

Revision 1215, 22.2 kB (checked in by jalet, 20 years ago)

Empty usernames are converted to 'root' for LPRng too.

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