root / pykota / trunk / NEWS @ 1293

Revision 1293, 25.9 kB (checked in by jalet, 20 years ago)

Missing changelog entry

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