root / pykota / branches / 1.26_fixes / qa-assistant / pykota.xml @ 3474

Revision 3212, 19.3 kB (checked in by jerome, 17 years ago)

Documented the qa-assistant part a bit.

  • 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-chardet" display="true">
175      <states>
176        <state name="Pass">python-chardet is installed</state>
177        <state name="Fail">python-chardet is not installed</state>
178        <state name="Non-Blocker">Our system is correctly configured and up-to-date so PyKota won't need this module</state>
179      </states>
180      <description>
181        python-chardet allows PyKota to automatically detect the character set used in a print job's textual information (like its title)
182        in the case your system and/or installed release of CUPS doesn't produce UTF-8.
183        It can also be useful when dumping incorrectly encoded database contents (because of the problem mentioned
184        above).
185        You can install it with 'apt-get install python-chardet'
186      </description>
187    </entry>
188    <entry name="python-pam" display="true">
189      <states>
190        <state name="Pass">python-pam is installed</state>
191        <state name="Fail">python-pam is not installed</state>
192        <state name="Non-Blocker">I don't want to force the authentication of end users at printing time through pknotify+PyKotIcon</state>
193      </states>
194      <description>
195        python-pam allows PyKota to check an user's name and password through PAM at printing time, provided you
196        use the PyKotIcon end user helper tool on all client hosts.
197        If you don't have guest logins or people with administrator (or root) access on their own
198        machine, you probably don't need this module.
199        You can install it with 'apt-get install python-pam'
200      </description>
201    </entry>
202    <entry name="python-pkipplib" display="true">
203      <states>
204        <state name="Pass">python-pkipplib is installed</state>
205        <state name="Fail">python-pkipplib is not installed</state>
206        <state name="Non-Blocker">PyKota v1.26 is the latest release which still falls back to another method if pkipplib is not installed</state>
207      </states>
208      <description>
209        python-pkipplib allows PyKota to dialog with CUPS directly, instead of having to parse CUPS' configuration file to learn some details.
210        Unfortunately this library is not yet available as a package, so you must download and install it manually.
211        You can download it with 'wget http://www.pykota.com/software/pkipplib/download/tarballs/pkipplib-0.07.tar.gz'
212      </description>
213    </entry>
214    <entry name="pkpgcounter" display="true">
215      <states>
216        <state name="Pass">pkpgcounter is installed</state>
217        <state name="Fail">pkpgcounter is not installed</state>
218        <state name="Non-Blocker">Only advanced PyKota administrators can make PyKota work without pkpgcounter. I am an Advanced PyKota Administrator</state>
219      </states>
220      <description>
221        pkpgcounter is PyKota's Page Description Languages parser. It really is the heart of software based
222        accounting methods in PyKota, since it is responsible for counting pages and computing ink usage.
223        While you can make PyKota work without pkpgcounter, this is not recommended excepted in the
224        situations where you've got a better or faster parser.
225        Unfortunately this software is not yet available as a package, so you must download and install it manually.
226        You can download it with 'wget http://www.pykota.com/software/pkpgcounter/download/tarballs/pkpgcounter-2.17.tar.gz'
227      </description>
228    </entry>
229    <entry name="python-psyco" display="true">
230      <states>
231        <state name="Pass">python-psyco is installed</state>
232        <state name="Fail">python-psyco is not installed</state>
233        <state name="Not-Applicable">python-psyco is not supported on this platform</state>
234      </states>
235      <description>
236        python-psyco is an accelerator module for the Python language which can make the parsing
237        of Page Description Languages by pkpgcounter faster.
238        It is only supported on the x86 platform though, so if you use something else you
239        won't be able to install it.
240        It recommended but not necessary that you install it for PyKota to work.
241        You can install it with 'apt-get install python-psyco'
242      </description>
243    </entry>
244  </category>
245  <category name="Print Server Installation procedure">
246    <description>PyKota needs to be installed on the CUPS server.
247    </description> 
248    <entry name="Go to PyKota's download directory" display="true">
249      <states>
250        <state name="Pass">Working directory is now pykota/</state>
251        <state name="Fail">Current working directory is not pykota/</state>
252      </states>
253      <description>
254        PyKota's installation script expects to be run from PyKota's download directory.
255        You've previously downloaded PyKota into the ./pykota/ directory, so
256        you can go to this directory with 'cd pykota'
257      </description>
258    </entry>
259    <entry name="Install PyKota's files" display="true">
260      <states>
261        <state name="Pass">PyKota files are installed</state>
262        <state name="Fail">PyKota's files are not installed</state>
263      </states>
264      <description>
265        PyKota's files must be installed on your system for PyKota to work.
266        Once you're in the pykota/ directory you can install them
267        with 'python setup.py install'
268      </description>
269    </entry>
270    <entry name="Create a 'pykota' system group" display="true">
271      <states>
272        <state name="Pass">The 'pykota' system group exists</state>
273        <state name="Fail">The 'pykota' system group doesn't exist</state>
274      </states>
275      <description>
276        PyKota requires a dedicated system group named 'pykota', you can create
277        it with 'addgroup --system pykota'
278      </description>
279    </entry>
280    <entry name="Create a 'pykota' system user in group 'pykota'" display="true">
281      <states>
282        <state name="Pass">The 'pykota' system user exists</state>
283        <state name="Fail">The 'pykota' system user doesn't exist</state>
284      </states>
285      <description>
286        PyKota requires a dedicated system user named 'pykota'.
287        You can create it with 'adduser --system --ingroup pykota --home /etc/pykota --gecos PyKota pykota'
288      </description>
289    </entry>
290    <entry name="Copy PyKota's sample configuration file from conf/" display="true">
291      <states>
292        <state name="Pass">pykota.conf now exists in ~pykota/</state>
293        <state name="Fail">pykota.conf doesn't exist in ~pykota/</state>
294      </states>
295      <description>
296        PyKota's main configuration file is named 'pykota.conf' and must be present in user pykota's home directory,
297        by default /etc/pykota/
298      </description>
299    </entry>
300    <entry name="Copy PyKota's sample administrative configuration file from conf/" display="true">
301      <states>
302        <state name="Pass">pykotadmin.conf now exists in ~pykota/</state>
303        <state name="Fail">pykotadmin.conf doesn't exist in ~pykota/</state>
304      </states>
305      <description>
306        PyKota's administrative configuration file is named 'pykotadmin.conf' and must be present in user pykota's home directory,
307        by default /etc/pykota/.
308        All users who can read this file have write access to PyKota's database.
309      </description>
310    </entry>
311    <entry name="Check permissions on PyKota's configuration files" display="true">
312      <states>
313        <state name="Pass">Permissions on configuration files are correct</state>
314        <state name="Fail">Permissions on configuration files are incorrect</state>
315      </states>
316      <description>
317        Any user who with read access to ~pykota/pykotadmin.conf will be considered a PyKota
318        administrator, with full read+write access to PyKota's database.
319        Any user with read access to ~pykota/pykota.conf will have read access to PyKota's database. Access
320        is limited to this particular user's personal datas and to impersonal datas like printers
321        informations. Take extreme care when relaxing the permissions on those files.
322        In any case, the user CUPS runs as, for example 'lp' or 'cupsys', MUST be given read
323        access to both of these files for PyKota to work. Under Debian, CUPS currently runs
324        as root, following the recommandations from CUPS' authors, so it's safe to make
325        both of these files owned by user pykota:pykota and chmod 0640. You can even
326        make ~pykota/pykotadmin.conf be chmod 0600 if you want to be really secure.
327      </description>
328    </entry>
329    <entry name="Modify PyKota's configuration files" display="true">
330      <states>
331        <state name="Pass">PyKota configuration files are correct</state>
332        <state name="Fail">PyKota configuration files are incorrect</state>
333      </states>
334      <description>
335        PyKota's configuration files must be adapted to your own configuration,
336        and you can do this with any text editor of your choice.
337        In particular, the usernames and passwords used for the readonly
338        and the read+write database accounts have to be put there.
339        You'll also define the print administrator's name and email address,
340        and define the hostname of your SMTP server.
341        Finally many configuration directives must be checked or modified
342        to control PyKota's behavior. To help you in doing this, the
343        sample configuration files which you have installed are
344        extensively documented with comments.
345      </description>
346    </entry>
347    <entry name="Setup the cupspykota backend" display="true">
348      <states>
349        <state name="Pass">cupspykota is installed</state>
350        <state name="Fail">cupspykota is not installed</state>
351      </states>
352      <description>
353        To be able to route printing traffic through PyKota, CUPS must
354        be told that PyKota is installed. To do this, we must
355        add the 'cupspykota' backend wrapper to CUPS' backend directory,
356        usually '/usr/lib/cups/backend'.
357        To do this the easiest is to create a symbolic link :
358        'ln -s /usr/share/pykota/cupspykota /usr/lib/cups/backend/'
359        and then '/etc/init.d/cupsys restart'
360      </description>
361    </entry>
362    <entry name="Verify that PyKota is known to CUPS" display="true">
363      <states>
364        <state name="Pass">PyKota is known to CUPS</state>
365        <state name="Fail">PyKota is not known to CUPS</state>
366      </states>
367      <description>
368        Once you've installed the 'cupspykota' backend wrapper and
369        restarted CUPS. You may want to check that CUPS recognizes it.
370        Just look at http://cupsserver.example.com:631/admin/ to see
371        if any 'PyKota managed' device is available. If none is available
372        the permissions on the cupspykota backend are probably incorrect
373        for your setup : the user CUPS runs as MUST be able to exectute
374        the 'cupspykota' backend wrapper, as well as to read both
375        PyKota's configuration files.
376      </description>
377    </entry>
378  </category> 
379</checklist>
Note: See TracBrowser for help on using the browser.