Code

b9f05ad29e895ee5673f4b1f53f108c7d3877188
[roundup.git] / doc / installation.txt
1 ==================
2 Installing Roundup
3 ==================
5 :Version: $Revision: 1.22 $
7 .. contents::
10 Overview
11 ========
13 Broken out separately, there are several conceptual pieces to a
14 Roundup installation:
16 Roundup support code
17  Installed into your Python install's lib directory
19 Roundup scripts
20  These include the email gateway, the roundup
21  HTTP server, the roundup administration command-line interface, etc.
23 Roundup trackers
24  Trackers consist of core support files, issues
25  (be they bug reports or otherwise), tracker configuration file(s),
26  etc.  Roundup trackers also adhere to a specific "Template" which
27  defines the fields usable/assignable on a per-issue basis.  A
28  description of the provided templates follows.
30 Classic Template
31 ----------------
33 The classic template is the one defined in the `Roundup Specification`_. It
34 holds issues which have priorities and statuses. Each issue may also have a
35 set of messages which are disseminated to the issue's list of nosy users.
38 Extended Template
39 -----------------
41 The extended template adds additional information to issues: product,
42 platform, version, targetversion and supportcall.
43 There is an additional class for
44 handling support calls, which includes a time log, customername, rate and
45 source.
47 The priorty class has different default entries too: "fatal-bug", "bug",
48 "usability" and "feature".
50 Users of this template will want to change the contents of the product
51 class as soon as the tracker is created.
54 Prerequisites
55 =============
57 Python 2.1.1 or newer with a functioning anydbm or bsddb module. Download the
58 latest version from http://www.python.org/. It is highly recommended that
59 users install the latest patch version of python - 2.1.3 or 2.2.1 - as these
60 contain many fixes to serious bugs.
62 If you want to use Berkeley DB bsddb3 with Roundup, use version 3.3.0 or
63 later. Download the latest version from http://pybsddb.sourceforge.net/.
66 Getting Roundup
67 ===============
69 Download the latest version from http://roundup.sf.net/.
71 Testing your Python
72 -------------------
74 Once you've unpacked roundup's source, run ``python ./run_tests`` in the
75 source directory and make sure there are no errors.
76 If there are errors, please let us know!
78 If the above fails, you may be using the wrong version of python. Try
79 ``python2 ./run_tests``. If that works, you will need to substitute
80 ``python2`` for ``python`` in all further commands you use in relation to
81 Roundup -- from installation and scripts.
84 Installation
85 ============
87 Set aside 15-30 minutes. Please make sure you're using a supported version of
88 Python -- see `testing your python`_. There's three sections to this
89 installation guide:
91 1. `basic installation steps`_ that all installers must follow
92 2. `shared environment steps`_ to take if you're installing on a shared
93     UNIX machine and want to restrict local access to roundup
94 3. `internet setup`_ steps to take if your tracker is to be used by the wider
95     internet community
97 Most users will only need to follow the first step, since the environment will
98 be a trusted one.
101 Basic Installation Steps
102 ------------------------
104 1. To install the Roundup support code into your Python tree and
105    Roundup scripts into /usr/local/bin::
107        python setup.py install
109    If you would like to place the Roundup scripts in a directory other
110    than ``/usr/local/bin``, then specify the preferred location with
111    ``--install-script``. For example, to install them in
112    ``/opt/roundup/bin``::
114        python setup.py install --install-scripts=/opt/roundup/bin
116 2. To create a Roundup tracker (necessary to do before you can
117    use the software in any real fashion):
119    a. (Optional) If you intend to keep your roundup trackers
120       under one top level directory which does not exist yet,
121       you should create that directory now.  Example:
123          mkdir /opt/roundup/trackers
125    b. Either add the Roundup script location to your ``PATH``
126       environment variable or specify the full path to
127       the command in the next step.
129    c.  ``roundup-admin install``
131       You will be asked a series of questions.  A description of
132       the Roundup-provided templates can be found under the Overview_::
134           Enter tracker home: /opt/roundup/trackers/support
135           Templates: classic, extended
136           Select template [classic]: classic
137           Back ends: anydbm, bsddb
138           Select backend [anydbm]: anydbm
140       You will now be directed to edit the tracker configuration and
141       initial schema. See `Customising Roundup`_ for details on configuration
142       and schema changes. Note that you may change any of the configuration
143       after you've initialised the tracker - it's just better to have valid
144       values for this stuff now.
146    d.  ``roundup-admin initialise``
148       This step initialises the tracker database. You will need to supply
149       an admin password at this step. You will be prompted::
151           Admin Password:
152                  Confirm:
154       Once this is done, the tracker has been created.
156 3. XXX Set up the CGI interface
158 4. XXX Set up the mail gateway
161 Shared Environment Steps
162 ------------------------
164 Each tracker ideally should have its own UNIX group, so create
165 a UNIX group (edit ``/etc/group`` or your appropriate NIS map if
166 you're using NIS).  To continue with my examples so far, I would
167 create the UNIX group 'support', although the name of the UNIX
168 group does not have to be the same as the tracker name.  To this
169 'support' group I then add all of the UNIX usernames who will be
170 working with this Roundup tracker.  In addition to 'real' users,
171 the Roundup email gateway will need to have permissions to this
172 area as well, so add the user your mail service runs as to the
173 group.  The UNIX group might then look like::
175      support:*:1002:jblaine,samh,geezer,mail
177 If you intend to use the web interface (as most people do), you
178 should also add the username your web server runs as to the group.
179 My group now looks like this::
181      support:*:1002:jblaine,samh,geezer,mail,apache
183 The tracker "db" directory should be chmod'ed g+sw so that the group can
184 write to the database, and any new files created in the database will be owned
185 by the group.
187 An alternative to the above is to create a new user who has the sole
188 responsibility of running roundup. This user:
190 1. runs the CGI interface daemon
191 2. runs regular polls for email
192 3. runs regular checks (using cron) to ensure the daemon is up
193 4. optionally has no login password so that nobody but the "root" user
194    may actually login and play with the roundup setup.
196 Internet Setup
197 --------------
199 1. There are two supported ways to get emailed issues into the
200    Roundup tracker.  You should pick ONE of the following, both
201    of which will continue my example setup from above:
203    a. Set up a mail alias called "support" as::
205        "|/opt/roundup/bin/roundup-mailgw /opt/roundup/trackers/support"
207       If you use Sendmail's ``smrsh`` mechanism, please read the notes
208       under 'Platform-Specific Notes'
210    b. OR... Configure roundup-mailgw to run every 10 minutes or
211       so via ``cron``.  My cron job would be (these 2 lines all on one
212       line)::
214        10 * * * * /opt/roundup/bin/roundup-mailgw
215                 /opt/roundup/trackers/support /var/mail/support
217    If you don't want to use the email component of Roundup, then remove the
218    "``nosyreator.py``" module from your tracker "``detectors``" directory.
220 2. Test the email gateway.  Under most flavors of UNIX, this
221    can be done by::
223      echo test | mail -s '[issue] test' support@YOUR_DOMAIN_HERE
225 XXX mention HTTPS
226 XXX mention Basic vs. cookie auth
229 Upgrading
230 =========
232 Read the separate `upgrading document`_, which describes the steps needed to
233 upgrade existing tracker trackers for each version of Roundup that is
234 released.
237 ZRoundup
238 ========
240 Install roundup as usual (see installation_).
242 ZRoundup installs as a regular Zope product. Copy the ZRoundup directory to
243 your Products directory either in an INSTANCE_HOME/Products or the Zope
244 code tree lib/python/Products.
246 You will need to create the tracker using the roundup-admin tool (step 2 in
247 installation_).
249 When you next (re)start up Zope, you will be able to add a ZRoundup object
250 that interfaces to your new tracker.
253 Further Reading
254 ===============
256 If you intend to use Roundup with anything other than the defualt
257 templates, if you would like to hack on Roundup, or if you would
258 like implementation details, you should read `Customising Roundup`_.
261 Platform-Specific Notes
262 =======================
264 Sendmail smrsh
265 --------------
267 If you use Sendmail's ``smrsh`` mechanism, you will need to tell
268 smrsh that roundup-mailgw is a valid/trusted mail handler
269 before it will work.
271 This is usually done via the following 2 steps:
273 1. make a symlink in ``/etc/smrsh`` called ``roundup-mailgw``
274    which points to the full path of your actual ``roundup-mailgw``
275    script.
277 2. change your alias to ``"|roundup-mailgw <tracker_home>"``
280 Linux
281 -----
283 Python 2.1.1 as shipped with SuSE7.3 might be missing module
284 ``_weakref``.
286 -------------------------------------------------------------------------------
288 Back to `Table of Contents`_
290 Next: `Getting Started`_
292 .. _`table of contents`: index.html
293 .. _`getting started`: getting_started.html
294 .. _`roundup specification`: spec.html
295 .. _`customising roundup`: customizing.html
296 .. _`upgrading document`: upgrading.html