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
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.16beta1 :
25   
26        - Manpages upgraded.
27       
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
35          a member of, if any.
36         
37          This may be difficult to grasp, but offers unprecedented
38          flexibility.
39         
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       
47    - 1.16alpha24 :
48   
49        - CGI script now can show the printing history.
50       
51        - Bug wrt number of copies should be fixed.
52       
53        - Major code refactoring => It is now possible to
54          automatically add printers on first print.
55       
56    - 1.16alpha23 :
57   
58        - Fixed potential accuracy problem if a user printed on
59          several printers at the very same time.
60       
61    - 1.16alpha22 :
62   
63        - edpykota now allows adding printers to printer groups
64       
65    - 1.16alpha21 :
66   
67        - Allows the dot in user and printer names.
68       
69        - Printer groups are now cached too.
70       
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         
106    - 1.16alpha17 :
107   
108        - Added portugues translation.
109       
110        - Major code refactoring in accounters.
111       
112    - 1.16alpha16 :
113   
114        - Code refactoring, and addition of a real HTML reporter, to
115          have nice looking and useful web based reports (in the future).
116       
117        - Added utolower configuration option to convert all usernames
118          to lowercase during printing.
119         
120    - 1.15alpha15 :
121   
122        - Now includes the papwaitprinter.sh shell script to wait for
123          AppleTalk enabled printers.
124         
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         
131    - 1.16alpha13 :
132   
133        - Small bugfix wrt Python v2.1
134       
135        - If username is an empty string, user root is assumed.
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.
141         
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         
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         
160    - 1.16alpha10 :
161       
162        - Some modifications done to external policy handling.
163          See sample configuration file for details.
164   
165        - Spanish translation added.
166       
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         
174    - 1.16alpha8 :
175   
176        - Now cupspykota transmits SIGTERMS to the original 
177          backend when the user deletes a job being processed.
178         
179        - The documentation is now licensed under the terms of the
180          GNU GPL too.
181         
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       
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         
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       
202    - 1.16alpha4 :
203   
204        - New CUPS backend added.
205       
206    - 1.16alpha3 :
207       
208        - Minimal FAQ document added.
209       
210    - 1.16alpha2 :
211   
212        - CGI script now partially supports browser's language preference
213       
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       
220    - 1.15 :
221     
222        - Documentation improved.
223       
224    - 1.15beta :
225   
226        - Command line tools now accept multiple printer
227          names or wildcards, separated with commas.
228         
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         
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       
244    - 1.15alpha7 :
245   
246        - More work done on caching wrt groups.
247       
248    - 1.15alpha6 :
249   
250        - Performance bottleneck with LDAP solved.
251       
252    - 1.15alpha5 :
253   
254        - Caching mechanism for all database queries.
255
256    - 1.15alpha4 :
257   
258        - Problem with Python 2.3 fixed. Needs some definitive
259          modification.
260         
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.
268          NB : REMOTE_USER is automatically set by the web server
269          (e.g. Apache) when a page with restricted access is viewed.
270         
271    - 1.15alpha2 :
272   
273        - Better detection of LPRng.
274       
275        - Outputs a warning if printing system is unknown.
276       
277    - 1.15alpha1 :
278   
279        - Bug fix in SQL code.
280       
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       
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       
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         
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         
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         
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         
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         
339    - 1.14alpha5 :
340       
341        - Big bug fixed when changing the prices for a printer
342       
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         
349    - 1.14alpha3 :
350   
351        - Email field added to PostgreSQL database. An upgrade script
352          is included in initscripts/postgresql.
353       
354    - 1.14alpha2 :
355   
356        - Typo fixed when using the --prototype option to edpykota
357       
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       
367    - 1.13 :
368   
369        - Some small fixes wrt group handling.
370       
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         
375    - 1.13alpha1 :
376   
377        - Bug fix wrt LDAP.
378       
379    - 1.12 :
380   
381        - More complete test added in edpykota.
382       
383    - 1.12alpha2 :
384   
385        - The previous bug fix was incomplete. This is corrected.
386       
387    - 1.12alpha1 :
388   
389        - Small bug fix.
390       
391    - 1.11 :
392   
393        - Now includes the pykotme command line tool, to produce
394          printing quotes for users.
395         
396    - 1.10 :
397   
398        - Bug fixed wrt quota reports when print limiting is by
399          account balance.
400         
401    - 1.09 :
402   
403        - Translations finalized.
404       
405        - Manpages updated.
406       
407        - Installation documentation improved wrt LDAP support.
408       
409    - 1.09beta2 :
410   
411        - The CGI script for quota reports works again, and
412          is much more powerful.
413       
414    - 1.09beta :
415   
416        - edpykota finalized
417       
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   
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.
438         
439        - Severe database access optimizations were done by
440          rewriting most of the Quota Storage backends drivers.
441     
442    - 1.08 :
443   
444        - Major bug fix wrt LPRng support for remote jobs.
445       
446        - Major bug fix wrt increase/decrease account balances.
447       
448    - 1.08alpha8 :
449   
450        - Code refactoring.
451       
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.
456         
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.
461       
462    - 1.08alpha7 :
463   
464        - Very latest LDAP schema.
465       
466        - Code enhancement wrt easy pluggability of PyKota attributes
467          and object classes into an existing LDAP directory.
468       
469    - 1.08alpha6 :
470   
471        - Minor bug corrections
472       
473        - More work on LDAP : new schema
474       
475    - 1.08alpha5 :
476   
477        - More good work on LDAP storage.
478          repykota now works reasonably well with the sample LDAP directory.
479       
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         
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       
507    - 1.08alpha2 :
508   
509        - Now works with net-snmp v5.0 and above.
510          It already worked, but the sample configuration
511          file didn't contain appropriate values...
512       
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         
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         
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       
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.
552          Use the 'querying' accounting method instead.
553         
554    - 1.05alpha2 :
555   
556        - Pluggable accounting methods.
557       
558        - Better error handling.
559       
560    - 1.05alpha1 :
561   
562        - SECURITY file added to help improve PyKota's security.
563       
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         
570        - Small display bug fixed in repykota
571         
572    - 1.04 :
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         
579        - LPRng support works !
580       
581        - A bug was introduced some time ago wrt printers' default
582          policy for unknown users. It is now corrected.
583       
584        - repykota now displays prices per job and per page for each
585          printer, if they are defined.
586         
587        - Minor display bug fixed in repykota.
588       
589        - Problem when running repykota with an empty database was fixed.
590       
591    - 1.03 :
592   
593        - Upgrade script included for earlier versions.
594          Please look inside the initscripts subdirectory.
595          THE DATABASE SCHEMA HAS CHANGED, PLEASE UPGRADE.
596         
597        - repykota now reports account balances too.
598       
599        - PyKota now has a nice logo, see the logos
600          subdirectory.
601       
602        - Manual pages were finally updated.
603       
604        - Group quotas seem to work now !
605       
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         
610        - edpykota now accepts much more command line options to 
611          use the new functionnalities. See edpykota --help for
612          details.
613         
614        - The installation script now allows to install the sample
615          configuration file during first installation.
616         
617        - More group quota code works, but still not finished. 
618       
619        - The CGI script displays a link to PyKota's website.
620       
621        - The job history is now kept, this will allow per-period
622          reports in the future.
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         
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
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.
636          For a more accurate accounting, never switch your HP printers
637          off.
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)
641          This should allow PyKota to work reasonably fine with HP Laserjet
642          4L/5L/6L, not perfect, but better than nothing.
643          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
644          For a more accurate accounting, never switch your HP printers
645          off. This is untested, please report any problem.
646         
647        - A bug was fixed when edpykota --add was used with users who already
648          had a quota on the specified printer.
649         
650        - A small display bug in repykota was introduced in preliminary
651          1.03 versions, and fixed later on.
652         
653        - Some minor bugs which happened in rare situations were fixed.
654       
655        - Support for AppleTalk printers was added, see sample configuration
656          file for details.
657         
658        - Users and group printing can now be controlled (limited) either by 
659          print quota or by account balance.
660       
661    - 1.02 :
662   
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         
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         
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       
678        - Better general error handling.
679       
680        - Upgrade script for pre 1.01 PostgreSQL database schema is now
681          included as well.
682       
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           
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         
697        - Manual pages are included since 1.00, but I forgot to   
698          add this information to this file.
699         
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         
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       
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
725          the previous user wasn't updated. This is now fixed.
726         
727    - 0.98 :
728   
729        - Correctly handle the case where the printer is switched off.
730       
731        - Small bug wrt syslog fixed.
732       
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             
740        - If no user name is passed at all, then a default wildcard of "*"
741          which means apply the command on ALL users for this printer is used.
742         
743        - Small bug fixes.
744       
745    - 0.96 :
746
747        - Options requester, policy, admin, adminmail and gracedelay can now
748          be set either globally or per printer. The printer option has
749          priority if both are defined.
750
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.
756
757    - 0.95 :
758
759        - External requesters for printers finally added.
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.