root / pykota / trunk / NEWS @ 1287

Revision 1287, 25.7 kB (checked in by jalet, 20 years ago)

PyKota 1.16beta1 is finally out.

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