root / pykota / trunk / NEWS @ 1315

Revision 1308, 26.5 kB (checked in by jalet, 20 years ago)

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