Index: /pykota/branches/1.26_fixes/checkdeps.py
===================================================================
--- /pykota/branches/1.26_fixes/checkdeps.py (revision 3133)
+++ /pykota/branches/1.26_fixes/checkdeps.py (revision 3570)
@@ -1,4 +1,4 @@
 #! /usr/bin/env python
-# -*- coding: ISO-8859-15 -*-
+# -*- coding: utf-8 -*-
 #
 # PyKota
@@ -16,5 +16,5 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
@@ -32,9 +32,9 @@
     try :
         exec "import %s" % module
-    except ImportError :    
+    except ImportError :
         return 0
-    else :    
+    else :
         return 1
-        
+
 def checkCommand(command) :
     """Checks if a command is available or not."""
@@ -43,5 +43,5 @@
     input.close()
     return result
-    
+
 def checkWithPrompt(prompt, module=None, command=None, helper=None) :
     """Tells the user what will be checked, and asks him what to do if something is absent."""
@@ -50,21 +50,21 @@
     if command is not None :
         result = checkCommand(command)
-    elif module is not None :    
+    elif module is not None :
         result = checkModule(module)
-    if result :    
+    if result :
         sys.stdout.write("OK\n")
-    else :    
+    else :
         sys.stdout.write("NO.\n")
         sys.stderr.write("ERROR : %s not available !\n" % prompt)
         sys.stdout.write("%s\n" % helper)
-    
-if __name__ == "__main__" :    
+
+if __name__ == "__main__" :
     print "Checking PyKota dependencies..."
-    
+
     # checks if Python version is correct, we need >= 2.2
     if not (sys.version > "2.2") :
         sys.stderr.write("PyKota needs at least Python v2.2 !\nYour version seems to be older than that, please update.\nAborted !\n")
         sys.exit(-1)
-        
+
     # checks if some needed Python modules are there or not.
     modulestocheck = [ ("Python-PygreSQL", "pg", "PygreSQL is mandatory if you want to use PostgreSQL as the quota database backend.\nSee http://www.pygresql.org"),
@@ -78,5 +78,4 @@
                        ("Python-ReportLab", "reportlab.pdfgen.canvas", "Python-ReportLab is required if you plan to have PyKota generate banners.\nSee http://www.reportlab.org/"),
                        ("Python-Imaging", "PIL.Image", "Python-Imaging is required if you plan to have PyKota generate banners.\nSee http://www.pythonware.com/downloads/"),
-                       ("Python-Psyco", "psyco", "Python-Psyco speeds up parsing of print files, you should use it.\nSee http://psyco.sourceforge.net/"),
                        ("Python-pkpgcounter", "pkpgpdls", "Python-pkpgcounter is mandatory.\nGrab it from http://www.pykota.com/software/pkpgcounter/"),
                        ("Python-PAM", "PAM", "Python-PAM is recommended if you plan to use pknotify+PyKotIcon.\nGrab it from http://www.pangalactic.org/PyPAM/"),
@@ -85,12 +84,12 @@
                      ]
     commandstocheck = [ ("GhostScript", "gs", "Depending on your configuration, GhostScript may be needed in different parts of PyKota."),
-                        ("SNMP Tools", "snmpget", "SNMP Tools are needed if you want to use SNMP enabled printers."), 
+                        ("SNMP Tools", "snmpget", "SNMP Tools are needed if you want to use SNMP enabled printers."),
                         ("Netatalk", "pap", "Netatalk is needed if you want to use AppleTalk enabled printers.")
                       ]
     for (name, module, helper) in modulestocheck :
         checkWithPrompt(name, module=module, helper=helper)
-            
+
     # checks if some software are there or not.
     for (name, command, helper) in commandstocheck :
         checkWithPrompt(name, command=command, helper=helper)
-            
+
Index: /pykota/branches/1.26_fixes/debian/control
===================================================================
--- /pykota/branches/1.26_fixes/debian/control (revision 3235)
+++ /pykota/branches/1.26_fixes/debian/control (revision 3570)
@@ -10,19 +10,19 @@
 Package: pykota
 Architecture: all
-Depends: python, python-egenix-mxdatetime, cupsys,  python-pygresql | python-ldap | python-pysqlite2 | python-mysqldb, jaxml | python-jaxml, python-osd, python-reportlab, python-pysnmp4, python-imaging 
-Recommends: qa-assistant, snmp, netatalk, python-psyco, npadmin, python-pam, python-chardet
+Depends: python, python-egenix-mxdatetime, cups,  python-pygresql | python-ldap | python-pysqlite2 | python-mysqldb, jaxml | python-jaxml, python-osd, python-reportlab, python-pysnmp4, python-imaging
+Recommends: qa-assistant, snmp, netatalk, npadmin, python-pam, python-chardet
 Description: Print Quota/Accounting system for CUPS
- PyKota is a full featured, internationalized, centralized and extensible 
- Print Quota system for CUPS. It supports both PostgreSQL, MySQL, SQLite and 
- OpenLDAP (or other LDAP servers) as the quota database backend. 
+ PyKota is a full featured, internationalized, centralized and extensible
+ Print Quota system for CUPS. It supports both PostgreSQL, MySQL, SQLite and
+ OpenLDAP (or other LDAP servers) as the quota database backend.
  .
  One installed, type 'pksetup debian' to configure PyKota.
  .
- This software features most of what you might expect from a modern Print 
- Quota and Accounting Solution. However it can be extended at will 
+ This software features most of what you might expect from a modern Print
+ Quota and Accounting Solution. However it can be extended at will
  because it allows one to plug his own administrative scripts at
  several stages of the printing process.
  .
- Full access to source code is granted to all for no fee via Subversion, but 
- installable tarball, DEB and RPM download is for a fee. Redistribution and 
+ Full access to source code is granted to all for no fee via Subversion, but
+ installable tarball, DEB and RPM download is for a fee. Redistribution and
  modification is allowed to all under the terms of the GNU GPL.
Index: /pykota/branches/1.26_fixes/docs/installation.sgml
===================================================================
--- /pykota/branches/1.26_fixes/docs/installation.sgml (revision 3202)
+++ /pykota/branches/1.26_fixes/docs/installation.sgml (revision 3570)
@@ -3,12 +3,12 @@
 <chapter>
   <title id="installation">Installation</title>
-  
+
   <para>Last modified on $Date$</para>
-  
+
   <para>
     Before being able to use <application>PyKota</application>, you have of course to
     install it first. But before installing, you must carefully plan your installation.
   </para>
-  
+
   <para>
     First you have to determine which machine will be the <application>PyKota</application>
@@ -16,10 +16,10 @@
     for keeping a centralized database of print usage for all your printers, users and groups.
   </para>
-  
+
   <para>
     Then you have to list all the <firstterm>Print Servers</firstterm> for which
     you plan to use print quota facilities.
   </para>
-  
+
   <para>
     With most database backends, several print servers can share a single database, however
@@ -27,22 +27,22 @@
     as your print quota database backend.
   </para>
-  
+
   <para>
     Finally you have to download <application>PyKota</application>'s latest version
-    or buy an official package, from 
+    or buy an official package, from
     <ulink url="http://www.pykota.com/software/pykota">http://www.pykota.com/software/pykota</ulink>.
     If you've just bought an official package, then as soon as you've receive it you
     have to decompress and visit its archive, to do so just type the following commands :
     <screen>
-jerome@nordine:~$ tar -zxf pykota-1.26_official.tar.gz    
+jerome@nordine:~$ tar -zxf pykota-1.26_official.tar.gz
 jerome@nordine:~$ cd pykota-1.26_official
 jerome@nordine:~/pykota-1.26_official$
     </screen>
   </para>
-  
+
   <para>
     You can see many files in this directory, the first ones to read are <filename>README</filename>,
     then <filename>COPYING</filename> and <filename>LICENSE</filename>. They will give you
-    basic installation instructions and explain the licensing terms under which 
+    basic installation instructions and explain the licensing terms under which
     <application>PyKota</application> is distributed. Of course they are also mostly
     boring to read ! Detailed installation and operating instructions are defined
@@ -54,8 +54,8 @@
     know this because that's what you are currently reading !
   </para>
-  
+
   <sect1>
     <title>Interactive step-by-step installation of PyKota with pksetup</title>
-    
+
     <para>
       <command>pksetup</command> is a command line tool with which you'll be able
@@ -66,8 +66,8 @@
       several servers to install identically.
     </para>
-    
+
     <para>
       Currently, <command>pksetup</command> is experimental, and only works
-      with <ulink url="http://www.debian.org">Debian</ulink> and 
+      with <ulink url="http://www.debian.org">Debian</ulink> and
       <ulink url="http://www.ubuntu.com">Ubuntu</ulink> distributions.
       In addition, the database backend which will be installed with
@@ -77,16 +77,16 @@
       the installation manually, then read and follow the instructions in the next section.
     </para>
-    
+
     <para>
       To launch the installation procedure, just type <literal>pksetup</literal>
       followed with the name of your distribution, like :
-    <screen>    
+    <screen>
 jerome@nordine:~/pykota-1.26_official$ ./bin/pksetup debian
-    </screen>  
+    </screen>
       and then follow the instructions and answer to the several questions you'll
       be asked.
     </para>
   </sect1>
-  
+
   <sect1>
     <title>Manual installation</title>
@@ -100,10 +100,10 @@
           This is especially the case if you've got only one server.
         </para>
-      </note>  
+      </note>
     </para>
-    
+
     <sect2>
       <title>Database server installation</title>
-      
+
       <para>
         Depending on <application>PyKota</application>'s version number, different
@@ -111,25 +111,25 @@
         them how to configure it.
       </para>
-      
+
       <sect3>
         <title>PostgreSQL</title>
-        
+
         <para>
           <application>PostgreSQL</application> is an <firstterm>Object Relationnal DataBase
           Management System</firstterm> distributed under a <firstterm>Free Software</firstterm>
-          license from the 
+          license from the
           <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink>
           web site. It certainely is the free <acronym>RDBMS</acronym> which has the most advanced
           features, and is widely used all over the world.
         </para>
-        
+
         <para>
           To configure your database, you must have PostgreSQL already working.
           The complete installation of <application>PostgreSQL</application> is not covered by
-          the present manual, please refer to your system's documentation or to 
+          the present manual, please refer to your system's documentation or to
           <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink> for
           details.
         </para>
-        
+
         <para>
           One thing you have to check, though, is that every Print Server on which you
@@ -146,11 +146,11 @@
           is not necessary though if your print quota database server and your Print Server are
           the very same host.
-        </para>  
-        
+        </para>
+
         <para>
           Here's an excerpt from a <filename>pg_hba.conf</filename> file. This one rejects all
           connections to PyKota's database excepted when made from the same host by <application>PostgreSQL</application> users
           <literal>pykotauser</literal> or <literal>pykotaadmin</literal> with the correct password.
-    <screen>        
+    <screen>
           local all    postgres                              ident sameuser
           local all    all                                   reject
@@ -160,5 +160,5 @@
     </screen>
        </para>
-       
+
        <para>
           Of course if your print server and your database servers have different <acronym>IP</acronym>
@@ -173,7 +173,7 @@
               any of its configuration files, in order for the changes to take effect.
             </para>
-          </tip>  
-        </para>
-        
+          </tip>
+        </para>
+
         <para>
           Be careful, you may be unable to connect from a Print Server to the <application>PostgreSQL</application>
@@ -186,10 +186,10 @@
             <title>Note</title>
             <para>
-              The TCP/IP network port used by PostgreSQL may be different. When in doubt, ask your 
-              <firstterm>System Administrator</firstterm> for the correct value. 
-            </para>
-          </note>  
-        </para>
-        
+              The TCP/IP network port used by PostgreSQL may be different. When in doubt, ask your
+              <firstterm>System Administrator</firstterm> for the correct value.
+            </para>
+          </note>
+        </para>
+
         <para>
           Now that your <application>PostgreSQL</application> server is up and running, and
@@ -203,8 +203,8 @@
           itself, he is only defined in <application>PostgreSQL</application> and don't
           have to exist on any system, nor in the print quota database. His default name
-          is <literal>pykotaadmin</literal>. 
+          is <literal>pykotaadmin</literal>.
           A print quota database read-only user is also created under the name of <literal>pykotauser</literal>.
-          This read-only user is used by <application>PyKota</application> to connect to the 
-          print quota database when an user who is not a <application>PyKota</application> administrator 
+          This read-only user is used by <application>PyKota</application> to connect to the
+          print quota database when an user who is not a <application>PyKota</application> administrator
           <footnote><para>a <application>PyKota</application> administrator is an user who can read the <filename>~pykota/pykotadmin.conf</filename> file.</para></footnote>
           launches a pykota command. This prevents normal
@@ -217,12 +217,12 @@
             <title>Note</title>
             <para>
-              You can choose other names and passwords if you want by modifying the 
+              You can choose other names and passwords if you want by modifying the
               <filename>initscripts/postgresql/pykota-postgresql.sql</filename> file
               accordingly, and report your changes into <application>PyKota</application>'s
               configuration files.
             </para>
-          </note>  
-        </para>
-        
+          </note>
+        </para>
+
         <para>
           To run this script, you can use the <command>psql</command> frontend to
@@ -236,5 +236,5 @@
     jerome@nordine:~/pykota-1.26_official/initscripts$ psql -h localhost -U postgres template1
     Welcome to psql, the PostgreSQL interactive terminal.
-    
+
     Type:  \copyright for distribution terms
          \h for help with SQL commands
@@ -242,8 +242,8 @@
          \g or terminate with semicolon to execute query
          \q to quit
-    
-    template1=# \i pykota-postgresql.sql 
+
+    template1=# \i pykota-postgresql.sql
               ... a lot of output lines
-    pykota=#       
+    pykota=#
           </screen>
           <note>
@@ -252,13 +252,13 @@
               If you use RPM or DEB packages, usually the
               <filename>pykota-postgresql.sql</filename> file gets installed into the
-              <filename>/usr/share/pykota/postgresql</filename> directory, along 
+              <filename>/usr/share/pykota/postgresql</filename> directory, along
               with a README file.
             </para>
-          </note>  
-        </para>
-        
+          </note>
+        </para>
+
         <para>
           If you want to you can change passwords later in
-          <application>PostgreSQL</application> for the 
+          <application>PostgreSQL</application> for the
           <literal>pykotaadmin</literal> and <literal>pykotauser</literal> users.
           To do so, just type the following lines while still being at the <command>psql</command>
@@ -272,14 +272,14 @@
           </screen>
         </para>
-        
+
         <para>
           The <literal>\q</literal> command above will quit the <command>psql</command>
           program and return you to the shell's command line prompt.
         </para>
-        
+
         <para>
           To improve security further, you could encrypt your database connections, or
           take any other step as needed. Please refer to <application>PostgreSQL</application>'s
-          documentation for details. 
+          documentation for details.
           <warning>
             <title>Warning</title>
@@ -293,11 +293,11 @@
               though, it is just a general rule to keep in mind.
             </para>
-          </warning>  
-        </para>
-        
+          </warning>
+        </para>
+
         <para>
           For more details, please see <filename>initscripts/mysql/README.postgresql</filename>.
         </para>
-        
+
         <para>
           If no error occured, then your print quota database is ready to be used.
@@ -312,18 +312,18 @@
               can try to fix the problem. Thanks in advance.
             </para>
-          </tip>  
-        </para>
-        
-      </sect3>  
-      
+          </tip>
+        </para>
+
+      </sect3>
+
       <sect3>
         <title>LDAP</title>
-        
-        <para>
-          Any <acronym>LDAP</acronym> server, and particularly <application>OpenLDAP</application>, can be used 
+
+        <para>
+          Any <acronym>LDAP</acronym> server, and particularly <application>OpenLDAP</application>, can be used
           as a print quota database backend.
           Some other LDAP servers can be used, but this is currently untested in production.
         </para>
-        
+
         <para>
           <application>OpenLDAP</application> is a Lightweight Directory Access Protocol server
@@ -331,11 +331,11 @@
           You can download it from <ulink url="http://www.openldap.org">http://www.openldap.org</ulink>.
         </para>
-        
+
         <para>
           To use <application>OpenLDAP</application> as your print quota database backend, you have to copy the
-          <filename>pykota/initscripts/ldap/pykota.schema</filename> into <application>OpenLDAP</application>'s 
+          <filename>pykota/initscripts/ldap/pykota.schema</filename> into <application>OpenLDAP</application>'s
           schemas directory.
           Under Debian GNU/Linux, this is something like :
-          <screen>        
+          <screen>
     $ cp pykota.schema /etc/ldap/schema
           </screen>
@@ -349,11 +349,11 @@
               your <acronym>LDAP</acronym> server's schemas directory.
             </para>
-          </note>  
+          </note>
        </para>
-       <para>   
-         Then edit <filename>/etc/ldap/slapd.conf</filename> and add a line to    
+       <para>
+         Then edit <filename>/etc/ldap/slapd.conf</filename> and add a line to
          include the PyKota schema. You should have something
          like :
-         <screen>    
+         <screen>
     # Schema and objectClass definitions
     include         /etc/ldap/schema/core.schema
@@ -362,7 +362,7 @@
     include         /etc/ldap/schema/inetorgperson.schema
     include         /etc/ldap/schema/pykota.schema
-          </screen>        
-        </para>
-        
+          </screen>
+        </para>
+
         <para>
           While this is not mandatory, it is recommended that you setup
@@ -379,25 +379,25 @@
           </screen>
         </para>
-        
-        <para>
-          Now you must ensure that the DNs you'll use to bind to    
+
+        <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>        
+
+    <screen>
     # No Limits for PyKota's administrator and read-only user
     limits dn="cn=pykotaadmin,dc=example,dc=com" size.soft=-1 size.hard=soft
     limits dn="cn=pykotauser,dc=example,dc=com" size.soft=-1 size.hard=soft
-    </screen>        
-    
+    </screen>
+
           Where pykotaadmin and pykotauser are the usernames used to bind to your
-          OpenLDAP server within PyKota, respectively in ReadWrite mode 
+          OpenLDAP server within PyKota, respectively in ReadWrite mode
           (as set in pykotadmin.conf) and in ReadOnly mode (as set in pykota.conf).
         </para>
-        
+
         <para>
           Finally, stop the <application>OpenLDAP</application> server, generate
           the index files, and restart <application>OpenLDAP</application>
-          <screen>    
+          <screen>
     $ /etc/init.d/slapd stop
     $ slapindex
@@ -405,5 +405,5 @@
           </screen>
         </para>
-        
+
         <para>
           With an <acronym>LDAP</acronym> backend, PyKota will need some branches
@@ -416,5 +416,5 @@
           entries, this may ease the maintainance.
         </para>
-        
+
         <para>
           PyKota needs at least an <literal>ou</literal> for printers, for users quotas, for
@@ -423,5 +423,5 @@
           will probably be attached to each printer.
         </para>
-        
+
         <para>
           Actually PyKota doesn't create these <literal>ou</literal>s for you, because it's
@@ -436,10 +436,10 @@
               If you use RPM or DEB packages, usually the
               <filename>pykota-sample.ldif</filename> file is installed into the
-              <filename>/usr/share/pykota/ldap</filename> directory, along 
+              <filename>/usr/share/pykota/ldap</filename> directory, along
               with a README file.
             </para>
-          </note>  
-        </para>
-        
+          </note>
+        </para>
+
         <para>
           If no error occured, then your print quota database is ready to be used.
@@ -454,28 +454,28 @@
               can try to fix the problem. Thanks in advance.
             </para>
-          </tip>  
-        </para>
-      </sect3>  
-      
+          </tip>
+        </para>
+      </sect3>
+
       <sect3>
         <title>MySQL</title>
-        
+
         <para>
           <application>MySQL</application> is a simple Relationnal DataBase
           Management System distributed under a <firstterm>Free Software</firstterm>
-          license from the 
+          license from the
           <ulink url="http://www.mysql.org">http://www.mysql.org</ulink>
-          web site. 
-        </para>
-        
+          web site.
+        </para>
+
         <para>
           To configure your database, you must have MySQL version 4.1 or higher already working.
           We recommend that you use MySQL 5.0 or higher though.
           The complete installation of <application>MySQL</application> is not covered by
-          the present manual, please refer to your system's documentation or to 
+          the present manual, please refer to your system's documentation or to
           <ulink url="http://www.mysql.org">http://www.mysql.org</ulink> for
           details.
         </para>
-        
+
         <para>
           One thing you have to check, though, is that every Print Server on which you
@@ -492,7 +492,7 @@
               any of its configuration files, in order for the changes to take effect.
             </para>
-          </tip>  
-        </para>
-        
+          </tip>
+        </para>
+
         <para>
           Be careful, you may be unable to connect from a Print Server to the <application>MySQL</application>
@@ -505,10 +505,10 @@
             <title>Note</title>
             <para>
-              The TCP/IP network port used by MySQL may be different. When in doubt, ask your 
-              <firstterm>System Administrator</firstterm> for the correct value. 
-            </para>
-          </note>  
-        </para>
-        
+              The TCP/IP network port used by MySQL may be different. When in doubt, ask your
+              <firstterm>System Administrator</firstterm> for the correct value.
+            </para>
+          </note>
+        </para>
+
         <para>
           Now that your <application>MySQL</application> server is up and running, and
@@ -517,5 +517,5 @@
           <filename>pykota-1.26_official/initscripts/mysql/pykota-mysql.sql</filename> file.
           This file will create an empty
-          print quota database and set some permissions on it. 
+          print quota database and set some permissions on it.
           The database which will be created will be named <literal>pykota</literal> by default.
           Two database users will be defined to have access in readonly and read+write modes under
@@ -527,12 +527,12 @@
             <title>Note</title>
             <para>
-              You can choose other names and passwords if you want by modifying the 
+              You can choose other names and passwords if you want by modifying the
               <filename>initscripts/mysql/pykota-mysql.sql</filename> file
               accordingly, and report your changes into <application>PyKota</application>'s
               configuration files.
             </para>
-          </note>  
-        </para>
-        
+          </note>
+        </para>
+
         <para>
           To run this script, you can use the <command>mysql</command> frontend to
@@ -550,20 +550,20 @@
               If you use RPM or DEB packages, usually the
               <filename>pykota-mysql.sql</filename> file gets installed into the
-              <filename>/usr/share/pykota/mysql</filename> directory, along 
+              <filename>/usr/share/pykota/mysql</filename> directory, along
               with a README file.
             </para>
-          </note>  
-        </para>
-        
+          </note>
+        </para>
+
         <para>
           To improve security further, you could encrypt your database connections, or
           take any other step as needed. Please refer to <application>MySQL</application>'s
-          documentation for details. 
-        </para>
-        
+          documentation for details.
+        </para>
+
         <para>
           For more details, please see <filename>initscripts/mysql/README.mysql</filename>.
         </para>
-        
+
         <para>
           If no error occured, then your print quota database is ready to be used.
@@ -578,36 +578,36 @@
               can try to fix the problem. Thanks in advance.
             </para>
-          </tip>  
-        </para>
-        
-      </sect3>  
-      
+          </tip>
+        </para>
+
+      </sect3>
+
       <sect3>
         <title>SQLite</title>
-        
+
         <para>
           <application>SQLite</application> is an embeddable Relationnal DataBase
           distributed under a Free Software
-          license from the 
+          license from the
           <ulink url="http://www.sqlite.org">http://www.sqlite.org</ulink>
-          web site. 
+          web site.
           If is very easy to configure and use, offers a very small memory footprint,
           is very fast, but can only be used on the print server because it doesn't include
           a server daemon : the database is directly embedded in the application.
         </para>
-        
+
         <para>
           To configure your database, you must have SQLite already working.
           The complete installation of <application>SQLite</application> is not covered by
-          the present manual, please refer to your system's documentation or to 
+          the present manual, please refer to your system's documentation or to
           <ulink url="http://www.sqlite.org">http://www.sqlite.org</ulink> for
           details.
         </para>
-        
+
         <para>
           Once <application>SQLite</application> is installed, you have to decide where
           you'll put your database. A good idea is to store it into the <literal>pykota</literal>
           user's home directory. Then to create the database, just type :
-    <screen>        
+    <screen>
     # sqlite3 ~pykota/pykota.db &lt;pykota/initscripts/sqlite/pykota.sqlite
     # chown pykota.pykota ~pykota/pykota.db
@@ -620,9 +620,9 @@
           follow the instructions a bit below which explain how to install PyKota on the print server.
         </para>
-        
+
         <para>
           Once this is done, you'll want to set in <filename>~pykota/pykota.conf</filename> the
           following lines in the <literal>[global]</literal> section :
-    <screen>        
+    <screen>
     storagebackend : sqlitestorage
     storagename : /etc/pykota/pykota.db
@@ -643,11 +643,11 @@
               can try to fix the problem. Thanks in advance.
             </para>
-          </tip>  
-        </para>
-      </sect3>  
-      
+          </tip>
+        </para>
+      </sect3>
+
       <sect3>
         <title>Berkeley DB</title>
-        
+
         <para>
           A <application>Berkeley DB</application> backend is planned, but it actually
@@ -656,22 +656,22 @@
           each print server. This may still prove to be useful for small configurations.
         </para>
-      </sect3>  
-    </sect2>  
-    
+      </sect3>
+    </sect2>
+
     <sect2>
       <title>Print Server Installation</title>
-      
+
       <para>
         For each Print Server on which you plan to implement the print quota
-        mechanism, you have, of course, to have an already working printing environment. 
-        Currently <application>PyKota</application> works with 
+        mechanism, you have, of course, to have an already working printing environment.
+        Currently <application>PyKota</application> works with
         <ulink url="http://www.cups.org"><application>CUPS</application></ulink>
         but older releases also supported <ulink url="http://lprng.sourceforge.net"><application>LPRng</application></ulink>.
         <application>LPRng</application> support might be re-added in the future.
       </para>
-      
+
       <para>
         Here's the list of software you have to install on each Print Server, version numbers
-        are given as an indication of which was successfully tested, but older versions may 
+        are given as an indication of which was successfully tested, but older versions may
         work too.
         <itemizedlist>
@@ -682,5 +682,5 @@
               You can download it from <ulink url="http://www.cups.org">http://www.cups.org</ulink>
             </para>
-          </listitem>  
+          </listitem>
           <listitem>
             <para>
@@ -692,5 +692,5 @@
               of this language.
             </para>
-          </listitem>  
+          </listitem>
           <listitem>
             <para>
@@ -706,19 +706,19 @@
                           version used on your print quota database server.
                         </para>
-                      </listitem>  
+                      </listitem>
                       <listitem>
                         <para>
-                          The <application>PygreSQL</application> python module. 
+                          The <application>PygreSQL</application> python module.
                           <application>PygreSQL</application> is normally included in
                           <application>PostgreSQL</application>, but you may want to
                           download it from <ulink url="http://www.pygresql.org">http://www.pygresql.org</ulink>
                         </para>
-                      </listitem>  
-                    </itemizedlist>  
+                      </listitem>
+                    </itemizedlist>
                   </para>
-                </listitem>  
+                </listitem>
                 <listitem>
                   <para>
-                    OpenLDAP backend : 
+                    OpenLDAP backend :
                     <itemizedlist>
                       <listitem>
@@ -727,5 +727,5 @@
                           the <application>OpenLDAP</application> version used on your print quota database server.
                         </para>
-                      </listitem>  
+                      </listitem>
                       <listitem>
                         <para>
@@ -733,5 +733,5 @@
                           You may download this module from <ulink url="http://python-ldap.sourceforge.net">http://python-ldap.sourceforge.net</ulink>
                         </para>
-                      </listitem>  
+                      </listitem>
                     </itemizedlist>
                   </para>
@@ -746,12 +746,12 @@
                           version used on your database server.
                         </para>
-                      </listitem>  
+                      </listitem>
                       <listitem>
                         <para>
-                          The <application>Python-MySQL</application> python module, version 1.2.x or higher. 
+                          The <application>Python-MySQL</application> python module, version 1.2.x or higher.
                           You can download it from <ulink url="http://sourceforge.net/projects/mysql-python">http://sourceforge.net/projects/mysql-python</ulink>
                         </para>
-                      </listitem>  
-                    </itemizedlist>  
+                      </listitem>
+                    </itemizedlist>
                   </para>
                 </listitem>
@@ -759,5 +759,5 @@
                   <para>
                     SQLite backend : SQLite is not a database server, but an embeddable database, so
-                    if you want to use it you MUST install SQLite on your print server. With 
+                    if you want to use it you MUST install SQLite on your print server. With
                     <application>PostgreSQL</application>, <application>MySQL</application> or
                     <application>OpenLDAP</application> you can store your datas on a different
@@ -767,15 +767,15 @@
                         <para>
                           <application>SQLite</application> version 3.2.1 or higher and its library.
-                          You can download it from 
+                          You can download it from
                           <ulink url="http://www.sqlite.org">http://www.sqlite.org</ulink>
                         </para>
-                      </listitem>  
+                      </listitem>
                       <listitem>
                         <para>
                           The <application>Python-SQLite</application> python module version 2.0.5 or higher.
-                          You can download it from 
+                          You can download it from
                           <ulink url="http://www.pysqlite.org">http://www.pysqlite.org</ulink>
                         </para>
-                      </listitem>  
+                      </listitem>
                     </itemizedlist>
                   </para>
@@ -786,7 +786,7 @@
                   </para>
                 </listitem>
-              </itemizedlist>  
-            </para>
-          </listitem>  
+              </itemizedlist>
+            </para>
+          </listitem>
           <listitem>
             <para>
@@ -797,5 +797,5 @@
               printers.
             </para>
-          </listitem>  
+          </listitem>
           <listitem>
             <para>
@@ -805,5 +805,5 @@
               You only need this if you plan to query your printers for their internal page counter via AppleTalk.
             </para>
-          </listitem>  
+          </listitem>
           <listitem>
             <para>
@@ -811,13 +811,5 @@
               You can download it from <ulink url="http://www.egenix.com">http://www.egenix.com</ulink>.
             </para>
-          </listitem>  
-          <listitem>
-            <para>
-              The Python acccelerator <application>Psyco</application>. It must match your default Python version.
-              You can download it from <ulink url="http://psyco.sourceforge.net">http://psyco.sourceforge.net</ulink>.
-              You only need this if you run on the <literal>x86</literal> architecture because 
-              <application>Psyco</application> doesn't yet exist on other architectures.
-            </para>
-          </listitem>  
+          </listitem>
           <listitem>
             <para>
@@ -825,35 +817,35 @@
               You can download it from <ulink url="http://pysnmp.sourceforge.net">http://pysnmp.sourceforge.net</ulink>.
             </para>
-          </listitem>  
-          <listitem>
-            <para>
-              The <application>JAXML</application> Python module. 
+          </listitem>
+          <listitem>
+            <para>
+              The <application>JAXML</application> Python module.
               You can download it from <ulink url="http://www.librelogiciel.com/software/">http://www.librelogiciel.com/software/</ulink>.
             </para>
-          </listitem>  
-          <listitem>
-            <para>
-              The <application>ReportLab</application> Toolkit Python module. 
+          </listitem>
+          <listitem>
+            <para>
+              The <application>ReportLab</application> Toolkit Python module.
               You can download it from <ulink url="http://www.reportlab.org">http://www.reportlab.org</ulink>.
             </para>
-          </listitem>  
-          <listitem>
-            <para>
-              The <application>Python Imaging Library - PIL</application> module. 
+          </listitem>
+          <listitem>
+            <para>
+              The <application>Python Imaging Library - PIL</application> module.
               You can download it from <ulink url="http://www.pythonware.com">http://www.pythonware.com</ulink>.
             </para>
-          </listitem>  
-          <listitem>
-            <para>
-              The <application>PyOSD</application> Python module. 
+          </listitem>
+          <listitem>
+            <para>
+              The <application>PyOSD</application> Python module.
               You can download it from <ulink url="http://repose.cx/pyosd/">http://repose.cx/pyosd/</ulink>.
             </para>
-          </listitem>  
-          <listitem>
-            <para>
-              The <application>pkpgcounter</application> Generic Page Description Language parser. 
+          </listitem>
+          <listitem>
+            <para>
+              The <application>pkpgcounter</application> Generic Page Description Language parser.
               You can download it from <ulink url="http://www.pykota.com.com/software/pkpgcounter">http://www.pykota.com/software/pkpgcounter</ulink>.
             </para>
-          </listitem>  
+          </listitem>
           <listitem>
             <para>
@@ -863,5 +855,5 @@
               If needed, you can download it from <ulink url="http://www.pangalactic.org/PyPAM/">http://www.pangalactic.org/PyPAM/</ulink>.
             </para>
-          </listitem>  
+          </listitem>
           <listitem>
             <para>
@@ -869,8 +861,8 @@
               You can download it from <ulink url="http://www.pykota.com/software/pkipplib">http://www.pykota.com/software/pkipplib</ulink>.
             </para>
-          </listitem>  
-        </itemizedlist>  
-      </para>
-      
+          </listitem>
+        </itemizedlist>
+      </para>
+
       <para>
         Instead of downloading all these programs' sources and compiling them, which really
@@ -882,31 +874,31 @@
         distributions.
       </para>
-      
+
       <para>
          You can check that all needed software is installed by launching the <command>checkdeps.py</command>
          command :
-        <screen>      
-    $ python checkdeps.py      
+        <screen>
+    $ python checkdeps.py
         </screen>
       </para>
-      
+
       <para>
         Once all these software are installed, installing PyKota itself is a breeze.
-        PyKota being written entirely in the Python language, which is interpreted, 
+        PyKota being written entirely in the Python language, which is interpreted,
         there's no need to compile anything. You just have to execute the installation
         script :
-        <screen>      
-    $ python setup.py install      
+        <screen>
+    $ python setup.py install
         </screen>
       </para>
-      
-      <para>
-        The setup script will automatically create the 
-        <filename>/usr/share/pykota/conf</filename> directory and put the sample 
+
+      <para>
+        The setup script will automatically create the
+        <filename>/usr/share/pykota/conf</filename> directory and put the sample
         configuration files <filename>conf/pykota.conf.sample</filename> and
         <filename>conf/pykotadmin.conf.sample</filename> there, along with
         a <filename>README</filename> file explaining their purpose.
       </para>
-      
+
       <para>
         Now you have to create a <literal>pykota</literal> system user and group. The <application>PyKota</application>
@@ -914,12 +906,12 @@
         home directory. For example we could create the user and group, and set <filename>/etc/pykota</filename>
         as the home directory, but any other home directory will do :
-    <screen>      
+    <screen>
       adduser --system --group --home /etc/pykota --gecos PyKota pykota
     </screen>
       </para>
-      
+
       <para>
         You now have to copy the sample configuration files into the <filename>~pykota</filename>
-        directory, under the respective names <filename>pykota.conf</filename> and 
+        directory, under the respective names <filename>pykota.conf</filename> and
         <filename>pykotadmin.conf</filename>. Once copied there, you just
         have to modify these files to adapt them to your own setup.
@@ -934,10 +926,10 @@
         to any external command of your choice.
       </para>
-      
+
       <para>
         Please create a backup copy of the <filename>~pykota</filename>
         directory before modifying a working installation.
       </para>
-      
+
       <para>
         PyKota features some interesting possibilities which allow you to
@@ -945,5 +937,5 @@
         or on a per printer basis. Please see the sample configuration files
         to see what I mean. In the simplest form, only a <literal>[global]</literal> section is
-        needed. In more complex configurations, you will have to create 
+        needed. In more complex configurations, you will have to create
         one section per printer. Each section in the configuration files
         begins with a name between square brackets <literal>[]</literal>.
@@ -951,5 +943,5 @@
         of the print queue you want to manage with PyKota.
       </para>
-      
+
       <para>
         After you have modified <application>PyKota</application>'s configuration files, you have to
@@ -965,7 +957,7 @@
         file contains the read-write user's identity and password. You must then
         ensure that no normal user can read this file. It should only be readable
-        by the <literal>root</literal> user, which is always the case, and by 
+        by the <literal>root</literal> user, which is always the case, and by
         <application>PyKota</application> administrators. In addition,
-        users for which <application>CUPS</application> doesn't run as user <literal>root</literal> will 
+        users for which <application>CUPS</application> doesn't run as user <literal>root</literal> will
         have to ensure that the user their printing system is run as
         can read both of these files. An easy way to do so is to put the <literal>lp</literal> user
@@ -973,14 +965,14 @@
         to give the correct permissions to <application>PyKota</application>'s configuration files :
         <screen>
-    $ chown -R pykota.pykota ~pykota/      
+    $ chown -R pykota.pykota ~pykota/
     $ chmod 750 ~pykota/
-    $ chmod 644 ~pykota/pykota.conf      
-    $ chmod 640 ~pykota/pykotadmin.conf      
+    $ chmod 644 ~pykota/pykota.conf
+    $ chmod 640 ~pykota/pykotadmin.conf
         </screen>
-        
+
         <warning>
           <title>Warning</title>
           <para>
-            All the users allowed to read the <filename>~pykota/pykotadmin.conf</filename> 
+            All the users allowed to read the <filename>~pykota/pykotadmin.conf</filename>
             are considered to be <application>PyKota</application> administrators. So be
             careful with these files permissions.
@@ -988,31 +980,31 @@
         </warning>
       </para>
-      
+
       <para>
         On some systems, you may be able to strenghten permissions like this :
         <screen>
-    $ chown -R pykota.pykota ~pykota/      
+    $ chown -R pykota.pykota ~pykota/
     $ chmod 750 ~pykota/
-    $ chmod 640 ~pykota/pykota.conf      
-    $ chmod 600 ~pykota/pykotadmin.conf      
+    $ chmod 640 ~pykota/pykota.conf
+    $ chmod 600 ~pykota/pykotadmin.conf
         </screen>
       </para>
-      
+
       <para>
         And on other ones, you may need to relax them, and change the files' owner :
         <screen>
-    $ chown pykota.pykota ~pykota/      
+    $ chown pykota.pykota ~pykota/
     $ chmod 755 ~pykota/
-    $ chown lp.pykota ~pykota/pykota.conf      
-    $ chmod 640 ~pykota/pykota.conf      
-    $ chown lp.pykota ~pykota/pykotadmin.conf      
-    $ chmod 640 ~pykota/pykotadmin.conf      
+    $ chown lp.pykota ~pykota/pykota.conf
+    $ chmod 640 ~pykota/pykota.conf
+    $ chown lp.pykota ~pykota/pykotadmin.conf
+    $ chmod 640 ~pykota/pykotadmin.conf
         </screen>
       </para>
-      
+
       <para>
         This all depends on the printing system you are using, and the user the
         printing system is usually running as. You need to remember three things :
-        
+
         <itemizedlist>
           <listitem>
@@ -1020,7 +1012,7 @@
               The user your printing system runs as MUST be allowed to read
               both <application>PyKota</application>'s configuration files.
-            </para>  
-          </listitem>  
-          <listitem>        
+            </para>
+          </listitem>
+          <listitem>
             <para>
               Any user who can read <filename>pykotadmin.conf</filename>
@@ -1029,5 +1021,5 @@
             </para>
           </listitem>
-          <listitem>        
+          <listitem>
             <para>
               If <filename>cupsd.conf</filename> contains <literal>RunAsUser</literal>, then
@@ -1037,12 +1029,12 @@
             </para>
           </listitem>
-        </itemizedlist>  
-      </para>
-      
+        </itemizedlist>
+      </para>
+
       <para>
         Don't forget to restart your print server sofware if you changed group membership for the user it runs
         as, otherwise your change wouldn't be taken into account.
       </para>
-      
+
       <para>
         Now depending on your printing system, the configuration to do is particular.
@@ -1050,22 +1042,22 @@
         is not supported anymore.
       </para>
-      
+
       <sect3>
         <title>With CUPS</title>
-        
+
         <para>
           From version 1.16alpha7 on, configuring <application>PyKota</application> to integrate
           within <application>CUPS</application> is more than easy.
         </para>
-        
+
         <para>
           You just have to create a symbolic link to the <command>cupspykota</command>
           command in <application>CUPS</application>' backend directory :
-          <screen>        
-    $ cd /usr/lib/cups/backend        
+          <screen>
+    $ cd /usr/lib/cups/backend
     $ ln -s /usr/share/pykota/cupspykota cupspykota
           </screen>
         </para>
-        
+
         <para>
           If you use CUPS v1.2 or higher, you must
@@ -1073,23 +1065,23 @@
           backend to correctly support other backends which must be run
           as the root user (e.g. the <command>lpd</command> backend) :
-          <screen>        
+          <screen>
     $ chmod 700 /usr/share/pykota/cupspykota
           </screen>
         </para>
-        
+
         <para>
           You have to restart <application>CUPS</application> for this modification to
-          take effect : 
+          take effect :
           <screen>
-    $ /etc/init.d/cupsys restart        
+    $ /etc/init.d/cupsys restart
           </screen>
         </para>
-        
-        <para>
-          Now point your web browser to CUPS configuration page, usually at 
+
+        <para>
+          Now point your web browser to CUPS configuration page, usually at
           <ulink url="http://localhost:631">http://localhost:631</ulink> on
           your print server.
         </para>
-        
+
         <para>
           Then when creating new printers or reconfiguring existing ones, just
@@ -1099,5 +1091,5 @@
               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 
+              modify CUPS' <filename>printers.conf</filename> file as explained in
               PyKota's toplevel <filename>README</filename> file.
             </para>
@@ -1108,10 +1100,10 @@
           one.
         </para>
-        
+
         <para>
           Repeat the above procedure for each print queue on which you want to use
           PyKota. That's all !
         </para>
-        
+
         <sect4>
           <title>Troubleshooting</title>
@@ -1121,25 +1113,25 @@
             well as the hardware and software you use.
           </para>
-          
+
           <para>
-            A searchable FAQ is now available at 
+            A searchable FAQ is now available at
             <ulink url="http://otrs.librelogiciel.com/otrs/public.pl">http://otrs.librelogiciel.com/public.pl</ulink>.
             A FAQ entry explaining in great details how to diagnose a problem correctly is
-            available at 
+            available at
             <ulink url="http://otrs.librelogiciel.com/otrs/public.pl?ID=2">http://otrs.librelogiciel.com/public.pl?ID=2</ulink>.
           </para>
-          
+
           <para>
             You can also ask questions on IRC :
             <screen>
-    /server irc.freenode.net          
+    /server irc.freenode.net
     /join #pykota
             </screen>
-          </para>  
-        </sect4>  
-        
+          </para>
+        </sect4>
+
       </sect3>
-      
-    </sect2>  
+
+    </sect2>
   </sect1>
 </chapter>
Index: /pykota/branches/1.26_fixes/bin/pksetup
===================================================================
--- /pykota/branches/1.26_fixes/bin/pksetup (revision 3494)
+++ /pykota/branches/1.26_fixes/bin/pksetup (revision 3570)
@@ -1,4 +1,4 @@
 #! /usr/bin/env python
-# -*- coding: ISO-8859-15 -*-
+# -*- coding: utf-8 -*-
 #
 # PyKota
@@ -187,5 +187,4 @@
                  "python-reportlab",
                  "python-reportlab-accel",
-                 "python-psyco",
                  "python-pygresql",
                  "python-osd",
Index: /pykota/branches/1.26_fixes/qa-assistant/pykota.xml
===================================================================
--- /pykota/branches/1.26_fixes/qa-assistant/pykota.xml (revision 3212)
+++ /pykota/branches/1.26_fixes/qa-assistant/pykota.xml (revision 3570)
@@ -43,5 +43,5 @@
       </states>
       <description>PyKota must be downloaded before being installed.
-        You can download its latest development tree with 
+        You can download its latest development tree with
         'svn export svn://svn.librelogiciel.com/pykota/trunk pykota'
       </description>
@@ -53,7 +53,7 @@
       prevent most of PyKota from working, but some functionnalities will
       be unavailable to you if they are not installed. You can see the
-      status for each of PyKota's dependencies with 
+      status for each of PyKota's dependencies with
       'python pykota/checkdeps.py'
-    </description>  
+    </description>
     <entry name="python-egenix-mxdatetime" display="true">
       <states>
@@ -62,5 +62,5 @@
       </states>
       <description>
-        python-egenix-mxdatetime is required for PyKota to work. 
+        python-egenix-mxdatetime is required for PyKota to work.
         You must install it with 'apt-get install python-egenix-mxdatetime'
       </description>
@@ -84,5 +84,5 @@
       </states>
       <description>
-        python-pygresql allows PyKota to use a PostgreSQL database backend. 
+        python-pygresql allows PyKota to use a PostgreSQL database backend.
         If this is what you want you must install it with 'apt-get install python-pygresql'
       </description>
@@ -95,5 +95,5 @@
       </states>
       <description>
-        python-ldap allows PyKota to use an LDAP database backend. 
+        python-ldap allows PyKota to use an LDAP database backend.
         If this is what you want you must install it with 'apt-get install python-ldap'
       </description>
@@ -106,5 +106,5 @@
       </states>
       <description>
-        python-mysqldb allows PyKota to use a MySQL database backend. 
+        python-mysqldb allows PyKota to use a MySQL database backend.
         If this is what you want you must install it with 'apt-get install python-mysqldb'
       </description>
@@ -117,5 +117,5 @@
       </states>
       <description>
-        python-pysqlite2 allows PyKota to use an SQLite database backend. 
+        python-pysqlite2 allows PyKota to use an SQLite database backend.
         If this is what you want you must install it with 'apt-get install python-pysqlite2'
       </description>
@@ -128,5 +128,5 @@
       </states>
       <description>
-        python-osd is only needed if you want to use the 'pykosd' utility, which is an X-Window 
+        python-osd is only needed if you want to use the 'pykosd' utility, which is an X-Window
         print quota reminded for end users.
         You can install it with 'apt-get install python-osd'
@@ -194,5 +194,5 @@
       <description>
         python-pam allows PyKota to check an user's name and password through PAM at printing time, provided you
-        use the PyKotIcon end user helper tool on all client hosts. 
+        use the PyKotIcon end user helper tool on all client hosts.
         If you don't have guest logins or people with administrator (or root) access on their own
         machine, you probably don't need this module.
@@ -227,23 +227,8 @@
       </description>
     </entry>
-    <entry name="python-psyco" display="true">
-      <states>
-        <state name="Pass">python-psyco is installed</state>
-        <state name="Fail">python-psyco is not installed</state>
-        <state name="Not-Applicable">python-psyco is not supported on this platform</state>
-      </states>
-      <description>
-        python-psyco is an accelerator module for the Python language which can make the parsing 
-        of Page Description Languages by pkpgcounter faster.
-        It is only supported on the x86 platform though, so if you use something else you
-        won't be able to install it.
-        It recommended but not necessary that you install it for PyKota to work.
-        You can install it with 'apt-get install python-psyco'
-      </description>
-    </entry>
   </category>
   <category name="Print Server Installation procedure">
     <description>PyKota needs to be installed on the CUPS server.
-    </description>  
+    </description>
     <entry name="Go to PyKota's download directory" display="true">
       <states>
@@ -315,5 +300,5 @@
       </states>
       <description>
-        Any user who with read access to ~pykota/pykotadmin.conf will be considered a PyKota 
+        Any user who with read access to ~pykota/pykotadmin.conf will be considered a PyKota
         administrator, with full read+write access to PyKota's database.
         Any user with read access to ~pykota/pykota.conf will have read access to PyKota's database. Access
@@ -376,4 +361,4 @@
       </description>
     </entry>
-  </category>  
+  </category>
 </checklist>
