root / pykota / trunk / NEWS @ 1291

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
RevLine 
[797]1# $Id$
2
3PyKota - Print Quota for CUPS
4
[1257]5(c) 2003-2004 Jerome Alet <alet@librelogiciel.com>
[873]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.
[797]10
[873]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.
[797]15
[873]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
[797]20============================================================
21
22PyKota NEWS :
23
[1291]24    - 1.16beta2 :
25   
26        - Small fix for job cancelling code while job already
27          printing in CUPS backend.
28       
[1287]29    - 1.16beta1 :
30   
31        - Manpages upgraded.
32       
[1285]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
[1286]40          a member of, if any.
[1285]41         
42          This may be difficult to grasp, but offers unprecedented
43          flexibility.
44         
[1284]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       
[1271]52    - 1.16alpha24 :
53   
[1274]54        - CGI script now can show the printing history.
55       
[1272]56        - Bug wrt number of copies should be fixed.
57       
[1271]58        - Major code refactoring => It is now possible to
59          automatically add printers on first print.
60       
[1269]61    - 1.16alpha23 :
62   
[1270]63        - Fixed potential accuracy problem if a user printed on
64          several printers at the very same time.
[1269]65       
[1258]66    - 1.16alpha22 :
67   
68        - edpykota now allows adding printers to printer groups
69       
[1248]70    - 1.16alpha21 :
71   
72        - Allows the dot in user and printer names.
73       
[1249]74        - Printer groups are now cached too.
75       
[1240]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         
[1239]111    - 1.16alpha17 :
[1227]112   
[1239]113        - Added portugues translation.
114       
115        - Major code refactoring in accounters.
116       
117    - 1.16alpha16 :
118   
[1235]119        - Code refactoring, and addition of a real HTML reporter, to
120          have nice looking and useful web based reports (in the future).
121       
[1227]122        - Added utolower configuration option to convert all usernames
123          to lowercase during printing.
124         
[1226]125    - 1.15alpha15 :
126   
127        - Now includes the papwaitprinter.sh shell script to wait for
128          AppleTalk enabled printers.
129         
[1221]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         
[1212]136    - 1.16alpha13 :
137   
138        - Small bugfix wrt Python v2.1
139       
[1215]140        - If username is an empty string, user root is assumed.
[1220]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.
[1212]146         
[1203]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         
[1200]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         
[1194]165    - 1.16alpha10 :
[1196]166       
167        - Some modifications done to external policy handling.
168          See sample configuration file for details.
[1194]169   
170        - Spanish translation added.
171       
[1192]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         
[1189]179    - 1.16alpha8 :
180   
[1191]181        - Now cupspykota transmits SIGTERMS to the original 
182          backend when the user deletes a job being processed.
183         
[1189]184        - The documentation is now licensed under the terms of the
185          GNU GPL too.
186         
[1185]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       
[1179]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         
[1178]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       
[1177]207    - 1.16alpha4 :
208   
209        - New CUPS backend added.
210       
[1175]211    - 1.16alpha3 :
212       
213        - Minimal FAQ document added.
214       
[1172]215    - 1.16alpha2 :
216   
217        - CGI script now partially supports browser's language preference
218       
[1170]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       
[1168]225    - 1.15 :
226     
227        - Documentation improved.
228       
[1156]229    - 1.15beta :
230   
231        - Command line tools now accept multiple printer
232          names or wildcards, separated with commas.
233         
[1152]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         
[1149]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       
[1138]249    - 1.15alpha7 :
250   
251        - More work done on caching wrt groups.
252       
[1135]253    - 1.15alpha6 :
254   
255        - Performance bottleneck with LDAP solved.
256       
[1130]257    - 1.15alpha5 :
258   
259        - Caching mechanism for all database queries.
260
[1123]261    - 1.15alpha4 :
262   
263        - Problem with Python 2.3 fixed. Needs some definitive
264          modification.
265         
[1121]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.
[1122]273          NB : REMOTE_USER is automatically set by the web server
274          (e.g. Apache) when a page with restricted access is viewed.
[1121]275         
[1116]276    - 1.15alpha2 :
277   
278        - Better detection of LPRng.
279       
280        - Outputs a warning if printing system is unknown.
281       
[1115]282    - 1.15alpha1 :
283   
284        - Bug fix in SQL code.
285       
[1113]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       
[1111]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       
[1105]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         
[1099]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         
[1095]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         
[1089]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         
[1087]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         
[1085]344    - 1.14alpha5 :
345       
346        - Big bug fixed when changing the prices for a printer
347       
[1082]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         
[1079]354    - 1.14alpha3 :
355   
356        - Email field added to PostgreSQL database. An upgrade script
357          is included in initscripts/postgresql.
358       
[1078]359    - 1.14alpha2 :
360   
361        - Typo fixed when using the --prototype option to edpykota
362       
[1077]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       
[1068]372    - 1.13 :
373   
[1072]374        - Some small fixes wrt group handling.
375       
[1068]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         
[1067]380    - 1.13alpha1 :
381   
382        - Bug fix wrt LDAP.
383       
[1065]384    - 1.12 :
385   
386        - More complete test added in edpykota.
387       
[1062]388    - 1.12alpha2 :
389   
390        - The previous bug fix was incomplete. This is corrected.
391       
[1061]392    - 1.12alpha1 :
393   
394        - Small bug fix.
395       
[1057]396    - 1.11 :
397   
398        - Now includes the pykotme command line tool, to produce
399          printing quotes for users.
400         
[1056]401    - 1.10 :
402   
403        - Bug fixed wrt quota reports when print limiting is by
404          account balance.
405         
[1052]406    - 1.09 :
407   
408        - Translations finalized.
409       
410        - Manpages updated.
411       
412        - Installation documentation improved wrt LDAP support.
413       
[1049]414    - 1.09beta2 :
415   
416        - The CGI script for quota reports works again, and
417          is much more powerful.
418       
[1043]419    - 1.09beta :
420   
421        - edpykota finalized
422       
[1041]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   
[1029]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.
[1044]443         
444        - Severe database access optimizations were done by
445          rewriting most of the Quota Storage backends drivers.
[1029]446     
[1027]447    - 1.08 :
448   
449        - Major bug fix wrt LPRng support for remote jobs.
[1029]450       
[1027]451        - Major bug fix wrt increase/decrease account balances.
452       
[1021]453    - 1.08alpha8 :
454   
455        - Code refactoring.
[1029]456       
[1021]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.
[1029]461         
[1022]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.
[1021]466       
[1019]467    - 1.08alpha7 :
468   
469        - Very latest LDAP schema.
[1029]470       
[1019]471        - Code enhancement wrt easy pluggability of PyKota attributes
472          and object classes into an existing LDAP directory.
473       
[1017]474    - 1.08alpha6 :
475   
476        - Minor bug corrections
[1029]477       
[1017]478        - More work on LDAP : new schema
479       
[1016]480    - 1.08alpha5 :
481   
[1017]482        - More good work on LDAP storage.
483          repykota now works reasonably well with the sample LDAP directory.
[1016]484       
[1014]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         
[1000]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       
[998]512    - 1.08alpha2 :
513   
514        - Now works with net-snmp v5.0 and above.
515          It already worked, but the sample configuration
[1000]516          file didn't contain appropriate values...
[998]517       
[991]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         
[989]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         
[980]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       
[976]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.
[978]557          Use the 'querying' accounting method instead.
[976]558         
[973]559    - 1.05alpha2 :
560   
561        - Pluggable accounting methods.
562       
[975]563        - Better error handling.
564       
[962]565    - 1.05alpha1 :
566   
[969]567        - SECURITY file added to help improve PyKota's security.
568       
[962]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         
[970]575        - Small display bug fixed in repykota
576         
[960]577    - 1.04 :
[956]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         
[954]584        - LPRng support works !
585       
[953]586        - A bug was introduced some time ago wrt printers' default
587          policy for unknown users. It is now corrected.
588       
[950]589        - repykota now displays prices per job and per page for each
590          printer, if they are defined.
591         
[947]592        - Minor display bug fixed in repykota.
593       
594        - Problem when running repykota with an empty database was fixed.
595       
[942]596    - 1.03 :
597   
598        - Upgrade script included for earlier versions.
599          Please look inside the initscripts subdirectory.
[965]600          THE DATABASE SCHEMA HAS CHANGED, PLEASE UPGRADE.
[942]601         
[932]602        - repykota now reports account balances too.
[929]603       
[932]604        - PyKota now has a nice logo, see the logos
605          subdirectory.
606       
[936]607        - Manual pages were finally updated.
608       
[927]609        - Group quotas seem to work now !
610       
[910]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         
[917]615        - edpykota now accepts much more command line options to 
616          use the new functionnalities. See edpykota --help for
617          details.
618         
[885]619        - The installation script now allows to install the sample
620          configuration file during first installation.
[892]621         
622        - More group quota code works, but still not finished. 
[885]623       
[894]624        - The CGI script displays a link to PyKota's website.
625       
[899]626        - The job history is now kept, this will allow per-period
627          reports in the future.
[900]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         
[901]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
[909]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.
[908]641          For a more accurate accounting, never switch your HP printers
642          off.
[901]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)
[908]646          This should allow PyKota to work reasonably fine with HP Laserjet
647          4L/5L/6L, not perfect, but better than nothing.
[901]648          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
[908]649          For a more accurate accounting, never switch your HP printers
[925]650          off. This is untested, please report any problem.
[901]651         
[907]652        - A bug was fixed when edpykota --add was used with users who already
653          had a quota on the specified printer.
654         
[913]655        - A small display bug in repykota was introduced in preliminary
656          1.03 versions, and fixed later on.
[915]657         
658        - Some minor bugs which happened in rare situations were fixed.
[913]659       
[919]660        - Support for AppleTalk printers was added, see sample configuration
661          file for details.
[925]662         
663        - Users and group printing can now be controlled (limited) either by 
664          print quota or by account balance.
[919]665       
[877]666    - 1.02 :
[859]667   
[871]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         
[872]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         
[859]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       
[872]683        - Better general error handling.
[859]684       
[875]685        - Upgrade script for pre 1.01 PostgreSQL database schema is now
686          included as well.
687       
[852]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           
[853]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         
[852]702        - Manual pages are included since 1.00, but I forgot to   
703          add this information to this file.
704         
[855]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         
[846]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       
[833]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
[835]730          the previous user wasn't updated. This is now fixed.
[833]731         
[827]732    - 0.98 :
733   
734        - Correctly handle the case where the printer is switched off.
735       
[828]736        - Small bug wrt syslog fixed.
737       
[819]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             
[821]745        - If no user name is passed at all, then a default wildcard of "*"
[819]746          which means apply the command on ALL users for this printer is used.
747         
748        - Small bug fixes.
749       
[803]750    - 0.96 :
751
[808]752        - Options requester, policy, admin, adminmail and gracedelay can now
[807]753          be set either globally or per printer. The printer option has
754          priority if both are defined.
[803]755
[807]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.
[803]761
[797]762    - 0.95 :
763
[798]764        - External requesters for printers finally added.
[797]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.