зеркало из https://github.com/mozilla/gecko-dev.git
12475 строки
272 KiB
HTML
12475 строки
272 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>The Bugzilla Guide</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
|
"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="Bugzilla"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="Guide"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="installation"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="FAQ"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="administration"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="integration"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="MySQL"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="Mozilla"><META
|
|
NAME="KEYWORD"
|
|
CONTENT="webtools"></HEAD
|
|
><BODY
|
|
CLASS="book"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="BOOK"
|
|
><A
|
|
NAME="index"><DIV
|
|
CLASS="TITLEPAGE"
|
|
><H1
|
|
CLASS="title"
|
|
><A
|
|
NAME="AEN2">The Bugzilla Guide</H1
|
|
><H3
|
|
CLASS="author"
|
|
><A
|
|
NAME="AEN5">Matthew P. Barnson</H3
|
|
><H3
|
|
CLASS="author"
|
|
><A
|
|
NAME="AEN9">The Bugzilla Team</H3
|
|
><DIV
|
|
><DIV
|
|
CLASS="abstract"
|
|
><A
|
|
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.
|
|
</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&component=Documentation"
|
|
TARGET="_top"
|
|
>mozilla.org's Bugzilla</A
|
|
>.
|
|
</P
|
|
><P
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><HR></DIV
|
|
><DIV
|
|
CLASS="TOC"
|
|
><DL
|
|
><DT
|
|
><B
|
|
>Table of Contents</B
|
|
></DT
|
|
><DT
|
|
>1. <A
|
|
HREF="#about"
|
|
>About This Guide</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>1.1. <A
|
|
HREF="#copyright"
|
|
>Copyright Information</A
|
|
></DT
|
|
><DT
|
|
>1.2. <A
|
|
HREF="#disclaimer"
|
|
>Disclaimer</A
|
|
></DT
|
|
><DT
|
|
>1.3. <A
|
|
HREF="#newversions"
|
|
>New Versions</A
|
|
></DT
|
|
><DT
|
|
>1.4. <A
|
|
HREF="#credits"
|
|
>Credits</A
|
|
></DT
|
|
><DT
|
|
>1.5. <A
|
|
HREF="#conventions"
|
|
>Document Conventions</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>2. <A
|
|
HREF="#introduction"
|
|
>Introduction</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>2.1. <A
|
|
HREF="#whatis"
|
|
>What is Bugzilla?</A
|
|
></DT
|
|
><DT
|
|
>2.2. <A
|
|
HREF="#why"
|
|
>Why Should We Use Bugzilla?</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>3. <A
|
|
HREF="#using"
|
|
>Using Bugzilla</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>3.1. <A
|
|
HREF="#how"
|
|
>How do I use Bugzilla?</A
|
|
></DT
|
|
><DT
|
|
>3.2. <A
|
|
HREF="#hintsandtips"
|
|
>Hints and Tips</A
|
|
></DT
|
|
><DT
|
|
>3.3. <A
|
|
HREF="#userpreferences"
|
|
>User Preferences</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>4. <A
|
|
HREF="#installation"
|
|
>Installation</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>4.1. <A
|
|
HREF="#stepbystep"
|
|
>Step-by-step Install</A
|
|
></DT
|
|
><DT
|
|
>4.2. <A
|
|
HREF="#extraconfig"
|
|
>Optional Additional Configuration</A
|
|
></DT
|
|
><DT
|
|
>4.3. <A
|
|
HREF="#win32"
|
|
>Win32 Installation Notes</A
|
|
></DT
|
|
><DT
|
|
>4.4. <A
|
|
HREF="#osx"
|
|
>Mac OS X Installation Notes</A
|
|
></DT
|
|
><DT
|
|
>4.5. <A
|
|
HREF="#troubleshooting"
|
|
>Troubleshooting</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>5. <A
|
|
HREF="#administration"
|
|
>Administering Bugzilla</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>5.1. <A
|
|
HREF="#parameters"
|
|
>Bugzilla Configuration</A
|
|
></DT
|
|
><DT
|
|
>5.2. <A
|
|
HREF="#useradmin"
|
|
>User Administration</A
|
|
></DT
|
|
><DT
|
|
>5.3. <A
|
|
HREF="#programadmin"
|
|
>Product, Component, Milestone, and Version Administration</A
|
|
></DT
|
|
><DT
|
|
>5.4. <A
|
|
HREF="#voting"
|
|
>Voting</A
|
|
></DT
|
|
><DT
|
|
>5.5. <A
|
|
HREF="#groups"
|
|
>Groups and Group Security</A
|
|
></DT
|
|
><DT
|
|
>5.6. <A
|
|
HREF="#security"
|
|
>Bugzilla Security</A
|
|
></DT
|
|
><DT
|
|
>5.7. <A
|
|
HREF="#cust-templates"
|
|
>Template Customisation</A
|
|
></DT
|
|
><DT
|
|
>5.8. <A
|
|
HREF="#upgrading"
|
|
>Upgrading to New Releases</A
|
|
></DT
|
|
><DT
|
|
>5.9. <A
|
|
HREF="#integration"
|
|
>Integrating Bugzilla with Third-Party Tools</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>A. <A
|
|
HREF="#faq"
|
|
>The Bugzilla FAQ</A
|
|
></DT
|
|
><DT
|
|
>B. <A
|
|
HREF="#database"
|
|
>The Bugzilla Database</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>B.1. <A
|
|
HREF="#dbschema"
|
|
>Database Schema Chart</A
|
|
></DT
|
|
><DT
|
|
>B.2. <A
|
|
HREF="#dbdoc"
|
|
>MySQL Bugzilla Database Introduction</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>C. <A
|
|
HREF="#patches"
|
|
>Useful Patches and Utilities for Bugzilla</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>C.1. <A
|
|
HREF="#rewrite"
|
|
>Apache
|
|
<TT
|
|
CLASS="filename"
|
|
>mod_rewrite</TT
|
|
>
|
|
|
|
magic</A
|
|
></DT
|
|
><DT
|
|
>C.2. <A
|
|
HREF="#cmdline"
|
|
>Command-line Bugzilla Queries</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>D. <A
|
|
HREF="#variants"
|
|
>Bugzilla Variants and Competitors</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>D.1. <A
|
|
HREF="#rhbugzilla"
|
|
>Red Hat Bugzilla</A
|
|
></DT
|
|
><DT
|
|
>D.2. <A
|
|
HREF="#variant-fenris"
|
|
>Loki Bugzilla (Fenris)</A
|
|
></DT
|
|
><DT
|
|
>D.3. <A
|
|
HREF="#variant-issuezilla"
|
|
>Issuezilla</A
|
|
></DT
|
|
><DT
|
|
>D.4. <A
|
|
HREF="#variant-scarab"
|
|
>Scarab</A
|
|
></DT
|
|
><DT
|
|
>D.5. <A
|
|
HREF="#variant-perforce"
|
|
>Perforce SCM</A
|
|
></DT
|
|
><DT
|
|
>D.6. <A
|
|
HREF="#variant-sourceforge"
|
|
>SourceForge</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
><A
|
|
HREF="#glossary"
|
|
>Glossary</A
|
|
></DT
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="LOT"
|
|
><DL
|
|
CLASS="LOT"
|
|
><DT
|
|
><B
|
|
>List of Examples</B
|
|
></DT
|
|
><DT
|
|
>4-1. <A
|
|
HREF="#AEN989"
|
|
>Installing ActivePerl ppd Modules on Microsoft
|
|
Windows</A
|
|
></DT
|
|
><DT
|
|
>4-2. <A
|
|
HREF="#AEN1002"
|
|
>Installing OpenInteract ppd Modules manually on Microsoft
|
|
Windows</A
|
|
></DT
|
|
><DT
|
|
>4-3. <A
|
|
HREF="#AEN1184"
|
|
>Removing encrypt() for Windows NT Bugzilla version 2.12 or
|
|
earlier</A
|
|
></DT
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="chapter"
|
|
><HR><H1
|
|
><A
|
|
NAME="about">Chapter 1. About This Guide</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="copyright">1.1. Copyright Information</H1
|
|
><A
|
|
NAME="AEN31"><TABLE
|
|
BORDER="0"
|
|
WIDTH="100%"
|
|
CELLSPACING="0"
|
|
CELLPADDING="0"
|
|
CLASS="BLOCKQUOTE"
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
VALIGN="TOP"
|
|
> </TD
|
|
><TD
|
|
WIDTH="80%"
|
|
VALIGN="TOP"
|
|
><P
|
|
> 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 no Invariant Sections, no
|
|
Front-Cover Texts, and with no Back-Cover Texts. A copy of
|
|
the license is included below.
|
|
</P
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
VALIGN="TOP"
|
|
> </TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
COLSPAN="2"
|
|
ALIGN="RIGHT"
|
|
VALIGN="TOP"
|
|
>--<SPAN
|
|
CLASS="attribution"
|
|
>Copyright (c) 2000-2002 Matthew P. Barnson and The Bugzilla Team</SPAN
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
> </TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> If you have any questions regarding this document, its
|
|
copyright, or publishing this document in non-electronic form,
|
|
please contact The Bugzilla Team.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl">1.1.1. GNU Free Documentation License</H2
|
|
><P
|
|
>Version 1.1, March 2000</P
|
|
><A
|
|
NAME="AEN38"><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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"
|
|
><HR><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="AEN128"><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="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="disclaimer">1.2. Disclaimer</H1
|
|
><P
|
|
> No liability for the contents of this document can be accepted.
|
|
Use the concepts, examples, and other content at your own risk.
|
|
This document may contain errors
|
|
and inaccuracies that may damage your system, cause your partner
|
|
to leave you, your boss to fire you, your cats to
|
|
pee on your furniture and clothing, and global thermonuclear
|
|
war. Proceed with caution.
|
|
</P
|
|
><P
|
|
> All copyrights are held by their respective owners, unless
|
|
specifically noted otherwise. Use of a term in this document
|
|
should not be regarded as affecting the validity of any
|
|
trademark or service mark.
|
|
</P
|
|
><P
|
|
> Naming of particular products or brands should not be seen as
|
|
endorsements, with the exception of the term "GNU/Linux". We
|
|
wholeheartedly endorse the use of GNU/Linux in every situation
|
|
where it is appropriate. It is an extremely versatile, stable,
|
|
and robust operating system that offers an ideal operating
|
|
environment for Bugzilla.
|
|
</P
|
|
><P
|
|
> You are strongly recommended to make a backup of your system
|
|
before installing Bugzilla and at regular intervals thereafter.
|
|
If you implement any suggestion in this Guide, implement this one!
|
|
</P
|
|
><P
|
|
> Although the Bugzilla development team has taken great care to
|
|
ensure that all easily-exploitable bugs or options are
|
|
documented or fixed in the code, security holes surely exist.
|
|
Great care should be taken both in the installation and usage of
|
|
this software. Carefully consider the implications of installing
|
|
other network services with Bugzilla. The Bugzilla development
|
|
team members, Netscape Communications, America Online Inc., and
|
|
any affiliated developers or sponsors assume no liability for
|
|
your use of this product. You have the source code to this
|
|
product, and are responsible for auditing it yourself to ensure
|
|
your security needs are met.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="newversions">1.3. New Versions</H1
|
|
><P
|
|
> This is the 2.16 version of The Bugzilla Guide. It is so named
|
|
to match the current version of Bugzilla. If you are
|
|
reading this from any source other than those below, please
|
|
check one of these mirrors to make sure you are reading an
|
|
up-to-date version of the Guide.
|
|
</P
|
|
><P
|
|
> This document can be found in the following places:
|
|
</P
|
|
><P
|
|
> <P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.bugzilla.org/"
|
|
TARGET="_top"
|
|
>bugzilla.org</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.linuxdoc.org/"
|
|
TARGET="_top"
|
|
>The Linux
|
|
Documentation Project</A
|
|
>
|
|
</P
|
|
></LI
|
|
></UL
|
|
>
|
|
</P
|
|
><P
|
|
> The latest version of this document can always be checked out via CVS.
|
|
Please follow the instructions available at
|
|
<A
|
|
HREF="http://www.mozilla.org/cvs.html"
|
|
TARGET="_top"
|
|
>the Mozilla CVS page</A
|
|
>,
|
|
and check out the <TT
|
|
CLASS="filename"
|
|
>mozilla/webtools/bugzilla/docs/</TT
|
|
>
|
|
subtree.
|
|
</P
|
|
><P
|
|
> The Bugzilla Guide is currently only available in English.
|
|
If you would like to volunteer to translate it, please contact
|
|
<A
|
|
HREF="mailto:justdave@syndicomm.com"
|
|
TARGET="_top"
|
|
>Dave Miller</A
|
|
>.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="credits">1.4. Credits</H1
|
|
><P
|
|
> The people listed below have made enormous contributions to the
|
|
creation of this Guide, through their writing, dedicated hacking efforts,
|
|
numerous e-mail and IRC support sessions, and overall excellent
|
|
contribution to the Bugzilla community:
|
|
</P
|
|
><P
|
|
> <A
|
|
HREF="mailto://mbarnson@sisna.com"
|
|
TARGET="_top"
|
|
>Matthew P. Barnson</A
|
|
>
|
|
for the Herculaean task of pulling together the Bugzilla Guide and
|
|
shepherding it to 2.14.
|
|
</P
|
|
><P
|
|
> <A
|
|
HREF="mailto://terry@mozilla.org"
|
|
TARGET="_top"
|
|
>Terry Weissman</A
|
|
>
|
|
for initially writing Bugzilla and creating the
|
|
README upon which the UNIX installation documentation is largely based.
|
|
</P
|
|
><P
|
|
> <A
|
|
HREF="mailto://tara@tequilarista.org"
|
|
TARGET="_top"
|
|
>Tara Hernandez</A
|
|
>
|
|
for keeping Bugzilla development going
|
|
strong after Terry left mozilla.org
|
|
</P
|
|
><P
|
|
> <A
|
|
HREF="mailto://dkl@redhat.com"
|
|
TARGET="_top"
|
|
>Dave Lawrence</A
|
|
>
|
|
for providing insight into the key differences between Red Hat's
|
|
customized Bugzilla, and being largely responsible for the "Red
|
|
Hat Bugzilla" appendix
|
|
</P
|
|
><P
|
|
> <A
|
|
HREF="mailto://endico@mozilla.org"
|
|
TARGET="_top"
|
|
>Dawn Endico</A
|
|
> for
|
|
being a hacker extraordinaire and putting up with my incessant
|
|
questions and arguments on irc.mozilla.org in #mozwebtools
|
|
</P
|
|
><P
|
|
> Last but not least, all the members of the
|
|
<A
|
|
HREF="news://news.mozilla.org/netscape/public/mozilla/webtools"
|
|
TARGET="_top"
|
|
> netscape.public.mozilla.webtools</A
|
|
> newsgroup. Without your discussions, insight, suggestions, and patches, this could never have happened.
|
|
</P
|
|
><P
|
|
> Thanks also go to the following people for significant contributions
|
|
to this documentation (in no particular order):
|
|
</P
|
|
><P
|
|
> Zach Liption, Andrew Pearson, Spencer Smith, Eric Hanson, Kevin Brannen,
|
|
Ron Teitelbaum, Jacob Steenhagen, Joe Robins, Gervase Markham.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="conventions">1.5. Document Conventions</H1
|
|
><P
|
|
>This document uses the following conventions:</P
|
|
><DIV
|
|
CLASS="informaltable"
|
|
><A
|
|
NAME="AEN178"><P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
CLASS="CALSTABLE"
|
|
><THEAD
|
|
><TR
|
|
><TH
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Descriptions</TH
|
|
><TH
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Appearance</TH
|
|
></TR
|
|
></THEAD
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Warnings</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <DIV
|
|
CLASS="caution"
|
|
><P
|
|
></P
|
|
><TABLE
|
|
CLASS="caution"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="25"
|
|
ALIGN="CENTER"
|
|
VALIGN="TOP"
|
|
><IMG
|
|
SRC="../images/caution.gif"
|
|
HSPACE="5"
|
|
ALT="Caution"></TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
><P
|
|
>Don't run with scissors!</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Hint</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <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
|
|
>Would you like a breath mint?</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Notes</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <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
|
|
>Dear John...</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Information requiring special attention</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <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
|
|
>Read this or the cat gets it.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>File Names</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <TT
|
|
CLASS="filename"
|
|
>filename</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Directory Names</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <TT
|
|
CLASS="filename"
|
|
>directory</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Commands to be typed</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <B
|
|
CLASS="command"
|
|
>command</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Applications Names</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <SPAN
|
|
CLASS="application"
|
|
>application</SPAN
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <I
|
|
CLASS="foreignphrase"
|
|
>Prompt</I
|
|
>
|
|
|
|
of users command under bash shell</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>bash$</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <I
|
|
CLASS="foreignphrase"
|
|
>Prompt</I
|
|
>
|
|
|
|
of root users command under bash shell</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>bash#</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <I
|
|
CLASS="foreignphrase"
|
|
>Prompt</I
|
|
>
|
|
|
|
of user command under tcsh shell</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>tcsh$</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Environment Variables</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <TT
|
|
CLASS="envar"
|
|
>VARIABLE</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Emphasized word</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <EM
|
|
>word</EM
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
>Code Example</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
><TT
|
|
CLASS="sgmltag"
|
|
><para></TT
|
|
>
|
|
Beginning and end of paragraph
|
|
<TT
|
|
CLASS="sgmltag"
|
|
></para></TT
|
|
></PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="chapter"
|
|
><HR><H1
|
|
><A
|
|
NAME="introduction">Chapter 2. Introduction</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="whatis">2.1. What is Bugzilla?</H1
|
|
><P
|
|
> Bugzilla is a bug- or issue-tracking system. Bug-tracking
|
|
systems allow individual or groups of developers effectively to keep track
|
|
of outstanding problems with their product.
|
|
Bugzilla was originally
|
|
written by Terry Weissman in a programming language called TCL, to
|
|
replace a rudimentary bug-tracking database used internally by Netscape
|
|
Communications. Terry later ported Bugzilla to Perl from TCL, and in Perl
|
|
it remains to this day. Most commercial defect-tracking software vendors
|
|
at the time charged enormous licensing fees, and Bugzilla quickly became
|
|
a favorite of the open-source crowd (with its genesis in the open-source
|
|
browser project, Mozilla). It is now the de-facto standard
|
|
defect-tracking system against which all others are measured.
|
|
</P
|
|
><P
|
|
>Bugzilla boasts many advanced features. These include:
|
|
<P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>Powerful searching</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>User-configurable email notifications of bug changes</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Full change history</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Inter-bug dependency tracking and graphing</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Excellent attachment management</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Integrated, product-based, granular security schema</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Fully security-audited, and runs under Perl's taint mode</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>A robust, stable RDBMS back-end</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Web, XML, email and console interfaces</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Completely customisable and/or localisable web user
|
|
interface</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Extensive configurability</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Smooth upgrade pathway between versions</P
|
|
></LI
|
|
></UL
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="why">2.2. Why Should We Use Bugzilla?</H1
|
|
><P
|
|
>For many years, defect-tracking software has remained principally
|
|
the domain of large software development houses. Even then, most shops
|
|
never bothered with bug-tracking software, and instead simply relied on
|
|
shared lists and email to monitor the status of defects. This procedure
|
|
is error-prone and tends to cause those bugs judged least significant by
|
|
developers to be dropped or ignored.</P
|
|
><P
|
|
>These days, many companies are finding that integrated
|
|
defect-tracking systems reduce downtime, increase productivity, and raise
|
|
customer satisfaction with their systems. Along with full disclosure, an
|
|
open bug-tracker allows manufacturers to keep in touch with their clients
|
|
and resellers, to communicate about problems effectively throughout the
|
|
data management chain. Many corporations have also discovered that
|
|
defect-tracking helps reduce costs by providing IT support
|
|
accountability, telephone support knowledge bases, and a common,
|
|
well-understood system for accounting for unusual system or software
|
|
issues.</P
|
|
><P
|
|
>But why should
|
|
<EM
|
|
>you</EM
|
|
>
|
|
|
|
use Bugzilla?</P
|
|
><P
|
|
>Bugzilla is very adaptable to various situations. Known uses
|
|
currently include IT support queues, Systems Administration deployment
|
|
management, chip design and development problem tracking (both
|
|
pre-and-post fabrication), and software and hardware bug tracking for
|
|
luminaries such as Redhat, NASA, Linux-Mandrake, and VA Systems.
|
|
Combined with systems such as
|
|
<A
|
|
HREF="http://www.cvshome.org"
|
|
TARGET="_top"
|
|
>CVS</A
|
|
>,
|
|
<A
|
|
HREF="http://www.mozilla.org/bonsai.html"
|
|
TARGET="_top"
|
|
>Bonsai</A
|
|
>, or
|
|
<A
|
|
HREF="http://www.perforce.com"
|
|
TARGET="_top"
|
|
>Perforce SCM</A
|
|
>, Bugzilla
|
|
provides a powerful, easy-to-use solution to configuration management and
|
|
replication problems.</P
|
|
><P
|
|
>Bugzilla can dramatically increase the productivity and
|
|
accountability of individual employees by providing a documented workflow
|
|
and positive feedback for good performance. How many times do you wake up
|
|
in the morning, remembering that you were supposed to do
|
|
<EM
|
|
>something</EM
|
|
>
|
|
today, but you just can't quite remember? Put it in Bugzilla, and you
|
|
have a record of it from which you can extrapolate milestones, predict
|
|
product versions for integration, and follow the discussion trail
|
|
that led to critical decisions.</P
|
|
><P
|
|
>Ultimately, Bugzilla puts the power in your hands to improve your
|
|
value to your employer or business while providing a usable framework for
|
|
your natural attention to detail and knowledge store to flourish.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="chapter"
|
|
><HR><H1
|
|
><A
|
|
NAME="using">Chapter 3. Using Bugzilla</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="how">3.1. How do I use Bugzilla?</H1
|
|
><P
|
|
>This section contains information for end-users of Bugzilla.
|
|
There is a Bugzilla test installation, called
|
|
<A
|
|
HREF="http://landfill.bugzilla.org/"
|
|
TARGET="_top"
|
|
>Landfill</A
|
|
>,
|
|
which you are welcome to play with (if it's up.)
|
|
However, it does not necessarily
|
|
have all Bugzilla features enabled, and often runs cutting-edge versions
|
|
of Bugzilla for testing, so some things may work slightly differently
|
|
than mentioned here.</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="myaccount">3.1.1. Create a Bugzilla Account</H2
|
|
><P
|
|
>If you want to use Bugzilla, first you need to create an account.
|
|
Consult with the administrator responsible for your installation of
|
|
Bugzilla for the URL you should use to access it. If you're
|
|
test-driving Bugzilla, use this URL:
|
|
<A
|
|
HREF="http://landfill.bugzilla.org/bugzilla-tip/"
|
|
TARGET="_top"
|
|
> http://landfill.bugzilla.org/bugzilla-tip/</A
|
|
>
|
|
</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Click the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Open a new Bugzilla account"</SPAN
|
|
>
|
|
|
|
link, enter your email address and, optionally, your name in the
|
|
spaces provided, then click
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Create Account"</SPAN
|
|
>
|
|
|
|
.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Within moments, you should receive an email to the address
|
|
you provided above, which contains your login name (generally the
|
|
same as the email address), and a password you can use to access
|
|
your account. This password is randomly generated, and can be
|
|
changed to something more memorable.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Click the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Log In"</SPAN
|
|
>
|
|
link in the yellow area at the bottom of the page in your browser,
|
|
enter your email address and password into the spaces provided, and
|
|
click
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Login"</SPAN
|
|
>.
|
|
</P
|
|
></LI
|
|
></OL
|
|
><P
|
|
>You are now logged in. Bugzilla uses cookies for authentication
|
|
so, unless your IP address changes, you should not have to log in
|
|
again.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="bug_page">3.1.2. Anatomy of a Bug</H2
|
|
><P
|
|
>The core of Bugzilla is the screen which displays a particular
|
|
bug. It's a good place to explain some Bugzilla concepts.
|
|
<A
|
|
HREF="http://landfill.bugzilla.org/bugzilla-tip/show_bug.cgi?id=1"
|
|
TARGET="_top"
|
|
> Bug 1 on Landfill</A
|
|
>
|
|
|
|
is a good example. Note that the labels for most fields are hyperlinks;
|
|
clicking them will take you to context-sensitive help on that
|
|
particular field. Fields marked * may not be present on every
|
|
installation of Bugzilla.</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Product and Component</EM
|
|
>:
|
|
Bugs are divided up by Product and Component, with a Product
|
|
having one or more Components in it. For example,
|
|
bugzilla.mozilla.org's "Bugzilla" Product is composed of several
|
|
Components:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Administration:</EM
|
|
>
|
|
Administration of a Bugzilla installation.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Bugzilla-General:</EM
|
|
>
|
|
Anything that doesn't fit in the other components, or spans
|
|
multiple components.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Creating/Changing Bugs:</EM
|
|
>
|
|
Creating, changing, and viewing bugs.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Documentation:</EM
|
|
>
|
|
The Bugzilla documentation, including The Bugzilla Guide.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Email:</EM
|
|
>
|
|
Anything to do with email sent by Bugzilla.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Installation:</EM
|
|
>
|
|
The installation process of Bugzilla.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Query/Buglist:</EM
|
|
>
|
|
Anything to do with searching for bugs and viewing the
|
|
buglists.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Reporting/Charting:</EM
|
|
>
|
|
Getting reports from Bugzilla.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>User Accounts:</EM
|
|
>
|
|
Anything about managing a user account from the user's perspective.
|
|
Saved queries, creating accounts, changing passwords, logging in,
|
|
etc.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>User Interface:</EM
|
|
>
|
|
General issues having to do with the user interface cosmetics (not
|
|
functionality) including cosmetic issues, HTML templates,
|
|
etc.</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Status and Resolution:</EM
|
|
>
|
|
|
|
These define exactly what state the bug is in - from not even
|
|
being confirmed as a bug, through to being fixed and the fix
|
|
confirmed by Quality Assurance. The different possible values for
|
|
Status and Resolution on your installation should be documented in the
|
|
context-sensitive help for those items.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Assigned To:</EM
|
|
>
|
|
The person responsible for fixing the bug.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>*URL:</EM
|
|
>
|
|
A URL associated with the bug, if any.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Summary:</EM
|
|
>
|
|
A one-sentence summary of the problem.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>*Status Whiteboard:</EM
|
|
>
|
|
(a.k.a. Whiteboard) A free-form text area for adding short notes
|
|
and tags to a bug.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>*Keywords:</EM
|
|
>
|
|
The administrator can define keywords which you can use to tag and
|
|
categorise bugs - e.g. The Mozilla Project has keywords like crash
|
|
and regression.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Platform and OS:</EM
|
|
>
|
|
These indicate the computing environment where the bug was
|
|
found.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Version:</EM
|
|
>
|
|
The "Version" field is usually used for versions of a product which
|
|
have been released, and is set to indicate which versions of a
|
|
Component have the particular problem the bug report is
|
|
about.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Priority:</EM
|
|
>
|
|
The bug assignee uses this field to prioritise his or her bugs.
|
|
It's a good idea not to change this on other people's bugs.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Severity:</EM
|
|
>
|
|
This indicates how severe the problem is - from blocker
|
|
("application unusable") to trivial ("minor cosmetic issue"). You
|
|
can also use this field to indicate whether a bug is an enhancement
|
|
request.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>*Target:</EM
|
|
>
|
|
(a.k.a. Target Milestone) A future version by which the bug is to
|
|
be fixed. e.g. The Bugzilla Project's milestones for future
|
|
Bugzilla versions are 2.18, 2.20, 3.0, etc. Milestones are not
|
|
restricted to numbers, thought - you can use any text strings, such
|
|
as dates.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Reporter:</EM
|
|
>
|
|
The person who filed the bug.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>CC list:</EM
|
|
>
|
|
A list of people who get mail when the bug changes.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Attachments:</EM
|
|
>
|
|
You can attach files (e.g. testcases or patches) to bugs. If there
|
|
are any attachments, they are listed in this section.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>*Dependencies:</EM
|
|
>
|
|
If this bug cannot be fixed unless other bugs are fixed (depends
|
|
on), or this bug stops other bugs being fixed (blocks), their
|
|
numbers are recorded here.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>*Votes:</EM
|
|
>
|
|
Whether this bug has any votes.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Additional Comments:</EM
|
|
>
|
|
You can add your two cents to the bug discussion here, if you have
|
|
something worthwhile to say.</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="query">3.1.3. Searching for Bugs</H2
|
|
><P
|
|
>The Bugzilla Search page is is the interface where you can find
|
|
any bug report, comment, or patch currently in the Bugzilla system. You
|
|
can play with it here:
|
|
<A
|
|
HREF="http://landfill.bugzilla.org/bugzilla-tip/query.cgi"
|
|
TARGET="_top"
|
|
> landfill.bugzilla.org/bugzilla-tip/query.cgi</A
|
|
>
|
|
|
|
.</P
|
|
><P
|
|
>The Search page has controls for selecting different possible
|
|
values for all of the fields in a bug, as described above. Once you've
|
|
defined a search, you can either run it, or save it as a Remembered
|
|
Query, which can optionally appear in the footer of your pages.</P
|
|
><P
|
|
>Highly advanced querying is done using Boolean Charts, which have
|
|
their own
|
|
<A
|
|
HREF="http://landfill.bugzilla.org/bugzilla-tip/booleanchart.html"
|
|
TARGET="_top"
|
|
> context-sensitive help</A
|
|
>
|
|
|
|
.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="list">3.1.4. Bug Lists</H2
|
|
><P
|
|
>If you run a search, a list of matching bugs will be returned.
|
|
The default search is to return all open bugs on the system - don't try
|
|
running this search on a Bugzilla installation with a lot of
|
|
bugs!</P
|
|
><P
|
|
>The format of the list is configurable. For example, it can be
|
|
sorted by clicking the column headings. Other useful features can be
|
|
accessed using the links at the bottom of the list:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Long Format:</EM
|
|
>
|
|
|
|
this gives you a large page with a non-editable summary of the fields
|
|
of each bug.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Change Columns:</EM
|
|
>
|
|
|
|
change the bug attributes which appear in the list.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Change several bugs at once:</EM
|
|
>
|
|
|
|
If your account is sufficiently empowered, you can make the same
|
|
change to all the bugs in the list - for example, changing their
|
|
owner.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Send mail to bug owners:</EM
|
|
>
|
|
|
|
Sends mail to the owners of all bugs on the list.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <EM
|
|
>Edit this query:</EM
|
|
>
|
|
|
|
If you didn't get exactly the results you were looking for, you can
|
|
return to the Query page through this link and make small revisions
|
|
to the query you just made so you get more accurate results.</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="bugreports">3.1.5. Filing Bugs</H2
|
|
><P
|
|
>Years of bug writing experience has been distilled for your
|
|
reading pleasure into the
|
|
<A
|
|
HREF="http://landfill.bugzilla.org/bugzilla-tip/bugwritinghelp.html"
|
|
TARGET="_top"
|
|
> Bug Writing Guidelines</A
|
|
>.
|
|
While some of the advice is Mozilla-specific, the basic principles of
|
|
reporting Reproducible, Specific bugs, isolating the Product you are
|
|
using, the Version of the Product, the Component which failed, the
|
|
Hardware Platform, and Operating System you were using at the time of
|
|
the failure go a long way toward ensuring accurate, responsible fixes
|
|
for the bug that bit you.</P
|
|
><P
|
|
>The procedure for filing a test bug is as follows:</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Go to
|
|
<A
|
|
HREF="http://landfill.bugzilla.org/bugzilla-tip/"
|
|
TARGET="_top"
|
|
> Landfill</A
|
|
>
|
|
in your browser and click
|
|
<A
|
|
HREF="http://landfill.bugzilla.org/bugzilla-tip/enter_bug.cgi"
|
|
TARGET="_top"
|
|
> Enter a new bug report</A
|
|
>.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Select a product - any one will do.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Fill in the fields. Bugzilla should have made reasonable
|
|
guesses, based upon your browser, for the "Platform" and "OS"
|
|
drop-down boxes. If they are wrong, change them.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Select "Commit" and send in your bug report.</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="hintsandtips">3.2. Hints and Tips</H1
|
|
><P
|
|
>This section distills some Bugzilla tips and best practices
|
|
that have been developed.</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN434">3.2.1. Autolinkification</H2
|
|
><P
|
|
>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
|
|
<A
|
|
HREF="http://www.bugzilla.org"
|
|
TARGET="_top"
|
|
>http://www.bugzilla.org</A
|
|
>.
|
|
Other strings which get linkified in the obvious manner are:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
>bug 12345</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>bug 23456, comment 53</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>attachment 4321</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>mailto:george@example.com</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>george@example.com</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>ftp://ftp.mozilla.org</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Most other sorts of URL</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
><P
|
|
>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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="quicksearch">3.2.2. Quicksearch</H2
|
|
><P
|
|
>Quicksearch is a single-text-box query tool which uses
|
|
metacharacters to indicate what is to be searched. For example, typing
|
|
"<TT
|
|
CLASS="filename"
|
|
>foo|bar</TT
|
|
>"
|
|
into Quicksearch would search for "foo" or "bar" in the
|
|
summary and status whiteboard of a bug; adding
|
|
"<TT
|
|
CLASS="filename"
|
|
>:BazProduct</TT
|
|
>" would
|
|
search only in that product.
|
|
</P
|
|
><P
|
|
>You'll find the Quicksearch box on Bugzilla's
|
|
front page, along with a
|
|
<A
|
|
HREF="../../quicksearch.html"
|
|
TARGET="_top"
|
|
>Help</A
|
|
>
|
|
link which details how to use it.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="commenting">3.2.3. Comments</H2
|
|
><P
|
|
>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 can set 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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="attachments">3.2.4. Attachments</H2
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
>Trim screenshots. There's no need to show the whole screen if
|
|
you are pointing out a single-pixel problem.
|
|
</P
|
|
><P
|
|
>Don't attach simple test cases (e.g. one HTML file, one
|
|
CSS file and an 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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN463">3.2.5. Filing Bugs</H2
|
|
><P
|
|
>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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
>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.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="userpreferences">3.3. User Preferences</H1
|
|
><P
|
|
>Once you have logged in, you can customise various aspects of
|
|
Bugzilla via the "Edit prefs" link in the page footer.
|
|
The preferences are split into four tabs:</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="accountsettings">3.3.1. Account Settings</H2
|
|
><P
|
|
>On this tab, you can change your basic account information,
|
|
including your password, email address and real name. For security
|
|
reasons, in order to change anything on this page you must type your
|
|
<EM
|
|
>current</EM
|
|
>
|
|
password into the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Password"</SPAN
|
|
>
|
|
field at the top of the page.
|
|
If you attempt to change your email address, a confirmation
|
|
email is sent to both the old and new addresses, with a link to use to
|
|
confirm the change. This helps to prevent account hijacking.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="emailsettings">3.3.2. Email Settings</H2
|
|
><P
|
|
>On this tab you can reduce or increase the amount of email sent
|
|
you from Bugzilla, opting in our out depending on your relationship to
|
|
the bug and the change that was made to it. (Note that you can also do
|
|
client-side filtering using the X-Bugzilla-Reason header which Bugzilla
|
|
adds to all bugmail.)</P
|
|
><P
|
|
>By entering user email names, delineated by commas, into the
|
|
"Users to watch" text entry box you can receive a copy of all the
|
|
bugmail of other users (security settings permitting.) This powerful
|
|
functionality enables seamless transitions as developers change
|
|
projects or users go on holiday.</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
|
|
>The ability to watch other users may not be available in all
|
|
Bugzilla installations. If you can't see it, ask your
|
|
administrator.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="footersettings">3.3.3. Page Footer</H2
|
|
><P
|
|
>On the Search page, you can store queries in Bugzilla, so if you
|
|
regularly run a particular query it is just a drop-down menu away.
|
|
Once you have a stored query, you can come
|
|
here to request that it also be displayed in your page footer.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="permissionsettings">3.3.4. Permissions</H2
|
|
><P
|
|
>This is a purely informative page which outlines your current
|
|
permissions on this installation of Bugzilla - what product groups you
|
|
are in, and whether you can edit bugs or perform various administration
|
|
functions.</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="chapter"
|
|
><HR><H1
|
|
><A
|
|
NAME="installation">Chapter 4. Installation</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="stepbystep">4.1. Step-by-step Install</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN492">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
|
|
have got it working fine.
|
|
Please see the
|
|
<A
|
|
HREF="#win32"
|
|
>Win32 Installation Notes</A
|
|
>
|
|
for further advice on getting Bugzilla to work on Microsoft
|
|
Windows.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN496">4.1.2. Package List</H2
|
|
><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
|
|
> If you are running the very most recent
|
|
version of Perl and MySQL (both the executables and development
|
|
libraries) on your system, you can skip these manual installation
|
|
steps for the Perl modules by using Bundle::Bugzilla; see
|
|
<A
|
|
HREF="#bundlebugzilla"
|
|
>Using Bundle::Bugzilla instead of manually installing Perl modules</A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>The software packages necessary for the proper running of
|
|
Bugzilla (with download links) are:
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.mysql.com/"
|
|
TARGET="_top"
|
|
>MySQL database server</A
|
|
>
|
|
(3.22.5 or greater)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><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
|
|
><OL
|
|
TYPE="a"
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.template-toolkit.org"
|
|
TARGET="_top"
|
|
>Template</A
|
|
>
|
|
(v2.07)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.cpan.org/modules/by-module/AppConfig/"
|
|
TARGET="_top"
|
|
>AppConfig
|
|
</A
|
|
>
|
|
(v1.52)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.cpan.org/authors/id/MUIR/modules/Text-Tabs%2BWrap-2001.0131.tar.gz"
|
|
TARGET="_top"
|
|
>Text::Wrap</A
|
|
>
|
|
(v2001.0131)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://search.cpan.org/search?dist=File-Spec"
|
|
TARGET="_top"
|
|
>File::Spec
|
|
</A
|
|
>
|
|
(v0.8.2)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.cpan.org/modules/by-module/Data/"
|
|
TARGET="_top"
|
|
>Data::Dumper
|
|
</A
|
|
>
|
|
(any)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.cpan.org/modules/by-module/Mysql/"
|
|
TARGET="_top"
|
|
>DBD::mysql
|
|
</A
|
|
>
|
|
(v1.2209)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.cpan.org/modules/by-module/DBI/"
|
|
TARGET="_top"
|
|
>DBI</A
|
|
>
|
|
(v1.13)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><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
|
|
></LI
|
|
></OL
|
|
>
|
|
and, optionally:
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="a"
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.cpan.org/modules/by-module/GD/"
|
|
TARGET="_top"
|
|
>GD</A
|
|
>
|
|
(v1.19) for bug charting
|
|
</P
|
|
></LI
|
|
><LI
|
|
><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
|
|
></LI
|
|
><LI
|
|
><P
|
|
> MIME::Parser
|
|
(any) for the email interface
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> The web server of your choice.
|
|
<A
|
|
HREF="http://www.apache.org/"
|
|
TARGET="_top"
|
|
>Apache</A
|
|
>
|
|
is highly recommended.
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
|
|
<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
|
|
>It is a good idea, while installing Bugzilla, to ensure that there
|
|
is some kind of firewall between you and the rest of the Internet,
|
|
because your machine may be insecure for periods during the install.
|
|
Many
|
|
installation steps require an active Internet connection to complete,
|
|
but you must take care to ensure that at no point is your machine
|
|
vulnerable to an attack.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
|
|
<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
|
|
>Linux-Mandrake 8.0 includes every
|
|
required and optional library for Bugzilla. The easiest way to
|
|
install them is by using the
|
|
<TT
|
|
CLASS="filename"
|
|
>urpmi</TT
|
|
>
|
|
|
|
utility. If you follow these commands, you should have everything you
|
|
need for Bugzilla, and
|
|
<TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
>
|
|
|
|
should not complain about any missing libraries. You may already have
|
|
some of these installed.</P
|
|
><P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>urpmi perl-mysql</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>urpmi perl-chart</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>urpmi perl-gd</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>urpmi perl-MailTools</B
|
|
>
|
|
|
|
(for Bugzilla email integration)</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>urpmi apache-modules</B
|
|
>
|
|
</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-mysql">4.1.3. MySQL</H2
|
|
><P
|
|
>Visit the MySQL homepage at
|
|
<A
|
|
HREF="http://www.mysql.com"
|
|
TARGET="_top"
|
|
>www.mysql.com</A
|
|
>
|
|
to grab and install the latest stable release of the server.
|
|
</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
|
|
> Many of the binary
|
|
versions of MySQL store their data files in
|
|
<TT
|
|
CLASS="filename"
|
|
>/var</TT
|
|
>.
|
|
On some Unix systems, this is part of a smaller root partition,
|
|
and may not have room for your bug database. You can set the data
|
|
directory as an option to <TT
|
|
CLASS="filename"
|
|
>configure</TT
|
|
>
|
|
if you build MySQL from source yourself.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>If you install from something other than an RPM or Debian
|
|
package, you will need to add <TT
|
|
CLASS="filename"
|
|
>mysqld</TT
|
|
>
|
|
to your init scripts so the server daemon will come back up whenever
|
|
your machine reboots. Further discussion of UNIX init sequences are
|
|
beyond the scope of this guide.
|
|
</P
|
|
><P
|
|
>Change your init script to start
|
|
<TT
|
|
CLASS="filename"
|
|
>mysqld</TT
|
|
>
|
|
with the ability to accept large packets. By default,
|
|
<TT
|
|
CLASS="filename"
|
|
>mysqld</TT
|
|
>
|
|
only accepts packets up to 64K long. This limits the size of
|
|
attachments you may put on bugs. If you add
|
|
<TT
|
|
CLASS="option"
|
|
>-O max_allowed_packet=1M</TT
|
|
>
|
|
to the command that starts
|
|
<TT
|
|
CLASS="filename"
|
|
>mysqld</TT
|
|
>
|
|
(or <TT
|
|
CLASS="filename"
|
|
>safe_mysqld</TT
|
|
>),
|
|
then you will be able to have attachments up to about 1 megabyte.
|
|
There is a Bugzilla parameter for maximum attachment size;
|
|
you should configure it to match the value you choose here.</P
|
|
><P
|
|
>If you plan on running Bugzilla and MySQL on the same machine,
|
|
consider using the
|
|
<TT
|
|
CLASS="option"
|
|
>--skip-networking</TT
|
|
>
|
|
option in the init script. This enhances security by preventing
|
|
network access to MySQL.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-perl">4.1.4. Perl</H2
|
|
><P
|
|
>Any machine that doesn't have Perl on it is a sad machine indeed.
|
|
Perl can be got in source form from
|
|
<A
|
|
HREF="http://www.perl.com"
|
|
TARGET="_top"
|
|
>perl.com</A
|
|
> for the rare
|
|
*nix systems which don't have it.
|
|
Although Bugzilla runs with all post-5.005
|
|
versions of Perl, it's a good idea to be up to the very latest version
|
|
if you can when running Bugzilla. As of this writing, that is Perl
|
|
version 5.6.1.</P
|
|
><DIV
|
|
CLASS="tip"
|
|
><A
|
|
NAME="bundlebugzilla"><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 can skip the following Perl module installation steps by
|
|
installing
|
|
<SPAN
|
|
CLASS="productname"
|
|
>Bundle::Bugzilla</SPAN
|
|
>
|
|
|
|
from
|
|
<A
|
|
HREF="#gloss-cpan"
|
|
><I
|
|
CLASS="glossterm"
|
|
>CPAN</I
|
|
></A
|
|
>,
|
|
which installs all required modules for you.</P
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>perl -MCPAN -e 'install "Bundle::Bugzilla"'</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
><P
|
|
>Bundle::Bugzilla doesn't include GD, Chart::Base, or
|
|
MIME::Parser, which are not essential to a basic Bugzilla install. If
|
|
installing this bundle fails, you should install each module
|
|
individually to isolate the problem.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="perl-modules">4.1.5. Perl Modules</H2
|
|
><P
|
|
>
|
|
All Perl modules can be found on the
|
|
<A
|
|
HREF="http://www.cpan.org"
|
|
TARGET="_top"
|
|
>Comprehensive Perl
|
|
Archive Network</A
|
|
> (CPAN). The
|
|
CPAN servers have a real tendency to bog down, so please use mirrors.
|
|
</P
|
|
><P
|
|
>Quality, general Perl module installation instructions can be
|
|
found on the CPAN website, but the easy thing to do is to just use the
|
|
CPAN shell which does all the hard work for you.
|
|
To use the CPAN shell to install a module:
|
|
</P
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
<B
|
|
CLASS="command"
|
|
>perl -MCPAN -e 'install "<modulename>"'</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
><P
|
|
> To do it the hard way:
|
|
</P
|
|
><P
|
|
>Untar the module tarball -- it should create its own
|
|
directory</P
|
|
><P
|
|
>CD to the directory just created, and enter the following
|
|
commands:
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>perl Makefile.PL</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>make</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>make test</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>make install</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</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
|
|
>Many people complain that Perl modules will not install for
|
|
them. Most times, the error messages complain that they are missing a
|
|
file in
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"@INC"</SPAN
|
|
>.
|
|
Virtually every time, this error is due to permissions being set too
|
|
restrictively for you to compile Perl modules or not having the
|
|
necessary Perl development libraries installed on your system.
|
|
Consult your local UNIX systems administrator for help solving these
|
|
permissions issues; if you
|
|
<EM
|
|
>are</EM
|
|
>
|
|
the local UNIX sysadmin, please consult the newsgroup/mailing list
|
|
for further assistance or hire someone to help you out.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN642">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
|
|
correctly the DBI module should be a breeze. It's a mixed Perl/C
|
|
module, but Perl's MakeMaker system simplifies the C compilation
|
|
greatly.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN645">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
|
|
sub-releases of Perl 5.004, but a re-installation just to be sure it's
|
|
available won't hurt anything.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN648">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
|
|
Msql-Mysql-modules package.</P
|
|
><P
|
|
>The MakeMaker process will ask you a few questions about the
|
|
desired compilation target and your MySQL installation. For most of the
|
|
questions the provided default will be adequate, but when asked if your
|
|
desired target is the MySQL or mSQL packages, you should
|
|
select the MySQL related ones. Later you will be asked if you wish to
|
|
provide backwards compatibility with the older MySQL packages; you
|
|
should answer YES to this question. The default is NO.</P
|
|
><P
|
|
>A host of 'localhost' should be fine and a testing user of 'test'
|
|
with a null password should find itself with sufficient access to run
|
|
tests on the 'test' database which MySQL created upon installation.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN653">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.
|
|
This bundle is stored on the CPAN under the name TimeDate.
|
|
The component module we're most interested in is the Date::Format
|
|
module, but installing all of them is probably a good idea anyway.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN656">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
|
|
defacto standard for programatic image construction. The Perl bindings
|
|
to it found in the GD library are used on millions of web pages to
|
|
generate graphs on the fly. That's what Bugzilla will be using it for
|
|
so you must install it if you want any of the graphing to work.</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
|
|
>The Perl GD library requires some other libraries that may or
|
|
may not be installed on your system, including
|
|
<TT
|
|
CLASS="classname"
|
|
>libpng</TT
|
|
>
|
|
and
|
|
<TT
|
|
CLASS="classname"
|
|
>libgd</TT
|
|
>.
|
|
The full requirements are listed in the Perl GD library README.
|
|
If compiling GD fails, it's probably because you're
|
|
missing a required library.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN663">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.
|
|
Note that earlier versions that 0.99c used GIFs, which are no longer
|
|
supported by the latest versions of GD.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN666">4.1.5.7. Template Toolkit</H3
|
|
><P
|
|
>When you install Template Toolkit, you'll get asked various
|
|
questions about features to enable. The defaults are fine, except
|
|
that it is recommended you use the high speed XS Stash of the Template
|
|
Toolkit, in order to achieve best performance. However, there are
|
|
known problems with XS Stash and Perl 5.005_02 and lower. If you
|
|
wish to use these older versions of Perl, please use the regular
|
|
stash.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN669">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
|
|
different machine than MySQL, but need to adjust the MySQL
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>
|
|
user permissions accordingly.
|
|
<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
|
|
>We strongly recommend Apache as the web server to use. The
|
|
Bugzilla Guide installation instructions, in general, assume you are
|
|
using Apache. If you have got Bugzilla working using another webserver,
|
|
please share your experiences with us.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
><P
|
|
>You'll want to make sure that your web server will run any file
|
|
with the .cgi extension as a CGI and not just display it. If you're
|
|
using Apache that means uncommenting the following line in the httpd.conf
|
|
file:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>AddHandler cgi-script .cgi</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
>With Apache you'll also want to make sure that within the
|
|
httpd.conf file the line:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>Options ExecCGI AllowOverride Limit</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
is in the stanza that covers the directories into which you intend to
|
|
put the bugzilla .html and .cgi files.
|
|
|
|
<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
|
|
>AllowOverride Limit allows the use of a Deny statement in the
|
|
.htaccess file generated by checksetup.pl</P
|
|
><P
|
|
>Users of older versions of Apache may find the above lines
|
|
in the srm.conf and access.conf files, respecitvely.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</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
|
|
>There are important files and directories that should not be a
|
|
served by the HTTP server - most files in the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"data"</SPAN
|
|
>
|
|
and
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"shadow"</SPAN
|
|
>
|
|
directories and the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"localconfig"</SPAN
|
|
>
|
|
file. You should configure your HTTP server to not serve
|
|
these files. Failure to do so will expose critical passwords and
|
|
other data. Please see
|
|
<A
|
|
HREF="#htaccess"
|
|
>.htaccess files and security</A
|
|
>
|
|
for details on how to do this for Apache; the checksetup.pl
|
|
script should create appropriate .htaccess files for you.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN688">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
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"nobody"</SPAN
|
|
>).
|
|
You may decide to put the files in the main web space for your
|
|
web server or perhaps in
|
|
<TT
|
|
CLASS="filename"
|
|
>/usr/local</TT
|
|
>
|
|
with a symbolic link in the web space that points to the Bugzilla
|
|
directory.</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
|
|
>If you symlink the bugzilla directory into your Apache's HTML
|
|
heirarchy, you may receive
|
|
<SPAN
|
|
CLASS="errorname"
|
|
>Forbidden</SPAN
|
|
>
|
|
errors unless you add the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"FollowSymLinks"</SPAN
|
|
>
|
|
directive to the <Directory> entry for the HTML root
|
|
in httpd.conf.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>Once all the files are in a web accessible directory, make that
|
|
directory writable by your webserver's user. This is a temporary step
|
|
until you run the post-install
|
|
<TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
>
|
|
script, which locks down your installation.</P
|
|
><P
|
|
>Lastly, you'll need to set up a symbolic link to
|
|
<TT
|
|
CLASS="filename"
|
|
>/usr/bonsaitools/bin/perl</TT
|
|
>
|
|
for the correct location of your Perl executable (probably
|
|
<TT
|
|
CLASS="filename"
|
|
>/usr/bin/perl</TT
|
|
>).
|
|
Otherwise you must hack all the .cgi files to change where they look
|
|
for Perl. This can be done using the following Perl one-liner, but
|
|
I suggest using the symlink approach to avoid upgrade hassles.
|
|
</P
|
|
><P
|
|
>
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>perl -pi -e
|
|
's@#\!/usr/bonsaitools/bin/perl@#\!/usr/bin/perl@' *cgi *pl Bug.pm
|
|
processmail syncshadowdb</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Change <TT
|
|
CLASS="filename"
|
|
>/usr/bin/perl</TT
|
|
> to match the location
|
|
of Perl on your machine.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN705">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
|
|
a high quality bug tracker.</P
|
|
><P
|
|
>First, you'll want to fix MySQL permissions to allow access from
|
|
Bugzilla. For the purpose of this Installation section, the Bugzilla
|
|
username will be
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>, and will have minimal permissions.
|
|
</P
|
|
><P
|
|
>Begin by giving the MySQL root user a password. MySQL passwords are limited
|
|
to 16 characters.
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>mysql -u root mysql</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>UPDATE user SET Password=PASSWORD('<new_password'>)
|
|
WHERE user='root';</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>FLUSH PRIVILEGES;</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
|
|
From this point on, if you need to access MySQL as the MySQL root user,
|
|
you will need to use
|
|
<B
|
|
CLASS="command"
|
|
>mysql -u root -p</B
|
|
>
|
|
|
|
and enter <new_password>. Remember that MySQL user names have
|
|
nothing to do with Unix user names (login names).</P
|
|
><P
|
|
>Next, we use an SQL <B
|
|
CLASS="command"
|
|
>GRANT</B
|
|
> command to create a
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>
|
|
|
|
user, and grant sufficient permissions for checksetup.pl, which we'll
|
|
use later, to work its magic. This also restricts the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>
|
|
user to operations within a database called
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>, and only allows the account to connect from
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"localhost"</SPAN
|
|
>.
|
|
Modify it to reflect your setup if you will be connecting from
|
|
another machine or as a different user.</P
|
|
><P
|
|
>Remember to set <bugs_password> to some unique password.
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,
|
|
ALTER,CREATE,DROP,REFERENCES ON bugs.* TO bugs@localhost
|
|
IDENTIFIED BY '<bugs_password>';</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>FLUSH PRIVILEGES;</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN741">4.1.9. <TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
></H2
|
|
><P
|
|
>Next, run the magic checksetup.pl script. (Many thanks to
|
|
<A
|
|
HREF="mailto:holgerschurig@nikocity.de"
|
|
TARGET="_top"
|
|
>Holger Schurig </A
|
|
>
|
|
for writing this script!)
|
|
This script is designed to make sure your MySQL database and other
|
|
configuration options are consistent with the Bugzilla CGI files.
|
|
It will make sure Bugzilla files and directories have reasonable
|
|
permissions, set up the
|
|
<TT
|
|
CLASS="filename"
|
|
>data</TT
|
|
>
|
|
directory, and create all the MySQL tables.
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>./checksetup.pl</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
|
|
The first time you run it, it will create a file called
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
>.</P
|
|
><P
|
|
>This file contains a variety of settings you may need to tweak
|
|
including how Bugzilla should connect to the MySQL database.</P
|
|
><P
|
|
>The connection settings include:
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>server's host: just use
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"localhost"</SPAN
|
|
>
|
|
if the MySQL server is local</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>database name:
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>
|
|
if you're following these directions</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>MySQL username:
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>
|
|
if you're following these directions</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Password for the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>
|
|
MySQL account; (<bugs_password>) above</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</P
|
|
><P
|
|
>Once you are happy with the settings,
|
|
<TT
|
|
CLASS="filename"
|
|
>su</TT
|
|
> to the user
|
|
your web server runs as, and re-run
|
|
<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
|
|
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
|
|
>The checksetup.pl script is designed so that you can run it at
|
|
any time without causing harm. You should run it after any upgrade to
|
|
Bugzilla.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN773">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.
|
|
If you are upgrading an existing installation of Bugzilla, you should
|
|
pay close attention to this section.</P
|
|
><P
|
|
>Most MySQL installs have "interesting" default security
|
|
parameters:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
>mysqld defaults to running as root</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>it defaults to allowing external network connections</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>it has a known port number, and is easy to detect</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>it defaults to no passwords whatsoever</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>it defaults to allowing "File_Priv"</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
><P
|
|
>This means anyone from anywhere on the internet can not only drop
|
|
the database with one SQL command, and they can write as root to the
|
|
system.</P
|
|
><P
|
|
>To see your permissions do:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>mysql -u root -p</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>use mysql;</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>show tables;</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>select * from user;</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>select * from db;</B
|
|
>
|
|
</TT
|
|
>
|
|
</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
><P
|
|
>To fix the gaping holes:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
>DELETE FROM user WHERE User='';</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>UPDATE user SET Password=PASSWORD('new_password') WHERE
|
|
user='root';</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>FLUSH PRIVILEGES;</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
><P
|
|
>If you're not running "mit-pthreads" you can use:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
>GRANT USAGE ON *.* TO bugs@localhost;</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>GRANT ALL ON bugs.* TO bugs@localhost;</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>REVOKE DROP ON bugs.* FROM bugs@localhost;</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>FLUSH PRIVILEGES;</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
><P
|
|
>With "mit-pthreads" you'll need to modify the "globals.pl"
|
|
Mysql->Connect line to specify a specific host name instead of
|
|
"localhost", and accept external connections:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
>GRANT USAGE ON *.* TO bugs@bounce.hop.com;</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>GRANT ALL ON bugs.* TO bugs@bounce.hop.com;</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>REVOKE DROP ON bugs.* FROM bugs@bounce.hop.com;</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>FLUSH PRIVILEGES;</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
><P
|
|
>Consider also:
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Turning off external networking with "--skip-networking",
|
|
unless you have "mit-pthreads", in which case you can't. Without
|
|
networking, MySQL connects with a Unix domain socket.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>using the --user= option to mysqld to run it as an
|
|
unprivileged user.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>running MySQL in a chroot jail</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>running the httpd in a chroot jail</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>making sure the MySQL passwords are different from the OS
|
|
passwords (MySQL "root" has nothing to do with system
|
|
"root").</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>running MySQL on a separate untrusted machine</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>making backups ;-)</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN839">4.1.11. Configuring Bugzilla</H2
|
|
><P
|
|
> You should run through the parameters on the Edit Parameters page
|
|
(link in the footer) and set them all to appropriate values.
|
|
They key parameters are documented in <A
|
|
HREF="#parameters"
|
|
>Section 5.1</A
|
|
>.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="extraconfig">4.2. Optional Additional Configuration</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN845">4.2.1. Dependency Charts</H2
|
|
><P
|
|
>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,
|
|
which can have one of three values:
|
|
</P
|
|
><P
|
|
> <P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> A complete file path to the command 'dot' (part of
|
|
<A
|
|
HREF="http://www.graphviz.org/"
|
|
TARGET="_top"
|
|
>GraphViz</A
|
|
>)
|
|
will generate the graphs locally
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> A URL prefix pointing to an installation of the webdot package will
|
|
generate the graphs remotely
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> A blank value will disable dependency graphing.
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</P
|
|
><P
|
|
>So, to get this working, install
|
|
<A
|
|
HREF="http://www.graphviz.org/"
|
|
TARGET="_top"
|
|
>GraphViz</A
|
|
>. If you
|
|
do that, you need to
|
|
<A
|
|
HREF="http://httpd.apache.org/docs/mod/mod_imap.html"
|
|
TARGET="_top"
|
|
>enable
|
|
server-side image maps</A
|
|
> in Apache.
|
|
Alternatively, you could set up a webdot server, or use the AT&T
|
|
public webdot server (the
|
|
default for the webdotbase param). Note that AT&T's server won't work
|
|
if Bugzilla is only accessible using HTTPS.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN860">4.2.2. Bug Graphs</H2
|
|
><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
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN873">4.2.3. The Whining Cron</H2
|
|
><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"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="bzldap">4.2.4. LDAP Authentication</H2
|
|
><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
|
|
>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.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
>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
|
|
<A
|
|
HREF="http://www.mozilla.org/directory/"
|
|
TARGET="_top"
|
|
>available for
|
|
download</A
|
|
> from mozilla.org.
|
|
</P
|
|
><P
|
|
> 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.)
|
|
</P
|
|
><P
|
|
>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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="content-type">4.2.5. Preventing untrusted Bugzilla content from executing malicious
|
|
Javascript code</H2
|
|
><P
|
|
>It is possible for a Bugzilla to execute malicious Javascript
|
|
code. Due to internationalization concerns, we are unable to
|
|
incorporate the code changes necessary to fulfill the CERT advisory
|
|
requirements mentioned in
|
|
<A
|
|
HREF="http://www.cet.org/tech_tips/malicious_code_mitigation.html/#3"
|
|
TARGET="_top"
|
|
> http://www.cet.org/tech_tips/malicious_code_mitigation.html/#3</A
|
|
>.
|
|
Executing the following code snippet from a UNIX command shell will
|
|
rectify the problem if your Bugzilla installation is intended for an
|
|
English-speaking audience. As always, be sure your Bugzilla
|
|
installation has a good backup before making changes, and I recommend
|
|
you understand what the script is doing before executing it.</P
|
|
><P
|
|
> <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>bash# perl -pi -e "s/Content-Type\: text\/html/Content-Type\: text\/html\; charset=ISO-8859-1/i" *.cgi *.pl
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
>All this one-liner command does is search for all instances of
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Content-type: text/html"</SPAN
|
|
>
|
|
|
|
and replaces it with
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Content-Type: text/html; charset=ISO-8859-1"</SPAN
|
|
>
|
|
|
|
. This specification prevents possible Javascript attacks on the
|
|
browser, and is suggested for all English-speaking sites. For
|
|
non-English-speaking Bugzilla sites, I suggest changing
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"ISO-8859-1"</SPAN
|
|
>, above, to
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"UTF-8"</SPAN
|
|
>.</P
|
|
><P
|
|
>Note: using <meta> tags to set the charset is not
|
|
recommended, as there's a bug in Netscape 4.x which causes pages
|
|
marked up in this way to load twice.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="htaccess">4.2.6. <TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
files and security</H2
|
|
><P
|
|
>To enhance the security of your Bugzilla installation, Bugzilla's
|
|
<TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
> script will generate
|
|
<I
|
|
CLASS="glossterm"
|
|
> <TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
</I
|
|
>
|
|
|
|
files which the Apache webserver can use to restrict access to the
|
|
bugzilla data files.
|
|
These .htaccess files will not work with Apache 1.2.x - but this
|
|
has security holes, so you shouldn't be using it anyway.
|
|
<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
|
|
>If you are using an alternate provider of
|
|
<SPAN
|
|
CLASS="productname"
|
|
>webdot</SPAN
|
|
>
|
|
|
|
services for graphing (as described when viewing
|
|
<TT
|
|
CLASS="filename"
|
|
>editparams.cgi</TT
|
|
>
|
|
|
|
in your web browser), you will need to change the ip address in
|
|
<TT
|
|
CLASS="filename"
|
|
>data/webdot/.htaccess</TT
|
|
>
|
|
|
|
to the ip address of the webdot server that you are using.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
><P
|
|
>The default .htaccess file may not provide adequate access
|
|
restrictions, depending on your web server configuration. Be sure to
|
|
check the <Directory> entries for your Bugzilla directory so that
|
|
the
|
|
<TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
|
|
file is allowed to override web server defaults. For instance, let's
|
|
assume your installation of Bugzilla is installed to
|
|
<TT
|
|
CLASS="filename"
|
|
>/usr/local/bugzilla</TT
|
|
>
|
|
|
|
. You should have this <Directory> entry in your
|
|
<TT
|
|
CLASS="filename"
|
|
>httpd.conf</TT
|
|
>
|
|
|
|
file:</P
|
|
><P
|
|
>
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> <Directory /usr/local/bugzilla/>
|
|
Options +FollowSymLinks +Indexes +Includes +ExecCGI
|
|
AllowOverride All
|
|
</Directory>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
</P
|
|
><P
|
|
>The important part above is
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"AllowOverride All"</SPAN
|
|
>
|
|
|
|
. Without that, the
|
|
<TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
|
|
file created by
|
|
<TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
>
|
|
|
|
will not have sufficient permissions to protect your Bugzilla
|
|
installation.</P
|
|
><P
|
|
>If you are using Internet Information Server (IIS) or another
|
|
web server which does not observe
|
|
<TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
conventions, you can disable their creation by editing
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
>
|
|
and setting the
|
|
<TT
|
|
CLASS="varname"
|
|
>$create_htaccess</TT
|
|
>
|
|
variable to
|
|
<TT
|
|
CLASS="parameter"
|
|
><I
|
|
>0</I
|
|
></TT
|
|
>.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="mod-throttle">4.2.7. <TT
|
|
CLASS="filename"
|
|
>mod_throttle</TT
|
|
>
|
|
|
|
and Security</H2
|
|
><P
|
|
>It is possible for a user, by mistake or on purpose, to access
|
|
the database many times in a row which can result in very slow access
|
|
speeds for other users. If your Bugzilla installation is experiencing
|
|
this problem , you may install the Apache module
|
|
<TT
|
|
CLASS="filename"
|
|
>mod_throttle</TT
|
|
>
|
|
|
|
which can limit connections by ip-address. You may download this module
|
|
at
|
|
<A
|
|
HREF="http://www.snert.com/Software/Throttle/"
|
|
TARGET="_top"
|
|
> http://www.snert.com/Software/Throttle/</A
|
|
>.
|
|
Follow the instructions to install into your Apache install.
|
|
<EM
|
|
>This module only functions with the Apache web
|
|
server!</EM
|
|
>
|
|
You may use the
|
|
<B
|
|
CLASS="command"
|
|
>ThrottleClientIP</B
|
|
>
|
|
|
|
command provided by this module to accomplish this goal. See the
|
|
<A
|
|
HREF="http://www.snert.com/Software/Throttle/"
|
|
TARGET="_top"
|
|
>Module
|
|
Instructions</A
|
|
>
|
|
for more information.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="win32">4.3. Win32 Installation Notes</H1
|
|
><P
|
|
>This section covers installation on Microsoft Windows.
|
|
Bugzilla has been made to work on Win32 platforms, but the Bugzilla team
|
|
wish to emphasise that The easiest way to install Bugzilla on
|
|
Intel-archiecture machines
|
|
is to install some variant of GNU/Linux, then follow the UNIX
|
|
installation instructions in this Guide. If you have any influence in the
|
|
platform choice for running this system, please choose GNU/Linux instead
|
|
of Microsoft Windows.</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
|
|
>After that warning, here's the situation for 2.16
|
|
and Windows. It doesn't work at all out of the box.
|
|
You are almost certainly better off getting
|
|
the 2.17 version from CVS (after consultation with the Bugzilla Team to
|
|
make sure you are pulling on a stable day) because we'll be doing a load
|
|
of work to make the Win32 experience more pleasant than it is now.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
> If you still want to try this, to have any hope of getting it to work,
|
|
you'll need to apply the
|
|
<A
|
|
HREF=""
|
|
TARGET="_top"
|
|
>mail patch</A
|
|
> from
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=124174"
|
|
TARGET="_top"
|
|
>bug 124174</A
|
|
>.
|
|
After that, you'll need to read the (outdated) installation
|
|
instructions below, some (probably a lot better) <A
|
|
HREF="http://bugzilla.mozilla.org/attachment.cgi?id=84430&action=view"
|
|
TARGET="_top"
|
|
>more
|
|
recent ones</A
|
|
> kindly provided by Toms Baugis and Jean-Sebastien
|
|
Guay, and also check the
|
|
<A
|
|
HREF="http://www.bugzilla.org/releases/2.16/docs/win32.html"
|
|
TARGET="_top"
|
|
>Bugzilla 2.16 Win32 update page
|
|
</A
|
|
>. If we get time,
|
|
we'll write some better installation instructions for 2.16 and put
|
|
them up there. But no promises.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="wininstall">4.3.1. Win32 Installation: Step-by-step</H2
|
|
><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
|
|
>You should be familiar with, and cross-reference, the rest of
|
|
the
|
|
<A
|
|
HREF="#installation"
|
|
>Bugzilla Installation</A
|
|
>
|
|
|
|
section while performing your Win32 installation.</P
|
|
><P
|
|
>Making Bugzilla work on Microsoft Windows is no picnic. Support
|
|
for Win32 has improved dramatically in the last few releases, but, if
|
|
you choose to proceed, you should be a
|
|
<EM
|
|
>very</EM
|
|
>
|
|
|
|
skilled Windows Systems Administrator with strong troubleshooting
|
|
abilities, a high tolerance for pain, and moderate perl skills.
|
|
Bugzilla on NT requires hacking source code and implementing some
|
|
advanced utilities. What follows is the recommended installation
|
|
procedure for Win32; additional suggestions are provided in
|
|
<A
|
|
HREF="#faq"
|
|
>Appendix A</A
|
|
>
|
|
|
|
.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="procedure"
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Install
|
|
<A
|
|
HREF="http://www.apache.org/"
|
|
TARGET="_top"
|
|
>Apache Web Server</A
|
|
>
|
|
|
|
for Windows, and copy the Bugzilla files somewhere Apache can serve
|
|
them. Please follow all the instructions referenced in
|
|
<A
|
|
HREF="#installation"
|
|
>Bugzilla Installation</A
|
|
>
|
|
|
|
regarding your Apache configuration, particularly instructions
|
|
regarding the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"AddHandler"</SPAN
|
|
>
|
|
|
|
parameter and
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"ExecCGI"</SPAN
|
|
>
|
|
|
|
.</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
|
|
>You may also use Internet Information Server or Personal
|
|
Web Server for this purpose. However, setup is quite different.
|
|
If ActivePerl doesn't seem to handle your file associations
|
|
correctly (for .cgi and .pl files), please consult
|
|
<A
|
|
HREF="#faq"
|
|
>Appendix A</A
|
|
>
|
|
|
|
.</P
|
|
><P
|
|
>If you are going to use IIS, if on Windows NT you must be
|
|
updated to at least Service Pack 4. Windows 2000 ships with a
|
|
sufficient version of IIS.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Install
|
|
<A
|
|
HREF="http://www.activestate.com/"
|
|
TARGET="_top"
|
|
>ActivePerl</A
|
|
>
|
|
|
|
for Windows. Check
|
|
<A
|
|
HREF="http://aspn.activestate.com/ASPN/Downloads/ActivePerl/"
|
|
TARGET="_top"
|
|
> http://aspn.activestate.com/ASPN/Downloads/ActivePerl</A
|
|
>
|
|
|
|
for a current compiled binary.</P
|
|
><P
|
|
>Please also check the following links to fully understand the
|
|
status of ActivePerl on Win32:
|
|
<A
|
|
HREF="http://language.perl.com/newdocs/pod/perlport.html"
|
|
TARGET="_top"
|
|
> Perl Porting</A
|
|
>
|
|
|
|
, and
|
|
<A
|
|
HREF="http://ftp.univie.ac.at/packages/perl/ports/nt/FAQ/perlwin32faq5.html"
|
|
TARGET="_top"
|
|
> Perl on Win32 FAQ</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Use ppm from your perl\bin directory to install the following
|
|
packs: DBI, DBD-Mysql, TimeDate, Chart, Date-Calc, Date-Manip, GD,
|
|
AppConfig, and Template. You may need to extract them from .zip
|
|
format using Winzip or other unzip program first. Most of these
|
|
additional ppm modules can be downloaded from ActiveState, but
|
|
AppConfig and Template should be obtained from OpenInteract using
|
|
<A
|
|
HREF="http://openinteract.sourceforge.net/"
|
|
TARGET="_top"
|
|
>the
|
|
instructions on the Template Toolkit web site</A
|
|
>
|
|
|
|
.</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
|
|
>You can find a list of modules at
|
|
<A
|
|
HREF="http://www.activestate.com/PPMPackages/zips/5xx-builds-only"
|
|
TARGET="_top"
|
|
> http://www.activestate.com/PPMPackages/zips/5xx-builds-only/</A
|
|
>
|
|
|
|
or
|
|
<A
|
|
HREF="http://www.activestate.com/PPMPackages/5.6plus"
|
|
TARGET="_top"
|
|
> http://www.activestate.com/PPMPackages/5.6plus</A
|
|
>
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>The syntax for ppm is:
|
|
<TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>C:></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>ppm <modulename></B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
><DIV
|
|
CLASS="example"
|
|
><A
|
|
NAME="AEN989"><P
|
|
><B
|
|
>Example 4-1. Installing ActivePerl ppd Modules on Microsoft
|
|
Windows</B
|
|
></P
|
|
><P
|
|
> <TT
|
|
CLASS="prompt"
|
|
>C:></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>ppm
|
|
<TT
|
|
CLASS="option"
|
|
>DBD-Mysql</TT
|
|
>
|
|
</B
|
|
>
|
|
</P
|
|
><P
|
|
>Watch your capitalization!</P
|
|
></DIV
|
|
><P
|
|
>ActiveState's 5.6Plus directory also contains an AppConfig
|
|
ppm, so you might see the following error when trying to install
|
|
the version at OpenInteract:</P
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
>Error installing package 'AppConfig': Read a PPD
|
|
for 'AppConfig', but it is not intended for this build of Perl
|
|
(MSWin32-x86-multi-thread)</TT
|
|
>
|
|
</P
|
|
><P
|
|
>If so, download both
|
|
<A
|
|
HREF="http://openinteract.sourceforge.net/ppmpackages/AppConfig.tar.gz"
|
|
TARGET="_top"
|
|
> the tarball</A
|
|
>
|
|
|
|
and
|
|
<A
|
|
HREF="http://openinteract.sourceforge.net/ppmpackages/AppConfig.ppd"
|
|
TARGET="_top"
|
|
> the ppd</A
|
|
>
|
|
|
|
directly from OpenInteract, then run ppm from within the same
|
|
directory to which you downloaded those files and install the
|
|
package by referencing the ppd file explicitly via in the install
|
|
command, f.e.:
|
|
<DIV
|
|
CLASS="example"
|
|
><A
|
|
NAME="AEN1002"><P
|
|
><B
|
|
>Example 4-2. Installing OpenInteract ppd Modules manually on Microsoft
|
|
Windows</B
|
|
></P
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <B
|
|
CLASS="command"
|
|
>install
|
|
<TT
|
|
CLASS="filename"
|
|
>C:\AppConfig.ppd</TT
|
|
>
|
|
</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></DIV
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Install MySQL for NT.
|
|
<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
|
|
>You can download MySQL for Windows NT from
|
|
<A
|
|
HREF="http://www.mysql.com/"
|
|
TARGET="_top"
|
|
>MySQL.com</A
|
|
>
|
|
|
|
. Some find it helpful to use the WinMySqlAdmin utility, included
|
|
with the download, to set up the database.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Setup MySQL</P
|
|
><OL
|
|
CLASS="SUBSTEPS"
|
|
TYPE="a"
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>C:></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>C:\mysql\bin\mysql -u root mysql</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>DELETE FROM user WHERE Host='localhost' AND
|
|
User='';</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>UPDATE user SET Password=PASSWORD ('new_password')
|
|
WHERE user='root';</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
><P
|
|
> <SPAN
|
|
CLASS="QUOTE"
|
|
>"new_password"</SPAN
|
|
>
|
|
|
|
, above, indicates whatever password you wish to use for your
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"root"</SPAN
|
|
>
|
|
|
|
user.</P
|
|
></LI
|
|
><LI
|
|
><A
|
|
NAME="ntbugs-password"
|
|
></A
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX,
|
|
ALTER, CREATE, DROP, REFERENCES ON bugs.* to bugs@localhost
|
|
IDENTIFIED BY 'bugs_password';</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
><P
|
|
> <SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_password"</SPAN
|
|
>
|
|
|
|
, above, indicates whatever password you wish to use for your
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>
|
|
|
|
user.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>FLUSH PRIVILEGES;</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>create database bugs;</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>exit;</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="computeroutput"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>C:></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>C:\mysql\bin\mysqladmin -u root -p
|
|
reload</B
|
|
>
|
|
</TT
|
|
>
|
|
</P
|
|
></LI
|
|
></OL
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Edit
|
|
<TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
>
|
|
|
|
in your Bugzilla directory. Change this line:</P
|
|
><P
|
|
> <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>my $webservergid =
|
|
getgrnam($my_webservergroup);</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
>to</P
|
|
><P
|
|
> <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>my $webservergid =
|
|
$my_webservergroup;</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
or the name of the group you wish to own the files explicitly:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>my $webservergid =
|
|
'Administrators'</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Run
|
|
<TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
>
|
|
|
|
from the Bugzilla directory.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Edit
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
>
|
|
|
|
to suit your requirements. Set
|
|
<TT
|
|
CLASS="varname"
|
|
>$db_pass</TT
|
|
>
|
|
|
|
to your
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_password"</SPAN
|
|
>
|
|
|
|
from
|
|
<A
|
|
HREF="#ntbugs-password"
|
|
>step 5.d</A
|
|
>
|
|
|
|
, and
|
|
<TT
|
|
CLASS="varname"
|
|
>$webservergroup</TT
|
|
>
|
|
|
|
to
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"8"</SPAN
|
|
>
|
|
|
|
.</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
|
|
>Not sure on the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"8"</SPAN
|
|
>
|
|
|
|
for
|
|
<TT
|
|
CLASS="varname"
|
|
>$webservergroup</TT
|
|
>
|
|
|
|
above. If it's wrong, please send corrections.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Edit
|
|
<TT
|
|
CLASS="filename"
|
|
>defparams.pl</TT
|
|
>
|
|
|
|
to suit your requirements. Particularly, set
|
|
<TT
|
|
CLASS="varname"
|
|
>DefParam("maintainer")</TT
|
|
>
|
|
|
|
and
|
|
<TT
|
|
CLASS="varname"
|
|
>DefParam("urlbase") to match your install.</TT
|
|
>
|
|
</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
|
|
>This is yet another step I'm not sure of, since the
|
|
maintainer of this documentation does not maintain Bugzilla on
|
|
NT. If you can confirm or deny that this step is required, please
|
|
let me know.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
><LI
|
|
><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
|
|
>There are several alternatives to Sendmail that will work
|
|
on Win32. The one mentioned here is a
|
|
<EM
|
|
>suggestion</EM
|
|
>
|
|
|
|
, not a requirement. Some other mail packages that can work
|
|
include
|
|
<A
|
|
HREF="http://www.blat.net/"
|
|
TARGET="_top"
|
|
>BLAT</A
|
|
>
|
|
|
|
,
|
|
<A
|
|
HREF="http://www.geocel.com/windmail/"
|
|
TARGET="_top"
|
|
>Windmail</A
|
|
>
|
|
|
|
,
|
|
<A
|
|
HREF="http://www.dynamicstate.com/"
|
|
TARGET="_top"
|
|
>Mercury
|
|
Sendmail</A
|
|
>
|
|
|
|
, and the CPAN Net::SMTP Perl module (available in .ppm). Every
|
|
option requires some hacking of the Perl scripts for Bugzilla to
|
|
make it work. The option here simply requires the least.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="procedure"
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Download NTsendmail, available from
|
|
<A
|
|
HREF="http://www.ntsendmail.com/"
|
|
TARGET="_top"
|
|
> www.ntsendmail.com</A
|
|
>
|
|
|
|
. You must have a "real" mail server which allows you to relay
|
|
off it in your $ENV{"NTsendmail"} (which you should probably
|
|
place in globals.pl)</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Put ntsendmail.pm into your .\perl\lib directory.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Add to globals.pl:</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
># these settings configure the NTsendmail
|
|
process use NTsendmail;
|
|
$ENV{"NTsendmail"}="your.smtpserver.box";
|
|
$ENV{"NTsendmail_debug"}=1;
|
|
$ENV{"NTsendmail_max_tries"}=5;</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><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
|
|
>Some mention to also edit
|
|
<TT
|
|
CLASS="varname"
|
|
>$db_pass</TT
|
|
>
|
|
|
|
in
|
|
<TT
|
|
CLASS="filename"
|
|
>globals.pl</TT
|
|
>
|
|
|
|
to be your
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_password"</SPAN
|
|
>
|
|
|
|
. Although this may get you around some problem
|
|
authenticating to your database, since globals.pl is not
|
|
normally restricted by
|
|
<TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
|
|
, your database password is exposed to whoever uses your web
|
|
server.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Find and comment out all occurences of
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"
|
|
<B
|
|
CLASS="command"
|
|
>open(SENDMAIL</B
|
|
>
|
|
"</SPAN
|
|
>
|
|
|
|
in your Bugzilla directory. Then replace them with:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
># new sendmail functionality my $mail=new
|
|
NTsendmail; my $from="bugzilla\@your.machine.name.tld"; my
|
|
$to=$login; my $subject=$urlbase;
|
|
$mail->send($from,$to,$subject,$msg);</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</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
|
|
>Some have found success using the commercial product,
|
|
<SPAN
|
|
CLASS="productname"
|
|
>Windmail</SPAN
|
|
>
|
|
|
|
. You could try replacing your sendmail calls with:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>open SENDMAIL,
|
|
"|\"C:/General/Web/tools/Windmail 4.0 Beta/windmail\" -t >
|
|
mail.log";</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
or something to that effect.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Change all references in all files from
|
|
<TT
|
|
CLASS="filename"
|
|
>processmail</TT
|
|
>
|
|
|
|
to
|
|
<TT
|
|
CLASS="filename"
|
|
>processmail.pl</TT
|
|
>
|
|
|
|
, and rename
|
|
<TT
|
|
CLASS="filename"
|
|
>processmail</TT
|
|
>
|
|
|
|
to
|
|
<TT
|
|
CLASS="filename"
|
|
>processmail.pl</TT
|
|
>
|
|
|
|
.</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
|
|
>Many think this may be a change we want to make for
|
|
main-tree Bugzilla. It's painless for the UNIX folks, and will
|
|
make the Win32 people happier.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><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
|
|
>Some people have suggested using the Net::SMTP Perl module
|
|
instead of NTsendmail or the other options listed here. You can
|
|
change processmail.pl to make this work.
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>
|
|
|
|
my $smtp = Net::SMTP->new('<Name of your SMTP server>'); #connect to SMTP server
|
|
$smtp->mail('<your name>@<you smpt server>');# use the sender's adress here
|
|
$smtp->to($tolist); # recipient's address
|
|
$smtp->data(); # Start the mail
|
|
$smtp->datasend($msg);
|
|
$smtp->dataend(); # Finish sending the mail
|
|
$smtp->quit; # Close the SMTP connection
|
|
$logstr = "$logstr; mail sent to $tolist $cclist";
|
|
}
|
|
|
|
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
here is a test mail program for Net::SMTP:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>
|
|
|
|
use Net::SMTP;
|
|
my $smtp = Net::SMTP->new('<Name of your SMTP server', Timeout => 30, Debug
|
|
=> 1, ); # connect to SMTP server
|
|
$smtp->auth;
|
|
$smtp->mail('you@yourcompany.com');# use the sender's adress
|
|
here
|
|
$smtp->to('someotherAddress@someotherdomain.com'); #
|
|
recipient's address
|
|
$smtp->data(); # Start the mail
|
|
$smtp->datasend('test');
|
|
$smtp->dataend(); # Finish sending the mail
|
|
$smtp->quit; # Close the SMTP connection
|
|
exit;
|
|
|
|
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
><LI
|
|
><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
|
|
>This step is optional if you are using IIS or another web
|
|
server which only decides on an interpreter based upon the file
|
|
extension (.pl), rather than the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"shebang"</SPAN
|
|
>
|
|
|
|
line (#/usr/bonsaitools/bin/perl)</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>Modify the path to perl on the first line (#!) of all files
|
|
to point to your Perl installation, and add
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"perl"</SPAN
|
|
>
|
|
|
|
to the beginning of all Perl system calls that use a perl script as
|
|
an argument. This may take you a while. There is a
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"setperl.csh"</SPAN
|
|
>
|
|
|
|
utility to speed part of this procedure, available in the
|
|
<A
|
|
HREF="#patches"
|
|
>Useful Patches and Utilities for Bugzilla</A
|
|
>
|
|
|
|
section of The Bugzilla Guide. However, it requires the Cygwin
|
|
GNU-compatible environment for Win32 be set up in order to work.
|
|
See
|
|
<A
|
|
HREF="http://www.cygwin.com/"
|
|
TARGET="_top"
|
|
>http://www.cygwin.com/</A
|
|
>
|
|
|
|
for details on obtaining Cygwin.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Modify the invocation of all system() calls in all perl
|
|
scripts in your Bugzilla directory. You should specify the full
|
|
path to perl for each system() call. For instance, change this line
|
|
in processmail:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>
|
|
system ("./processmail",@ARGLIST);
|
|
</programlisting> to
|
|
<programlisting>
|
|
system ("C:\\perl\\bin\\perl", "processmail", @ARGLIST);
|
|
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Add
|
|
<TT
|
|
CLASS="function"
|
|
>binmode()</TT
|
|
>
|
|
|
|
calls so attachments will work (
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=62000"
|
|
TARGET="_top"
|
|
>bug
|
|
62000</A
|
|
>
|
|
|
|
).</P
|
|
><P
|
|
>Because Microsoft Windows based systems handle binary files
|
|
different than Unix based systems, you need to add the following
|
|
lines to
|
|
<TT
|
|
CLASS="filename"
|
|
>createattachment.cgi</TT
|
|
>
|
|
|
|
and
|
|
<TT
|
|
CLASS="filename"
|
|
>showattachment.cgi</TT
|
|
>
|
|
|
|
before the
|
|
<TT
|
|
CLASS="function"
|
|
>require 'CGI.pl';</TT
|
|
>
|
|
|
|
line.</P
|
|
><P
|
|
> <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>
|
|
binmode(STDIN);
|
|
binmode(STDOUT);
|
|
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</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
|
|
>According to
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=62000"
|
|
TARGET="_top"
|
|
> bug 62000</A
|
|
>
|
|
|
|
, the perl documentation says that you should always use
|
|
<TT
|
|
CLASS="function"
|
|
>binmode()</TT
|
|
>
|
|
|
|
when dealing with binary files, but never when dealing with text
|
|
files. That seems to suggest that rather than arbitrarily putting
|
|
|
|
<TT
|
|
CLASS="function"
|
|
>binmode()</TT
|
|
>
|
|
|
|
at the beginning of the attachment files, there should be logic
|
|
to determine if
|
|
<TT
|
|
CLASS="function"
|
|
>binmode()</TT
|
|
>
|
|
|
|
is needed or not.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><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
|
|
>If you are using IIS or Personal Web Server, you must add cgi
|
|
relationships to Properties -> Home directory (tab) ->
|
|
Application Settings (section) -> Configuration (button), such
|
|
as:</P
|
|
><P
|
|
> <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>.cgi to: <perl install directory>\perl.exe %s
|
|
%s .pl to: <perl install directory>\perl.exe %s %s
|
|
GET,HEAD,POST</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Change the path to Perl to match your install, of course.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="addlwintips">4.3.2. Additional Windows Tips</H2
|
|
><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
|
|
>From Andrew Pearson:
|
|
<A
|
|
NAME="AEN1172"><BLOCKQUOTE
|
|
CLASS="BLOCKQUOTE"
|
|
><P
|
|
>You can make Bugzilla work with Personal Web Server for
|
|
Windows 98 and higher, as well as for IIS 4.0. Microsoft has
|
|
information available at
|
|
<A
|
|
HREF=" http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP"
|
|
TARGET="_top"
|
|
> http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP</A
|
|
>
|
|
</P
|
|
><P
|
|
>Basically you need to add two String Keys in the registry at
|
|
the following location:</P
|
|
><P
|
|
> <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
>The keys should be called ".pl" and ".cgi", and both should
|
|
have a value something like:
|
|
<B
|
|
CLASS="command"
|
|
>c:/perl/bin/perl.exe "%s" "%s"</B
|
|
>
|
|
</P
|
|
><P
|
|
>The KB article only talks about .pl, but it goes into more
|
|
detail and provides a perl test script.</P
|
|
></BLOCKQUOTE
|
|
>
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><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
|
|
>If attempting to run Bugzilla 2.12 or older, you will need to
|
|
remove encrypt() calls from the Perl source. This is
|
|
<EM
|
|
>not necessary</EM
|
|
>
|
|
|
|
for Bugzilla 2.13 and later, which includes the current release,
|
|
Bugzilla &bz-ver;.
|
|
<DIV
|
|
CLASS="example"
|
|
><A
|
|
NAME="AEN1184"><P
|
|
><B
|
|
>Example 4-3. Removing encrypt() for Windows NT Bugzilla version 2.12 or
|
|
earlier</B
|
|
></P
|
|
><P
|
|
>Replace this:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>SendSQL("SELECT encrypt(" . SqlQuote($enteredpwd) .
|
|
", " . SQLQuote(substr($realcryptpwd, 0, 2)) . ")"); my
|
|
$enteredcryptpwd = FetchOneColumn();</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
with this:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>my $enteredcryptpwd = $enteredpwd</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
in cgi.pl.</P
|
|
></DIV
|
|
>
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
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.
|
|
The GD library, which Bugzilla needs to do bug graphs, is one of
|
|
these.</P
|
|
><P
|
|
>The easiest way to get a lot of these is with a program called
|
|
Fink, which is similar in nature to the CPAN installer, but installs
|
|
common GNU utilities. Fink is available from
|
|
<http://sourceforge.net/projects/fink/>.</P
|
|
><P
|
|
>Follow the instructions for setting up Fink. Once it's installed,
|
|
you'll want to run the following as root:
|
|
<B
|
|
CLASS="command"
|
|
>fink install gd</B
|
|
>
|
|
</P
|
|
><P
|
|
>It will prompt you for a number of dependencies, type 'y' and hit
|
|
enter to install all of the dependencies. Then watch it work.</P
|
|
><P
|
|
>To prevent creating conflicts with the software that Apple installs
|
|
by default, Fink creates its own directory tree at /sw where it installs
|
|
most of the software that it installs. This means your libraries and
|
|
headers for libgd will be at /sw/lib and /sw/include instead of /usr/lib
|
|
and /usr/local/include. Because of these changed locations for the
|
|
libraries, the Perl GD module will not install directly via CPAN, because it
|
|
looks for the specific paths instead of getting them from your
|
|
environment. But there's a way around that :-)</P
|
|
><P
|
|
>Instead of typing
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"install GD"</SPAN
|
|
>
|
|
at the
|
|
<TT
|
|
CLASS="prompt"
|
|
>cpan></TT
|
|
>
|
|
prompt, type
|
|
<B
|
|
CLASS="command"
|
|
>look GD</B
|
|
>.
|
|
This should go through the motions of downloading the latest version of
|
|
the GD module, then it will open a shell and drop you into the build
|
|
directory. Apply <A
|
|
HREF="../sgml/gd-makefile.patch"
|
|
TARGET="_top"
|
|
>this patch</A
|
|
>
|
|
to the Makefile.PL file (save the
|
|
patch into a file and use the command
|
|
<B
|
|
CLASS="command"
|
|
>patch < patchfile</B
|
|
>.)
|
|
</P
|
|
><P
|
|
>Then, run these commands to finish the installation of the GD
|
|
module:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <B
|
|
CLASS="command"
|
|
>perl Makefile.PL</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <B
|
|
CLASS="command"
|
|
>make</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <B
|
|
CLASS="command"
|
|
>make test</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <B
|
|
CLASS="command"
|
|
>make install</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>And don't forget to run
|
|
<B
|
|
CLASS="command"
|
|
>exit</B
|
|
>
|
|
|
|
to get back to CPAN.</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="troubleshooting">4.5. Troubleshooting</H1
|
|
><P
|
|
>This section gives solutions to common Bugzilla installation
|
|
problems.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN1218">4.5.1. Bundle::Bugzilla makes me upgrade to Perl 5.6.1</H2
|
|
><P
|
|
> Try executing <B
|
|
CLASS="command"
|
|
>perl -MCPAN -e 'install CPAN'</B
|
|
>
|
|
and then continuing.
|
|
</P
|
|
><P
|
|
> Certain older versions of the CPAN toolset were somewhat naive about how
|
|
to upgrade Perl modules. When a couple of modules got rolled into the core
|
|
Perl distribution for 5.6.1, CPAN thought that the best way to get those
|
|
modules up to date was to haul down the Perl distribution itself and
|
|
build it. Needless to say, this has caused headaches for just about
|
|
everybody. Upgrading to a newer version of CPAN with the
|
|
commandline above should fix things.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN1223">4.5.2. DBD::Sponge::db prepare failed</H2
|
|
><P
|
|
> The following error message may appear due to a bug in DBD::mysql
|
|
(over which the Bugzilla team have no control):
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> 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)
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> To fix this, go to
|
|
<TT
|
|
CLASS="filename"
|
|
><path-to-perl>/lib/DBD/sponge.pm</TT
|
|
>
|
|
in your Perl installation and replace
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> my $numFields;
|
|
if ($attribs->{'NUM_OF_FIELDS'}) {
|
|
$numFields = $attribs->{'NUM_OF_FIELDS'};
|
|
} elsif ($attribs->{'NAME'}) {
|
|
$numFields = @{$attribs->{NAME}};
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> by
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> my $numFields;
|
|
if ($attribs->{'NUM_OF_FIELDS'}) {
|
|
$numFields = $attribs->{'NUM_OF_FIELDS'};
|
|
} elsif ($attribs->{'NAMES'}) {
|
|
$numFields = @{$attribs->{NAMES}};
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> (note the S added to NAME.)
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="paranoid-security">4.5.3. 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:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>cannot chdir(/var/spool/mqueue): Permission denied
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</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
|
|
><DIV
|
|
CLASS="chapter"
|
|
><HR><H1
|
|
><A
|
|
NAME="administration">Chapter 5. Administering Bugzilla</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="parameters">5.1. Bugzilla Configuration</H1
|
|
><P
|
|
>Bugzilla is configured by changing various parameters, accessed
|
|
from the "Edit parameters" link in the page footer. Here are
|
|
some of the key parameters on that page. You should run down this
|
|
list and set them appropriately after installing Bugzilla.</P
|
|
><DIV
|
|
CLASS="procedure"
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>
|
|
<B
|
|
CLASS="command"
|
|
>maintainer</B
|
|
>:
|
|
The maintainer parameter is the email address of the person
|
|
responsible for maintaining this
|
|
Bugzilla installation. The address need not be that of a valid Bugzilla
|
|
account.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>urlbase</B
|
|
>:
|
|
This parameter defines the fully qualified domain name and web
|
|
server path to your Bugzilla installation.</P
|
|
><P
|
|
>For example, if your Bugzilla query page is
|
|
<TT
|
|
CLASS="filename"
|
|
>http://www.foo.com/bugzilla/query.cgi</TT
|
|
>,
|
|
set your <SPAN
|
|
CLASS="QUOTE"
|
|
>"urlbase"</SPAN
|
|
>
|
|
to <TT
|
|
CLASS="filename"
|
|
>http://www.foo.com/bugzilla/</TT
|
|
>.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>usebuggroups</B
|
|
>:
|
|
This dictates whether or not to implement group-based security for
|
|
Bugzilla. If set, Bugzilla bugs can have an associated 'group',
|
|
defining which users are allowed to see and edit the
|
|
bug.</P
|
|
><P
|
|
>Set "usebuggroups" to "on"
|
|
<EM
|
|
>only</EM
|
|
>
|
|
if you may wish to restrict access to particular bugs to certain
|
|
groups of users. I suggest leaving
|
|
this parameter <EM
|
|
>off</EM
|
|
>
|
|
while initially testing your Bugzilla.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>usebuggroupsentry</B
|
|
>:
|
|
Bugzilla Products can have a group associated with them, so that
|
|
certain users can only see bugs in certain products. When this parameter
|
|
is set to <SPAN
|
|
CLASS="QUOTE"
|
|
>"on"</SPAN
|
|
>, this places all newly-created bugs in the
|
|
group for their product immediately.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>shadowdb</B
|
|
>:
|
|
You run into an interesting problem when Bugzilla reaches a
|
|
high level of continuous activity. MySQL supports only table-level
|
|
write locking. What this means is that if someone needs to make a
|
|
change to a bug, they will lock the entire table until the operation
|
|
is complete. Locking for write also blocks reads until the write is
|
|
complete. The
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"shadowdb"</SPAN
|
|
>
|
|
parameter was designed to get around this limitation. While only a
|
|
single user is allowed to write to a table at a time, reads can
|
|
continue unimpeded on a read-only shadow copy of the database.
|
|
Although your database size will double, a shadow database can cause
|
|
an enormous performance improvement when implemented on extremely
|
|
high-traffic Bugzilla databases.</P
|
|
><P
|
|
> As a guide, mozilla.org began needing
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"shadowdb"</SPAN
|
|
>
|
|
when they reached around 40,000 Bugzilla users with several hundred
|
|
Bugzilla bug changes and comments per day.</P
|
|
><P
|
|
>The value of the parameter defines the name of the
|
|
shadow bug database.
|
|
Set "shadowdb" to e.g. "bug_shadowdb" if you will be running a
|
|
*very* large installation of Bugzilla.
|
|
<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
|
|
>Enabling "shadowdb" can adversely affect the stability of
|
|
your installation of Bugzilla. You should regularly check that your
|
|
database is in sync. It is often advisable to force a shadow
|
|
database sync nightly via
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"cron"</SPAN
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
><P
|
|
>If you use the "shadowdb" option, it is only natural that you
|
|
should turn the "queryagainstshadowdb" option on as well. Otherwise
|
|
you are replicating data into a shadow database for no reason!</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>shutdownhtml</B
|
|
>:
|
|
|
|
If you need to shut down Bugzilla to perform administration, enter
|
|
some descriptive HTML here and anyone who tries to use Bugzilla will
|
|
receive a page to that effect. Obviously, editparams.cgi will
|
|
still be accessible so you can remove the HTML and re-enable Bugzilla.
|
|
:-)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>passwordmail</B
|
|
>:
|
|
|
|
Every time a user creates an account, the text of
|
|
this parameter (with substitutions) is sent to the new user along with
|
|
their password message.</P
|
|
><P
|
|
>Add any text you wish to the "passwordmail" parameter box. For
|
|
instance, many people choose to use this box to give a quick training
|
|
blurb about how to use Bugzilla at your site.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>useqacontact</B
|
|
>:
|
|
|
|
This allows you to define an email address for each component, in
|
|
addition
|
|
to that of the default owner, who will be sent carbon copies of
|
|
incoming bugs.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>usestatuswhiteboard</B
|
|
>:
|
|
This defines whether you wish to have a free-form, overwritable field
|
|
associated with each bug. The advantage of the Status Whiteboard is
|
|
that it can be deleted or modified with ease, and provides an
|
|
easily-searchable field for indexing some bugs that have some trait
|
|
in common.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>whinedays</B
|
|
>:
|
|
Set this to the number of days you want to let bugs go
|
|
in the NEW or REOPENED state before notifying people they have
|
|
untouched new bugs. If you do not plan to use this feature, simply do
|
|
not set up the whining cron job described in the installation
|
|
instructions, or set this value to "0" (never whine).</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>commenton*</B
|
|
>:
|
|
All these
|
|
fields allow you to dictate what changes can pass without comment,
|
|
and which must have a comment from the person who changed them.
|
|
Often, administrators will allow users to add themselves to the CC
|
|
list, accept bugs, or change the Status Whiteboard without adding a
|
|
comment as to their reasons for the change, yet require that most
|
|
other changes come with an explanation.</P
|
|
><P
|
|
>Set the "commenton" options according to your site policy. It
|
|
is a wise idea to require comments when users resolve, reassign, or
|
|
reopen bugs at the very least.
|
|
<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
|
|
>It is generally far better to require a developer comment
|
|
when resolving bugs than not. Few things are more annoying to bug
|
|
database users than having a developer mark a bug "fixed" without
|
|
any comment as to what the fix was (or even that it was truly
|
|
fixed!)</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>supportwatchers</B
|
|
>:
|
|
|
|
Turning on this option allows users to ask to receive copies of
|
|
all a particular other user's bug email. This is, of
|
|
course, subject to the groupset restrictions on the bug; if the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"watcher"</SPAN
|
|
>
|
|
would not normally be allowed to view a bug, the watcher cannot get
|
|
around the system by setting herself up to watch the bugs of someone
|
|
with bugs outside her privileges. They would still only receive email
|
|
updates for those bugs she could normally view.</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="useradmin">5.2. User Administration</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="defaultuser">5.2.1. Creating the Default User</H2
|
|
><P
|
|
>When you first run checksetup.pl after installing Bugzilla, it
|
|
will prompt you for the administrative username (email address) and
|
|
password for this "super user". If for some reason you delete
|
|
the "super user" account, re-running checksetup.pl will again prompt
|
|
you for this username and password.</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
|
|
>If you wish to add more administrative users, you must use the
|
|
MySQL interface. Run "mysql" from the command line, and use these
|
|
commands:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
<B
|
|
CLASS="command"
|
|
>use bugs;</B
|
|
>
|
|
</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
> update profiles set groupset=0x7ffffffffffffff where login_name =
|
|
"(user's login name)";
|
|
</B
|
|
>
|
|
</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
><P
|
|
>Yes, that is
|
|
<EM
|
|
>fourteen</EM
|
|
>
|
|
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"f"</SPAN
|
|
>
|
|
|
|
's. A whole lot of f-ing going on if you want to create a new
|
|
administator.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="manageusers">5.2.2. Managing Other Users</H2
|
|
><DIV
|
|
CLASS="section"
|
|
><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="createnewusers">5.2.2.1. Creating new users</H3
|
|
><P
|
|
>Your users can create their own user accounts by clicking the
|
|
"New Account" link at the bottom of each page (assuming they
|
|
aren't logged in as someone else already.) However, should you
|
|
desire to create user accounts ahead of time, here is how you do
|
|
it.</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>After logging in, click the "Users" link at the footer of
|
|
the query page, and then click "Add a new user".</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Fill out the form presented. This page is self-explanatory.
|
|
When done, click "Submit".</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
|
|
>Adding a user this way will
|
|
<EM
|
|
>not</EM
|
|
>
|
|
|
|
send an email informing them of their username and password.
|
|
While useful for creating dummy accounts (watchers which
|
|
shuttle mail to another system, for instance, or email
|
|
addresses which are a mailing list), in general it is
|
|
preferable to log out and use the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"New Account"</SPAN
|
|
>
|
|
|
|
button to create users, as it will pre-populate all the
|
|
required fields and also notify the user of her account name
|
|
and password.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="modifyusers">5.2.2.2. Modifying Users</H3
|
|
><P
|
|
>To see a specific user, search for their login name
|
|
in the box provided on the "Edit Users" page. To see all users,
|
|
leave the box blank.</P
|
|
><P
|
|
>You can search in different ways the listbox to the right
|
|
of the text entry box. You can match by
|
|
case-insensitive substring (the default),
|
|
regular expression, or a
|
|
<EM
|
|
>reverse</EM
|
|
>
|
|
regular expression match, which finds every user name which does NOT
|
|
match the regular expression. (Please see
|
|
the <B
|
|
CLASS="command"
|
|
>man regexp</B
|
|
>
|
|
manual page for details on regular expression syntax.)
|
|
</P
|
|
><P
|
|
>Once you have found your user, you can change the following
|
|
fields:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Login Name</EM
|
|
>:
|
|
This is generally the user's full email address. However, if you
|
|
have are using the emailsuffix Param, this may just be the user's
|
|
login name. Note that users can now change their login names
|
|
themselves (to any valid email address.)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Real Name</EM
|
|
>: The user's real name. Note that
|
|
Bugzilla does not require this to create an account.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Password</EM
|
|
>:
|
|
You can change the user's password here. Users can automatically
|
|
request a new password, so you shouldn't need to do this often.
|
|
If you want to disable an account, see Disable Text below.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>Disable Text</EM
|
|
>:
|
|
If you type anything in this box, including just a space, the
|
|
user is prevented from logging in, or making any changes to
|
|
bugs via the web interface.
|
|
The HTML you type in this box is presented to the user when
|
|
they attempt to perform these actions, and should explain
|
|
why the account was disabled.
|
|
<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 disable the administrator account!</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
|
|
<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
|
|
>The user can still submit bugs via
|
|
the e-mail gateway, if you set it up, even if the disabled text
|
|
field is filled in. The e-mail gateway should
|
|
<EM
|
|
>not</EM
|
|
>
|
|
be enabled for secure installations of Bugzilla.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
><groupname></EM
|
|
>:
|
|
If you have created some groups, e.g. "securitysensitive", then
|
|
checkboxes will appear here to allow you to add users to, or
|
|
remove them from, these groups.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>canconfirm</EM
|
|
>:
|
|
This field is only used if you have enabled the "unconfirmed"
|
|
status. If you enable this for a user,
|
|
that user can then move bugs from "Unconfirmed" to a "Confirmed"
|
|
status (e.g.: "New" status).</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>creategroups</EM
|
|
>:
|
|
This option will allow a user to create and destroy groups in
|
|
Bugzilla.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>editbugs</EM
|
|
>:
|
|
Unless a user has this bit set, they can only edit those bugs
|
|
for which they are the assignee or the reporter. Even if this
|
|
option is unchecked, users can still add comments to bugs.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>editcomponents</EM
|
|
>:
|
|
This flag allows a user to create new products and components,
|
|
as well as modify and destroy those that have no bugs associated
|
|
with them. If a product or component has bugs associated with it,
|
|
those bugs must be moved to a different product or component
|
|
before Bugzilla will allow them to be destroyed.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>editkeywords</EM
|
|
>:
|
|
If you use Bugzilla's keyword functionality, enabling this
|
|
feature allows a user to create and destroy keywords. As always,
|
|
the keywords for existing bugs containing the keyword the user
|
|
wishes to destroy must be changed before Bugzilla will allow it
|
|
to die.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>editusers</EM
|
|
>:
|
|
This flag allows a user to do what you're doing right now: edit
|
|
other users. This will allow those with the right to do so to
|
|
remove administrator privileges from other users or grant them to
|
|
themselves. Enable with care.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>tweakparams</EM
|
|
>:
|
|
This flag allows a user to change Bugzilla's Params
|
|
(using <TT
|
|
CLASS="filename"
|
|
>editparams.cgi</TT
|
|
>.)</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
><productname></EM
|
|
>:
|
|
This allows an administrator to specify the products in which
|
|
a user can see bugs. The user must still have the
|
|
"editbugs" privilege to edit bugs in these products.</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="programadmin">5.3. Product, Component, Milestone, and Version Administration</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="products">5.3.1. Products</H2
|
|
><P
|
|
> <A
|
|
HREF="#gloss-product"
|
|
><I
|
|
CLASS="glossterm"
|
|
> Products</I
|
|
></A
|
|
>
|
|
|
|
are the broadest category in Bugzilla, and tend to represent real-world
|
|
shipping products. E.g. if your company makes computer games,
|
|
you should have one product per game, perhaps a "Common" product for
|
|
units of technology used in multiple games, and maybe a few special
|
|
products (Website, Administration...)</P
|
|
><P
|
|
>Many of Bugzilla's settings are configurable on a per-product
|
|
basis. The number of "votes" available to users is set per-product,
|
|
as is the number of votes
|
|
required to move a bug automatically from the UNCONFIRMED status to the
|
|
NEW status.</P
|
|
><P
|
|
>To create a new product:</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Select "products" from the footer</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Select the "Add" link in the bottom right</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Enter the name of the product and a description. The
|
|
Description field may contain HTML.</P
|
|
></LI
|
|
></OL
|
|
><P
|
|
>Don't worry about the "Closed for bug entry", "Maximum Votes
|
|
per person", "Maximum votes a person can put on a single bug",
|
|
"Number of votes a bug in this Product needs to automatically get out
|
|
of the UNCOMFIRMED state", and "Version" options yet. We'll cover
|
|
those in a few moments.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="components">5.3.2. Components</H2
|
|
><P
|
|
>Components are subsections of a Product. E.g. the computer game
|
|
you are designing may have a "UI"
|
|
component, an "API" component, a "Sound System" component, and a
|
|
"Plugins" component, each overseen by a different programmer. It
|
|
often makes sense to divide Components in Bugzilla according to the
|
|
natural divisions of responsibility within your Product or
|
|
company.</P
|
|
><P
|
|
> Each component has a owner and (if you turned it on in the parameters),
|
|
a QA Contact. The owner should be the primary person who fixes bugs in
|
|
that component. The QA Contact should be the person who will ensure
|
|
these bugs are completely fixed. The Owner, QA Contact, and Reporter
|
|
will get email when new bugs are created in this Component and when
|
|
these bugs change. Default Owner and Default QA Contact fields only
|
|
dictate the
|
|
<EM
|
|
>default assignments</EM
|
|
>;
|
|
these can be changed on bug submission, or at any later point in
|
|
a bug's life.</P
|
|
><P
|
|
>To create a new Component:</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Select the "Edit components" link from the "Edit product"
|
|
page</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Select the "Add" link in the bottom right.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Fill out the "Component" field, a short "Description",
|
|
the "Initial Owner" and "Initial QA Contact" (if enabled.)
|
|
The Component and Description fields may contain HTML;
|
|
the "Initial Owner" field must be a login name
|
|
already existing in the database.
|
|
</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="versions">5.3.3. Versions</H2
|
|
><P
|
|
>Versions are the revisions of the product, such as "Flinders
|
|
3.1", "Flinders 95", and "Flinders 2000". Version is not a multi-select
|
|
field; the usual practice is to select the most recent version with
|
|
the bug.
|
|
</P
|
|
><P
|
|
>To create and edit Versions:</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>From the "Edit product" screen, select "Edit Versions"</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>You will notice that the product already has the default
|
|
version "undefined". Click the "Add" link in the bottom right.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Enter the name of the Version. This field takes text only.
|
|
Then click the "Add" button.</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="milestones">5.3.4. Milestones</H2
|
|
><P
|
|
>Milestones are "targets" that you plan to get a bug fixed by. For
|
|
example, you have a bug that you plan to fix for your 3.0 release, it
|
|
would be assigned the milestone of 3.0.</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
|
|
>Milestone options will only appear for a Product if you turned
|
|
on the "usetargetmilestone" Param in the "Edit Parameters" screen.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>To create new Milestones, set Default Milestones, and set
|
|
Milestone URL:</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Select "Edit milestones" from the "Edit product" page.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Select "Add" in the bottom right corner.
|
|
text</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Enter the name of the Milestone in the "Milestone" field. You
|
|
can optionally set the "sortkey", which is a positive or negative
|
|
number (-255 to 255) that defines where in the list this particular
|
|
milestone appears. This is because milestones often do not
|
|
occur in alphanumeric order For example, "Future" might be
|
|
after "Release 1.2". Select "Add".</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>From the Edit product screen, you can enter the URL of a
|
|
page which gives information about your milestones and what
|
|
they mean. </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
|
|
>If you want your milestone document to be restricted so
|
|
that it can only be viewed by people in a particular Bugzilla
|
|
group, the best way is to attach the document to a bug in that
|
|
group, and make the URL the URL of that attachment.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="voting">5.4. Voting</H1
|
|
><P
|
|
>Voting allows users to be given a pot of votes which they can allocate
|
|
to bugs, to indicate that they'd like them fixed.
|
|
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
|
|
>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
|
|
><EM
|
|
>Maximum Votes per person</EM
|
|
>:
|
|
Setting this field to "0" disables voting.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><EM
|
|
>Maximum Votes a person can put on a single
|
|
bug"</EM
|
|
>:
|
|
It should probably be some number lower than the
|
|
"Maximum votes per person". Don't set this field to "0" if
|
|
"Maximum votes per person" is non-zero; that doesn't make
|
|
any sense.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><EM
|
|
>Number of votes a bug in this product needs to
|
|
automatically get out of the UNCONFIRMED state</EM
|
|
>:
|
|
Setting this field to "0" disables the automatic move of
|
|
bugs from UNCONFIRMED to NEW.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Once you have adjusted the values to your preference, click
|
|
"Update".</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="groups">5.5. Groups and Group Security</H1
|
|
><P
|
|
>Groups allow the administrator
|
|
to isolate bugs or products that should only be seen by certain people.
|
|
There are two types of group - Generic Groups, and Product-Based Groups.
|
|
</P
|
|
><P
|
|
> Product-Based Groups are matched with products, and allow you to restrict
|
|
access to bugs on a per-product basis. They are enabled using the
|
|
usebuggroups Param. Turning on the usebuggroupsentry
|
|
Param will mean bugs automatically get added to their product group when
|
|
filed.
|
|
</P
|
|
><P
|
|
> Generic Groups have no special relationship to products;
|
|
you create them, and put bugs in them
|
|
as required. One example of the use of Generic Groups
|
|
is Mozilla's "Security" group,
|
|
into which security-sensitive bugs are placed until fixed. Only the
|
|
Mozilla Security Team are members of this group.
|
|
</P
|
|
><P
|
|
>To create Generic Groups:</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Select the "groups"
|
|
link in the footer.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Take a moment to understand the instructions on the "Edit
|
|
Groups" screen, then select the "Add Group" link.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Fill out the "New Name", "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.
|
|
When you have finished, click "Add".</P
|
|
></LI
|
|
></OL
|
|
><P
|
|
>To use Product-Based Groups:</P
|
|
><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
|
|
>XXX is this still true?
|
|
"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
|
|
>In future, when you create a Product, a matching group will be
|
|
automatically created. If you need to add a Product Group to
|
|
a Product which was created before you turned on usebuggroups,
|
|
then simply create a new group, as outlined above, with the
|
|
same name as the Product.</P
|
|
></LI
|
|
></OL
|
|
><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
|
|
>Bugzilla currently has a limit of 64 groups per installation. If
|
|
you have more than about 50 products, you should consider
|
|
running multiple Bugzillas. Ask in the newsgroup for other
|
|
suggestions for working around this restriction.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
> Note that group permissions are such that you need to be a member
|
|
of <EM
|
|
>all</EM
|
|
> the groups a bug is in, for whatever
|
|
reason, to see that bug.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="security">5.6. Bugzilla Security</H1
|
|
><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
|
|
>Poorly-configured MySQL and Bugzilla installations have
|
|
given attackers full access to systems in the past. Please take these
|
|
guidelines seriously, even for Bugzilla machines hidden away behind
|
|
your firewall. 80% of all computer trespassers are insiders, not
|
|
anonymous crackers.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><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
|
|
>These instructions must, of necessity, be somewhat vague since
|
|
Bugzilla runs on so many different platforms. If you have refinements
|
|
of these directions for specific platforms, please submit them to
|
|
<A
|
|
HREF="mailto://mozilla-webtools@mozilla.org"
|
|
TARGET="_top"
|
|
> mozilla-webtools@mozilla.org</A
|
|
>
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>To secure your installation:
|
|
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Ensure you are running at least MysQL version 3.22.32 or newer.
|
|
Earlier versions had notable security holes and (from a security
|
|
point of view) poor default configuration choices.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <EM
|
|
>There is no substitute for understanding the tools on your
|
|
system!</EM
|
|
>
|
|
|
|
Read
|
|
<A
|
|
HREF="http://www.mysql.com/doc/P/r/Privilege_system.html"
|
|
TARGET="_top"
|
|
> The MySQL Privilege System</A
|
|
>
|
|
until you can recite it from memory!</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Lock down /etc/inetd.conf. Heck, disable inet entirely on this
|
|
box. It should only listen to port 25 for Sendmail and port 80 for
|
|
Apache.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Do not run Apache as
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"nobody"</SPAN
|
|
>
|
|
|
|
. This will require very lax permissions in your Bugzilla
|
|
directories. Run it, instead, as a user with a name, set via your
|
|
httpd.conf file.
|
|
<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
|
|
> <SPAN
|
|
CLASS="QUOTE"
|
|
>"nobody"</SPAN
|
|
>
|
|
|
|
is a real user on UNIX systems. Having a process run as user id
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"nobody"</SPAN
|
|
>
|
|
|
|
is absolutely no protection against system crackers versus using
|
|
any other user account. As a general security measure, I recommend
|
|
you create unique user ID's for each daemon running on your system
|
|
and, if possible, use "chroot" to jail that process away from the
|
|
rest of your system.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Ensure you have adequate access controls for the
|
|
$BUGZILLA_HOME/data/ directory, as well as the
|
|
$BUGZILLA_HOME/localconfig file.
|
|
The localconfig file stores your "bugs" database account password.
|
|
In addition, some
|
|
files under $BUGZILLA_HOME/data/ store sensitive information.
|
|
</P
|
|
><P
|
|
>Bugzilla provides default .htaccess files to protect the most
|
|
common Apache installations. However, you should verify these are
|
|
adequate according to the site-wide security policy of your web
|
|
server, and ensure that the .htaccess files are allowed to
|
|
"override" default permissions set in your Apache configuration
|
|
files. Covering Apache security is beyond the scope of this Guide;
|
|
please consult the Apache documentation for details.</P
|
|
><P
|
|
>If you are using a web server that does not support the
|
|
.htaccess control method,
|
|
<EM
|
|
>you are at risk!</EM
|
|
>
|
|
|
|
After installing, check to see if you can view the file
|
|
"localconfig" in your web browser (e.g.:
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/localconfig"
|
|
TARGET="_top"
|
|
> http://bugzilla.mozilla.org/localconfig</A
|
|
>
|
|
|
|
). If you can read the contents of this file, your web server has
|
|
not secured your bugzilla directory properly and you must fix this
|
|
problem before deploying Bugzilla. If, however, it gives you a
|
|
"Forbidden" error, then it probably respects the .htaccess
|
|
conventions and you are good to go.</P
|
|
><P
|
|
>When you run checksetup.pl, the script will attempt to modify
|
|
various permissions on files which Bugzilla uses. If you do not have
|
|
a webservergroup set in the localconfig file, then Bugzilla will have
|
|
to make certain files world readable and/or writable.
|
|
<EM
|
|
>THIS IS INSECURE!</EM
|
|
>
|
|
|
|
. This means that anyone who can get access to your system can do
|
|
whatever they want to your Bugzilla installation.</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
|
|
>This also means that if your webserver runs all cgi scripts
|
|
as the same user/group, anyone on the system who can run cgi
|
|
scripts will be able to take control of your Bugzilla
|
|
installation.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>On Apache, you can use .htaccess files to protect access to
|
|
these directories, as outlined in
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=57161"
|
|
TARGET="_top"
|
|
>Bug
|
|
57161</A
|
|
>
|
|
|
|
for the localconfig file, and
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=65572"
|
|
TARGET="_top"
|
|
>Bug
|
|
65572</A
|
|
>
|
|
|
|
for adequate protection in your data/ directory.</P
|
|
><P
|
|
>Note the instructions which follow are Apache-specific. If you
|
|
use IIS, Netscape, or other non-Apache web servers, please consult
|
|
your system documentation for how to secure these files from being
|
|
transmitted to curious users.</P
|
|
><P
|
|
>Place the following text into a file named ".htaccess",
|
|
readable by your web server, in your $BUGZILLA_HOME/data directory.
|
|
<P
|
|
CLASS="literallayout"
|
|
><Files comments> allow from all </Files><br>
|
|
deny from all</P
|
|
>
|
|
</P
|
|
><P
|
|
>Place the following text into a file named ".htaccess",
|
|
readable by your web server, in your $BUGZILLA_HOME/ directory.
|
|
<P
|
|
CLASS="literallayout"
|
|
><Files localconfig> deny from all </Files><br>
|
|
allow from all</P
|
|
>
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="cust-templates">5.7. Template Customisation</H1
|
|
><P
|
|
> One of the large changes for 2.16 was the templatisation of the
|
|
entire user-facing UI, using the
|
|
<A
|
|
HREF="http://www.template-toolkit.org"
|
|
TARGET="_top"
|
|
>Template Toolkit</A
|
|
>.
|
|
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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN1539">5.7.1. What to Edit</H2
|
|
><P
|
|
> There are two different ways of editing of Bugzilla's templates,
|
|
and which you use depends mainly on how you upgrade Bugzilla. The
|
|
template directory structure is that there's a top level directory,
|
|
<TT
|
|
CLASS="filename"
|
|
>template</TT
|
|
>, which contains a directory for
|
|
each installed localisation. The default English templates are
|
|
therefore in <TT
|
|
CLASS="filename"
|
|
>en</TT
|
|
>. Underneath that, there
|
|
is the <TT
|
|
CLASS="filename"
|
|
>default</TT
|
|
> directory and optionally the
|
|
<TT
|
|
CLASS="filename"
|
|
>custom</TT
|
|
> directory. The <TT
|
|
CLASS="filename"
|
|
>default</TT
|
|
>
|
|
directory contains all the templates shipped with Bugzilla, whereas
|
|
the <TT
|
|
CLASS="filename"
|
|
>custom</TT
|
|
> directory does not exist at first and
|
|
must be created if you want to use it.
|
|
</P
|
|
><P
|
|
> The first method of making customisations is to directly edit the
|
|
templates in <TT
|
|
CLASS="filename"
|
|
>template/en/default</TT
|
|
>. This is
|
|
probably the best method for small changes if you are going to use
|
|
the CVS method of upgrading, because if you then execute a
|
|
<B
|
|
CLASS="command"
|
|
>cvs update</B
|
|
>, any template fixes will get
|
|
automagically merged into your modified versions.
|
|
</P
|
|
><P
|
|
> If you use this method, your installation will break if CVS conflicts
|
|
occur.
|
|
</P
|
|
><P
|
|
> The other method is to copy the templates into a mirrored directory
|
|
structure under <TT
|
|
CLASS="filename"
|
|
>template/en/custom</TT
|
|
>. The templates
|
|
in this directory automatically override those in default.
|
|
This is the technique you
|
|
need to use if you use the overwriting method of upgrade, because
|
|
otherwise your changes will be lost. This method is also better if
|
|
you are using the CVS method of upgrading and 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.
|
|
</P
|
|
><P
|
|
> If you use this method, your installation may break if incompatible
|
|
changes are made to the template interface. If such changes are made
|
|
they will be documented in the release notes, provided you are using a
|
|
stable release of Bugzilla. If you use using unstable code, you will
|
|
need to deal with this one yourself, although if possible the changes
|
|
will be mentioned before they occur in the deprecations section of the
|
|
previous stable release's release notes.
|
|
</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
|
|
> Don't directly edit the compiled templates in
|
|
<TT
|
|
CLASS="filename"
|
|
>data/template/*</TT
|
|
> - your
|
|
changes will be lost when Template Toolkit recompiles them.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN1558">5.7.2. How To Edit Templates</H2
|
|
><P
|
|
> 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
|
|
<A
|
|
HREF="http://www.template-toolkit.org"
|
|
TARGET="_top"
|
|
>Template Toolkit home
|
|
page</A
|
|
>. However, you should particularly remember (for security
|
|
reasons) to always HTML filter things which come from the database or
|
|
user input, to prevent cross-site scripting attacks.
|
|
</P
|
|
><P
|
|
> However, one thing you should take particular care about is the need
|
|
to properly HTML filter data that has been passed into the template.
|
|
This means that if the data can possibly contain special HTML characters
|
|
such as <, and the data was not intended to be HTML, they need to be
|
|
converted to entity form, ie &lt;. You use the 'html' filter in the
|
|
Template Toolkit to do this. If you fail to do this, you may open up
|
|
your installation to cross-site scripting attacks.
|
|
</P
|
|
><P
|
|
> Also note that Bugzilla adds a few filters of its own, that are not
|
|
in standard Template Toolkit. In particular, the 'url_quote' filter
|
|
can convert characters that are illegal or have special meaning in URLs,
|
|
such as &, to the encoded form, ie %26. This actually encodes most
|
|
characters (but not the common ones such as letters and numbers and so
|
|
on), including the HTML-special characters, so there's never a need to
|
|
HTML filter afterwards.
|
|
</P
|
|
><P
|
|
> Editing templates is a good way of doing a "poor man's custom fields".
|
|
For example, if you don't use the Status Whiteboard, but want to have
|
|
a free-form text entry box for "Build Identifier", then you can just
|
|
edit the templates to change the field labels. It's still be called
|
|
status_whiteboard internally, but your users don't need to know that.
|
|
</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
|
|
> If you are making template changes that you intend on submitting back
|
|
for inclusion in standard Bugzilla, you should read the relevant
|
|
sections of the
|
|
<A
|
|
HREF="http://www.bugzilla.org/developerguide.html"
|
|
TARGET="_top"
|
|
>Developers'
|
|
Guide</A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN1568">5.7.3. Template Formats</H2
|
|
><P
|
|
> 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 <TT
|
|
CLASS="filename"
|
|
>&format=simple</TT
|
|
> to a buglist.cgi
|
|
URL on your Bugzilla installation.) This
|
|
mechanism, called template 'formats', is extensible.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> Write your template in whatever markup or text style is appropriate.
|
|
</P
|
|
><P
|
|
> You now need to decide what content type you want your template
|
|
served as. Open up the <TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
> file and find the
|
|
<TT
|
|
CLASS="filename"
|
|
>$contenttypes</TT
|
|
>
|
|
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.
|
|
</P
|
|
><P
|
|
> Save the template as <TT
|
|
CLASS="filename"
|
|
><stubname>-<formatname>.<contenttypetag>.tmpl</TT
|
|
>.
|
|
Try out the template by calling the CGI as
|
|
<TT
|
|
CLASS="filename"
|
|
><cginame>.cgi?format=<formatname></TT
|
|
> .
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN1581">5.7.4. Particular Templates</H2
|
|
><P
|
|
> There are a few templates you may be particularly interested in
|
|
customising for your installation.
|
|
</P
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>index.html.tmpl</B
|
|
>:
|
|
This is the Bugzilla front page.
|
|
</P
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>global/header.html.tmpl</B
|
|
>:
|
|
This defines the header that goes on all Bugzilla pages.
|
|
The header includes the banner, which is what appears to users
|
|
and is probably what you want to edit instead. However the
|
|
header also includes the HTML HEAD section, so you could for
|
|
example add a stylesheet or META tag by editing the header.
|
|
</P
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>global/banner.html.tmpl</B
|
|
>:
|
|
This contains the "banner", the part of the header that appears
|
|
at the top of all Bugzilla pages. The default banner is reasonably
|
|
barren, so you'll probably want to customise this to give your
|
|
installation a distinctive look and feel. It is recommended you
|
|
preserve the Bugzilla version number in some form so the version
|
|
you are running can be determined, and users know what docs to read.
|
|
</P
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>global/footer.html.tmpl</B
|
|
>:
|
|
This defines the footer that goes on all Bugzilla pages. Editing
|
|
this is another way to quickly get a distinctive look and feel for
|
|
your Bugzilla installation.
|
|
</P
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>bug/create/user-message.html.tmpl</B
|
|
>:
|
|
This is a message that appears near the top of the bug reporting page.
|
|
By modifying this, you can tell your users how they should report
|
|
bugs.
|
|
</P
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>bug/create/create.html.tmpl</B
|
|
> and
|
|
<B
|
|
CLASS="command"
|
|
>bug/create/comment.txt.tmpl</B
|
|
>:
|
|
You may wish to get bug submitters to give certain bits of structured
|
|
information, each in a separate input widget, for which there is not a
|
|
field in the database. The bug entry system has been designed in an
|
|
extensible fashion to enable you to define arbitrary fields and widgets,
|
|
and have their values appear formatted in the initial
|
|
Description, rather than in database fields. An example of this
|
|
is the mozilla.org
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/enter_bug.cgi?format=guided"
|
|
TARGET="_top"
|
|
>guided
|
|
bug submission form</A
|
|
>.
|
|
</P
|
|
><P
|
|
> To make this work, create a custom template for
|
|
<TT
|
|
CLASS="filename"
|
|
>enter_bug.cgi</TT
|
|
> (the default template, on which you
|
|
could base it, is <TT
|
|
CLASS="filename"
|
|
>create.html.tmpl</TT
|
|
>),
|
|
and either call it <TT
|
|
CLASS="filename"
|
|
>create.html.tmpl</TT
|
|
> or use a format and
|
|
call it <TT
|
|
CLASS="filename"
|
|
>create-<formatname>.html.tmpl</TT
|
|
>.
|
|
Put it in the <TT
|
|
CLASS="filename"
|
|
>custom/bug/create</TT
|
|
>
|
|
directory. In it, add widgets for each piece of information you'd like
|
|
collected - such as a build number, or set of steps to reproduce.
|
|
</P
|
|
><P
|
|
> Then, create a template like
|
|
<TT
|
|
CLASS="filename"
|
|
>custom/bug/create/comment.txt.tmpl</TT
|
|
>, also named
|
|
after your format if you are using one, which
|
|
references the form fields you have created. When a bug report is
|
|
submitted, the initial comment attached to the bug report will be
|
|
formatted according to the layout of this template.
|
|
</P
|
|
><P
|
|
> For example, if your enter_bug template had a field
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
><input type="text" name="buildid" size="30"></PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
and then your comment.txt.tmpl had
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>BuildID: [% form.buildid %]</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
then
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
>BuildID: 20020303</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
would appear in the initial checkin comment.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="upgrading">5.8. Upgrading to New Releases</H1
|
|
><P
|
|
>A plain Bugzilla is fairly easy to upgrade from one version to a
|
|
newer one. Always read the release notes to see if there are any issues
|
|
that you might need to take note of. It is recommended that you take a
|
|
backup of your database and your entire Bugzilla installation before attempting an
|
|
upgrade. You can upgrade a 'clean' installation by untarring a new
|
|
tarball over the old installation. If you are upgrading from 2.12 or
|
|
later, and have cvs installed, you can type <TT
|
|
CLASS="filename"
|
|
>cvs -z3 update</TT
|
|
>,
|
|
and resolve conflicts if there are any.
|
|
</P
|
|
><P
|
|
>However, things get a bit more complicated if you've made
|
|
changes to Bugzilla's code. In this case, you may have to re-make or
|
|
reapply those changes. One good method is to take a diff of your customised
|
|
version against the original, so you can survey all that you've changed.
|
|
Hopefully, templatisation will reduce the need for
|
|
this in the future.</P
|
|
><P
|
|
>From version 2.8 onwards, Bugzilla databases can be automatically
|
|
carried forward during an upgrade. However, because the developers of
|
|
Bugzilla are constantly adding new
|
|
tables, columns and fields, you'll probably get SQL errors if you just
|
|
update the code and attempt to use Bugzilla. Always run the
|
|
<TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
>
|
|
script whenever you upgrade your installation.</P
|
|
><P
|
|
>If you are running Bugzilla version 2.8 or lower, and wish to
|
|
upgrade to the latest version, please consult the file,
|
|
"UPGRADING-pre-2.8" in the Bugzilla root directory after untarring the
|
|
archive.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="integration">5.9. Integrating Bugzilla with Third-Party Tools</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="bonsai">5.9.1. Bonsai</H2
|
|
><P
|
|
>Bonsai is a web-based tool for managing
|
|
<A
|
|
HREF="#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. Bonsai
|
|
also integrates with
|
|
<A
|
|
HREF="#tinderbox"
|
|
>Tinderbox, the Mozilla automated build management system</A
|
|
>.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="cvs">5.9.2. CVS</H2
|
|
><P
|
|
>CVS integration is best accomplished, at this point, using the
|
|
Bugzilla Email Gateway.</P
|
|
><P
|
|
>Follow the instructions in this Guide 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 CVSZilla 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
|
|
>.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="scm">5.9.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"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="tinderbox">5.9.4. Tinderbox/Tinderbox2</H2
|
|
><P
|
|
>We need Tinderbox integration information.</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="appendix"
|
|
><HR><H1
|
|
><A
|
|
NAME="faq">Appendix A. The Bugzilla FAQ</H1
|
|
><P
|
|
> This FAQ includes questions not covered elsewhere in the Guide.
|
|
</P
|
|
><DIV
|
|
CLASS="qandaset"
|
|
><DL
|
|
><DT
|
|
>1. <A
|
|
HREF="#faq-general"
|
|
>General Questions</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>A.1.1. <A
|
|
HREF="#AEN1649"
|
|
> Where can I find information about Bugzilla?</A
|
|
></DT
|
|
><DT
|
|
>A.1.2. <A
|
|
HREF="#AEN1655"
|
|
> What license is Bugzilla distributed under?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.3. <A
|
|
HREF="#AEN1661"
|
|
> How do I get commercial support for Bugzilla?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.4. <A
|
|
HREF="#AEN1668"
|
|
> What major companies or projects are currently using Bugzilla
|
|
for bug-tracking?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.5. <A
|
|
HREF="#AEN1693"
|
|
> Who maintains Bugzilla?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.6. <A
|
|
HREF="#AEN1699"
|
|
> How does Bugzilla stack up against other bug-tracking databases?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.7. <A
|
|
HREF="#AEN1705"
|
|
> Why doesn't Bugzilla offer this or that feature or compatability
|
|
with this other tracking software?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.8. <A
|
|
HREF="#AEN1712"
|
|
> Why MySQL? I'm interested in seeing Bugzilla run on
|
|
Oracle/Sybase/Msql/PostgreSQL/MSSQL.
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.9. <A
|
|
HREF="#AEN1717"
|
|
> Why do the scripts say "/usr/bonsaitools/bin/perl" instead of
|
|
"/usr/bin/perl" or something else?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.10. <A
|
|
HREF="#AEN1723"
|
|
> Is there an easy way to change the Bugzilla cookie name?
|
|
</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>2. <A
|
|
HREF="#faq-phb"
|
|
>Managerial Questions</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>A.2.1. <A
|
|
HREF="#AEN1733"
|
|
> Is Bugzilla web-based, or do you have to have specific software or
|
|
a specific operating system on your machine?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.2. <A
|
|
HREF="#AEN1738"
|
|
> Can Bugzilla integrate with
|
|
Perforce (SCM software)?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.3. <A
|
|
HREF="#AEN1743"
|
|
> Does Bugzilla allow the user to track multiple projects?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.4. <A
|
|
HREF="#AEN1748"
|
|
> 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="#AEN1753"
|
|
> 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="#AEN1758"
|
|
> 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?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.7. <A
|
|
HREF="#AEN1765"
|
|
> 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.8. <A
|
|
HREF="#AEN1772"
|
|
> Is there email notification and if so, what do you see when you get an
|
|
email?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.9. <A
|
|
HREF="#AEN1777"
|
|
> 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.10. <A
|
|
HREF="#AEN1782"
|
|
> Do users have to have any particular
|
|
type of email application?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.11. <A
|
|
HREF="#AEN1789"
|
|
> 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
|
|
and export that data to MS Excel, could I do that?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.12. <A
|
|
HREF="#AEN1797"
|
|
> Has anyone converted Bugzilla to another language to be used in other
|
|
countries? Is it localizable?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.13. <A
|
|
HREF="#AEN1802"
|
|
> Can a user create and save reports? Can they do this in Word format?
|
|
Excel format?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.14. <A
|
|
HREF="#AEN1807"
|
|
> Does Bugzilla have the ability to search by word, phrase, compound
|
|
search?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.15. <A
|
|
HREF="#AEN1812"
|
|
> 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?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.16. <A
|
|
HREF="#AEN1817"
|
|
> Are there any backup features provided?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.17. <A
|
|
HREF="#AEN1823"
|
|
> Can users be on the system while a backup is in progress?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.18. <A
|
|
HREF="#AEN1828"
|
|
> 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
|
|
individuals would we need to hire and how much would that cost vs buying an
|
|
"Out-of-the-Box" solution.
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.19. <A
|
|
HREF="#AEN1834"
|
|
> 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
|
|
a multi-week install process, plus a full time job for 1 person, 2 people,
|
|
etc?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.20. <A
|
|
HREF="#AEN1839"
|
|
> 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
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>3. <A
|
|
HREF="#faq-security"
|
|
>Bugzilla Security</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>A.3.1. <A
|
|
HREF="#AEN1846"
|
|
> 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.3.2. <A
|
|
HREF="#AEN1852"
|
|
> Are there any security problems with Bugzilla?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.3.3. <A
|
|
HREF="#AEN1857"
|
|
> 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.
|
|
</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>4. <A
|
|
HREF="#faq-email"
|
|
>Bugzilla Email</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>A.4.1. <A
|
|
HREF="#AEN1864"
|
|
> 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.4.2. <A
|
|
HREF="#AEN1869"
|
|
> 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.4.3. <A
|
|
HREF="#AEN1874"
|
|
> I want whineatnews.pl to whine at something more, or other than, only new
|
|
bugs. How do I do it?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.4.4. <A
|
|
HREF="#AEN1880"
|
|
> 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.4.5. <A
|
|
HREF="#AEN1887"
|
|
> How do I set up the email interface to submit/change bugs via email?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.4.6. <A
|
|
HREF="#AEN1892"
|
|
> Email takes FOREVER to reach me from Bugzilla -- it's extremely slow.
|
|
What gives?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.4.7. <A
|
|
HREF="#AEN1899"
|
|
> How come email from Bugzilla changes never reaches me?
|
|
</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>5. <A
|
|
HREF="#faq-db"
|
|
>Bugzilla Database</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>A.5.1. <A
|
|
HREF="#AEN1907"
|
|
> I've heard Bugzilla can be used with Oracle?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.2. <A
|
|
HREF="#AEN1912"
|
|
> I think my database might be corrupted, or contain invalid entries. What
|
|
do I do?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.3. <A
|
|
HREF="#AEN1920"
|
|
> I want to manually edit some entries in my database. How?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.4. <A
|
|
HREF="#AEN1925"
|
|
> I try to add myself as a user, but Bugzilla always tells me my password is wrong.
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.5. <A
|
|
HREF="#AEN1930"
|
|
> I think I've set up MySQL permissions correctly, but Bugzilla still can't
|
|
connect.
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.6. <A
|
|
HREF="#AEN1935"
|
|
> How do I synchronize bug information among multiple different Bugzilla
|
|
databases?
|
|
</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>6. <A
|
|
HREF="#faq-nt"
|
|
>Bugzilla and Win32</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>A.6.1. <A
|
|
HREF="#AEN1944"
|
|
> What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.6.2. <A
|
|
HREF="#AEN1949"
|
|
> Is there a "Bundle::Bugzilla" equivalent for Win32?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.6.3. <A
|
|
HREF="#AEN1954"
|
|
> CGI's are failing with a "something.cgi is not a valid Windows NT
|
|
application" error. Why?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.6.4. <A
|
|
HREF="#AEN1962"
|
|
> I'm having trouble with the perl modules for NT not being able to talk to
|
|
to the database.
|
|
</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>7. <A
|
|
HREF="#faq-use"
|
|
>Bugzilla Usage</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>A.7.1. <A
|
|
HREF="#AEN1983"
|
|
> How do I change my user name (email address) in Bugzilla?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.7.2. <A
|
|
HREF="#AEN1988"
|
|
> The query page is very confusing. Isn't there a simpler way to query?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.7.3. <A
|
|
HREF="#AEN1993"
|
|
> 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.7.4. <A
|
|
HREF="#AEN2003"
|
|
> I can't upload anything into the database via the "Create Attachment"
|
|
link. What am I doing wrong?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.7.5. <A
|
|
HREF="#AEN2008"
|
|
> Email submissions to Bugzilla that have attachments end up asking me to
|
|
save it as a "cgi" file.
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.7.6. <A
|
|
HREF="#AEN2013"
|
|
> How do I change a keyword in Bugzilla, once some bugs are using it?
|
|
</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>8. <A
|
|
HREF="#faq-hacking"
|
|
>Bugzilla Hacking</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>A.8.1. <A
|
|
HREF="#AEN2020"
|
|
> What bugs are in Bugzilla right now?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.8.2. <A
|
|
HREF="#AEN2029"
|
|
> 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.8.3. <A
|
|
HREF="#AEN2035"
|
|
> What's the best way to submit patches? What guidelines should I follow?
|
|
</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
></DL
|
|
><DIV
|
|
CLASS="qandadiv"
|
|
><H3
|
|
><A
|
|
NAME="faq-general">1. General Questions</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1649"><B
|
|
>A.1.1. </B
|
|
>
|
|
Where can I find information about Bugzilla?</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
You can stay up-to-date with the latest Bugzilla
|
|
information at <A
|
|
HREF="http://www.bugzilla.org/"
|
|
TARGET="_top"
|
|
> http://www.bugzilla.org/</A
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1655"><B
|
|
>A.1.2. </B
|
|
>
|
|
What license is Bugzilla distributed under?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Bugzilla is covered by the Mozilla Public License.
|
|
See details at <A
|
|
HREF="http://www.mozilla.org/MPL/"
|
|
TARGET="_top"
|
|
> http://www.mozilla.org/MPL/</A
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1661"><B
|
|
>A.1.3. </B
|
|
>
|
|
How do I get commercial support for Bugzilla?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
<A
|
|
HREF="http://www.collab.net/"
|
|
TARGET="_top"
|
|
>www.collab.net</A
|
|
> offers
|
|
Bugzilla as part of their standard offering to large projects.
|
|
They do have some minimum fees that are pretty hefty, and generally
|
|
aren't interested in small projects.
|
|
</P
|
|
><P
|
|
> There are several experienced
|
|
Bugzilla hackers on the mailing list/newsgroup who are willing
|
|
to make themselves available for generous compensation.
|
|
Try sending a message to the mailing list asking for a volunteer.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1668"><B
|
|
>A.1.4. </B
|
|
>
|
|
What major companies or projects are currently using Bugzilla
|
|
for bug-tracking?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
There are <EM
|
|
>dozens</EM
|
|
> of major comapanies with public
|
|
Bugzilla sites to track bugs in their products. A few include:
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
>Netscape/AOL</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Mozilla.org</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>NASA</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>AtHome Corporation</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Red Hat Software</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>SuSe Corp</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>The Horde Project</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>AbiSource</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Real Time Enterprises, Inc</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Eggheads.org</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Strata Software</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>RockLinux</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Creative Labs (makers of SoundBlaster)</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>The Apache Foundation</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>The Gnome Foundation</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Ximian</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
>Linux-Mandrake</TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
</P
|
|
><P
|
|
> Suffice to say, there are more than enough huge projects using Bugzilla
|
|
that we can safely say it's extremely popular.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1693"><B
|
|
>A.1.5. </B
|
|
>
|
|
Who maintains Bugzilla?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
A
|
|
<A
|
|
HREF="http://www.bugzilla.org/who_we_are.html"
|
|
TARGET="_top"
|
|
>core team</A
|
|
>,
|
|
led by Dave Miller (justdave@syndicomm.com).
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1699"><B
|
|
>A.1.6. </B
|
|
>
|
|
How does Bugzilla stack up against other bug-tracking databases?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
We can't find any head-to-head comparisons of Bugzilla against
|
|
other defect-tracking software. If you know of one, please
|
|
get in touch. However, from the author's personal
|
|
experience with other bug-trackers, Bugzilla offers
|
|
superior performance on commodity hardware, better price
|
|
(free!), more developer- friendly features (such as stored
|
|
queries, email integration, and platform independence),
|
|
improved scalability, open source code, greater
|
|
flexibility, and superior ease-of-use.
|
|
</P
|
|
><P
|
|
> If you happen to be a commercial bug-tracker vendor, please
|
|
step forward with a list of advantages your product has over
|
|
Bugzilla. We'd be happy to include it in the "Competitors"
|
|
section.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1705"><B
|
|
>A.1.7. </B
|
|
>
|
|
Why doesn't Bugzilla offer this or that feature or compatability
|
|
with this other tracking software?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
It may be that the support has not been built yet, or that you
|
|
have not yet found it. Bugzilla is making tremendous strides in
|
|
usability, customizability, scalability, and user interface. It
|
|
is widely considered the most complete and popular open-source
|
|
bug-tracking software in existence.
|
|
</P
|
|
><P
|
|
> That doesn't mean it can't use improvement!
|
|
You can help the project along by either hacking a patch yourself
|
|
that supports the functionality you require, or else submitting a
|
|
"Request for Enhancement" (RFE) using the bug submission interface
|
|
at <A
|
|
HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla"
|
|
TARGET="_top"
|
|
>bugzilla.mozilla.org</A
|
|
>.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1712"><B
|
|
>A.1.8. </B
|
|
>
|
|
Why MySQL? I'm interested in seeing Bugzilla run on
|
|
Oracle/Sybase/Msql/PostgreSQL/MSSQL.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
There is DB-independence work afoot. PostgreSQL support is planned
|
|
for 2.18, and full DB-independence can't be far further on.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1717"><B
|
|
>A.1.9. </B
|
|
>
|
|
Why do the scripts say "/usr/bonsaitools/bin/perl" instead of
|
|
"/usr/bin/perl" or something else?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Mozilla.org uses /usr/bonsaitools/bin/perl, because originally
|
|
Terry wanted a place to put a version of Perl and other tools
|
|
that was strictly under his control.
|
|
</P
|
|
><P
|
|
> We always recommend that, if possible, you keep the path
|
|
as /usr/bonsaitools/bin/perl, and simply add symlink.
|
|
This will make upgrading
|
|
your Bugzilla much easier in the future.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1723"><B
|
|
>A.1.10. </B
|
|
>
|
|
Is there an easy way to change the Bugzilla cookie name?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
At present, no.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandadiv"
|
|
><H3
|
|
><A
|
|
NAME="faq-phb">2. Managerial Questions</H3
|
|
><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
|
|
> Questions likely to be asked by managers. :-)
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1733"><B
|
|
>A.2.1. </B
|
|
>
|
|
Is Bugzilla web-based, or do you have to have specific software or
|
|
a specific operating system on your machine?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
It is web and e-mail based. You can edit bugs by sending specially
|
|
formatted email to a properly configured Bugzilla, or control via the web.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1738"><B
|
|
>A.2.2. </B
|
|
>
|
|
Can Bugzilla integrate with
|
|
Perforce (SCM software)?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes! You can find more information elsewhere in "The Bugzilla
|
|
Guide" in the "Integration with Third-Party Products" section.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1743"><B
|
|
>A.2.3. </B
|
|
>
|
|
Does Bugzilla allow the user to track multiple projects?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Absolutely! You can track any number of Products (although you
|
|
are limited to about 55 or so if
|
|
you are using Product-Based Groups), that can each be composed of any
|
|
number of Components.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1748"><B
|
|
>A.2.4. </B
|
|
>
|
|
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?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1753"><B
|
|
>A.2.5. </B
|
|
>
|
|
Does Bugzilla allow attachments (text, screenshots, URLs etc)? If yes,
|
|
are there any that are NOT allowed?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes - any sort of attachment is allowed, although administrators can
|
|
configure a maximum size.
|
|
There are many specific MIME-types that are pre-defined by Bugzilla,
|
|
but you may specify any arbitrary MIME-type you need when you
|
|
upload the file.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1758"><B
|
|
>A.2.6. </B
|
|
>
|
|
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?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes. However, modifying some fields, notably those related to bug
|
|
progression states, also require adjusting the program logic to
|
|
compensate for the change.
|
|
</P
|
|
><P
|
|
> There is no GUI for adding fields to Bugzilla at this
|
|
time. You can follow development of this feature at
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=91037"
|
|
TARGET="_top"
|
|
>http://bugzilla.mozilla.org/show_bug.cgi?id=91037</A
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1765"><B
|
|
>A.2.7. </B
|
|
>
|
|
Does Bugzilla provide any reporting features, metrics, graphs, etc? You
|
|
know, the type of stuff that management likes to see. :)
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes. Look at <A
|
|
HREF="http://bugzilla.mozilla.org/reports.cgi"
|
|
TARGET="_top"
|
|
> http://bugzilla.mozilla.org/reports.cgi</A
|
|
> for basic reporting
|
|
and graphing facilities.
|
|
</P
|
|
><P
|
|
> For more advanced reporting, I recommend hooking up a professional
|
|
reporting package, such as Crystal Reports, and use ODBC to access
|
|
the MySQL database. You can do a lot through the Query page of
|
|
Bugzilla as well, but right now Advanced Reporting is much
|
|
better accomplished through third-party utilities that can
|
|
interface with the database directly.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1772"><B
|
|
>A.2.8. </B
|
|
>
|
|
Is there email notification and if so, what do you see when you get an
|
|
email?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Email notification is user-configurable. By default, the bug id and
|
|
Summary of the bug report accompany each email notification, along with
|
|
a list of the changes made.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1777"><B
|
|
>A.2.9. </B
|
|
>
|
|
Can email notification be set up to send to multiple
|
|
people, some on the To List, CC List, BCC List etc?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1782"><B
|
|
>A.2.10. </B
|
|
>
|
|
Do users have to have any particular
|
|
type of email application?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Bugzilla email is sent in plain text, the most compatible mail format
|
|
on the planet.
|
|
<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
|
|
> If you decide to use the bugzilla_email integration features
|
|
to allow Bugzilla to record responses to mail with the associated bug,
|
|
you may need to caution your users to set their mailer to "respond
|
|
to messages in the format in which they were sent". For security reasons
|
|
Bugzilla ignores HTML tags in comments, and if a user sends HTML-based
|
|
email into Bugzilla the resulting comment looks downright awful.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1789"><B
|
|
>A.2.11. </B
|
|
>
|
|
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
|
|
and export that data to MS Excel, could I do that?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Mozilla allows data export through a custom DTD in XML format.
|
|
It does not, however, export to specific formats other than the
|
|
XML Mozilla DTD. Importing the data into Excel or any other application
|
|
is left as an exercise for the reader.
|
|
</P
|
|
><P
|
|
> If you create import filters to other applications from Mozilla's XML,
|
|
please submit your modifications for inclusion in future Bugzilla
|
|
distributions.
|
|
</P
|
|
><P
|
|
> As for data import, any application can send data to Bugzilla through
|
|
the HTTP protocol, or through Mozilla's XML API. However, it seems
|
|
kind of silly to put another front-end in front of Bugzilla;
|
|
it makes more sense to create a simplified bug submission form in
|
|
HTML. You can find an excellent example at
|
|
<A
|
|
HREF="http://www.mozilla.org/quality/help/bugzilla-helper.html"
|
|
TARGET="_top"
|
|
> http://www.mozilla.org/quality/help/bugzilla-helper.html</A
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1797"><B
|
|
>A.2.12. </B
|
|
>
|
|
Has anyone converted Bugzilla to another language to be used in other
|
|
countries? Is it localizable?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
To a certain extent, yes. 2.16's templates mean that you can localise
|
|
the user-facing UI (and several projects are doing exactly that.) However,
|
|
error messages and the admin interface are currently not localisable.
|
|
This should be achieved by 2.18.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1802"><B
|
|
>A.2.13. </B
|
|
>
|
|
Can a user create and save reports? Can they do this in Word format?
|
|
Excel format?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes. No. No.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1807"><B
|
|
>A.2.14. </B
|
|
>
|
|
Does Bugzilla have the ability to search by word, phrase, compound
|
|
search?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
You have no idea. Bugzilla's query interface, particularly with the
|
|
advanced Boolean operators, is incredibly versatile.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1812"><B
|
|
>A.2.15. </B
|
|
>
|
|
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?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Bugzilla does not lock records. It provides mid-air collision detection,
|
|
and offers the offending user a choice of options to deal with the conflict.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1817"><B
|
|
>A.2.16. </B
|
|
>
|
|
Are there any backup features provided?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
MySQL, the database back-end for Bugzilla, allows hot-backup of data.
|
|
You can find strategies for dealing with backup considerations
|
|
at <A
|
|
HREF="http://www.mysql.com/doc/B/a/Backup.html"
|
|
TARGET="_top"
|
|
> http://www.mysql.com/doc/B/a/Backup.html</A
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1823"><B
|
|
>A.2.17. </B
|
|
>
|
|
Can users be on the system while a backup is in progress?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes. However, commits to the database must wait
|
|
until the tables are unlocked. Bugzilla databases are typically
|
|
very small, and backups routinely take less than a minute.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1828"><B
|
|
>A.2.18. </B
|
|
>
|
|
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
|
|
individuals would we need to hire and how much would that cost vs buying an
|
|
"Out-of-the-Box" solution.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
If Bugzilla is set up correctly from the start, continuing maintenance
|
|
needs are minimal and can be done easily using the web interface.
|
|
</P
|
|
><P
|
|
> Commercial Bug-tracking software typically costs somewhere upwards
|
|
of $20,000 or more for 5-10 floating licenses. Bugzilla consultation
|
|
is available from skilled members of the newsgroup. Simple questions
|
|
are answered there and then.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1834"><B
|
|
>A.2.19. </B
|
|
>
|
|
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
|
|
a multi-week install process, plus a full time job for 1 person, 2 people,
|
|
etc?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
It all depends on your level of commitment. Someone with much Bugzilla
|
|
experience can get you up and running in less than a day, and
|
|
your Bugzilla install can run untended for years. If your
|
|
Bugzilla strategy is critical to your business workflow, hire somebody
|
|
with reasonable UNIX or Perl skills to handle your process management and
|
|
bug-tracking maintenance & customization.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1839"><B
|
|
>A.2.20. </B
|
|
>
|
|
Is there any licensing fee or other fees for using Bugzilla? Any
|
|
out-of-pocket cost other than the bodies needed as identified above?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
No. MySQL asks, if you find their product valuable, that you purchase
|
|
a support contract from them that suits your needs.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandadiv"
|
|
><H3
|
|
><A
|
|
NAME="faq-security">3. Bugzilla Security</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1846"><B
|
|
>A.3.1. </B
|
|
>
|
|
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)?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Run MySQL like this: "mysqld --skip-grant-tables". Please remember <EM
|
|
>this
|
|
makes MySQL as secure as taping a $100 to the floor of a football stadium
|
|
bathroom for safekeeping.</EM
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1852"><B
|
|
>A.3.2. </B
|
|
>
|
|
Are there any security problems with Bugzilla?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
The Bugzilla code has undergone a reasonably complete security audit,
|
|
and user-facing CGIs run under Perl's taint mode. However,
|
|
it is recommended that you closely examine permissions on your Bugzilla
|
|
installation, and follow the recommended security guidelines found
|
|
in The Bugzilla Guide.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1857"><B
|
|
>A.3.3. </B
|
|
>
|
|
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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
This is a common problem, related to running out of file descriptors.
|
|
Simply add "ulimit -n unlimited" to the script which starts
|
|
mysqld.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandadiv"
|
|
><H3
|
|
><A
|
|
NAME="faq-email">4. Bugzilla Email</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1864"><B
|
|
>A.4.1. </B
|
|
>
|
|
I have a user who doesn't want to receive any more email from Bugzilla.
|
|
How do I stop it entirely for this user?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
The user should be able to set
|
|
this in user email preferences (uncheck all boxes.)
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1869"><B
|
|
>A.4.2. </B
|
|
>
|
|
I'm evaluating/testing Bugzilla, and don't want it to send email to
|
|
anyone but me. How do I do it?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Edit the "changedmail" Param. Replace "To:" with "X-Real-To:",
|
|
replace "Cc:" with "X-Real-CC:", and add a "To: <youremailaddress>".
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1874"><B
|
|
>A.4.3. </B
|
|
>
|
|
I want whineatnews.pl to whine at something more, or other than, only new
|
|
bugs. How do I do it?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Try Klaas Freitag's excellent patch for "whineatassigned" functionality.
|
|
You can find it at<A
|
|
HREF=" http://bugzilla.mozilla.org/show_bug.cgi?id=6679"
|
|
TARGET="_top"
|
|
> http://bugzilla.mozilla.org/show_bug.cgi?id=6679</A
|
|
>. This
|
|
patch is against an older version of Bugzilla, so you must apply
|
|
the diffs manually.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1880"><B
|
|
>A.4.4. </B
|
|
>
|
|
I don't like/want to use Procmail to hand mail off to bug_email.pl.
|
|
What alternatives do I have?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
You can call bug_email.pl directly from your aliases file, with
|
|
an entry like this:
|
|
<A
|
|
NAME="AEN1884"><BLOCKQUOTE
|
|
CLASS="BLOCKQUOTE"
|
|
><P
|
|
> bugzilla-daemon: "|/usr/local/bin/bugzilla/contrib/bug_email.pl"
|
|
</P
|
|
></BLOCKQUOTE
|
|
>
|
|
However, this is fairly nasty and subject to problems; you also
|
|
need to set up your smrsh (sendmail restricted shell) to allow
|
|
it. In a pinch, though, it can work.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1887"><B
|
|
>A.4.5. </B
|
|
>
|
|
How do I set up the email interface to submit/change bugs via email?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
You can find an updated README.mailif file in the contrib/ directory
|
|
of your Bugzilla distribution that walks you through the setup.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1892"><B
|
|
>A.4.6. </B
|
|
>
|
|
Email takes FOREVER to reach me from Bugzilla -- it's extremely slow.
|
|
What gives?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
If you are using an alternate Mail Transport Agent (MTA other than
|
|
sendmail), make sure the options given in the "processmail" and other
|
|
scripts for all
|
|
instances of "sendmail" are correct for your MTA.
|
|
</P
|
|
><P
|
|
> If you are using Sendmail, try enabling "sendmailnow" in editparams.cgi.
|
|
If you are using Postfix, you will also need to enable <SPAN
|
|
CLASS="QUOTE"
|
|
>"sendmailnow"</SPAN
|
|
>.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1899"><B
|
|
>A.4.7. </B
|
|
>
|
|
How come email from Bugzilla changes never reaches me?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Double-check that you have not turned off email in your user preferences.
|
|
Confirm that Bugzilla is able to send email by visiting the "Log In"
|
|
link of your Bugzilla installation and clicking the "Email me a password"
|
|
button after entering your email address.
|
|
</P
|
|
><P
|
|
> If you never receive mail from Bugzilla, chances you do not have
|
|
sendmail in "/usr/lib/sendmail". Ensure sendmail lives in, or is symlinked
|
|
to, "/usr/lib/sendmail".
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandadiv"
|
|
><H3
|
|
><A
|
|
NAME="faq-db">5. Bugzilla Database</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1907"><B
|
|
>A.5.1. </B
|
|
>
|
|
I've heard Bugzilla can be used with Oracle?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Red Hat Bugzilla works with Oracle. The current version
|
|
from Mozilla.org does not have this capability. Unfortunately, though
|
|
you will sacrifice a lot of the really great features available in
|
|
Bugzilla 2.14 and 2.16 if you go with the 2.8-based Redhat version.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1912"><B
|
|
>A.5.2. </B
|
|
>
|
|
I think my database might be corrupted, or contain invalid entries. What
|
|
do I do?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Run the <SPAN
|
|
CLASS="QUOTE"
|
|
>"sanity check"</SPAN
|
|
> utility
|
|
(<TT
|
|
CLASS="filename"
|
|
>./sanitycheck.cgi</TT
|
|
> in the
|
|
Bugzilla_home directory) from your web browser to see! If
|
|
it finishes without errors, you're
|
|
<EM
|
|
>probably</EM
|
|
> OK. If it doesn't come back
|
|
OK (i.e. any red letters), there are certain things
|
|
Bugzilla can recover from and certain things it can't. If
|
|
it can't auto-recover, I hope you're familiar with
|
|
mysqladmin commands or have installed another way to
|
|
manage your database. Sanity Check, although it is a good
|
|
basic check on your database integrity, by no means is a
|
|
substitute for competent database administration and
|
|
avoiding deletion of data. It is not exhaustive, and was
|
|
created to do a basic check for the most common problems
|
|
in Bugzilla databases.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1920"><B
|
|
>A.5.3. </B
|
|
>
|
|
I want to manually edit some entries in my database. How?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
There is no facility in Bugzilla itself to do this. It's also generally
|
|
not a smart thing to do if you don't know exactly what you're doing.
|
|
However, if you understand SQL you can use the mysqladmin utility to
|
|
manually insert, delete, and modify table information. Personally, I
|
|
use "phpMyAdmin". You have to compile a PHP module with MySQL
|
|
support to make it work, but it's very clean and easy to use.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1925"><B
|
|
>A.5.4. </B
|
|
>
|
|
I try to add myself as a user, but Bugzilla always tells me my password is wrong.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Certain version of MySQL (notably, 3.23.29 and 3.23.30) accidentally disabled
|
|
the "crypt()" function. This prevented MySQL from storing encrypted passwords.
|
|
Upgrade to the "3.23 stable" version of MySQL and you should be good to go.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1930"><B
|
|
>A.5.5. </B
|
|
>
|
|
I think I've set up MySQL permissions correctly, but Bugzilla still can't
|
|
connect.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Try running MySQL from its binary: "mysqld --skip-grant-tables". This
|
|
will allow you to completely rule out grant tables as the cause of your
|
|
frustration. However, I do not recommend you run it this way on a regular
|
|
basis, unless you really want your web site defaced and your machine
|
|
cracked.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1935"><B
|
|
>A.5.6. </B
|
|
>
|
|
How do I synchronize bug information among multiple different Bugzilla
|
|
databases?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Well, you can synchronize or you can move bugs. Synchronization will
|
|
only work one way -- you can create a read-only copy of the database
|
|
at one site, and have it regularly updated at intervals from the main
|
|
database.
|
|
</P
|
|
><P
|
|
> MySQL has some synchronization features builtin to the latest releases.
|
|
It would be great if someone looked into the possibilities there
|
|
and provided a report to the newsgroup on how to effectively
|
|
synchronize two Bugzilla installations.
|
|
</P
|
|
><P
|
|
> If you simply need to transfer bugs from one Bugzilla to another,
|
|
checkout the "move.pl" script in the Bugzilla distribution.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandadiv"
|
|
><H3
|
|
><A
|
|
NAME="faq-nt">6. Bugzilla and Win32</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1944"><B
|
|
>A.6.1. </B
|
|
>
|
|
What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Remove Windows. Install Linux. Install Bugzilla.
|
|
The boss will never know the difference.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1949"><B
|
|
>A.6.2. </B
|
|
>
|
|
Is there a "Bundle::Bugzilla" equivalent for Win32?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Not currently. Bundle::Bugzilla enormously simplifies Bugzilla
|
|
installation on UNIX systems. If someone can volunteer to
|
|
create a suitable PPM bundle for Win32, it would be appreciated.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1954"><B
|
|
>A.6.3. </B
|
|
>
|
|
CGI's are failing with a "something.cgi is not a valid Windows NT
|
|
application" error. Why?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Depending on what Web server you are using, you will have to configure
|
|
the Web server to treat *.cgi files as CGI scripts. In IIS, you do this by
|
|
adding *.cgi to the App Mappings with the <path>\perl.exe %s %s as the
|
|
executable.
|
|
</P
|
|
><P
|
|
> Microsoft has some advice on this matter, as well:
|
|
<A
|
|
NAME="AEN1959"><BLOCKQUOTE
|
|
CLASS="BLOCKQUOTE"
|
|
><P
|
|
> "Set application mappings. In the ISM, map the extension for the script
|
|
file(s) to the executable for the script interpreter. For example, you might
|
|
map the extension .py to Python.exe, the executable for the Python script
|
|
interpreter. Note For the ActiveState Perl script interpreter, the extension
|
|
.pl is associated with PerlIS.dll by default. If you want to change the
|
|
association of .pl to perl.exe, you need to change the application mapping.
|
|
In the mapping, you must add two percent (%) characters to the end of the
|
|
pathname for perl.exe, as shown in this example: c:\perl\bin\perl.exe %s %s"
|
|
</P
|
|
></BLOCKQUOTE
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1962"><B
|
|
>A.6.4. </B
|
|
>
|
|
I'm having trouble with the perl modules for NT not being able to talk to
|
|
to the database.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Your modules may be outdated or inaccurate. Try:
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> Hitting http://www.activestate.com/ActivePerl
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Download ActivePerl
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Go to your prompt
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Type 'ppm'
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <TT
|
|
CLASS="prompt"
|
|
>PPM></TT
|
|
> <B
|
|
CLASS="command"
|
|
>install DBI DBD-mysql GD</B
|
|
>
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
I reckon TimeDate and Data::Dumper come with the activeperl. You can check
|
|
the ActiveState site for packages for installation through PPM.
|
|
<A
|
|
HREF=" http://www.activestate.com/Packages/"
|
|
TARGET="_top"
|
|
> http://www.activestate.com/Packages/</A
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandadiv"
|
|
><H3
|
|
><A
|
|
NAME="faq-use">7. Bugzilla Usage</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1983"><B
|
|
>A.7.1. </B
|
|
>
|
|
How do I change my user name (email address) in Bugzilla?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
New in 2.16 - go to the Account section of the Preferences. You will
|
|
be emailed at both addresses for confirmation.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1988"><B
|
|
>A.7.2. </B
|
|
>
|
|
The query page is very confusing. Isn't there a simpler way to query?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
The interface was simplified by a UI designer for 2.16. Further
|
|
suggestions for improvement are welcome, but we won't sacrifice power for
|
|
simplicity.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN1993"><B
|
|
>A.7.3. </B
|
|
>
|
|
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?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
The current behavior is acceptable to bugzilla.mozilla.org and most
|
|
users. You have your choice of patches
|
|
to change this behavior, however.
|
|
<P
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
><TBODY
|
|
><TR
|
|
><TD
|
|
><A
|
|
HREF="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8029"
|
|
TARGET="_top"
|
|
> Add a "and accept bug" radio button</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
><A
|
|
HREF="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8153"
|
|
TARGET="_top"
|
|
> "Accept" button automatically assigns to you</A
|
|
></TD
|
|
></TR
|
|
></TBODY
|
|
></TABLE
|
|
><P
|
|
></P
|
|
>
|
|
Note that these patches are somewhat dated. You will need to apply
|
|
them manually.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN2003"><B
|
|
>A.7.4. </B
|
|
>
|
|
I can't upload anything into the database via the "Create Attachment"
|
|
link. What am I doing wrong?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
The most likely cause is a very old browser or a browser that is
|
|
incompatible with file upload via POST. Download the latest Netscape,
|
|
Microsoft, or Mozilla browser to handle uploads correctly.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN2008"><B
|
|
>A.7.5. </B
|
|
>
|
|
Email submissions to Bugzilla that have attachments end up asking me to
|
|
save it as a "cgi" file.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yup. Just rename it once you download it, or save it under a different
|
|
filename. This will not be fixed anytime soon, because it would
|
|
cripple some other functionality.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN2013"><B
|
|
>A.7.6. </B
|
|
>
|
|
How do I change a keyword in Bugzilla, once some bugs are using it?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
In the Bugzilla administrator UI, edit the keyword and it will let you
|
|
replace the old keyword name with a new one. This will cause a problem
|
|
with the keyword cache. Run sanitycheck.cgi to fix it.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandadiv"
|
|
><H3
|
|
><A
|
|
NAME="faq-hacking">8. Bugzilla Hacking</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN2020"><B
|
|
>A.8.1. </B
|
|
>
|
|
What bugs are in Bugzilla right now?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Try <A
|
|
HREF="http://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Bugzilla"
|
|
TARGET="_top"
|
|
> this link</A
|
|
> to view current bugs or requests for
|
|
enhancement for Bugzilla.
|
|
</P
|
|
><P
|
|
> You can view bugs marked for 2.18 release
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/buglist.cgi?product=Bugzilla&target_milestone=Bugzilla+2.18"
|
|
TARGET="_top"
|
|
>here</A
|
|
>.
|
|
This list includes bugs for the 2.18 release that have already
|
|
been fixed and checked into CVS. Please consult the
|
|
<A
|
|
HREF="http://www.mozilla.org/projects/bugzilla/"
|
|
TARGET="_top"
|
|
> Bugzilla Project Page</A
|
|
> for details on how to
|
|
check current sources out of CVS so you can have these
|
|
bug fixes early!
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN2029"><B
|
|
>A.8.2. </B
|
|
>
|
|
How can I change the default priority to a null value? For instance, have the default
|
|
priority be "---" instead of "P2"?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
This is well-documented here: <A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=49862"
|
|
TARGET="_top"
|
|
> http://bugzilla.mozilla.org/show_bug.cgi?id=49862</A
|
|
>. Ultimately, it's as easy
|
|
as adding the "---" priority field to your localconfig file in the appropriate area,
|
|
re-running checksetup.pl, and then changing the default priority in your browser using
|
|
"editparams.cgi".
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="AEN2035"><B
|
|
>A.8.3. </B
|
|
>
|
|
What's the best way to submit patches? What guidelines should I follow?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> Enter a bug into bugzilla.mozilla.org for the <SPAN
|
|
CLASS="QUOTE"
|
|
>"<A
|
|
HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla"
|
|
TARGET="_top"
|
|
>Bugzilla</A
|
|
>"</SPAN
|
|
>
|
|
product.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Upload your patch as a unified diff (having used "diff -u" against
|
|
the <EM
|
|
>current sources</EM
|
|
> checked out of CVS),
|
|
or new source file by clicking
|
|
"Create a new attachment" link on the bug page you've just created, and
|
|
include any descriptions of database changes you may make, into the bug
|
|
ID you submitted in step #1. Be sure and click the "Patch" checkbox
|
|
to indicate the text you are sending is a patch!
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Announce your patch and the associated URL
|
|
(http://bugzilla.mozilla.org/show_bug.cgi?id=XXXXXX) for discussion in
|
|
the newsgroup (netscape.public.mozilla.webtools). You'll get a really
|
|
good, fairly immediate reaction to the implications of your patch,
|
|
which will also give us an idea how well-received the change would
|
|
be.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> If it passes muster with minimal modification, the person to whom
|
|
the bug is assigned in Bugzilla is responsible for seeing the patch
|
|
is checked into CVS.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Bask in the glory of the fact that you helped write the most successful
|
|
open-source bug-tracking software on the planet :)
|
|
</P
|
|
></LI
|
|
></OL
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="appendix"
|
|
><HR><H1
|
|
><A
|
|
NAME="database">Appendix B. The Bugzilla Database</H1
|
|
><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
|
|
>This document really needs to be updated with more fleshed out
|
|
information about primary keys, interrelationships, and maybe some nifty
|
|
tables to document dependencies. Any takers?</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="dbschema">B.1. Database Schema Chart</H1
|
|
><P
|
|
> <DIV
|
|
CLASS="mediaobject"
|
|
><P
|
|
><IMG
|
|
SRC="../images/dbschema.jpg"><DIV
|
|
CLASS="caption"
|
|
><P
|
|
>Bugzilla database relationships chart</P
|
|
></DIV
|
|
></P
|
|
></DIV
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
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
|
|
for tiny changes in wording, rather than having people re-educate
|
|
themselves or figure out how to work our procedures around the tool. It
|
|
sucks, but it can and will happen to you, so learn how the schema works
|
|
and deal with it when it comes.</P
|
|
><P
|
|
>So, here you are with your brand-new installation of Bugzilla.
|
|
You've got MySQL set up, Apache working right, Perl DBI and DBD talking
|
|
to the database flawlessly. Maybe you've even entered a few test bugs to
|
|
make sure email's working; people seem to be notified of new bugs and
|
|
changes, and you can enter and edit bugs to your heart's content. Perhaps
|
|
you've gone through the trouble of setting up a gateway for people to
|
|
submit bugs to your database via email, have had a few people test it,
|
|
and received rave reviews from your beta testers.</P
|
|
><P
|
|
>What's the next thing you do? Outline a training strategy for your
|
|
development team, of course, and bring them up to speed on the new tool
|
|
you've labored over for hours.</P
|
|
><P
|
|
>Your first training session starts off very well! You have a
|
|
captive audience which seems enraptured by the efficiency embodied in
|
|
this thing called "Bugzilla". You are caught up describing the nifty
|
|
features, how people can save favorite queries in the database, set them
|
|
up as headers and footers on their pages, customize their layouts,
|
|
generate reports, track status with greater efficiency than ever before,
|
|
leap tall buildings with a single bound and rescue Jane from the clutches
|
|
of Certain Death!</P
|
|
><P
|
|
>But Certain Death speaks up -- a tiny voice, from the dark corners
|
|
of the conference room. "I have a concern," the voice hisses from the
|
|
darkness, "about the use of the word 'verified'.</P
|
|
><P
|
|
>The room, previously filled with happy chatter, lapses into
|
|
reverential silence as Certain Death (better known as the Vice President
|
|
of Software Engineering) continues. "You see, for two years we've used
|
|
the word 'verified' to indicate that a developer or quality assurance
|
|
engineer has confirmed that, in fact, a bug is valid. I don't want to
|
|
lose two years of training to a new software product. You need to change
|
|
the bug status of 'verified' to 'approved' as soon as possible. To avoid
|
|
confusion, of course."</P
|
|
><P
|
|
>Oh no! Terror strikes your heart, as you find yourself mumbling
|
|
"yes, yes, I don't think that would be a problem," You review the changes
|
|
with Certain Death, and continue to jabber on, "no, it's not too big a
|
|
change. I mean, we have the source code, right? You know, 'Use the
|
|
Source, Luke' and all that... no problem," All the while you quiver
|
|
inside like a beached jellyfish bubbling, burbling, and boiling on a hot
|
|
Jamaican sand dune...</P
|
|
><P
|
|
>Thus begins your adventure into the heart of Bugzilla. You've been
|
|
forced to learn about non-portable enum() fields, varchar columns, and
|
|
tinyint definitions. The Adventure Awaits You!</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN2077">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
|
|
the Vice President you couldn't care less about the difference between
|
|
a
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bigint"</SPAN
|
|
>
|
|
|
|
and a
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"tinyint"</SPAN
|
|
>
|
|
|
|
entry in MySQL. I recommend you refer to the MySQL documentation,
|
|
available at
|
|
<A
|
|
HREF="http://www.mysql.com/doc.html"
|
|
TARGET="_top"
|
|
>MySQL.com</A
|
|
>
|
|
|
|
. Below are the basics you need to know about the Bugzilla database.
|
|
Check the chart above for more details.</P
|
|
><P
|
|
> <P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>To connect to your database:</P
|
|
><P
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>mysql</B
|
|
>
|
|
|
|
<TT
|
|
CLASS="parameter"
|
|
><I
|
|
>-u root</I
|
|
></TT
|
|
>
|
|
</P
|
|
><P
|
|
>If this works without asking you for a password,
|
|
<EM
|
|
>shame on you</EM
|
|
>
|
|
|
|
! You should have locked your security down like the installation
|
|
instructions told you to. You can find details on locking down
|
|
your database in the Bugzilla FAQ in this directory (under
|
|
"Security"), or more robust security generalities in the
|
|
<A
|
|
HREF="http://www.mysql.com/php/manual.php3?section=Privilege_system"
|
|
TARGET="_top"
|
|
>MySQL
|
|
searchable documentation</A
|
|
>.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>You should now be at a prompt that looks like this:</P
|
|
><P
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
</P
|
|
><P
|
|
>At the prompt, if
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
>
|
|
|
|
is the name you chose in the
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
>
|
|
|
|
file for your Bugzilla database, type:</P
|
|
><P
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql</TT
|
|
>
|
|
|
|
<B
|
|
CLASS="command"
|
|
>use bugs;</B
|
|
>
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN2104">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
|
|
><P
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
>
|
|
<B
|
|
CLASS="command"
|
|
>show tables from bugs;</B
|
|
>
|
|
</P
|
|
><P
|
|
>you'll be able to see the names of all the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"spreadsheets"</SPAN
|
|
>
|
|
(tables) in your database.</P
|
|
><P
|
|
>From the command issued above, ou should have some
|
|
output that looks like this:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> +-------------------+
|
|
| Tables in bugs |
|
|
+-------------------+
|
|
| attachments |
|
|
| bugs |
|
|
| bugs_activity |
|
|
| cc |
|
|
| components |
|
|
| dependencies |
|
|
| fielddefs |
|
|
| groups |
|
|
| keyworddefs |
|
|
| keywords |
|
|
| logincookies |
|
|
| longdescs |
|
|
| milestones |
|
|
| namedqueries |
|
|
| products |
|
|
| profiles |
|
|
| profiles_activity |
|
|
| shadowlog |
|
|
| tokens |
|
|
| versions |
|
|
| votes |
|
|
| watch |
|
|
+-------------------+
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
Here's an overview of what each table does. Most columns in each table have<br>
|
|
descriptive names that make it fairly trivial to figure out their jobs.<br>
|
|
<br>
|
|
attachments: This table stores all attachments to bugs. It tends to be your<br>
|
|
largest table, yet also generally has the fewest entries because file<br>
|
|
attachments are so (relatively) large.<br>
|
|
<br>
|
|
bugs: This is the core of your system. The bugs table stores most of the<br>
|
|
current information about a bug, with the exception of the info stored in the<br>
|
|
other tables.<br>
|
|
<br>
|
|
bugs_activity: This stores information regarding what changes are made to bugs<br>
|
|
when -- a history file.<br>
|
|
<br>
|
|
cc: This tiny table simply stores all the CC information for any bug which has<br>
|
|
any entries in the CC field of the bug. Note that, like most other tables in<br>
|
|
Bugzilla, it does not refer to users by their user names, but by their unique<br>
|
|
userid, stored as a primary key in the profiles table.<br>
|
|
<br>
|
|
components: This stores the programs and components (or products and<br>
|
|
components, in newer Bugzilla parlance) for Bugzilla. Curiously, the "program"<br>
|
|
(product) field is the full name of the product, rather than some other unique<br>
|
|
identifier, like bug_id and user_id are elsewhere in the database.<br>
|
|
<br>
|
|
dependencies: Stores data about those cool dependency trees.<br>
|
|
<br>
|
|
fielddefs: A nifty table that defines other tables. For instance, when you<br>
|
|
submit a form that changes the value of "AssignedTo" this table allows<br>
|
|
translation to the actual field name "assigned_to" for entry into MySQL.<br>
|
|
<br>
|
|
groups: defines bitmasks for groups. A bitmask is a number that can uniquely<br>
|
|
identify group memberships. For instance, say the group that is allowed to<br>
|
|
tweak parameters is assigned a value of "1", the group that is allowed to edit<br>
|
|
users is assigned a "2", and the group that is allowed to create new groups is<br>
|
|
assigned the bitmask of "4". By uniquely combining the group bitmasks (much<br>
|
|
like the chmod command in UNIX,) you can identify a user is allowed to tweak<br>
|
|
parameters and create groups, but not edit users, by giving him a bitmask of<br>
|
|
"5", or a user allowed to edit users and create groups, but not tweak<br>
|
|
parameters, by giving him a bitmask of "6" Simple, huh?<br>
|
|
If this makes no sense to you, try this at the mysql prompt:<br>
|
|
mysql> select * from groups;<br>
|
|
You'll see the list, it makes much more sense that way.<br>
|
|
<br>
|
|
keyworddefs: Definitions of keywords to be used<br>
|
|
<br>
|
|
keywords: Unlike what you'd think, this table holds which keywords are<br>
|
|
associated with which bug id's.<br>
|
|
<br>
|
|
logincookies: This stores every login cookie ever assigned to you for every<br>
|
|
machine you've ever logged into Bugzilla from. Curiously, it never does any<br>
|
|
housecleaning -- I see cookies in this file I've not used for months. However,<br>
|
|
since Bugzilla never expires your cookie (for convenience' sake), it makes<br>
|
|
sense.<br>
|
|
<br>
|
|
longdescs: The meat of bugzilla -- here is where all user comments are stored!<br>
|
|
You've only got 2^24 bytes per comment (it's a mediumtext field), so speak<br>
|
|
sparingly -- that's only the amount of space the Old Testament from the Bible<br>
|
|
would take (uncompressed, 16 megabytes). Each comment is keyed to the<br>
|
|
bug_id to which it's attached, so the order is necessarily chronological, for<br>
|
|
comments are played back in the order in which they are received.<br>
|
|
<br>
|
|
milestones: Interesting that milestones are associated with a specific product<br>
|
|
in this table, but Bugzilla does not yet support differing milestones by<br>
|
|
product through the standard configuration interfaces.<br>
|
|
<br>
|
|
namedqueries: This is where everybody stores their "custom queries". Very<br>
|
|
cool feature; it beats the tar out of having to bookmark each cool query you<br>
|
|
construct.<br>
|
|
<br>
|
|
products: What products you have, whether new bug entries are allowed for the<br>
|
|
product, what milestone you're working toward on that product, votes, etc. It<br>
|
|
will be nice when the components table supports these same features, so you<br>
|
|
could close a particular component for bug entry without having to close an<br>
|
|
entire product...<br>
|
|
<br>
|
|
profiles: Ahh, so you were wondering where your precious user information was<br>
|
|
stored? Here it is! With the passwords in plain text for all to see! (but<br>
|
|
sshh... don't tell your users!)<br>
|
|
<br>
|
|
profiles_activity: Need to know who did what when to who's profile? This'll<br>
|
|
tell you, it's a pretty complete history.<br>
|
|
<br>
|
|
shadowlog: I could be mistaken here, but I believe this table tells you when<br>
|
|
your shadow database is updated and what commands were used to update it. We<br>
|
|
don't use a shadow database at our site yet, so it's pretty empty for us.<br>
|
|
<br>
|
|
versions: Version information for every product<br>
|
|
<br>
|
|
votes: Who voted for what when<br>
|
|
<br>
|
|
watch: Who (according to userid) is watching who's bugs (according to their<br>
|
|
userid).<br>
|
|
<br>
|
|
<br>
|
|
===<br>
|
|
THE DETAILS<br>
|
|
===<br>
|
|
<br>
|
|
Ahh, so you're wondering just what to do with the information above? At the<br>
|
|
mysql prompt, you can view any information about the columns in a table with<br>
|
|
this command (where "table" is the name of the table you wish to view):<br>
|
|
<br>
|
|
mysql> show columns from table;<br>
|
|
<br>
|
|
You can also view all the data in a table with this command:<br>
|
|
<br>
|
|
mysql> select * from table;<br>
|
|
<br>
|
|
-- note: this is a very bad idea to do on, for instance, the "bugs" table if<br>
|
|
you have 50,000 bugs. You'll be sitting there a while until you ctrl-c or<br>
|
|
50,000 bugs play across your screen.<br>
|
|
<br>
|
|
You can limit the display from above a little with the command, where<br>
|
|
"column" is the name of the column for which you wish to restrict information:<br>
|
|
<br>
|
|
mysql> select * from table where (column = "some info");<br>
|
|
<br>
|
|
-- or the reverse of this<br>
|
|
<br>
|
|
mysql> select * from table where (column != "some info");<br>
|
|
<br>
|
|
Let's take our example from the introduction, and assume you need to change<br>
|
|
the word "verified" to "approved" in the resolution field. We know from the<br>
|
|
above information that the resolution is likely to be stored in the "bugs"<br>
|
|
table. Note we'll need to change a little perl code as well as this database<br>
|
|
change, but I won't plunge into that in this document. Let's verify the<br>
|
|
information is stored in the "bugs" table:<br>
|
|
<br>
|
|
mysql> show columns from bugs<br>
|
|
<br>
|
|
(exceedingly long output truncated here)<br>
|
|
| bug_status| enum('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED')||MUL | UNCONFIRMED||<br>
|
|
<br>
|
|
Sorry about that long line. We see from this that the "bug status" column is<br>
|
|
an "enum field", which is a MySQL peculiarity where a string type field can<br>
|
|
only have certain types of entries. While I think this is very cool, it's not<br>
|
|
standard SQL. Anyway, we need to add the possible enum field entry<br>
|
|
'APPROVED' by altering the "bugs" table.<br>
|
|
<br>
|
|
mysql> ALTER table bugs CHANGE bug_status bug_status<br>
|
|
-> enum("UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED",<br>
|
|
-> "VERIFIED", "APPROVED", "CLOSED") not null;<br>
|
|
<br>
|
|
(note we can take three lines or more -- whatever you put in before the<br>
|
|
semicolon is evaluated as a single expression)<br>
|
|
<br>
|
|
Now if you do this:<br>
|
|
<br>
|
|
mysql> show columns from bugs;<br>
|
|
<br>
|
|
you'll see that the bug_status field has an extra "APPROVED" enum that's<br>
|
|
available! Cool thing, too, is that this is reflected on your query page as<br>
|
|
well -- you can query by the new status. But how's it fit into the existing<br>
|
|
scheme of things?<br>
|
|
Looks like you need to go back and look for instances of the word "verified"<br>
|
|
in the perl code for Bugzilla -- wherever you find "verified", change it to<br>
|
|
"approved" and you're in business (make sure that's a case-insensitive search).<br>
|
|
Although you can query by the enum field, you can't give something a status<br>
|
|
of "APPROVED" until you make the perl changes. Note that this change I<br>
|
|
mentioned can also be done by editing checksetup.pl, which automates a lot of<br>
|
|
this. But you need to know this stuff anyway, right?<br>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="appendix"
|
|
><HR><H1
|
|
><A
|
|
NAME="patches">Appendix C. Useful Patches and Utilities for Bugzilla</H1
|
|
><P
|
|
>Are you looking for a way to put your Bugzilla into overdrive? Catch
|
|
some of the niftiest tricks here in this section.</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="rewrite">C.1. Apache
|
|
<TT
|
|
CLASS="filename"
|
|
>mod_rewrite</TT
|
|
>
|
|
|
|
magic</H1
|
|
><P
|
|
>Apache's
|
|
<TT
|
|
CLASS="filename"
|
|
>mod_rewrite</TT
|
|
>
|
|
|
|
module lets you do some truly amazing things with URL rewriting. Here are
|
|
a couple of examples of what you can do.</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Make it so if someone types
|
|
<TT
|
|
CLASS="computeroutput"
|
|
>http://www.foo.com/12345</TT
|
|
>
|
|
|
|
, Bugzilla spits back http://www.foo.com/show_bug.cgi?id=12345. Try
|
|
setting up your VirtualHost section for Bugzilla with a rule like
|
|
this:</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> <VirtualHost 12.34.56.78>
|
|
RewriteEngine On
|
|
RewriteRule ^/([0-9]+)$ http://foo.bar.com/show_bug.cgi?id=$1 [L,R]
|
|
</VirtualHost>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></LI
|
|
><LI
|
|
><P
|
|
>There are many, many more things you can do with mod_rewrite.
|
|
Please refer to the mod_rewrite documentation at
|
|
<A
|
|
HREF="http://www.apache.org"
|
|
TARGET="_top"
|
|
>http://www.apache.org</A
|
|
>.
|
|
</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="cmdline">C.2. Command-line Bugzilla Queries</H1
|
|
><P
|
|
>There are a suite of Unix utilities for querying Bugzilla from the
|
|
command line. They live in the
|
|
<TT
|
|
CLASS="filename"
|
|
>contrib/cmdline</TT
|
|
>
|
|
directory. However, they
|
|
have not yet been updated to work with 2.16 (post-templatisation.).
|
|
There are three files - <TT
|
|
CLASS="filename"
|
|
>query.conf</TT
|
|
>,
|
|
<TT
|
|
CLASS="filename"
|
|
>buglist</TT
|
|
> and <TT
|
|
CLASS="filename"
|
|
>bugs</TT
|
|
>.</P
|
|
><P
|
|
><TT
|
|
CLASS="filename"
|
|
>query.conf</TT
|
|
>
|
|
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
|
|
><TT
|
|
CLASS="filename"
|
|
>buglist</TT
|
|
>
|
|
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 column list 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, grep for COLUMNLIST
|
|
in your cookies file to see your current COLUMNLIST setting.</P
|
|
><P
|
|
><TT
|
|
CLASS="filename"
|
|
>bugs</TT
|
|
> is a simple shell script which calls
|
|
<TT
|
|
CLASS="filename"
|
|
>buglist</TT
|
|
> 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 Peck says she has good results piping
|
|
<TT
|
|
CLASS="filename"
|
|
>buglist</TT
|
|
> output through
|
|
<B
|
|
CLASS="command"
|
|
>w3m -T text/html -dump</B
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="appendix"
|
|
><HR><H1
|
|
><A
|
|
NAME="variants">Appendix D. Bugzilla Variants and Competitors</H1
|
|
><P
|
|
>I created this section to answer questions about Bugzilla competitors
|
|
and variants, then found a wonderful site which covers an awful lot of what
|
|
I wanted to discuss. Rather than quote it in its entirety, I'll simply
|
|
refer you here:
|
|
<A
|
|
HREF="http://linas.org/linux/pm.html"
|
|
TARGET="_top"
|
|
> http://linas.org/linux/pm.html</A
|
|
>
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="rhbugzilla">D.1. Red Hat Bugzilla</H1
|
|
><P
|
|
>Red Hat Bugzilla is a fork of Bugzilla 2.8.
|
|
One of its major benefits is the ability
|
|
to work with Oracle, MySQL, and PostGreSQL databases serving as the
|
|
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
|
|
HREF="http://bugzilla.redhat.com/bugzilla/"
|
|
TARGET="_top"
|
|
> http://bugzilla.redhat.com/bugzilla/</A
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
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,
|
|
its custodians recommend Bugzilla for future bug-tracker deployments.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
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
|
|
at tigris.org is their Java-based bug-tracker,
|
|
<A
|
|
HREF="#variant-scarab"
|
|
>Scarab</A
|
|
>.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="variant-scarab">D.4. Scarab</H1
|
|
><P
|
|
>Scarab is a new open source bug-tracking system built using Java
|
|
Serlet technology. It is currently at version 1.0 beta 8.</P
|
|
><P
|
|
>URL:
|
|
<A
|
|
HREF="http://scarab.tigris.org/"
|
|
TARGET="_top"
|
|
>http://scarab.tigris.org</A
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
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
|
|
CLASS="QUOTE"
|
|
>"jobs"</SPAN
|
|
>
|
|
functionality.</P
|
|
><P
|
|
>URL:
|
|
<A
|
|
HREF="http://www.perforce.com/perforce/technotes/note052.html"
|
|
TARGET="_top"
|
|
> http://www.perforce.com/perforce/technotes/note052.html
|
|
</A
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
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.
|
|
It has a built-in bug tracker, but it's not highly thought of.</P
|
|
><P
|
|
>URL:
|
|
<A
|
|
HREF="http://www.sourceforge.net"
|
|
TARGET="_top"
|
|
> http://www.sourceforge.net</A
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="GLOSSARY"
|
|
><H1
|
|
><A
|
|
NAME="glossary">Glossary</H1
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="AEN2183">0-9, high ascii</H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
>.htaccess</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Apache web server, and other NCSA-compliant web servers,
|
|
observe the convention of using files in directories called
|
|
<TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
|
|
to restrict access to certain files. In Bugzilla, they are used
|
|
to keep secret files which would otherwise
|
|
compromise your installation - e.g. the
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
>
|
|
file contains the password to your database.
|
|
curious.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-a">A</H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
>Apache</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>In this context, Apache is the web server most commonly used
|
|
for serving up
|
|
<I
|
|
CLASS="glossterm"
|
|
>Bugzilla</I
|
|
>
|
|
|
|
pages. Contrary to popular belief, the apache web server has nothing
|
|
to do with the ancient and noble Native American tribe, but instead
|
|
derived its name from the fact that it was
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"a patchy"</SPAN
|
|
>
|
|
|
|
version of the original
|
|
<SPAN
|
|
CLASS="acronym"
|
|
>NCSA</SPAN
|
|
>
|
|
|
|
world-wide-web server.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-b">B</H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
>Bug</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>A
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bug"</SPAN
|
|
>
|
|
|
|
in Bugzilla refers to an issue entered into the database which has an
|
|
associated number, assignments, comments, etc. Some also refer to a
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"tickets"</SPAN
|
|
>
|
|
or
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"issues"</SPAN
|
|
>;
|
|
in the context of Bugzilla, they are synonymous.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
>Bug Number</B
|
|
></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
|
|
query, or easily from the very front page by typing the number in the
|
|
"Find" box.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
>Bugzilla</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Bugzilla is the world-leading free software bug tracking system.
|
|
</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-c"></H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-component"><B
|
|
>Component</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>A Component is a subsection of a Product. It should be a narrow
|
|
category, tailored to your organization. All Products must contain at
|
|
least one Component (and, as a matter of fact, creating a Product
|
|
with no Components will create an error in Bugzilla).</P
|
|
></DD
|
|
><DT
|
|
><A
|
|
NAME="gloss-cpan"><B
|
|
> <SPAN
|
|
CLASS="acronym"
|
|
>CPAN</SPAN
|
|
>
|
|
</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
> <SPAN
|
|
CLASS="acronym"
|
|
>CPAN</SPAN
|
|
>
|
|
|
|
stands for the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Comprehensive Perl Archive Network"</SPAN
|
|
>.
|
|
CPAN maintains a large number of extremely useful
|
|
<I
|
|
CLASS="glossterm"
|
|
>Perl</I
|
|
>
|
|
modules - encapsulated chunks of code for performing a
|
|
particular task.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-d">D</H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
>daemon</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>A daemon is a computer program which runs in the background. In
|
|
general, most daemons are started at boot time via System V init
|
|
scripts, or through RC scripts on BSD-based systems.
|
|
<I
|
|
CLASS="glossterm"
|
|
>mysqld</I
|
|
>,
|
|
the MySQL server, and
|
|
<I
|
|
CLASS="glossterm"
|
|
>apache</I
|
|
>,
|
|
a web server, are generally run as daemons.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-g"></H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
>Groups</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The word
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Groups"</SPAN
|
|
>
|
|
|
|
has a very special meaning to Bugzilla. Bugzilla's main security
|
|
mechanism comes by placing users in groups, and assigning those
|
|
groups certain privileges to view bugs in particular
|
|
<I
|
|
CLASS="glossterm"
|
|
>Products</I
|
|
>
|
|
in the
|
|
<I
|
|
CLASS="glossterm"
|
|
>Bugzilla</I
|
|
>
|
|
database.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-m">M</H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
>mysqld</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>mysqld is the name of the
|
|
<I
|
|
CLASS="glossterm"
|
|
>daemon</I
|
|
>
|
|
|
|
for the MySQL database. In general, it is invoked automatically
|
|
through the use of the System V init scripts on GNU/Linux and
|
|
AT&T System V-based systems, such as Solaris and HP/UX, or
|
|
through the RC scripts on BSD-based systems.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-p">P</H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
>Product</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>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
|
|
its Components.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
>Perl</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>First written by Larry Wall, Perl is a remarkable program
|
|
language. It has the benefits of the flexibility of an interpreted
|
|
scripting language (such as shell script), combined with the speed
|
|
and power of a compiled language, such as C.
|
|
<I
|
|
CLASS="glossterm"
|
|
>Bugzilla</I
|
|
>
|
|
|
|
is maintained in Perl.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-q">Q</H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
>QA</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
> <SPAN
|
|
CLASS="QUOTE"
|
|
>"QA"</SPAN
|
|
>,
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Q/A"</SPAN
|
|
>, and
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Q.A."</SPAN
|
|
>
|
|
are short for
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Quality Assurance"</SPAN
|
|
>.
|
|
In most large software development organizations, there is a team
|
|
devoted to ensuring the product meets minimum standards before
|
|
shipping. This team will also generally want to track the progress of
|
|
bugs over their life cycle, thus the need for the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"QA Contact"</SPAN
|
|
>
|
|
|
|
field in a bug.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-s">S</H1
|
|
><DL
|
|
><DT
|
|
><B
|
|
> <SPAN
|
|
CLASS="acronym"
|
|
>SGML</SPAN
|
|
>
|
|
</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
> <SPAN
|
|
CLASS="acronym"
|
|
>SGML</SPAN
|
|
>
|
|
|
|
stands for
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Standard Generalized Markup Language"</SPAN
|
|
>.
|
|
Created in the 1980's to provide an extensible means to maintain
|
|
documentation based upon content instead of presentation,
|
|
<SPAN
|
|
CLASS="acronym"
|
|
>SGML</SPAN
|
|
>
|
|
|
|
has withstood the test of time as a robust, powerful language.
|
|
<I
|
|
CLASS="glossterm"
|
|
> <SPAN
|
|
CLASS="acronym"
|
|
>XML</SPAN
|
|
>
|
|
</I
|
|
>
|
|
|
|
is the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"baby brother"</SPAN
|
|
>
|
|
|
|
of SGML; any valid
|
|
<SPAN
|
|
CLASS="acronym"
|
|
>XML</SPAN
|
|
>
|
|
|
|
document it, by definition, a valid
|
|
<SPAN
|
|
CLASS="acronym"
|
|
>SGML</SPAN
|
|
>
|
|
|
|
document. The document you are reading is written and maintained in
|
|
<SPAN
|
|
CLASS="acronym"
|
|
>SGML</SPAN
|
|
>,
|
|
and is also valid
|
|
<SPAN
|
|
CLASS="acronym"
|
|
>XML</SPAN
|
|
>
|
|
|
|
if you modify the Document Type Definition.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-t">T</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-target-milestone"><B
|
|
>Target Milestone</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Target Milestones are Product goals. They are configurable on a
|
|
per-Product basis. Most software development houses have a concept of
|
|
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"milestones"</SPAN
|
|
>
|
|
|
|
where the people funding a project expect certain functionality on
|
|
certain dates. Bugzilla facilitates meeting these milestones by
|
|
giving you the ability to declare by which milestone a bug will be
|
|
fixed, or an enhancement will be implemented.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-z">Z</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="zarro-boogs-found"><B
|
|
>Zarro Boogs Found</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>This is the cryptic response sent by Bugzilla when a query
|
|
returned no results. It is just a goofy way of saying "Zero Bugs
|
|
Found".</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |