root / pykota / trunk / NEWS @ 1271

Revision 1271, 25.0 kB (checked in by jalet, 20 years ago)

Major code refactoring, it's way cleaner, and now allows automated addition
of printers on first print.

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