root / pykota / trunk / NEWS @ 1292

Revision 1291, 25.8 kB (checked in by jalet, 21 years ago)

Small fix for job cancelling code.

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