14103 lines
302 KiB
HTML
14103 lines
302 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>The Bugzilla Guide - 2.17.4 Development Release</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"
|
|
></A
|
|
><DIV
|
|
CLASS="TITLEPAGE"
|
|
><H1
|
|
CLASS="title"
|
|
><A
|
|
NAME="AEN2"
|
|
></A
|
|
>The Bugzilla Guide - 2.17.4 Development Release</H1
|
|
><H3
|
|
CLASS="author"
|
|
><A
|
|
NAME="AEN5"
|
|
></A
|
|
>Matthew P. Barnson</H3
|
|
><H3
|
|
CLASS="author"
|
|
><A
|
|
NAME="AEN9"
|
|
></A
|
|
>Jacob Steenhagen</H3
|
|
><H3
|
|
CLASS="corpauthor"
|
|
>The Bugzilla Team</H3
|
|
><P
|
|
CLASS="pubdate"
|
|
>2003-04-23<BR></P
|
|
><DIV
|
|
><DIV
|
|
CLASS="abstract"
|
|
><A
|
|
NAME="AEN14"
|
|
></A
|
|
><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 XML diffs, attached
|
|
to a bug filed in the <A
|
|
HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation"
|
|
TARGET="_top"
|
|
>Bugzilla Documentation</A
|
|
> component.
|
|
</P
|
|
><P
|
|
>This is a development version of this guide. Information in it
|
|
is subject to change before the 2.18 release of this guide
|
|
(which will correspond with the 2.18 release of Bugzilla).
|
|
</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="#os-specific"
|
|
>OS Specific Installation Notes</A
|
|
></DT
|
|
><DT
|
|
>4.4. <A
|
|
HREF="#http"
|
|
>HTTP Server Configuration</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 Customization</A
|
|
></DT
|
|
><DT
|
|
>5.8. <A
|
|
HREF="#cust-change-permissions"
|
|
>Change Permission Customization</A
|
|
></DT
|
|
><DT
|
|
>5.9. <A
|
|
HREF="#upgrading"
|
|
>Upgrading to New Releases</A
|
|
></DT
|
|
><DT
|
|
>5.10. <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="#dbmodify"
|
|
>Modifying Your Running System</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="#variant-redhat"
|
|
>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
|
|
>E. <A
|
|
HREF="#gfdl"
|
|
>GNU Free Documentation License</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>0. <A
|
|
HREF="#gfdl-0"
|
|
>PREAMBLE</A
|
|
></DT
|
|
><DT
|
|
>1. <A
|
|
HREF="#gfdl-1"
|
|
>APPLICABILITY AND DEFINITIONS</A
|
|
></DT
|
|
><DT
|
|
>2. <A
|
|
HREF="#gfdl-2"
|
|
>VERBATIM COPYING</A
|
|
></DT
|
|
><DT
|
|
>3. <A
|
|
HREF="#gfdl-3"
|
|
>COPYING IN QUANTITY</A
|
|
></DT
|
|
><DT
|
|
>4. <A
|
|
HREF="#gfdl-4"
|
|
>MODIFICATIONS</A
|
|
></DT
|
|
><DT
|
|
>5. <A
|
|
HREF="#gfdl-5"
|
|
>COMBINING DOCUMENTS</A
|
|
></DT
|
|
><DT
|
|
>6. <A
|
|
HREF="#gfdl-6"
|
|
>COLLECTIONS OF DOCUMENTS</A
|
|
></DT
|
|
><DT
|
|
>7. <A
|
|
HREF="#gfdl-7"
|
|
>AGGREGATION WITH INDEPENDENT WORKS</A
|
|
></DT
|
|
><DT
|
|
>8. <A
|
|
HREF="#gfdl-8"
|
|
>TRANSLATION</A
|
|
></DT
|
|
><DT
|
|
>9. <A
|
|
HREF="#gfdl-9"
|
|
>TERMINATION</A
|
|
></DT
|
|
><DT
|
|
>10. <A
|
|
HREF="#gfdl-10"
|
|
>FUTURE REVISIONS OF THIS LICENSE</A
|
|
></DT
|
|
><DT
|
|
><A
|
|
HREF="#gfdl-howto"
|
|
>How to use this License for your documents</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
><A
|
|
HREF="#glossary"
|
|
>Glossary</A
|
|
></DT
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="LOT"
|
|
><DL
|
|
CLASS="LOT"
|
|
><DT
|
|
><B
|
|
>List of Figures</B
|
|
></DT
|
|
><DT
|
|
>4-1. <A
|
|
HREF="#install-mysql-packets"
|
|
>Set Max Packet Size in MySQL</A
|
|
></DT
|
|
><DT
|
|
>4-2. <A
|
|
HREF="#trouble-filetemp-errors"
|
|
>Other File::Temp error messages</A
|
|
></DT
|
|
><DT
|
|
>4-3. <A
|
|
HREF="#trouble-filetemp-patch"
|
|
>Patch for File::Temp in Perl 5.6.0</A
|
|
></DT
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="LOT"
|
|
><DL
|
|
CLASS="LOT"
|
|
><DT
|
|
><B
|
|
>List of Examples</B
|
|
></DT
|
|
><DT
|
|
>4-1. <A
|
|
HREF="#install-perlmodules-cpan"
|
|
>Installing perl modules with CPAN</A
|
|
></DT
|
|
><DT
|
|
>4-2. <A
|
|
HREF="#http-apache-htaccess"
|
|
><TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
> files for Apache</A
|
|
></DT
|
|
><DT
|
|
>5-1. <A
|
|
HREF="#upgrade-cvs"
|
|
>Upgrading using CVS</A
|
|
></DT
|
|
><DT
|
|
>5-2. <A
|
|
HREF="#upgrade-tarball"
|
|
>Upgrading using the tarball</A
|
|
></DT
|
|
><DT
|
|
>5-3. <A
|
|
HREF="#upgrade-patches"
|
|
>Upgrading using patches</A
|
|
></DT
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="chapter"
|
|
><HR><H1
|
|
><A
|
|
NAME="about"
|
|
></A
|
|
>Chapter 1. About This Guide</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="copyright"
|
|
></A
|
|
>1.1. Copyright Information</H1
|
|
><A
|
|
NAME="AEN33"
|
|
></A
|
|
><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 in <A
|
|
HREF="#gfdl"
|
|
>Appendix E</A
|
|
>.
|
|
</P
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
VALIGN="TOP"
|
|
> </TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
COLSPAN="2"
|
|
ALIGN="RIGHT"
|
|
VALIGN="TOP"
|
|
>--<SPAN
|
|
CLASS="attribution"
|
|
>Copyright (c) 2000-2003 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
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="disclaimer"
|
|
></A
|
|
>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"
|
|
></A
|
|
>1.3. New Versions</H1
|
|
><P
|
|
> This is the 2.17.4 version of The Bugzilla Guide. It is so named
|
|
to match the current version of Bugzilla.
|
|
|
|
This version of the guide, like its associated Bugzilla version is a
|
|
development version. Information is subject to change between now and
|
|
when 2.18 is released.
|
|
|
|
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
|
|
> The newest version of this guide can always be found at <A
|
|
HREF="http://www.bugzilla.org"
|
|
TARGET="_top"
|
|
>http://www.bugzilla.org</A
|
|
>; including
|
|
documentation for past releases and the current development version.
|
|
</P
|
|
><P
|
|
> The documentation for the most recent stable release of Bugzilla can also
|
|
be found at
|
|
<A
|
|
HREF="http://www.tldp.org"
|
|
TARGET="_top"
|
|
>The Linux Documentation Project</A
|
|
>.
|
|
</P
|
|
><P
|
|
> The latest version of this document can always be checked out via CVS.
|
|
Please follow the <A
|
|
HREF="http://www.mozilla.org/cvs.html"
|
|
TARGET="_top"
|
|
>Mozilla CVS</A
|
|
>
|
|
instructions 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"
|
|
></A
|
|
>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
|
|
></P
|
|
><DIV
|
|
CLASS="variablelist"
|
|
><DL
|
|
><DT
|
|
>Matthew P. Barnson <TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:mbarnson@sisna.com"
|
|
>mbarnson@sisna.com</A
|
|
>></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>for the Herculaean task of pulling together the Bugzilla Guide
|
|
and shepherding it to 2.14.
|
|
</P
|
|
></DD
|
|
><DT
|
|
>Terry Weissman <TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:terry@mozilla.org"
|
|
>terry@mozilla.org</A
|
|
>></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>for initially writing Bugzilla and creating the README upon
|
|
which the UNIX installation documentation is largely based.
|
|
</P
|
|
></DD
|
|
><DT
|
|
>Tara Hernandez <TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:tara@tequilarists.org"
|
|
>tara@tequilarists.org</A
|
|
>></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>for keeping Bugzilla development going strong after Terry left
|
|
mozilla.org and for running landfill.
|
|
</P
|
|
></DD
|
|
><DT
|
|
>Dave Lawrence <TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:dkl@redhat.com"
|
|
>dkl@redhat.com</A
|
|
>></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>for providing insight into the key differences between Red
|
|
Hat's customized Bugzilla, and being largely responsible for
|
|
<A
|
|
HREF="#variant-redhat"
|
|
>Section D.1</A
|
|
>.
|
|
</P
|
|
></DD
|
|
><DT
|
|
>Dawn Endico <TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:endico@mozilla.org"
|
|
>endico@mozilla.org</A
|
|
>></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>for being a hacker extraordinaire and putting up with Matthew's
|
|
incessant questions and arguments on irc.mozilla.org in #mozwebtools
|
|
</P
|
|
></DD
|
|
><DT
|
|
>Jacob Steenhagen <TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:jake@bugzilla.org"
|
|
>jake@bugzilla.org</A
|
|
>></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>for taking over documentation during the 2.17 development
|
|
period.
|
|
</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><P
|
|
> Last but not least, all the members of the
|
|
<A
|
|
HREF="news://news.mozilla.org/netscape/public/mozilla/webtools"
|
|
TARGET="_top"
|
|
>news://news.mozilla.org/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 alphabetical order):
|
|
Andrew Pearson, Ben FrantzDale, Eric Hanson, Gervase Markham, Joe Robins, Kevin Brannen, Martin Wulffeld, Ron Teitelbaum, Spencer Smith, Zach Liption
|
|
.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="conventions"
|
|
></A
|
|
>1.5. Document Conventions</H1
|
|
><P
|
|
>This document uses the following conventions:</P
|
|
><DIV
|
|
CLASS="informaltable"
|
|
><A
|
|
NAME="AEN111"
|
|
></A
|
|
><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"
|
|
>Term found in the glossary</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="MIDDLE"
|
|
> <A
|
|
HREF="#gloss-bugzilla"
|
|
><I
|
|
CLASS="glossterm"
|
|
>Bugzilla</I
|
|
></A
|
|
>
|
|
</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"
|
|
></A
|
|
>Chapter 2. Introduction</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="whatis"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>Chapter 3. Using Bugzilla</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="how"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
>http://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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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="AEN371"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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="AEN400"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>Chapter 4. Installation</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="stepbystep"
|
|
></A
|
|
>4.1. Step-by-step Install</H1
|
|
><P
|
|
>Bugzilla has been successfully installed under many different
|
|
operating systems including almost all Unix clones and
|
|
<SPAN
|
|
CLASS="productname"
|
|
>Microsoft Windows</SPAN
|
|
>. Many
|
|
operating systems have utilities that make installation easier or quirks
|
|
that make it harder. We have tried to collect that information in
|
|
<A
|
|
HREF="#os-specific"
|
|
>Section 4.3</A
|
|
>, so be sure to check out that section before
|
|
you start your 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
|
|
>Windows is one of those operating systems that has many quirks
|
|
and is not yet officially supported by the Bugzilla team. If you wish
|
|
to install Bugzilla on Windows, be sure to see
|
|
<A
|
|
HREF="#os-win32"
|
|
>Section 4.3.1</A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><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
|
|
>While installing Bugzilla, it is a good idea to ensure that there
|
|
is some kind of firewall between you and the rest of the Internet
|
|
as 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
|
|
><P
|
|
>This guide assumes that you already have your operating system
|
|
installed, network configured, and have administrative access to the
|
|
shell on the machine you are installing Bugzilla onto. It is possible to
|
|
install and run Bugzilla without administrative access, but you have to
|
|
either make sure all the required software is installed or get somebody
|
|
with administrative access to install it for you.
|
|
</P
|
|
><P
|
|
>The listing below is a basic step-by-step list. More information
|
|
can be found in the sections below. Minimum versions will be
|
|
included in parenthesis where appropriate.
|
|
</P
|
|
><DIV
|
|
CLASS="procedure"
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="#install-mysql"
|
|
>Install MySQL</A
|
|
>
|
|
(3.23.41)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="#install-perl"
|
|
>Install Perl</A
|
|
>
|
|
(5.6)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="#install-perlmodules"
|
|
>Install Perl Modules</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="#install-webserver"
|
|
>Install a Webserver</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="#install-bzfiles"
|
|
>Put Bugzilla in the Webspace</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="#install-setupdatabase"
|
|
>Setup the MySQL Database</A
|
|
>
|
|
</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-mysql"
|
|
></A
|
|
>4.1.1. MySQL</H2
|
|
><P
|
|
>Visit the MySQL homepage at
|
|
<A
|
|
HREF="http://www.mysql.com"
|
|
TARGET="_top"
|
|
>http://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 a packaging/installation
|
|
system (such as .rpm, .dep, .exe, or .msi) you will need to configure
|
|
your system so the MySQL server daemon will come back up whenever
|
|
your machine reboots.
|
|
</P
|
|
><P
|
|
>If you wish to have attachments larger than 64K, you will have to
|
|
configure MySQL to accept large packets. This is done by adding the text
|
|
in <A
|
|
HREF="#install-mysql-packets"
|
|
>Figure 4-1</A
|
|
> to your
|
|
<TT
|
|
CLASS="filename"
|
|
>my.conf</TT
|
|
> file. There is also a parameter in Bugzilla
|
|
for setting the maximum allowable attachment size.
|
|
|
|
You should set this value to be slightly larger than that parameter.
|
|
</P
|
|
><DIV
|
|
CLASS="figure"
|
|
><A
|
|
NAME="install-mysql-packets"
|
|
></A
|
|
><P
|
|
><B
|
|
>Figure 4-1. Set Max Packet Size in MySQL</B
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> [mysqld]
|
|
# Allow packets up to 1M
|
|
set-variable = max_allowed_packet=1M
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>If you are running Bugzilla and MySQL on the same machine, you may
|
|
also wish to utilize the <TT
|
|
CLASS="option"
|
|
>skip-networking</TT
|
|
> option as
|
|
mentioned in <A
|
|
HREF="#security-mysql"
|
|
>Section 5.6.2</A
|
|
> for the added security.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-perl"
|
|
></A
|
|
>4.1.2. 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"
|
|
>http://www.perl.com</A
|
|
>.
|
|
There are also binary versions available for many platforms, most of which
|
|
are linked to from perl.com.
|
|
Although Bugzilla runs with perl 5.6,
|
|
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.8.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-perlmodules"
|
|
></A
|
|
>4.1.3. Perl Modules</H2
|
|
><P
|
|
>Perl modules can be found using
|
|
<A
|
|
HREF="#gloss-cpan"
|
|
><I
|
|
CLASS="glossterm"
|
|
>CPAN</I
|
|
></A
|
|
> on Unix based systems or
|
|
<A
|
|
HREF="#gloss-ppm"
|
|
><I
|
|
CLASS="glossterm"
|
|
>PPM</I
|
|
></A
|
|
> on Win32. The root servers
|
|
have a real tendency to bog down, so please use mirrors.
|
|
</P
|
|
><P
|
|
>Good instuctions can be found for using each of these services on
|
|
their respective websites. The basics can be found in
|
|
<A
|
|
HREF="#install-perlmodules-cpan"
|
|
>Example 4-1</A
|
|
> for CPAN and
|
|
<A
|
|
HREF="#win32-perlmodules"
|
|
>Section 4.3.1.2</A
|
|
> for PPM.
|
|
</P
|
|
><DIV
|
|
CLASS="example"
|
|
><A
|
|
NAME="install-perlmodules-cpan"
|
|
></A
|
|
><P
|
|
><B
|
|
>Example 4-1. Installing perl modules with CPAN</B
|
|
></P
|
|
><P
|
|
>The easy way:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="screen"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> perl -MCPAN -e 'install "<modulename>"'
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
>Or the hard way:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="screen"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> tar xzvf <module>.tar.gz <A
|
|
NAME="cpan-moduletar"
|
|
><IMG
|
|
SRC="../images/callouts/1.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(1)"></A
|
|
>
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> cd <module> <A
|
|
NAME="cpan-moduledir"
|
|
><IMG
|
|
SRC="../images/callouts/2.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(2)"></A
|
|
>
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> perl Makefile.PL
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> make
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> make test
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> make install
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
<DIV
|
|
CLASS="calloutlist"
|
|
><DL
|
|
COMPACT="COMPACT"
|
|
><DT
|
|
><A
|
|
HREF="#cpan-moduletar"
|
|
><IMG
|
|
SRC="../images/callouts/1.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(1)"></A
|
|
></DT
|
|
><DD
|
|
>This assumes that you've already downloaded the
|
|
<TT
|
|
CLASS="filename"
|
|
><module>.tar.gz</TT
|
|
> to the current working
|
|
directory.
|
|
</DD
|
|
><DT
|
|
><A
|
|
HREF="#cpan-moduledir"
|
|
><IMG
|
|
SRC="../images/callouts/2.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(2)"></A
|
|
></DT
|
|
><DD
|
|
>The process of untaring the module as defined in
|
|
<A
|
|
HREF="#cpan-moduletar"
|
|
><A
|
|
HREF="#cpan-moduletar"
|
|
><IMG
|
|
SRC="../images/callouts/1.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(1)"></A
|
|
></A
|
|
> will create the
|
|
<TT
|
|
CLASS="filename"
|
|
><module></TT
|
|
> directory.
|
|
</DD
|
|
></DL
|
|
></DIV
|
|
>
|
|
</P
|
|
></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
|
|
>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
|
|
><P
|
|
>Perl Modules (minimum version):
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-bundle-bugzilla"
|
|
>Bundle::Bugzilla</A
|
|
>
|
|
(Will allow you to skip the rest)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-appconfig"
|
|
>AppConfig</A
|
|
>
|
|
(1.52)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-cgi"
|
|
>CGI</A
|
|
>
|
|
(2.88)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-data-dumper"
|
|
>Data::Dumper</A
|
|
>
|
|
(any)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-date-format"
|
|
>Date::Format</A
|
|
>
|
|
(2.21)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-dbi"
|
|
>DBI</A
|
|
>
|
|
(1.32)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-dbd-mysql"
|
|
>DBD::mysql</A
|
|
>
|
|
(2.1010)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-file-spec"
|
|
>File::Spec</A
|
|
>
|
|
(0.82)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-file-temp"
|
|
>File::Temp</A
|
|
>
|
|
(any)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-template"
|
|
>Template Toolkit</A
|
|
>
|
|
(2.08)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-text-wrap"
|
|
>Text::Wrap</A
|
|
>
|
|
(2001.0131)
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
|
|
and, optionally:
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-gd"
|
|
>GD</A
|
|
>
|
|
(1.20) for bug charting
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-chart-base"
|
|
>Chart::Base</A
|
|
>
|
|
(0.99c) for bug charting
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-xml-parser"
|
|
>XML::Parser</A
|
|
>
|
|
(any) for the XML interface
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-gd-graph"
|
|
>GD::Graph</A
|
|
>
|
|
(any) for bug charting
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-gd-text-align"
|
|
>GD::Text::Align</A
|
|
>
|
|
(any) for bug charting
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="#install-modules-mime-parser"
|
|
>MIME::Parser</A
|
|
>
|
|
(any) for the email interface
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-bundle-bugzilla"
|
|
></A
|
|
>4.1.3.1. Bundle::Bugzilla</H3
|
|
><P
|
|
>If you are running at least perl 5.6.1, you can save yourself a lot
|
|
of time by using Bundle::Bugzilla. This bundle contains every module
|
|
required to get Bugzilla running. It does not include GD and friends, but
|
|
these are not required for a base install and can always be added later
|
|
if the need arises.
|
|
</P
|
|
><P
|
|
>Assuming your perl was installed with CPAN (most unix installations
|
|
are), using Bundle::Bugzilla is really easy. Simply follow along with the
|
|
commands below.
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="screen"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="command"
|
|
>perl -MCPAN -eshell</B
|
|
> <A
|
|
NAME="bundle-cpanconfig"
|
|
><IMG
|
|
SRC="../images/callouts/1.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(1)"></A
|
|
>
|
|
cpan shell -- CPAN exploration and modules installation (v1.63)
|
|
ReadLine support enabled
|
|
|
|
<TT
|
|
CLASS="prompt"
|
|
>cpan></TT
|
|
>
|
|
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><DIV
|
|
CLASS="calloutlist"
|
|
><DL
|
|
COMPACT="COMPACT"
|
|
><DT
|
|
><A
|
|
HREF="#bundle-cpanconfig"
|
|
><IMG
|
|
SRC="../images/callouts/1.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(1)"></A
|
|
></DT
|
|
><DD
|
|
>At this point, unless you've used CPAN on this machine before,
|
|
you'll have to go through a series of configuration steps.
|
|
</DD
|
|
></DL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-appconfig"
|
|
></A
|
|
>4.1.3.2. AppConfig (1.52)</H3
|
|
><P
|
|
>Dependency for Template Toolkit. We probably don't need to
|
|
specifically check for it anymore.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-cgi"
|
|
></A
|
|
>4.1.3.3. CGI (2.88)</H3
|
|
><P
|
|
>The CGI module parses form elements and cookies and does many
|
|
other usefule things. It come as a part of recent perl distributions, but
|
|
Bugzilla needs a fairly new version.
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/CGI.pm/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/CGI.pm/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/CGI.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/CGI.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://www.perldoc.com/perl5.8.0/lib/CGI.html"
|
|
TARGET="_top"
|
|
>http://www.perldoc.com/perl5.8.0/lib/CGI.html</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-data-dumper"
|
|
></A
|
|
>4.1.3.4. Data::Dumper (any)</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
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/Data-Dumper/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/Data-Dumper/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/Data-Dumper.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/Data-Dumper.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://www.perldoc.com/perl5.8.0/lib/Data/Dumper.html"
|
|
TARGET="_top"
|
|
>http://www.perldoc.com/perl5.8.0/lib/Data/Dumper.html</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-date-format"
|
|
></A
|
|
>4.1.3.5. TimeDate modules (2.21)</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
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/TimeDate/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/TimeDate/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/TimeDate.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/TimeDate.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://search.cpan.org/dist/TimeDate/lib/Date/Format.pm"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/TimeDate/lib/Date/Format.pm</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-dbi"
|
|
></A
|
|
>4.1.3.6. DBI (1.32)</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
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/DBI/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/DBI/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/DBI.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/DBI.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://dbi.perl.org/doc/"
|
|
TARGET="_top"
|
|
>http://dbi.perl.org/doc/</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-dbd-mysql"
|
|
></A
|
|
>4.1.3.7. 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
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/DBD-mysql/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/DBD-mysql/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/DBD-Mysql.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/DBD-Mysql.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pod"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pod</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-file-spec"
|
|
></A
|
|
>4.1.3.8. File::Spec (0.82)</H3
|
|
><P
|
|
>File::Spec is a perl module that allows file operations, such as
|
|
generating full path names, to work cross platform.
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/File-Spec/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/File-Spec/</A
|
|
><br>
|
|
PPM Download Page: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/File-Spec.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/File-Spec.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://www.perldoc.com/perl5.8.0/lib/File/Spec.html"
|
|
TARGET="_top"
|
|
>http://www.perldoc.com/perl5.8.0/lib/File/Spec.html</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-file-temp"
|
|
></A
|
|
>4.1.3.9. File::Temp (any)</H3
|
|
><P
|
|
>File::Temp is used to generate a temporary filename that is
|
|
guaranteed to be unique. It comes as a standard part of perl
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/File-Spec/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/File-Spec/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/File-Spec.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/File-Spec.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://www.perldoc.com/perl5.8.0/lib/File/Temp.html"
|
|
TARGET="_top"
|
|
>http://www.perldoc.com/perl5.8.0/lib/File/Temp.html</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-template"
|
|
></A
|
|
>4.1.3.10. Template Toolkit (2.08)</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.
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/Template-Toolkit/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/Template-Toolkit/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://openinteract.sourceforge.net/ppmpackages/5.6/Template-Toolkit.tar.gz"
|
|
TARGET="_top"
|
|
>http://openinteract.sourceforge.net/ppmpackages/5.6/Template-Toolkit.tar.gz</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://www.template-toolkit.org/docs.html"
|
|
TARGET="_top"
|
|
>http://www.template-toolkit.org/docs.html</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-text-wrap"
|
|
></A
|
|
>4.1.3.11. Text::Wrap (2001.0131)</H3
|
|
><P
|
|
>Text::Wrap is designed to proved intelligent text wrapping.
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/Text-Tabs+Wrap/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/Text-Tabs+Wrap/</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://www.perldoc.com/perl5.8.0/lib/Text/Wrap.html"
|
|
TARGET="_top"
|
|
>http://www.perldoc.com/perl5.8.0/lib/Text/Wrap.html</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-gd"
|
|
></A
|
|
>4.1.3.12. GD (1.20) [optional]</H3
|
|
><P
|
|
>The GD library was written by Thomas Boutell a long while ago to
|
|
programmatically generate images in C. Since then it's become the
|
|
defacto standard for programmatic 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
|
|
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
|
|
>The version of the GD perl module you need is very closely tied
|
|
to the <TT
|
|
CLASS="classname"
|
|
>libgd</TT
|
|
> version installed on your system.
|
|
If you have a version 1.x of <TT
|
|
CLASS="classname"
|
|
>libgd</TT
|
|
> the 2.x
|
|
versions of the GD perl module won't work for you.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/GD/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/GD/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GD.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GD.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://stein.cshl.org/WWW/software/GD/"
|
|
TARGET="_top"
|
|
>http://stein.cshl.org/WWW/software/GD/</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-chart-base"
|
|
></A
|
|
>4.1.3.13. Chart::Base (0.99c) [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
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/Chart/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/Chart/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/Chart.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/Chart.zip</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-xml-parser"
|
|
></A
|
|
>4.1.3.14. XML::Parser (any) [Optional]</H3
|
|
><P
|
|
>XML::Parser is used by the <TT
|
|
CLASS="filename"
|
|
>importxml.pl</TT
|
|
>
|
|
script. You only need it if you are going to be importing bugs (such as
|
|
for bug moving). XML::Parser requires that the
|
|
<TT
|
|
CLASS="classname"
|
|
>expat</TT
|
|
> library is already installed on your machine.
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/XML-Parser/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/XML-Parser/</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://www.perldoc.com/perl5.6.1/lib/XML/Parser.html"
|
|
TARGET="_top"
|
|
>http://www.perldoc.com/perl5.6.1/lib/XML/Parser.html</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-gd-graph"
|
|
></A
|
|
>4.1.3.15. GD::Graph (any) [Optional]</H3
|
|
><P
|
|
>In addition to GD listed above, the reporting interface of Bugzilla
|
|
needs to have the GD::Graph module installed.
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/GDGraph/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/GDGraph/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDGraph.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDGraph.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://search.cpan.org/dist/GDGraph/Graph.pm"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/GDGraph/Graph.pm</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-gd-text-align"
|
|
></A
|
|
>4.1.3.16. GD::Text::Align (any) [Optional]</H3
|
|
><P
|
|
>GD::Text::Align, as the name implies, is used to draw aligned
|
|
strings of text. It is needed by the reporting interface.
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/GDTextUtil/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/GDTextUtil/</A
|
|
><br>
|
|
PPM Download Page: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDTextUtil.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDTextUtil.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://search.cpan.org/dist/GDTextUtil/Text/Align.pm"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/GDTextUtil/Text/Align.pm</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-modules-mime-parser"
|
|
></A
|
|
>4.1.3.17. MIME::Parser (any) [Optional]</H3
|
|
><P
|
|
>MIME::Parser is only needed if you want to use the e-mail interface
|
|
located in the <TT
|
|
CLASS="filename"
|
|
>contrib</TT
|
|
> directory.
|
|
</P
|
|
><P
|
|
CLASS="literallayout"
|
|
><br>
|
|
CPAN Download Page: <A
|
|
HREF="http://search.cpan.org/dist/MIME-tools/"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/MIME-tools/</A
|
|
><br>
|
|
PPM Download Link: <A
|
|
HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/MIME-tools.zip"
|
|
TARGET="_top"
|
|
>http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/MIME-tools.zip</A
|
|
><br>
|
|
Documentation: <A
|
|
HREF="http://search.cpan.org/dist/MIME-tools/lib/MIME/Parser.pm"
|
|
TARGET="_top"
|
|
>http://search.cpan.org/dist/MIME-tools/lib/MIME/Parser.pm</A
|
|
><br>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-webserver"
|
|
></A
|
|
>4.1.4. HTTP Server</H2
|
|
><P
|
|
>You have freedom of choice here, pretty much any web server that
|
|
is capable of running <A
|
|
HREF="#gloss-cgi"
|
|
><I
|
|
CLASS="glossterm"
|
|
>CGI</I
|
|
></A
|
|
>
|
|
scripts will work. <A
|
|
HREF="#http"
|
|
>Section 4.4</A
|
|
> has more information about
|
|
configuring web servers to work with Bugzilla.
|
|
</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
|
|
>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 by filing a bug in <A
|
|
HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation"
|
|
TARGET="_top"
|
|
>Bugzilla Documentation</A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-bzfiles"
|
|
></A
|
|
>4.1.5. 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
|
|
hierarchy, 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
|
|
><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
|
|
>The default Bugzilla distribution is not designed to be placed
|
|
in a <TT
|
|
CLASS="filename"
|
|
>cgi-bin</TT
|
|
> directory (this
|
|
includes any directory which is configured using the
|
|
<TT
|
|
CLASS="option"
|
|
>ScriptAlias</TT
|
|
> directive of Apache). This will probably
|
|
change as part of
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=44659"
|
|
TARGET="_top"
|
|
>bug
|
|
44659</A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="install-setupdatabase"
|
|
></A
|
|
>4.1.6. 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
|
|
>This first thing you'll want to do is make sure you've given the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"root"</SPAN
|
|
> user a password as suggested in
|
|
<A
|
|
HREF="#security-mysql"
|
|
>Section 5.6.2</A
|
|
>. For clarity, these instructions will
|
|
assume that your MySQL user for Bugzilla will be <SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_user"</SPAN
|
|
>,
|
|
the database will be called <SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_db"</SPAN
|
|
> and the password for
|
|
the <SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_user"</SPAN
|
|
> user is <SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_password"</SPAN
|
|
>. You
|
|
should, of course, substitute the values you intend to use for your site.
|
|
</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
|
|
>Most people use <SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs"</SPAN
|
|
> for both the user and
|
|
database name.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>Next, we use an SQL <B
|
|
CLASS="command"
|
|
>GRANT</B
|
|
> command to create a
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_user"</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_user"</SPAN
|
|
>
|
|
user to operations within a database called
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_db"</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
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="screen"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,
|
|
DROP,REFERENCES ON bugs_db.* TO bugs_user@localhost
|
|
IDENTIFIED BY 'bugs_password';
|
|
<TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
> FLUSH PRIVILEGES;
|
|
</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
|
|
>If you are using MySQL 4, the bugs user also needs to be granted
|
|
the <TT
|
|
CLASS="computeroutput"
|
|
>LOCK TABLES</TT
|
|
> and
|
|
<TT
|
|
CLASS="computeroutput"
|
|
>CREATE TEMPORARY TABLES</TT
|
|
> permissions.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN749"
|
|
></A
|
|
>4.1.7. <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 perl modules are the correct
|
|
version and 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
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="screen"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> ./checksetup.pl
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><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_db"</SPAN
|
|
>
|
|
if you're following these directions</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>MySQL username:
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_user"</SPAN
|
|
>
|
|
if you're following these directions</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Password for the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_user"</SPAN
|
|
>
|
|
MySQL account; (<SPAN
|
|
CLASS="QUOTE"
|
|
>"bugs_password"</SPAN
|
|
> 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="AEN780"
|
|
></A
|
|
>4.1.8. 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"
|
|
></A
|
|
>4.2. Optional Additional Configuration</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN786"
|
|
></A
|
|
>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 HARTS.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN801"
|
|
></A
|
|
>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="AEN814"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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
|
|
><P
|
|
>You can also try using <A
|
|
HREF="http://www.openldap.org/"
|
|
TARGET="_top"
|
|
> OpenLDAP</A
|
|
> with Bugzilla, using any of a number of administration
|
|
tools. You should apply the patch attached to
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=158630"
|
|
TARGET="_top"
|
|
>bug 158630</A
|
|
>
|
|
, then set the following object classes for your users:
|
|
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>objectClass: person</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>objectClass: organizationalPerson</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>objectClass: inetOrgPerson</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>objectClass: top</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>objectClass: posixAccount</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>objectClass: shadowAccount</P
|
|
></LI
|
|
></OL
|
|
>
|
|
|
|
Please note that this patch <EM
|
|
>has not</EM
|
|
> yet been
|
|
accepted by the Bugzilla team, and so you may need to do some
|
|
manual tweaking. That said, it looks like Net::LDAP is probably
|
|
the way to go in the future.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="content-type"
|
|
></A
|
|
>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
|
|
><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
|
|
>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. See
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=126266"
|
|
TARGET="_top"
|
|
>bug 126266</A
|
|
>
|
|
for more information including progress toward making
|
|
bugzilla charset aware by default.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="directoryindex"
|
|
></A
|
|
>4.2.6. <TT
|
|
CLASS="filename"
|
|
>directoryindex</TT
|
|
> for the Bugzilla default page.</H2
|
|
><P
|
|
>You should modify the <DirectoryIndex> parameter for
|
|
the Apache virtual host running your Bugzilla installation to
|
|
allow <TT
|
|
CLASS="filename"
|
|
>index.cgi</TT
|
|
> as the index page for a
|
|
directory, as well as the usual <TT
|
|
CLASS="filename"
|
|
>index.html</TT
|
|
>,
|
|
<TT
|
|
CLASS="filename"
|
|
>index.htm</TT
|
|
>, and so forth. </P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="mod_perl"
|
|
></A
|
|
>4.2.7. Bugzilla and <TT
|
|
CLASS="filename"
|
|
>mod_perl</TT
|
|
></H2
|
|
><P
|
|
>Bugzilla is unsupported under mod_perl. Effort is underway
|
|
to make it work cleanly in a mod_perl environment, but it is
|
|
slow going.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="mod-throttle"
|
|
></A
|
|
>4.2.8. <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/mod_throttle/"
|
|
TARGET="_top"
|
|
>http://www.snert.com/Software/mod_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/mod_throttle/"
|
|
TARGET="_top"
|
|
>Module
|
|
Instructions</A
|
|
>
|
|
for more information.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="os-specific"
|
|
></A
|
|
>4.3. OS Specific Installation Notes</H1
|
|
><P
|
|
>Many aspects of the Bugzilla installation can be affected by the
|
|
the operating system you choose to install it on. Sometimes it can be made
|
|
easier and others more difficult. This section will attempt to help you
|
|
understand both the difficulties of running on specific operating systems
|
|
and the utilities available to make it easier.
|
|
</P
|
|
><P
|
|
>If you have anything to add or notes for an operating system not
|
|
covered, please file a bug in <A
|
|
HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation"
|
|
TARGET="_top"
|
|
>Bugzilla Documentation</A
|
|
>.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="os-win32"
|
|
></A
|
|
>4.3.1. Microsoft Windows</H2
|
|
><P
|
|
>Making Bugzilla work on windows is still a very painful processes.
|
|
The Bugzilla Team is working to make it easier, but that goal is not
|
|
considered a top priority. If you wish to run Bugzilla, we still
|
|
recommend doing so on a Unix based system such as GNU/Linux. As of this
|
|
writing, all members of the Bugzilla team and all known large installations
|
|
run on Unix based systems.
|
|
</P
|
|
><P
|
|
>If after hearing all that, you have enough pain tolerance to attempt
|
|
installing Bugzilla on Win32, here are some pointers.
|
|
|
|
Because this is a development version of the guide, these instructions
|
|
are subject to change without notice. In fact, the Bugzilla Team hopes
|
|
they do as we would like to have Bugzilla resonabally close to "out of
|
|
the box" compatibility by the 2.18 release.
|
|
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="win32-perl"
|
|
></A
|
|
>4.3.1.1. Win32 Perl</H3
|
|
><P
|
|
>Perl for Windows can be obtained from <A
|
|
HREF="http://www.activestate.com/"
|
|
TARGET="_top"
|
|
>ActiveState</A
|
|
>. You should be
|
|
able to find a compiled binary at <A
|
|
HREF="http://aspn.activestate.com/ASPN/Downloads/ActivePerl/"
|
|
TARGET="_top"
|
|
>http://aspn.activestate.com/ASPN/Downloads/ActivePerl/</A
|
|
>.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="win32-perlmodules"
|
|
></A
|
|
>4.3.1.2. Perl Modules on Win32</H3
|
|
><P
|
|
>Bugzilla on Windows requires the same perl modules found in
|
|
<A
|
|
HREF="#install-perlmodules"
|
|
>Section 4.1.3</A
|
|
>. The main difference is that
|
|
windows uses <A
|
|
HREF="#gloss-ppm"
|
|
><I
|
|
CLASS="glossterm"
|
|
>PPM</I
|
|
></A
|
|
> instead of
|
|
CPAN.
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> C:\perl> <B
|
|
CLASS="command"
|
|
>ppm <module name></B
|
|
>
|
|
</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
|
|
>The above syntax should work for all modules with the exception
|
|
of Template Toolkit. The <A
|
|
HREF="http://tt2.org/download.html#win32"
|
|
TARGET="_top"
|
|
>Template Toolkit website</A
|
|
>
|
|
suggests using the instructions on <A
|
|
HREF="http://openinteract.sourceforge.net/"
|
|
TARGET="_top"
|
|
>OpenInteract's website</A
|
|
>.
|
|
</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
|
|
>A complete list of modules that can be installed using ppm can
|
|
be found at <A
|
|
HREF="http://www.activestate.com/PPMPackages/5.6plus"
|
|
TARGET="_top"
|
|
>http://www.activestate.com/PPMPackages/5.6plus</A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="win32-code-changes"
|
|
></A
|
|
>4.3.1.3. Code changes required to run on win32</H3
|
|
><P
|
|
>Unfortunately, Bugzilla still doesn't run "out of the box" on
|
|
Windows. There is work in progress to make this easier, but until that
|
|
happens code will have to be modified. This section is an attempt to
|
|
list the required changes. It is an attempt to be all inclusive, but
|
|
there may be other changes required. If you find something is missing,
|
|
please file a bug in <A
|
|
HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation"
|
|
TARGET="_top"
|
|
>Bugzilla Documentation</A
|
|
>.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H4
|
|
CLASS="section"
|
|
><A
|
|
NAME="win32-code-checksetup"
|
|
></A
|
|
>4.3.1.3.1. Changes to <TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
></H4
|
|
><P
|
|
>In <TT
|
|
CLASS="filename"
|
|
>checksetup.pl</TT
|
|
>, the line reading:</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> my $mysql_binaries = `which mysql`;
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
>to</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> my $mysql_binaries = "D:\\mysql\\bin\\mysql";
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
>And you'll also need to change:</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
|
|
>to</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> my $webservergid = '8'
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="win32-http"
|
|
></A
|
|
>4.3.1.4. Serving the web pages</H3
|
|
><P
|
|
>As is the case on Unix based systems, any web server should be
|
|
able to handle Bugzilla; however, the Bugzilla Team still recommends
|
|
Apache whenever asked. No matter what web server you choose, be sure
|
|
to pay attention to the security notes in <A
|
|
HREF="#security-access"
|
|
>Section 5.6.4</A
|
|
>.
|
|
More information on configuring specific web servers can be found in
|
|
<A
|
|
HREF="#http"
|
|
>Section 4.4</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
|
|
>If using Apache on windows, you can set the <A
|
|
HREF="http://httpd.apache.org/docs-2.0/mod/core.html#scriptinterpretersource"
|
|
TARGET="_top"
|
|
>ScriptInterpreterSource</A
|
|
>
|
|
directive in your Apache config, if you don't do this, you'll have
|
|
to modify the first line of every script to contain your path to
|
|
perl instead of <TT
|
|
CLASS="filename"
|
|
>/usr/bin/perl</TT
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="os-macosx"
|
|
></A
|
|
>4.3.2. <SPAN
|
|
CLASS="productname"
|
|
>Mac OS X</SPAN
|
|
></H2
|
|
><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
|
|
<A
|
|
HREF="http://sourceforge.net/projects/fink/"
|
|
TARGET="_top"
|
|
>http://sourceforge.net/projects/fink/</A
|
|
>.</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="../xml/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><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="os-mandrake"
|
|
></A
|
|
>4.3.3. Linux-Mandrake 8.0</H2
|
|
><P
|
|
>Linux-Mandrake 8.0 includes every required and optional library
|
|
for Bugzilla. The easiest way to install them is by using the
|
|
<B
|
|
CLASS="command"
|
|
>urpmi</B
|
|
> utility. If you follow these commands, you
|
|
should have everything you need for Bugzilla, and
|
|
<B
|
|
CLASS="command"
|
|
>./checksetup.pl</B
|
|
> should not complain about any
|
|
missing libraries. You may already have some of these installed.
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="screen"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="command"
|
|
>urpmi perl-mysql</B
|
|
>
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="command"
|
|
>urpmi perl-chart</B
|
|
>
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="command"
|
|
>urpmi perl-gd</B
|
|
>
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="command"
|
|
>urpmi perl-MailTools</B
|
|
> <A
|
|
NAME="test-mailtools"
|
|
><IMG
|
|
SRC="../images/callouts/1.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(1)"></A
|
|
>
|
|
<TT
|
|
CLASS="prompt"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="command"
|
|
>urpmi apache-modules</B
|
|
>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><DIV
|
|
CLASS="calloutlist"
|
|
><DL
|
|
COMPACT="COMPACT"
|
|
><DT
|
|
><A
|
|
HREF="#test-mailtools"
|
|
><IMG
|
|
SRC="../images/callouts/1.gif"
|
|
HSPACE="0"
|
|
VSPACE="0"
|
|
BORDER="0"
|
|
ALT="(1)"></A
|
|
></DT
|
|
><DD
|
|
>for Bugzilla e-mail integration</DD
|
|
></DL
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="http"
|
|
></A
|
|
>4.4. HTTP Server Configuration</H1
|
|
><P
|
|
>The Bugzilla Team recommends Apache when using Bugzilla, however, any web server
|
|
that can be configured to run <A
|
|
HREF="#gloss-cgi"
|
|
><I
|
|
CLASS="glossterm"
|
|
>CGI</I
|
|
></A
|
|
> scripts
|
|
should be able to handle Bugzilla. No matter what web server you choose, but
|
|
especially if you choose something other than Apache, you should be sure to read
|
|
<A
|
|
HREF="#security-access"
|
|
>Section 5.6.4</A
|
|
>.
|
|
</P
|
|
><P
|
|
>The plan for this section is to eventually document the specifics of how to lock
|
|
down permissions on individual web servers.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="http-apache"
|
|
></A
|
|
>4.4.1. Apache <SPAN
|
|
CLASS="productname"
|
|
>httpd</SPAN
|
|
></H2
|
|
><P
|
|
>As mentioned above, the Bugzilla Team recommends Apache for use
|
|
with Bugzilla. You will have to make sure that Apache is properly
|
|
configured to run the Bugzilla CGI scripts. You also need to make sure
|
|
that the <TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
> files created by
|
|
<B
|
|
CLASS="command"
|
|
>./checksetup.pl</B
|
|
> (shown in <A
|
|
HREF="#http-apache-htaccess"
|
|
>Example 4-2</A
|
|
>
|
|
for the curious) are allowed to override Apache's normal access
|
|
permissions or else important password information may be exposed to the
|
|
Internet.
|
|
</P
|
|
><P
|
|
>Many Apache installations are not configured to run scripts
|
|
anywhere but in the <TT
|
|
CLASS="filename"
|
|
>cgi-bin</TT
|
|
>
|
|
directory; however, we recommend that Bugzilla not be installed in the
|
|
<TT
|
|
CLASS="filename"
|
|
>cgi-bin</TT
|
|
>, otherwise the static
|
|
files such as images and <A
|
|
HREF="#gloss-javascript"
|
|
><I
|
|
CLASS="glossterm"
|
|
>JavaScript</I
|
|
></A
|
|
>
|
|
will not work correctly. To allow scripts to run in the normal
|
|
web space, the following changes should be made to your
|
|
<TT
|
|
CLASS="filename"
|
|
>httpd.conf</TT
|
|
> file.
|
|
</P
|
|
><P
|
|
>To allow files with a .cgi extension to be run, make sure the
|
|
following line exists and is uncommented:</P
|
|
><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
|
|
>To allow <TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
> files to override
|
|
permissions and .cgi files to run in the Bugzilla directory, make sure
|
|
the following two lines are in a <TT
|
|
CLASS="computeroutput"
|
|
>Directory</TT
|
|
>
|
|
directive that applies to the Bugzilla directory on your system
|
|
(either the Bugzilla directory or one of its parents).
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> Options +ExecCGI
|
|
AllowOverride Limit
|
|
</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
|
|
>For more information on Apache and its directives, see the
|
|
glossary entry on <A
|
|
HREF="#gloss-apache"
|
|
><I
|
|
CLASS="glossterm"
|
|
>Apache</I
|
|
></A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="example"
|
|
><A
|
|
NAME="http-apache-htaccess"
|
|
></A
|
|
><P
|
|
><B
|
|
>Example 4-2. <TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
> files for Apache</B
|
|
></P
|
|
><P
|
|
><TT
|
|
CLASS="filename"
|
|
>$BUGZILLA_HOME/.htaccess</TT
|
|
>
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> # don't allow people to retrieve non-cgi executable files or our private data
|
|
<FilesMatch ^(.*\.pl|.*localconfig.*|runtests.sh)$>
|
|
deny from all
|
|
</FilesMatch>
|
|
<FilesMatch ^(localconfig.js|localconfig.rdf)$>
|
|
allow from all
|
|
</FilesMatch>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
><TT
|
|
CLASS="filename"
|
|
>$BUGZILLA_HOME/data/.htaccess</TT
|
|
>
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> # nothing in this directory is retrievable unless overriden by an .htaccess
|
|
# in a subdirectory; the only exception is duplicates.rdf, which is used by
|
|
# duplicates.xul and must be loadable over the web
|
|
deny from all
|
|
<Files duplicates.rdf>
|
|
allow from all
|
|
</Files>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
><TT
|
|
CLASS="filename"
|
|
>$BUGZILLA_HOME/data/webdot</TT
|
|
>
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> # Restrict access to .dot files to the public webdot server at research.att.com
|
|
# if research.att.com ever changed their IP, or if you use a different
|
|
# webdot server, you'll need to edit this
|
|
<FilesMatch ^[0-9]+\.dot$>
|
|
Allow from 192.20.225.10
|
|
Deny from all
|
|
</FilesMatch>
|
|
|
|
# Allow access by a local copy of 'dot' to .png, .gif, .jpg, and
|
|
# .map files
|
|
<FilesMatch ^[0-9]+\.(png|gif|jpg|map)$>
|
|
Allow from all
|
|
</FilesMatch>
|
|
|
|
# And no directory listings, either.
|
|
Deny from all
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
><TT
|
|
CLASS="filename"
|
|
>$BUGZILLA_HOME/Bugzilla/.htaccess</TT
|
|
>
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> # nothing in this directory is retrievable unless overriden by an .htaccess
|
|
# in a subdirectory
|
|
deny from all
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
><P
|
|
><TT
|
|
CLASS="filename"
|
|
>$BUGZILLA_HOME/template/.htaccess</TT
|
|
>
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> # nothing in this directory is retrievable unless overriden by an .htaccess
|
|
# in a subdirectory
|
|
deny from all
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="http-iis"
|
|
></A
|
|
>4.4.2. Microsoft <SPAN
|
|
CLASS="productname"
|
|
>Internet Information Services</SPAN
|
|
></H2
|
|
><P
|
|
>If you need, or for some reason even want, to use Microsoft's
|
|
<SPAN
|
|
CLASS="productname"
|
|
>Internet Information Services</SPAN
|
|
> or
|
|
<SPAN
|
|
CLASS="productname"
|
|
>Personal Web Server</SPAN
|
|
> you should be able
|
|
to. You will need to configure them to know how to run CGI scripts,
|
|
however. This is described in Microsoft Knowledge Base article
|
|
<A
|
|
HREF="http://support.microsoft.com/support/kb/articles/Q245/2/25.asp"
|
|
TARGET="_top"
|
|
>Q245225</A
|
|
>
|
|
for <SPAN
|
|
CLASS="productname"
|
|
>Internet Information Services</SPAN
|
|
> and
|
|
<A
|
|
HREF="http://support.microsoft.com/support/kb/articles/Q231/9/98.asp"
|
|
TARGET="_top"
|
|
>Q231998</A
|
|
>
|
|
for <SPAN
|
|
CLASS="productname"
|
|
>Personal Web Server</SPAN
|
|
>.
|
|
</P
|
|
><P
|
|
>Also, and this can't be stressed enough, make sure that files such as
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
> and your <TT
|
|
CLASS="filename"
|
|
>data</TT
|
|
>
|
|
directory are secured as described in <A
|
|
HREF="#security-access"
|
|
>Section 5.6.4</A
|
|
>.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="http-aol"
|
|
></A
|
|
>4.4.3. AOL Server</H2
|
|
><P
|
|
>Ben FrantzDale reported success using AOL Server with Bugzilla. He
|
|
reported his experience and what appears below is based on that.
|
|
</P
|
|
><P
|
|
>AOL Server will have to be configured to run
|
|
<A
|
|
HREF="#gloss-cgi"
|
|
><I
|
|
CLASS="glossterm"
|
|
>CGI</I
|
|
></A
|
|
> scripts, please consult
|
|
the documentation that came with your server for more information on
|
|
how to do this.
|
|
</P
|
|
><P
|
|
>Because AOL Server doesn't support <TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
files, you'll have to create a <A
|
|
HREF="#gloss-tcl"
|
|
><I
|
|
CLASS="glossterm"
|
|
>TCL</I
|
|
></A
|
|
>
|
|
script. You should create an <TT
|
|
CLASS="filename"
|
|
>aolserver/modules/tcl/filter.tcl</TT
|
|
>
|
|
file (the filename shouldn't matter) with the following contents (change
|
|
<TT
|
|
CLASS="computeroutput"
|
|
>/bugzilla/</TT
|
|
> to the web-based path to
|
|
your Bugzilla installation):
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> ns_register_filter preauth GET /bugzilla/localconfig filter_deny
|
|
ns_register_filter preauth GET /bugzilla/localconfig~ filter_deny
|
|
ns_register_filter preauth GET /bugzilla/\#localconfig\# filter_deny
|
|
ns_register_filter preauth GET /bugzilla/*.pl filter_deny
|
|
ns_register_filter preauth GET /bugzilla/syncshadowdb filter_deny
|
|
ns_register_filter preauth GET /bugzilla/runtests.sh filter_deny
|
|
ns_register_filter preauth GET /bugzilla/data/* filter_deny
|
|
ns_register_filter preauth GET /bugzilla/template/* filter_deny
|
|
|
|
proc filter_deny { why } {
|
|
ns_log Notice "filter_deny"
|
|
return "filter_return"
|
|
}
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><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 probably doesn't account for all possible editor backup
|
|
files so you may wish to add some additional variations of
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
>. For more information, see
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=186383"
|
|
TARGET="_top"
|
|
> bug 186383</A
|
|
> or <A
|
|
HREF="http://online.securityfocus.com/bid/6501"
|
|
TARGET="_top"
|
|
>Bugtraq ID 6501</A
|
|
>.
|
|
</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
|
|
>If you are using webdot from research.att.com (the default
|
|
configuration for the <TT
|
|
CLASS="option"
|
|
>webdotbase</TT
|
|
> paramater), you
|
|
will need to allow access to <TT
|
|
CLASS="filename"
|
|
>data/webdot/*.dot</TT
|
|
>
|
|
for the reasearch.att.com machine.
|
|
</P
|
|
><P
|
|
>If you are using a local installation of <A
|
|
HREF="http://www.graphviz.org"
|
|
TARGET="_top"
|
|
>GraphViz</A
|
|
>, you will need to allow
|
|
everybody to access <TT
|
|
CLASS="filename"
|
|
>*.png</TT
|
|
>,
|
|
<TT
|
|
CLASS="filename"
|
|
>*.gif</TT
|
|
>, <TT
|
|
CLASS="filename"
|
|
>*.jpg</TT
|
|
>, and
|
|
<TT
|
|
CLASS="filename"
|
|
>*.map</TT
|
|
> in the
|
|
<TT
|
|
CLASS="filename"
|
|
>data/webdot</TT
|
|
> directory.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="troubleshooting"
|
|
></A
|
|
>4.5. Troubleshooting</H1
|
|
><P
|
|
>This section gives solutions to common Bugzilla installation
|
|
problems.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN1076"
|
|
></A
|
|
>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="AEN1081"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="trouble-filetemp"
|
|
></A
|
|
>4.5.4. Your vendor has not defined Fcntl macro O_NOINHERIT</H2
|
|
><P
|
|
>This is caused by a bug in the version of
|
|
<SPAN
|
|
CLASS="productname"
|
|
>File::Temp</SPAN
|
|
> that is distributed with perl
|
|
5.6.0. Many minor variations of this error have been reported. Examples
|
|
can be found in <A
|
|
HREF="#trouble-filetemp-errors"
|
|
>Figure 4-2</A
|
|
>.
|
|
</P
|
|
><DIV
|
|
CLASS="figure"
|
|
><A
|
|
NAME="trouble-filetemp-errors"
|
|
></A
|
|
><P
|
|
><B
|
|
>Figure 4-2. Other File::Temp error messages</B
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> Your vendor has not defined Fcntl macro O_NOINHERIT, used
|
|
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 208.
|
|
|
|
Your vendor has not defined Fcntl macro O_EXLOCK, used
|
|
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 210.
|
|
|
|
Your vendor has not defined Fcntl macro O_TEMPORARY, used
|
|
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 233.
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>Numerous people have reported that upgrading to version 5.6.1
|
|
or higher solved the problem for them. A less involved fix is to apply
|
|
the patch in <A
|
|
HREF="#trouble-filetemp-patch"
|
|
>Figure 4-3</A
|
|
>. The patch is also
|
|
available as a <A
|
|
HREF="../xml/filetemp.patch"
|
|
TARGET="_top"
|
|
>patch file</A
|
|
>.
|
|
</P
|
|
><DIV
|
|
CLASS="figure"
|
|
><A
|
|
NAME="trouble-filetemp-patch"
|
|
></A
|
|
><P
|
|
><B
|
|
>Figure 4-3. Patch for File::Temp in Perl 5.6.0</B
|
|
></P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> --- File/Temp.pm.orig Thu Feb 6 16:26:00 2003
|
|
+++ File/Temp.pm Thu Feb 6 16:26:23 2003
|
|
@@ -205,6 +205,7 @@
|
|
# eg CGI::Carp
|
|
local $SIG{__DIE__} = sub {};
|
|
local $SIG{__WARN__} = sub {};
|
|
+ local *CORE::GLOBAL::die = sub {};
|
|
$bit = &$func();
|
|
1;
|
|
};
|
|
@@ -226,6 +227,7 @@
|
|
# eg CGI::Carp
|
|
local $SIG{__DIE__} = sub {};
|
|
local $SIG{__WARN__} = sub {};
|
|
+ local *CORE::GLOBAL::die = sub {};
|
|
$bit = &$func();
|
|
1;
|
|
};
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="chapter"
|
|
><HR><H1
|
|
><A
|
|
NAME="administration"
|
|
></A
|
|
>Chapter 5. Administering Bugzilla</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="parameters"
|
|
></A
|
|
>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"
|
|
>makeproductgroups</B
|
|
>:
|
|
This dictates whether or not to automatically create groups
|
|
when new products are created.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <B
|
|
CLASS="command"
|
|
>useentrygroupdefault</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
|
|
causes the initial group controls on newly created products
|
|
to place all newly-created bugs in the group
|
|
having the same name as the product immediately.
|
|
After a product is initially created, the group controls
|
|
can be further adjusted without interference by
|
|
this mechanism.</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. Note that more recent versions of mysql support row level
|
|
locking using different table types. These types are slower than the
|
|
standard type, and Bugzilla does not yet take advantage of features
|
|
such as transactions which would justify this speed decrease. The
|
|
Bugzilla team are, however, happy to hear about any experiences with
|
|
row level locking and Bugzilla</P
|
|
><P
|
|
>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. You will need to set the host and port settings
|
|
from the params page, and set up replication in your database server
|
|
so that updates reach this readonly mirror. Consult your database
|
|
documentation for more detail.</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"
|
|
>movebugs</B
|
|
>:
|
|
|
|
This option is an undocumented feature to allow moving bugs
|
|
between separate Bugzilla installations. You will need to understand
|
|
the source code in order to use this feature. Please consult
|
|
<TT
|
|
CLASS="filename"
|
|
>movebugs.pl</TT
|
|
> in your Bugzilla source tree for
|
|
further documentation, such as it is.
|
|
</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"
|
|
></A
|
|
>5.2. User Administration</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="defaultuser"
|
|
></A
|
|
>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, add them to
|
|
the "admin" group and, optionally, add edit the tweakparams, editusers,
|
|
creategroups, editcomponents, and editkeywords groups to add the
|
|
entire admin group to those groups.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="manageusers"
|
|
></A
|
|
>5.2.2. Managing Other Users</H2
|
|
><DIV
|
|
CLASS="section"
|
|
><H3
|
|
CLASS="section"
|
|
><A
|
|
NAME="createnewusers"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>5.3. Product, Component, Milestone, and Version Administration</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="products"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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.
|
|
The association between products and groups is controlled from
|
|
the product edit page under <SPAN
|
|
CLASS="QUOTE"
|
|
>"Edit Group Controls."</SPAN
|
|
>
|
|
</P
|
|
><P
|
|
> If the makeproductgroups param is on, a new group will be automatically
|
|
created for every new product.
|
|
</P
|
|
><P
|
|
> On the product edit page, there is a page to edit the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"Group Controls"</SPAN
|
|
>
|
|
for a product and determine which groups are applicable, default,
|
|
and mandatory for each product as well as controlling entry
|
|
for each product and being able to set bugs in a product to be
|
|
totally read-only unless some group restrictions are met.
|
|
</P
|
|
><P
|
|
> For each group, it is possible to specify if membership in that
|
|
group is...
|
|
</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> required for bug entry,
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Not applicable to this product(NA),
|
|
a possible restriction for a member of the
|
|
group to place on a bug in this product(Shown),
|
|
a default restriction for a member of the
|
|
group to place on a bug in this product(Default),
|
|
or a mandatory restriction to be placed on bugs
|
|
in this product(Mandatory).
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Not applicable by non-members to this product(NA),
|
|
a possible restriction for a non-member of the
|
|
group to place on a bug in this product(Shown),
|
|
a default restriction for a non-member of the
|
|
group to place on a bug in this product(Default),
|
|
or a mandatory restriction to be placed on bugs
|
|
in this product when entered by a non-member(Mandatory).
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> required in order to make <EM
|
|
>any</EM
|
|
> change
|
|
to bugs in this product <EM
|
|
>including comments.</EM
|
|
>
|
|
</P
|
|
></LI
|
|
></OL
|
|
><P
|
|
>To create Groups:</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Select the <SPAN
|
|
CLASS="QUOTE"
|
|
>"groups"</SPAN
|
|
>
|
|
link in the footer.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Take a moment to understand the instructions on the <SPAN
|
|
CLASS="QUOTE"
|
|
>"Edit
|
|
Groups"</SPAN
|
|
> screen, then select the <SPAN
|
|
CLASS="QUOTE"
|
|
>"Add Group"</SPAN
|
|
> link.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Fill out the <SPAN
|
|
CLASS="QUOTE"
|
|
>"Group"</SPAN
|
|
>, <SPAN
|
|
CLASS="QUOTE"
|
|
>"Description"</SPAN
|
|
>,
|
|
and <SPAN
|
|
CLASS="QUOTE"
|
|
>"User RegExp"</SPAN
|
|
> fields.
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"User RegExp"</SPAN
|
|
> allows you to automatically
|
|
place all users who fulfill the Regular Expression into the new group.
|
|
When you have finished, click <SPAN
|
|
CLASS="QUOTE"
|
|
>"Add"</SPAN
|
|
>.</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
|
|
>The User Regexp is a perl regexp and, if not anchored, will match
|
|
any part of an address. So, if you do not want to grant access
|
|
into 'mycompany.com' to 'badperson@mycompany.com.hacker.net', use
|
|
'@mycompany\.com$' as the regexp.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
><LI
|
|
><P
|
|
>After you add your new group, edit the new group. On the
|
|
edit page, you can specify other groups that should be included
|
|
in this group and which groups should be permitted to add and delete
|
|
users from this group.</P
|
|
></LI
|
|
></OL
|
|
><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. Similarly, you must be a member
|
|
of <EM
|
|
>all</EM
|
|
> of the entry groups for a product
|
|
to add bugs to a product and you must be a member
|
|
of <EM
|
|
>all</EM
|
|
> of the canedit groups for a product
|
|
in order to make <EM
|
|
>any</EM
|
|
> change to bugs in that
|
|
product.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="security"
|
|
></A
|
|
>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, please submit a bug to <A
|
|
HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation"
|
|
TARGET="_top"
|
|
>Bugzilla Documentation</A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><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 is not meant to be a comprehensive list of every possible
|
|
security issue regarding the tools mentioned in this section. There is
|
|
no subsitute for reading the information written by the authors of any
|
|
software running on your system.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="security-networking"
|
|
></A
|
|
>5.6.1. TCP/IP Ports</H2
|
|
><P
|
|
>TCP/IP defines 65,000 some ports for trafic. Of those, Bugzilla
|
|
only needs 1... 2 if you need to use features that require e-mail such
|
|
as bug moving or the e-mail interface from contrib. You should audit
|
|
your server and make sure that you aren't listening on any ports you
|
|
don't need to be. You may also wish to use some kind of firewall
|
|
software to be sure that trafic can only be recieved on ports you
|
|
specify.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="security-mysql"
|
|
></A
|
|
>5.6.2. MySQL</H2
|
|
><P
|
|
>MySQL ships by default with many settings that should be changed.
|
|
By defaults it allows anybody to connect from localhost without a
|
|
password and have full administrative capabilities. It also defaults to
|
|
not have a root password (this is <EM
|
|
>not</EM
|
|
> the same as
|
|
the system root). Also, many installations default to running
|
|
<SPAN
|
|
CLASS="application"
|
|
>mysqld</SPAN
|
|
> as the system root.
|
|
</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Consult the documentation that came with your system for
|
|
information on making <SPAN
|
|
CLASS="application"
|
|
>mysqld</SPAN
|
|
> run as an
|
|
unprivleged user.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>You should also be sure to disable the anonymous user account
|
|
and set a password for the root user. This is accomplished using the
|
|
following commands:
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> <TT
|
|
CLASS="prompt"
|
|
>bash$</TT
|
|
> mysql mysql
|
|
<TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
> DELETE FROM user WHERE user = '';
|
|
<TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
> UPDATE user SET password = password('<TT
|
|
CLASS="replaceable"
|
|
><I
|
|
>new_password</I
|
|
></TT
|
|
>') WHERE user = 'root';
|
|
<TT
|
|
CLASS="prompt"
|
|
>mysql></TT
|
|
> FLUSH PRIVILEGES;
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
>From this point forward you will need to use
|
|
<B
|
|
CLASS="command"
|
|
>mysql -u root -p</B
|
|
> and enter
|
|
<TT
|
|
CLASS="replaceable"
|
|
><I
|
|
>new_password</I
|
|
></TT
|
|
> when prompted when using the
|
|
mysql client.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>If you run MySQL on the same machine as your httpd server, you
|
|
should consider disabling networking from within MySQL by adding
|
|
the following to your <TT
|
|
CLASS="filename"
|
|
>/etc/my.conf</TT
|
|
>:
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> [myslqd]
|
|
# Prevent network access to MySQL.
|
|
skip-networking
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></LI
|
|
><LI
|
|
><P
|
|
>You may also consider running MySQL, or even all of Bugzilla
|
|
in a chroot jail; however, instructions for doing that are beyond
|
|
the scope of this document.
|
|
</P
|
|
></LI
|
|
></OL
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="security-daemon"
|
|
></A
|
|
>5.6.3. Daemon Accounts</H2
|
|
><P
|
|
>Many daemons, such as Apache's httpd and MySQL's mysqld default to
|
|
running as either <SPAN
|
|
CLASS="QUOTE"
|
|
>"root"</SPAN
|
|
> or <SPAN
|
|
CLASS="QUOTE"
|
|
>"nobody"</SPAN
|
|
>. Running
|
|
as <SPAN
|
|
CLASS="QUOTE"
|
|
>"root"</SPAN
|
|
> introduces obvious security problems, but the
|
|
problems introduced by running everything as <SPAN
|
|
CLASS="QUOTE"
|
|
>"nobody"</SPAN
|
|
> may
|
|
not be so obvious. Basically, if you're running every daemon as
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"nobody"</SPAN
|
|
> and one of them gets comprimised, they all get
|
|
comprimised. For this reason it is recommended that you create a user
|
|
account for each daemon.
|
|
</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 will need to set the <TT
|
|
CLASS="varname"
|
|
>webservergroup</TT
|
|
> to
|
|
the group you created for your webserver to run as in
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
>. This will allow
|
|
<B
|
|
CLASS="command"
|
|
>./checksetup.pl</B
|
|
> to better adjust the file
|
|
permissions on your Bugzilla install so as to not require making
|
|
anything world-writable.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="security-access"
|
|
></A
|
|
>5.6.4. Web Server Access Controls</H2
|
|
><P
|
|
>There are many files that are placed in the Bugzilla directory
|
|
area that should not be accessable from the web. Because of the way
|
|
Bugzilla is currently layed out, the list of what should and should
|
|
not be accessible is rather complicated. A new installation method
|
|
is currently in the works which should solve this by allowing files
|
|
that shouldn't be accessible from the web to be placed in directory
|
|
outside the webroot. See
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=44659"
|
|
TARGET="_top"
|
|
> bug 44659</A
|
|
> for more information.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>In the main Bugzilla directory, you should:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>Block:
|
|
<TT
|
|
CLASS="filename"
|
|
>*.pl</TT
|
|
>, <TT
|
|
CLASS="filename"
|
|
>*localconfig*</TT
|
|
>, <TT
|
|
CLASS="filename"
|
|
>runtests.sh</TT
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>But allow:
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig.js</TT
|
|
>, <TT
|
|
CLASS="filename"
|
|
>localconfig.rdf</TT
|
|
>
|
|
</P
|
|
></LI
|
|
></UL
|
|
></LI
|
|
><LI
|
|
><P
|
|
>In <TT
|
|
CLASS="filename"
|
|
>data</TT
|
|
>:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>Block everything</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>But allow:
|
|
<TT
|
|
CLASS="filename"
|
|
>duplicates.rdf</TT
|
|
>
|
|
</P
|
|
></LI
|
|
></UL
|
|
></LI
|
|
><LI
|
|
><P
|
|
>In <TT
|
|
CLASS="filename"
|
|
>data/webdot</TT
|
|
>:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>If you use a remote webdot server:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>Block everything</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>But allow
|
|
<TT
|
|
CLASS="filename"
|
|
>*.dot</TT
|
|
>
|
|
only for the remote webdot server</P
|
|
></LI
|
|
></UL
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Otherwise, if you use a local GraphViz:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>Block everything</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>But allow:
|
|
<TT
|
|
CLASS="filename"
|
|
>*.png</TT
|
|
>, <TT
|
|
CLASS="filename"
|
|
>*.gif</TT
|
|
>, <TT
|
|
CLASS="filename"
|
|
>*.jpg</TT
|
|
>, <TT
|
|
CLASS="filename"
|
|
>*.map</TT
|
|
>
|
|
</P
|
|
></LI
|
|
></UL
|
|
></LI
|
|
><LI
|
|
><P
|
|
>And if you don't use any dot:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>Block everything</P
|
|
></LI
|
|
></UL
|
|
></LI
|
|
></UL
|
|
></LI
|
|
><LI
|
|
><P
|
|
>In <TT
|
|
CLASS="filename"
|
|
>Bugzilla</TT
|
|
>:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>Block everything</P
|
|
></LI
|
|
></UL
|
|
></LI
|
|
><LI
|
|
><P
|
|
>In <TT
|
|
CLASS="filename"
|
|
>template</TT
|
|
>:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
COMPACT="COMPACT"
|
|
><LI
|
|
><P
|
|
>Block everything</P
|
|
></LI
|
|
></UL
|
|
></LI
|
|
></UL
|
|
><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
|
|
>Bugzilla ships with the ability to generate
|
|
<TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
> files instructing
|
|
<A
|
|
HREF="#gloss-apache"
|
|
><I
|
|
CLASS="glossterm"
|
|
>Apache</I
|
|
></A
|
|
> which files
|
|
should and should not be accessible. For more information, see
|
|
<A
|
|
HREF="#http-apache"
|
|
>Section 4.4.1</A
|
|
>.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
>You should test to make sure that the files mentioned above are
|
|
not accessible from the Internet, especially your
|
|
<TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
> file which contains your database
|
|
password. To test, simply point your web browser at the file; for
|
|
example, to test mozilla.org's installation, we'd try to access
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/localconfig"
|
|
TARGET="_top"
|
|
>http://bugzilla.mozilla.org/localconfig</A
|
|
>. You should
|
|
get a <SPAN
|
|
CLASS="errorcode"
|
|
>403</SPAN
|
|
> <SPAN
|
|
CLASS="errorname"
|
|
>Forbidden</SPAN
|
|
>
|
|
error.
|
|
</P
|
|
><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
|
|
>Not following the instructions in this section, including
|
|
testing, may result in sensitive information being globally
|
|
accessible.
|
|
</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
|
|
>You should check <A
|
|
HREF="#http"
|
|
>Section 4.4</A
|
|
> to see if instructions
|
|
have been included for your web server. You should also compare those
|
|
instructions with this list to make sure everything is properly
|
|
accounted for.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="cust-templates"
|
|
></A
|
|
>5.7. Template Customization</H1
|
|
><P
|
|
> One of the large changes for 2.16 was the templatization 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
|
|
> Templatization also makes localized versions of Bugzilla possible,
|
|
for the first time. In the future, a Bugzilla installation may
|
|
have templates installed for multiple localizations, and select
|
|
which ones to use based on the user's browser language setting.
|
|
</P
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="AEN1524"
|
|
></A
|
|
>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 localization. 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 customizations 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="AEN1543"
|
|
></A
|
|
>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="AEN1553"
|
|
></A
|
|
>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="AEN1566"
|
|
></A
|
|
>5.7.4. Particular Templates</H2
|
|
><P
|
|
> There are a few templates you may be particularly interested in
|
|
customizing 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 customize 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/process/midair.html.tmpl</B
|
|
>:
|
|
This is the page used if two people submit simultaneous changes to the
|
|
same bug. The second person to submit their changes will get this page
|
|
to tell them what the first person did, and ask if they wish to
|
|
overwrite those changes or go back and revisit the bug. The default
|
|
title and header on this page read "Mid-air collision detected!" If
|
|
you work in the aviation industry, or other environment where this
|
|
might be found offensive (yes, we have true stories of this happening)
|
|
you'll want to change this to something more appropriate for your
|
|
environment.
|
|
</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="cust-change-permissions"
|
|
></A
|
|
>5.8. Change Permission Customization</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
|
|
> This feature should be considered experimental; the Bugzilla code you
|
|
will be changing is not stable, and could change or move between
|
|
versions. Be aware that if you make modifications to it, you may have
|
|
to re-make them or port them if Bugzilla changes internally between
|
|
versions.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><P
|
|
> Companies often have rules about which employees, or classes of employees,
|
|
are allowed to change certain things in the bug system. For example,
|
|
only the bug's designated QA Contact may be allowed to VERIFY the bug.
|
|
Bugzilla has been
|
|
designed to make it easy for you to write your own custom rules to define
|
|
who is allowed to make what sorts of value transition.
|
|
</P
|
|
><P
|
|
> For maximum flexibility, customizing this means editing Bugzilla's Perl
|
|
code. This gives the administrator complete control over exactly who is
|
|
allowed to do what. The relevant function is called
|
|
<TT
|
|
CLASS="filename"
|
|
>CheckCanChangeField()</TT
|
|
>,
|
|
and is found in <TT
|
|
CLASS="filename"
|
|
>process_bug.cgi</TT
|
|
> in your
|
|
Bugzilla directory. If you open that file and grep for
|
|
"sub CheckCanChangeField", you'll find it.
|
|
</P
|
|
><P
|
|
> This function has been carefully commented to allow you to see exactly
|
|
how it works, and give you an idea of how to make changes to it. Certain
|
|
marked sections should not be changed - these are the "plumbing" which
|
|
makes the rest of the function work. In between those sections, you'll
|
|
find snippets of code like:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> # Allow the owner to change anything.
|
|
if ($ownerid eq $whoid) {
|
|
return 1;
|
|
}</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
It's fairly obvious what this piece of code does.
|
|
</P
|
|
><P
|
|
> So, how does one go about changing this function? Well, simple changes
|
|
can be made just be removing pieces - for example, if you wanted to
|
|
prevent any user adding a comment to a bug, just remove the lines marked
|
|
"Allow anyone to change comments." And if you want the reporter to have
|
|
no special rights on bugs they have filed, just remove the entire section
|
|
which refers to him.
|
|
</P
|
|
><P
|
|
> More complex customizations are not much harder. Basically, you add
|
|
a check in the right place in the function, i.e. after all the variables
|
|
you are using have been set up. So, don't look at $ownerid before
|
|
$ownerid has been obtained from the database. You can either add a
|
|
positive check, which returns 1 (allow) if certain conditions are true,
|
|
or a negative check, which returns 0 (deny.) E.g.:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> if ($field eq "qacontact") {
|
|
if (UserInGroup("quality_assurance")) {
|
|
return 1;
|
|
}
|
|
else {
|
|
return 0;
|
|
}
|
|
}</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
This says that only users in the group "quality_assurance" can change
|
|
the QA Contact field of a bug. Getting more weird:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> if (($field eq "priority") &&
|
|
($vars->{'user'}{'login'} =~ /.*\@example\.com$/))
|
|
{
|
|
if ($oldvalue eq "P1") {
|
|
return 1;
|
|
}
|
|
else {
|
|
return 0;
|
|
}
|
|
}</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
This says that if the user is trying to change the priority field,
|
|
and their email address is @example.com, they can only do so if the
|
|
old value of the field was "P1". Not very useful, but illustrative.
|
|
</P
|
|
><P
|
|
> For a list of possible field names, look in
|
|
<TT
|
|
CLASS="filename"
|
|
>data/versioncache</TT
|
|
> for the list called
|
|
<TT
|
|
CLASS="filename"
|
|
>@::log_columns</TT
|
|
>. If you need help writing custom
|
|
rules for your organization, ask in the newsgroup.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="upgrading"
|
|
></A
|
|
>5.9. Upgrading to New Releases</H1
|
|
><P
|
|
>Upgrading Bugzilla is something we all want to do from time to time,
|
|
be it to get new features or pick up the latest security fix. How easy
|
|
it is to update depends on a few factors.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>If the new version is a revision or a new point release</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>How many, if any, local changes have been made</P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>There are also three different methods to upgrade your installation.
|
|
</P
|
|
><P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
>Using CVS (<A
|
|
HREF="#upgrade-cvs"
|
|
>Example 5-1</A
|
|
>)</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Downloading a new tarball (<A
|
|
HREF="#upgrade-tarball"
|
|
>Example 5-2</A
|
|
>)</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Applying the relevant patches (<A
|
|
HREF="#upgrade-patches"
|
|
>Example 5-3</A
|
|
>)</P
|
|
></LI
|
|
></OL
|
|
><P
|
|
>Which options are available to you may depend on how large a jump
|
|
you are making and/or your network configuration.
|
|
</P
|
|
><P
|
|
>Revisions are normally released to fix security vulnerabilities
|
|
and are distinguished by an increase in the third number. For example,
|
|
when 2.16.2 was released, it was a revision to 2.16.1.
|
|
</P
|
|
><P
|
|
>Point releases are normally released when the Bugzilla team feels
|
|
that there has been a significant amount of progress made between the
|
|
last point release and the current time. These are often proceeded by a
|
|
stabilization period and release candidates, however the use of
|
|
development versions or release candidates is beyond the scope of this
|
|
document. Point releases can be distinguished by an increase in the
|
|
second number, or minor version. For example, 2.16.2 is a newer point
|
|
release than 2.14.5.
|
|
</P
|
|
><P
|
|
>The examples in this section are written as if you were updating
|
|
to version 2.16.2. The procedures are the same regardless if you are
|
|
updating to a new point release or a new revision. However, the chance
|
|
of running into trouble increases when upgrading to a new point release,
|
|
escpecially if you've made local changes.
|
|
</P
|
|
><P
|
|
>These examples also assume that your Bugzilla installation is at
|
|
<TT
|
|
CLASS="filename"
|
|
>/var/www/html/bugzilla</TT
|
|
>. If that is not the case,
|
|
simply substitute the proper paths where appropriate.
|
|
</P
|
|
><DIV
|
|
CLASS="example"
|
|
><A
|
|
NAME="upgrade-cvs"
|
|
></A
|
|
><P
|
|
><B
|
|
>Example 5-1. Upgrading using CVS</B
|
|
></P
|
|
><P
|
|
>Every release of Bugzilla, whether it is a revision or a point
|
|
release, is tagged in CVS. Also, every tarball we have distributed
|
|
since version 2.12 has been primed for using CVS. This does, however,
|
|
require that you are able to access cvs-mirror.mozilla.org on port
|
|
2401.
|
|
|
|
<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 can do this, updating using CVS is probably the most
|
|
painless method, especially if you have a lot of local changes.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> bash$ <B
|
|
CLASS="command"
|
|
>cd /var/www/html/bugzilla</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>cvs login</B
|
|
>
|
|
Logging in to :pserver:anonymous@cvs-mirror.mozilla.org:2401/cvsroot
|
|
CVS password: <B
|
|
CLASS="command"
|
|
>anonymous</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>cvs -q update -r BUGZILLA-2_16_2 -dP</B
|
|
>
|
|
P checksetup.pl
|
|
P collectstats.pl
|
|
P globals.pl
|
|
P docs/rel_notes.txt
|
|
P template/en/default/list/quips.html.tmpl
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> <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
|
|
>If a line in the output from <B
|
|
CLASS="command"
|
|
>cvs update</B
|
|
>
|
|
begins with a <TT
|
|
CLASS="computeroutput"
|
|
>C</TT
|
|
> that represents a
|
|
file with local changes that CVS was unable to properly merge. You
|
|
need to resolve these conflicts manually before Bugzilla (or at
|
|
least the portion using that file) will be usable.
|
|
</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
|
|
>You also need to run <B
|
|
CLASS="command"
|
|
>./checksetup.pl</B
|
|
>
|
|
before your Bugzilla upgrade will be complete.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="example"
|
|
><A
|
|
NAME="upgrade-tarball"
|
|
></A
|
|
><P
|
|
><B
|
|
>Example 5-2. Upgrading using the tarball</B
|
|
></P
|
|
><P
|
|
>If you are unable or unwilling to use CVS, another option that's
|
|
always available is to download the latest tarball. This is the most
|
|
difficult option to use, especially if you have local changes.
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> bash$ <B
|
|
CLASS="command"
|
|
>cd /var/www/html</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>wget ftp://ftp.mozilla.org/pub/webtools/bugzilla-2.16.2.tar.gz</B
|
|
>
|
|
<EM
|
|
>Output omitted</EM
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>tar xzvf bugzilla-2.16.2.tar.gz</B
|
|
>
|
|
bugzilla-2.16.2/
|
|
bugzilla-2.16.2/.cvsignore
|
|
bugzilla-2.16.2/1x1.gif
|
|
<EM
|
|
>Output truncated</EM
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>cd bugzilla-2.16.2</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>cp ../bugzilla/localconfig* .</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>cp -r ../bugzilla/data .</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>cd ..</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>mv bugzilla bugzilla.old</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>mv bugzilla-2.16.2 bugzilla</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>cd bugzilla</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>./checksetup.pl</B
|
|
>
|
|
<EM
|
|
>Output omitted</EM
|
|
>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><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
|
|
>The <B
|
|
CLASS="command"
|
|
>cp</B
|
|
> commands both end with periods which
|
|
is a very important detail, it tells the shell that the destination
|
|
directory is the current working directory. Also, the period at the
|
|
beginning of the <B
|
|
CLASS="command"
|
|
>./checksetup.pl</B
|
|
> is important and
|
|
can not be omitted.
|
|
</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
|
|
>You will now have to reapply any changes you have made to your
|
|
local installation manually.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="example"
|
|
><A
|
|
NAME="upgrade-patches"
|
|
></A
|
|
><P
|
|
><B
|
|
>Example 5-3. Upgrading using patches</B
|
|
></P
|
|
><P
|
|
>The Bugzilla team will normally make a patch file available for
|
|
revisions to go from the most recent revision to the new one. You could
|
|
also read the release notes and grab the patches attached to the
|
|
mentioned bug, but it is safer to use the released patch file as
|
|
sometimes patches get changed before they get checked in (for minor
|
|
spelling fixes and the like). It is also theorectically possible to
|
|
scour the fixed bug list and pick and choose which patches to apply
|
|
from a point release, but this is not recommended either as what you'll
|
|
end up with is a hodge podge Bugzilla that isn't really any version.
|
|
This would also make it more difficult to upgrade in the future.
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> bash$ <B
|
|
CLASS="command"
|
|
>cd /var/www/html/bugzilla</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>wget ftp://ftp.mozilla.org/pub/webtools/bugzilla-2.16.1-to-2.16.2.diff.gz</B
|
|
>
|
|
<EM
|
|
>Output omitted</EM
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>gunzip bugzilla-2.16.1-to-2.16.2.diff.gz</B
|
|
>
|
|
bash$ <B
|
|
CLASS="command"
|
|
>patch -p1 < bugzilla-2.16.1-to-2.16.2.diff</B
|
|
>
|
|
patching file checksetup.pl
|
|
patching file collectstats.pl
|
|
patching file globals.pl
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> <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
|
|
>If you do this, beware that this doesn't change the entires in
|
|
your <TT
|
|
CLASS="filename"
|
|
>CVS</TT
|
|
> directory so it may make
|
|
updates using CVS (<A
|
|
HREF="#upgrade-cvs"
|
|
>Example 5-1</A
|
|
>) more difficult in the
|
|
future.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="integration"
|
|
></A
|
|
>5.10. Integrating Bugzilla with Third-Party Tools</H1
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="bonsai"
|
|
></A
|
|
>5.10.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"
|
|
></A
|
|
>5.10.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 want to have the bug be closed automatically, you'll have to modify
|
|
the <TT
|
|
CLASS="filename"
|
|
>contrib/bugzilla_email_append.pl</TT
|
|
> script.
|
|
</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"
|
|
></A
|
|
>5.10.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"
|
|
></A
|
|
>5.10.4. Tinderbox/Tinderbox2</H2
|
|
><P
|
|
>We need Tinderbox integration information.</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="appendix"
|
|
><HR><H1
|
|
><A
|
|
NAME="faq"
|
|
></A
|
|
>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="#faq-general-information"
|
|
> Where can I find information about Bugzilla?</A
|
|
></DT
|
|
><DT
|
|
>A.1.2. <A
|
|
HREF="#faq-general-license"
|
|
> What license is Bugzilla distributed under?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.3. <A
|
|
HREF="#faq-general-support"
|
|
> How do I get commercial support for Bugzilla?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.4. <A
|
|
HREF="#faq-general-companies"
|
|
> What major companies or projects are currently using Bugzilla
|
|
for bug-tracking?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.5. <A
|
|
HREF="#faq-general-maintainers"
|
|
> Who maintains Bugzilla?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.6. <A
|
|
HREF="#faq-general-compare"
|
|
> How does Bugzilla stack up against other bug-tracking databases?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.7. <A
|
|
HREF="#faq-general-bzmissing"
|
|
> Why doesn't Bugzilla offer this or that feature or compatibility
|
|
with this other tracking software?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.8. <A
|
|
HREF="#faq-general-mysql"
|
|
> Why MySQL? I'm interested in seeing Bugzilla run on
|
|
Oracle/Sybase/Msql/PostgreSQL/MSSQL.
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.9. <A
|
|
HREF="#faq-general-bonsaitools"
|
|
> What is <TT
|
|
CLASS="filename"
|
|
>/usr/bonsaitools/bin/perl</TT
|
|
>?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.10. <A
|
|
HREF="#faq-general-perlpath"
|
|
> My perl is not located at <TT
|
|
CLASS="filename"
|
|
>/usr/bin/perl</TT
|
|
>, is
|
|
there an easy way to change it everywhere it needs to be changed?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.1.11. <A
|
|
HREF="#faq-general-cookie"
|
|
> 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="#faq-phb-client"
|
|
> 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="#faq-phb-integration"
|
|
> Can Bugzilla integrate with
|
|
Perforce (SCM software)?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.3. <A
|
|
HREF="#faq-phb-projects"
|
|
> Does Bugzilla allow the user to track multiple projects?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.4. <A
|
|
HREF="#faq-phb-sorting"
|
|
> If I am on many projects, and search for all bugs assigned to me, will
|
|
Bugzilla list them for me and allow me to sort by project, severity etc?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.5. <A
|
|
HREF="#faq-phb-attachments"
|
|
> Does Bugzilla allow attachments (text, screenshots, URLs etc)? If yes,
|
|
are there any that are NOT allowed?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.6. <A
|
|
HREF="#faq-phb-priorities"
|
|
> 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="#faq-phb-reporting"
|
|
> 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="#faq-phb-email"
|
|
> Is there email notification and if so, what do you see when you get an
|
|
email?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.9. <A
|
|
HREF="#faq-phb-cclist"
|
|
> 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="#faq-phb-emailapp"
|
|
> Do users have to have any particular
|
|
type of email application?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.11. <A
|
|
HREF="#faq-phb-data"
|
|
> 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="#faq-phb-l10n"
|
|
> Has anyone converted Bugzilla to another language to be used in other
|
|
countries? Is it localizable?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.13. <A
|
|
HREF="#faq-phb-reports"
|
|
> Can a user create and save reports? Can they do this in Word format?
|
|
Excel format?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.14. <A
|
|
HREF="#faq-phb-searching"
|
|
> Does Bugzilla have the ability to search by word, phrase, compound
|
|
search?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.15. <A
|
|
HREF="#faq-phb-midair"
|
|
> 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="#faq-phb-backup"
|
|
> Are there any backup features provided?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.17. <A
|
|
HREF="#faq-phb-livebackup"
|
|
> Can users be on the system while a backup is in progress?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.2.18. <A
|
|
HREF="#faq-phb-maintenance"
|
|
> 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="#faq-phb-installtime"
|
|
> 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="#faq-phb-cost"
|
|
> 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="#faq-security-mysql"
|
|
> 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="#faq-security-knownproblems"
|
|
> Are there any security problems with Bugzilla?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.3.3. <A
|
|
HREF="#faq-security-mysqluser"
|
|
> 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="#faq-email-nomail"
|
|
> 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="#faq-email-testing"
|
|
> 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="#faq-email-whine"
|
|
> 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="#faq-email-procmail"
|
|
> 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="#faq-email-mailif"
|
|
> How do I set up the email interface to submit/change bugs via email?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.4.6. <A
|
|
HREF="#faq-email-sendmailnow"
|
|
> Email takes FOREVER to reach me from Bugzilla -- it's extremely slow.
|
|
What gives?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.4.7. <A
|
|
HREF="#faq-email-nonreceived"
|
|
> 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="#faq-db-oracle"
|
|
> I've heard Bugzilla can be used with Oracle?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.2. <A
|
|
HREF="#faq-db-corrupted"
|
|
> I think my database might be corrupted, or contain invalid entries. What
|
|
do I do?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.3. <A
|
|
HREF="#faq-db-manualedit"
|
|
> I want to manually edit some entries in my database. How?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.4. <A
|
|
HREF="#faq-db-permissions"
|
|
> I think I've set up MySQL permissions correctly, but Bugzilla still can't
|
|
connect.
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.5.5. <A
|
|
HREF="#faq-db-synchronize"
|
|
> 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="#faq-nt-easiest"
|
|
> What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.6.2. <A
|
|
HREF="#faq-nt-bundle"
|
|
> Is there a "Bundle::Bugzilla" equivalent for Win32?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.6.3. <A
|
|
HREF="#faq-nt-mappings"
|
|
> 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="#faq-nt-dbi"
|
|
> 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="#faq-use-changeaddress"
|
|
> How do I change my user name (email address) in Bugzilla?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.7.2. <A
|
|
HREF="#faq-use-query"
|
|
> The query page is very confusing. Isn't there a simpler way to query?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.7.3. <A
|
|
HREF="#faq-use-accept"
|
|
> 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="#faq-use-attachment"
|
|
> 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="#faq-use-keyword"
|
|
> 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="#faq-hacking-templatestyle"
|
|
> What kind of style should I use for templatization?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.8.2. <A
|
|
HREF="#faq-hacking-bugzillabugs"
|
|
> What bugs are in Bugzilla right now?
|
|
</A
|
|
></DT
|
|
><DT
|
|
>A.8.3. <A
|
|
HREF="#faq-hacking-priority"
|
|
> 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.4. <A
|
|
HREF="#faq-hacking-patches"
|
|
> 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"
|
|
></A
|
|
>1. General Questions</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-general-information"
|
|
></A
|
|
><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="faq-general-license"
|
|
></A
|
|
><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="faq-general-support"
|
|
></A
|
|
><B
|
|
>A.1.3. </B
|
|
>
|
|
How do I get commercial support for Bugzilla?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
<A
|
|
HREF="http://bugzilla.org/consulting.html"
|
|
TARGET="_top"
|
|
>http://bugzilla.org/consulting.html</A
|
|
>
|
|
is a list of people and companies who have asked us to list them
|
|
as consultants for Bugzilla.
|
|
</P
|
|
><P
|
|
> <A
|
|
HREF="http://www.collab.net/"
|
|
TARGET="_top"
|
|
>http://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="faq-general-companies"
|
|
></A
|
|
><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 companies 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
|
|
>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="faq-general-maintainers"
|
|
></A
|
|
><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@netscape.com).
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-general-compare"
|
|
></A
|
|
><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="faq-general-bzmissing"
|
|
></A
|
|
><B
|
|
>A.1.7. </B
|
|
>
|
|
Why doesn't Bugzilla offer this or that feature or compatibility
|
|
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="faq-general-mysql"
|
|
></A
|
|
><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
|
|
>
|
|
MySQL was originally chosen because it is free, easy to install,
|
|
and was available for the hardware Netscape intended to run it on.
|
|
</P
|
|
><P
|
|
> There is currently work in progress to make Bugzilla work on
|
|
PostgreSQL and Sybase in the default distribution. You can track
|
|
the progress of these initiatives in <A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=98304"
|
|
TARGET="_top"
|
|
>bug 98304</A
|
|
>
|
|
and <A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=173130"
|
|
TARGET="_top"
|
|
>bug 173130</A
|
|
>
|
|
respectively.
|
|
</P
|
|
><P
|
|
> Once both of these are done, adding support for additional
|
|
database servers should be trivial.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-general-bonsaitools"
|
|
></A
|
|
><B
|
|
>A.1.9. </B
|
|
>
|
|
What is <TT
|
|
CLASS="filename"
|
|
>/usr/bonsaitools/bin/perl</TT
|
|
>?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Bugzilla used to have the path to perl on the shebang line set to
|
|
<TT
|
|
CLASS="filename"
|
|
>/usr/bonsaitools/bin/perl</TT
|
|
> because when
|
|
Terry first started writing the code for mozilla.org he needed a
|
|
version of Perl and other tools that were completely under his
|
|
control. This location was abandoned for the 2.18 release in favor
|
|
of the more sensible <TT
|
|
CLASS="filename"
|
|
>/usr/bin/perl</TT
|
|
>. If you
|
|
installed an older verion of Bugzilla and created the symlink we
|
|
suggested, you can remove it now (provided that you don't have
|
|
anything else, such as Bonsai, using it and you don't intend to
|
|
reinstall an older version of Bugzilla).
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-general-perlpath"
|
|
></A
|
|
><B
|
|
>A.1.10. </B
|
|
>
|
|
My perl is not located at <TT
|
|
CLASS="filename"
|
|
>/usr/bin/perl</TT
|
|
>, is
|
|
there an easy way to change it everywhere it needs to be changed?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Yes, the following bit of perl magic will change all the shebang
|
|
lines. Be sure to change <TT
|
|
CLASS="filename"
|
|
>/usr/local/bin/perl</TT
|
|
>
|
|
to your path to the perl binary.
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> perl -pi -e 's@#\!/usr/bin/perl@#\!/usr/local/bin/perl@' *cgi *pl
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-general-cookie"
|
|
></A
|
|
><B
|
|
>A.1.11. </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"
|
|
></A
|
|
>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="faq-phb-client"
|
|
></A
|
|
><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="faq-phb-integration"
|
|
></A
|
|
><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="faq-phb-projects"
|
|
></A
|
|
><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 that can each be
|
|
composed of any number of Components.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-phb-sorting"
|
|
></A
|
|
><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="faq-phb-attachments"
|
|
></A
|
|
><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.
|
|
Bugzilla gives the user the option of either using the MIME-type
|
|
supplied by the browser, choosing from a pre-defined list or
|
|
manually typing any arbitrary MIME-type.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-phb-priorities"
|
|
></A
|
|
><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 in
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=91037"
|
|
TARGET="_top"
|
|
>bug 91037</A
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-phb-reporting"
|
|
></A
|
|
><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/report.cgi"
|
|
TARGET="_top"
|
|
>http://bugzilla.mozilla.org/report.cgi</A
|
|
>
|
|
for samples of what Bugzilla can do in reporting and graphing.
|
|
</P
|
|
><P
|
|
> If you can not get the reports you want from the included reporting
|
|
scripts, it is possible to hook up a professional reporting package
|
|
such as Crystal Reports using ODBC. If you choose to do this,
|
|
beware that giving direct access to the database does contain some
|
|
security implications. Even if you give read-only access to the
|
|
bugs database it will bypass the secure bugs features of Bugzilla.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-phb-email"
|
|
></A
|
|
><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="faq-phb-cclist"
|
|
></A
|
|
><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="faq-phb-emailapp"
|
|
></A
|
|
><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="faq-phb-data"
|
|
></A
|
|
><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
|
|
>
|
|
Bugzilla can output buglists as HTML (the default), CSV or RDF.
|
|
The link for CSV can be found at the bottom of the buglist in HTML
|
|
format. This CSV format can easily be imported into MS Excel or
|
|
other spread-sheet applications.
|
|
</P
|
|
><P
|
|
> To use the RDF format of the buglist it is necessary to append a
|
|
<TT
|
|
CLASS="computeroutput"
|
|
>&ctype=rdf</TT
|
|
> to the URL. RDF
|
|
is meant to be machine readable and thus it is assumed that the
|
|
URL would be generated progmatically so there is no user visible
|
|
link to this format.
|
|
</P
|
|
><P
|
|
> Currently the only script included with Bugzilla that can import
|
|
data is <TT
|
|
CLASS="filename"
|
|
>importxml.pl</TT
|
|
> which is intended to be
|
|
used for importing the data generated by the XML ctype of
|
|
<TT
|
|
CLASS="filename"
|
|
>show_bug.cgi</TT
|
|
> in association with bug moving.
|
|
Any other use is left as an exercise for the user.
|
|
</P
|
|
><P
|
|
> There are also scripts included in the <TT
|
|
CLASS="filename"
|
|
>contrib/</TT
|
|
>
|
|
directory for using e-mail to import information into Bugzilla,
|
|
but these scripts are not currently supported and included for
|
|
educational purposes.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-phb-l10n"
|
|
></A
|
|
><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
|
|
>
|
|
Yes. For more information including available translated templates,
|
|
see <A
|
|
HREF="http://www.bugzilla.org/download.html#localizations"
|
|
TARGET="_top"
|
|
>http://www.bugzilla.org/download.html#localizations</A
|
|
>.
|
|
The admin interfaces are still not included in these translated
|
|
templates and is therefore still English only. Also, there may be
|
|
issues with the charset not being declared. See <A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=126266"
|
|
TARGET="_top"
|
|
>bug 126226</A
|
|
>
|
|
for more information.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-phb-reports"
|
|
></A
|
|
><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. Yes (using the CSV format).
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-phb-searching"
|
|
></A
|
|
><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="faq-phb-midair"
|
|
></A
|
|
><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="faq-phb-backup"
|
|
></A
|
|
><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="faq-phb-livebackup"
|
|
></A
|
|
><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="faq-phb-maintenance"
|
|
></A
|
|
><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="faq-phb-installtime"
|
|
></A
|
|
><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="faq-phb-cost"
|
|
></A
|
|
><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"
|
|
></A
|
|
>3. Bugzilla Security</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-security-mysql"
|
|
></A
|
|
><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="faq-security-knownproblems"
|
|
></A
|
|
><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="faq-security-mysqluser"
|
|
></A
|
|
><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"
|
|
></A
|
|
>4. Bugzilla Email</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-email-nomail"
|
|
></A
|
|
><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) or you can add
|
|
their email address to the <TT
|
|
CLASS="filename"
|
|
>data/nomail</TT
|
|
> file.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-email-testing"
|
|
></A
|
|
><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 "newchangedmail" 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="faq-email-whine"
|
|
></A
|
|
><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 in <A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=6679"
|
|
TARGET="_top"
|
|
>bug 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="faq-email-procmail"
|
|
></A
|
|
><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="AEN1985"
|
|
></A
|
|
><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="faq-email-mailif"
|
|
></A
|
|
><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="faq-email-sendmailnow"
|
|
></A
|
|
><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 <A
|
|
HREF="#gloss-mta"
|
|
><I
|
|
CLASS="glossterm"
|
|
>MTA</I
|
|
></A
|
|
>,
|
|
make sure the options given in <TT
|
|
CLASS="filename"
|
|
>Bugzilla/BugMail.pm</TT
|
|
>
|
|
and any other place where <SPAN
|
|
CLASS="application"
|
|
>sendmail</SPAN
|
|
> is called from
|
|
are correct for your MTA. You should also ensure that the
|
|
<TT
|
|
CLASS="option"
|
|
>sendmailnow</TT
|
|
> param is set to <TT
|
|
CLASS="literal"
|
|
>on</TT
|
|
>.
|
|
</P
|
|
><P
|
|
> If you are using <SPAN
|
|
CLASS="application"
|
|
>sendmail</SPAN
|
|
>, try enabling
|
|
<TT
|
|
CLASS="option"
|
|
>sendmailnow</TT
|
|
> in <TT
|
|
CLASS="filename"
|
|
>editparams.cgi</TT
|
|
>.
|
|
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-email-nonreceived"
|
|
></A
|
|
><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"
|
|
></A
|
|
>5. Bugzilla Database</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-db-oracle"
|
|
></A
|
|
><B
|
|
>A.5.1. </B
|
|
>
|
|
I've heard Bugzilla can be used with Oracle?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Red Hat's old version of Bugzilla (based on 2.8) worked on Oracle.
|
|
Red Hat's newer version (based on 2.17.1 and soon to be merged into
|
|
the main distribution) runs on PostgreSQL. At this time we know of
|
|
no recent ports of Bugzilla to Oracle but do intend to support it
|
|
in the future (possibly the 2.20 time-frame).
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-db-corrupted"
|
|
></A
|
|
><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="faq-db-manualedit"
|
|
></A
|
|
><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 <B
|
|
CLASS="command"
|
|
>mysql</B
|
|
>
|
|
command line utility to manually insert, delete and modify table
|
|
information. There are also more intuitive GUI clients available.
|
|
Personal favorites of the Bugzilla team are <A
|
|
HREF="http://www.phpmyadmin.net/"
|
|
TARGET="_top"
|
|
>phpMyAdmin</A
|
|
> and <A
|
|
HREF="http://www.mysql.com/downloads/gui-mycc.html"
|
|
TARGET="_top"
|
|
>MySQL Control
|
|
Center</A
|
|
>.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-db-permissions"
|
|
></A
|
|
><B
|
|
>A.5.4. </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. If this Bugzilla is able to connect at this point then
|
|
you need to check that you have granted proper permission to the user
|
|
password combo defined in <TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
>.
|
|
</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
|
|
> Running MySQL with this command line option is very insecure and
|
|
should only be done when not connected to the external network
|
|
as a troubleshooting step.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-db-synchronize"
|
|
></A
|
|
><B
|
|
>A.5.5. </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"
|
|
></A
|
|
>6. Bugzilla and Win32</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-nt-easiest"
|
|
></A
|
|
><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="faq-nt-bundle"
|
|
></A
|
|
><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="faq-nt-mappings"
|
|
></A
|
|
><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="AEN2068"
|
|
></A
|
|
><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="faq-nt-dbi"
|
|
></A
|
|
><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"
|
|
></A
|
|
>7. Bugzilla Usage</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-use-changeaddress"
|
|
></A
|
|
><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="faq-use-query"
|
|
></A
|
|
><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="faq-use-accept"
|
|
></A
|
|
><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="faq-use-attachment"
|
|
></A
|
|
><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="faq-use-keyword"
|
|
></A
|
|
><B
|
|
>A.7.5. </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"
|
|
></A
|
|
>8. Bugzilla Hacking</H3
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-hacking-templatestyle"
|
|
></A
|
|
><B
|
|
>A.8.1. </B
|
|
>
|
|
What kind of style should I use for templatization?
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="answer"
|
|
><P
|
|
><B
|
|
> </B
|
|
>
|
|
Gerv and Myk suggest a 2-space indent, with embedded code sections on
|
|
their own line, in line with outer tags. Like this:</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> <fred>
|
|
[% IF foo %]
|
|
<bar>
|
|
[% FOREACH x = barney %]
|
|
<tr>
|
|
<td>
|
|
[% x %]
|
|
</td>
|
|
<tr>
|
|
[% END %]
|
|
[% END %]
|
|
</fred>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> Myk also recommends you turn on PRE_CHOMP in the template
|
|
initialization to prevent bloating of HTML with unnecessary whitespace.
|
|
</P
|
|
><P
|
|
>Please note that many have differing opinions on this subject,
|
|
and the existing templates in Bugzilla espouse both this and a 4-space
|
|
style. Either is acceptable; the above is preferred.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="qandaentry"
|
|
><DIV
|
|
CLASS="question"
|
|
><P
|
|
><A
|
|
NAME="faq-hacking-bugzillabugs"
|
|
></A
|
|
><B
|
|
>A.8.2. </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.bugzilla.org/"
|
|
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="faq-hacking-priority"
|
|
></A
|
|
><B
|
|
>A.8.3. </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 in <A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=49862"
|
|
TARGET="_top"
|
|
> bug 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="faq-hacking-patches"
|
|
></A
|
|
><B
|
|
>A.8.4. </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"
|
|
></A
|
|
>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="dbmodify"
|
|
></A
|
|
>B.1. Modifying Your Running System</H1
|
|
><P
|
|
>Bugzilla optimizes database lookups by storing all relatively
|
|
static information in the
|
|
<TT
|
|
CLASS="filename"
|
|
>versioncache</TT
|
|
> file, located in the
|
|
<TT
|
|
CLASS="filename"
|
|
>data/</TT
|
|
>
|
|
subdirectory under your installation directory.</P
|
|
><P
|
|
>If you make a change to the structural data in your database (the
|
|
versions table for example), or to the
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"constants"</SPAN
|
|
>
|
|
|
|
encoded in <TT
|
|
CLASS="filename"
|
|
>defparams.pl</TT
|
|
>, you will need to remove
|
|
the cached content from the data directory (by doing a
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"rm data/versioncache"</SPAN
|
|
>
|
|
|
|
), or your changes won't show up.</P
|
|
><P
|
|
> <TT
|
|
CLASS="filename"
|
|
>versioncache</TT
|
|
>
|
|
gets automatically regenerated whenever it's more than
|
|
an hour old, so Bugzilla will eventually notice your changes by itself,
|
|
but generally you want it to notice right away, so that you can test
|
|
things.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="dbdoc"
|
|
></A
|
|
>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="AEN2190"
|
|
></A
|
|
>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
|
|
<A
|
|
HREF="http://www.mysql.com/documentation/"
|
|
TARGET="_top"
|
|
>MySQL documentation</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="AEN2217"
|
|
></A
|
|
>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 |
|
|
| 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>
|
|
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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>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="variant-redhat"
|
|
></A
|
|
>D.1. Red Hat Bugzilla</H1
|
|
><P
|
|
>Red Hat's old fork of Bugzilla which was based on version 2.8 is now
|
|
obsolete. The newest version in use is based on version 2.17.1 and is in
|
|
the process of being integrated into the main Bugzilla source tree. The
|
|
back-end is modified to work with PostgreSQL instead of MySQL and they have
|
|
custom templates to get their desired look and feel, but other than that it
|
|
is Bugzilla 2.17.1. Dave Lawrence of Red Hat put forth a great deal of
|
|
effort to make sure that the changes he made could be integrated back into
|
|
the main tree.
|
|
<A
|
|
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=98304"
|
|
TARGET="_top"
|
|
>Bug 98304</A
|
|
>
|
|
exists to track this integration.
|
|
</P
|
|
><P
|
|
>URL: <A
|
|
HREF="http://bugzilla.redhat.com/bugzilla/"
|
|
TARGET="_top"
|
|
>http://bugzilla.redhat.com/bugzilla/</A
|
|
>
|
|
</P
|
|
><P
|
|
>This section last updated 24 Dec 2002</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="variant-fenris"
|
|
></A
|
|
>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
|
|
><P
|
|
>This section last updated 27 Jul 2002</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="variant-issuezilla"
|
|
></A
|
|
>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"
|
|
>Section D.4</A
|
|
>.</P
|
|
><P
|
|
>This section last updated 27 Jul 2002</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="variant-scarab"
|
|
></A
|
|
>D.4. Scarab</H1
|
|
><P
|
|
>Scarab is a new open source bug-tracking system built using Java
|
|
Servlet technology. It is currently at version 1.0 beta 13.</P
|
|
><P
|
|
>URL: <A
|
|
HREF="http://scarab.tigris.org/"
|
|
TARGET="_top"
|
|
>http://scarab.tigris.org/</A
|
|
>
|
|
</P
|
|
><P
|
|
>This section last updated 18 Jan 2003</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="variant-perforce"
|
|
></A
|
|
>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
|
|
><P
|
|
>This section last updated 27 Jul 2002</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><HR><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="variant-sourceforge"
|
|
></A
|
|
>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
|
|
><P
|
|
>This section last updated 27 Jul 2002</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="appendix"
|
|
><HR><H1
|
|
><A
|
|
NAME="gfdl"
|
|
></A
|
|
>Appendix E. GNU Free Documentation License</H1
|
|
><P
|
|
>Version 1.1, March 2000</P
|
|
><A
|
|
NAME="AEN2305"
|
|
></A
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-0"
|
|
></A
|
|
>0. PREAMBLE</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-1"
|
|
></A
|
|
>1. APPLICABILITY AND DEFINITIONS</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-2"
|
|
></A
|
|
>2. VERBATIM COPYING</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-3"
|
|
></A
|
|
>3. COPYING IN QUANTITY</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-4"
|
|
></A
|
|
>4. MODIFICATIONS</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-5"
|
|
></A
|
|
>5. COMBINING DOCUMENTS</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-6"
|
|
></A
|
|
>6. COLLECTIONS OF DOCUMENTS</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-7"
|
|
></A
|
|
>7. AGGREGATION WITH INDEPENDENT WORKS</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-8"
|
|
></A
|
|
>8. TRANSLATION</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-9"
|
|
></A
|
|
>9. TERMINATION</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-10"
|
|
></A
|
|
>10. FUTURE REVISIONS OF THIS LICENSE</H1
|
|
><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><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="gfdl-howto"
|
|
></A
|
|
>How to use this License for your documents</H1
|
|
><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="AEN2395"
|
|
></A
|
|
><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
|
|
CLASS="GLOSSARY"
|
|
><H1
|
|
><A
|
|
NAME="glossary"
|
|
></A
|
|
>Glossary</H1
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="AEN2400"
|
|
></A
|
|
>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
|
|
>A</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-apache"
|
|
></A
|
|
><B
|
|
>Apache</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>In this context, Apache is the web server most commonly used
|
|
for serving up Bugzilla
|
|
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
|
|
><P
|
|
></P
|
|
><DIV
|
|
CLASS="variablelist"
|
|
><P
|
|
><B
|
|
>Useful Directives when configuring Bugzilla</B
|
|
></P
|
|
><DL
|
|
><DT
|
|
><TT
|
|
CLASS="computeroutput"
|
|
><A
|
|
HREF="http://httpd.apache.org/docs-2.0/mod/core.html#addhandler"
|
|
TARGET="_top"
|
|
>AddHandler</A
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Tell Apache that it's OK to run CGI scripts.</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="computeroutput"
|
|
><A
|
|
HREF="http://httpd.apache.org/docs-2.0/mod/core.html#allowoverride"
|
|
TARGET="_top"
|
|
>AllowOverride</A
|
|
></TT
|
|
>, <TT
|
|
CLASS="computeroutput"
|
|
><A
|
|
HREF="http://httpd.apache.org/docs-2.0/mod/core.html#options"
|
|
TARGET="_top"
|
|
>Options</A
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>These directives are used to tell Apache many things about
|
|
the directory they apply to. For Bugzilla's purposes, we need
|
|
them to allow script execution and <TT
|
|
CLASS="filename"
|
|
>.htaccess</TT
|
|
>
|
|
overrides.
|
|
</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="computeroutput"
|
|
><A
|
|
HREF="http://httpd.apache.org/docs-2.0/mod/mod_dir.html#directoryindex"
|
|
TARGET="_top"
|
|
>DirectoryIndex</A
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Used to tell Apache what files are indexes. If you can
|
|
not add <TT
|
|
CLASS="filename"
|
|
>index.cgi</TT
|
|
> to the list of valid files,
|
|
you'll need to set <TT
|
|
CLASS="computeroutput"
|
|
>$index_html</TT
|
|
> to
|
|
1 in <TT
|
|
CLASS="filename"
|
|
>localconfig</TT
|
|
> so
|
|
<B
|
|
CLASS="command"
|
|
>./checksetup.pl</B
|
|
> will create an
|
|
<TT
|
|
CLASS="filename"
|
|
>index.html</TT
|
|
> that redirects to
|
|
<TT
|
|
CLASS="filename"
|
|
>index.cgi</TT
|
|
>.
|
|
</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="computeroutput"
|
|
><A
|
|
HREF="http://httpd.apache.org/docs-2.0/mod/core.html#scriptinterpretersource"
|
|
TARGET="_top"
|
|
>ScriptInterpreterSource</A
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Used when running Apache on windows so the shebang line
|
|
doesn't have to be changed in every Bugzilla script.
|
|
</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><P
|
|
>For more information about how to configure Apache for Bugzilla,
|
|
see <A
|
|
HREF="#http-apache"
|
|
>Section 4.4.1</A
|
|
>.
|
|
</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-b"
|
|
></A
|
|
>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
|
|
><A
|
|
NAME="gloss-bugzilla"
|
|
></A
|
|
><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"
|
|
></A
|
|
>C</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-cgi"
|
|
></A
|
|
><B
|
|
>Common Gateway Interface</B
|
|
></DT
|
|
> (CGI)<DD
|
|
><P
|
|
><SPAN
|
|
CLASS="acronym"
|
|
>CGI</SPAN
|
|
> is an acronym for Common Gateway Interface. This is
|
|
a standard for interfacing an external application with a web server. Bugzilla
|
|
is an example of a <SPAN
|
|
CLASS="acronym"
|
|
>CGI</SPAN
|
|
> application.
|
|
</P
|
|
></DD
|
|
><DT
|
|
><A
|
|
NAME="gloss-component"
|
|
></A
|
|
><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"
|
|
></A
|
|
><B
|
|
>Comprehensive Perl Archive Network</B
|
|
></DT
|
|
> (CPAN)<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"
|
|
></A
|
|
>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"
|
|
></A
|
|
>G</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-groups"
|
|
></A
|
|
><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-j"
|
|
></A
|
|
>J</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-javascript"
|
|
></A
|
|
><B
|
|
>JavaScript</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>JavaScript is cool, we should talk about it.
|
|
</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-m"
|
|
></A
|
|
>M</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-mta"
|
|
></A
|
|
><B
|
|
>Message Transport Agent</B
|
|
></DT
|
|
> (MTA)<DD
|
|
><P
|
|
>A Message Transport Agent is used to control the flow of email
|
|
on a system. Many unix based systems use
|
|
<A
|
|
HREF="http://www.sendmail.org"
|
|
TARGET="_top"
|
|
>sendmail</A
|
|
> which is what
|
|
Bugzilla expects to find by default at <TT
|
|
CLASS="filename"
|
|
>/usr/sbin/sendmail</TT
|
|
>.
|
|
Many other MTA's will work, but they all require that the
|
|
<TT
|
|
CLASS="option"
|
|
>sendmailnow</TT
|
|
> param be set to <TT
|
|
CLASS="literal"
|
|
>on</TT
|
|
>.
|
|
</P
|
|
></DD
|
|
><DT
|
|
><A
|
|
NAME="gloss-mysql"
|
|
></A
|
|
><B
|
|
>MySQL</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>MySQL is currently the required
|
|
<A
|
|
HREF="#gloss-rdbms"
|
|
><I
|
|
CLASS="glossterm"
|
|
>RDBMS</I
|
|
></A
|
|
> for Bugzilla. MySQL
|
|
can be downloaded from <A
|
|
HREF="http://www.mysql.com"
|
|
TARGET="_top"
|
|
>http://www.mysql.com</A
|
|
>. While you
|
|
should familiarize yourself with all of the documentation, some high
|
|
points are:
|
|
</P
|
|
><P
|
|
></P
|
|
><DIV
|
|
CLASS="variablelist"
|
|
><DL
|
|
><DT
|
|
><A
|
|
HREF="http://www.mysql.com/doc/en/Backup.html"
|
|
TARGET="_top"
|
|
>Backup</A
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Methods for backing up your Bugzilla database.
|
|
</P
|
|
></DD
|
|
><DT
|
|
><A
|
|
HREF="http://www.mysql.com/doc/en/Option_files.html"
|
|
TARGET="_top"
|
|
>Option Files</A
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Information about how to configure MySQL using
|
|
<TT
|
|
CLASS="filename"
|
|
>my.cnf</TT
|
|
>.
|
|
</P
|
|
></DD
|
|
><DT
|
|
><A
|
|
HREF="http://www.mysql.com/doc/en/Privilege_system.html"
|
|
TARGET="_top"
|
|
>Privilege System</A
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Much more detailed information about the suggestions in
|
|
<A
|
|
HREF="#security-mysql"
|
|
>Section 5.6.2</A
|
|
>.
|
|
</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-p"
|
|
></A
|
|
>P</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-ppm"
|
|
></A
|
|
><B
|
|
>Perl Package Manager</B
|
|
></DT
|
|
> (PPM)<DD
|
|
><P
|
|
><A
|
|
HREF="http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/"
|
|
TARGET="_top"
|
|
>http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/</A
|
|
>
|
|
</P
|
|
></DD
|
|
><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"
|
|
></A
|
|
>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-r"
|
|
></A
|
|
>R</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-rdbms"
|
|
></A
|
|
><B
|
|
>Relational DataBase Managment System</B
|
|
></DT
|
|
> (RDBMS)<DD
|
|
><P
|
|
>A relational database management system is a database system
|
|
that stores information in tables that are related to each other.
|
|
</P
|
|
></DD
|
|
><DT
|
|
><A
|
|
NAME="gloss-regexp"
|
|
></A
|
|
><B
|
|
>Regular Expression</B
|
|
></DT
|
|
> (regexp)<DD
|
|
><P
|
|
>A regular expression is an expression used for pattern matching.
|
|
<A
|
|
HREF="http://perldoc.com/perl5.6/pod/perlre.html#Regular-Expressions"
|
|
TARGET="_top"
|
|
>Documentation</A
|
|
>
|
|
</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-s"
|
|
></A
|
|
>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"
|
|
></A
|
|
>T</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-target-milestone"
|
|
></A
|
|
><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
|
|
><DT
|
|
><A
|
|
NAME="gloss-tcl"
|
|
></A
|
|
><B
|
|
>Tool Command Language</B
|
|
></DT
|
|
> (TCL)<DD
|
|
><P
|
|
>TCL is an open source scripting language available for Windows,
|
|
Macintosh, and Unix based systems. Bugzilla 1.0 was written in TCL but
|
|
never released. The first release of Bugzilla was 2.0, which was when
|
|
it was ported to perl.
|
|
</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="glossdiv"
|
|
><H1
|
|
CLASS="glossdiv"
|
|
><A
|
|
NAME="gloss-z"
|
|
></A
|
|
>Z</H1
|
|
><DL
|
|
><DT
|
|
><A
|
|
NAME="gloss-zarro"
|
|
></A
|
|
><B
|
|
>Zarro Boogs Found</B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>This is just a goofy way of saying that there were no bugs
|
|
found matching your query. When asked to explain this message,
|
|
Terry had the following to say:
|
|
</P
|
|
><A
|
|
NAME="AEN2626"
|
|
></A
|
|
><TABLE
|
|
BORDER="0"
|
|
WIDTH="100%"
|
|
CELLSPACING="0"
|
|
CELLPADDING="0"
|
|
CLASS="BLOCKQUOTE"
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
VALIGN="TOP"
|
|
> </TD
|
|
><TD
|
|
WIDTH="80%"
|
|
VALIGN="TOP"
|
|
><P
|
|
>I've been asked to explain this ... way back when, when
|
|
Netscape released version 4.0 of its browser, we had a release
|
|
party. Naturally, there had been a big push to try and fix every
|
|
known bug before the release. Naturally, that hadn't actually
|
|
happened. (This is not unique to Netscape or to 4.0; the same thing
|
|
has happened with every software project I've ever seen.) Anyway,
|
|
at the release party, T-shirts were handed out that said something
|
|
like "Netscape 4.0: Zarro Boogs". Just like the software, the
|
|
T-shirt had no known bugs. Uh-huh.
|
|
</P
|
|
><P
|
|
>So, when you query for a list of bugs, and it gets no results,
|
|
you can think of this as a friendly reminder. Of *course* there are
|
|
bugs matching your query, they just aren't in the bugsystem yet...
|
|
</P
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
VALIGN="TOP"
|
|
> </TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
COLSPAN="2"
|
|
ALIGN="RIGHT"
|
|
VALIGN="TOP"
|
|
>--<SPAN
|
|
CLASS="attribution"
|
|
>Terry Weissman</SPAN
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
> </TD
|
|
></TR
|
|
></TABLE
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |