112
|
1 @c remember to put in the autoload stuff!!!! see the .el files
|
|
2
|
|
3 @c This file is included as an appendix in gnats.texi.
|
|
4
|
|
5 @cindex installing GNATS
|
|
6 @cindex configuring GNATS
|
|
7 @cindex setting up GNATS
|
|
8 @cindex building GNATS
|
|
9
|
|
10 @xref{Locations,,Where the tools and utilities reside}.
|
|
11
|
|
12 There are several steps you need to follow to fully configure and
|
|
13 install @sc{gnats} on your system. You need @code{root} access in order
|
|
14 to create a new account for @code{gnats} and to install the @sc{gnats}
|
|
15 utilities. You may need @code{root} access on some systems in order to
|
|
16 set mail aliases in place and to allow this new account access to
|
|
17 @code{cron} and @code{at}.
|
|
18
|
|
19 If you are updating an older version of @sc{gnats} rather than installing
|
|
20 from scratch, see @ref{Upgrading,,Upgrading from older versions}.
|
|
21
|
|
22 To build @sc{gnats}, you must:
|
|
23
|
|
24 @itemize @bullet
|
|
25 @item
|
|
26 Run @code{configure}, with correct options if the defaults are
|
|
27 unsuitable for your site. @xref{Configure and make,,Configuring and
|
|
28 compiling the software}. Default installation locations are in
|
|
29 @ref{Locations,,Where @sc{gnats} lives}.
|
|
30
|
|
31 @item
|
|
32 Compile the @sc{gnats} programs on your system. @xref{Configure and
|
|
33 make,,Configuring and compiling the software}.
|
|
34
|
|
35 @item
|
|
36 Install the @sc{gnats} tools and utilities locally, and install the user
|
|
37 tools on every machine in your local network. @xref{Installing
|
|
38 utils,,Installing the utilities}.
|
|
39
|
|
40 @item
|
|
41 Set up mail aliases for @sc{gnats}. @xref{Aliases,,Setting up mail
|
|
42 aliases}.
|
|
43
|
|
44 @item
|
|
45 Install the @sc{gnats} user tools (@code{query-pr}, @code{nquery-pr}, @code{edit-pr},
|
|
46 @code{send-pr}) around your network. @xref{Installing tools,,Installing
|
|
47 the user tools}.
|
|
48
|
|
49 @item
|
|
50 Install the @sc{gnats} daemon @file{gnatsd}.
|
|
51
|
|
52 @item
|
|
53 Update the local configuration files
|
|
54
|
|
55 @smallexample
|
|
56 config categories submitters responsible gnatsd.conf
|
|
57 @end smallexample
|
|
58
|
|
59 @noindent
|
|
60 in @w{@file{@var{GNATS_ROOT}/gnats-adm}}. @xref{Local
|
|
61 configuration,,Changing your local configuration}.
|
|
62
|
|
63 @item
|
|
64 Create a distribution of @code{send-pr} for submitters outside your
|
|
65 organization. @xref{mkdist,,Configuring @code{send-pr} for the outside
|
|
66 world}.
|
|
67 @end itemize
|
|
68
|
|
69 @menu
|
|
70 * Configure and make:: Configuring and compiling the software
|
|
71 * Installing utils:: Installing the utilities
|
|
72 * Aliases:: Setting up mail aliases
|
|
73 * Installing the daemon:: Installing the daemon
|
|
74 * Installing tools:: Installing the user tools
|
|
75 * Upgrading:: Upgrading from older versions
|
|
76 @end menu
|
|
77
|
|
78 @node Configure and make
|
|
79 @section Configuring and compiling the software
|
|
80 @cindex unpacking the distribution
|
|
81 @cindex configuring and compiling the software
|
|
82 @cindex compiling the software
|
|
83 @cindex @code{configure}
|
|
84 @cindex @code{make}
|
|
85
|
|
86 @enumerate 1
|
|
87 @item
|
|
88 First, unpack your distribution. We provide source code in a @code{tar}
|
|
89 file which was compressed using @code{gzip}. The code can be extracted
|
|
90 into a directory @var{unpackdir} using
|
|
91
|
|
92 @smallexample
|
|
93 mkdir @var{unpackdir}
|
|
94 cd @var{unpackdir}
|
|
95 tar zxvf gnats-@value{VERSION}.tar.z
|
|
96 @end smallexample
|
|
97
|
|
98 The sources reside in a directory called @file{gnats-@value{VERSION}}
|
|
99 when unpacked. We call this the @dfn{top level} of the source
|
|
100 directory, or @dfn{srcdir}. The sources for the @sc{gnats} tools are in
|
|
101 the subdirectory @file{gnats-@value{VERSION}/gnats/*}. Lists of files
|
|
102 included in the distribution are in each directory in the file
|
|
103 @file{MANIFEST}.
|
|
104
|
|
105 @cindex lisp file installation
|
|
106 @cindex Emacs lisp file installation
|
|
107 @item
|
|
108 You may wish to alter the installation directory for the Emacs lisp
|
|
109 files. If your Emacs lisp library is not in
|
|
110 @w{@file{@var{prefix}/lib/emacs/lisp}}, edit the files
|
|
111
|
|
112 @smallexample
|
|
113 @var{srcdir}/gnats/Makefile.in @emph{and}
|
|
114 @var{srcdir}/send-pr/Makefile.in
|
|
115 @end smallexample
|
|
116
|
|
117 @noindent
|
|
118 Change the variable @samp{lispdir} from @samp{$(datadir)/emacs/lisp} to
|
|
119 the directory containing your Emacs lisp library. For information on
|
|
120 @var{prefix}, see @ref{prefix,,@var{prefix}}.
|
|
121
|
|
122 @item
|
|
123 Run @code{configure}. You can nearly always run @code{configure} with
|
|
124 the command
|
|
125
|
|
126 @example
|
|
127 ./configure --with-full-gnats
|
|
128 @end example
|
|
129
|
|
130 @noindent
|
|
131 and the ``Right Thing'' happens:
|
|
132
|
|
133 @itemize @bullet
|
|
134 @item
|
|
135 @sc{gnats} is configured in the same directory you unpacked it in;
|
|
136
|
|
137 @item
|
|
138 when built, @sc{gnats} runs on the machine you're building it on;
|
|
139
|
|
140 @item
|
|
141 when installed, files are installed under @file{/usr/local}
|
|
142 (@pxref{Locations,,Where @sc{gnats} lives}).
|
|
143
|
|
144 @item
|
|
145 @sc{gnats} operates by default behavior (@pxref{default behavior,,Default
|
|
146 behavior}).
|
|
147 @end itemize
|
|
148
|
|
149 @cindex @code{configure}
|
|
150 The full usage for @code{configure} is:
|
|
151
|
|
152 @smallexample
|
|
153 configure [ --with-full-gnats ]
|
|
154 [ --prefix=@var{prefix} ]
|
|
155 [ --exec-prefix=@var{exec-prefix} ]
|
|
156 [ --with-gnats-root=@w{@var{GNATS_ROOT}} ]
|
|
157 [ --with-gnats-server=@w{@var{hostname}} ]
|
|
158 [ --with-gnats-service=@w{@var{service-name}} ]
|
|
159 [ --with-gnats-user=@w{@var{username}} ]
|
|
160 [ --with-gnats-port=@w{@var{port-number}} ]
|
|
161 [ --verbose ]
|
|
162 @end smallexample
|
|
163
|
|
164 @table @code
|
|
165 @cindex @code{with-full-gnats}
|
|
166 @item --with-full-gnats
|
|
167 All programs are to be built; this includes the user utilities, the
|
|
168 administrative utilities, and the internal utilities. Use this when
|
|
169 configuring the utilities for the machine where @sc{gnats} is to run.
|
|
170 Omit it when building only the user utilities for other machines on your
|
|
171 network; see @ref{Installing tools,,Installing the user tools}.
|
|
172
|
|
173 @cindex @var{prefix}
|
|
174 @item --prefix=@var{prefix}
|
|
175 All host-independent programs and files are to be installed under
|
|
176 @var{prefix}. (Host-dependent programs and files are also installed in
|
|
177 @var{prefix} by default.) The default for @var{prefix} is
|
|
178 @w{@file{/usr/local}}. @xref{Locations,,Where @sc{gnats} lives}.
|
|
179
|
|
180 @cindex @var{exec-prefix}
|
|
181 @item --exec-prefix=@var{exec-prefix}
|
|
182 All host-dependent programs and files are to be installed under
|
|
183 @var{exec-prefix}. The default for @var{exec-prefix} is @var{prefix}.
|
|
184 @xref{Locations,,Where @sc{gnats} lives}.
|
|
185
|
|
186 @cindex @var{GNATS_ROOT}
|
|
187 @item --with-gnats-root=@w{@var{GNATS_ROOT}}
|
|
188 The database and its data files are to be installed into
|
|
189 @w{@var{GNATS_ROOT}}. The default for @w{@var{GNATS_ROOT}} is
|
|
190 @w{@file{@var{prefix}/lib/gnats/gnats-db}}. @xref{Locations,,Where
|
|
191 @sc{gnats} lives}.
|
|
192
|
|
193 @cindex --with-gnats-server
|
|
194 @item --with-gnats-root=@w{hostname}
|
|
195 FIXME
|
|
196
|
|
197 @cindex --with-gnats-service
|
|
198 @item --with-gnats-root=@w{@var{service-name}}
|
|
199 FIXME
|
|
200
|
|
201 @cindex --with-gnats-user
|
|
202 @item --with-gnats-user=@w{@var{username}}
|
|
203 FIXME
|
|
204
|
|
205 @cindex --with-gnats-port
|
|
206 @item --with-gnats-port=@w{@var{port-number}}
|
|
207 FIXME
|
|
208
|
|
209 @item --verbose
|
|
210 Give verbose output while @code{configure} runs.
|
|
211 @end table
|
|
212
|
|
213 @xref{Using configure,,Using @code{configure},configure,Cygnus
|
|
214 configure}.
|
|
215
|
|
216 @cindex building in a different directory
|
|
217 @cindex @var{objdir}
|
|
218 You can build @sc{gnats} in a different directory (@var{objdir}) from the
|
|
219 source code by calling the @code{configure} program from the new
|
|
220 directory, as in
|
|
221
|
|
222 @smallexample
|
|
223 mkdir @var{objdir}
|
|
224 cd @var{objdir}
|
|
225 @var{srcdir}/configure @dots{}
|
|
226 make all
|
|
227 @end smallexample
|
|
228
|
|
229 By default, @code{configure} compiles the programs in the same directory
|
|
230 as the sources (@var{srcdir}). Emacs lisp files are byte-compiled if
|
|
231 @code{make} can find Emacs on your local system.
|
|
232
|
|
233 @item
|
|
234 Run
|
|
235
|
|
236 @smallexample
|
|
237 make all info
|
|
238 @end smallexample
|
|
239
|
|
240 @noindent
|
|
241 from the directory where @code{configure} created a @file{Makefile}.
|
|
242 (This may not be the same directory as the source directory.) These
|
|
243 targets indicate:
|
|
244
|
|
245 @table @code
|
|
246 @item all
|
|
247 Compile all programs
|
|
248
|
|
249 @item info
|
|
250 Create @samp{info} files using @code{makeinfo}.
|
|
251 @end table
|
|
252 @end enumerate
|
|
253
|
|
254 @node Installing utils
|
|
255 @section Installing the utilities
|
|
256 @cindex installing the utilities
|
|
257
|
|
258 The following steps are necessary for a complete installation. You may
|
|
259 need @code{root} access for these.
|
|
260
|
|
261 @enumerate 1
|
|
262 @item
|
|
263 Install the utilities by
|
|
264 invoking
|
|
265
|
|
266 @smallexample
|
|
267 make install install-info
|
|
268 @end smallexample
|
|
269
|
|
270 These targets indicate:
|
|
271
|
|
272 @table @code
|
|
273 @item install
|
|
274 Installs all programs into their configured locations
|
|
275 (@pxref{Locations,,Where @sc{gnats} lives}).
|
|
276
|
|
277 @item install-info
|
|
278 Installs @samp{info} files into their configured locations
|
|
279 (@pxref{Locations,,Where @sc{gnats} lives}).
|
|
280 @end table
|
|
281
|
|
282 After you have installed @sc{gnats}, you can remove the object files with
|
|
283
|
|
284 @smallexample
|
|
285 make clean
|
|
286 @end smallexample
|
|
287
|
|
288 @cindex @code{autoload} commands
|
|
289 @cindex loading @code{.el} files
|
|
290 @cindex Emacs functions
|
|
291 @item
|
|
292 Place the following lines in the file @file{default.el} in your Emacs
|
|
293 lisp library, or instruct your local responsible parties to place the
|
|
294 lines in their local editions of @file{.emacs}:
|
|
295
|
|
296 @smallexample
|
|
297 (autoload 'edit-pr "gnats"
|
|
298 "Command to edit a problem report." t)
|
|
299 (autoload 'view-pr "gnats"
|
|
300 "Command to view a problem report." t)
|
|
301 (autoload 'unlock-pr "gnats"
|
|
302 "Unlock a problem report." t)
|
|
303 (autoload 'query-pr "gnats"
|
|
304 "Command to query information about problem reports." t)
|
|
305 (autoload 'send-pr-mode "send-pr"
|
|
306 "Major mode for sending problem reports." t)
|
|
307 (autoload 'send-pr "send-pr"
|
|
308 "Command to create and send a problem report." t)
|
|
309 @end smallexample
|
|
310
|
|
311 Emacs lisp files are byte-compiled if @code{make} can find Emacs on your
|
|
312 local system.
|
|
313
|
|
314
|
|
315 @item
|
|
316 @cindex creating an account for @sc{gnats}
|
|
317 Create an account for a user named @sc{gnats}. This user must have an
|
|
318 entry in the file @file{/etc/passwd}. The home directory for this
|
|
319 account should be the same directory you specified for @var{GNATS_ROOT}
|
|
320 in the file @file{Makefile.in}. Also, the default @code{PATH} for this
|
|
321 user should contain @w{@file{@var{exec-prefix}/bin}} and
|
|
322 @w{@file{@var{exec-prefix}/lib/gnats}}.
|
|
323
|
|
324 @cindex @code{cron}
|
|
325 @cindex @code{at}
|
|
326 @item
|
|
327 Allow the new user @code{gnats} access to @code{cron} and @code{at}. To
|
|
328 do this, add the name @code{gnats} to the files @w{@file{cron.allow}} and
|
|
329 @w{@file{at.allow}}, which normally reside in the directory
|
|
330 @w{@file{/var/spool/cron}}. If these files do not exist, make sure
|
|
331 @code{gnats} does not appear in either of the files @w{@file{cron.deny}}
|
|
332 and @w{@file{at.deny}} (in the same directory).
|
|
333
|
|
334 @noindent
|
|
335 For the following steps, log in as @code{gnats}.
|
|
336
|
|
337 @itemize @bullet
|
|
338 @item
|
|
339 Edit the files @file{categories}, @file{responsible}, and
|
|
340 @file{submitters} in the directory @w{@file{@var{GNATS_ROOT}/gnats-adm}}
|
|
341 (@pxref{Local configuration,,Changing your local configuration}) to
|
|
342 reflect your local needs. Be sure to run @code{mkcat} after you update
|
|
343 the @file{categories} file (@pxref{mkcat,,Adding a new problem
|
|
344 category}). @emph{Note:} these templates are not installed if they
|
|
345 already exist, i.e. if you are upgrading. @xref{Upgrading,,Upgrading
|
|
346 from older versions}.
|
|
347
|
|
348 @item
|
|
349 If you wish to install the @sc{gnats} user tools on other machines on
|
|
350 your network, see @ref{Installing tools,,Installing the user tools}.
|
|
351 @end itemize
|
|
352
|
|
353 @cindex @code{crontab}
|
|
354 @item
|
|
355 Create a @code{crontab} entry that periodically runs the program
|
|
356 @code{queue-pr} with the @samp{--run} option. For example, to run
|
|
357 @w{@samp{queue-pr --run}} every ten minutes, create a file called
|
|
358 @file{.mycron} in the home directory of the user @code{gnats} which
|
|
359 contains the line:
|
|
360
|
|
361 @smallexample
|
|
362 0,10,20,30,40,50 * * * * @var{exec-prefix}/lib/gnats/queue-pr --run
|
|
363 @end smallexample
|
|
364
|
|
365 @noindent
|
|
366 (Specify the full path name for @code{queue-pr}.) Then run
|
|
367
|
|
368 @smallexample
|
|
369 crontab .mycron
|
|
370 @end smallexample
|
|
371
|
|
372 @noindent
|
|
373 See the @code{man} pages for @code{cron} and @code{crontab} for details
|
|
374 on using @code{cron}.
|
|
375 @end enumerate
|
|
376
|
|
377 @node Aliases
|
|
378 @section Setting up mail aliases
|
|
379 @cindex mail aliases
|
|
380 @cindex aliases
|
|
381
|
|
382 The following mail aliases must be placed in the file
|
|
383 @w{@file{/etc/aliases}} on the same machine where the @sc{gnats} tools
|
|
384 are installed. You may need @code{root} access to add these aliases.
|
|
385
|
|
386 @itemize @bullet
|
|
387 @item
|
|
388 @cindex @code{gnats-admin} alias
|
|
389 Create an alias for the @sc{gnats} administrator. This address should
|
|
390 point to the address of the person in charge of administrating
|
|
391 @sc{gnats}:
|
|
392
|
|
393 @smallexample
|
|
394 gnats-admin: @var{address}
|
|
395 @end smallexample
|
|
396
|
|
397 @item
|
|
398 @cindex bug alias
|
|
399 @cindex incoming alias for Problem Reports
|
|
400 @cindex alias for incoming Problem Reports
|
|
401 @cindex @code{queue-pr -q}
|
|
402 Create an alias to redirect incoming Problem Reports. This alias should
|
|
403 redirect incoming mail via a @dfn{pipe} to the program @w{@samp{queue-pr
|
|
404 -q}}. For example, if Problem Reports coming to your site are to arrive
|
|
405 at the address @samp{bugs@@your.company.com}, create an alias to the
|
|
406 effect of:
|
|
407
|
|
408 @smallexample
|
|
409 bugs: "| @var{exec-prefix}/lib/gnats/queue-pr -q"
|
|
410 @end smallexample
|
|
411
|
|
412 @noindent
|
|
413 This places incoming Problem Reports in
|
|
414 @w{@file{@var{GNATS_ROOT}/gnats-queue}}.
|
|
415
|
|
416 @item
|
|
417 @cindex @var{site} alias
|
|
418 @cindex mail alias for your @emph{site}
|
|
419 @cindex alias for your @emph{site}
|
|
420 Create an alias for your site. This alias should be the same nametag
|
|
421 indicated by the variable @w{@samp{GNATS_SITE}} in the file
|
|
422 @w{@file{@var{GNATS_ROOT}/gnats-adm/config}} (@pxref{config,,The
|
|
423 @code{config} file}), with an added suffix @samp{-gnats}. This alias,
|
|
424 @w{@samp{@var{GNATS_SITE}-gnats}}, should point toward the local
|
|
425 submission address. For instance, if your site is Tofu Technologies,
|
|
426 the presence of @sc{gnats} on your @var{site} would be aliased as the
|
|
427 following (the previous example is also shown):
|
|
428
|
|
429 @smallexample
|
|
430 bugs: "| @var{exec-prefix}/lib/gnats/queue-pr -q"
|
|
431 tofu-gnats: bugs
|
|
432 @end smallexample
|
|
433
|
|
434 @noindent
|
|
435 The report submission utility @code{send-pr} automatically appends the
|
|
436 @samp{-gnats} to any arguments you specify (@pxref{send-pr,,Submitting
|
|
437 Problem Reports}). The @code{send-pr} which was installed when you
|
|
438 typed @w{@kbd{make install}} has a default argument of @var{GNATS_SITE},
|
|
439 your site, so that when your local users simply type @kbd{send-pr} mail
|
|
440 is sent to your local @sc{gnats}. Part of the installation process a
|
|
441 Submitter Site follows when installing @code{send-pr} is to set up an
|
|
442 alias for the Support Site from whom this submitter received
|
|
443 @code{send-pr}. In other words, anyone you distribute @code{send-pr} to
|
|
444 is instructed to make an alias
|
|
445
|
|
446 @smallexample
|
|
447 tofu-gnats: bugs@@tofu.com
|
|
448 @end smallexample
|
|
449
|
|
450 @item
|
|
451 You may also wish to forward a copy of each incoming Problem Report to a
|
|
452 log. This can be accomplished with something like:
|
|
453
|
|
454 @smallexample
|
|
455 bug-q: "| @var{exec-prefix}/lib/gnats/queue-pr -q"
|
|
456 bug-log: @var{GNATS_ROOT}/gnats-adm/bugs.log
|
|
457 bugs: bug-q, bug-log
|
|
458 @end smallexample
|
|
459
|
|
460 @noindent
|
|
461 This configuration archives incoming Problem Reports in the file
|
|
462 @w{@file{@var{GNATS_ROOT}/gnats-adm/bug.log}}, and also feeds them to the
|
|
463 program @code{queue-pr}. (Remember, @file{bug.log} needs to be
|
|
464 world-writable, and should be pruned regularly; @pxref{Management,,
|
|
465 @sc{gnats} Administration}.)
|
|
466
|
|
467 @item
|
|
468 If you want your users to be able to query the database by mail, use the
|
|
469 following alias:
|
|
470
|
|
471 @smallexample
|
|
472 query-pr: "| @var{exec-prefix}/lib/gnats/mail-query"
|
|
473 @end smallexample
|
|
474
|
|
475 @noindent
|
|
476 The @code{mail-query} program uses @samp{--restricted} to search on the
|
|
477 database, and by default only searches for PRs that aren't closed
|
|
478 (@pxref{query-pr,,Querying the database}).
|
|
479
|
|
480 @end itemize
|
|
481
|
|
482 @c ---------------------------------------------------------------
|
|
483 @node Installing the daemon
|
|
484 @section Installing the daemon
|
|
485 @cindex daemon
|
|
486 @cindex using @sc{gnats} over a network
|
|
487
|
|
488 By default, the daemon and clients are set to use port 1529. Add the line
|
|
489
|
|
490 @smallexample
|
|
491 support 1529/tcp # GNATS
|
|
492 @end smallexample
|
|
493
|
|
494 @noindent
|
|
495 to your @file{/etc/services} file. If you want a different port,
|
|
496 or a different service name or port, configure @sc{gnats} with
|
|
497
|
|
498 @smallexample
|
|
499 --with-gnats-service=@var{servicename}
|
|
500 --with-gnats-port=@var{portnumber}
|
|
501 @end smallexample
|
|
502
|
|
503 In your @file{inetd.conf} file, add the line
|
|
504
|
|
505 @smallexample
|
|
506 support stream tcp nowait gnats /usr/local/lib/gnats/gnatsd gnatsd
|
|
507 @end smallexample
|
|
508
|
|
509 @noindent
|
|
510 adjusting the path accordingly. To make inetd start spawning the @sc{gnats} daemon
|
|
511 when connected on that port, send it a hangup signal (@code{HUP}).
|
|
512
|
|
513 By default, the server for the @sc{gnats} daemon is assumed to be one with the
|
|
514 name of @samp{gnats}. If you'd like something else, use
|
|
515
|
|
516 @smallexample
|
|
517 --with-gnats-server=@var{hostname}
|
|
518 @end smallexample
|
|
519
|
|
520 In the @file{gnats-adm} directory, you'll want to edit @file{gnatsd.conf}.
|
|
521 It lists the hosts allowed to access your server. Or, if you're using
|
|
522 Kerberos, it shows the sites that don't require Kerberos authentication.
|
|
523 The format is reserved for future revision; only the first field is
|
|
524 actually used:
|
|
525
|
|
526 @smallexample
|
|
527 site.com::
|
|
528 @end smallexample
|
|
529
|
|
530 @noindent
|
|
531 The second field may be used for things like controlling what
|
|
532 categories, submitter-id'd PRs, etc., can be accessed from that site.
|
|
533 In the file that logs syslog messages (@file{/var/adm/messages}, for
|
|
534 example) you'll find the notification of denied access.
|
|
535
|
|
536
|
|
537 @c ---------------------------------------------------------------
|
|
538 @node Installing tools
|
|
539 @section Installing the user tools
|
|
540 @cindex networks
|
|
541 @cindex using @sc{gnats} over a network
|
|
542 @cindex configuring @sc{gnats} on a network
|
|
543
|
|
544 When you install the @sc{gnats} utilities, the user tools are installed
|
|
545 by default on the host machine. If your machine is part of a network,
|
|
546 however, you may wish to install the user tools on each machine in the
|
|
547 network so that responsible parties on those machines can submit new
|
|
548 Problem Reports, query the database, and edit existing PRs. To do this,
|
|
549 follow these steps @emph{on each new host}. You may need root access on
|
|
550 each machine.
|
|
551
|
|
552 @enumerate 1
|
|
553 @item
|
|
554 Make sure that the directory where @sc{gnats} resides is mounted to each
|
|
555 system that will need access to it, so @var{GNATS_ROOT} will be the same
|
|
556 for each host. (You can do this with symbolic links as well.)
|
|
557
|
|
558 @item
|
|
559 Either mount the disk which contains your source directory, or make a
|
|
560 copy of the @sc{gnats} source code tree in a separate directory on each
|
|
561 system you wish to build on.
|
|
562
|
|
563 @item
|
|
564 Run @code{configure}, @emph{without} specifying
|
|
565 @w{@samp{--with-full-gnats}}, and using the same argument (if any) for
|
|
566 the option
|
|
567
|
|
568 @smallexample
|
|
569 --with-gnats-root=@var{GNATS_ROOT}
|
|
570 @end smallexample
|
|
571
|
|
572 that you specified when building the @sc{gnats} utilites
|
|
573 (@pxref{Configure and make,,Configuring and compiling the software}).
|
|
574 You may use different values for the other options to @code{configure}.
|
|
575 Again, @emph{do not} use @w{@samp{--with-full-gnats}} at this point, as
|
|
576 that creates all the @sc{gnats} programs. Without this option,
|
|
577 @code{configure} only instructs the resulting @file{Makefile} to create
|
|
578 the user utilities.
|
|
579
|
|
580 @exdent
|
|
581 @emph{You may need @code{root} access on each host for the following steps.}
|
|
582
|
|
583 @item
|
|
584 @cindex creating an account for @sc{gnats}
|
|
585 Create an account for a user named @sc{gnats} on the new host. This user
|
|
586 must have an entry in the file @file{/etc/passwd}. The user ID for
|
|
587 @code{gnats} must be the same as on the main @sc{gnats} host.
|
|
588
|
|
589 @item
|
|
590 Run
|
|
591
|
|
592 @smallexample
|
|
593 make all info install install-info
|
|
594 @end smallexample
|
|
595
|
|
596 @noindent
|
|
597 This builds and installs the @code{gnats} user tools @w{@code{query-pr}},
|
|
598 @w{@code{edit-pr}}, and @w{@code{send-pr}} on the new host, and installs
|
|
599 them in @w{@file{@var{exec-prefix}/bin}} on the new host (@emph{Note:}
|
|
600 the value for @var{exec-prefix} on the new host may be different from
|
|
601 the value you used when building the @sc{gnats} utilities;
|
|
602 @pxref{exec-prefix,,@var{exec-prefix}}). The programs @code{pr-edit}
|
|
603 and @code{pr-addr} are installed into
|
|
604 @w{@file{@var{exec-prefix}/lib/gnats}}.
|
|
605
|
|
606 @code{info} files are created as well, and are installed into
|
|
607 @w{@file{@var{prefix}/info}}. The Elisp files @file{gnats.el} and
|
|
608 @file{send-pr.el} (and possibly @file{gnats.elc}
|
|
609 if @code{make} was able to compile them using Emacs) are installed into
|
|
610 @w{@file{@var{prefix}/lib/emacs/lisp}} unless you change the
|
|
611 @samp{lispdir} variable in @file{Makefile.in} (@pxref{Configure and
|
|
612 make,,Configuring and compiling the software}).
|
|
613
|
|
614 @cindex @code{autoload} commands
|
|
615 @cindex loading @code{.el} files
|
|
616 @cindex Emacs functions
|
|
617 @item
|
|
618 Add the following lines to the file @w{@file{default.el}} in the Emacs
|
|
619 lisp repository on the new host, or instruct your responsible parties
|
|
620 who use these hosts to add them to their @file{.emacs} files:
|
|
621
|
|
622 @smallexample
|
|
623 (autoload 'edit-pr "gnats"
|
|
624 "Command to edit a problem report." t)
|
|
625 (autoload 'view-pr "gnats"
|
|
626 "Command to view a problem report." t)
|
|
627 (autoload 'unlock-pr "gnats"
|
|
628 "Unlock a problem report." t)
|
|
629 (autoload 'query-pr "gnats"
|
|
630 "Command to query information about problem reports." t)
|
|
631 (autoload 'send-pr-mode "send-pr"
|
|
632 "Major mode for sending problem reports." t)
|
|
633 (autoload 'send-pr "send-pr"
|
|
634 "Command to create and send a problem report." t)
|
|
635 @end smallexample
|
|
636
|
|
637 @item
|
|
638 Copy the file @w{@file{@var{prefix}/lib/gnats/@var{site}}} from the
|
|
639 original host to the new host (which may have a different value for
|
|
640 @var{prefix}). This is the list of valid categories that
|
|
641 @w{@code{send-pr}} uses (@pxref{Locations,,Where @sc{gnats} lives}).
|
|
642 @var{site} is your local site, the value of @w{@samp{GNATS_SITE}} in the
|
|
643 @file{config} file (@pxref{config,,The @code{config} file}).
|
|
644
|
|
645 @end enumerate
|
|
646
|
|
647 @c ---------------------------------------------------------------
|
|
648 @node Upgrading
|
|
649 @section Upgrading from older versions
|
|
650 @cindex upgrading from older versions
|
|
651
|
|
652 If you are upgrading from a previous release of @sc{gnats}, you probably
|
|
653 do not want to delete your current configuration files or your current
|
|
654 database. The new @sc{gnats} can be installed around the older version.
|
|
655
|
|
656 You need to:
|
|
657
|
|
658 @itemize @bullet
|
|
659 @item
|
|
660 Specify your current @var{GNATS_ROOT} on the command line to
|
|
661 @code{configure} when you build the new tools, with
|
|
662
|
|
663 @smallexample
|
|
664 configure --with-full-gnats --with-gnats-root=@var{GNATS_ROOT}
|
|
665 @end smallexample
|
|
666
|
|
667 @noindent
|
|
668 (@xref{Configure and make,,Configuring and compiling the software}.)
|
|
669
|
|
670 @item
|
|
671 Remove the directory @w{@file{gnats-bin}} from @w{@var{GNATS_ROOT}}; it is
|
|
672 no longer used.
|
|
673
|
|
674 @item
|
|
675 Update your current mail aliases to reflect that @w{@code{queue-pr}} now
|
|
676 resides in @w{@file{@var{exec-prefix}/lib/gnats}} rather than
|
|
677 @w{@file{@var{GNATS_ROOT}/gnats-bin}} (@pxref{Locations,,Where @sc{gnats}
|
|
678 lives}).
|
|
679
|
|
680 @item
|
|
681 Change the default @code{PATH} for the @code{gnats} user to search the
|
|
682 directories @w{@file{@var{exec-prefix}/bin}} and
|
|
683 @w{@file{@var{exec-prefix}/lib/gnats}}.
|
|
684
|
|
685 @item
|
|
686 Reinstall the @sc{gnats} user tools on all other hosts on your network
|
|
687 (@pxref{Installing tools,,Installing the user tools}).
|
|
688
|
|
689 @item
|
|
690 Redistribute @code{send-pr} to your Submitter Sites
|
|
691 (@pxref{mkdist,,Configuring @code{send-pr} for the outside world}).
|
|
692 This is not absolutely necessary, as @sc{gnats} can read Problem Reports
|
|
693 generated by older versions of @code{send-pr}. It should be done
|
|
694 eventually, however, as @w{@code{send-pr}} is improved over older
|
|
695 verisons.
|
|
696
|
|
697 @c FIXME - anything else?
|
|
698 @end itemize
|