diff options
| author | jtc <jtc@NetBSD.org> | 1994-01-24 23:55:37 +0000 |
|---|---|---|
| committer | jtc <jtc@NetBSD.org> | 1994-01-24 23:55:37 +0000 |
| commit | 2fb7d669c309989aa7b8cb23ead034601a308c23 (patch) | |
| tree | c8f748ed10d1fa7fc2cd77e566bdd6d5e5da6e02 /gnu | |
| parent | 03cf464d00cd2111a123d5a377ce37438658a1bf (diff) | |
Updated to latest send-pr from Cygnus.
Added missing files & configuration grot so that NetBSD who are not
connected to the net, but have a net connection on another machine
can submit bugs.
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/usr.bin/send-pr/ChangeLog | 618 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/INSTALL | 83 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/MANIFEST | 20 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/Makefile | 96 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/Makefile.in | 291 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/README | 43 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/aclocal.m4 | 68 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/categ.texi | 123 | ||||
| -rwxr-xr-x | gnu/usr.bin/send-pr/configure | 363 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/configure.in | 71 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/fields.texi | 518 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/install-sid.sh | 4 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/s-usage.texi | 519 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/send-pr-el.in | 112 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/send-pr.man | 79 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/send-pr.sh | 112 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/send-pr.texi | 657 | ||||
| -rw-r--r-- | gnu/usr.bin/send-pr/states.texi | 53 |
18 files changed, 3648 insertions, 182 deletions
diff --git a/gnu/usr.bin/send-pr/ChangeLog b/gnu/usr.bin/send-pr/ChangeLog new file mode 100644 index 00000000000..a1e1872b02c --- /dev/null +++ b/gnu/usr.bin/send-pr/ChangeLog @@ -0,0 +1,618 @@ +Sat Jan 15 19:12:45 1994 Jason Merrill (jason@deneb.cygnus.com) + + * aclocal.m4 (AC_LISPDIR): Handle case where $(prefix) is not + specified on the command line. + +Mon Jan 10 17:21:33 1994 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (send-pr:submit-pr): If called from command line, + save buffer on C-c C-c. + + * send-pr.sh: Clean up template. + + * Makefile.in, configure.in: Don't use AC_PROG_INSTALL after all. + + * aclocal.m4 (AC_LISPDIR): Check for --with-lispdir option. + +Fri Jan 7 11:43:02 1994 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (gnats:change-field): If not called interactively, + just use the default value. + + * Makefile.in (uninstall): Fix. + + * configure.in: Add call to AC_PROG_INSTALL. + + * Makefile.in (INSTALL*): Use it. + + * send-pr.sh: Only modify GNATS_ADDR if USER_GNATS_SITE is different + from GNATS_SITE. + + * send-pr-el.in (send-pr:submit-pr): If the user ran send-pr from the + command line with $EDITOR == emacs, don't submit the PR here. + (send-pr:::spawn-to-send): Variable to control this behavior. + +Thu Jan 6 22:51:15 1994 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (send-pr::fields): Default for Submitter-Id should + be SUBMITTER, not DEFAULT_SUBMITTER. + + * aclocal.m4 (AC_PASSWD): New macro to figure out how to read the + passwd database (cat, ypcat, niscat). + + * configure.in: Use it. + + * Makefile.in (PASSWD, send-pr): Use it. + + * send-pr.sh: Use it. + +Fri Dec 10 11:48:44 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Version 3.2 + +Thu Dec 2 09:11:40 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (mostlyclean): Don't delete version.texi. + (realclean): Do delete version.texi. + +Tue Nov 30 15:37:59 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (install-gnats-dist): Use send-pr.1 rather than + send-pr.man. + +Mon Nov 22 15:43:40 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (install-gnats-dist): Make sure $(datadir)/gnats/dist + is writable by user gnats. + +Fri Nov 19 16:53:53 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (gnats::emacs-19p): Avoid confusion wrt Epoch. + +Fri Nov 12 16:27:00 1993 Jason Merrill (jason@deneb.cygnus.com) + + Fri Nov 12 15:48:01 1993 "Jonathan I. Kamens" (jik@security.ov.com) + + * send-pr.sh: Deal with categories longer than 12 chars. + +Wed Nov 3 12:22:22 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (install-tools): Always install Cygnus category list. + (install-categories): Always install categories as 'cygnus'. + +Tue Nov 2 21:43:12 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (gnats:change-field): If not currently in a field, + deal. + (gnats::current-field): Ditto. + (gnats::set-field): save-excursion. + (gnats::set-mail-field): Ditto. + +Tue Nov 2 18:33:08 1993 Jeffrey Osier (jeffrey@thepub.cygnus.com) + + * .Sanitize: fix filenames + * Makefile.in (send-pr.info): depends on other .texi files + * *.texi: more fixes to bring up to par + +Mon Nov 1 10:05:10 1993 Jeffrey Osier (jeffrey@thepub.cygnus.com) + + * gnats/*.texi, send-pr/*.texi, gnats/man/*.man: up to date + +Wed Oct 27 18:49:39 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (send-pr.info): Fix + (send-pr.dvi): Fix + +Wed Oct 27 14:14:12 1993 Jeffrey Osier (jeffrey@cygnus.com) + + * .Sanitize: reflect new doc strategy + * .Makefile.in: reflect new doc strategy + * send-pr.texi, s-usage.texi, fields.texi, categ.texi, states.texi: + The New Doc Strategy. Some info is also included into + the regular GNATS docs, so it's modular now. + +Tue Oct 26 16:20:08 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (send-pr:submit-pr): Use the right site + + * Makefile.in (install-gnats-dist): Lose the -o gnats bunk. + Change $GNATS_ROOT/gnats-dist to $(datadir)/gnats/dist + +Wed Oct 20 18:09:20 1993 Jason Merrill (jason@deneb.cygnus.com) + + * configure.in (MAIL_AGENT): Also look in /usr/ucblib. + + * Makefile.in (uninstall): Don't use {}. + +Tue Oct 19 14:06:56 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (send-pr.el): Subst in SUBMITTER. + (install-gnats-dist): Make it work. + + * send-pr.sh: On second thought, don't try to guess the FQDN at all. + + * send-pr.sh (HOSTNAME): Massage hosts where `hostname` does not + produce the FQDN, but `hostname`.`domainname` does. + + * send-pr-el.in (send-pr:send-pr): On some Emacs 18ses, + switch-to-buffer returns nil when it succeeds. Ignore it. + +Mon Oct 18 16:10:59 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr.sh: Deal with echo -n / echo \c stuff, + massage SunOS 4.1.3 sendmail. + Fix $0/$COMMAND bug in awk script. + + * aclocal.m4: Create, with AC_FIND_PROGRAM and AC_ECHON. + + * Makefile.in (VPATH): Add def. + (GNATS_ROOT, etc): Replace default values with @@ stuff. + (CC, RANLIB): Give default (unused) values. + (most targets): Change @@s to xxs. + (send-pr): Subst in ECHON. + (install-categories): Don't use -o. + +Thu Oct 14 22:12:27 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr.sh: Don't use 'eval' when calling MAIL_AGENT, as it + breaks Ultrix sh and wasn't useful anyway. + +Wed Oct 13 15:55:52 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr.sh (GNATS_SITE): Move after config, subst in. + + * Makefile.in (MAIL_AGENT): Add definition. + (SEND_PR_INSTALL): Dependencies of install. + (send-pr): Subst in MAIL_AGENT. + (install): Use SEND_PR_INSTALL. + (install-norm): Don't install categories file. + (install-categories): New target to install categories file. + (install-gnats-dist): Look for send-pr.texi in the right place. + (stamp-gnats): Deal with MAIL_AGENT and SEND_PR_INSTALL + +Tue Oct 12 15:50:00 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (setenv): Define for old emacses + + Tue Oct 12 14:36:28 1993 JT Conklin (conklin@talisman.kaleida.com) + + * send-pr.sh (COMMAND): Add missing quote. + +Fri Oct 1 15:06:01 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (VERSION): Bump to 3.01.5 + +Tue Sep 28 13:35:45 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (install-gnats-dist): Fix creation of send-pr-el.in + + * send-pr-el.in (send-pr::start-up): Clear cruft inserted by + bdamaged .cshrc files + + * Makefile.in (send-pr.elc): New target + (uninstall): Now does something + + * send-pr-el.in (gnats::functionp): Fix ref to free var + +Fri Sep 17 10:22:26 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * Makefile.in (install-gnats): add missing backslash + +Fri Sep 10 17:03:22 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (Makefile): Make it work with stamp-gnats + (DEFAULT_RELEASE): Make more general + +Thu Sep 9 17:58:50 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in: Add appropriate defaults for reporting bugs to Cygnus + Remove problem quotes + Depend on ../install.sh + + * send-pr-el.in: Fix various Emacs 18 problems + +Wed Sep 8 16:27:35 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (install-gnats): Remove directory creation stuff + (install-gnats-dist): Ditto + + * send-pr-el.in (gnats:change-field): Allow the caller to specify + a default value [used by update-responsible]. + +Tue Sep 7 14:12:35 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (install-gnats-dist): Unset submitter for gnats-dist + + * send-pr.sh: Made install-sid message more explicit + +Fri Sep 3 14:10:27 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr.sh: Change $LIBDIR to $DATADIR + + * send-pr-el.in (various): Replace libdir with datadir + (send-pr::start-up): Support mail-self-blind + (gnats::mail-position-on-field): Create field if it's not there + (gnats:previous-field): Check for keyword before point first + (gnats::looking-after): Revert from (point-marker) to (point) + + * Makefile.in (stamp-gnats): Depend on Makefile + (send-pr.texi): sed(1) in version number and usage info so that + clients only get single texi file. + (various): Change $(libdir) to $(datadir) + (install): Default to install-gnats, since the rule checks for ../gnats + (stamp-gnats): Replace install dependencies + + * send-pr.texi: Move to send-pr.texi.in, change version number to + @VERSION@ + +Tue Aug 31 12:02:14 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (send-pr:submit-pr): Bury the right buffer. + (send-pr::fields): Move all possible values and defaults + into this monolithic table + (send-pr::start-up): Replace all the querys with a mapcar over + send-pr::fields + (gnats::competing-read-and-replace): Lose + (gnats::find-field): Lose + (gnats::position-on-field): Create + (gnats::mail-position-on-field): Create + (gnats::field-contents): Create + (gnats::functionp): Create + (gnats::field-values): Create + (gnats::field-default): Create + (gnats::field-type): Create + (gnats::field-action): Create + (send-pr::maybe-change-field): Create + (gnats:change-field): Create, bind to ^C^F + (gnats::set-field): Create + (gnats::set-mail-field): Create + (gnats:beginning-of-field): Create + (gnats::current-field): Create + (gnats::after-keyword): Fix doc string + (gnats::patch-exec-path): Don't use send-pr::err-buffer-name + (gnats::get-value-from-shell): Ditto + +Fri Aug 27 08:34:58 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (gnats::*-keyword): Add grouping + + * send-pr.sh: Accommodate shells that don't support functions. + + * send-pr-el.in (send-pr:submit-pr): Fix behavior on send + +Thu Aug 26 14:31:21 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (send-pr::set-sites): Use send-pr:libdir, not + gnats:libdir. + (send-pr::start-up): Put buffer in send-pr-mode. + (send-pr:submit-pr): Make sure err-buffer exists before trying to + use it. + (send-pr:send-pr-mode): Allow whitespace after keyword in + paragraph-separate + + * send-pr.sh (MAIL_AGENT): Use /usr/lib/sendmail rather than /bin/mail + (ORIGINATOR): remove $TEMP when done + (die): New function to massage buggy Sun sh + (EXIT_STATUS): New variable to massage buggy Sun sh + Don't parse To: and CC: headers any more + Check for failure of MAIL_AGENT + +Tue Aug 24 16:57:13 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (send-pr:libdir): Use @'s, be const + (send-pr::categories): Remove + (send-pr:::categories): Add (buffer-local) + (send-pr::category-alist): Add + (send-pr:::site): Add + (send-pr::set-categories): Support multiple sites + (send-pr::sites): Don't update without arg + (send-pr::pr-buffer): Add -name to end, fix refs to use buffer + (send-pr::err-buffer): Ditto + (send-pr:send-pr): Always use site name, only ask about erasing + report if it's been modified. + (send-pr::start-up): Check for errors from send-pr -P + Don't kill random buffers + Remove useless progn + (gnats::completing-read-and-replace): Fix doc string + (gnats::set-variable-from-shell): Change to get-var... + Check for errors + + * send-pr.sh (GNATS_ROOT): Put definition on newline so configure + can find it + Ask user whether or not to send the PR even if it's valid + +Mon Aug 23 12:31:00 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (gnats::releases): Use send-pr:default-release + + * send-pr.sh (LIBDIR): Try looking under GCC_EXEC_PREFIX for + the gnats stuff if it's not in the right place + Move up TMPDIR stuff so the ORIGINATOR stuff can use $TEMP + Remove 'g' from COMMAND sed pattern + Remove 'p' from options list + + * send-pr.input: Fix C-u M-x send-pr description + +Fri Aug 20 20:34:12 1993 Jason Merrill (jason@rtl.cygnus.com) + + * send-pr.sh: Add long options, add -h, remove -p and -r + +Thu Aug 19 14:59:24 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (gnats::push): Move from gnats-el.in + + * Makefile.in (send-pr.el): Subst in $(libdir) and $(GNATS_SITE) + + * send-pr-el.in (send-pr:default-site): Create + (send-pr:send-pr): Ask for site name if arg + (send-pr::start-up): Use site name if non-nil + (send-pr::set-sites): Create list of known sites from listing of + LIBDIR/gnats + + * send-pr.sh (ORIGINATOR): Remove ''s around ^$LOGNAME + Redirect stderr from ypcat to /dev/null + Use $TEMP as a temp file to avoid quoting problems + + * Makefile.in (send-pr): Subst in $(SUBMITTER) + (stamp-gnats): Ditto + + * send-pr.sh (SUBMITTER): Get substed + + * send-pr-el.in (gnats::get-config): Trim newline from echo output + rather than using non-portable -n switch + (send-pr:submit-pr): Indicate when send-pr is done + +Wed Aug 18 15:14:22 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (send-pr-mode-map): Move setup into defvar + Reorganize namespace (put some things under send-pr:, others + under gnats:) + (send-pr:start-up): Use mail-default-reply-to + (send-pr:submit-pr): If in a Server buffer, do server-buffer-done + rather than spawning another send-pr. + (gnats::get-config): Add, use + Juggle contents of send-pr.el and gnats.el to avoid duplication + and name clashing (like with gnats-set-categories) + (gnats::set-variable-from-shell): kill the buffer when done + + * send-pr.sh: Don't complain about $SUBMITTER if using -f + Fix typos + +Tue Aug 17 19:31:27 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr.sh: Don't loop if called from Emacs + +Mon Aug 16 14:59:29 1993 Jason Merrill (jason@deneb.cygnus.com) + + * Makefile.in (send-pr.el): Substitute in GNATS_ROOT + + * send-pr-el.in (send-pr-start-up): Set $GNATS_ROOT to GNATS-ROOT + Add definition of GNATS-ROOT + + * send-pr.sh: Use GNATS_ROOT in the environment + +Fri Aug 13 12:00:16 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr.sh: Fix grammar in send-pr template + + * install-sid.sh: Change grep -s to grep > /dev/null for greps + that just don't shut up (i.e. POSIX) + +Tue Aug 10 13:25:35 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr-el.in (send-pr-mode): Change paragraph-separate and + paragraph-start to include "^>[-A-Za-z]:" (PR 3166) + +Mon Aug 9 15:37:00 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr.sh: Added >Fix: field (re PR 1310) + If errors are found, allow user to edit PR again. + Remove [ -z $FORCE ] since $FORCE appears nowhere else + Add contents of CC: field to $GNATS_ADDR before sending (PR 2298) + +Wed Aug 4 20:33:50 1993 Jason Merrill (jason@deneb.cygnus.com) + + * send-pr.sh: Snarf configuration from GNATS_ROOT/gnats-adm/config + if it exists. + + * install-sid.sh: Fixed startup so that calling with no arguments + will print usage info and exit + Added --version switch + +Thu Jul 22 17:00:14 1993 Jason Merrill (jason@wahini.cygnus.com) + + * Makefile.in (install-gnats-dist): now depends on `info' target, + installs send-pr.info* rather than just send-pr.info + +Wed Jul 21 19:14:30 1993 Jason Merrill (jason@wahini.cygnus.com) + + * Makefile.in (install-gnats-dist): remove $(srcdir)/ before + send-pr.info so other-dir installs work. + +Tue May 18 21:45:45 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * Makefile.in: remove all traces of send_pr and install_cid + +Fri Apr 30 08:42:33 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (check, installcheck): New, empty, targets. + +Tue Apr 13 16:52:24 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * Makefile.in (all-gnats): Add rule, same as install-norm; hack for + now to make top-level builds work that don't pass GNATS=foo down + because they don't need all of GNATS. + +Wed Apr 7 13:41:04 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * send-pr.sh (ORGANIZATION): If they don't have an ORGANIZATION + environment variable, then try for DEFAULT_ORGANIZATION, then + $HOME/.organization, before going for their .signature. + + * Makefile.in (install-sid): Use `tmp-inst-sid' instead of + `tmp-install-sid' to avoid filename length limits. + (DEFAULT_ORGANIZATION): New variable. + (send-pr): Substitute it. + (stamp-gnats): Substitute DEFAULT_ORGANIZATION in. + +Tue Mar 30 16:00:01 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * send-pr.sh (PRINT_INTERN): Add missing `$'. + +Mon Mar 29 16:46:22 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * install-sid.sh (traps): Add them in. + +Thu Mar 25 17:01:43 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * send-pr.sh (ORIGINATOR): Look in the NIS maps if they've got + them. In any case, strip off anything following a comma, since + they might have phone nos or other info. + +Wed Mar 24 17:56:15 1993 david d `zoo' zuhn (zoo at poseidon.cygnus.com) + + * Makefile.in: define MAKEINFO, define & use TEXI2DVI + +Fri Mar 19 17:44:01 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * send-pr-el.in (send-pr-start-up): Check that send-pr-mode worked + (aka, running send-pr worked). + (send-pr-mode): Make sure the category list was set. + (gnats-set-variable-from-shell): Instead of using a temp buffer, + refuse to continue if send-pr couldn't give us a valid categories + list. This will change when the send-pr and gnats elisp stuff are + rationalized properly. + + * send-pr.sh (editing the PR): Use EDIT, not EDITOR. + (SUBMITTER unknown): Fix the message. + +Mon Mar 15 14:31:58 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * send-pr.sh (FROM, REPLY_TO): Check for LOGNAME then USER. + +Sat Mar 6 15:26:37 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * send-pr.elisp: Rename to send-pr-el.in. + * Makefile.in: Do so throughout. + + * Makefile.in (clean): Also delete send-pr.elc. + +Thu Mar 4 11:35:29 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * send-pr.sh (TMPDIR): Wrap with quotes in the test for it not + being set. + +Thu Mar 4 09:58:31 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (install-info): New target. + + * Makefile.in (install): Ignore error from chown. Get categories + file from $(srcdir). + +Wed Mar 3 07:43:07 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (send-pr.info): Added -I$(srcdir). + +Sat Feb 27 22:46:09 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * Makefile.in (install): Use $(GNATS). + (install-norm): Most of the install rule. + (install-gnats-dist): The rest of it. + (install-tools): New rule, just run install-norm. + (install-gnats): The default, run both install-norma nd + install-gnats-dist. + +Wed Feb 24 17:19:57 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * send-pr.in->send-pr.input: so it's not erased with make clean + +Tue Feb 23 15:40:14 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * Makefile.in (install): Change ownership of files installed to gnats. + +Tue Feb 23 15:30:01 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * send-pr.texi: use send-pr.in + + * send-pr.in: New file (included by send-pr.texi and gnats.texi) + +Tue Feb 23 10:45:34 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * Makefile.in (install): Chown $(libdir)/gnats to gnats. + +Mon Feb 22 13:26:18 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * Makefile.in (install): Install send-pr.1. + + * Makefile.in (install): Drop in the things for gnats-dist. + +Mon Feb 22 01:45:16 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * send-pr.man: semi-major cleanup effort.. now in beta + +Mon Feb 22 01:22:48 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * INSTALL: now in beta + +Sun Feb 21 23:25:49 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * Makefile.in (install): Create the parent of lispdir first. + +Sun Feb 21 17:07:56 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * send-pr.texi: more minor tweaking, added portability note + * send-pr.man: ditto + +Sun Feb 21 16:11:08 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * send-pr.texi: minor install cleanup + * MANIFEST: New file. + * INSTALL: New file. + * README: Major revision. + +Sat Feb 20 23:47:02 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * send-pr.texi: added new alias info + +Sat Feb 20 20:46:23 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * send-pr.sh: Set `From:' and `Reply-To:'. + + * Makefile.in (send-pr): Depend upon Makefile, to catch variable + changes. + (install-sid, send-pr.el, send-pr.1): Likewise. + + * install-sid.sh: Copy TMP into the send-pr script, so we don't + break the link we made to send_pr. + + * send-pr.sh: Given an argument, send to the alias `foo-gnats'. + + * Makefile.in (clean): Also remove stamp-gnats. + +Sat Feb 20 19:15:00 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * send-pr.texi: recent update, removed installation information + and added a line regarding (autoload) for Emacs version + * send-pr.info: same update + +Sat Feb 20 18:44:09 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * Makefile.in (gnats-build): Changed to depend upon stamp-gnats. + (stamp-gnats): New rule, with body of what was in gnats-build. + +Sat Feb 20 18:37:33 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * send-pr.texi: added install information + * send-pr.info: New file. + +Sat Feb 20 14:16:56 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * Initial entry for GNATS 3.0. + + +Local Variables: +mode: indented-text +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gnu/usr.bin/send-pr/INSTALL b/gnu/usr.bin/send-pr/INSTALL new file mode 100644 index 00000000000..711c63d8a16 --- /dev/null +++ b/gnu/usr.bin/send-pr/INSTALL @@ -0,0 +1,83 @@ + Installation procedures for `send-pr' + +If you receive `send-pr' as part of a larger software distribution, it +will be automatically installed when the full distribution is +installed. The `send-pr' directory, however, is easily installed by +itself by following these steps: + +1. Unpack the distribution into a directory which we will refer to as + SRCDIR. + +2. Edit the `Makefile' to reflect local conventions. + + Specifically, you should edit the variable "prefix" to alter + the installation location. The default is '/usr/local'. All + files are installed under "prefix" (see below). + +3. Run + make all install [ info ] install-info [ clean ] + + from the "build directory". The targets mean the following: + + all Builds `send-pr' and `install-sid' + + install Installs the following: + + send-pr into PREFIX/bin + install-sid into PREFIX/bin + send-pr.1 into PREFIX/man/man1 + categories as PREFIX/lib/gnats/SITE + send-pr-el.in as PREFIX/lib/emacs/lisp/send-pr.el + + info (optional) Builds "send-pr.info" from "send-pr.texi" + (send-pr.info is included with this distribution) + +install-info Installs "send-pr.info" into PREFIX/info + + clean (optional) Removes all intermediary build files that can + be rebuilt from source code + +4. Run + + install-sid SID + + where SID is the submitter identification code you received with + `send-pr'. If you've downloaded `send-pr' from the Net, use "net" + for this value. + + +5. Any users who wish to use the Emacs version of `send-pr' must place + the following line in their ".emacs" files: + + (autoload 'send-pr "send-pr" "Submit a Problem Report." t) + + +6. Create a mail alias for the support site you received `send-pr' + from, and for every site with which you wish to use `send-pr' to + communicate with, each with a suffix of `-gnats'. The support + site(s) will provide the correct addresses toward which these + aliases should point. For instance, edit your mail aliases file + to contain something like: + + # support sites; for use with send-pr + cygnus-gnats: bugs@cygnus.com # Cygnus Support + bumblebee-gnats: bumblebugs@bumblebee.com # Bumblebee BASIC, Inc. + mycompany-gnats: bugs@my.company.com (if you use GNATS locally) + + `send-pr' automatically searches for these aliases when you type + + send-pr cygnus + send-pr bumblebee + send-pr SITE... + + `send-pr' also uses SITE to determine the categories of bugs the site + in question accepts by looking in PREFIX/lib/gnats/SITE + + +7. That's it! See "send-pr.info", "send-pr.texi", and/or "send-pr.1" for + information on using `send-pr'. + + +Copyright (c) 1993, Free Software Foundation, Inc. +See the file COPYING for copyright information concerning this +distribution and all its components. diff --git a/gnu/usr.bin/send-pr/MANIFEST b/gnu/usr.bin/send-pr/MANIFEST new file mode 100644 index 00000000000..35375a6fd49 --- /dev/null +++ b/gnu/usr.bin/send-pr/MANIFEST @@ -0,0 +1,20 @@ + MANIFEST for send-pr + +The following files should have accompanied this distribution. + + COPYING copyright information + ChangeLog sourcecode change log + INSTALL installation procedure + Makefile.in Makefile template used by `configure' + MANIFEST list of accompanying files + README introductory information + config/ any specialized configuration files + configure.in input file for `configure' + categories list of valid categories + install-sid.sh script which installs Submitter-Id + send-pr-el.in elisp version of `send-pr' for Emacs + send-pr.man `send-pr' man file, installed as send-pr.1 + send-pr.info `send-pr' Info file + send-pr.sh `send-pr' shell script - command line version + send-pr.texi `send-pr' Texinfo documentation + send-pr.input `send-pr' Texinfo documentation input file diff --git a/gnu/usr.bin/send-pr/Makefile b/gnu/usr.bin/send-pr/Makefile index 618cc2a994c..e6233a9b79b 100644 --- a/gnu/usr.bin/send-pr/Makefile +++ b/gnu/usr.bin/send-pr/Makefile @@ -2,32 +2,91 @@ # Makefile for building a standalone send-pr. # -VERSION=3.01.6 -RELEASE=NetBSD-current -GNATS_HOST=sun-lamp +srcdir= ${.CURDIR} +bindir= /usr/bin +datadir= /usr/share -BINDIR= /usr/bin -LIBDIR= /usr/share +# +# Begin CONFIGURATION SECTION +# +VERSION=3.2 + +# Where the GNATS database and master configuration stuff lives. +GNATS_ROOT = + +# Email address to which people should submit bugs. +GNATS_ADDR = gnats-bugs@sun-lamp.cs.berkeley.edu + +# The default release for this send-pr. +DEFAULT_RELEASE = + +# The default organization for this send-pr. +DEFAULT_ORGANIZATION = + +# The default GNATS site for send-pr. +GNATS_SITE = sun-lamp + +# The submitter-id for your site. +SUBMITTER = net +# Command line to use for mailer +MAIL_AGENT = /usr/sbin/sendmail -oi -t + +# Command line to display the passwd database +PASSWD = cat /bin/passwd + +# Echo(1) style +ECHON = bsd + +# +# END OF CONFIGURATION SECTION +# + +BINDIR= ${bindir} +LIBDIR= ${datadir} NOPROG= MAN1= send-pr.0 -CLEANFILES= send-pr install-sid send-pr.1 +CLEANFILES= send-pr send-pr.1 send-pr.el install-sid -all: send-pr install-sid send-pr.1 +all: send-pr send-pr.1 send-pr.el install-sid -send-pr: send-pr.sh - sed -e 's/@VERSION@/$(VERSION)/g' \ - -e 's/@DEFAULT_RELEASE@/$(RELEASE)/g' \ - ${.CURDIR}/send-pr.sh > send-pr +send-pr: send-pr.sh Makefile + sed -e 's,xVERSIONx,$(VERSION),' \ + -e 's,xGNATS_ROOTx,$(GNATS_ROOT),' \ + -e 's,xGNATS_ADDRx,$(GNATS_ADDR),' \ + -e 's,xGNATS_SITEx,$(GNATS_SITE),' \ + -e 's,xSUBMITTERx,$(SUBMITTER),' \ + -e 's,xECHONx,$(ECHON),' \ + -e 's,xMAIL_AGENTx,$(MAIL_AGENT),' \ + -e 's,xPASSWDx,$(PASSWD),' \ + -e 's%xDEFAULT_ORGANIZATIONx%$(DEFAULT_ORGANIZATION)%' \ + -e 's,xDEFAULT_RELEASEx,$(DEFAULT_RELEASE),' \ + -e 's,xDATADIRx,$(datadir),' $(srcdir)/send-pr.sh > $@-t + mv $@-t $@ + chmod 755 $@ -send-pr.1: send-pr.man - sed -e 's/@VERSION@/$((VERSION)/g' \ - ${.CURDIR}/send-pr.man > send-pr.1 +install-sid: install-sid.sh Makefile + sed -e 's,xBINDIRx,$(bindir),g' \ + -e 's,xVERSIONx,$(VERSION),g' $(srcdir)/install-sid.sh > $@-t + mv $@-t $@ + chmod 755 $@ -install-sid: install-sid.sh - sed -e 's/@VERSION@/$(VERSION)/g' \ - ${.CURDIR}/install-sid.sh > install-sid +send-pr.el: send-pr-el.in Makefile + sed -e 's,xVERSIONx,$(VERSION),' \ + -e 's,xGNATS_ROOTx,$(GNATS_ROOT),' \ + -e 's,xGNATS_SITEx,$(GNATS_SITE),' \ + -e 's,xDATADIRx,$(datadir),' \ + -e 's,xDEFAULT_SUBMITTERx,$(SUBMITTER),' \ + -e 's,xDEFAULT_RELEASEx,$(DEFAULT_RELEASE),' \ + $(srcdir)/send-pr-el.in \ + > $@-t + mv $@-t $@ + +send-pr.1: send-pr.man Makefile + sed -e 's,xGNATS_ROOTx,$(GNATS_ROOT),g' \ + -e 's,xVERSIONx,$(VERSION),g' $(srcdir)/send-pr.man > $@-t + mv $@-t $@ beforeinstall: install ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} send-pr \ @@ -36,6 +95,7 @@ beforeinstall: ${DESTDIR}${BINDIR} install -d -o root -g wheel -m 755 ${DESTDIR}${LIBDIR}/gnats install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/categories \ - ${DESTDIR}${LIBDIR}/gnats/${GNATS_HOST} + ${DESTDIR}${LIBDIR}/gnats/${GNATS_SITE} .include <bsd.prog.mk> + diff --git a/gnu/usr.bin/send-pr/Makefile.in b/gnu/usr.bin/send-pr/Makefile.in new file mode 100644 index 00000000000..b0c17f468c1 --- /dev/null +++ b/gnu/usr.bin/send-pr/Makefile.in @@ -0,0 +1,291 @@ +# Makefile for GNU send-pr. +# Copyright (C) 1993 Free Software Foundation, Inc. +# +# This file is part of GNU GNATS. +# +# GNU GNATS is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# GNU GNATS is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU GNATS; see the file COPYING. If not, write to +# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +# Start of system configuration section. + +srcdir = @srcdir@ +VPATH = $(srcdir) + +# Where the GNATS database and master configuration stuff lives. +GNATS_ROOT = @GNATS_ROOT@ + +# Email address to which people should submit bugs. +GNATS_ADDR = @GNATS_ADDR@ + +# The default release for this send-pr. +DEFAULT_RELEASE = @DEFAULT_RELEASE@ + +# The default organization for this send-pr. +DEFAULT_ORGANIZATION = @DEFAULT_ORGANIZATION@ + +# The default GNATS site for send-pr. +GNATS_SITE = @GNATS_SITE@ + +# The submitter-id for your site. +SUBMITTER = @SUBMITTER@ + +# Command line to use for mailer +MAIL_AGENT = @MAIL_AGENT@ + +# Command line to display the passwd database +PASSWD = @PASSWD@ + +# What to install +SEND_PR_INSTALL = install-norm install-categories + +CC = cc + +AR = ar +AR_FLAGS = rc + +# Set RANLIB = echo if your system doesn't have or need ranlib. +RANLIB = ranlib + +# Where to find texinfo.tex to format docn with TeX +TEXIDIR = $(srcdir)/../texinfo + +MAKEINFO = makeinfo +TEXI2DVI = texi2dvi + +INSTALL = $(srcdir)/../install.sh -c +INSTALL_PROGRAM = $(INSTALL) +INSTALL_DATA = $(INSTALL) -m 644 + +CFLAGS = -g +LDFLAGS = -g + +ECHON = @ECHON@ + +prefix = /usr/local + +exec_prefix = $(prefix) +bindir = $(exec_prefix)/bin +libdir = $(exec_prefix)/lib +tooldir = $(libdir) + +program_transform_name = + +# Edit this to be the location of your emacs lisp files. +lispdir = @LISPDIR@ + +datadir = $(prefix)/lib +mandir = $(prefix)/man +man1dir = $(mandir)/man1 +man2dir = $(mandir)/man2 +man3dir = $(mandir)/man3 +man4dir = $(mandir)/man4 +man5dir = $(mandir)/man5 +man6dir = $(mandir)/man6 +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 +man9dir = $(mandir)/man9 +infodir = $(prefix)/info +includedir = $(prefix)/include +docdir = $(datadir)/doc + +# End of system configuration section. + +VERSION = 3.2 + +SHELL = /bin/sh + +#### System configurations, if any, are inserted here. + +DISTFILES= COPYING ChangeLog Makefile.in README configure.in \ +install-sid.sh send-pr-el.in send-pr.man send-pr.texi fields.texi \ +states.texi s-usage.texi categ.texi send-pr.sh + +all: send-pr install-sid send-pr.elc send-pr.1 + +send-pr: send-pr.sh Makefile + sed -e 's,xVERSIONx,$(VERSION),' \ + -e 's,xGNATS_ROOTx,$(GNATS_ROOT),' \ + -e 's,xGNATS_ADDRx,$(GNATS_ADDR),' \ + -e 's,xGNATS_SITEx,$(GNATS_SITE),' \ + -e 's,xSUBMITTERx,$(SUBMITTER),' \ + -e 's,xECHONx,$(ECHON),' \ + -e 's,xMAIL_AGENTx,$(MAIL_AGENT),' \ + -e 's,xPASSWDx,$(PASSWD),' \ + -e 's%xDEFAULT_ORGANIZATIONx%$(DEFAULT_ORGANIZATION)%' \ + -e 's,xDEFAULT_RELEASEx,$(DEFAULT_RELEASE),' \ + -e 's,xDATADIRx,$(datadir),' $(srcdir)/send-pr.sh > $@-t + mv $@-t $@ + chmod 755 $@ + +install-sid: install-sid.sh Makefile + sed -e 's,xBINDIRx,$(bindir),g' \ + -e 's,xVERSIONx,$(VERSION),g' $(srcdir)/install-sid.sh > $@-t + mv $@-t $@ + chmod 755 $@ + +send-pr.el: send-pr-el.in Makefile + sed -e 's,xVERSIONx,$(VERSION),' \ + -e 's,xGNATS_ROOTx,$(GNATS_ROOT),' \ + -e 's,xGNATS_SITEx,$(GNATS_SITE),' \ + -e 's,xDATADIRx,$(datadir),' \ + -e 's,xDEFAULT_SUBMITTERx,$(SUBMITTER),' \ + -e 's,xDEFAULT_RELEASEx,$(DEFAULT_RELEASE),' \ + $(srcdir)/send-pr-el.in \ + > $@-t + mv $@-t $@ + +send-pr.elc: send-pr.el + -PWD=`pwd` emacs -batch -q -f batch-byte-compile send-pr.el + +install: $(SEND_PR_INSTALL) +install-tools: install-norm install-categories +install-gnats: install-norm install-gnats-dist install-categories + +install-norm all-gnats: + $(INSTALL_PROGRAM) send-pr $(bindir)/send-pr + $(INSTALL_PROGRAM) install-sid $(bindir)/install-sid + $(INSTALL_DATA) send-pr.1 $(man1dir)/send-pr.1 + $(INSTALL_DATA) send-pr.el $(lispdir)/send-pr.el + -$(INSTALL_DATA) send-pr.elc $(lispdir)/send-pr.elc + +# Install the Cygnus category list for bug reports. +install-categories: + $(INSTALL_DATA) $(srcdir)/categories $(datadir)/gnats/cygnus + +install-gnats-dist: info + $(INSTALL_DATA) $(srcdir)/COPYING $(datadir)/gnats/dist/COPYING + $(INSTALL_DATA) $(srcdir)/README $(datadir)/gnats/dist/README + sed -e 's/"DEFAULT_RELEASE") ".*"/"DEFAULT_RELEASE") "@''DEFAULT_RELEASE@"/' \ + -e 's/"SUBMITTER") ".*"/"SUBMITTER") "@''SUBMITTER@"/' \ + -e 's/"DATADIR") ".*"/"DATADIR") "@''DATADIR@"/' \ + send-pr.el > $(datadir)/gnats/dist/send-pr-el.inT + mv $(datadir)/gnats/dist/send-pr-el.inT \ + $(datadir)/gnats/dist/send-pr-el.in + sed -e 's/GNATS_ROOT=.*/GNATS_ROOT=/' \ + -e 's/SUBMITTER=.*/SUBMITTER=@''SUBMITTER@/' \ + -e 's/DEFAULT_RELEASE=.*/DEFAULT_RELEASE="@''DEFAULT_RELEASE@"/' \ + -e 's/DEFAULT_ORGANIZATION=.*/DEFAULT_ORGANIZATION=/' \ + -e 's/DATADIR=.*/DATADIR=@''DATADIR@/' \ + send-pr > $(datadir)/gnats/dist/send-pr.sh-t + mv $(datadir)/gnats/dist/send-pr.sh-t \ + $(datadir)/gnats/dist/send-pr.sh + sed -e 's/^BINDIR=.*/BINDIR=@''BINDIR@/' \ + install-sid > $(datadir)/gnats/dist/install-sid.sT + mv $(datadir)/gnats/dist/install-sid.sT \ + $(datadir)/gnats/dist/install-sid.sh + $(INSTALL_DATA) send-pr.1 $(datadir)/gnats/dist/send-pr.1 + for i in `if [ ! -f send-pr.info ];then echo $(srcdir)/;fi`send-pr.info* ; do \ + $(INSTALL_DATA) $$i $(datadir)/gnats/dist/$$i ; \ + done + $(INSTALL_DATA) $(srcdir)/send-pr.texi \ + $(datadir)/gnats/dist/send-pr.texi + $(INSTALL_DATA) $(srcdir)/s-usage.texi \ + $(datadir)/gnats/dist/s-usage.texi + $(INSTALL_DATA) $(srcdir)/categ.texi \ + $(datadir)/gnats/dist/categ.texi + $(INSTALL_DATA) $(srcdir)/fields.texi \ + $(datadir)/gnats/dist/fields.texi + $(INSTALL_DATA) $(srcdir)/states.texi \ + $(datadir)/gnats/dist/states.texi + $(INSTALL_DATA) $(srcdir)/../texinfo/texinfo.tex \ + $(datadir)/gnats/dist/texinfo.tex + @if [ `whoami` = root ] ; then \ + echo "chown gnats $(datadir)/gnats/dist" ; \ + chown gnats $(datadir)/gnats/dist ; \ + elif [ `whoami` != gnats ] ; then \ + echo "*** Warning: $(datadir)/gnats must be writable by the gnats user" ; \ + fi + +install-info: send-pr.info + for i in send-pr.info* ; do \ + $(INSTALL_DATA) $$i $(infodir)/$$i ; \ + done + +uninstall: + -rm -f $(bindir)/send-pr $(bindir)/install-sid + -rm -f $(datadir)/gnats/$(GNATS_SITE) + -[ x$$GNATS_ROOT = x ] || rm -rf $(datadir)/gnats/dist + -rmdir $(datadir)/gnats + -rm -f $(man1dir)/send-pr.1 + -rm -f $(lispdir)/send-pr.el $(lispdir)/send-pr.elc + -rm -f $(infodir)/send-pr.info* + +TAGS: + +info: send-pr.info +dvi: send-pr.dvi + +version.texi: Makefile + echo "@set VERSION $(VERSION)" > $@-t + mv $@-t $@ + +send-pr.1: Makefile + sed -e 's,xGNATS_ROOTx,$(GNATS_ROOT),g' \ + -e 's,xVERSIONx,$(VERSION),g' $(srcdir)/send-pr.man > $@-t + mv $@-t $@ + +send-pr.info: send-pr.texi version.texi fields.texi s-usage.texi categ.texi + $(MAKEINFO) -I $(srcdir) -o send-pr.info $(srcdir)/send-pr.texi + +send-pr.dvi: version.texi + $(TEXI2DVI) $(srcdir)/send-pr.texi + +# When building GNATS, this target is used to communicate information +# known only to the GNATS configuration. +gnats-build: stamp-gnats + +stamp-gnats: ../gnats/Makefile Makefile + sed -e 's,^GNATS_ROOT =.*,GNATS_ROOT = $(GNATS_ROOT),' \ + -e 's,^GNATS_ADDR =.*,GNATS_ADDR = $(GNATS_ADDR),' \ + -e 's,^GNATS_SITE =.*,GNATS_SITE = $(GNATS_SITE),' \ + -e 's,^DEFAULT_RELEASE =.*,DEFAULT_RELEASE = $(DEFAULT_RELEASE),' \ + -e 's%^DEFAULT_ORGANIZATION =.*%DEFAULT_ORGANIZATION = $(DEFAULT_ORGANIZATION)%' \ + -e 's,^SUBMITTER =.*,SUBMITTER = $(SUBMITTER),' \ + -e 's,^VERSION =.*,VERSION = $(VERSION),' \ + -e 's,^MAIL_AGENT =.*,MAIL_AGENT = $(MAIL_AGENT),' \ + -e 's,^SEND_PR_INSTALL =.*,SEND_PR_INSTALL = $(GNATS_INSTALL),' \ + Makefile > Makefile.tmp \ + && mv Makefile.tmp Makefile \ + && touch stamp-gnats + +# Clean things up. + +clean: mostlyclean + -rm -f send-pr install-sid send-pr.1 send-pr.el send-pr.elc stamp-gnats + -rm -f *.dvi + +mostlyclean: + -rm -f *.toc *.log *.vr *.fn *.cp *.tp *.ky *.pg + +distclean: clean + -rm -f Makefile config.status + -rm -rf =* ./"#"* *~* + -rm -f *.orig *.rej + +realclean: distclean + -rm -f TAGS send-pr.info* send-pr.??s version.texi + +# FIXME +dist: + echo need to do something for dist + +check: +installcheck: + +# Prevent GNU make v3 from overflowing arg limit on SysV. +.NOEXPORT: + +Makefile: $(srcdir)/Makefile.in + $(SHELL) config.status; \ + if [ -f ../gnats/Makefile ]; then cd ../gnats; $(MAKE) config-send-pr; fi diff --git a/gnu/usr.bin/send-pr/README b/gnu/usr.bin/send-pr/README new file mode 100644 index 00000000000..b479179555f --- /dev/null +++ b/gnu/usr.bin/send-pr/README @@ -0,0 +1,43 @@ + send-pr - sends bug reports to a central support site + +`send-pr' uses electronic mail to submit support questions and +software bugs to a central site. No piece of software is perfect, and +software organizations understand this `send-pr' is designed to allow +users who have problems to submit reports of these problems to sites +responsible for supporting the software in question, in a defined form +which can be read by an electronically managed database. + +`send-pr' is part of a suite of programs known collectively as GNATS, +an acronym for Problem Report Management System. GNATS consists of +several programs which, used in concert, formulate and partially +administer a database of Problem Reports, or PRs, at a central support +site. A PR goes through several states in its lifetime; GNATS tracks +the PR and all information associated with it through each state and +finally acts as an archive for PRs which have been resolved. + +The same engine can be used to submit bugs to any number of support +sites by setting up aliases for each of them; `send-pr' error-checks +each PR as it is sent to be sure that the category specified matches a +category supported by the site in question. + +`send-pr' invokes an editor on a problem report template (after trying +to fill in some fields with reasonable default values). When you exit +the editor, `send-pr' sends the completed form to the support site. +At the support site, the PR is assigned a unique number and is stored +in the GNATS database according to its category and customer-id. GNATS +automatically replies with an acknowledgement, citing the category and +the PR number. + +See the Texinfo file `send-pr.texi' or the Info file `send-pr.info' +for detailed installation and usage information. + +See the file MANIFEST for a list of the files which should have +accompanied this distribution. + +See `send-pr.texi', `send-pr.info', or the file INSTALL for the +installation procedure for `send-pr'. + + +Copyright (c) 1993, Free Software Foundation, Inc. +See the file COPYING for copyright information concerning this +distribution and all its components. diff --git a/gnu/usr.bin/send-pr/aclocal.m4 b/gnu/usr.bin/send-pr/aclocal.m4 new file mode 100644 index 00000000000..5f94d209116 --- /dev/null +++ b/gnu/usr.bin/send-pr/aclocal.m4 @@ -0,0 +1,68 @@ +define([AC_FIND_PROGRAM],dnl +[if test x$3 = x; then _PATH=$PATH; else _PATH=$3; fi +if test -z "[$]$1"; then + # Extract the first word of `$2', so it can be a program name with args. + set dummy $2; word=[$]2 + echo checking for $word + IFS="${IFS= }"; saveifs="$IFS"; IFS="${IFS}:" + for dir in $_PATH; do + test -z "$dir" && dir=. + if test -f $dir/$word; then + $1=$dir/$word + break + fi + done + IFS="$saveifs" +fi +test -n "[$]$1" && test -n "$verbose" && echo " setting $1 to [$]$1" +AC_SUBST($1)dnl +])dnl +dnl +define([AC_ECHON],dnl +[echo checking for echo -n +if test "`echo -n foo`" = foo ; then + ECHON=bsd + test -n "$verbose" && echo ' using echo -n' +elif test "`echo 'foo\c'`" = foo ; then + ECHON=sysv + test -n "$verbose" && echo ' using echo ...\\c' +else + ECHON=none + test -n "$verbose" && echo ' using plain echo' +fi])dnl +dnl +define([AC_LISPDIR],dnl +[echo checking for Emacs Lisp files +if test -n "$with_lispdir"; then + LISPDIR=${with_lispdir} +else + for f in ${prefix-/usr/local}/lib/emacs/site-lisp \ + ${prefix-/usr/local}/lib/emacs/lisp; do + if test -d $f; then + LISPDIR=$f + break + fi + done +fi +if test -z "$LISPDIR"; then +dnl # Change this default when Emacs 19 has been around for a while + LISPDIR='$(prefix)/lib/emacs/lisp' +fi +test -n "$verbose" && echo " setting LISPDIR to ${LISPDIR}" +AC_SUBST(LISPDIR)dnl +])dnl +dnl +define([AC_PASSWD],dnl +[echo checking how to access passwd database +PASSWD="cat /etc/passwd" +if test -f /bin/domainname && test -n "`/bin/domainname`"; then + if test -f /usr/bin/niscat && + /usr/bin/niscat passwd.org_dir > /dev/null 2>&1; then + PASSWD="/usr/bin/niscat passwd.org_dir" + elif test -f /usr/bin/ypcat && /usr/bin/ypcat passwd > /dev/null 2>&1; then + PASSWD="/usr/bin/ypcat passwd" + fi +fi +test -n "$verbose" && echo " setting PASSWD to ${PASSWD}" +AC_SUBST(PASSWD)dnl +])dnl diff --git a/gnu/usr.bin/send-pr/categ.texi b/gnu/usr.bin/send-pr/categ.texi new file mode 100644 index 00000000000..b02243e1a02 --- /dev/null +++ b/gnu/usr.bin/send-pr/categ.texi @@ -0,0 +1,123 @@ +@node Valid Categories +@unnumberedsec Valid Categories +@cindex valid categories +@cindex example of a list of valid categories + +@table @code +@item bfd +@sc{gnu} binary file descriptor library. + +@item bifrabulator +This one doesn't actually exist. + +@item binutils +@sc{gnu} utilities for binary files (@code{ar}, @code{nm}, @code{size}@dots{}). + +@item bison +@sc{gnu} parser generator. + +@item byacc +Free parser generator. + +@item config +Cygnus Support Software configuration and installation. + +@item cvs +Concurrent Version System. + +@item diff +@sc{gnu} @code{diff} program. + +@item doc +Documentation and manuals. + +@item emacs +@sc{gnu} Emacs editor and related functions. + +@item flex +@sc{gnu} lexical analyzer. + +@item g++ +@sc{gnu} C++ compiler. + +@item gas +@sc{gnu} assembler. + +@item gcc +@sc{gnu} C compiler. + +@item gdb +@sc{gnu} source code debugger. + +@item glob +The filename globbing functions. + +@item gprof +@sc{gnu} profiler. + +@item grep +@sc{gnu} @code{grep} program. + +@item info +@sc{gnu} @code{info} hypertext reader. + +@item ispell +@sc{gnu} spelling checker. + +@item kerberos +Kerberos authentication system. + +@item ld +@sc{gnu} linker. + +@item libc +Cygnus Support C Support Library. + +@item libg++ +@sc{gnu} C++ class library. + +@item libiberty +@sc{gnu} @samp{libiberty} library. + +@item libm +Cygnus Support C Math Library. + +@item make +@sc{gnu} @code{make} program. + +@item makeinfo +@sc{gnu} utility to build Info files from Texinfo documents. + +@item mas +@sc{gnu} Motorola syntax assembler. + +@item newlib +Cygnus Support C Support and Math Libraries. + +@item patch +@sc{gnu} bug patch program. + +@item gnats +@sc{gnu} Problem Report Management System. + +@item rcs +Revision Control System. + +@item readline +@sc{gnu} @code{readline} library. + +@item send-pr +@sc{gnu} Problem Report submitting program. + +@item test +Category to use when testing @code{send-pr}. + +@item texindex +@sc{gnu} documentation indexing utility. + +@item texinfo +@sc{gnu} documentation macros. + +@item other +Anything which is not covered by the above categories. +@end table diff --git a/gnu/usr.bin/send-pr/configure b/gnu/usr.bin/send-pr/configure new file mode 100755 index 00000000000..c52bf141010 --- /dev/null +++ b/gnu/usr.bin/send-pr/configure @@ -0,0 +1,363 @@ +#!/bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf. +# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +# Usage: configure [--srcdir=DIR] [--host=HOST] [--gas] [--nfp] +# [--prefix=PREFIX] [--exec-prefix=PREFIX] [--with-PACKAGE[=VALUE]] +# Ignores all args except --srcdir, --prefix, --exec-prefix, and +# --with-PACKAGE[=VALUE] unless this script has special code to handle it. + +for arg +do + # Handle --exec-prefix with a space before the argument. + if test x$next_exec_prefix = xyes; then exec_prefix=$arg; next_exec_prefix= + # Handle --host with a space before the argument. + elif test x$next_host = xyes; then next_host= + # Handle --prefix with a space before the argument. + elif test x$next_prefix = xyes; then prefix=$arg; next_prefix= + # Handle --srcdir with a space before the argument. + elif test x$next_srcdir = xyes; then srcdir=$arg; next_srcdir= + else + case $arg in + # For backward compatibility, recognize -exec-prefix and --exec_prefix. + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*) + exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;; + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e) + next_exec_prefix=yes ;; + + -gas | --gas | --ga | --g) ;; + + -host=* | --host=* | --hos=* | --ho=* | --h=*) ;; + -host | --host | --hos | --ho | --h) + next_host=yes ;; + + -nfp | --nfp | --nf) ;; + + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + next_prefix=yes ;; + + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*) + srcdir=`echo $arg | sed 's/[-a-z_]*=//'` ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s) + next_srcdir=yes ;; + + -with-* | --with-*) + package=`echo $arg|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that aren't valid shell variable names. + if test -n "`echo $package| sed 's/[-a-zA-Z0-9_]//g'`"; then + echo "configure: $package: invalid package name" >&2; exit 1 + fi + package=`echo $package| sed 's/-/_/g'` + case "$arg" in + *=*) val="`echo $arg|sed 's/[^=]*=//'`" ;; + *) val=1 ;; + esac + eval "with_$package='$val'" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb | --ver | --ve | --v) + verbose=yes ;; + + *) ;; + esac + fi +done + +trap 'rm -fr conftest* confdefs* core; exit 1' 1 3 15 +trap 'rm -f confdefs*' 0 + +# NLS nuisances. +# These must not be set unconditionally because not all systems understand +# e.g. LANG=C (notably SCO). +if test "${LC_ALL+set}" = 'set' ; then LC_ALL=C; export LC_ALL; fi +if test "${LANG+set}" = 'set' ; then LANG=C; export LANG; fi + +rm -f conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h +compile='${CC-cc} $CFLAGS conftest.c -o conftest $LIBS >/dev/null 2>&1' + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +unique_file=send-pr.sh + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + srcdirdefaulted=yes + # Try the directory containing this script, then `..'. + prog=$0 + confdir=`echo $prog|sed 's%/[^/][^/]*$%%'` + test "X$confdir" = "X$prog" && confdir=. + srcdir=$confdir + if test ! -r $srcdir/$unique_file; then + srcdir=.. + fi +fi +if test ! -r $srcdir/$unique_file; then + if test x$srcdirdefaulted = xyes; then + echo "configure: Can not find sources in \`${confdir}' or \`..'." 1>&2 + else + echo "configure: Can not find sources in \`${srcdir}'." 1>&2 + fi + exit 1 +fi +# Preserve a srcdir of `.' to avoid automounter screwups with pwd. +# But we can't avoid them for `..', to make subdirectories work. +case $srcdir in + .|/*|~*) ;; + *) srcdir=`cd $srcdir; pwd` ;; # Make relative path absolute. +esac + + +# Save the original args to write them into config.status later. +configure_args="$*" + + + +echo checking for echo -n +if test "`echo -n foo`" = foo ; then + ECHON=bsd + test -n "$verbose" && echo ' using echo -n' +elif test "`echo 'foo\c'`" = foo ; then + ECHON=sysv + test -n "$verbose" && echo ' using echo ...\\c' +else + ECHON=none + test -n "$verbose" && echo ' using plain echo' +fi +echo checking for Emacs Lisp files +if test -n "$with_lispdir"; then + LISPDIR=${with_lispdir} +else + for f in ${prefix}/lib/emacs/site-lisp ${prefix}/lib/emacs/lisp; do + if test -d $f; then + LISPDIR=$f + break + fi + done +fi +if test -z "$LISPDIR"; then + LISPDIR=${prefix-/usr/local}/lib/emacs/lisp +fi +test -n "$verbose" && echo " setting LISPDIR to ${LISPDIR}" + +echo checking how to access passwd database +PASSWD="cat /etc/passwd" +if test -f /bin/domainname && test -n "`/bin/domainname`"; then + if test -f /usr/bin/niscat && + /usr/bin/niscat passwd.org_dir > /dev/null 2>&1; then + PASSWD="/usr/bin/niscat passwd.org_dir" + elif test -f /usr/bin/ypcat && /usr/bin/ypcat passwd > /dev/null 2>&1; then + PASSWD="/usr/bin/ypcat passwd" + fi +fi +test -n "$verbose" && echo " setting PASSWD to ${PASSWD}" + + +GNATS_SITE=sun-lamp +SUBMITTER=net +GNATS_ADDR=gnats-bugs@sun-lamp.cs.berkeley.edu +DEFAULT_ORGANIZATION= + +if test x/usr/lib:/usr/sbin:/usr/ucblib = x; then _PATH=$PATH; else _PATH=/usr/lib:/usr/sbin:/usr/ucblib; fi +if test -z "$SENDMAIL"; then + # Extract the first word of `sendmail', so it can be a program name with args. + set dummy sendmail; word=$2 + echo checking for $word + IFS="${IFS= }"; saveifs="$IFS"; IFS="${IFS}:" + for dir in $_PATH; do + test -z "$dir" && dir=. + if test -f $dir/$word; then + SENDMAIL=$dir/$word + break + fi + done + IFS="$saveifs" +fi +test -n "$SENDMAIL" && test -n "$verbose" && echo " setting SENDMAIL to $SENDMAIL" + +if test -n "$SENDMAIL" ; then + MAIL_AGENT="$SENDMAIL -oi -t" +else + MAIL_AGENT=false +fi + +if test -f ${srcdir}/../release-info ; then + DEFAULT_RELEASE=`. ${srcdir}/../release-info ; echo ${RELEASE_TAG}` +else + DEFAULT_RELEASE='gnats-$(VERSION)' +fi + +# Get GNATS_ROOT from environment, if possible + +if test -n "$with_gnats_root"; then + GNATS_ROOT=$with_gnats_root +fi + +if test -z "${GNATS_ROOT}"; then + GNATS_ROOT=${prefix-/usr/local}/lib/gnats/gnats-root + _PR=${GNATS_ROOT} +fi + +if test x = x; then _PATH=$PATH; else _PATH=; fi +if test -z "$SEND_PR"; then + # Extract the first word of `send-pr', so it can be a program name with args. + set dummy send-pr; word=$2 + echo checking for $word + IFS="${IFS= }"; saveifs="$IFS"; IFS="${IFS}:" + for dir in $_PATH; do + test -z "$dir" && dir=. + if test -f $dir/$word; then + SEND_PR=$dir/$word + break + fi + done + IFS="$saveifs" +fi +test -n "$SEND_PR" && test -n "$verbose" && echo " setting SEND_PR to $SEND_PR" + +if test -n "${SEND_PR}"; then + test -n "${_PR}" && eval `grep '^GNATS_ROOT=' ${SEND_PR}` + eval `grep '^SUBMITTER=' ${SEND_PR}` + eval `egrep '^GNATS_(ADDR|SITE)=' ${SEND_PR}` + eval `egrep '^DEFAULT_ORGANIZATION=' ${SEND_PR}` +fi + +# If the config file exists, it may have more recent info than send-pr +echo checking for GNATS configuration file +test -f ${GNATS_ROOT}/gnats-adm/config && . ${GNATS_ROOT}/gnats-adm/config + +if test -n "${_PR}" -a "${GNATS_ROOT}" = "${_PR}"; then + GNATS_ROOT= +fi + +if test -n "$verbose"; then + echo " setting GNATS_ROOT to $GNATS_ROOT" + echo " setting GNATS_SITE to $GNATS_SITE" + echo " setting GNATS_ADDR to $GNATS_ADDR" + echo " setting SUBMITTER to $SUBMITTER" + echo " setting DEFAULT_RELEASE to $DEFAULT_RELEASE" + echo " setting DEFAULT_ORGANIZATION to $DEFAULT_ORGANIZATION" + echo " setting MAIL_AGENT to $MAIL_AGENT" +fi + +# Set default prefixes. +if test -n "$prefix"; then + test -z "$exec_prefix" && exec_prefix='${prefix}' + prsub="s%^prefix\\([ ]*\\)=\\([ ]*\\).*$%prefix\\1=\\2$prefix%" +fi +if test -n "$exec_prefix"; then + prsub="$prsub +s%^exec_prefix\\([ ]*\\)=\\([ ]*\\).*$%exec_prefix\\1=\\2$exec_prefix%" +fi +# Quote sed substitution magic chars in DEFS. +cat >conftest.def <<EOF +$DEFS +EOF +escape_ampersand_and_backslash='s%[&\\]%\\&%g' +DEFS=`sed "$escape_ampersand_and_backslash" <conftest.def` +rm -f conftest.def +# Substitute for predefined variables. + +trap 'rm -f config.status; exit 1' 1 3 15 +echo creating config.status +rm -f config.status +cat > config.status <<EOF +#!/bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $configure_args + +for arg +do + case "\$arg" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo running \${CONFIG_SHELL-/bin/sh} $0 $configure_args + exec \${CONFIG_SHELL-/bin/sh} $0 $configure_args ;; + *) echo "Usage: config.status --recheck" 2>&1; exit 1 ;; + esac +done + +trap 'rm -f Makefile; exit 1' 1 3 15 +GNATS_ROOT='$GNATS_ROOT' +GNATS_ADDR='$GNATS_ADDR' +GNATS_SITE='$GNATS_SITE' +DEFAULT_RELEASE='$DEFAULT_RELEASE' +DEFAULT_ORGANIZATION='$DEFAULT_ORGANIZATION' +MAIL_AGENT='$MAIL_AGENT' +SUBMITTER='$SUBMITTER' +ECHON='$ECHON' +LISPDIR='$LISPDIR' +PASSWD='$PASSWD' +SENDMAIL='$SENDMAIL' +SEND_PR='$SEND_PR' +LIBS='$LIBS' +srcdir='$srcdir' +DEFS='$DEFS' +prefix='$prefix' +exec_prefix='$exec_prefix' +prsub='$prsub' +extrasub='$extrasub' +EOF +cat >> config.status <<\EOF + +top_srcdir=$srcdir + +CONFIG_FILES=${CONFIG_FILES-"Makefile"} +for file in .. ${CONFIG_FILES}; do if test "x$file" != x..; then + srcdir=$top_srcdir + # Remove last slash and all that follows it. Not all systems have dirname. + dir=`echo $file|sed 's%/[^/][^/]*$%%'` + if test "$dir" != "$file"; then + test "$top_srcdir" != . && srcdir=$top_srcdir/$dir + test ! -d $dir && mkdir $dir + fi + echo creating $file + rm -f $file + echo "# Generated automatically from `echo $file|sed 's|.*/||'`.in by configure." > $file + sed -e " +$prsub +$extrasub +s%@GNATS_ROOT@%$GNATS_ROOT%g +s%@GNATS_ADDR@%$GNATS_ADDR%g +s%@GNATS_SITE@%$GNATS_SITE%g +s%@DEFAULT_RELEASE@%$DEFAULT_RELEASE%g +s%@DEFAULT_ORGANIZATION@%$DEFAULT_ORGANIZATION%g +s%@MAIL_AGENT@%$MAIL_AGENT%g +s%@SUBMITTER@%$SUBMITTER%g +s%@ECHON@%$ECHON%g +s%@LISPDIR@%$LISPDIR%g +s%@PASSWD@%$PASSWD%g +s%@SENDMAIL@%$SENDMAIL%g +s%@SEND_PR@%$SEND_PR%g +s%@LIBS@%$LIBS%g +s%@srcdir@%$srcdir%g +s%@DEFS@%$DEFS% +" $top_srcdir/${file}.in >> $file +fi; done + + +exit 0 +EOF +chmod +x config.status +${CONFIG_SHELL-/bin/sh} config.status + diff --git a/gnu/usr.bin/send-pr/configure.in b/gnu/usr.bin/send-pr/configure.in new file mode 100644 index 00000000000..3c95af2d260 --- /dev/null +++ b/gnu/usr.bin/send-pr/configure.in @@ -0,0 +1,71 @@ +AC_INIT(send-pr.sh) + +AC_SUBST(GNATS_ROOT)dnl +AC_SUBST(GNATS_ADDR)dnl +AC_SUBST(GNATS_SITE)dnl +AC_SUBST(DEFAULT_RELEASE)dnl +AC_SUBST(DEFAULT_ORGANIZATION)dnl +AC_SUBST(MAIL_AGENT)dnl +AC_SUBST(SUBMITTER)dnl +AC_SUBST(ECHON)dnl + +AC_ECHON +AC_LISPDIR +AC_PASSWD + +GNATS_SITE=cygnus +SUBMITTER=unknown +GNATS_ADDR=bugs@cygnus.com +DEFAULT_ORGANIZATION= + +AC_FIND_PROGRAM(SENDMAIL,sendmail,/usr/lib:/usr/sbin:/usr/ucblib) +if test -n "$SENDMAIL" ; then + MAIL_AGENT="$SENDMAIL -oi -t" +else + MAIL_AGENT=false +fi + +if test -f ${srcdir}/../release-info ; then + DEFAULT_RELEASE=`. ${srcdir}/../release-info ; echo ${RELEASE_TAG}` +else + DEFAULT_RELEASE='gnats-$(VERSION)' +fi + +# Get GNATS_ROOT from environment, if possible + +if test -n "$with_gnats_root"; then + GNATS_ROOT=$with_gnats_root +fi + +if test -z "${GNATS_ROOT}"; then + GNATS_ROOT=${prefix-/usr/local}/lib/gnats/gnats-root + _PR=${GNATS_ROOT} +fi + +AC_FIND_PROGRAM(SEND_PR,send-pr) +if test -n "${SEND_PR}"; then + test -n "${_PR}" && eval `grep '^GNATS_ROOT=' ${SEND_PR}` + eval `grep '^SUBMITTER=' ${SEND_PR}` + eval `egrep '^GNATS_(ADDR|SITE)=' ${SEND_PR}` + eval `egrep '^DEFAULT_ORGANIZATION=' ${SEND_PR}` +fi + +# If the config file exists, it may have more recent info than send-pr +echo checking for GNATS configuration file +test -f ${GNATS_ROOT}/gnats-adm/config && . ${GNATS_ROOT}/gnats-adm/config + +if test -n "${_PR}" -a "${GNATS_ROOT}" = "${_PR}"; then + GNATS_ROOT= +fi + +if test -n "$verbose"; then + echo " setting GNATS_ROOT to $GNATS_ROOT" + echo " setting GNATS_SITE to $GNATS_SITE" + echo " setting GNATS_ADDR to $GNATS_ADDR" + echo " setting SUBMITTER to $SUBMITTER" + echo " setting DEFAULT_RELEASE to $DEFAULT_RELEASE" + echo " setting DEFAULT_ORGANIZATION to $DEFAULT_ORGANIZATION" + echo " setting MAIL_AGENT to $MAIL_AGENT" +fi + +AC_OUTPUT(Makefile) diff --git a/gnu/usr.bin/send-pr/fields.texi b/gnu/usr.bin/send-pr/fields.texi new file mode 100644 index 00000000000..e8921d625c8 --- /dev/null +++ b/gnu/usr.bin/send-pr/fields.texi @@ -0,0 +1,518 @@ +@node Fields +@section Problem Report format +@cindex Problem Report format +@cindex format +@cindex database similarities +@cindex fields + +The format of a PR is designed to reflect the nature of @sc{gnats} as a +database. Information is arranged into @dfn{fields}, and kept in +individual records (Problem Reports). + +Problem Report fields are denoted by a keyword which begins with +@samp{>} and ends with @samp{:}, as in @samp{>Confidential:}. Fields +belong to one of three data types: + +@table @asis +@cindex Problem Report data types +@cindex @emph{Enumerated} data types +@item @sc{Enumerated} +One of a specific set of values, which vary according to the field. The +value for each keyword must be on the same line as the keyword. These +values are not configurable (yet). + +@ifset SENDPR +For each @sc{Enumerated} keyword, the possible choices are listed in the +@code{send-pr} template as a comment. +@end ifset +The following fields are @sc{Enumerated} format; see the descriptions of +fields below for explanations of each field in detail: + +@smallexample +@group +>Confidential: >Severity: >Priority: +>Class: >State: >Number: +@end group +@end smallexample + +@cindex @emph{Text} data types +@item @sc{Text} +One single line of text which must begin and end on the same line (i.e., +before a newline) as the keyword. See the descriptions of fields below +for explanations of each field in detail. The following fields are +@sc{Text} format: + +@smallexample +@group +>Submitter-Id: >Originator: >Synopsis: +>Category: >Release: >Responsible: +>Arrival-Date: +@end group +@end smallexample + +@cindex @emph{MultiText} data types +@item @sc{MultiText} +Text of any length may occur in this field. @sc{MultiText} may span +multiple lines and may also include blank lines. A @sc{MultiText} field +ends only when another keyword appears. See the descriptions of fields +below for explanations of each field in detail. + +The following fields are @sc{MultiText} format: + +@smallexample +@group +>Organization: >Environment: >Description: +>How-To-Repeat: >Fix: >Audit-Trail: +>Unformatted: +@end group +@end smallexample + +@end table + +A Problem Report contains two different types of fields: @dfn{Mail +Header} fields, which are used by the mail handler for delivery, and +@dfn{Problem Report} fields, which contain information relevant to the +Problem Report and its submitter. A Problem Report is essentially a +specially formatted electronic mail message. + +@ifclear SENDPR +@subheading Example Problem Report +@end ifclear + +The following is an example Problem Report. Mail headers are at the +top, followed by @sc{gnats} fields, which begin with @samp{>} and end +with @samp{:}. The @samp{Subject:} line in the mail header and the +@samp{>Synopsis:} field are usually duplicates of each other. + +@cindex sample Problem Report +@cindex example Problem Report +@cindex Problem Report template +@cartouche +@smallexample +@group +Message-Id: @var{message-id} +Date: @var{date} +From: @var{address} +Reply-To: @var{address} +To: @var{bug-address} +Subject: @var{subject} + +>Number: @var{gnats-id} +>Category: @var{category} +>Synopsis: @var{synopsis} +>Confidential: yes @emph{or} no +>Severity: critical, serious, @emph{or} non-critical +>Priority: high, medium @emph{or} low +>Responsible: @var{responsible} +>State: open, analyzed, suspended, feedback, @emph{or} closed +>Class: sw-bug, doc-bug, change-request, support, +@ifset SENDPR +@emph{or} duplicate +@end ifset +@ifclear SENDPR +duplicate, @emph{or} mistaken +@end ifclear +>Submitter-Id: @var{submitter-id} +>Arrival-Date: @var{date} +>Originator: @var{name} +>Organization: @var{organization} +>Release: @var{release} +>Environment: + @var{environment} +>Description: + @var{description} +>How-To-Repeat: + @var{how-to-repeat} +>Fix: + @var{fix} +>Audit-Trail: +@var{appended-messages@dots{}} +State-Changed-From-To: @var{from}-@var{to} +State-Changed-When: @var{date} +State-Changed-Why: + @var{reason} +Responsible-Changed-From-To: @var{from}-@var{to} +Responsible-Changed-When: @var{date} +Responsible-Changed-Why: + @var{reason} +>Unformatted: + @var{miscellaneous} +@end group +@end smallexample +@end cartouche + +@menu +* Mail header fields:: +* Problem Report fields:: +@end menu + +@c ---------------------- +@node Mail header fields +@subsection Mail header fields +@cindex mail header fields +@cindex Internet standard RFC-822 + +A Problem Report may contain any mail header field described in the +Internet standard RFC-822. However, only the fields which identify the +sender and the subject are required by @code{send-pr}: + +@table @code +@cindex @code{To:} header +@item To: +The preconfigured mail address for the Support Site where the PR is to +be sent, automatically supplied by @code{send-pr}. + +@cindex @code{Subject:} header +@item Subject: +A terse description of the problem. This field normally contains the +same information as the @samp{>Synopsis:} field. + +@cindex @code{From:} header +@item From: +Usually supplied automatically by the originator's mailer; should +contain the originator's electronic mail address. + +@cindex @code{Reply-To:} header +@item Reply-To: +A return address to which electronic replies can be sent; in most cases, +the same address as the @code{From:} field. +@end table + +@ifclear SENDPR +@cindex @code{Received-By:} headers +One of the configurable options for @sc{gnats} is whether or not to +retain @w{@samp{Received-By:}} headers, which often consume a lot of +space and are not often used. @xref{Local configuration,,Changing your +local configuration}. +@end ifclear + +@c ---------------------- +@node Problem Report fields +@subsection Problem Report fields +@cindex GNATS database fields +@cindex field format + +@c FIXME - this node is loooooooooooooooong... + +@subheading Field descriptions + +The following fields are present whenever a PR is submitted via the +program @code{send-pr}. @sc{gnats} adds additional fields when the PR +arrives at the Support Site; explanations of these follow this list. + +@cindex fields - list +@cindex GNATS fields - list +@table @code +@item >Submitter-Id: +@cindex @code{Submitter-Id} field +@cindex @code{>Submitter-Id:} +(@sc{Text}) A unique identification code assigned by the Support Site. +It is used to identify all Problem Reports coming from a particular +site. (Submitters without a value for this field can invoke +@code{send-pr} with the @samp{--request-id} option to apply for one from +the support organization. Problem Reports from those not affiliated +with the support organization should use the default value of @samp{net} +for this field.) + +@item >Originator: +@cindex @code{Originator} field +@cindex @code{>Originator:} +(@sc{Text}) Originator's real name. The default is the value of the +originator's environment variable @code{NAME}. + +@item >Organization: +@cindex @code{>Organization:} +@cindex @code{Organization} field +(@sc{MultiText}) The originator's organization. The default value is +set with the variable @w{@code{DEFAULT_ORGANIZATION}} in the +@ifclear SENDPR +@file{config} file (@pxref{config,,The @code{config} file}). +@end ifclear +@ifset SENDPR +@code{send-pr} shell script. +@end ifset + +@item >Confidential: +@cindex @code{Confidential} field +@cindex @code{>Confidential:} +@cindex confidentiality in PRs +@cindex PR confidentiality +(@sc{Enumerated}) Use of this field depends on the originator's +relationship with the support organization; contractual agreements often +have provisions for preserving confidentiality. Conversely, a lack of a +contract often means that any data provided will not be considered +confidential. Submitters should be advised to contact the support +organization directly if this is an issue. + +If the originator's relationship to the support organization provides +for confidentiality, then if the value of this field is @samp{yes} the +support organization treats the PR as confidential; any code samples +provided are not made publicly available (e.g., in regression test +suites). The default value is @samp{yes}. + +@item >Synopsis: +@cindex @code{Synopsis} field +@cindex @code{>Synopsis:} +(@sc{Text}) One-line summary of the problem. @w{@code{send-pr}} copies +this information to the @samp{Subject:} line when you submit a Problem +Report. + +@item >Severity: +@cindex @code{Severity} field +@cindex @code{>Severity:} +(@sc{Enumerated}) The severity of the problem. Accepted values include: + +@table @code +@cindex @emph{critical} severity problems +@item critical +The product, component or concept is completely non-operational or some +essential functionality is missing. No workaround is known. + +@cindex @emph{serious} severity problems +@item serious +The product, component or concept is not working properly or significant +functionality is missing. Problems that would otherwise be considered +@samp{critical} are rated @samp{serious} when a workaround is known. + +@cindex @emph{non-critical} severity problems +@item non-critical +The product, component or concept is working in general, but lacks +features, has irritating behavior, does something wrong, or doesn't +match its documentation. +@end table +The default value is @samp{serious}. +@sp 1 + +@item >Priority: +@cindex @code{Priority} field +@cindex @code{>Priority:} +(@sc{Enumerated}) How soon the originator requires a solution. Accepted +values include: + +@table @code +@cindex @emph{high} priority problems +@item high +A solution is needed as soon as possible. + +@cindex @emph{medium} priority problems +@item medium +The problem should be solved in the next release. + +@cindex @emph{low} priority problems +@item low +The problem should be solved in a future release. +@end table +@noindent +The default value is @samp{medium}. +@sp 1 + +@item >Category: +@cindex @code{Category} field +@cindex @code{>Category:} +(@sc{Text}) The name of the product, component or concept where +the problem lies. The values for this field are defined by the Support +Site. +@ifclear SENDPR +@xref{categories,,The @code{categories} file}, for details. +@end ifclear + +@item >Class: +@cindex @code{Class} field +@cindex @code{>Class:} +(@sc{Enumerated}) The class of a problem can be one of the following: + +@table @code +@cindex @emph{sw-bug} class +@item sw-bug +A general product problem. (@samp{sw} stands for ``software''.) + +@cindex @emph{doc-bug} class +@item doc-bug +A problem with the documentation. + +@cindex @emph{change-request} class +@item change-request +A request for a change in behavior, etc. + +@cindex @emph{support} class +@item support +A support problem or question. + +@cindex @emph{duplicate} class +@item duplicate (@var{pr-number}) +Duplicate PR. @var{pr-number} should be the number of the original PR. + +@ifclear SENDPR +@cindex @emph{mistaken} class +@item mistaken +No problem, user error or misunderstanding. This value is valid only at +the Support Site. +@end ifclear +@end table + +@noindent +The default is @samp{sw-bug}. +@sp 1 + +@item >Release: +@cindex @code{Release} field +@cindex @code{>Release:} +(@sc{Text}) Release or version number of the product, component or +concept. + +@item >Environment: +@cindex @code{Environment} field +@cindex @code{>Environment:} +(@sc{MultiText}) Description of the environment where the problem occured: +machine architecture, operating system, host and target types, +libraries, pathnames, etc. + +@item >Description: +@cindex @code{Description} field +@cindex @code{>Description:} +(@sc{MultiText}) Precise description of the problem. + +@item >How-To-Repeat: +@cindex @code{How-To-Repeat} field +@cindex @code{>How-To-Repeat:} +(@sc{MultiText}) Example code, input, or activities to reproduce the +problem. The support organization uses example code both to reproduce +the problem and to test whether the problem is fixed. Include all +preconditions, inputs, outputs, conditions after the problem, and +symptoms. Any additional important information should be included. +Include all the details that would be necessary for someone else to +recreate the problem reported, however obvious. Sometimes seemingly +arbitrary or obvious information can point the way toward a solution. +See also @ref{Helpful hints,,Helpful hints}. + +@item >Fix: +@cindex @code{Fix} field +@cindex @code{>Fix:} +(@sc{MultiText}) A description of a solution to the problem, or a patch +which solves the problem. (This field is most often filled in at the +Support Site; we provide it to the submitter in case she has solved the +problem.) + +@end table + +@noindent +@sc{gnats} adds the following fields when the PR arrives at the Support +Site: + +@table @code +@cindex @code{Number} field +@cindex @code{>Number:} +@item >Number: +(@sc{Enumerated}) The incremental identification number for this PR. +@ifclear SENDPR +This is included in the automated reply to the submitter (if that +feature of @sc{gnats} is activated; @pxref{Local configuration,,Changing +your local configuration}). It is also included in the copy of the PR +that is sent to the maintainer. +@end ifclear + +The @samp{>Number:} field is often paired with the @samp{>Category:} +field as + +@smallexample +@var{category}/@var{number} +@end smallexample + +@noindent +in subsequent email messages. This is for historical reasons, as well +as because Problem Reports are stored in subdirectories which are named +by category. + +@cindex @code{State} field +@cindex @code{>State:} +@item >State: +(@sc{Enumerated}) The current state of the PR. Accepted values are: + +@table @code +@item open +The PR has been filed and the responsible person notified. + +@item analyzed +The responsible person has analyzed the problem. + +@item feedback +The problem has been solved, and the originator has been given a patch +or other fix. + +@item closed +The changes have been integrated, documented, and tested, and the +originator has confirmed that the solution works. + +@item suspended +Work on the problem has been postponed. +@end table + +@noindent +The initial state of a PR is @samp{open}. @xref{States,,States of +Problem Reports}. + +@cindex @code{Responsible} field +@cindex @code{>Responsible:} +@item >Responsible: +(@sc{Text}) The person responsible for this category. +@ifclear SENDPR +@sc{gnats} retrieves this information from the @file{categories} file +(@pxref{categories,,The @code{categories} file}). +@end ifclear + +@item >Arrival-Date: +@cindex @code{>Arrival-Date:} +@cindex @code{Arrival-Date} field +(@sc{Text}) The time that this PR was received by @sc{gnats}. The date +is provided automatically by @sc{gnats}. + +@item >Audit-Trail: +@cindex @code{>Audit-Trail:} +@cindex @code{Audit-Trail} field +(@sc{MultiText}) Tracks related electronic mail as well as changes in +the @samp{>State:} and @samp{>Responsible:} fields with the sub-fields: + +@table @code +@cindex @code{State-Changed-<From>-<To>:} in @code{>Audit-Trail:} +@item @w{State-Changed-<From>-<To>: @var{oldstate}>-<@var{newstate}} +The old and new @samp{>State:} field values. + +@cindex @code{Responsible-Changed-<From>-<To>:} in @code{>Audit-Trail:} +@item @w{Responsible-Changed-<From>-<To>: @var{oldresp}>-<@var{newresp}} +The old and new @samp{>Responsible:} field values. + +@cindex @code{State-Changed-By:} in @code{>Audit-Trail:} +@cindex @code{Responsible-Changed-By:} in @code{>Audit-Trail:} +@item State-Changed-By: @var{name} +@itemx Responsible-Changed-By: @var{name} +The name of the maintainer who effected the change. + +@cindex @code{State-Changed-When:} in @code{>Audit-Trail:} +@cindex @code{Responsible-Changed-When:} in @code{>Audit-Trail:} +@item State-Changed-When: @var{timestamp} +@itemx Responsible-Changed-When: @var{timestamp} +The time the change was made. + +@cindex @code{State-Changed-Why:} in @code{>Audit-Trail:} +@cindex @code{Responsible-Changed-Why:} in @code{>Audit-Trail:} +@item State-Changed-Why: @var{reason@dots{}} +@itemx Responsible-Changed-Why: @var{reason@dots{}} +The reason for the change. +@end table + +@noindent +@cindex subsequent mail +@cindex other mail +@cindex appending PRs +@cindex saving related mail +@cindex related mail +The @samp{>Audit-Trail:} field also contains any mail messages received +by @sc{gnats} related to this PR, in the order received. + +@item >Unformatted: +@cindex @code{>Unformatted:} +@cindex @code{Unformatted} field +(@sc{MultiText}) Any random text found outside the fields in the +original Problem Report. +@end table + diff --git a/gnu/usr.bin/send-pr/install-sid.sh b/gnu/usr.bin/send-pr/install-sid.sh index cff74353fb6..3478c2ac542 100644 --- a/gnu/usr.bin/send-pr/install-sid.sh +++ b/gnu/usr.bin/send-pr/install-sid.sh @@ -23,9 +23,9 @@ COMMAND=`echo $0 | sed -e 's,.*/,,g'` USAGE="Usage: $COMMAND [--install-dir=prefix] [--help] [--version] submitter-id" -VERSION=3.01.6 +VERSION=xVERSIONx -BINDIR=/usr/bin +BINDIR=xBINDIRx SUBMITTER= TEMP=/tmp/sp$$ diff --git a/gnu/usr.bin/send-pr/s-usage.texi b/gnu/usr.bin/send-pr/s-usage.texi new file mode 100644 index 00000000000..06fefee5cd7 --- /dev/null +++ b/gnu/usr.bin/send-pr/s-usage.texi @@ -0,0 +1,519 @@ +@c This is the usage section for send-pr. It is called as +@c chapter (Invoking send-pr) by send-pr.texi, and also as +@c section (Submitting Problem Reports) by gnats.texi (chapter/section +@c identifiers are adjusted accordingly) + +@c FIXME! This still seems jumbled... + +You can invoke @code{send-pr} from a shell prompt or from within +@sc{gnu} Emacs using @w{@samp{M-x send-pr}}. + +@menu +* using send-pr:: Creating new Problem Reports +* send-pr in Emacs:: Using send-pr from within Emacs +* send-pr from the shell:: Invoking send-pr from the shell +* Helpful hints:: +@end menu + +@node using send-pr +@section Creating new Problem Reports + +@c FIXME - this is a long node +Invoking @code{send-pr} presents a PR @dfn{template} with a number of +fields already filled in. Complete the template as thoroughly as +possible to make a useful bug report. Submit only one bug with each PR. + +@cindex template +A template consists of three sections: + +@table @dfn +@item Comments +The top several lines of a blank template consist of a series of +comments that provide some basic instructions for completing the Problem +Report, as well as a list of valid entries for the @samp{>Category:} +field. These comments are all preceded by the string @samp{SEND-PR:} +and are erased automatically when the PR is submitted. The +instructional comments within @samp{<} and @samp{>} are also removed. +(Only these comments are removed; lines you provide that happen to have +those characters in them, such as examples of shell-level redirection, +are not affected.) + +@item Mail Header +@code{send-pr} creates a standard mail header. @code{send-pr} completes +all fields except the @samp{Subject:} line with default values. +(@xref{Fields,,Problem Report format}.) + +@item @sc{gnats} fields +These are the informational fields that @sc{gnats} uses to route your +Problem Report to the responsible party for further action. They should +be filled out as completely as possible. (@xref{Fields,,Problem Report +format}. Also see @ref{Helpful hints,,Helpful hints}.) +@end table + +@ifset SENDPR +@noindent +For examples of a Problem Report template and complete Problem Report, +see @ref{An Example}. +@end ifset + +The default template contains your preconfigured @samp{>Submitter-Id:}. +@code{send-pr} attempts to determine values for the @samp{>Originator:} +and @samp{>Organization:} fields (@pxref{Fields,,Problem Report +format}). @code{send-pr} also attempts to find out some information +about your system and architecture, and places this information in the +@samp{>Environment:} field if it finds any. + +You may submit problem reports to different Support Sites from the +default site by specifying the alternate site when you invoke +@code{send-pr}. Each @code{site} has its own list of categories for +which it accepts Problem Reports. +@c FIXME! This should go in.. +@c For a list of sites to whom @code{send-pr} is configured to send +@c Problem Reports, type @w{@samp{send-pr -S}}. +@ifset SENDPR +(@xref{default site,,Setting a default @var{site}}.) +@end ifset + +@code{send-pr} also provides the mail header section of the template +with default values in the @samp{To:}, @samp{From:}, and +@samp{Reply-To:} fields. The @samp{Subject:} field is empty. + +The template begins with a comment section: + +@cindex template comment section +@cindex comment section in the PR template +@smallexample +@group +SEND-PR: -*- send-pr -*- +SEND-PR: Lines starting with `SEND-PR' will be removed +SEND-PR: automatically as well as all comments (the text +SEND-PR: below enclosed in `<' and `>'). +SEND-PR: +SEND-PR: Please consult the document `Reporting Problems +SEND-PR: Using send-pr' if you are not sure how to fill out +SEND-PR: a problem report. +SEND-PR: +SEND-PR: Choose from the following categories: +@end group +@end smallexample + +@noindent +and also contains a list of valid @code{>Category:} values for the +Support Site to whom you are submitting this Problem Report. One (and +only one) of these values should be placed in the @code{>Category:} +field. +@ifset SENDPR +A complete sample bug report, from template to completed PR, is shown in +@ref{An Example}. For a complete list of valid categories, type +@w{@samp{send-pr -L}} at your prompt. @xref{Valid Categories,,Valid +Categories}, for a sample list of categories, . +@end ifset + +@c FIXME.. this sounds awkward +The mail header is just below the comment section. Fill out the +@samp{Subject:} field, if it is not already completed using the value of +@samp{>Synopsis:}. The other mail header fields contain default values. + +@cindex mail header section +@smallexample +@group +To: @var{support-site} +Subject: @emph{complete this field} +From: @var{your-login}@@@var{your-site} +Reply-To: @var{your-login}@@@var{your-site} +X-send-pr-version: send-pr @value{VERSION} +@end group +@end smallexample + +@noindent +where @var{support-site} is an alias for the Support Site you wish to +submit this PR to. + +The rest of the template contains @sc{gnats} fields. Each field is +either automatically completed with valid information (such as your +@samp{>Submitter-Id:}) or contains a one-line instruction specifying the +information that field requires in order to be correct. For example, +the @samp{>Confidential:} field expects a value of @samp{yes} or +@samp{no}, and the answer must fit on one line; similarly, the +@samp{>Synopsis:} field expects a short synopsis of the problem, which +must also fit on one line. Fill out the fields as completely as +possible. @xref{Helpful hints,,Helpful hints}, for suggestions as to +what kinds of information to include. + +In this example, words in @emph{italics} are filled in with +pre-configured information: + +@cindex @code{send-pr} fields +@smallexample +@group +>Submitter-Id: @emph{your submitter-id} +>Originator: @emph{your name here} +>Organization: + @emph{your organization} +>Confidential:<[ yes | no ] (one line)> +>Synopsis: <synopsis of the problem (one line)> +>Severity: <[non-critical | serious | critical](one line)> +>Priority: <[ low | medium | high ] (one line)> +>Category: <name of the product (one line)> +>Class: <[sw-bug | doc-bug | change-request | support]> +>Release: <release number or tag (one line)> +>Environment: + <machine, os, target, libraries (multiple lines)> + +>Description: + <precise description of the problem (multiple lines)> +>How-To-Repeat: + <code/input/activities to reproduce (multiple lines)> +>Fix: + <how to correct or work around the problem, if known + (multiple lines)> +@end group +@end smallexample + +@cindex @code{Submitter-Id} field +@cindex @code{>Submitter-Id:} +When you finish editing the Problem Report, @code{send-pr} mails it to +the address named in the @samp{To:} field in the mail header. +@code{send-pr} checks that the complete form contains a valid +@samp{>Category:}. + +@ifset SENDPR +Your copy of @code{send-pr} should have already been customized on +installation to reflect your @samp{>Submitter-Id:}. (@xref{Installing +send-pr, , Installing @code{send-pr} on your system}.) If you don't +know your @samp{>Submitter-Id:}, you can request it using +@w{@samp{send-pr --request-id}}. If your organization is not affiliated +with the site you send Problem Reports to, a good generic +@samp{>Submitter-Id:} to use is @samp{net}. +@end ifset + +@cindex bad Problem Reports +@cindex errors +@cindex invalid Problem Reports +If your PR has an invalid value in one of the @sc{Enumerated} fields +(@pxref{Fields,,Problem Report format}), @code{send-pr} places the PR in +a temporary file named @samp{/tmp/pbad@var{nnnn}} on your machine. +@var{nnnn} is the process identification number given to your current +@code{send-pr} session. If you are running @code{send-pr} from the +shell, you are prompted as to whether or not you wish to try editing the +same Problem Report again. If you are running @code{send-pr} from +Emacs, the Problem Report is placed in the buffer +@w{@samp{*send-pr-error*}}; you can edit this file and then submit it +with + +@smallexample +M-x gnats-submit-pr +@end smallexample + +@cindex subsequent mail +@cindex other mail +@cindex appending PRs +@cindex saving related mail +@cindex related mail +Any further mail concerning this Problem Report should be carbon-copied +to the @sc{gnats} mailing address as well, with the category and +identification number in the @samp{Subject:} line of the message. + +@smallexample +Subject: Re: PR @var{category}/@var{gnats-id}: @var{original message subject} +@end smallexample + +@noindent +Messages which arrive with @samp{Subject:} lines of this form are +automatically appended to the Problem Report in the @samp{>Audit-Trail:} +field in the order received. + +@c --------------------------------------------------------------- +@node send-pr in Emacs +@section Using @code{send-pr} from within Emacs +@cindex using @code{send-pr} from within Emacs +@cindex @code{send-pr} within Emacs +@cindex invoking @code{send-pr} from Emacs +@cindex interactive interface + +You can use an interactive @code{send-pr} interface from within @sc{gnu} +Emacs to fill out your Problem Report. We recommend that you +familiarize yourself with Emacs before using this feature +(@pxref{Introduction,,Introduction,emacs,GNU Emacs}). + +Call @code{send-pr} with @w{@samp{M-x send-pr}}.@footnote{If typing +@w{@samp{M-x send-pr}} doesn't work, see your system administrator for +help loading @code{send-pr} into Emacs.} @code{send-pr} responds with a +Problem Report template preconfigured for the Support Site from which +you received @code{send-pr}. (If you use @code{send-pr} locally, the +default Support Site is probably your local site.) + +You may also submit problem reports to different Support Sites from the +default site. To use this feature, invoke @code{send-pr} with + +@smallexample +C-u M-x send-pr +@end smallexample + +@code{send-pr} prompts you for the name of a @var{site}. @var{site} is +an alias on your local machine which points to an alternate Support +Site. + +@cindex Emacs +@code{send-pr} displays the template and prompts you in the minibuffer +with the line: +@smallexample +>Category: other +@end smallexample + +@noindent +Delete the default value @samp{other} @emph{in the minibuffer} and +replace it with the keyword corresponding to your problem (the list of +valid categories is in the topmost section of the PR template). For +example, if the problem you wish to report has to do with the @sc{gnu} C +compiler, and your support organization accepts bugs submitted for this +program under the category @samp{gcc}, delete @samp{other} and then type +@w{@samp{gcc[@key{RET}]}}. @code{send-pr} replaces the line + +@smallexample +>Category: <name of the product (one line)> +@end smallexample + +@noindent +in the template with + +@smallexample +>Category: gcc +@end smallexample + +@noindent +and moves on to another field. + +@cindex completion in Emacs +@cindex name completion in Emacs +@w{@code{send-pr}} provides name completion in the minibuffer. For +instance, you can also type @w{@samp{gc[@key{TAB}]}}, and @code{send-pr} +attempts to complete the entry for you. Typing @w{@samp{g[@key{TAB}]}} +may not have the same effect if several possible entries begin with +@samp{g}. In that case @code{send-pr} cannot complete the entry because +it cannot determine whether you mean @samp{gcc} or, for example, +@samp{gdb}, if both of those are possible categories. +@w{@code{send-pr}} continues to prompt you for a valid entry until you +enter one. + +@w{@code{send-pr}} prompts you interactively to enter each field for +which there is a range of specific choices. If you attempt to enter a +value which is not in the range of acceptable entries, @code{send-pr} +responds with @w{@samp{[No match]}} and allows you to change the entry +until it contains an acceptable value. This avoids unusable information +(at least in these fields) and also avoids typographical errors which +could cause problems later. + +@code{send-pr} prompts you for the following fields: + +@c FIXME - should these go before the discussion on completion? +@example +@group +>Category: +>Confidential: (@emph{default}: no) +>Severity: (@emph{default}: serious) +>Priority: (@emph{default}: medium) +>Class: (@emph{default}: sw-bug) +>Release: +>Synopsis: (@emph{this value is copied to @code{Subject:}}) +@end group +@end example + +@noindent +After you complete these fields, @w{@code{send-pr}} places the cursor in +the @samp{>Description:} field and displays the message + +@smallexample +To send the problem report use: C-c C-c +@end smallexample + +@noindent +in the minibuffer. At this point, edit the file in the main buffer to +reflect your specific problem, putting relevant information in the +proper fields. +@ifset SENDPR +@xref{An Example}, for a sample Problem Report. +@end ifset + +@w{@samp{send-pr}} provides a few key bindings to make moving +around in a template buffer more simple: + +@table @code +@item C-c C-f +@itemx M-x change-field +Changes the field under the cursor. @code{edit-pr} prompts you for a +new value. + +@item M-C-b +@itemx M-x gnats-backward-field +Moves the cursor to the beginning of the value of the current field. + +@item M-C-f +@itemx M-x gnats-forward-field +Moves the cursor to the end of the value of the current field. + +@item M-p +@itemx M-x gnats-previous-field +Moves the cursor back one field to the beginning of the value of the +previous field. + +@item M-n +@itemx M-x gnats-next-field +Moves the cursor forward one field to the beginning of the value of the +next field. +@end table + +@code{send-pr} takes over again when you type @samp{C-c C-c} to send the +message. @code{send-pr} reports any errors in a separate buffer, which +remains in existence until you send the PR properly (or, of course, +until you explicitly kill the buffer). + +For detailed instructions on using Emacs, see +@ref{Introduction,,,emacs,GNU Emacs}. + +@node send-pr from the shell +@section Invoking @code{send-pr} from the shell +@cindex command line options +@cindex invoking @code{send-pr} from the shell +@cindex shell invocation + +@c FIXME! Add [ -S ] right after [ -L ]... +@smallexample +send-pr [ @var{site} ] + [ -f @var{problem-report} | --file @var{problem-report} ] + [ -t @var{mail-address} | --to @var{mail-address} ] + [ --request-id ] + [ -L | --list ] [ -P | --print ] + [ -V | --version] [ -h | --help ] +@end smallexample + +@var{site} is an alias on your local machine which points to an address +used by a Support Site. If this argument is not present, the default +@var{site} is usually the site which you received @code{send-pr} from, +or your local site if you use @sc{gnats} locally. +@ifset SENDPR +(@xref{default site,,Setting a default @var{site}}.) +@end ifset + +Invoking @code{send-pr} with no options calls the editor named in your +environment variable @code{EDITOR} on a default PR template. If the +environment variable @code{PR_FORM} is set, its value is used as a file +name which contains a valid template. If @code{PR_FORM} points to a +missing or unreadable file, or if the file is empty, @code{send-pr} +generates an error message and opens the editor on a default template. + +@table @code +@item -f @var{problem-report} +@itemx --file @var{problem-report} +Specifies a file, @var{problem-report}, where a completed Problem Report +already exists. @code{send-pr} sends the contents of the file without +invoking an editor. If @var{problem-report} is @samp{-}, +@w{@code{send-pr}} reads from standard input. + +@item -t @var{mail-address} +@itemx --to @var{mail-address} +Sends the PR to @var{mail-address}. The default is preset when +@code{send-pr} is configured. @emph{This option is not recommended}; +instead, use the argument @var{site} on the command line. + +@item --request-id +Sends a request for a @code{>Submitter-Id:} to the Support Site. + +@item -L +@item --list +@cindex listing valid categories +Prints the list of valid @code{>Category:} values on standard output. +No mail is sent. + +@ignore +@item -S +@itemx --sites +Displays a list of valid @var{site} values on standard output. No mail +is sent. +@end ignore + +@item -P +@itemx --print +Displays the PR template. If the variable @code{PR_FORM} is set in your +environment, the file it specifies is printed. If @code{PR_FORM} is not +set, @code{send-pr} prints the standard blank form. If the file +specified by @code{PR_FORM} doesn't exist, @code{send-pr} displays an +error message. No mail is sent. + +@item -V +@itemx --version +Displays the @code{send-pr} version number and a usage summary. No mail +is sent. + +@item -h +@itemx --help +Displays a usage summary for @code{send-pr}. No mail is sent. +@end table + +@node Helpful hints +@section Helpful hints +@cindex helpful hints +@cindex Using and Porting GNU CC +@cindex effective problem reporting +@cindex kinds of helpful information +@cindex information to submit +@cindex Report all the facts! + +There is no orthodox standard for submitting effective bug reports, +though you might do well to consult the section on submitting bugs for +@sc{gnu} @code{gcc} in @ref{Bugs, , Reporting Bugs, gcc, Using and +Porting GNU CC}, by Richard Stallman. This section contains +instructions on what kinds of information to include and what kinds of +mistakes to avoid. + +In general, common sense (assuming such an animal exists) dictates the +kind of information that would be most helpful in tracking down and +resolving problems in software. +@itemize @bullet +@item +Include anything @emph{you} would want to know if you were looking at +the report from the other end. There's no need to include every minute +detail about your environment, although anything that might be different +from someone else's environment should be included (your path, for +instance). + +@item +Narratives are often useful, given a certain degree of restraint. If a +person responsible for a bug can see that A was executed, and then B and +then C, knowing that sequence of events might trigger the realization of +an intermediate step that was missing, or an extra step that might have +changed the environment enough to cause a visible problem. Again, +restraint is always in order (``I set the build running, went to get a +cup of coffee (Columbian, cream but no sugar), talked to Sheila on the +phone, and then THIS happened@dots{}'') but be sure to include anything +relevant. + +@item +Richard Stallman writes, ``The fundamental principle of reporting bugs +usefully is this: @strong{report all the facts}. If you are not sure +whether to state a fact or leave it out, state it!'' This holds true +across all problem reporting systems, for computer software or social +injustice or motorcycle maintenance. It is especially important in the +software field due to the major differences seemingly insignificant +changes can make (a changed variable, a missing semicolon, etc.). + +@item +Submit only @emph{one} problem with each Problem Report. If you have +multiple problems, use multiple PRs. This aids in tracking each problem +and also in analyzing the problems associated with a given program. + +@item +It never hurts to do a little research to find out if the bug you've +found has already been reported. Most software releases contain lists +of known bugs in the Release Notes which come with the software; see +your system administrator if you don't have a copy of these. + +@item +The more closely a PR adheres to the standard format, the less +interaction is required by a database administrator to route the +information to the proper place. Keep in mind that anything that +requires human interaction also requires time that might be better spent +in actually fixing the problem. It is therefore in everyone's best +interest that the information contained in a PR be as correct as +possible (in both format and content) at the time of submission. +@end itemize diff --git a/gnu/usr.bin/send-pr/send-pr-el.in b/gnu/usr.bin/send-pr/send-pr-el.in index add07bfa983..48a3c765520 100644 --- a/gnu/usr.bin/send-pr/send-pr-el.in +++ b/gnu/usr.bin/send-pr/send-pr-el.in @@ -62,9 +62,9 @@ (defvar mail-self-blind nil) (defvar mail-default-reply-to nil) -(defconst send-pr::version "3.01.6") +(defconst send-pr::version "xVERSIONx") -(defvar gnats:root "/b/gnats" +(defvar gnats:root "xGNATS_ROOTx" "*The top of the tree containing the GNATS database.") ;;;;--------------------------------------------------------------------------- @@ -79,7 +79,9 @@ ;;;; constants and definitions. ;;;;--------------------------------------------------------------------------- -(defconst gnats::emacs-19p (not (string-lessp emacs-version "19")) +(defconst gnats::emacs-19p + (not (or (and (boundp 'epoch::version) epoch::version) + (string-lessp emacs-version "19"))) "Is this emacs v19?") ;;; These may be changed during configuration/installation or by the individual @@ -100,13 +102,13 @@ ret)) ;; const because it must match the script's value -(defconst send-pr:datadir (or (gnats::get-config "DATADIR") "/usr/local/lib") +(defconst send-pr:datadir (or (gnats::get-config "DATADIR") "xDATADIRx") "*Where the `gnats' subdirectory containing category lists lives.") (defvar send-pr::sites nil "List of GNATS support sites; computed at runtime.") (defvar send-pr:default-site - (or (gnats::get-config "GNATS_SITE") "sun-lamp") + (or (gnats::get-config "GNATS_SITE") "xGNATS_SITEx") "Default site to send bugs to.") (defvar send-pr:::site send-pr:default-site "The site to which a problem report is currently being submitted, or NIL @@ -134,11 +136,10 @@ at runtime.") ("Priority" (("low") ("medium") ("high")) (, (or (gnats::get-config "DEFAULT_PRIORITY") 1)) enum) ("Release" nil - (, (or (gnats::get-config "DEFAULT_RELEASE") "@DEFAULT_RELEASE@")) + (, (or (gnats::get-config "DEFAULT_RELEASE") "xDEFAULT_RELEASEx")) text) ("Submitter-Id" nil - (, (or (gnats::get-config "DEFAULT_SUBMITTER") "@DEFAULT_SUBMITTER@")) - text) + (, (or (gnats::get-config "SUBMITTER") "xSUBMITTERx")) text) ("Synopsis" nil nil text (lambda (a b c) (gnats::set-mail-field "Subject" c))))) "AList, keyed on the name of the field, of: @@ -197,7 +198,10 @@ it to send-pr::sites. With arg, force update." (defvar send-pr:::err-buffer nil "The error buffer used by the current PR buffer.") -(defconst gnats::indent 17 "Indent for formatting the value.") +(defvar send-pr:::spawn-to-send nil + "Whether or not send-pr-mode should spawn a send-pr process to send the PR.") + +(defconst gnats::indent 16 "Indent for formatting the value.") ;;;;--------------------------------------------------------------------------- ;;;; `send-pr' - command for creating and sending of problem reports @@ -216,10 +220,11 @@ to send the PR with `send-pr -b -f -'." (or site (setq site send-pr:default-site)) (let ((buf (get-buffer send-pr::pr-buffer-name))) (if (or (not buf) - (and (switch-to-buffer buf) - (or (not (buffer-modified-p buf)) - (y-or-n-p "Erase previous problem report? ")) - (or (erase-buffer) t))) + (progn (switch-to-buffer buf) + (cond ((or (not (buffer-modified-p buf)) + (y-or-n-p "Erase previous problem report? ")) + (erase-buffer) t) + (t nil)))) (send-pr::start-up site)))) (defun send-pr::start-up (site) @@ -243,6 +248,7 @@ to send the PR with `send-pr -b -f -'." (set-buffer-modified-p nil) (send-pr:send-pr-mode) (setq send-pr:::site site) + (setq send-pr:::spawn-to-send t) (send-pr::set-categories) (if (null send-pr:::categories) (progn @@ -272,7 +278,7 @@ buffer was loaded with emacsclient, in which case save the buffer and exit." (save-buffer buffer) (kill-buffer buffer) (server-buffer-done buffer))) - (t + (send-pr:::spawn-to-send (or (and send-pr:::err-buffer (buffer-name send-pr:::err-buffer)) (setq send-pr:::err-buffer @@ -282,9 +288,9 @@ buffer was loaded with emacsclient, in which case save the buffer and exit." (message "running send-pr...") (let ((oldpr (getenv "GNATS_ROOT"))) (setenv "GNATS_ROOT" gnats:root) - ;; FIXME -r flag is obsolete; remove for 3.3 release (call-process-region (point-min) (point-max) "send-pr" - nil err-buffer nil "-b" "-r" "-f" "-") + nil err-buffer nil send-pr:::site + "-b" "-f" "-") (setenv "GNATS_ROOT" oldpr)) (message "running send-pr...done") ;; stupidly we cannot check the return value in EMACS 18.57, thus we need @@ -300,7 +306,10 @@ buffer was loaded with emacsclient, in which case save the buffer and exit." (set-buffer-modified-p nil) (bury-buffer)) (pop-to-buffer err-buffer)) - )))) + )) + (t + (save-buffer) + (message "Exit emacs to send the PR.")))) ;;;;--------------------------------------------------------------------------- ;;;; send-pr:send-pr-mode mode @@ -341,6 +350,7 @@ if it is not nil." (make-local-variable 'send-pr:::site) (make-local-variable 'send-pr:::categories) (make-local-variable 'send-pr:::err-buffer) + (make-local-variable 'send-pr:::spawn-to-send) (make-local-variable 'paragraph-separate) (setq paragraph-separate (concat (default-value 'paragraph-separate) "\\|" gnats::keyword "[ \t\n\f]*$")) @@ -450,47 +460,52 @@ if it is not nil." "Change the value of the field containing the cursor. With arg, ask the user for the field to change. From a program, the function takes optional arguments of the field to change and the default value to use." - (interactive - (if current-prefix-arg - (list (completing-read - "Field: " (if (eq major-mode 'gnats:gnats-mode) gnats::fields - send-pr::fields) - nil t)))) + (interactive) + (or field current-prefix-arg (setq field (gnats::current-field))) (or field - (setq field (gnats::current-field))) + (setq field + (completing-read "Field: " + (if (eq major-mode 'gnats:gnats-mode) + gnats::fields + send-pr::fields) + nil t))) (gnats::position-on-field field) (sit-for 0) (let* ((old (gnats::field-contents field)) new) (if (null old) (error "ACK") - (let ((prompt (concat ">" field ": ")) - (domain (gnats::field-values field)) - (type (gnats::field-type field)) - (action (gnats::field-action field))) - (or default (setq default (gnats::field-default field))) - (setq new (if (eq type 'enum) + (if (or (interactive-p) t) + (let ((prompt (concat ">" field ": ")) + (domain (gnats::field-values field)) + (type (gnats::field-type field))) + (or default (setq default (gnats::field-default field))) + (setq new + (if (eq type 'enum) (completing-read prompt domain nil t (if gnats::emacs-19p (cons default 0) default)) (read-string prompt (if gnats::emacs-19p (cons default 1) - default)))) - (gnats::set-field field new) - (funcall action field old new) - new)))) + default))))) + (setq new default)) + (gnats::set-field field new) + (funcall (gnats::field-action field) field old new) + new))) (defun gnats::set-field (field value) - (gnats::position-on-field field) - (delete-horizontal-space) - (looking-at ".*$") - (replace-match - (concat (make-string (- gnats::indent (length field) 2) ?\40 ) value) t)) + (save-excursion + (gnats::position-on-field field) + (delete-horizontal-space) + (looking-at ".*$") + (replace-match + (concat (make-string (- gnats::indent (length field) 2) ?\40 ) value) t))) (defun gnats::set-mail-field (field value) - (gnats::mail-position-on-field field) - (delete-horizontal-space) - (looking-at ".*$") - (replace-match (concat " " value) t)) + (save-excursion + (gnats::mail-position-on-field field) + (delete-horizontal-space) + (looking-at ".*$") + (replace-match (concat " " value) t))) (defun gnats::before-keyword (&optional where) "Returns t if point is in some white space before a keyword. @@ -623,12 +638,11 @@ field." (defun gnats::current-field () (save-excursion - (cond ((or (gnats::in-keyword t) (gnats::after-keyword t)) - (looking-at gnats::keyword)) - ((re-search-backward gnats::keyword nil t)) - (t - nil)) - (buffer-substring (match-beginning 1) (match-end 1)))) + (if (cond ((or (gnats::in-keyword t) (gnats::after-keyword t)) + (looking-at gnats::keyword)) + ((re-search-backward gnats::keyword nil t))) + (buffer-substring (match-beginning 1) (match-end 1)) + nil))) ;;;;--------------------------------------------------------------------------- ;;;; Support functions diff --git a/gnu/usr.bin/send-pr/send-pr.man b/gnu/usr.bin/send-pr/send-pr.man index 75e3c6c4294..3717ebd90c1 100644 --- a/gnu/usr.bin/send-pr/send-pr.man +++ b/gnu/usr.bin/send-pr/send-pr.man @@ -22,7 +22,7 @@ .\" .\" --------------------------------------------------------------------------- .nh -.TH SEND-PR 1 @VERSION@ "February 1993" +.TH SEND-PR 1 xVERSIONx "February 1993" .SH NAME send-pr \- send problem report (PR) to a central support site .SH SYNOPSIS @@ -41,9 +41,6 @@ send-pr \- send problem report (PR) to a central support site .br .in +0.8i [ -.B \-p -] -[ .B \-P ] [ @@ -129,19 +126,12 @@ Use the .I site argument rather than this option in nearly all cases. .TP -.B \-p -Print the standard blank template on standard output. No mail is sent. -.TP .B \-P print the form specified by the environment variable .B PR_FORM -on standard output. No mail is sent. -.TP -.BI \-s " mail-agent" -Use -.I mail-agent -instead of the default mailer, -.BR sendmail (8). +on standard output. If +.B PR_FORM +is not set, print the standard blank PR template. No mail is sent. .TP .B -L print the list of available categories. No mail is sent. @@ -221,26 +211,6 @@ code. /tmp/pf$$ copy of empty PR form, for testing purposes .br /tmp/pbad$$ file for rejected PRs -.if !\n(PR==1 \{. -.SH SEE ALSO -.BR gnats.texi -and -.BR send-pr.texi, -which are also installed as GNU -.B Info -files -.BR gnats.info -and -.BR send-pr.info; -.LP -.BR gnats (l), -.BR query-pr (1), -.BR edit-pr (1), -.BR gnats (8), -.BR queue-pr (8), -.BR at-pr (8), -.BR mkcat (8), -.BR mkdist (8). .SH EMACS USER INTERFACE An Emacs user interface for .B send-pr @@ -257,41 +227,28 @@ installation information. The Emacs LISP template file is .B send-pr-el.in and is installed as .BR send-pr.el . - .SH INSTALLATION AND CONFIGURATION See .B send-pr.info or .B INSTALL for installation instructions. +.SH SEE ALSO +.I Reporting Problems Using send-pr +(also installed as the GNU Info file +.BR send-pr.info ). .LP -There are many ways in which -.B send-pr -can be customized to meet specific needs. As mentioned above, at -least the -.I submitter-id -should be set before using -.BR send-pr . -You can change the -.I submitter-id -used by an already installed -.B send-pr -script, by running an auxiliary script: `\|\c -.B install_sid -.IR submitter-id \|'. -.LP -The file -.B send-pr.el -is automatically installed when the distribution is built. It is not, -however, automatically loaded every time Emacs starts up. See -.B send-pr.info -or -.B INSTALL -for instructions on how to load -.B send-pr -automatically into Emacs. +.BR gnats (l), +.BR query-pr (1), +.BR edit-pr (1), +.BR gnats (8), +.BR queue-pr (8), +.BR at-pr (8), +.BR mkcat (8), +.BR mkdist (8). .SH AUTHORS -Jeffrey Osier, Brendan Kehoe, Heinz G. Seidl (Cygnus Support) +Jeffrey Osier, Brendan Kehoe, Jason Merrill, Heinz G. Seidl (Cygnus +Support) .SH COPYING Copyright (c) 1992, 1993 Free Software Foundation, Inc. .PP diff --git a/gnu/usr.bin/send-pr/send-pr.sh b/gnu/usr.bin/send-pr/send-pr.sh index fbe4b7e1165..12505904dcc 100644 --- a/gnu/usr.bin/send-pr/send-pr.sh +++ b/gnu/usr.bin/send-pr/send-pr.sh @@ -2,7 +2,7 @@ # Submit a problem report to a GNATS site. # Copyright (C) 1993 Free Software Foundation, Inc. # Contributed by Brendan Kehoe (brendan@cygnus.com), based on a -# version written by Heinz G. Seidl (hgs@ide.com). +# version written by Heinz G. Seidl (hgs@cygnus.com). # # This file is part of GNU GNATS. # @@ -21,39 +21,55 @@ # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. # The version of this send-pr. -VERSION=3.01.6 +VERSION=xVERSIONx # The submitter-id for your site. -SUBMITTER=net +SUBMITTER=xSUBMITTERx # Where the GNATS directory lives, if at all. [ -z "$GNATS_ROOT" ] && -GNATS_ROOT=/b/gnats +GNATS_ROOT=xGNATS_ROOTx # The default mail address for PR submissions. -GNATS_ADDR=gnats-bugs@sun-lamp.cs.berkeley.edu +GNATS_ADDR=xGNATS_ADDRx # Where the gnats category tree lives. -DATADIR=/usr/share +DATADIR=xDATADIRx # If we've been moved around, try using GCC_EXEC_PREFIX. [ ! -d $DATADIR/gnats -a -d "$GCC_EXEC_PREFIX" ] && DATADIR=${GCC_EXEC_PREFIX}.. # The default release for this host. -DEFAULT_RELEASE="" +DEFAULT_RELEASE="xDEFAULT_RELEASEx" # The default organization. -DEFAULT_ORGANIZATION="" +DEFAULT_ORGANIZATION="xDEFAULT_ORGANIZATIONx" # The default site to look for. -GNATS_SITE=sun-lamp +GNATS_SITE=xGNATS_SITEx # Newer config information? [ -f ${GNATS_ROOT}/gnats-adm/config ] && . ${GNATS_ROOT}/gnats-adm/config # What mailer to use. This must come after the config file, since it is # host-dependent. -MAIL_AGENT="/usr/sbin/sendmail -oi -t" +MAIL_AGENT="xMAIL_AGENTx" + +# How to read the passwd database. +PASSWD="xPASSWDx" + +ECHON=xECHONx + +if [ $ECHON = bsd ] ; then + ECHON1="echo -n" + ECHON2= +elif [ $ECHON = sysv ] ; then + ECHON1=echo + ECHON2='\c' +else + ECHON1=echo + ECHON2= +fi # @@ -75,19 +91,10 @@ if [ -n "$NAME" ]; then ORIGINATOR="$NAME" elif [ -f $HOME/.fullname ]; then ORIGINATOR="`sed -e '1q' $HOME/.fullname`" -elif [ -f /bin/domainname ]; then - if [ "`/bin/domainname`" != "" -a -f /usr/bin/ypcat ]; then - # Must use temp file due to incompatibilities in quoting behavior - # and to protect shell metacharacters in the expansion of $LOGNAME - /usr/bin/ypcat passwd 2>/dev/null | cat - /etc/passwd | grep "^$LOGNAME:" | - cut -f5 -d':' | sed -e 's/,.*//' > $TEMP - ORIGINATOR="`cat $TEMP`" - rm -f $TEMP - fi -fi - -if [ "$ORIGINATOR" = "" ]; then - grep "^$LOGNAME:" /etc/passwd | cut -f5 -d':' | sed -e 's/,.*//' > $TEMP +else + # Must use temp file due to incompatibilities in quoting behavior + # and to protect shell metacharacters in the expansion of $LOGNAME + $PASSWD | grep "^$LOGNAME:" | cut -f5 -d':' | sed -e 's/,.*//' > $TEMP ORIGINATOR="`cat $TEMP`" rm -f $TEMP fi @@ -131,7 +138,7 @@ BATCH= while [ $# -gt 0 ]; do case "$1" in - -r | -p) ;; # Ignore for backward compat. + -r) ;; # Ignore for backward compat. -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi shift ; GNATS_ADDR="$1" EXPLICIT_GNATS_ADDR=true @@ -144,7 +151,7 @@ while [ $# -gt 0 ]; do fi ;; -b | --batch) BATCH=true ;; - -P | --print) PRINT=true ;; + -p | -P | --print) PRINT=true ;; -L | --list) FORMAT=norm ;; -l | -CL | --lisp) FORMAT=lisp ;; --request-id) REQUEST_ID=true ;; @@ -167,7 +174,7 @@ while [ $# -gt 0 ]; do shift done -if [ -n "$USER_GNATS_SITE" ]; then +if [ -n "$USER_GNATS_SITE" ] && [ "$USER_GNATS_SITE" != "$GNATS_SITE" ]; then GNATS_SITE=$USER_GNATS_SITE GNATS_ADDR=$USER_GNATS_SITE-gnats fi @@ -205,9 +212,14 @@ case "$FORMAT" in awk 'BEGIN {printf "( "} {printf "(\"%s\") ",$0} END {printf ")\n"}' exit 0 ;; - norm) echo "$CATEGORIES" | \ - awk 'BEGIN {print "Known categories:"; i = 1 } - { printf ("%-12.12s", $0); if ((++i % 5) == 0) { print "" } } + norm) l=`echo "$CATEGORIES" | \ + awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } } + END {print max + 1;}'` + c=`expr 70 / $l` + if [ $c -eq 0 ]; then c=1; fi + echo "$CATEGORIES" | \ + awk 'BEGIN {print "Known categories:"; i = 0 } + { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } } END { print ""; }' exit 0 ;; @@ -278,11 +290,16 @@ SEND-PR: __EOF__ # Format the categories so they fit onto lines. - echo "$CATEGORIES" | awk ' - BEGIN { printf "SEND-PR: "; i = 1 } - { printf ("%-12.12s", $0) ; - if ((++i % 5) == 0) { printf "\nSEND-PR: "}} - END { printf "\nSEND-PR:\n" }' >> $file + l=`echo "$CATEGORIES" | \ + awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } } + END {print max + 1;}'` + c=`expr 61 / $l` + if [ $c -eq 0 ]; then c=1; fi + echo "$CATEGORIES" | \ + awk 'BEGIN {printf "SEND-PR: "; i = 0 } + { printf ("%-'$l'.'$l's", $0); + if ((++i % '$c') == 0) { printf "\nSEND-PR: " } } + END { printf "\nSEND-PR:\n"; }' >> $file cat >> $file << __EOF__ To: $GNATS_ADDR @@ -291,29 +308,20 @@ From: $FROM Reply-To: $REPLY_TO X-send-pr-version: $VERSION ->Submitter-Id: $SUBMITTER ->Originator: $ORIGINATOR + +>Submitter-Id: $SUBMITTER +>Originator: $ORIGINATOR >Organization: -` - if [ -n "$ORGANIZATION" ]; then - echo "$ORGANIZATION" - else - echo " $ORGANIZATION_C" ; - fi ; -` ->Confidential: $CONFIDENTIAL_C +${ORGANIZATION-" $ORGANIZATION_C"} +>Confidential: $CONFIDENTIAL_C >Synopsis: $SYNOPSIS_C >Severity: $SEVERITY_C >Priority: $PRIORITY_C ->Category: $CATEGORY_C +>Category: $CATEGORY_C >Class: $CLASS_C ->Release: `if [ -n "$DEFAULT_RELEASE" ]; then - echo "$DEFAULT_RELEASE" - else - echo " $RELEASE_C" - fi; ` +>Release: ${DEFAULT_RELEASE-$RELEASE_C} >Environment: - $ENVIRONMENT_C + $ENVIRONMENT_C `[ -n "$SYSTEM" ] && echo System: $SYSTEM` `[ -n "$ARCH" ] && echo Architecture: $ARCH` `[ -n "$MACHINE" ] && echo Machine: $MACHINE` @@ -430,7 +438,7 @@ while [ -z "$REQUEST_ID" ]; do while true; do if [ -z "$BATCH" ]; then - echo -n "a)bort, e)dit or s)end? " + $ECHON1 "a)bort, e)dit or s)end? $ECHON2" read input else if [ $CNT -eq 5 ]; then diff --git a/gnu/usr.bin/send-pr/send-pr.texi b/gnu/usr.bin/send-pr/send-pr.texi new file mode 100644 index 00000000000..b9edd9cecbc --- /dev/null +++ b/gnu/usr.bin/send-pr/send-pr.texi @@ -0,0 +1,657 @@ +\input texinfo @c -*-texinfo-*- +@setfilename send-pr.info +@settitle Reporting Problems Using send-pr + +@setchapternewpage odd + +@include version.texi +@set SENDPR + +@ifinfo +@format +START-INFO-DIR-ENTRY +* send-pr:: Reporting problems--using send-pr +END-INFO-DIR-ENTRY +@end format +@end ifinfo + +@ifinfo +Copyright @copyright{} 1993 Free Software Foundation, Inc. + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries a copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). + +@end ignore + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions. +@end ifinfo + +@titlepage +@finalout +@title Reporting Problems +@subtitle Using @code{send-pr}, version @value{VERSION} +@subtitle October 1993 +@author Jeffrey M. Osier +@author Cygnus Support +@page + +@vskip 0pt plus 1filll + +Copyright @copyright{} 1993 Free Software Foundation, Inc. + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions. + +@end titlepage + +@c --------------------------------------------------------------- +@node Top +@top Overview +@cindex foreword to @code{send-pr} +@cindex overview to @code{send-pr} +@cindex introduction to @code{send-pr} + +This manual documents @code{send-pr}, +@ifinfo +version @value{VERSION}, +@end ifinfo +which uses electronic mail to submit support questions and problem +reports to a central Support Site. No body of work is perfect, and +support organizations understand this; @code{send-pr} is designed to +allow users who have problems to submit reports of these problems to +sites responsible for supporting the products in question, in a defined +form which can be read by an electronically managed database. + +@cindex GNATS +@code{send-pr} is part of a suite of programs known collectively as +@sc{gnats}, the @sc{gnu} Problem Report Management System. @sc{gnats} +consists of several programs which, used in concert, formulate and +partially administer a database of @dfn{Problem Reports}, or @dfn{PRs}, +at a central Support Site. A PR goes through several states in its +lifetime; @sc{gnats} tracks the PR and all information associated with it +through each state and finally acts as an archive for PRs which have +been @dfn{closed}. + +Because @code{send-pr} exists as a shell (@file{/bin/sh}) script and as +an Elisp file for use with @sc{gnu} Emacs, it can be used from any +machine on your network which can run a shell script and/or Emacs. + +In general, you can use any editor and mailer to submit valid Problem +Reports, as long as the format required by @sc{gnats} is preserved. +@code{send-pr} automates the process, however, and ensures that certain +fields necessary for automatic processing are present. @code{send-pr} +is strongly recommended for all initial problem-oriented correspondence +with your Support Site. The organization you submit Problem Reports to +supplies an address to which further information can be sent; the person +responsible for the category of the problem you report contacts you +directly. + +@menu +* send-pr in detail:: Details about send-pr and GNATS +* Invoking send-pr:: Editing and sending PRs +* An Example:: A working example +* Installing send-pr:: Installing send-pr on your system +* Index:: +@end menu + +@node send-pr in detail +@chapter Details about send-pr and GNATS + +@cindex details about @code{send-pr} +@cindex Problem Reports +A @dfn{Problem Report} is a message that describes a problem you are +having with a body of work. @code{send-pr} organizes this message into +a form which can be understood and automatically processed by @sc{gnats}, +the @sc{gnu} Problem Report Management System. A Problem Report is +organized into @dfn{fields} which contain data describing you, your +organization, and the problem you are announcing (@pxref{Fields,,Problem +Report format}). Problem Reports go through several defined states in +their lifetimes, from @dfn{open} to @dfn{closed} (@pxref{States,,States +of Problem Reports}). + +@menu +* States:: States of Problem Reports +* Fields:: Problem Report format +@end menu + +@include states.texi + +@include fields.texi + +@node Invoking send-pr +@chapter Editing and sending PRs +@cindex editing and sending PRs +@cindex sending PRs +@cindex invoking send-pr +@cindex using send-pr +@cindex generating new PRs + +@include s-usage.texi + +@node An Example +@chapter An Example +@cindex an example +@cindex example PR +@cindex Cygnus Support +@cindex GNU software support + +Cygnus Support in Mountain View, CA, uses @sc{gnats} and @code{send-pr} +extensively for their support activities. As a support company, Cygnus +finds problem tracking to be a crucial part of everyday business. +Cygnus supports the @sc{gnu} compiling tools (including @sc{gnats} and +@code{send-pr}) over several many platforms + +With each shipment of the Cygnus Support Developer's Kit, customers +receive the latest version of @code{send-pr}, which contains an +up-to-date listing of valid categories (values for the @code{>Category:} +field). Using these tools, Cygnus' customers can communicate their +problems to Cygnus effectively and receive automatic confirmation of +receipt as well as notification of changes in the status of their +reported problems. Much of Cygnus' support mechanism relies on +electronic mail. + +As an example, let's pretend we're a customer of Cygnus Support, and +that we're having a problem compiling some of our software using the +@sc{gnu} C compiler, which Cygnus supports. + +Assume that we're getting an error in our @code{bifrabulator} program +wherein the @samp{prestidigitation} routines don't match with the +@samp{whatsitsname}. We've made sure we're following the rules of the +program and checked the Release Notes from Cygnus and found that the bug +isn't already known. In other words, we're pretty sure we've found a +bug. + +@cindex Imaginary Software, Ltd. +Our first step is to call @code{send-pr}. It really doesn't matter +whether we use @code{send-pr} from the shell or from within Emacs. +Indeed, if we use Emacs as a primary editor, calling @code{send-pr} from +the shell is likely to start @code{send-pr} in an Emacs buffer anyway. +So, since our company, @emph{Imaginary Software, Ltd.}, uses @sc{gnu} +software extensively, we're pretty familiar with Emacs, so from within +Emacs we type +@smallexample +M-x send-pr +@end smallexample +@noindent +and we're greeted with the following screen: + +@cindex default PR template +@cindex example of a default template +@cindex blank PR template +@cindex @code{bifrabulator} +@cartouche +@smallexample +SEND-PR: -*- text -*- +SEND-PR: Lines starting with `SEND-PR' will be removed +SEND-PR: automatically as well as all comments (the text +SEND-PR: below enclosed in `<' and `>'). +SEND-PR: Please consult the manual if you are not sure +SEND-PR: how to fill out a problem report. +SEND-PR: +SEND-PR: Choose from the following categories: +SEND-PR: +SEND-PR: bfd binutils bison +SEND-PR: byacc clib config cvs diff +SEND-PR: doc emacs flex g++ gas +SEND-PR: gcc gdb glob gprof grep +SEND-PR: info ispell kerberos ld libg++ +SEND-PR: libiberty make makeinfo mas newlib +SEND-PR: other patch rcs readline send-pr +SEND-PR: test texindex texinfo texinfo.tex +SEND-PR: bifrabulator <---@emph{note: this one is fake} +SEND-PR: +To: cygnus-bugs@@cygnus.com +Subject: +From: jeffrey@@imaginary.com +Reply-To: jeffrey@@imaginary.com +X-send-pr-version: send-pr @value{VERSION} + +>Submitter-Id: imaginary +>Originator: Jeffrey Osier +>Organization: +Imaginary Software, Ltd. +>Confidential: <[ yes | no ] (one line)> +>Synopsis: <synopsis of the problem (one line)> +>Severity: <[ non-critical | serious | critical ] (one line)> +>Priority: <[ low | medium | high ] (one line)> +>Category: <name of the product (one line)> +>Class: <[sw-bug|doc-bug|change-request|support](oneline)> +>Release: <release number or tag (one line)> +>Environment: + <machine, os, target, libraries (multiple lines)> +System: SunOS imaginary.com 4.1.1 1 sun4 +Architecture: sun4 + +>Description: + <precise description of the problem (multiple lines)> +>How-To-Repeat: + <code/input/activities to reproduce (multiple lines)> +>Fix: +@iftex +@hrule +@end iftex +-----Emacs: *send-pr* (send-pr Fill)----All------------------ +@iftex +@hrule +@end iftex +>Category: other[] +@end smallexample +@end cartouche +@page +We know from past experience that we need to set certain information into +each field, so we compile all the information we know about our problem. +We have some sample code which we know should work, even though it +doesn't, so we'll include that. Below is the completed PR; we send this +using @kbd{C-c C-c}. (The comments have been truncated). + +@cindex completed Problem Report +@cindex example of a completed PR +@cartouche +@smallexample +SEND-PR: Lines starting with `SEND-PR' will be removed +SEND-PR: automatically as well as all comments (the text +SEND-PR: @dots{} +SEND-PR: +To: cygnus-bugs@@cygnus.com +Subject: bifrabulator routines don't match +From: jeffrey@@imaginary.com +Reply-To: jeffrey@@imaginary.com +X-send-pr-version: send-pr @value{VERSION} + +>Submitter-Id: imaginary +>Originator: Jeffrey Osier +>Organization: +Imaginary Software, Ltd. +>Confidential: no +>Synopsis: bifrabulator routines don't match +>Severity: serious +>Priority: medium +>Category: bifrabulator +>Class: sw-bug +>Release: progressive-930101 +>Environment: +System: SunOS imaginary.com 4.1.1 1 sun4 +Architecture: sun4 (SPARC) + +>Description: + the following code I fed into the bifrabulator came back + with a strange error. apparently, the prestidigitation + routine doesn't match with the whatsitsname in all cases. + +>How-To-Repeat: + call the bifrabulator on the following code. + @emph{code sample@dots{}} + +>Fix: +@iftex +@hrule +@end iftex +-----Emacs: *send-pr* (send-pr Fill)----All------------------ +@iftex +@hrule +@end iftex +To send the problem report use: C-c C-c +@end smallexample +@end cartouche + +We type @kbd{C-c C-c}, and off it goes. Now, we depend on Cygnus +Support to figure out the answer to our problem. + +Soon afterward, we get the following message from Cygnus: + +@smallexample +@group +From: gnats (GNATS management) +Sender: gnats-admin +Reply-To: hacker@@cygnus.com +To: jeffrey@@imaginary.com +Subject: Re: bifrabulator/1425: routines don't match + +Thank you very much for your problem report. +It has the internal identification: g++/1425. +The individual assigned to look at your bug is: hacker +(F.B. Hacker) + +Category: bifrabulator +Responsible: hacker +Synopsis: bifrabulator routines don't match +Arrival-Date: Sat Feb 30 03:12:55 1993 +@end group +@end smallexample + +@noindent +This is our receipt that the bug has been accepted and forwarded to the +responsible party. + +@noindent +A while later, we get the analysis: + +@smallexample +@group +To: jeffrey@@imaginary.com +From: hacker@@cygnus.com +Subject: Re: bifrabulator/1425: routines don't match +Reply-To: hacker@@cygnus.com + +Got your message, Jeff. It seems that the bifrabulator was +confusing the prestidigitation routines with the realitychecker +when lexically parsing the whatsitsname. + +I'm working on robustisizing the bifrabulator now. + +How about lunch next week? +-- +F.B. Hacker +Cygnus Support, Mountain View, CA 415 903 1400 +#include <std-disclaimer.h> +@end group +@end smallexample + +@noindent +About the same time, we get another message from Cygnus. + +@cindex state change example +@cindex example of a state change +@smallexample +@group +From: hacker@@cygnus.com +To: jeffrey@@imaginary.com +Subject: Re: bifrabulator/1425: doesn't match prestidig +Reply-To: hacker@@cygnus.com + + + `F.B. Hacker' changed the state to `analyzed'. + +State-Changed-From-To: open-analyzed +State-Changed-By: hacker +State-Changed-When: Fri Feb 31 1993 08:59:16 1993 +State-Changed-Why: + figured out the problem, working on a patch this afternoon +-- +F.B. Hacker +Cygnus Support, Mountain View, CA 415 903 1400 +#include <std-disclaimer.h> +@end group +@end smallexample + +@noindent +The bug has now been analyzed, and Cygnus is working on a solution. + +@noindent +Sometime later, we get more mail from F.B.: + +@smallexample +@group +To: jeffrey@@imaginary.com +From: hacker@@cygnus.com +Subject: Re: bifrabulator/1425: routines don't match +Reply-To: hacker@@cygnus.com + +There's a patch now that you can ftp over and check out. + +Hey, that joke you sent me was great! The one about the +strings walking into a bar... my boss laughed for an hour! +-- +F.B. Hacker +Cygnus Support, Mountain View, CA 415 903 1400 +#include <std-disclaimer.h> +@end group +@end smallexample +@sp 2 +@smallexample +@group +From: hacker@@cygnus.com +To: jeffrey@@imaginary.com +Subject: Re: bifrabulator/1425: doesn't match prestidig +Reply-To: hacker@@cygnus.com + + + `F.B. Hacker' changed the state to `feedback'. + +State-Changed-From-To: analyzed-feedback +State-Changed-By: hacker +State-Changed-When: Fri Feb 31 1993 23:43:16 1993 +State-Changed-Why: + got the patch finished, notified Jeff at Imaginary Software +-- +F.B. Hacker +Cygnus Support, Mountain View, CA 415 903 1400 +#include <std-disclaimer.h> +@end group +@end smallexample + +@noindent +The bug has gone into @dfn{feedback} status now, until we get the patch, +install it and test it. When everything tests well, we can mail F.B. +back and tell him the bug's been fixed, and he can change the state of +the PR from @dfn{feedback} to @dfn{closed}. + +Following is a list of valid @samp{>Category:} entries that are +supported by Cygnus. + +@menu +* Valid Categories:: +@end menu + +@c FIXME - is this list up to date? +@include categ.texi + +@node Installing send-pr +@appendix Installing @code{send-pr} on your system +@cindex installation + +If you receive @code{send-pr} as part of a larger software distribution, +it probably gets installed when the full distribution is installed. If +you are using @sc{gnats} at your site as well, you must decide where +@code{send-pr} sends Problem Reports by default; see @ref{default site,, +Setting a default @var{site}}. + +@menu +* installation:: installing `send-pr' by itself +* default site:: setting a default site +@end menu + +@node installation +@section Installing @code{send-pr} by itself +@cindex installation procedure + +Install @code{send-pr} by following these steps (you may need +@code{root} access in order to change the @file{aliases} file and to +install @code{send-pr}): + +@itemize @bullet +@item +Unpack the distribution into a directory which we refer to as +@var{srcdir}. + +@item +Edit the file @file{Makefile} to reflect local conventions. +Specifically, you should edit the variable @samp{prefix} to alter the +installation location. The default is @file{/usr/local}. All files are +installed under @samp{prefix} (see below). + +@item @emph{Run} +@smallexample +make all install [ info ] [ install-info ] [ clean ] +@end smallexample + +@noindent +The targets mean the following: + +@table @code +@item all +Builds @code{send-pr} and @code{install-sid} + +@item install +Installs the following: + +@table @code +@item install-sid +@itemx send-pr +into @file{@var{prefix}/bin} + +@item send-pr.1 +into @file{@var{prefix}/man/man1} + +@item @var{site} +the list of valid @var{categories} for the Support Site from which you +received @code{send-pr}, installed as +@w{@file{@var{prefix}/lib/gnats/@var{site}}} + +@item send-pr.el +into @w{@file{@var{prefix}/lib/emacs/lisp}}@footnote{If your main Emacs +lisp repository is in a different directory from this, substitute that +directory for @w{@file{@var{prefix}/lib/emacs/lisp}}.} +@end table + +@item info (@emph{optional}) +Builds @file{send-pr.info} from @file{send-pr.texi}@* +@c FIXME - is this still true? +(@file{send-pr.info} is included with this distribution) + +@item install-info (@emph{optional}) +Installs @file{send-pr.info} into @w{@file{@var{prefix}/info}} + +@item clean (@emph{optional}) +Removes all intermediary build files that can be rebuilt from source +code +@end table + +@item +Run + +@smallexample +install-sid @var{your-sid} +@end smallexample + +@noindent +where @var{your-sid} is the identification code you received with +@w{@code{send-pr}}. @code{send-pr} automatically inserts this value +into the template field @samp{>Submitter-Id:}. If you've downloaded +@code{send-pr} from the Net, use @samp{net} for this value. + +@item +Place the following line in +@w{@file{@var{prefix}/lib/emacs/lisp/default.el}}, or instruct your +users to place the following line in their @file{.emacs} files: + +@smallexample +(autoload 'send-pr "send-pr" "Submit a Problem Report." t) +@end smallexample + +@item +Create a mail alias for the Support Site from which you received +@code{send-pr}, and for every site with which you wish to use +@code{send-pr} to communicate. Each alias must have a suffix of +@samp{-gnats}. The Support Site(s) will provide the correct addresses +where these aliases should point. For instance, edit your mail aliases +file to contain something like: + +@smallexample +# support sites; for use with send-pr +cygnus-gnats: bugs@@cygnus.com # Cygnus Support +bumblebee-gnats: bumblebugs@@bumblebee.com # Bumblebee Inc. +mycompany-gnats: bugs@@my.company.com (@emph{if you use @sc{gnats} locally}) +@end smallexample + +@code{send-pr} automatically searches for these aliases when you type + +@smallexample +send-pr cygnus +send-pr bumblebee +send-pr @var{site}@dots{} +@end smallexample + +@noindent +@code{send-pr} also uses @var{site} to determine the categories of +problems accepted by the site in question by looking in + +@smallexample +@var{prefix}/lib/gnats/@var{site} +@end smallexample + +@end itemize + +@node default site +@section Setting a default @var{site} +@cindex default @var{site} +@cindex setting a default @var{site} + +@code{send-pr} is capable of sending Problem Reports to any number of +Support Sites, using mail aliases which have @samp{-gnats} appended them. +@code{send-pr} automatically appends the suffix, so that when you type + +@smallexample +send-pr @var{site} +@end smallexample + +@noindent +the Problem Report goes to the address noted in the @file{aliases} file +as @w{@samp{@var{site}-gnats}}. You can do this in the Emacs version of +@code{send-pr} by invoking the program with + +@smallexample +C-u M-x send-pr +@end smallexample + +@noindent +You are prompted for @var{site}. + +@var{site} is also used to error-check the @samp{>Category:} field, as a +precaution against sending mistaken information (and against sending +information to the wrong site). + +You may also simply type + +@smallexample +send-pr +@end smallexample + +@noindent +from the shell (or @w{@samp{M-x send-pr}} in Emacs), and the Problem +Report you generate will be sent to the @var{site}, which is usually the +site from which you received your distribution of @w{@code{send-pr}}. +If you use @sc{gnats} at your own organization, the default is usually +your local address for reporting problems. + +To change this, simply edit the file @file{Makefile} before installing +and change the line + +@smallexample +GNATS_SITE = @var{site} +@end smallexample + +@noindent +to reflect the site where you wish to send PRs by default. + +@c --------------------------------------------------------------- +@node Index +@unnumbered Index + +@printindex cp + +@c --------------------------------------------------------------- +@contents +@bye diff --git a/gnu/usr.bin/send-pr/states.texi b/gnu/usr.bin/send-pr/states.texi new file mode 100644 index 00000000000..16ea890031b --- /dev/null +++ b/gnu/usr.bin/send-pr/states.texi @@ -0,0 +1,53 @@ +@node States +@section States of Problem Reports + +@cindex life-cycle of a Problem Report +@cindex states of Problem Reports +@cindex Problem Report states +@cindex automatic notification + +Each PR goes through a defined series of states between origination and +closure. The originator of a PR receives notification automatically of +any state changes. + +@table @dfn +@cindex @emph{open} state +@cindex initial state (@dfn{open}) +@cindex state---@dfn{open} +@item open +The initial state of a Problem Report. This means the PR has been filed +and the responsible person(s) notified. + +@item analyzed +@cindex @emph{analyzed} state +@cindex state---@dfn{analyzed} +The responsible person has analyzed the problem. The analysis should +contain a preliminary evaluation of the problem and an estimate of the +amount of time and resources necessary to solve the problem. It should +also suggest possible workarounds. + +@item feedback +@cindex @emph{feedback} state +@cindex state---@dfn{feedback} +The problem has been solved, and the originator has been given a patch +or other fix. The PR remains in this state until the originator +acknowledges that the solution works. + +@item closed +@cindex @emph{closed} state +@cindex state---@dfn{closed} +@cindex final state (@dfn{closed}) +A Problem Report is closed (``the bug stops here'') only when any +changes have been integrated, documented, and tested, and the submitter +has confirmed the solution. + +@item suspended +@cindex @emph{suspended} state +@cindex state---@dfn{suspended} +Work on the problem has been postponed. This happens if a timely +solution is not possible or is not cost-effective at the present time. +The PR continues to exist, though a solution is not being actively +sought. If the problem cannot be solved at all, it should be closed +rather than suspended. +@end table + |
