root / pykota / trunk / qa-assistant / pykota.xml @ 3412

Revision 3287, 18.5 kB (checked in by jerome, 17 years ago)

Removed the dependency on python-chardet entirely. Now uses unicode
or UTF-8 strings all over the place : UTF-8 still used for datas
coming from/going to the database (TODO). Conversion to end user's
locale charset is now only done when needed. PyKota Exceptions need
a base class which, for now, will handle the charset translation,
until we get the time to replace internal loggers with Python's
logging module...

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
Line 
1<?xml version='1.0' encoding="UTF-8" ?>
2<!DOCTYPE checklist PUBLIC "-//BadgerWare//DTD QA Assistant Checklist File 0.3//EN" "http://qa-assistant.sf.net/dtds/checklist/0.3/checklist.dtd">
3<checklist version="0.3" name="PyKota Installation" revision="0.1">
4  <summary>Ensures PyKota downloaded from Subversion is installed and functional under Debian</summary>
5  <category name="Preliminary steps">
6    <description>Before being able to install PyKota, some packages have to be downloaded and installed.
7    </description>
8    <entry name="Install CUPS" display="true">
9      <states>
10        <state name="Pass">CUPS is installed</state>
11        <state name="Fail">CUPS is not installed</state>
12      </states>
13      <description>PyKota currently only works with the CUPS printing system, and must be installed on
14        the print server. So before installing PyKota you must first install CUPS.
15        You can install it with 'apt-get install cupsys'
16      </description>
17    </entry>
18    <entry name="Install Python &amp; Python Development packages" display="true">
19      <states>
20        <state name="Pass">Python is installed</state>
21        <state name="Fail">Python is not installed</state>
22      </states>
23      <description>PyKota is 100% written in the Python language. To install PyKota you
24        need both Python and Python's Distutils facility, available from Python's
25        development package.
26        You can install these packages with 'apt-get install python python-dev'
27      </description>
28    </entry>
29    <entry name="Install Subversion client" display="true">
30      <states>
31        <state name="Pass">Subversion is installed</state>
32        <state name="Fail">Subversion is not installed</state>
33      </states>
34      <description>PyKota's latest development tree is always available with Subversion, aka the 'svn' command.
35        To be able to download PyKota, the 'svn' command must be present.
36        You can install it with 'apt-get install subversion'
37      </description>
38    </entry>
39    <entry name="Download PyKota from development tree" display="true">
40      <states>
41        <state name="Pass">PyKota is downloaded</state>
42        <state name="Fail">PyKota is not downloaded</state>
43      </states>
44      <description>PyKota must be downloaded before being installed.
45        You can download its latest development tree with
46        'svn export svn://svn.librelogiciel.com/pykota/trunk pykota'
47      </description>
48    </entry>
49  </category>
50  <category name="Look for missing dependencies">
51    <description>PyKota depends on a lot of third party software.
52      Some of them are required, other ones simply recommended : they don't
53      prevent most of PyKota from working, but some functionnalities will
54      be unavailable to you if they are not installed. You can see the
55      status for each of PyKota's dependencies with
56      'python pykota/checkdeps.py'
57    </description> 
58    <entry name="python-egenix-mxdatetime" display="true">
59      <states>
60        <state name="Pass">python-egenix-mxdatetime is installed</state>
61        <state name="Fail">python-egenix-mxdatetime is not installed</state>
62      </states>
63      <description>
64        python-egenix-mxdatetime is required for PyKota to work.
65        You must install it with 'apt-get install python-egenix-mxdatetime'
66      </description>
67    </entry>
68    <entry name="python-imaging" display="true">
69      <states>
70        <state name="Pass">python-imaging is installed</state>
71        <state name="Fail">python-imaging is not installed</state>
72      </states>
73      <description>
74        python-imaging is required for PyKota to work. While basic PyKota functionnality
75        may work without python-imaging, it is highly recommended that you install it
76        You must install it with 'apt-get install python-imaging'
77      </description>
78    </entry>
79    <entry name="python-pygresql" display="true">
80      <states>
81        <state name="Pass">python-pygresql is installed</state>
82        <state name="Fail">python-pygresql is not installed</state>
83        <state name="Not-Applicable">I don't want to use a PostgreSQL database backend for PyKota</state>
84      </states>
85      <description>
86        python-pygresql allows PyKota to use a PostgreSQL database backend.
87        If this is what you want you must install it with 'apt-get install python-pygresql'
88      </description>
89    </entry>
90    <entry name="python-ldap" display="true">
91      <states>
92        <state name="Pass">python-ldap is installed</state>
93        <state name="Fail">python-ldap is not installed</state>
94        <state name="Not-Applicable">I don't want to use an LDAP database backend for PyKota</state>
95      </states>
96      <description>
97        python-ldap allows PyKota to use an LDAP database backend.
98        If this is what you want you must install it with 'apt-get install python-ldap'
99      </description>
100    </entry>
101    <entry name="python-mysqldb" display="true">
102      <states>
103        <state name="Pass">python-mysqldb is installed</state>
104        <state name="Fail">python-mysqldb is not installed</state>
105        <state name="Not-Applicable">I don't want to use a MySQL database backend for PyKota</state>
106      </states>
107      <description>
108        python-mysqldb allows PyKota to use a MySQL database backend.
109        If this is what you want you must install it with 'apt-get install python-mysqldb'
110      </description>
111    </entry>
112    <entry name="python-pysqlite2" display="true">
113      <states>
114        <state name="Pass">python-pysqlite2 is installed</state>
115        <state name="Fail">python-pysqlite2 is not installed</state>
116        <state name="Not-Applicable">I don't want to use an SQLite database backend for PyKota</state>
117      </states>
118      <description>
119        python-pysqlite2 allows PyKota to use an SQLite database backend.
120        If this is what you want you must install it with 'apt-get install python-pysqlite2'
121      </description>
122    </entry>
123    <entry name="python-osd" display="true">
124      <states>
125        <state name="Pass">python-osd is installed</state>
126        <state name="Fail">python-osd is not installed</state>
127        <state name="Not-Applicable">I don't want to use 'pykosd', PyKota's X-Window end user print quota reminder</state>
128      </states>
129      <description>
130        python-osd is only needed if you want to use the 'pykosd' utility, which is an X-Window
131        print quota reminded for end users.
132        You can install it with 'apt-get install python-osd'
133      </description>
134    </entry>
135    <entry name="python-pysnmp4" display="true">
136      <states>
137        <state name="Pass">python-pysnmp4 is installed</state>
138        <state name="Fail">python-pysnmp4 is not installed</state>
139        <state name="Not-Applicable">I don't want to use PyKota's internal SNMP hardware accounting</state>
140      </states>
141      <description>
142        python-pysnmp4 allows PyKota to compute the size of print jobs by retrieving a printer's
143        internal page counter through SNMP queries at the start and at the end of printing.
144        If you don't want to use hardware accounting you don't need to install this module.
145        You can install it with 'apt-get install python-pysnmp4'
146      </description>
147    </entry>
148    <entry name="python-jaxml" display="true">
149      <states>
150        <state name="Pass">python-jaxml is installed</state>
151        <state name="Fail">python-jaxml is not installed</state>
152        <state name="Not-Applicable">I don't want to use PyKota's XML data dumping facilities</state>
153      </states>
154      <description>
155        python-jaxml allows PyKota's data dumper command, named 'dumpykota' to dump the database's contents
156        into XML formatted documents.
157        If you don't want to use this facility, the data dumper can still dump in several CSV formats.
158        You can install it with 'apt-get install python-jaxml'
159      </description>
160    </entry>
161    <entry name="python-reportlab" display="true">
162      <states>
163        <state name="Pass">python-reportlab is installed</state>
164        <state name="Fail">python-reportlab is not installed</state>
165        <state name="Not-Applicable">I don't want to use PyKota banners, nor its invoicing and refunding modules</state>
166      </states>
167      <description>
168        python-reportlab allows PyKota to generate PDF documents as part of its invoicing and refunding modules, and
169        is also used to produce PyKota generated dynamic banner pages for print jobs.
170        If you don't want to use any of these facilities, you don't need to install this module.
171        You can install it with 'apt-get install python-reportlab'
172      </description>
173    </entry>
174    <entry name="python-pam" display="true">
175      <states>
176        <state name="Pass">python-pam is installed</state>
177        <state name="Fail">python-pam is not installed</state>
178        <state name="Non-Blocker">I don't want to force the authentication of end users at printing time through pknotify+PyKotIcon</state>
179      </states>
180      <description>
181        python-pam allows PyKota to check an user's name and password through PAM at printing time, provided you
182        use the PyKotIcon end user helper tool on all client hosts.
183        If you don't have guest logins or people with administrator (or root) access on their own
184        machine, you probably don't need this module.
185        You can install it with 'apt-get install python-pam'
186      </description>
187    </entry>
188    <entry name="python-pkipplib" display="true">
189      <states>
190        <state name="Pass">python-pkipplib is installed</state>
191        <state name="Fail">python-pkipplib is not installed</state>
192        <state name="Non-Blocker">PyKota v1.26 is the latest release which still falls back to another method if pkipplib is not installed</state>
193      </states>
194      <description>
195        python-pkipplib allows PyKota to dialog with CUPS directly, instead of having to parse CUPS' configuration file to learn some details.
196        Unfortunately this library is not yet available as a package, so you must download and install it manually.
197        You can download it with 'wget http://www.pykota.com/software/pkipplib/download/tarballs/pkipplib-0.07.tar.gz'
198      </description>
199    </entry>
200    <entry name="pkpgcounter" display="true">
201      <states>
202        <state name="Pass">pkpgcounter is installed</state>
203        <state name="Fail">pkpgcounter is not installed</state>
204        <state name="Non-Blocker">Only advanced PyKota administrators can make PyKota work without pkpgcounter. I am an Advanced PyKota Administrator</state>
205      </states>
206      <description>
207        pkpgcounter is PyKota's Page Description Languages parser. It really is the heart of software based
208        accounting methods in PyKota, since it is responsible for counting pages and computing ink usage.
209        While you can make PyKota work without pkpgcounter, this is not recommended excepted in the
210        situations where you've got a better or faster parser.
211        Unfortunately this software is not yet available as a package, so you must download and install it manually.
212        You can download it with 'wget http://www.pykota.com/software/pkpgcounter/download/tarballs/pkpgcounter-2.17.tar.gz'
213      </description>
214    </entry>
215    <entry name="python-psyco" display="true">
216      <states>
217        <state name="Pass">python-psyco is installed</state>
218        <state name="Fail">python-psyco is not installed</state>
219        <state name="Not-Applicable">python-psyco is not supported on this platform</state>
220      </states>
221      <description>
222        python-psyco is an accelerator module for the Python language which can make the parsing
223        of Page Description Languages by pkpgcounter faster.
224        It is only supported on the x86 platform though, so if you use something else you
225        won't be able to install it.
226        It recommended but not necessary that you install it for PyKota to work.
227        You can install it with 'apt-get install python-psyco'
228      </description>
229    </entry>
230  </category>
231  <category name="Print Server Installation procedure">
232    <description>PyKota needs to be installed on the CUPS server.
233    </description> 
234    <entry name="Go to PyKota's download directory" display="true">
235      <states>
236        <state name="Pass">Working directory is now pykota/</state>
237        <state name="Fail">Current working directory is not pykota/</state>
238      </states>
239      <description>
240        PyKota's installation script expects to be run from PyKota's download directory.
241        You've previously downloaded PyKota into the ./pykota/ directory, so
242        you can go to this directory with 'cd pykota'
243      </description>
244    </entry>
245    <entry name="Install PyKota's files" display="true">
246      <states>
247        <state name="Pass">PyKota files are installed</state>
248        <state name="Fail">PyKota's files are not installed</state>
249      </states>
250      <description>
251        PyKota's files must be installed on your system for PyKota to work.
252        Once you're in the pykota/ directory you can install them
253        with 'python setup.py install'
254      </description>
255    </entry>
256    <entry name="Create a 'pykota' system group" display="true">
257      <states>
258        <state name="Pass">The 'pykota' system group exists</state>
259        <state name="Fail">The 'pykota' system group doesn't exist</state>
260      </states>
261      <description>
262        PyKota requires a dedicated system group named 'pykota', you can create
263        it with 'addgroup --system pykota'
264      </description>
265    </entry>
266    <entry name="Create a 'pykota' system user in group 'pykota'" display="true">
267      <states>
268        <state name="Pass">The 'pykota' system user exists</state>
269        <state name="Fail">The 'pykota' system user doesn't exist</state>
270      </states>
271      <description>
272        PyKota requires a dedicated system user named 'pykota'.
273        You can create it with 'adduser --system --ingroup pykota --home /etc/pykota --gecos PyKota pykota'
274      </description>
275    </entry>
276    <entry name="Copy PyKota's sample configuration file from conf/" display="true">
277      <states>
278        <state name="Pass">pykota.conf now exists in ~pykota/</state>
279        <state name="Fail">pykota.conf doesn't exist in ~pykota/</state>
280      </states>
281      <description>
282        PyKota's main configuration file is named 'pykota.conf' and must be present in user pykota's home directory,
283        by default /etc/pykota/
284      </description>
285    </entry>
286    <entry name="Copy PyKota's sample administrative configuration file from conf/" display="true">
287      <states>
288        <state name="Pass">pykotadmin.conf now exists in ~pykota/</state>
289        <state name="Fail">pykotadmin.conf doesn't exist in ~pykota/</state>
290      </states>
291      <description>
292        PyKota's administrative configuration file is named 'pykotadmin.conf' and must be present in user pykota's home directory,
293        by default /etc/pykota/.
294        All users who can read this file have write access to PyKota's database.
295      </description>
296    </entry>
297    <entry name="Check permissions on PyKota's configuration files" display="true">
298      <states>
299        <state name="Pass">Permissions on configuration files are correct</state>
300        <state name="Fail">Permissions on configuration files are incorrect</state>
301      </states>
302      <description>
303        Any user who with read access to ~pykota/pykotadmin.conf will be considered a PyKota
304        administrator, with full read+write access to PyKota's database.
305        Any user with read access to ~pykota/pykota.conf will have read access to PyKota's database. Access
306        is limited to this particular user's personal datas and to impersonal datas like printers
307        informations. Take extreme care when relaxing the permissions on those files.
308        In any case, the user CUPS runs as, for example 'lp' or 'cupsys', MUST be given read
309        access to both of these files for PyKota to work. Under Debian, CUPS currently runs
310        as root, following the recommandations from CUPS' authors, so it's safe to make
311        both of these files owned by user pykota:pykota and chmod 0640. You can even
312        make ~pykota/pykotadmin.conf be chmod 0600 if you want to be really secure.
313      </description>
314    </entry>
315    <entry name="Modify PyKota's configuration files" display="true">
316      <states>
317        <state name="Pass">PyKota configuration files are correct</state>
318        <state name="Fail">PyKota configuration files are incorrect</state>
319      </states>
320      <description>
321        PyKota's configuration files must be adapted to your own configuration,
322        and you can do this with any text editor of your choice.
323        In particular, the usernames and passwords used for the readonly
324        and the read+write database accounts have to be put there.
325        You'll also define the print administrator's name and email address,
326        and define the hostname of your SMTP server.
327        Finally many configuration directives must be checked or modified
328        to control PyKota's behavior. To help you in doing this, the
329        sample configuration files which you have installed are
330        extensively documented with comments.
331      </description>
332    </entry>
333    <entry name="Setup the cupspykota backend" display="true">
334      <states>
335        <state name="Pass">cupspykota is installed</state>
336        <state name="Fail">cupspykota is not installed</state>
337      </states>
338      <description>
339        To be able to route printing traffic through PyKota, CUPS must
340        be told that PyKota is installed. To do this, we must
341        add the 'cupspykota' backend wrapper to CUPS' backend directory,
342        usually '/usr/lib/cups/backend'.
343        To do this the easiest is to create a symbolic link :
344        'ln -s /usr/share/pykota/cupspykota /usr/lib/cups/backend/'
345        and then '/etc/init.d/cupsys restart'
346      </description>
347    </entry>
348    <entry name="Verify that PyKota is known to CUPS" display="true">
349      <states>
350        <state name="Pass">PyKota is known to CUPS</state>
351        <state name="Fail">PyKota is not known to CUPS</state>
352      </states>
353      <description>
354        Once you've installed the 'cupspykota' backend wrapper and
355        restarted CUPS. You may want to check that CUPS recognizes it.
356        Just look at http://cupsserver.example.com:631/admin/ to see
357        if any 'PyKota managed' device is available. If none is available
358        the permissions on the cupspykota backend are probably incorrect
359        for your setup : the user CUPS runs as MUST be able to exectute
360        the 'cupspykota' backend wrapper, as well as to read both
361        PyKota's configuration files.
362      </description>
363    </entry>
364  </category> 
365</checklist>
Note: See TracBrowser for help on using the browser.