gnats / texi / p-inst.texi

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
@c remember to put in the autoload stuff!!!!  see the .el files

@c This file is included as an appendix in gnats.texi.

@cindex installing GNATS
@cindex configuring  GNATS
@cindex setting up GNATS
@cindex building GNATS

@xref{Locations,,Where the tools and utilities reside}.

There are several steps you need to follow to fully configure and
install @sc{gnats} on your system.  You need @code{root} access in order
to create a new account for @code{gnats} and to install the @sc{gnats}
utilities.  You may need @code{root} access on some systems in order to
set mail aliases in place and to allow this new account access to
@code{cron} and @code{at}.

If you are updating an older version of @sc{gnats} rather than installing
from scratch, see @ref{Upgrading,,Upgrading from older versions}.

To build @sc{gnats}, you must:

@itemize @bullet
@item
Run @code{configure}, with correct options if the defaults are
unsuitable for your site.  @xref{Configure and make,,Configuring and
compiling the software}.  Default installation locations are in
@ref{Locations,,Where @sc{gnats} lives}.

@item
Compile the @sc{gnats} programs on your system.  @xref{Configure and
make,,Configuring and compiling the software}.

@item
Install the @sc{gnats} tools and utilities locally, and install the user
tools on every machine in your local network.  @xref{Installing
utils,,Installing the utilities}.

@item
Set up mail aliases for @sc{gnats}.  @xref{Aliases,,Setting up mail
aliases}.

@item
Install the @sc{gnats} user tools (@code{query-pr}, @code{nquery-pr}, @code{edit-pr},
@code{send-pr}) around your network.  @xref{Installing tools,,Installing
the user tools}.

@item
Install the @sc{gnats} daemon @file{gnatsd}.

@item
Update the local configuration files

@smallexample
config      categories  submitters  responsible  gnatsd.conf
@end smallexample

@noindent
in @w{@file{@var{GNATS_ROOT}/gnats-adm}}.  @xref{Local
configuration,,Changing your local configuration}.

@item
Create a distribution of @code{send-pr} for submitters outside your
organization.  @xref{mkdist,,Configuring @code{send-pr} for the outside
world}.
@end itemize

@menu
* Configure and make::    Configuring and compiling the software
* Installing utils::      Installing the utilities
* Aliases::               Setting up mail aliases
* Installing the daemon:: Installing the daemon
* Installing tools::      Installing the user tools
* Upgrading::             Upgrading from older versions
@end menu

@node Configure and make
@section Configuring and compiling the software
@cindex unpacking the distribution
@cindex configuring and compiling the software
@cindex compiling the software
@cindex @code{configure}
@cindex @code{make}

@enumerate 1
@item
First, unpack your distribution.  We provide source code in a @code{tar}
file which was compressed using @code{gzip}.  The code can be extracted
into a directory @var{unpackdir} using

@smallexample
mkdir @var{unpackdir}
cd @var{unpackdir}
tar zxvf gnats-@value{VERSION}.tar.z
@end smallexample

The sources reside in a directory called @file{gnats-@value{VERSION}}
when unpacked.  We call this the @dfn{top level} of the source
directory, or @dfn{srcdir}.  The sources for the @sc{gnats} tools are in
the subdirectory @file{gnats-@value{VERSION}/gnats/*}.  Lists of files
included in the distribution are in each directory in the file
@file{MANIFEST}.

@cindex lisp file installation
@cindex Emacs lisp file installation
@item
You may wish to alter the installation directory for the Emacs lisp
files.  If your Emacs lisp library is not in
@w{@file{@var{prefix}/lib/emacs/lisp}}, edit the files

@smallexample
@var{srcdir}/gnats/Makefile.in   @emph{and}
@var{srcdir}/send-pr/Makefile.in
@end smallexample

@noindent
Change the variable @samp{lispdir} from @samp{$(datadir)/emacs/lisp} to
the directory containing your Emacs lisp library.  For information on
@var{prefix}, see @ref{prefix,,@var{prefix}}.

@item
Run @code{configure}.  You can nearly always run @code{configure} with
the command

@example
./configure --with-full-gnats
@end example

@noindent
and the ``Right Thing'' happens:

@itemize @bullet
@item
@sc{gnats} is configured in the same directory you unpacked it in;

@item
when built, @sc{gnats} runs on the machine you're building it on;

@item
when installed, files are installed under @file{/usr/local}
(@pxref{Locations,,Where @sc{gnats} lives}).

@item
@sc{gnats} operates by default behavior (@pxref{default behavior,,Default
behavior}).
@end itemize

@cindex @code{configure}
The full usage for @code{configure} is:

@smallexample
configure [ --with-full-gnats ]
          [ --prefix=@var{prefix} ]
          [ --exec-prefix=@var{exec-prefix} ]
          [ --with-gnats-root=@w{@var{GNATS_ROOT}} ]
          [ --with-gnats-server=@w{@var{hostname}} ]
          [ --with-gnats-service=@w{@var{service-name}} ]
          [ --with-gnats-user=@w{@var{username}} ]
          [ --with-gnats-port=@w{@var{port-number}} ]
          [ --verbose ]
@end smallexample

@table @code
@cindex @code{with-full-gnats}
@item --with-full-gnats
All programs are to be built; this includes the user utilities, the
administrative utilities, and the internal utilities.  Use this when
configuring the utilities for the machine where @sc{gnats} is to run.
Omit it when building only the user utilities for other machines on your
network; see @ref{Installing tools,,Installing the user tools}.

@cindex @var{prefix}
@item --prefix=@var{prefix}
All host-independent programs and files are to be installed under
@var{prefix}.  (Host-dependent programs and files are also installed in
@var{prefix} by default.)  The default for @var{prefix} is
@w{@file{/usr/local}}.  @xref{Locations,,Where @sc{gnats} lives}.

@cindex @var{exec-prefix}
@item --exec-prefix=@var{exec-prefix}
All host-dependent programs and files are to be installed under
@var{exec-prefix}.  The default for @var{exec-prefix} is @var{prefix}.
@xref{Locations,,Where @sc{gnats} lives}.

@cindex @var{GNATS_ROOT}
@item --with-gnats-root=@w{@var{GNATS_ROOT}}
The database and its data files are to be installed into
@w{@var{GNATS_ROOT}}.  The default for @w{@var{GNATS_ROOT}} is
@w{@file{@var{prefix}/lib/gnats/gnats-db}}.  @xref{Locations,,Where
@sc{gnats} lives}.

@cindex --with-gnats-server
@item --with-gnats-root=@w{hostname}
FIXME

@cindex --with-gnats-service
@item --with-gnats-root=@w{@var{service-name}}
FIXME

@cindex --with-gnats-user
@item --with-gnats-user=@w{@var{username}}
FIXME

@cindex --with-gnats-port
@item --with-gnats-port=@w{@var{port-number}}
FIXME

@item --verbose
Give verbose output while @code{configure} runs.
@end table

@xref{Using configure,,Using @code{configure},configure,Cygnus
configure}.

@cindex building in a different directory
@cindex @var{objdir}
You can build @sc{gnats} in a different directory (@var{objdir}) from the
source code by calling the @code{configure} program from the new
directory, as in

@smallexample
mkdir @var{objdir}
cd @var{objdir}
@var{srcdir}/configure @dots{}
make all
@end smallexample

By default, @code{configure} compiles the programs in the same directory
as the sources (@var{srcdir}).  Emacs lisp files are byte-compiled if
@code{make} can find Emacs on your local system.

@item
Run 

@smallexample
make all info
@end smallexample

@noindent
from the directory where @code{configure} created a @file{Makefile}.
(This may not be the same directory as the source directory.)  These
targets indicate:

@table @code
@item all
Compile all programs

@item info
Create @samp{info} files using @code{makeinfo}.
@end table
@end enumerate

@node Installing utils
@section Installing the utilities
@cindex installing the utilities

The following steps are necessary for a complete installation.  You may
need @code{root} access for these.

@enumerate 1
@item
Install the utilities by
invoking

@smallexample
make install install-info
@end smallexample

These targets indicate:

@table @code
@item install
Installs all programs into their configured locations
(@pxref{Locations,,Where @sc{gnats} lives}).

@item install-info
Installs @samp{info} files into their configured locations
(@pxref{Locations,,Where @sc{gnats} lives}).
@end table

After you have installed @sc{gnats}, you can remove the object files with

@smallexample
make clean
@end smallexample

@cindex @code{autoload} commands
@cindex loading @code{.el} files
@cindex Emacs functions
@item
Place the following lines in the file @file{default.el} in your Emacs
lisp library, or instruct your local responsible parties to place the
lines in their local editions of @file{.emacs}:

@smallexample
(autoload 'edit-pr "gnats" 
   "Command to edit a problem report." t)
(autoload 'view-pr "gnats"
   "Command to view a problem report." t)
(autoload 'unlock-pr "gnats"
   "Unlock a problem report." t)
(autoload 'query-pr "gnats"
   "Command to query information about problem reports." t)
(autoload 'send-pr-mode "send-pr"
   "Major mode for sending problem reports." t)
(autoload 'send-pr "send-pr"
   "Command to create and send a problem report." t)
@end smallexample

Emacs lisp files are byte-compiled if @code{make} can find Emacs on your
local system.


@item
@cindex creating an account for @sc{gnats}
Create an account for a user named @sc{gnats}.  This user must have an
entry in the file @file{/etc/passwd}.  The home directory for this
account should be the same directory you specified for @var{GNATS_ROOT}
in the file @file{Makefile.in}.  Also, the default @code{PATH} for this
user should contain @w{@file{@var{exec-prefix}/bin}} and
@w{@file{@var{exec-prefix}/lib/gnats}}.

@cindex @code{cron}
@cindex @code{at}
@item
Allow the new user @code{gnats} access to @code{cron} and @code{at}.  To
do this, add the name @code{gnats} to the files @w{@file{cron.allow}} and
@w{@file{at.allow}}, which normally reside in the directory
@w{@file{/var/spool/cron}}.  If these files do not exist, make sure
@code{gnats} does not appear in either of the files @w{@file{cron.deny}}
and @w{@file{at.deny}} (in the same directory).

@noindent
For the following steps, log in as @code{gnats}.

@itemize @bullet
@item
Edit the files @file{categories}, @file{responsible}, and
@file{submitters} in the directory @w{@file{@var{GNATS_ROOT}/gnats-adm}}
(@pxref{Local configuration,,Changing your local configuration}) to
reflect your local needs.  Be sure to run @code{mkcat} after you update
the @file{categories} file (@pxref{mkcat,,Adding a new problem
category}).  @emph{Note:} these templates are not installed if they
already exist, i.e. if you are upgrading.  @xref{Upgrading,,Upgrading
from older versions}.

@item
If you wish to install the @sc{gnats} user tools on other machines on
your network, see @ref{Installing tools,,Installing the user tools}.
@end itemize

@cindex @code{crontab}
@item
Create a @code{crontab} entry that periodically runs the program
@code{queue-pr} with the @samp{--run} option.  For example, to run
@w{@samp{queue-pr --run}} every ten minutes, create a file called
@file{.mycron} in the home directory of the user @code{gnats} which
contains the line:

@smallexample
0,10,20,30,40,50 * * * * @var{exec-prefix}/lib/gnats/queue-pr --run
@end smallexample

@noindent
(Specify the full path name for @code{queue-pr}.)  Then run

@smallexample
crontab .mycron
@end smallexample

@noindent
See the @code{man} pages for @code{cron} and @code{crontab} for details
on using @code{cron}.
@end enumerate

@node Aliases
@section Setting up mail aliases
@cindex mail aliases
@cindex aliases

The following mail aliases must be placed in the file
@w{@file{/etc/aliases}} on the same machine where the @sc{gnats} tools
are installed.  You may need @code{root} access to add these aliases.

@itemize @bullet
@item
@cindex @code{gnats-admin} alias
Create an alias for the @sc{gnats} administrator.  This address should
point to the address of the person in charge of administrating
@sc{gnats}:

@smallexample
gnats-admin:  @var{address}
@end smallexample

@item
@cindex bug alias
@cindex incoming alias for Problem Reports
@cindex alias for incoming Problem Reports
@cindex @code{queue-pr -q}
Create an alias to redirect incoming Problem Reports.  This alias should
redirect incoming mail via a @dfn{pipe} to the program @w{@samp{queue-pr
-q}}.  For example, if Problem Reports coming to your site are to arrive
at the address @samp{bugs@@your.company.com}, create an alias to the
effect of:

@smallexample
bugs:  "| @var{exec-prefix}/lib/gnats/queue-pr -q"
@end smallexample

@noindent
This places incoming Problem Reports in
@w{@file{@var{GNATS_ROOT}/gnats-queue}}.

@item
@cindex @var{site} alias
@cindex mail alias for your @emph{site}
@cindex alias for your @emph{site}
Create an alias for your site. This alias should be the same nametag
indicated by the variable @w{@samp{GNATS_SITE}} in the file
@w{@file{@var{GNATS_ROOT}/gnats-adm/config}} (@pxref{config,,The
@code{config} file}), with an added suffix @samp{-gnats}.  This alias,
@w{@samp{@var{GNATS_SITE}-gnats}}, should point toward the local
submission address.  For instance, if your site is Tofu Technologies,
the presence of @sc{gnats} on your @var{site} would be aliased as the
following (the previous example is also shown):

@smallexample
bugs:  "| @var{exec-prefix}/lib/gnats/queue-pr -q"
tofu-gnats: bugs
@end smallexample

@noindent
The report submission utility @code{send-pr} automatically appends the
@samp{-gnats} to any arguments you specify (@pxref{send-pr,,Submitting
Problem Reports}).  The @code{send-pr} which was installed when you
typed @w{@kbd{make install}} has a default argument of @var{GNATS_SITE},
your site, so that when your local users simply type @kbd{send-pr} mail
is sent to your local @sc{gnats}.  Part of the installation process a
Submitter Site follows when installing @code{send-pr} is to set up an
alias for the Support Site from whom this submitter received
@code{send-pr}.  In other words, anyone you distribute @code{send-pr} to
is instructed to make an alias

@smallexample
tofu-gnats: bugs@@tofu.com
@end smallexample

@item
You may also wish to forward a copy of each incoming Problem Report to a
log.  This can be accomplished with something like:

@smallexample
bug-q: "| @var{exec-prefix}/lib/gnats/queue-pr -q"
bug-log:  @var{GNATS_ROOT}/gnats-adm/bugs.log
bugs:      bug-q, bug-log
@end smallexample

@noindent
This configuration archives incoming Problem Reports in the file
@w{@file{@var{GNATS_ROOT}/gnats-adm/bug.log}}, and also feeds them to the
program @code{queue-pr}.  (Remember, @file{bug.log} needs to be
world-writable, and should be pruned regularly; @pxref{Management,,
@sc{gnats} Administration}.)

@item
If you want your users to be able to query the database by mail, use the
following alias:

@smallexample
query-pr: "| @var{exec-prefix}/lib/gnats/mail-query"
@end smallexample

@noindent
The @code{mail-query} program uses @samp{--restricted} to search on the
database, and by default only searches for PRs that aren't closed
(@pxref{query-pr,,Querying the database}).

@end itemize

@c ---------------------------------------------------------------
@node Installing the daemon
@section Installing the daemon
@cindex daemon
@cindex using @sc{gnats} over a network

By default, the daemon and clients are set to use port 1529.  Add the line

@smallexample
support		1529/tcp			# GNATS
@end smallexample

@noindent
to your @file{/etc/services} file.  If you want a different port,
or a different service name or port, configure @sc{gnats} with

@smallexample
--with-gnats-service=@var{servicename}
--with-gnats-port=@var{portnumber}
@end smallexample

In your @file{inetd.conf} file, add the line

@smallexample
support	stream	tcp	nowait	gnats	/usr/local/lib/gnats/gnatsd gnatsd
@end smallexample

@noindent
adjusting the path accordingly.  To make inetd start spawning the @sc{gnats} daemon
when connected on that port, send it a hangup signal (@code{HUP}).

By default, the server for the @sc{gnats} daemon is assumed to be one with the
name of @samp{gnats}.  If you'd like something else, use

@smallexample
--with-gnats-server=@var{hostname}
@end smallexample

In the @file{gnats-adm} directory, you'll want to edit @file{gnatsd.conf}.
It lists the hosts allowed to access your server.  Or, if you're using
Kerberos, it shows the sites that don't require Kerberos authentication.
The format is reserved for future revision; only the first field is
actually used:

@smallexample
site.com::
@end smallexample

@noindent
The second field may be used for things like controlling what
categories, submitter-id'd PRs, etc., can be accessed from that site.
In the file that logs syslog messages (@file{/var/adm/messages}, for
example) you'll find the notification of denied access.


@c ---------------------------------------------------------------
@node Installing tools
@section Installing the user tools
@cindex networks
@cindex using @sc{gnats} over a network
@cindex configuring @sc{gnats} on a network

When you install the @sc{gnats} utilities, the user tools are installed
by default on the host machine.  If your machine is part of a network,
however, you may wish to install the user tools on each machine in the
network so that responsible parties on those machines can submit new
Problem Reports, query the database, and edit existing PRs.  To do this,
follow these steps @emph{on each new host}.  You may need root access on
each machine.

@enumerate 1
@item
Make sure that the directory where @sc{gnats} resides is mounted to each
system that will need access to it, so @var{GNATS_ROOT} will be the same
for each host.  (You can do this with symbolic links as well.)

@item
Either mount the disk which contains your source directory, or make a
copy of the @sc{gnats} source code tree in a separate directory on each
system you wish to build on.

@item
Run @code{configure}, @emph{without} specifying
@w{@samp{--with-full-gnats}}, and using the same argument (if any) for
the option

@smallexample
--with-gnats-root=@var{GNATS_ROOT}
@end smallexample

that you specified when building the @sc{gnats} utilites
(@pxref{Configure and make,,Configuring and compiling the software}).
You may use different values for the other options to @code{configure}.
Again, @emph{do not} use @w{@samp{--with-full-gnats}} at this point, as
that creates all the @sc{gnats} programs.  Without this option,
@code{configure} only instructs the resulting @file{Makefile} to create
the user utilities.

@exdent
@emph{You may need @code{root} access on each host for the following steps.}

@item
@cindex creating an account for @sc{gnats}
Create an account for a user named @sc{gnats} on the new host.  This user
must have an entry in the file @file{/etc/passwd}.  The user ID for
@code{gnats} must be the same as on the main @sc{gnats} host.

@item 
Run 

@smallexample
make all info install install-info
@end smallexample

@noindent
This builds and installs the @code{gnats} user tools @w{@code{query-pr}},
@w{@code{edit-pr}}, and @w{@code{send-pr}} on the new host, and installs
them in @w{@file{@var{exec-prefix}/bin}} on the new host (@emph{Note:}
the value for @var{exec-prefix} on the new host may be different from
the value you used when building the @sc{gnats} utilities;
@pxref{exec-prefix,,@var{exec-prefix}}).  The programs @code{pr-edit}
and @code{pr-addr} are installed into
@w{@file{@var{exec-prefix}/lib/gnats}}.

@code{info} files are created as well, and are installed into
@w{@file{@var{prefix}/info}}.  The Elisp files @file{gnats.el} and
@file{send-pr.el} (and possibly @file{gnats.elc}
if @code{make} was able to compile them using Emacs) are installed into
@w{@file{@var{prefix}/lib/emacs/lisp}} unless you change the
@samp{lispdir} variable in @file{Makefile.in} (@pxref{Configure and
make,,Configuring and compiling the software}).

@cindex @code{autoload} commands
@cindex loading @code{.el} files
@cindex Emacs functions
@item
Add the following lines to the file @w{@file{default.el}} in the Emacs
lisp repository on the new host, or instruct your responsible parties
who use these hosts to add them to their @file{.emacs} files:

@smallexample
(autoload 'edit-pr "gnats" 
   "Command to edit a problem report." t)
(autoload 'view-pr "gnats"
   "Command to view a problem report." t)
(autoload 'unlock-pr "gnats"
   "Unlock a problem report." t)
(autoload 'query-pr "gnats"
   "Command to query information about problem reports." t)
(autoload 'send-pr-mode "send-pr"
   "Major mode for sending problem reports." t)
(autoload 'send-pr "send-pr"
   "Command to create and send a problem report." t)
@end smallexample

@item
Copy the file @w{@file{@var{prefix}/lib/gnats/@var{site}}} from the
original host to the new host (which may have a different value for
@var{prefix}).  This is the list of valid categories that
@w{@code{send-pr}} uses (@pxref{Locations,,Where @sc{gnats} lives}).
@var{site} is your local site, the value of @w{@samp{GNATS_SITE}} in the
@file{config} file (@pxref{config,,The @code{config} file}).

@end enumerate

@c ---------------------------------------------------------------
@node Upgrading
@section Upgrading from older versions
@cindex upgrading from older versions

If you are upgrading from a previous release of @sc{gnats}, you probably
do not want to delete your current configuration files or your current
database.  The new @sc{gnats} can be installed around the older version.

You need to:

@itemize @bullet
@item
Specify your current @var{GNATS_ROOT} on the command line to
@code{configure} when you build the new tools, with

@smallexample
configure --with-full-gnats --with-gnats-root=@var{GNATS_ROOT}
@end smallexample

@noindent
(@xref{Configure and make,,Configuring and compiling the software}.)

@item
Remove the directory @w{@file{gnats-bin}} from @w{@var{GNATS_ROOT}}; it is
no longer used.

@item
Update your current mail aliases to reflect that @w{@code{queue-pr}} now
resides in @w{@file{@var{exec-prefix}/lib/gnats}} rather than
@w{@file{@var{GNATS_ROOT}/gnats-bin}} (@pxref{Locations,,Where @sc{gnats}
lives}).

@item
Change the default @code{PATH} for the @code{gnats} user to search the
directories @w{@file{@var{exec-prefix}/bin}} and
@w{@file{@var{exec-prefix}/lib/gnats}}.

@item
Reinstall the @sc{gnats} user tools on all other hosts on your network
(@pxref{Installing tools,,Installing the user tools}).

@item
Redistribute @code{send-pr} to your Submitter Sites
(@pxref{mkdist,,Configuring @code{send-pr} for the outside world}).
This is not absolutely necessary, as @sc{gnats} can read Problem Reports
generated by older versions of @code{send-pr}.  It should be done
eventually, however, as @w{@code{send-pr}} is improved over older
verisons.

@c FIXME - anything else?
@end itemize
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.