root / pykota / trunk / NEWS @ 1358

Revision 1358, 28.6 kB (checked in by jalet, 21 years ago)

Don't retrieve data when it's not needed, to avoid database queries

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