root / pykota / trunk / NEWS @ 1274

Revision 1274, 25.1 kB (checked in by jalet, 20 years ago)

Printing history added to CGI script.

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