summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authorgavin <gavin@FreeBSD.org>2014-06-22 16:48:21 +0000
committergavin <gavin@FreeBSD.org>2014-06-22 16:48:21 +0000
commite44b7f112f499d2a322853f25a75b8aebc162407 (patch)
tree47d91275e445fa0e5a1d35ae379d7db623e70332 /gnu
parent08bf57727433041944d851795e4c8e34f8c54d89 (diff)
downloadFreeBSD-src-e44b7f112f499d2a322853f25a75b8aebc162407.zip
FreeBSD-src-e44b7f112f499d2a322853f25a75b8aebc162407.tar.gz
Merge r267482,r267483,r267486,r267577,r267671,r267672 from head:
Remove send-pr and fix up all references to it. Replace it with a stub send-pr directing people towards the web site.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/usr.bin/Makefile1
-rw-r--r--gnu/usr.bin/binutils/libbfd/Makefile2
-rw-r--r--gnu/usr.bin/send-pr/COPYING339
-rw-r--r--gnu/usr.bin/send-pr/Makefile35
-rw-r--r--gnu/usr.bin/send-pr/README43
-rw-r--r--gnu/usr.bin/send-pr/categories21
-rw-r--r--gnu/usr.bin/send-pr/doc/Makefile4
-rw-r--r--gnu/usr.bin/send-pr/doc/categ.texi125
-rw-r--r--gnu/usr.bin/send-pr/doc/fields.texi522
-rw-r--r--gnu/usr.bin/send-pr/doc/s-usage.texi570
-rw-r--r--gnu/usr.bin/send-pr/doc/send-pr.texi658
-rw-r--r--gnu/usr.bin/send-pr/doc/states.texi58
-rw-r--r--gnu/usr.bin/send-pr/doc/version.texi3
-rwxr-xr-xgnu/usr.bin/send-pr/install-sid.sh82
-rw-r--r--gnu/usr.bin/send-pr/send-pr-el.in813
-rw-r--r--gnu/usr.bin/send-pr/send-pr.1355
-rw-r--r--gnu/usr.bin/send-pr/send-pr.sh591
17 files changed, 1 insertions, 4221 deletions
diff --git a/gnu/usr.bin/Makefile b/gnu/usr.bin/Makefile
index 7e96a6f..e12a540 100644
--- a/gnu/usr.bin/Makefile
+++ b/gnu/usr.bin/Makefile
@@ -14,7 +14,6 @@ SUBDIR= ${_binutils} \
${_groff} \
${_rcs} \
sdiff \
- send-pr \
${_tests} \
${_texinfo}
diff --git a/gnu/usr.bin/binutils/libbfd/Makefile b/gnu/usr.bin/binutils/libbfd/Makefile
index 1493ccf..ca5e183 100644
--- a/gnu/usr.bin/binutils/libbfd/Makefile
+++ b/gnu/usr.bin/binutils/libbfd/Makefile
@@ -84,7 +84,7 @@ bfdver.h: Makefile
echo '#define BFD_VERSION 217500000' > ${.TARGET}
echo '#define BFD_VERSION_DATE 20070703' >> ${.TARGET}
echo '#define BFD_VERSION_STRING ${VERSION}' >> ${.TARGET}
- echo '#define REPORT_BUGS_TO "<http://www.freebsd.org/send-pr.html>"' >> ${.TARGET}
+ echo '#define REPORT_BUGS_TO "<http://www.freebsd.org/support.html>"' >> ${.TARGET}
targmatch.h: targmatch.sed config.bfd
sed -f ${.ALLSRC:M*.sed} ${.ALLSRC:M*.bfd} > ${.TARGET}
diff --git a/gnu/usr.bin/send-pr/COPYING b/gnu/usr.bin/send-pr/COPYING
deleted file mode 100644
index 515b6d3..0000000
--- a/gnu/usr.bin/send-pr/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-he GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- 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 of the License, 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.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/gnu/usr.bin/send-pr/Makefile b/gnu/usr.bin/send-pr/Makefile
deleted file mode 100644
index f17db49..0000000
--- a/gnu/usr.bin/send-pr/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# $FreeBSD$
-#
-# Makefile for building a standalone send-pr.
-#
-
-SCRIPTS= send-pr
-MAN= send-pr.1
-SUBMITTERS= current-users
-RELEASE= `uname -rsm`
-CLEANFILES+= send-pr send-pr.el
-
-SUBDIR+= doc
-
-LINKS= ${BINDIR}/send-pr ${BINDIR}/sendbug
-MLINKS= send-pr.1 sendbug.1
-
-send-pr: send-pr.sh Makefile
- sed -e 's,@DATADIR@,/etc,g' \
- -e 's/@DEFAULT_RELEASE@/$(RELEASE)/g' \
- -e 's/^SUBMITTER=.*/SUBMITTER=$(SUBMITTERS)/' \
- ${.ALLSRC:N*Makefile} > ${.TARGET}
-
-send-pr.el: send-pr-el.in Makefile
- default_release=`uname -rsm`; \
- sed -e 's,@DATADIR@,/etc,g' \
- -e "s/@DEFAULT_RELEASE@/$${default_release}/g" \
- -e 's/"unknown"/"$(SUBMITTERS)"/g' \
- ${.ALLSRC:N*Makefile} > ${.TARGET}
-
-# called from /usr/src/etc/Makefile
-etc-gnats-freefall:
- ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 0644 \
- ${.CURDIR}/categories ${DESTDIR}/etc/gnats/freefall
-
-.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/send-pr/README b/gnu/usr.bin/send-pr/README
deleted file mode 100644
index b479179..0000000
--- a/gnu/usr.bin/send-pr/README
+++ /dev/null
@@ -1,43 +0,0 @@
- 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/categories b/gnu/usr.bin/send-pr/categories
deleted file mode 100644
index da511e7..0000000
--- a/gnu/usr.bin/send-pr/categories
+++ /dev/null
@@ -1,21 +0,0 @@
-# $FreeBSD$
-advocacy
-alpha
-amd64
-arm
-bin
-conf
-docs
-gnu
-i386
-ia64
-java
-kern
-misc
-ports
-powerpc
-sparc64
-standards
-threads
-usb
-www
diff --git a/gnu/usr.bin/send-pr/doc/Makefile b/gnu/usr.bin/send-pr/doc/Makefile
deleted file mode 100644
index 1de7064..0000000
--- a/gnu/usr.bin/send-pr/doc/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-INFO = send-pr
-INFOSECTION="System Utilities"
-
-.include <bsd.info.mk>
diff --git a/gnu/usr.bin/send-pr/doc/categ.texi b/gnu/usr.bin/send-pr/doc/categ.texi
deleted file mode 100644
index fe84918..0000000
--- a/gnu/usr.bin/send-pr/doc/categ.texi
+++ /dev/null
@@ -1,125 +0,0 @@
-@c $FreeBSD$
-
-@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 Solutions 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 Solutions C Support Library.
-
-@item libg++
-@sc{gnu} C++ class library.
-
-@item libiberty
-@sc{gnu} @samp{libiberty} library.
-
-@item libm
-Cygnus Solutions 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 Solutions 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/doc/fields.texi b/gnu/usr.bin/send-pr/doc/fields.texi
deleted file mode 100644
index 0cce642..0000000
--- a/gnu/usr.bin/send-pr/doc/fields.texi
+++ /dev/null
@@ -1,522 +0,0 @@
-@c $FreeBSD$
-
-@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).
-
-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.
-
-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
-
-@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 them follow this list.
-
-@cindex fields - list
-@cindex GNATS fields - list
-@table @code
-@cindex @code{Submitter-Id} field
-@cindex @code{>Submitter-Id:}
-@item >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.)
-
-@cindex @code{Originator} field
-@cindex @code{>Originator:}
-@item >Originator:
-(@sc{Text}) Originator's real name. The default is the value of the
-originator's environment variable @code{NAME}.
-
-@cindex @code{>Organization:}
-@cindex @code{Organization} field
-@item >Organization:
-(@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 file,,The @code{config} file}).
-@end ifclear
-@ifset SENDPR
-@code{send-pr} shell script.
-@end ifset
-
-@cindex @code{Confidential} field
-@cindex @code{>Confidential:}
-@cindex confidentiality in PRs
-@cindex PR confidentiality
-@item >Confidential:
-(@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{no}.
-
-@cindex @code{Synopsis} field
-@cindex @code{>Synopsis:}
-@item >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.
-
-@cindex @code{Severity} field
-@cindex @code{>Severity:}
-@item >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
-@noindent
-The default value is @samp{serious}.
-@sp 1
-
-@cindex @code{Priority} field
-@cindex @code{>Priority:}
-@item >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
-
-@cindex @code{Category} field
-@cindex @code{>Category:}
-@item >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 file,,The @code{categories} file}, for details.
-@end ifclear
-
-@cindex @code{Class} field
-@cindex @code{>Class:}
-@item >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
-
-@cindex @code{Release} field
-@cindex @code{>Release:}
-@item >Release:
-(@sc{Text}) Release or version number of the product, component or
-concept.
-
-@cindex @code{Environment} field
-@cindex @code{>Environment:}
-@item >Environment:
-(@sc{MultiText}) Description of the environment where the problem occured:
-machine architecture, operating system, host and target types,
-libraries, pathnames, etc.
-
-@cindex @code{Description} field
-@cindex @code{>Description:}
-@item >Description:
-(@sc{MultiText}) Precise description of the problem.
-
-@cindex @code{How-To-Repeat} field
-@cindex @code{>How-To-Repeat:}
-@item >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}.
-
-@cindex @code{Fix} field
-@cindex @code{>Fix:}
-@item >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 file,,The @code{categories} file}).
-@end ifclear
-
-@cindex @code{>Arrival-Date:}
-@cindex @code{Arrival-Date} field
-@item >Arrival-Date:
-(@sc{Text}) The time that this PR was received by @sc{gnats}. The date
-is provided automatically by @sc{gnats}.
-
-@cindex @code{>Audit-Trail:}
-@cindex @code{Audit-Trail} field
-@item >Audit-Trail:
-(@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
-
-@cindex subsequent mail
-@cindex other mail
-@cindex appending PRs
-@cindex saving related mail
-@cindex related mail
-@noindent
-The @samp{>Audit-Trail:} field also contains any mail messages received
-by @sc{gnats} related to this PR, in the order received.
-
-@cindex @code{>Unformatted:}
-@cindex @code{Unformatted} field
-@item
- >Unformatted:
-(@sc{MultiText}) Any random text found outside the fields in the
-original Problem Report.
-@end table
-
diff --git a/gnu/usr.bin/send-pr/doc/s-usage.texi b/gnu/usr.bin/send-pr/doc/s-usage.texi
deleted file mode 100644
index 5c9006b..0000000
--- a/gnu/usr.bin/send-pr/doc/s-usage.texi
+++ /dev/null
@@ -1,570 +0,0 @@
-@c $FreeBSD$
-
-@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
-* Submitting via e-mail:: Submitting a Problem Report via direct e-mail
-* 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} will set the @samp{>Originator:} field to
-the value of the @code{NAME} environment variable if it has been set;
-similarly, @samp{>Organization:} will be set to the value of @code{ORGANIZATION}.
-@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}. @xref{send-pr from the shell}.
-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 on your local machine 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 (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}. @emph{NOTE:} If you are using
-send-pr to send problem reports to the FreeBSD Project, this version of
-send-pr already has a customer ID in it and you do not need to request a
-new one.
-@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 -c @var{mail-address}
-@itemx --cc @var{mail-address}
-Places @var{mail-address} in the @code{Cc:} header field of the message
-to be sent.
-
-@item --request-id
-Sends a request for a @code{>Submitter-Id:} to the Support Site.
-
-@cindex listing valid categories
-@item -L
-@itemx --list
-Prints the list of valid @code{>Category:} values on standard output.
-No mail is sent.
-
-@item -s @var{severity}
-@itemx --severity @var{severity}
-@cindex @code{send-pr} fields
-Sets the initial value of the @code{>Severity:} field to @var{severity}.
-
-@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
-
-@c -------------------------------------------------------------------------
-@node Submitting via e-mail
-@section Submitting a Problem Report via direct e-mail
-@cindex Direct e-mail
-@cindex Submitting a PR via e-mail
-In addition to using @code{send-pr}, there is another way to submit a problem
-report. You can simply send an e-mail message to the support site.
-
-To do this, look at the address in the @samp{To:} field of the @code{send-pr}
-template. When you send unformatted e-mail to this address, @sc{gnats}
-processes the message as a new problem report, filling in as many fields from
-defaults as it can:
-
-@table @code
-@item Synopsis
-The @samp{>Synopsis} field is filled in by the @samp{Subject:} header.
-
-@item Submitter ID
-@sc{gnats} will try to derive the @samp{>Submitter} field from the address
-in the @samp{From:} header.
-
-@item Description
-All of the text in the body of the e-mail message is put into the
-@samp{>Description} field. Each line of the text is indented by one space,
-indicating that it is "quoted text" from the sender.
-@end table
-
-Other fields, such as category, version, severity, etc. are set to default
-values (if the @sc{gnats} administrator has set them).
-
-@c --------------------------------------------------------------------------
-@node Helpful hints
-@section Helpful hints
-@cindex helpful hints
-@cindex Using and Porting @sc{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/doc/send-pr.texi b/gnu/usr.bin/send-pr/doc/send-pr.texi
deleted file mode 100644
index 1abb296..0000000
--- a/gnu/usr.bin/send-pr/doc/send-pr.texi
+++ /dev/null
@@ -1,658 +0,0 @@
-@c $FreeBSD$
-
-\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: (send-pr). Reporting problems--using send-pr
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@ifinfo
-Copyright @copyright{} 1993, 1994, 1995 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, 1994, 1995 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 Solutions
-@cindex @sc{gnu} software support
-Cygnus Solutions in Sunnyvale, 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 Solutions 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 Solutions, 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 Solutions, Sunnyvale, CA 408 542 9600
-#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 Solutions, Sunnyvale, CA 408 542 9600
-#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 Solutions, Sunnyvale, CA 408 542 9600
-#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 Solutions, Sunnyvale, CA 408 542 9600
-#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}/share/gnats/@var{site}}}
-
-@item send-pr.el
-into @w{@file{@var{prefix}/share/emacs/lisp}}@footnote{If your main Emacs
-lisp repository is in a different directory from this, substitute that
-directory for @w{@file{@var{prefix}/share/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}/share/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 Solutions
-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}/share/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/doc/states.texi b/gnu/usr.bin/send-pr/doc/states.texi
deleted file mode 100644
index f38405c..0000000
--- a/gnu/usr.bin/send-pr/doc/states.texi
+++ /dev/null
@@ -1,58 +0,0 @@
-@c $FreeBSD$
-
-@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.
-
-Unless your site has customized states (see @pxref{states
-file,,,gnats}), @sc{gnats} uses these states:
-
-@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.
-
-@cindex @emph{analyzed} state
-@cindex state---@dfn{analyzed}
-@item 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.
-
-@cindex @emph{feedback} state
-@cindex state---@dfn{feedback}
-@item 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.
-
-@cindex @emph{closed} state
-@cindex state---@dfn{closed}
-@cindex final state (@dfn{closed})
-@item 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.
-
-@cindex @emph{suspended} state
-@cindex state---@dfn{suspended}
-@item 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
-
diff --git a/gnu/usr.bin/send-pr/doc/version.texi b/gnu/usr.bin/send-pr/doc/version.texi
deleted file mode 100644
index bffedc2..0000000
--- a/gnu/usr.bin/send-pr/doc/version.texi
+++ /dev/null
@@ -1,3 +0,0 @@
-@c $FreeBSD$
-
-@set VERSION 3.113
diff --git a/gnu/usr.bin/send-pr/install-sid.sh b/gnu/usr.bin/send-pr/install-sid.sh
deleted file mode 100755
index f7f24e5..0000000
--- a/gnu/usr.bin/send-pr/install-sid.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/sh
-# Drop in the SUBMITTER id into a site's installed send-pr script.
-# 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).
-#
-# 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.
-
-COMMAND=`echo $0 | sed -e 's,.*/,,g'`
-USAGE="Usage: $COMMAND [--install-dir=prefix] [--help] [--version] submitter-id"
-
-VERSION=3.2
-
-BINDIR=@BINDIR@
-
-SUBMITTER=
-TEMP=/tmp/sp$$
-
-if [ $# -eq 0 ]; then
- echo "$USAGE"
- exit 1
-fi
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -install-dir=*|--install-dir=*|--install-di=*|--install-d=*|--install-=*|--install=*|--instal=*|--insta=*|--inst=*|--ins=*|--in=*|--i=*)
- I=`echo "$1" | sed 's/-*i[a-z\-]*=//'`
- BINDIR=$I/bin ;;
- --version) echo $COMMAND version $VERSION ; exit 1 ;;
- -*) echo "$USAGE" ; exit 1 ;;
- *) SUBMITTER=$1 ;;
- esac
- shift
-done
-
-path=`echo $0 | sed -e "s;${COMMAND};;"`
-
-[ -z "$path" ] && path=.
-
-if [ -f $BINDIR/send-pr ]; then
- SPPATH=$BINDIR/send-pr
-elif [ -f $path/send-pr ]; then
- SPPATH=$path/send-pr
-else
- echo "$COMMAND: cannot find \`$BINDIR/send-pr' or \`$path/send-pr'" >&2
- exit 1
-fi
-
-trap 'rm -f $TEMP ; exit 0' 0
-trap 'echo "$COM: Aborting ..."; rm -f $TEMP ; exit 1' 1 2 3 13 15
-
-sed -e "s/^SUBMITTER=.*/SUBMITTER=${SUBMITTER}/" $SPPATH > $TEMP
-
-if grep $SUBMITTER $TEMP > /dev/null; then
- cp $SPPATH $SPPATH.orig &&
- rm -f $SPPATH &&
- cp $TEMP $SPPATH &&
- chmod a+rx $SPPATH &&
- rm -f $TEMP $SPPATH.orig ||
- { echo "$COMMAND: unable to replace send-pr" >&2 ; exit 1; }
-else
- echo "$COMMAND: something went wrong when sed-ing the submitter into send-pr" >&2
- exit 1
-fi
-
-echo "$COMMAND: \`$SUBMITTER' is now the default submitter ID for send-pr"
-
-exit 0
diff --git a/gnu/usr.bin/send-pr/send-pr-el.in b/gnu/usr.bin/send-pr/send-pr-el.in
deleted file mode 100644
index 8195ecb..0000000
--- a/gnu/usr.bin/send-pr/send-pr-el.in
+++ /dev/null
@@ -1,813 +0,0 @@
-;;;; -*-emacs-lisp-*-
-;;;;---------------------------------------------------------------------------
-;;;; EMACS interface for send-pr (by Heinz G. Seidl)
-;;;; Slightly hacked by Brendan Kehoe (brendan@cygnus.com).
-;;;;
-;;;; This file is part of the Problem Report Management System (GNATS)
-;;;; Copyright 1992, 1993, 1997 Cygnus Support
-;;;;
-;;;; 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 of the License, 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 Library General Public
-;;;; License along with this program; if not, write to the Free
-;;;; Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;;;;
-;;;;---------------------------------------------------------------------------
-;;;;
-;;;; This file contains the EMACS interface to the Problem Report Management
-;;;; System (GNATS):
-;;;;
-;;;; - The `send-pr' command and the `send-pr-mode' for sending
-;;;; Problem Reports (PRs).
-;;;;
-;;;; For more information about how to send a PR see send-pr(1).
-;;;;
-;;;;---------------------------------------------------------------------------
-;;;;
-;;;; Configuration: the symbol `DEFAULT-RELEASE' can be replaced by
-;;;; site/release specific strings during the configuration/installation
-;;;; process.
-;;;;
-;;;; Install this file in your EMACS library directory.
-;;;;
-;;;;---------------------------------------------------------------------------
-;;;;
-;;;; $FreeBSD$
-
-(provide 'send-pr)
-
-;;;;---------------------------------------------------------------------------
-;;;; Customization: put the following forms into your default.el file
-;;;; (or into your .emacs)
-;;;;---------------------------------------------------------------------------
-
-;(autoload 'send-pr-mode "send-pr"
-; "Major mode for sending problem reports." t)
-
-;(autoload 'send-pr "send-pr"
-; "Command to create and send a problem report." t)
-
-;;;;---------------------------------------------------------------------------
-;;;; End of Customization Section
-;;;;---------------------------------------------------------------------------
-
-(autoload 'server-buffer-done "server")
-(defvar server-buffer-clients nil)
-(defvar mail-self-blind nil)
-(defvar mail-default-reply-to nil)
-
-(defconst send-pr::version "3.113")
-
-(defvar gnats:root "/home/gnats"
- "*The top of the tree containing the GNATS database.")
-
-;;;;---------------------------------------------------------------------------
-;;;; hooks
-;;;;---------------------------------------------------------------------------
-
-(defvar text-mode-hook nil) ; we define it here in case it's not defined
-(defvar send-pr-mode-hook text-mode-hook "Called when send-pr is invoked.")
-
-;;;;---------------------------------------------------------------------------
-;;;; Domains and default values for (some of) the Problem Report fields;
-;;;; constants and definitions.
-;;;;---------------------------------------------------------------------------
-
-(defconst gnats::emacs-19p
- (not (or (and (boundp 'epoch::version) epoch::version)
- (string-lessp emacs-version "19")))
- "Is this emacs v19?")
-
-;;; This has to be here rather than at the bottom of this file with
-;;; the other utility functions because it is used by
-;;; gnats::get-config, which is called when send-pr.el is being
-;;; loaded (see the "defconst" below), before the whole file has been
-;;; loaded.
-
-(defun gnats::find-safe-default-directory (&optional buffer)
-"If the directory referred to by `default-directory' for the current
-buffer (or for optional argument BUFFER) does not exist, set it to the home
-directory of the current user if that exists, or to `/'.
-
-Returns the final value of default-directory in the buffer."
- (let ((homedir (expand-file-name "~/")))
- (save-excursion
- (if buffer (set-buffer buffer))
- (if (not (file-exists-p default-directory))
- (if (file-exists-p homedir)
- (setq default-directory homedir)
- (setq default-directory "/")))
- default-directory)))
-
-;;; These may be changed during configuration/installation or by the individual
-;;; user in his/her .emacs file.
-;;;
-(defun gnats::get-config (var)
- (let ((shell-file-name "/bin/sh")
- (buf (generate-new-buffer " *GNATS config*"))
- ret)
- (save-excursion
- (set-buffer buf)
- (shell-command-on-region
- (point-min) (point-max)
- (concat ". " gnats:root "/gnats-adm/config; echo $" var ) t)
- (goto-char (point-min))
- ; We have to use get-buffer, since shell-command-on-region will wipe
- ; out the buffer if there's no output from the command.
- (if (or (not (get-buffer "*Shell Command Output*"))
- (looking-at "^\\.:\\|/bin/sh:\\|\n"))
- (setq ret nil)
- (setq ret (buffer-substring (point-min) (- (point-max) 1)))))
- (if (and ret (string-equal ret "")) (setq ret nil))
- (kill-buffer buf)
- ret))
-
-;; const because it must match the script's value
-(defconst send-pr:datadir (or (gnats::get-config "DATADIR") "@DATADIR@")
- "*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") "freefall")
- "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
-if using the default site (buffer local).")
-
-(defvar send-pr:::categories nil
- "Buffer local list of available categories, derived at runtime from
-send-pr:::site and send-pr::category-alist.")
-(defvar send-pr::category-alist nil
- "Alist of GNATS support sites and the categories supported at each; computed
-at runtime.")
-
-;;; Ideally we would get all the following values from a central database
-;;; during runtime instead of having them here in the code.
-;;;
-(defconst send-pr::fields
- (` (("Category" send-pr::set-categories
- (, (or (gnats::get-config "DEFAULT_CATEGORY") nil)) enum)
- ("Class" (("sw-bug") ("doc-bug") ("change-request") ("update") ("maintainer-update"))
- (, (or (gnats::get-config "DEFAULT_CLASS") 0)) enum)
- ("Confidential" (("yes") ("no"))
- (, (or (gnats::get-config "DEFAULT_CONFIDENTIAL") 1)) enum)
- ("Severity" (("non-critical") ("serious") ("critical"))
- (, (or (gnats::get-config "DEFAULT_SEVERITY") 1)) enum)
- ("Priority" (("low") ("medium") ("high"))
- (, (or (gnats::get-config "DEFAULT_PRIORITY") 1)) enum)
- ("Release" nil
- (, (or (gnats::get-config "DEFAULT_RELEASE") "@DEFAULT_RELEASE@"))
- text)
- ("Submitter-Id" nil
- (, (or (gnats::get-config "DEFAULT_SUBMITTER") "unknown")) text)
- ("Synopsis" nil nil text
- (lambda (a b c) (gnats::set-mail-field "Subject" c)))))
- "AList, keyed on the name of the field, of:
-1) The field name.
-2) The list of completions. This can be a list, a function to call, or nil.
-3) The default value.
-4) The type of the field.
-5) A sub-function to call when changed.")
-
-(defvar gnats::fields nil)
-
-(defmacro gnats::push (i l)
- (` (setq (, l) (cons (,@ (list i l))))))
-
-(defun send-pr::set-categories (&optional arg)
- "Get the list of categories for the current site out of
-send-pr::category-alist if there or from send-pr if not. With arg, force
-update."
- ;;
- (let ((entry (assoc send-pr:::site send-pr::category-alist)))
- (or (and entry (null arg))
- (let ((oldpr (getenv "GNATS_ROOT")) cats)
- (send-pr::set-sites arg)
- (setenv "GNATS_ROOT" gnats:root)
- (setq cats (gnats::get-value-from-shell
- "send-pr" "-CL" send-pr:::site))
- (setenv "GNATS_ROOT" oldpr)
- (if entry (setcdr entry cats)
- (setq entry (cons send-pr:::site cats))
- (gnats::push entry send-pr::category-alist))))
- (setq send-pr:::categories (cdr entry))))
-
-(defun send-pr::set-sites (&optional arg)
- "Get the list of sites (by listing the contents of DATADIR/gnats) and assign
-it to send-pr::sites. With arg, force update."
- (or (and (null arg) send-pr::sites)
- (progn
- (setq send-pr::sites nil)
- (mapcar
- (function
- (lambda (file)
- (or (memq t (mapcar (function (lambda (x) (string= x file)))
- '("." ".." "pr-edit" "pr-addr")))
- (not (file-readable-p file))
- (gnats::push (list (file-name-nondirectory file))
- send-pr::sites))))
- (directory-files (format "%s/gnats" send-pr:datadir) t))
- (setq send-pr::sites (reverse send-pr::sites)))))
-
-(defconst send-pr::pr-buffer-name "*send-pr*"
- "Name of the temporary buffer, where the problem report gets composed.")
-
-(defconst send-pr::err-buffer-name "*send-pr-error*"
- "Name of the temporary buffer, where send-pr error messages appear.")
-
-(defvar send-pr:::err-buffer nil
- "The error buffer used by the current PR buffer.")
-
-(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 17 "Indent for formatting the value.")
-
-;;;;---------------------------------------------------------------------------
-;;;; `send-pr' - command for creating and sending of problem reports
-;;;;---------------------------------------------------------------------------
-
-(fset 'send-pr 'send-pr:send-pr)
-(defun send-pr:send-pr (&optional site)
- "Create a buffer and read in the result of `send-pr -P'.
-When finished with editing the problem report use \\[send-pr:submit-pr]
-to send the PR with `send-pr -b -f -'."
- ;;
- (interactive
- (if current-prefix-arg
- (list (completing-read "Site: " (send-pr::set-sites 'recheck) nil t
- send-pr:default-site))))
- (or site (setq site send-pr:default-site))
- (let ((buf (get-buffer send-pr::pr-buffer-name)))
- (if (or (not buf)
- (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)
- (switch-to-buffer (get-buffer-create send-pr::pr-buffer-name))
- (setq default-directory (expand-file-name "~/"))
- (auto-save-mode auto-save-default)
- (let ((oldpr (getenv "GNATS_ROOT"))
- (case-fold-search nil))
- (setenv "GNATS_ROOT" gnats:root)
- (send-pr::insert-template site)
- (setenv "GNATS_ROOT" oldpr)
- (goto-char (point-min))
- (if (looking-at "send-pr:")
- (cond ((looking-at "send-pr: .* does not have a categories list")
- (setq send-pr::sites nil)
- (error "send-pr: the GNATS site %s does not have a categories list" site))
- (t (error (buffer-substring (point-min) (point-max)))))
- (save-excursion
- ;; Clear cruft inserted by bdamaged .cshrcs
- (goto-char 1)
- (re-search-forward "^SEND-PR:")
- (delete-region 1 (match-beginning 0)))))
- (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
- (and send-pr:::err-buffer (kill-buffer send-pr:::err-buffer))
- (kill-buffer nil)
- (message "send-pr: no categories found"))
- (or (stringp mail-default-reply-to)
- (setq mail-default-reply-to (getenv "REPLYTO")))
- (and mail-default-reply-to
- (gnats::set-mail-field "Reply-To" mail-default-reply-to))
- (and mail-self-blind
- (gnats::set-mail-field "BCC" (user-login-name)))
- (mapcar 'send-pr::maybe-change-field send-pr::fields)
- (gnats::position-on-field "Description")
- (message (substitute-command-keys
- "To send the problem report use: \\[send-pr:submit-pr]"))))
-
-(defvar send-pr::template-alist nil
- "An alist containing the output of send-pr -P <sitename> for various sites.")
-
-(defun send-pr::insert-template (site)
- (let ((elt (assoc site send-pr::template-alist)))
- (if elt
- (save-excursion (insert (cdr elt)))
- (call-process "send-pr" nil t nil "-P" site)
- (save-excursion
- (setq send-pr::template-alist
- (cons (cons site (buffer-substring (point-min) (point-max)))
- send-pr::template-alist))))))
-
-(fset 'do-send-pr 'send-pr:submit-pr) ;backward compat
-(defun send-pr:submit-pr ()
- "Pipe the contents of the buffer *send-pr* to `send-pr -f -.' unless this
-buffer was loaded with emacsclient, in which case save the buffer and exit."
- ;;
- (interactive)
- (cond
- ((and (boundp 'server-buffer-clients)
- server-buffer-clients)
- (let ((buffer (current-buffer))
- (version-control nil) (buffer-backed-up nil))
- (save-buffer buffer)
- (kill-buffer buffer)
- (server-buffer-done buffer)))
- (send-pr:::spawn-to-send
- (if (or (buffer-modified-p)
- (not send-pr:::sent)
- (y-or-n-p "PR already sent; resend? "))
- (progn
- (or (and send-pr:::err-buffer
- (buffer-name send-pr:::err-buffer))
- (setq send-pr:::err-buffer
- (get-buffer-create send-pr::err-buffer-name)))
- (let ((err-buffer send-pr:::err-buffer) mesg ok)
- (save-excursion (set-buffer err-buffer) (erase-buffer))
- (message "running send-pr...")
- (let ((oldpr (getenv "GNATS_ROOT")))
- (setenv "GNATS_ROOT" gnats:root)
- ;; ensure that a final newline is present:
- (if (not (equal (char-after (1- (point-max))) ?\n))
- (save-excursion (goto-char (point-max))
- (insert ?\n)))
- (call-process-region (point-min) (point-max) "send-pr"
- 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 this kluge to find out whether send-pr succeeded.
- (if (save-excursion
- (set-buffer err-buffer)
- (goto-char (point-min))
- (setq mesg (buffer-substring (point-min) (- (point-max) 1)))
- (search-forward "problem report sent" nil t))
- (progn (message mesg)
- (kill-buffer err-buffer)
- (delete-auto-save-file-if-necessary)
- (set-buffer-modified-p nil)
- (setq send-pr:::sent t)
- (bury-buffer))
- (pop-to-buffer err-buffer))
- ))))
- (t
- (save-buffer)
- (message "Exit emacs to send the PR."))))
-
-;;;;---------------------------------------------------------------------------
-;;;; send-pr:send-pr-mode mode
-;;;;---------------------------------------------------------------------------
-
-(defvar send-pr-mode-map
- (let ((map (make-sparse-keymap)))
- (define-key map "\C-c\C-c" 'send-pr:submit-pr)
- (define-key map "\C-c\C-f" 'gnats:change-field)
- (define-key map "\M-n" 'gnats:next-field)
- (define-key map "\M-p" 'gnats:previous-field)
- (define-key map "\C-\M-f" 'gnats:forward-field)
- (define-key map "\C-\M-b" 'gnats:backward-field)
- map)
- "Keymap for send-pr mode.")
-
-(defconst gnats::keyword "^>\\([-a-zA-Z]+\\):")
-(defconst gnats::before-keyword "[ \t\n\f]*[\n\f]+>\\([-a-zA-Z]+\\):")
-(defconst gnats::after-keyword "^>\\([-a-zA-Z]+\\):[ \t\n\f]+")
-
-(fset 'send-pr-mode 'send-pr:send-pr-mode)
-(defun send-pr:send-pr-mode ()
- "Major mode for submitting problem reports.
-For information about the form see gnats(1) and send-pr(1).
-Special commands: \\{send-pr-mode-map}
-Turning on send-pr-mode calls the value of the variable send-pr-mode-hook,
-if it is not nil."
- (interactive)
- (gnats::patch-exec-path)
- (put 'send-pr:send-pr-mode 'mode-class 'special)
- (kill-all-local-variables)
- (setq major-mode 'send-pr:send-pr-mode)
- (setq mode-name "send-pr")
- (use-local-map send-pr-mode-map)
- (set-syntax-table text-mode-syntax-table)
- (setq local-abbrev-table text-mode-abbrev-table)
- (setq buffer-offer-save t)
- (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 'send-pr:::sent)
- (setq send-pr:::sent nil)
- (make-local-variable 'paragraph-separate)
- (setq paragraph-separate (concat (default-value 'paragraph-separate)
- "\\|" gnats::keyword "[ \t\n\f]*$"))
- (make-local-variable 'paragraph-start)
- (setq paragraph-start (concat (default-value 'paragraph-start)
- "\\|" gnats::keyword))
- (run-hooks 'send-pr-mode-hook)
- t)
-
-;;;;---------------------------------------------------------------------------
-;;;; Functions to read and replace field values.
-;;;;---------------------------------------------------------------------------
-
-(defun gnats::position-on-field (field &optional quiet)
- (goto-char (point-min))
- (if (not (re-search-forward (concat "^>" field ":") nil t))
- (if quiet
- nil
- (error "Field `>%s:' not found." field))
- (re-search-forward "[ \t\n\f]*")
- (if (looking-at gnats::keyword)
- (backward-char 1))
- t))
-
-(defun gnats::mail-position-on-field (field)
- (let (end
- (case-fold-search t))
- (goto-char (point-min))
- (re-search-forward "^$")
- (setq end (match-beginning 0))
- (goto-char (point-min))
- (if (not (re-search-forward (concat "^" field ":") end 'go-to-end))
- (insert field ": \n")
- (re-search-forward "[ \t\n\f]*"))
- (skip-chars-backward "\n")
- t))
-
-(defun gnats::field-contents (field &optional elem move)
- (let (pos)
- (unwind-protect
- (save-excursion
- (if (not (gnats::position-on-field field t))
- nil
- (setq pos (point-marker))
- (if (or (looking-at "<.*>$") (eolp))
- t
- (looking-at ".*$") ; to set match-{beginning,end}
- (gnats::nth-word
- (buffer-substring (match-beginning 0) (match-end 0))
- elem))))
- (and move pos (goto-char pos)))))
-
-(defun gnats::functionp (thing)
- (or (and (symbolp thing) (fboundp thing))
- (and (listp thing) (eq (car thing) 'lambda))))
-
-(defun gnats::field-values (field)
- "Return the possible (known) values for field FIELD."
- (let* ((fields (if (eq major-mode 'gnats:gnats-mode) gnats::fields
- send-pr::fields))
- (thing (elt (assoc field fields) 1)))
- (cond ((gnats::functionp thing) (funcall thing))
- ((listp thing) thing)
- (t (error "ACK")))))
-
-(defun gnats::field-default (field)
- "Return the default value for field FIELD."
- (let* ((fields (if (eq major-mode 'gnats:gnats-mode) gnats::fields
- send-pr::fields))
- (thing (elt (assoc field fields) 2)))
- (cond ((stringp thing) thing)
- ((null thing) "")
- ((numberp thing) (car (elt (gnats::field-values field) thing)))
- ((gnats::functionp thing)
- (funcall thing (gnats::field-contents field)))
- ((eq thing t) (gnats::field-contents field))
- (t (error "ACK")))))
-
-(defun gnats::field-type (field)
- "Return the type of field FIELD."
- (let* ((fields (if (eq major-mode 'gnats:gnats-mode) gnats::fields
- send-pr::fields))
- (thing (elt (assoc field fields) 3)))
- thing))
-
-(defun gnats::field-action (field)
- "Return the extra handling function for field FIELD."
- (let* ((fields (if (eq major-mode 'gnats:gnats-mode) gnats::fields
- send-pr::fields))
- (thing (elt (assoc field fields) 4)))
- (cond ((null thing) 'ignore)
- ((gnats::functionp thing) thing)
- (t (error "ACK")))))
-
-;;;;---------------------------------------------------------------------------
-;;;; Point movement functions
-;;;;---------------------------------------------------------------------------
-
-(or (fboundp 'defsubst) (fset 'defsubst 'defun))
-
-(defun send-pr::maybe-change-field (field)
- (setq field (car field))
- (let ((thing (gnats::field-contents field)))
- (and thing (eq t thing)
- (not (eq 'multi-text (gnats::field-type field)))
- (gnats:change-field field))))
-
-(defun gnats:change-field (&optional field default)
- "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)
- (or field current-prefix-arg (setq field (gnats::current-field)))
- (or 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")
- (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)))))
- (setq new default))
- (gnats::set-field field new)
- (funcall (gnats::field-action field) field old new)
- new)))
-
-(defun gnats::set-field (field value)
- (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)
- (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.
-If where is nil, then point is not changed; if where is t then point is moved
-to the beginning of the keyword, otherwise it is moved to the beginning
-of the white space it was in."
- ;;
- (if (looking-at gnats::before-keyword)
- (prog1 t
- (cond ((eq where t)
- (re-search-forward "^>") (backward-char))
- ((not (eq where nil))
- (re-search-backward "[^ \t\n\f]") (forward-char))))
- nil))
-
-(defun gnats::after-keyword (&optional where)
- "Returns t if point is in some white space after a keyword.
-If where is nil, then point is not changed; if where is t then point is moved
-to the beginning of the keyword, otherwise it is moved to the end of the white
-space it was in."
- ;;
- (if (gnats::looking-after gnats::after-keyword)
- (prog1 t
- (cond ((eq where t)
- (re-search-backward "^>"))
- ((not (eq where nil))
- (re-search-forward "[^ \t\n\f]") (backward-char))))
- nil))
-
-(defun gnats::in-keyword (&optional where)
- "Returns t if point is within a keyword.
-If where is nil, then point is not changed; if where is t then point is moved
-to the beginning of the keyword."
- ;;
- (let ((old-point (point-marker)))
- (beginning-of-line)
- (cond ((and (looking-at gnats::keyword)
- (< old-point (match-end 0)))
- (prog1 t
- (if (eq where t)
- t
- (goto-char old-point))))
- (t (goto-char old-point)
- nil))))
-
-(defun gnats::forward-bofield ()
- "Moves point to the beginning of a field. Assumes that point is in the
-keyword."
- ;;
- (if (re-search-forward "[ \t\n\f]+[^ \t\n\f]" (point-max) '-)
- (backward-char)
- t))
-
-(defun gnats::backward-eofield ()
- "Moves point to the end of a field. Assumes point is in the keyword."
- ;;
- (if (re-search-backward "[^ \t\n\f][ \t\n\f]+" (point-min) '-)
- (forward-char)
- t))
-
-(defun gnats::forward-eofield ()
- "Moves point to the end of a field. Assumes that point is in the field."
- ;;
- ;; look for the next field
- (if (re-search-forward gnats::keyword (point-max) '-)
- (progn (beginning-of-line) (gnats::backward-eofield))
- (re-search-backward "[^ \t\n\f][ \t\n\f]*" (point-min) '-)
- (forward-char)))
-
-(defun gnats::backward-bofield ()
- "Moves point to the beginning of a field. Assumes that point is in the
-field."
- ;;
- ;;look for previous field
- (if (re-search-backward gnats::keyword (point-min) '-)
- (gnats::forward-bofield)
- t))
-
-
-(defun gnats:forward-field ()
- "Move point forward to the end of the field or to the beginning of the next
-field."
- ;;
- (interactive)
- (if (or (gnats::before-keyword t) (gnats::in-keyword t)
- (gnats::after-keyword t))
- (gnats::forward-bofield)
- (gnats::forward-eofield)))
-
-(defun gnats:backward-field ()
- "Move point backward to the beginning/end of a field."
- ;;
- (interactive)
- (backward-char)
- (if (or (gnats::before-keyword t) (gnats::in-keyword t)
- (gnats::after-keyword t))
- (gnats::backward-eofield)
- (gnats::backward-bofield)))
-
-(defun gnats:next-field ()
- "Move point to the beginning of the next field."
- ;;
- (interactive)
- (if (or (gnats::before-keyword t) (gnats::in-keyword t)
- (gnats::after-keyword t))
- (gnats::forward-bofield)
- (if (re-search-forward gnats::keyword (point-max) '-)
- (gnats::forward-bofield)
- t)))
-
-(defun gnats:previous-field ()
- "Move point to the beginning of the previous field."
- ;;
- (interactive)
- (backward-char)
- (if (or (gnats::after-keyword t) (gnats::in-keyword t)
- (gnats::before-keyword t))
- (progn (re-search-backward gnats::keyword (point-min) '-)
- (gnats::forward-bofield))
- (gnats::backward-bofield)))
-
-(defun gnats:beginning-of-field ()
- "Move point to the beginning of the current field."
- (interactive)
- (cond ((gnats::in-keyword t)
- (gnats::forward-bofield))
- ((gnats::after-keyword 0))
- (t
- (gnats::backward-bofield))))
-
-(defun gnats::current-field ()
- (save-excursion
- (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
-;;;;---------------------------------------------------------------------------
-
-(defun gnats::looking-after (regex)
- "Returns t if point is after regex."
- ;;
- (let* ((old-point (point))
- (start (if (eobp)
- old-point
- (forward-char) (point))))
- (cond ((re-search-backward regex (point-min) t)
- (goto-char old-point)
- (cond ((eq (match-end 0) start)
- t))))))
-
-(defun gnats::nth-word (string &optional elem)
- "Returns the elem-th word of the string.
-If elem is nil, then the first wort is returned, if elem is 0 then
-the whole string is returned."
- ;;
- (if (integerp elem)
- (cond ((eq elem 0) string)
- ((eq elem 1) (gnats::first-word string))
- ((equal string "") "")
- ((>= elem 2)
- (let ((i 0) (value ""))
- (setq string ; strip leading blanks
- (substring string (or (string-match "[^ \t]" string) 0)))
- (while (< i elem)
- (setq value
- (substring string 0
- (string-match "[ \t]*$\\|[ \t]+" string)))
- (setq string
- (substring string (match-end 0)))
- (setq i (+ i 1)))
- value)))
- (gnats::first-word string)))
-
-(defun gnats::first-word (string)
- (setq string
- (substring string (or (string-match "[^ \t]" string) 0)))
- (substring string 0 (string-match "[ \t]*$\\|[ \t]+" string)))
-
-;;;;---------------------------------------------------------------------------
-
-(defun gnats::patch-exec-path ()
- ;;
- "Replaces `//' by `/' in `exec-path'."
- ;;
- ;(make-local-variable 'exec-path)
- (let ((err-buffer (get-buffer-create " *gnats::patch-exec-path*"))
- (ret))
- (setq exec-path (save-excursion (set-buffer err-buffer)
- (prin1 exec-path err-buffer)
- (goto-char (point-min))
- (while (search-forward "//" nil t)
- (replace-match "/" nil t))
- (goto-char (point-min))
- (setq ret (read err-buffer))
- (kill-buffer err-buffer)
- ret
- ))))
-
-(defun gnats::get-value-from-shell (&rest command)
- "Execute shell command to get a list of valid values for `variable'."
- ;;
- (let ((err-buffer (get-buffer-create " *gnats::get-value-from-shell*")))
- (save-excursion
- (set-buffer err-buffer)
- (unwind-protect
- (condition-case var
- (progn
- (apply 'call-process
- (car command) nil err-buffer nil (cdr command))
- (goto-char (point-min))
- (if (looking-at "[-a-z]+: ")
- (error (buffer-substring (point-min) (point-max))))
- (read err-buffer))
- (error nil))
- (kill-buffer err-buffer)))))
-
-(or (fboundp 'setenv)
- (defun setenv (variable &optional value)
- "Set the value of the environment variable named VARIABLE to VALUE.
-VARIABLE should be a string. VALUE is optional; if not provided or is
-`nil', the environment variable VARIABLE will be removed.
-This function works by modifying `process-environment'."
- (interactive "sSet environment variable: \nsSet %s to value: ")
- (if (string-match "=" variable)
- (error "Environment variable name `%s' contains `='" variable)
- (let ((pattern (concat "\\`" (regexp-quote (concat variable "="))))
- (case-fold-search nil)
- (scan process-environment))
- (while scan
- (cond
- ((string-match pattern (car scan))
- (if (eq nil value)
- (setq process-environment (delq (car scan)
- process-environment))
- (setcar scan (concat variable "=" value)))
- (setq scan nil))
- ((null (setq scan (cdr scan)))
- (setq process-environment
- (cons (concat variable "=" value)
- process-environment)))))))))
-
-;;;; end of send-pr.el
diff --git a/gnu/usr.bin/send-pr/send-pr.1 b/gnu/usr.bin/send-pr/send-pr.1
deleted file mode 100644
index 49fd42b..0000000
--- a/gnu/usr.bin/send-pr/send-pr.1
+++ /dev/null
@@ -1,355 +0,0 @@
-.\" -*- nroff -*-
-.\" ---------------------------------------------------------------------------
-.\" man page for send-pr (by Heinz G. Seidl, hgs@cygnus.com)
-.\" updated Feb 1993 for GNATS 3.00 by Jeffrey Osier, jeffrey@cygnus.com
-.\"
-.\" This file is part of the Problem Report Management System (GNATS)
-.\" Copyright 1992 Cygnus Support
-.\"
-.\" 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 of the License, 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 Library General Public
-.\" License along with this program; if not, write to the Free
-.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
-.\"
-.\" ---------------------------------------------------------------------------
-.\"
-.\" $FreeBSD$
-.nh
-.TH SEND-PR 1 3.113 "October 2006"
-.SH NAME
-send-pr \- send problem report (PR) to a central support site
-.SH SYNOPSIS
-.B send-pr
-[
-.I site
-]
-[
-.B \-f
-.I problem-report
-]
-[
-.B \-t
-.I mail-address
-]
-.br
-.in +0.8i
-[
-.B \-P
-]
-[
-.B \-L
-]
-[
-.B \-s
-.I severity
-]
-[
-.B \-V
-]
-.br
-[
-.B \-\-version
-]
-[
-.B \-c
-.I address
-]
-[
-.B \-a
-.I file
-]
-.SH DESCRIPTION
-.B send-pr
-is a tool used to submit
-.I problem reports
-.\" SITE ADMINISTRATORS - change this if you use a local default
-(PRs) to a central support site. In most cases the correct
-.I site
-will be the default. This argument indicates the support site which
-is responsible for the category of problem involved. Some sites may
-use a local address as a default.
-.I site
-values are defined by using the
-.BR aliases (5).
-.LP
-.B 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,
-.B send-pr
-sends the completed form to the
-.I Problem Report Management System
-(\fBGNATS\fR) at a central support site. At the support site, the PR
-is assigned a unique number and is stored in the \fBGNATS\fR database
-according to its category and submitter-id. \fBGNATS\fR automatically
-replies with an acknowledgement, citing the category and the PR
-number.
-.LP
-To ensure that a PR is handled promptly, it should contain
-one of the available \fIcategories\fR to identify the
-problem area. (Use
-.B `send-pr -L'
-to see a list of categories.)
-.LP
-The more precise your problem description and the more complete your
-information, the faster your support team can solve your problems.
-.LP
-.B send-pr
-depends on a correctly configured mail submission system to work correctly.
-If, for any reason, sending mail is not working, problem reports can be
-submitted over the web, through:
-.IP
-.I http://www.freebsd.org/send-pr.html
-.SH OPTIONS
-.TP
-.BI \-f " problem-report"
-specify a file (\fIproblem-report\fR) which already contains a
-complete problem report.
-.B send-pr
-sends the contents of the file without invoking the editor. If
-the value for
-.I problem-report
-is
-.BR `\|\-\|' ,
-then
-.B send-pr
-reads from standard input.
-.TP
-.BI \-s " severity"
-Give the problem report the severity
-.IR severity .
-.TP
-.BI \-t " mail-address"
-Change mail address at the support site for problem reports. The
-default
-.I mail-address
-is the address used for the default
-.IR site .
-Use the
-.I site
-argument rather than this option in nearly all cases.
-.TP
-.BI \-c " address"
-Put
-.I address
-in the
-.B Cc:
-header of the message.
-.TP
-.BI \-a " file"
-Copy the specified
-.I file
-into the
-.B Fix:
-section.
-Binary files are uuencoded.
-.TP
-.B \-P
-print the form specified by the environment variable
-.B PR_FORM
-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.
-.TP
-.B \-V
-Display the
-.B send-pr
-version number.
-This may also be specified as
-.B \-\-version.
-.LP
-Note: use
-.B send-pr
-to submit problem reports rather than mailing them directly. Using
-both the template and
-.B send-pr
-itself will help ensure all necessary information will reach the
-support site.
-.SH FREEBSD CATEGORIES
-.TP
-.B advocacy
-This used to be for the advocacy WWW pages.
-Now deprecated in favour of the
-.B www
-category, relevant alternative use of this category is encouraged.
-.TP
-.B alpha
-Alpha processor specific problems.
-.TP
-.B amd64
-AMD64 processor specific problems.
-.TP
-.B arm
-ARM processor specific problems.
-.TP
-.B bin
-Corrections or enhancements to system executables.
-.TP
-.B conf
-Corrections or enhancements to the system configuration files.
-.TP
-.B docs
-Corrections or enhancements to the manpages or other documentation.
-.TP
-.B gnu
-Corrections or enhancements to the GNU contributed software.
-.TP
-.B i386
-Intel x86 processor specific problems.
-.TP
-.B ia64
-Intel ia64 processor specific problems.
-.TP
-.B java
-Problems related to Java.
-.TP
-.B kern
-Changes or enhancements to the architecture independent kernel sources.
-.TP
-.B misc
-Problems that do not fit into any of the other categories.
-.TP
-.B ports
-Corrections or enhancements (including new ports) to the ports collection.
-.TP
-.B powerpc
-PowerPC processor specific problems.
-.TP
-.B sparc64
-SPARC processor specific problems.
-.TP
-.B standards
-Standards conformance issues.
-.TP
-.B threads
-Problems related to threading on FreeBSD.
-.TP
-.B usb
-Problems related to the USB subsystem.
-.TP
-.B www
-Changes or enhancements to the FreeBSD website.
-.SH ENVIRONMENT
-The environment variable
-.B EDITOR
-specifies the editor to invoke on the template.
-.br
-default:
-.B vi
-.sp
-If the environment variable
-.B MAIL_AGENT
-is set, its value is used as the path + command line arguments of the
-executable to be invoked for sending the problem report (which will be
-provided via standard input).
-.br
-This can be useful if you either use a MTA other than sendmail or need
-to provide additional parameters, such as the envelope sender on
-machines without a valid FQDN.
-.br
-Default value:
-.B /usr/sbin/sendmail -oi -t
-.sp
-If the environment variable
-.B PR_FORM
-is set, then its value is used as the file name of the template for
-your problem-report editing session. You can use this to start with a
-partially completed form (for example, a form with the identification
-fields already completed).
-.SH "HOW TO FILL OUT A PROBLEM REPORT"
-Problem reports have to be in a particular form so that a program can
-easily manage them. Please remember the following guidelines:
-.IP \(bu 3m
-describe only
-.B one problem
-with each problem report.
-.IP \(bu 3m
-For follow-up mail, use the same subject line as the one in the automatic
-acknowledgement. It consists of category, PR number and the original synopsis
-line. This allows the support site to relate several mail messages to a
-particular PR and to record them automatically.
-.IP \(bu 3m
-Please try to be as accurate as possible in the subject and/or synopsis line.
-.IP \(bu 3m
-The subject and the synopsis line are not confidential. This is
-because open-bugs lists are compiled from them. Avoid confidential
-information there.
-.LP
-See the GNU
-.B Info
-file
-.B send-pr.info
-or the document \fIReporting Problems With send-pr\fR\ for detailed
-information on reporting problems
-.SH "HOW TO SUBMIT TEST CASES, CODE, ETC."
-Submit small code samples with the PR. Contact the support site for
-instructions on submitting larger test cases and problematic source
-code.
-.SH FILES
-.ta \w'/tmp/pbad.XXXXXXXX 'u
-/tmp/pf.XXXXXXXX copy of PR used in editing session
-.br
-/tmp/pf.XXXXXXXX copy of empty PR form, for testing purposes
-.br
-/tmp/pr.XXXXXXXX copy of filled PR form, created on interrupt
-.br
-/tmp/pbad.XXXXXXXX file for rejected PRs
-.SH EMACS USER INTERFACE
-An Emacs user interface for
-.B send-pr
-with completion of field values is part of the
-.B send-pr
-distribution (invoked with
-.BR "M-x send-pr" ).
-See the file
-.B send-pr.info
-or the ASCII file
-.B INSTALL
-in the top level directory of the distribution for configuration and
-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 ).
-.SH AUTHORS
-Jeffrey Osier, Brendan Kehoe, Jason Merrill, Heinz G. Seidl (Cygnus
-Support)
-.SH COPYING
-Copyright (c) 1992, 1993 Free Software Foundation, Inc.
-.PP
-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.
-.PP
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-.PP
-Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be included in
-translations approved by the Free Software Foundation instead of in
-the original English.
-
diff --git a/gnu/usr.bin/send-pr/send-pr.sh b/gnu/usr.bin/send-pr/send-pr.sh
deleted file mode 100644
index dee0f48..0000000
--- a/gnu/usr.bin/send-pr/send-pr.sh
+++ /dev/null
@@ -1,591 +0,0 @@
-#!/bin/sh
-# 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@cygnus.com).
-#
-# 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.
-#
-# $FreeBSD$
-
-# The version of this send-pr.
-VERSION=3.114
-
-# The submitter-id for your site.
-# "current-users" is the only allowable value for FreeBSD.
-SUBMITTER="current-users"
-
-# Where the GNATS directory lives, if at all.
-[ -z "$GNATS_ROOT" ] &&
-GNATS_ROOT=
-
-# The default mail address for PR submissions.
-GNATS_ADDR=FreeBSD-gnats-submit@freebsd.org
-
-# Where the gnats category tree lives.
-DATADIR=@DATADIR@
-
-# 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@"
-
-# The default organization.
-DEFAULT_ORGANIZATION=
-
-# The default site to look for.
-GNATS_SITE=freefall
-
-# 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="${MAIL_AGENT:-/usr/sbin/sendmail -oi -t}"
-
-# Path to pw(8)
-PW="/usr/sbin/pw"
-
-ECHON=bsd
-
-if [ $ECHON = bsd ] ; then
- ECHON1="echo -n"
- ECHON2=
-elif [ $ECHON = sysv ] ; then
- ECHON1=echo
- ECHON2='\c'
-else
- ECHON1=echo
- ECHON2=
-fi
-
-#
-
-# find a user name
-if [ "$LOGNAME" = "" ]; then
- if [ "$USER" != "" ]; then
- LOGNAME="$USER"
- else
- LOGNAME="UNKNOWN"
- fi
-fi
-
-# Find out the name of the originator of this PR.
-if [ -n "$NAME" ]; then
- ORIGINATOR="$NAME"
-elif [ -f $HOME/.fullname ]; then
- ORIGINATOR="`sed -e '1q' $HOME/.fullname`"
-else
- PTEMP=`mktemp -t p` || exit 1
- PTEMP2=`mktemp -t p` || exit 1
- # Must use temp file due to incompatibilities in quoting behavior
- # and to protect shell metacharacters in the expansion of $LOGNAME
- $ECHON1 $LOGNAME | awk '{print toupper(substr($1,1,1))substr($1,2)}' > $PTEMP2
- ICLOGNAME="`cat $PTEMP2`"
- $PW usershow $LOGNAME | awk -F: '{ print $8 }' \
- | sed -e "s/\&/$ICLOGNAME/" \
- | sed -e 's/,.*//' > $PTEMP
- ORIGINATOR="`cat $PTEMP`"
- rm -f "$PTEMP" "$PTEMP2"
-fi
-
-FROM="$ORIGINATOR <$LOGNAME>"
-REPLY_TO="$ORIGINATOR <${REPLY_TO:-${REPLYTO:-$LOGNAME}}>"
-
-if [ -n "$ORGANIZATION" ]; then
- if [ -f "$ORGANIZATION" ]; then
- ORGANIZATION="`cat $ORGANIZATION`"
- fi
-else
- if [ -n "$DEFAULT_ORGANIZATION" ]; then
- ORGANIZATION="$DEFAULT_ORGANIZATION"
- elif [ -f $HOME/.organization ]; then
- ORGANIZATION="`cat $HOME/.organization`"
- fi
-fi
-
-# If they don't have a preferred editor set, then use
-if [ -z "$VISUAL" ]; then
- if [ -z "$EDITOR" ]; then
- EDIT=vi
- else
- EDIT="$EDITOR"
- fi
-else
- EDIT="$VISUAL"
-fi
-
-# Find out some information.
-SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \
- ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""`
-ARCH=`[ -f /bin/arch ] && /bin/arch`
-MACHINE=`[ -f /bin/machine ] && /bin/machine`
-
-COMMAND=`echo $0 | sed -e 's,.*/,,'`
-USAGE="Usage: $COMMAND [-PVL] [-t address] [-f filename] [-s severity]
- [-c address] [-a file] [--version]"
-REMOVE=
-BATCH=
-CC=
-SEVERITY_C=
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -r) ;; # Ignore for backward compat.
- -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
- shift ; GNATS_ADDR="$1"
- EXPLICIT_GNATS_ADDR=true
- ;;
- -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
- shift ; IN_FILE="$1"
- if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then
- echo "$COMMAND: cannot read $IN_FILE"
- exit 1
- fi
- ;;
- -b | --batch) BATCH=true ;;
- -c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
- shift ; CC="$1"
- ;;
- -s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
- shift ; SEVERITY_C="$1"
- ;;
- -p | -P | --print) PRINT=true ;;
- -L | --list) FORMAT=norm ;;
- -l | -CL | --lisp) FORMAT=lisp ;;
- -h | --help) echo "$USAGE"; exit 0 ;;
- -V | --version) echo "$VERSION"; exit 0 ;;
- -a | --attach) if [ -z "$2" ]; then
- echo "$USAGE" ; exit 1;
- fi
- if [ -e "$2" -a ! -d "$2" ]; then
- PRETTY_NAME=`basename $2`
- if file $2 | grep "text" >/dev/null 2>/dev/null ; then
- ATTACHED_FILES="$ATTACHED_FILES
---- $PRETTY_NAME begins here ---
-`cat \"$2\"`
---- $PRETTY_NAME ends here ---
-"
- else
- ATTACHED_FILES="$ATTACHED_FILES
-`uuencode \"$PRETTY_NAME\" < \"$2\"`
-"
- fi
- shift;
- fi;
- ;;
- -*) echo "$USAGE" ; exit 1 ;;
- *) if [ -z "$USER_GNATS_SITE" ]; then
- if [ ! -r "$DATADIR/gnats/$1" ]; then
- echo "$COMMAND: the GNATS site $1 does not have a categories list."
- exit 1
- else
- # The site name is the alias they'll have to have created.
- USER_GNATS_SITE=$1
- fi
- else
- echo "$USAGE" ; exit 1
- fi
- ;;
- esac
- shift
-done
-
-if [ -n "$USER_GNATS_SITE" ] && [ "$USER_GNATS_SITE" != "$GNATS_SITE" ]; then
- GNATS_SITE=$USER_GNATS_SITE
- GNATS_ADDR=$USER_GNATS_SITE-gnats
-fi
-
-if [ "$SUBMITTER" = "unknown" -a -z "$IN_FILE" ]; then
- SUBMITTER="current-users"
-fi
-
-if [ -r "$DATADIR/gnats/$GNATS_SITE" ]; then
- CATEGORIES=`grep -v '^#' $DATADIR/gnats/$GNATS_SITE | sort`
-else
- echo "$COMMAND: could not read $DATADIR/gnats/$GNATS_SITE for categories list."
- exit 1
-fi
-
-if [ -z "$CATEGORIES" ]; then
- echo "$COMMAND: the categories list for $GNATS_SITE was empty!"
- exit 1
-fi
-
-case "$FORMAT" in
- lisp) echo "$CATEGORIES" | \
- awk 'BEGIN {printf "( "} {printf "(\"%s\") ",$0} END {printf ")\n"}'
- exit 0
- ;;
- 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
- ;;
-esac
-
-ORIGINATOR_C='<name of the PR author (one line)>'
-ORGANIZATION_C='<organization of PR author (multiple lines)>'
-CONFIDENTIAL_C='no <FreeBSD PRs are public data>'
-SYNOPSIS_C='<synopsis of the problem (one line)>'
-if [ -z "$SEVERITY_C" ]; then
- SEVERITY_C='<[ non-critical | serious | critical ] (one line)>'
-fi
-PRIORITY_C='<[ low | medium | high ] (one line)>'
-CATEGORY_C='<choose from the list of categories above (one line)>'
-CLASS_C='<[ sw-bug | doc-bug | change-request | update | maintainer-update ] (one line)>'
-RELEASE_C='<release number or tag (one line)>'
-ENVIRONMENT_C='<machine, os, target, libraries (multiple lines)>'
-DESCRIPTION_C='<precise description of the problem (multiple lines)>'
-HOW_TO_REPEAT_C='<code/input/activities to reproduce the problem (multiple lines)>'
-FIX_C='<how to correct or work around the problem, if known (multiple lines)>'
-
-# Create temporary files, safely
-REF=`mktemp -t pf` || exit 1
-TEMP=`mktemp -t pf` || exit 1
-# Catch some signals. ($xs kludge needed by Sun /bin/sh)
-xs=0
-trap 'rm -f $REF $TEMP; exit $xs' 0
-trap 'SAV=`mktemp -t pr`;echo "$COMMAND: Aborting ... saving unfinished PR into $SAV"; rm -f $REF ; mv $TEMP $SAV; xs=1; exit' 1 2 3 13 15
-
-# If they told us to use a specific file, then do so.
-if [ -n "$IN_FILE" ]; then
- if [ "$IN_FILE" = "-" ]; then
- # The PR is coming from the standard input.
- if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
- sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" > $TEMP
- else
- cat > $TEMP
- fi
- else
- # Use the file they named.
- if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
- sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" $IN_FILE > $TEMP
- else
- cat $IN_FILE > $TEMP
- fi
- fi
-else
-
- if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
- # If their PR_FORM points to a bogus entry, then bail.
- if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then
- echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM"
- sleep 1
- PRINT_INTERN=bad_prform
- fi
- fi
-
- if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
- cp $PR_FORM $TEMP ||
- ( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit )
- [ -n "$ATTACHED_FILES" ] && echo "$ATTACHED_FILES" >> $TEMP
- else
- for file in $TEMP $REF ; do
- cat > $file << '__EOF__'
-SEND-PR: -*- send-pr -*-
-SEND-PR: vim: syntax=sendpr
-SEND-PR:
-SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as
-SEND-PR: will all comments (text enclosed in `<' and `>').
-SEND-PR:
-SEND-PR: Please consult the following URL if you are not sure how to
-SEND-PR: fill out a problem report:
-SEND-PR: http://www.freebsd.org/doc/en/articles/problem-reports/
-SEND-PR:
-SEND-PR: Note that the Synopsis field is mandatory.
-SEND-PR:
-SEND-PR: Please note that (unless you state otherwise) if your report
-SEND-PR: includes a patch then it will be taken under the same license as
-SEND-PR: the one on the file(s) you want to change.
-SEND-PR:
-SEND-PR: BE ADVISED THAT FREEBSD PROBLEM REPORTS ARE PUBLIC INFORMATION AND
-SEND-PR: WILL BE PUBLISHED AS-IS ON THE PROJECT'S MAILING LISTS AND WEB SITES.
-SEND-PR: DO NOT SUBMIT ANY INFORMATION YOU DO NOT WANT MADE PUBLIC.
-SEND-PR:
-SEND-PR: If you wish to submit a problem report confidentially, then contact
-SEND-PR: the FreeBSD bugmaster (bugmaster@FreeBSD.org) to arrange for a
-SEND-PR: relevant developer to be contacted.
-SEND-PR:
-SEND-PR: For sensitive security issues, consider contacting the FreeBSD
-SEND-PR: security officer team (security-officer@freebsd.org) directly.
-SEND-PR:
-SEND-PR: Choose from the following categories:
-SEND-PR:
-__EOF__
-
- # Format the categories so they fit onto lines.
- 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
-From: $FROM
-Reply-To: $REPLY_TO
-Cc: $CC
-X-send-pr-version: $VERSION
-X-GNATS-Notify:
-
-
->Submitter-Id: $SUBMITTER
->Originator: $ORIGINATOR
->Organization: ${ORGANIZATION-$ORGANIZATION_C}
->Confidential: $CONFIDENTIAL_C
->Synopsis: $SYNOPSIS_C
->Severity: $SEVERITY_C
->Priority: $PRIORITY_C
->Category: $CATEGORY_C
->Class: $CLASS_C
->Release: ${DEFAULT_RELEASE-$RELEASE_C}
->Environment:
-`[ -n "$SYSTEM" ] && echo System: $SYSTEM`
-`[ -n "$ARCH" ] && echo Architecture: $ARCH`
-`[ -n "$MACHINE" ] && echo Machine: $MACHINE`
- $ENVIRONMENT_C
->Description:
- $DESCRIPTION_C
->How-To-Repeat:
- $HOW_TO_REPEAT_C
->Fix:
-
- $FIX_C
-$ATTACHED_FILES
-
-__EOF__
-
- done
- fi
-
- if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then
- cat $TEMP
- xs=0; exit
- fi
-
- chmod u+w $TEMP
- eval $EDIT $TEMP
-
- if cmp -s $REF $TEMP ; then
- echo "$COMMAND: problem report not filled out, therefore not sent"
- xs=1; exit
- fi
-fi
-
-#
-# Check the enumeration fields
-
-# This is a "sed-subroutine" with one keyword parameter
-# (with workaround for Sun sed bug)
-#
-SED_CMD='{
-s|||
-s|<.*>||
-s|^[ ]*||
-s|[ ]*$||
-p
-q
-}'
-
-
-while true; do
- CNT=0
-
- # 1) Confidential
- #
- PATTERN=">Confidential:"
- CONFIDENTIAL=`eval sed -n -e "\"/$PATTERN/$SED_CMD\"" $TEMP`
- case "$CONFIDENTIAL" in
- ""|no) CNT=`expr $CNT + 1` ;;
- *) echo "$COMMAND: \`$CONFIDENTIAL' is not a valid value for \`Confidential'." ;;
- esac
- #
- # 2) Severity
- #
- PATTERN=">Severity:"
- SEVERITY=`eval sed -n -e "\"/$PATTERN/$SED_CMD\"" $TEMP`
- case "$SEVERITY" in
- ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;;
- *) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'."
- esac
- #
- # 3) Priority
- #
- PATTERN=">Priority:"
- PRIORITY=`eval sed -n -e "\"/$PATTERN/$SED_CMD\"" $TEMP`
- case "$PRIORITY" in
- ""|low|medium|high) CNT=`expr $CNT + 1` ;;
- *) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'."
- esac
- #
- # 4) Category
- #
- PATTERN=">Category:"
- CATEGORY=`eval sed -n -e "\"/$PATTERN/$SED_CMD\"" $TEMP`
- FOUND=
- for C in $CATEGORIES
- do
- if [ "$C" = "$CATEGORY" ]; then FOUND=true ; break ; fi
- done
- if [ -n "$FOUND" ]; then
- CNT=`expr $CNT + 1`
- else
- if [ -z "$CATEGORY" ]; then
- echo "$COMMAND: you must include a Category: field in your report."
- else
- echo "$COMMAND: \`$CATEGORY' is not a known category."
- fi
- fi
- #
- # 5) Class
- #
- PATTERN=">Class:"
- CLASS=`eval sed -n -e "\"/$PATTERN/$SED_CMD\"" $TEMP`
- case "$CLASS" in
- ""|sw-bug|doc-bug|change-request|update|maintainer-update) CNT=`expr $CNT + 1` ;;
- *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'."
- esac
- #
- # 6) Check that synopsis is not empty
- #
- if grep "^>Synopsis:[ ]*${SYNOPSIS_C}\$" $TEMP > /dev/null
- then
- echo "$COMMAND: Synopsis must not be empty."
- else
- CNT=`expr $CNT + 1`
- fi
-
- [ $CNT -lt 6 -a -z "$BATCH" ] &&
- echo "Errors were found with the problem report."
-
- while true; do
- if [ -z "$BATCH" ]; then
- $ECHON1 "s)end, e)dit or a)bort? $ECHON2"
- read input
- else
- if [ $CNT -eq 6 ]; then
- input=s
- else
- input=a
- fi
- fi
- case "$input" in
- a*)
- if [ -z "$BATCH" ]; then
- BAD=`mktemp -t pbad`
- echo "$COMMAND: the problem report remains in $BAD and is not sent."
- mv $TEMP $BAD
- else
- echo "$COMMAND: the problem report is not sent."
- fi
- xs=1; exit
- ;;
- e*)
- eval $EDIT $TEMP
- continue 2
- ;;
- s*)
- if [ $CNT -lt 6 ]; then
- if [ -z "$BATCH" ]; then
- echo "But there are still errors in the problem report!"
- continue 2
- else
- echo "Errors found in PR"
- exit 1
- fi
- fi
- break 2
- ;;
- esac
- done
-done
-
-#
-# Remove the subject field if one is already there. There's no reason
-# for it to be any different than the synopsis.
-#
-if grep '^Subject:' $TEMP > /dev/null
-then
- ed -s $TEMP << __EOF__
-/^Subject:/d
-w
-q
-__EOF__
-fi
-
-#
-# Add the subject field with the value of $SYNOPSIS. We use the To:
-# field as an anchor, which had better be there.
-#
-SYNOPSIS=`grep '^>Synopsis:' $TEMP | sed -e 's/^>Synopsis:[ ]*//' |
- sed -e "s;$SYNOPSIS_C;;"`
-ed -s $TEMP << __EOF__
-/^To:/a
-Subject: $SYNOPSIS
-.
-w
-q
-__EOF__
-
-#
-# Remove comments and send the problem report
-# (we have to use patterns, where the comment contains regex chars)
-#
-# /^>Originator:/s;$ORIGINATOR;;
-sed -e "
-/^SEND-PR:/d
-/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;;
-/^>Confidential:/s;<.*>;;
-/^>Synopsis:/s;$SYNOPSIS_C;;
-/^>Severity:/s;<.*>;;
-/^>Priority:/s;<.*>;;
-/^>Category:/s;$CATEGORY_C;;
-/^>Class:/s;<.*>;;
-/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;;
-/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;;
-/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;;
-/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;;
-/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;;
-" $TEMP > $REF
-
-if $MAIL_AGENT < $REF; then
- echo "$COMMAND: problem report sent"
- xs=0; exit
-else
- echo "$COMMAND: mysterious mail failure."
- if [ -z "$BATCH" ]; then
- BAD=`mktemp -t pbad`
- echo "$COMMAND: the problem report remains in $BAD and is not sent."
- mv $TEMP $BAD
- else
- echo "$COMMAND: the problem report is not sent."
- fi
- xs=1; exit
-fi
OpenPOWER on IntegriCloud