root / pykota / trunk / NEWS @ 1284

Revision 1284, 25.3 kB (checked in by jalet, 20 years ago)

User's email address can now be set at user's creation time.

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