| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <HTML |
| ><HEAD |
| ><TITLE |
| >The Bugzilla Guide - 2.20.1 |
| Release</TITLE |
| ><META |
| NAME="GENERATOR" |
| CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><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" |
| >The Bugzilla Guide - 2.20.1 |
| Release</A |
| ></H1 |
| ><H3 |
| CLASS="corpauthor" |
| >The Bugzilla Team</H3 |
| ><P |
| CLASS="pubdate" |
| >2006-02-20<BR></P |
| ><DIV |
| ><DIV |
| CLASS="abstract" |
| ><P |
| ></P |
| ><A |
| NAME="AEN7" |
| ></A |
| ><P |
| > This is the documentation for Bugzilla, a |
| bug-tracking system from mozilla.org. |
| Bugzilla is an enterprise-class piece of software |
| that tracks millions of bugs and issues for hundreds of |
| organizations around the world. |
| </P |
| ><P |
| > The most current version of this document can always be found on the |
| <A |
| HREF="http://www.bugzilla.org/documentation.html" |
| TARGET="_top" |
| >Bugzilla |
| Documentation Page</A |
| >. |
| </P |
| ><P |
| ></P |
| ></DIV |
| ></DIV |
| ><HR></DIV |
| ><DIV |
| CLASS="TOC" |
| ><DL |
| ><DT |
| ><B |
| >Table of Contents</B |
| ></DT |
| ><DT |
| >1. <A |
| HREF="#about" |
| >About This Guide</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >1.1. <A |
| HREF="#copyright" |
| >Copyright Information</A |
| ></DT |
| ><DT |
| >1.2. <A |
| HREF="#disclaimer" |
| >Disclaimer</A |
| ></DT |
| ><DT |
| >1.3. <A |
| HREF="#newversions" |
| >New Versions</A |
| ></DT |
| ><DT |
| >1.4. <A |
| HREF="#credits" |
| >Credits</A |
| ></DT |
| ><DT |
| >1.5. <A |
| HREF="#conventions" |
| >Document Conventions</A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >2. <A |
| HREF="#installing-bugzilla" |
| >Installing Bugzilla</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >2.1. <A |
| HREF="#installation" |
| >Installation</A |
| ></DT |
| ><DT |
| >2.2. <A |
| HREF="#configuration" |
| >Configuration</A |
| ></DT |
| ><DT |
| >2.3. <A |
| HREF="#extraconfig" |
| >Optional Additional Configuration</A |
| ></DT |
| ><DT |
| >2.4. <A |
| HREF="#os-specific" |
| >OS-Specific Installation Notes</A |
| ></DT |
| ><DT |
| >2.5. <A |
| HREF="#nonroot" |
| >UNIX (non-root) Installation Notes</A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >3. <A |
| HREF="#administration" |
| >Administering Bugzilla</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >3.1. <A |
| HREF="#parameters" |
| >Bugzilla Configuration</A |
| ></DT |
| ><DT |
| >3.2. <A |
| HREF="#useradmin" |
| >User Administration</A |
| ></DT |
| ><DT |
| >3.3. <A |
| HREF="#products" |
| >Products</A |
| ></DT |
| ><DT |
| >3.4. <A |
| HREF="#components" |
| >Components</A |
| ></DT |
| ><DT |
| >3.5. <A |
| HREF="#versions" |
| >Versions</A |
| ></DT |
| ><DT |
| >3.6. <A |
| HREF="#milestones" |
| >Milestones</A |
| ></DT |
| ><DT |
| >3.7. <A |
| HREF="#flags-overview" |
| >Flags</A |
| ></DT |
| ><DT |
| >3.8. <A |
| HREF="#voting" |
| >Voting</A |
| ></DT |
| ><DT |
| >3.9. <A |
| HREF="#quips" |
| >Quips</A |
| ></DT |
| ><DT |
| >3.10. <A |
| HREF="#groups" |
| >Groups and Group Security</A |
| ></DT |
| ><DT |
| >3.11. <A |
| HREF="#upgrading" |
| >Upgrading to New Releases</A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >4. <A |
| HREF="#security" |
| >Bugzilla Security</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >4.1. <A |
| HREF="#security-os" |
| >Operating System</A |
| ></DT |
| ><DT |
| >4.2. <A |
| HREF="#security-mysql" |
| >MySQL</A |
| ></DT |
| ><DT |
| >4.3. <A |
| HREF="#security-webserver" |
| >Webserver</A |
| ></DT |
| ><DT |
| >4.4. <A |
| HREF="#security-bugzilla" |
| >Bugzilla</A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >5. <A |
| HREF="#customization" |
| >Customising Bugzilla</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >5.1. <A |
| HREF="#cust-templates" |
| >Template Customization</A |
| ></DT |
| ><DT |
| >5.2. <A |
| HREF="#cust-hooks" |
| >Template Hooks</A |
| ></DT |
| ><DT |
| >5.3. <A |
| HREF="#cust-change-permissions" |
| >Customizing Who Can Change What</A |
| ></DT |
| ><DT |
| >5.4. <A |
| HREF="#dbmodify" |
| >Modifying Your Running System</A |
| ></DT |
| ><DT |
| >5.5. <A |
| HREF="#dbdoc" |
| >MySQL Bugzilla Database Introduction</A |
| ></DT |
| ><DT |
| >5.6. <A |
| HREF="#integration" |
| >Integrating Bugzilla with Third-Party Tools</A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >6. <A |
| HREF="#using" |
| >Using Bugzilla</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >6.1. <A |
| HREF="#using-intro" |
| >Introduction</A |
| ></DT |
| ><DT |
| >6.2. <A |
| HREF="#myaccount" |
| >Create a Bugzilla Account</A |
| ></DT |
| ><DT |
| >6.3. <A |
| HREF="#bug_page" |
| >Anatomy of a Bug</A |
| ></DT |
| ><DT |
| >6.4. <A |
| HREF="#lifecycle" |
| >Life Cycle of a Bug</A |
| ></DT |
| ><DT |
| >6.5. <A |
| HREF="#query" |
| >Searching for Bugs</A |
| ></DT |
| ><DT |
| >6.6. <A |
| HREF="#list" |
| >Bug Lists</A |
| ></DT |
| ><DT |
| >6.7. <A |
| HREF="#bugreports" |
| >Filing Bugs</A |
| ></DT |
| ><DT |
| >6.8. <A |
| HREF="#patchviewer" |
| >Patch Viewer</A |
| ></DT |
| ><DT |
| >6.9. <A |
| HREF="#hintsandtips" |
| >Hints and Tips</A |
| ></DT |
| ><DT |
| >6.10. <A |
| HREF="#userpreferences" |
| >User Preferences</A |
| ></DT |
| ><DT |
| >6.11. <A |
| HREF="#reporting" |
| >Reports and Charts</A |
| ></DT |
| ><DT |
| >6.12. <A |
| HREF="#flags" |
| >Flags</A |
| ></DT |
| ><DT |
| >6.13. <A |
| HREF="#whining" |
| >Whining</A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >A. <A |
| HREF="#faq" |
| >The Bugzilla FAQ</A |
| ></DT |
| ><DT |
| >B. <A |
| HREF="#troubleshooting" |
| >Troubleshooting</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >B.1. <A |
| HREF="#general-advice" |
| >General Advice</A |
| ></DT |
| ><DT |
| >B.2. <A |
| HREF="#trbl-testserver" |
| >The Apache webserver is not serving Bugzilla pages</A |
| ></DT |
| ><DT |
| >B.3. <A |
| HREF="#trbl-perlmodule" |
| >I installed a Perl module, but |
| <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > claims it's not installed!</A |
| ></DT |
| ><DT |
| >B.4. <A |
| HREF="#trbl-bundleBugzilla" |
| >Bundle::Bugzilla makes me upgrade to Perl 5.6.1</A |
| ></DT |
| ><DT |
| >B.5. <A |
| HREF="#trbl-dbdSponge" |
| >DBD::Sponge::db prepare failed</A |
| ></DT |
| ><DT |
| >B.6. <A |
| HREF="#paranoid-security" |
| >cannot chdir(/var/spool/mqueue)</A |
| ></DT |
| ><DT |
| >B.7. <A |
| HREF="#trouble-filetemp" |
| >Your vendor has not defined Fcntl macro O_NOINHERIT</A |
| ></DT |
| ><DT |
| >B.8. <A |
| HREF="#trbl-relogin-everyone" |
| >Everybody is constantly being forced to relogin</A |
| ></DT |
| ><DT |
| >B.9. <A |
| HREF="#AEN3190" |
| >Some users are constantly being forced to relogin</A |
| ></DT |
| ><DT |
| >B.10. <A |
| HREF="#trbl-index" |
| ><TT |
| CLASS="filename" |
| >index.cgi</TT |
| > doesn't show up unless specified in the URL</A |
| ></DT |
| ><DT |
| >B.11. <A |
| HREF="#trbl-passwd-encryption" |
| >checksetup.pl reports "Client does not support authentication protocol |
| requested by server..."</A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >C. <A |
| HREF="#patches" |
| >Contrib</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >C.1. <A |
| HREF="#cmdline" |
| >Command-line Search Interface</A |
| ></DT |
| ><DT |
| >C.2. <A |
| HREF="#cmdline-bugmail" |
| >Command-line 'Send Unsent Bug-mail' tool</A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >D. <A |
| HREF="#install-perlmodules-manual" |
| >Manual Installation of Perl Modules</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >D.1. <A |
| HREF="#modules-manual-instructions" |
| >Instructions</A |
| ></DT |
| ><DT |
| >D.2. <A |
| HREF="#modules-manual-download" |
| >Download Locations</A |
| ></DT |
| ><DT |
| >D.3. <A |
| HREF="#modules-manual-optional" |
| >Optional Modules</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 Definition</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 |
| >6-1. <A |
| HREF="#lifecycle-image" |
| >Lifecycle of a Bugzilla Bug</A |
| ></DT |
| ></DL |
| ></DIV |
| ><DIV |
| CLASS="LOT" |
| ><DL |
| CLASS="LOT" |
| ><DT |
| ><B |
| >List of Examples</B |
| ></DT |
| ><DT |
| >4-1. <A |
| HREF="#security-mysql-account-root" |
| >Assigning the MySQL <SPAN |
| CLASS="QUOTE" |
| >"root"</SPAN |
| > User a Password</A |
| ></DT |
| ><DT |
| >4-2. <A |
| HREF="#security-mysql-account-anonymous" |
| >Disabling the MySQL <SPAN |
| CLASS="QUOTE" |
| >"anonymous"</SPAN |
| > User</A |
| ></DT |
| ><DT |
| >4-3. <A |
| HREF="#security-mysql-network-ex" |
| >Disabling Networking in MySQL</A |
| ></DT |
| ><DT |
| >4-4. <A |
| HREF="#security-bugzilla-charset-ex" |
| >Forcing Bugzilla to output a charset</A |
| ></DT |
| ><DT |
| >B-1. <A |
| HREF="#trbl-relogin-everyone-share" |
| >Examples of urlbase/cookiepath pairs for sharing login cookies</A |
| ></DT |
| ><DT |
| >B-2. <A |
| HREF="#trbl-relogin-everyone-restrict" |
| >Examples of urlbase/cookiepath pairs to restrict the login cookie</A |
| ></DT |
| ></DL |
| ></DIV |
| ><DIV |
| CLASS="chapter" |
| ><HR><H1 |
| ><A |
| NAME="about" |
| ></A |
| >Chapter 1. About This Guide</H1 |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="copyright" |
| >1.1. Copyright Information</A |
| ></H2 |
| ><P |
| >This document is copyright (c) 2000-2006 by the various |
| Bugzilla contributors who wrote it.</P |
| ><A |
| NAME="AEN26" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><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 |
| ></BLOCKQUOTE |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="disclaimer" |
| >1.2. Disclaimer</A |
| ></H2 |
| ><P |
| > No liability for the contents of this document can be accepted. |
| Follow the instructions herein 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 |
| > 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; it is an extremely |
| versatile, stable, |
| and robust operating system that offers an ideal operating |
| environment for Bugzilla. |
| </P |
| ><P |
| > Although the Bugzilla development team has taken great care to |
| ensure that all exploitable bugs have been fixed, security holes surely |
| exist in any piece of code. Great care should be taken both in |
| the installation and usage of this software. The Bugzilla development |
| team members assume no liability for your use of Bugzilla. You have |
| the source code, and are responsible for auditing it yourself to ensure |
| your security needs are met. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="newversions" |
| >1.3. New Versions</A |
| ></H2 |
| ><P |
| > This is the 2.20.1 version of The Bugzilla Guide. It is so named |
| to match the current version of Bugzilla. |
| </P |
| ><P |
| > The latest version of this guide can always be found at <A |
| HREF="http://www.bugzilla.org" |
| TARGET="_top" |
| >http://www.bugzilla.org</A |
| >, or checked out via CVS by |
| following 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. However, you should read the version |
| which came with the Bugzilla release you are using. |
| </P |
| ><P |
| > The Bugzilla Guide, or a section of it, is also available in |
| the following languages: |
| <A |
| HREF="http://bugzilla-de.sourceforge.net/docs/html/" |
| TARGET="_top" |
| >German</A |
| >. |
| </P |
| ><P |
| > |
| In addition, there are Bugzilla template localisation projects in |
| the following languages. They may have translated documentation |
| available: |
| <A |
| HREF="http://sourceforge.net/projects/bugzilla-be/" |
| TARGET="_top" |
| >Belarusian</A |
| >, |
| <A |
| HREF="http://sourceforge.net/projects/bugzilla-br/" |
| TARGET="_top" |
| >Brazilian Portuguese</A |
| >, |
| <A |
| HREF="http://sourceforge.net/projects/bugzilla-cn/" |
| TARGET="_top" |
| >Chinese</A |
| >, |
| <A |
| HREF="http://sourceforge.net/projects/bugzilla-fr/" |
| TARGET="_top" |
| >French</A |
| >, |
| <A |
| HREF="http://sourceforge.net/projects/bugzilla-de/" |
| TARGET="_top" |
| >German</A |
| >, |
| <A |
| HREF="http://sourceforge.net/projects/bugzilla-kr/" |
| TARGET="_top" |
| >Korean</A |
| >, |
| <A |
| HREF="http://sourceforge.net/projects/bugzilla-ru/" |
| TARGET="_top" |
| >Russian</A |
| > and |
| <A |
| HREF="http://sourceforge.net/projects/bugzilla-es/" |
| TARGET="_top" |
| >Spanish</A |
| >. |
| </P |
| ><P |
| > |
| If you would like to volunteer to translate the Guide into additional |
| languages, please contact |
| <A |
| HREF="mailto:justdave@syndicomm.com" |
| TARGET="_top" |
| >Dave Miller</A |
| >. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="credits" |
| >1.4. Credits</A |
| ></H2 |
| ><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 <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:mbarnson@sisna.com" |
| >mbarnson@sisna.com</A |
| >></CODE |
| ></DT |
| ><DD |
| ><P |
| >for the Herculaean task of pulling together the Bugzilla Guide |
| and shepherding it to 2.14. |
| </P |
| ></DD |
| ><DT |
| >Terry Weissman <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:terry@mozilla.org" |
| >terry@mozilla.org</A |
| >></CODE |
| ></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 <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:tara@tequilarists.org" |
| >tara@tequilarists.org</A |
| >></CODE |
| ></DT |
| ><DD |
| ><P |
| >for keeping Bugzilla development going strong after Terry left |
| mozilla.org and for running landfill. |
| </P |
| ></DD |
| ><DT |
| >Dave Lawrence <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:dkl@redhat.com" |
| >dkl@redhat.com</A |
| >></CODE |
| ></DT |
| ><DD |
| ><P |
| >for providing insight into the key differences between Red |
| Hat's customized Bugzilla. |
| </P |
| ></DD |
| ><DT |
| >Dawn Endico <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:endico@mozilla.org" |
| >endico@mozilla.org</A |
| >></CODE |
| ></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 <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:jake@bugzilla.org" |
| >jake@bugzilla.org</A |
| >></CODE |
| ></DT |
| ><DD |
| ><P |
| >for taking over documentation during the 2.17 development |
| period. |
| </P |
| ></DD |
| ><DT |
| >Dave Miller <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:justdave@bugzilla.org" |
| >justdave@bugzilla.org</A |
| >></CODE |
| ></DT |
| ><DD |
| ><P |
| >for taking over as project lead when Tara stepped down and |
| continually pushing for the documentation to be the best it can be. |
| </P |
| ></DD |
| ></DL |
| ></DIV |
| ><P |
| > Thanks also go to the following people for significant contributions |
| to this documentation: |
| Kevin Brannen, Vlad Dascalu, Ben FrantzDale, Eric Hanson, Zach Lipton, Gervase Markham, Andrew Pearson, Joe Robins, Spencer Smith, Ron Teitelbaum, Shane Travis, Martin Wulffeld. |
| </P |
| ><P |
| > Also, thanks are due to the members of the |
| <A |
| HREF="news://news.mozilla.org/netscape.public.mozilla.webtools" |
| TARGET="_top" |
| > netscape.public.mozilla.webtools</A |
| > |
| newsgroup. Without your discussions, insight, suggestions, and patches, |
| this could never have happened. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="conventions" |
| >1.5. Document Conventions</A |
| ></H2 |
| ><P |
| >This document uses the following conventions:</P |
| ><DIV |
| CLASS="informaltable" |
| ><P |
| ></P |
| ><A |
| NAME="AEN115" |
| ></A |
| ><TABLE |
| BORDER="0" |
| FRAME="void" |
| CLASS="CALSTABLE" |
| ><COL><COL><THEAD |
| ><TR |
| ><TH |
| >Descriptions</TH |
| ><TH |
| >Appearance</TH |
| ></TR |
| ></THEAD |
| ><TBODY |
| ><TR |
| ><TD |
| >Warning</TD |
| ><TD |
| > <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 |
| >Hint</TD |
| ><TD |
| > <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 |
| >Note</TD |
| ><TD |
| > <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 |
| >Information requiring special attention</TD |
| ><TD |
| > <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 |
| >File or directory name</TD |
| ><TD |
| > <TT |
| CLASS="filename" |
| >filename</TT |
| > |
| </TD |
| ></TR |
| ><TR |
| ><TD |
| >Command to be typed</TD |
| ><TD |
| > <B |
| CLASS="command" |
| >command</B |
| > |
| </TD |
| ></TR |
| ><TR |
| ><TD |
| >Application name</TD |
| ><TD |
| > <SPAN |
| CLASS="application" |
| >application</SPAN |
| > |
| </TD |
| ></TR |
| ><TR |
| ><TD |
| > Normal user's prompt under bash shell</TD |
| ><TD |
| >bash$</TD |
| ></TR |
| ><TR |
| ><TD |
| > Root user's prompt under bash shell</TD |
| ><TD |
| >bash#</TD |
| ></TR |
| ><TR |
| ><TD |
| > Normal user's prompt under tcsh shell</TD |
| ><TD |
| >tcsh$</TD |
| ></TR |
| ><TR |
| ><TD |
| >Environment variables</TD |
| ><TD |
| > <VAR |
| CLASS="envar" |
| >VARIABLE</VAR |
| > |
| </TD |
| ></TR |
| ><TR |
| ><TD |
| >Term found in the glossary</TD |
| ><TD |
| > <A |
| HREF="#gloss-bugzilla" |
| ><I |
| CLASS="glossterm" |
| >Bugzilla</I |
| ></A |
| > |
| </TD |
| ></TR |
| ><TR |
| ><TD |
| >Code example</TD |
| ><TD |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| ><CODE |
| CLASS="sgmltag" |
| ><para></CODE |
| > |
| Beginning and end of paragraph |
| <CODE |
| CLASS="sgmltag" |
| ></para></CODE |
| ></PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </TD |
| ></TR |
| ></TBODY |
| ></TABLE |
| ><P |
| ></P |
| ></DIV |
| ><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 |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="chapter" |
| ><HR><H1 |
| ><A |
| NAME="installing-bugzilla" |
| ></A |
| >Chapter 2. Installing Bugzilla</H1 |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="installation" |
| >2.1. Installation</A |
| ></H2 |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >If you just want to <EM |
| >use</EM |
| > Bugzilla, |
| you do not need to install it. None of this chapter is relevant to |
| you. Ask your Bugzilla administrator |
| for the URL to access it over the web. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| >The Bugzilla server software is usually installed on Linux or |
| Solaris. |
| If you are installing on another OS, check <A |
| HREF="#os-specific" |
| >Section 2.4</A |
| > |
| before you start your installation to see if there are any special |
| instructions. |
| </P |
| ><P |
| > As an alternative to following these instructions, you may wish to |
| try Arne Schirmacher's unofficial and unsupported |
| <A |
| HREF="http://www.softwaretesting.de/article/view/33/1/8/" |
| TARGET="_top" |
| >Bugzilla |
| Installer</A |
| >, which installs Bugzilla and all its prerequisites |
| on Linux or Solaris systems. |
| </P |
| ><P |
| >This guide assumes that you have administrative access to the |
| Bugzilla machine. It not possible to |
| install and run Bugzilla itself without administrative access except |
| in the very unlikely event that every single prerequisite is |
| already installed. |
| </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 installation process may make your machine insecure for |
| short periods of time. Make sure there is a firewall between you |
| and the Internet. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > You are strongly recommended to make a backup of your system |
| before installing Bugzilla (and at regular intervals thereafter :-). |
| </P |
| ><P |
| >In outline, the installation proceeds as follows: |
| </P |
| ><DIV |
| CLASS="procedure" |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| ><A |
| HREF="#install-perl" |
| >Install Perl</A |
| > |
| (5.6.1 or above for non-Windows platforms; 5.8.1 |
| for Windows) |
| </P |
| ></LI |
| ><LI |
| ><P |
| ><A |
| HREF="#install-database" |
| >Install a Database Engine</A |
| > |
| </P |
| ></LI |
| ><LI |
| ><P |
| ><A |
| HREF="#install-webserver" |
| >Install a Webserver</A |
| > |
| </P |
| ></LI |
| ><LI |
| ><P |
| ><A |
| HREF="#install-bzfiles" |
| >Install Bugzilla</A |
| > |
| </P |
| ></LI |
| ><LI |
| ><P |
| ><A |
| HREF="#install-perlmodules" |
| >Install Perl modules</A |
| > |
| </P |
| ></LI |
| ><LI |
| ><P |
| > <A |
| HREF="#install-MTA" |
| >Install a Mail Transfer Agent</A |
| > |
| (Sendmail 8.7 or above, or an MTA that is Sendmail-compatible with at least this version) |
| </P |
| ></LI |
| ><LI |
| ><P |
| >Configure all of the above. |
| </P |
| ></LI |
| ></OL |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="install-perl" |
| >2.1.1. Perl</A |
| ></H3 |
| ><P |
| >Installed Version Test: <TT |
| CLASS="filename" |
| >perl -v</TT |
| ></P |
| ><P |
| >Any machine that doesn't have Perl on it is a sad machine indeed. |
| If you don't have it and your OS doesn't provide official packages, |
| visit <A |
| HREF="http://www.perl.com" |
| TARGET="_top" |
| >http://www.perl.com</A |
| >. |
| Although Bugzilla runs with Perl 5.6.1, |
| it's a good idea to be using the latest stable version. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="install-database" |
| >2.1.2. Database Engine</A |
| ></H3 |
| ><P |
| >From Bugzilla 2.20, support is included for using both the MySQL and |
| PostgreSQL database servers. You only require one of these systems to make |
| use of Bugzilla.</P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-mysql" |
| >2.1.2.1. MySQL</A |
| ></H4 |
| ><P |
| >Installed Version Test: <TT |
| CLASS="filename" |
| >mysql -V</TT |
| ></P |
| ><P |
| > If you don't have it and your OS doesn't provide official packages, |
| visit <A |
| HREF="http://www.mysql.com" |
| TARGET="_top" |
| >http://www.mysql.com</A |
| >. You need MySQL version |
| 3.23.41 or higher. |
| </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. To change the data |
| directory, you have to build MySQL from source yourself, and |
| set it as an option to <TT |
| CLASS="filename" |
| >configure</TT |
| >.</P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| >If you install from something other than a packaging/installation |
| system, such as .rpm (Redhat Package), .deb (Debian Package), .exe |
| (Windows Executable), or .msi (Microsoft Installer), make sure the MySQL |
| server is started when the machine boots. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-pg" |
| >2.1.2.2. PostgreSQL</A |
| ></H4 |
| ><P |
| >Installed Version Test: <TT |
| CLASS="filename" |
| >psql -V</TT |
| ></P |
| ><P |
| > If you don't have it and your OS doesn't provide official packages, |
| visit <A |
| HREF="http://www.postgresql.org/" |
| TARGET="_top" |
| >http://www.postgresql.org/</A |
| >. You need PostgreSQL |
| version 7.3.x or higher. |
| </P |
| ><P |
| >If you install from something other than a packaging/installation |
| system, such as .rpm (Redhat Package), .deb (Debian Package), .exe |
| (Windows Executable), or .msi (Microsoft Installer), make sure the |
| PostgreSQL server is started when the machine boots. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="install-webserver" |
| >2.1.3. Web Server</A |
| ></H3 |
| ><P |
| >Installed Version Test: view the default welcome page at |
| http://<your-machine>/</P |
| ><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. |
| However, we strongly recommend using the Apache web server |
| (either 1.3.x or 2.x), and |
| the installation instructions usually assume you are |
| using it. 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 |
| ><P |
| > If you don't have Apache and your OS doesn't provide official packages, |
| visit <A |
| HREF="http://httpd.apache.org/" |
| TARGET="_top" |
| >http://httpd.apache.org/</A |
| >. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="install-bzfiles" |
| >2.1.4. Bugzilla</A |
| ></H3 |
| ><P |
| > Download a Bugzilla tarball (or check it out from CVS) and place |
| it in a suitable directory, accessible by the default web server user |
| (probably <SPAN |
| CLASS="QUOTE" |
| >"apache"</SPAN |
| > or <SPAN |
| CLASS="QUOTE" |
| >"www"</SPAN |
| >). |
| Good locations are either directly in the main web space for your |
| web server or perhaps in |
| <TT |
| CLASS="filename" |
| >/usr/local</TT |
| > |
| with a symbolic link from the web space. |
| </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 |
| <VAR |
| CLASS="option" |
| >ScriptAlias</VAR |
| > directive of Apache. |
| </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 |
| <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > |
| script, which locks down your installation.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="install-perlmodules" |
| >2.1.5. Perl Modules</A |
| ></H3 |
| ><P |
| >Bugzilla's installation process is based |
| on a script called <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| >. |
| The first thing it checks is whether you have appropriate |
| versions of all the required |
| Perl modules. The aim of this section is to pass this check. |
| When it passes, proceed to <A |
| HREF="#configuration" |
| >Section 2.2</A |
| >. |
| </P |
| ><P |
| > At this point, you need to <TT |
| CLASS="filename" |
| >su</TT |
| > to root. You should |
| remain as root until the end of the install. To check you have the |
| required modules, run: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| ><SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > ./checksetup.pl --check-modules</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > will print out a list of the |
| required and optional Perl modules, together with the versions |
| (if any) installed on your machine. |
| The list of required modules is reasonably long; however, you |
| may already have several of them installed. |
| </P |
| ><P |
| > There is a meta-module called Bundle::Bugzilla, |
| which installs all the other |
| modules with a single command. You should use this if you are running |
| Perl 5.6.1 or above. |
| </P |
| ><P |
| > The preferred way of installing Perl modules is via CPAN on Unix, |
| or PPM on Windows (see <A |
| HREF="#win32-perl-modules" |
| >Section 2.4.1.2</A |
| >). These |
| instructions assume you are using CPAN; if for some reason you need |
| to install the Perl modules manually, see |
| <A |
| HREF="#install-perlmodules-manual" |
| >Appendix D</A |
| >. |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| ><SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > perl -MCPAN -e 'install "<modulename>"'</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > If you using Bundle::Bugzilla, invoke the magic CPAN command on it. |
| Otherwise, you need to work down the |
| list of modules that <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > says are |
| required, in the order given, invoking the command on each. |
| </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 |
| >Many people complain that Perl modules will not install for |
| them. Most times, the error messages complain that they are missing a |
| file in |
| <SPAN |
| CLASS="QUOTE" |
| >"@INC"</SPAN |
| >. |
| Virtually every time, this error is due to permissions being set too |
| restrictively for you to compile Perl modules or not having the |
| necessary Perl development libraries installed on your system. |
| Consult your local UNIX systems administrator for help solving these |
| permissions issues; if you |
| <EM |
| >are</EM |
| > |
| the local UNIX sysadmin, please consult the newsgroup/mailing list |
| for further assistance or hire someone to help you out.</P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="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 a package-based system, and attempting to install the |
| Perl modules from CPAN, you may need to install the "development" packages for |
| MySQL and GD before attempting to install the related Perl modules. The names of |
| these packages will vary depending on the specific distribution you are using, |
| but are often called <TT |
| CLASS="filename" |
| ><packagename>-devel</TT |
| >.</P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Here is a complete list of modules and their minimum versions. |
| Some modules have special installation notes, which follow. |
| </P |
| ><P |
| >Required Perl modules: |
| <P |
| ></P |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| > AppConfig (1.52) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > CGI (2.93) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Data::Dumper (any) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Date::Format (2.21) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > DBI (1.38) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > <A |
| HREF="#install-modules-dbd-mysql" |
| >DBD::mysql</A |
| > |
| (2.9003) if using MySQL |
| </P |
| ></LI |
| ><LI |
| ><P |
| > DBD::Pg (1.31) if using PostgreSQL |
| </P |
| ></LI |
| ><LI |
| ><P |
| > File::Spec (0.84) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > File::Temp (any) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > <A |
| HREF="#install-modules-template" |
| >Template</A |
| > |
| (2.08) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Text::Wrap (2001.0131) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Mail::Mailer (1.65) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Storable (any) |
| </P |
| ></LI |
| ></OL |
| > |
| |
| Optional Perl modules: |
| <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 |
| > |
| (1.0) for bug charting |
| </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-xml-parser" |
| >XML::Parser</A |
| > |
| (any) for the XML interface |
| </P |
| ></LI |
| ><LI |
| ><P |
| > <A |
| HREF="#install-modules-patchreader" |
| >PatchReader</A |
| > |
| (0.9.4) for pretty HTML view of patches |
| </P |
| ></LI |
| ><LI |
| ><P |
| > <A |
| HREF="#install-modules-mime-parser" |
| >MIME::Parser</A |
| > |
| (any) for the optional email interface |
| </P |
| ></LI |
| ></OL |
| > |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-dbd-mysql" |
| >2.1.5.1. DBD::mysql</A |
| ></H4 |
| ><P |
| >The installation 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. A testing user of 'test', |
| with a null password, should have sufficient access to run |
| tests on the 'test' database which MySQL creates upon installation. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-template" |
| >2.1.5.2. Template Toolkit (2.08)</A |
| ></H4 |
| ><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 |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-gd" |
| >2.1.5.3. GD (1.20)</A |
| ></H4 |
| ><P |
| >The GD module is only required if you want graphical reports. |
| </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 module requires some other libraries that may or |
| may not be installed on your system, including |
| <CODE |
| CLASS="classname" |
| >libpng</CODE |
| > |
| and |
| <CODE |
| CLASS="classname" |
| >libgd</CODE |
| >. |
| The full requirements are listed in the Perl GD module 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 module you need is very closely tied |
| to the <CODE |
| CLASS="classname" |
| >libgd</CODE |
| > version installed on your system. |
| If you have a version 1.x of <CODE |
| CLASS="classname" |
| >libgd</CODE |
| > the 2.x |
| versions of the GD module won't work for you. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-chart-base" |
| >2.1.5.4. Chart::Base (1.0)</A |
| ></H4 |
| ><P |
| >The Chart::Base module is only required if you want graphical |
| reports. |
| Note that earlier versions that 0.99c used GIFs, which are no longer |
| supported by the latest versions of GD.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-gd-graph" |
| >2.1.5.5. GD::Graph (any)</A |
| ></H4 |
| ><P |
| >The GD::Graph module is only required if you want graphical |
| reports. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-gd-text-align" |
| >2.1.5.6. GD::Text::Align (any)</A |
| ></H4 |
| ><P |
| >The GD::Text::Align module is only required if you want graphical |
| reports. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-xml-parser" |
| >2.1.5.7. XML::Parser (any)</A |
| ></H4 |
| ><P |
| >The XML::Parser module is only required if you want to import |
| XML bugs using the <TT |
| CLASS="filename" |
| >importxml.pl</TT |
| > |
| script. This is required to use Bugzilla's "move bugs" feature; |
| you may also want to use it for migrating from another bug database. |
| XML::Parser requires that the |
| <CODE |
| CLASS="classname" |
| >expat</CODE |
| > library is already installed on your machine. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-mime-parser" |
| >2.1.5.8. MIME::Parser (any)</A |
| ></H4 |
| ><P |
| >The MIME::Parser module is only required if you want to use the |
| email interface |
| located in the <TT |
| CLASS="filename" |
| >contrib</TT |
| > directory. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="install-modules-patchreader" |
| >2.1.5.9. PatchReader (0.9.4)</A |
| ></H4 |
| ><P |
| >The PatchReader module is only required if you want to use |
| Patch Viewer, a |
| Bugzilla feature to show code patches in your web browser in a more |
| readable form. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="install-MTA" |
| >2.1.6. Mail Transfer Agent (MTA)</A |
| ></H3 |
| ><P |
| > Bugzilla is dependent on the availability of an e-mail system for its |
| user authentication and for other tasks. |
| </P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > This is not entirely true. It is possible to completely disable |
| email sending, or to have Bugzilla store email messages in a |
| file instead of sending them. However, this is mainly intended |
| for testing, as disabling or diverting email on a production |
| machine would mean that users could miss important events (such |
| as bug changes or the creation of new accouts). |
| </P |
| ><P |
| > For more information, see the "maildeliverymethod" parameter in |
| <A |
| HREF="#parameters" |
| >Section 3.1</A |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > On Linux, any Sendmail-compatible MTA (Mail Transfer Agent) will |
| suffice. Sendmail, Postfix, qmail and Exim are examples of common |
| MTAs. Sendmail is the original Unix MTA, but the others are easier to |
| configure, and therefore many people replace Sendmail with Postfix or |
| Exim. They are drop-in replacements, so Bugzilla will not |
| distinguish between them. |
| </P |
| ><P |
| > If you are using Sendmail, version 8.7 or higher is required. |
| If you are using a Sendmail-compatible MTA, it must be congruent with |
| at least version 8.7 of Sendmail. |
| </P |
| ><P |
| > Consult the manual for the specific MTA you choose for detailed |
| installation instructions. Each of these programs will have their own |
| configuration files where you must configure certain parameters to |
| ensure that the mail is delivered properly. They are implemented |
| as services, and you should ensure that the MTA is in the auto-start |
| list of services for the machine. |
| </P |
| ><P |
| > If a simple mail sent with the command-line 'mail' program |
| succeeds, then Bugzilla should also be fine. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="configuration" |
| >2.2. Configuration</A |
| ></H2 |
| ><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 the |
| security parts of these guidelines seriously, even for Bugzilla |
| machines hidden away behind your firewall. Be certain to read |
| <A |
| HREF="#security" |
| >Chapter 4</A |
| > for some important security tips. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="localconfig" |
| >2.2.1. localconfig</A |
| ></H3 |
| ><P |
| > You should now run <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > again, this time |
| without the <VAR |
| CLASS="literal" |
| >--check-modules</VAR |
| > switch. |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| ><SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > ./checksetup.pl</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > This time, <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > should tell you that all |
| the correct modules are installed and will display a message about, and |
| write out a file called, <TT |
| CLASS="filename" |
| >localconfig</TT |
| >. This file |
| contains the default settings for a number of Bugzilla parameters. |
| </P |
| ><P |
| > Load this file in your editor. The only value you |
| <EM |
| >need</EM |
| > to change is $db_pass, the password for |
| the user you will create for your database. Pick a strong |
| password (for simplicity, it should not contain single quote |
| characters) and put it here. |
| </P |
| ><P |
| > You may need to change the value of |
| <EM |
| >webservergroup</EM |
| > if your web server does not |
| run in the "apache" group. On Debian, for example, Apache runs in |
| the "www-data" group. If you are going to run Bugzilla on a |
| machine where you do not have root access (such as on a shared web |
| hosting account), you will need to leave |
| <EM |
| >webservergroup</EM |
| > empty, ignoring the warnings |
| that <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > will subsequently display |
| every time it in run. |
| </P |
| ><P |
| > The other options in the <TT |
| CLASS="filename" |
| >localconfig</TT |
| > file |
| are documented by their accompanying comments. If you have a slightly |
| non-standard MySQL setup, you may wish to change one or more of |
| the other "$db_*" parameters. |
| </P |
| ><P |
| > You may also wish to change the names of |
| the priorities, severities, operating systems and platforms for your |
| installation. However, you can always change these after installation |
| has finished; if you then re-run <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| >, |
| the changes will get picked up. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="database-engine" |
| >2.2.2. Database Server</A |
| ></H3 |
| ><P |
| >This section deals with configuring your database server for use |
| with Bugzilla. Currently <A |
| HREF="#mysql" |
| >Section 2.2.2.1</A |
| > and |
| <A |
| HREF="#postgresql" |
| >Section 2.2.2.2</A |
| > are available.</P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="mysql" |
| >2.2.2.1. MySQL</A |
| ></H4 |
| ><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 |
| > MySQL's default configuration is very insecure. |
| <A |
| HREF="#security-mysql" |
| >Section 4.2</A |
| > has some good information for |
| improving your installation's security. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="install-setupdatabase" |
| >2.2.2.1.1. Allow large attachments</A |
| ></H5 |
| ><P |
| > By default, MySQL will only accept packets up to 64Kb in size. |
| If you want to have attachments larger than this, you will need |
| to modify your <TT |
| CLASS="filename" |
| >/etc/my.cnf</TT |
| > as below. |
| </P |
| ><P |
| > If you are using MySQL 4.0 or newer, enter: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > [mysqld] |
| # Allow packets up to 1M |
| max_allowed_packet=1M</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > If you are using an older version of MySQL, enter: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > [mysqld] |
| # Allow packets up to 1M |
| set-variable = max_allowed_packet=1M</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > There is also a parameter in Bugzilla called 'maxattachmentsize' |
| (default = 1000 Kb) that controls the maximum allowable attachment |
| size. Attachments larger than <EM |
| >either</EM |
| > the |
| 'max_allowed_packet' or 'maxattachmentsize' value will not be |
| accepted by 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 |
| > This does not affect Big Files, attachments that are stored directly |
| on disk instead of in the database. Their maximum size is |
| controlled using the 'maxlocalattachment' parameter. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="AEN439" |
| >2.2.2.1.2. Allow small words in full-text indexes</A |
| ></H5 |
| ><P |
| >By default, words must be at least four characters in length |
| in order to be indexed by MySQL's full-text indexes. This causes |
| a lot of Bugzilla specific words to be missed, including "cc", |
| "ftp" and "uri".</P |
| ><P |
| >MySQL can be configured to index those words by setting the |
| ft_min_word_len param to the minimum size of the words to index. |
| This can be done by modifying the <TT |
| CLASS="filename" |
| >/etc/my.cnf</TT |
| > |
| according to the example below:</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > [mysqld] |
| # Allow small words in full-text indexes |
| ft_min_word_len=2</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| >Rebuilding the indexes can be done based on documentation found at |
| <A |
| HREF="http://www.mysql.com/doc/en/Fulltext_Fine-tuning.html" |
| TARGET="_top" |
| >http://www.mysql.com/doc/en/Fulltext_Fine-tuning.html</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 |
| > The ft_min_word_len parameter is only suported in MySQL v4 or higher. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="AEN449" |
| >2.2.2.1.3. Permit attachments table to grow beyond 4GB</A |
| ></H5 |
| ><P |
| > By default, MySQL will limit the size of a table to 4GB. |
| This limit is present even if the underlying filesystem |
| has no such limit. To set a higher limit, follow these |
| instructions. |
| </P |
| ><P |
| > Run the <TT |
| CLASS="filename" |
| >MySQL</TT |
| > command-line client and |
| enter: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > ALTER TABLE attachments |
| AVG_ROW_LENGTH=1000000, MAX_ROWS=20000; |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > The above command will change the limit to 20GB. Mysql will have |
| to make a temporary copy of your entire table to do this. Ideally, |
| you should do this when your attachments table is still small. |
| </P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > This does not affect Big Files, attachments that are stored directly |
| on disk instead of in the database. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="install-setupdatabase-adduser" |
| >2.2.2.1.4. Add a user to MySQL</A |
| ></H5 |
| ><P |
| > You need to add a new MySQL user for Bugzilla to use. |
| (It's not safe to have Bugzilla use the MySQL root account.) |
| The following instructions assume the defaults in |
| <TT |
| CLASS="filename" |
| >localconfig</TT |
| >; if you changed those, |
| you need to modify the SQL command appropriately. You will |
| need the <VAR |
| CLASS="replaceable" |
| >$db_pass</VAR |
| > password you |
| set in <TT |
| CLASS="filename" |
| >localconfig</TT |
| > in |
| <A |
| HREF="#localconfig" |
| >Section 2.2.1</A |
| >. |
| </P |
| ><P |
| > We use an SQL <B |
| CLASS="command" |
| >GRANT</B |
| > command to create |
| a <SPAN |
| CLASS="QUOTE" |
| >"bugs"</SPAN |
| > user. This also restricts the |
| <SPAN |
| CLASS="QUOTE" |
| >"bugs"</SPAN |
| >user to operations within a database |
| called <SPAN |
| CLASS="QUOTE" |
| >"bugs"</SPAN |
| >, and only allows the account |
| to connect from <SPAN |
| CLASS="QUOTE" |
| >"localhost"</SPAN |
| >. Modify it to |
| reflect your setup if you will be connecting from another |
| machine or as a different user. |
| </P |
| ><P |
| > Run the <TT |
| CLASS="filename" |
| >mysql</TT |
| > command-line client. |
| </P |
| ><P |
| > If you are using MySQL 4.0 or newer, enter: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > GRANT SELECT, INSERT, |
| UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, |
| CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* |
| TO bugs@localhost IDENTIFIED BY '<VAR |
| CLASS="replaceable" |
| >$db_pass</VAR |
| >'; |
| <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > FLUSH PRIVILEGES;</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > If you are using an older version of MySQL,the |
| <SAMP |
| CLASS="computeroutput" |
| >LOCK TABLES</SAMP |
| > and |
| <SAMP |
| CLASS="computeroutput" |
| >CREATE TEMPORARY TABLES</SAMP |
| > |
| permissions will be unavailable and should be removed from |
| the permissions list. In this case, the following command |
| line can be used: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > GRANT SELECT, INSERT, |
| UPDATE, DELETE, INDEX, ALTER, CREATE, DROP, |
| REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY |
| '<VAR |
| CLASS="replaceable" |
| >$db_pass</VAR |
| >'; |
| <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > FLUSH PRIVILEGES;</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="postgresql" |
| >2.2.2.2. PostgreSQL</A |
| ></H4 |
| ><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 |
| >Note if you are using PostgreSQL 8.0.1 or higher, then you |
| will require to use a version of DBD::Pg which is equal to or |
| greater than version 1.41 |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="AEN490" |
| >2.2.2.2.1. Add a User to PostgreSQL</A |
| ></H5 |
| ><P |
| >You need to add a new user to PostgreSQL for the Bugzilla |
| application to use when accessing the database. The following instructions |
| assume the defaults in <TT |
| CLASS="filename" |
| >localconfig</TT |
| >; if you |
| changed those, you need to modify the commands appropriately. You will |
| need the <VAR |
| CLASS="replaceable" |
| >$db_pass</VAR |
| > password you |
| set in <TT |
| CLASS="filename" |
| >localconfig</TT |
| > in |
| <A |
| HREF="#localconfig" |
| >Section 2.2.1</A |
| >.</P |
| ><P |
| >On most systems, to create the user in PostgreSQL, you will need to |
| login as the root user, and then</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > su - postgres</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| >As the postgres user, you then need to create a new user: </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > createuser -U postgres -dAP bugs</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| >When asked for a password, provide the password which will be set as |
| <VAR |
| CLASS="replaceable" |
| >$db_pass</VAR |
| > in <TT |
| CLASS="filename" |
| >localconfig</TT |
| >. |
| The created user will have the ability to create databases and will not be |
| able to create new users.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="AEN506" |
| >2.2.2.2.2. Configure PostgreSQL</A |
| ></H5 |
| ><P |
| >Now, you will need to edit <TT |
| CLASS="filename" |
| >pg_hba.conf</TT |
| > which is |
| usually located in <TT |
| CLASS="filename" |
| >/var/lib/pgsql/data/</TT |
| >. In this file, |
| you will need to add a new line to it as follows:</P |
| ><P |
| > <SAMP |
| CLASS="computeroutput" |
| >host all bugs 127.0.0.1 255.255.255.255 md5</SAMP |
| > |
| </P |
| ><P |
| >This means that for TCP/IP (host) connections, allow connections from |
| '127.0.0.1' to 'all' databases on this server from the 'bugs' user, and use |
| password authentication (md5) for that user.</P |
| ><P |
| >If you are using <EM |
| >versions of PostgreSQL |
| before version 8</EM |
| >, you may also need to edit <TT |
| CLASS="filename" |
| >postgresql.conf</TT |
| > |
| , also usually found in the <TT |
| CLASS="filename" |
| >/var/lib/pgsql/data/</TT |
| > folder. |
| You will need to make a single line change, changing</P |
| ><P |
| > <SAMP |
| CLASS="computeroutput" |
| ># tcpip_socket = false</SAMP |
| > |
| </P |
| ><P |
| >to</P |
| ><P |
| > <SAMP |
| CLASS="computeroutput" |
| >tcpip_socket = true</SAMP |
| > |
| </P |
| ><P |
| >Now, you will need to restart PostgreSQL, but you will need to fully |
| stop and start the server rather than just restarting due to the possibility |
| of a change to <TT |
| CLASS="filename" |
| >postgresql.conf</TT |
| >. After the server has |
| restarted, you will need to edit <TT |
| CLASS="filename" |
| >localconfig</TT |
| >, finding |
| the <VAR |
| CLASS="literal" |
| >$db_driver</VAR |
| > variable and setting it to |
| <VAR |
| CLASS="literal" |
| >Pg</VAR |
| > and changing the password in <VAR |
| CLASS="literal" |
| >$db_pass</VAR |
| > |
| to the one you picked previously, while setting up the account.</P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN529" |
| >2.2.3. checksetup.pl</A |
| ></H3 |
| ><P |
| > Next, rerun <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| >. It reconfirms |
| that all the modules are present, and notices the altered |
| localconfig file, which it assumes you have edited to your |
| satisfaction. It compiles the UI templates, |
| connects to the database using the 'bugs' |
| user you created and the password you defined, and creates the |
| 'bugs' database and the tables therein. |
| </P |
| ><P |
| > After that, it asks for details of an administrator account. Bugzilla |
| can have multiple administrators - you can create more later - but |
| it needs one to start off with. |
| Enter the email address of an administrator, his or her full name, |
| and a suitable Bugzilla password. |
| </P |
| ><P |
| > <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > will then finish. You may rerun |
| <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > at any time if you wish. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="http" |
| >2.2.4. Web server</A |
| ></H3 |
| ><P |
| > Configure your web server according to the instructions in the |
| appropriate section. (If it makes a difference in your choice, |
| the Bugzilla Team recommends Apache.) Regardless of which webserver |
| you are using, however, ensure that sensitive information is |
| not remotely available by properly applying the access controls in |
| <A |
| HREF="#security-webserver-access" |
| >Section 4.3.1</A |
| >. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="http-apache" |
| >2.2.4.1. Apache <SPAN |
| CLASS="productname" |
| >httpd</SPAN |
| ></A |
| ></H4 |
| ><P |
| > To configure your Apache web server to work with Bugzilla, |
| do the following: |
| </P |
| ><DIV |
| CLASS="procedure" |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| > Load <TT |
| CLASS="filename" |
| >httpd.conf</TT |
| > in your editor. |
| In Fedora and Red Hat Linux, this file is found in |
| <TT |
| CLASS="filename" |
| >/etc/httpd/conf</TT |
| >. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Apache uses <SAMP |
| CLASS="computeroutput" |
| ><Directory></SAMP |
| > |
| directives to permit fine-grained permission setting. Add the |
| following lines to a directive that applies to the location |
| of your Bugzilla installation. (If such a section does not |
| exist, you'll want to add one.) In this example, Bugzilla has |
| been installed at |
| <TT |
| CLASS="filename" |
| >/var/www/html/bugzilla</TT |
| >. |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > <Directory /var/www/html/bugzilla> |
| AddHandler cgi-script .cgi |
| Options +Indexes +ExecCGI |
| DirectoryIndex index.cgi |
| AllowOverride Limit |
| </Directory> |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > These instructions: allow apache to run .cgi files found |
| within the bugzilla directory; instructs the server to look |
| for a file called <TT |
| CLASS="filename" |
| >index.cgi</TT |
| > if someone |
| only types the directory name into the browser; and allows |
| Bugzilla's <TT |
| CLASS="filename" |
| >.htaccess</TT |
| > files to override |
| global permissions. |
| </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 |
| > It is possible to make these changes globally, or to the |
| directive controlling Bugzilla's parent directory (e.g. |
| <SAMP |
| CLASS="computeroutput" |
| ><Directory /var/www/html/></SAMP |
| >). |
| Such changes would also apply to the Bugzilla directory... |
| but they would also apply to many other places where they |
| may or may not be appropriate. In most cases, including |
| this one, it is better to be as restrictive as possible |
| when granting extra access. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></LI |
| ><LI |
| ><P |
| > <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > can set tighter permissions |
| on Bugzilla's files and directories if it knows what group the |
| webserver runs as. Find the <SAMP |
| CLASS="computeroutput" |
| >Group</SAMP |
| > |
| line in <TT |
| CLASS="filename" |
| >httpd.conf</TT |
| >, place the value found |
| there in the <VAR |
| CLASS="replaceable" |
| >$webservergroup</VAR |
| > variable |
| in <TT |
| CLASS="filename" |
| >localconfig</TT |
| >, then rerun |
| <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| >. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Optional: If Bugzilla does not actually reside in the webspace |
| directory, but instead has been symbolically linked there, you |
| will need to add the following to the |
| <SAMP |
| CLASS="computeroutput" |
| >Options</SAMP |
| > line of the Bugzilla |
| <SAMP |
| CLASS="computeroutput" |
| ><Directory></SAMP |
| > directive |
| (the same one as in the step above): |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > +FollowSymLinks |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > Without this directive, Apache will not follow symbolic links |
| to places outside its own directory structure, and you will be |
| unable to run Bugzilla. |
| </P |
| ></LI |
| ></OL |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="http-iis" |
| >2.2.4.2. Microsoft <SPAN |
| CLASS="productname" |
| >Internet Information Services</SPAN |
| ></A |
| ></H4 |
| ><P |
| > If you are running Bugzilla on Windows and choose to use |
| Microsoft's <SPAN |
| CLASS="productname" |
| >Internet Information Services</SPAN |
| > |
| or <SPAN |
| CLASS="productname" |
| >Personal Web Server</SPAN |
| > you will need |
| to perform a number of other configuration steps as explained below. |
| You may also want to refer to the following Microsoft Knowledge |
| Base articles: |
| <A |
| HREF="http://support.microsoft.com/default.aspx?scid=kb;en-us;245225" |
| TARGET="_top" |
| >245225</A |
| > |
| <SPAN |
| CLASS="QUOTE" |
| >"HOW TO: Configure and Test a PERL Script with IIS 4.0, |
| 5.0, and 5.1"</SPAN |
| > (for <SPAN |
| CLASS="productname" |
| >Internet Information |
| Services</SPAN |
| >) and |
| <A |
| HREF="http://support.microsoft.com/default.aspx?scid=kb;en-us;231998" |
| TARGET="_top" |
| >231998</A |
| > |
| <SPAN |
| CLASS="QUOTE" |
| >"HOW TO: FP2000: How to Use Perl with Microsoft Personal Web |
| Server on Windows 95/98"</SPAN |
| > (for <SPAN |
| CLASS="productname" |
| >Personal Web |
| Server</SPAN |
| >). |
| </P |
| ><P |
| > You will need to create a virtual directory for the Bugzilla |
| install. Put the Bugzilla files in a directory that is named |
| something <EM |
| >other</EM |
| > than what you want your |
| end-users accessing. That is, if you want your users to access |
| your Bugzilla installation through |
| <SPAN |
| CLASS="QUOTE" |
| >"http://<yourdomainname>/Bugzilla"</SPAN |
| >, then do |
| <EM |
| >not</EM |
| > put your Bugzilla files in a directory |
| named <SPAN |
| CLASS="QUOTE" |
| >"Bugzilla"</SPAN |
| >. Instead, place them in a different |
| location, and then use the IIS Administration tool to create a |
| Virtual Directory named "Bugzilla" that acts as an alias for the |
| actual location of the files. When creating that virtual directory, |
| make sure you add the <SPAN |
| CLASS="QUOTE" |
| >"Execute (such as ISAPI applications or |
| CGI)"</SPAN |
| > access permission. |
| </P |
| ><P |
| > You will also need to tell IIS how to handle Bugzilla's |
| .cgi files. Using the IIS Administration tool again, open up |
| the properties for the new virtual directory and select the |
| Configuration option to access the Script Mappings. Create an |
| entry mapping .cgi to: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > <full path to perl.exe >\perl.exe -x<full path to Bugzilla> -wT "%s" %s |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > For example: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s |
| </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 ActiveState install may have already created an entry for |
| .pl files that is limited to <SPAN |
| CLASS="QUOTE" |
| >"GET,HEAD,POST"</SPAN |
| >. If |
| so, this mapping should be <EM |
| >removed</EM |
| > as |
| Bugzilla's .pl files are not designed to be run via a webserver. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > IIS will also need to know that the index.cgi should be treated |
| as a default document. On the Documents tab page of the virtual |
| directory properties, you need to add index.cgi as a default |
| document type. If you wish, you may remove the other default |
| document types for this particular virtual directory, since Bugzilla |
| doesn't use any of them. |
| </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-webserver-access" |
| >Section 4.3.1</A |
| >. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="install-config-bugzilla" |
| >2.2.5. Bugzilla</A |
| ></H3 |
| ><P |
| > Your Bugzilla should now be working. Access |
| <TT |
| CLASS="filename" |
| >http://<your-bugzilla-server>/</TT |
| > - |
| you should see the Bugzilla |
| front page. If not, consult the Troubleshooting section, |
| <A |
| HREF="#troubleshooting" |
| >Appendix B</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 |
| > The URL above may be incorrect if you installed Bugzilla into a |
| subdirectory or used a symbolic link from your web site root to |
| the Bugzilla directory. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Log in with the administrator account you defined in the last |
| <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > run. You should go through |
| the parameters on the Edit Parameters page |
| (see link in the footer) and see if there are any you wish to |
| change. |
| They key parameters are documented in <A |
| HREF="#parameters" |
| >Section 3.1</A |
| >; |
| you should certainly alter |
| <B |
| CLASS="command" |
| >maintainer</B |
| > and <B |
| CLASS="command" |
| >urlbase</B |
| >; |
| you may also want to alter |
| <B |
| CLASS="command" |
| >cookiepath</B |
| > or <B |
| CLASS="command" |
| >requirelogin</B |
| >. |
| </P |
| ><P |
| > This would also be a good time to revisit the |
| <TT |
| CLASS="filename" |
| >localconfig</TT |
| > file and make sure that the |
| names of the priorities, severities, platforms and operating systems |
| are those you wish to use when you start creating bugs. Remember |
| to rerun <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > if you change it. |
| </P |
| ><P |
| > Bugzilla has several optional features which require extra |
| configuration. You can read about those in |
| <A |
| HREF="#extraconfig" |
| >Section 2.3</A |
| >. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="extraconfig" |
| >2.3. Optional Additional Configuration</A |
| ></H2 |
| ><P |
| > Bugzilla has a number of optional features. This section describes how |
| to configure or enable them. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN628" |
| >2.3.1. Bug Graphs</A |
| ></H3 |
| ><P |
| >If you have installed the necessary Perl modules you |
| can start collecting statistics for the nifty Bugzilla |
| graphs.</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| ><SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > <B |
| CLASS="command" |
| >crontab -e</B |
| ></PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > This should bring up the crontab file in your editor. |
| Add a cron entry like this to run |
| <TT |
| CLASS="filename" |
| >collectstats.pl</TT |
| > |
| daily at 5 after midnight: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >5 0 * * * cd <your-bugzilla-directory> ; ./collectstats.pl</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > After two days have passed you'll be able to view bug graphs from |
| the Reports page. |
| </P |
| ><P |
| > When upgrading Bugzilla, this format may change. |
| To create new status data, (re)move old data and run the following |
| commands: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >cd <your-bugzilla-directory></B |
| > |
| <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >./collectstats.pl --regenerate</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 |
| > Windows does not have 'cron', but it does have the Task |
| Scheduler, which performs the same duties. There are also |
| third-party tools that can be used to implement cron, such as |
| <A |
| HREF="http://www.nncron.ru/" |
| TARGET="_top" |
| >nncron</A |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN647" |
| >2.3.2. Dependency Charts</A |
| ></H3 |
| ><P |
| >As well as the text-based dependency trees, Bugzilla also |
| supports a graphical view of dependency relationships, 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 |
| >The easiest way to get this working is to 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. This is the default for the webdotbase param, |
| but it's often overloaded and slow. Note that AT&T's server |
| won't work |
| if Bugzilla is only accessible using HARTS. |
| <EM |
| >Editor's note: What the heck is HARTS? Google doesn't know... |
| </EM |
| > |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="installation-whining-cron" |
| >2.3.3. The Whining Cron</A |
| ></H3 |
| ><P |
| >What good are |
| bugs if they're not annoying? To help make them more so you |
| can set up Bugzilla's automatic whining system to complain at engineers |
| which leave their bugs in the NEW or REOPENED state without triaging them. |
| </P |
| ><P |
| > This can be done by adding the following command as a daily |
| crontab entry, in the same manner as explained above for bug |
| graphs. This example runs it at 12.55am. |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >55 0 * * * cd <your-bugzilla-directory> ; ./whineatnews.pl</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 |
| > Windows does not have 'cron', but it does have the Task |
| Scheduler, which performs the same duties. There are also |
| third-party tools that can be used to implement cron, such as |
| <A |
| HREF="http://www.nncron.ru/" |
| TARGET="_top" |
| >nncron</A |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="installation-whining" |
| >2.3.4. Whining</A |
| ></H3 |
| ><P |
| > As of Bugzilla 2.20, users can configure Bugzilla to regularly annoy |
| them at regular intervals, by having Bugzilla execute saved searches |
| at certain times and emailing the results to the user. This is known |
| as "Whining". The process of configuring Whining is described |
| in <A |
| HREF="#whining" |
| >Section 6.13</A |
| >, but for it to work a Perl script must be |
| executed at regular intervals. |
| </P |
| ><P |
| > This can be done by adding the following command as a daily |
| crontab entry, in the same manner as explained above for bug |
| graphs. This example runs it every 15 minutes. |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >*/15 * * * * cd <your-bugzilla-directory> ; ./whine.pl</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 |
| > Whines can be executed as often as every 15 minutes, so if you specify |
| longer intervals between executions of whine.pl, some users may not |
| be whined at as often as they would expect. Depending on the person, |
| this can either be a very Good Thing or a very Bad Thing. |
| </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 |
| > Windows does not have 'cron', but it does have the Task |
| Scheduler, which performs the same duties. There are also |
| third-party tools that can be used to implement cron, such as |
| <A |
| HREF="http://www.nncron.ru/" |
| TARGET="_top" |
| >nncron</A |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="patch-viewer" |
| >2.3.5. Patch Viewer</A |
| ></H3 |
| ><P |
| > Patch Viewer is the engine behind Bugzilla's graphical display of |
| code patches. You can integrate this with copies of the |
| <TT |
| CLASS="filename" |
| >cvs</TT |
| >, <TT |
| CLASS="filename" |
| >lxr</TT |
| > and |
| <TT |
| CLASS="filename" |
| >bonsai</TT |
| > tools if you have them, by giving |
| the locations of your installation of these tools in |
| <TT |
| CLASS="filename" |
| >editparams.cgi</TT |
| >. |
| </P |
| ><P |
| > Patch Viewer also optionally will use the |
| <TT |
| CLASS="filename" |
| >cvs</TT |
| >, <TT |
| CLASS="filename" |
| >diff</TT |
| > and |
| <TT |
| CLASS="filename" |
| >interdiff</TT |
| > |
| command-line utilities if they exist on the system. |
| Interdiff can be obtained from |
| <A |
| HREF="http://cyberelk.net/tim/patchutils/" |
| TARGET="_top" |
| >http://cyberelk.net/tim/patchutils/</A |
| >. |
| If these programs are not in the system path, you can configure |
| their locations in <TT |
| CLASS="filename" |
| >localconfig</TT |
| >. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="bzldap" |
| >2.3.6. LDAP Authentication</A |
| ></H3 |
| ><P |
| >LDAP authentication is a module for Bugzilla's plugin |
| authentication architecture. |
| </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 |
| ><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 |
| >Because the Bugzilla account is not created until the first time |
| a user logs in, a user who has not yet logged is unknown to Bugzilla. |
| This means they cannot be used as an assignee or QA contact (default or |
| otherwise), added to any cc list, or any other such operation. One |
| possible workaround is the <TT |
| CLASS="filename" |
| >bugzilla_ldapsync.rb</TT |
| > |
| script in the |
| <A |
| HREF="#gloss-contrib" |
| ><I |
| CLASS="glossterm" |
| ><TT |
| CLASS="filename" |
| >contrib</TT |
| ></I |
| ></A |
| > directory. Another possible solution is fixing |
| <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=201069" |
| TARGET="_top" |
| >bug |
| 201069</A |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| >Parameters required to use LDAP Authentication:</P |
| ><P |
| ></P |
| ><DIV |
| CLASS="variablelist" |
| ><DL |
| ><DT |
| ><A |
| NAME="param-loginmethod" |
| ></A |
| >loginmethod</DT |
| ><DD |
| ><P |
| >This parameter should be set to <SPAN |
| CLASS="QUOTE" |
| >"LDAP"</SPAN |
| > |
| <EM |
| >only</EM |
| > if you will be using an LDAP directory |
| for authentication. If you set this param to <SPAN |
| CLASS="QUOTE" |
| >"LDAP"</SPAN |
| > but |
| fail to set up the other parameters listed below you will not be |
| able to log back in to Bugzilla one you log out. If this happens |
| to you, you will need to manually edit |
| <TT |
| CLASS="filename" |
| >data/params</TT |
| > and set loginmethod to |
| <SPAN |
| CLASS="QUOTE" |
| >"DB"</SPAN |
| >. |
| </P |
| ></DD |
| ><DT |
| ><A |
| NAME="param-LDAPserver" |
| ></A |
| >LDAPserver</DT |
| ><DD |
| ><P |
| >This parameter should be set to the name (and optionally the |
| port) of your LDAP server. If no port is specified, it assumes |
| the default LDAP port of 389. |
| </P |
| ><P |
| >Ex. <SPAN |
| CLASS="QUOTE" |
| >"ldap.company.com"</SPAN |
| > |
| or <SPAN |
| CLASS="QUOTE" |
| >"ldap.company.com:3268"</SPAN |
| > |
| </P |
| ></DD |
| ><DT |
| ><A |
| NAME="param-LDAPbinddn" |
| ></A |
| >LDAPbinddn [Optional]</DT |
| ><DD |
| ><P |
| >Some LDAP servers will not allow an anonymous bind to search |
| the directory. If this is the case with your configuration you |
| should set the LDAPbinddn parameter to the user account Bugzilla |
| should use instead of the anonymous bind. |
| </P |
| ><P |
| >Ex. <SPAN |
| CLASS="QUOTE" |
| >"cn=default,cn=user:password"</SPAN |
| ></P |
| ></DD |
| ><DT |
| ><A |
| NAME="param-LDAPBaseDN" |
| ></A |
| >LDAPBaseDN</DT |
| ><DD |
| ><P |
| >The LDAPBaseDN parameter should be set to the location in |
| your LDAP tree that you would like to search for email addresses. |
| Your uids should be unique under the DN specified here. |
| </P |
| ><P |
| >Ex. <SPAN |
| CLASS="QUOTE" |
| >"ou=People,o=Company"</SPAN |
| ></P |
| ></DD |
| ><DT |
| ><A |
| NAME="param-LDAPuidattribute" |
| ></A |
| >LDAPuidattribute</DT |
| ><DD |
| ><P |
| >The LDAPuidattribute parameter should be set to the attribute |
| which contains the unique UID of your users. The value retrieved |
| from this attribute will be used when attempting to bind as the |
| user to confirm their password. |
| </P |
| ><P |
| >Ex. <SPAN |
| CLASS="QUOTE" |
| >"uid"</SPAN |
| ></P |
| ></DD |
| ><DT |
| ><A |
| NAME="param-LDAPmailattribute" |
| ></A |
| >LDAPmailattribute</DT |
| ><DD |
| ><P |
| >The LDAPmailattribute parameter should be the name of the |
| attribute which contains the email address your users will enter |
| into the Bugzilla login boxes. |
| </P |
| ><P |
| >Ex. <SPAN |
| CLASS="QUOTE" |
| >"mail"</SPAN |
| ></P |
| ></DD |
| ></DL |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="apache-addtype" |
| >2.3.7. Serving Alternate Formats with the right MIME type</A |
| ></H3 |
| ><P |
| > Some Bugzilla pages have alternate formats, other than just plain |
| <ACRONYM |
| CLASS="acronym" |
| >HTML</ACRONYM |
| >. In particular, a few Bugzilla pages can |
| output their contents as either <ACRONYM |
| CLASS="acronym" |
| >XUL</ACRONYM |
| > (a special |
| Mozilla format, that looks like a program <ACRONYM |
| CLASS="acronym" |
| >GUI</ACRONYM |
| >) |
| or <ACRONYM |
| CLASS="acronym" |
| >RDF</ACRONYM |
| > (a type of structured <ACRONYM |
| CLASS="acronym" |
| >XML</ACRONYM |
| > |
| that can be read by various programs). |
| </P |
| ><P |
| > In order for your users to see these pages correctly, Apache must |
| send them with the right <ACRONYM |
| CLASS="acronym" |
| >MIME</ACRONYM |
| > type. To do this, |
| add the following lines to your Apache configuration, either in the |
| <SAMP |
| CLASS="computeroutput" |
| ><VirtualHost></SAMP |
| > section for your |
| Bugzilla, or in the <SAMP |
| CLASS="computeroutput" |
| ><Directory></SAMP |
| > |
| section for your Bugzilla: |
| </P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| >AddType application/vnd.mozilla.xul+xml .xul |
| AddType application/rdf+xml .rdf</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="os-specific" |
| >2.4. OS-Specific Installation Notes</A |
| ></H2 |
| ><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><H3 |
| CLASS="section" |
| ><A |
| NAME="os-win32" |
| >2.4.1. Microsoft Windows</A |
| ></H3 |
| ><P |
| > Making Bugzilla work on Windows is more difficult than making it |
| work on Unix. For that reason, we still recommend doing so on a Unix |
| based system such as GNU/Linux. That said, if you do want to get |
| Bugzilla running on Windows, you will need to make the following |
| adjustments. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="win32-perl" |
| >2.4.1.1. Win32 Perl</A |
| ></H4 |
| ><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 |
| >. |
| The following instructions assume that you are using version |
| 5.8.1 of ActiveState. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="win32-perl-modules" |
| >2.4.1.2. Perl Modules on Win32</A |
| ></H4 |
| ><P |
| > Bugzilla on Windows requires the same perl modules found in |
| <A |
| HREF="#install-perlmodules" |
| >Section 2.1.5</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 install <module name></B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > The best source for the Windows PPM modules needed for Bugzilla |
| is probably the the Bugzilla Test Server (aka 'Landfill'), so |
| you should add the Landfill package repository as follows: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > <B |
| CLASS="command" |
| >ppm repository add landfill http://www.landfill.bugzilla.org/ppm/</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 PPM repository stores modules in 'packages' that may have |
| a slightly different name than the module. If retrieving these |
| modules from there, you will need to pay attention to the information |
| provided when you run <B |
| CLASS="command" |
| >checksetup.pl</B |
| > as it will |
| tell you what package you'll need to install. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="tip" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="tip" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/tip.gif" |
| HSPACE="5" |
| ALT="Tip"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > If you are behind a corporate firewall, you will need to let the |
| ActiveState PPM utility know how to get through it to acccess |
| the repositories by setting the HTTP_proxy system environmental |
| variable. For more information on setting that variable, see |
| the ActiveState documentation. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="win32-code-changes" |
| >2.4.1.3. Code changes required to run on Win32</A |
| ></H4 |
| ><P |
| > Bugzilla on Win32 is supported out of the box from version 2.20; this |
| means that no code changes are required to get Bugzilla running. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="win32-http" |
| >2.4.1.4. Serving the web pages</A |
| ></H4 |
| ><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-webserver-access" |
| >Section 4.3.1</A |
| >. More |
| information on configuring specific web servers can be found |
| in <A |
| HREF="#http" |
| >Section 2.2.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 to avoid having to modify |
| the first line of every script to contain your path to perl |
| perl instead of <TT |
| CLASS="filename" |
| >/usr/bin/perl</TT |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="win32-email" |
| >2.4.1.5. Sending Email</A |
| ></H4 |
| ><P |
| > To enable Bugzilla to send email on Windows, the server running the |
| Bugzilla code must be able to connect to, or act as, an SMTP server. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="os-macosx" |
| >2.4.2. <SPAN |
| CLASS="productname" |
| >Mac OS X</SPAN |
| ></A |
| ></H3 |
| ><P |
| >Apple did not include the GD library with Mac OS X. Bugzilla |
| needs this for bug graphs.</P |
| ><P |
| >You can install it using 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 use it to install the <TT |
| CLASS="filename" |
| >gd2</TT |
| > package. |
| </P |
| ><P |
| >It will prompt you for a number of dependencies, type 'y' and hit |
| enter to install all of the dependencies and then watch it work. You will |
| then be able to use <A |
| HREF="#gloss-cpan" |
| ><I |
| CLASS="glossterm" |
| >CPAN</I |
| ></A |
| > to |
| install the GD Perl module. |
| </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 |
| >To prevent creating conflicts with the software that Apple |
| installs by default, Fink creates its own directory tree at |
| <TT |
| CLASS="filename" |
| >/sw</TT |
| > where it installs most of |
| the software that it installs. This means your libraries and headers |
| will be at <TT |
| CLASS="filename" |
| >/sw/lib</TT |
| > and |
| <TT |
| CLASS="filename" |
| >/sw/include</TT |
| > instead of |
| <TT |
| CLASS="filename" |
| >/usr/lib</TT |
| > and |
| <TT |
| CLASS="filename" |
| >/usr/include</TT |
| >. When the |
| Perl module config script asks where your <TT |
| CLASS="filename" |
| >libgd</TT |
| > |
| is, be sure to tell it |
| <TT |
| CLASS="filename" |
| >/sw/lib</TT |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| >Also available via Fink is <TT |
| CLASS="filename" |
| >expat</TT |
| >. After using |
| fink to install the expat package you will be able to install |
| XML::Parser using CPAN. There is one caveat. Unlike recent versions of |
| the GD module, XML::Parser doesn't prompt for the location of the |
| required libraries. When using CPAN, you will need to use the following |
| command sequence: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > # perl -MCPAN -e'look XML::Parser' <A |
| NAME="macosx-look" |
| ><IMG |
| SRC="../images/callouts/1.gif" |
| HSPACE="0" |
| VSPACE="0" |
| BORDER="0" |
| ALT="(1)"></A |
| > |
| # perl Makefile.PL EXPATLIBPATH=/sw/lib EXPATINCPATH=/sw/include |
| # make; make test; make install <A |
| NAME="macosx-make" |
| ><IMG |
| SRC="../images/callouts/2.gif" |
| HSPACE="0" |
| VSPACE="0" |
| BORDER="0" |
| ALT="(2)"></A |
| > |
| # exit <A |
| NAME="macosx-exit" |
| ><IMG |
| SRC="../images/callouts/3.gif" |
| HSPACE="0" |
| VSPACE="0" |
| BORDER="0" |
| ALT="(3)"></A |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><DIV |
| CLASS="calloutlist" |
| ><DL |
| COMPACT="COMPACT" |
| ><DT |
| ><A |
| HREF="#macosx-look" |
| ><IMG |
| SRC="../images/callouts/1.gif" |
| HSPACE="0" |
| VSPACE="0" |
| BORDER="0" |
| ALT="(1)"></A |
| ><A |
| HREF="#macosx-exit" |
| ><IMG |
| SRC="../images/callouts/3.gif" |
| HSPACE="0" |
| VSPACE="0" |
| BORDER="0" |
| ALT="(3)"></A |
| ></DT |
| ><DD |
| >The look command will download the module and spawn a |
| new shell with the extracted files as the current working directory. |
| The exit command will return you to your original shell. |
| </DD |
| ><DT |
| ><A |
| HREF="#macosx-make" |
| ><IMG |
| SRC="../images/callouts/2.gif" |
| HSPACE="0" |
| VSPACE="0" |
| BORDER="0" |
| ALT="(2)"></A |
| ></DT |
| ><DD |
| >You should watch the output from these make commands, |
| especially <SPAN |
| CLASS="QUOTE" |
| >"make test"</SPAN |
| > as errors may prevent XML::Parser |
| from functioning correctly with Bugzilla. |
| </DD |
| ></DL |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="os-mandrake" |
| >2.4.3. Linux-Mandrake 8.0</A |
| ></H3 |
| ><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" |
| > <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > <B |
| CLASS="command" |
| >urpmi perl-mysql</B |
| > |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > <B |
| CLASS="command" |
| >urpmi perl-chart</B |
| > |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > <B |
| CLASS="command" |
| >urpmi perl-gd</B |
| > |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > <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 |
| > |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > <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 email integration</DD |
| ></DL |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="nonroot" |
| >2.5. UNIX (non-root) Installation Notes</A |
| ></H2 |
| ><DIV |
| CLASS="section" |
| ><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN857" |
| >2.5.1. Introduction</A |
| ></H3 |
| ><P |
| >If you are running a *NIX OS as non-root, either due |
| to lack of access (web hosts, for example) or for security |
| reasons, this will detail how to install Bugzilla on such |
| a setup. It is recommended that you read through the |
| <A |
| HREF="#installation" |
| >Section 2.1</A |
| > |
| first to get an idea on the installation steps required. |
| (These notes will reference to steps in that guide.)</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN861" |
| >2.5.2. MySQL</A |
| ></H3 |
| ><P |
| >You may have MySQL installed as root. If you're |
| setting up an account with a web host, a MySQL account |
| needs to be set up for you. From there, you can create |
| the bugs account, or use the account given to you.</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 |
| >You may have problems trying to set up |
| <B |
| CLASS="command" |
| >GRANT</B |
| > permissions to the database. |
| If you're using a web host, chances are that you have a |
| separate database which is already locked down (or one big |
| database with limited/no access to the other areas), but you |
| may want to ask your system adminstrator what the security |
| settings are set to, and/or run the <B |
| CLASS="command" |
| >GRANT</B |
| > |
| command for you.</P |
| ><P |
| >Also, you will probably not be able to change the MySQL |
| root user password (for obvious reasons), so skip that |
| step.</P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN869" |
| >2.5.2.1. Running MySQL as Non-Root</A |
| ></H4 |
| ><DIV |
| CLASS="section" |
| ><H5 |
| CLASS="section" |
| ><A |
| NAME="AEN871" |
| >2.5.2.1.1. The Custom Configuration Method</A |
| ></H5 |
| ><P |
| >Create a file .my.cnf in your |
| home directory (using /home/foo in this example) |
| as follows....</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > [mysqld] |
| datadir=/home/foo/mymysql |
| socket=/home/foo/mymysql/thesock |
| port=8081 |
| |
| [mysql] |
| socket=/home/foo/mymysql/thesock |
| port=8081 |
| |
| [mysql.server] |
| user=mysql |
| basedir=/var/lib |
| |
| [safe_mysqld] |
| err-log=/home/foo/mymysql/the.log |
| pid-file=/home/foo/mymysql/the.pid |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="AEN875" |
| >2.5.2.1.2. The Custom Built Method</A |
| ></H5 |
| ><P |
| >You can install MySQL as a not-root, if you really need to. |
| Build it with PREFIX set to <TT |
| CLASS="filename" |
| >/home/foo/mysql</TT |
| >, |
| or use pre-installed executables, specifying that you want |
| to put all of the data files in <TT |
| CLASS="filename" |
| >/home/foo/mysql/data</TT |
| >. |
| If there is another MySQL server running on the system that you |
| do not own, use the -P option to specify a TCP port that is not |
| in use.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="AEN880" |
| >2.5.2.1.3. Starting the Server</A |
| ></H5 |
| ><P |
| >After your mysqld program is built and any .my.cnf file is |
| in place, you must initialize the databases (ONCE).</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >mysql_install_db</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| >Then start the daemon with</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >safe_mysql &</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| >After you start mysqld the first time, you then connect to |
| it as "root" and <B |
| CLASS="command" |
| >GRANT</B |
| > permissions to other |
| users. (Again, the MySQL root account has nothing to do with |
| the *NIX root account.)</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 start the daemons yourself. You can either |
| ask your system administrator to add them to system startup files, or |
| add a crontab entry that runs a script to check on these daemons |
| and restart them if needed.</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 |
| >Do NOT run daemons or other services on a server without first |
| consulting your system administrator! Daemons use up system resources |
| and running one may be in violation of your terms of service for any |
| machine on which you are a user!</P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN896" |
| >2.5.3. Perl</A |
| ></H3 |
| ><P |
| >On the extremely rare chance that you don't have Perl on |
| the machine, you will have to build the sources |
| yourself. The following commands should get your system |
| installed with your own personal version of Perl:</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >wget http://perl.com/CPAN/src/stable.tar.gz</B |
| > |
| <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >tar zvxf stable.tar.gz</B |
| > |
| <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >cd perl-5.8.1</B |
| > (or whatever the version of Perl is called) |
| <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >sh Configure -de -Dprefix=/home/foo/perl</B |
| > |
| <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >make && make test && make install</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| >Once you have Perl installed into a directory (probably |
| in <TT |
| CLASS="filename" |
| >~/perl/bin</TT |
| >), you'll have to |
| change the locations on the scripts, which is detailed later on |
| this page.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="install-perlmodules-nonroot" |
| >2.5.4. Perl Modules</A |
| ></H3 |
| ><P |
| >Installing the Perl modules as a non-root user is probably the |
| hardest part of the process. There are two different methods: a |
| completely independant Perl with its own modules, or personal |
| modules using the current (root installed) version of Perl. The |
| independant method takes up quite a bit of disk space, but is |
| less complex, while the mixed method only uses as much space as the |
| modules themselves, but takes more work to setup.</P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN915" |
| >2.5.4.1. The Independant Method</A |
| ></H4 |
| ><P |
| >The independant method requires that you install your own |
| personal version of Perl, as detailed in the previous section. Once |
| installed, you can start the CPAN shell with the following |
| command:</P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >/home/foo/perl/bin/perl -MCPAN -e 'shell'</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ><P |
| >And then:</P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >cpan></SAMP |
| > |
| <B |
| CLASS="command" |
| >install Bundle::Bugzilla</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ><P |
| >With this method, module installation will usually go a lot |
| smoother, but if you have any hang-ups, you can consult the next |
| section.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN928" |
| >2.5.4.2. The Mixed Method</A |
| ></H4 |
| ><P |
| >First, you'll need to configure CPAN to |
| install modules in your home directory. The CPAN FAQ says the |
| following on this issue:</P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > 5) I am not root, how can I install a module in a personal directory? |
| |
| You will most probably like something like this: |
| |
| o conf makepl_arg "LIB=~/myperl/lib \ |
| INSTALLMAN1DIR=~/myperl/man/man1 \ |
| INSTALLMAN3DIR=~/myperl/man/man3" |
| install Sybase::Sybperl |
| |
| You can make this setting permanent like all "o conf" settings with "o conf commit". |
| |
| You will have to add ~/myperl/man to the MANPATH environment variable and also tell your Perl programs to |
| look into ~/myperl/lib, e.g. by including |
| |
| use lib "$ENV{HOME}/myperl/lib"; |
| |
| or setting the PERL5LIB environment variable. |
| |
| Another thing you should bear in mind is that the UNINST parameter should never be set if you are not root.</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ><P |
| >So, you will need to create a Perl directory in your home |
| directory, as well as the <TT |
| CLASS="filename" |
| >lib</TT |
| >, |
| <TT |
| CLASS="filename" |
| >man</TT |
| >, |
| <TT |
| CLASS="filename" |
| >man/man1</TT |
| >, and |
| <TT |
| CLASS="filename" |
| >man/man3</TT |
| > directories in that |
| Perl directory. Set the MANPATH variable and PERL5LIB variable, so |
| that the installation of the modules goes smoother. (Setting |
| UNINST=0 in your "make install" options, on the CPAN first-time |
| configuration, is also a good idea.)</P |
| ><P |
| >After that, go into the CPAN shell:</P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > |
| <B |
| CLASS="command" |
| >perl -MCPAN -e 'shell'</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ><P |
| >From there, you will need to type in the above "o conf" command |
| and commit the changes. Then you can run through the installation:</P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >cpan></SAMP |
| > |
| <B |
| CLASS="command" |
| >install Bundle::Bugzilla</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ><P |
| >Most of the module installation process should go smoothly. However, |
| you may have some problems with Template. When you first start, you will |
| want to try to install Template with the XS Stash options on. If this |
| doesn't work, it may spit out C compiler error messages and croak back |
| to the CPAN shell prompt. So, redo the install, and turn it off. (In fact, |
| say no to all of the Template questions.) It may also start failing on a |
| few of the tests. If the total tests passed is a reasonable figure (90+%), |
| force the install with the following command:</P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >cpan></SAMP |
| > |
| <B |
| CLASS="command" |
| >force install Template</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ><P |
| >You may also want to install the other optional modules:</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >cpan></SAMP |
| > |
| <B |
| CLASS="command" |
| >install GD</B |
| > |
| <SAMP |
| CLASS="prompt" |
| >cpan></SAMP |
| > |
| <B |
| CLASS="command" |
| >install Chart::Base</B |
| > |
| <SAMP |
| CLASS="prompt" |
| >cpan></SAMP |
| > |
| <B |
| CLASS="command" |
| >install MIME::Parser</B |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN961" |
| >2.5.5. HTTP Server</A |
| ></H3 |
| ><P |
| >Ideally, this also needs to be installed as root and |
| run under a special webserver account. As long as |
| the web server will allow the running of *.cgi files outside of a |
| cgi-bin, and a way of denying web access to certain files (such as a |
| .htaccess file), you should be good in this department.</P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN964" |
| >2.5.5.1. Running Apache as Non-Root</A |
| ></H4 |
| ><P |
| >You can run Apache as a non-root user, but the port will need |
| to be set to one above 1024. If you type <B |
| CLASS="command" |
| >httpd -V</B |
| >, |
| you will get a list of the variables that your system copy of httpd |
| uses. One of those, namely HTTPD_ROOT, tells you where that |
| installation looks for its config information.</P |
| ><P |
| >From there, you can copy the config files to your own home |
| directory to start editing. When you edit those and then use the -d |
| option to override the HTTPD_ROOT compiled into the web server, you |
| get control of your own customized web 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 |
| >You will need to start the daemons yourself. You can either |
| ask your system administrator to add them to system startup files, or |
| add a crontab entry that runs a script to check on these daemons |
| and restart them if needed.</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 |
| >Do NOT run daemons or other services on a server without first |
| consulting your system administrator! Daemons use up system resources |
| and running one may be in violation of your terms of service for any |
| machine on which you are a user!</P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN973" |
| >2.5.6. Bugzilla</A |
| ></H3 |
| ><P |
| >If you had to install Perl modules as a non-root user |
| (<A |
| HREF="#install-perlmodules-nonroot" |
| >Section 2.5.4</A |
| >) or to non-standard |
| directories, you will need to change the scripts, setting the correct |
| location of the Perl modules:</P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >perl -pi -e |
| 's@use strict\;@use strict\; use lib \"/home/foo/perl/lib\"\;@' |
| *cgi *pl Bug.pm processmail syncshadowdb</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| |
| Change <TT |
| CLASS="filename" |
| >/home/foo/perl/lib</TT |
| > to |
| your personal Perl library directory. You can probably skip this |
| step if you are using the independant method of Perl module |
| installation. |
| </P |
| ><P |
| >When you run <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > to create |
| the <TT |
| CLASS="filename" |
| >localconfig</TT |
| > file, it will list the Perl |
| modules it finds. If one is missing, go back and double-check the |
| module installation from the CPAN shell, then delete the |
| <TT |
| CLASS="filename" |
| >localconfig</TT |
| > file and try again.</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 one option in <TT |
| CLASS="filename" |
| >localconfig</TT |
| > you |
| might have problems with is the web server group. If you can't |
| successfully browse to the <TT |
| CLASS="filename" |
| >index.cgi</TT |
| > (like |
| a Forbidden error), you may have to relax your permissions, |
| and blank out the web server group. Of course, this may pose |
| as a security risk. Having a properly jailed shell and/or |
| limited access to shell accounts may lessen the security risk, |
| but use at your own risk.</P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="chapter" |
| ><HR><H1 |
| ><A |
| NAME="administration" |
| ></A |
| >Chapter 3. Administering Bugzilla</H1 |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="parameters" |
| >3.1. Bugzilla Configuration</A |
| ></H2 |
| ><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 |
| ><P |
| ></P |
| ><DIV |
| CLASS="variablelist" |
| ><DL |
| ><DT |
| >maintainer</DT |
| ><DD |
| ><P |
| > |
| 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 |
| ></DD |
| ><DT |
| >urlbase</DT |
| ><DD |
| ><P |
| > 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 |
| ></DD |
| ><DT |
| >makeproductgroups</DT |
| ><DD |
| ><P |
| > This dictates whether or not to automatically create groups |
| when new products are created. |
| </P |
| ></DD |
| ><DT |
| >useentrygroupdefault</DT |
| ><DD |
| ><P |
| > 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 |
| ></DD |
| ><DT |
| >maildeliverymethod</DT |
| ><DD |
| ><P |
| > This is used to specify how email is sent, or if it is sent at |
| all. There are several options included for different MTAs, |
| along with two additional options that disable email sending. |
| "testfile" does not send mail, but instead saves it in |
| <TT |
| CLASS="filename" |
| >data/mailer.testfile</TT |
| > for later review. |
| "none" disables email sending entirely. |
| </P |
| ></DD |
| ><DT |
| >shadowdb</DT |
| ><DD |
| ><P |
| > 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, on reasonably old hardware, 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 |
| ></DD |
| ><DT |
| >shutdownhtml</DT |
| ><DD |
| ><P |
| > If you need to shut down Bugzilla to perform administration, enter |
| some descriptive text (with embedded HTML codes, if you'd like) |
| into this box. Anyone who tries to use Bugzilla (including admins) |
| will receive a page displaying this text. Users can neither log in |
| nor log out while shutdownhtml is enabled. |
| </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 |
| > Although regular log-in capability is disabled while 'shutdownhtml' |
| is enabled, safeguards are in place to protect the unfortunate |
| admin who loses connection to Bugzilla. Should this happen to you, |
| go directly to the <TT |
| CLASS="filename" |
| >editparams.cgi</TT |
| > (by typing |
| the URL in manually, if necessary). Doing this will prompt you to |
| log in, and your name/password will be accepted here (but nowhere |
| else). |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DD |
| ><DT |
| >passwordmail</DT |
| ><DD |
| ><P |
| > 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 |
| ></DD |
| ><DT |
| >movebugs</DT |
| ><DD |
| ><P |
| > 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 |
| ></DD |
| ><DT |
| >useqacontact</DT |
| ><DD |
| ><P |
| > This allows you to define an email address for each component, |
| in addition to that of the default assignee, who will be sent |
| carbon copies of incoming bugs. |
| </P |
| ></DD |
| ><DT |
| >usestatuswhiteboard</DT |
| ><DD |
| ><P |
| > 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 |
| ></DD |
| ><DT |
| >whinedays</DT |
| ><DD |
| ><P |
| > 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 |
| ></DD |
| ><DT |
| >commenton*</DT |
| ><DD |
| ><P |
| > 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. |
| </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 |
| > 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 |
| ></DD |
| ><DT |
| >supportwatchers</DT |
| ><DD |
| ><P |
| > Turning on this option allows users to ask to receive copies |
| of bug mail sent to another user. Watching a user with |
| different group permissions is not a way to 'get around' the |
| system; copied emails are still subject to the normal groupset |
| permissions of a bug, and <SPAN |
| CLASS="QUOTE" |
| >"watchers"</SPAN |
| > will only be |
| copied on emails from bugs they would normally be allowed to view. |
| </P |
| ></DD |
| ><DT |
| >noresolveonopenblockers</DT |
| ><DD |
| ><P |
| > This option will prevent users from resolving bugs as FIXED if |
| they have unresolved dependencies. Only the FIXED resolution |
| is affected. Users will be still able to resolve bugs to |
| resolutions other than FIXED if they have unresolved dependent |
| bugs. |
| </P |
| ></DD |
| ></DL |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="useradmin" |
| >3.2. User Administration</A |
| ></H2 |
| ><DIV |
| CLASS="section" |
| ><H3 |
| CLASS="section" |
| ><A |
| NAME="defaultuser" |
| >3.2.1. Creating the Default User</A |
| ></H3 |
| ><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><H3 |
| CLASS="section" |
| ><A |
| NAME="manageusers" |
| >3.2.2. Managing Other Users</A |
| ></H3 |
| ><DIV |
| CLASS="section" |
| ><H4 |
| CLASS="section" |
| ><A |
| NAME="createnewusers" |
| >3.2.2.1. Creating new users</A |
| ></H4 |
| ><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><H4 |
| CLASS="section" |
| ><A |
| NAME="modifyusers" |
| >3.2.2.2. Modifying Users</A |
| ></H4 |
| ><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. |
| </P |
| ><P |
| > Users with disabled accounts will continue to receive |
| mail from Bugzilla; furthermore, they will not be able |
| to log in themselves to change their own preferences and |
| stop it. If you want an account (disabled or active) to |
| stop receiving mail, add the account name (one account |
| per line) to the file <TT |
| CLASS="filename" |
| >data/nomail</TT |
| >. |
| </P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > Even users whose accounts have been disabled can still |
| submit bugs via the e-mail gateway, if one exists. |
| The e-mail gateway should <EM |
| >not</EM |
| > be |
| enabled for secure installations of Bugzilla. |
| </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 |
| > Don't disable all the administrator accounts! |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></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><H2 |
| CLASS="section" |
| ><A |
| NAME="products" |
| >3.3. Products</A |
| ></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" |
| >3.4. Components</A |
| ></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 default assignee and (if you turned it on in the parameters), |
| a QA Contact. The default assignee 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 Assignee, QA Contact, and Reporter |
| will get email when new bugs are created in this Component and when |
| these bugs change. Default Assignee 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 "Default Assignee" and "Default QA Contact" (if enabled.) |
| The Component and Description fields may contain HTML; |
| the "Default Assignee" 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" |
| >3.5. Versions</A |
| ></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 earliest version known to have |
| 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" |
| >3.6. Milestones</A |
| ></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 (-32768 to 32767) 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 |
| ></LI |
| ></OL |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="flags-overview" |
| >3.7. Flags</A |
| ></H2 |
| ><P |
| > Flags are a way to attach a specific status to a bug or attachment, |
| either <SPAN |
| CLASS="QUOTE" |
| >"+"</SPAN |
| > or <SPAN |
| CLASS="QUOTE" |
| >"-"</SPAN |
| >. The meaning of these symbols depends on the text |
| the flag itself, but contextually they could mean pass/fail, |
| accept/reject, approved/denied, or even a simple yes/no. If your site |
| allows requestable flags, then users may set a flag to <SPAN |
| CLASS="QUOTE" |
| >"?"</SPAN |
| > as a |
| request to another user that they look at the bug/attachment, and set |
| the flag to its correct status. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="flags-simpleexample" |
| >3.7.1. A Simple Example</A |
| ></H3 |
| ><P |
| > A developer might want to ask their manager, |
| <SPAN |
| CLASS="QUOTE" |
| >"Should we fix this bug before we release version 2.0?"</SPAN |
| > |
| They might want to do this for a <EM |
| >lot</EM |
| > of bugs, |
| so it would be nice to streamline the process... |
| </P |
| ><P |
| > In Bugzilla, it would work this way: |
| <P |
| ></P |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| > The Bugzilla administrator creates a flag type called |
| <SPAN |
| CLASS="QUOTE" |
| >"blocking2.0"</SPAN |
| > that shows up on all bugs in |
| your product. |
| </P |
| ><P |
| > It shows up on the <SPAN |
| CLASS="QUOTE" |
| >"Show Bug"</SPAN |
| > screen |
| as the text <SPAN |
| CLASS="QUOTE" |
| >"blocking2.0"</SPAN |
| > with a drop-down box next |
| to it. The drop-down box contains four values: an empty space, |
| <SPAN |
| CLASS="QUOTE" |
| >"?"</SPAN |
| >, <SPAN |
| CLASS="QUOTE" |
| >"-"</SPAN |
| >, and <SPAN |
| CLASS="QUOTE" |
| >"+"</SPAN |
| >. |
| </P |
| ></LI |
| ><LI |
| ><P |
| >The developer sets the flag to <SPAN |
| CLASS="QUOTE" |
| >"?"</SPAN |
| >.</P |
| ></LI |
| ><LI |
| ><P |
| > The manager sees the <SAMP |
| CLASS="computeroutput" |
| >blocking2.0</SAMP |
| > |
| flag with a <SPAN |
| CLASS="QUOTE" |
| >"?"</SPAN |
| > value. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > If the manager thinks the feature should go into the product |
| before version 2.0 can be released, he sets the flag to |
| <SPAN |
| CLASS="QUOTE" |
| >"+"</SPAN |
| >. Otherwise, he sets it to <SPAN |
| CLASS="QUOTE" |
| >"-"</SPAN |
| >. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Now, every Bugzilla user who looks at the bug knows whether or |
| not the bug needs to be fixed before release of version 2.0. |
| </P |
| ></LI |
| ></OL |
| > |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="flags-about" |
| >3.7.2. About Flags</A |
| ></H3 |
| ><DIV |
| CLASS="section" |
| ><H4 |
| CLASS="section" |
| ><A |
| NAME="flag-values" |
| >3.7.2.1. Values</A |
| ></H4 |
| ><P |
| > Flags can have three values: |
| <P |
| ></P |
| ><DIV |
| CLASS="variablelist" |
| ><DL |
| ><DT |
| ><SAMP |
| CLASS="computeroutput" |
| >?</SAMP |
| ></DT |
| ><DD |
| ><P |
| > A user is requesting that a status be set. (Think of it as 'A question is being asked'.) |
| </P |
| ></DD |
| ><DT |
| ><SAMP |
| CLASS="computeroutput" |
| >-</SAMP |
| ></DT |
| ><DD |
| ><P |
| > The status has been set negatively. (The question has been answered <SPAN |
| CLASS="QUOTE" |
| >"no"</SPAN |
| >.) |
| </P |
| ></DD |
| ><DT |
| ><SAMP |
| CLASS="computeroutput" |
| >+</SAMP |
| ></DT |
| ><DD |
| ><P |
| > The status has been set positively. |
| (The question has been answered <SPAN |
| CLASS="QUOTE" |
| >"yes"</SPAN |
| >.) |
| </P |
| ></DD |
| ></DL |
| ></DIV |
| > |
| </P |
| ><P |
| > Actually, there's a fourth value a flag can have -- |
| <SPAN |
| CLASS="QUOTE" |
| >"unset"</SPAN |
| > -- which shows up as a blank space. This |
| just means that nobody has expressed an opinion (or asked |
| someone else to express an opinion) about this bug or attachment. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="flag-askto" |
| >3.7.3. Using flag requests</A |
| ></H3 |
| ><P |
| > If a flag has been defined as 'requestable', |
| users are allowed to set the flag's status to <SPAN |
| CLASS="QUOTE" |
| >"?"</SPAN |
| >. |
| This status indicates that someone (aka <SPAN |
| CLASS="QUOTE" |
| >"the requester"</SPAN |
| > is asking |
| for someone else to set the flag to either <SPAN |
| CLASS="QUOTE" |
| >"+"</SPAN |
| > or <SPAN |
| CLASS="QUOTE" |
| >"-"</SPAN |
| >. |
| </P |
| ><P |
| > If a flag has been defined as 'specifically requestable', |
| a text box will appear next to the flag into which the requester may |
| enter a Bugzilla username. That named person (aka <SPAN |
| CLASS="QUOTE" |
| >"the requestee"</SPAN |
| >) |
| will receive an email notifying them of the request, and pointing them |
| to the bug/attachment in question. |
| </P |
| ><P |
| > If a flag has <EM |
| >not</EM |
| > been defined as 'specifically requestable', |
| then no such text-box will appear. A request to set this flag cannot be made of |
| any specific individual, but must be asked <SPAN |
| CLASS="QUOTE" |
| >"to the wind"</SPAN |
| >. |
| A requester may <SPAN |
| CLASS="QUOTE" |
| >"ask the wind"</SPAN |
| > on any flag simply by leaving the text-box blank. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="flag-types" |
| >3.7.4. Two Types of Flags</A |
| ></H3 |
| ><P |
| > Flags can go in two places: on an attachment, or on a bug. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="flag-type-attachment" |
| >3.7.4.1. Attachment Flags</A |
| ></H4 |
| ><P |
| > Attachment flags are used to ask a question about a specific |
| attachment on a bug. |
| </P |
| ><P |
| > Many Bugzilla installations use this to |
| request that one developer <SPAN |
| CLASS="QUOTE" |
| >"review"</SPAN |
| > another |
| developer's code before they check it in. They attach the code to |
| a bug report, and then set a flag on that attachment called |
| <SPAN |
| CLASS="QUOTE" |
| >"review"</SPAN |
| > to |
| <SAMP |
| CLASS="computeroutput" |
| >review?boss@domain.com</SAMP |
| >. |
| boss@domain.com is then notified by email that |
| he has to check out that attachment and approve it or deny it. |
| </P |
| ><P |
| > For a Bugzilla user, attachment flags show up in two |
| places: |
| <P |
| ></P |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| > On the list of attachments in the <SPAN |
| CLASS="QUOTE" |
| >"Show Bug"</SPAN |
| > |
| screen, you can see the current state of any flags that |
| have been set to ?, +, or -. You can see who asked about |
| the flag (the requester), and who is being asked (the |
| requestee). |
| </P |
| ></LI |
| ><LI |
| ><P |
| > When you <SPAN |
| CLASS="QUOTE" |
| >"Edit"</SPAN |
| > an attachment, you can |
| see any settable flag, along with any flags that have |
| already been set. This <SPAN |
| CLASS="QUOTE" |
| >"Edit Attachment"</SPAN |
| > |
| screen is where you set flags to ?, -, +, or unset them. |
| </P |
| ></LI |
| ></OL |
| > |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="flag-type-bug" |
| >3.7.4.2. Bug Flags</A |
| ></H4 |
| ><P |
| > Bug flags are used to set a status on the bug itself. You can |
| see Bug Flags in the <SPAN |
| CLASS="QUOTE" |
| >"Show Bug"</SPAN |
| > screen |
| (<TT |
| CLASS="filename" |
| >editbug.cgi</TT |
| >). |
| </P |
| ><P |
| > Only users with the ability to edit the bug may |
| set flags on bugs. This includes the assignee, reporter, and |
| any user with the <SAMP |
| CLASS="computeroutput" |
| >editbugs</SAMP |
| > |
| permission. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="flags-admin" |
| >3.7.5. Administering Flags</A |
| ></H3 |
| ><P |
| > If you have the <SPAN |
| CLASS="QUOTE" |
| >"editcomponents"</SPAN |
| > permission, you will |
| have <SPAN |
| CLASS="QUOTE" |
| >"Edit: ... | Flags | ..."</SPAN |
| > in your page footer. |
| Clicking on that link will bring you to the <SPAN |
| CLASS="QUOTE" |
| >"Administer |
| Flag Types"</SPAN |
| > page. Here, you can select whether you want |
| to create (or edit) a Bug flag, or an Attachment flag. |
| </P |
| ><P |
| > No matter which you choose, the interface is the same, so we'll |
| just go over it once. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="flags-create" |
| >3.7.5.1. Creating a Flag</A |
| ></H4 |
| ><P |
| > When you click on the <SPAN |
| CLASS="QUOTE" |
| >"Create a Flag Type for..."</SPAN |
| > |
| link, you will be presented with a form. Here is what the fields in |
| the form mean: |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-name" |
| >3.7.5.1.1. Name</A |
| ></H5 |
| ><P |
| > This is the name of the flag. This will be displayed |
| to Bugzilla users who are looking at or setting the flag. |
| The name may consist of any valid Unicode character. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-description" |
| >3.7.5.1.2. Description</A |
| ></H5 |
| ><P |
| > This describes the flag in more detail. At present, this doesn't |
| show up anywhere helpful; ideally, it would be nice to have |
| it show up as a tooltip. This field |
| can be as long as you like, and can contain any character you want. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-category" |
| >3.7.5.1.3. Category</A |
| ></H5 |
| ><P |
| > Default behaviour for a newly-created flag is to appear on |
| products and all components, which is why <SPAN |
| CLASS="QUOTE" |
| >"__Any__:__Any__"</SPAN |
| > |
| is already entered in the <SPAN |
| CLASS="QUOTE" |
| >"Inclusions"</SPAN |
| > box. |
| If this is not your desired behaviour, you must either set some |
| exclusions (for products on which you don't want the flag to appear), |
| or you must remove <SPAN |
| CLASS="QUOTE" |
| >"__Any__:__Any__"</SPAN |
| > from the Inclusions box |
| and define products/components specifically for this flag. |
| </P |
| ><P |
| > To create an Inclusion, select a Product from the top drop-down box. |
| You may also select a specific component from the bottom drop-down box. |
| (Setting <SPAN |
| CLASS="QUOTE" |
| >"__Any__"</SPAN |
| > for Product translates to, |
| <SPAN |
| CLASS="QUOTE" |
| >"all the products in this Bugzilla"</SPAN |
| >. |
| Selecting <SPAN |
| CLASS="QUOTE" |
| >"__Any__"</SPAN |
| > in the Component field means |
| <SPAN |
| CLASS="QUOTE" |
| >"all components in the selected product."</SPAN |
| >) |
| Selections made, press <SPAN |
| CLASS="QUOTE" |
| >"Include"</SPAN |
| >, and your |
| Product/Component pairing will show up in the <SPAN |
| CLASS="QUOTE" |
| >"Inclusions"</SPAN |
| > box on the right. |
| </P |
| ><P |
| > To create an Exclusion, the process is the same; select a Product from the |
| top drop-down box, select a specific component if you want one, and press |
| <SPAN |
| CLASS="QUOTE" |
| >"Exclude"</SPAN |
| >. The Product/Component pairing will show up in the |
| <SPAN |
| CLASS="QUOTE" |
| >"Exclusions"</SPAN |
| > box on the right. |
| </P |
| ><P |
| > This flag <EM |
| >will</EM |
| > and <EM |
| >can</EM |
| > be set for any |
| products/components that appearing in the <SPAN |
| CLASS="QUOTE" |
| >"Inclusions"</SPAN |
| > box |
| (or which fall under the appropriate <SPAN |
| CLASS="QUOTE" |
| >"__Any__"</SPAN |
| >). |
| This flag <EM |
| >will not</EM |
| > appear (and therefore cannot be set) on |
| any products appearing in the <SPAN |
| CLASS="QUOTE" |
| >"Exclusions"</SPAN |
| > box. |
| <EM |
| > IMPORTANT: Exclusions override inclusions.</EM |
| > |
| </P |
| ><P |
| > You may select a Product without selecting a specific Component, |
| but it is illegal to select a Component without a Product, or to select a |
| Component that does not belong to the named Product. Doing so as of |
| this writing (2.18rc3) will raise an error... even if all your products |
| have a component by that name. |
| </P |
| ><P |
| ><EM |
| >Example:</EM |
| > Let's say you have a product called |
| <SPAN |
| CLASS="QUOTE" |
| >"Jet Plane"</SPAN |
| > that has thousands of components. You want |
| to be able to ask if a problem should be fixed in the next model of |
| plane you release. We'll call the flag <SPAN |
| CLASS="QUOTE" |
| >"fixInNext"</SPAN |
| >. |
| But, there's one component in <SPAN |
| CLASS="QUOTE" |
| >"Jet Plane,"</SPAN |
| > |
| called <SPAN |
| CLASS="QUOTE" |
| >"Pilot."</SPAN |
| > It doesn't make sense to release a |
| new pilot, so you don't want to have the flag show up in that component. |
| So, you include <SPAN |
| CLASS="QUOTE" |
| >"Jet Plane:__Any__"</SPAN |
| > and you exclude |
| <SPAN |
| CLASS="QUOTE" |
| >"Jet Plane:Pilot"</SPAN |
| >. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-sortkey" |
| >3.7.5.1.4. Sort Key</A |
| ></H5 |
| ><P |
| > Flags normally show up in alphabetical order. If you want them to |
| show up in a different order, you can use this key set the order on each flag. |
| Flags with a lower sort key will appear before flags with a higher |
| sort key. Flags that have the same sort key will be sorted alphabetically, |
| but they will still be after flags with a lower sort key, and before flags |
| with a higher sort key. |
| </P |
| ><P |
| > <EM |
| >Example:</EM |
| > I have AFlag (Sort Key 100), BFlag (Sort Key 10), |
| CFlag (Sort Key 10), and DFlag (Sort Key 1). These show up in |
| the order: DFlag, BFlag, CFlag, AFlag. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-active" |
| >3.7.5.1.5. Active</A |
| ></H5 |
| ><P |
| > Sometimes, you might want to keep old flag information in the |
| Bugzilla database, but stop users from setting any new flags of this type. |
| To do this, uncheck <SPAN |
| CLASS="QUOTE" |
| >"active"</SPAN |
| >. Deactivated |
| flags will still show up in the UI if they are ?, +, or -, but they |
| may only be cleared (unset), and cannot be changed to a new value. |
| Once a deactivated flag is cleared, it will completely disappear from a |
| bug/attachment, and cannot be set again. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-requestable" |
| >3.7.5.1.6. Requestable</A |
| ></H5 |
| ><P |
| > New flags are, by default, <SPAN |
| CLASS="QUOTE" |
| >"requestable"</SPAN |
| >, meaning that they |
| offer users the <SPAN |
| CLASS="QUOTE" |
| >"?"</SPAN |
| > option, as well as <SPAN |
| CLASS="QUOTE" |
| >"+"</SPAN |
| > |
| and <SPAN |
| CLASS="QUOTE" |
| >"-"</SPAN |
| >. |
| To remove the ? option, uncheck <SPAN |
| CLASS="QUOTE" |
| >"requestable"</SPAN |
| >. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-cclist" |
| >3.7.5.1.7. CC List</A |
| ></H5 |
| ><P |
| > If you want certain users to be notified every time this flag is |
| set to ?, -, +, or unset, add them here. This is a comma-separated |
| list of email addresses that need not be restricted to Bugzilla usernames.. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-specific" |
| >3.7.5.1.8. Specifically Requestable</A |
| ></H5 |
| ><P |
| > By default this box is checked for new flags, meaning that users may make |
| flag requests of specific individuals. Unchecking this box will remove the |
| text box next to a flag; if it is still requestable, then requests may |
| only be made <SPAN |
| CLASS="QUOTE" |
| >"to the wind."</SPAN |
| > Removing this after specific |
| requests have been made will not remove those requests; that data will |
| stay in the database (though it will no longer appear to the user). |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H5 |
| CLASS="section" |
| ><A |
| NAME="flags-create-field-multiplicable" |
| >3.7.5.1.9. Multiplicable</A |
| ></H5 |
| ><P |
| > Any flag with <SPAN |
| CLASS="QUOTE" |
| >"Multiplicable"</SPAN |
| > set (default for new flags is 'on') |
| may be set more than once. After being set once, an unset flag |
| of the same type will appear below it with <SPAN |
| CLASS="QUOTE" |
| >"addl."</SPAN |
| > (short for |
| <SPAN |
| CLASS="QUOTE" |
| >"additional"</SPAN |
| >) before the name. There is no limit to the number of |
| times a Multiplicable flags may be set on the same bug/attachment. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="flags-delete" |
| >3.7.5.2. Deleting a Flag</A |
| ></H4 |
| ><P |
| > When you are at the <SPAN |
| CLASS="QUOTE" |
| >"Administer Flag Types"</SPAN |
| > screen, |
| you will be presented with a list of Bug flags and a list of Attachment |
| Flags. |
| </P |
| ><P |
| > To delete a flag, click on the <SPAN |
| CLASS="QUOTE" |
| >"Delete"</SPAN |
| > link next to |
| the flag description. |
| </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 |
| > Once you delete a flag, it is <EM |
| >gone</EM |
| > from |
| your Bugzilla. All the data for that flag will be deleted. |
| Everywhere that flag was set, it will disappear, |
| and you cannot get that data back. If you want to keep flag data, |
| but don't want anybody to set any new flags or change current flags, |
| unset <SPAN |
| CLASS="QUOTE" |
| >"active"</SPAN |
| > in the flag Edit form. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="flags-edit" |
| >3.7.5.3. Editing a Flag</A |
| ></H4 |
| ><P |
| > To edit a flag's properties, just click on the <SPAN |
| CLASS="QUOTE" |
| >"Edit"</SPAN |
| > |
| link next to the flag's description. That will take you to the same |
| form described in the <SPAN |
| CLASS="QUOTE" |
| >"Creating a Flag"</SPAN |
| > section. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="voting" |
| >3.8. Voting</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="quips" |
| >3.9. Quips</A |
| ></H2 |
| ><P |
| > Quips are small text messages that can be configured to appear |
| next to search results. A Bugzilla installation can have its own specific |
| quips. Whenever a quip needs to be displayed, a random selection |
| is made from the pool of already existing quips. |
| </P |
| ><P |
| > Quips are controlled by the <EM |
| >enablequips</EM |
| > parameter. |
| It has several possible values: on, approved, frozen or off. |
| In order to enable quips approval you need to set this parameter |
| to "approved". In this way, users are free to submit quips for |
| addition but an administrator must explicitly approve them before |
| they are actually used. |
| </P |
| ><P |
| > In order to see the user interface for the quips, it is enough to click |
| on a quip when it is displayed together with the search results. Or |
| it can be seen directly in the browser by visiting the quips.cgi URL |
| (prefixed with the usual web location of the Bugzilla installation). |
| Once the quip interface is displayed, it is enough to click the |
| "view and edit the whole quip list" in order to see the administration |
| page. A page with all the quips available in the database will |
| be displayed. |
| </P |
| ><P |
| > Next to each tip there is a checkbox, under the |
| "Approved" column. Quips who have this checkbox checked are |
| already approved and will appear next to the search results. |
| The ones that have it unchecked are still preserved in the |
| database but they will not appear on search results pages. |
| User submitted quips have initially the checkbox unchecked. |
| </P |
| ><P |
| > Also, there is a delete link next to each quip, |
| which can be used in order to permanently delete a quip. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="groups" |
| >3.10. Groups and Group Security</A |
| ></H2 |
| ><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. It is primarily available for backward |
| compatibility with older sites. |
| </P |
| ><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 |
| 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 |
| > By default, bugs can also be seen by the Assignee, the Reporter, and |
| by everyone on the CC List, regardless of whether or not the bug would |
| typically be viewable by them. Visibility to the Reporter and CC List can |
| be overridden (on a per-bug basis) by bringing up the bug, finding the |
| section that starts with <SPAN |
| CLASS="QUOTE" |
| >"Users in the roles selected below..."</SPAN |
| > |
| and un-checking the box next to either 'Reporter' or 'CC List' (or both). |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN1438" |
| >3.10.1. Creating Groups</A |
| ></H3 |
| ><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 |
| ><P |
| >Users whose email addresses match the regular expression |
| will automatically be members of the group as long as their |
| email addresses continue to match the regular expression.</P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >This is a change from 2.16 where the regular expression |
| resulted in a user acquiring permanent membership in a group. |
| To remove a user from a group the user was in due to a regular |
| expression in version 2.16 or earlier, the user must be explicitly |
| removed from the group. This can easily be done by pressing |
| buttons named 'Remove Memberships' or 'Remove Memberships |
| included in regular expression' under the table.</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 |
| >If specifying a domain in the regexp, make sure you end |
| the regexp with a $. Otherwise, when granting access to |
| "@mycompany\.com", you will allow access to |
| 'badperson@mycompany.com.cracker.net'. You need to use |
| '@mycompany\.com$' as the regexp.</P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></LI |
| ><LI |
| ><P |
| >If you plan to use this group to directly control |
| access to bugs, check the "use for bugs" box. Groups |
| not used for bugs are still useful because other groups |
| can include the group as a whole.</P |
| ></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 |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN1465" |
| >3.10.2. Assigning Users to Groups</A |
| ></H3 |
| ><P |
| >Users can become a member of a group in several ways.</P |
| ><P |
| ></P |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| >The user can be explicitly placed in the group by editing |
| the user's own profile</P |
| ></LI |
| ><LI |
| ><P |
| >The group can include another group of which the user is |
| a member.</P |
| ></LI |
| ><LI |
| ><P |
| >The user's email address can match a regular expression |
| that the group specifies to automatically grant membership to |
| the group.</P |
| ></LI |
| ></OL |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN1475" |
| >3.10.3. Assigning Group Controls to Products</A |
| ></H3 |
| ><P |
| > On the product edit page, there is a page to edit the |
| <SPAN |
| CLASS="QUOTE" |
| >"Group Controls"</SPAN |
| > |
| for a product. This allows you to |
| configure how a group relates to the product. |
| Groups may be applicable, default, |
| and mandatory as well as used to control entry |
| or used to make bugs in the product |
| totally read-only unless the 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 |
| >These controls are often described in this order, so a |
| product that requires a user to be a member of group "foo" |
| to enter a bug and then requires that the bug stay restricted |
| to group "foo" at all times and that only members of group "foo" |
| can edit the bug even if they otherwise could see the bug would |
| have its controls summarized by...</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > |
| foo: ENTRY, MANDATORY/MANDATORY, CANEDIT |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN1493" |
| >3.10.4. Common Applications of Group Controls</A |
| ></H3 |
| ><DIV |
| CLASS="section" |
| ><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN1495" |
| >3.10.4.1. General User Access With Security Group</A |
| ></H4 |
| ><P |
| >To permit any user to file bugs in each product (A, B, C...) |
| and to permit any user to submit those bugs into a security |
| group....</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > |
| Product A... |
| security: SHOWN/SHOWN |
| Product B... |
| security: SHOWN/SHOWN |
| Product C... |
| security: SHOWN/SHOWN |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN1499" |
| >3.10.4.2. General User Access With A Security Product</A |
| ></H4 |
| ><P |
| >To permit any user to file bugs in a Security product |
| while keeping those bugs from becoming visible to anyone |
| outside the securityworkers group unless a member of the |
| securityworkers group removes that restriction....</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > |
| Product Security... |
| securityworkers: DEFAULT/MANDATORY |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN1503" |
| >3.10.4.3. Product Isolation With Common Group</A |
| ></H4 |
| ><P |
| >To permit users of product A to access the bugs for |
| product A, users of product B to access product B, and support |
| staff to access both, 3 groups are needed</P |
| ><P |
| ></P |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| >Support: Contains members of the support staff.</P |
| ></LI |
| ><LI |
| ><P |
| >AccessA: Contains users of product A and the Support group.</P |
| ></LI |
| ><LI |
| ><P |
| >AccessB: Contains users of product B and the Support group.</P |
| ></LI |
| ></OL |
| ><P |
| >Once these 3 groups are defined, the products group controls |
| can be set to..</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > Product A... |
| AccessA: ENTRY, MANDATORY/MANDATORY |
| Product B... |
| AccessB: ENTRY, MANDATORY/MANDATORY |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| >Optionally, the support group could be permitted to make |
| bugs inaccessible to the users and could be permitted to publish |
| bugs relevant to all users in a common product that is read-only |
| to anyone outside the support group. That configuration could |
| be...</P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > Product A... |
| AccessA: ENTRY, MANDATORY/MANDATORY |
| Support: SHOWN/NA |
| Product B... |
| AccessB: ENTRY, MANDATORY/MANDATORY |
| Support: SHOWN/NA |
| Product Common... |
| Support: ENTRY, DEFAULT/MANDATORY, CANEDIT |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="upgrading" |
| >3.11. Upgrading to New Releases</A |
| ></H2 |
| ><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 local changes (if any) have been made |
| </P |
| ></LI |
| ></UL |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="upgrading-version-defns" |
| >3.11.1. Version Definitions</A |
| ></H3 |
| ><P |
| > Bugzilla displays the version you are using at the top of most |
| pages you load. It will look something like '2.16.7' or '2.18rc3' |
| or '2.19.1+'. The first number in this series is the Major Version. |
| This does not change very often (that is to say, almost never); |
| Bugzilla was 1.x.x when it was first created, and went to 2.x.x |
| when it was re-written in perl in Sept 1998. If/When the major version |
| is changed to 3.x.x, it will signify a significant structural change |
| and will be accompanied by much fanfare and many instructions on |
| how to upgrade, including a revision to this page. :) |
| </P |
| ><P |
| > The second number in the version is called the 'minor number', and |
| a release that changes the minor number is called a 'point release'. |
| An even number in this position (2.14, 2.16, 2.18, 2.20, etc.) |
| represents a stable version, while an odd number (2.17, 2.19, etc.) |
| represents a development version. In the past, stable point releases |
| were feature-based, coming when certain enhancements had been |
| completed, or the Bugzilla development team felt that enough |
| progress had been made overall. As of version 2.18, however, |
| Bugzilla has moved to a time-based release schedule; current plans |
| are to create a stable point release every 6 months or so after |
| 2.18 is deployed. |
| </P |
| ><P |
| > The third number in the Bugzilla version represents a bugfix version. |
| Bugfix Revisions are normally released only to address security |
| vulnerabilities; in the future, it is likely that the Bugzilla |
| development team will back-port bugfixes in a new point release to |
| the old point release for a limited period. Once enough of these |
| bugfixes have accumulated (or a new security vulnerability is |
| identified and closed), a bugfix release will be made. As an |
| example, 2.16.6 was a bugfix release, and improved on 2.16.5. |
| </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 |
| > When reading version numbers, everything separated by a point ('.') |
| should be read as a single number. It is <EM |
| >not</EM |
| > |
| the same as decimal. 2.14 is newer than 2.8 because minor version |
| 14 is greater than minor version 8. 2.24.11 would be newer than |
| 2.24.9 (because bugfix 11 is greater than bugfix 9. This is |
| confusing to some people who aren't used to dealing with software. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="upgrading-methods" |
| >3.11.2. Upgrading - Methods and Procedure</A |
| ></H3 |
| ><P |
| > There are three different ways to upgrade your installation. |
| </P |
| ><P |
| ></P |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| > Using CVS (<A |
| HREF="#upgrade-cvs" |
| >Section 3.11.2.1</A |
| >) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Downloading a new tarball (<A |
| HREF="#upgrade-tarball" |
| >Section 3.11.2.2</A |
| >) |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Applying the relevant patches (<A |
| HREF="#upgrade-patches" |
| >Section 3.11.2.3</A |
| >) |
| </P |
| ></LI |
| ></OL |
| ><P |
| > Each of these options has its own pros and cons; the one that's |
| right for you depends on how long it has been since you last |
| installed, the degree to which you have customized your installation, |
| and/or your network configuration. (Some discussion of the various |
| methods of updating compared with degree and methods of local |
| customization can be found in <A |
| HREF="#template-method" |
| >Section 5.1.2</A |
| >.) |
| </P |
| ><P |
| > The larger the jump you are trying to make, the more difficult it |
| is going to be to upgrade if you have made local customizations. |
| Upgrading from 2.18 to 2.18.1 should be fairly painless even if |
| you are heavily customized, but going from 2.14 to 2.18 is going |
| to mean a fair bit of work re-writing your local changes to use |
| the new files, logic, templates, etc. If you have done no local |
| changes at all, however, then upgrading should be approximately |
| the same amount of work regardless of how long it has been since |
| your version was released. |
| </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 |
| > Upgrading is a one-way process. You should backup your database |
| and current Bugzilla directory before attempting the upgrade. If |
| you wish to revert to the old Bugzilla version for any reason, you |
| will have to restore from these backups. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > The examples in the following sections are written as though the |
| user were updating to version 2.18.1, but the procedures are the |
| same regardless of whether one is updating to a new point release |
| or simply trying to obtain a new bugfix release. Also, in the |
| examples the user's Bugzilla installation is found at |
| <TT |
| CLASS="filename" |
| >/var/www/html/bugzilla</TT |
| >. If that is not the |
| same as the location of your Bugzilla installation, simply |
| substitute the proper paths where appropriate. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="upgrade-cvs" |
| >3.11.2.1. Upgrading using CVS</A |
| ></H4 |
| ><P |
| > Every release of Bugzilla, whether it is a point release or a bugfix, |
| is tagged in CVS. Also, every tarball that has been distributed since |
| version 2.12 has been created in such a way that it can be used with |
| CVS once it is unpacked. Doing so, however, requires that you are able |
| to access cvs-mirror.mozilla.org on port 2401, which may not be an |
| option or a possibility for some users, especially those behind a |
| highly restrictive firewall. |
| </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 can, updating using CVS is probably the most painless |
| method, especially if you have a lot of local changes. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > The following shows the sequence of commands needed to update a |
| Bugzilla installation via CVS, and a typical series of results. |
| </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: <EM |
| >('anonymous', or just leave it blank)</EM |
| > |
| bash$ <B |
| CLASS="command" |
| >cvs -q update -r BUGZILLA-2_18_1 -dP</B |
| > |
| P checksetup.pl |
| P collectstats.pl |
| P globals.pl |
| P docs/rel_notes.txt |
| P template/en/default/list/quips.html.tmpl |
| <EM |
| >(etc.)</EM |
| > |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><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 <SAMP |
| CLASS="computeroutput" |
| >C</SAMP |
| >, then 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 |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="upgrade-tarball" |
| >3.11.2.2. Upgrading using the tarball</A |
| ></H4 |
| ><P |
| > If you are unable (or unwilling) to use CVS, another option that's |
| always available is to obtain the latest tarball from the <A |
| HREF="http://www.bugzilla.org/download/" |
| TARGET="_top" |
| >Download Page</A |
| > and |
| create a new Bugzilla installation from that. |
| </P |
| ><P |
| > This sequence of commands shows how to get the tarball from the |
| command-line; it is also possible to download it from the site |
| directly in a web browser. If you go that route, save the file |
| to the <TT |
| CLASS="filename" |
| >/var/www/html</TT |
| > |
| directory (or its equivalent, if you use something else) and |
| omit the first three lines of the example. |
| </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/mozilla.org/webtools/bugzilla-2.18.1.tar.gz</B |
| > |
| <EM |
| >(Output omitted)</EM |
| > |
| bash$ <B |
| CLASS="command" |
| >tar xzvf bugzilla-2.18.1.tar.gz</B |
| > |
| bugzilla-2.18.1/ |
| bugzilla-2.18.1/.cvsignore |
| bugzilla-2.18.1/1x1.gif |
| <EM |
| >(Output truncated)</EM |
| > |
| bash$ <B |
| CLASS="command" |
| >cd bugzilla-2.18.1</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.18.1 bugzilla</B |
| > |
| </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 |
| > 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. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > This upgrade method will give you a clean install of Bugzilla with the |
| same version as the tarball. That's fine if you don't have any local |
| customizations that you want to maintain, but if you do then you will |
| need to reapply them by hand to the appropriate files. |
| </P |
| ><P |
| > It's worth noting that since 2.12, the Bugzilla tarballs come |
| CVS-ready, so if you decide at a later date that you'd rather use |
| CVS as an upgrade method, your code will already be set up for it. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="upgrade-patches" |
| >3.11.2.3. Upgrading using patches</A |
| ></H4 |
| ><P |
| > If you are doing a bugfix upgrade -- that is, one where only the |
| last number of the revision changes, such as from 2.16.6 to 2.16.7 |
| -- then you have the option of obtaining and applying a patch file |
| from the <A |
| HREF="http://www.bugzilla.org/download/" |
| TARGET="_top" |
| >Download Page</A |
| >. |
| This file is made available by the <A |
| HREF="http://www.bugzilla.org/developers/profiles.html" |
| TARGET="_top" |
| >Bugzilla |
| Development Team</A |
| >, and is a collection of all the bug fixes |
| and security patches that have been made since the last bugfix |
| release. If you are planning to upgrade via patches, it is safer |
| to grab this developer-made patch file than to read the patch |
| notes and apply all (or even just some of) the patches oneself, |
| as sometimes patches on bugs get changed before they get checked in. |
| </P |
| ><P |
| > As above, this example starts with obtaining the file via the |
| command line. If you have already downloaded it, you can omit the |
| first two commands. |
| </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/mozilla.org/webtools/bugzilla-2.18.0-to-2.18.1.diff.gz</B |
| > |
| <EM |
| >(Output omitted)</EM |
| > |
| bash$ <B |
| CLASS="command" |
| >gunzip bugzilla-2.18.0-to-2.18.1.diff.gz</B |
| > |
| bash$ <B |
| CLASS="command" |
| >patch -p1 < bugzilla-2.18.0-to-2.18.1.diff</B |
| > |
| patching file checksetup.pl |
| patching file collectstats.pl |
| patching file globals.pl |
| <EM |
| >(etc.)</EM |
| > |
| </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 |
| > Be aware that upgrading from a patch file does not change the |
| entries in your <TT |
| CLASS="filename" |
| >CVS</TT |
| > directory. |
| This could make it more difficult to upgrade using CVS |
| (<A |
| HREF="#upgrade-cvs" |
| >Section 3.11.2.1</A |
| >) in the future. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="upgrading-completion" |
| >3.11.3. Completing Your Upgrade</A |
| ></H3 |
| ><P |
| > Regardless of which upgrade method you choose, you will need to |
| run <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > before your Bugzilla |
| upgrade will be complete. |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > bash$ <B |
| CLASS="command" |
| >cd bugzilla</B |
| > |
| bash$ <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > |
| </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 |
| > The period at the beginning of the command |
| <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > is important and can not |
| be omitted. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > If you have done a lot of local modifications, it wouldn't hurt |
| to run the Bugzilla Testing suite. This is not a required step, |
| but it isn't going to hurt anything, and might help point out |
| some areas that could be improved. (More information on the |
| test suite can be had by following this link to the appropriate |
| section in the <A |
| HREF="http://www.bugzilla.org/docs/developer.html#testsuite" |
| TARGET="_top" |
| >Developers' |
| Guide</A |
| >.) |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="chapter" |
| ><HR><H1 |
| ><A |
| NAME="security" |
| ></A |
| >Chapter 4. Bugzilla Security</H1 |
| ><P |
| >While some of the items in this chapter are related to the operating |
| system Bugzilla is running on or some of the support software required to |
| run Bugzilla, it is all related to protecting your data. This is not |
| intended to be a comprehensive guide to securing Linux, Apache, MySQL, or |
| any other piece of software mentioned. There is no substitute for active |
| administration and monitoring of a machine. The key to good security is |
| actually right in the middle of the word: <EM |
| >U R It</EM |
| >. |
| </P |
| ><P |
| >While programmers in general always strive to write secure code, |
| accidents can and do happen. The best approach to security is to always |
| assume that the program you are working with isn't 100% secure and restrict |
| its access to other parts of your machine as much as possible. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="security-os" |
| >4.1. Operating System</A |
| ></H2 |
| ><DIV |
| CLASS="section" |
| ><H3 |
| CLASS="section" |
| ><A |
| NAME="security-os-ports" |
| >4.1.1. TCP/IP Ports</A |
| ></H3 |
| ><P |
| >The TCP/IP standard defines more than 65,000 ports for sending |
| and receiving traffic. Of those, Bugzilla needs exactly one to operate |
| (different configurations and options may require up to 3). You should |
| audit your server and make sure that you aren't listening on any ports |
| you don't need to be. It's also highly recommended that the server |
| Bugzilla resides on, along with any other machines you administer, be |
| placed behind some kind of firewall. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="security-os-accounts" |
| >4.1.2. System User Accounts</A |
| ></H3 |
| ><P |
| >Many <A |
| HREF="#gloss-daemon" |
| ><I |
| CLASS="glossterm" |
| >daemons</I |
| ></A |
| >, such |
| as Apache's <TT |
| CLASS="filename" |
| >httpd</TT |
| > or MySQL's |
| <TT |
| CLASS="filename" |
| >mysqld</TT |
| >, run as either <SPAN |
| CLASS="QUOTE" |
| >"root"</SPAN |
| > or |
| <SPAN |
| CLASS="QUOTE" |
| >"nobody"</SPAN |
| >. This is even worse on Windows machines where the |
| majority of <A |
| HREF="#gloss-service" |
| ><I |
| CLASS="glossterm" |
| >services</I |
| ></A |
| > |
| run as <SPAN |
| CLASS="QUOTE" |
| >"SYSTEM"</SPAN |
| >. While running as <SPAN |
| CLASS="QUOTE" |
| >"root"</SPAN |
| > or |
| <SPAN |
| CLASS="QUOTE" |
| >"SYSTEM"</SPAN |
| > introduces obvious security concerns, the |
| problems introduced by running everything as <SPAN |
| CLASS="QUOTE" |
| >"nobody"</SPAN |
| > may |
| not be so obvious. Basically, if you run every daemon as |
| <SPAN |
| CLASS="QUOTE" |
| >"nobody"</SPAN |
| > and one of them gets comprimised it can |
| comprimise every other daemon running as <SPAN |
| CLASS="QUOTE" |
| >"nobody"</SPAN |
| > on your |
| machine. 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 <VAR |
| CLASS="option" |
| >webservergroup</VAR |
| > option |
| in <TT |
| CLASS="filename" |
| >localconfig</TT |
| > to the group your webserver runs |
| as. This will allow <TT |
| CLASS="filename" |
| >./checksetup.pl</TT |
| > to set file |
| permissions on Unix systems so that nothing is world-writable. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="security-os-chroot" |
| >4.1.3. The <TT |
| CLASS="filename" |
| >chroot</TT |
| > Jail</A |
| ></H3 |
| ><P |
| > If your system supports it, you may wish to consider running |
| Bugzilla inside of a <TT |
| CLASS="filename" |
| >chroot</TT |
| > jail. This option |
| provides unprecedented security by restricting anything running |
| inside the jail from accessing any information outside of it. If you |
| wish to use this option, please consult the documentation that came |
| with your system. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="security-mysql" |
| >4.2. MySQL</A |
| ></H2 |
| ><DIV |
| CLASS="section" |
| ><H3 |
| CLASS="section" |
| ><A |
| NAME="security-mysql-account" |
| >4.2.1. The MySQL System Account</A |
| ></H3 |
| ><P |
| >As mentioned in <A |
| HREF="#security-os-accounts" |
| >Section 4.1.2</A |
| >, the MySQL |
| daemon should run as a non-privleged, unique user. Be sure to consult |
| the MySQL documentation or the documentation that came with your system |
| for instructions. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="security-mysql-root" |
| >4.2.2. The MySQL <SPAN |
| CLASS="QUOTE" |
| >"root"</SPAN |
| > and <SPAN |
| CLASS="QUOTE" |
| >"anonymous"</SPAN |
| > Users</A |
| ></H3 |
| ><P |
| >By default, MySQL comes with a <SPAN |
| CLASS="QUOTE" |
| >"root"</SPAN |
| > user with a |
| blank password and an <SPAN |
| CLASS="QUOTE" |
| >"anonymous"</SPAN |
| > user, also with a blank |
| password. In order to protect your data, the <SPAN |
| CLASS="QUOTE" |
| >"root"</SPAN |
| > user |
| should be given a password and the anonymous user should be disabled. |
| </P |
| ><DIV |
| CLASS="example" |
| ><A |
| NAME="security-mysql-account-root" |
| ></A |
| ><P |
| ><B |
| >Example 4-1. Assigning the MySQL <SPAN |
| CLASS="QUOTE" |
| >"root"</SPAN |
| > User a Password</B |
| ></P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > mysql mysql |
| <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > UPDATE user SET password = password('<VAR |
| CLASS="replaceable" |
| >new_password</VAR |
| >') WHERE user = 'root'; |
| <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > FLUSH PRIVILEGES; |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="example" |
| ><A |
| NAME="security-mysql-account-anonymous" |
| ></A |
| ><P |
| ><B |
| >Example 4-2. Disabling the MySQL <SPAN |
| CLASS="QUOTE" |
| >"anonymous"</SPAN |
| > User</B |
| ></P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > mysql -u root -p mysql <A |
| NAME="security-mysql-account-anonymous-mysql" |
| ><IMG |
| SRC="../images/callouts/1.gif" |
| HSPACE="0" |
| VSPACE="0" |
| BORDER="0" |
| ALT="(1)"></A |
| > |
| <SAMP |
| CLASS="prompt" |
| >Enter Password:</SAMP |
| > <VAR |
| CLASS="replaceable" |
| >new_password</VAR |
| > |
| <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > DELETE FROM user WHERE user = ''; |
| <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > FLUSH PRIVILEGES; |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><DIV |
| CLASS="calloutlist" |
| ><DL |
| COMPACT="COMPACT" |
| ><DT |
| ><A |
| HREF="#security-mysql-account-anonymous-mysql" |
| ><IMG |
| SRC="../images/callouts/1.gif" |
| HSPACE="0" |
| VSPACE="0" |
| BORDER="0" |
| ALT="(1)"></A |
| ></DT |
| ><DD |
| >This command assumes that you have already completed |
| <A |
| HREF="#security-mysql-account-root" |
| >Example 4-1</A |
| >. |
| </DD |
| ></DL |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="security-mysql-network" |
| >4.2.3. Network Access</A |
| ></H3 |
| ><P |
| >If MySQL and your webserver both run on the same machine and you |
| have no other reason to access MySQL remotely, then you should disable |
| the network access. This, along with the suggestion in |
| <A |
| HREF="#security-os-ports" |
| >Section 4.1.1</A |
| >, will help protect your system from |
| any remote vulnerabilites in MySQL. |
| </P |
| ><DIV |
| CLASS="example" |
| ><A |
| NAME="security-mysql-network-ex" |
| ></A |
| ><P |
| ><B |
| >Example 4-3. Disabling Networking in MySQL</B |
| ></P |
| ><P |
| >Simply enter the following in <TT |
| CLASS="filename" |
| >/etc/my.conf</TT |
| >: |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > [myslqd] |
| # Prevent network access to MySQL. |
| skip-networking |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="security-webserver" |
| >4.3. Webserver</A |
| ></H2 |
| ><DIV |
| CLASS="section" |
| ><H3 |
| CLASS="section" |
| ><A |
| NAME="security-webserver-access" |
| >4.3.1. Disabling Remote Access to Bugzilla Configuration Files</A |
| ></H3 |
| ><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 a 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 |
| ><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 create |
| <A |
| HREF="#gloss-htaccess" |
| ><I |
| CLASS="glossterm" |
| ><TT |
| CLASS="filename" |
| >.htaccess</TT |
| ></I |
| ></A |
| > |
| files that enforce these rules. Instructions for enabling these |
| directives in Apache can be found in <A |
| HREF="#http-apache" |
| >Section 2.2.4.1</A |
| > |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><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 |
| > |
| </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 |
| ><P |
| >Be sure to test that data that should not be accessed remotely is |
| properly blocked. Of particular intrest is the localconfig file which |
| contains your database password. Also, be aware that many editors |
| create temporary and backup files in the working directory and that |
| those should also not be accessable. 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 |
| >. |
| 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="QUOTE" |
| >"<SPAN |
| CLASS="errorcode" |
| >403</SPAN |
| > <SPAN |
| CLASS="errorname" |
| >Forbidden</SPAN |
| >"</SPAN |
| > |
| error. |
| </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 |
| >Be sure to check <A |
| HREF="#http" |
| >Section 2.2.4</A |
| > for instructions |
| specific to the webserver you use. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="security-webserver-mod-throttle" |
| >4.3.2. Using <TT |
| CLASS="filename" |
| >mod_throttle</TT |
| > to Prevent a DOS</A |
| ></H3 |
| ><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 section only applies to people who have chosen the Apache |
| webserver. It may be possible to do similar things with other |
| webservers. Consult the documentation that came with your webserver |
| to find out. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><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 (effectively, a |
| <A |
| HREF="#gloss-dos" |
| ><I |
| CLASS="glossterm" |
| >DOS</I |
| ></A |
| > attack). 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. |
| The command you need is |
| <B |
| CLASS="command" |
| >ThrottleClientIP</B |
| >. See the |
| <A |
| HREF="http://www.snert.com/Software/mod_throttle/" |
| TARGET="_top" |
| >documentation</A |
| > |
| for more information.</P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="security-bugzilla" |
| >4.4. Bugzilla</A |
| ></H2 |
| ><DIV |
| CLASS="section" |
| ><H3 |
| CLASS="section" |
| ><A |
| NAME="security-bugzilla-charset" |
| >4.4.1. Prevent users injecting malicious Javascript</A |
| ></H3 |
| ><P |
| >It is possible for a Bugzilla user to take advantage of character |
| set encoding ambiguities to inject HTML into Bugzilla comments. This |
| could include malicious scripts. |
| Due to internationalization concerns, we are unable to |
| incorporate by default the code changes suggested by |
| <A |
| HREF="http://www.cert.org/tech_tips/malicious_code_mitigation.html#3" |
| TARGET="_top" |
| >the |
| CERT advisory</A |
| > on this issue. |
| Making the change in <A |
| HREF="#security-bugzilla-charset-ex" |
| >Example 4-4</A |
| > will |
| prevent this problem. |
| </P |
| ><DIV |
| CLASS="example" |
| ><A |
| NAME="security-bugzilla-charset-ex" |
| ></A |
| ><P |
| ><B |
| >Example 4-4. Forcing Bugzilla to output a charset</B |
| ></P |
| ><P |
| >Locate the following line in |
| <TT |
| CLASS="filename" |
| >Bugzilla/CGI.pm</TT |
| >: |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >$self->charset('');</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| and change it to: |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >$self->charset('UTF-8');</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="chapter" |
| ><HR><H1 |
| ><A |
| NAME="customization" |
| ></A |
| >Chapter 5. Customising Bugzilla</H1 |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="cust-templates" |
| >5.1. Template Customization</A |
| ></H2 |
| ><P |
| > Administrators can 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. It's possible to have Bugzilla's UI language |
| determined by the user's browser. More information is available in |
| <A |
| HREF="#template-http-accept" |
| >Section 5.1.6</A |
| >. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="template-directory" |
| >5.1.1. Template Directory Structure</A |
| ></H3 |
| ><P |
| > The template directory structure starts with top level directory |
| named <TT |
| CLASS="filename" |
| >template</TT |
| >, which contains a directory |
| for each installed localization. The next level defines the |
| language used in the templates. Bugzilla comes with English |
| templates, so the directory name is <TT |
| CLASS="filename" |
| >en</TT |
| >, |
| and we will discuss <TT |
| CLASS="filename" |
| >template/en</TT |
| > throughout |
| the documentation. Below <TT |
| CLASS="filename" |
| >template/en</TT |
| > is the |
| <TT |
| CLASS="filename" |
| >default</TT |
| > directory, which contains all the |
| standard templates shipped with Bugzilla. |
| </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 |
| > A directory <TT |
| CLASS="filename" |
| >data/templates</TT |
| > also exists; |
| this is where Template Toolkit puts the compiled versions of |
| the templates from either the default or custom directories. |
| <EM |
| >Do not</EM |
| > directly edit the files in this |
| directory, or all your changes will be lost the next time |
| Template Toolkit recompiles the templates. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="template-method" |
| >5.1.2. Choosing a Customization Method</A |
| ></H3 |
| ><P |
| > If you want to edit Bugzilla's templates, the first decision |
| you must make is how you want to go about doing so. There are two |
| choices, and which you use depends mainly on the scope of your |
| modifications, and the method you plan to use to upgrade Bugzilla. |
| </P |
| ><P |
| > The first method of making customizations is to directly edit the |
| templates found in <TT |
| CLASS="filename" |
| >template/en/default</TT |
| >. |
| This is probably the best way to go about it if you are going to |
| be upgrading Bugzilla through CVS, because if you then execute |
| a <B |
| CLASS="command" |
| >cvs update</B |
| >, any changes you have made will |
| be merged automagically with the updated versions. |
| </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 use this method, and CVS conflicts occur during an |
| update, the conflicted templates (and possibly other parts |
| of your installation) will not work until they are resolved. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > The second method is to copy the templates to be modified |
| into a mirrored directory structure under |
| <TT |
| CLASS="filename" |
| >template/en/custom</TT |
| >. Templates in this |
| directory structure automatically override any identically-named |
| and identically-located templates in the |
| <TT |
| CLASS="filename" |
| >default</TT |
| > directory. |
| </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 <TT |
| CLASS="filename" |
| >custom</TT |
| > directory does not exist |
| at first and must be created if you want to use it. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > The second method of customization should be used if you |
| use the overwriting method of upgrade, because otherwise |
| your changes will be lost. This method may also be 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 |
| > Using this method, your installation may break if incompatible |
| changes are made to the template interface. Such changes should |
| 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 |
| > Regardless of which method you choose, it is recommended that |
| you run <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > after creating or |
| editing any templates in the <TT |
| CLASS="filename" |
| >template/en/default</TT |
| > |
| directory, and after editing any templates in the |
| <TT |
| CLASS="filename" |
| >custom</TT |
| > directory. |
| </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 |
| > It is <EM |
| >required</EM |
| > that you run |
| <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > after creating a new |
| template in the <TT |
| CLASS="filename" |
| >custom</TT |
| > directory. Failure |
| to do so will raise an incomprehensible error message. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="template-edit" |
| >5.1.3. How To Edit Templates</A |
| ></H3 |
| ><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/docs/developer.html" |
| TARGET="_top" |
| >Developers' |
| Guide</A |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><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 |
| >. |
| </P |
| ><P |
| > 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, i.e. &lt;. You use the 'html' filter in the |
| Template Toolkit to do this. If you forget, 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, i.e. %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 <SPAN |
| CLASS="QUOTE" |
| >"poor man's custom |
| fields"</SPAN |
| >. |
| For example, if you don't use the Status Whiteboard, but want to have |
| a free-form text entry box for <SPAN |
| CLASS="QUOTE" |
| >"Build Identifier"</SPAN |
| >, |
| 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 |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="template-formats" |
| >5.1.4. Template Formats and Types</A |
| ></H3 |
| ><P |
| > Some CGI's have the ability to use more than one template. For example, |
| <TT |
| CLASS="filename" |
| >buglist.cgi</TT |
| > can output itself as RDF, or as two |
| formats of HTML (complex and simple). The mechanism that provides this |
| feature is extensible. |
| </P |
| ><P |
| > Bugzilla can support different types of output, which again can have |
| multiple formats. In order to request a certain type, you can append |
| the &ctype=<contenttype> (such as rdf or html) to the |
| <TT |
| CLASS="filename" |
| ><cginame>.cgi</TT |
| > URL. If you would like to |
| retrieve a certain format, you can use the &format=<format> |
| (such as simple or complex) in the URL. |
| </P |
| ><P |
| > To see if a CGI supports multiple output formats and types, grep the |
| CGI for <SPAN |
| CLASS="QUOTE" |
| >"GetFormat"</SPAN |
| >. If it's not present, adding |
| multiple format/type support isn't too hard - see how it's done in |
| other CGIs, e.g. config.cgi. |
| </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. The content types are defined in the |
| <TT |
| CLASS="filename" |
| >Bugzilla/Constants.pm</TT |
| > file in the |
| <TT |
| CLASS="filename" |
| >contenttypes</TT |
| > |
| constant. If your content type is not there, add it. Remember |
| the three- or four-letter tag assigned to your content type. |
| This tag will be part of the template filename. |
| </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 |
| > After adding or changing a content type, it's suitable to edit |
| <TT |
| CLASS="filename" |
| >Bugzilla/Constants.pm</TT |
| > in order to reflect |
| the changes. Also, the file should be kept up to date after an |
| upgrade if content types have been customized in the past. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><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>&ctype=<type></TT |
| > . |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="template-specific" |
| >5.1.5. Particular Templates</A |
| ></H3 |
| ><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 <SPAN |
| CLASS="QUOTE" |
| >"banner"</SPAN |
| >, 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" |
| >global/variables.none.tmpl</B |
| >: |
| This defines a list of terms that may be changed in order to |
| <SPAN |
| CLASS="QUOTE" |
| >"brand"</SPAN |
| > the Bugzilla instance In this way, terms |
| like <SPAN |
| CLASS="QUOTE" |
| >"bugs"</SPAN |
| > can be replaced with <SPAN |
| CLASS="QUOTE" |
| >"issues"</SPAN |
| > |
| across the whole Bugzilla installation. The name |
| <SPAN |
| CLASS="QUOTE" |
| >"Bugzilla"</SPAN |
| > and other words can be customized as well. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >list/table.html.tmpl</B |
| >: |
| This template controls the appearance of the bug lists created |
| by Bugzilla. Editing this template allows per-column control of |
| the width and title of a column, the maximum display length of |
| each entry, and the wrap behaviour of long entries. |
| For long bug lists, Bugzilla inserts a 'break' every 100 bugs by |
| default; this behaviour is also controlled by this template, and |
| that value can be modified here. |
| </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 not wish to go to the effort of creating custom fields in |
| Bugzilla, yet you want to make sure that each bug report contains |
| a number of pieces of important information for which there is not |
| a special field. The bug entry system has been designed in an |
| extensible fashion to enable you to add arbitrary HTML widgets, |
| such as drop-down lists or textboxes, to the bug entry page |
| and have their values appear formatted in the initial comment. |
| A hidden field that indicates the format should be added inside |
| the form in order to make the template functional. Its value should |
| be the suffix of the template filename. For example, if the file |
| is called <TT |
| CLASS="filename" |
| >create-cust.html.tmpl</TT |
| >, then |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| ><input type="hidden" name="format" value="cust"></PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| should be used inside the form. |
| </P |
| ><P |
| > |
| An example of this is the mozilla.org |
| <A |
| HREF="http://landfill.bugzilla.org/bugzilla-tip/enter_bug.cgi?product=WorldControl&format=guided" |
| TARGET="_top" |
| >guided |
| bug submission form</A |
| >. The code for this comes with the Bugzilla |
| distribution as an example for you to copy. It can be found in the |
| files |
| <TT |
| CLASS="filename" |
| >create-guided.html.tmpl</TT |
| > and |
| <TT |
| CLASS="filename" |
| >comment-guided.html.tmpl</TT |
| >. |
| </P |
| ><P |
| > So to use this feature, 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" |
| >custom/bug/create/create.html.tmpl</TT |
| >. |
| Call it <TT |
| CLASS="filename" |
| >create-<formatname>.html.tmpl</TT |
| >, and |
| 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 |
| >, and call it |
| <TT |
| CLASS="filename" |
| >comment-<formatname>.txt.tmpl</TT |
| >. This |
| template should reference the form fields you have created using |
| the syntax <TT |
| CLASS="filename" |
| >[% form.<fieldname> %]</TT |
| >. 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 custom 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 something like |
| <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 comment. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="template-http-accept" |
| >5.1.6. Configuring Bugzilla to Detect the User's Language</A |
| ></H3 |
| ><P |
| >Bugzilla honours the user's Accept: HTTP header. You can install |
| templates in other languages, and Bugzilla will pick the most appropriate |
| according to a priority order defined by you. Many |
| language templates can be obtained from <A |
| HREF="http://www.bugzilla.org/download.html#localizations" |
| TARGET="_top" |
| >http://www.bugzilla.org/download.html#localizations</A |
| >. Instructions |
| for submitting new languages are also available from that location. |
| </P |
| ><P |
| >After untarring the localizations (or creating your own) in the |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template</TT |
| > directory, |
| you must update the <VAR |
| CLASS="option" |
| >languages</VAR |
| > parameter to contain any |
| localizations you'd like to permit. You may also wish to set the |
| <VAR |
| CLASS="option" |
| >defaultlanguage</VAR |
| > parameter to something other than |
| <SPAN |
| CLASS="QUOTE" |
| >"en"</SPAN |
| > if you don't want Engish to be the default language. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="cust-hooks" |
| >5.2. Template Hooks</A |
| ></H2 |
| ><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 |
| > Template Hooks require Template Toolkit version 2.12 or |
| above, or the application of a patch. See <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=239112" |
| TARGET="_top" |
| >bug |
| 239112</A |
| > for details. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Template hooks are a way for extensions to Bugzilla to insert code |
| into the standard Bugzilla templates without modifying the template files |
| themselves. The hooks mechanism defines a consistent API for extending |
| the standard templates in a way that cleanly separates standard code |
| from extension code. Hooks reduce merge conflicts and make it easier |
| to write extensions that work across multiple versions of Bugzilla, |
| making upgrading a Bugzilla installation with installed extensions easier. |
| </P |
| ><P |
| > A template hook is just a named place in a standard template file |
| where extension template files for that hook get processed. Each hook |
| has a corresponding directory in the Bugzilla directory tree. Hooking an |
| extension template to a hook is as simple as putting the extension file |
| into the hook's directory. When Bugzilla processes the standard template |
| and reaches the hook, it will process all extension templates in the |
| hook's directory. The hooks themselves can be added into any standard |
| template upon request by extension authors. |
| </P |
| ><P |
| > To use hooks to extend a Bugzilla template, first make sure there is |
| a hook at the appropriate place within the template you want to extend. |
| Hooks appear in the standard Bugzilla templates as a single directive |
| in the format |
| <VAR |
| CLASS="literal" |
| >[% Hook.process("<VAR |
| CLASS="varname" |
| >name</VAR |
| >") %]</VAR |
| >, |
| where <VAR |
| CLASS="varname" |
| >name</VAR |
| > is the unique (within that template) |
| name of the hook. |
| </P |
| ><P |
| > If you aren't sure which template you want to extend or just want |
| to browse the available hooks, either use your favorite multi-file search |
| tool (e.g. <B |
| CLASS="command" |
| >grep</B |
| >) to search the standard templates |
| for occurrences of <CODE |
| CLASS="methodname" |
| >Hook.process</CODE |
| > or browse |
| the directory tree in |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template/en/extension/hook/</TT |
| >, |
| which contains a directory for each hook in the following location: |
| </P |
| ><P |
| > <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template/en/extension/hook/PATH_TO_STANDARD_TEMPLATE/STANDARD_TEMPLATE_NAME/HOOK_NAME/</TT |
| > |
| </P |
| ><P |
| > If there is no hook at the appropriate place within the Bugzilla template |
| you want to extend, |
| <A |
| HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=User%20Interface" |
| TARGET="_top" |
| >file |
| a bug requesting one</A |
| >, specifying: |
| </P |
| ><P |
| ></P |
| ><TABLE |
| BORDER="0" |
| ><TBODY |
| ><TR |
| ><TD |
| >the template for which you are requesting a hook;</TD |
| ></TR |
| ><TR |
| ><TD |
| > where in the template you would like the hook to be placed |
| (line number/position for latest version of template in CVS |
| or description of location); |
| </TD |
| ></TR |
| ><TR |
| ><TD |
| >the purpose of the hook;</TD |
| ></TR |
| ><TR |
| ><TD |
| >a link to information about your extension, if any.</TD |
| ></TR |
| ></TBODY |
| ></TABLE |
| ><P |
| ></P |
| ><P |
| > The Bugzilla reviewers will promptly review each hook request, |
| name the hook, add it to the template, check the new version |
| of the template into CVS, and create the corresponding directory in |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template/en/extension/hook/</TT |
| >. |
| </P |
| ><P |
| > You may optionally attach a patch to the bug which implements the hook |
| and check it in yourself after receiving approval from a Bugzilla |
| reviewer. The developers may suggest changes to the location of the |
| hook based on their analysis of your needs or so the hook can satisfy |
| the needs of multiple extensions, but the process of getting hooks |
| approved and checked in is not as stringent as the process for general |
| changes to Bugzilla, and any extension, whether released or still in |
| development, can have hooks added to meet their needs. |
| </P |
| ><P |
| > After making sure the hook you need exists (or getting it added if not), |
| add your extension template to the directory within the Bugzilla |
| directory tree corresponding to the hook. |
| </P |
| ><P |
| > That's it! Now, when the standard template containing the hook |
| is processed, your extension template will be processed at the point |
| where the hook appears. |
| </P |
| ><P |
| > For example, let's say you have an extension named Projman that adds |
| project management capabilities to Bugzilla. Projman has an |
| administration interface <TT |
| CLASS="filename" |
| >edit-projects.cgi</TT |
| >, |
| and you want to add a link to it into the navigation bar at the bottom |
| of every Bugzilla page for those users who are authorized |
| to administer projects. |
| </P |
| ><P |
| > The navigation bar is generated by the template file |
| <TT |
| CLASS="filename" |
| >useful-links.html.tmpl</TT |
| >, which is located in |
| the <TT |
| CLASS="filename" |
| >global/</TT |
| > subdirectory on the standard Bugzilla |
| template path |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template/en/default/</TT |
| >. |
| Looking in <TT |
| CLASS="filename" |
| >useful-links.html.tmpl</TT |
| >, you find |
| the following hook at the end of the list of standard Bugzilla |
| administration links: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >... |
| [% ', <a href="editkeywords.cgi">keywords</a>' |
| IF user.groups.editkeywords %] |
| [% Hook.process("edit") %] |
| ...</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > The corresponding directory for this hook is |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template/en/extension/hook/global/useful-links.html.tmpl/edit/</TT |
| >. |
| </P |
| ><P |
| > You put a template named |
| <TT |
| CLASS="filename" |
| >projman-edit-projects.html.tmpl</TT |
| > |
| into that directory with the following content: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >...[% ', <a href="edit-projects.cgi">projects</a>' IF user.groups.projman_admins %]</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ><P |
| > Voila! The link now appears after the other administration links in the |
| navigation bar for users in the <VAR |
| CLASS="literal" |
| >projman_admins</VAR |
| > group. |
| </P |
| ><P |
| > Notes: |
| </P |
| ><P |
| ></P |
| ><UL |
| ><LI |
| ><P |
| > You may want to prefix your extension template names |
| with the name of your extension, e.g. |
| <TT |
| CLASS="filename" |
| >projman-foo.html.tmpl</TT |
| >, |
| so they do not conflict with the names of templates installed by |
| other extensions. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > If your extension includes entirely new templates in addition to |
| extensions of standard templates, it should install those new |
| templates into an extension-specific subdirectory of the |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template/en/extension/</TT |
| > |
| directory. The <TT |
| CLASS="filename" |
| >extension/</TT |
| > directory, like the |
| <TT |
| CLASS="filename" |
| >default/</TT |
| > and <TT |
| CLASS="filename" |
| >custom/</TT |
| > |
| directories, is part of the template search path, so putting templates |
| there enables them to be found by the template processor. |
| </P |
| ><P |
| > The template processor looks for templates first in the |
| <TT |
| CLASS="filename" |
| >custom/</TT |
| > directory (i.e. templates added by the |
| specific installation), then in the <TT |
| CLASS="filename" |
| >extension/</TT |
| > |
| directory (i.e. templates added by extensions), and finally in the |
| <TT |
| CLASS="filename" |
| >default/</TT |
| > directory (i.e. the standard Bugzilla |
| templates). Thus extension templates can override standard templates, |
| but installation-specific templates override both. |
| </P |
| ><P |
| > Note that overriding standard templates with extension templates |
| gives you great power but also makes upgrading an installation harder. |
| As with custom templates, we recommend using this functionality |
| sparingly and only when absolutely necessary. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Installation customizers can also take advantage of hooks when adding |
| code to a Bugzilla template. To do so, create directories in |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template/en/custom/hook/</TT |
| > |
| equivalent to the directories in |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template/en/extension/hook/</TT |
| > |
| for the hooks you want to use, then place your customization templates |
| into those directories. |
| </P |
| ><P |
| > Obviously this method of customizing Bugzilla only lets you add code |
| to the standard templates; you cannot change the existing code. |
| Nevertheless, for those customizations that only add code, this method |
| can reduce conflicts when merging changes, making upgrading |
| your customized Bugzilla installation easier. |
| </P |
| ></LI |
| ></UL |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="cust-change-permissions" |
| >5.3. Customizing Who Can Change What</A |
| ></H2 |
| ><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 as outlined here, |
| you may have |
| to re-make them or port them if Bugzilla changes internally between |
| versions, and you upgrade. |
| </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 search for |
| <SPAN |
| CLASS="QUOTE" |
| >"sub CheckCanChangeField"</SPAN |
| >, 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 <SPAN |
| CLASS="QUOTE" |
| >"plumbing"</SPAN |
| > 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 assignee 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 by removing pieces - for example, if you wanted to |
| prevent any user adding a comment to a bug, just remove the lines marked |
| <SPAN |
| CLASS="QUOTE" |
| >"Allow anyone to change comments."</SPAN |
| > If you don't want the |
| Reporter to have any special rights on bugs they have filed, just |
| remove the entire section that deals with the Reporter. |
| </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 (Bugzilla->user->groups("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. |
| </P |
| ><P |
| > Getting more weird: |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > if (($field eq "priority") && |
| (Bugzilla->user->email =~ /.*\@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 |
| ><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 |
| > If you are modifying <TT |
| CLASS="filename" |
| >process_bug.cgi</TT |
| > in any |
| way, do not change the code that is bounded by DO_NOT_CHANGE blocks. |
| Doing so could compromise security, or cause your installation to |
| stop working entirely. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="dbmodify" |
| >5.4. Modifying Your Running System</A |
| ></H2 |
| ><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 |
| <B |
| CLASS="command" |
| >rm data/versioncache</B |
| >), or your changes won't show up. |
| </P |
| ><P |
| > <TT |
| CLASS="filename" |
| >versioncache</TT |
| > gets regenerated automatically |
| 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><H2 |
| CLASS="section" |
| ><A |
| NAME="dbdoc" |
| >5.5. MySQL Bugzilla Database Introduction</A |
| ></H2 |
| ><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><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN2062" |
| >5.5.1. Bugzilla Database Basics</A |
| ></H3 |
| ><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 |
| > <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > |
| |
| <B |
| CLASS="command" |
| >mysql</B |
| > |
| |
| <VAR |
| CLASS="parameter" |
| >-u root</VAR |
| > |
| </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 |
| > <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > |
| </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 |
| > <SAMP |
| CLASS="prompt" |
| >mysql</SAMP |
| > |
| |
| <B |
| CLASS="command" |
| >use bugs;</B |
| > |
| </P |
| ></LI |
| ></OL |
| > |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN2089" |
| >5.5.1.1. Bugzilla Database Tables</A |
| ></H4 |
| ><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 |
| > <SAMP |
| CLASS="prompt" |
| >mysql></SAMP |
| > |
| <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 |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="integration" |
| >5.6. Integrating Bugzilla with Third-Party Tools</A |
| ></H2 |
| ><DIV |
| CLASS="section" |
| ><H3 |
| CLASS="section" |
| ><A |
| NAME="bonsai" |
| >5.6.1. Bonsai</A |
| ></H3 |
| ><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><H3 |
| CLASS="section" |
| ><A |
| NAME="cvs" |
| >5.6.2. CVS</A |
| ></H3 |
| ><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 |
| ><P |
| >Another system capable of CVS integration with Bugzilla is |
| Scmbug. This system provides generic integration of Source code |
| Configuration Management with Bugtracking. Check it out at: <A |
| HREF="http://freshmeat.net/projects/scmbug/" |
| TARGET="_top" |
| >http://freshmeat.net/projects/scmbug/</A |
| >. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="scm" |
| >5.6.3. Perforce SCM</A |
| ></H3 |
| ><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><H3 |
| CLASS="section" |
| ><A |
| NAME="svn" |
| >5.6.4. Subversion</A |
| ></H3 |
| ><P |
| >Subversion is a free/open-source version control system, |
| designed to overcome various limitations of CVS. Integration of |
| Subversion with Bugzilla is possible using Scmbug, a system |
| providing generic integration of Source Code Configuration |
| Management with Bugtracking. Scmbug is available at <A |
| HREF="http://freshmeat.net/projects/scmbug/" |
| TARGET="_top" |
| >http://freshmeat.net/projects/scmbug/</A |
| >.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="tinderbox" |
| >5.6.5. Tinderbox/Tinderbox2</A |
| ></H3 |
| ><P |
| >Tinderbox is a continuous-build system which can integrate with |
| Bugzilla - see |
| <A |
| HREF="http://www.mozilla.org/projects/tinderbox" |
| TARGET="_top" |
| >http://www.mozilla.org/projects/tinderbox</A |
| > for details |
| of Tinderbox, and |
| <A |
| HREF="http://tinderbox.mozilla.org/showbuilds.cgi" |
| TARGET="_top" |
| >http://tinderbox.mozilla.org/showbuilds.cgi</A |
| > to see it |
| in action.</P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="chapter" |
| ><HR><H1 |
| ><A |
| NAME="using" |
| ></A |
| >Chapter 6. Using Bugzilla</H1 |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="using-intro" |
| >6.1. Introduction</A |
| ></H2 |
| ><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, not all of the Bugzilla |
| installations there will necessarily have all Bugzilla features enabled, |
| and different installations run different versions, so some things may not |
| quite work as this document describes.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="myaccount" |
| >6.2. Create a Bugzilla Account</A |
| ></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, which contains your login name (generally the |
| same as the email address), and a password. |
| This password is randomly generated, but can be |
| changed to something more memorable.</P |
| ></LI |
| ><LI |
| ><P |
| >Click the |
| <SPAN |
| CLASS="QUOTE" |
| >"Log In"</SPAN |
| > |
| link in the footer 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 to remember you are |
| logged in so, unless you have cookies disabled or 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" |
| >6.3. Anatomy of a Bug</A |
| ></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. Attachments are |
| normally stored in the Bugzilla database, unless they are marked as |
| Big Files, which are stored directly on disk and (unlike attachments |
| kept in the database) may be deleted at some future time. |
| </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="lifecycle" |
| >6.4. Life Cycle of a Bug</A |
| ></H2 |
| ><P |
| > The life cycle, also known as work flow, of a bug is currently hardcoded |
| into Bugzilla. <A |
| HREF="#lifecycle-image" |
| >Figure 6-1</A |
| > contains a graphical |
| repsentation of this life cycle. If you wish to customize this image for |
| your site, the <A |
| HREF="../images/bzLifecycle.xml" |
| TARGET="_top" |
| >diagram file</A |
| > |
| is available in <A |
| HREF="http://www.gnome.org/projects/dia" |
| TARGET="_top" |
| >Dia's</A |
| > |
| native XML format. |
| </P |
| ><DIV |
| CLASS="figure" |
| ><A |
| NAME="lifecycle-image" |
| ></A |
| ><P |
| ><B |
| >Figure 6-1. Lifecycle of a Bugzilla Bug</B |
| ></P |
| ><DIV |
| CLASS="mediaobject" |
| ><P |
| ><IMG |
| SRC="../images/bzLifecycle.png"></P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="query" |
| >6.5. Searching for Bugs</A |
| ></H2 |
| ><P |
| >The Bugzilla Search page 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. For some |
| fields, multiple values can be selected. In those cases, Bugzilla |
| returns bugs where the content of the field matches any one of the selected |
| values. If none is selected, then the field can take any value.</P |
| ><P |
| >Once you've run a search, you can save it as a Saved Search, which |
| appears in the page footer.</P |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="boolean" |
| >6.5.1. Boolean Charts</A |
| ></H3 |
| ><P |
| > Highly advanced querying is done using Boolean Charts. |
| </P |
| ><P |
| > The boolean charts further restrict the set of results |
| returned by a query. It is possible to search for bugs |
| based on elaborate combinations of critera. |
| </P |
| ><P |
| > The simplest boolean searches have only one term. These searches |
| permit the selected left <EM |
| >field</EM |
| > |
| to be compared using a |
| selectable <EM |
| >operator</EM |
| > to a |
| specified <EM |
| >value.</EM |
| > |
| Using the "And," "Or," and "Add Another Boolean Chart" buttons, |
| additonal terms can be included in the query, further |
| altering the list of bugs returned by the query. |
| </P |
| ><P |
| > There are three fields in each row of a boolean search. |
| </P |
| ><P |
| ></P |
| ><UL |
| ><LI |
| ><P |
| > <EM |
| >Field:</EM |
| > |
| the items being searched |
| </P |
| ></LI |
| ><LI |
| ><P |
| > <EM |
| >Operator:</EM |
| > |
| the comparison operator |
| </P |
| ></LI |
| ><LI |
| ><P |
| > <EM |
| >Value:</EM |
| > |
| the value to which the field is being compared |
| </P |
| ></LI |
| ></UL |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="pronouns" |
| >6.5.1.1. Pronoun Substitution</A |
| ></H4 |
| ><P |
| > Sometimes, a query needs to compare a field containing |
| a user's ID (such as ReportedBy) with |
| a user's ID (such as the user running the query or the user |
| to whom each bug is assigned). When the operator is either |
| "equals" or "notequals", the value can be "%reporter%", |
| "%assignee%", "%qacontact%", or "%user%." The user pronoun |
| referes to the user who is executing the query or, in the case |
| of whining reports, the user who will be the recipient |
| of the report. The reporter, assignee, and qacontact |
| pronouns refer to the corresponding fields in the bug. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="negation" |
| >6.5.1.2. Negation</A |
| ></H4 |
| ><P |
| > At first glance, negation seems redundant. Rather than |
| searching for |
| <A |
| NAME="AEN2277" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > NOT("summary" "contains the string" "foo"), |
| </P |
| ></BLOCKQUOTE |
| > |
| one could search for |
| <A |
| NAME="AEN2279" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > ("summary" "does not contain the string" "foo"). |
| </P |
| ></BLOCKQUOTE |
| > |
| However, the search |
| <A |
| NAME="AEN2281" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > ("CC" "does not contain the string" "@mozilla.org") |
| </P |
| ></BLOCKQUOTE |
| > |
| would find every bug where anyone on the CC list did not contain |
| "@mozilla.org" while |
| <A |
| NAME="AEN2283" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > NOT("CC" "contains the string" "@mozilla.org") |
| </P |
| ></BLOCKQUOTE |
| > |
| would find every bug where there was nobody on the CC list who |
| did contain the string. Similarly, the use of negation also permits |
| complex expressions to be built using terms OR'd together and then |
| negated. Negation permits queries such as |
| <A |
| NAME="AEN2285" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > NOT(("product" "equals" "update") OR |
| ("component" "equals" "Documentation")) |
| </P |
| ></BLOCKQUOTE |
| > |
| to find bugs that are neither |
| in the update product or in the documentation component or |
| <A |
| NAME="AEN2287" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > NOT(("commenter" "equals" "%assignee%") OR |
| ("component" "equals" "Documentation")) |
| </P |
| ></BLOCKQUOTE |
| > |
| to find non-documentation |
| bugs on which the assignee has never commented. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="multiplecharts" |
| >6.5.1.3. Multiple Charts</A |
| ></H4 |
| ><P |
| > The terms within a single row of a boolean chart are all |
| constraints on a single piece of data. If you are looking for |
| a bug that has two different people cc'd on it, then you need |
| to use two boolean charts. A search for |
| <A |
| NAME="AEN2292" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > ("cc" "contains the string" "foo@") AND |
| ("cc" "contains the string" "@mozilla.org") |
| </P |
| ></BLOCKQUOTE |
| > |
| would return only bugs with "foo@mozilla.org" on the cc list. |
| If you wanted bugs where there is someone on the cc list |
| containing "foo@" and someone else containing "@mozilla.org", |
| then you would need two boolean charts. |
| <A |
| NAME="AEN2294" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > First chart: ("cc" "contains the string" "foo@") |
| </P |
| ><P |
| > Second chart: ("cc" "contains the string" "@mozilla.org") |
| </P |
| ></BLOCKQUOTE |
| > |
| The bugs listed will be only the bugs where ALL the charts are true. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="list" |
| >6.6. Bug Lists</A |
| ></H2 |
| ><P |
| >If you run a search, a list of matching bugs will be returned. |
| </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 |
| >CSV:</EM |
| > |
| |
| get the buglist as comma-separated values, for import into e.g. |
| a spreadsheet.</TD |
| ></TR |
| ><TR |
| ><TD |
| > <EM |
| >RSS</EM |
| > |
| |
| get the buglist as an RSS 1.0 feed. Copy this link into your |
| favorite feed reader. If you are using Firefox, you can also |
| save the list as a live bookmark by clicking the live bookmark |
| icon in the status bar. To limit the number of bugs in the feed, |
| add a limit=n parameter to the URL.</TD |
| ></TR |
| ><TR |
| ><TD |
| > <EM |
| >iCalendar</EM |
| > |
| |
| Get the buglist as an iCalendar file. Each bug is represented as a |
| to-do item in the imported calendar.</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 |
| assignee.</TD |
| ></TR |
| ><TR |
| ><TD |
| > <EM |
| >Send mail to bug assignees:</EM |
| > |
| |
| Sends mail to the assignees of all bugs on the list.</TD |
| ></TR |
| ><TR |
| ><TD |
| > <EM |
| >Edit Search:</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 |
| ><TR |
| ><TD |
| > <EM |
| >Remember Search As:</EM |
| > |
| |
| You can give a search a name and remember it; a link will appear |
| in your page footer giving you quick access to run it again later. |
| </TD |
| ></TR |
| ></TBODY |
| ></TABLE |
| ><P |
| ></P |
| > |
| </P |
| ><P |
| > If you would like to access the bug list from another program |
| it is often useful to have the list returned in something other |
| than HTML. By adding the ctype=type parameter into the bug list URL |
| you can specify several alternate formats. The supported formats |
| are: Comma Separated Values (ctype=csv), iCalendar (ctype=ics), |
| RDF Site Summary (RSS) 1.0 (ctype=rss), ECMAScript, also known |
| as JavaScript (ctype=js), and finally Resource Description Framework |
| RDF/XML (ctype=rdf). |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="bugreports" |
| >6.7. Filing Bugs</A |
| ></H2 |
| ><P |
| >Years of bug writing experience has been distilled for your |
| reading pleasure into the |
| <A |
| HREF="http://landfill.bugzilla.org/bugzilla-tip/page.cgi?id=bug-writing.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 |
| ><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 |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="patchviewer" |
| >6.8. Patch Viewer</A |
| ></H2 |
| ><P |
| >Viewing and reviewing patches in Bugzilla is often difficult due to |
| lack of context, improper format and the inherent readability issues that |
| raw patches present. Patch Viewer is an enhancement to Bugzilla designed |
| to fix that by offering increased context, linking to sections, and |
| integrating with Bonsai, LXR and CVS.</P |
| ><P |
| >Patch viewer allows you to:</P |
| ><P |
| ></P |
| ><TABLE |
| BORDER="0" |
| ><TBODY |
| ><TR |
| ><TD |
| >View patches in color, with side-by-side view rather than trying |
| to interpret the contents of the patch.</TD |
| ></TR |
| ><TR |
| ><TD |
| >See the difference between two patches.</TD |
| ></TR |
| ><TR |
| ><TD |
| >Get more context in a patch.</TD |
| ></TR |
| ><TR |
| ><TD |
| >Collapse and expand sections of a patch for easy |
| reading.</TD |
| ></TR |
| ><TR |
| ><TD |
| >Link to a particular section of a patch for discussion or |
| review</TD |
| ></TR |
| ><TR |
| ><TD |
| >Go to Bonsai or LXR to see more context, blame, and |
| cross-references for the part of the patch you are looking at</TD |
| ></TR |
| ><TR |
| ><TD |
| >Create a rawtext unified format diff out of any patch, no |
| matter what format it came from</TD |
| ></TR |
| ></TBODY |
| ></TABLE |
| ><P |
| ></P |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="patchviewer_view" |
| >6.8.1. Viewing Patches in Patch Viewer</A |
| ></H3 |
| ><P |
| >The main way to view a patch in patch viewer is to click on the |
| "Diff" link next to a patch in the Attachments list on a bug. You may |
| also do this within the edit window by clicking the "View Attachment As |
| Diff" button in the Edit Attachment screen.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="patchviewer_diff" |
| >6.8.2. Seeing the Difference Between Two Patches</A |
| ></H3 |
| ><P |
| >To see the difference between two patches, you must first view the |
| newer patch in Patch Viewer. Then select the older patch from the |
| dropdown at the top of the page ("Differences between [dropdown] and |
| this patch") and click the "Diff" button. This will show you what |
| is new or changed in the newer patch.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="patchviewer_context" |
| >6.8.3. Getting More Context in a Patch</A |
| ></H3 |
| ><P |
| >To get more context in a patch, you put a number in the textbox at |
| the top of Patch Viewer ("Patch / File / [textbox]") and hit enter. |
| This will give you that many lines of context before and after each |
| change. Alternatively, you can click on the "File" link there and it |
| will show each change in the full context of the file. This feature only |
| works against files that were diffed using "cvs diff".</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="patchviewer_collapse" |
| >6.8.4. Collapsing and Expanding Sections of a Patch</A |
| ></H3 |
| ><P |
| >To view only a certain set of files in a patch (for example, if a |
| patch is absolutely huge and you want to only review part of it at a |
| time), you can click the "(+)" and "(-)" links next to each file (to |
| expand it or collapse it). If you want to collapse all files or expand |
| all files, you can click the "Collapse All" and "Expand All" links at the |
| top of the page.</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="patchviewer_link" |
| >6.8.5. Linking to a Section of a Patch</A |
| ></H3 |
| ><P |
| >To link to a section of a patch (for example, if you want to be |
| able to give someone a URL to show them which part you are talking |
| about) you simply click the "Link Here" link on the section header. The |
| resulting URL can be copied and used in discussion. (Copy Link |
| Location in Mozilla works as well.)</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="patchviewer_bonsai_lxr" |
| >6.8.6. Going to Bonsai and LXR</A |
| ></H3 |
| ><P |
| >To go to Bonsai to get blame for the lines you are interested in, |
| you can click the "Lines XX-YY" link on the section header you are |
| interested in. This works even if the patch is against an old |
| version of the file, since Bonsai stores all versions of the file.</P |
| ><P |
| >To go to LXR, you click on the filename on the file header |
| (unfortunately, since LXR only does the most recent version, line |
| numbers are likely to rot).</P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="patchviewer_unified_diff" |
| >6.8.7. Creating a Unified Diff</A |
| ></H3 |
| ><P |
| >If the patch is not in a format that you like, you can turn it |
| into a unified diff format by clicking the "Raw Unified" link at the top |
| of the page.</P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="hintsandtips" |
| >6.9. Hints and Tips</A |
| ></H2 |
| ><P |
| >This section distills some Bugzilla tips and best practices |
| that have been developed.</P |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN2377" |
| >6.9.1. Autolinkification</A |
| ></H3 |
| ><P |
| >Bugzilla comments are plain text - so typing <U> will |
| produce less-than, U, greater-than rather than underlined text. |
| 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 link: |
| <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 |
| >comment 7</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><H3 |
| CLASS="section" |
| ><A |
| NAME="quicksearch" |
| >6.9.2. Quicksearch</A |
| ></H3 |
| ><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><H3 |
| CLASS="section" |
| ><A |
| NAME="commenting" |
| >6.9.3. Comments</A |
| ></H3 |
| ><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, |
| 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><H3 |
| CLASS="section" |
| ><A |
| NAME="attachments" |
| >6.9.4. Attachments</A |
| ></H3 |
| ><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 |
| ><P |
| >Bugzilla stores and uses a Content-Type for each attachment |
| (e.g. text/html). To download an attachment as a different |
| Content-Type (e.g. application/xhtml+xml), you can override this |
| using a 'content-type' parameter on the URL, e.g. |
| <TT |
| CLASS="filename" |
| >&content-type=text/plain</TT |
| >. |
| </P |
| ><P |
| > If you have a really large attachment, something that does not need to |
| be recorded forever (as most attachments are), you can mark your |
| attachment as a Big File, Assuming the administrator of the |
| installation has enabled this feature. Big Files are stored directly on |
| disk instead of in the database, and can be deleted when it is no longer |
| needed. The maximum size of a Big File is normally larger than the |
| maximum size of a regular attachment. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="userpreferences" |
| >6.10. User Preferences</A |
| ></H2 |
| ><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 three tabs:</P |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="accountsettings" |
| >6.10.1. Account Settings</A |
| ></H3 |
| ><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><H3 |
| CLASS="section" |
| ><A |
| NAME="emailsettings" |
| >6.10.2. Email Settings</A |
| ></H3 |
| ><P |
| > This tab controls the amount of email Bugzilla sends you. |
| </P |
| ><P |
| > The first item on this page is marked <SPAN |
| CLASS="QUOTE" |
| >"Users to watch"</SPAN |
| >. |
| When you enter one or more comma-delineated user accounts (usually email |
| addresses) into the text entry box, you will receive a copy of all the |
| bugmail those users are sent (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 don't see this feature, and feel |
| that you need it, speak to your administrator. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > In general, users have almost complete control over how much (or |
| how little) email Bugzilla sends them. If you want to receive the |
| maximum amount of email possible, click the <SPAN |
| CLASS="QUOTE" |
| >"Enable All |
| Mail"</SPAN |
| > button. If you don't want to receive any email from |
| Bugzilla at all, click the <SPAN |
| CLASS="QUOTE" |
| >"Disable All Mail"</SPAN |
| > button. |
| </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 |
| > Your Bugzilla administrator can stop a user from receiving |
| bugmail by adding the user's name to the |
| <TT |
| CLASS="filename" |
| >data/nomail</TT |
| > file. This is a drastic step |
| best taken only for disabled accounts, as it overrides the |
| the user's individual mail preferences. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > If you'd like to set your bugmail to something besides |
| 'Completely ON' and 'Completely OFF', the |
| <SPAN |
| CLASS="QUOTE" |
| >"Field/recipient specific options"</SPAN |
| > table |
| allows you to do just that. The rows of the table |
| define events that can happen to a bug -- things like |
| attachments being added, new comments being made, the |
| priority changing, etc. The columns in the table define |
| your relationship with the bug: |
| </P |
| ><P |
| ></P |
| ><UL |
| COMPACT="COMPACT" |
| ><LI |
| ><P |
| > Reporter - Where you are the person who initially |
| reported the bug. Your name/account appears in the |
| <SPAN |
| CLASS="QUOTE" |
| >"Reporter:"</SPAN |
| > field. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Assignee - Where you are the person who has been |
| designated as the one responsible for the bug. Your |
| name/account appears in the <SPAN |
| CLASS="QUOTE" |
| >"Assigned To:"</SPAN |
| > |
| field of the bug. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > QA Contact - You are one of the designated |
| QA Contacts for the bug. Your account appears in the |
| <SPAN |
| CLASS="QUOTE" |
| >"QA Contact:"</SPAN |
| > text-box of the bug. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > CC - You are on the list CC List for the bug. |
| Your account appears in the <SPAN |
| CLASS="QUOTE" |
| >"CC:"</SPAN |
| > text box |
| of the bug. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Voter - You have placed one or more votes for the bug. |
| Your account appears only if someone clicks on the |
| <SPAN |
| CLASS="QUOTE" |
| >"Show votes for this bug"</SPAN |
| > link on the bug. |
| </P |
| ></LI |
| ></UL |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > Some columns may not be visible for your installation, depending |
| on your site's configuration. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > To fine-tune your bugmail, decide the events for which you want |
| to receive bugmail; then decide if you want to receive it all |
| the time (enable the checkbox for every column), or only when |
| you have a certain relationship with a bug (enable the checkbox |
| only for those columns). For example: if you didn't want to |
| receive mail when someone added themselves to the CC list, you |
| could uncheck all the boxes in the <SPAN |
| CLASS="QUOTE" |
| >"CC Field Changes"</SPAN |
| > |
| line. As another example, if you never wanted to receive email |
| on bugs you reported unless the bug was resolved, you would |
| un-check all boxes in the <SPAN |
| CLASS="QUOTE" |
| >"Reporter"</SPAN |
| > column |
| except for the one on the <SPAN |
| CLASS="QUOTE" |
| >"The bug is resolved or |
| verified"</SPAN |
| > row. |
| </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 |
| > Bugzilla adds the <SPAN |
| CLASS="QUOTE" |
| >"X-Bugzilla-Reason"</SPAN |
| > header to |
| all bugmail it sends, describing the recipient's relationship |
| (AssignedTo, Reporter, QAContact, CC, or Voter) to the bug. |
| This header can be used to do further client-side filtering. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Two items not in the table (<SPAN |
| CLASS="QUOTE" |
| >"Email me when someone |
| asks me to set a flag"</SPAN |
| > and <SPAN |
| CLASS="QUOTE" |
| >"Email me when someone |
| sets a flag I asked for"</SPAN |
| >) define how you want to |
| receive bugmail with regards to flags. Their use is quite |
| straightforward; enable the checkboxes if you want Bugzilla to |
| send you mail under either of the above conditions. |
| </P |
| ><P |
| > By default, Bugzilla sends out email regardless of who made the |
| change... even if you were the one responsible for generating |
| the email in the first place. If you don't care to receive bugmail |
| from your own changes, check the box marked <SPAN |
| CLASS="QUOTE" |
| >"Only email me |
| reports of changes made by other people"</SPAN |
| >. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="permissionsettings" |
| >6.10.3. Permissions</A |
| ></H3 |
| ><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 |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="reporting" |
| >6.11. Reports and Charts</A |
| ></H2 |
| ><P |
| >As well as the standard buglist, Bugzilla has two more ways of |
| viewing sets of bugs. These are the reports (which give different |
| views of the current state of the database) and charts (which plot |
| the changes in particular sets of bugs over time.)</P |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="reports" |
| >6.11.1. Reports</A |
| ></H3 |
| ><P |
| > A report is a view of the current state of the bug database. |
| </P |
| ><P |
| > You can run either an HTML-table-based report, or a graphical |
| line/pie/bar-chart-based one. The two have different pages to |
| define them, but are close cousins - once you've defined and |
| viewed a report, you can switch between any of the different |
| views of the data at will. |
| </P |
| ><P |
| > Both report types are based on the idea of defining a set of bugs |
| using the standard search interface, and then choosing some |
| aspect of that set to plot on the horizontal and/or vertical axes. |
| You can also get a form of 3-dimensional report by choosing to have |
| multiple images or tables. |
| </P |
| ><P |
| > So, for example, you could use the search form to choose "all |
| bugs in the WorldControl product", and then plot their severity |
| against their component to see which component had had the largest |
| number of bad bugs reported against it. |
| </P |
| ><P |
| > Once you've defined your parameters and hit "Generate Report", |
| you can switch between HTML, CSV, Bar, Line and Pie. (Note: Pie |
| is only available if you didn't define a vertical axis, as pie |
| charts don't have one.) The other controls are fairly self-explanatory; |
| you can change the size of the image if you find text is overwriting |
| other text, or the bars are too thin to see. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="charts" |
| >6.11.2. Charts</A |
| ></H3 |
| ><P |
| > A chart is a view of the state of the bug database over time. |
| </P |
| ><P |
| > Bugzilla currently has two charting systems - Old Charts and New |
| Charts. Old Charts have been part of Bugzilla for a long time; they |
| chart each status and resolution for each product, and that's all. |
| They are deprecated, and going away soon - we won't say any more |
| about them. |
| New Charts are the future - they allow you to chart anything you |
| can define as a search. |
| </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 |
| > Both charting forms require the administrator to set up the |
| data-gathering script. If you can't see any charts, ask them whether |
| they have done so. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > An individual line on a chart is called a data set. |
| All data sets are organised into categories and subcategories. The |
| data sets that Bugzilla defines automatically use the Product name |
| as a Category and Component names as Subcategories, but there is no |
| need for you to follow that naming scheme with your own charts if |
| you don't want to. |
| </P |
| ><P |
| > Data sets may be public or private. Everyone sees public data sets in |
| the list, but only their creator sees private data sets. Only |
| administrators can make data sets public. |
| No two data sets, even two private ones, can have the same set of |
| category, subcategory and name. So if you are creating private data |
| sets, one idea is to have the Category be your username. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN2484" |
| >6.11.2.1. Creating Charts</A |
| ></H4 |
| ><P |
| > You create a chart by selecting a number of data sets from the |
| list, and pressing Add To List for each. In the List Of Data Sets |
| To Plot, you can define the label that data set will have in the |
| chart's legend, and also ask Bugzilla to Sum a number of data sets |
| (e.g. you could Sum data sets representing RESOLVED, VERIFIED and |
| CLOSED in a particular product to get a data set representing all |
| the resolved bugs in that product.) |
| </P |
| ><P |
| > If you've erroneously added a data set to the list, select it |
| using the checkbox and click Remove. Once you add more than one |
| data set, a "Grand Total" line |
| automatically appears at the bottom of the list. If you don't want |
| this, simply remove it as you would remove any other line. |
| </P |
| ><P |
| > You may also choose to plot only over a certain date range, and |
| to cumulate the results - that is, to plot each one using the |
| previous one as a baseline, so the top line gives a sum of all |
| the data sets. It's easier to try than to explain :-) |
| </P |
| ><P |
| > Once a data set is in the list, one can also perform certain |
| actions on it. For example, one can edit the |
| data set's parameters (name, frequency etc.) if it's one you |
| created or if you are an administrator. |
| </P |
| ><P |
| > Once you are happy, click Chart This List to see the chart. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H4 |
| CLASS="section" |
| ><A |
| NAME="AEN2491" |
| >6.11.2.2. Creating New Data Sets</A |
| ></H4 |
| ><P |
| > You may also create new data sets of your own. To do this, |
| click the "create a new data set" link on the Create Chart page. |
| This takes you to a search-like interface where you can define |
| the search that Bugzilla will plot. At the bottom of the page, |
| you choose the category, sub-category and name of your new |
| data set. |
| </P |
| ><P |
| > If you have sufficient permissions, you can make the data set public, |
| and reduce the frequency of data collection to less than the default |
| seven days. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="flags" |
| >6.12. Flags</A |
| ></H2 |
| ><P |
| > A flag is a kind of status that can be set on bugs or attachments |
| to indicate that the bugs/attachments are in a certain state. |
| Each installation can define its own set of flags that can be set |
| on bugs or attachments. |
| </P |
| ><P |
| > If your installation has defined a flag, you can set or unset that flag, |
| and if your administrator has enabled requesting of flags, you can submit |
| a request for another user to set the flag. |
| </P |
| ><P |
| > To set a flag, select either "+" or "-" from the drop-down menu next to |
| the name of the flag in the "Flags" list. The meaning of these values are |
| flag-specific and thus cannot be described in this documentation, |
| but by way of example, setting a flag named "review" to "+" may indicate |
| that the bug/attachment has passed review, while setting it to "-" |
| may indicate that the bug/attachment has failed review. |
| </P |
| ><P |
| > To unset a flag, click its drop-down menu and select the blank value. |
| </P |
| ><P |
| > If your administrator has enabled requests for a flag, request a flag |
| by selecting "?" from the drop-down menu and then entering the username |
| of the user you want to set the flag in the text field next to the menu. |
| </P |
| ><P |
| > A set flag appears in bug reports and on "edit attachment" pages with the |
| abbreviated username of the user who set the flag prepended to the |
| flag name. For example, if Jack sets a "review" flag to "+", it appears |
| as Jack: review [ + ] |
| </P |
| ><P |
| > A requested flag appears with the user who requested the flag prepended |
| to the flag name and the user who has been requested to set the flag |
| appended to the flag name within parentheses. For example, if Jack |
| asks Jill for review, it appears as Jack: review [ ? ] (Jill). |
| </P |
| ><P |
| > You can browse through open requests made of you and by you by selecting |
| 'My Requests' from the footer. You can also look at open requests limited |
| by other requesters, requestees, products, components, and flag names from |
| this page. Note that you can use '-' for requestee to specify flags with |
| 'no requestee' set. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="whining" |
| >6.13. Whining</A |
| ></H2 |
| ><P |
| > Whining is a feature in Bugzilla that can regularly annoy users at |
| specified times. Using this feature, users can execute saved searches |
| at specific times (i.e. the 15th of the month at midnight) or at |
| regular intervals (i.e. every 15 minutes on Sundays). The results of the |
| searches are sent to the user, either as a single email or as one email |
| per bug, along with some descriptive text. |
| </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 |
| > Throughout this section it will be assumed that all users are members |
| of the bz_canusewhines group, membership in which is required in order |
| to use the Whining system. You can easily make all users members of |
| the bz_canusewhines group by setting the User RegExp to ".*" (without |
| the quotes). |
| </P |
| ><P |
| > Also worth noting is the bz_canusewhineatothers group. Members of this |
| group can create whines for any user or group in Bugzilla using a |
| extended form of the whining interface. Features only available to |
| members of the bz_canusewhineatothers group will be noted in the |
| appropriate places. |
| </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 |
| > For whining to work, a special Perl script must be executed at regular |
| intervals. More information on this is available in |
| <A |
| HREF="#installation-whining" |
| >Section 2.3.4</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 |
| > This section does not cover the whineatnews.pl script. See |
| <A |
| HREF="#installation-whining-cron" |
| >Section 2.3.3</A |
| > for more information on |
| The Whining Cron. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="whining-overview" |
| >6.13.1. The Event</A |
| ></H3 |
| ><P |
| > The whining system defines an "Event" as one or more queries being |
| executed at regular intervals, with the results of said queries (if |
| there are any) being emailed to the user. Events are created by |
| clicking on the "Add new event" button. |
| </P |
| ><P |
| > Once a new event is created, the first thing to set is the "Email |
| subject line". The contents of this field will be used in the subject |
| line of every email generated by this event. In addition to setting a |
| subject, space is provided to enter some descriptive text that will be |
| included at the top of each message (to help you in understanding why |
| you received the email in the first place). |
| </P |
| ><P |
| > The next step is to specify when the Event is to be run (the Schedule) |
| and what searches are to be performed (the Queries). |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="whining-schedule" |
| >6.13.2. Whining Schedule</A |
| ></H3 |
| ><P |
| > Each whining event is associated with zero or more schedules. A |
| schedule is used to specify when the query (specified below) is to be |
| run. A new event starts out with no schedules (which means it will |
| never run, as it is not scheduled to run). To add a schedule, press |
| the "Add a new schedule" button. |
| </P |
| ><P |
| > Each schedule includes an interval, which you use to tell Bugzilla |
| when the event should be run. An event can be run on certain days of |
| the week, certain days of the month, during weekdays (defined as |
| Monday through Friday), or every day. |
| </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 |
| > Be careful if you set your event to run on the 29th, 30th, or 31st of |
| the month, as your event may not run exactly when expected. If you |
| want your event to run on the last day of the month, select "Last day |
| of the month" as the interval. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Once you have specified the day(s) on which the event is to be run, you |
| should now specify the time at which the event is to be run. You can |
| have the event run at a certain hour on the specified day(s), or |
| every hour, half-hour, or quarter-hour on the specified day(s). |
| </P |
| ><P |
| > If a single schedule does not execute an event as many times as you |
| would want, you can create another schedule for the same event. For |
| example, if you want to run an event on days whose numbers are |
| divisible by seven, you would need to add four schedules to the event, |
| setting the schedules to run on the 7th, 14th, 21st, and 28th (one day |
| per schedule) at whatever time (or times) you choose. |
| </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 a member of the bz_canusewhineatothers group, then you |
| will be presented with another option: "Mail to". Using this you |
| can control who will receive the emails generated by this event. You |
| can choose to send the emails to a single user (identified by email |
| address) or a single group (identified by group name). To send to |
| multiple users or groups, create a new schedule for each additional |
| user/group. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="whining-query" |
| >6.13.3. Whining Queries</A |
| ></H3 |
| ><P |
| > Each whining event is associated with zero or more queries. A query is |
| a saved search that is executed on the schedule specified (see above). |
| You start out with zero queries attached to the event (which means that |
| the event will not run, as there will never be any results to return). |
| To add a query, press the "Add a new query" button. |
| </P |
| ><P |
| > The first field to examine in your new query is the Sort field. Queries |
| are executed, and results returned, in the order specified by the Sort |
| field. Queries with lower Sort values will run before queries with |
| higher Sort values. |
| </P |
| ><P |
| > The next field to examine is the Search field. This is where you |
| choose the actual search that is to be run. Instead of defining search |
| parameters here, you are asked to choose from the list of saved |
| searches (the same list that appears at the bottom of every Bugzilla |
| page). You are only allowed to choose from searches that you have |
| saved yourself (the default saved search, "My Bugs", is not a valid |
| choice). If you do not have any saved searches, you can take this |
| opportunity to create one (see <A |
| HREF="#list" |
| >Section 6.6</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 |
| > When running queries, the whining system acts as if you are the user |
| executing the query. This means that the whining system will ignore |
| bugs that match your query, but that you can not access. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Once you have chosen the saved search to be executed, give the query a |
| descriptive title. This title will appear in the email, above the |
| results of the query. If you choose "One message per bug", the query |
| title will appear at the top of each email that contains a bug matching |
| your query. |
| </P |
| ><P |
| > Finally, decide if the results of the query should be sent in a single |
| email, or if each bug should appear in its own email. |
| </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 |
| > Think carefully before checking the "One message per bug" box. If |
| you create a query that matches thousands of bugs, you will receive |
| thousands of emails! |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H3 |
| CLASS="section" |
| ><A |
| NAME="AEN2544" |
| >6.13.4. Saving Your Changes</A |
| ></H3 |
| ><P |
| > Once you have defined at least one schedule, and created at least one |
| query, go ahead and "Update/Commit". This will save your Event and make |
| it available for immediate execution. |
| </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 ever feel like deleting your event, you may do so using the |
| "Remove Event" button in the upper-right corner of each Event. You |
| can also modify an existing event, so long as you "Update/Commit" |
| after completing your modifications. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></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-license" |
| > What license is Bugzilla distributed under? |
| </A |
| ></DT |
| ><DT |
| >A.1.2. <A |
| HREF="#faq-general-support" |
| > How do I get commercial support for Bugzilla? |
| </A |
| ></DT |
| ><DT |
| >A.1.3. <A |
| HREF="#faq-general-companies" |
| > What major companies or projects are currently using Bugzilla |
| for bug-tracking? |
| </A |
| ></DT |
| ><DT |
| >A.1.4. <A |
| HREF="#faq-general-maintainers" |
| > Who maintains Bugzilla? |
| </A |
| ></DT |
| ><DT |
| >A.1.5. <A |
| HREF="#faq-general-compare" |
| > How does Bugzilla stack up against other bug-tracking databases? |
| </A |
| ></DT |
| ><DT |
| >A.1.6. <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.7. <A |
| HREF="#faq-general-mysql" |
| > Why MySQL? I'm interested in seeing Bugzilla run on |
| PostgreSQL/Sybase/Oracle/Msql/MSSQL. |
| </A |
| ></DT |
| ><DT |
| >A.1.8. <A |
| HREF="#faq-general-bonsaitools" |
| > What is <TT |
| CLASS="filename" |
| >/usr/bonsaitools/bin/perl</TT |
| >? |
| </A |
| ></DT |
| ><DT |
| >A.1.9. <A |
| HREF="#faq-general-perlpath" |
| > My perl is located at <TT |
| CLASS="filename" |
| >/usr/local/bin/perl</TT |
| > |
| and not <TT |
| CLASS="filename" |
| >/usr/bin/perl</TT |
| >. Is there an easy |
| to change that in all the files that have this hard-coded? |
| </A |
| ></DT |
| ><DT |
| >A.1.10. <A |
| HREF="#faq-general-cookie" |
| > Is there an easy way to change the Bugzilla cookie name? |
| </A |
| ></DT |
| ><DT |
| >A.1.11. <A |
| HREF="#faq-mod-perl" |
| > Does bugzilla run under <TT |
| CLASS="filename" |
| >mod_perl</TT |
| >? |
| </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-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.3. <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.4. <A |
| HREF="#faq-phb-email" |
| > Is there email notification? If so, what do you see |
| when you get an email? |
| </A |
| ></DT |
| ><DT |
| >A.2.5. <A |
| HREF="#faq-phb-emailapp" |
| > Do users have to have any particular |
| type of email application? |
| </A |
| ></DT |
| ><DT |
| >A.2.6. <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 <SPAN |
| CLASS="QUOTE" |
| >"matching"</SPAN |
| > |
| 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.7. <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.8. <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.9. <A |
| HREF="#faq-phb-backup" |
| > Are there any backup features provided? |
| </A |
| ></DT |
| ><DT |
| >A.2.10. <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 what types of individuals |
| would we need to hire and how much would that cost if we were to |
| go with Bugzilla vs. buying an <SPAN |
| CLASS="QUOTE" |
| >"out-of-the-box"</SPAN |
| > |
| solution. |
| </A |
| ></DT |
| ><DT |
| >A.2.11. <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 days 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.12. <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 |
| ><DT |
| >A.2.13. <A |
| HREF="#faq-phb-renameBugs" |
| > We don't like referring to problems as 'bugs'. Can we change that? |
| </A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >3. <A |
| HREF="#faq-admin" |
| >Administrative Questions</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >A.3.1. <A |
| HREF="#faq-admin-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.3.2. <A |
| HREF="#faq-admin-livebackup" |
| > Can users be on the system while a backup is in progress? |
| </A |
| ></DT |
| ><DT |
| >A.3.3. <A |
| HREF="#faq-admin-cvsupdate" |
| > How can I update the code and the database using CVS? |
| </A |
| ></DT |
| ><DT |
| >A.3.4. <A |
| HREF="#faq-admin-enable-unconfirmed" |
| > How do I make it so that bugs can have an UNCONFIRMED status? |
| </A |
| ></DT |
| ><DT |
| >A.3.5. <A |
| HREF="#faq-admin-moving" |
| > How do I move a Bugzilla installation from one machine to another? |
| </A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >4. <A |
| HREF="#faq-security" |
| >Bugzilla Security</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >A.4.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.4.2. <A |
| HREF="#faq-security-knownproblems" |
| > Are there any security problems with Bugzilla? |
| </A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >5. <A |
| HREF="#faq-email" |
| >Bugzilla Email</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >A.5.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.5.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.5.3. <A |
| HREF="#faq-email-whine" |
| > I want whineatnews.pl to whine at something other than new and |
| reopened bugs. How do I do it? |
| </A |
| ></DT |
| ><DT |
| >A.5.4. <A |
| HREF="#faq-email-mailif" |
| > How do I set up the email interface to submit/change bugs via email? |
| </A |
| ></DT |
| ><DT |
| >A.5.5. <A |
| HREF="#faq-email-sendmailnow" |
| > Email takes FOREVER to reach me from Bugzilla -- it's |
| extremely slow. What gives? |
| </A |
| ></DT |
| ><DT |
| >A.5.6. <A |
| HREF="#faq-email-nonreceived" |
| > How come email from Bugzilla changes never reaches me? |
| </A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >6. <A |
| HREF="#faq-db" |
| >Bugzilla Database</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >A.6.1. <A |
| HREF="#faq-db-corrupted" |
| > I think my database might be corrupted, or contain |
| invalid entries. What do I do? |
| </A |
| ></DT |
| ><DT |
| >A.6.2. <A |
| HREF="#faq-db-manualedit" |
| > I want to manually edit some entries in my database. How? |
| </A |
| ></DT |
| ><DT |
| >A.6.3. <A |
| HREF="#faq-db-permissions" |
| > I think I've set up MySQL permissions correctly, but Bugzilla still |
| can't connect. |
| </A |
| ></DT |
| ><DT |
| >A.6.4. <A |
| HREF="#faq-db-synchronize" |
| > How do I synchronize bug information among multiple |
| different Bugzilla databases? |
| </A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >7. <A |
| HREF="#faq-nt" |
| >Bugzilla and Win32</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >A.7.1. <A |
| HREF="#faq-nt-easiest" |
| > What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)? |
| </A |
| ></DT |
| ><DT |
| >A.7.2. <A |
| HREF="#faq-nt-bundle" |
| > Is there a "Bundle::Bugzilla" equivalent for Win32? |
| </A |
| ></DT |
| ><DT |
| >A.7.3. <A |
| HREF="#faq-nt-mappings" |
| > CGI's are failing with a <SPAN |
| CLASS="QUOTE" |
| >"something.cgi is not a valid |
| Windows NT application"</SPAN |
| > error. Why? |
| </A |
| ></DT |
| ><DT |
| >A.7.4. <A |
| HREF="#faq-nt-dbi" |
| > I'm having trouble with the perl modules for NT not being |
| able to talk to the database. |
| </A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >8. <A |
| HREF="#faq-use" |
| >Bugzilla Usage</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >A.8.1. <A |
| HREF="#faq-use-changeaddress" |
| > How do I change my user name (email address) in Bugzilla? |
| </A |
| ></DT |
| ><DT |
| >A.8.2. <A |
| HREF="#faq-use-query" |
| > The query page is very confusing. |
| Isn't there a simpler way to query? |
| </A |
| ></DT |
| ><DT |
| >A.8.3. <A |
| HREF="#faq-use-accept" |
| > I'm confused by the behavior of the <SPAN |
| CLASS="QUOTE" |
| >"Accept"</SPAN |
| > |
| button in the Show Bug form. Why doesn't it assign the bug |
| to me when I accept it? |
| </A |
| ></DT |
| ><DT |
| >A.8.4. <A |
| HREF="#faq-use-attachment" |
| > I can't upload anything into the database via the |
| <SPAN |
| CLASS="QUOTE" |
| >"Create Attachment"</SPAN |
| > link. What am I doing wrong? |
| </A |
| ></DT |
| ><DT |
| >A.8.5. <A |
| HREF="#faq-use-keyword" |
| > How do I change a keyword in Bugzilla, once some bugs are using it? |
| </A |
| ></DT |
| ><DT |
| >A.8.6. <A |
| HREF="#faq-use-close" |
| > Why can't I close bugs from the <SPAN |
| CLASS="QUOTE" |
| >"Change Several Bugs |
| at Once"</SPAN |
| > page? |
| </A |
| ></DT |
| ></DL |
| ></DD |
| ><DT |
| >9. <A |
| HREF="#faq-hacking" |
| >Bugzilla Hacking</A |
| ></DT |
| ><DD |
| ><DL |
| ><DT |
| >A.9.1. <A |
| HREF="#faq-hacking-templatestyle" |
| > What kind of style should I use for templatization? |
| </A |
| ></DT |
| ><DT |
| >A.9.2. <A |
| HREF="#faq-hacking-bugzillabugs" |
| > What bugs are in Bugzilla right now? |
| </A |
| ></DT |
| ><DT |
| >A.9.3. <A |
| HREF="#faq-hacking-priority" |
| > How can I change the default priority to a null value? |
| For instance, have the default priority be <SPAN |
| CLASS="QUOTE" |
| >"---"</SPAN |
| > |
| instead of <SPAN |
| CLASS="QUOTE" |
| >"P2"</SPAN |
| >? |
| </A |
| ></DT |
| ><DT |
| >A.9.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-license" |
| ></A |
| ><B |
| >A.1.1. </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.2. </B |
| > |
| How do I get commercial support for Bugzilla? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| <A |
| HREF="http://www.bugzilla.org/support/consulting.html" |
| TARGET="_top" |
| >http://www.bugzilla.org/support/consulting.html</A |
| > |
| is a list of companies and individuals who have asked us to |
| list them as consultants for Bugzilla. |
| </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.3. </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. We have a fairly |
| complete list available on our website at |
| <A |
| HREF="http://bugzilla.org/installation-list/" |
| TARGET="_top" |
| >http://bugzilla.org/installation-list/</A |
| >. If you |
| have an installation of Bugzilla and would like to be added to the |
| list, whether it's a public install or not, simply e-mail |
| Gerv <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:gerv@mozilla.org" |
| >gerv@mozilla.org</A |
| >></CODE |
| >. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-general-maintainers" |
| ></A |
| ><B |
| >A.1.4. </B |
| > |
| Who maintains Bugzilla? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| A <A |
| HREF="http://www.bugzilla.org/developers/profiles.html" |
| TARGET="_top" |
| >core |
| team</A |
| >, led by Dave Miller (justdave@bugzilla.org). |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-general-compare" |
| ></A |
| ><B |
| >A.1.5. </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. In the experience of Matthew Barnson (the original |
| author of this FAQ), though, 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, |
| greater flexibility, and superior ease-of-use when compared |
| to commercial bug-tracking software. |
| </P |
| ><P |
| > If you happen to be a vendor for commercial bug-tracking |
| software, and would like to submit a list of advantages your |
| product has over Bugzilla, simply send it to |
| <CODE |
| CLASS="email" |
| ><<A |
| HREF="mailto:documentation@bugzilla.org" |
| >documentation@bugzilla.org</A |
| >></CODE |
| > and we'd be happy to |
| include the comparison in our documentation. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-general-bzmissing" |
| ></A |
| ><B |
| >A.1.6. </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. While Bugzilla makes strides in usability, |
| customizability, scalability, and user interface with each release, |
| that doesn't mean it can't still use improvement! |
| </P |
| ><P |
| > The best way to make an enhancement request is to <A |
| HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla" |
| TARGET="_top" |
| >file |
| a bug at bugzilla.mozilla.org</A |
| > and set the Severity |
| to 'enhancement'. Your 'request for enhancement' (RFE) will |
| start out in the UNCONFIRMED state, and will stay there until |
| someone with the ability to COMFIRM the bug reviews it. |
| If that person feels it to be a good request that fits in with |
| Bugzilla's overall direction, the status will be changed to |
| NEW; if not, they will probably explain why and set the bug |
| to RESOLVED/WONTFIX. If someone else has made the same (or |
| almost the same) request before, your request will be marked |
| RESOLVED/DUPLICATE, and a pointer to the previous RFE will be |
| added. |
| </P |
| ><P |
| > Even if your RFE gets approved, that doesn't mean it's going |
| to make it right into the next release; there are a limited |
| number of developers, and a whole lot of RFEs... some of |
| which are <EM |
| >quite</EM |
| > complex. If you're a |
| code-hacking sort of person, you can help the project along |
| by making a patch yourself that supports the functionality |
| you require. If you have never contributed anything to |
| Bugzilla before, please be sure to read the |
| <A |
| HREF="http://www.bugzilla.org/docs/developer.html" |
| TARGET="_top" |
| >Developers' Guide</A |
| > |
| and |
| <A |
| HREF="http://www.bugzilla.org/docs/contributor.html" |
| TARGET="_top" |
| >Contributors' Guide</A |
| > |
| before going ahead. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-general-mysql" |
| ></A |
| ><B |
| >A.1.7. </B |
| > |
| Why MySQL? I'm interested in seeing Bugzilla run on |
| PostgreSQL/Sybase/Oracle/Msql/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; track the progress of this initiative in <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=98304" |
| TARGET="_top" |
| >bug 98304</A |
| >. |
| </P |
| ><P |
| > Sybase support is no longer being worked on. Even if it eventually |
| happens, it's VERY unlikely to work without the end-user-company |
| having to stick a few developers on making several manual changes. |
| Sybase is just NOT very standards-compliant (despite all the hype), |
| and it turned out that way too much had to be changed to make it |
| work -- like moving half of the application logic into stored |
| procedures to get any kind of decent performance out of it. |
| <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=173130" |
| TARGET="_top" |
| >Bug |
| 173130</A |
| > is the relevant bug. |
| </P |
| ><P |
| > Red Hat once ran a version of Bugzilla that worked on Oracle, |
| but that was long, long ago; that version (Bugzilla 2.8) is |
| now obsolete, insecure, and totally unsupported. Red Hat's |
| current Bugzilla (based on Bugzilla 2.17.1) uses PostgreSQL, |
| and work is being done to merge those changes into the main |
| distribution. (See above.) At this time we know of no recent |
| ports of Bugzilla to Oracle. (In our honest opinion, Bugzilla |
| doesn't need what Oracle offers.) |
| </P |
| ><P |
| > <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=237862" |
| TARGET="_top" |
| >Bug |
| 237862</A |
| > is a good bug to read through if you'd like to see |
| what progress is being made on general database compatibility. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-general-bonsaitools" |
| ></A |
| ><B |
| >A.1.8. </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.9. </B |
| > |
| My perl is located at <TT |
| CLASS="filename" |
| >/usr/local/bin/perl</TT |
| > |
| and not <TT |
| CLASS="filename" |
| >/usr/bin/perl</TT |
| >. Is there an easy |
| to change that in all the files that have this hard-coded? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| The easiest way to get around this is to create a link from |
| one to the other: |
| <B |
| CLASS="command" |
| >ln -s /usr/local/bin/perl /usr/bin/perl</B |
| >. |
| If that's not an option for you, the following bit of perl |
| magic will change all the shebang lines (that is to say, |
| the line at the top of each file that starts with '#!' |
| and contains the path) to something else: |
| </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 |
| ><P |
| > Sadly, this command-line won't work on Windows unless you |
| also have Cygwin. However, MySQL comes with a binary called |
| <B |
| CLASS="command" |
| >replace</B |
| > which can do the job: |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > C:\mysql\bin\replace "#!/usr/bin/perl" "#!C:\perl\bin\perl" -- *.cgi *.pl |
| </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 your perl path is something else again, just follow the |
| above examples and replace |
| <TT |
| CLASS="filename" |
| >/usr/local/bin/perl</TT |
| > with your own perl path. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Once you've modified all your files, you'll also need to modify the |
| <TT |
| CLASS="filename" |
| >t/002goodperl.t</TT |
| > test, as it tests that all |
| shebang lines are equal to <TT |
| CLASS="filename" |
| >/usr/bin/perl</TT |
| >. |
| (For more information on the test suite, please check out the |
| appropriate section in the <A |
| HREF="http://www.bugzilla.org/docs/developer.html#testsuite" |
| TARGET="_top" |
| >Developers' |
| Guide</A |
| >.) Having done this, run the test itself: |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > perl runtests.pl 2 --verbose |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| to ensure that you've modified all the relevant files. |
| </P |
| ><P |
| > If using Apache on Windows, you can avoid the whole problem |
| by setting the <A |
| HREF="http://httpd.apache.org/docs-2.0/mod/core.html#scriptinterpretersource" |
| TARGET="_top" |
| > ScriptInterpreterSource</A |
| > directive to 'Registry'. |
| (If using Apache 2 or higher, set it to 'Registry-Strict'.) |
| ScriptInterperterSource requires a registry entry |
| <SPAN |
| CLASS="QUOTE" |
| >"HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command"</SPAN |
| > to |
| associate .cgi files with your perl executable. If one does |
| not already exist, create it with a default value of |
| <SPAN |
| CLASS="QUOTE" |
| >"<full path to perl> -T"</SPAN |
| >, e.g. |
| <SPAN |
| CLASS="QUOTE" |
| >"C:\Perl\bin\perl.exe -T"</SPAN |
| >. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-general-cookie" |
| ></A |
| ><B |
| >A.1.10. </B |
| > |
| Is there an easy way to change the Bugzilla cookie name? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| At present, no. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-mod-perl" |
| ></A |
| ><B |
| >A.1.11. </B |
| > |
| Does bugzilla run under <TT |
| CLASS="filename" |
| >mod_perl</TT |
| >? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| At present, no. Work is slowly taking place to remove global |
| variables, use $cgi, and use DBI. These are all necessary for |
| mod_perl (as well as being good for other reasons). Visit |
| <A |
| HREF="https://bugzilla.mozilla.org/show_bug.cgi?id=87406" |
| TARGET="_top" |
| > bug 87406</A |
| > to view the discussion and progress. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandadiv" |
| ><H3 |
| ><A |
| NAME="faq-phb" |
| ></A |
| >2. Managerial Questions</H3 |
| ><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. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-phb-priorities" |
| ></A |
| ><B |
| >A.2.2. </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.3. </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. |
| Fuller documentation is provided in <A |
| HREF="#reporting" |
| >Section 6.11</A |
| >. |
| </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.4. </B |
| > |
| Is there email notification? 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-emailapp" |
| ></A |
| ><B |
| >A.2.5. </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 <SPAN |
| CLASS="QUOTE" |
| >"respond to messages in the format in |
| which they were sent"</SPAN |
| >. 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.6. </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 <SPAN |
| CLASS="QUOTE" |
| >"matching"</SPAN |
| > |
| 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 spreadsheet applications. |
| </P |
| ><P |
| > To use the RDF format of the buglist it is necessary to append a |
| <SAMP |
| CLASS="computeroutput" |
| >&ctype=rdf</SAMP |
| > to the URL. RDF |
| is meant to be machine readable and thus it is assumed that the |
| URL would be generated programmatically 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.7. </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 |
| >. |
| Some admin interfaces have been templatized (for easy localization) |
| but many of them are still available in 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.8. </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-backup" |
| ></A |
| ><B |
| >A.2.9. </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-maintenance" |
| ></A |
| ><B |
| >A.2.10. </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 what types of individuals |
| would we need to hire and how much would that cost if we were to |
| go with Bugzilla vs. buying an <SPAN |
| CLASS="QUOTE" |
| >"out-of-the-box"</SPAN |
| > |
| 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.11. </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 days 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 to who has reasonable Perl skills, and a familiarity |
| with the operating system on which Bugzilla will be running, |
| and have them handle your process management, bug-tracking |
| maintenance, and local customization. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-phb-cost" |
| ></A |
| ><B |
| >A.2.12. </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. Bugzilla, Perl, the Template Toolkit, and all other support |
| software needed to make Bugzilla work can be downloaded for free. |
| MySQL -- the database used by Bugzilla -- is also open-source, but |
| they ask that if you find their product valuable, you purchase a |
| support contract from them that suits your needs. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-phb-renameBugs" |
| ></A |
| ><B |
| >A.2.13. </B |
| > |
| We don't like referring to problems as 'bugs'. Can we change that? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| Yes! As of Bugzilla 2.18, it is a simple matter to change the |
| word 'bug' into whatever word/phrase is used by your organization. |
| See the documentation on Customization for more details, |
| specifically <A |
| HREF="#template-specific" |
| >Section 5.1.5</A |
| >. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandadiv" |
| ><H3 |
| ><A |
| NAME="faq-admin" |
| ></A |
| >3. Administrative Questions</H3 |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-admin-midair" |
| ></A |
| ><B |
| >A.3.1. </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 -- which means that it warns a user when a commit is |
| about to conflict with commits recently made by another user, |
| and offers the second user a choice of options to deal with |
| the conflict. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-admin-livebackup" |
| ></A |
| ><B |
| >A.3.2. </B |
| > |
| Can users be on the system while a backup is in progress? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| Yes, but 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. If your database |
| is larger, you may want to look into alternate backup |
| techniques, such as database replication, or backing up from |
| a read-only mirror. (Read up on these in the MySQL docs |
| on the MySQL site.) |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-admin-cvsupdate" |
| ></A |
| ><B |
| >A.3.3. </B |
| > |
| How can I update the code and the database using CVS? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| <P |
| ></P |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| > Make a backup of both your Bugzilla directory and the |
| database. For the Bugzilla directory this is as easy as |
| doing <B |
| CLASS="command" |
| >cp -rp bugzilla bugzilla.bak</B |
| >. |
| For the database, there's a number of options - see the |
| MySQL docs and pick the one that fits you best (the easiest |
| is to just make a physical copy of the database on the disk, |
| but you have to have the database server shut down to do |
| that without risking dataloss). |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Make the Bugzilla directory your current directory. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Use <B |
| CLASS="command" |
| >cvs -q update -AdP</B |
| > if you want to |
| update to the tip or |
| <B |
| CLASS="command" |
| >cvs -q update -dP -rTAGNAME</B |
| > |
| if you want a specific version (in that case you'll have to |
| replace TAGNAME with a CVS tag name such as BUGZILLA-2_16_5). |
| </P |
| ><P |
| > If you've made no local changes, this should be very clean. |
| If you have made local changes, then watch the cvs output |
| for C results. If you get any lines that start with a C |
| it means there were conflicts between your local changes |
| and what's in CVS. You'll need to fix those manually before |
| continuing. |
| </P |
| ></LI |
| ><LI |
| ><P |
| > After resolving any conflicts that the cvs update operation |
| generated, running <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > will |
| take care of updating the database for you as well as any |
| other changes required for the new version to operate. |
| </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 |
| > Once you run checksetup.pl, the only way to go back is |
| to restore the database backups. You can't |
| <SPAN |
| CLASS="QUOTE" |
| >"downgrade"</SPAN |
| > the system cleanly under most |
| circumstances. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></LI |
| ></OL |
| > |
| </P |
| ><P |
| > See also the instructions in <A |
| HREF="#upgrade-cvs" |
| >Section 3.11.2.1</A |
| >. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-admin-enable-unconfirmed" |
| ></A |
| ><B |
| >A.3.4. </B |
| > |
| How do I make it so that bugs can have an UNCONFIRMED status? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| To use the UNCONFIRMED status, you must have the 'usevotes' |
| parameter set to <SPAN |
| CLASS="QUOTE" |
| >"On"</SPAN |
| >. You must then visit the |
| <TT |
| CLASS="filename" |
| >editproducts.cgi</TT |
| > page and set the <SPAN |
| CLASS="QUOTE" |
| >" |
| Number of votes a bug in this product needs to automatically |
| get out of the UNCONFIRMED state"</SPAN |
| > to be a non-zero number. |
| (You will have to do this for each product that wants to use |
| the UNCONFIRMED state.) If you do not actually want users to be |
| able to vote for bugs entered against this product, leave the |
| <SPAN |
| CLASS="QUOTE" |
| >"Maximum votes per person"</SPAN |
| > value at '0'. |
| </P |
| ><P |
| > There is work being done to decouple the UNCONFIRMED state from |
| the 'usevotes' parameter for future versions of Bugzilla. |
| Follow the discussion and progress at <A |
| HREF="https://bugzilla.mozilla.org/show_bug.cgi?id=162060" |
| TARGET="_top" |
| >bug |
| 162060</A |
| >. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-admin-moving" |
| ></A |
| ><B |
| >A.3.5. </B |
| > |
| How do I move a Bugzilla installation from one machine to another? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| Use mysqldump to make a backup of the bugs database. For a |
| typical Bugzilla setup, such a command might look like this: |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > /usr/bin/mysqldump -u(username) -p(password) --database bugs > bugzilla-backup.txt |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| See the <A |
| HREF="http://dev.mysql.com/doc/mysql/en/mysqldump.html" |
| TARGET="_top" |
| > mysqldump documentation</A |
| > for more information on using |
| the tool, including how to restore your copy onto the destination |
| machine. |
| </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 |
| > Depending on the size of your database, and the power of your |
| machine, the mysqldump command could be running long enough |
| that the password would be visible to someone using the |
| <B |
| CLASS="command" |
| >ps</B |
| > command. If you are on a multi-user |
| machine, and this is a concern to you, create an entry in |
| the file <TT |
| CLASS="filename" |
| >~/.my.cnf</TT |
| > that looks like this: |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > [mysqldump] |
| user=bugs |
| password=mypassword |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| and then leave the 'user' and 'password' params out of the |
| command line. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > On your new machine, follow the instructions found in <A |
| HREF="#installing-bugzilla" |
| >Chapter 2</A |
| > as far as setting up the physical |
| environment of the new machine with perl, webserver, modules, etc. |
| Having done that, you can either: copy your entire Bugzilla |
| directory from the old machine to a new one (if you want to keep |
| your existing code and modifications), or download a newer version |
| (if you are planning to upgrade at the same time). Even if you are |
| upgrading to clean code, you will still want to bring over the |
| <TT |
| CLASS="filename" |
| >localconfig</TT |
| > file, and the |
| <TT |
| CLASS="filename" |
| >data</TT |
| > directory from the |
| old machine, as they contain configuration information that you |
| probably won't want to re-create. |
| </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 the location or port number of your SQL server changed |
| as part of the move, you'll need to update the appropriate |
| variables in localconfig before taking the next step. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Once you have your code in place, and your database has |
| been restored from the backup you made in step 1, run |
| <B |
| CLASS="command" |
| >checksetup.pl</B |
| >. This will upgrade your |
| database (if necessary), rebuild your templates, etc. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandadiv" |
| ><H3 |
| ><A |
| NAME="faq-security" |
| ></A |
| >4. Bugzilla Security</H3 |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-security-mysql" |
| ></A |
| ><B |
| >A.4.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: <B |
| CLASS="command" |
| >mysqld --skip-grant-tables</B |
| >. |
| Please remember that <EM |
| >this makes MySQL as secure as |
| taping a $100 to the floor of a football stadium bathroom for |
| safekeeping.</EM |
| > |
| </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 can't be stressed enough. Doing this is a bad idea. |
| Please consult <A |
| HREF="#security-mysql" |
| >Section 4.2</A |
| > of this guide |
| and the MySQL documentation for better solutions. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-security-knownproblems" |
| ></A |
| ><B |
| >A.4.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 |
| ><DIV |
| CLASS="qandadiv" |
| ><H3 |
| ><A |
| NAME="faq-email" |
| ></A |
| >5. Bugzilla Email</H3 |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-email-nomail" |
| ></A |
| ><B |
| >A.5.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 can stop Bugzilla from sending any mail by unchecking |
| all boxes on the 'Edit prefs' -> 'Email settings' page. |
| (As of 2.18,this is made easier by the addition of a 'Disable |
| All Mail' button.) Alternately, you can add their email address |
| to the <TT |
| CLASS="filename" |
| >data/nomail</TT |
| > file (one email address |
| per line). This will override their personal preferences, and |
| they will never be sent mail again. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-email-testing" |
| ></A |
| ><B |
| >A.5.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 |
| > |
| To disable email, set the |
| <VAR |
| CLASS="option" |
| >mail_delivery_method</VAR |
| > parameter to |
| <VAR |
| CLASS="literal" |
| >none</VAR |
| > (2.20 and later), or |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >$enableSendMail</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > parameter to '0' |
| in either <TT |
| CLASS="filename" |
| >BugMail.pm</TT |
| > (2.18 and later) or |
| <TT |
| CLASS="filename" |
| >processmail</TT |
| > (up to 2.16.x). |
| </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 |
| > Up to 2.16.x, changing |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >$enableSendMail</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| will only affect bugmail; email related to password changes, |
| email address changes, bug imports, flag changes, etc. will |
| still be sent out. As of the final release of 2.18, however, |
| the above step will disable <EM |
| >all</EM |
| > mail |
| sent from Bugzilla for any purpose. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > To have bugmail (and only bugmail) redirected to you instead of |
| its intended recipients, leave |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >$enableSendMail</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > alone; |
| instead, edit the <SPAN |
| CLASS="QUOTE" |
| >"newchangedmail"</SPAN |
| > parameter |
| as follows: |
| </P |
| ><P |
| ></P |
| ><UL |
| ><LI |
| ><P |
| > Replace <SPAN |
| CLASS="QUOTE" |
| >"To:"</SPAN |
| > with <SPAN |
| CLASS="QUOTE" |
| >"X-Real-To:"</SPAN |
| > |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Replace <SPAN |
| CLASS="QUOTE" |
| >"Cc:"</SPAN |
| > with <SPAN |
| CLASS="QUOTE" |
| >"X-Real-CC:"</SPAN |
| > |
| </P |
| ></LI |
| ><LI |
| ><P |
| > Add a <SPAN |
| CLASS="QUOTE" |
| >"To: %lt;your_email_address>"</SPAN |
| > |
| </P |
| ></LI |
| ></UL |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-email-whine" |
| ></A |
| ><B |
| >A.5.3. </B |
| > |
| I want whineatnews.pl to whine at something other than new and |
| reopened bugs. How do I do it? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| For older versions of Bugzilla, you may be able to apply |
| Klaas Freitag's patch for <SPAN |
| CLASS="QUOTE" |
| >"whineatassigned"</SPAN |
| >, |
| which can be found in |
| <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=6679" |
| TARGET="_top" |
| >bug |
| 6679</A |
| >. Note that this patch was made in 2000, so it may take |
| some work to apply cleanly to any releases of Bugzilla newer than |
| that, but you can use it as a starting point. |
| </P |
| ><P |
| > An updated (and much-expanded) version of this functionality is |
| due to be released as part of Bugzilla 2.20; see |
| <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=185090" |
| TARGET="_top" |
| >bug |
| 185090</A |
| > for the discussion, and for more up-to-date patches |
| if you just can't wait. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-email-mailif" |
| ></A |
| ><B |
| >A.5.4. </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.5.5. </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 <SPAN |
| CLASS="application" |
| >sendmail</SPAN |
| >, try |
| enabling <VAR |
| CLASS="option" |
| >sendmailnow</VAR |
| > in |
| <TT |
| CLASS="filename" |
| >editparams.cgi</TT |
| >. For earlier versions of |
| <SPAN |
| CLASS="application" |
| >sendmail</SPAN |
| >, one could achieve |
| significant performance improvement in the UI (at the cost of |
| delaying the sending of mail) by setting this parameter to |
| <VAR |
| CLASS="literal" |
| >off</VAR |
| >. Sites with |
| <SPAN |
| CLASS="application" |
| >sendmail</SPAN |
| > version 8.12 (or higher) |
| should leave this <VAR |
| CLASS="literal" |
| >on</VAR |
| >, as they will not see |
| any performance benefit. |
| </P |
| ><P |
| > 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 are correct for your MTA. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-email-nonreceived" |
| ></A |
| ><B |
| >A.5.6. </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 <SPAN |
| CLASS="QUOTE" |
| >"Log In"</SPAN |
| > link of your Bugzilla |
| installation and clicking the <SPAN |
| CLASS="QUOTE" |
| >"Submit Request"</SPAN |
| > |
| button after entering your email address. |
| </P |
| ><P |
| > If you never receive mail from Bugzilla, chances are you do |
| not have sendmail in "/usr/lib/sendmail". Ensure sendmail |
| lives in, or is symlinked to, "/usr/lib/sendmail". |
| </P |
| ><P |
| > If you are using an MTA other than |
| <SPAN |
| CLASS="application" |
| >sendmail</SPAN |
| > the |
| <VAR |
| CLASS="option" |
| >sendmailnow</VAR |
| > param must be set to |
| <VAR |
| CLASS="literal" |
| >on</VAR |
| > or no mail will be sent. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandadiv" |
| ><H3 |
| ><A |
| NAME="faq-db" |
| ></A |
| >6. Bugzilla Database</H3 |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-db-corrupted" |
| ></A |
| ><B |
| >A.6.1. </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 |
| >) 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.6.2. </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. If you understand SQL, though, 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/products/mysqlcc/" |
| TARGET="_top" |
| >MySQL |
| Control Center</A |
| >. |
| </P |
| ><P |
| > Remember, backups are your friend. Everyone makes mistakes, and |
| it's nice to have a safety net in case you mess something up. |
| Consider using <B |
| CLASS="command" |
| >mysqldump</B |
| > to make a duplicate |
| of your database before altering it manually. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-db-permissions" |
| ></A |
| ><B |
| >A.6.3. </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: |
| <B |
| CLASS="command" |
| >mysqld --skip-grant-tables</B |
| >. |
| 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.6.4. </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 built-in 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 <SPAN |
| CLASS="QUOTE" |
| >"move.pl"</SPAN |
| > script in the Bugzilla |
| distribution. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandadiv" |
| ><H3 |
| ><A |
| NAME="faq-nt" |
| ></A |
| >7. Bugzilla and Win32</H3 |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-nt-easiest" |
| ></A |
| ><B |
| >A.7.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. B^) |
| </P |
| ><P |
| > Seriously though, making Bugzilla work easily with Windows |
| was one of the major goals of the 2.18 milestone. If the |
| necessary components are in place (perl, a webserver, an MTA, etc.) |
| then installation of Bugzilla on a Windows box should be no more |
| difficult than on any other platform. As with any installation, |
| we recommend that you carefully and completely follow the |
| installation instructions in <A |
| HREF="#os-win32" |
| >Section 2.4.1</A |
| >. |
| </P |
| ><P |
| > While doing so, don't forget to check out the very excellent guide |
| to <A |
| HREF="http://www.bugzilla.org/docs/win32install.html" |
| TARGET="_top" |
| > Installing Bugzilla on Microsoft Windows</A |
| > written by |
| Byron Jones. Thanks, Byron! |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-nt-bundle" |
| ></A |
| ><B |
| >A.7.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.7.3. </B |
| > |
| CGI's are failing with a <SPAN |
| CLASS="QUOTE" |
| >"something.cgi is not a valid |
| Windows NT application"</SPAN |
| > 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="AEN2969" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| > <SPAN |
| CLASS="QUOTE" |
| >"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: |
| <B |
| CLASS="command" |
| >c:\perl\bin\perl.exe %s %s</B |
| >"</SPAN |
| > |
| </P |
| ></BLOCKQUOTE |
| > |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-nt-dbi" |
| ></A |
| ><B |
| >A.7.4. </B |
| > |
| I'm having trouble with the perl modules for NT not being |
| able to talk 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 |
| > <SAMP |
| CLASS="prompt" |
| >PPM></SAMP |
| > <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 |
| >8. Bugzilla Usage</H3 |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-use-changeaddress" |
| ></A |
| ><B |
| >A.8.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.8.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 |
| ><P |
| > As of 2.18, there is also a 'simpler' search available. At the top |
| of the search page are two links; <SPAN |
| CLASS="QUOTE" |
| >"Advanced Search"</SPAN |
| > |
| will take you to the familiar full-power/full-complexity search |
| page. The <SPAN |
| CLASS="QUOTE" |
| >"Find a Specific Bug"</SPAN |
| > link will take you |
| to a much-simplified page where you can pick a product and |
| status (open,closed, or both), then enter words that appear in |
| the bug you want to find. This search will scour the 'Summary' |
| and 'Comment' fields, and return a list of bugs sorted so that |
| the bugs with the most hits/matches are nearer to the top. |
| </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 |
| > Matches in the Summary will 'trump' matches in comments, |
| and bugs with summary-matches will be placed higher in |
| the buglist -- even if a lower-ranked bug has more matches |
| in the comments section. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Bugzilla uses a cookie to remember which version of the page |
| you visited last, and brings that page up when you next do a |
| search. The default page for new users (or after an upgrade) |
| is the 'simple' search. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-use-accept" |
| ></A |
| ><B |
| >A.8.3. </B |
| > |
| I'm confused by the behavior of the <SPAN |
| CLASS="QUOTE" |
| >"Accept"</SPAN |
| > |
| 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. If you want to change this behavior, though, you |
| have your choice of patches: |
| <P |
| ></P |
| ><TABLE |
| BORDER="0" |
| ><TBODY |
| ><TR |
| ><TD |
| > <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=35195" |
| TARGET="_top" |
| >Bug 35195</A |
| > |
| seeks to add an <SPAN |
| CLASS="QUOTE" |
| >"...and accept the bug"</SPAN |
| > checkbox |
| to the UI. It has two patches attached to it: |
| <A |
| HREF="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8029" |
| TARGET="_top" |
| >attachment 8029</A |
| > |
| was originally created for Bugzilla 2.12, while |
| <A |
| HREF="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=91372" |
| TARGET="_top" |
| >attachment 91372</A |
| > |
| is an updated version for Bugzilla 2.16 |
| </TD |
| ></TR |
| ><TR |
| ><TD |
| > <A |
| HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=37613" |
| TARGET="_top" |
| >Bug |
| 37613</A |
| > also provides two patches (against Bugzilla |
| 2.12): one to add a 'Take Bug' option, and the other to |
| automatically reassign the bug on 'Accept'. |
| </TD |
| ></TR |
| ></TBODY |
| ></TABLE |
| ><P |
| ></P |
| > |
| These patches are all somewhat dated now, and cannot be applied |
| directly, but they are simple enough to provide a guide on how |
| Bugzilla can be customized and updated to suit your needs. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-use-attachment" |
| ></A |
| ><B |
| >A.8.4. </B |
| > |
| I can't upload anything into the database via the |
| <SPAN |
| CLASS="QUOTE" |
| >"Create Attachment"</SPAN |
| > 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 version |
| of your favourite browser to handle uploads correctly. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-use-keyword" |
| ></A |
| ><B |
| >A.8.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 |
| <B |
| CLASS="command" |
| >sanitycheck.cgi</B |
| > to fix it. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-use-close" |
| ></A |
| ><B |
| >A.8.6. </B |
| > |
| Why can't I close bugs from the <SPAN |
| CLASS="QUOTE" |
| >"Change Several Bugs |
| at Once"</SPAN |
| > page? |
| </P |
| ></DIV |
| ><DIV |
| CLASS="answer" |
| ><P |
| ><B |
| > </B |
| > |
| Simple answer; you can. |
| </P |
| ><P |
| > The logic behind the page checks every bug in the list to |
| determine legal state changes, and then only shows you controls |
| to do things that could apply to <EM |
| >every</EM |
| > bug |
| on the list. The reason for this is that if you try to do something |
| illegal to a bug, the whole process will grind to a halt, and all |
| changes after the failed one will <EM |
| >also</EM |
| > fail. |
| Since that isn't a good outcome, the page doesn't even present |
| you with the option. |
| </P |
| ><P |
| > In practical terms, that means that in order to mark |
| multiple bugs as CLOSED, then every bug on the page has to be |
| either RESOLVED or VERIFIED already; if this is not the case, |
| then the option to close the bugs will not appear on the page. |
| </P |
| ><P |
| > The rationale is that if you pick one of the bugs that's not |
| VERIFIED and try to CLOSE it, the bug change will fail |
| miserably (thus killing any changes in the list after it |
| while doing the bulk change) so it doesn't even give you the |
| choice. |
| </P |
| ></DIV |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandadiv" |
| ><H3 |
| ><A |
| NAME="faq-hacking" |
| ></A |
| >9. Bugzilla Hacking</H3 |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-hacking-templatestyle" |
| ></A |
| ><B |
| >A.9.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.9.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.20.2 release |
| <A |
| HREF="http://bugzilla.mozilla.org/buglist.cgi?product=Bugzilla&target_milestone=Bugzilla+&bz-nextver;" |
| TARGET="_top" |
| >here</A |
| >. |
| This list includes bugs for the 2.20.2 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.9.3. </B |
| > |
| How can I change the default priority to a null value? |
| For instance, have the default priority be <SPAN |
| CLASS="QUOTE" |
| >"---"</SPAN |
| > |
| instead of <SPAN |
| CLASS="QUOTE" |
| >"P2"</SPAN |
| >? |
| </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 |
| <SPAN |
| CLASS="QUOTE" |
| >"---"</SPAN |
| > priority field to your localconfig file |
| in the appropriate area, re-running checksetup.pl, and then |
| changing the default priority in your browser using |
| <B |
| CLASS="command" |
| >editparams.cgi</B |
| >. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="qandaentry" |
| ><DIV |
| CLASS="question" |
| ><P |
| ><A |
| NAME="faq-hacking-patches" |
| ></A |
| ><B |
| >A.9.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 <SPAN |
| CLASS="QUOTE" |
| >"diff |
| -u"</SPAN |
| > against the <EM |
| >current sources</EM |
| > |
| checked out of CVS), or new source file by clicking |
| <SPAN |
| CLASS="QUOTE" |
| >"Create a new attachment"</SPAN |
| > 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 <SPAN |
| CLASS="QUOTE" |
| >"Patch"</SPAN |
| > 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="troubleshooting" |
| ></A |
| >Appendix B. Troubleshooting</H1 |
| ><P |
| >This section gives solutions to common Bugzilla installation |
| problems. If none of the section headings seems to match your |
| problem, read the general advice. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="general-advice" |
| >B.1. General Advice</A |
| ></H2 |
| ><P |
| >If you can't get <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > to run to |
| completion, it normally explains what's wrong and how to fix it. |
| If you can't work it out, or if it's being uncommunicative, post |
| the errors in the |
| <A |
| HREF="news://news.mozilla.org/netscape.public.mozilla.webtools" |
| TARGET="_top" |
| >netscape.public.mozilla.webtools</A |
| > |
| newsgroup. |
| </P |
| ><P |
| >If you have made it all the way through |
| <A |
| HREF="#installation" |
| >Section 2.1</A |
| > (Installation) and |
| <A |
| HREF="#configuration" |
| >Section 2.2</A |
| > (Configuration) but accessing the Bugzilla |
| URL doesn't work, the first thing to do is to check your webserver error |
| log. For Apache, this is often located at |
| <TT |
| CLASS="filename" |
| >/etc/logs/httpd/error_log</TT |
| >. The error messages |
| you see may be self-explanatory enough to enable you to diagnose and |
| fix the problem. If not, see below for some commonly-encountered |
| errors. If that doesn't help, post the errors to the newsgroup. |
| </P |
| ><P |
| > Bugzilla can also log all user-based errors (and many code-based errors) |
| that occur, without polluting the web server error log. To enable |
| Bugzilla error logging, create a file that Bugzilla can write to, named |
| <TT |
| CLASS="filename" |
| >errorlog</TT |
| >, in the Bugzilla <TT |
| CLASS="filename" |
| >data</TT |
| > |
| directory. Errors will be logged as they occur, and will include the type |
| of the error, the IP address and username (if available) of the user who |
| triggered the error, and the values of all environment variables; if a |
| form was being submitted, the data in the form will also be included. |
| To disable error logging, delete or rename the |
| <TT |
| CLASS="filename" |
| >errorlog</TT |
| > file. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="trbl-testserver" |
| >B.2. The Apache webserver is not serving Bugzilla pages</A |
| ></H2 |
| ><P |
| >After you have run <B |
| CLASS="command" |
| >checksetup.pl</B |
| > twice, |
| run <B |
| CLASS="command" |
| >testserver.pl http://yoursite.yourdomain/yoururl</B |
| > |
| to confirm that your webserver is configured properly for |
| Bugzilla. |
| </P |
| ><TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| > <SAMP |
| CLASS="prompt" |
| >bash$</SAMP |
| > ./testserver.pl http://landfill.bugzilla.org/bugzilla-tip |
| TEST-OK Webserver is running under group id in $webservergroup. |
| TEST-OK Got ant picture. |
| TEST-OK Webserver is executing CGIs. |
| TEST-OK Webserver is preventing fetch of http://landfill.bugzilla.org/bugzilla-tip/localconfig. |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="trbl-perlmodule" |
| >B.3. I installed a Perl module, but |
| <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| > claims it's not installed!</A |
| ></H2 |
| ><P |
| >This could be caused by one of two things:</P |
| ><P |
| ></P |
| ><OL |
| TYPE="1" |
| ><LI |
| ><P |
| >You have two versions of Perl on your machine. You are installing |
| modules into one, and Bugzilla is using the other. Rerun the CPAN |
| commands (or manual compile) using the full path to Perl from the |
| top of <TT |
| CLASS="filename" |
| >checksetup.pl</TT |
| >. This will make sure you |
| are installing the modules in the right place. |
| </P |
| ></LI |
| ><LI |
| ><P |
| >The permissions on your library directories are set incorrectly. |
| They must, at the very least, be readable by the webserver user or |
| group. It is recommended that they be world readable. |
| </P |
| ></LI |
| ></OL |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="trbl-bundleBugzilla" |
| >B.4. Bundle::Bugzilla makes me upgrade to Perl 5.6.1</A |
| ></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="trbl-dbdSponge" |
| >B.5. DBD::Sponge::db prepare failed</A |
| ></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 |
| >with</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" |
| >B.6. cannot chdir(/var/spool/mqueue)</A |
| ></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 <SAMP |
| CLASS="computeroutput" |
| >drwx------</SAMP |
| >. |
| Type <B |
| CLASS="command" |
| >chmod 755 <TT |
| CLASS="filename" |
| >/var/spool/mqueue</TT |
| ></B |
| > |
| as root to fix this problem. This will allow any process running on your |
| machine the ability to <EM |
| >read</EM |
| > the |
| <TT |
| CLASS="filename" |
| >/var/spool/mqueue</TT |
| > directory. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="trouble-filetemp" |
| >B.7. Your vendor has not defined Fcntl macro O_NOINHERIT</A |
| ></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: |
| </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 |
| ><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 following patch, which is also |
| available as a <A |
| HREF="../xml/filetemp.patch" |
| TARGET="_top" |
| >patch file</A |
| >. |
| </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 |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="trbl-relogin-everyone" |
| >B.8. Everybody is constantly being forced to relogin</A |
| ></H2 |
| ><P |
| >The most-likely cause is that the <SPAN |
| CLASS="QUOTE" |
| >"cookiepath"</SPAN |
| > parameter |
| is not set correctly in the Bugzilla configuration. You can change this (if |
| you're a Bugzilla administrator) from the editparams.cgi page via the web. |
| </P |
| ><P |
| >The value of the cookiepath parameter should be the actual directory |
| containing your Bugzilla installation, <EM |
| >as seen by the end-user's |
| web browser</EM |
| >. Leading and trailing slashes are mandatory. You can |
| also set the cookiepath to any directory which is a parent of the Bugzilla |
| directory (such as '/', the root directory). But you can't put something |
| that isn't at least a partial match or it won't work. What you're actually |
| doing is restricting the end-user's browser to sending the cookies back only |
| to that directory. |
| </P |
| ><P |
| >How do you know if you want your specific Bugzilla directory or the |
| whole site? |
| </P |
| ><P |
| >If you have only one Bugzilla running on the server, and you don't |
| mind having other applications on the same server with it being able to see |
| the cookies (you might be doing this on purpose if you have other things on |
| your site that share authentication with Bugzilla), then you'll want to have |
| the cookiepath set to "/", or to a sufficiently-high enough directory that |
| all of the involved apps can see the cookies. |
| </P |
| ><DIV |
| CLASS="example" |
| ><A |
| NAME="trbl-relogin-everyone-share" |
| ></A |
| ><P |
| ><B |
| >Example B-1. Examples of urlbase/cookiepath pairs for sharing login cookies</B |
| ></P |
| ><A |
| NAME="AEN3176" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| CLASS="literallayout" |
| ><br> |
| urlbase is <A |
| HREF="http://bugzilla.mozilla.org/" |
| TARGET="_top" |
| >http://bugzilla.mozilla.org/</A |
| ><br> |
| cookiepath is /<br> |
| <br> |
| urlbase is <A |
| HREF="http://tools.mysite.tld/bugzilla/" |
| TARGET="_top" |
| >http://tools.mysite.tld/bugzilla/</A |
| ><br> |
| but you have http://tools.mysite.tld/someotherapp/ which shares<br> |
| authentication with your Bugzilla<br> |
| cookiepath is /<br> |
| </P |
| ></BLOCKQUOTE |
| ></DIV |
| ><P |
| >On the other hand, if you have more than one Bugzilla running on the |
| server (some people do - we do on landfill) then you need to have the |
| cookiepath restricted enough so that the different Bugzillas don't |
| confuse their cookies with one another. |
| </P |
| ><DIV |
| CLASS="example" |
| ><A |
| NAME="trbl-relogin-everyone-restrict" |
| ></A |
| ><P |
| ><B |
| >Example B-2. Examples of urlbase/cookiepath pairs to restrict the login cookie</B |
| ></P |
| ><A |
| NAME="AEN3183" |
| ></A |
| ><BLOCKQUOTE |
| CLASS="BLOCKQUOTE" |
| ><P |
| CLASS="literallayout" |
| ><br> |
| urlbase is <A |
| HREF="http://landfill.bugzilla.org/bugzilla-tip/" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/bugzilla-tip/</A |
| ><br> |
| cookiepath is /bugzilla-tip/<br> |
| <br> |
| urlbase is <A |
| HREF="http://landfill.bugzilla.org/bugzilla-2.16-branch/" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/bugzilla-2.16-branch/</A |
| ><br> |
| cookiepath is /bugzilla-2.16-branch/<br> |
| </P |
| ></BLOCKQUOTE |
| ></DIV |
| ><P |
| >If you had cookiepath set to <SPAN |
| CLASS="QUOTE" |
| >"/"</SPAN |
| > at any point in the |
| past and need to set it to something more restrictive |
| (i.e. <SPAN |
| CLASS="QUOTE" |
| >"/bugzilla/"</SPAN |
| >), you can safely do this without |
| requiring users to delete their Bugzilla-related cookies in their |
| browser (this is true starting with Bugzilla 2.18 and Bugzilla 2.16.5). |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="AEN3190" |
| >B.9. Some users are constantly being forced to relogin</A |
| ></H2 |
| ><P |
| >First, make sure cookies are enabled in the user's browser. |
| </P |
| ><P |
| >If that doesn't fix the problem, it may be that the user's ISP |
| implements a rotating proxy server. This causes the user's effective IP |
| address (the address which the Bugzilla server perceives him coming from) |
| to change periodically. Since Bugzilla cookies are tied to a specific IP |
| address, each time the effective address changes, the user will have to |
| log in again. |
| </P |
| ><P |
| >If you are using 2.18 (or later), there is a |
| parameter called <SPAN |
| CLASS="QUOTE" |
| >"loginnetmask"</SPAN |
| >, which you can use to set |
| the number of bits of the user's IP address to require to be matched when |
| authenticating the cookies. If you set this to something less than 32, |
| then the user will be given a checkbox for <SPAN |
| CLASS="QUOTE" |
| >"Restrict this login to |
| my IP address"</SPAN |
| > on the login screen, which defaults to checked. If |
| they leave the box checked, Bugzilla will behave the same as it did |
| before, requiring an exact match on their IP address to remain logged in. |
| If they uncheck the box, then only the left side of their IP address (up |
| to the number of bits you specified in the parameter) has to match to |
| remain logged in. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="trbl-index" |
| >B.10. <TT |
| CLASS="filename" |
| >index.cgi</TT |
| > doesn't show up unless specified in the URL</A |
| ></H2 |
| ><P |
| > You probably need to set up your web server in such a way that it |
| will serve the index.cgi page as an index page. |
| </P |
| ><P |
| > If you are using Apache, you can do this by adding |
| <TT |
| CLASS="filename" |
| >index.cgi</TT |
| > to the end of the |
| <SAMP |
| CLASS="computeroutput" |
| >DirectoryIndex</SAMP |
| > line |
| as mentioned in <A |
| HREF="#http-apache" |
| >Section 2.2.4.1</A |
| >. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="trbl-passwd-encryption" |
| >B.11. checksetup.pl reports "Client does not support authentication protocol |
| requested by server..."</A |
| ></H2 |
| ><P |
| > This error is occurring because you are using the new password |
| encryption that comes with MySQL 4.1, while your |
| <TT |
| CLASS="filename" |
| >DBD::mysql</TT |
| > module was compiled against an |
| older version of MySQL. If you recompile <TT |
| CLASS="filename" |
| >DBD::mysql</TT |
| > |
| against the current MySQL libraries (or just obtain a newer version |
| of this module) then the error may go away. |
| </P |
| ><P |
| > If that does not fix the problem, or if you cannot recompile the |
| existing module (e.g. you're running Windows) and/or don't want to |
| replace it (e.g. you want to keep using a packaged version), then a |
| workaround is available from the MySQL docs: |
| <A |
| HREF="http://dev.mysql.com/doc/mysql/en/Old_client.html" |
| TARGET="_top" |
| >http://dev.mysql.com/doc/mysql/en/Old_client.html</A |
| > |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="appendix" |
| ><HR><H1 |
| ><A |
| NAME="patches" |
| ></A |
| >Appendix C. Contrib</H1 |
| ><P |
| > There are a number of unofficial Bugzilla add-ons in the |
| <TT |
| CLASS="filename" |
| >$BUGZILLA_ROOT/contrib/</TT |
| > |
| directory. This section documents them. |
| </P |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="cmdline" |
| >C.1. Command-line Search Interface</A |
| ></H2 |
| ><P |
| > There are a suite of Unix utilities for searching Bugzilla from the |
| command line. They live in the |
| <TT |
| CLASS="filename" |
| >contrib/cmdline</TT |
| > directory. |
| There are three files - <TT |
| CLASS="filename" |
| >query.conf</TT |
| >, |
| <TT |
| CLASS="filename" |
| >buglist</TT |
| > and <TT |
| CLASS="filename" |
| >bugs</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 |
| > These files pre-date the templatisation work done as part of the |
| 2.16 release, and have not been updated. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > <TT |
| CLASS="filename" |
| >query.conf</TT |
| > contains the mapping from |
| options to field names and comparison types. Quoted option names |
| are <SPAN |
| CLASS="QUOTE" |
| >"grepped"</SPAN |
| > 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 <SPAN |
| CLASS="QUOTE" |
| >"option"</SPAN |
| >. |
| </P |
| ><P |
| > <TT |
| CLASS="filename" |
| >buglist</TT |
| > is a shell script that submits a |
| Bugzilla query and writes the resulting HTML page to stdout. |
| It supports both short options, (such as <SPAN |
| CLASS="QUOTE" |
| >"-Afoo"</SPAN |
| > |
| or <SPAN |
| CLASS="QUOTE" |
| >"-Rbar"</SPAN |
| >) and long options (such |
| as <SPAN |
| CLASS="QUOTE" |
| >"--assignedto=foo"</SPAN |
| > or <SPAN |
| CLASS="QUOTE" |
| >"--reporter=bar"</SPAN |
| >). |
| If the first character of an option is not <SPAN |
| CLASS="QUOTE" |
| >"-"</SPAN |
| >, it is |
| treated as if it were prefixed with <SPAN |
| CLASS="QUOTE" |
| >"--default="</SPAN |
| >. |
| </P |
| ><P |
| > The column list is taken from the COLUMNLIST environment variable. |
| This is equivalent to the <SPAN |
| CLASS="QUOTE" |
| >"Change Columns"</SPAN |
| > option |
| that is available 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 |
| <SPAN |
| CLASS="QUOTE" |
| >"http://bugzilla.mozilla.org/buglist.cgi?bug_id="</SPAN |
| > |
| 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 |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="cmdline-bugmail" |
| >C.2. Command-line 'Send Unsent Bug-mail' tool</A |
| ></H2 |
| ><P |
| > Within the <TT |
| CLASS="filename" |
| >contrib</TT |
| > directory |
| exists a utility with the descriptive (if compact) name |
| of <TT |
| CLASS="filename" |
| >sendunsentbugmail.pl</TT |
| >. The purpose of this |
| script is, simply, to send out any bug-related mail that should |
| have been sent by now, but for one reason or another has not. |
| </P |
| ><P |
| > To accomplish this task, <TT |
| CLASS="filename" |
| >sendunsentbugmail.pl</TT |
| > uses |
| the same mechanism as the <TT |
| CLASS="filename" |
| >sanitycheck.cgi</TT |
| > script; it |
| it scans through the entire database looking for bugs with changes that |
| were made more than 30 minutes ago, but where there is no record of |
| anyone related to that bug having been sent mail. Having compiled a list, |
| it then uses the standard rules to determine who gets mail, and sends it |
| out. |
| </P |
| ><P |
| > As the script runs, it indicates the bug for which it is currently |
| sending mail; when it has finished, it gives a numerical count of how |
| many mails were sent and how many people were excluded. (Individual |
| user names are not recorded or displayed.) If the script produces |
| no output, that means no unsent mail was detected. |
| </P |
| ><P |
| > <EM |
| >Usage</EM |
| >: move the sendunsentbugmail.pl script |
| up into the main directory, ensure it has execute permission, and run it |
| from the command line (or from a cron job) with no parameters. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="appendix" |
| ><HR><H1 |
| ><A |
| NAME="install-perlmodules-manual" |
| ></A |
| >Appendix D. Manual Installation of Perl Modules</H1 |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="modules-manual-instructions" |
| >D.1. Instructions</A |
| ></H2 |
| ><P |
| > If you need to install Perl modules manually, here's how it's done. |
| Download the module using the link given in the next section, and then |
| apply this magic incantation, as root: |
| </P |
| ><P |
| > |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| ><SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > tar -xzvf <module>.tar.gz |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > cd <module> |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > perl Makefile.PL |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > make |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > make test |
| <SAMP |
| CLASS="prompt" |
| >bash#</SAMP |
| > make install</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > In order to compile source code under Windows you will need to obtain |
| a 'make' utility. The <B |
| CLASS="command" |
| >nmake</B |
| > utility provided with |
| Microsoft Visual C++ may be used. As an alternative, there is a |
| utility called <B |
| CLASS="command" |
| >dmake</B |
| > available from CPAN which is |
| written entirely in Perl. The majority of the links given below, however, |
| are to pre-compiled versions of the modules, which can be installed |
| on Windows simply by issuing the following command once you have |
| downloaded the PPD file (which may be packaged within a ZIP file): |
| </P |
| ><P |
| > <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="screen" |
| > <SAMP |
| CLASS="prompt" |
| >></SAMP |
| > ppm install <filename.ppd> |
| </PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="modules-manual-download" |
| >D.2. Download Locations</A |
| ></H2 |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > Running Bugzilla on Windows requires the use of ActiveState |
| Perl 5.8.1 or higher. Some modules already exist in the core |
| distribution of ActiveState Perl so no PPM link is given. |
| (This is noted where it occurs.) |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > AppConfig: |
| <P |
| CLASS="literallayout" |
| ><br> |
| CPAN Download Page: <A |
| HREF="http://search.cpan.org/src/ABW/AppConfig-1.56/lib/AppConfig.pm" |
| TARGET="_top" |
| >http://search.cpan.org/src/ABW/AppConfig-1.56/lib/AppConfig.pm</A |
| ><br> |
| PPM Download Link: <A |
| HREF="http://landfill.bugzilla.org/ppm/AppConfig.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/AppConfig.ppd</A |
| ><br> |
| Documentation: <A |
| HREF="http://search.cpan.org/~abw/AppConfig-1.56/lib/AppConfig.pm" |
| TARGET="_top" |
| >http://search.cpan.org/~abw/AppConfig-1.56/lib/AppConfig.pm</A |
| ><br> |
| </P |
| > |
| </P |
| ><P |
| > CGI: |
| <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: Part of core distribution.<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 |
| > |
| </P |
| ><P |
| > Data-Dumper: |
| <P |
| CLASS="literallayout" |
| ><br> |
| CPAN Download Page: <A |
| HREF="http://search.cpan.org/src/ILYAM/Data-Dumper-2.121/Dumper.pm" |
| TARGET="_top" |
| >http://search.cpan.org/src/ILYAM/Data-Dumper-2.121/Dumper.pm</A |
| ><br> |
| PPM Download Page: Part of core distribution.<br> |
| Documentation: <A |
| HREF="http://search.cpan.org/~ilyam/Data-Dumper-2.121/Dumper.pm" |
| TARGET="_top" |
| >http://search.cpan.org/~ilyam/Data-Dumper-2.121/Dumper.pm</A |
| ><br> |
| </P |
| > |
| </P |
| ><P |
| > Date::Format (part of TimeDate): |
| <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://landfill.bugzilla.org/ppm/TimeDate.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/TimeDate.ppd</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 |
| > |
| </P |
| ><P |
| > DBI: |
| <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://landfill.bugzilla.org/ppm/DBI.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/DBI.ppd</A |
| ><br> |
| Documentation: <A |
| HREF="http://dbi.perl.org/docs/" |
| TARGET="_top" |
| >http://dbi.perl.org/docs/</A |
| ><br> |
| </P |
| > |
| </P |
| ><P |
| > DBD::mysql: |
| <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://landfill.bugzilla.org/ppm/DBD-mysql.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/DBD-mysql.ppd</A |
| ><br> |
| Documentation: <A |
| HREF="http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm" |
| TARGET="_top" |
| >http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm</A |
| ><br> |
| </P |
| > |
| </P |
| ><P |
| > File::Spec: |
| <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: Part of core distribution.<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 |
| > |
| </P |
| ><P |
| > File::Temp: |
| <P |
| CLASS="literallayout" |
| ><br> |
| CPAN Download Page: <A |
| HREF="http://search.cpan.org/dist/File-Temp/" |
| TARGET="_top" |
| >http://search.cpan.org/dist/File-Temp/</A |
| ><br> |
| PPM Download Page: Part of core distribution.<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 |
| > |
| </P |
| ><P |
| > Template-Toolkit: |
| <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://landfill.bugzilla.org/ppm/Template-Toolkit.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/Template-Toolkit.ppd</A |
| ><br> |
| Documentation: <A |
| HREF="http://www.template-toolkit.org/docs.html" |
| TARGET="_top" |
| >http://www.template-toolkit.org/docs.html</A |
| ><br> |
| </P |
| > |
| </P |
| ><P |
| > Text::Wrap: |
| <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> |
| PPM Download Link: Part of core distribution.<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 |
| > |
| </P |
| ><P |
| > GD: |
| <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://landfill.bugzilla.org/ppm/GD.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/GD.ppd</A |
| ><br> |
| Documentation: <A |
| HREF="http://stein.cshl.org/WWW/software/GD/" |
| TARGET="_top" |
| >http://stein.cshl.org/WWW/software/GD/</A |
| ><br> |
| </P |
| > |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><HR><H2 |
| CLASS="section" |
| ><A |
| NAME="modules-manual-optional" |
| >D.3. Optional Modules</A |
| ></H2 |
| ><P |
| > Chart::Base: |
| <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 Page: <A |
| HREF="http://landfill.bugzilla.org/ppm/Chart.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/Chart.ppd</A |
| ><br> |
| Documentation: <A |
| HREF="http://search.cpan.org/src/CHARTGRP/Chart-2.3/doc/Documentation.pdf" |
| TARGET="_top" |
| >http://search.cpan.org/src/CHARTGRP/Chart-2.3/doc/Documentation.pdf</A |
| ><br> |
| </P |
| > |
| </P |
| ><P |
| > GD::Graph: |
| <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://landfill.bugzilla.org/ppm/GDGraph.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/GDGraph.ppd</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 |
| > |
| </P |
| ><P |
| > GD::Text::Align (part of GD::Text::Util): |
| <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://landfill.bugzilla.org/ppm/GDTextUtil.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/GDTextUtil.ppd</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 |
| > |
| </P |
| ><P |
| > MIME::Parser (part of MIME-tools): |
| <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/8xx-builds-only/Windows/MIME-tools-5.411a.zip" |
| TARGET="_top" |
| >http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/MIME-tools-5.411a.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 |
| > |
| </P |
| ><P |
| > XML::Parser: |
| <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> |
| PPM Download Link: Part of core distribution.<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 |
| > |
| </P |
| ><P |
| > PatchReader: |
| <P |
| CLASS="literallayout" |
| ><br> |
| CPAN Download Page: <A |
| HREF="http://search.cpan.org/author/JKEISER/PatchReader/" |
| TARGET="_top" |
| >http://search.cpan.org/author/JKEISER/PatchReader/</A |
| ><br> |
| PPM Download Link: <A |
| HREF="http://landfill.bugzilla.org/ppm/PatchReader.ppd" |
| TARGET="_top" |
| >http://landfill.bugzilla.org/ppm/PatchReader.ppd</A |
| ><br> |
| Documentation: <A |
| HREF="http://www.johnkeiser.com/mozilla/Patch_Viewer.html" |
| TARGET="_top" |
| >http://www.johnkeiser.com/mozilla/Patch_Viewer.html</A |
| ><br> |
| </P |
| > |
| </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="AEN3366" |
| ></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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-0" |
| >0. Preamble</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-1" |
| >1. Applicability and Definition</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-2" |
| >2. Verbatim Copying</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-3" |
| >3. Copying in Quantity</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-4" |
| >4. Modifications</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-5" |
| >5. Combining Documents</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-6" |
| >6. Collections of Documents</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-7" |
| >7. Aggregation with Independent Works</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-8" |
| >8. Translation</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-9" |
| >9. Termination</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-10" |
| >10. Future Revisions of this License</A |
| ></H2 |
| ><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><H2 |
| CLASS="section" |
| ><A |
| NAME="gfdl-howto" |
| >How to use this License for your documents</A |
| ></H2 |
| ><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="AEN3456" |
| ></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="AEN3461" |
| >0-9, high ascii</A |
| ></H1 |
| ><DL |
| ><DT |
| ><A |
| NAME="gloss-htaccess" |
| ></A |
| ><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 |
| <ACRONYM |
| CLASS="acronym" |
| >NCSA</ACRONYM |
| > |
| world-wide-web server.</P |
| ><P |
| ></P |
| ><DIV |
| CLASS="variablelist" |
| ><P |
| ><B |
| >Useful Directives when configuring Bugzilla</B |
| ></P |
| ><DL |
| ><DT |
| ><SAMP |
| CLASS="computeroutput" |
| ><A |
| HREF="http://httpd.apache.org/docs-2.0/mod/core.html#addhandler" |
| TARGET="_top" |
| >AddHandler</A |
| ></SAMP |
| ></DT |
| ><DD |
| ><P |
| >Tell Apache that it's OK to run CGI scripts.</P |
| ></DD |
| ><DT |
| ><SAMP |
| CLASS="computeroutput" |
| ><A |
| HREF="http://httpd.apache.org/docs-2.0/mod/core.html#allowoverride" |
| TARGET="_top" |
| >AllowOverride</A |
| ></SAMP |
| >, <SAMP |
| CLASS="computeroutput" |
| ><A |
| HREF="http://httpd.apache.org/docs-2.0/mod/core.html#options" |
| TARGET="_top" |
| >Options</A |
| ></SAMP |
| ></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 |
| ><SAMP |
| CLASS="computeroutput" |
| ><A |
| HREF="http://httpd.apache.org/docs-2.0/mod/mod_dir.html#directoryindex" |
| TARGET="_top" |
| >DirectoryIndex</A |
| ></SAMP |
| ></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 <SAMP |
| CLASS="computeroutput" |
| >$index_html</SAMP |
| > 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 |
| ><SAMP |
| CLASS="computeroutput" |
| ><A |
| HREF="http://httpd.apache.org/docs-2.0/mod/core.html#scriptinterpretersource" |
| TARGET="_top" |
| >ScriptInterpreterSource</A |
| ></SAMP |
| ></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 2.2.4.1</A |
| >. |
| </P |
| ></DD |
| ></DL |
| ></DIV |
| ><DIV |
| CLASS="glossdiv" |
| ><H1 |
| CLASS="glossdiv" |
| ><A |
| NAME="gloss-b" |
| >B</A |
| ></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" |
| >C</A |
| ></H1 |
| ><DL |
| ><DT |
| ><A |
| NAME="gloss-cgi" |
| ></A |
| ><B |
| >Common Gateway Interface</B |
| ></DT |
| > (CGI)<DD |
| ><P |
| ><ACRONYM |
| CLASS="acronym" |
| >CGI</ACRONYM |
| > 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 <ACRONYM |
| CLASS="acronym" |
| >CGI</ACRONYM |
| > 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 |
| > <ACRONYM |
| CLASS="acronym" |
| >CPAN</ACRONYM |
| > |
| |
| 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 |
| ><DT |
| ><A |
| NAME="gloss-contrib" |
| ></A |
| ><B |
| ><TT |
| CLASS="filename" |
| >contrib</TT |
| ></B |
| ></DT |
| ><DD |
| ><P |
| >The <TT |
| CLASS="filename" |
| >contrib</TT |
| > directory is |
| a location to put scripts that have been contributed to Bugzilla but |
| are not a part of the official distribution. These scripts are written |
| by third parties and may be in languages other than perl. For those |
| that are in perl, there may be additional modules or other requirements |
| than those of the offical distribution. |
| <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 |
| >Scripts in the <TT |
| CLASS="filename" |
| >contrib</TT |
| > |
| directory are not offically supported by the Bugzilla team and may |
| break in between versions. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| > |
| </P |
| ></DD |
| ></DL |
| ></DIV |
| ><DIV |
| CLASS="glossdiv" |
| ><H1 |
| CLASS="glossdiv" |
| ><A |
| NAME="gloss-d" |
| >D</A |
| ></H1 |
| ><DL |
| ><DT |
| ><A |
| NAME="gloss-daemon" |
| ></A |
| ><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 |
| ><DT |
| ><A |
| NAME="gloss-dos" |
| ></A |
| ><B |
| >DOS Attack</B |
| ></DT |
| ><DD |
| ><P |
| >A DOS, or Denial of Service attack, is when a user attempts to |
| deny access to a web server by repeatadly accessing a page or sending |
| malformed requests to a webserver. This can be effectively prevented |
| by using <TT |
| CLASS="filename" |
| >mod_throttle</TT |
| > as described in |
| <A |
| HREF="#security-webserver-mod-throttle" |
| >Section 4.3.2</A |
| >. A D-DOS, or |
| Distributed Denial of Service attack, is when these requests come |
| from multiple sources at the same time. Unfortunately, these are much |
| more difficult to defend against. |
| </P |
| ></DD |
| ></DL |
| ></DIV |
| ><DIV |
| CLASS="glossdiv" |
| ><H1 |
| CLASS="glossdiv" |
| ><A |
| NAME="gloss-g" |
| >G</A |
| ></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" |
| >J</A |
| ></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" |
| >M</A |
| ></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. The <A |
| HREF="http://search.cpan.org/dist/MailTools/Mail/Mailer.pm" |
| TARGET="_top" |
| >Mail::Mailer</A |
| > |
| Perl module, which Bugzilla uses to send email, can be configured to |
| use many different underlying implementations for actually sending the |
| mail using the <VAR |
| CLASS="option" |
| >mail_delivery_method</VAR |
| > parameter. |
| Implementations other than <VAR |
| CLASS="literal" |
| >sendmail</VAR |
| > require that the |
| <VAR |
| CLASS="option" |
| >sendmailnow</VAR |
| > param be set to <VAR |
| CLASS="literal" |
| >on</VAR |
| >. |
| </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 4.2</A |
| >. |
| </P |
| ></DD |
| ></DL |
| ></DIV |
| ></DD |
| ></DL |
| ></DIV |
| ><DIV |
| CLASS="glossdiv" |
| ><H1 |
| CLASS="glossdiv" |
| ><A |
| NAME="gloss-p" |
| >P</A |
| ></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" |
| >Q</A |
| ></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" |
| >R</A |
| ></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" |
| >S</A |
| ></H1 |
| ><DL |
| ><DT |
| ><A |
| NAME="gloss-service" |
| ></A |
| ><B |
| >Service</B |
| ></DT |
| ><DD |
| ><P |
| >In Windows NT environment, a boot-time background application |
| is refered to as a service. These are generally managed through the |
| control pannel while logged in as an account with |
| <SPAN |
| CLASS="QUOTE" |
| >"Administrator"</SPAN |
| > level capabilities. For more |
| information, consult your Windows manual or the MSKB. |
| </P |
| ></DD |
| ><DT |
| ><B |
| > <ACRONYM |
| CLASS="acronym" |
| >SGML</ACRONYM |
| > |
| </B |
| ></DT |
| ><DD |
| ><P |
| > <ACRONYM |
| CLASS="acronym" |
| >SGML</ACRONYM |
| > |
| |
| 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, |
| <ACRONYM |
| CLASS="acronym" |
| >SGML</ACRONYM |
| > |
| |
| has withstood the test of time as a robust, powerful language. |
| <I |
| CLASS="glossterm" |
| > <ACRONYM |
| CLASS="acronym" |
| >XML</ACRONYM |
| > |
| </I |
| > |
| |
| is the |
| <SPAN |
| CLASS="QUOTE" |
| >"baby brother"</SPAN |
| > |
| |
| of SGML; any valid |
| <ACRONYM |
| CLASS="acronym" |
| >XML</ACRONYM |
| > |
| |
| document it, by definition, a valid |
| <ACRONYM |
| CLASS="acronym" |
| >SGML</ACRONYM |
| > |
| |
| document. The document you are reading is written and maintained in |
| <ACRONYM |
| CLASS="acronym" |
| >SGML</ACRONYM |
| >, |
| and is also valid |
| <ACRONYM |
| CLASS="acronym" |
| >XML</ACRONYM |
| > |
| |
| if you modify the Document Type Definition.</P |
| ></DD |
| ></DL |
| ></DIV |
| ><DIV |
| CLASS="glossdiv" |
| ><H1 |
| CLASS="glossdiv" |
| ><A |
| NAME="gloss-t" |
| >T</A |
| ></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" |
| >Z</A |
| ></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="AEN3708" |
| ></A |
| ><TABLE |
| BORDER="0" |
| WIDTH="100%" |
| CELLSPACING="0" |
| CELLPADDING="0" |
| CLASS="BLOCKQUOTE" |
| ><TR |
| ><TD |
| WIDTH="10%" |
| VALIGN="TOP" |
| > </TD |
| ><TD |
| 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 |
| > |