root / pykota / trunk / NEWS @ 1135

Revision 1135, 18.7 kB (checked in by jalet, 21 years ago)

Performance bottleneck with LDAP solved.

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