root / pykota / trunk / NEWS @ 1330

Revision 1330, 27.1 kB (checked in by jalet, 20 years ago)

pkprinters command line tool added.

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