TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
-TITLE="General Installation Notes"
-HREF="geninstall.html"><LINK
+TITLE="Troubleshooting"
+HREF="troubleshooting.html"><LINK
REL="NEXT"
TITLE="Post-Installation Checklist"
HREF="postinstall-check.html"></HEAD
ALIGN="left"
VALIGN="bottom"
><A
-HREF="geninstall.html"
+HREF="troubleshooting.html"
ACCESSKEY="P"
>Prev</A
></TD
HREF="programadmin.html#milestones"
>Milestones</A
></DT
+></DL
+></DD
><DT
->5.3.5. <A
-HREF="programadmin.html#voting"
+>5.4. <A
+HREF="voting.html"
>Voting</A
></DT
><DT
->5.3.6. <A
-HREF="programadmin.html#groups"
+>5.5. <A
+HREF="groups.html"
>Groups and Group Security</A
></DT
-></DL
-></DD
><DT
->5.4. <A
+>5.6. <A
HREF="security.html"
>Bugzilla Security</A
></DT
+><DT
+>5.7. <A
+HREF="cust-templates.html"
+>Template Customisation</A
+></DT
+><DD
+><DL
+><DT
+>5.7.1. <A
+HREF="cust-templates.html#AEN1611"
+>What to Edit</A
+></DT
+><DT
+>5.7.2. <A
+HREF="cust-templates.html#AEN1626"
+>Particular Templates</A
+></DT
+><DT
+>5.7.3. <A
+HREF="cust-templates.html#AEN1632"
+>Template Formats</A
+></DT
+></DL
+></DD
+><DT
+>5.8. <A
+HREF="integration.html"
+>Integrating Bugzilla with Third-Party Tools</A
+></DT
+><DD
+><DL
+><DT
+>5.8.1. <A
+HREF="integration.html#bonsai"
+>Bonsai</A
+></DT
+><DT
+>5.8.2. <A
+HREF="integration.html#cvs"
+>CVS</A
+></DT
+><DT
+>5.8.3. <A
+HREF="integration.html#scm"
+>Perforce SCM</A
+></DT
+><DT
+>5.8.4. <A
+HREF="integration.html#tinderbox"
+>Tinderbox/Tinderbox2</A
+></DT
+></DL
+></DD
></DL
></DIV
></DIV
ALIGN="left"
VALIGN="top"
><A
-HREF="geninstall.html"
+HREF="troubleshooting.html"
ACCESSKEY="P"
>Prev</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->General Installation Notes</TD
+>Troubleshooting</TD
><TD
WIDTH="34%"
ALIGN="center"
TITLE="Useful Patches and Utilities for Bugzilla"
HREF="patches.html"><LINK
REL="PREVIOUS"
-TITLE="The setperl.csh Utility"
-HREF="setperl.html"><LINK
+TITLE="Apache
+ mod_rewrite
+
+ magic"
+HREF="rewrite.html"><LINK
REL="NEXT"
-TITLE="The Quicksearch Utility"
-HREF="quicksearch.html"></HEAD
+TITLE="Bugzilla Variants and Competitors"
+HREF="variants.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
ALIGN="left"
VALIGN="bottom"
><A
-HREF="setperl.html"
+HREF="rewrite.html"
ACCESSKEY="P"
>Prev</A
></TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix D. Useful Patches and Utilities for Bugzilla</TD
+>Appendix C. Useful Patches and Utilities for Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="quicksearch.html"
+HREF="variants.html"
ACCESSKEY="N"
>Next</A
></TD
><H1
CLASS="section"
><A
-NAME="cmdline">D.3. Command-line Bugzilla Queries</H1
-><P
->Users can query Bugzilla from the command line using this suite of
- utilities.</P
-><P
->The query.conf file contains the mapping from options to field
- names and comparison types. Quoted option names are "grepped" for, so it
- should be easy to edit this file. Comments (#) have no effect; you must
- make sure these lines do not contain any quoted "option"</P
-><P
->buglist is a shell script which submits a Bugzilla query and writes
- the resulting HTML page to stdout. It supports both short options, (such
- as "-Afoo" or "-Rbar") and long options (such as "--assignedto=foo" or
- "--reporter=bar"). If the first character of an option is not "-", it is
- treated as if it were prefixed with "--default=".</P
-><P
->The columlist is taken from the COLUMNLIST environment variable.
- This is equivalent to the "Change Columns" option when you list bugs in
- buglist.cgi. If you have already used Bugzilla, use
- <B
-CLASS="command"
->grep COLUMLIST ~/.netscape/cookies</B
->
-
- to see your current COLUMNLIST setting.</P
-><P
->bugs is a simple shell script which calls buglist and extracts the
- bug numbers from the output. Adding the prefix
- "http://bugzilla.mozilla.org/buglist.cgi?bug_id=" turns the bug list into
- a working link if any bugs are found. Counting bugs is easy. Pipe the
- results through
- <B
-CLASS="command"
->sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</B
->
- </P
+NAME="cmdline">C.2. Command-line Bugzilla Queries</H1
><P
->Akkana says she has good results piping buglist output through
- <B
-CLASS="command"
->w3m -T text/html -dump</B
->
- </P
+>There are a suite of utilities for querying Bugzilla from the
+ command line. Although there's no particular reason why they
+ shouldn't work, they have not been tested with 2.16.</P
><DIV
CLASS="procedure"
><OL
></LI
></OL
></DIV
+><P
+>The query.conf file contains the mapping from options to field
+ names and comparison types. Quoted option names are "grepped" for, so it
+ should be easy to edit this file. Comments (#) have no effect; you must
+ make sure these lines do not contain any quoted "option".</P
+><P
+>buglist is a shell script which submits a Bugzilla query and writes
+ the resulting HTML page to stdout. It supports both short options, (such
+ as "-Afoo" or "-Rbar") and long options (such as "--assignedto=foo" or
+ "--reporter=bar"). If the first character of an option is not "-", it is
+ treated as if it were prefixed with "--default=".</P
+><P
+>The columlist is taken from the COLUMNLIST environment variable.
+ This is equivalent to the "Change Columns" option when you list bugs in
+ buglist.cgi. If you have already used Bugzilla, use
+ <B
+CLASS="command"
+>grep COLUMLIST ~/.netscape/cookies</B
+>
+
+ to see your current COLUMNLIST setting.</P
+><P
+>bugs is a simple shell script which calls buglist and extracts the
+ bug numbers from the output. Adding the prefix
+ "http://bugzilla.mozilla.org/buglist.cgi?bug_id=" turns the bug list into
+ a working link if any bugs are found. Counting bugs is easy. Pipe the
+ results through
+ <B
+CLASS="command"
+>sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</B
+>
+ </P
+><P
+>Akkana says she has good results piping buglist output through
+ <B
+CLASS="command"
+>w3m -T text/html -dump</B
+>
+ </P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="left"
VALIGN="top"
><A
-HREF="setperl.html"
+HREF="rewrite.html"
ACCESSKEY="P"
>Prev</A
></TD
ALIGN="right"
VALIGN="top"
><A
-HREF="quicksearch.html"
+HREF="variants.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->The setperl.csh Utility</TD
+>Apache
+ <TT
+CLASS="filename"
+>mod_rewrite</TT
+>
+
+ magic</TD
><TD
WIDTH="34%"
ALIGN="center"
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->The Quicksearch Utility</TD
+>Bugzilla Variants and Competitors</TD
></TR
></TABLE
></DIV
><DIV
CLASS="informaltable"
><A
-NAME="AEN80"><P
+NAME="AEN181"><P
></P
><TABLE
BORDER="0"
COLOR="#000000"
><PRE
CLASS="programlisting"
-> <TT
+> <TT
CLASS="sgmltag"
><para></TT
>
- Beginning and end of paragraph
- <TT
+Beginning and end of paragraph
+<TT
CLASS="sgmltag"
></para></TT
>
><A
NAME="copyright">1.1. Copyright Information</H1
><A
-NAME="AEN30"><TABLE
+NAME="AEN34"><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
License, Version 1.1 or any later version published by the
Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and with no Back-Cover Texts. A copy of
- the license is included in the section entitled "GNU Free
- Documentation License".
+ the license is included below.
</P
></TD
><TD
copyright, or publishing this document in non-electronic form,
please contact The Bugzilla Team.
</P
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="gfdl">1.1.1. GNU Free Documentation License</H2
+><P
+>Version 1.1, March 2000</P
+><A
+NAME="AEN41"><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place,
+ Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and
+ distribute verbatim copies of this license document, but changing it is
+ not allowed.</P
+></BLOCKQUOTE
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-0">0. PREAMBLE</H3
+><P
+>The purpose of this License is to make a manual, textbook, or other
+ written document "free" in the sense of freedom: to assure everyone the
+ effective freedom to copy and redistribute it, with or without modifying
+ it, either commercially or noncommercially. Secondarily, this License
+ preserves for the author and publisher a way to get credit for their
+ work, while not being considered responsible for modifications made by
+ others.</P
+><P
+>This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense. It
+ complements the GNU General Public License, which is a copyleft license
+ designed for free software.</P
+><P
+>We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a free
+ program should come with manuals providing the same freedoms that the
+ software does. But this License is not limited to software manuals; it
+ can be used for any textual work, regardless of subject matter or whether
+ it is published as a printed book. We recommend this License principally
+ for works whose purpose is instruction or reference.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-1">1. APPLICABILITY AND DEFINITIONS</H3
+><P
+>This License applies to any manual or other work that contains a
+ notice placed by the copyright holder saying it can be distributed under
+ the terms of this License. The "Document", below, refers to any such
+ manual or work. Any member of the public is a licensee, and is addressed
+ as "you".</P
+><P
+>A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.</P
+><P
+>A "Secondary Section" is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall subject
+ (or to related matters) and contains nothing that could fall directly
+ within that overall subject. (For example, if the Document is in part a
+ textbook of mathematics, a Secondary Section may not explain any
+ mathematics.) The relationship could be a matter of historical connection
+ with the subject or with related matters, or of legal, commercial,
+ philosophical, ethical or political position regarding them.</P
+><P
+>The "Invariant Sections" are certain Secondary Sections whose
+ titles are designated, as being those of Invariant Sections, in the
+ notice that says that the Document is released under this License.</P
+><P
+>The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says
+ that the Document is released under this License.</P
+><P
+>A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the general
+ public, whose contents can be viewed and edited directly and
+ straightforwardly with generic text editors or (for images composed of
+ pixels) generic paint programs or (for drawings) some widely available
+ drawing editor, and that is suitable for input to text formatters or for
+ automatic translation to a variety of formats suitable for input to text
+ formatters. A copy made in an otherwise Transparent file format whose
+ markup has been designed to thwart or discourage subsequent modification
+ by readers is not Transparent. A copy that is not "Transparent" is called
+ "Opaque".</P
+><P
+>Examples of suitable formats for Transparent copies include plain
+ ASCII without markup, Texinfo input format, LaTeX input format, SGML or
+ XML using a publicly available DTD, and standard-conforming simple HTML
+ designed for human modification. Opaque formats include PostScript, PDF,
+ proprietary formats that can be read and edited only by proprietary word
+ processors, SGML or XML for which the DTD and/or processing tools are not
+ generally available, and the machine-generated HTML produced by some word
+ processors for output purposes only.</P
+><P
+>The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the material
+ this License requires to appear in the title page. For works in formats
+ which do not have any title page as such, "Title Page" means the text
+ near the most prominent appearance of the work's title, preceding the
+ beginning of the body of the text.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-2">2. VERBATIM COPYING</H3
+><P
+>You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License applies to
+ the Document are reproduced in all copies, and that you add no other
+ conditions whatsoever to those of this License. You may not use technical
+ measures to obstruct or control the reading or further copying of the
+ copies you make or distribute. However, you may accept compensation in
+ exchange for copies. If you distribute a large enough number of copies
+ you must also follow the conditions in section 3.</P
+><P
+>You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-3">3. COPYING IN QUANTITY</H3
+><P
+>If you publish printed copies of the Document numbering more than
+ 100, and the Document's license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all these
+ Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts
+ on the back cover. Both covers must also clearly and legibly identify you
+ as the publisher of these copies. The front cover must present the full
+ title with all words of the title equally prominent and visible. You may
+ add other material on the covers in addition. Copying with changes
+ limited to the covers, as long as they preserve the title of the Document
+ and satisfy these conditions, can be treated as verbatim copying in other
+ respects.</P
+><P
+>If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit reasonably)
+ on the actual cover, and continue the rest onto adjacent pages.</P
+><P
+>If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a machine-readable
+ Transparent copy along with each Opaque copy, or state in or with each
+ Opaque copy a publicly-accessible computer-network location containing a
+ complete Transparent copy of the Document, free of added material, which
+ the general network-using public has access to download anonymously at no
+ charge using public-standard network protocols. If you use the latter
+ option, you must take reasonably prudent steps, when you begin
+ distribution of Opaque copies in quantity, to ensure that this
+ Transparent copy will remain thus accessible at the stated location until
+ at least one year after the last time you distribute an Opaque copy
+ (directly or through your agents or retailers) of that edition to the
+ public.</P
+><P
+>It is requested, but not required, that you contact the authors of
+ the Document well before redistributing any large number of copies, to
+ give them a chance to provide you with an updated version of the
+ Document.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-4">4. MODIFICATIONS</H3
+><P
+>You may copy and distribute a Modified Version of the Document
+ under the conditions of sections 2 and 3 above, provided that you release
+ the Modified Version under precisely this License, with the Modified
+ Version filling the role of the Document, thus licensing distribution and
+ modification of the Modified Version to whoever possesses a copy of it.
+ In addition, you must do these things in the Modified Version:</P
+><P
+></P
+><OL
+TYPE="A"
+><LI
+><P
+>Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of previous
+ versions (which should, if there were any, be listed in the History
+ section of the Document). You may use the same title as a previous
+ version if the original publisher of that version gives
+ permission.</P
+></LI
+><LI
+><P
+>List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in the
+ Modified Version, together with at least five of the principal
+ authors of the Document (all of its principal authors, if it has less
+ than five).</P
+></LI
+><LI
+><P
+>State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.</P
+></LI
+><LI
+><P
+>Preserve all the copyright notices of the Document.</P
+></LI
+><LI
+><P
+>Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.</P
+></LI
+><LI
+><P
+>Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified Version under
+ the terms of this License, in the form shown in the Addendum
+ below.</P
+></LI
+><LI
+><P
+>Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's license
+ notice.</P
+></LI
+><LI
+><P
+>Include an unaltered copy of this License.</P
+></LI
+><LI
+><P
+>Preserve the section entitled "History", and its title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page. If
+ there is no section entitled "History" in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.</P
+></LI
+><LI
+><P
+>Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions it
+ was based on. These may be placed in the "History" section. You may
+ omit a network location for a work that was published at least four
+ years before the Document itself, or if the original publisher of the
+ version it refers to gives permission.</P
+></LI
+><LI
+><P
+>In any section entitled "Acknowledgements" or "Dedications",
+ preserve the section's title, and preserve in the section all the
+ substance and tone of each of the contributor acknowledgements and/or
+ dedications given therein.</P
+></LI
+><LI
+><P
+>Preserve all the Invariant Sections of the Document, unaltered
+ in their text and in their titles. Section numbers or the equivalent
+ are not considered part of the section titles.</P
+></LI
+><LI
+><P
+>Delete any section entitled "Endorsements". Such a section may
+ not be included in the Modified Version.</P
+></LI
+><LI
+><P
+>Do not retitle any existing section as "Endorsements" or to
+ conflict in title with any Invariant Section.</P
+></LI
+></OL
+><P
+>If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no material
+ copied from the Document, you may at your option designate some or all of
+ these sections as invariant. To do this, add their titles to the list of
+ Invariant Sections in the Modified Version's license notice. These titles
+ must be distinct from any other section titles.</P
+><P
+>You may add a section entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various parties--for
+ example, statements of peer review or that the text has been approved by
+ an organization as the authoritative definition of a standard.</P
+><P
+>You may add a passage of up to five words as a Front-Cover Text,
+ and a passage of up to 25 words as a Back-Cover Text, to the end of the
+ list of Cover Texts in the Modified Version. Only one passage of
+ Front-Cover Text and one of Back-Cover Text may be added by (or through
+ arrangements made by) any one entity. If the Document already includes a
+ cover text for the same cover, previously added by you or by arrangement
+ made by the same entity you are acting on behalf of, you may not add
+ another; but you may replace the old one, on explicit permission from the
+ previous publisher that added the old one.</P
+><P
+>The author(s) and publisher(s) of the Document do not by this
+ License give permission to use their names for publicity for or to assert
+ or imply endorsement of any Modified Version.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-5">5. COMBINING DOCUMENTS</H3
+><P
+>You may combine the Document with other documents released under
+ this License, under the terms defined in section 4 above for modified
+ versions, provided that you include in the combination all of the
+ Invariant Sections of all of the original documents, unmodified, and list
+ them all as Invariant Sections of your combined work in its license
+ notice.</P
+><P
+>The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single copy.
+ If there are multiple Invariant Sections with the same name but different
+ contents, make the title of each such section unique by adding at the end
+ of it, in parentheses, the name of the original author or publisher of
+ that section if known, or else a unique number. Make the same adjustment
+ to the section titles in the list of Invariant Sections in the license
+ notice of the combined work.</P
+><P
+>In the combination, you must combine any sections entitled
+ "History" in the various original documents, forming one section entitled
+ "History"; likewise combine any sections entitled "Acknowledgements", and
+ any sections entitled "Dedications". You must delete all sections
+ entitled "Endorsements."</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-6">6. COLLECTIONS OF DOCUMENTS</H3
+><P
+>You may make a collection consisting of the Document and other
+ documents released under this License, and replace the individual copies
+ of this License in the various documents with a single copy that is
+ included in the collection, provided that you follow the rules of this
+ License for verbatim copying of each of the documents in all other
+ respects.</P
+><P
+>You may extract a single document from such a collection, and
+ distribute it individually under this License, provided you insert a copy
+ of this License into the extracted document, and follow this License in
+ all other respects regarding verbatim copying of that document.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-7">7. AGGREGATION WITH INDEPENDENT WORKS</H3
+><P
+>A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of a
+ storage or distribution medium, does not as a whole count as a Modified
+ Version of the Document, provided no compilation copyright is claimed for
+ the compilation. Such a compilation is called an "aggregate", and this
+ License does not apply to the other self-contained works thus compiled
+ with the Document, on account of their being thus compiled, if they are
+ not themselves derivative works of the Document.</P
+><P
+>If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one quarter of
+ the entire aggregate, the Document's Cover Texts may be placed on covers
+ that surround only the Document within the aggregate. Otherwise they must
+ appear on covers around the whole aggregate.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-8">8. TRANSLATION</H3
+><P
+>Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section 4.
+ Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include translations
+ of some or all Invariant Sections in addition to the original versions of
+ these Invariant Sections. You may include a translation of this License
+ provided that you also include the original English version of this
+ License. In case of a disagreement between the translation and the
+ original English version of this License, the original English version
+ will prevail.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-9">9. TERMINATION</H3
+><P
+>You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided for under this License. Any other attempt to
+ copy, modify, sublicense or distribute the Document 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.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-10">10. FUTURE REVISIONS OF THIS LICENSE</H3
+><P
+>The Free Software Foundation may publish new, revised versions of
+ the GNU Free Documentation 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. See
+ <A
+HREF="http://www.gnu.org/copyleft/"
+TARGET="_top"
+> http://www.gnu.org/copyleft/</A
+>
+
+ .</P
+><P
+>Each version of the License is given a distinguishing version
+ number. If the Document specifies that a particular numbered version of
+ this License "or any later version" applies to it, you have the option of
+ following the terms and conditions either of that specified version or of
+ any later version that has been published (not as a draft) by the Free
+ Software Foundation. If the Document does not specify a version number of
+ this License, you may choose any version ever published (not as a draft)
+ by the Free Software Foundation.</P
+></DIV
+><DIV
+CLASS="section"
+><H3
+CLASS="section"
+><A
+NAME="gfdl-howto">How to use this License for your documents</H3
+><P
+>To use this License in a document you have written, include a copy
+ of the License in the document and put the following copyright and
+ license notices just after the title page:</P
+><A
+NAME="AEN131"><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Copyright (c) YEAR YOUR NAME. Permission is granted to copy,
+ distribute and/or modify this document under the terms of the GNU Free
+ Documentation License, Version 1.1 or any later version published by
+ the Free Software Foundation; with the Invariant Sections being LIST
+ THEIR TITLES, with the Front-Cover Texts being LIST, and with the
+ Back-Cover Texts being LIST. A copy of the license is included in the
+ section entitled "GNU Free Documentation License".</P
+></BLOCKQUOTE
+><P
+>If you have no Invariant Sections, write "with no Invariant
+ Sections" instead of saying which ones are invariant. If you have no
+ Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover
+ Texts being LIST"; likewise for Back-Cover Texts.</P
+><P
+>If your document contains nontrivial examples of program code, we
+ recommend releasing these examples in parallel under your choice of free
+ software license, such as the GNU General Public License, to permit their
+ use in free software.</P
+></DIV
+></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
-TITLE="Software Download Links"
-HREF="downloadlinks.html"><LINK
+TITLE="The Bugzilla FAQ"
+HREF="faq.html"><LINK
REL="NEXT"
TITLE="Database Schema Chart"
HREF="dbschema.html"></HEAD
ALIGN="left"
VALIGN="bottom"
><A
-HREF="downloadlinks.html"
+HREF="faq.html"
ACCESSKEY="P"
>Prev</A
></TD
CLASS="appendix"
><H1
><A
-NAME="database">Appendix C. The Bugzilla Database</H1
+NAME="database">Appendix B. The Bugzilla Database</H1
><DIV
CLASS="TOC"
><DL
>Table of Contents</B
></DT
><DT
->C.1. <A
+>B.1. <A
HREF="dbschema.html"
>Database Schema Chart</A
></DT
><DT
->C.2. <A
+>B.2. <A
HREF="dbdoc.html"
>MySQL Bugzilla Database Introduction</A
></DT
><DT
->C.3. <A
+>B.3. <A
HREF="granttables.html"
>MySQL Permissions & Grant Tables</A
></DT
ALIGN="left"
VALIGN="top"
><A
-HREF="downloadlinks.html"
+HREF="faq.html"
ACCESSKEY="P"
>Prev</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->Software Download Links</TD
+>The Bugzilla FAQ</TD
><TD
WIDTH="34%"
ALIGN="center"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix C. The Bugzilla Database</TD
+>Appendix B. The Bugzilla Database</TD
><TD
WIDTH="10%"
ALIGN="right"
><H1
CLASS="section"
><A
-NAME="dbdoc">C.2. MySQL Bugzilla Database Introduction</H1
+NAME="dbdoc">B.2. MySQL Bugzilla Database Introduction</H1
><P
>This information comes straight from my life. I was forced to learn
how Bugzilla organizes database because of nitpicky requests from users
><H2
CLASS="section"
><A
-NAME="AEN2003">C.2.1. Bugzilla Database Basics</H2
+NAME="AEN2146">B.2.1. Bugzilla Database Basics</H2
><P
>If you were like me, at this point you're totally clueless about
the internals of MySQL, and if it weren't for this executive order from
><H3
CLASS="section"
><A
-NAME="AEN2032">C.2.1.1. Bugzilla Database Tables</H3
+NAME="AEN2175">B.2.1.1. Bugzilla Database Tables</H3
><P
>Imagine your MySQL database as a series of spreadsheets, and
you won't be too far off. If you use this command:</P
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix C. The Bugzilla Database</TD
+>Appendix B. The Bugzilla Database</TD
><TD
WIDTH="10%"
ALIGN="right"
><H1
CLASS="section"
><A
-NAME="dbschema">C.1. Database Schema Chart</H1
+NAME="dbschema">B.1. Database Schema Chart</H1
><P
> <DIV
CLASS="mediaobject"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
-TITLE="SourceForge"
-HREF="variant-sourceforge.html"><LINK
+TITLE="Integrating Bugzilla with Third-Party Tools"
+HREF="integration.html"><LINK
REL="NEXT"
-TITLE="Software Download Links"
-HREF="downloadlinks.html"></HEAD
+TITLE="The Bugzilla Database"
+HREF="database.html"></HEAD
><BODY
CLASS="appendix"
BGCOLOR="#FFFFFF"
ALIGN="left"
VALIGN="bottom"
><A
-HREF="variant-sourceforge.html"
+HREF="integration.html"
ACCESSKEY="P"
>Prev</A
></TD
ALIGN="right"
VALIGN="bottom"
><A
-HREF="downloadlinks.html"
+HREF="database.html"
ACCESSKEY="N"
>Next</A
></TD
><DL
><DT
>A.1.1. <A
-HREF="faq.html#AEN1505"
+HREF="faq.html#AEN1675"
> Where can I find information about Bugzilla?</A
></DT
><DT
>A.1.2. <A
-HREF="faq.html#AEN1511"
+HREF="faq.html#AEN1681"
> What license is Bugzilla distributed under?
</A
></DT
><DT
>A.1.3. <A
-HREF="faq.html#AEN1517"
+HREF="faq.html#AEN1687"
> How do I get commercial support for Bugzilla?
</A
></DT
><DT
>A.1.4. <A
-HREF="faq.html#AEN1524"
+HREF="faq.html#AEN1694"
> What major companies or projects are currently using Bugzilla
for bug-tracking?
</A
></DT
><DT
>A.1.5. <A
-HREF="faq.html#AEN1549"
+HREF="faq.html#AEN1719"
> Who maintains Bugzilla?
</A
></DT
><DT
>A.1.6. <A
-HREF="faq.html#AEN1555"
+HREF="faq.html#AEN1725"
> How does Bugzilla stack up against other bug-tracking databases?
</A
></DT
><DT
>A.1.7. <A
-HREF="faq.html#AEN1562"
+HREF="faq.html#AEN1732"
> How do I change my user name (email address) in Bugzilla?
</A
></DT
><DT
>A.1.8. <A
-HREF="faq.html#AEN1567"
+HREF="faq.html#AEN1737"
> Why doesn't Bugzilla offer this or that feature or compatability
with this other tracking software?
</A
></DT
><DT
>A.1.9. <A
-HREF="faq.html#AEN1574"
+HREF="faq.html#AEN1744"
> Why MySQL? I'm interested in seeing Bugzilla run on
Oracle/Sybase/Msql/PostgreSQL/MSSQL?
</A
></DT
><DT
>A.1.10. <A
-HREF="faq.html#AEN1579"
+HREF="faq.html#AEN1749"
> Why do the scripts say "/usr/bonsaitools/bin/perl" instead of
"/usr/bin/perl" or something else?
</A
><DL
><DT
>A.2.1. <A
-HREF="faq.html#AEN1594"
+HREF="faq.html#AEN1764"
> Is Bugzilla web-based or do you have to have specific software or
specific operating system on your machine?
</A
></DT
><DT
>A.2.2. <A
-HREF="faq.html#AEN1599"
+HREF="faq.html#AEN1769"
> Has anyone you know of already done any Bugzilla integration with
Perforce (SCM software)?
</A
></DT
><DT
>A.2.3. <A
-HREF="faq.html#AEN1604"
+HREF="faq.html#AEN1774"
> Does Bugzilla allow the user to track multiple projects?
</A
></DT
><DT
>A.2.4. <A
-HREF="faq.html#AEN1609"
+HREF="faq.html#AEN1779"
> If I am on many projects, and search for all bugs assigned to me, will
Bugzilla list them for me and allow me to sort by project, severity etc?
</A
></DT
><DT
>A.2.5. <A
-HREF="faq.html#AEN1614"
+HREF="faq.html#AEN1784"
> Does Bugzilla allow attachments (text, screenshots, urls etc)? If yes,
are there any that are NOT allowed?
</A
></DT
><DT
>A.2.6. <A
-HREF="faq.html#AEN1619"
+HREF="faq.html#AEN1789"
> Does Bugzilla allow us to define our own priorities and levels? Do we
have complete freedom to change the labels of fields and format of them, and
the choice of acceptable values?
></DT
><DT
>A.2.7. <A
-HREF="faq.html#AEN1626"
+HREF="faq.html#AEN1796"
> The index.html page doesn't show the footer. It's really annoying to have
to go to the querypage just to check my "my bugs" link.
</A
></DT
><DT
>A.2.8. <A
-HREF="faq.html#AEN1631"
+HREF="faq.html#AEN1801"
> Does Bugzilla provide any reporting features, metrics, graphs, etc? You
know, the type of stuff that management likes to see. :)
</A
></DT
><DT
>A.2.9. <A
-HREF="faq.html#AEN1638"
+HREF="faq.html#AEN1808"
> Is there email notification and if so, what do you see when you get an
email? Do you see bug number and title or is it only the number?
</A
></DT
><DT
>A.2.10. <A
-HREF="faq.html#AEN1643"
+HREF="faq.html#AEN1813"
> Can email notification be set up to send to multiple
people, some on the To List, CC List, BCC List etc?
</A
></DT
><DT
>A.2.11. <A
-HREF="faq.html#AEN1648"
+HREF="faq.html#AEN1818"
> If there is email notification, do users have to have any particular
type of email application?
</A
></DT
><DT
>A.2.12. <A
-HREF="faq.html#AEN1655"
+HREF="faq.html#AEN1825"
> If I just wanted to track certain bugs, as they go through life, can I
set it up to alert me via email whenever that bug changes, whether it be
owner, status or description etc.?
></DT
><DT
>A.2.13. <A
-HREF="faq.html#AEN1660"
+HREF="faq.html#AEN1830"
> Does Bugzilla allow data to be imported and exported? If I had outsiders
write up a bug report using a MS Word bug template, could that template be
imported into "matching" fields? If I wanted to take the results of a query
></DT
><DT
>A.2.14. <A
-HREF="faq.html#AEN1668"
+HREF="faq.html#AEN1838"
> Has anyone converted Bugzilla to another language to be used in other
countries? Is it localizable?
</A
></DT
><DT
>A.2.15. <A
-HREF="faq.html#AEN1673"
+HREF="faq.html#AEN1843"
> Can a user create and save reports? Can they do this in Word format?
Excel format?
</A
></DT
><DT
>A.2.16. <A
-HREF="faq.html#AEN1678"
+HREF="faq.html#AEN1848"
> Can a user re-run a report with a new project, same query?
</A
></DT
><DT
>A.2.17. <A
-HREF="faq.html#AEN1683"
+HREF="faq.html#AEN1853"
> Can a user modify an existing report and then save it into another name?
</A
></DT
><DT
>A.2.18. <A
-HREF="faq.html#AEN1688"
+HREF="faq.html#AEN1858"
> Does Bugzilla have the ability to search by word, phrase, compound
search?
</A
></DT
><DT
>A.2.19. <A
-HREF="faq.html#AEN1693"
+HREF="faq.html#AEN1863"
> Can the admin person establish separate group and individual user
privileges?
</A
></DT
><DT
>A.2.20. <A
-HREF="faq.html#AEN1698"
+HREF="faq.html#AEN1868"
> Does Bugzilla provide record locking when there is simultaneous access
to the same bug? Does the second person get a notice that the bug is in use
or how are they notified?
></DT
><DT
>A.2.21. <A
-HREF="faq.html#AEN1703"
+HREF="faq.html#AEN1873"
> Are there any backup features provided?
</A
></DT
><DT
>A.2.22. <A
-HREF="faq.html#AEN1709"
+HREF="faq.html#AEN1879"
> Can users be on the system while a backup is in progress?
</A
></DT
><DT
>A.2.23. <A
-HREF="faq.html#AEN1714"
+HREF="faq.html#AEN1884"
> What type of human resources are needed to be on staff to install and
maintain Bugzilla? Specifically, what type of skills does the person need to
have? I need to find out if we were to go with Bugzilla, what types of
></DT
><DT
>A.2.24. <A
-HREF="faq.html#AEN1720"
+HREF="faq.html#AEN1890"
> What time frame are we looking at if we decide to hire people to install
and maintain the Bugzilla? Is this something that takes hours or weeks to
install and a couple of hours per week to maintain and customize or is this
></DT
><DT
>A.2.25. <A
-HREF="faq.html#AEN1725"
+HREF="faq.html#AEN1895"
> Is there any licensing fee or other fees for using Bugzilla? Any
out-of-pocket cost other than the bodies needed as identified above?
</A
><DL
><DT
>A.3.1. <A
-HREF="faq.html#AEN1732"
+HREF="faq.html#AEN1902"
> How do I download and install Bugzilla?
</A
></DT
><DT
>A.3.2. <A
-HREF="faq.html#AEN1738"
+HREF="faq.html#AEN1908"
> How do I install Bugzilla on Windows NT?
</A
></DT
><DT
>A.3.3. <A
-HREF="faq.html#AEN1743"
+HREF="faq.html#AEN1913"
> Is there an easy way to change the Bugzilla cookie name?
</A
></DT
><DL
><DT
>A.4.1. <A
-HREF="faq.html#AEN1750"
+HREF="faq.html#AEN1920"
> How do I completely disable MySQL security if it's giving me problems
(I've followed the instructions in the installation section of this guide!)?
</A
></DT
><DT
>A.4.2. <A
-HREF="faq.html#AEN1756"
+HREF="faq.html#AEN1926"
> Are there any security problems with Bugzilla?
</A
></DT
><DT
>A.4.3. <A
-HREF="faq.html#AEN1761"
+HREF="faq.html#AEN1931"
> I've implemented the security fixes mentioned in Chris Yeh's security
advisory of 5/10/2000 advising not to run MySQL as root, and am running into
problems with MySQL no longer working correctly.
><DL
><DT
>A.5.1. <A
-HREF="faq.html#AEN1768"
+HREF="faq.html#AEN1938"
> I have a user who doesn't want to receive any more email from Bugzilla.
How do I stop it entirely for this user?
</A
></DT
><DT
>A.5.2. <A
-HREF="faq.html#AEN1773"
+HREF="faq.html#AEN1943"
> I'm evaluating/testing Bugzilla, and don't want it to send email to
anyone but me. How do I do it?
</A
></DT
><DT
>A.5.3. <A
-HREF="faq.html#AEN1778"
+HREF="faq.html#AEN1948"
> I want whineatnews.pl to whine at something more, or other than, only new
bugs. How do I do it?
</A
></DT
><DT
>A.5.4. <A
-HREF="faq.html#AEN1784"
+HREF="faq.html#AEN1954"
> I don't like/want to use Procmail to hand mail off to bug_email.pl.
What alternatives do I have?
</A
></DT
><DT
>A.5.5. <A
-HREF="faq.html#AEN1791"
+HREF="faq.html#AEN1961"
> How do I set up the email interface to submit/change bugs via email?
</A
></DT
><DT
>A.5.6. <A
-HREF="faq.html#AEN1796"
+HREF="faq.html#AEN1966"
> Email takes FOREVER to reach me from Bugzilla -- it's extremely slow.
What gives?
</A
></DT
><DT
>A.5.7. <A
-HREF="faq.html#AEN1803"
+HREF="faq.html#AEN1973"
> How come email from Bugzilla changes never reaches me?
</A
></DT
><DL
><DT
>A.6.1. <A
-HREF="faq.html#AEN1811"
+HREF="faq.html#AEN1981"
> I've heard Bugzilla can be used with Oracle?
</A
></DT
><DT
>A.6.2. <A
-HREF="faq.html#AEN1816"
+HREF="faq.html#AEN1986"
> I think my database might be corrupted, or contain invalid entries. What
do I do?
</A
></DT
><DT
>A.6.3. <A
-HREF="faq.html#AEN1824"
+HREF="faq.html#AEN1994"
> I want to manually edit some entries in my database. How?
</A
></DT
><DT
>A.6.4. <A
-HREF="faq.html#AEN1829"
+HREF="faq.html#AEN1999"
> I try to add myself as a user, but Bugzilla always tells me my password is wrong.
</A
></DT
><DT
>A.6.5. <A
-HREF="faq.html#AEN1834"
+HREF="faq.html#AEN2004"
> I think I've set up MySQL permissions correctly, but bugzilla still can't
connect.
</A
></DT
><DT
>A.6.6. <A
-HREF="faq.html#AEN1839"
+HREF="faq.html#AEN2009"
> How do I synchronize bug information among multiple different Bugzilla
databases?
</A
><DL
><DT
>A.7.1. <A
-HREF="faq.html#AEN1848"
+HREF="faq.html#AEN2018"
> What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
</A
></DT
><DT
>A.7.2. <A
-HREF="faq.html#AEN1853"
+HREF="faq.html#AEN2023"
> Is there a "Bundle::Bugzilla" equivalent for Win32?
</A
></DT
><DT
>A.7.3. <A
-HREF="faq.html#AEN1858"
+HREF="faq.html#AEN2028"
> CGI's are failing with a "something.cgi is not a valid Windows NT
application" error. Why?
</A
></DT
><DT
>A.7.4. <A
-HREF="faq.html#AEN1866"
+HREF="faq.html#AEN2036"
> I'm having trouble with the perl modules for NT not being able to talk to
to the database.
</A
><DL
><DT
>A.8.1. <A
-HREF="faq.html#AEN1887"
+HREF="faq.html#AEN2057"
> The query page is very confusing. Isn't there a simpler way to query?
</A
></DT
><DT
>A.8.2. <A
-HREF="faq.html#AEN1892"
+HREF="faq.html#AEN2062"
> I'm confused by the behavior of the "accept" button in the Show Bug form.
Why doesn't it assign the bug to me when I accept it?
</A
></DT
><DT
>A.8.3. <A
-HREF="faq.html#AEN1902"
+HREF="faq.html#AEN2072"
> I can't upload anything into the database via the "Create Attachment"
link. What am I doing wrong?
</A
></DT
><DT
>A.8.4. <A
-HREF="faq.html#AEN1907"
+HREF="faq.html#AEN2077"
> Email submissions to Bugzilla that have attachments end up asking me to
save it as a "cgi" file.
</A
></DT
><DT
>A.8.5. <A
-HREF="faq.html#AEN1912"
+HREF="faq.html#AEN2082"
> How do I change a keyword in Bugzilla, once some bugs are using it?
</A
></DT
><DL
><DT
>A.9.1. <A
-HREF="faq.html#AEN1919"
+HREF="faq.html#AEN2089"
> What bugs are in Bugzilla right now?
</A
></DT
><DT
>A.9.2. <A
-HREF="faq.html#AEN1928"
+HREF="faq.html#AEN2098"
> How can I change the default priority to a null value? For instance, have the default
priority be "---" instead of "P2"?
</A
></DT
><DT
>A.9.3. <A
-HREF="faq.html#AEN1934"
+HREF="faq.html#AEN2104"
> What's the best way to submit patches? What guidelines should I follow?
</A
></DT
CLASS="question"
><P
><A
-NAME="AEN1505"><B
+NAME="AEN1675"><B
>A.1.1. </B
>
Where can I find information about Bugzilla?</P
CLASS="question"
><P
><A
-NAME="AEN1511"><B
+NAME="AEN1681"><B
>A.1.2. </B
>
What license is Bugzilla distributed under?
CLASS="question"
><P
><A
-NAME="AEN1517"><B
+NAME="AEN1687"><B
>A.1.3. </B
>
How do I get commercial support for Bugzilla?
CLASS="question"
><P
><A
-NAME="AEN1524"><B
+NAME="AEN1694"><B
>A.1.4. </B
>
What major companies or projects are currently using Bugzilla
CLASS="question"
><P
><A
-NAME="AEN1549"><B
+NAME="AEN1719"><B
>A.1.5. </B
>
Who maintains Bugzilla?
CLASS="question"
><P
><A
-NAME="AEN1555"><B
+NAME="AEN1725"><B
>A.1.6. </B
>
How does Bugzilla stack up against other bug-tracking databases?
CLASS="question"
><P
><A
-NAME="AEN1562"><B
+NAME="AEN1732"><B
>A.1.7. </B
>
How do I change my user name (email address) in Bugzilla?
CLASS="question"
><P
><A
-NAME="AEN1567"><B
+NAME="AEN1737"><B
>A.1.8. </B
>
Why doesn't Bugzilla offer this or that feature or compatability
CLASS="question"
><P
><A
-NAME="AEN1574"><B
+NAME="AEN1744"><B
>A.1.9. </B
>
Why MySQL? I'm interested in seeing Bugzilla run on
CLASS="question"
><P
><A
-NAME="AEN1579"><B
+NAME="AEN1749"><B
>A.1.10. </B
>
Why do the scripts say "/usr/bonsaitools/bin/perl" instead of
><P
> Here's Terry Weissman's comment, for some historical context:
<A
-NAME="AEN1584"><BLOCKQUOTE
+NAME="AEN1754"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> [This was] purely my own convention. I wanted a place to put a version of
CLASS="question"
><P
><A
-NAME="AEN1594"><B
+NAME="AEN1764"><B
>A.2.1. </B
>
Is Bugzilla web-based or do you have to have specific software or
CLASS="question"
><P
><A
-NAME="AEN1599"><B
+NAME="AEN1769"><B
>A.2.2. </B
>
Has anyone you know of already done any Bugzilla integration with
CLASS="question"
><P
><A
-NAME="AEN1604"><B
+NAME="AEN1774"><B
>A.2.3. </B
>
Does Bugzilla allow the user to track multiple projects?
CLASS="question"
><P
><A
-NAME="AEN1609"><B
+NAME="AEN1779"><B
>A.2.4. </B
>
If I am on many projects, and search for all bugs assigned to me, will
CLASS="question"
><P
><A
-NAME="AEN1614"><B
+NAME="AEN1784"><B
>A.2.5. </B
>
Does Bugzilla allow attachments (text, screenshots, urls etc)? If yes,
CLASS="question"
><P
><A
-NAME="AEN1619"><B
+NAME="AEN1789"><B
>A.2.6. </B
>
Does Bugzilla allow us to define our own priorities and levels? Do we
CLASS="question"
><P
><A
-NAME="AEN1626"><B
+NAME="AEN1796"><B
>A.2.7. </B
>
The index.html page doesn't show the footer. It's really annoying to have
CLASS="question"
><P
><A
-NAME="AEN1631"><B
+NAME="AEN1801"><B
>A.2.8. </B
>
Does Bugzilla provide any reporting features, metrics, graphs, etc? You
CLASS="question"
><P
><A
-NAME="AEN1638"><B
+NAME="AEN1808"><B
>A.2.9. </B
>
Is there email notification and if so, what do you see when you get an
CLASS="question"
><P
><A
-NAME="AEN1643"><B
+NAME="AEN1813"><B
>A.2.10. </B
>
Can email notification be set up to send to multiple
CLASS="question"
><P
><A
-NAME="AEN1648"><B
+NAME="AEN1818"><B
>A.2.11. </B
>
If there is email notification, do users have to have any particular
CLASS="question"
><P
><A
-NAME="AEN1655"><B
+NAME="AEN1825"><B
>A.2.12. </B
>
If I just wanted to track certain bugs, as they go through life, can I
CLASS="question"
><P
><A
-NAME="AEN1660"><B
+NAME="AEN1830"><B
>A.2.13. </B
>
Does Bugzilla allow data to be imported and exported? If I had outsiders
CLASS="question"
><P
><A
-NAME="AEN1668"><B
+NAME="AEN1838"><B
>A.2.14. </B
>
Has anyone converted Bugzilla to another language to be used in other
CLASS="question"
><P
><A
-NAME="AEN1673"><B
+NAME="AEN1843"><B
>A.2.15. </B
>
Can a user create and save reports? Can they do this in Word format?
CLASS="question"
><P
><A
-NAME="AEN1678"><B
+NAME="AEN1848"><B
>A.2.16. </B
>
Can a user re-run a report with a new project, same query?
CLASS="question"
><P
><A
-NAME="AEN1683"><B
+NAME="AEN1853"><B
>A.2.17. </B
>
Can a user modify an existing report and then save it into another name?
CLASS="question"
><P
><A
-NAME="AEN1688"><B
+NAME="AEN1858"><B
>A.2.18. </B
>
Does Bugzilla have the ability to search by word, phrase, compound
CLASS="question"
><P
><A
-NAME="AEN1693"><B
+NAME="AEN1863"><B
>A.2.19. </B
>
Can the admin person establish separate group and individual user
CLASS="question"
><P
><A
-NAME="AEN1698"><B
+NAME="AEN1868"><B
>A.2.20. </B
>
Does Bugzilla provide record locking when there is simultaneous access
CLASS="question"
><P
><A
-NAME="AEN1703"><B
+NAME="AEN1873"><B
>A.2.21. </B
>
Are there any backup features provided?
CLASS="question"
><P
><A
-NAME="AEN1709"><B
+NAME="AEN1879"><B
>A.2.22. </B
>
Can users be on the system while a backup is in progress?
CLASS="question"
><P
><A
-NAME="AEN1714"><B
+NAME="AEN1884"><B
>A.2.23. </B
>
What type of human resources are needed to be on staff to install and
CLASS="question"
><P
><A
-NAME="AEN1720"><B
+NAME="AEN1890"><B
>A.2.24. </B
>
What time frame are we looking at if we decide to hire people to install
CLASS="question"
><P
><A
-NAME="AEN1725"><B
+NAME="AEN1895"><B
>A.2.25. </B
>
Is there any licensing fee or other fees for using Bugzilla? Any
CLASS="question"
><P
><A
-NAME="AEN1732"><B
+NAME="AEN1902"><B
>A.3.1. </B
>
How do I download and install Bugzilla?
CLASS="question"
><P
><A
-NAME="AEN1738"><B
+NAME="AEN1908"><B
>A.3.2. </B
>
How do I install Bugzilla on Windows NT?
CLASS="question"
><P
><A
-NAME="AEN1743"><B
+NAME="AEN1913"><B
>A.3.3. </B
>
Is there an easy way to change the Bugzilla cookie name?
CLASS="question"
><P
><A
-NAME="AEN1750"><B
+NAME="AEN1920"><B
>A.4.1. </B
>
How do I completely disable MySQL security if it's giving me problems
CLASS="question"
><P
><A
-NAME="AEN1756"><B
+NAME="AEN1926"><B
>A.4.2. </B
>
Are there any security problems with Bugzilla?
CLASS="question"
><P
><A
-NAME="AEN1761"><B
+NAME="AEN1931"><B
>A.4.3. </B
>
I've implemented the security fixes mentioned in Chris Yeh's security
CLASS="question"
><P
><A
-NAME="AEN1768"><B
+NAME="AEN1938"><B
>A.5.1. </B
>
I have a user who doesn't want to receive any more email from Bugzilla.
CLASS="question"
><P
><A
-NAME="AEN1773"><B
+NAME="AEN1943"><B
>A.5.2. </B
>
I'm evaluating/testing Bugzilla, and don't want it to send email to
CLASS="question"
><P
><A
-NAME="AEN1778"><B
+NAME="AEN1948"><B
>A.5.3. </B
>
I want whineatnews.pl to whine at something more, or other than, only new
CLASS="question"
><P
><A
-NAME="AEN1784"><B
+NAME="AEN1954"><B
>A.5.4. </B
>
I don't like/want to use Procmail to hand mail off to bug_email.pl.
You can call bug_email.pl directly from your aliases file, with
an entry like this:
<A
-NAME="AEN1788"><BLOCKQUOTE
+NAME="AEN1958"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> bugzilla-daemon: "|/usr/local/bin/bugzilla/contrib/bug_email.pl"
CLASS="question"
><P
><A
-NAME="AEN1791"><B
+NAME="AEN1961"><B
>A.5.5. </B
>
How do I set up the email interface to submit/change bugs via email?
CLASS="question"
><P
><A
-NAME="AEN1796"><B
+NAME="AEN1966"><B
>A.5.6. </B
>
Email takes FOREVER to reach me from Bugzilla -- it's extremely slow.
CLASS="question"
><P
><A
-NAME="AEN1803"><B
+NAME="AEN1973"><B
>A.5.7. </B
>
How come email from Bugzilla changes never reaches me?
CLASS="question"
><P
><A
-NAME="AEN1811"><B
+NAME="AEN1981"><B
>A.6.1. </B
>
I've heard Bugzilla can be used with Oracle?
CLASS="question"
><P
><A
-NAME="AEN1816"><B
+NAME="AEN1986"><B
>A.6.2. </B
>
I think my database might be corrupted, or contain invalid entries. What
CLASS="question"
><P
><A
-NAME="AEN1824"><B
+NAME="AEN1994"><B
>A.6.3. </B
>
I want to manually edit some entries in my database. How?
CLASS="question"
><P
><A
-NAME="AEN1829"><B
+NAME="AEN1999"><B
>A.6.4. </B
>
I try to add myself as a user, but Bugzilla always tells me my password is wrong.
CLASS="question"
><P
><A
-NAME="AEN1834"><B
+NAME="AEN2004"><B
>A.6.5. </B
>
I think I've set up MySQL permissions correctly, but bugzilla still can't
CLASS="question"
><P
><A
-NAME="AEN1839"><B
+NAME="AEN2009"><B
>A.6.6. </B
>
How do I synchronize bug information among multiple different Bugzilla
CLASS="question"
><P
><A
-NAME="AEN1848"><B
+NAME="AEN2018"><B
>A.7.1. </B
>
What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
CLASS="question"
><P
><A
-NAME="AEN1853"><B
+NAME="AEN2023"><B
>A.7.2. </B
>
Is there a "Bundle::Bugzilla" equivalent for Win32?
CLASS="question"
><P
><A
-NAME="AEN1858"><B
+NAME="AEN2028"><B
>A.7.3. </B
>
CGI's are failing with a "something.cgi is not a valid Windows NT
><P
> Microsoft has some advice on this matter, as well:
<A
-NAME="AEN1863"><BLOCKQUOTE
+NAME="AEN2033"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> "Set application mappings. In the ISM, map the extension for the script
CLASS="question"
><P
><A
-NAME="AEN1866"><B
+NAME="AEN2036"><B
>A.7.4. </B
>
I'm having trouble with the perl modules for NT not being able to talk to
CLASS="question"
><P
><A
-NAME="AEN1887"><B
+NAME="AEN2057"><B
>A.8.1. </B
>
The query page is very confusing. Isn't there a simpler way to query?
CLASS="question"
><P
><A
-NAME="AEN1892"><B
+NAME="AEN2062"><B
>A.8.2. </B
>
I'm confused by the behavior of the "accept" button in the Show Bug form.
CLASS="question"
><P
><A
-NAME="AEN1902"><B
+NAME="AEN2072"><B
>A.8.3. </B
>
I can't upload anything into the database via the "Create Attachment"
CLASS="question"
><P
><A
-NAME="AEN1907"><B
+NAME="AEN2077"><B
>A.8.4. </B
>
Email submissions to Bugzilla that have attachments end up asking me to
CLASS="question"
><P
><A
-NAME="AEN1912"><B
+NAME="AEN2082"><B
>A.8.5. </B
>
How do I change a keyword in Bugzilla, once some bugs are using it?
CLASS="question"
><P
><A
-NAME="AEN1919"><B
+NAME="AEN2089"><B
>A.9.1. </B
>
What bugs are in Bugzilla right now?
CLASS="question"
><P
><A
-NAME="AEN1928"><B
+NAME="AEN2098"><B
>A.9.2. </B
>
How can I change the default priority to a null value? For instance, have the default
CLASS="question"
><P
><A
-NAME="AEN1934"><B
+NAME="AEN2104"><B
>A.9.3. </B
>
What's the best way to submit patches? What guidelines should I follow?
ALIGN="left"
VALIGN="top"
><A
-HREF="variant-sourceforge.html"
+HREF="integration.html"
ACCESSKEY="P"
>Prev</A
></TD
ALIGN="right"
VALIGN="top"
><A
-HREF="downloadlinks.html"
+HREF="database.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->SourceForge</TD
+>Integrating Bugzilla with Third-Party Tools</TD
><TD
WIDTH="34%"
ALIGN="center"
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Software Download Links</TD
+>The Bugzilla Database</TD
></TR
></TABLE
></DIV
TITLE="Mac OS X Installation Notes"
HREF="osx.html"><LINK
REL="NEXT"
-TITLE="Administering Bugzilla"
-HREF="administration.html"></HEAD
+TITLE="Troubleshooting"
+HREF="troubleshooting.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="administration.html"
+HREF="troubleshooting.html"
ACCESSKEY="N"
>Next</A
></TD
><H1
CLASS="section"
><A
-NAME="geninstall">4.4. General Installation Notes</H1
+NAME="geninstall">4.5. General Installation Notes</H1
><DIV
CLASS="section"
><H2
CLASS="section"
><A
-NAME="AEN992">4.4.1. Modifying Your Running System</H2
+NAME="AEN1145">4.5.1. Modifying Your Running System</H2
><P
>Bugzilla optimizes database lookups by storing all relatively
static information in the versioncache file, located in the data/
><H2
CLASS="section"
><A
-NAME="AEN999">4.4.2. Upgrading From Previous Versions</H2
+NAME="AEN1152">4.5.2. Upgrading From Previous Versions</H2
><P
>A plain Bugzilla is fairly easy to upgrade from one version to a
newer one. However, things get a bit more complicated if you've made
><H2
CLASS="section"
><A
-NAME="htaccess">4.4.3. <TT
+NAME="htaccess">4.5.3. <TT
CLASS="filename"
>.htaccess</TT
>
><H2
CLASS="section"
><A
-NAME="mod-throttle">4.4.4. <TT
+NAME="mod-throttle">4.5.4. <TT
CLASS="filename"
>mod_throttle</TT
>
><H2
CLASS="section"
><A
-NAME="content-type">4.4.5. Preventing untrusted Bugzilla content from executing malicious
+NAME="content-type">4.5.5. Preventing untrusted Bugzilla content from executing malicious
Javascript code</H2
><P
>It is possible for a Bugzilla to execute malicious Javascript
>"UTF-8"</SPAN
>.</P
></DIV
-><DIV
-CLASS="section"
-><H2
-CLASS="section"
-><A
-NAME="paranoid-security">4.4.6. cannot chdir(/var/spool/mqueue)</H2
-><P
->If you are installing Bugzilla on SuSE Linux, or some other
- distributions with
- <SPAN
-CLASS="QUOTE"
->"paranoid"</SPAN
->
- security options, it is possible that the checksetup.pl script may fail
- with the error:
- <SPAN
-CLASS="errorname"
->cannot chdir(/var/spool/mqueue): Permission
- denied</SPAN
->.
- </P
-><P
-> This is because your
- <TT
-CLASS="filename"
->/var/spool/mqueue</TT
->
- directory has a mode of
- <SPAN
-CLASS="QUOTE"
->"drwx------"</SPAN
->. Type
- <B
-CLASS="command"
->chmod 755
- <TT
-CLASS="filename"
->/var/spool/mqueue</TT
->
- </B
->
- as root to fix this problem.
- </P
-></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="right"
VALIGN="top"
><A
-HREF="administration.html"
+HREF="troubleshooting.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Administering Bugzilla</TD
+>Troubleshooting</TD
></TR
></TABLE
></DIV
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
TITLE="FUTURE REVISIONS OF THIS LICENSE"
HREF="gfdl-10.html"><LINK
REL="NEXT"
-TITLE="Glossary"
-HREF="glossary.html"></HEAD
+TITLE="Disclaimer"
+HREF="disclaimer.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix E. GNU Free Documentation License</TD
+>Appendix A. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="glossary.html"
+HREF="disclaimer.html"
ACCESSKEY="N"
>Next</A
></TD
of the License in the document and put the following copyright and
license notices just after the title page:</P
><A
-NAME="AEN2257"><BLOCKQUOTE
+NAME="AEN127"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>Copyright (c) YEAR YOUR NAME. Permission is granted to copy,
ALIGN="right"
VALIGN="top"
><A
-HREF="glossary.html"
+HREF="disclaimer.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Glossary</TD
+>Disclaimer</TD
></TR
></TABLE
></DIV
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
+REL="UP"
+TITLE="Copyright Information"
+HREF="copyright.html"><LINK
REL="PREVIOUS"
-TITLE="The Quicksearch Utility"
-HREF="quicksearch.html"><LINK
+TITLE="Copyright Information"
+HREF="copyright.html"><LINK
REL="NEXT"
TITLE="PREAMBLE"
HREF="gfdl-0.html"></HEAD
ALIGN="left"
VALIGN="bottom"
><A
-HREF="quicksearch.html"
+HREF="copyright.html"
ACCESSKEY="P"
>Prev</A
></TD
CLASS="appendix"
><H1
><A
-NAME="gfdl">Appendix E. GNU Free Documentation License</H1
+NAME="gfdl">Appendix A. GNU Free Documentation License</H1
><DIV
CLASS="TOC"
><DL
><P
>Version 1.1, March 2000</P
><A
-NAME="AEN2167"><BLOCKQUOTE
+NAME="AEN37"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place,
ALIGN="left"
VALIGN="top"
><A
-HREF="quicksearch.html"
+HREF="copyright.html"
ACCESSKEY="P"
>Prev</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->The Quicksearch Utility</TD
+>Copyright Information</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
-> </TD
+><A
+HREF="copyright.html"
+ACCESSKEY="U"
+>Up</A
+></TD
><TD
WIDTH="33%"
ALIGN="right"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
-TITLE="How to use this License for your documents"
-HREF="gfdl-howto.html"></HEAD
+TITLE="SourceForge"
+HREF="variant-sourceforge.html"></HEAD
><BODY
CLASS="glossary"
BGCOLOR="#FFFFFF"
ALIGN="left"
VALIGN="bottom"
><A
-HREF="gfdl-howto.html"
+HREF="variant-sourceforge.html"
ACCESSKEY="P"
>Prev</A
></TD
><H1
CLASS="glossdiv"
><A
-NAME="AEN2262">0-9, high ascii</H1
+NAME="AEN2276">0-9, high ascii</H1
><DL
><DT
><B
CLASS="filename"
>localconfig</TT
>
-
- file contains the password to your database. If this information were
- generally available, and remote access to your database turned on,
- you risk corruption of your database by computer criminals or the
+ file contains the password to your database.
curious.</P
></DD
></DL
>A
<SPAN
CLASS="QUOTE"
->"Bug"</SPAN
+>"bug"</SPAN
>
in Bugzilla refers to an issue entered into the database which has an
></DT
><DD
><P
->Each Bugzilla Bug is assigned a number that uniquely identifies
- that Bug. The Bug associated with a Bug Number can be pulled up via a
+>Each Bugzilla bug is assigned a number that uniquely identifies
+ that bug. The bug associated with a bug number can be pulled up via a
query, or easily from the very front page by typing the number in the
"Find" box.</P
></DD
><DT
><B
->Bug Life Cycle</B
-></DT
-><DD
-><P
->A Bug has stages through which it must pass before becoming a
- <SPAN
-CLASS="QUOTE"
->"closed bug"</SPAN
->,
- including acceptance, resolution, and verification. The
- <SPAN
-CLASS="QUOTE"
->"Bug Life Cycle"</SPAN
->
-
- is moderately flexible according to the needs of the organization
- using it, though.</P
-></DD
-><DT
-><B
>Bugzilla</B
></DT
><DD
><P
->Bugzilla is the industry-standard bug tracking system. It is
- quite popular among Open Source enthusiasts.</P
+>Bugzilla is the world-leading free software bug tracking system.
+ </P
></DD
></DL
></DIV
<SPAN
CLASS="QUOTE"
>"Comprehensive Perl Archive Network"</SPAN
->
-
- . CPAN maintains a large number of extremely useful
+>.
+ CPAN maintains a large number of extremely useful
<I
CLASS="glossterm"
>Perl</I
>
-
- modules. By themselves, Perl modules generally do nothing, but when
- used as part of a larger program, they provide much-needed algorithms
- and functionality.</P
+ modules - encapsulated chunks of code for performing a
+ particular task.</P
></DD
></DL
></DIV
>
has a very special meaning to Bugzilla. Bugzilla's main security
- mechanism comes by lumping users into groups, and assigning those
- groups certain privileges to
+ mechanism comes by placing users in groups, and assigning those
+ groups certain privileges to view bugs in particular
<I
CLASS="glossterm"
>Products</I
>
-
- and
- <I
-CLASS="glossterm"
->Components</I
->
-
in the
<I
CLASS="glossterm"
>Bugzilla</I
>
-
database.</P
></DD
></DL
><H1
CLASS="glossdiv"
><A
-NAME="gloss-i">I</H1
-><DL
-><DT
-><A
-NAME="gloss-infiniteloop"><B
->Infinite Loop</B
-></DT
-><DD
-><P
->A loop of information that never ends; see recursion.</P
-></DD
-></DL
-></DIV
-><DIV
-CLASS="glossdiv"
-><H1
-CLASS="glossdiv"
-><A
NAME="gloss-m">M</H1
><DL
><DT
></DT
><DD
><P
->A Product is a broad category of types of bugs. In general,
- there are several Components to a Product. A Product may also define a
+>A Product is a broad category of types of bugs, normally
+ representing a single piece of software or entity. In general,
+ there are several Components to a Product. A Product may define a
group (used for security) for all bugs entered into
- components beneath it.</P
+ its Components.</P
></DD
><DT
><B
>"QA Contact"</SPAN
>
- field in a Bug.</P
-></DD
-></DL
-></DIV
-><DIV
-CLASS="glossdiv"
-><H1
-CLASS="glossdiv"
-><A
-NAME="gloss-r">R</H1
-><DL
-><DT
-><A
-NAME="gloss-recursion"><B
->Recursion</B
-></DT
-><DD
-><P
->The property of a function looking back at itself for
- something.
- <SPAN
-CLASS="QUOTE"
->"GNU"</SPAN
->, for instance, stands for
- <SPAN
-CLASS="QUOTE"
->"GNU's Not UNIX"</SPAN
->,
- thus recursing upon itself for definition. For further clarity, see
- Infinite Loop.</P
+ field in a bug.</P
></DD
></DL
></DIV
ALIGN="left"
VALIGN="top"
><A
-HREF="gfdl-howto.html"
+HREF="variant-sourceforge.html"
ACCESSKEY="P"
>Prev</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->How to use this License for your documents</TD
+>SourceForge</TD
><TD
WIDTH="34%"
ALIGN="center"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix C. The Bugzilla Database</TD
+>Appendix B. The Bugzilla Database</TD
><TD
WIDTH="10%"
ALIGN="right"
><H1
CLASS="section"
><A
-NAME="granttables">C.3. MySQL Permissions & Grant Tables</H1
+NAME="granttables">B.3. MySQL Permissions & Grant Tables</H1
><DIV
CLASS="note"
><P
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="NEXT"
-TITLE="User Preferences"
-HREF="init4me.html"></HEAD
+TITLE="Hints and Tips"
+HREF="hintsandtips.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="init4me.html"
+HREF="hintsandtips.html"
ACCESSKEY="N"
>Next</A
></TD
ALIGN="right"
VALIGN="top"
><A
-HREF="init4me.html"
+HREF="hintsandtips.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->User Preferences</TD
+>Hints and Tips</TD
></TR
></TABLE
></DIV
NAME="AEN13"><P
></P
><P
-> This is the documentation for Bugzilla, the mozilla.org
- bug-tracking system.
- Bugzilla is an enterprise-class piece of software
- that powers issue-tracking for hundreds of
- organizations around the world, tracking millions of bugs.
+> This is the documentation for Bugzilla, the mozilla.org
+ bug-tracking system.
+ Bugzilla is an enterprise-class piece of software
+ that powers issue-tracking for hundreds of
+ organizations around the world, tracking millions of bugs.
</P
><P
-> This documentation is maintained in DocBook 4.1.2 XML format.
- Changes are best submitted as plain text or SGML diffs, attached
- to a Bugzilla bug.
+> <DIV
+CLASS="warning"
+><P
+></P
+><TABLE
+CLASS="warning"
+WIDTH="100%"
+BORDER="0"
+><TR
+><TD
+WIDTH="25"
+ALIGN="CENTER"
+VALIGN="TOP"
+><IMG
+SRC="../images/warning.gif"
+HSPACE="5"
+ALT="Warning"></TD
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+><P
+>IMPORTANT: this documentation is currently being
+ updated for the Bugzilla 2.16 release and is in an unusual state of
+ flux. Even more than normal, don't believe everything,
+ or even anything, you read.
+ </P
+></TD
+></TR
+></TABLE
+></DIV
+>
+ </P
+><P
+>
+ This documentation is maintained in DocBook 4.1.2 XML format.
+ Changes are best submitted as plain text or SGML diffs, attached
+ to a bug filed in
+ <A
+HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla"
+TARGET="_top"
+>bugzilla.mozilla.org</A
+>.
</P
><P
></P
></DT
><DT
>3.2. <A
-HREF="init4me.html"
+HREF="hintsandtips.html"
+>Hints and Tips</A
+></DT
+><DT
+>3.3. <A
+HREF="userpreferences.html"
>User Preferences</A
></DT
></DL
></DT
><DT
>4.2. <A
+HREF="extraconfig.html"
+>Optional Additional Configuration</A
+></DT
+><DT
+>4.3. <A
HREF="win32.html"
>Win32 Installation Notes</A
></DT
><DT
->4.3. <A
+>4.4. <A
HREF="osx.html"
>Mac OS X Installation Notes</A
></DT
><DT
->4.4. <A
+>4.5. <A
HREF="geninstall.html"
>General Installation Notes</A
></DT
+><DT
+>4.6. <A
+HREF="troubleshooting.html"
+>Troubleshooting</A
+></DT
></DL
></DD
><DT
></DT
><DT
>5.4. <A
-HREF="security.html"
->Bugzilla Security</A
+HREF="voting.html"
+>Voting</A
></DT
-></DL
-></DD
><DT
->6. <A
-HREF="integration.html"
->Integrating Bugzilla with Third-Party Tools</A
-></DT
-><DD
-><DL
-><DT
->6.1. <A
-HREF="bonsai.html"
->Bonsai</A
-></DT
-><DT
->6.2. <A
-HREF="cvs.html"
->CVS</A
-></DT
-><DT
->6.3. <A
-HREF="scm.html"
->Perforce SCM</A
-></DT
-><DT
->6.4. <A
-HREF="tinderbox.html"
->Tinderbox/Tinderbox2</A
-></DT
-></DL
-></DD
-><DT
->7. <A
-HREF="variants.html"
->Bugzilla Variants and Competitors</A
-></DT
-><DD
-><DL
-><DT
->7.1. <A
-HREF="rhbugzilla.html"
->Red Hat Bugzilla</A
-></DT
-><DT
->7.2. <A
-HREF="variant-fenris.html"
->Loki Bugzilla (Fenris)</A
-></DT
-><DT
->7.3. <A
-HREF="variant-issuezilla.html"
->Issuezilla</A
+>5.5. <A
+HREF="groups.html"
+>Groups and Group Security</A
></DT
><DT
->7.4. <A
-HREF="variant-scarab.html"
->Scarab</A
+>5.6. <A
+HREF="security.html"
+>Bugzilla Security</A
></DT
><DT
->7.5. <A
-HREF="variant-perforce.html"
->Perforce SCM</A
+>5.7. <A
+HREF="cust-templates.html"
+>Template Customisation</A
></DT
><DT
->7.6. <A
-HREF="variant-sourceforge.html"
->SourceForge</A
+>5.8. <A
+HREF="integration.html"
+>Integrating Bugzilla with Third-Party Tools</A
></DT
></DL
></DD
></DT
><DT
>B. <A
-HREF="downloadlinks.html"
->Software Download Links</A
-></DT
-><DT
->C. <A
HREF="database.html"
>The Bugzilla Database</A
></DT
><DD
><DL
><DT
->C.1. <A
+>B.1. <A
HREF="dbschema.html"
>Database Schema Chart</A
></DT
><DT
->C.2. <A
+>B.2. <A
HREF="dbdoc.html"
>MySQL Bugzilla Database Introduction</A
></DT
><DT
->C.3. <A
+>B.3. <A
HREF="granttables.html"
>MySQL Permissions & Grant Tables</A
></DT
></DL
></DD
><DT
->D. <A
+>C. <A
HREF="patches.html"
>Useful Patches and Utilities for Bugzilla</A
></DT
><DD
><DL
><DT
->D.1. <A
+>C.1. <A
HREF="rewrite.html"
>Apache
<TT
magic</A
></DT
><DT
->D.2. <A
-HREF="setperl.html"
->The setperl.csh Utility</A
-></DT
-><DT
->D.3. <A
+>C.2. <A
HREF="cmdline.html"
>Command-line Bugzilla Queries</A
></DT
-><DT
->D.4. <A
-HREF="quicksearch.html"
->The Quicksearch Utility</A
-></DT
></DL
></DD
><DT
->E. <A
-HREF="gfdl.html"
->GNU Free Documentation License</A
+>D. <A
+HREF="variants.html"
+>Bugzilla Variants and Competitors</A
></DT
><DD
><DL
><DT
->0. <A
-HREF="gfdl-0.html"
->PREAMBLE</A
-></DT
-><DT
->1. <A
-HREF="gfdl-1.html"
->APPLICABILITY AND DEFINITIONS</A
-></DT
-><DT
->2. <A
-HREF="gfdl-2.html"
->VERBATIM COPYING</A
-></DT
-><DT
->3. <A
-HREF="gfdl-3.html"
->COPYING IN QUANTITY</A
-></DT
-><DT
->4. <A
-HREF="gfdl-4.html"
->MODIFICATIONS</A
-></DT
-><DT
->5. <A
-HREF="gfdl-5.html"
->COMBINING DOCUMENTS</A
-></DT
-><DT
->6. <A
-HREF="gfdl-6.html"
->COLLECTIONS OF DOCUMENTS</A
+>D.1. <A
+HREF="rhbugzilla.html"
+>Red Hat Bugzilla</A
></DT
><DT
->7. <A
-HREF="gfdl-7.html"
->AGGREGATION WITH INDEPENDENT WORKS</A
+>D.2. <A
+HREF="variant-fenris.html"
+>Loki Bugzilla (Fenris)</A
></DT
><DT
->8. <A
-HREF="gfdl-8.html"
->TRANSLATION</A
+>D.3. <A
+HREF="variant-issuezilla.html"
+>Issuezilla</A
></DT
><DT
->9. <A
-HREF="gfdl-9.html"
->TERMINATION</A
+>D.4. <A
+HREF="variant-scarab.html"
+>Scarab</A
></DT
><DT
->10. <A
-HREF="gfdl-10.html"
->FUTURE REVISIONS OF THIS LICENSE</A
+>D.5. <A
+HREF="variant-perforce.html"
+>Perforce SCM</A
></DT
><DT
-><A
-HREF="gfdl-howto.html"
->How to use this License for your documents</A
+>D.6. <A
+HREF="variant-sourceforge.html"
+>SourceForge</A
></DT
></DL
></DD
></DT
><DT
>4-1. <A
-HREF="stepbystep.html#AEN553"
+HREF="stepbystep.html#AEN696"
>Changing the path to Perl</A
></DT
><DT
>4-2. <A
-HREF="win32.html#AEN760"
+HREF="win32.html#AEN917"
>Installing ActivePerl ppd Modules on Microsoft
Windows</A
></DT
><DT
>4-3. <A
-HREF="win32.html#AEN773"
+HREF="win32.html#AEN930"
>Installing OpenInteract ppd Modules manually on Microsoft
Windows</A
></DT
><DT
>4-4. <A
-HREF="win32.html#AEN955"
+HREF="win32.html#AEN1112"
>Removing encrypt() for Windows NT Bugzilla version 2.12 or
earlier</A
></DT
><DT
>5-1. <A
-HREF="programadmin.html#AEN1259"
+HREF="programadmin.html#AEN1424"
>Creating some Components</A
></DT
><DT
>5-2. <A
-HREF="programadmin.html#AEN1288"
+HREF="programadmin.html#AEN1453"
>Common Use of Versions</A
></DT
><DT
>5-3. <A
-HREF="programadmin.html#AEN1292"
+HREF="programadmin.html#AEN1457"
>A Different Use of Versions</A
></DT
><DT
>5-4. <A
-HREF="programadmin.html#AEN1320"
+HREF="programadmin.html#AEN1485"
>Using SortKey with Target Milestone</A
></DT
><DT
>5-5. <A
-HREF="programadmin.html#AEN1356"
+HREF="groups.html#AEN1521"
>When to Use Group Security</A
></DT
><DT
>5-6. <A
-HREF="programadmin.html#AEN1373"
+HREF="groups.html#AEN1538"
>Creating a New Group</A
></DT
><DT
>5-7. <A
-HREF="programadmin.html#AEN1390"
+HREF="groups.html#AEN1555"
>Bugzilla Groups</A
></DT
-><DT
->D-1. <A
-HREF="setperl.html#AEN2111"
->Using Setperl to set your perl path</A
-></DT
></DL
></DIV
></DIV
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="User Preferences"
-HREF="init4me.html"><LINK
+HREF="userpreferences.html"><LINK
REL="NEXT"
TITLE="Step-by-step Install"
HREF="stepbystep.html"></HEAD
ALIGN="left"
VALIGN="bottom"
><A
-HREF="init4me.html"
+HREF="userpreferences.html"
ACCESSKEY="P"
>Prev</A
></TD
><DL
><DT
>4.1.1. <A
-HREF="stepbystep.html#AEN354"
+HREF="stepbystep.html#AEN489"
>Introduction</A
></DT
><DT
>4.1.2. <A
-HREF="stepbystep.html#AEN358"
+HREF="stepbystep.html#AEN493"
>Package List</A
></DT
><DT
></DT
><DT
>4.1.6. <A
-HREF="stepbystep.html#AEN518"
+HREF="stepbystep.html#AEN663"
>HTTP Server</A
></DT
><DT
>4.1.7. <A
-HREF="stepbystep.html#AEN537"
+HREF="stepbystep.html#AEN682"
>Bugzilla</A
></DT
><DT
>4.1.8. <A
-HREF="stepbystep.html#AEN558"
+HREF="stepbystep.html#AEN701"
>Setting Up the MySQL Database</A
></DT
><DT
>4.1.9. <A
-HREF="stepbystep.html#AEN593"
+HREF="stepbystep.html#AEN736"
><TT
CLASS="filename"
>checksetup.pl</TT
></DT
><DT
>4.1.10. <A
-HREF="stepbystep.html#AEN625"
+HREF="stepbystep.html#AEN768"
>Securing MySQL</A
></DT
+></DL
+></DD
><DT
->4.1.11. <A
-HREF="stepbystep.html#AEN691"
+>4.2. <A
+HREF="extraconfig.html"
>Optional Additional Configuration</A
></DT
+><DD
+><DL
+><DT
+>4.2.1. <A
+HREF="extraconfig.html#AEN836"
+>Dependency Charts</A
+></DT
+><DT
+>4.2.2. <A
+HREF="extraconfig.html#AEN840"
+>Bug Graphs</A
+></DT
+><DT
+>4.2.3. <A
+HREF="extraconfig.html#AEN853"
+>The Whining Cron</A
+></DT
+><DT
+>4.2.4. <A
+HREF="extraconfig.html#bzldap"
+>LDAP Authentication</A
+></DT
></DL
></DD
><DT
->4.2. <A
+>4.3. <A
HREF="win32.html"
>Win32 Installation Notes</A
></DT
><DD
><DL
><DT
->4.2.1. <A
+>4.3.1. <A
HREF="win32.html#wininstall"
>Win32 Installation: Step-by-step</A
></DT
><DT
->4.2.2. <A
+>4.3.2. <A
HREF="win32.html#addlwintips"
>Additional Windows Tips</A
></DT
-><DT
->4.2.3. <A
-HREF="win32.html#bzldap"
->Bugzilla LDAP Integration</A
-></DT
></DL
></DD
><DT
->4.3. <A
+>4.4. <A
HREF="osx.html"
>Mac OS X Installation Notes</A
></DT
><DT
->4.4. <A
+>4.5. <A
HREF="geninstall.html"
>General Installation Notes</A
></DT
><DD
><DL
><DT
->4.4.1. <A
-HREF="geninstall.html#AEN992"
+>4.5.1. <A
+HREF="geninstall.html#AEN1145"
>Modifying Your Running System</A
></DT
><DT
->4.4.2. <A
-HREF="geninstall.html#AEN999"
+>4.5.2. <A
+HREF="geninstall.html#AEN1152"
>Upgrading From Previous Versions</A
></DT
><DT
->4.4.3. <A
+>4.5.3. <A
HREF="geninstall.html#htaccess"
><TT
CLASS="filename"
files and security</A
></DT
><DT
->4.4.4. <A
+>4.5.4. <A
HREF="geninstall.html#mod-throttle"
><TT
CLASS="filename"
and Security</A
></DT
><DT
->4.4.5. <A
+>4.5.5. <A
HREF="geninstall.html#content-type"
>Preventing untrusted Bugzilla content from executing malicious
Javascript code</A
></DT
+></DL
+></DD
+><DT
+>4.6. <A
+HREF="troubleshooting.html"
+>Troubleshooting</A
+></DT
+><DD
+><DL
+><DT
+>4.6.1. <A
+HREF="troubleshooting.html#AEN1208"
+>DBD::Sponge::db prepare failed</A
+></DT
><DT
->4.4.6. <A
-HREF="geninstall.html#paranoid-security"
+>4.6.2. <A
+HREF="troubleshooting.html#paranoid-security"
>cannot chdir(/var/spool/mqueue)</A
></DT
></DL
ALIGN="left"
VALIGN="top"
><A
-HREF="init4me.html"
+HREF="userpreferences.html"
ACCESSKEY="P"
>Prev</A
></TD
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
+REL="UP"
+TITLE="Administering Bugzilla"
+HREF="administration.html"><LINK
REL="PREVIOUS"
-TITLE="Bugzilla Security"
-HREF="security.html"><LINK
+TITLE="Template Customisation"
+HREF="cust-templates.html"><LINK
REL="NEXT"
-TITLE="Bonsai"
-HREF="bonsai.html"></HEAD
+TITLE="The Bugzilla FAQ"
+HREF="faq.html"></HEAD
><BODY
-CLASS="chapter"
+CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
ALIGN="left"
VALIGN="bottom"
><A
-HREF="security.html"
+HREF="cust-templates.html"
ACCESSKEY="P"
>Prev</A
></TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
-></TD
+>Chapter 5. Administering Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="bonsai.html"
+HREF="faq.html"
ACCESSKEY="N"
>Next</A
></TD
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
-CLASS="chapter"
+CLASS="section"
><H1
+CLASS="section"
><A
-NAME="integration">Chapter 6. Integrating Bugzilla with Third-Party Tools</H1
+NAME="integration">5.8. Integrating Bugzilla with Third-Party Tools</H1
><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
->6.1. <A
-HREF="bonsai.html"
->Bonsai</A
-></DT
-><DT
->6.2. <A
-HREF="cvs.html"
->CVS</A
-></DT
-><DT
->6.3. <A
-HREF="scm.html"
->Perforce SCM</A
-></DT
-><DT
->6.4. <A
-HREF="tinderbox.html"
->Tinderbox/Tinderbox2</A
-></DT
-></DL
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="bonsai">5.8.1. Bonsai</H2
+><P
+>Bonsai is a web-based tool for managing
+ <A
+HREF="integration.html#cvs"
+>CVS, the Concurrent Versioning System</A
+>
+
+ . Using Bonsai, administrators can control open/closed status of trees,
+ query a fast relational database back-end for change, branch, and comment
+ information, and view changes made since the last time the tree was
+ closed. These kinds of changes cause the engineer responsible to be
+ <SPAN
+CLASS="QUOTE"
+>"on the hook"</SPAN
+>
+
+ (include cool URL link here for Hook policies at mozilla.org). Bonsai
+ also includes gateways to
+ <A
+HREF="integration.html#tinderbox"
+>Tinderbox, the Mozilla automated build management system</A
+>
+
+ and Bugzilla</P
+></DIV
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="cvs">5.8.2. CVS</H2
+><P
+>CVS integration is best accomplished, at this point, using the
+ Bugzilla Email Gateway. There have been some files submitted to allow
+ greater CVS integration, but we need to make certain that Bugzilla is not
+ tied into one particular software management package.</P
+><P
+>Follow the instructions in the FAQ for enabling Bugzilla e-mail
+ integration. Ensure that your check-in script sends an email to your
+ Bugzilla e-mail gateway with the subject of
+ <SPAN
+CLASS="QUOTE"
+>"[Bug XXXX]"</SPAN
+>
+
+ , and you can have CVS check-in comments append to your Bugzilla bug. If
+ you have your check-in script include an @resolution field, you can even
+ change the Bugzilla bug state.</P
+><P
+>There is also a project, based upon somewhat dated Bugzilla code,
+ to integrate CVS and Bugzilla through CVS' ability to email. Check it out
+ at:
+ <A
+HREF="http://homepages.kcbbs.gen.nz/~tonyg/"
+TARGET="_top"
+> http://homepages.kcbbs.gen.nz/~tonyg/</A
+>
+
+ , under the
+ <SPAN
+CLASS="QUOTE"
+>"cvszilla"</SPAN
+>
+
+ link.</P
+></DIV
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="scm">5.8.3. Perforce SCM</H2
+><P
+>You can find the project page for Bugzilla and Teamtrack Perforce
+ integration (p4dti) at:
+ <A
+HREF="http://www.ravenbrook.com/project/p4dti/"
+TARGET="_top"
+> http://www.ravenbrook.com/project/p4dti</A
+>
+
+ .
+ <SPAN
+CLASS="QUOTE"
+>"p4dti"</SPAN
+>
+
+ is now an officially supported product from Perforce, and you can find
+ the "Perforce Public Depot" p4dti page at
+ <A
+HREF="http://public.perforce.com/public/perforce/p4dti/index.html"
+TARGET="_top"
+> http://public.perforce.com/public/perforce/p4dti/index.html</A
+>
+
+ .</P
+><P
+>Integration of Perforce with Bugzilla, once patches are applied, is
+ seamless. Perforce replication information will appear below the comments
+ of each bug. Be certain you have a matching set of patches for the
+ Bugzilla version you are installing. p4dti is designed to support
+ multiple defect trackers, and maintains its own documentation for it.
+ Please consult the pages linked above for further information.</P
+></DIV
+><DIV
+CLASS="section"
+><H2
+CLASS="section"
+><A
+NAME="tinderbox">5.8.4. Tinderbox/Tinderbox2</H2
+><P
+>We need Tinderbox integration information.</P
></DIV
></DIV
><DIV
ALIGN="left"
VALIGN="top"
><A
-HREF="security.html"
+HREF="cust-templates.html"
ACCESSKEY="P"
>Prev</A
></TD
ALIGN="right"
VALIGN="top"
><A
-HREF="bonsai.html"
+HREF="faq.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->Bugzilla Security</TD
+>Template Customisation</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
-> </TD
+><A
+HREF="administration.html"
+ACCESSKEY="U"
+>Up</A
+></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Bonsai</TD
+>The Bugzilla FAQ</TD
></TR
></TABLE
></DIV
><H1
CLASS="section"
><A
-NAME="osx">4.3. Mac OS X Installation Notes</H1
+NAME="osx">4.4. Mac OS X Installation Notes</H1
><P
>There are a lot of common libraries and utilities out there that
Apple did not include with Mac OS X, but which run perfectly well on it.
CLASS="appendix"
><H1
><A
-NAME="patches">Appendix D. Useful Patches and Utilities for Bugzilla</H1
+NAME="patches">Appendix C. Useful Patches and Utilities for Bugzilla</H1
><DIV
CLASS="TOC"
><DL
>Table of Contents</B
></DT
><DT
->D.1. <A
+>C.1. <A
HREF="rewrite.html"
>Apache
<TT
magic</A
></DT
><DT
->D.2. <A
-HREF="setperl.html"
->The setperl.csh Utility</A
-></DT
-><DT
->D.3. <A
+>C.2. <A
HREF="cmdline.html"
>Command-line Bugzilla Queries</A
></DT
-><DT
->D.4. <A
-HREF="quicksearch.html"
->The Quicksearch Utility</A
-></DT
></DL
></DIV
><P
TITLE="User Administration"
HREF="useradmin.html"><LINK
REL="NEXT"
-TITLE="Bugzilla Security"
-HREF="security.html"></HEAD
+TITLE="Voting"
+HREF="voting.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="security.html"
+HREF="voting.html"
ACCESSKEY="N"
>Next</A
></TD
<DIV
CLASS="example"
><A
-NAME="AEN1259"><P
+NAME="AEN1424"><P
><B
>Example 5-1. Creating some Components</B
></P
><DIV
CLASS="informalexample"
><A
-NAME="AEN1261"><P
+NAME="AEN1426"><P
></P
><P
>The computer game you are designing may have a "UI"
<DIV
CLASS="example"
><A
-NAME="AEN1288"><P
+NAME="AEN1453"><P
><B
>Example 5-2. Common Use of Versions</B
></P
><DIV
CLASS="informalexample"
><A
-NAME="AEN1290"><P
+NAME="AEN1455"><P
></P
><P
>A user reports a bug against Version "Beta 2.0" of your
<DIV
CLASS="example"
><A
-NAME="AEN1292"><P
+NAME="AEN1457"><P
><B
>Example 5-3. A Different Use of Versions</B
></P
><DIV
CLASS="informalexample"
><A
-NAME="AEN1294"><P
+NAME="AEN1459"><P
></P
><P
>This field has been used to good effect by an online service
><DIV
CLASS="example"
><A
-NAME="AEN1320"><P
+NAME="AEN1485"><P
><B
>Example 5-4. Using SortKey with Target Milestone</B
></P
><DIV
CLASS="informalexample"
><A
-NAME="AEN1322"><P
+NAME="AEN1487"><P
></P
><P
>Let's say you create a target milestone called "Release
></LI
></OL
></DIV
-><DIV
-CLASS="section"
-><H2
-CLASS="section"
-><A
-NAME="voting">5.3.5. Voting</H2
-><P
->The concept of "voting" is a poorly understood, yet powerful
- feature for the management of open-source projects. Each user is
- assigned so many Votes per product, which they can freely reassign (or
- assign multiple votes to a single bug). This allows developers to gauge
- user need for a particular enhancement or bugfix. By allowing bugs with
- a certain number of votes to automatically move from "UNCONFIRMED" to
- "NEW", users of the bug system can help high-priority bugs garner
- attention so they don't sit for a long time awaiting triage.</P
-><P
->The daunting challenge of Votes is deciding where you draw the
- line for a "vocal majority". If you only have a user base of 100 users,
- setting a low threshold for bugs to move from UNCONFIRMED to NEW makes
- sense. As the Bugzilla user base expands, however, these thresholds
- must be re-evaluated. You should gauge whether this feature is worth
- the time and close monitoring involved, and perhaps forego
- implementation until you have a critical mass of users who demand
- it.</P
-><P
->To modify Voting settings:</P
-><P
-></P
-><OL
-TYPE="1"
-><LI
-><P
->Navigate to the "Edit product" screen for the Product you
- wish to modify</P
-></LI
-><LI
-><P
->Set "Maximum Votes per person" to your calculated value.
- Setting this field to "0" disables voting.</P
-></LI
-><LI
-><P
->Set "Maximum Votes a person can put on a single bug" to your
- calculated value. It should probably be some number lower than the
- "Maximum votes per person". Setting this field to "0" disables
- voting, but leaves the voting options open to the user. This is
- confusing.</P
-></LI
-><LI
-><P
->Set "Number of votes a bug in this product needs to
- automatically get out of the UNCONFIRMED state" to your calculated
- number. Setting this field to "0" disables the automatic move of
- bugs from UNCONFIRMED to NEW. Some people advocate leaving this at
- "0", but of what use are Votes if your Bugzilla user base is unable
- to affect which bugs appear on Development radar?
- <DIV
-CLASS="tip"
-><P
-></P
-><TABLE
-CLASS="tip"
-WIDTH="100%"
-BORDER="0"
-><TR
-><TD
-WIDTH="25"
-ALIGN="CENTER"
-VALIGN="TOP"
-><IMG
-SRC="../images/tip.gif"
-HSPACE="5"
-ALT="Tip"></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->You should probably set this number to higher than a small
- coalition of Bugzilla users can influence it. Most sites use this
- as a "referendum" mechanism -- if users are able to vote a bug
- out of UNCONFIRMED, it is a
- <EM
->really</EM
->
-
- bad bug!</P
-></TD
-></TR
-></TABLE
-></DIV
->
- </P
-></LI
-><LI
-><P
->Once you have adjusted the values to your preference, select
- the "Update" button.</P
-></LI
-></OL
-></DIV
-><DIV
-CLASS="section"
-><H2
-CLASS="section"
-><A
-NAME="groups">5.3.6. Groups and Group Security</H2
-><P
->Groups can be very useful in bugzilla, because they allow users
- to isolate bugs or products that should only be seen by certain people.
- Groups can also be a complicated minefield of interdependencies and
- weirdness if mismanaged.
- <DIV
-CLASS="example"
-><A
-NAME="AEN1356"><P
-><B
->Example 5-5. When to Use Group Security</B
-></P
-><DIV
-CLASS="informalexample"
-><A
-NAME="AEN1358"><P
-></P
-><P
->Many Bugzilla sites isolate "Security-related" bugs from all
- other bugs. This way, they can have a fix ready before the security
- vulnerability is announced to the world. You can create a
- "Security" product which, by default, has no members, and only add
- members to the group (in their individual User page, as described
- under User Administration) who should have priveleged access to
- "Security" bugs. Alternately, you may create a Group independently
- of any Product, and change the Group mask on individual bugs to
- restrict access to members only of certain Groups.</P
-><P
-></P
-></DIV
-></DIV
->
-
- Groups only work if you enable the "usebuggroups" paramater. In
- addition, if the "usebuggroupsentry" parameter is "On", one can
- restrict access to products by groups, so that only members of a
- product group are able to view bugs within that product. Group security
- in Bugzilla can be divided into two categories: Generic and
- Product-Based.</P
-><DIV
-CLASS="note"
-><P
-></P
-><TABLE
-CLASS="note"
-WIDTH="100%"
-BORDER="0"
-><TR
-><TD
-WIDTH="25"
-ALIGN="CENTER"
-VALIGN="TOP"
-><IMG
-SRC="../images/note.gif"
-HSPACE="5"
-ALT="Note"></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Groups in Bugzilla are a complicated beast that evolved out of
- very simple user permission bitmasks, apparently itself derived from
- common concepts in UNIX access controls. A "bitmask" is a
- fixed-length number whose value can describe one, and only one, set
- of states. For instance, UNIX file permissions are assigned bitmask
- values: "execute" has a value of 1, "write" has a value of 2, and
- "read" has a value of 4. Add them together, and a file can be read,
- written to, and executed if it has a bitmask of "7". (This is a
- simplified example -- anybody who knows UNIX security knows there is
- much more to it than this. Please bear with me for the purpose of
- this note.) The only way a bitmask scheme can work is by doubling the
- bit count for each value. Thus if UNIX wanted to offer another file
- permission, the next would have to be a value of 8, then the next 16,
- the next 32, etc.</P
-><P
->Similarly, Bugzilla offers a bitmask to define group
- permissions, with an internal limit of 64. Several are already
- occupied by built-in permissions. The way around this limitation is
- to avoid assigning groups to products if you have many products,
- avoid bloating of group lists, and religiously prune irrelevant
- groups. In reality, most installations of Bugzilla support far fewer
- than 64 groups, so this limitation has not hit for most sites, but it
- is on the table to be revised for Bugzilla 3.0 because it interferes
- with the security schemes of some administrators.</P
-></TD
-></TR
-></TABLE
-></DIV
-><P
->To enable Generic Group Security ("usebuggroups"):</P
-><P
-></P
-><OL
-TYPE="1"
-><LI
-><P
->Turn "On" "usebuggroups" in the "Edit Parameters"
- screen.</P
-></LI
-><LI
-><P
->You will generally have no groups set up. Select the "groups"
- link in the footer.</P
-></LI
-><LI
-><P
->Take a moment to understand the instructions on the "Edit
- Groups" screen. Once you feel confident you understand what is
- expected of you, select the "Add Group" link.</P
-></LI
-><LI
-><P
->Fill out the "New Name" (remember, no spaces!), "New
- Description", and "New User RegExp" fields. "New User RegExp"
- allows you to automatically place all users who fulfill the Regular
- Expression into the new group.
- <DIV
-CLASS="example"
-><A
-NAME="AEN1373"><P
-><B
->Example 5-6. Creating a New Group</B
-></P
-><DIV
-CLASS="informalexample"
-><A
-NAME="AEN1375"><P
-></P
-><P
->I created a group called DefaultGroup with a description
- of
- <SPAN
-CLASS="QUOTE"
->"This is simply a group to play with"</SPAN
->
-
- , and a New User RegExp of
- <SPAN
-CLASS="QUOTE"
->".*@mydomain.tld"</SPAN
->
-
- . This new group automatically includes all Bugzilla users with
- "@mydomain.tld" at the end of their user id. When I finished,
- my new group was assigned bit #128.</P
-><P
-></P
-></DIV
-></DIV
->
-
- When you have finished, select the Add button.</P
-></LI
-></OL
-><P
->To enable Product-Based Group Security
- (usebuggroupsentry):</P
-><DIV
-CLASS="warning"
-><P
-></P
-><TABLE
-CLASS="warning"
-WIDTH="100%"
-BORDER="0"
-><TR
-><TD
-WIDTH="25"
-ALIGN="CENTER"
-VALIGN="TOP"
-><IMG
-SRC="../images/warning.gif"
-HSPACE="5"
-ALT="Warning"></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Don't forget that you only have 64 groups masks available,
- total, for your installation of Bugzilla! If you plan on having more
- than 50 products in your individual Bugzilla installation, and
- require group security for your products, you should consider either
- running multiple Bugzillas or using Generic Group Security instead of
- Product-Based ("usebuggroupsentry") Group Security.</P
-></TD
-></TR
-></TABLE
-></DIV
-><P
-></P
-><OL
-TYPE="1"
-><LI
-><P
->Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit
- Parameters" screen.</P
-><DIV
-CLASS="warning"
-><P
-></P
-><TABLE
-CLASS="warning"
-WIDTH="100%"
-BORDER="0"
-><TR
-><TD
-WIDTH="25"
-ALIGN="CENTER"
-VALIGN="TOP"
-><IMG
-SRC="../images/warning.gif"
-HSPACE="5"
-ALT="Warning"></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->"usebuggroupsentry" has the capacity to prevent the
- administrative user from directly altering bugs because of
- conflicting group permissions. If you plan on using
- "usebuggroupsentry", you should plan on restricting
- administrative account usage to administrative duties only. In
- other words, manage bugs with an unpriveleged user account, and
- manage users, groups, Products, etc. with the administrative
- account.</P
-></TD
-></TR
-></TABLE
-></DIV
-></LI
-><LI
-><P
->You will generally have no Groups set up, unless you enabled
- "usebuggroupsentry" prior to creating any Products. To create
- "Generic Group Security" groups, follow the instructions given
- above. To create Product-Based Group security, simply follow the
- instructions for creating a new Product. If you need to add users
- to these new groups as you create them, you will find the option to
- add them to the group available under the "Edit User"
- screens.</P
-></LI
-></OL
-><P
->You may find this example illustrative for how bug groups work.
- <DIV
-CLASS="example"
-><A
-NAME="AEN1390"><P
-><B
->Example 5-7. Bugzilla Groups</B
-></P
-><P
-CLASS="literallayout"
->Bugzilla Groups example ----------------------- For<br>
- this example, let us suppose we have four groups, call them Group1,<br>
- Group2, Group3, and Group4. We have 5 users, User1, User2, User3,<br>
- User4, User5. We have 8 bugs, Bug1, ..., Bug8. Group membership is<br>
- defined by this chart: (X denotes that user is in that group.) (I<br>
- apologize for the nasty formatting of this table. Try viewing it in a<br>
- text-based browser or something for now. -MPB) G G G G r r r r o o o<br>
- o u u u u p p p p 1 2 3 4 +-+-+-+-+ User1|X| | | | +-+-+-+-+ User2|<br>
- |X| | | +-+-+-+-+ User3|X| |X| | +-+-+-+-+ User4|X|X|X| | +-+-+-+-+<br>
- User5| | | | | +-+-+-+-+ Bug restrictions are defined by this chart:<br>
- (X denotes that bug is restricted to that group.) G G G G r r r r o o<br>
- o o u u u u p p p p 1 2 3 4 +-+-+-+-+ Bug1| | | | | +-+-+-+-+ Bug2|<br>
- |X| | | +-+-+-+-+ Bug3| | |X| | +-+-+-+-+ Bug4| | | |X| +-+-+-+-+<br>
- Bug5|X|X| | | +-+-+-+-+ Bug6|X| |X| | +-+-+-+-+ Bug7|X|X|X| |<br>
- +-+-+-+-+ Bug8|X|X|X|X| +-+-+-+-+ Who can see each bug? Bug1 has no<br>
- group restrictions. Therefore, Bug1 can be seen by any user, whatever<br>
- their group membership. This is going to be the only bug that User5<br>
- can see, because User5 isn't in any groups. Bug2 can be seen by<br>
- anyone in Group2, that is User2 and User4. Bug3 can be seen by anyone<br>
- in Group3, that is User3 and User4. Bug4 can be seen by anyone in<br>
- Group4. Nobody is in Group4, so none of these users can see Bug4.<br>
- Bug5 can be seen by anyone who is in _both_ Group1 and Group2. This<br>
- is only User4. User1 cannot see it because he is not in Group2, and<br>
- User2 cannot see it because she is not in Group1. Bug6 can be seen by<br>
- anyone who is in both Group1 and Group3. This would include User3 and<br>
- User4. Similar to Bug5, User1 cannot see Bug6 because he is not in<br>
- Group3. Bug7 can be seen by anyone who is in Group1, Group2, and<br>
- Group3. This is only User4. All of the others are missing at least<br>
- one of those group privileges, and thus cannot see the bug. Bug8 can<br>
- be seen by anyone who is in Group1, Group2, Group3, and Group4. There<br>
- is nobody in all four of these groups, so nobody can see Bug8. It<br>
- doesn't matter that User4 is in Group1, Group2, and Group3, since he<br>
- isn't in Group4.</P
-></DIV
->
- </P
-></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="right"
VALIGN="top"
><A
-HREF="security.html"
+HREF="voting.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Bugzilla Security</TD
+>Voting</TD
></TR
></TABLE
></DIV
TITLE="Command-line Bugzilla Queries"
HREF="cmdline.html"><LINK
REL="NEXT"
-TITLE="GNU Free Documentation License"
-HREF="gfdl.html"></HEAD
+TITLE="Glossary"
+HREF="glossary.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="gfdl.html"
+HREF="glossary.html"
ACCESSKEY="N"
>Next</A
></TD
><H1
CLASS="section"
><A
-NAME="quicksearch">D.4. The Quicksearch Utility</H1
+NAME="quicksearch">D.3. The Quicksearch Utility</H1
><P
->Quicksearch is a new, experimental feature of the 2.12 release. It
- consist of two Javascript files, "quicksearch.js" and "localconfig.js",
- and two documentation files, "quicksearch.html" and
- "quicksearchhack.html"</P
+>Quicksearch is a single-text-box query tool which uses metacharacters
+ to indicate what is to be searched. For example, "foo@bar.com" would be
+ looked for in email address fields, because it contains an @ and so
+ is an email address.
+ </P
><P
->The index.html page has been updated to include the QuickSearch
- text box.</P
+>Quicksearch consists of two Javascript files,
+ "quicksearch.js" and "localconfig.js",
+ and two documentation files, "quicksearch.html" and
+ "quicksearchhack.html". More information on how to use Quicksearch
+ can be found there. You'll find the Quicksearch box on Bugzilla's
+ front page.</P
><P
>To take full advantage of the query power, the Bugzilla maintainer
- must edit "localconfig.js" according to the value sets used in the local
+ must edit "localconfig.js" and change the parameters according to the local
installation.</P
><P
>Currently, keywords must be hard-coded in localconfig.js. If they
ALIGN="right"
VALIGN="top"
><A
-HREF="gfdl.html"
+HREF="glossary.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->GNU Free Documentation License</TD
+>Glossary</TD
></TR
></TABLE
></DIV
TITLE="Useful Patches and Utilities for Bugzilla"
HREF="patches.html"><LINK
REL="NEXT"
-TITLE="The setperl.csh Utility"
-HREF="setperl.html"></HEAD
+TITLE="Command-line Bugzilla Queries"
+HREF="cmdline.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Appendix D. Useful Patches and Utilities for Bugzilla</TD
+>Appendix C. Useful Patches and Utilities for Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="setperl.html"
+HREF="cmdline.html"
ACCESSKEY="N"
>Next</A
></TD
><H1
CLASS="section"
><A
-NAME="rewrite">D.1. Apache
+NAME="rewrite">C.1. Apache
<TT
CLASS="filename"
>mod_rewrite</TT
COLOR="#000000"
><PRE
CLASS="programlisting"
->
-<VirtualHost 12.34.56.78>
+> <VirtualHost 12.34.56.78>
RewriteEngine On
RewriteRule ^/([0-9]+)$ http://foo.bar.com/show_bug.cgi?id=$1 [L,R]
</VirtualHost>
-
- </PRE
+</PRE
></FONT
></TD
></TR
><LI
><P
>There are many, many more things you can do with mod_rewrite.
- As time goes on, I will include many more in the Guide. For now,
- though, please refer to the mod_rewrite documentation at
+ Please refer to the mod_rewrite documentation at
<A
HREF="http://www.apache.org"
TARGET="_top"
>http://www.apache.org</A
->
+>.
</P
></LI
></OL
ALIGN="right"
VALIGN="top"
><A
-HREF="setperl.html"
+HREF="cmdline.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->The setperl.csh Utility</TD
+>Command-line Bugzilla Queries</TD
></TR
></TABLE
></DIV
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Chapter 7. Bugzilla Variants and Competitors</TD
+>Appendix D. Bugzilla Variants and Competitors</TD
><TD
WIDTH="10%"
ALIGN="right"
><H1
CLASS="section"
><A
-NAME="rhbugzilla">7.1. Red Hat Bugzilla</H1
+NAME="rhbugzilla">D.1. Red Hat Bugzilla</H1
><P
->Red Hat Bugzilla is probably the most popular Bugzilla variant on
- the planet. One of the major benefits of Red Hat Bugzilla is the ability
+>Red Hat Bugzilla is probably the most popular Bugzilla, after
+ Bugzilla itself, on the planet. One of the major benefits of Red Hat
+ Bugzilla is the ability
to work with Oracle, MySQL, and PostGreSQL databases serving as the
- back-end, instead of just MySQL. Dave Lawrence has worked very hard to
- keep Red Hat Bugzilla up-to-date, and many people prefer the
- snappier-looking page layout of Red Hat Bugzilla to the default
- Mozilla-standard formatting.</P
+ back-end, instead of just MySQL. Dave Lawrence of Red Hat is
+ active in the Bugzilla community, and we hope to see a reunification
+ of the fork before too long.</P
><P
>URL:
<A
TITLE="Administering Bugzilla"
HREF="administration.html"><LINK
REL="PREVIOUS"
-TITLE="Product, Component, Milestone, and Version Administration"
-HREF="programadmin.html"><LINK
+TITLE="Groups and Group Security"
+HREF="groups.html"><LINK
REL="NEXT"
-TITLE="Integrating Bugzilla with Third-Party Tools"
-HREF="integration.html"></HEAD
+TITLE="Template Customisation"
+HREF="cust-templates.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
ALIGN="left"
VALIGN="bottom"
><A
-HREF="programadmin.html"
+HREF="groups.html"
ACCESSKEY="P"
>Prev</A
></TD
ALIGN="right"
VALIGN="bottom"
><A
-HREF="integration.html"
+HREF="cust-templates.html"
ACCESSKEY="N"
>Next</A
></TD
><H1
CLASS="section"
><A
-NAME="security">5.4. Bugzilla Security</H1
+NAME="security">5.6. Bugzilla Security</H1
><TABLE
BORDER="0"
WIDTH="100%"
ALIGN="left"
VALIGN="top"
><A
-HREF="programadmin.html"
+HREF="groups.html"
ACCESSKEY="P"
>Prev</A
></TD
ALIGN="right"
VALIGN="top"
><A
-HREF="integration.html"
+HREF="cust-templates.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->Product, Component, Milestone, and Version Administration</TD
+>Groups and Group Security</TD
><TD
WIDTH="34%"
ALIGN="center"
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Integrating Bugzilla with Third-Party Tools</TD
+>Template Customisation</TD
></TR
></TABLE
></DIV
TITLE="Installation"
HREF="installation.html"><LINK
REL="NEXT"
-TITLE="Win32 Installation Notes"
-HREF="win32.html"></HEAD
+TITLE="Optional Additional Configuration"
+HREF="extraconfig.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="win32.html"
+HREF="extraconfig.html"
ACCESSKEY="N"
>Next</A
></TD
><H2
CLASS="section"
><A
-NAME="AEN354">4.1.1. Introduction</H2
+NAME="AEN489">4.1.1. Introduction</H2
><P
>Bugzilla has been successfully installed under Solaris, Linux,
and Win32. Win32 is not yet officially supported, but many people
><H2
CLASS="section"
><A
-NAME="AEN358">4.1.2. Package List</H2
+NAME="AEN493">4.1.2. Package List</H2
><DIV
CLASS="note"
><P
></DIV
><P
>The software packages necessary for the proper running of
- Bugzilla are:
+ Bugzilla (with download links) are:
<P
></P
><OL
TYPE="1"
><LI
><P
->MySQL database server and the mysql client (3.22.5 or
- greater)</P
+> <A
+HREF="http://www.mysql.com/"
+TARGET="_top"
+>MySQL database server</A
+>
+ (3.22.5 or greater)
+ </P
></LI
><LI
><P
->Perl (5.005 or greater, 5.6.1 is recommended if you wish to
- use Bundle::Bugzilla)</P
+> <A
+HREF="http://www.perl.org"
+TARGET="_top"
+>Perl</A
+>
+ (5.005 or greater, 5.6.1 is recommended if you wish to
+ use Bundle::Bugzilla)
+ </P
></LI
><LI
><P
>Perl Modules (minimum version):
- <P
+ <P
></P
><OL
TYPE="a"
><LI
><P
->Template (v2.07)</P
+> <A
+HREF="http://www.template-toolkit.org"
+TARGET="_top"
+>Template</A
+>
+ (v2.07)
+ </P
></LI
><LI
><P
->AppConfig (v1.52)</P
+> <A
+HREF="http://www.cpan.org/modules/by-module/AppConfig/"
+TARGET="_top"
+>AppConfig
+ </A
+>
+ (v1.52)
+ </P
></LI
><LI
><P
->Text::Wrap (v2001.0131)</P
+> Text::Wrap
+ (v2001.0131)
+ </P
></LI
><LI
><P
->File::Spec (v0.8.2)</P
+> <A
+HREF="http://search.cpan.org/search?dist=File-Spec"
+TARGET="_top"
+>File::Spec
+ </A
+>
+ (v0.8.2)
+ </P
></LI
><LI
><P
->Data::Dumper (any)</P
+> <A
+HREF="http://www.cpan.org/modules/by-module/Data/"
+TARGET="_top"
+>Data::Dumper
+ </A
+>
+ (any)
+ </P
></LI
><LI
><P
->DBD::mysql (v1.2209)</P
+> <A
+HREF="http://www.cpan.org/modules/by-module/Mysql/"
+TARGET="_top"
+>DBD::mysql
+ </A
+>
+ (v1.2209)
+ </P
></LI
><LI
><P
->DBI (v1.13)</P
+> <A
+HREF="http://www.cpan.org/modules/by-module/DBI/"
+TARGET="_top"
+>DBI</A
+>
+ (v1.13)
+ </P
></LI
><LI
><P
->Date::Parse (any)</P
+> <A
+HREF="http://www.cpan.org/modules/by-module/Date/"
+TARGET="_top"
+>Date::Parse
+ </A
+>
+ (any)
+ </P
></LI
><LI
><P
->CGI::Carp (any)</P
+> CGI::Carp
+ (any)
+ </P
></LI
></OL
>
- and, optionally:
- <P
+ and, optionally:
+ <P
></P
><OL
TYPE="a"
><LI
><P
->GD (v1.19) for bug charting</P
+> <A
+HREF="http://www.cpan.org/modules/by-module/GD/"
+TARGET="_top"
+>GD</A
+>
+ (v1.19) for bug charting
+ </P
></LI
><LI
><P
->Chart::Base (v0.99c) for bug charting</P
+> <A
+HREF="http://www.cpan.org/modules/by-module/Chart/"
+TARGET="_top"
+>Chart::Base
+ </A
+>
+ (v0.99c) for bug charting
+ </P
></LI
><LI
><P
->XML::Parser (any) for the XML interface</P
+> XML::Parser
+ (any) for the XML interface
+ </P
></LI
><LI
><P
->MIME::Parser (any) for the email interface</P
+> MIME::Parser
+ (any) for the email interface
+ </P
></LI
></OL
>
- </P
+ </P
></LI
><LI
><P
->The web server of your choice. Apache is recommended.</P
+> The web server of your choice.
+ <A
+HREF="http://www.apache.org/"
+TARGET="_top"
+>Apache</A
+>
+ is highly recommended.
+ </P
></LI
></OL
>
All Perl modules can be found on the
Comprehensive Perl Archive Network (CPAN) at http://www.cpan.org. The
CPAN servers have a real tendency to bog down, so please use mirrors.
- The current location at the time of this writing can be found in
- <A
-HREF="downloadlinks.html"
->Appendix B</A
->.
</P
><P
>Quality, general Perl module installation instructions can be
<DIV
CLASS="informalexample"
><A
-NAME="AEN460"><P
+NAME="AEN606"><P
></P
><P
> <TT
<DIV
CLASS="informalexample"
><A
-NAME="AEN465"><P
+NAME="AEN611"><P
></P
><P
>Untar the module tarball -- it should create its own
><H3
CLASS="section"
><A
-NAME="AEN493">4.1.5.1. DBI</H3
+NAME="AEN639">4.1.5.1. DBI</H3
><P
>The DBI module is a generic Perl module used the
MySQL-related modules. As long as your Perl installation was done
><H3
CLASS="section"
><A
-NAME="AEN496">4.1.5.2. Data::Dumper</H3
+NAME="AEN642">4.1.5.2. Data::Dumper</H3
><P
>The Data::Dumper module provides data structure persistence for
Perl (similar to Java's serialization). It comes with later
><H3
CLASS="section"
><A
-NAME="AEN499">4.1.5.3. MySQL-related modules</H3
+NAME="AEN645">4.1.5.3. MySQL-related modules</H3
><P
>The Perl/MySQL interface requires a few mutually-dependent Perl
modules. These modules are grouped together into the the
><H3
CLASS="section"
><A
-NAME="AEN504">4.1.5.4. TimeDate modules</H3
+NAME="AEN650">4.1.5.4. TimeDate modules</H3
><P
>Many of the more common date/time/calendar related Perl modules
have been grouped into a bundle similar to the MySQL modules bundle.
><H3
CLASS="section"
><A
-NAME="AEN507">4.1.5.5. GD (optional)</H3
+NAME="AEN653">4.1.5.5. GD (optional)</H3
><P
>The GD library was written by Thomas Boutell a long while ago to
programatically generate images in C. Since then it's become the
><H3
CLASS="section"
><A
-NAME="AEN514">4.1.5.6. Chart::Base (optional)</H3
+NAME="AEN660">4.1.5.6. Chart::Base (optional)</H3
><P
>The Chart module provides Bugzilla with on-the-fly charting
abilities. It can be installed in the usual fashion after it has been
- fetched from CPAN where it is found as the Chart-x.x... tarball, linked
- in
- <A
-HREF="downloadlinks.html"
->Appendix B</A
->.
+ fetched from CPAN.
Note that earlier versions that 0.99c used GIFs, which are no longer
supported by the latest versions of GD.</P
></DIV
><H2
CLASS="section"
><A
-NAME="AEN518">4.1.6. HTTP Server</H2
+NAME="AEN663">4.1.6. HTTP Server</H2
><P
>You have a freedom of choice here - Apache, Netscape or any other
server on UNIX would do. You can run the web server on a
><H2
CLASS="section"
><A
-NAME="AEN537">4.1.7. Bugzilla</H2
+NAME="AEN682">4.1.7. Bugzilla</H2
><P
>You should untar the Bugzilla files into a directory that you're
willing to make writable by the default web server user (probably
>/usr/bin/perl</TT
>).
Otherwise you must hack all the .cgi files to change where they look
- for Perl. This can be done using
- <A
-HREF="setperl.html"
->The setperl.csh Utility</A
->,
- found in
- <A
-HREF="patches.html"
->Useful Patches and Utilities for Bugzilla</A
->, or the below one-liner.
+ for Perl. This can be done using the following Perl one-liner.
I suggest using the symlink approach for future release
compatibility.
<DIV
CLASS="example"
><A
-NAME="AEN553"><P
+NAME="AEN696"><P
><B
>Example 4-1. Changing the path to Perl</B
></P
><H2
CLASS="section"
><A
-NAME="AEN558">4.1.8. Setting Up the MySQL Database</H2
+NAME="AEN701">4.1.8. Setting Up the MySQL Database</H2
><P
>After you've gotten all the software installed and working you're
ready to start preparing the database for its life as the back end to
><H2
CLASS="section"
><A
-NAME="AEN593">4.1.9. <TT
+NAME="AEN736">4.1.9. <TT
CLASS="filename"
>checksetup.pl</TT
></H2
<TT
CLASS="filename"
>checksetup.pl</TT
->.
+>. (Note: on some security-conscious
+ systems, you may need to change the login shell for the webserver
+ account before you can do this.)
On this second run, it will create the database and an administrator
account for which you will be prompted to provide information.</P
><DIV
><H2
CLASS="section"
><A
-NAME="AEN625">4.1.10. Securing MySQL</H2
+NAME="AEN768">4.1.10. Securing MySQL</H2
><P
>If you followed the installation instructions for setting up your
"bugs" and "root" user in MySQL, much of this should not apply to you.
>
</P
></DIV
-><DIV
-CLASS="section"
-><H2
-CLASS="section"
-><A
-NAME="AEN691">4.1.11. Optional Additional Configuration</H2
-><DIV
-CLASS="section"
-><H3
-CLASS="section"
-><A
-NAME="AEN693">4.1.11.1. The Whining Cron</H3
-><P
->By now you have a fully functional Bugzilla, but what good are
- bugs if they're not annoying? To help make those bugs more annoying you
- can set up Bugzilla's automatic whining system to complain at engineers
- which leave their bugs in the NEW state without triaging them.
- </P
-><P
-> This can be done by
- adding the following command as a daily crontab entry (for help on that
- see that crontab man page):
- <P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="computeroutput"
-> <B
-CLASS="command"
->cd <your-bugzilla-directory> ;
- ./whineatnews.pl</B
->
- </TT
->
- </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
->
- </P
-><DIV
-CLASS="tip"
-><P
-></P
-><TABLE
-CLASS="tip"
-WIDTH="100%"
-BORDER="0"
-><TR
-><TD
-WIDTH="25"
-ALIGN="CENTER"
-VALIGN="TOP"
-><IMG
-SRC="../images/tip.gif"
-HSPACE="5"
-ALT="Tip"></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Depending on your system, crontab may have several manpages.
- The following command should lead you to the most useful page for
- this purpose:
- <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><FONT
-COLOR="#000000"
-><PRE
-CLASS="programlisting"
->man 5 crontab</PRE
-></FONT
-></TD
-></TR
-></TABLE
->
- </P
-></TD
-></TR
-></TABLE
-></DIV
-></DIV
-><DIV
-CLASS="section"
-><H3
-CLASS="section"
-><A
-NAME="AEN704">4.1.11.2. Bug Graphs</H3
-><P
->As long as you installed the GD and Graph::Base Perl modules you
- might as well turn on the nifty Bugzilla bug reporting graphs.</P
-><P
->Add a cron entry like this to run
- <TT
-CLASS="filename"
->collectstats.pl</TT
->
- daily at 5 after midnight:
- <P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="computeroutput"
-> <TT
-CLASS="prompt"
->bash#</TT
->
-
- <B
-CLASS="command"
->crontab -e</B
->
- </TT
->
- </TD
-></TR
-><TR
-><TD
-> <TT
-CLASS="computeroutput"
->5 0 * * * cd <your-bugzilla-directory> ;
- ./collectstats.pl</TT
->
- </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
->
- </P
-><P
->After two days have passed you'll be able to view bug graphs from
- the Bug Reports page.</P
-></DIV
-></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="right"
VALIGN="top"
><A
-HREF="win32.html"
+HREF="extraconfig.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Win32 Installation Notes</TD
+>Optional Additional Configuration</TD
></TR
></TABLE
></DIV
></DD
><DT
>3.2. <A
-HREF="init4me.html"
->User Preferences</A
+HREF="hintsandtips.html"
+>Hints and Tips</A
></DT
><DD
><DL
><DT
>3.2.1. <A
-HREF="init4me.html#accountsettings"
->Account Settings</A
+HREF="hintsandtips.html#AEN434"
+>Autolinkification</A
></DT
><DT
>3.2.2. <A
-HREF="init4me.html#emailsettings"
->Email Settings</A
+HREF="hintsandtips.html#quicksearch"
+>Quicksearch</A
></DT
><DT
>3.2.3. <A
-HREF="init4me.html#footersettings"
->Page Footer</A
+HREF="hintsandtips.html#commenting"
+>Comments</A
></DT
><DT
>3.2.4. <A
-HREF="init4me.html#permissionsettings"
+HREF="hintsandtips.html#attachments"
+>Attachments</A
+></DT
+><DT
+>3.2.5. <A
+HREF="hintsandtips.html#AEN460"
+>Filing Bugs</A
+></DT
+></DL
+></DD
+><DT
+>3.3. <A
+HREF="userpreferences.html"
+>User Preferences</A
+></DT
+><DD
+><DL
+><DT
+>3.3.1. <A
+HREF="userpreferences.html#accountsettings"
+>Account Settings</A
+></DT
+><DT
+>3.3.2. <A
+HREF="userpreferences.html#emailsettings"
+>Email Settings</A
+></DT
+><DT
+>3.3.3. <A
+HREF="userpreferences.html#footersettings"
+>Page Footer</A
+></DT
+><DT
+>3.3.4. <A
+HREF="userpreferences.html#permissionsettings"
>Permissions</A
></DT
></DL
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Chapter 7. Bugzilla Variants and Competitors</TD
+>Appendix D. Bugzilla Variants and Competitors</TD
><TD
WIDTH="10%"
ALIGN="right"
><H1
CLASS="section"
><A
-NAME="variant-fenris">7.2. Loki Bugzilla (Fenris)</H1
+NAME="variant-fenris">D.2. Loki Bugzilla (Fenris)</H1
><P
>Fenris was a fork from Bugzilla made by Loki Games; when
Loki went into receivership, it died. While Loki's other code lives on,
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Chapter 7. Bugzilla Variants and Competitors</TD
+>Appendix D. Bugzilla Variants and Competitors</TD
><TD
WIDTH="10%"
ALIGN="right"
><H1
CLASS="section"
><A
-NAME="variant-issuezilla">7.3. Issuezilla</H1
+NAME="variant-issuezilla">D.3. Issuezilla</H1
><P
>Issuezilla was another fork from Bugzilla, made by collab.net and
hosted at tigris.org. It is also dead; the primary focus of bug-tracking
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Chapter 7. Bugzilla Variants and Competitors</TD
+>Appendix D. Bugzilla Variants and Competitors</TD
><TD
WIDTH="10%"
ALIGN="right"
><H1
CLASS="section"
><A
-NAME="variant-perforce">7.5. Perforce SCM</H1
+NAME="variant-perforce">D.5. Perforce SCM</H1
><P
>Although Perforce isn't really a bug tracker, it can be used as
such through the <SPAN
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Chapter 7. Bugzilla Variants and Competitors</TD
+>Appendix D. Bugzilla Variants and Competitors</TD
><TD
WIDTH="10%"
ALIGN="right"
><H1
CLASS="section"
><A
-NAME="variant-scarab">7.4. Scarab</H1
+NAME="variant-scarab">D.4. Scarab</H1
><P
->Scarab is a new bug-tracking system built using Java
+>Scarab is a new open source bug-tracking system built using Java
Serlet technology. It is currently at version 1.0 beta 7.</P
><P
>URL:
TITLE="Perforce SCM"
HREF="variant-perforce.html"><LINK
REL="NEXT"
-TITLE="The Bugzilla FAQ"
-HREF="faq.html"></HEAD
+TITLE="Glossary"
+HREF="glossary.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
->Chapter 7. Bugzilla Variants and Competitors</TD
+>Appendix D. Bugzilla Variants and Competitors</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="faq.html"
+HREF="glossary.html"
ACCESSKEY="N"
>Next</A
></TD
><H1
CLASS="section"
><A
-NAME="variant-sourceforge">7.6. SourceForge</H1
+NAME="variant-sourceforge">D.6. SourceForge</H1
><P
>SourceForge is a way of coordinating geographically
distributed free software and open source projects over the Internet.
ALIGN="right"
VALIGN="top"
><A
-HREF="faq.html"
+HREF="glossary.html"
ACCESSKEY="N"
>Next</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->The Bugzilla FAQ</TD
+>Glossary</TD
></TR
></TABLE
></DIV
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
-TITLE="Tinderbox/Tinderbox2"
-HREF="tinderbox.html"><LINK
+TITLE="Command-line Bugzilla Queries"
+HREF="cmdline.html"><LINK
REL="NEXT"
TITLE="Red Hat Bugzilla"
HREF="rhbugzilla.html"></HEAD
><BODY
-CLASS="chapter"
+CLASS="appendix"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
ALIGN="left"
VALIGN="bottom"
><A
-HREF="tinderbox.html"
+HREF="cmdline.html"
ACCESSKEY="P"
>Prev</A
></TD
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
-CLASS="chapter"
+CLASS="appendix"
><H1
><A
-NAME="variants">Chapter 7. Bugzilla Variants and Competitors</H1
+NAME="variants">Appendix D. Bugzilla Variants and Competitors</H1
><DIV
CLASS="TOC"
><DL
>Table of Contents</B
></DT
><DT
->7.1. <A
+>D.1. <A
HREF="rhbugzilla.html"
>Red Hat Bugzilla</A
></DT
><DT
->7.2. <A
+>D.2. <A
HREF="variant-fenris.html"
>Loki Bugzilla (Fenris)</A
></DT
><DT
->7.3. <A
+>D.3. <A
HREF="variant-issuezilla.html"
>Issuezilla</A
></DT
><DT
->7.4. <A
+>D.4. <A
HREF="variant-scarab.html"
>Scarab</A
></DT
><DT
->7.5. <A
+>D.5. <A
HREF="variant-perforce.html"
>Perforce SCM</A
></DT
><DT
->7.6. <A
+>D.6. <A
HREF="variant-sourceforge.html"
>SourceForge</A
></DT
ALIGN="left"
VALIGN="top"
><A
-HREF="tinderbox.html"
+HREF="cmdline.html"
ACCESSKEY="P"
>Prev</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->Tinderbox/Tinderbox2</TD
+>Command-line Bugzilla Queries</TD
><TD
WIDTH="34%"
ALIGN="center"
TITLE="Installation"
HREF="installation.html"><LINK
REL="PREVIOUS"
-TITLE="Step-by-step Install"
-HREF="stepbystep.html"><LINK
+TITLE="Optional Additional Configuration"
+HREF="extraconfig.html"><LINK
REL="NEXT"
TITLE="Mac OS X Installation Notes"
HREF="osx.html"></HEAD
ALIGN="left"
VALIGN="bottom"
><A
-HREF="stepbystep.html"
+HREF="extraconfig.html"
ACCESSKEY="P"
>Prev</A
></TD
><H1
CLASS="section"
><A
-NAME="win32">4.2. Win32 Installation Notes</H1
+NAME="win32">4.3. Win32 Installation Notes</H1
><P
>This section covers installation on Microsoft Windows 95, 98, ME,
NT, and 2000. Bugzilla works fine on Win32 platforms, but please remember
><H2
CLASS="section"
><A
-NAME="wininstall">4.2.1. Win32 Installation: Step-by-step</H2
+NAME="wininstall">4.3.1. Win32 Installation: Step-by-step</H2
><DIV
CLASS="note"
><P
><DIV
CLASS="example"
><A
-NAME="AEN760"><P
+NAME="AEN917"><P
><B
>Example 4-2. Installing ActivePerl ppd Modules on Microsoft
Windows</B
<DIV
CLASS="example"
><A
-NAME="AEN773"><P
+NAME="AEN930"><P
><B
>Example 4-3. Installing OpenInteract ppd Modules manually on Microsoft
Windows</B
><H2
CLASS="section"
><A
-NAME="addlwintips">4.2.2. Additional Windows Tips</H2
+NAME="addlwintips">4.3.2. Additional Windows Tips</H2
><DIV
CLASS="tip"
><P
><P
>From Andrew Pearson:
<A
-NAME="AEN943"><BLOCKQUOTE
+NAME="AEN1100"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>You can make Bugzilla work with Personal Web Server for
<DIV
CLASS="example"
><A
-NAME="AEN955"><P
+NAME="AEN1112"><P
><B
>Example 4-4. Removing encrypt() for Windows NT Bugzilla version 2.12 or
earlier</B
></TABLE
></DIV
></DIV
-><DIV
-CLASS="section"
-><H2
-CLASS="section"
-><A
-NAME="bzldap">4.2.3. Bugzilla LDAP Integration</H2
-><P
->What follows is some late-breaking information on using the LDAP
- authentication options with Bugzilla. The author has not tested these
- (nor even formatted this section!) so please contribute feedback to the
- newsgroup.</P
-><P
-CLASS="literallayout"
->Mozilla::LDAP module The Mozilla::LDAP module allows you<br>
- to use LDAP for authentication to the Bugzilla system. This module is<br>
- not required if you are not using LDAP. Mozilla::LDAP (aka PerLDAP) is<br>
- available for download from http://www.mozilla.org/directory. NOTE: The<br>
- Mozilla::LDAP module requires Netscape's Directory SDK. Follow the link<br>
- for "Directory SDK for C" on that same page to download the SDK first.<br>
- After you have installed this SDK, then install the PerLDAP module.<br>
- ----------------------------------------------------------------------<br>
- Post-Installation Checklist<br>
- ----------------------------------------------------------------------<br>
- Set useLDAP to "On" **only** if you will be using an LDAP directory for<br>
- authentication. Be very careful when setting up this parameter; if you<br>
- set LDAP authentication, but do not have a valid LDAP directory set up,<br>
- you will not be able to log back in to Bugzilla once you log out. (If<br>
- this happens, you can get back in by manually editing the data/params<br>
- file, and setting useLDAP back to 0.) If using LDAP, you must set the<br>
- three additional parameters: Set LDAPserver to the name (and optionally<br>
- port) of your LDAP server. If no port is specified, it defaults to the<br>
- default port of 389. (e.g "ldap.mycompany.com" or<br>
- "ldap.mycompany.com:1234") Set LDAPBaseDN to the base DN for searching<br>
- for users in your LDAP directory. (e.g. "ou=People,o=MyCompany") uids<br>
- must be unique under the DN specified here. Set LDAPmailattribute to<br>
- the name of the attribute in your LDAP directory which contains the<br>
- primary email address. On most directory servers available, this is<br>
- "mail", but you may need to change this.<br>
- ----------------------------------------------------------------------<br>
- (Not sure where this bit should go, but it's important that it be in<br>
- there somewhere...)<br>
- ----------------------------------------------------------------------<br>
- Using LDAP authentication for Bugzilla: The existing authentication<br>
- scheme for Bugzilla uses email addresses as the primary user ID, and a<br>
- password to authenticate that user. All places within Bugzilla where<br>
- you need to deal with user ID (e.g assigning a bug) use the email<br>
- address. The LDAP authentication builds on top of this scheme, rather<br>
- than replacing it. The initial log in is done with a username and<br>
- password for the LDAP directory. This then fetches the email address<br>
- from LDAP and authenticates seamlessly in the standard Bugzilla<br>
- authentication scheme using this email address. If an account for this<br>
- address already exists in your Bugzilla system, it will log in to that<br>
- account. If no account for that email address exists, one is created at<br>
- the time of login. (In this case, Bugzilla will attempt to use the<br>
- "displayName" or "cn" attribute to determine the user's full name.)<br>
- After authentication, all other user-related tasks are still handled by<br>
- email address, not LDAP username. You still assign bugs by email<br>
- address, query on users by email address, etc.<br>
- ----------------------------------------------------------------------</P
-></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="left"
VALIGN="top"
><A
-HREF="stepbystep.html"
+HREF="extraconfig.html"
ACCESSKEY="P"
>Prev</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->Step-by-step Install</TD
+>Optional Additional Configuration</TD
><TD
WIDTH="34%"
ALIGN="center"
<!ENTITY database SYSTEM "database.sgml">
<!ENTITY patches SYSTEM "patches.sgml">
<!ENTITY variants SYSTEM "variants.sgml">
-<!ENTITY requiredsoftware SYSTEM "requiredsoftware.sgml">
<!ENTITY introduction SYSTEM "introduction.sgml">
<!ENTITY revhistory SYSTEM "revhistory.sgml">
<abstract>
<para>
- This is the documentation for Bugzilla, the mozilla.org
- bug-tracking system.
- Bugzilla is an enterprise-class piece of software
- that powers issue-tracking for hundreds of
- organizations around the world, tracking millions of bugs.
+ This is the documentation for Bugzilla, the mozilla.org
+ bug-tracking system.
+ Bugzilla is an enterprise-class piece of software
+ that powers issue-tracking for hundreds of
+ organizations around the world, tracking millions of bugs.
</para>
+
<para>
- This documentation is maintained in DocBook 4.1.2 XML format.
- Changes are best submitted as plain text or SGML diffs, attached
- to a Bugzilla bug.
+ <warning>
+ <para>IMPORTANT: this documentation is currently being
+ updated for the Bugzilla 2.16 release and is in an unusual state of
+ flux. Even more than normal, don't believe everything,
+ or even anything, you read.
+ </para>
+ </warning>
+ </para>
+
+ <para>
+ This documentation is maintained in DocBook 4.1.2 XML format.
+ Changes are best submitted as plain text or SGML diffs, attached
+ to a bug filed in
+ <ulink url="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla">bugzilla.mozilla.org</ulink>.
</para>
</abstract>
-
<keywordset>
<keyword>Bugzilla</keyword>
<keyword>Guide</keyword>
<!-- About This Guide -->
&about;
-<!-- Using Bugzilla -->
+<!-- Introduction -->
&introduction;
<!-- Using Bugzilla -->
<!-- Administering Bugzilla -->
&administration;
-<!-- Integrating Bugzilla with Third-Party Tools -->
-&integration;
-
-<!-- Major Bugzilla Variants -->
-&variants;
-
<!-- Appendix: The Frequently Asked Questions -->
&faq;
-<!-- Appendix: Required Bugzilla Software Links -->
-&requiredsoftware;
-
<!-- Appendix: The Database Schema -->
&database;
<!-- Appendix: Custom Patches -->
&patches;
-<!-- Appendix: The GNU Free Documentation License -->
-&gfdl;
+<!-- Appendix: Major Bugzilla Variants -->
+&variants;
<!-- Glossary -->
&glossary;
License, Version 1.1 or any later version published by the
Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and with no Back-Cover Texts. A copy of
- the license is included in the section entitled "GNU Free
- Documentation License".
+ the license is included below.
</para>
</blockquote>
<para>
copyright, or publishing this document in non-electronic form,
please contact &bzg-auth;.
</para>
+
+
+ <!-- The GNU Free Documentation License -->
+ &gfdl;
+
</section>
<section id="disclaimer">
</listitem>
</orderedlist>
</section>
+ </section>
+
+ <section id="voting">
+ <title>Voting</title>
+
+ <para>The concept of "voting" is a poorly understood, yet powerful
+ feature for the management of open-source projects. Each user is
+ assigned so many Votes per product, which they can freely reassign (or
+ assign multiple votes to a single bug). This allows developers to gauge
+ user need for a particular enhancement or bugfix. By allowing bugs with
+ a certain number of votes to automatically move from "UNCONFIRMED" to
+ "NEW", users of the bug system can help high-priority bugs garner
+ attention so they don't sit for a long time awaiting triage.</para>
+
+ <para>The daunting challenge of Votes is deciding where you draw the
+ line for a "vocal majority". If you only have a user base of 100 users,
+ setting a low threshold for bugs to move from UNCONFIRMED to NEW makes
+ sense. As the Bugzilla user base expands, however, these thresholds
+ must be re-evaluated. You should gauge whether this feature is worth
+ the time and close monitoring involved, and perhaps forego
+ implementation until you have a critical mass of users who demand
+ it.</para>
+
+ <para>To modify Voting settings:</para>
- <section id="voting">
- <title>Voting</title>
-
- <para>The concept of "voting" is a poorly understood, yet powerful
- feature for the management of open-source projects. Each user is
- assigned so many Votes per product, which they can freely reassign (or
- assign multiple votes to a single bug). This allows developers to gauge
- user need for a particular enhancement or bugfix. By allowing bugs with
- a certain number of votes to automatically move from "UNCONFIRMED" to
- "NEW", users of the bug system can help high-priority bugs garner
- attention so they don't sit for a long time awaiting triage.</para>
-
- <para>The daunting challenge of Votes is deciding where you draw the
- line for a "vocal majority". If you only have a user base of 100 users,
- setting a low threshold for bugs to move from UNCONFIRMED to NEW makes
- sense. As the Bugzilla user base expands, however, these thresholds
- must be re-evaluated. You should gauge whether this feature is worth
- the time and close monitoring involved, and perhaps forego
- implementation until you have a critical mass of users who demand
- it.</para>
-
- <para>To modify Voting settings:</para>
-
- <orderedlist>
- <listitem>
- <para>Navigate to the "Edit product" screen for the Product you
- wish to modify</para>
- </listitem>
-
- <listitem>
- <para>Set "Maximum Votes per person" to your calculated value.
- Setting this field to "0" disables voting.</para>
- </listitem>
-
- <listitem>
- <para>Set "Maximum Votes a person can put on a single bug" to your
- calculated value. It should probably be some number lower than the
- "Maximum votes per person". Setting this field to "0" disables
- voting, but leaves the voting options open to the user. This is
- confusing.</para>
- </listitem>
-
- <listitem>
- <para>Set "Number of votes a bug in this product needs to
- automatically get out of the UNCONFIRMED state" to your calculated
- number. Setting this field to "0" disables the automatic move of
- bugs from UNCONFIRMED to NEW. Some people advocate leaving this at
- "0", but of what use are Votes if your Bugzilla user base is unable
- to affect which bugs appear on Development radar?
- <tip>
- <para>You should probably set this number to higher than a small
- coalition of Bugzilla users can influence it. Most sites use this
- as a "referendum" mechanism -- if users are able to vote a bug
- out of UNCONFIRMED, it is a
- <emphasis>really</emphasis>
-
- bad bug!</para>
- </tip>
- </para>
- </listitem>
-
- <listitem>
- <para>Once you have adjusted the values to your preference, select
- the "Update" button.</para>
- </listitem>
- </orderedlist>
- </section>
-
- <section id="groups">
- <title>Groups and Group Security</title>
-
- <para>Groups can be very useful in bugzilla, because they allow users
- to isolate bugs or products that should only be seen by certain people.
- Groups can also be a complicated minefield of interdependencies and
- weirdness if mismanaged.
- <example>
- <title>When to Use Group Security</title>
+ <orderedlist>
+ <listitem>
+ <para>Navigate to the "Edit product" screen for the Product you
+ wish to modify</para>
+ </listitem>
- <informalexample>
- <para>Many Bugzilla sites isolate "Security-related" bugs from all
- other bugs. This way, they can have a fix ready before the security
- vulnerability is announced to the world. You can create a
- "Security" product which, by default, has no members, and only add
- members to the group (in their individual User page, as described
- under User Administration) who should have priveleged access to
- "Security" bugs. Alternately, you may create a Group independently
- of any Product, and change the Group mask on individual bugs to
- restrict access to members only of certain Groups.</para>
- </informalexample>
- </example>
+ <listitem>
+ <para>Set "Maximum Votes per person" to your calculated value.
+ Setting this field to "0" disables voting.</para>
+ </listitem>
- Groups only work if you enable the "usebuggroups" paramater. In
- addition, if the "usebuggroupsentry" parameter is "On", one can
- restrict access to products by groups, so that only members of a
- product group are able to view bugs within that product. Group security
- in Bugzilla can be divided into two categories: Generic and
- Product-Based.</para>
+ <listitem>
+ <para>Set "Maximum Votes a person can put on a single bug" to your
+ calculated value. It should probably be some number lower than the
+ "Maximum votes per person". Setting this field to "0" disables
+ voting, but leaves the voting options open to the user. This is
+ confusing.</para>
+ </listitem>
- <note>
- <para>Groups in Bugzilla are a complicated beast that evolved out of
- very simple user permission bitmasks, apparently itself derived from
- common concepts in UNIX access controls. A "bitmask" is a
- fixed-length number whose value can describe one, and only one, set
- of states. For instance, UNIX file permissions are assigned bitmask
- values: "execute" has a value of 1, "write" has a value of 2, and
- "read" has a value of 4. Add them together, and a file can be read,
- written to, and executed if it has a bitmask of "7". (This is a
- simplified example -- anybody who knows UNIX security knows there is
- much more to it than this. Please bear with me for the purpose of
- this note.) The only way a bitmask scheme can work is by doubling the
- bit count for each value. Thus if UNIX wanted to offer another file
- permission, the next would have to be a value of 8, then the next 16,
- the next 32, etc.</para>
-
- <para>Similarly, Bugzilla offers a bitmask to define group
- permissions, with an internal limit of 64. Several are already
- occupied by built-in permissions. The way around this limitation is
- to avoid assigning groups to products if you have many products,
- avoid bloating of group lists, and religiously prune irrelevant
- groups. In reality, most installations of Bugzilla support far fewer
- than 64 groups, so this limitation has not hit for most sites, but it
- is on the table to be revised for Bugzilla 3.0 because it interferes
- with the security schemes of some administrators.</para>
- </note>
+ <listitem>
+ <para>Set "Number of votes a bug in this product needs to
+ automatically get out of the UNCONFIRMED state" to your calculated
+ number. Setting this field to "0" disables the automatic move of
+ bugs from UNCONFIRMED to NEW. Some people advocate leaving this at
+ "0", but of what use are Votes if your Bugzilla user base is unable
+ to affect which bugs appear on Development radar?
+ <tip>
+ <para>You should probably set this number to higher than a small
+ coalition of Bugzilla users can influence it. Most sites use this
+ as a "referendum" mechanism -- if users are able to vote a bug
+ out of UNCONFIRMED, it is a
+ <emphasis>really</emphasis>
+
+ bad bug!</para>
+ </tip>
+ </para>
+ </listitem>
- <para>To enable Generic Group Security ("usebuggroups"):</para>
+ <listitem>
+ <para>Once you have adjusted the values to your preference, select
+ the "Update" button.</para>
+ </listitem>
+ </orderedlist>
+ </section>
- <orderedlist>
- <listitem>
- <para>Turn "On" "usebuggroups" in the "Edit Parameters"
- screen.</para>
- </listitem>
+ <section id="groups">
+ <title>Groups and Group Security</title>
+
+ <para>Groups can be very useful in bugzilla, because they allow users
+ to isolate bugs or products that should only be seen by certain people.
+ Groups can also be a complicated minefield of interdependencies and
+ weirdness if mismanaged.
+ <example>
+ <title>When to Use Group Security</title>
+
+ <informalexample>
+ <para>Many Bugzilla sites isolate "Security-related" bugs from all
+ other bugs. This way, they can have a fix ready before the security
+ vulnerability is announced to the world. You can create a
+ "Security" product which, by default, has no members, and only add
+ members to the group (in their individual User page, as described
+ under User Administration) who should have priveleged access to
+ "Security" bugs. Alternately, you may create a Group independently
+ of any Product, and change the Group mask on individual bugs to
+ restrict access to members only of certain Groups.</para>
+ </informalexample>
+ </example>
+
+ Groups only work if you enable the "usebuggroups" paramater. In
+ addition, if the "usebuggroupsentry" parameter is "On", one can
+ restrict access to products by groups, so that only members of a
+ product group are able to view bugs within that product. Group security
+ in Bugzilla can be divided into two categories: Generic and
+ Product-Based.</para>
- <listitem>
- <para>You will generally have no groups set up. Select the "groups"
- link in the footer.</para>
- </listitem>
+ <note>
+ <para>Groups in Bugzilla are a complicated beast that evolved out of
+ very simple user permission bitmasks, apparently itself derived from
+ common concepts in UNIX access controls. A "bitmask" is a
+ fixed-length number whose value can describe one, and only one, set
+ of states. For instance, UNIX file permissions are assigned bitmask
+ values: "execute" has a value of 1, "write" has a value of 2, and
+ "read" has a value of 4. Add them together, and a file can be read,
+ written to, and executed if it has a bitmask of "7". (This is a
+ simplified example -- anybody who knows UNIX security knows there is
+ much more to it than this. Please bear with me for the purpose of
+ this note.) The only way a bitmask scheme can work is by doubling the
+ bit count for each value. Thus if UNIX wanted to offer another file
+ permission, the next would have to be a value of 8, then the next 16,
+ the next 32, etc.</para>
+
+ <para>Similarly, Bugzilla offers a bitmask to define group
+ permissions, with an internal limit of 64. Several are already
+ occupied by built-in permissions. The way around this limitation is
+ to avoid assigning groups to products if you have many products,
+ avoid bloating of group lists, and religiously prune irrelevant
+ groups. In reality, most installations of Bugzilla support far fewer
+ than 64 groups, so this limitation has not hit for most sites, but it
+ is on the table to be revised for Bugzilla 3.0 because it interferes
+ with the security schemes of some administrators.</para>
+ </note>
- <listitem>
- <para>Take a moment to understand the instructions on the "Edit
- Groups" screen. Once you feel confident you understand what is
- expected of you, select the "Add Group" link.</para>
- </listitem>
+ <para>To enable Generic Group Security ("usebuggroups"):</para>
- <listitem>
- <para>Fill out the "New Name" (remember, no spaces!), "New
- Description", and "New User RegExp" fields. "New User RegExp"
- allows you to automatically place all users who fulfill the Regular
- Expression into the new group.
- <example>
- <title>Creating a New Group</title>
+ <orderedlist>
+ <listitem>
+ <para>Turn "On" "usebuggroups" in the "Edit Parameters"
+ screen.</para>
+ </listitem>
- <informalexample>
- <para>I created a group called DefaultGroup with a description
- of
- <quote>This is simply a group to play with</quote>
+ <listitem>
+ <para>You will generally have no groups set up. Select the "groups"
+ link in the footer.</para>
+ </listitem>
- , and a New User RegExp of
- <quote>.*@mydomain.tld</quote>
+ <listitem>
+ <para>Take a moment to understand the instructions on the "Edit
+ Groups" screen. Once you feel confident you understand what is
+ expected of you, select the "Add Group" link.</para>
+ </listitem>
- . This new group automatically includes all Bugzilla users with
- "@mydomain.tld" at the end of their user id. When I finished,
- my new group was assigned bit #128.</para>
- </informalexample>
- </example>
+ <listitem>
+ <para>Fill out the "New Name" (remember, no spaces!), "New
+ Description", and "New User RegExp" fields. "New User RegExp"
+ allows you to automatically place all users who fulfill the Regular
+ Expression into the new group.
+ <example>
+ <title>Creating a New Group</title>
+
+ <informalexample>
+ <para>I created a group called DefaultGroup with a description
+ of
+ <quote>This is simply a group to play with</quote>
+
+ , and a New User RegExp of
+ <quote>.*@mydomain.tld</quote>
+
+ . This new group automatically includes all Bugzilla users with
+ "@mydomain.tld" at the end of their user id. When I finished,
+ my new group was assigned bit #128.</para>
+ </informalexample>
+ </example>
+
+ When you have finished, select the Add button.</para>
+ </listitem>
+ </orderedlist>
- When you have finished, select the Add button.</para>
- </listitem>
- </orderedlist>
+ <para>To enable Product-Based Group Security
+ (usebuggroupsentry):</para>
- <para>To enable Product-Based Group Security
- (usebuggroupsentry):</para>
+ <warning>
+ <para>Don't forget that you only have 64 groups masks available,
+ total, for your installation of Bugzilla! If you plan on having more
+ than 50 products in your individual Bugzilla installation, and
+ require group security for your products, you should consider either
+ running multiple Bugzillas or using Generic Group Security instead of
+ Product-Based ("usebuggroupsentry") Group Security.</para>
+ </warning>
- <warning>
- <para>Don't forget that you only have 64 groups masks available,
- total, for your installation of Bugzilla! If you plan on having more
- than 50 products in your individual Bugzilla installation, and
- require group security for your products, you should consider either
- running multiple Bugzillas or using Generic Group Security instead of
- Product-Based ("usebuggroupsentry") Group Security.</para>
- </warning>
+ <orderedlist>
+ <listitem>
+ <para>Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit
+ Parameters" screen.</para>
- <orderedlist>
- <listitem>
- <para>Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit
- Parameters" screen.</para>
-
- <warning>
- <para>"usebuggroupsentry" has the capacity to prevent the
- administrative user from directly altering bugs because of
- conflicting group permissions. If you plan on using
- "usebuggroupsentry", you should plan on restricting
- administrative account usage to administrative duties only. In
- other words, manage bugs with an unpriveleged user account, and
- manage users, groups, Products, etc. with the administrative
- account.</para>
- </warning>
- </listitem>
+ <warning>
+ <para>"usebuggroupsentry" has the capacity to prevent the
+ administrative user from directly altering bugs because of
+ conflicting group permissions. If you plan on using
+ "usebuggroupsentry", you should plan on restricting
+ administrative account usage to administrative duties only. In
+ other words, manage bugs with an unpriveleged user account, and
+ manage users, groups, Products, etc. with the administrative
+ account.</para>
+ </warning>
+ </listitem>
- <listitem>
- <para>You will generally have no Groups set up, unless you enabled
- "usebuggroupsentry" prior to creating any Products. To create
- "Generic Group Security" groups, follow the instructions given
- above. To create Product-Based Group security, simply follow the
- instructions for creating a new Product. If you need to add users
- to these new groups as you create them, you will find the option to
- add them to the group available under the "Edit User"
- screens.</para>
- </listitem>
- </orderedlist>
+ <listitem>
+ <para>You will generally have no Groups set up, unless you enabled
+ "usebuggroupsentry" prior to creating any Products. To create
+ "Generic Group Security" groups, follow the instructions given
+ above. To create Product-Based Group security, simply follow the
+ instructions for creating a new Product. If you need to add users
+ to these new groups as you create them, you will find the option to
+ add them to the group available under the "Edit User"
+ screens.</para>
+ </listitem>
+ </orderedlist>
- <para>You may find this example illustrative for how bug groups work.
- <example>
- <title>Bugzilla Groups</title>
-
- <literallayout>Bugzilla Groups example ----------------------- For
- this example, let us suppose we have four groups, call them Group1,
- Group2, Group3, and Group4. We have 5 users, User1, User2, User3,
- User4, User5. We have 8 bugs, Bug1, ..., Bug8. Group membership is
- defined by this chart: (X denotes that user is in that group.) (I
- apologize for the nasty formatting of this table. Try viewing it in a
- text-based browser or something for now. -MPB) G G G G r r r r o o o
- o u u u u p p p p 1 2 3 4 +-+-+-+-+ User1|X| | | | +-+-+-+-+ User2|
- |X| | | +-+-+-+-+ User3|X| |X| | +-+-+-+-+ User4|X|X|X| | +-+-+-+-+
- User5| | | | | +-+-+-+-+ Bug restrictions are defined by this chart:
- (X denotes that bug is restricted to that group.) G G G G r r r r o o
- o o u u u u p p p p 1 2 3 4 +-+-+-+-+ Bug1| | | | | +-+-+-+-+ Bug2|
- |X| | | +-+-+-+-+ Bug3| | |X| | +-+-+-+-+ Bug4| | | |X| +-+-+-+-+
- Bug5|X|X| | | +-+-+-+-+ Bug6|X| |X| | +-+-+-+-+ Bug7|X|X|X| |
- +-+-+-+-+ Bug8|X|X|X|X| +-+-+-+-+ Who can see each bug? Bug1 has no
- group restrictions. Therefore, Bug1 can be seen by any user, whatever
- their group membership. This is going to be the only bug that User5
- can see, because User5 isn't in any groups. Bug2 can be seen by
- anyone in Group2, that is User2 and User4. Bug3 can be seen by anyone
- in Group3, that is User3 and User4. Bug4 can be seen by anyone in
- Group4. Nobody is in Group4, so none of these users can see Bug4.
- Bug5 can be seen by anyone who is in _both_ Group1 and Group2. This
- is only User4. User1 cannot see it because he is not in Group2, and
- User2 cannot see it because she is not in Group1. Bug6 can be seen by
- anyone who is in both Group1 and Group3. This would include User3 and
- User4. Similar to Bug5, User1 cannot see Bug6 because he is not in
- Group3. Bug7 can be seen by anyone who is in Group1, Group2, and
- Group3. This is only User4. All of the others are missing at least
- one of those group privileges, and thus cannot see the bug. Bug8 can
- be seen by anyone who is in Group1, Group2, Group3, and Group4. There
- is nobody in all four of these groups, so nobody can see Bug8. It
- doesn't matter that User4 is in Group1, Group2, and Group3, since he
- isn't in Group4.</literallayout>
- </example>
- </para>
- </section>
+ <para>You may find this example illustrative for how bug groups work.
+ <example>
+ <title>Bugzilla Groups</title>
+
+ <literallayout>Bugzilla Groups example ----------------------- For
+ this example, let us suppose we have four groups, call them Group1,
+ Group2, Group3, and Group4. We have 5 users, User1, User2, User3,
+ User4, User5. We have 8 bugs, Bug1, ..., Bug8. Group membership is
+ defined by this chart: (X denotes that user is in that group.) (I
+ apologize for the nasty formatting of this table. Try viewing it in a
+ text-based browser or something for now. -MPB) G G G G r r r r o o o
+ o u u u u p p p p 1 2 3 4 +-+-+-+-+ User1|X| | | | +-+-+-+-+ User2|
+ |X| | | +-+-+-+-+ User3|X| |X| | +-+-+-+-+ User4|X|X|X| | +-+-+-+-+
+ User5| | | | | +-+-+-+-+ Bug restrictions are defined by this chart:
+ (X denotes that bug is restricted to that group.) G G G G r r r r o o
+ o o u u u u p p p p 1 2 3 4 +-+-+-+-+ Bug1| | | | | +-+-+-+-+ Bug2|
+ |X| | | +-+-+-+-+ Bug3| | |X| | +-+-+-+-+ Bug4| | | |X| +-+-+-+-+
+ Bug5|X|X| | | +-+-+-+-+ Bug6|X| |X| | +-+-+-+-+ Bug7|X|X|X| |
+ +-+-+-+-+ Bug8|X|X|X|X| +-+-+-+-+ Who can see each bug? Bug1 has no
+ group restrictions. Therefore, Bug1 can be seen by any user, whatever
+ their group membership. This is going to be the only bug that User5
+ can see, because User5 isn't in any groups. Bug2 can be seen by
+ anyone in Group2, that is User2 and User4. Bug3 can be seen by anyone
+ in Group3, that is User3 and User4. Bug4 can be seen by anyone in
+ Group4. Nobody is in Group4, so none of these users can see Bug4.
+ Bug5 can be seen by anyone who is in _both_ Group1 and Group2. This
+ is only User4. User1 cannot see it because he is not in Group2, and
+ User2 cannot see it because she is not in Group1. Bug6 can be seen by
+ anyone who is in both Group1 and Group3. This would include User3 and
+ User4. Similar to Bug5, User1 cannot see Bug6 because he is not in
+ Group3. Bug7 can be seen by anyone who is in Group1, Group2, and
+ Group3. This is only User4. All of the others are missing at least
+ one of those group privileges, and thus cannot see the bug. Bug8 can
+ be seen by anyone who is in Group1, Group2, Group3, and Group4. There
+ is nobody in all four of these groups, so nobody can see Bug8. It
+ doesn't matter that User4 is in Group1, Group2, and Group3, since he
+ isn't in Group4.</literallayout>
+ </example>
+ </para>
</section>
<section id="security">
</orderedlist>
</para>
</section>
+
+ <section id="cust-templates">
+ <title>Template Customisation</title>
+
+ <para>
+ One of the large changes for 2.16 was the templatisation of the
+ entire user-facing UI, using the
+ <ulink url="http://www.template-toolkit.org">Template Toolkit</ulink>.
+ Administrators can now configure the look and feel of Bugzilla without
+ having to edit Perl files or face the nightmare of massive merge
+ conflicts when they upgrade to a newer version in the future.
+ </para>
+
+ <para>
+ Templatisation also makes localised versions of Bugzilla possible,
+ for the first time. In the future, a Bugzilla installation may
+ have templates installed for multiple localisations, and select
+ which ones to use based on the user's browser language setting.
+ </para>
+
+ <section>
+ <title>What to Edit</title>
+ <para>
+ There are several ways to take advantage of Bugzilla's templates,
+ and which you use depends on what you want to do. The Bugzilla
+ template directory structure is that there's a top level directory,
+ <filename>template</filename>, which contains a directory for
+ each installed localisation. The default English templates are
+ therefore in <filename>en</filename>. Underneath that, there
+ are two directories - <filename>default</filename> and
+ <filename>custom</filename>. The <filename>default</filename>
+ directory contains all the templates shipped with Bugzilla.
+ </para>
+
+ <para>
+ One method of making customisations is to directly edit the templates
+ in <filename>template/en/default</filename>. This is probably the
+ best method for small changes, because if you then execute a
+ <command>cvs update</command>, any template fixes will get
+ automagically merged into your modified versions.
+ </para>
+
+ <para>
+ The other method is to copy the templates into
+ <filename>template/en/custom</filename>. This method is better if
+ you are going to make major changes, because it is guaranteed that
+ the contents of this directory will not be touched during an upgrade,
+ and you can then decide whether to continue using your own templates,
+ or make the effort to merge your changes into the new versions by
+ hand.
+ </para>
+
+ <para>
+ The syntax of the Template Toolkit language is beyond the scope of
+ this guide. It's reasonably easy to pick up by looking at the current
+ templates; or, you can read the manual, available on the
+ <ulink url="http://www.template-toolkit.org">Template Toolkit home
+ page </ulink>.
+ </para>
+ </section>
+
+ <section>
+ <title>Particular Templates</title>
+
+ <para>
+ There are a few templates you may be particularly interested in
+ customising for your installation.
+ </para>
+
+ <para>
+ <command>global/header.html.tmpl</command> and
+ <command>global/footer.html.tmpl</command>:
+ These define the header and footer that go on all Bugzilla pages.
+ Editing these is a way to quickly get a distinctive look and
+ feel for your Bugzilla installation.
+ </para>
+ </section>
+
+ <section>
+ <title>Template Formats</title>
+
+ <para>
+ Some CGIs have the ability to use more than one template. For
+ example, buglist.cgi can output bug lists as RDF or two
+ different forms of HTML (complex and simple). (Try this out
+ by appending <filename>&format=simple</filename> to a buglist.cgi
+ URL on your Bugzilla installation.) This
+ mechanism, called template 'formats', is extensible.
+ </para>
+
+ <para>
+ To see if a CGI supports multiple output formats, grep the
+ CGI for "ValidateOutputFormat". If it's not present, adding
+ multiple format support isn't too hard - see how it's done in
+ other CGIs.
+ </para>
+
+ <para>
+ To make a new format template for a CGI which supports this,
+ open a current template for
+ that CGI and take note of the INTERFACE comment (if present.) This
+ comment defines what variables are passed into this template. If
+ there isn't one, I'm afraid you'll have to read the template and
+ the code to find out what information you get.
+ </para>
+
+ <para>
+ Write your template in whatever markup or text style is appropriate.
+ </para>
+
+ <para>
+ You now need to decide what content type you want your template
+ served as. Open up the localconfig file and find the $contenttypes
+ variable. If your content type is not there, add it. Remember
+ the three- or four-letter tag assigned to you content type.
+ This tag will be part of the template filename.
+ </para>
+
+ <para>
+ Save the template as <filename><stubname>-<formatname>.<contenttypetag>.tmpl</filename>.
+ Try out the template by calling the CGI as
+ <filename><cginame>.cgi?format=<formatname></filename> .
+ </para>
+ </section>
+
+ </section>
+
+
+ <!-- Integrating Bugzilla with Third-Party Tools -->
+ &integration;
+
</chapter>
<!-- Keep this comment at the end of the file
<entry>
<programlisting>
- <sgmltag class="starttag">para</sgmltag>
- Beginning and end of paragraph
- <sgmltag class="endtag">para</sgmltag>
+<sgmltag class="starttag">para</sgmltag>
+Beginning and end of paragraph
+<sgmltag class="endtag">para</sgmltag>
</programlisting>
</entry>
</row>
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<appendix id="gfdl">
+<section id="gfdl">
<title>GNU Free Documentation License</title>
<!-- - GNU Project - Free Software Foundation (FSF) -->
<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
-<!-- sect1>
+<!-- section>
<title>GNU Free Documentation License</title -->
<para>Version 1.1, March 2000</para>
not allowed.</para>
</blockquote>
- <sect1 label="0" id="gfdl-0">
+ <section label="0" id="gfdl-0">
<title>PREAMBLE</title>
<para>The purpose of this License is to make a manual, textbook, or other
can be used for any textual work, regardless of subject matter or whether
it is published as a printed book. We recommend this License principally
for works whose purpose is instruction or reference.</para>
- </sect1>
+ </section>
- <sect1 label="1" id="gfdl-1">
+ <section label="1" id="gfdl-1">
<title>APPLICABILITY AND DEFINITIONS</title>
<para>This License applies to any manual or other work that contains a
which do not have any title page as such, "Title Page" means the text
near the most prominent appearance of the work's title, preceding the
beginning of the body of the text.</para>
- </sect1>
+ </section>
- <sect1 label="2" id="gfdl-2">
+ <section label="2" id="gfdl-2">
<title>VERBATIM COPYING</title>
<para>You may copy and distribute the Document in any medium, either
<para>You may also lend copies, under the same conditions stated above,
and you may publicly display copies.</para>
- </sect1>
+ </section>
- <sect1 label="3" id="gfdl-3">
+ <section label="3" id="gfdl-3">
<title>COPYING IN QUANTITY</title>
<para>If you publish printed copies of the Document numbering more than
the Document well before redistributing any large number of copies, to
give them a chance to provide you with an updated version of the
Document.</para>
- </sect1>
+ </section>
- <sect1 label="4" id="gfdl-4">
+ <section label="4" id="gfdl-4">
<title>MODIFICATIONS</title>
<para>You may copy and distribute a Modified Version of the Document
<para>The author(s) and publisher(s) of the Document do not by this
License give permission to use their names for publicity for or to assert
or imply endorsement of any Modified Version.</para>
- </sect1>
+ </section>
- <sect1 label="5" id="gfdl-5">
+ <section label="5" id="gfdl-5">
<title>COMBINING DOCUMENTS</title>
<para>You may combine the Document with other documents released under
"History"; likewise combine any sections entitled "Acknowledgements", and
any sections entitled "Dedications". You must delete all sections
entitled "Endorsements."</para>
- </sect1>
+ </section>
- <sect1 label="6" id="gfdl-6">
+ <section label="6" id="gfdl-6">
<title>COLLECTIONS OF DOCUMENTS</title>
<para>You may make a collection consisting of the Document and other
distribute it individually under this License, provided you insert a copy
of this License into the extracted document, and follow this License in
all other respects regarding verbatim copying of that document.</para>
- </sect1>
+ </section>
- <sect1 label="7" id="gfdl-7">
+ <section label="7" id="gfdl-7">
<title>AGGREGATION WITH INDEPENDENT WORKS</title>
<para>A compilation of the Document or its derivatives with other
the entire aggregate, the Document's Cover Texts may be placed on covers
that surround only the Document within the aggregate. Otherwise they must
appear on covers around the whole aggregate.</para>
- </sect1>
+ </section>
- <sect1 label="8" id="gfdl-8">
+ <section label="8" id="gfdl-8">
<title>TRANSLATION</title>
<para>Translation is considered a kind of modification, so you may
License. In case of a disagreement between the translation and the
original English version of this License, the original English version
will prevail.</para>
- </sect1>
+ </section>
- <sect1 label="9" id="gfdl-9">
+ <section label="9" id="gfdl-9">
<title>TERMINATION</title>
<para>You may not copy, modify, sublicense, or distribute the Document
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.</para>
- </sect1>
+ </section>
- <sect1 label="10" id="gfdl-10">
+ <section label="10" id="gfdl-10">
<title>FUTURE REVISIONS OF THIS LICENSE</title>
<para>The Free Software Foundation may publish new, revised versions of
Software Foundation. If the Document does not specify a version number of
this License, you may choose any version ever published (not as a draft)
by the Free Software Foundation.</para>
- </sect1>
+ </section>
- <sect1 label="" id="gfdl-howto">
+ <section label="" id="gfdl-howto">
<title>How to use this License for your documents</title>
<para>To use this License in a document you have written, include a copy
recommend releasing these examples in parallel under your choice of free
software license, such as the GNU General Public License, to permit their
use in free software.</para>
- </sect1>
-</appendix>
+ </section>
+</section>
<!-- Keep this comment at the end of the file
Local variables:
<glossdef>
<para>Bugzilla is the world-leading free software bug tracking system.
+ </para>
</glossdef>
</glossentry>
</glossdiv>
</note>
<para>The software packages necessary for the proper running of
- Bugzilla are:
+ Bugzilla (with download links) are:
<orderedlist>
- <listitem>
- <para>MySQL database server and the mysql client (3.22.5 or
- greater)</para>
- </listitem>
+
+
+<listitem>
+ <para>
+ <ulink url="http://www.mysql.com/">MySQL database server</ulink>
+ (3.22.5 or greater)
+ </para>
+</listitem>
+
+<listitem>
+ <para>
+ <ulink url="http://www.perl.org">Perl</ulink>
+ (5.005 or greater, 5.6.1 is recommended if you wish to
+ use Bundle::Bugzilla)
+ </para>
+</listitem>
+
+<listitem>
+ <para>Perl Modules (minimum version):
+ <orderedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.template-toolkit.org">Template</ulink>
+ (v2.07)
+ </para>
+ </listitem>
- <listitem>
- <para>Perl (5.005 or greater, 5.6.1 is recommended if you wish to
- use Bundle::Bugzilla)</para>
- </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/AppConfig/">AppConfig
+ </ulink>
+ (v1.52)
+ </para>
+ </listitem>
- <listitem>
- <para>Perl Modules (minimum version):
- <orderedlist>
- <listitem>
- <para>Template (v2.07)</para>
- </listitem>
-
- <listitem>
- <para>AppConfig (v1.52)</para>
- </listitem>
-
- <listitem>
- <para>Text::Wrap (v2001.0131)</para>
- </listitem>
-
- <listitem>
- <para>File::Spec (v0.8.2)</para>
- </listitem>
-
- <listitem>
- <para>Data::Dumper (any)</para>
- </listitem>
-
- <listitem>
- <para>DBD::mysql (v1.2209)</para>
- </listitem>
-
- <listitem>
- <para>DBI (v1.13)</para>
- </listitem>
-
- <listitem>
- <para>Date::Parse (any)</para>
- </listitem>
-
- <listitem>
- <para>CGI::Carp (any)</para>
- </listitem>
-
- </orderedlist>
- and, optionally:
- <orderedlist>
- <listitem>
- <para>GD (v1.19) for bug charting</para>
- </listitem>
-
- <listitem>
- <para>Chart::Base (v0.99c) for bug charting</para>
- </listitem>
-
- <listitem>
- <para>XML::Parser (any) for the XML interface</para>
- </listitem>
-
- <listitem>
- <para>MIME::Parser (any) for the email interface</para>
- </listitem>
- </orderedlist>
- </para>
- </listitem>
+ <listitem>
+ <para>
+ Text::Wrap
+ (v2001.0131)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://search.cpan.org/search?dist=File-Spec">File::Spec
+ </ulink>
+ (v0.8.2)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/Data/">Data::Dumper
+ </ulink>
+ (any)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/Mysql/">DBD::mysql
+ </ulink>
+ (v1.2209)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/DBI/">DBI</ulink>
+ (v1.13)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/Date/">Date::Parse
+ </ulink>
+ (any)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ CGI::Carp
+ (any)
+ </para>
+ </listitem>
+
+ </orderedlist>
+ and, optionally:
+ <orderedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/GD/">GD</ulink>
+ (v1.19) for bug charting
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/Chart/">Chart::Base
+ </ulink>
+ (v0.99c) for bug charting
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ XML::Parser
+ (any) for the XML interface
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MIME::Parser
+ (any) for the email interface
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+</listitem>
+
+
+<listitem>
+ <para>
+ The web server of your choice.
+ <ulink url="http://www.apache.org/">Apache</ulink>
+ is highly recommended.
+ </para>
+</listitem>
- <listitem>
- <para>The web server of your choice. Apache is recommended.</para>
- </listitem>
</orderedlist>
All Perl modules can be found on the
Comprehensive Perl Archive Network (CPAN) at http://www.cpan.org. The
CPAN servers have a real tendency to bog down, so please use mirrors.
- The current location at the time of this writing can be found in
- <xref linkend="downloadlinks" />.
</para>
<para>Quality, general Perl module installation instructions can be
<para>The Chart module provides Bugzilla with on-the-fly charting
abilities. It can be installed in the usual fashion after it has been
- fetched from CPAN where it is found as the Chart-x.x... tarball, linked
- in
- <xref linkend="downloadlinks" />.
+ fetched from CPAN.
Note that earlier versions that 0.99c used GIFs, which are no longer
supported by the latest versions of GD.</para>
</section>
for the correct location of your Perl executable (probably
<filename>/usr/bin/perl</filename>).
Otherwise you must hack all the .cgi files to change where they look
- for Perl. This can be done using
- <xref linkend="setperl" />,
- found in
- <xref linkend="patches" />, or the below one-liner.
+ for Perl. This can be done using the following Perl one-liner.
I suggest using the symlink approach for future release
compatibility.
<para>Once you are happy with the settings,
<filename>su</filename> to the user
your web server runs as, and re-run
- <filename>checksetup.pl</filename>.
+ <filename>checksetup.pl</filename>. (Note: on some security-conscious
+ systems, you may need to change the login shell for the webserver
+ account before you can do this.)
On this second run, it will create the database and an administrator
account for which you will be prompted to provide information.</para>
</orderedlist>
</para>
</section>
+ </section>
+
+ <section id="extraconfig">
+ <title>Optional Additional Configuration</title>
<section>
- <title>Optional Additional Configuration</title>
+ <title>Dependency Charts</title>
- <section>
- <title>The Whining Cron</title>
+ <para>As well as the text-based dependency graphs, Bugzilla also
+ supports dependency graphing, using a package called 'dot'.
+ Exactly how this works is controlled by the 'webdotbase' parameter.
+ </para>
- <para>By now you have a fully functional Bugzilla, but what good are
- bugs if they're not annoying? To help make those bugs more annoying you
- can set up Bugzilla's automatic whining system to complain at engineers
- which leave their bugs in the NEW state without triaging them.
- </para>
- <para>
- This can be done by
- adding the following command as a daily crontab entry (for help on that
- see that crontab man page):
- <simplelist>
- <member>
- <computeroutput>
- <command>cd <your-bugzilla-directory> ;
- ./whineatnews.pl</command>
- </computeroutput>
- </member>
- </simplelist>
- </para>
+ <para>(To be written...</para>
+ </section>
- <tip>
- <para>Depending on your system, crontab may have several manpages.
- The following command should lead you to the most useful page for
- this purpose:
- <programlisting>man 5 crontab</programlisting>
- </para>
- </tip>
- </section>
+ <section>
+ <title>Bug Graphs</title>
- <section>
- <title>Bug Graphs</title>
+ <para>As long as you installed the GD and Graph::Base Perl modules you
+ might as well turn on the nifty Bugzilla bug reporting graphs.</para>
- <para>As long as you installed the GD and Graph::Base Perl modules you
- might as well turn on the nifty Bugzilla bug reporting graphs.</para>
+ <para>Add a cron entry like this to run
+ <filename>collectstats.pl</filename>
+ daily at 5 after midnight:
+ <simplelist>
+ <member>
+ <computeroutput>
+ <prompt>bash#</prompt>
- <para>Add a cron entry like this to run
- <filename>collectstats.pl</filename>
- daily at 5 after midnight:
- <simplelist>
- <member>
- <computeroutput>
- <prompt>bash#</prompt>
+ <command>crontab -e</command>
+ </computeroutput>
+ </member>
- <command>crontab -e</command>
- </computeroutput>
- </member>
+ <member>
+ <computeroutput>5 0 * * * cd <your-bugzilla-directory> ;
+ ./collectstats.pl</computeroutput>
+ </member>
+ </simplelist>
+ </para>
- <member>
- <computeroutput>5 0 * * * cd <your-bugzilla-directory> ;
- ./collectstats.pl</computeroutput>
- </member>
- </simplelist>
+ <para>After two days have passed you'll be able to view bug graphs from
+ the Bug Reports page.</para>
+ </section>
+
+ <section>
+ <title>The Whining Cron</title>
+
+ <para>By now you have a fully functional Bugzilla, but what good are
+ bugs if they're not annoying? To help make those bugs more annoying you
+ can set up Bugzilla's automatic whining system to complain at engineers
+ which leave their bugs in the NEW state without triaging them.
+ </para>
+ <para>
+ This can be done by
+ adding the following command as a daily crontab entry (for help on that
+ see that crontab man page):
+ <simplelist>
+ <member>
+ <computeroutput>
+ <command>cd <your-bugzilla-directory> ;
+ ./whineatnews.pl</command>
+ </computeroutput>
+ </member>
+ </simplelist>
+ </para>
+
+ <tip>
+ <para>Depending on your system, crontab may have several manpages.
+ The following command should lead you to the most useful page for
+ this purpose:
+ <programlisting>man 5 crontab</programlisting>
</para>
+ </tip>
+ </section>
- <para>After two days have passed you'll be able to view bug graphs from
- the Bug Reports page.</para>
- </section>
+ <section id="bzldap">
+ <title>LDAP Authentication</title>
+ <para>
+ <warning>
+ <para>This information on using the LDAP
+ authentication options with Bugzilla is old, and the authors do
+ not know of anyone who has tested it. Approach with caution.
+ </para>
+ </warning>
+ </para>
+
+ <para>
+ The existing authentication
+ scheme for Bugzilla uses email addresses as the primary user ID, and a
+ password to authenticate that user. All places within Bugzilla where
+ you need to deal with user ID (e.g assigning a bug) use the email
+ address. The LDAP authentication builds on top of this scheme, rather
+ than replacing it. The initial log in is done with a username and
+ password for the LDAP directory. This then fetches the email address
+ from LDAP and authenticates seamlessly in the standard Bugzilla
+ authentication scheme using this email address. If an account for this
+ address already exists in your Bugzilla system, it will log in to that
+ account. If no account for that email address exists, one is created at
+ the time of login. (In this case, Bugzilla will attempt to use the
+ "displayName" or "cn" attribute to determine the user's full name.)
+ After authentication, all other user-related tasks are still handled by
+ email address, not LDAP username. You still assign bugs by email
+ address, query on users by email address, etc.
+ </para>
+
+ <para>Using LDAP for Bugzilla authentication requires the
+ Mozilla::LDAP (aka PerLDAP) Perl module. The
+ Mozilla::LDAP module in turn requires Netscape's Directory SDK for C.
+ After you have installed the SDK, then install the PerLDAP module.
+ Mozilla::LDAP and the Directory SDK for C are both
+ <ulink url="http://www.mozilla.org/directory/">available for
+ download</ulink> from mozilla.org.
+ </para>
+
+ <para>
+ Set the Param 'useLDAP' to "On" **only** if you will be using an LDAP
+ directory for
+ authentication. Be very careful when setting up this parameter; if you
+ set LDAP authentication, but do not have a valid LDAP directory set up,
+ you will not be able to log back in to Bugzilla once you log out. (If
+ this happens, you can get back in by manually editing the data/params
+ file, and setting useLDAP back to 0.)
+ </para>
+
+ <para>If using LDAP, you must set the
+ three additional parameters: Set LDAPserver to the name (and optionally
+ port) of your LDAP server. If no port is specified, it defaults to the
+ default port of 389. (e.g "ldap.mycompany.com" or
+ "ldap.mycompany.com:1234") Set LDAPBaseDN to the base DN for searching
+ for users in your LDAP directory. (e.g. "ou=People,o=MyCompany") uids
+ must be unique under the DN specified here. Set LDAPmailattribute to
+ the name of the attribute in your LDAP directory which contains the
+ primary email address. On most directory servers available, this is
+ "mail", but you may need to change this.
+ </para>
</section>
</section>
</para>
</tip>
</section>
-
- <section id="bzldap">
- <title>Bugzilla LDAP Integration</title>
-
- <para>What follows is some late-breaking information on using the LDAP
- authentication options with Bugzilla. The author has not tested these
- (nor even formatted this section!) so please contribute feedback to the
- newsgroup.</para>
-
- <literallayout>Mozilla::LDAP module The Mozilla::LDAP module allows you
- to use LDAP for authentication to the Bugzilla system. This module is
- not required if you are not using LDAP. Mozilla::LDAP (aka PerLDAP) is
- available for download from http://www.mozilla.org/directory. NOTE: The
- Mozilla::LDAP module requires Netscape's Directory SDK. Follow the link
- for "Directory SDK for C" on that same page to download the SDK first.
- After you have installed this SDK, then install the PerLDAP module.
- ----------------------------------------------------------------------
- Post-Installation Checklist
- ----------------------------------------------------------------------
- Set useLDAP to "On" **only** if you will be using an LDAP directory for
- authentication. Be very careful when setting up this parameter; if you
- set LDAP authentication, but do not have a valid LDAP directory set up,
- you will not be able to log back in to Bugzilla once you log out. (If
- this happens, you can get back in by manually editing the data/params
- file, and setting useLDAP back to 0.) If using LDAP, you must set the
- three additional parameters: Set LDAPserver to the name (and optionally
- port) of your LDAP server. If no port is specified, it defaults to the
- default port of 389. (e.g "ldap.mycompany.com" or
- "ldap.mycompany.com:1234") Set LDAPBaseDN to the base DN for searching
- for users in your LDAP directory. (e.g. "ou=People,o=MyCompany") uids
- must be unique under the DN specified here. Set LDAPmailattribute to
- the name of the attribute in your LDAP directory which contains the
- primary email address. On most directory servers available, this is
- "mail", but you may need to change this.
- ----------------------------------------------------------------------
- (Not sure where this bit should go, but it's important that it be in
- there somewhere...)
- ----------------------------------------------------------------------
- Using LDAP authentication for Bugzilla: The existing authentication
- scheme for Bugzilla uses email addresses as the primary user ID, and a
- password to authenticate that user. All places within Bugzilla where
- you need to deal with user ID (e.g assigning a bug) use the email
- address. The LDAP authentication builds on top of this scheme, rather
- than replacing it. The initial log in is done with a username and
- password for the LDAP directory. This then fetches the email address
- from LDAP and authenticates seamlessly in the standard Bugzilla
- authentication scheme using this email address. If an account for this
- address already exists in your Bugzilla system, it will log in to that
- account. If no account for that email address exists, one is created at
- the time of login. (In this case, Bugzilla will attempt to use the
- "displayName" or "cn" attribute to determine the user's full name.)
- After authentication, all other user-related tasks are still handled by
- email address, not LDAP username. You still assign bugs by email
- address, query on users by email address, etc.
- ----------------------------------------------------------------------</literallayout>
- </section>
</section>
<section id="osx">
<quote>ISO-8859-1</quote>, above, to
<quote>UTF-8</quote>.</para>
</section>
+ </section>
+
+ <section id="troubleshooting">
+ <title>Troubleshooting</title>
+
+ <para>This section gives solutions to common Bugzilla installation
+ problems.
+ </para>
+
+ <section>
+ <title>DBD::Sponge::db prepare failed</title>
+
+ <para>
+ The following error message may appear due to a bug in DBD::mysql
+ (over which the Bugzilla team have no control):
+ </para>
+
+<programlisting><![CDATA[ "DBD::Sponge::db prepare failed: Cannot determine NUM_OF_FIELDS at D:/Perl/site/lib/DBD/mysql.pm line 248.
+ SV = NULL(0x0) at 0x20fc444
+ REFCNT = 1
+ FLAGS = (PADBUSY,PADMY)"
+]]></programlisting>
+
+ <para>
+ To fix this, go to <path-to-perl>/lib/DBD/sponge.pm in your Perl
+ installation and replace
+ </para>
+
+<programlisting><![CDATA[ my $numFields;
+ if ($attribs->{'NUM_OF_FIELDS'}) {
+ $numFields = $attribs->{'NUM_OF_FIELDS'};
+ } elsif ($attribs->{'NAME'}) {
+ $numFields = @{$attribs->{NAME}};
+]]></programlisting>
+
+ <para>
+ by
+ </para>
+
+<programlisting><![CDATA[ my $numFields;
+ if ($attribs->{'NUM_OF_FIELDS'}) {
+ $numFields = $attribs->{'NUM_OF_FIELDS'};
+ } elsif ($attribs->{'NAMES'}) {
+ $numFields = @{$attribs->{NAMES}};
+]]></programlisting>
+
+ <para>
+ (note the S added to NAME.)
+ </para>
+ </section>
<section id="paranoid-security">
<title>cannot chdir(/var/spool/mqueue)</title>
<quote>paranoid</quote>
security options, it is possible that the checksetup.pl script may fail
with the error:
- <errorname>cannot chdir(/var/spool/mqueue): Permission
- denied</errorname>.
+<programlisting><![CDATA[cannot chdir(/var/spool/mqueue): Permission denied
+]]></programlisting>
</para>
<para>
</command>
as root to fix this problem.
</para>
- </section>
+ </section>
</section>
</chapter>
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
<!-- Keep these tools listings in alphabetical order please. -MPB -->
-<chapter id="integration">
+<section id="integration">
<title>Integrating Bugzilla with Third-Party Tools</title>
<section id="bonsai"
<para>We need Tinderbox integration information.</para>
</section>
-</chapter>
+</section>
<!-- Keep this comment at the end of the file
Local variables:
</section>
- <section id="quicksearch">
- <title>The Quicksearch Utility</title>
-
- <para>Quicksearch is a single-text-box query tool which uses metacharacters
- to indicate what is to be searched. For example, "foo@bar.com" would be
- looked for in email address fields, because it contains an @ and so
- is an email address.
- </para>
-
- <para>Quicksearch consists of two Javascript files,
- "quicksearch.js" and "localconfig.js",
- and two documentation files, "quicksearch.html" and
- "quicksearchhack.html". More information on how to use Quicksearch
- can be found there. You'll find the Quicksearch box on Bugzilla's
- front page.</para>
-
- <para>To take full advantage of the query power, the Bugzilla maintainer
- must edit "localconfig.js" and change the parameters according to the local
- installation.</para>
-
- <para>Currently, keywords must be hard-coded in localconfig.js. If they
- are not, keywords are not automatically recognized. This means, if
- localconfig.js is left unconfigured, that searching for a bug with the
- "foo" keyword will only find bugs with "foo" in the summary, status
- whiteboard, product or component name, but not those with the keyword
- "foo".</para>
-
- <para>Workarounds for Bugzilla users:
- <simplelist>
- <member>search for '!foo' (this will find only bugs with the keyword
- "foo"</member>
-
- <member>search 'foo,!foo' (equivalent to 'foo OR keyword:foo')</member>
- </simplelist>
- </para>
-
- <para>When this tool is ported from client-side JavaScript to server-side
- Perl, the requirement for hard-coding keywords can be fixed.
- <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">This
- bug</ulink>
-
- has details.</para>
- </section>
</appendix>
<!-- Keep this comment at the end of the file
+++ /dev/null
-<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<appendix id="downloadlinks">
- <title>Software Download Links</title>
-
- <para>All of these sites are current as of April, 2001. Hopefully they'll
- stay current for a while.</para>
-
- <para>Apache Web Server:
- <ulink url="http://www.apache.org/">http://www.apache.org</ulink>
-
- Optional web server for Bugzilla, but recommended because of broad user
- base and support.</para>
-
- <para>Bugzilla:
- <ulink url="http://www.bugzilla.org/">
- http://www.bugzilla.org/</ulink>
- </para>
-
- <para>MySQL:
- <ulink url="http://www.mysql.com/">http://www.mysql.com/</ulink>
- </para>
-
- <para>Perl:
- <ulink url="http://www.perl.org">http://www.perl.org/</ulink>
- </para>
-
- <para>CPAN:
- <ulink url="http://www.cpan.org/">http://www.cpan.org/</ulink>
- </para>
-
- <para>DBI Perl module:
- <ulink url="http://www.cpan.org/modules/by-module/DBI/">
- http://www.cpan.org/modules/by-module/DBI/</ulink>
- </para>
-
- <para>Data::Dumper module:
- <ulink url="http://www.cpan.org/modules/by-module/Data/">
- http://www.cpan.org/modules/by-module/Data/</ulink>
- </para>
-
- <para>MySQL related Perl modules:
- <ulink url="http://www.cpan.org/modules/by-module/Mysql/">
- http://www.cpan.org/modules/by-module/Mysql/</ulink>
- </para>
-
- <para>TimeDate Perl module collection:
- <ulink url="http://www.cpan.org/modules/by-module/Date/">
- http://www.cpan.org/modules/by-module/Date/</ulink>
- </para>
-
- <para>GD Perl module:
- <ulink url="http://www.cpan.org/modules/by-module/GD/">
- http://www.cpan.org/modules/by-module/GD/</ulink>
-
- Alternately, you should be able to find the latest version of GD at
- <ulink url="http://www.boutell.com/gd/">http://www.boutell.com/gd/</ulink>
- </para>
-
- <para>Chart::Base module:
- <ulink url="http://www.cpan.org/modules/by-module/Chart/">
- http://www.cpan.org/modules/by-module/Chart/</ulink>
- </para>
-
- <para>(But remember, Bundle::Bugzilla will install all the modules for you.)
- </para>
-</appendix>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
</section>
</section>
- <section id="init4me">
+ <section id="hintsandtips">
+ <title>Hints and Tips</title>
+
+ <para>This section distills some Bugzilla tips and best practices
+ that have been developed.</para>
+
+ <section>
+ <title>Autolinkification</title>
+ <para>Bugzilla comments are plain text - so posting HTML will result
+ in literal HTML tags rather than being interpreted by a browser.
+ However, Bugzilla will automatically make hyperlinks out of certain
+ sorts of text in comments. For example, the text
+ http://www.bugzilla.org will be turned into
+ <ulink url="http://www.bugzilla.org">http://www.bugzilla.org</ulink>.
+ Other strings which get linkified in the obvious manner are:
+ <simplelist>
+ <member>bug 12345</member>
+ <member>bug 23456, comment 53</member>
+ <member>attachment 4321</member>
+ <member>mailto:george@example.com</member>
+ <member>ftp://ftp.mozilla.org</member>
+ <member>Most other sorts of URL</member>
+ </simplelist>
+ </para>
+
+ <para>A corollary here is that if you type a bug number in a comment,
+ you should put the word "bug" before it, so it gets autolinkified
+ for the convenience of others.
+ </para>
+ </section>
+
+ <section id="quicksearch">
+ <title>Quicksearch</title>
+
+ <para>Quicksearch is a single-text-box query tool which uses
+ metacharacters to indicate what is to be searched. For example, typing
+ "foo|bar" into Quicksearch would search for "foo" or "bar" in the
+ summary and status whiteboard of a bug; adding ":BazProduct" would
+ search only in that product.
+ </para>
+
+ <para>You'll find the Quicksearch box on Bugzilla's
+ front page, along with a
+ <ulink url="../../quicksearch.html">Help</ulink>
+ link which details how to use it.</para>
+ </section>
+
+ <section id="commenting">
+ <title>Comments</title>
+
+ <para>If you are changing the fields on a bug, only comment if
+ either you have something pertinent to say, or Bugzilla requires it.
+ Otherwise, you may spam people unnecessarily with bug mail.
+ To take an example: a user sets up their account to filter out messages
+ where someone just adds themselves to the CC field of a bug
+ (which happens a lot.) If you come along, add yourself to the CC field,
+ and add a comment saying "Adding self to CC", then that person
+ gets a pointless piece of mail they would otherwise have avoided.
+ </para>
+
+ <para>
+ Don't use sigs in comments. Signing your name ("Bill") is acceptable,
+ particularly if you do it out of habit, but full mail/news-style
+ four line ASCII art creations are not.
+ </para>
+ </section>
+
+ <section id="attachments">
+ <title>Attachments</title>
+
+ <para>
+ Use attachments, rather than comments, for large chunks of ASCII data,
+ such as trace, debugging output files, or log files. That way, it doesn't
+ bloat the bug for everyone who wants to read it, and cause people to
+ receive fat, useless mails.
+ </para>
+
+ <para>Trim screenshots. There's no need to show the whole screen if
+ you are pointing out a single-pixel problem.
+ </para>
+
+ <para>Don't attach simple test cases (e.g. one html file and one
+ css file and one image) as a ZIP file. Instead, upload them in
+ reverse order and edit the referring file so that they point to the
+ attached files. This way, the test case works immediately
+ out of the bug.
+ </para>
+ </section>
+
+ <section>
+ <title>Filing Bugs</title>
+
+ <para>Try to make sure that everything said in the summary is also
+ said in the first comment. Summaries are often updated and this will
+ ensure your original information is easily accessible.
+ </para>
+
+ <para>
+ You do not need to put "any" or similar strings in the URL field.
+ If there is no specific URL associated with the bug, leave this
+ field blank.
+ </para>
+
+ <para>If you feel a bug you filed was incorrectly marked as a
+ DUPLICATE of another, please question it in your bug, not
+ the bug it was duped to. Feel free to CC the person who duped it
+ if they are not already CCed.
+ </para>
+ </section>
+ </section>
+
+ <section id="userpreferences">
<title>User Preferences</title>
<para>Once you have logged in, you can customise various aspects of
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">-->
-<chapter id="variants" xreflabel="Bugzilla Variants and Competitors">
+<appendix id="variants" xreflabel="Bugzilla Variants and Competitors">
<title>Bugzilla Variants and Competitors</title>
<para>I created this section to answer questions about Bugzilla competitors
http://www.sourceforge.net</ulink>
</para>
</section>
-</chapter>
+</appendix>
<!-- Keep this comment at the end of the file
Local variables:
<!ENTITY database SYSTEM "database.sgml">
<!ENTITY patches SYSTEM "patches.sgml">
<!ENTITY variants SYSTEM "variants.sgml">
-<!ENTITY requiredsoftware SYSTEM "requiredsoftware.sgml">
<!ENTITY introduction SYSTEM "introduction.sgml">
<!ENTITY revhistory SYSTEM "revhistory.sgml">
<abstract>
<para>
- This is the documentation for Bugzilla, the mozilla.org
- bug-tracking system.
- Bugzilla is an enterprise-class piece of software
- that powers issue-tracking for hundreds of
- organizations around the world, tracking millions of bugs.
+ This is the documentation for Bugzilla, the mozilla.org
+ bug-tracking system.
+ Bugzilla is an enterprise-class piece of software
+ that powers issue-tracking for hundreds of
+ organizations around the world, tracking millions of bugs.
</para>
+
<para>
- This documentation is maintained in DocBook 4.1.2 XML format.
- Changes are best submitted as plain text or SGML diffs, attached
- to a Bugzilla bug.
+ <warning>
+ <para>IMPORTANT: this documentation is currently being
+ updated for the Bugzilla 2.16 release and is in an unusual state of
+ flux. Even more than normal, don't believe everything,
+ or even anything, you read.
+ </para>
+ </warning>
+ </para>
+
+ <para>
+ This documentation is maintained in DocBook 4.1.2 XML format.
+ Changes are best submitted as plain text or SGML diffs, attached
+ to a bug filed in
+ <ulink url="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla">bugzilla.mozilla.org</ulink>.
</para>
</abstract>
-
<keywordset>
<keyword>Bugzilla</keyword>
<keyword>Guide</keyword>
<!-- About This Guide -->
&about;
-<!-- Using Bugzilla -->
+<!-- Introduction -->
&introduction;
<!-- Using Bugzilla -->
<!-- Administering Bugzilla -->
&administration;
-<!-- Integrating Bugzilla with Third-Party Tools -->
-&integration;
-
-<!-- Major Bugzilla Variants -->
-&variants;
-
<!-- Appendix: The Frequently Asked Questions -->
&faq;
-<!-- Appendix: Required Bugzilla Software Links -->
-&requiredsoftware;
-
<!-- Appendix: The Database Schema -->
&database;
<!-- Appendix: Custom Patches -->
&patches;
-<!-- Appendix: The GNU Free Documentation License -->
-&gfdl;
+<!-- Appendix: Major Bugzilla Variants -->
+&variants;
<!-- Glossary -->
&glossary;
License, Version 1.1 or any later version published by the
Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and with no Back-Cover Texts. A copy of
- the license is included in the section entitled "GNU Free
- Documentation License".
+ the license is included below.
</para>
</blockquote>
<para>
copyright, or publishing this document in non-electronic form,
please contact &bzg-auth;.
</para>
+
+
+ <!-- The GNU Free Documentation License -->
+ &gfdl;
+
</section>
<section id="disclaimer">
</listitem>
</orderedlist>
</section>
+ </section>
+
+ <section id="voting">
+ <title>Voting</title>
+
+ <para>The concept of "voting" is a poorly understood, yet powerful
+ feature for the management of open-source projects. Each user is
+ assigned so many Votes per product, which they can freely reassign (or
+ assign multiple votes to a single bug). This allows developers to gauge
+ user need for a particular enhancement or bugfix. By allowing bugs with
+ a certain number of votes to automatically move from "UNCONFIRMED" to
+ "NEW", users of the bug system can help high-priority bugs garner
+ attention so they don't sit for a long time awaiting triage.</para>
+
+ <para>The daunting challenge of Votes is deciding where you draw the
+ line for a "vocal majority". If you only have a user base of 100 users,
+ setting a low threshold for bugs to move from UNCONFIRMED to NEW makes
+ sense. As the Bugzilla user base expands, however, these thresholds
+ must be re-evaluated. You should gauge whether this feature is worth
+ the time and close monitoring involved, and perhaps forego
+ implementation until you have a critical mass of users who demand
+ it.</para>
+
+ <para>To modify Voting settings:</para>
- <section id="voting">
- <title>Voting</title>
-
- <para>The concept of "voting" is a poorly understood, yet powerful
- feature for the management of open-source projects. Each user is
- assigned so many Votes per product, which they can freely reassign (or
- assign multiple votes to a single bug). This allows developers to gauge
- user need for a particular enhancement or bugfix. By allowing bugs with
- a certain number of votes to automatically move from "UNCONFIRMED" to
- "NEW", users of the bug system can help high-priority bugs garner
- attention so they don't sit for a long time awaiting triage.</para>
-
- <para>The daunting challenge of Votes is deciding where you draw the
- line for a "vocal majority". If you only have a user base of 100 users,
- setting a low threshold for bugs to move from UNCONFIRMED to NEW makes
- sense. As the Bugzilla user base expands, however, these thresholds
- must be re-evaluated. You should gauge whether this feature is worth
- the time and close monitoring involved, and perhaps forego
- implementation until you have a critical mass of users who demand
- it.</para>
-
- <para>To modify Voting settings:</para>
-
- <orderedlist>
- <listitem>
- <para>Navigate to the "Edit product" screen for the Product you
- wish to modify</para>
- </listitem>
-
- <listitem>
- <para>Set "Maximum Votes per person" to your calculated value.
- Setting this field to "0" disables voting.</para>
- </listitem>
-
- <listitem>
- <para>Set "Maximum Votes a person can put on a single bug" to your
- calculated value. It should probably be some number lower than the
- "Maximum votes per person". Setting this field to "0" disables
- voting, but leaves the voting options open to the user. This is
- confusing.</para>
- </listitem>
-
- <listitem>
- <para>Set "Number of votes a bug in this product needs to
- automatically get out of the UNCONFIRMED state" to your calculated
- number. Setting this field to "0" disables the automatic move of
- bugs from UNCONFIRMED to NEW. Some people advocate leaving this at
- "0", but of what use are Votes if your Bugzilla user base is unable
- to affect which bugs appear on Development radar?
- <tip>
- <para>You should probably set this number to higher than a small
- coalition of Bugzilla users can influence it. Most sites use this
- as a "referendum" mechanism -- if users are able to vote a bug
- out of UNCONFIRMED, it is a
- <emphasis>really</emphasis>
-
- bad bug!</para>
- </tip>
- </para>
- </listitem>
-
- <listitem>
- <para>Once you have adjusted the values to your preference, select
- the "Update" button.</para>
- </listitem>
- </orderedlist>
- </section>
-
- <section id="groups">
- <title>Groups and Group Security</title>
-
- <para>Groups can be very useful in bugzilla, because they allow users
- to isolate bugs or products that should only be seen by certain people.
- Groups can also be a complicated minefield of interdependencies and
- weirdness if mismanaged.
- <example>
- <title>When to Use Group Security</title>
+ <orderedlist>
+ <listitem>
+ <para>Navigate to the "Edit product" screen for the Product you
+ wish to modify</para>
+ </listitem>
- <informalexample>
- <para>Many Bugzilla sites isolate "Security-related" bugs from all
- other bugs. This way, they can have a fix ready before the security
- vulnerability is announced to the world. You can create a
- "Security" product which, by default, has no members, and only add
- members to the group (in their individual User page, as described
- under User Administration) who should have priveleged access to
- "Security" bugs. Alternately, you may create a Group independently
- of any Product, and change the Group mask on individual bugs to
- restrict access to members only of certain Groups.</para>
- </informalexample>
- </example>
+ <listitem>
+ <para>Set "Maximum Votes per person" to your calculated value.
+ Setting this field to "0" disables voting.</para>
+ </listitem>
- Groups only work if you enable the "usebuggroups" paramater. In
- addition, if the "usebuggroupsentry" parameter is "On", one can
- restrict access to products by groups, so that only members of a
- product group are able to view bugs within that product. Group security
- in Bugzilla can be divided into two categories: Generic and
- Product-Based.</para>
+ <listitem>
+ <para>Set "Maximum Votes a person can put on a single bug" to your
+ calculated value. It should probably be some number lower than the
+ "Maximum votes per person". Setting this field to "0" disables
+ voting, but leaves the voting options open to the user. This is
+ confusing.</para>
+ </listitem>
- <note>
- <para>Groups in Bugzilla are a complicated beast that evolved out of
- very simple user permission bitmasks, apparently itself derived from
- common concepts in UNIX access controls. A "bitmask" is a
- fixed-length number whose value can describe one, and only one, set
- of states. For instance, UNIX file permissions are assigned bitmask
- values: "execute" has a value of 1, "write" has a value of 2, and
- "read" has a value of 4. Add them together, and a file can be read,
- written to, and executed if it has a bitmask of "7". (This is a
- simplified example -- anybody who knows UNIX security knows there is
- much more to it than this. Please bear with me for the purpose of
- this note.) The only way a bitmask scheme can work is by doubling the
- bit count for each value. Thus if UNIX wanted to offer another file
- permission, the next would have to be a value of 8, then the next 16,
- the next 32, etc.</para>
-
- <para>Similarly, Bugzilla offers a bitmask to define group
- permissions, with an internal limit of 64. Several are already
- occupied by built-in permissions. The way around this limitation is
- to avoid assigning groups to products if you have many products,
- avoid bloating of group lists, and religiously prune irrelevant
- groups. In reality, most installations of Bugzilla support far fewer
- than 64 groups, so this limitation has not hit for most sites, but it
- is on the table to be revised for Bugzilla 3.0 because it interferes
- with the security schemes of some administrators.</para>
- </note>
+ <listitem>
+ <para>Set "Number of votes a bug in this product needs to
+ automatically get out of the UNCONFIRMED state" to your calculated
+ number. Setting this field to "0" disables the automatic move of
+ bugs from UNCONFIRMED to NEW. Some people advocate leaving this at
+ "0", but of what use are Votes if your Bugzilla user base is unable
+ to affect which bugs appear on Development radar?
+ <tip>
+ <para>You should probably set this number to higher than a small
+ coalition of Bugzilla users can influence it. Most sites use this
+ as a "referendum" mechanism -- if users are able to vote a bug
+ out of UNCONFIRMED, it is a
+ <emphasis>really</emphasis>
+
+ bad bug!</para>
+ </tip>
+ </para>
+ </listitem>
- <para>To enable Generic Group Security ("usebuggroups"):</para>
+ <listitem>
+ <para>Once you have adjusted the values to your preference, select
+ the "Update" button.</para>
+ </listitem>
+ </orderedlist>
+ </section>
- <orderedlist>
- <listitem>
- <para>Turn "On" "usebuggroups" in the "Edit Parameters"
- screen.</para>
- </listitem>
+ <section id="groups">
+ <title>Groups and Group Security</title>
+
+ <para>Groups can be very useful in bugzilla, because they allow users
+ to isolate bugs or products that should only be seen by certain people.
+ Groups can also be a complicated minefield of interdependencies and
+ weirdness if mismanaged.
+ <example>
+ <title>When to Use Group Security</title>
+
+ <informalexample>
+ <para>Many Bugzilla sites isolate "Security-related" bugs from all
+ other bugs. This way, they can have a fix ready before the security
+ vulnerability is announced to the world. You can create a
+ "Security" product which, by default, has no members, and only add
+ members to the group (in their individual User page, as described
+ under User Administration) who should have priveleged access to
+ "Security" bugs. Alternately, you may create a Group independently
+ of any Product, and change the Group mask on individual bugs to
+ restrict access to members only of certain Groups.</para>
+ </informalexample>
+ </example>
+
+ Groups only work if you enable the "usebuggroups" paramater. In
+ addition, if the "usebuggroupsentry" parameter is "On", one can
+ restrict access to products by groups, so that only members of a
+ product group are able to view bugs within that product. Group security
+ in Bugzilla can be divided into two categories: Generic and
+ Product-Based.</para>
- <listitem>
- <para>You will generally have no groups set up. Select the "groups"
- link in the footer.</para>
- </listitem>
+ <note>
+ <para>Groups in Bugzilla are a complicated beast that evolved out of
+ very simple user permission bitmasks, apparently itself derived from
+ common concepts in UNIX access controls. A "bitmask" is a
+ fixed-length number whose value can describe one, and only one, set
+ of states. For instance, UNIX file permissions are assigned bitmask
+ values: "execute" has a value of 1, "write" has a value of 2, and
+ "read" has a value of 4. Add them together, and a file can be read,
+ written to, and executed if it has a bitmask of "7". (This is a
+ simplified example -- anybody who knows UNIX security knows there is
+ much more to it than this. Please bear with me for the purpose of
+ this note.) The only way a bitmask scheme can work is by doubling the
+ bit count for each value. Thus if UNIX wanted to offer another file
+ permission, the next would have to be a value of 8, then the next 16,
+ the next 32, etc.</para>
+
+ <para>Similarly, Bugzilla offers a bitmask to define group
+ permissions, with an internal limit of 64. Several are already
+ occupied by built-in permissions. The way around this limitation is
+ to avoid assigning groups to products if you have many products,
+ avoid bloating of group lists, and religiously prune irrelevant
+ groups. In reality, most installations of Bugzilla support far fewer
+ than 64 groups, so this limitation has not hit for most sites, but it
+ is on the table to be revised for Bugzilla 3.0 because it interferes
+ with the security schemes of some administrators.</para>
+ </note>
- <listitem>
- <para>Take a moment to understand the instructions on the "Edit
- Groups" screen. Once you feel confident you understand what is
- expected of you, select the "Add Group" link.</para>
- </listitem>
+ <para>To enable Generic Group Security ("usebuggroups"):</para>
- <listitem>
- <para>Fill out the "New Name" (remember, no spaces!), "New
- Description", and "New User RegExp" fields. "New User RegExp"
- allows you to automatically place all users who fulfill the Regular
- Expression into the new group.
- <example>
- <title>Creating a New Group</title>
+ <orderedlist>
+ <listitem>
+ <para>Turn "On" "usebuggroups" in the "Edit Parameters"
+ screen.</para>
+ </listitem>
- <informalexample>
- <para>I created a group called DefaultGroup with a description
- of
- <quote>This is simply a group to play with</quote>
+ <listitem>
+ <para>You will generally have no groups set up. Select the "groups"
+ link in the footer.</para>
+ </listitem>
- , and a New User RegExp of
- <quote>.*@mydomain.tld</quote>
+ <listitem>
+ <para>Take a moment to understand the instructions on the "Edit
+ Groups" screen. Once you feel confident you understand what is
+ expected of you, select the "Add Group" link.</para>
+ </listitem>
- . This new group automatically includes all Bugzilla users with
- "@mydomain.tld" at the end of their user id. When I finished,
- my new group was assigned bit #128.</para>
- </informalexample>
- </example>
+ <listitem>
+ <para>Fill out the "New Name" (remember, no spaces!), "New
+ Description", and "New User RegExp" fields. "New User RegExp"
+ allows you to automatically place all users who fulfill the Regular
+ Expression into the new group.
+ <example>
+ <title>Creating a New Group</title>
+
+ <informalexample>
+ <para>I created a group called DefaultGroup with a description
+ of
+ <quote>This is simply a group to play with</quote>
+
+ , and a New User RegExp of
+ <quote>.*@mydomain.tld</quote>
+
+ . This new group automatically includes all Bugzilla users with
+ "@mydomain.tld" at the end of their user id. When I finished,
+ my new group was assigned bit #128.</para>
+ </informalexample>
+ </example>
+
+ When you have finished, select the Add button.</para>
+ </listitem>
+ </orderedlist>
- When you have finished, select the Add button.</para>
- </listitem>
- </orderedlist>
+ <para>To enable Product-Based Group Security
+ (usebuggroupsentry):</para>
- <para>To enable Product-Based Group Security
- (usebuggroupsentry):</para>
+ <warning>
+ <para>Don't forget that you only have 64 groups masks available,
+ total, for your installation of Bugzilla! If you plan on having more
+ than 50 products in your individual Bugzilla installation, and
+ require group security for your products, you should consider either
+ running multiple Bugzillas or using Generic Group Security instead of
+ Product-Based ("usebuggroupsentry") Group Security.</para>
+ </warning>
- <warning>
- <para>Don't forget that you only have 64 groups masks available,
- total, for your installation of Bugzilla! If you plan on having more
- than 50 products in your individual Bugzilla installation, and
- require group security for your products, you should consider either
- running multiple Bugzillas or using Generic Group Security instead of
- Product-Based ("usebuggroupsentry") Group Security.</para>
- </warning>
+ <orderedlist>
+ <listitem>
+ <para>Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit
+ Parameters" screen.</para>
- <orderedlist>
- <listitem>
- <para>Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit
- Parameters" screen.</para>
-
- <warning>
- <para>"usebuggroupsentry" has the capacity to prevent the
- administrative user from directly altering bugs because of
- conflicting group permissions. If you plan on using
- "usebuggroupsentry", you should plan on restricting
- administrative account usage to administrative duties only. In
- other words, manage bugs with an unpriveleged user account, and
- manage users, groups, Products, etc. with the administrative
- account.</para>
- </warning>
- </listitem>
+ <warning>
+ <para>"usebuggroupsentry" has the capacity to prevent the
+ administrative user from directly altering bugs because of
+ conflicting group permissions. If you plan on using
+ "usebuggroupsentry", you should plan on restricting
+ administrative account usage to administrative duties only. In
+ other words, manage bugs with an unpriveleged user account, and
+ manage users, groups, Products, etc. with the administrative
+ account.</para>
+ </warning>
+ </listitem>
- <listitem>
- <para>You will generally have no Groups set up, unless you enabled
- "usebuggroupsentry" prior to creating any Products. To create
- "Generic Group Security" groups, follow the instructions given
- above. To create Product-Based Group security, simply follow the
- instructions for creating a new Product. If you need to add users
- to these new groups as you create them, you will find the option to
- add them to the group available under the "Edit User"
- screens.</para>
- </listitem>
- </orderedlist>
+ <listitem>
+ <para>You will generally have no Groups set up, unless you enabled
+ "usebuggroupsentry" prior to creating any Products. To create
+ "Generic Group Security" groups, follow the instructions given
+ above. To create Product-Based Group security, simply follow the
+ instructions for creating a new Product. If you need to add users
+ to these new groups as you create them, you will find the option to
+ add them to the group available under the "Edit User"
+ screens.</para>
+ </listitem>
+ </orderedlist>
- <para>You may find this example illustrative for how bug groups work.
- <example>
- <title>Bugzilla Groups</title>
-
- <literallayout>Bugzilla Groups example ----------------------- For
- this example, let us suppose we have four groups, call them Group1,
- Group2, Group3, and Group4. We have 5 users, User1, User2, User3,
- User4, User5. We have 8 bugs, Bug1, ..., Bug8. Group membership is
- defined by this chart: (X denotes that user is in that group.) (I
- apologize for the nasty formatting of this table. Try viewing it in a
- text-based browser or something for now. -MPB) G G G G r r r r o o o
- o u u u u p p p p 1 2 3 4 +-+-+-+-+ User1|X| | | | +-+-+-+-+ User2|
- |X| | | +-+-+-+-+ User3|X| |X| | +-+-+-+-+ User4|X|X|X| | +-+-+-+-+
- User5| | | | | +-+-+-+-+ Bug restrictions are defined by this chart:
- (X denotes that bug is restricted to that group.) G G G G r r r r o o
- o o u u u u p p p p 1 2 3 4 +-+-+-+-+ Bug1| | | | | +-+-+-+-+ Bug2|
- |X| | | +-+-+-+-+ Bug3| | |X| | +-+-+-+-+ Bug4| | | |X| +-+-+-+-+
- Bug5|X|X| | | +-+-+-+-+ Bug6|X| |X| | +-+-+-+-+ Bug7|X|X|X| |
- +-+-+-+-+ Bug8|X|X|X|X| +-+-+-+-+ Who can see each bug? Bug1 has no
- group restrictions. Therefore, Bug1 can be seen by any user, whatever
- their group membership. This is going to be the only bug that User5
- can see, because User5 isn't in any groups. Bug2 can be seen by
- anyone in Group2, that is User2 and User4. Bug3 can be seen by anyone
- in Group3, that is User3 and User4. Bug4 can be seen by anyone in
- Group4. Nobody is in Group4, so none of these users can see Bug4.
- Bug5 can be seen by anyone who is in _both_ Group1 and Group2. This
- is only User4. User1 cannot see it because he is not in Group2, and
- User2 cannot see it because she is not in Group1. Bug6 can be seen by
- anyone who is in both Group1 and Group3. This would include User3 and
- User4. Similar to Bug5, User1 cannot see Bug6 because he is not in
- Group3. Bug7 can be seen by anyone who is in Group1, Group2, and
- Group3. This is only User4. All of the others are missing at least
- one of those group privileges, and thus cannot see the bug. Bug8 can
- be seen by anyone who is in Group1, Group2, Group3, and Group4. There
- is nobody in all four of these groups, so nobody can see Bug8. It
- doesn't matter that User4 is in Group1, Group2, and Group3, since he
- isn't in Group4.</literallayout>
- </example>
- </para>
- </section>
+ <para>You may find this example illustrative for how bug groups work.
+ <example>
+ <title>Bugzilla Groups</title>
+
+ <literallayout>Bugzilla Groups example ----------------------- For
+ this example, let us suppose we have four groups, call them Group1,
+ Group2, Group3, and Group4. We have 5 users, User1, User2, User3,
+ User4, User5. We have 8 bugs, Bug1, ..., Bug8. Group membership is
+ defined by this chart: (X denotes that user is in that group.) (I
+ apologize for the nasty formatting of this table. Try viewing it in a
+ text-based browser or something for now. -MPB) G G G G r r r r o o o
+ o u u u u p p p p 1 2 3 4 +-+-+-+-+ User1|X| | | | +-+-+-+-+ User2|
+ |X| | | +-+-+-+-+ User3|X| |X| | +-+-+-+-+ User4|X|X|X| | +-+-+-+-+
+ User5| | | | | +-+-+-+-+ Bug restrictions are defined by this chart:
+ (X denotes that bug is restricted to that group.) G G G G r r r r o o
+ o o u u u u p p p p 1 2 3 4 +-+-+-+-+ Bug1| | | | | +-+-+-+-+ Bug2|
+ |X| | | +-+-+-+-+ Bug3| | |X| | +-+-+-+-+ Bug4| | | |X| +-+-+-+-+
+ Bug5|X|X| | | +-+-+-+-+ Bug6|X| |X| | +-+-+-+-+ Bug7|X|X|X| |
+ +-+-+-+-+ Bug8|X|X|X|X| +-+-+-+-+ Who can see each bug? Bug1 has no
+ group restrictions. Therefore, Bug1 can be seen by any user, whatever
+ their group membership. This is going to be the only bug that User5
+ can see, because User5 isn't in any groups. Bug2 can be seen by
+ anyone in Group2, that is User2 and User4. Bug3 can be seen by anyone
+ in Group3, that is User3 and User4. Bug4 can be seen by anyone in
+ Group4. Nobody is in Group4, so none of these users can see Bug4.
+ Bug5 can be seen by anyone who is in _both_ Group1 and Group2. This
+ is only User4. User1 cannot see it because he is not in Group2, and
+ User2 cannot see it because she is not in Group1. Bug6 can be seen by
+ anyone who is in both Group1 and Group3. This would include User3 and
+ User4. Similar to Bug5, User1 cannot see Bug6 because he is not in
+ Group3. Bug7 can be seen by anyone who is in Group1, Group2, and
+ Group3. This is only User4. All of the others are missing at least
+ one of those group privileges, and thus cannot see the bug. Bug8 can
+ be seen by anyone who is in Group1, Group2, Group3, and Group4. There
+ is nobody in all four of these groups, so nobody can see Bug8. It
+ doesn't matter that User4 is in Group1, Group2, and Group3, since he
+ isn't in Group4.</literallayout>
+ </example>
+ </para>
</section>
<section id="security">
</orderedlist>
</para>
</section>
+
+ <section id="cust-templates">
+ <title>Template Customisation</title>
+
+ <para>
+ One of the large changes for 2.16 was the templatisation of the
+ entire user-facing UI, using the
+ <ulink url="http://www.template-toolkit.org">Template Toolkit</ulink>.
+ Administrators can now configure the look and feel of Bugzilla without
+ having to edit Perl files or face the nightmare of massive merge
+ conflicts when they upgrade to a newer version in the future.
+ </para>
+
+ <para>
+ Templatisation also makes localised versions of Bugzilla possible,
+ for the first time. In the future, a Bugzilla installation may
+ have templates installed for multiple localisations, and select
+ which ones to use based on the user's browser language setting.
+ </para>
+
+ <section>
+ <title>What to Edit</title>
+ <para>
+ There are several ways to take advantage of Bugzilla's templates,
+ and which you use depends on what you want to do. The Bugzilla
+ template directory structure is that there's a top level directory,
+ <filename>template</filename>, which contains a directory for
+ each installed localisation. The default English templates are
+ therefore in <filename>en</filename>. Underneath that, there
+ are two directories - <filename>default</filename> and
+ <filename>custom</filename>. The <filename>default</filename>
+ directory contains all the templates shipped with Bugzilla.
+ </para>
+
+ <para>
+ One method of making customisations is to directly edit the templates
+ in <filename>template/en/default</filename>. This is probably the
+ best method for small changes, because if you then execute a
+ <command>cvs update</command>, any template fixes will get
+ automagically merged into your modified versions.
+ </para>
+
+ <para>
+ The other method is to copy the templates into
+ <filename>template/en/custom</filename>. This method is better if
+ you are going to make major changes, because it is guaranteed that
+ the contents of this directory will not be touched during an upgrade,
+ and you can then decide whether to continue using your own templates,
+ or make the effort to merge your changes into the new versions by
+ hand.
+ </para>
+
+ <para>
+ The syntax of the Template Toolkit language is beyond the scope of
+ this guide. It's reasonably easy to pick up by looking at the current
+ templates; or, you can read the manual, available on the
+ <ulink url="http://www.template-toolkit.org">Template Toolkit home
+ page </ulink>.
+ </para>
+ </section>
+
+ <section>
+ <title>Particular Templates</title>
+
+ <para>
+ There are a few templates you may be particularly interested in
+ customising for your installation.
+ </para>
+
+ <para>
+ <command>global/header.html.tmpl</command> and
+ <command>global/footer.html.tmpl</command>:
+ These define the header and footer that go on all Bugzilla pages.
+ Editing these is a way to quickly get a distinctive look and
+ feel for your Bugzilla installation.
+ </para>
+ </section>
+
+ <section>
+ <title>Template Formats</title>
+
+ <para>
+ Some CGIs have the ability to use more than one template. For
+ example, buglist.cgi can output bug lists as RDF or two
+ different forms of HTML (complex and simple). (Try this out
+ by appending <filename>&format=simple</filename> to a buglist.cgi
+ URL on your Bugzilla installation.) This
+ mechanism, called template 'formats', is extensible.
+ </para>
+
+ <para>
+ To see if a CGI supports multiple output formats, grep the
+ CGI for "ValidateOutputFormat". If it's not present, adding
+ multiple format support isn't too hard - see how it's done in
+ other CGIs.
+ </para>
+
+ <para>
+ To make a new format template for a CGI which supports this,
+ open a current template for
+ that CGI and take note of the INTERFACE comment (if present.) This
+ comment defines what variables are passed into this template. If
+ there isn't one, I'm afraid you'll have to read the template and
+ the code to find out what information you get.
+ </para>
+
+ <para>
+ Write your template in whatever markup or text style is appropriate.
+ </para>
+
+ <para>
+ You now need to decide what content type you want your template
+ served as. Open up the localconfig file and find the $contenttypes
+ variable. If your content type is not there, add it. Remember
+ the three- or four-letter tag assigned to you content type.
+ This tag will be part of the template filename.
+ </para>
+
+ <para>
+ Save the template as <filename><stubname>-<formatname>.<contenttypetag>.tmpl</filename>.
+ Try out the template by calling the CGI as
+ <filename><cginame>.cgi?format=<formatname></filename> .
+ </para>
+ </section>
+
+ </section>
+
+
+ <!-- Integrating Bugzilla with Third-Party Tools -->
+ &integration;
+
</chapter>
<!-- Keep this comment at the end of the file
<entry>
<programlisting>
- <sgmltag class="starttag">para</sgmltag>
- Beginning and end of paragraph
- <sgmltag class="endtag">para</sgmltag>
+<sgmltag class="starttag">para</sgmltag>
+Beginning and end of paragraph
+<sgmltag class="endtag">para</sgmltag>
</programlisting>
</entry>
</row>
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<appendix id="gfdl">
+<section id="gfdl">
<title>GNU Free Documentation License</title>
<!-- - GNU Project - Free Software Foundation (FSF) -->
<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
-<!-- sect1>
+<!-- section>
<title>GNU Free Documentation License</title -->
<para>Version 1.1, March 2000</para>
not allowed.</para>
</blockquote>
- <sect1 label="0" id="gfdl-0">
+ <section label="0" id="gfdl-0">
<title>PREAMBLE</title>
<para>The purpose of this License is to make a manual, textbook, or other
can be used for any textual work, regardless of subject matter or whether
it is published as a printed book. We recommend this License principally
for works whose purpose is instruction or reference.</para>
- </sect1>
+ </section>
- <sect1 label="1" id="gfdl-1">
+ <section label="1" id="gfdl-1">
<title>APPLICABILITY AND DEFINITIONS</title>
<para>This License applies to any manual or other work that contains a
which do not have any title page as such, "Title Page" means the text
near the most prominent appearance of the work's title, preceding the
beginning of the body of the text.</para>
- </sect1>
+ </section>
- <sect1 label="2" id="gfdl-2">
+ <section label="2" id="gfdl-2">
<title>VERBATIM COPYING</title>
<para>You may copy and distribute the Document in any medium, either
<para>You may also lend copies, under the same conditions stated above,
and you may publicly display copies.</para>
- </sect1>
+ </section>
- <sect1 label="3" id="gfdl-3">
+ <section label="3" id="gfdl-3">
<title>COPYING IN QUANTITY</title>
<para>If you publish printed copies of the Document numbering more than
the Document well before redistributing any large number of copies, to
give them a chance to provide you with an updated version of the
Document.</para>
- </sect1>
+ </section>
- <sect1 label="4" id="gfdl-4">
+ <section label="4" id="gfdl-4">
<title>MODIFICATIONS</title>
<para>You may copy and distribute a Modified Version of the Document
<para>The author(s) and publisher(s) of the Document do not by this
License give permission to use their names for publicity for or to assert
or imply endorsement of any Modified Version.</para>
- </sect1>
+ </section>
- <sect1 label="5" id="gfdl-5">
+ <section label="5" id="gfdl-5">
<title>COMBINING DOCUMENTS</title>
<para>You may combine the Document with other documents released under
"History"; likewise combine any sections entitled "Acknowledgements", and
any sections entitled "Dedications". You must delete all sections
entitled "Endorsements."</para>
- </sect1>
+ </section>
- <sect1 label="6" id="gfdl-6">
+ <section label="6" id="gfdl-6">
<title>COLLECTIONS OF DOCUMENTS</title>
<para>You may make a collection consisting of the Document and other
distribute it individually under this License, provided you insert a copy
of this License into the extracted document, and follow this License in
all other respects regarding verbatim copying of that document.</para>
- </sect1>
+ </section>
- <sect1 label="7" id="gfdl-7">
+ <section label="7" id="gfdl-7">
<title>AGGREGATION WITH INDEPENDENT WORKS</title>
<para>A compilation of the Document or its derivatives with other
the entire aggregate, the Document's Cover Texts may be placed on covers
that surround only the Document within the aggregate. Otherwise they must
appear on covers around the whole aggregate.</para>
- </sect1>
+ </section>
- <sect1 label="8" id="gfdl-8">
+ <section label="8" id="gfdl-8">
<title>TRANSLATION</title>
<para>Translation is considered a kind of modification, so you may
License. In case of a disagreement between the translation and the
original English version of this License, the original English version
will prevail.</para>
- </sect1>
+ </section>
- <sect1 label="9" id="gfdl-9">
+ <section label="9" id="gfdl-9">
<title>TERMINATION</title>
<para>You may not copy, modify, sublicense, or distribute the Document
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.</para>
- </sect1>
+ </section>
- <sect1 label="10" id="gfdl-10">
+ <section label="10" id="gfdl-10">
<title>FUTURE REVISIONS OF THIS LICENSE</title>
<para>The Free Software Foundation may publish new, revised versions of
Software Foundation. If the Document does not specify a version number of
this License, you may choose any version ever published (not as a draft)
by the Free Software Foundation.</para>
- </sect1>
+ </section>
- <sect1 label="" id="gfdl-howto">
+ <section label="" id="gfdl-howto">
<title>How to use this License for your documents</title>
<para>To use this License in a document you have written, include a copy
recommend releasing these examples in parallel under your choice of free
software license, such as the GNU General Public License, to permit their
use in free software.</para>
- </sect1>
-</appendix>
+ </section>
+</section>
<!-- Keep this comment at the end of the file
Local variables:
<glossdef>
<para>Bugzilla is the world-leading free software bug tracking system.
+ </para>
</glossdef>
</glossentry>
</glossdiv>
</note>
<para>The software packages necessary for the proper running of
- Bugzilla are:
+ Bugzilla (with download links) are:
<orderedlist>
- <listitem>
- <para>MySQL database server and the mysql client (3.22.5 or
- greater)</para>
- </listitem>
+
+
+<listitem>
+ <para>
+ <ulink url="http://www.mysql.com/">MySQL database server</ulink>
+ (3.22.5 or greater)
+ </para>
+</listitem>
+
+<listitem>
+ <para>
+ <ulink url="http://www.perl.org">Perl</ulink>
+ (5.005 or greater, 5.6.1 is recommended if you wish to
+ use Bundle::Bugzilla)
+ </para>
+</listitem>
+
+<listitem>
+ <para>Perl Modules (minimum version):
+ <orderedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.template-toolkit.org">Template</ulink>
+ (v2.07)
+ </para>
+ </listitem>
- <listitem>
- <para>Perl (5.005 or greater, 5.6.1 is recommended if you wish to
- use Bundle::Bugzilla)</para>
- </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/AppConfig/">AppConfig
+ </ulink>
+ (v1.52)
+ </para>
+ </listitem>
- <listitem>
- <para>Perl Modules (minimum version):
- <orderedlist>
- <listitem>
- <para>Template (v2.07)</para>
- </listitem>
-
- <listitem>
- <para>AppConfig (v1.52)</para>
- </listitem>
-
- <listitem>
- <para>Text::Wrap (v2001.0131)</para>
- </listitem>
-
- <listitem>
- <para>File::Spec (v0.8.2)</para>
- </listitem>
-
- <listitem>
- <para>Data::Dumper (any)</para>
- </listitem>
-
- <listitem>
- <para>DBD::mysql (v1.2209)</para>
- </listitem>
-
- <listitem>
- <para>DBI (v1.13)</para>
- </listitem>
-
- <listitem>
- <para>Date::Parse (any)</para>
- </listitem>
-
- <listitem>
- <para>CGI::Carp (any)</para>
- </listitem>
-
- </orderedlist>
- and, optionally:
- <orderedlist>
- <listitem>
- <para>GD (v1.19) for bug charting</para>
- </listitem>
-
- <listitem>
- <para>Chart::Base (v0.99c) for bug charting</para>
- </listitem>
-
- <listitem>
- <para>XML::Parser (any) for the XML interface</para>
- </listitem>
-
- <listitem>
- <para>MIME::Parser (any) for the email interface</para>
- </listitem>
- </orderedlist>
- </para>
- </listitem>
+ <listitem>
+ <para>
+ Text::Wrap
+ (v2001.0131)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://search.cpan.org/search?dist=File-Spec">File::Spec
+ </ulink>
+ (v0.8.2)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/Data/">Data::Dumper
+ </ulink>
+ (any)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/Mysql/">DBD::mysql
+ </ulink>
+ (v1.2209)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/DBI/">DBI</ulink>
+ (v1.13)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/Date/">Date::Parse
+ </ulink>
+ (any)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ CGI::Carp
+ (any)
+ </para>
+ </listitem>
+
+ </orderedlist>
+ and, optionally:
+ <orderedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/GD/">GD</ulink>
+ (v1.19) for bug charting
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.cpan.org/modules/by-module/Chart/">Chart::Base
+ </ulink>
+ (v0.99c) for bug charting
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ XML::Parser
+ (any) for the XML interface
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MIME::Parser
+ (any) for the email interface
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+</listitem>
+
+
+<listitem>
+ <para>
+ The web server of your choice.
+ <ulink url="http://www.apache.org/">Apache</ulink>
+ is highly recommended.
+ </para>
+</listitem>
- <listitem>
- <para>The web server of your choice. Apache is recommended.</para>
- </listitem>
</orderedlist>
All Perl modules can be found on the
Comprehensive Perl Archive Network (CPAN) at http://www.cpan.org. The
CPAN servers have a real tendency to bog down, so please use mirrors.
- The current location at the time of this writing can be found in
- <xref linkend="downloadlinks" />.
</para>
<para>Quality, general Perl module installation instructions can be
<para>The Chart module provides Bugzilla with on-the-fly charting
abilities. It can be installed in the usual fashion after it has been
- fetched from CPAN where it is found as the Chart-x.x... tarball, linked
- in
- <xref linkend="downloadlinks" />.
+ fetched from CPAN.
Note that earlier versions that 0.99c used GIFs, which are no longer
supported by the latest versions of GD.</para>
</section>
for the correct location of your Perl executable (probably
<filename>/usr/bin/perl</filename>).
Otherwise you must hack all the .cgi files to change where they look
- for Perl. This can be done using
- <xref linkend="setperl" />,
- found in
- <xref linkend="patches" />, or the below one-liner.
+ for Perl. This can be done using the following Perl one-liner.
I suggest using the symlink approach for future release
compatibility.
<para>Once you are happy with the settings,
<filename>su</filename> to the user
your web server runs as, and re-run
- <filename>checksetup.pl</filename>.
+ <filename>checksetup.pl</filename>. (Note: on some security-conscious
+ systems, you may need to change the login shell for the webserver
+ account before you can do this.)
On this second run, it will create the database and an administrator
account for which you will be prompted to provide information.</para>
</orderedlist>
</para>
</section>
+ </section>
+
+ <section id="extraconfig">
+ <title>Optional Additional Configuration</title>
<section>
- <title>Optional Additional Configuration</title>
+ <title>Dependency Charts</title>
- <section>
- <title>The Whining Cron</title>
+ <para>As well as the text-based dependency graphs, Bugzilla also
+ supports dependency graphing, using a package called 'dot'.
+ Exactly how this works is controlled by the 'webdotbase' parameter.
+ </para>
- <para>By now you have a fully functional Bugzilla, but what good are
- bugs if they're not annoying? To help make those bugs more annoying you
- can set up Bugzilla's automatic whining system to complain at engineers
- which leave their bugs in the NEW state without triaging them.
- </para>
- <para>
- This can be done by
- adding the following command as a daily crontab entry (for help on that
- see that crontab man page):
- <simplelist>
- <member>
- <computeroutput>
- <command>cd <your-bugzilla-directory> ;
- ./whineatnews.pl</command>
- </computeroutput>
- </member>
- </simplelist>
- </para>
+ <para>(To be written...</para>
+ </section>
- <tip>
- <para>Depending on your system, crontab may have several manpages.
- The following command should lead you to the most useful page for
- this purpose:
- <programlisting>man 5 crontab</programlisting>
- </para>
- </tip>
- </section>
+ <section>
+ <title>Bug Graphs</title>
- <section>
- <title>Bug Graphs</title>
+ <para>As long as you installed the GD and Graph::Base Perl modules you
+ might as well turn on the nifty Bugzilla bug reporting graphs.</para>
- <para>As long as you installed the GD and Graph::Base Perl modules you
- might as well turn on the nifty Bugzilla bug reporting graphs.</para>
+ <para>Add a cron entry like this to run
+ <filename>collectstats.pl</filename>
+ daily at 5 after midnight:
+ <simplelist>
+ <member>
+ <computeroutput>
+ <prompt>bash#</prompt>
- <para>Add a cron entry like this to run
- <filename>collectstats.pl</filename>
- daily at 5 after midnight:
- <simplelist>
- <member>
- <computeroutput>
- <prompt>bash#</prompt>
+ <command>crontab -e</command>
+ </computeroutput>
+ </member>
- <command>crontab -e</command>
- </computeroutput>
- </member>
+ <member>
+ <computeroutput>5 0 * * * cd <your-bugzilla-directory> ;
+ ./collectstats.pl</computeroutput>
+ </member>
+ </simplelist>
+ </para>
- <member>
- <computeroutput>5 0 * * * cd <your-bugzilla-directory> ;
- ./collectstats.pl</computeroutput>
- </member>
- </simplelist>
+ <para>After two days have passed you'll be able to view bug graphs from
+ the Bug Reports page.</para>
+ </section>
+
+ <section>
+ <title>The Whining Cron</title>
+
+ <para>By now you have a fully functional Bugzilla, but what good are
+ bugs if they're not annoying? To help make those bugs more annoying you
+ can set up Bugzilla's automatic whining system to complain at engineers
+ which leave their bugs in the NEW state without triaging them.
+ </para>
+ <para>
+ This can be done by
+ adding the following command as a daily crontab entry (for help on that
+ see that crontab man page):
+ <simplelist>
+ <member>
+ <computeroutput>
+ <command>cd <your-bugzilla-directory> ;
+ ./whineatnews.pl</command>
+ </computeroutput>
+ </member>
+ </simplelist>
+ </para>
+
+ <tip>
+ <para>Depending on your system, crontab may have several manpages.
+ The following command should lead you to the most useful page for
+ this purpose:
+ <programlisting>man 5 crontab</programlisting>
</para>
+ </tip>
+ </section>
- <para>After two days have passed you'll be able to view bug graphs from
- the Bug Reports page.</para>
- </section>
+ <section id="bzldap">
+ <title>LDAP Authentication</title>
+ <para>
+ <warning>
+ <para>This information on using the LDAP
+ authentication options with Bugzilla is old, and the authors do
+ not know of anyone who has tested it. Approach with caution.
+ </para>
+ </warning>
+ </para>
+
+ <para>
+ The existing authentication
+ scheme for Bugzilla uses email addresses as the primary user ID, and a
+ password to authenticate that user. All places within Bugzilla where
+ you need to deal with user ID (e.g assigning a bug) use the email
+ address. The LDAP authentication builds on top of this scheme, rather
+ than replacing it. The initial log in is done with a username and
+ password for the LDAP directory. This then fetches the email address
+ from LDAP and authenticates seamlessly in the standard Bugzilla
+ authentication scheme using this email address. If an account for this
+ address already exists in your Bugzilla system, it will log in to that
+ account. If no account for that email address exists, one is created at
+ the time of login. (In this case, Bugzilla will attempt to use the
+ "displayName" or "cn" attribute to determine the user's full name.)
+ After authentication, all other user-related tasks are still handled by
+ email address, not LDAP username. You still assign bugs by email
+ address, query on users by email address, etc.
+ </para>
+
+ <para>Using LDAP for Bugzilla authentication requires the
+ Mozilla::LDAP (aka PerLDAP) Perl module. The
+ Mozilla::LDAP module in turn requires Netscape's Directory SDK for C.
+ After you have installed the SDK, then install the PerLDAP module.
+ Mozilla::LDAP and the Directory SDK for C are both
+ <ulink url="http://www.mozilla.org/directory/">available for
+ download</ulink> from mozilla.org.
+ </para>
+
+ <para>
+ Set the Param 'useLDAP' to "On" **only** if you will be using an LDAP
+ directory for
+ authentication. Be very careful when setting up this parameter; if you
+ set LDAP authentication, but do not have a valid LDAP directory set up,
+ you will not be able to log back in to Bugzilla once you log out. (If
+ this happens, you can get back in by manually editing the data/params
+ file, and setting useLDAP back to 0.)
+ </para>
+
+ <para>If using LDAP, you must set the
+ three additional parameters: Set LDAPserver to the name (and optionally
+ port) of your LDAP server. If no port is specified, it defaults to the
+ default port of 389. (e.g "ldap.mycompany.com" or
+ "ldap.mycompany.com:1234") Set LDAPBaseDN to the base DN for searching
+ for users in your LDAP directory. (e.g. "ou=People,o=MyCompany") uids
+ must be unique under the DN specified here. Set LDAPmailattribute to
+ the name of the attribute in your LDAP directory which contains the
+ primary email address. On most directory servers available, this is
+ "mail", but you may need to change this.
+ </para>
</section>
</section>
</para>
</tip>
</section>
-
- <section id="bzldap">
- <title>Bugzilla LDAP Integration</title>
-
- <para>What follows is some late-breaking information on using the LDAP
- authentication options with Bugzilla. The author has not tested these
- (nor even formatted this section!) so please contribute feedback to the
- newsgroup.</para>
-
- <literallayout>Mozilla::LDAP module The Mozilla::LDAP module allows you
- to use LDAP for authentication to the Bugzilla system. This module is
- not required if you are not using LDAP. Mozilla::LDAP (aka PerLDAP) is
- available for download from http://www.mozilla.org/directory. NOTE: The
- Mozilla::LDAP module requires Netscape's Directory SDK. Follow the link
- for "Directory SDK for C" on that same page to download the SDK first.
- After you have installed this SDK, then install the PerLDAP module.
- ----------------------------------------------------------------------
- Post-Installation Checklist
- ----------------------------------------------------------------------
- Set useLDAP to "On" **only** if you will be using an LDAP directory for
- authentication. Be very careful when setting up this parameter; if you
- set LDAP authentication, but do not have a valid LDAP directory set up,
- you will not be able to log back in to Bugzilla once you log out. (If
- this happens, you can get back in by manually editing the data/params
- file, and setting useLDAP back to 0.) If using LDAP, you must set the
- three additional parameters: Set LDAPserver to the name (and optionally
- port) of your LDAP server. If no port is specified, it defaults to the
- default port of 389. (e.g "ldap.mycompany.com" or
- "ldap.mycompany.com:1234") Set LDAPBaseDN to the base DN for searching
- for users in your LDAP directory. (e.g. "ou=People,o=MyCompany") uids
- must be unique under the DN specified here. Set LDAPmailattribute to
- the name of the attribute in your LDAP directory which contains the
- primary email address. On most directory servers available, this is
- "mail", but you may need to change this.
- ----------------------------------------------------------------------
- (Not sure where this bit should go, but it's important that it be in
- there somewhere...)
- ----------------------------------------------------------------------
- Using LDAP authentication for Bugzilla: The existing authentication
- scheme for Bugzilla uses email addresses as the primary user ID, and a
- password to authenticate that user. All places within Bugzilla where
- you need to deal with user ID (e.g assigning a bug) use the email
- address. The LDAP authentication builds on top of this scheme, rather
- than replacing it. The initial log in is done with a username and
- password for the LDAP directory. This then fetches the email address
- from LDAP and authenticates seamlessly in the standard Bugzilla
- authentication scheme using this email address. If an account for this
- address already exists in your Bugzilla system, it will log in to that
- account. If no account for that email address exists, one is created at
- the time of login. (In this case, Bugzilla will attempt to use the
- "displayName" or "cn" attribute to determine the user's full name.)
- After authentication, all other user-related tasks are still handled by
- email address, not LDAP username. You still assign bugs by email
- address, query on users by email address, etc.
- ----------------------------------------------------------------------</literallayout>
- </section>
</section>
<section id="osx">
<quote>ISO-8859-1</quote>, above, to
<quote>UTF-8</quote>.</para>
</section>
+ </section>
+
+ <section id="troubleshooting">
+ <title>Troubleshooting</title>
+
+ <para>This section gives solutions to common Bugzilla installation
+ problems.
+ </para>
+
+ <section>
+ <title>DBD::Sponge::db prepare failed</title>
+
+ <para>
+ The following error message may appear due to a bug in DBD::mysql
+ (over which the Bugzilla team have no control):
+ </para>
+
+<programlisting><![CDATA[ "DBD::Sponge::db prepare failed: Cannot determine NUM_OF_FIELDS at D:/Perl/site/lib/DBD/mysql.pm line 248.
+ SV = NULL(0x0) at 0x20fc444
+ REFCNT = 1
+ FLAGS = (PADBUSY,PADMY)"
+]]></programlisting>
+
+ <para>
+ To fix this, go to <path-to-perl>/lib/DBD/sponge.pm in your Perl
+ installation and replace
+ </para>
+
+<programlisting><![CDATA[ my $numFields;
+ if ($attribs->{'NUM_OF_FIELDS'}) {
+ $numFields = $attribs->{'NUM_OF_FIELDS'};
+ } elsif ($attribs->{'NAME'}) {
+ $numFields = @{$attribs->{NAME}};
+]]></programlisting>
+
+ <para>
+ by
+ </para>
+
+<programlisting><![CDATA[ my $numFields;
+ if ($attribs->{'NUM_OF_FIELDS'}) {
+ $numFields = $attribs->{'NUM_OF_FIELDS'};
+ } elsif ($attribs->{'NAMES'}) {
+ $numFields = @{$attribs->{NAMES}};
+]]></programlisting>
+
+ <para>
+ (note the S added to NAME.)
+ </para>
+ </section>
<section id="paranoid-security">
<title>cannot chdir(/var/spool/mqueue)</title>
<quote>paranoid</quote>
security options, it is possible that the checksetup.pl script may fail
with the error:
- <errorname>cannot chdir(/var/spool/mqueue): Permission
- denied</errorname>.
+<programlisting><![CDATA[cannot chdir(/var/spool/mqueue): Permission denied
+]]></programlisting>
</para>
<para>
</command>
as root to fix this problem.
</para>
- </section>
+ </section>
</section>
</chapter>
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
<!-- Keep these tools listings in alphabetical order please. -MPB -->
-<chapter id="integration">
+<section id="integration">
<title>Integrating Bugzilla with Third-Party Tools</title>
<section id="bonsai"
<para>We need Tinderbox integration information.</para>
</section>
-</chapter>
+</section>
<!-- Keep this comment at the end of the file
Local variables:
</section>
- <section id="quicksearch">
- <title>The Quicksearch Utility</title>
-
- <para>Quicksearch is a single-text-box query tool which uses metacharacters
- to indicate what is to be searched. For example, "foo@bar.com" would be
- looked for in email address fields, because it contains an @ and so
- is an email address.
- </para>
-
- <para>Quicksearch consists of two Javascript files,
- "quicksearch.js" and "localconfig.js",
- and two documentation files, "quicksearch.html" and
- "quicksearchhack.html". More information on how to use Quicksearch
- can be found there. You'll find the Quicksearch box on Bugzilla's
- front page.</para>
-
- <para>To take full advantage of the query power, the Bugzilla maintainer
- must edit "localconfig.js" and change the parameters according to the local
- installation.</para>
-
- <para>Currently, keywords must be hard-coded in localconfig.js. If they
- are not, keywords are not automatically recognized. This means, if
- localconfig.js is left unconfigured, that searching for a bug with the
- "foo" keyword will only find bugs with "foo" in the summary, status
- whiteboard, product or component name, but not those with the keyword
- "foo".</para>
-
- <para>Workarounds for Bugzilla users:
- <simplelist>
- <member>search for '!foo' (this will find only bugs with the keyword
- "foo"</member>
-
- <member>search 'foo,!foo' (equivalent to 'foo OR keyword:foo')</member>
- </simplelist>
- </para>
-
- <para>When this tool is ported from client-side JavaScript to server-side
- Perl, the requirement for hard-coding keywords can be fixed.
- <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">This
- bug</ulink>
-
- has details.</para>
- </section>
</appendix>
<!-- Keep this comment at the end of the file
+++ /dev/null
-<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<appendix id="downloadlinks">
- <title>Software Download Links</title>
-
- <para>All of these sites are current as of April, 2001. Hopefully they'll
- stay current for a while.</para>
-
- <para>Apache Web Server:
- <ulink url="http://www.apache.org/">http://www.apache.org</ulink>
-
- Optional web server for Bugzilla, but recommended because of broad user
- base and support.</para>
-
- <para>Bugzilla:
- <ulink url="http://www.bugzilla.org/">
- http://www.bugzilla.org/</ulink>
- </para>
-
- <para>MySQL:
- <ulink url="http://www.mysql.com/">http://www.mysql.com/</ulink>
- </para>
-
- <para>Perl:
- <ulink url="http://www.perl.org">http://www.perl.org/</ulink>
- </para>
-
- <para>CPAN:
- <ulink url="http://www.cpan.org/">http://www.cpan.org/</ulink>
- </para>
-
- <para>DBI Perl module:
- <ulink url="http://www.cpan.org/modules/by-module/DBI/">
- http://www.cpan.org/modules/by-module/DBI/</ulink>
- </para>
-
- <para>Data::Dumper module:
- <ulink url="http://www.cpan.org/modules/by-module/Data/">
- http://www.cpan.org/modules/by-module/Data/</ulink>
- </para>
-
- <para>MySQL related Perl modules:
- <ulink url="http://www.cpan.org/modules/by-module/Mysql/">
- http://www.cpan.org/modules/by-module/Mysql/</ulink>
- </para>
-
- <para>TimeDate Perl module collection:
- <ulink url="http://www.cpan.org/modules/by-module/Date/">
- http://www.cpan.org/modules/by-module/Date/</ulink>
- </para>
-
- <para>GD Perl module:
- <ulink url="http://www.cpan.org/modules/by-module/GD/">
- http://www.cpan.org/modules/by-module/GD/</ulink>
-
- Alternately, you should be able to find the latest version of GD at
- <ulink url="http://www.boutell.com/gd/">http://www.boutell.com/gd/</ulink>
- </para>
-
- <para>Chart::Base module:
- <ulink url="http://www.cpan.org/modules/by-module/Chart/">
- http://www.cpan.org/modules/by-module/Chart/</ulink>
- </para>
-
- <para>(But remember, Bundle::Bugzilla will install all the modules for you.)
- </para>
-</appendix>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
</section>
</section>
- <section id="init4me">
+ <section id="hintsandtips">
+ <title>Hints and Tips</title>
+
+ <para>This section distills some Bugzilla tips and best practices
+ that have been developed.</para>
+
+ <section>
+ <title>Autolinkification</title>
+ <para>Bugzilla comments are plain text - so posting HTML will result
+ in literal HTML tags rather than being interpreted by a browser.
+ However, Bugzilla will automatically make hyperlinks out of certain
+ sorts of text in comments. For example, the text
+ http://www.bugzilla.org will be turned into
+ <ulink url="http://www.bugzilla.org">http://www.bugzilla.org</ulink>.
+ Other strings which get linkified in the obvious manner are:
+ <simplelist>
+ <member>bug 12345</member>
+ <member>bug 23456, comment 53</member>
+ <member>attachment 4321</member>
+ <member>mailto:george@example.com</member>
+ <member>ftp://ftp.mozilla.org</member>
+ <member>Most other sorts of URL</member>
+ </simplelist>
+ </para>
+
+ <para>A corollary here is that if you type a bug number in a comment,
+ you should put the word "bug" before it, so it gets autolinkified
+ for the convenience of others.
+ </para>
+ </section>
+
+ <section id="quicksearch">
+ <title>Quicksearch</title>
+
+ <para>Quicksearch is a single-text-box query tool which uses
+ metacharacters to indicate what is to be searched. For example, typing
+ "foo|bar" into Quicksearch would search for "foo" or "bar" in the
+ summary and status whiteboard of a bug; adding ":BazProduct" would
+ search only in that product.
+ </para>
+
+ <para>You'll find the Quicksearch box on Bugzilla's
+ front page, along with a
+ <ulink url="../../quicksearch.html">Help</ulink>
+ link which details how to use it.</para>
+ </section>
+
+ <section id="commenting">
+ <title>Comments</title>
+
+ <para>If you are changing the fields on a bug, only comment if
+ either you have something pertinent to say, or Bugzilla requires it.
+ Otherwise, you may spam people unnecessarily with bug mail.
+ To take an example: a user sets up their account to filter out messages
+ where someone just adds themselves to the CC field of a bug
+ (which happens a lot.) If you come along, add yourself to the CC field,
+ and add a comment saying "Adding self to CC", then that person
+ gets a pointless piece of mail they would otherwise have avoided.
+ </para>
+
+ <para>
+ Don't use sigs in comments. Signing your name ("Bill") is acceptable,
+ particularly if you do it out of habit, but full mail/news-style
+ four line ASCII art creations are not.
+ </para>
+ </section>
+
+ <section id="attachments">
+ <title>Attachments</title>
+
+ <para>
+ Use attachments, rather than comments, for large chunks of ASCII data,
+ such as trace, debugging output files, or log files. That way, it doesn't
+ bloat the bug for everyone who wants to read it, and cause people to
+ receive fat, useless mails.
+ </para>
+
+ <para>Trim screenshots. There's no need to show the whole screen if
+ you are pointing out a single-pixel problem.
+ </para>
+
+ <para>Don't attach simple test cases (e.g. one html file and one
+ css file and one image) as a ZIP file. Instead, upload them in
+ reverse order and edit the referring file so that they point to the
+ attached files. This way, the test case works immediately
+ out of the bug.
+ </para>
+ </section>
+
+ <section>
+ <title>Filing Bugs</title>
+
+ <para>Try to make sure that everything said in the summary is also
+ said in the first comment. Summaries are often updated and this will
+ ensure your original information is easily accessible.
+ </para>
+
+ <para>
+ You do not need to put "any" or similar strings in the URL field.
+ If there is no specific URL associated with the bug, leave this
+ field blank.
+ </para>
+
+ <para>If you feel a bug you filed was incorrectly marked as a
+ DUPLICATE of another, please question it in your bug, not
+ the bug it was duped to. Feel free to CC the person who duped it
+ if they are not already CCed.
+ </para>
+ </section>
+ </section>
+
+ <section id="userpreferences">
<title>User Preferences</title>
<para>Once you have logged in, you can customise various aspects of
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">-->
-<chapter id="variants" xreflabel="Bugzilla Variants and Competitors">
+<appendix id="variants" xreflabel="Bugzilla Variants and Competitors">
<title>Bugzilla Variants and Competitors</title>
<para>I created this section to answer questions about Bugzilla competitors
http://www.sourceforge.net</ulink>
</para>
</section>
-</chapter>
+</appendix>
<!-- Keep this comment at the end of the file
Local variables: