Index: /pykota/trunk/setup.py
===================================================================
--- /pykota/trunk/setup.py (revision 1595)
+++ /pykota/trunk/setup.py (revision 1600)
@@ -24,4 +24,7 @@
 #
 # $Log$
+# Revision 1.47  2004/07/16 12:22:45  jalet
+# LPRng support early version
+#
 # Revision 1.46  2004/07/07 13:21:26  jalet
 # Introduction of the pykosd command
@@ -453,5 +456,5 @@
 
 directory = os.sep.join(["share", "pykota"])
-data_files.append((directory, ["bin/cupspykota", "bin/waitprinter.sh", "bin/papwaitprinter.sh", "bin/mailandpopup.sh", "contributed/pagecount.pl", "untested/pjl/pagecount.pjl", "untested/pjl/status.pjl", "untested/netatalk/netatalk.sh", "untested/netatalk/pagecount.ps"]))
+data_files.append((directory, ["bin/cupspykota", "bin/lprngpykota", "bin/waitprinter.sh", "bin/papwaitprinter.sh", "bin/mailandpopup.sh", "contributed/pagecount.pl", "untested/pjl/pagecount.pjl", "untested/pjl/status.pjl", "untested/netatalk/netatalk.sh", "untested/netatalk/pagecount.ps"]))
 
 setup(name = "pykota", version = __version__,
Index: /pykota/trunk/docs/installation.sgml
===================================================================
--- /pykota/trunk/docs/installation.sgml (revision 1500)
+++ /pykota/trunk/docs/installation.sgml (revision 1600)
@@ -29,7 +29,7 @@
     have to decompress and visit its archive, to do so just type the following commands :
     <screen>
-jerome@nordine:~$ tar -zxf pykota-1.18_official.tar.gz    
-jerome@nordine:~$ cd pykota-1.18_official
-jerome@nordine:~/pykota-1.18_official$
+jerome@nordine:~$ tar -zxf pykota-1.19_official.tar.gz    
+jerome@nordine:~$ cd pykota-1.19_official
+jerome@nordine:~/pykota-1.19_official$
     </screen>
   </para>
@@ -152,5 +152,5 @@
             <filename>initscripts/postgresql/pykota-postgresql.sql</filename> file
             accordingly, and report your changes into <application>PyKota</application>'s
-            configuration file.
+            configuration files.
           </para>
         </note>  
@@ -165,6 +165,6 @@
         From a command line interpreter (i.e. shell), type the following commands :
         <screen>
-jerome@nordine:~$ cd pykota-1.18_official/initscripts/postgresql
-jerome@nordine:~/pykota-1.18_official/initscripts$ psql -h localhost -U postgres template1
+jerome@nordine:~$ cd pykota-1.19_official/initscripts/postgresql
+jerome@nordine:~/pykota-1.19_official/initscripts$ psql -h localhost -U postgres template1
 Welcome to psql, the PostgreSQL interactive terminal.
 
@@ -197,5 +197,5 @@
 ALTER USER
 pykota=# \q
-jerome@nordine:~/pykota-1.18_official/initscripts/postgresql$
+jerome@nordine:~/pykota-1.19_official/initscripts/postgresql$
         </screen>
       </para>
@@ -210,6 +210,6 @@
         take any other step as needed. Please refer to <application>PostgreSQL</application>'s
         documentation for details. Also if <application>PyKota</application>'s configuration
-        file <filename>/etc/pykota/pykotadmin.conf</filename> is readable by anyone with access on your file system, a local user could 
-        create some script to modify his own print quota.
+        file <filename>/etc/pykota/pykotadmin.conf</filename> is readable by anyone with access on your file system, 
+        a local user could create some script to modify his own print quota.
         <warning>
           <title>Warning</title>
@@ -248,5 +248,5 @@
       <para>
         From version 1.09 on, <application>OpenLDAP</application> can be used as a Quota Storage Backend.
-        It is possible that other LDAP servers can be used, but this is currently untested.
+        Some other LDAP servers can be used, but this is currently untested in production.
       </para>
       
@@ -283,15 +283,29 @@
         While this is not mandatory, it is recommended that you setup
         some indexes for some often accessed PyKota attributes.
-        Actually, the <acronym>LDAP</acronym> schema included with
-        PyKota doesn't allow indexes of another type than <literal>eq</literal>,
-        but this will change in a next release. Here are the minimal indexes
+        Here are the minimal indexes
         lines you may want to put in <filename>slapd.conf</filename> :
         <screen>
 # Indexes for PyKota
-index pykotaUserName eq
-index pykotaGroupName eq
-index pykotaPrinterName eq
+index pykotaUserName pres,eq,sub
+index pykotaGroupName pres,eq,sub
+index pykotaPrinterName pres,eq,sub
 index pykotaLastJobIdent eq
         </screen>
+      </para>
+      
+      <para>
+        Now you must ensure that the DNs you'll use to bind to    
+        your OpenLDAP server don't have search queries size limits,
+        which gives for example (OpenLDAP 2.1.x or above) :
+        
+<screen>        
+# No Limits for PyKota's administrator and read-only user
+limits dn="cn=RWadmin,dc=example,dc=com" size.soft=-1 size.hard=soft
+limits dn="cn=ROadmin,dc=example,dc=com" size.soft=-1 size.hard=soft
+</screen>        
+
+        Where RWadmin and ROadmin are the usernames used to bind to your
+        OpenLDAP server within PyKota, respectively in ReadWrite mode 
+        (as set in pykotadmin.conf) and in ReadOnly mode (as set in pykota.conf).
       </para>
       
@@ -381,5 +395,5 @@
           <para>
             <application>CUPS</application> version 1.1 or above, or <application>LPRng</application>
-            version 3.8.20 or above (it probably works with older versions but this is untested).
+            version 3.8.27 or above (it probably works with older versions but this is untested).
             You can download them from <ulink url="http://www.cups.org">http://www.cups.org</ulink>
             or <ulink url="http://lprng.sourceforge.net">http://lprng.sourceforge.net</ulink>
@@ -532,5 +546,5 @@
       Please create a backup of the <filename>/etc/pykota</filename>
       directory before modifying anything.
-      Under some circumstances, the setup PyKota may refuse to install PyKota
+      Under some circumstances, PyKota's setup script may refuse to install PyKota
       until you have modified your configuration. Just do it and restart
       the installation script as described above.
@@ -611,5 +625,14 @@
       <para>
         Then when creating new printers or reconfiguring existing ones, just
-        choose devices which are <literal>PyKota managed</literal> instead of
+        choose devices which are <literal>PyKota managed</literal>
+        <footnote>
+          <para>
+            Debian 3.0 Woody is known to have problems : CUPS 1.1.14 doesn't automatically
+            detect <literal>PyKota managed</literal> devices. So you have to manually
+            modify CUPS' <filename>printers.conf</filename> file as explained in 
+            PyKota's toplevel <filename>README</filename> file.
+          </para>
+        </footnote>
+        instead of
         normal devices. You've got one <literal>PyKota managed</literal> device
         for each regular device available from CUPS, so just choose the appropriate
@@ -645,19 +668,32 @@
     <sect2>
       <title>With LPRng</title>
-      <para>
-        ######### TODO ##########
-      </para>
-      
-      <para>
-        You have to restart <application>LPRng</application> for this modification to
-        take effect : 
+      
+      <para>
+        For each printer on which you want to use <application>PyKota</application>, just modify the printer's 
+        entry in <filename>/etc/printcap</filename> : you have to add
+        the three following lines :
+        
+<screen>        
+  :ac=true:\
+  :as=/usr/share/pykota/lprngpykota:\
+  :ae=/usr/share/pykota/lprngpykota:\
+</screen>          
+
+        This will tell <application>LPRng</application> to activate accounting, and use the <filename>lprngpykota</filename> 
+        accounting filter both at the start and at the end of printing. 
+      </para>
+      
+      
+      <para>
+        Repeat the above procedure for each print queue on which you want to use
+        PyKota. That's all !
+      </para>
+      
+      <para>
+        When all modifications are done, just save the <filename>/etc/printcap</filename> file 
+        and restart <application>LPRng</application> for the changes to take effect : 
         <screen>
 $ /etc/init.d/lprng restart        
         </screen>
-      </para>
-      
-      <para>
-        Repeat the above procedure for each print queue on which you want to use
-        PyKota. That's all !
       </para>
       
@@ -689,4 +725,7 @@
 
 $Log$
+Revision 1.26  2004/07/16 12:22:46  jalet
+LPRng support early version
+
 Revision 1.25  2004/05/25 09:49:53  jalet
 The old pykota filter has been removed. LPRng support disabled for now.
Index: /pykota/trunk/docs/pykota.sgml
===================================================================
--- /pykota/trunk/docs/pykota.sgml (revision 1409)
+++ /pykota/trunk/docs/pykota.sgml (revision 1600)
@@ -10,4 +10,5 @@
   <!entity SCRIPTS system "scripts.sgml">
   <!entity PKHINT system "pkhint.sgml">
+  <!entity PYKOSD system "pykosd.sgml">
   <!entity GNUGPL system "gnugpl.sgml">
 
@@ -120,4 +121,6 @@
   
   &PKHINT;
+  
+  &PYKOSD;
     
   &GNUGPL;
@@ -128,4 +131,7 @@
 
 $Log$
+Revision 1.13  2004/07/16 12:22:46  jalet
+LPRng support early version
+
 Revision 1.12  2004/03/18 10:32:23  jalet
 Added pkhint's documentation
Index: /pykota/trunk/docs/pykosd.sgml
===================================================================
--- /pykota/trunk/docs/pykosd.sgml (revision 1600)
+++ /pykota/trunk/docs/pykosd.sgml (revision 1600)
@@ -0,0 +1,46 @@
+<!-- $Id$ -->
+
+<chapter>
+  <title>Uses On Screen Display to show personal print quota information with pykosd</title>
+  <para>Last modified on $Date$</para>
+  
+  <para>
+    <filename>pykosd</filename> is a graphical <application>X Window</application> application which when launched 
+    will display print quota information for the current user.
+  </para>  
+  
+  <para>
+    Whenever you launch <filename>pykosd</filename>, it will display the current user's print quota
+    information in the top-left corner of the screen, above all existing windows, and with
+    a transparent background. Then after five seconds, the information displayed will disappear
+    and the program will exit.
+  </para>
+  
+  <para>
+    In the future, this command will accept some parameters which will render it more
+    useful.
+  </para>
+  
+  <sect1>
+    <title>Reference</title>
+    <para>
+      <cmdsynopsis>
+        <command>pykosd</command>
+      </cmdsynopsis>
+      <warning>
+        <para>
+          <filename>pykosd</filename> doesn't currently accept any command line
+          option. This will change in the future.
+        </para>  
+      </warning>
+    </para>
+  </sect1>
+</chapter>
+
+<!--
+
+$Log$
+Revision 1.1  2004/07/16 12:22:46  jalet
+LPRng support early version
+
+-->
Index: /pykota/trunk/docs/filterpykota.sgml
===================================================================
--- /pykota/trunk/docs/filterpykota.sgml (revision 1500)
+++ /pykota/trunk/docs/filterpykota.sgml (revision 1600)
@@ -11,5 +11,5 @@
       <para>
         PyKota doesn't currently account for ink usage, it only accounts
-        pages. To account for ink usage, you should use PrintBill instead.
+        pages. To account for ink usage, you should use PrintBill instead for now.
       </para>  
     </footnote>  
@@ -26,5 +26,5 @@
     PostScript data as its input, and, as its name implies, outputs PostScript data too, but after having
     eventually rearranged the pages to fit several pages on a single sheet of paper, or other manipulations
-    like that. 
+    like that. <application>LPRng</application> also contains several filters like this.
   </para>
   
@@ -36,7 +36,8 @@
   
   <para>
-    <application>LPRng</application> can also use filters, one often used in combination with
-    <application>LPRng</application> is <application>magicfilter</application> which can convert 
-    different input formats to native printers languages like PostScript or ESC/P2.
+    <application>LPRng</application> can also use filters, often used in combination with
+    <application>LPRng</application> are <application>magicfilter</application> which can convert 
+    different input formats to native printers languages like PostScript or ESC/P2 and 
+    <application>ifhp</application> which can do low-level accounting.
   </para>  
   
@@ -44,5 +45,5 @@
     So to do its own accounting, <application>PyKota</application> has its own filters, for <application>CUPS</application>
     it's named <filename>cupspykota</filename>, which is in fact a <application>CUPS</application> backends wrapper,
-    and for <application>LPRng</application> it's named ########## TODO ########## .
+    and for <application>LPRng</application> it's named <filename>lprngpykota</filename>, as you have probably guessed.
     The procedure to plug the correct filter into your printing system is described in the 
     <xref linkend="installation" endterm="installation"> chapter.
@@ -52,5 +53,5 @@
     Currently with a <application>CUPS</application> internal accounting mechanism, the <filename>pstops</filename>
     filter can be bypassed. That's why <application>PyKota</application> uses its own backend.
-    The <filename>cupspykota</filename> backend wrapper ensures that jobs can't bypass the filtering mechanism, so you can use
+    The <filename>cupspykota</filename> backend wrapper ensures that jobs can't bypass it, so you can use
     any printer with any driver and any command line option, and you can be sure that your
     print job will be correctly accounted for.
@@ -58,34 +59,16 @@
   
   <para>
-    When used with an <application>LPRng</application> backend, the accounting filter is not defined the same way 
-    input filters are, so the problem described above doesn't exist, and <application>PyKota</application>
-    may work with non-postscript printers, provided they can report their page counter and you know how to retrieve
-    it.
-  </para>
-  
-  <para>
-    When you submit a print job, <application>PyKota</application>'s accounting mechanism is automatically launched by your printing system,
-    so it has to detect which system you are using (<application>CUPS</application> or <application>LPRng</application>)
-    and behave like if it was specifically designed for your printing system. Fortunately there's not a lot
-    of differences, the more important one is the exit codes used to tell the printing environment if a job
-    has to be accepted or rejected. 
-  </para>
-  
-  <para>
     When using the <literal>hardware</literal> accounting method,
-    the <application>cupspykota</application> CUPS backend 
-    asks the printer for its internal page counter at the start and at the end of the print job, and
-    computes the values' difference so accounting is done immediately. 
+    <application>PyKota</application> launches the script you specified to
+    ask the printer for its internal page counter at the start and at the end of the print job, and
+    computes the values' difference to know the job's size. 
   </para>
   
   <para>
     When using the <literal>software</literal> accounting method,
-    and if the user is still allowed to print,
     the command you specified is launched with the job's data on its 
     standard input. Your command must print the job's size in number of
     pages on a single line on its standard output. This number is then
     read by <application>PyKota</application> and used to update the current user's quota information.
-    Of course checks are also done like with the <literal>hardware</literal>
-    accounting method, to see if the current job is allowed to be printed or not.
   </para>
   
@@ -103,4 +86,7 @@
 
 $Log$
+Revision 1.12  2004/07/16 12:22:45  jalet
+LPRng support early version
+
 Revision 1.11  2004/05/25 09:49:52  jalet
 The old pykota filter has been removed. LPRng support disabled for now.
Index: /pykota/trunk/README
===================================================================
--- /pykota/trunk/README (revision 1580)
+++ /pykota/trunk/README (revision 1600)
@@ -25,6 +25,7 @@
      FROM THIS FILE, PYKOTA CAN'T BE USED ANYMORE WITH LPRNG.
      
-     SUPPORT FOR LPRNG SHOULD BE RE-ADDED SOON WHEN A HUGE REWRITE
-     OF SOME PARTS OF PYKOTA WILL HAVE TAKEN PLACE
+     LPRNG SUPPORT IS CURRENTLY BEING REWRITTEN, AND YOU CAN
+     ALREADY PLAY WITH IT, BUT DON'T USE IT IN PRODUCTION UNTIL
+     THIS NOTE IS REMOVED.
 
 ====================================================================
@@ -47,7 +48,4 @@
         - Supports both CUPS and LPRng as the printing system.
         
-          NB : LPRng support is currently being rewritten, so
-          LPRng is actually not supported in latest CVS versions.
-            
     Databases :
     
@@ -174,11 +172,7 @@
     counter.
     
-    With CUPS, this is done both at the beginning and at the end of a
+    This is done both at the beginning and at the end of a
     print job. The counters difference is then immediately used to 
     decrease the user's account balance or increase his quota usage.
-    
-    With LPRng, this is done just before the beginning of a job, and used 
-    this to modify the *preceding* user's quota. So you're always late 
-    of one print job, but this is generally ok.
     
   - The 'software' method consists in delegating the computation of the
@@ -186,10 +180,9 @@
     The command can read the job's data from its standard input and MUST
     output the job's size on its standard output. Changes to the user
-    account are reported immediately, both with CUPS and LPRng.
-    
-PyKota is known to work fine with HP Laserjet 2100 and 2200, and 
-Apple LaserWriter 16/600 PS, both with CUPS and LPRng, under 
-Debian GNU/Linux (Sarge and Sid) operating systems. It should work
-fine with most network printers.
+    account are reported immediately.
+    
+PyKota is known to work fine with most laser printers, either with
+software accounting, or with hardware accounting if the printer
+supports this.
 
 ============================================================
@@ -237,5 +230,5 @@
       
   Other architectures may be supported as well in the future, check    
-  on Psyco's website.
+  this on Psyco's website.
   
   Installing Psyco is not mandatory, but it will speedup PCL5 parsing
@@ -244,6 +237,6 @@
   is already optimal. For PCL5 this is a completely different matter,
   and if you install Psyco you will never regret it !
-  Same remark applies for PCL6 (aka PCLXL) but performance improvement
-  is yet to be fully tested (it is very high anyway).
+  Same remark applies for PCL6 (aka PCLXL) : the parser is completely
+  different, but the performance gain with Psyco is impressive.
   
   You may also benefit from having the following tools installed to
@@ -268,9 +261,4 @@
   the Print Server. The PostgreSQL client libraries' version must 
   match the PostgreSQL version used on the Quota Storage Server. 
-  BEWARE : under Debian Sarge, as of March 15th 2004, there's a
-  problem with python2.2-pygresql and python-2.3-pygresql, so please
-  install python2.1-pygresql and use Python 2.1 to install and run
-  PyKota. This is not a bug in PyKota, and this should be fixed
-  by Debian in a few days I hope.
   
 or  
@@ -307,5 +295,5 @@
 
 Go to the initscripts subdirectory of PyKota's sources, and choose
-the appropriate storage backend for your configuration. Read
+the appropriate storage backend for your configuration. Read carefully
 the associated README file and execute the initialization script
 to create an empty PyKota Storage. Upgrade scripts may be 
@@ -314,7 +302,7 @@
 Copy the conf/pykota.conf.sample and  conf/pykotadmin.conf.sample 
 sample configuration files to /etc/pykota/pykota.conf and 
-/etc/pykota/pykotadmin.conf. The installation script tries to do 
-this for you if needed and you agreed to this action. You need to 
-adapt these files to your own needs. Especially you have to create 
+/etc/pykota/pykotadmin.conf (the installation script tries to do 
+this for you if needed and you agreed to this action). You need to 
+adapt these files to your own needs. Especially you may have to create 
 sections named after your own printers, and change the 
 administrator's email address which by default is root@localhost.
@@ -342,4 +330,10 @@
           $ /etc/init.d/cupsys restart
           
+        or :    
+      
+          $ /etc/rc.d/init.d/cupsysrestart
+          
+        or any similar command depending on your operating system.  
+          
     For new printers :
     
@@ -358,10 +352,20 @@
         
         Now double check /etc/pykota/pykota.conf 
-        This file should contain a section named after the
+        
+        You should manually create a section named after the
         printer you've just added, unless you have set
         all options globally.
+        
         The new pkhint command can help you with correct settings 
         for your printers, but don't rely on it because it is still
-        incomplete.
+        experimental work. To use pkhint, you have to feed it with
+        CUPS' printers.conf file this way :
+        
+          $ pkhint </etc/cups/printers.conf
+        
+        pkhint will try to tell you what is the best accounting
+        method for each printer and will print some lines you'll
+        just have to copy&paste in the appropriate sections in
+        /etc/pykota/pykota.conf
         
         That's all.
@@ -399,8 +403,37 @@
         
         Save the file and restart CUPS.
+        
+        Here too, you may find it interesting to use the pkhint command as
+        described above to help with manual configuration of the file
+        /etc/pykota/pykota.conf
 
   - LPRng Printing System :
   
-      For now LPRng support in PyKota is deactivated. Please be patient.
+    For each printer on which you want to use PyKota :
+    
+        Modify the printer's entry in /etc/printcap : you have to add
+        the three following lines :
+        
+          :ac=true:\
+          :as=/usr/share/pykota/lprngpykota:\
+          :ae=/usr/share/pykota/lprngpykota:\
+          
+        This will tell LPRng to activate accounting, and use the lprngpykota 
+        accounting filter both at the start and at the end of printing. 
+        
+    When all modifications are done, just save the /etc/printcap file and    
+    restart LPRng :
+    
+          $ /etc/init.d/lprng restart
+          
+        or :    
+      
+          $ /etc/rc.d/init.d/lprng restart
+          
+        or any similar command depending on your operating system.  
+        
+    NB : the pkhint command can't be used with LPRng for now, so you    
+         have to modify /etc/pykota/pykota.conf carefully. The comments
+         in this file will help you.
       
 Now you can begin to populate the PyKota's database with printers,
@@ -489,4 +522,12 @@
     http://cgi.librelogiciel.com/mailman/listinfo/pykota
     
+  The mailing list is the preferred way to obtain support, because  
+  all members can help and can also benefit from the solutions
+  proposed by other members. 
+  
+  Posts by non-members are usually rejected.
+  
+  The mailing list language is english and only english.
+    
 IRC :    
 -----
@@ -496,4 +537,11 @@
         /server irc.freenode.net
         /join #pykota
+        
+  Preferred language on this channel is english, but french      
+  is also accepted. Try to avoid exposing complex problems
+  in french because english speaking people on the channel
+  wouldn't benefit from the solutions.
+  
+  PyKota's main author is known as 'tamere' on IRC.
     
 ============================================================
Index: /pykota/trunk/pykota/tool.py
===================================================================
--- /pykota/trunk/pykota/tool.py (revision 1593)
+++ /pykota/trunk/pykota/tool.py (revision 1600)
@@ -22,4 +22,7 @@
 #
 # $Log$
+# Revision 1.112  2004/07/16 12:22:47  jalet
+# LPRng support early version
+#
 # Revision 1.111  2004/07/06 18:09:42  jalet
 # Reduced the set of invalid characters in names
@@ -931,4 +934,8 @@
         signal.signal(signal.SIGTERM, self.sigterm_handler)
         
+    def sendBackChannelData(self, message) :    
+        """Sends an informational message to CUPS via back channel stream (stderr)."""
+        self.printInfo("PyKota (PID %s) : %s" % (os.getpid(), message.strip()))
+        
     def openJobDataStream(self) :    
         """Opens the file which contains the job's datas."""
@@ -1105,7 +1112,12 @@
                 self.printInfo(_("Printer hostname undefined, set to 'localhost'"), "warn")
                 rseen = "localhost"
+            try :    
+                df_name = [line[8:] for line in os.environ.get("HF").split() if line.startswith("df_name=")][0]
+            except IndexError :
+                inputfile = None        
+            else :    
+                inputfile = os.path.join(os.environ.get("SPOOL_DIR", "."), df_name)
             if jseen and Pseen and nseen and rseen :        
-                # job is always in stdin (None)
-                return ("LPRNG", rseen, Pseen, nseen, jseen, None, Kseen, None, None, None)
+                return ("LPRNG", rseen, Pseen, nseen, jseen, inputfile, Kseen, None, None, None)
         self.printInfo(_("Printing system unknown, args=%s") % " ".join(sys.argv), "warn")
         return (None, None, None, None, None, None, None, None, None, None)   # Unknown printing system
Index: /pykota/trunk/pykota/accounters/hardware.py
===================================================================
--- /pykota/trunk/pykota/accounters/hardware.py (revision 1584)
+++ /pykota/trunk/pykota/accounters/hardware.py (revision 1600)
@@ -22,4 +22,7 @@
 #
 # $Log$
+# Revision 1.7  2004/07/16 12:22:47  jalet
+# LPRng support early version
+#
 # Revision 1.6  2004/07/01 19:56:42  jalet
 # Better dispatching of error messages
@@ -54,4 +57,5 @@
         """Initializes querying accounter."""
         AccounterBase.__init__(self, kotabackend, arguments)
+        self.isSoftware = 0
         
     def getPrinterInternalPageCounter(self) :    
Index: /pykota/trunk/pykota/accounter.py
===================================================================
--- /pykota/trunk/pykota/accounter.py (revision 1499)
+++ /pykota/trunk/pykota/accounter.py (revision 1600)
@@ -22,4 +22,7 @@
 #
 # $Log$
+# Revision 1.17  2004/07/16 12:22:47  jalet
+# LPRng support early version
+#
 # Revision 1.16  2004/05/25 09:15:15  jalet
 # accounter.py : old code deleted
@@ -91,4 +94,5 @@
         self.filter = kotafilter
         self.arguments = arguments
+        self.isSoftware = 1 # by default software accounting
         
     def getLastPageCounter(self) :    
Index: /pykota/trunk/pykota/version.py
===================================================================
--- /pykota/trunk/pykota/version.py (revision 1599)
+++ /pykota/trunk/pykota/version.py (revision 1600)
@@ -22,5 +22,5 @@
 #
 
-__version__ = "1.19alpha31_unofficial"
+__version__ = "1.19alpha32_unofficial"
 
 __doc__ = """PyKota : a complete Printing Quota Solution for CUPS and LPRng."""
Index: /pykota/trunk/bin/cupspykota
===================================================================
--- /pykota/trunk/bin/cupspykota (revision 1584)
+++ /pykota/trunk/bin/cupspykota (revision 1600)
@@ -24,4 +24,7 @@
 #
 # $Log$
+# Revision 1.67  2004/07/16 12:22:45  jalet
+# LPRng support early version
+#
 # Revision 1.66  2004/07/01 19:56:25  jalet
 # Better dispatching of error messages
@@ -471,8 +474,4 @@
             maskval.append("POLLNVAL")
         return "%s (%s)" % (fd, " | ".join(maskval))
-        
-    def sendBackChannelData(self, message) :    
-        """Sends an informational message to CUPS via back channel stream (stderr)."""
-        self.printInfo("PyKota (PID %s) : %s" % (os.getpid(), message.strip()))
         
     def handleData(self) :                    
Index: /pykota/trunk/MANIFEST.in
===================================================================
--- /pykota/trunk/MANIFEST.in (revision 1595)
+++ /pykota/trunk/MANIFEST.in (revision 1600)
@@ -1,3 +1,3 @@
-include README FAQ COPYING LICENSE TODO NEWS CREDITS SECURITY MANIFEST.in clean.sh bin/cupspykota bin/edpykota bin/warnpykota bin/repykota bin/pykotme bin/pykosd bin/pkprinters bin/pkhint bin/pkpgcounter bin/snmpprinterstatus bin/waitprinter.sh bin/papwaitprinter.sh bin/mailandpopup.sh bin/README
+include README FAQ COPYING LICENSE TODO NEWS CREDITS SECURITY MANIFEST.in clean.sh bin/lprngpykota bin/cupspykota bin/edpykota bin/warnpykota bin/repykota bin/pykotme bin/pykosd bin/pkprinters bin/pkhint bin/pkpgcounter bin/snmpprinterstatus bin/waitprinter.sh bin/papwaitprinter.sh bin/mailandpopup.sh bin/README
 recursive-include po README *.po *.mo *.pot
 recursive-include man README *.sh *.1
Index: /pykota/trunk/NEWS
===================================================================
--- /pykota/trunk/NEWS (revision 1599)
+++ /pykota/trunk/NEWS (revision 1600)
@@ -22,4 +22,8 @@
 PyKota NEWS :
 
+    - 1.19alpha32 :
+    
+        - Early (not working) version of the LPRng support rewrite
+        
     - 1.19alpha31 :
     
