root / pykota / trunk / NEWS @ 1592

Revision 1592, 41.8 kB (checked in by jalet, 20 years ago)

Integrated most of the Debian packaging work made by Sergio Gonz�lez Gonz�lez

  • 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.19alpha30 :
25   
26        - Integrated most of the Debian work from Sergio
27          Gonz�z Gonz�z
28         
29    - 1.19alpha29 :
30   
31        - PCLXL parser should now correctly handle number of
32          copies set for each page.
33         
34        - Added testsuite for generic PDL analyzer.
35       
36        - Typo fixed in PCLXL parser.
37       
38        - Correctly dispatches error messages depending on the
39          situation : tools which can be run interactively will
40          ALWAYS output their logs to stderr, excepted for
41          their DEBUG messages, for which the "logger:"
42          directive as set in pykota.conf will be honored.
43          Tools which can't be run interactively will ALWAYS
44          honor the "logger:" directive as set in pykota.conf
45         
46    - 1.19alpha28 :
47   
48        - The description field for printers can now be set,
49          and is displayed in reports.
50         
51        - Fixed a small problem in SQL backend code.
52         
53        - Improved pkhint
54       
55        - First working PCL6 (aka PCLXL) parser !
56          Doesn't handle copies yet.
57       
58    - 1.19alpha27 :
59   
60        - Additionnal 10% speed increase in PCL5 parser for GhostScript
61          generated files (untested yet with other PCL files).
62         
63        - Reintroduced the use of mmap in PCL5 parser : this speedups
64          PCL5 parsing by almost 4 times.
65          This 4x with the 3x below give us in fact a twelvefold increase
66          in performance for PCL5 parsing !
67         
68        - The Python accelerator Psyco is now used if available
69          in the generic PDL parser : it speedups PCL5 parsing by
70          almost three times automagically.
71         
72    - 1.19alpha26 :
73   
74        - Fixed PCL5 parser according to the sources of rastertohp.
75       
76        - Fixed number of copies handling in PCL5 parser : the number
77          of copies could vary from page to page.
78         
79        - Added more debug information to PCLXL parser. 
80       
81    - 1.19alpha25 :
82   
83        - Added new "description" field to printers in both
84          PostgreSQL and LDAP. No code to handle this yet.
85         
86        - Reversed the fix for power save mode in printers : 
87          no paper or tray open would have caused people to
88          be undercharged.
89         
90        - Preliminary version of MySQL initialization script.
91         
92    - 1.19alpha24 :
93   
94        - Native PDF parsing code now works perfectly with
95          Python 2.1 and above, and is way faster than before.
96          GhostScript is not used anymore to convert PDF to PS,
97          because PDF is parsed directly.
98         
99    - 1.19alpha23 :
100   
101        - Fixed waitprinter.sh wrt PowerSave mode and some
102          printers. Thanks to Ryan Suarez.
103       
104        - Smart PDL analyzer now recognizes PDF too : two
105          PDF parsing methods are used : a native one which
106          is very fast but requires Python 2.3 or above, and
107          a slower one which uses Ghostscript. PyKota detects
108          automatically which method to use depending on your
109          version of Python.
110       
111        - All tracebacks now include PyKota's version number.
112         
113    - 1.19alpha22 :
114   
115        - Ensures that the file pointer for job's data is
116          reset to the start of the job's datas after the
117          job's size pre-computation phase.
118         
119        - Improved PostScript detection code for bad drivers
120          which don't correctly switch languages between PJL
121          and PS.
122       
123        - Even better debugging code.
124       
125    - 1.19alpha21 :
126   
127        - Additionnal check.
128       
129    - 1.19alpha20 :
130   
131        - More complete logging messages wrt accounters.
132       
133        - Now catches early failures occuring when the configuration
134          files are parsed.
135       
136    - 1.19alpha19 :
137   
138        - Fixed over-verbose exits when displaying help
139          or version.
140         
141        - Extended some PATH in the shell scripts 
142       
143        - Deleting an user now also deletes his payments history.
144       
145        - Doesn't explicitely ignore SIGCHLD anymore. This seems to
146          cause problems.
147
148    - 1.19alpha18 :
149   
150        - History of payments is now stored in the database, and
151          updated each time an user's balance is modified with
152          edpykota --balance. This history represents each time
153          the user was given some positive or negative credit,
154          but doesn't reflect price paid for jobs, which appear
155          in the jobs history instead.
156         
157        - Jobs history web reports now include the job's size in
158          bytes. Also columns were reordered to render the report
159          more easily readable.
160         
161    - 1.19alpha17 :
162   
163        - Mysterious bug (program exited unexpectedly without leaving
164          any log message) which occured once in a while when
165          cancelling jobs should be fixed now.
166         
167        - New 'crashrecipient' directive. Disabled by 
168          default. See sample configuration file to see how
169          to activate it. It is suggested that you activate it.
170         
171        - New PYKOTAJOBSIZEBYTES environment variable exported, 
172          which contains the job's size in bytes. Empty jobs
173          are now denied. This value is now stored in the job
174          history (but not yet displayed from the web interface)
175         
176        - Preliminary work on payments storage : the PostgreSQL 
177          and LDAP schemas should be OK now, but no code is written
178          yet to support this functionnality.
179         
180    - 1.19alpha16 :
181   
182        - the newuser and newgroup LDAP specific directives now accept
183          a second parameter to attach(), "fail" or "warn". If no entry
184          is found to attach PyKota attributes to, and "fail" was used,
185          then action is aborted and program exits in error. If "warn"
186          is used, a new entry is created but a warning message is logged.
187         
188        - The job's originating hostname is now stored in the database,
189          and exported as PYKOTAJOBORIGINATINGHOSTNAME in the environment.
190       
191    - 1.19alpha15 :
192   
193        - The old pykota filter is now removed. This means that
194          currently PyKota doesn't support LPRng anymore, but
195          LPRng support will be re-added, improved, in the near future.
196         
197    - 1.19alpha14 :
198   
199        - PYKOTAPRECOMPUTEDJOBSIZE and PYKOTAPRECOMPUTEDJOBPRICE
200          are now exported as environment variables.
201         
202        - Heavy CPU usage is now completely fixed it seems, by
203          introducing some 0.01 second sleeping when nothing to do.
204         
205        - Pre-computation of the job's size is now only
206          done when enforcement is "STRICT", this saves
207          CPU for people who don't want to use this new
208          feature.
209         
210        - New 'enforcement' directive which accepts either
211          STRICT or LAXIST. See sample configuration file
212          for details.
213         
214    - 1.19alpha13 :
215   
216        - Get back to an old version of the polling loop which
217          worked fine, but non-optimally. Will be optimized
218          as time permits.
219         
220    - 1.19alpha12 :
221   
222        - Job's size is now precomputed unconditionnally using
223          the generic PDL analyzer.
224          NB : This value is not yet used to pre-allow/deny the
225          job.
226       
227    - 1.19alpha11 :
228   
229        - The pykota filter is now completely deprecated and
230          can't be used anymore. LPRng users MUST download
231          an older version of PyKota. CUPS users MUST use
232          cupspykota. Better support for LPRng will come
233          in the near future.
234         
235    - 1.19alpha10 :
236   
237        - pykotme now uses generic PDL Analyzer directly instead
238          of spawning a new process.
239         
240        - Improvements to generic PDL Analyzer.
241       
242        - 25% Speedup in PCL parser. Getting more of the Python version
243          will probably be difficult, since the completely table driven
244          parser I wrote is slower than the original algorithm. Then,
245          the original algorithm is still used for now.
246          Probable that more speed could be achieved using mmap, at the
247          expense of severe memory consumption.
248       
249        - configuration simplifications : the "accounter" directive's
250          'hardware' arguments now accepts what was in the "requester"
251          directive as it's content. The "requester" directive is not
252          supported anymore. See sample configuration file for details.
253       
254    - 1.19alpha9 :
255       
256        - pkpgcounter is now just a wrapper around the PDLAnalyzer class
257       
258        - pykotaOptions LDAP attribute now accepts non-ascii characters
259          too.
260         
261        - First try at cupspykota main loop rewrite
262       
263    - 1.19alpha8 :
264   
265        - 'querying' accounting method is now called 'hardware'
266       
267        - 'external' accounting method is now called 'software'
268       
269        - 'stupid' accounting method doesn't exist anymore
270       
271        - 'snmp' requester doesn't exist anymore
272       
273        - code simplifications in external requester
274       
275    - 1.19alpha7 :
276     
277        - Database schema change (both LDAP and PostgreSQL) to
278          allow storage of the job-originating-hostname attribute.
279          An SQL upgrade script is present. The code is not yet
280          capable of setting/retrieving this attribute. Support
281          for this functionnality will be added in the future.
282         
283    - 1.19alpha6 :
284   
285        - problems connecting to SMTP servers are now catched.
286       
287        - pykotme now uses pkpgcounter to compute the size of the
288          job. This modification adds PCL5 and soon PCLXL (PCL6)
289          support. You can now get quotes for PCL in addition to
290          PostScript.
291         
292        - pkpgcounter now includes first try at PCLXL parser. 
293          It is currently disabled until it's finished.
294         
295    - 1.19alpha5 :
296   
297        - cupspykota polling loop fix for MacOSX (at least)
298       
299        - logging subsystem now logs PID too, to ease diagnosing
300          problems under heavy load.
301         
302        - pkpgcounter enhancements.
303       
304        - pkprinters --skipexisting now tells pkprinters to not
305          modify existing printers when --add is used.
306          pkprinters logs a warning message whenever --add is
307          used and a printer already exists.
308         
309        - LDAP schema now allows accented chars in pykotaFileName
310          and pykotaTitle attributes.
311       
312    - 1.19alpha4 :
313   
314        - a bad copy&paste prevented pkpgcounter to work at all, this
315          is now fixed.
316         
317        - improved PCL support in pkpgcounter, with the use of
318          HP PCL/PJL Reference Set
319          PCL5 Printer Language Technical Quick Reference Guide
320       
321        - pkpgcounter now uses mmap to speed things up : duration
322          is halved with the sample 87 pages PCL document I use for
323          testing.
324         
325    - 1.19alpha3 :
326   
327        - pkprinters now accepts the --list command line argument
328          to list informations about printers.
329         
330    - 1.19alpha2 :
331   
332        - pkpgcounter is now included as a smart external
333          accounter which can handle both PostScript and PCL.
334         
335    - 1.19alpha1 :
336   
337        - PYKOTALIMITBY environment variable is now exported too.
338       
339        - Inclusion of Michele Baldessari's work on autotools.
340       
341    - 1.18 :
342   
343        - Improved documentation
344       
345    - 1.18beta2 :
346     
347        - Fix for raw jobs with cupspykota
348       
349    - 1.18beta :
350   
351        - Small fix for new waitprinter.sh script
352       
353        - Better tracebacks on error conditions
354       
355        - Improved translations
356       
357        - Improved documentation
358       
359    - 1.18alpha15 :
360
361        - waitprinter.sh replaced by a new and possibly faster
362          and more powerful one.
363   
364        - Names can now begin with a digit.
365       
366        - Stability improvement for quotas set on printers groups.
367       
368    - 1.18alpha14 :
369   
370        - Catches more (all ?) problems with SMTP servers instead
371          of breaking.
372         
373        - Italian translation added.
374       
375    - 1.18alpha13 :
376   
377        - Pre and Post hooks are now available in the pykota
378          filter as well.
379         
380        - The pykota filter doesn't check last user's quota
381          anymore when delayed hardware accounting is used :
382          this will be done anyway the next time the last
383          user will print again. This saves some database
384          queries which are unneeded.
385       
386    - 1.18alpha12 :
387   
388        - Pre and Post hooks to external commands with many
389          many environment variables available are useable
390          from the cupspykota backend.
391          See sample configuration file for details and help.
392         
393    - 1.18alpha11 :
394   
395        - Hopefully final fix wrt groups (users and printers)
396       
397    - 1.18alpha10 :
398   
399        - Fixed nested printer groups accounting.
400       
401        - Fixed user groups + printer groups problem.
402       
403    - 1.18alpha9 :
404   
405        - Fix for LDAP problem when job price was 0.
406       
407        - Fix for empty user groups with LDAP.
408       
409        - Preliminary version of the snmpprinterstatus command added.
410       
411    - 1.18alpha8 :
412   
413        - Don't retrieve data when not needed.
414          This avoids many database queries.
415       
416    - 1.18alpha7 :
417   
418        - New experimental ldapcache directive to improve
419          LDAP caching.
420         
421    - 1.18alpha6 :
422       
423        - New configuration directive added : maildomain
424          to specify the domain to send mail to when user
425          email address is not set in PyKota database.
426         
427        - More complete email message headers. 
428         
429    - 1.18alpha5 :
430   
431        - Debian packaging specific files, contributed by
432          Peter Hawkins are now included in the project's tree.
433         
434        - Preliminary work on future low-level LDAP caching to speed
435          up modifications (at least).
436         
437    - 1.18alpha4 :
438   
439        - Applied some of the modifications suggested by
440          Peter Hawkins, for better Debian integration.
441          Most notably cupspykota, pykota, and the shell
442          scripts are now installed into /usr/share/pykota
443          instead of into /usr/bin
444          BEWARE : double check that your symbolic link
445          to cupspykota is correct, and that your pykota.conf
446          file use correct path for the shell scripts like
447          waitprinter.sh and al.
448         
449        - pkhint command added, to help in configuring correct
450          accounting method for PyKota.
451         
452    - 1.18alpha3 :
453   
454        - Fixed a rare bug in cupspykota backend which gave
455          incorrect "CUPS backend died abnormally" messages.
456       
457    - 1.18alpha2 :
458   
459        - Added the pkprinters command line tool to manage printers
460          exclusively.
461       
462    - 1.18alpha1 :
463   
464        - Preliminary work on Relationnal Database Independance.
465       
466        - Sample report made from OpenOffice.org added as PDF and SXC.
467       
468    - 1.17 :
469   
470        - Finalized release.
471       
472    - 1.17alpha2 :
473   
474        - Fix stupid software accounting bug in the CUPS backend.
475       
476    - 1.17alpha1 :
477   
478        - User/Group deletion code in edpykota rewritten.
479       
480    - 1.16 :
481   
482        - Preliminary documentation on how to use OpenOffice.org
483          to create personnalized reports for PyKota + PostgreSQL.
484         
485        - Spanish installation guide for CUPS+PyKota+PostgreSQL
486          added to the documentation. Doesn't yet document v1.16
487          though.
488       
489        - Portuguese Portuguese translation replaces Brasilian
490          Portuguese Translation. Brasilian portuguese
491          translation is still available under the 'br' locale.
492       
493    - 1.16beta3 :
494   
495        - Swedish translation added.
496       
497        - Small fix in documentation.
498       
499    - 1.16beta2 :
500   
501        - Small fix for job cancelling code while job already
502          printing in CUPS backend.
503         
504        - Big fix wrt printing policies for unknown users. 
505       
506    - 1.16beta1 :
507   
508        - Manpages upgraded.
509       
510    - 1.16alpha26 :
511   
512        - Job price is now computed like this :
513       
514          SUM((NbPages * PricePerPage) + PricePerJob)
515         
516          For current printer and all the printers groups it is
517          a member of, if any.
518         
519          This may be difficult to grasp, but offers unprecedented
520          flexibility.
521         
522    - 1.16alpha25 :
523   
524        - Email address can be set at user creation time,
525          using the following syntax :
526         
527            $ edpykota --add username/email@yourdomain.com
528       
529    - 1.16alpha24 :
530   
531        - CGI script now can show the printing history.
532       
533        - Bug wrt number of copies should be fixed.
534       
535        - Major code refactoring => It is now possible to
536          automatically add printers on first print.
537       
538    - 1.16alpha23 :
539   
540        - Fixed potential accuracy problem if a user printed on
541          several printers at the very same time.
542       
543    - 1.16alpha22 :
544   
545        - edpykota now allows adding printers to printer groups
546       
547    - 1.16alpha21 :
548   
549        - Allows the dot in user and printer names.
550       
551        - Printer groups are now cached too.
552       
553    - 1.16alpha20 :
554   
555        - Fixed several small bugs with the help of PyChecker.
556       
557    - 1.16alpha19 :
558     
559        - Fixed a bug in PostgreSQL backend's code.
560       
561    - 1.16alpha18 :
562   
563        - Initial code for printer groups support. Printer groups have
564          to be added with external tools like psql or gq for example.
565          Printer groups seems to work fine with users. Untested with user
566          groups for now.
567
568        - Several minor visual problems fixed in reports.
569       
570        - Fixed a bug in LDAP date handling.
571       
572        - Fix for LDAP problem with some combination of OpenLDAP + Python-LDAP
573          + some particular settings.
574         
575        - mailandpopup.sh shell script added. See sample configuration file
576          for details.
577       
578        - Several environment variables are now exported when executing
579          external commands (accounters, requesters, mailers) :
580           
581            PYKOTAUSERNAME => user who is printing
582            PYKOTAPRINTERNAME => printer on which the job is being sent
583            PYKOTATITLE => Job's title
584            PYKOTAFILENAME => Job's filename
585            PYKOTACOPIES => number of copies asked
586            PYKOTAOPTIONS => print command options (-o with CUPS)
587         
588    - 1.16alpha17 :
589   
590        - Added portugues translation.
591       
592        - Major code refactoring in accounters.
593       
594    - 1.16alpha16 :
595   
596        - Code refactoring, and addition of a real HTML reporter, to
597          have nice looking and useful web based reports (in the future).
598       
599        - Added utolower configuration option to convert all usernames
600          to lowercase during printing.
601         
602    - 1.15alpha15 :
603   
604        - Now includes the papwaitprinter.sh shell script to wait for
605          AppleTalk enabled printers.
606         
607    - 1.16alpha14 :
608   
609        - Now printing on a printer not defined in the Quota Storage,
610          results in the job being cancelled or stopped, depending
611          on the printing system.
612         
613    - 1.16alpha13 :
614   
615        - Small bugfix wrt Python v2.1
616       
617        - If username is an empty string, user root is assumed.
618       
619        - 'postgresql' is not recognized anymore as a storage backend,
620          you have to use 'pgstorage' instead. 'postgresql' used to
621          be supported for compatibility with very old PyKota versions,
622          this is not the case anymore.
623         
624    - 1.16alpha12 :
625   
626        - Job price added to job history, to keep accounting correct
627          if a printer price per page or per job is modified and the
628          history is not reset : the history would have given a false
629          amount of money charged before the printer's prices were
630          modified, this addition solves the problem.
631         
632    - 1.16alpha11 :
633   
634        - Some preliminary modifications to the database structure for
635          PostgreSQL and OpenLDAP. A script to upgrade a PostgreSQL
636          database is now provided. LDAP attributes now support
637          eq, pres and sub indexes.
638         
639        - Job history now contains additional informations : 
640          number of copies, filename, title and print options.
641         
642    - 1.16alpha10 :
643       
644        - Some modifications done to external policy handling.
645          See sample configuration file for details.
646   
647        - Spanish translation added.
648       
649    - 1.16alpha9 :
650   
651        - mailto can be set to external(...) to warn users above
652          quota with any command of your choice (e.g. linpopup).
653          Several parameters are available, see sample configuration
654          file for details.
655         
656    - 1.16alpha8 :
657   
658        - Now cupspykota transmits SIGTERMS to the original 
659          backend when the user deletes a job being processed.
660         
661        - The documentation is now licensed under the terms of the
662          GNU GPL too.
663         
664    - 1.16alpha7 :
665   
666        - The CUPS backend is now fully functionnal (it seems).
667       
668        - From now on, the use of the pykota filter with CUPS
669          is deprecated. The pykota filter still has to be
670          used with LPRng though.
671       
672    - 1.16alpha6 :
673   
674        - Bug fixed : when edpykota was used to add a printer
675          with no user or group name, a bad user/group name "*" was
676          added to the database.
677         
678    - 1.16alpha5 :
679   
680        - New CUPS backend supports device enumeration !
681          This means that NO manual CUPS configuration has to
682          be done. All can now be done from CUPS web interface.
683       
684    - 1.16alpha4 :
685   
686        - New CUPS backend added.
687       
688    - 1.16alpha3 :
689       
690        - Minimal FAQ document added.
691       
692    - 1.16alpha2 :
693   
694        - CGI script now partially supports browser's language preference
695       
696    - 1.16alpha1 :
697   
698        - Ensures that the LDAP connection is really closed at end.
699       
700        - More complete error messages in case of LDAP operation failure.
701       
702    - 1.15 :
703     
704        - Documentation improved.
705       
706    - 1.15beta :
707   
708        - Command line tools now accept multiple printer
709          names or wildcards, separated with commas.
710         
711    - 1.15alpha9 :
712   
713        - External policy can be used to auto-add unknown users
714          and any other interesting things you may want to do.
715          WARNING : You can't auto-add printers for now.
716          They have to be created manually before.
717          Look at sample configuration file for examples.
718         
719    - 1.15alpha8 :
720   
721        - Job history can be disabled if needed.
722          This feature may be useful for people who use the LDAP
723          backend and don't want their LDAP tree to grow out of
724          control.
725       
726    - 1.15alpha7 :
727   
728        - More work done on caching wrt groups.
729       
730    - 1.15alpha6 :
731   
732        - Performance bottleneck with LDAP solved.
733       
734    - 1.15alpha5 :
735   
736        - Caching mechanism for all database queries.
737
738    - 1.15alpha4 :
739   
740        - Problem with Python 2.3 fixed. Needs some definitive
741          modification.
742         
743    - 1.15alpha3 :
744   
745        - CGI script now tries to restrict view when the
746          REMOTE_USER environment variable is set. This allows
747          people to protect its use with .htaccess files.
748          When unprotected, or if REMOTE_USER is 'root', then
749          unrestricted access is granted.
750          NB : REMOTE_USER is automatically set by the web server
751          (e.g. Apache) when a page with restricted access is viewed.
752         
753    - 1.15alpha2 :
754   
755        - Better detection of LPRng.
756       
757        - Outputs a warning if printing system is unknown.
758       
759    - 1.15alpha1 :
760   
761        - Bug fix in SQL code.
762       
763    - 1.14 :
764   
765        - The PostgreSQL database connection is now always closed before
766          exit. The LDAP database connection too, but it didn't suffer
767          from the problem anyway, AFAICT.
768       
769    - 1.14beta2 :
770   
771        - An LDAP-specific configuration field was introduced, usermail.
772          Use it to specify which LDAP attribute contains a valid email
773          address for the user. See sample configuration file for
774          details.
775       
776    - 1.14beta :
777   
778        - Two new LDAP-specific configuration fields were introduced,
779          newuser and newgroup. Use them to specify if you want to add
780          quota information to existing entries or elsewhere.
781          See sample configuration file for details.
782         
783    - 1.14alpha9 :
784   
785        - Documentation improved.
786       
787        - pykotme now also prints the user's account balance value
788          if the user is registered in the Quota Storage and his
789          limiting factor is "balance".
790         
791    - 1.14alpha8 :
792   
793        - bin/waitprinter.sh is now included to wait for
794          SNMP enabled printers to be idle again before
795          asking for their internal page counter.
796          See sample configuration file for details.
797         
798    - 1.14alpha7 :
799   
800        - edpykota now doesn't check if the user/group is above
801          quota. The check is only done at print time. This
802          prevents the sending of email messages when creating
803          user quotas if quota is already reached at creation
804          time.
805         
806    - 1.14alpha6 :
807   
808        - Configuration file split and moved to /etc/pykota/pykota.conf
809          and /etc/pykota/pykotadmin.conf to prevent simple users to
810          have Read/Write access to the Quota Database.
811          Don't forget to :
812         
813                $ chmod 640 /etc/pykota/pykotadmin.conf
814               
815        - storageuser and storageuserpw configuration fields reintroduced
816          for the same reason.
817         
818        - Code cleaning for future implementation of email addresses
819          support in the PostgreSQL and LDAP backends.
820         
821    - 1.14alpha5 :
822       
823        - Big bug fixed when changing the prices for a printer
824       
825    - 1.14alpha4 :
826   
827        - When adding an user, the user itself and its account balance
828          are now added in the same LDAP entry. Before they were added
829          as two different LDAP entries.
830         
831    - 1.14alpha3 :
832   
833        - Email field added to PostgreSQL database. An upgrade script
834          is included in initscripts/postgresql.
835       
836    - 1.14alpha2 :
837   
838        - Typo fixed when using the --prototype option to edpykota
839       
840    - 1.14alpha1 :
841   
842        - Poor man's treshold included : users with a low account
843          balance (below 1.0 by default, configurable) are sent
844          a warning message.
845         
846        - All warning messages to users are now configurable. 
847          NB : Warning messages to the administrator are not.
848       
849    - 1.13 :
850   
851        - Some small fixes wrt group handling.
852       
853        - The whole module code was passed through PyChecker and
854          several small code inconsistencies were fixed,
855          as well as a bug in the groups code.
856         
857    - 1.13alpha1 :
858   
859        - Bug fix wrt LDAP.
860       
861    - 1.12 :
862   
863        - More complete test added in edpykota.
864       
865    - 1.12alpha2 :
866   
867        - The previous bug fix was incomplete. This is corrected.
868       
869    - 1.12alpha1 :
870   
871        - Small bug fix.
872       
873    - 1.11 :
874   
875        - Now includes the pykotme command line tool, to produce
876          printing quotes for users.
877         
878    - 1.10 :
879   
880        - Bug fixed wrt quota reports when print limiting is by
881          account balance.
882         
883    - 1.09 :
884   
885        - Translations finalized.
886       
887        - Manpages updated.
888       
889        - Installation documentation improved wrt LDAP support.
890       
891    - 1.09beta2 :
892   
893        - The CGI script for quota reports works again, and
894          is much more powerful.
895       
896    - 1.09beta :
897   
898        - edpykota finalized
899       
900    - 1.09alpha2 :
901   
902        - LDAP schema modified a bit. Please upgrade.
903       
904        - LDAP backend works !
905       
906        - repykota and warnpykota allow the root user to pass
907          users or groups names on the command line. Users
908          and groups names may contain wildcards.
909         
910        - repykota and warnpykota only reports or warns the
911          current user when launched by non-root users.
912         
913        - Minor bug fixes. 
914   
915    - 1.09alpha1 :
916   
917        - More work on LDAP storage backend. Many options
918          were added to /etc/pykota.conf to give some
919          hints to the LDAP storage backend.
920         
921        - Severe database access optimizations were done by
922          rewriting most of the Quota Storage backends drivers.
923     
924    - 1.08 :
925   
926        - Major bug fix wrt LPRng support for remote jobs.
927       
928        - Major bug fix wrt increase/decrease account balances.
929       
930    - 1.08alpha8 :
931   
932        - Code refactoring.
933       
934        - A single user/password pair is used to connect
935          to the database backend. The storageuser configuration
936          field, and its associated passwords storageuserpw, are
937          not used anymore.
938         
939        - You can now set PyKota in debug mode, see sample configuration 
940          file for details.
941          WARNING : only Quota Storage backend queries are logged in
942          debug mode, for now.
943       
944    - 1.08alpha7 :
945   
946        - Very latest LDAP schema.
947       
948        - Code enhancement wrt easy pluggability of PyKota attributes
949          and object classes into an existing LDAP directory.
950       
951    - 1.08alpha6 :
952   
953        - Minor bug corrections
954       
955        - More work on LDAP : new schema
956       
957    - 1.08alpha5 :
958   
959        - More good work on LDAP storage.
960          repykota now works reasonably well with the sample LDAP directory.
961       
962    - 1.08alpha4 :
963   
964        - LDAP schema included.
965          THIS IS JUST FOR PEOPLE TO DISCUSS ABOUT THIS.
966          LDAP SUPPORT DOESN'T WORK YET, AND THE SCHEMA
967          MAY CHANGE IN THE FUTURE. PLEASE TELL US
968          WHAT YOU THINK ABOUT THIS SCHEMA ON THE
969          MAILING LIST.
970         
971    - 1.08alpha3 :
972   
973        - External accounting methods were partly rewritten :
974         
975          - No more "broken pipe" should happen.
976         
977          - They now take care of the number of copies
978            This may be unneeded though, if the postscript
979            file already does this, because this would
980            overcharge users (number of copies counted
981            two times). NEEDS MORE TESTING.
982           
983          - The sample configuration file now contains 
984            an external accounting method example which should
985            work with all DSC compliant Postscript files.
986           
987        - Some small bugs were fixed.   
988       
989    - 1.08alpha2 :
990   
991        - Now works with net-snmp v5.0 and above.
992          It already worked, but the sample configuration
993          file didn't contain appropriate values...
994       
995    - 1.07 : Release of the Shame !
996   
997        - The external accounting methods driver was left out of
998          the CVS tree. Nobody could use it since it wasn't included !
999         
1000    - 1.06 :
1001   
1002        - Severe bug fixed : if you had a printer in
1003          power saving state which couldn't answer immediately,
1004          a bug was triggered.
1005          It was caused by a bad copy/paste which
1006          forgot to import a Python module at run time.
1007         
1008    - 1.05 :
1009   
1010        - External accounters are finally available !
1011          This means that you can plug any page accounting
1012          method you like by setting the appropriate
1013          'accounter' field in /etc/pykota.conf
1014          See the sample conf/pykota.conf.sample to
1015          learn how to do.
1016         
1017          NB : Both 'external' and 'stupid' accounting methods
1018               account a job size just before *this* job is
1019               sent to the printer.
1020               The original 'querying' method accounts a job
1021               size just before *the next* job is sent to
1022               the printer.
1023       
1024    - 1.05alpha3 :
1025   
1026        - A 'stupid' and unreliable accounting method was
1027          implemented to serve as an example on how to
1028          do this sort of things. This method only counts
1029          the 'showpage' statements in the input data.
1030          See sample configuration file for details.
1031          Pluggable accounting methods work, but I advise
1032          you TO NOT USE THIS ONE WHICH IS JUST AN EXAMPLE.
1033          It is not reliable enough to be used.
1034          Use the 'querying' accounting method instead.
1035         
1036    - 1.05alpha2 :
1037   
1038        - Pluggable accounting methods.
1039       
1040        - Better error handling.
1041       
1042    - 1.05alpha1 :
1043   
1044        - SECURITY file added to help improve PyKota's security.
1045       
1046        - Extracting the printer's internal page counter is now
1047          tried several times, waiting several seconds between
1048          two tries. This lets the time to warm up for some printers
1049          which don't answer when they are sleeping (my Apple
1050          LaserWriter 16/600 PS is in this case, maybe others too)
1051         
1052        - Small display bug fixed in repykota
1053         
1054    - 1.04 :
1055   
1056        - Default print policy for users/groups unknown from
1057          the print quota system is now DENY instead of ALLOW,
1058          since ALLOW can generate inaccurate results
1059          (incorrect job sizes charged to the wrong persons)
1060         
1061        - LPRng support works !
1062       
1063        - A bug was introduced some time ago wrt printers' default
1064          policy for unknown users. It is now corrected.
1065       
1066        - repykota now displays prices per job and per page for each
1067          printer, if they are defined.
1068         
1069        - Minor display bug fixed in repykota.
1070       
1071        - Problem when running repykota with an empty database was fixed.
1072       
1073    - 1.03 :
1074   
1075        - Upgrade script included for earlier versions.
1076          Please look inside the initscripts subdirectory.
1077          THE DATABASE SCHEMA HAS CHANGED, PLEASE UPGRADE.
1078         
1079        - repykota now reports account balances too.
1080       
1081        - PyKota now has a nice logo, see the logos
1082          subdirectory.
1083       
1084        - Manual pages were finally updated.
1085       
1086        - Group quotas seem to work now !
1087       
1088        - The new database schema allows to keep an history of all
1089          jobs as well as charge users per page and/or per job,
1090          and track users' account balance.
1091         
1092        - edpykota now accepts much more command line options to 
1093          use the new functionnalities. See edpykota --help for
1094          details.
1095         
1096        - The installation script now allows to install the sample
1097          configuration file during first installation.
1098         
1099        - More group quota code works, but still not finished. 
1100       
1101        - The CGI script displays a link to PyKota's website.
1102       
1103        - The job history is now kept, this will allow per-period
1104          reports in the future.
1105         
1106        - After having modified the quota for an user with edpykota,
1107          a quota check is done to eventually warn the user/admin about
1108          a quota which is too low to print.
1109         
1110        - A workaround is provided for HP Printers : their internal
1111          page counter is only saved to NVRAM in a 10 increment, so
1112          if you switch them off and then on, the reported page counter
1113          may be lower than the real number of pages printed.
1114          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
1115          We unconditionnally set the last job's page count to
1116          abs(int((10 - abs(lastcounter(snmp) - lastcounter(storage)) / 2))
1117          in this case.
1118          For a more accurate accounting, never switch your HP printers
1119          off.
1120         
1121        - A fix is provided for printers which only have a volatile 
1122          page counter (reset to 0 every time you switch the printer on)
1123          This should allow PyKota to work reasonably fine with HP Laserjet
1124          4L/5L/6L, not perfect, but better than nothing.
1125          See http://web.mit.edu/source/third/lprng/doc/LPRng-HOWTO-15.html
1126          For a more accurate accounting, never switch your HP printers
1127          off. This is untested, please report any problem.
1128         
1129        - A bug was fixed when edpykota --add was used with users who already
1130          had a quota on the specified printer.
1131         
1132        - A small display bug in repykota was introduced in preliminary
1133          1.03 versions, and fixed later on.
1134         
1135        - Some minor bugs which happened in rare situations were fixed.
1136       
1137        - Support for AppleTalk printers was added, see sample configuration
1138          file for details.
1139         
1140        - Users and group printing can now be controlled (limited) either by 
1141          print quota or by account balance.
1142       
1143    - 1.02 :
1144   
1145        - The installation script now checks for software availability
1146          and in case a software is missing asks the user if he
1147          wants to continue with the installation or abort it.
1148         
1149        - The configuration file pykota.conf is now expected to be
1150          found in /etc instead of in /etc/cups
1151          The installation script prompts the user to see if he
1152          wants to move an old configuration file to the new location
1153          if needed.
1154         
1155        - Improved documentation.
1156       
1157        - You can now set the tcp/ip port on which the Quota Storage
1158          Server is listening, see sample configuration file for details.
1159       
1160        - Better general error handling.
1161       
1162        - Upgrade script for pre 1.01 PostgreSQL database schema is now
1163          included as well.
1164       
1165    - 1.01 :
1166   
1167        - The configuration file now accepts an option   
1168          to choose the recipient(s) of the email messages :
1169         
1170            - DevNull means no one will receive them.
1171            - User means only the user will receive them.
1172            - Admin means only the admin will receive them.
1173            - Both means the User and the Admin will receive them.
1174           
1175        - The configuration file now uses hard-coded default values
1176          when an option is not set. See sample configuration file
1177          for details.
1178         
1179        - Manual pages are included since 1.00, but I forgot to   
1180          add this information to this file.
1181         
1182        - Redistribution terms for the official package have 
1183          softened and are now fully GPL compatible :
1184          unrestricted modification is now allowed even for
1185          the version number.
1186         
1187    - 1.00 :
1188   
1189        - edpykota now accepts a --noquota option. This
1190          disable quota checking while still doing page
1191          accounting. This is really useful for people
1192          who don't want to limit their users but want
1193          to know how much pages they print.
1194         
1195        - Some untested scripts were added to retrieve
1196          the life time page counter of non-SNMP printers.
1197         
1198        - Every directory now has a specific README file. 
1199       
1200    - 0.99 :
1201   
1202        - Under some circumstances while the user wasn't allowed
1203          to print, he didn't receive any email message. It is
1204          now fixed.
1205         
1206        - When an user wasn't allowed to print, the quota for
1207          the previous user wasn't updated. This is now fixed.
1208         
1209    - 0.98 :
1210   
1211        - Correctly handle the case where the printer is switched off.
1212       
1213        - Small bug wrt syslog fixed.
1214       
1215    - 0.97 :
1216   
1217        - edpykota accepts wildcards on its command line for users/groups too
1218          if the --add option is not set, e.g. :
1219         
1220              $ edpykota --printer lp --softlimit 50 --hardlimit 100 "jer*"
1221             
1222        - If no user name is passed at all, then a default wildcard of "*"
1223          which means apply the command on ALL users for this printer is used.
1224         
1225        - Small bug fixes.
1226       
1227    - 0.96 :
1228
1229        - Options requester, policy, admin, adminmail and gracedelay can now
1230          be set either globally or per printer. The printer option has
1231          priority if both are defined.
1232
1233        - More powerful configuration parser.
1234       
1235        - If all options are defined globally, there's no need to
1236          define a section for each printer in the configuration
1237          file anymore. Just define a [global] section and it's ok.
1238
1239    - 0.95 :
1240
1241        - External requesters for printers finally added.
1242
1243        - Full internationalization (english and french are supported)
1244 
1245        - More complete quota usage report
1246
1247        - CGI script to access to the quota usage report
1248
1249        - Several bugs fixed.
1250
1251
1252    - 0.9 :
1253
1254        - First public version
Note: See TracBrowser for help on using the browser.